Задать вопрос
Ответы пользователя по тегу Программирование
  • Как организовать сбор отпечатков пальцев?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Ну вот смотрите, у вас есть сенсор, например "фотография" отпечатка. Далее эта фотография обрабатывается системой машинного зрения, которая извлекает особенности строения вашего отпечатка. Читайте про то, как работает дактилоскопия в криминалистике. Назовем этот набор особенностей "узор". Вобщем, доводите железяку до состояния, когда она вам будет возвращать "узор". Собираете базу узоров, ранжируете наборы особенностей по максимуму специфичности. Получаете реверсивное дерево поиска. Отсекаете все ненужное. Строите по нему индекс.
    На телефонах тот же принцип, только узор хранится в железяке непосредственно и аппарат взаимодействует по принципу - какой идентификатор узора и событие распознавания. Ну и добавление со стиранием. Принцип тот же самый, только реализован полностью в железе с публичным интерфейсом по SPI/I²C.
    Ответ написан
    2 комментария
  • Планшет или электронная книга?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Для настоящей технической литературы, а именно тяжелых PDF со схемами устройств, чертежами и прочим хардкором ничего, кроме 12.9" iPad Pro нормально не тянет. Такие PDF даже на дестктопах нормально так тормозят.
    На IPad еще подкупает плотность пикселей, т.к. позволяет прорисовывать детали, что очень сильно влияет на читабельность.
    Всякие e-Ink Kindle просто не могут такие документы отображать за разумное время. Некоторые документы просто отображают неправильно. e-Ink классная технология для чтения художественной литературы на пляже, но на большее там рассчитывать сложно. Для работы она не пригодна.
    Ответ написан
  • Существуют ли бесплатные сервисы для проведения тестирования программ?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Бесплатных сервисов вы не найдете.

    Есть вот такие варианты для локального развертывания:
    www.contester.ru
    https://ejudge.ru
    https://polygon.codeforces.com/
    internika.org/works-infokrg54/sistema-avtomatiches...
    Ответ написан
    2 комментария
  • Как лучше всего написать парсер javascript-based языка?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    То, что вы ищете называется AST. acorn и esprima именно то, что вы ищете.
    Есть еще https://developer.mozilla.org/en-US/docs/Mozilla/P...

    Я рекомендую вам взять https://github.com/syntax-tree/hast и получить узлы с JavaScript, а их в свою очередь скармливать JS AST.
    Ответ написан
    Комментировать
  • Можно ли считать профиль в Windows как отдельную среду для работы?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Нет. Вам нужна среда с полным восстановлением оригинального состояния.
    Для этого подойдет виртуальная машина, в которую вы будет загружать копию оригинального снимка системы до установки программы.
    Ответ написан
    Комментировать
  • Появится ли такой тип программиста?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Code Review

    По-русски это называется процессом рассмотрения кода, или просто проверкой кода командой. Появляется после того, как команда проходит через стадию говнокодерства редактированием файлов на сервере через FTP и начинает использовать современные средства управления версионированием кода, в которых можно делать Pull request (запросы на добавление вашего кода в общую базу, GitHub, GitLab).

    В нормальных конторах это делается либо всеми разработчиками, либо наиболее опытными. Это очень помогает новичкам влиться в общий процесс и замечать косяки еще до того, как они попадут в общий код.

    Кроме code review, есть такая вещь, как стандарты. Она заключается в том, что существует некий общепринятый документ, который декларирует, как писать код, сколько делать отступов, табы или пробелы и т.д. Нередко он декларирует интерфейсы и тому подобное. В мире PHP это набор стандартов PSR. И все без исключений следуют этому стандарту.

    Кроме этого существует ряд вспомогательных инструментов, таких как анализаторы кода, которые проверяют код на наличие потенциальных ошибок и прочие моменты. В мире PHP это Mess Detector и CodeSniffer.

    В заключении отвечу, что такой должности нет и врядли она когда-нибудь появится.

    Слежение за качеством кода это обязанность каждого разработчика.

    Осознание этого приходит с повышением квалификации разработчика.
    Ответ написан
    1 комментарий
  • Как реализовать автопродление подписки?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Все работает достаточно просто.
    У пользователя есть план, с ним связана модель доступа к различным фишкам вашего приложения. По умолчанию у пользователя бесплатный план.
    Существует очередь подписок, в нее добавляется запись, когда выполнить следующее списание средств. Если списание удается, текущий план продлевается. Если списание не удается, смотрится причина, если эта причина финансового характера, например мало денег на счету, то клиенту устанавливается бесплатный план, а если причина технического характера, например шлюз недоступен или не проводит операции сегодня, то в очередь ставится задача продления на час/день позже. При таком подходе и клиент не теряет доступ, но и вы не теряете деньги. Если на шлюзе какая-то постоянная проблема, то у вас есть возможность исправить свою инфраструктуру до того, как вы начнете получать претензии от клиентов.
    Ответ написан
    Комментировать
  • Punycode-программа для оффлайн преобразования иероглифов?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Возможно, ваша проблема связана со шрифтами, а не с программой.

    Попробуйте вот это решение.

    На PHP есть решение в расширении intl:

    <?php                
    
    echo idn_to_ascii('收发板散件 图片是焊好的');
    // xn-- -116a68m8xdk2dl5xbjal0dj4ef79au9cdpr
    
    echo idn_to_utf8('xn-- -116a68m8xdk2dl5xbjal0dj4ef79au9cdpr');
    // 收发板散件 图片是焊好的


    Для Linux есть такое решение www.gnu.org/software/libidn/manual/html_node/Invok...
    Ответ написан
  • Какую БД выбрать?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Если нужен поиск строк, то лучше смотреть в сторону Elasticsearch или Solr. Они умеют это делать хорошо.
    Ответ написан
    Комментировать
  • Эмоциональное выгорание, перегрузка. Как победить, восстановиться?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Вам нужен перерыв. Возьмите отпуск на неделю или лучше на 2. Оставьте 2 дня на то, чтобы ничего не делать. Т.е. первый день спать и ничего не делать. Нужно немножко "покиснуть". Потом езжайте в другой город, или по возможности в страну. Вам нужно сменить обстановку и отдохнуть. Можно провести время с друзьями, сходить в баньку там, поехать на рыбалку. Постарайтесь сделать так, чтобы это не казалось в тягость. Не планируйте ничего впритык. Распределите время и отдых просто для себя.
    За время отдыха весь хлам в голове уляжется по полочкам. Вы составите себе четкий план, как учиться дальше, как совместить это с работой. Как уйти так, чтобы сильно не потерять в деньгах.
    Проблема в том, что вы перегружаете свой организм. Он не справляется с нагрузкой. Внешне это кажется так: "да нормально, вытяну", а по факту мозг и тело отказываются работать.
    Еще, пока вы будете отдыхать, сможете подумать о том, как жить дальше, потому что нужно будет подготовить себя к тому, что после ухода из 1С, зарплата упадет значительно и прийдется экономить примерно год.

    Уходить на фриланс нет смысла, поскольку туда идти лучше тогда, когда у вас есть опыт. Нужно будет начинать строить портфолио и от зведочек в нем много зависит. Там порой не важно, какой вы хороший специалист, но важно, насколько хорошо вы умеете общаться.
    Ответ написан
    2 комментария
  • Разработка сайта с использованием git. Как работать правильно?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Чтобы решить проблемы, которые у вас существуют, нужно сделать 3 вещи, но планомерно и плавно.
    1. Обучите программистов такой вещи, как git. Подождите с недельку. Затем просто прогоните их по циклу - откати эти изменения. Верните изменения. Ну раз 5, с дедлайном вчера. Все, кто не будет пользоваться git, будут мучаться часами и днями. Напомните им, как легко это делается с помощью git. Повторите испытание через некоторое время. Поставьте ультиматум: git или идите искать новую работу. Кстати, у каждого человека должен быть свой отдельный аккаунт.
    2. Держите репозитарий для проекта целиком. Сделайте отдельные папки для исходников верстки, для собранной верстки и самого сайта. Верстальщики работают со своими папками. Собирают верстку и коммятят собранную верстку в отдельную папку. Программисты через историю коммитов смогут отследить изменения и внести их назад в разработанные компоненты.
    3. Реализуйте автоматизированное развертывание проекта и запретите редактирование файлов через FTP/минуя git.

    Ну а в целом ваша проблема - низкая квалификация кадров. Решается просмотром ютуба и обучением разработчиков. Если кто-то не хочет учиться, немного снижается ставка, а деньги отдаются тем, кто учится. Даже 500 рублей будут отличным мотиватором.
    Ответ написан
    9 комментариев
  • Чему научиться за год до эмиграции?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Как человек, который переехал, скажу, что тот язык, который у вас уже есть - неплох.
    Качайте основной скилл - вашу профессию. You have one year to master your skills. Behance - обязательно.
    На рынке всегда спрос на хороших специалистов. Когда приедете, ищите любую позицию по профессиии, соглашайтесь на все - контракт, переезд и т.д. Главное, чтобы документы были впорядке и официально разрешали работать. Фокусируйтесь на стартапах, туда обычно идут студенты, а вы с опытом работы уже на голову выше их. Насчет языка американцы лояльны, не волнуйтесь. Обязательно привезите свои работы.

    По поводу языка - смотрите новости на английском, читайте times, смотрите сериалы. Найдите такой, какой вам интересно смотреть, начните с субтитрами, если понимаете 80% без них, смотрите без них.

    Т.к. вы точно знаете, что вы поедете, то я рекомендую вам начинать искать работу удаленно. Например так. Посмотрите на описание вакансий, прикинь справились бы или нет. Что нужно сделать, чтобы справляться? Отберите самые востребованные навыки и получите их. Как только станет известна дата переезда с точностью до недели, начните откликаться на вакансии. Можете арендовать номер через Skype, т.к. вам будут звонить, будьте готовы отвечать. К моменту переезда у вас уже будет навык прохождения телефонного интервью. И может даже вас позовут на собеседование в офис.
    На первую неделю после переезда ничего не планируйте. 8+ часов разницы во времни - это не шутки.
    Поиск работы в США занимает 3-4 месяца. Прикиньте свои расходы заранее с расчетом на то, что прийдется рассчитывать только на себя.
    Ответ написан
    2 комментария
  • Нужно Ваше мнение - по какому материалу легче научиться программировать: видео или статьи?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Видео и статья - два разных вида информации. С точки зрения физиологии, видео должно восприниматься легче, так как используются два канала - визуальный и аудиальный. Видео наиболее близко к нормальному очному обучению.
    Из своей практики я могу сказать так, что качество обучения зависит от преподавателя. Хороший преподаватель может написать понятную статью, а может и отличное видео записать. Основная проблема видеокурсов в том, что они очень низкого качества: "пишем сюда, получаем это". В хороших видео очень много объяснений с нарастающей степенью сложности. Хорошие видео отвечают на вопросы "как?" и "почему?". Большинство же роликов отвечают на вопрос "как?". Со статьями здесь все иначе, поскольку здесь люди больше стараются и в статьях чаще отвечают на вопрос "почему", посколько текстовый формат изначально более формальный.
    Лично я на своей практике сталкиваюсь с тем, что большая часть видео сделана для нубов, и в них разжеваны моменты, "как написать тег", а разбор того, почему это вещь сделана именно таким образом опущен.
    В общем проблема одна и таже - хорошие специалисты на вес золота. Их мало, чаще всего они очень скромные и стесняются записывать видео-лекции.
    Ответ написан
    Комментировать
  • Насколько важную роль при устройстве на работу программистом играют собственные OpenSource проекты?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Наличие git-репозитария отражает ваш уровень, как разработчика. Это самый простой способ быстро проверить, умеете вы что-нибудь или нет. Люди, у которых нет открытых проектов обычно либо нубы, либо скрытные товарищи, либо жадные до безумия, либо просто тупые и не хотят развиваться, говнокодят на джумле и довольны. Таких людей не хотят брать на работу. Есть конечно люди, которые просто не пользуются гитом из-за того, что он им не нужен. Такие люди обычно не проходят первичный отбор, обычно устраиваются по рекомендации.
    При найме нужные люди, умеющие работать в команде.
    Репозитарий также отражает то, как хорошо вы умеете общаться с людьми и насколько вы способны создать код, который может быть использован другими людьми, т.е. навыки совместной разработки.
    Опять же репозитарий показывает, насколько вы знакомы с процессом разработки, умеете ли работать с ветками.

    Т.к. я иногда сталкиваюсь с процессом найма, я ищу в резюме наличие репы, смотрю как написан код. Обычно гуглю, что за человек, чем он занимается.
    Все люди, у которых были публичные активные репозитарии были адекватными вменяемыми разработчиками. Да, уровень и объем знаний бывает разный, но адекватность во многих случаях фактор немаловажный.
    Практически все разработчики без реп были низкого или среднего уровня. Были разработчики, у которых были закрытые репозитарии, они тоже были нормальными.
    OpenSource - это в некоторой степени показатель развития человека.
    Ответ написан
    1 комментарий
  • Как быстро писать документацию?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Диктуйте. Только хорошему софту, вроде Dragon от Nuance.
    Ответ написан
  • Node.js и php - как совместить?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Возьмите socketo.me и добавьте веб-сокеты на страницу. Вместо zeroMQ можно redis pub/sub прикрутить, если хотите.
    Ответ написан
    Комментировать
  • Как сделать редирект на русскую и английскую версию сайта?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Правильное решение - использовать информацию из заголовков об используемом языке.
    Если же не удается определить язык по данным из браузера, следует опираться на определение через Ip-адрес. Просто опирайтесь на код страны. Если не найдена, то всегда открывайте версию на английском языке.
    Ответ написан
    Комментировать
  • Как разбить большую функцию на несколько мелких?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Откройте для себя namespace.

    Никогда не делайте префиксы функций, а то будет вот такое говно `syn_whitelabel_form_whitelabel_partner_node_form_alter()` (это реальный код).

    Освойте ООП в конце концов. Собирайте свои функции внутри одного функционального домена в один класс.
    Если функция внутренняя объявляйте ее приватной и вызывайте через `self::`.

    По поводу проверки параметров - PHP позволяет объявлять типы параметров, например array или классы. Во многих случаев этих вещей достаточно.

    Разбивать большие функции на мелкие нужно тогда, когда действие повторяется хотя бы один раз или может быть использовано другой частью проекта.
    Типичный пример - валидаторы, они могут быть использованы повсеместно.
    Ответ написан
    Комментировать
  • Курсы в Америке по программированию?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Если вы про обучение, то неплохие курсы тут
    https://www.codeschool.com/
    https://www.codecademy.com/
    https://www.khanacademy.org/

    Ну и Standford University предлагает кучу курсов бесплатно https://www.youtube.com/user/StanfordUniversity/pl... (ищите по вкусу, есть почти на любую тему и не только программирование, но и математика).

    Еще есть огромное количество ресурсов для обучения и очень много бесплатно.

    Coding - это все равно что на русском загуглить "кодить". У вас будет миллионы страниц результатов с курсами.
    Есть еще DevOps система, может с ней спутали www.koding.com

    Тут еще хорошая подборка www.inc.com/larry-kim/9-places-you-can-learn-how-t...
    Ответ написан
    Комментировать
  • Книги для изучения основ и логики?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Обе задачи были на логику, т.к. у вас просили найти ответы на простые вопросы.
    Вы завалили собеседование, т.к. думали о том, как вы его пройдете, а не занимались решением задач.
    Ответ написан
    Комментировать