Архив за 29 декабря 2015 - 6

Небольшая предыстория.

imageОднажды вечером подошел ко мне сын и сказал, что хочет поиграть в Марио. Летом у бабушки на даче он любил «зарубиться» в дождливую погоду. А за окном как раз дождь. Не долго думая я скачал ему первый попавшийся эмулятор 8-ми битной приставки и игру. Однако, оказалось, что удовольствие от игры на клавиатуре совсем не то. Идти покупать джойстик было уже поздно. И тогда я подумал, что можно обойтись и без него. Под рукой у нас была старенькая Nokia Lumia, ее размеры и форма примерно совпадали с нашими нуждами. Было решено написать джойстик. Сын отправился рисовать дизайн на листе бумаги в клеточку, а папа пошел варить кофе и думать, как бы осуществить эту идею с наименьшими временными затратами.

Я решил пойти по пути наименьшего (с моей точки зрения) сопротивления. Эмулятору приставки в настройках надо указывать нажатые кнопки, значит наше приложение должно нажимать кнопки. Нажатие кнопок можно эмулировать при помощи старого доброго WINAPI.

Конечной идеей стало клиент-серверное приложение. Клиент (телефон) при нажатии на кнопку посылает запрос на сервер, который, в свою очередь, в зависимости от того что пришло эмулирует нажатие или отпускание кнопки клавиатуры. Связь же осуществляется через сокеты. Вроде все просто. Начинаем делать.
Читать полностью »

Однажды, когда я отдыхал в компании друзей в студенческом лагере МИФИ, один из них рассказал мне, что недавно решил попробовать посадить на участке клубнику. Купил горшки, нарыл где-то почву, подвел шланги для полива. И все бы ничего, хозяин спит — клубника растёт, да только приходится стабильно раз в неделю или даже чаще ездить на дачу, дабы растения не засохли без воды.

Вспомнив про завалявшуюся в комоде парочку Arduino, а также давнее желание осуществить нечто большее, чем просто моргание светодиодами, я сразу решил взяться за эту задачу и сделать в этот раз, по возможности, всё до конца.

Ещё одна система автополива растений с использованием ESP8266 и Blynk - 1
Читать полностью »

Немного запоздалое продолжение фантастической повести. Для тех кто забыл (или не знал) что там было раньше — ссылки на предыдущие части ниже.

Предыдущие части

«Худой мир». Глава 4 - 1
Читать полностью »

Компания Apple применила меры безопасности после провального года - 1

После волны инцидентов с нарушением безопасности, компания Apple сделала определенные шаги для того, чтобы в 2016 году не повторились проблемы с ее программным обеспечением, которые все могли наблюдать в последние месяцы. Были применены меры безопасности вместе с обновлениями ее операционных систем для мобильных устройств (iOS) и Mac (OS X), ее телевизионного сервиса (Apple TV), веб-браузера Safari, а также операционной системы для ее нашумевших смарт-часов (watchOS).

Этот шаг был обусловлен тревожным числом уязвимостей, которые присутствовали в ее программном обеспечении. Чтобы дать некоторое представление о той ситуации, в которую попала Apple, когда были выпущены обновления для версии 9.2 операционной системы iOS, то необходимо сказать, что было обнаружено свыше 50 инцидентов безопасности, в то время как количество проблем с OS X достигло свыше сотни.

Apple выпустилаЧитать полностью »

С 13 по 15 января 2016 года в Токио пройдет выставка Wearable Expo, посвященная носимой электронике. На этом мероприятии, организуемом второй год подряд, компания Hitachi Maxell планирует показать литиево-ионные аккумуляторы, существенно превосходящие существующие по плотности энергии. Они называются ULSiON.

image

В английском есть такая аббревиатура — TIFU. Привести здесь её точное значение мы не можем, но вы без труда найдёте его в Сети. А после «литературной обработки» TIFU можно перевести как «сегодня я всё испортил». В контексте этого поста данная фраза относится к использованию функции Math.random() в JavaScript-движке V8. Хотя случилось это не сегодня, а пару лет назад. Да и дров я наломал не по своей вине, корень зла таится в самой этой функции.

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

Дональд Кнут, «Искусство программирования», том 2.

Надеюсь, что к концу этого поста вы согласитесь с двумя утверждениями:

  • Мы были идиотами, поскольку использовали генератор псевдослучайных чисел в V8, не понимая его ограничений. И если очень лень, то безопаснее использовать криптографически стойкие генераторы псевдослучайных чисел.
  • В V8 необходима новая реализация Math.random(). Работу текущего алгоритма, кочующего от одного программиста к другому, нельзя считать удовлетворительной из-за слабой, неочевидной деградации, часто встречающейся в реальных проектах.

Хочу подчеркнуть, что сам движок V8 — замечательный продукт и его создатели очень талантливы. Я ни в коей мере не обвиняю их. Просто эта ситуация иллюстрирует, насколько сильно влияют на процесс разработки даже небольшие нюансы.
Читать полностью »

С 1 по 10 января 2016 года все курсы HTML Academy, как базовые, так и продвинутые, можно пройти бесплатно.

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

Для тех, кто о HTML Academy не слышал, рассказываю.

Если вы задаётесь суперпопулярным нынче вопросом: «как научиться программировать» и не знаете с чего начать, начните с вёрстки. Это хороший старт, который позволит понять, интересно ли вам писать код, увидеть результаты своего труда, создать для себя сайт-визитку.

image
Не просто картинка для привлечения внимания. Перед вами инструктор Кекс — символ, талисман и всеобщий любимец курса
Читать полностью »

Бесплатный практический курс по Bash и другие хорошие новости - 1

Привет!

Давно не писали про обновления в нашем образовательном проекте Хекслет, а тут как раз Новый год — самое время поделиться хорошими новостями. Мы сделали бесплатным популярный курс «Bash: Основы командной строки»! Это уникальный курс, потому что упражнения в нем (как и везде в Хекслете) выполняются в условиях, приближенных к боевым: вам доступен личный контейнер с root-доступом, в котором среди прочего запущена оболочка Bash.

Курс затрагивает навигацию, работу с файловой системой, пейджеры, перенаправления и потоки, историю, псевдонимы и другие аспекты работы с Bash, которыми должен владеть любой уважающий себя программист.
Читать полностью »

Доброго дня, уважаемые.
Хочу поделиться с Вами решением одной творческой задачи. Надеюсь кому-то будет полезно.
Итак,

ДАНО:

маломощная железка с arm процессором и собранный под нее и установленный Debian 7 wheezy.

ЗАДАЧА:

поставить FreeRADIUS 3.0.X, настроить его на работу с БД SQLITE. Т.е., учетные записи пользователей (которых нужно аутентифицировать) RADIUS должен брать из БД SQLITE.
Читать полностью »

Оптимизация загрузки операторов мультиканального колл-центра - 1

Как вы считаете, сколько обращений может одновременно обработать оператор современного колл центра: одно, два или может быть десять?

Если ваш ответ: «больше одного», то эта статья для вас. Из нее вы узнаете, как можно на практике решить задачу одновременной обработки нескольких обращений с помощью специального алгоритма обработки, известного как Agent Capacity Model (Загрузка оператора).

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js