• Так вам нужен 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, но в итоге был найден максимально простой и быстрый вариант.
    Читать дальше →
  • Отладка исходного кода подсистем Unity3D

    Добрый день. Как вы наверно знаете, с ноября 2014 Unity начала выкладывать исходный код подсистемы UI, а с марта 2017 — исходный код движка и редактора. И хотя их коммиты не всегда успевают за релизами, по крайней мере можно покурить почитать код и понять логику работы движка, более того — если собрать проект и подменить dll в каталоге установки Unity — с большой вероятностью Unity будет корректно работать. Естественно возникает вопрос — можно ли отлаживаться с пересобранной dll, погружаясь в дебри движка? И как вы понимаете, ответ — да, хотя информацию об этом в интернете пришлось собирать по крупицам, комбинируя подходы и экспериментируя, что и послужило причиной данной статьи.

    Сейчас будет краткое объяснение процесса, если вам нужны конкретные инструкции — можете скипнуть эту часть.
    Читать дальше →
  • Как спасти сайт за 7 шагов и 20 минут

    Спасаем сайт, находящийся на IP, который попал под ковровую бомбардировку Роскомнадзора.


    Пост для не самых опытных пользователей, поэтому может содержать излишнюю конкретику, с точки зрения матерых админов.


    Будем поднимать тунель с помощью haproxy.
    Haproxy будет работать на уровне TCP. Этот метод хорош тем, что не надо переносить SSL ключи и вообще, возни минимум.


    1. Покупаем за границей VPS с Ubuntu 16.04 LTS


    Надо убедиться, что его IP не находится в блок-листе: http://blocklist.rkn.gov.ru


    2. Ставим haproxy


    sudo apt-get install haproxy
    Читать дальше →
  • Разработать собственное маленькое ICO?

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


    Допустим, у вас есть идея на реализацию {подставь свое}, вы уверены что людям это надо, но очень хочется собрать немного средств для реализации. У вас команда из одно (максимум трех человек). На Kickstarter вы идти не хотите.



    Разрабатывать тут не много. Нужно лишь нарисовать логотип и дизайн сайта, разработать контракт на Ethereum (язык Solidity), сделать верстку и ядро сайта, написать тексты, подготовить маркетинг-план, нарисовать всякие изображения, разработать тексты для публикаций, разобраться с Docker и Docker Compose, выучить Linux и научится играть на бубне.

    Ну давай уже!