• Провинциальный костёр или рождение нации

    Пролог
    Вызывайте пожарную бригаду! Только они смогут потушить костёр под его задницей.


    Год 1996
    Америка празднует день независимости. В честь этого Уилл Смит спасает планету от атаки пришельцев с помощью компьютерного вируса. Я же спасаю планету с помощью координации бойцов экипированными лазерными пушками. Увы спасение не в фильме, а в игре UFO: Enemy Unknown. В этот момент я понимаю, что хочу работать в ИТ. Но не из-за интереса к устройству лазерной пушки или крутости компьютерных вирусов. Всё из-за другой компьютерной игры — Leisure Suit Larry. В этой же игре есть мультики и сиськи! Что ещё нужно для нормального взросления мальчика? Только одно — что бы Мама игру не нашла. А что бы её не нашли — её надо спрятать. Так я узнал, что такое MS-DOS и Windows

  • Циклический сдвиг для 2^p разрядного числа на основе битовых операций

    Постановка задачи


    Возникла в ходе работы необходимость произвести циклический сдвиг 2^p разрядного числа на n байт. На просторах интернета была найдена формула (Уоррен Генри — Алгоритмические трюки для программистов — 2014):



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

    Решение


  • Entertainment vs. Education в обучении английскому языку

    Кризис образования в Украине в разгаре. Образования среднего, высшего, но главное, для автора этой статьи, образования языкового. Поскольку государство с успехом провалило все попытки обучить украинцев иностранным языкам за последние 20 с лишним лет, люди, естественно, пошли в частные языковые школы. Поверили, что частное образование качественнее государственного. Скажем откровенно, не сложно быть лучше того, что развалено коррупцией и низким профессионализмом.
  • Логин, пароль или с чем тебя едят

    По мотивам темы на Хабре.

    Да, это было давно. Базу vkontakte дампнули еще в 2011-2012 году. Тогда эти данные были лишь у единиц и ими пользовались в корыстных целях. Но после утечки базы в открытый доступ, она будто превратилась в бесполезный набор символов. Пароли от учетных записей были сменены службой безопасности автоматически. Стала обязательной привязка телефона, двухфакторная аутентификация, бла-бла-бла и т.д.

    Но обеспечило ли это безопасность пользователя? Попробуем дать подробный анализ.

    image
  • Повторяющаяся задача в jira с названием предыдущего месяца

    Доброго времени суток!

    У нас в компании есть необходимость ежемесячно создавать в jira одинаковые задачи, содержащие акты сверок с партнерами за предыдущий месяц, так чтобы в названии задачи было название компании-партнера и предыдущий месяц. Для этого был написан вот такой простой скрипт на питоне:

    import datetime
    from jira import JIRA
    
    jira = JIRA('https://jira.company.com', auth=('my_jira_account', 'pass'))
    
    today = datetime.date.today()
    first = today.replace(day=1)
    lastMonth = first - datetime.timedelta(days=1)
    
    summary='Акт название_партнера  ' + lastMonth.strftime("%m %Y")
    print(summary)
    
    new_issue = jira.create_issue(project='REG', summary=summary,
    description='повторяющаяся задача', issuetype={'name': 'Task'})
    
  • Unity — Enable Multidex или слишком много методов

    С чего все началось


    Всем привет. На определенном этапе разработки игры под Android на движке Unity я столкнулся с одной проблемой при билде. После добавления в проект таких плагинов как Appodeal и Google Play Games количество используемых методов превысило 65K и во время билда появилась следующая ошибка:

    Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
    > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

    Почитав документацию Appodeal, понял что надо включить Multidex. Решил это сделать. На сайте была ссылка с инструкцией для Android Studio. А мы то с вами на Unity, что же делать?

    А все довольно просто надо сделать всего три действия:

    Включить систему сборки Gradle


    Чтобы в своем проекте на Android включить систему Gradle в Unity выполним пару действий

    1. В Unity откройте Build Settings (File >> Build Settings)
    2. Если вы еще не выбрали платформу, то пора сделать это (Platform >> Android)
    3. В списке Build System выбираем Gradle (Build System >> Gradle )

    image
  • Умная Усадьба

    Задача заключалась в организации обмена информацией между конечными сенсорами, промежуточными узлами, устройствами хранения и отображения пакетами в Json-формате

    { ‘MCU’:’name’, ‘Value0’:99.9, …, ‘ValueN’:99.9}</b>
    

    где MCU — Имя микроконтроллера, к которому подключены сенсоры
    ValueX — название поля, состоящее из двух частей: Имя сенсора+Смысловое определение, например,
    ‘Home_T’ или ‘DHT_H’ или ‘DS_T5’

    Промежуточный узел — локальный микроконтроллер, коллекционирующий текущие показания с группы сенсоров, расположенных поблизости и, возможно, обладающих повышенной дальностью соединения, например, промежуточный узел ‘Пасека’, собирающий информацию (температура, влажность, уровень звука, вес) с ульев, или промежуточный узел ‘Домик’, собирающий информацию из гостевого домика (температура, влажность, задымленность), хранит только текущие значения сенсоров и периодически отправляет их выше по иерархии пакетами в Json-формате. Может отправлять информацию в IFTTT, иные облачные сервисы, в том случае, если качество связи достаточное для выхода в интернет в месте, где расположен это промежуточный узел.

    Устройства хранения и отображения предназначены для визуализации сгруппированной информации, в том числе накопленной за определенный период, при наличии соответствующих запросов. Простейшее подобное устройство — локальная метеостанция с функциональностью,

    Языком реализации изначально предполагался C++, но потом я передумал и решил писать на Micropython, убив этим двух зайцев — познать новый для меня язык и облегчить процесс кодирования и тестирования.
  • View Info Get (VIG) php

    Всем привет.


    Хочу поделиться с Вами методом/шаблоном, который часто использую при разработке.


    View Info Get (VIG)


    View — представление, html.
    Info — информация, информационный блок.
    Get — выборка данных.


    По своей сути VIG напоминает MVC — разделение на модель, представление и контроллер.

  • Как новичку определиться с языком программирования

    Привет, хабровчане.

    Сегодня хочу затронуть тему выбора языка программирования новичку. Если точнее — определиться с выбором.

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

    В своё время изучал PHP, Python, JavaScript, Java… И когда встал вопрос выбора, для того чтобы устроиться на первую работу разработчиком, сильно растерялся. Но волею судеб мне повезло и смог определиться с выбором. Это были непростые 6 лет, но способ нашёлся.
  • Прописные истины проектного менеджера. Статья 1. Внедряй

    Я около 15 лет в ИТ, из них более 10 лет в проджект-менеджменте.

    Почему вдруг задался вопросом писать написания статьи — потому что мне не всё равно, как будет развиваться ИТ в нашей стране и в мире в целом. А еще потому что, я поставил план 20 статей в этом году. И вот уже 12 февраля, а ни одной строчки в тему не написано.

    Итак, проблема №1, по моему личному мнению, почему даже хорошие проекты не «летят», — они не внедряются.
  • Квантовое будущее

     Первая часть фантастического произведения о весьма вероятном будущем, в котором IT-корпорации свергнут власть устаревших государств и начнут угнетать человечество самостоятельно.
       

    Вступление


       К концу 21-ого, началу 22-ого века завершился распад всех государств на Земле. Их место заняли могущественные транснациональные IT-корпорации. Меньшинство, принадлежащее к руководству этих компаний, форсировано и навсегда обогнало в развитии остальное человечество, благодаря смелым экспериментам с модификацией собственной натуры. В ходе конфликта с доживающими свой век государствами они вынуждены были переселиться на Марс, где начали вживлять сложные комплексы нейроимплантов, еще до рождения ребенка. Марсиане сразу же рождались не совсем людьми, с соответствующими возможностями, намного превосходящими человеческие.

       Главным идолом новой цивилизации «киборгов» стал Эдвард Крок – лучший разработчик компании «NeuroTech», который первым научился подключать компьютеры напрямую к мозгу человека. Его блестящий ум и определил образ «нейрочеловека» — хозяина нового мира, где виртуальная реальность взяла под контроль «устаревший» физический мир. Первые эксперименты с нейротехнологией часто сопровождались гибелью подопытных: пациентов интернатов, до которых обычно никому не было дела. Этот скандал был использован как повод, чтобы спровоцировать разгром корпорации «NeuroTech». Часть директоров компании, а также сам Эдвард Крок, руками ООН были осуждены в Гааге за преступления против человечности и приговорены к смертной казни. А корпорация NeuroTech перебралась на Марс и постепенно стала центром нового общества.
  • Области применения вебхуков на портале Битрикс24

    Под вебхуком понимается реакций стороннего по отношению Битрикс24 приложения – как правило некоторого PHP – файла – на событие его запуска. Это событие может быть вызвано из Битрикс24 через инициализацию данного файла (исходящий вебхук) или открытия данного файла на стороне стороннего сервера с вызовом методов REST API (входящий вебхук). Допускается и очень часто применяется комбинация исходящего и входящего вебхука.

    Вебхуки настраиваются в разделе приложений Битрикс24, также на них можно сослаться из роботов \ триггеров сущностей CRM \ задач, выполнить запуск исходящего вебхука из бизнес-процесса. При этом сам вебхук представляет собой всего лишь гиперссылку: входящий содержит адрес корпоративного портала, ключ авторизации, и вызываемый метод REST API. Исходящий вебхук – это всего лишь ссылка на сторонний сайт, работающий в https – режиме, куда передается некоторый набор данных в виде POST-запроса.

    Вебхуки представляют из себя предельно простой инструмент интеграции – для вызова методов REST API не надо проходит ресурсоемкую процедуру регистрации нового внешнего приложения, задействовать механизмы авторизации по протоколу OATH 2.0. Средством авторизации выступает уникальный ключ, хранящийся в ссылке входящего и запросе исходящего вебхука, в целях безопасности эти ключи рекомендуется периодически обновлять.

    Как можно догадаться, вебхуки дают нам мощную свободу действий, ограниченную лишь библиотекой методов REST API. Приведем возможные кейсы применения вебхуков.
  • Сортировка подстановкой в индексы

    Доброго времени суток всем. В данной статье я хотел бы поделиться с вами тем, что мучает меня уже некоторое время. Дело в том, что как то вечером, размышляя на тему алгоритмов сортировки (после удачно написанного Quick Sort для собеседования) я пришел к алгоритму довольно простого и, я бы сказал, даже в некоторой степени забавного в своей простоте, метода сортировки «массивов целых случайных чисел». Сначала я подумал, что кто-нибудь обязательно уже что-то подобное описал. Но поиски в русском сегменте интернета результатов не дали. В довольно обширной статье на Хабре по алгоритмам сортировок и их сравнении я ничего подобного не нашел тоже.

    Далее я постараюсь этот алгоритм коротко разобрать.
  • Повторение кода в контроллерах laravel

    Ещё вчера я безбожно плодил повторяющийся код в контроллерах laravel из-за того что в приложении может в нескольких точках выполняться одно и тоже действие, например — это создание пользователя.


    Это происходит в админ панели в форме создания пользователя, в API контроллере и может быть даже в artisan команде.

  • Зачем нужны сервисы приема SMS и с чем их едят

    Сервисы, предоставляющие временный номер для приема смс онлайн, появились после того как многие социальные сети, торговые площадки и прочие интернет ресурсы перешли с идентификации пользователя, при регистрации, через адрес электронной почты на идентификацию через отправленный код на телефонный номер, а зачастую и код на телефонный номер и подтверждение через электронную почту.

    Для кого существуют сервисы, предоставляющие виртуальные номера онлайн?


    Всю аудиторию пользователей ресурсов, предоставляющих услуги приема смс на телефонные номера онлайн, можно разделить на группы:
  • Про использование C++ в разработке игры на Unreal Engine 4

    Стоит ли использовать C++ для разработки игры в движке Unreal Engine 4?


    Сразу ответ на этот вопрос — нет. С++ — язык нижнего уровня и его хорошо использовать для разработки движков, технологий и техник рендеринга. Для разработки игр же стоит использовать блюпринты.

    Почему так?


    Это так, потому что блюпринты — это язык верхнего уровня, что означает, что он ближе к пользователю, блюпринты можно использовать в сочетаниях с редакторами имеющими визуальный интерфейс, что ускоряет разработку по сравнению с С++. Блюпринты компилируются в разы быстрее, чем программы на С++, что ускоряет тестирование.
  • PHP на Windows и IIS7 (Updated)

    Ранее на «Хабре» была статья PHP на Windows и IIS7.

    Ранее она мене очень помогала в настройке и конфигурации Windows Web Servers для работы с PHP. Но с версии PHP 5.3.х The PHP Group перестали создавать msi и exe установщики для движка php. Методом простого гугления по запросу «php для windows» я натолкнулся на страничку php Инструмент установки PHP на Windows в котором есть ссылка на «Microsoft Web Platform Installer (WebPI)».

    Screenshot страницы Инструмент установки PHP на Windows


    После перехода скачиваем под свою разрядность windows платформы «Web Platform Installer» и устанавливаем.

    Внешний вид Web Platform Installer


    WPI Позволяет установить как сам сервер IIS, ASP, NET Framework так и PHP, MySQL сервер.

    Вкладка продуктов

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

    P.S.: Все ссылки на страницы под катом.
  • Установка и настройка ноды Ripple



    Сегодня расскажу о том, как поднять ноду Ripple, так как на днях столкнулся лично с данным вопросом и обнаружил, что в рунете нету вообще информации об этом, в буржунете тоже информации не много, есть конечно официальная документация, но и она не всегда спасает. Обо всём по порядку.
  • Получение обычных SMS в мессенджеры Viber и Telegram (с помощью шлюзов GoIP)

    Во многих компаниях использующих IP-телефонию и применяющих GSM-шлюзы для корпоративной связи часто возникает вопрос приема и отправки СМС со своих номеров.

    Для китайских моделей GOIP существует неплохое решение GOIP-SMS-Сервер, о котором неоднократно упоминалось на просторах интернета и в нашем Habr сообществе в том числе. Это простой, бесплатный и удобный продукт, но СМС через WEB, особенно с мобильных не совсем удобно.

    Возникла идея приема и передачи СМС с помощью мессенджеров — и была реализована на ботах Telegram и Viber.

    Логика следующая: Обрабатываем и парсим запрос, Извлекаем тело СМС, передаем ботам и Отправляем в личные чаты — получаем СМС, особенно интересна тема владельцам iPhone с 1 sim, когда оперативно нужно получить сообщения в командировке или отпуске, от банков или сервисов регистраций или узнать о пополнении оператора:
  • Ваши посты в Google+ с фото и видео сохранены и открыты всем даже после удаления аккаунта Google+

    Проводя очередной регулярный обход своих данных и настроек приватности, я обнаружил один интересный факт, который может иметь для вас некоторое значение, если вы были или до сих пор являетесь пользователем Google+