Задать вопрос
  • Какие есть программы для снятия скриншотов\видео для linux?

    Скриншоты делаю 5cm.ru И порисовать можно и прямую ссылку даёт на изображение
    Ответ написан
    6 комментариев
  • Как вы находите идеи домашних проектов?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Классика для поднятия скилла генерации идей: креативность - это скилл, навык, и его нужно развивать. Каждый день придумывайте 10 идей, абсолютно любых, не думая о возможности реализации. Но обязательно каждый день и минимум 10 идей.
    Через несколько дней можно взглянуть на список за один день и отсортировать по возможности реализации или по нравится/не нравится. Таким образом возникнет обратная связь, и через время идеи станут более реалистичными.
    Если так делать, то через пару месяцев скилл креативности разовьётся хорошо.

    Идеи могут быть разных направлений, не обязательно для программ (и даже хорошо, что разные направления).
    Придумывайте:
    - использование какой-то вещи (как можно использовать карандаш?)
    - способы оптимизировать какую-то вещь (как оптимизировать молоток?)
    - идеи игры (10 вариантов вариаций тетриса)
    - идеи книги (художественной? публицистической? профессиональной?)
    - рецепты (мяса? молока? репы?)
    - даже, какие направления для десяти идей придумывать!
    Ответ написан
    Комментировать
  • Как вы находите идеи домашних проектов?

    un1t
    @un1t
    Показывать код с прошлых мест работ нельзя, а работодатели зачастую просят ссылки на гитхаб


    Среди моих знакомых программистов почти не у кого нет каких-то проектов на гитхабе, которые не стыдно было бы показать работодателю. Ну т.е. либо совсем ничего нет, либо есть какая-нибудь фигня. Не думаю что кому-то из-за этого отказывали в работе. Наличие такого проекта может быть плюсом, но отсутствие не является минусом. Очень сомнительно что кто-то из интервьюеров будет читать ваш код на гитхабе, зачастую даже резюме не удосуживаются прочитать.

    Иметь репу на гитхабе, это не просто один раз че-то запилил. Если это че-то полезное, то люди будут заваливать вас тикетами и пул реквестами, готовы в за спасибо все это обслуживать? Меня в свое время все это сильно задолбало, благо нашлись контрибьюторы, которым я передал проекты.

    На небольшом проекте особо не продемонстрируешь своих умений, а на большой не хватит времени и сил.

    Если хотите сделать что-то полезное, найдите проекты на гитхабе из тех которыми вы пользуетесь, посмотрите список issues, отправьте PR. Ну или просто если сами натолкнулись на какой-то баг или проблему, можете починить и отправить PR.

    Но если вам этим самому не интересно заниматься, то не тратьте время.
    Ответ написан
    Комментировать
  • Есть ли онлайн сервис рисования красивых схем, инструкция для статей сайта?

    @espirit
    пользуюсь draw.io - удобно и лаконично
    Ответ написан
    Комментировать
  • Какой алгоритм использовать в этой задаче?

    OlegWock
    @OlegWock Автор вопроса
    Python, Java+Android, Frontend
    Пока ждал, нагуглил сам.
    Это задача на идею. Когда ее знаешь, то решение кажется очевидным. Однако придумать такое
    решение самому иногда (а точнее даже очень часто) не так-то просто. Раскроем секрет задачи:
    достаточно сгенерировать любой квадрат K*K, содержащий ровно S единиц, а затем просто заполнить
    им квадрат N*N.

    Подробнее (+ код на паскале): тыц
    Ответ написан
    Комментировать
  • Магия mySQL, или почему DELETE длится вечность?

    @art_karetnikov
    Лучший мой проект: Мобильный банк Сбербанка РФ.
    Запихните результат во временную таблицу и сделайте выборку из нее. Где уже не надо будет выполнять concat.
    Ответ написан
    Комментировать
  • Парсим/грабим веб-страницы без мусора?

    Vlad_IT
    @Vlad_IT Куратор тега HTML
    Front-end разработчик
    Для Python 3 использовал либу https://pypi.python.org/pypi/newspaper Получает только контент страницы. В большинстве сайтов с нормальной версткой работает отлично.
    Ответ написан
    Комментировать
  • Странное поведение pycharm?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Сейчас я проясню ситуацию=).
    Текст бывает либо в какой-то кодировке (cp1251, utf-8, win866, ascii, и т.д.), тогда это байты; либо в юникоде (это, как бы, абстрактное представление символов), тогда это строки из абстрактных юникодовых символов.
    Все файлы, потоки ввода-вывода и т.д. у нас в компьютере работает с байтами, а не с абстрактными юникодовыми символами. Это значит, что перед выводом в файл или консоль должно производиться кодирование юникода в конкретную кодировку.
    Кодировка -- это способ представить байтами абстрактных символов юникода. Каждый юникодовый символ, в зависимости от кодировки, будет задаваться одним или более байтом. Некоторые абстрактные символы не поддерживаются некоторыми кодировками.

    Так, например, кодировка ascii поддерживает только стандартные 128 символов и при попытке конвертировать в неё (явно или неявно) букву "Ж", будет такая же ошибка как у вас. Надо полагать метод parse в вашем случае возвращает юникод, а оператор print делает неявное преобразование в кодировку по умолчанию (ascii, судя по сообщению об ошибке).
    Осталось выяснить в каких случаях как определяется кодировка по умолчанию.
    Артём Клименко правильно предложил в своём ответе проверить что берётся в качестве кодировки по умолчанию в том и другом случае.
    Однако решением проблемы должно быть явное преобразование текста в нужную кодировку. Я в таких случаях придерживаюсь следующих правил:
    • Всё, что приходит в программу, привожу в юникод (если это не произошло неявно в той библиотеке, посредством которой я получил данные).
    • В программе работаю с текстом только в юникоде (если речь не идёт о каких-то низкоуровневых операциях над байтами, вроде парсинга протоколов и прочего.
    • Перед выводом конвертирую текст в нужную кодировку или настраиваю потоки вывода на автоматическое преобразование.
    • Когда не понятно в какой кодировке делать вывод, руководствуюсь следующими правилами:
      • Выходной поток -- это виндовый stdout и в нём не задана кодировка (bat-файлы, консоль) -- cp866
      • Файлы, БД и прочее, что поддерживает юникод и сделано правильно -- UTF-8
      • Когда в винде не помогают пердыдущие пункты -- cp1251
      • В других операционках utf-8.


    Подчеркиваю. Если выходной поток сконфигурирован на ascii, а у нас в программе могут попасться не-ascii символы, то нужно приводить текст в какую-то кодировку (см выше)), а иначе ничего не трогаем и пишем юникод.
    Ответ написан
    Комментировать
  • Git: объясните «на пальцах» разницу между rebase и cherry-pick?

    Все красиво объяснил Nkly777, только в блоке PS merge с rebase перепутаны.
    Добавлю картинок.

    git rebase devel - собачка на молнии - "сшивает" коммиты по дате их создания
    (ветка devel "растворяется" в основной ветке)
    518b8dbce1cd4f96b30de9782ae38fcd.png
    git merge devel - пожарная лестница, все коммиты ветки devel крепятся в конец, образуется пересечение
    (devel остается отдельной веткой, к которой можно вернуться)
    1ba8186d879d46ff85ea7c1e192328e2.png
    git chery-pick idea - забрать коммиты из ветки idea
    2717e3091f644ef2954aa2de4514f446.png
    Ответ написан
    2 комментария
  • Как работать с многоядерными процессорами в Python?

    @kazmiruk
    https://docs.python.org/2/library/multiprocessing.html - единственный известный мне способ утилизровать несколько ядер на питоне. GIL есть в обоих ветках питона, обойти никак (вроде, если я не ошибаюсь, написав экстеншн на С, Вы все равно будете вынуждены запускать его в тех же условиях).
    Ответ написан
    2 комментария
  • Какой workflow front-end разработки у вас?

    nonlux
    @nonlux
    Расклад такой:

    1. Возьми docker контейнер с настроенным окружением для разработки.
    Это удобно если вдруг разработчик станет не один, слетит система, поменяешь рабочее место. Один раз настроил и забыл )
    docker запускает:
    - веб-сервер (можно nginx, можно внутри gulp, все зависит о задачи)
    - livereload сервер, через gulp ( f5 нажимать каждые 3 секунды - это больно
    - gulp watchers ( в ручную компилить всякую хню, запускать тесты скучно )

    2. Запусти vim ( или любой твой любимый редактор)
    3. пиши, бл@#ь, код:
    - less, sass и прочее по мне гораздо удобнее чистого css, меньше пишешь больше кода получаешь.
    - не пиши голый html, используй шаблонизатор любой какой удобнее, я пользуюсь twig, но и простой {{mustache }} подойдет
    4. пользуйся git. И пользуйся им часто.
    - для приветных проектов поставь gitlab
    - используй gitworkflow, ну или сделай хотя бы 2 ветки: например master и prodaction (об этом позже)
    5. CI
    - работая ты все равно допустить кучу ошибок. Проверка синтаксиса, валидация по стандартам, тесты - это все поможет тебе не облажаться.
    - если ты будешь это делать сам потеряешь кучу времени просто на то что бы запускать и проверять всю свою работу. ci сервер поможет тебе убрать эту рутину из свое жизни.
    6. Кроссбраузенрость
    - используй browserstack ( или аналоги) для просмотра результатов своей работы
    - ну уж если нашел ошибку бери реальный браузер ( или в виртуалке) занимайся отладкой
    - получение скриншотов легко подключается к ci
    - а так же из коробки работает и с локальными серверами
    7. Обратная связь с заказчиком
    - для ветки master (да и вообще для любой другой ветки) в git ты легко с помощью ci сервера + docker можешь поднимать сайт c последними обновлениями кода
    - делай это у себя и можешь не боятся, что заказчик сможет забрать твою работы и забыть заплатить
    8. Деплой
    - я просто использую на нужном сервере gitlab-ci-worker и получаю все аналично п.7
    - но для этого использую только ветку prodaction, в которую выкладываю стабильные изменения по готовности
    - просто хостинг - все, что угодно ( shell, ansilbe + ssh ) через ci server
    - И да не забудь что для prodaction надо бы все ассеты по сжимать ( да, да я про ci)
    9 Be happy
    Выкинь рутину, и делай то что тебе нравится. Пиши код))

    P.S.
    Это не наставление как надо работать, не реклама инструментов. Это описание моего workflow.
    Ответ написан
    8 комментариев
  • Как правильно ребутить сервер по ssh?

    @azazelpw
    Linux SA
    reboot
    shutdown -r now

    Для того чтобы посмотреть список автозагрузки
    apt-get install sysv-rc-conf
    sysv-rc-conf --list

    Можно и более простым способом, но тут будет графически показано, что в какой момент запускается :)

    Ну и на всякий пожарный, включить MySQL в автозагрузку в Debian/Ubuntu
    update-rc.d mysqld defaults
    Ответ написан
    Комментировать
  • Трудно ли Front-End'у найти дизайнера для совместного фриланса?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Залог успешного бизнеса - делегирование работы другому человеку, более профессиональному.
    Ответ написан
    Комментировать
  • Как в пайтоне выделить общую часть из двух строк?

    adugin
    @adugin Куратор тега Python
    Вам сюда:
    difflib.SequenceMatcher.find_longest_match()

    Пример:
    >>> from difflib import SequenceMatcher as SM
    >>> s1 = 'A roza upala na lapu Azora'
    >>> s2 = 'Dai, Djim, na s4astie lapu mne'
    >>> sm = SM(lambda c: c in set(' ,'), s1, s2)
    >>> m = sm.find_longest_match(0, len(s1), 0, len(s2))
    >>> s1[m.a:m.b]
    ' lapu '
    Ответ написан
    1 комментарий
  • Как расчитать рапределение значений?

    @throughtheether
    human after all
    Попробуйте использовать Counter. Пример на python 2.7:
    >>> from collections import Counter
    >>> d={'a':2,'b':2,'c':5}
    >>> Counter(d.values())
    Counter({2: 2, 5: 1})
    >>> Counter(d.itervalues())
    Counter({2: 2, 5: 1})
    Ответ написан
    Комментировать
  • Читаю с CSV файла кириллицу, вывожу в файлы и получаю xd0x94xd0xbexd0xb1xd0xb0xd0xb2xd0xb8xd1x82xd1x8, как читать и выводить кириллицу?

    @lPolar
    data scientist
    А можно сделать совсем элегантно (Py3):
    import pandas as pd
    fname = r'C:\folder\myfile.csv'
    data = pd.read_csv(fname,sep='\t',encoding='cp1251')
    print(data)
    Ответ написан
    4 комментария
  • Как правильно упаковать Python приложения в DEB пакет?

    un1t
    @un1t
    С wheel просто. Создаешь локально папочку с wheel-пакетами, они там уже скомпилены. Копируешь ее на сервер и устанавливаешь оттуда. При желании можно и в deb пакет ее завернуть.

    pip wheel --wheel-dir=/path/to/dir lxml
    pip install --no-index --find-links=/path/to/dir
    Ответ написан
    Комментировать