На майских праздниках выдалось достаточно много свободного времени, потому было просто необходимо продолжить эксперимент начатый в предыдущей статье. Ранее мне удалось получить данные температуры и влажности из датчика Xiaomi, теперь же была поставлена задача научиться отправлять эти данные MQTT-брокеру.
User
Zip-файлы: история, объяснение и реализация
![](https://habrastorage.org/webt/bo/tw/dr/botwdrbtegpbnpnwmy7id56fbaa.jpeg)
Мне давно было интересно, как сжимаются данные, в том числе в Zip-файлах. Однажды я решил удовлетворить своё любопытство: узнать, как работает сжатие, и написать собственную Zip-программу. Реализация превратилась в захватывающее упражнение в программировании. Получаешь огромное удовольствие от создания отлаженной машины, которая берёт данные, перекладывает их биты в более эффективное представление, а затем собирает обратно. Надеюсь, вам тоже будет интересно об этом читать.
В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
Разработка монолитной Unix подобной OS — Начало (1)
Осваиваем компьютерное зрение — 8 основных шагов
Для тебя уже не является новостью тот факт, что все на себе попробовали маски старения через приложение Face App. В свою очередь для компьютерного зрения есть задачи и поинтереснее этой. Ниже представлю 8 шагов, которые помогут освоить принципы компьютерного зрения.
![image](https://habrastorage.org/webt/ly/so/6q/lyso6qzevvngklidzasorwgwq1m.jpeg)
Прежде, чем начать с этапов давайте поймём, какие задачи мы с вами сможем решать с помощью компьютерного зрения. Примеры задач могут быть следующими:
Как создать игру, если ты ни разу не художник
![](https://habrastorage.org/webt/96/hp/x0/96hpx0qpk4w0_hmjm3csu0lj92o.png)
В жизни каждого программиста бывали моменты, когда он мечтал сделать интересную игру. Многие программисты эти мечты реализовывают, и даже успешно, но речь сейчас не о них. Речь о тех, кто любит играть в игры, кто (даже не имея знаний и опыта) и сам пытался их когда-то создавать, вдохновляясь примерами героев-одиночек, добившихся всемирной известности (и огромных прибылей), но в глубине души понимал, что тягаться с гуру игростроя ему не по силам.
И не надо…
Жизнь на частицах
Классический пример системы с простыми правилами и сложным поведением — клеточные автоматы, именно на них я и ориентировался, пытаясь подобрать правила. Конечно же, для клеточных автоматов правила будут в большинстве случаев проще. Но частицы могут быть красивее!
Под катом много мегабайт гифок.
![](https://habrastorage.org/webt/pg/ht/6a/pght6a2y5pahylmmanxoaxf3cac.gif)
Изучаем Docker, часть 1: основы
Docker — это платформа, которая предназначена для разработки, развёртывания и запуска приложений в контейнерах. Слово «Docker» в последнее время стало чем-то вроде синонима слова «контейнеризация». И если вы ещё не пользуетесь Docker, но при этом работаете или собираетесь работать в сферах разработки приложений или анализа данных, то Docker — это то, с чем вы непременно встретитесь в будущем.
→ Часть 1: основы
→ Часть 2: термины и концепции
→ Часть 3: файлы Dockerfile
→ Часть 4: уменьшение размеров образов и ускорение их сборки
→ Часть 5: команды
→ Часть 6: работа с данными
![image](https://www.bigboxcontainers.co.za/wp-content/uploads/2015/07/GAD-mobile-gallery-1.jpg)
Если вы пока не знаете о том, что такое Docker, сейчас у вас есть шанс сделать первый шаг к пониманию этой платформы. А именно, освоив этот материал, вы разберётесь с основами Docker и попутно приготовите пиццу.
Организация шинной инфраструктуры, соединяющей агенты системного интерфейса STI версии 1.0
Вы и ваша работа *
![image](https://habrastorage.org/getpro/habr/post_images/4f6/161/731/4f6161731fe2046254b846be2d0ce467.jpg)
Доктор Ричард Хэмминг, профессор морской школы Монтерея в штате Калифорния и отставной учёный Bell Labs, прочёл 7 марта 1986 года очень интересную и стимулирующую лекцию «Вы и ваши исследования» переполненной аудитории примерно из 200 сотрудников и гостей Bellcore на семинаре в серии коллоквиумов в Bell Communications Research. Эта лекция описывает наблюдения Хэмминга в части вопроса «Почему так мало учёных делают значительный вклад в науку и так многие оказываются в долгосрочной перспективе забыты?». В течение своей более чем сорокалетней карьеры, тридцать лет которой прошли в Bell Laboratories, он сделал ряд прямых наблюдений, задавал учёным очень острые вопросы о том, что, как, откуда, почему они делали и что они делали, изучал жизни великих учёных и великие достижения, и вёл интроспекцию и изучал теории креативности. Эта лекция о том, что он узнал о свойствах отдельных учёных, их способностях, чертах, привычках работы, мироощущении и философии.
Радости и невзгоды IT-шника, который захотел летать
Ровно год назад идея попробовать себя в роли пилота реализовалась и я начал свой долгий и тернистый путь в мир радиомоделистов, скорости и высоты. Я нисколько не разочарован в приобретённом хобби, оно затянуло меня с головой. Когда за секунды взмываешь в небо, слышишь рёв моторов, проходишь трассу с лучшими результатами — это просто непередаваемые чувства. Но у всего этого есть и обратная сторона. Падения, поломки, вечные ремонты и опять поломки, долгие вечера с паяльником и необходимость в большом количестве запасных частей. Спустя год, хотелось бы поделиться всеми радостями и невзгодами этого увлечения, предостеречь кого-то от ошибок, а для кого-то возможно помочь сделать выбор, нужно ли ему это хобби.
Видео-курс «Спать мало, но правильно»
Мы в Zero to Hero решили взять её за основу (плюс приведённые в ней книги) и снять онлайн-курс "Спать меньше, да лучше". Курс готов, он совершенно бесплатен и его уже посмотрело 4 тысячи человек.
![Наша актриса Катя (из Литвы) Видео-курс как быстро выспаться](https://habrastorage.org/files/006/48f/0e5/00648f0e529e4766b5b55e7a4b4f4ecd.png)
Боли в руках при работе за компьютером. Часть 3. Синдром лестничной мышцы
![Топография лестничных мышц и плечевого сплетения](https://habrastorage.org/files/ce0/e68/ae0/ce0e68ae0b1f40c19f00b749dc4a29fd.jpg)
Сосудисто-нервные пучки проходят в окружении мышц, костей, связок и фасций. Первым местом, где может быть сдавливание сосудисто-нервного пучка для руки является прохождение его через канал, образованный передней и средней лестничной мышцей.
При синдроме лестничных мышц первоначально возникает нарушение венозного и лимфатического оттока от руки, что вызывает отёчность конечности и создает предпосылки для сдавливания сосудисто-нервных пучков в узких местах на руке. Чаще всего это происходит в запястном канале, локтевом канале, под круглым пронатором предплечья.
Боли в руках при работе за компьютером. Часть 2. Освобождаем надплечья и шею
В прошлой статье вы познакомились с основными проблемами, вызывающими боли в руках при работе за компьютером.
![image](https://habrastorage.org/files/8d8/378/1c3/8d83781c3ea14f319312f92bd9d87765.jpg)
Теперь пришло время практики. Напряжение в шее и надплечьях – «не снимаемый груз на плечах» самая частая проблема, с которой обращаются за помощью ко мне, как преподавателю соматики. Сегодня мы будем учиться снимать напряжение в шее и надплечьях.
Урок займет 15-20 минут, вы можете делать его сидя, не отходя от компьютера. Под катом – видео урока, правила выполнения соматических уроков и текстовая расшифровка расширенной версии урока (осторожно – очень много букв!).
Как «прокачать» навыки программирования… практически без программирования
![](https://habrastorage.org/files/064/4db/0b2/0644db0b21fe4f7f9434ad80042e882a.jpg)
/ фото hackNY.org CC
Введение в GitLab CI
Публикую перевод моей статьи из блога ГитЛаба про то как начать использовать CI. Остальные переводы гитлабовских постов можно найти в блоге компании Softmart.
Представим на секунду, что вы не знаете ничего о концепции непрерывной интеграции (Continuous Integration — CI) и для чего она нужна. Или вы всё это забыли. В любом случае, начнем с основ.
Представьте, что вы работаете над проектом, в котором вся кодовая база состоит из двух текстовых файлов. Более того, очень важно, чтобы при конкатенации этих файлов в результате всегда получалась фраза "Hello world." Если это условие не выполняется, вся команда лишается месячной зарплаты. Да, все настолько серьезно.
Бот для Telegram. Rails way
- Легковесный клиент для API ботов.
- Базовый класс для контроллера обновлений с парсером сообщений. Сделан на основе AbstractController из ActionDispatch, предоставляет колбэки, сессии, сохранение контекста сообщений и прочее.
- Rack-middleware для продакшена, чтобы принимать update-хуки, и поллер с автоматической загрузкой обновленного кода для удобной разработки.
- Rake таски, хэлперы для рельсовых маршрутов и тестов.
Интересно? Для установки добавьте
telegram-bot
в Gemfile
, подробности под катом.Собеседование на программиста в Amazon
Представляю вашему вниманию перевод своей статьи Amazon software engineer interview, изначально опубликованной на английском на sobit.me.
Не так давно со мной связался технический рекрутер из Amazon. Компания организовывала трехдневное онсайт собеседование по найму программистов в их берлинский офис.
Весь процесс, начиная с того, как со мной связались, и заканчивая подписью контракта, занял около двух месяцев. Я хотел бы поделиться опытом, как все прошло, и что, на мой взгляд, помогло мне получить работу.
Если я не упомянул чего-то важного в статье, спрашивайте в комментариях. Постараюсь ответить максимально подробно.
Эффективное внедрение зависимостей при масштабировании Ruby-приложений
![](https://habrastorage.org/files/5a9/58b/875/5a958b8754c44b3fb834dd045d8636e2.png)
В нашем блоге на Хабре мы не только рассказываем о развитии своего продукта — биллинга для операторов связи «Гидра», но и публикуем материалы о работе с инфраструктурой и использовании технологий из опыта других компаний. Программист и один из руководителей австралийской студии разработки Icelab Тим Райли написал в корпоративном блоге статью о внедрении зависимостей Ruby — мы представляем вашему вниманию адаптированную версию этого материала.
Чистая архитектура в Go-приложении. Часть 1
![](https://habrastorage.org/files/938/553/6f2/9385536f2f3649fdba1cf361dce6480a.jpg)
Перед этой статьей я перевел ее прообраз — смотреть здесь. Поскольку в рамках этой статьи будет активно использоваться описанное в статье Дядюшки Боба, то лучше начать с нее… если Вы, конечно, ее еще не читали.
В отличие от первой статьи, в названии внутреннего слоя здесь фигурирует Domain вместо Entity (Сущность) и при переводе я так и оставил этот термин, чтобы избежать путаницы, поскольку он фигурирует так же и в исходном коде примеров. Так же я перевел Domain как Домен, поскольку на мой взгляд этот термин тут имеет более широкую смысловую нагрузку.
В данной части будет описана общая концепция и работа с внутренним слоем.
14 книг, которые вдохновили Илона Маска
![](https://habrastorage.org/getpro/geektimes/post_images/cf1/37e/149/cf137e1496e682827590ed576200bea0.jpg)
Когда у Илона Маска, главы Tesla и SpaceX, спрашивают, как он научился строить ракеты, он дает простой ответ: «Я читаю книги». Предприниматель очень любит читать, и не пропускает возможности, чтобы изучить очередную книгу. При этом Маск читает как художественные книги, научно-популярную литературу, так и чисто технические издания, которые нужны для специалиста в той либо иной области науки или техники.
Когда Маск жил в Южной Африке (все его детство прошло именно в ЮАР), над ним насмехались сверстники, и он убегал в мир фантастики и фэнтези. Любимые его книги этого жанра — Джон Толкин и Айзек Азимов. Сейчас Маск выделяет 14 книг, которые изменили его самого и всю его жизнь.
Information
- Rating
- Does not participate
- Location
- Россия
- Date of birth
- Registered
- Activity