• Проекты на Arduino и их моделирование

    Многие из вас уже знакомы с таким весьма интересным и удобным в разработке “конструктором” как — Arduino. Эта статья — один из подходов к разработке и реализации проектов на Arduino.


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


    Читать дальше →
  • Версионирование в Golang с vgo

    Версионирование в Golang с vgo


    В Go есть простая стандартная команда go get, которая скачивает зависимости. Эта команда устанавливает последнюю версию, из master ветки репозитория.


    Это отлично подходит для небольших одиночных проектов. Но что если имеется два проекта которые зависят от разных версий одной сторонней библиотеки?


    Versioned Go Command (vgo)


    В Golang версии 1.10 нам предоставили Versioned Go Command сокращенно vgo. Эта консольная команда позволяет загружать и импортировать необходимые версии библиотек.


    Проект находится в статусе активной разработки и для продакшена рекомендуют пока использовать dep.

    Читать дальше →
  • Домашний медиа-сервер

    Выбор


    По ряду причин столкнулся с дилеммой выбора домашнего медиа-сервера… Покупка готового аппаратно реализованного не рассматривалась по той причине, что в любом случае 24 часа в стуки гоняю домашний сервер, и как бы решил использовать имеющиеся ресурсы, а не покупать новые. Почитав кучу сравнений различных программных реализаций выбрал наиболее дешевый вариант, точнее абсолютно бесплатный, который так и называется Домашний медиа-сервер
    Читать дальше →
  • Верстальщика псто

    <BR> или <BR />? Или всё же <BR/> ?


    Идея статьи накипела, можно сказать.



    В последнее время (уже не раз наталкивался на такую ситуацию) кто угодно может заявить, что он «верстает». Цена верстки обычно ниже плинтуса, зато требования «а чтоб в IE работало… и на iPad не разваливалось… Ой, что у нас на 'этом' не так как везде» могут быть совершенно разнообразными и требования к знаниям не меньше чем у полноценного разработчика фронтэнда.


    Итак «преамбула»


    Несколько раз сталкивался с ситуацией, когда на большом проекте кто-то с горящим взором решает «зачистить» «древний код», избавиться от излишков, крикнуть «старые браузеры в топку» и т.п.


    Вот пример:
    из тега <BR /> в местах, которые попались под руку. был удален пробел. Код достался по наследству, скажем, из мелового периода (ну или из юрского, боюсь ошибиться). Итог — конфликты при слиянии в мастер-ветку в гит для продакшна. В условиях, когда на разрешение конфликтов времени и ресурсов маловато. И это только то, что на поверхности (без тестирования в нужных браузерах).
    Читать дальше →
  • Так вам нужен React или все же React Native разработчик?

    Количество клиентов, которые выбирают React Native для своего продукта однозначно растет. Такой вывод можно сделать заглянув и на фриланс платформы, и в разделы поиска работы. Но если в мире фриланса есть более четкое понимание какими навыками должен обладать React Native разработчик, то у большинства компаний наблюдается некое размытие понятий.
    Читать дальше →
  • Опыт эксплуатации домашнего медиа сервера

    Первый опыт установки медиасервера в домашней сети случайно произошел еще в древнем 2013 году, когда был куплен медиаплеер с функцией NAS и DLNA. И как показала практика данная штука оказалась удобной
    Читать дальше →
  • The Swift Programming Language. Основы. Часть 1 — Константы и Переменные

    Swift — это новый язык программирования для разработки приложений на iOS, macOS, watchOS и tvOS. Тем не менее, многие части Swift будут схожи с вашим опытом разработки на C и Objective-C.


    Swift предлагает вам свою версию всех фундаментальных переменных C и Objective-C, включая Int для целых значений, Double и Float для значений с плавающей запятой, Bool для логических и String для текстовых. Так же Swift предлагает мощные версии трех типов коллекций, Array, Set и Dictionary, которые будут описаны в главе «Типы коллекций».


    Как и C, Swift использует переменные, чтобы хранить и считывать значения с помощью идентификационного имени. Так же Swift делает более обширным использование переменных, чьи значения изменить нельзя. Они известны как константы, но они реализованы намного лучше тех, что вы видели в C. Константы используются в Swift повсеместно, чтобы сделать код более безопасным и чистым, в случае, когда вы работаете со значениями, которые изменять не нужно.


    Кроме уже знакомых вам типов данных, Swift представляет современные типы данных, которые вы не встретите в Objective-C, такие как «Кортежи». Они дают вам возможность создавать и использовать группы значений. Вы можете их использовать, чтобы в результате функции возвратить несколько значений в одну обособленную переменную.


    Swift так же представляет необязательные типы данных, в которых отсутствует значение. Они. Могут говорить как «Здесь есть значение, которое равно x», так и «Здесь нет значения вовсе». Их использование похоже на на использование указателей nil в Objective-C, но они работает везде, а не только для классов.

    Читать дальше →
  • Утилита подсчета размера директорий

    Утилита подсчета размера директорий


    Добрый день!
    При разработке или администрировании на ОС Windows раз в полгода, год, пару лет возникает задача почистить диск от накопившихся логов, временных файлов, устаревших дистрибутивов и т.п. мусора.
    Меня все-таки "достала" необходимость вручную ходить по папкам, подпапкам и пытаться найти кто же все-таки занимает пространство. Так появилась утилита командной строки diskusage.

    Читать дальше →
  • Почему SETI — ненаучна

    Все мы давно привыкли к тому, что уфологическая мифология, наукой не является. И когда мы слышим очередную историю про летающие блюдца, то лишь насмешливо-презрительно изрекаем шуточку на тему Рен-ТВ. Существует однако, иная культурная парадигма, выстроенная вокруг идеи инопланетян, к которой однако в просвещенных кругах, положено относиться с пиететом. Я говорю об SETI, Search for Extraterrestrial Intelligence, программе поиска внеземного разума. В данной статье я собираюсь показать, что SETI не менее ненаучна, чем уфология, что данное социокультурное явление стоит отнести скорей отнести к религии, оккультизму, или в лучшем случае, философии.
    Читать дальше →
  • Работа с временем на Swift

    Всем привет! Я начинающий Swift разработчик. В моем последнем проекте мне потребовалось изменять отображенное расписание в соответсвии с днем недели и временем. Как обычно, я начал искать информацию по этому поводу в интернете на англоязычных сайтах для разработчиков, но ничего стоящего не нашел, потому что все гайды были написаны для предыдущих версий языка Swift.

    Понятное дело, что полноценные Swift-программисты уже знают все это, поэтому напомню, что данный Гайд не для вас, а для таких же новичков, как и я.
    Читать дальше →
  • VPN на роутере Билайн для обхода блокировок

    Билайн активно вводит в своих домашних сетях технологию IPoE. Данный подход позволяет авторизовать клиента по MAC-адресу его оборудования без применения VPN. При переводе сети на IPoE VPN-клиент роутера становится незадействованным и продолжает настойчиво стучаться в отключенный провайдерский VPN-сервер. Нам остается только перенастроить VPN-клиент роутера на VPN-сервер в стране, где не практикуются блокировки интернета, и вся домашняя сеть автоматически получает доступ к google.com (на момент написания статьи этот сайт был заблокирован).

    Читать дальше →
  • Локальный пакет Composer для создания проектов

    Проблема.


    Предположим такую ситуацию: Вам необходимо создать сервис, который будет основой для ряда последующих. Наследники этого сервиса, например, могут создаваться копированием папки родителя и установкой зависимостей внутри себя. И жить они все должны в моно-репозитории.


    Какие пути решения сразу приходят на ум? Самое простое, наверное, создать подобный alias (если вы в *nix):


    alias create-project="cp -r project/ new-project/ && cd new-project/ && composer install"

    Конечно есть желание сделать все более элегантно и поэтому следующим по счету, но первым по разумности, в голову приходит решение использовать возможности Composer.

    Читать дальше →
  • Как развить самодисциплину

    Тут мы разберёмся почему самодисциплина выигрывает у мотивации. Многие уверены, что успешные люди, такие как Илон Маск, Павел Дуров, Альберт Эйнштейн, и т.д. достигли своего успеха из-за огромной мотивации. По сути мотивация, это чувство, когда ты занимаешься полезным делом и получаешь от этого удовольствие, но порой просто мотивации недостаточно. Поэтому для современного человека очень важна самодисциплина.

    Итак, давайте разберёмся, что это такое?
    Читать дальше →
  • Как бороться с многоязычностью в Magento 2

    Немного предыстории


    Magento 2 это относительно новая версия довольно «мощного» решения для создания интернет магазинов. Что же ее делает такой «мощной» — конечно же, огромная масса уже готового функционала с коробки, причем даже в бесплатной версии, и да, есть бесплатная версия, и эта бесплатная версия является так же опенсорсной с очень активным комьюнити. В общем, разработка там идет на ура, релизы частые, фич много, код пишут вдумчиво, и особое спасибо за акцент на расширяемости. Но как я и говорил эта версия относительно новая и разных недоработок в ней еще достаточно, об одно из них и пойдет дальше речь.
    Читать дальше →
  • Настройка и установка прокси-сервера Dante для доступа к определенным адресам

    В последнее время часто появляется необходимость возобновить доступ к каким-либо сервисам, пострадавшим от ковровых блокировок серверов Amazon и Google. Простейший вариант — установить на VPS прокси-сервер, который соединяется с нужными адресами. Не буду детально останавливаться на покупке и запуске VPS, в этом нет ничего сложного. А вот настройку прокси-сервера стоит рассмотреть подробнее. Я использовал бесплатный прокси-сервер Dante на сервере с Ubuntu 16.04.
    Читать дальше →
  • Tor proxy для NodeJS и бота Телеграм

    Задача: обойти блокировку Телграма для бота, крутящегося на NodeJS на Raspberry Pi
    Устанавливаем Tor
    apt-get install tor

    Открываем конфиг tor, расположенный по адресу: /etc/tor/torrc
    И убеждаемся, что там есть такие строки
    SocksPort 127.0.0.1:9050
    А вот эту строку надо «закомитить», т.е. она должна выглядеть так
    # SocksPolicy accept
    Это означает, что мы принимаем все запросы, ничего не отфильтровывая.
    Читать дальше →
  • Доступность во время информационного блэкаута — разворачиваем VPN за пять минут

    В связи с упорной и кардинально бездумной работой бешеного принтера, вчера пришлось озадачиться разворачиванием собственного гейта в мир. Всевозможные поисковики пестрят сотнями тысяч статей об этом деле, начиная от проприетарных решений и заканчивая тысячами мануалов по настройке OpenVPN, но в итоге был найден максимально простой и быстрый вариант.
    Читать дальше →