Как стать автором
Обновить
28
0
Pavel Golovin @31337Ghost

Golang Developer

Отправить сообщение

Как спастись от «зайцев». Инструкция по борьбе с ультрафиолетом

Время на прочтение 22 мин
Количество просмотров 68K

Однажды в далекие школьные годы у меня появилась идея заняться авто-реставрацией, благо у отца был в наличии уже практически сгнивший (но с отличным мотором) АЗЛК Москвич-408. Первым делом конечно же было решено поменять пороги и укрепить раму металлическим швеллером. Самый быстрый способ — естественно сварка, благо у отца и самодельный аппарат на Ш-образных пластинах был. Электроды и я нашел и, в принципе, довольно сносно приварил куски металла. Довольный своей работой заснул, думая о том, что я буду приваривать с утра. А с утра проснулся и понял что "ослеп", а отец поздравил "с первым пойманным зайцем". Чтобы понять о чем разговор — проследуйте под cut.


Читать дальше →
Всего голосов 88: ↑87 и ↓1 +86
Комментарии 121

Делим Laravel на компоненты

Время на прочтение 5 мин
Количество просмотров 11K

Привет, Хабр. Недавно получил в руки интересный проект, который, несмотря на свою простоту требовал не использовать какой-либо фреймворк. О пакетах речи не шло, поэтому было принято решение использовать привычные компоненты Laravel. Если есть необходимость в использовании очередей, Eloquent или контейнера — добро пожаловать под кат.

Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 14

Асинхронное программирование в JavaScript (Callback, Promise, RxJs )

Время на прочтение 10 мин
Количество просмотров 45K

Всем привет. На связи Омельницкий Сергей. Не так давно я вел стрим по реактивному программированию, где рассказывал про асинхронность в JavaScript. Сегодня я бы хотел законспектировать этот материал.



Но перед тем как начать основной материал нам нужно сделать вводную. Итак, давайте начнем с определений: что такое стек и очередь?


Стек — это коллекция, элементы которой получают по принципу «последний вошел, первый вышел» LIFO


Очередь — это коллекция, элементы которой получают по принципу («первый вошел, первый вышел» FIFO


Окей, продолжим.



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

Читать дальше →
Всего голосов 29: ↑24 и ↓5 +19
Комментарии 50

Что должен делать тимлид: роли, обязанности и навыки

Время на прочтение 3 мин
Количество просмотров 106K


Тимлид – это снежинка. При детальном рассмотрении в каждой компании тимлид принимает разную форму. Где-то от него ждут только передвижения задач по доске, где-то – наймов и увольнений, а где-то просят одновременно проектировать архитектуру, ставить бизнес-цели и думать о болях пользователей продукта. На самом деле все обстоит еще сложнее. Различия встречаются не только между разными компаниями, но и даже в рамках команд, находящихся в одном офисе.


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


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

Читать дальше →
Всего голосов 73: ↑71 и ↓2 +69
Комментарии 28

Создаю глобальную базу знаний по элементам питания

Время на прочтение 2 мин
Количество просмотров 27K
Тестирую элементы питания на профессиональном оборудовании. Цель охватить большую часть рынка элементов питания Европы и России.

На данный момент протестированы более 230 аккумуляторов и батареек. Сделано более 1000 тестов. Израсходовано 4 ящика батареек и несколько месяцев жизни.

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


Читать дальше →
Всего голосов 139: ↑139 и ↓0 +139
Комментарии 81

Построение графиков работы DHCP сервера

Время на прочтение 10 мин
Количество просмотров 20K
На работе очень часто стоит вопрос — у нас DHCP сервер хорошо работает? Я работаю в internet провайдере, DHCP обеспечивает работу клиентской сети. Исторически сложилась следующая схема работы: DHCP серверов два, конфигурация генерируется на биллинговом сервере и с помощью rsync разливается на сервера. Используем Centos в качестве рабочей системы и ISC DHCP в качестве сервера. Никакого failover не настроено и не настраивалось — нет необходимости. Вполне достаточно, что сервера работают по идентичному конфигу. Используется привязка абонента к мак адресу, в случае смены оборудования у абонента есть возможность зайти в личный кабинет и указать новый мак. Генерация конфига выполняется раз в 5 минут, если у нового конфига изменилась md5 сумма — то сервис перестартовывает. Схема работает несколько лет, проблем нет.

Периодически возникали проблемы, что конфиг генерился синтаксически неправильным — и после рестарта сервис падал. Добавили в скрипт рестарта проверку синтаксиса (dhcpd -t), падения прекратились. Ну и со стороны билинга обвешано проверками — на наличие адреса, мака, и т.п.

Пару раз столкнулись с ситуацией, когда из сети приходят запросы, а ответы в сеть не доходят. Оказался виноват агрегатор, полечили. Все это время не хватало простого графического анализа — как работает DHCP сервер. Как показал опыт разборок с проблемами — банальным просмотром логов и оценкой, сколько каких сообщений принимает и отсылает сервер — можно уже примерно оценить наличие проблемы в сети. Ну и в принципе график можно показать ночному оператору с инструкцией — если здесь резкое изменение показателей — звони админам.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 32

Адаптация приложения Feedly под Material Design

Время на прочтение 6 мин
Количество просмотров 15K
Привет, Хабрахабр! Недавно мы анонсировали конкурс для разработчиков приложений, и в посте на Хабре давали ссылки на самые интересные материалы по Material Design’у. Часть из них имела пометку «RU — скоро», и сегодня мы рады представить вам первую адаптированную статью о том, как создатели приложения Feedly адаптировали его к новому визуальному языку Android-приложений.


An Exploration in Material Design by Arthur Bodolec с комментариями
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 14

Автоматический регулятор температуры газовой колонки

Время на прочтение 5 мин
Количество просмотров 56K
Хочу рассказать о создании несложного устройства, которое сильно облегчило жизнь домашним обитателям — автоматический регулятор температуры газовой колонки. Подобные устройства уже создавались и описывались здесь на хабре, хотелось сделать чуть более продвинутый девайс и подробно описать весь процесс создания от задумки и измерения до реализации, без использования готовых модулей типа Arduino. Устройство будет собрано на макетной плате, язык программирования — C. Это моя первая разработка законченного (и работающего!) устройства.
Читать дальше →
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 31

Удобная структура iOS проекта

Время на прочтение 4 мин
Количество просмотров 32K
В сети можно найти множество туториалов, обучающих работе со встроенными фреймворками и сторонними библиотеками для iOS. Но редко можно встретить статьи, рассказывающие об общих вещах. Таких, как, например, создание удобной структуры проекта.

Скорее всего, опытные разработчики давно пользуются этими приемами. Но я постоянно сталкиваюсь с проектами, которые делали, не соблюдая этих простых правил.
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 19

Дизайн мобильных приложений: почему мы работаем в @1x

Время на прочтение 4 мин
Количество просмотров 62K
image

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

В этот раз хотелось бы рассказать о некотором нюансе разработки дизайна приложений, который облегчает нам жизнь — о разрешении дизайн-макетов и о плюсах и минусах выбора того или иного исходного разрешения.
Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 15

Очередной умный дом, в трех частях. Часть третья, пользовательско-интерфейсная

Время на прочтение 4 мин
Количество просмотров 46K
Итак, подошло время рассказать и показать как это все управляется. Как я уже говорил во второй части, после нескольких итераций — все остановилось на HTML + JS. Писать отдельное приложение под Android я не планировал, но жизнь, как обычно, внесла некоторые коррективы.

Ссылки на первые две части:

image
Читать дальше →
Всего голосов 28: ↑28 и ↓0 +28
Комментарии 13

ИК-контроллер бытового кондиционера или реверс-инжиниринг пульта ДУ

Время на прочтение 6 мин
Количество просмотров 60K
Приветствую, уважаемые хабрачитатели! В этой, первой для меня, статье я хотел поделиться своими исследованиями и наработками. Имея в своей квартире кондиционер я ощущал необходимость управлять им когда меня нет дома. Возвращаясь с дачи или просто с работы и, включив кондиционер, приходится ждать некоторое время пока не спадет жара. А хочется приходить в уже легкую прохладу.
«Вот бы можно было удаленно включить кондишн...» — подумал я.
Далее, что у меня получилось...
Всего голосов 38: ↑37 и ↓1 +36
Комментарии 11

Apple Watch: как сделать приложение под часы и не облажаться

Время на прочтение 18 мин
Количество просмотров 44K
Сегодня стартовали официальные продажи Apple Watch. 90% умопомрачительных концептов приложений под них, которые можно найти в Сети, нереализуемы — тем, кто знаком с гайдлайнами Apple, это хорошо известно. О том, что реализовать на часах все же можно и как это лучше сделать с точки зрения разработки и дизайна — под хабракатом.
Такие желанные
Читать дальше →
Всего голосов 42: ↑38 и ↓4 +34
Комментарии 6

Передача проекта от дизайнеров iOS разработчикам

Время на прочтение 6 мин
Количество просмотров 79K


В настоящее время департамент мобильной разработки Rambler&Co активно расширяется, в том числе и в плане iOS-разработчиков и UX дизайнеров. Большое количество людей и проектов, ведущихся ими, усложняет и без того непростой процесс передачи дизайна разработчикам. Всем, так или иначе связанным с мобильной разработкой, знакомы проблемы и разногласия, возникающие на стыке интересов программиста и дизайнера — начиная тем, в каких единицах измерять расстояния, и заканчивая тем, кто должен нарезать элементы экранов в различных разрешениях. Чтобы окончательно решить проблему в рамках нашей компании, мы решили подготовить подробные гайдлайны по этому взаимодействию.
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Комментарии 25

«Умный Дом» и система MySensors: Часть 0

Время на прочтение 4 мин
Количество просмотров 56K
В первой части я немного рассказал о моем опыте создания устройств на основе системы MySensors. Должен признать, описание получилось не полным — без начала и без конца.

В этот раз займемся «началом», значит это будет Часть 0.
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 9

Встраиваем RecyclerView в CardView

Время на прочтение 14 мин
Количество просмотров 18K


Прочитав пост на хабре о новых виджетах «RecyclerView и CardView. Новые виджеты в Android L», решил попробовать использовать. В сети много примеров, где CardView встраивается в RecyclerView. Интересовало наоборот встроить RecyclerView в CardView. Чтобы еще эта конструкция была фрагментом.
Читать дальше →
Всего голосов 18: ↑15 и ↓3 +12
Комментарии 4

RecyclerView и CardView. Новые виджеты в Android L

Время на прочтение 4 мин
Количество просмотров 120K
Как известно, в июне проходила очередная конференция Google I/O, в ходе которой было вкратце рассказано о двух новых виджетах. И поскольку на хабре об этих виджетах пока ничего не написано, я решил написать эту статью с простенькой демонстрацией.

Демо приложение доступно на гитхабе по ссылке.

Собственно, под катом можно прочесть пару слов о RecyclerView, CardView и о подключении соответствующих библиотек в Gradle. Также, можно посмотреть коротенькое видео, демонстрирующее стандартную анимацию операций со списком в RecyclerView.
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 15

Node.js демон для FreeBSD: forever + rc.d

Время на прочтение 3 мин
Количество просмотров 10K
В процессе работы над проектом с использованием Node.js в качестве серверсайда, возникла задача запуска JS скрипта в качестве сервиса, со всем плюшками типа start, stop, restart. По этой теме в принципе уже достаточно информации, но она в основном сводится к использованию Monit + Init под линуксом, либо кратких советов типа «use nodemon, Luke».

В моём случае в качестве продакшн-сервера была машина на FreeBSD. В качестве утилиты запускающей JS файл как процесс мне приглянулся forever. Эта штука, в отличии от nodemon, умеет следить за запущенными под ней процессами и поднимать их при падении без ожидания изменения в исходниках скрипта, что очень удобно именно на продакшене. К тому же forever умеет показывать текущий список запущеных процессов, с отображением их аптайма, ну и позволяет останавливать/перезапускать процессы по имени или индексу.

Недолго думая, был написан rc.d скрипт:
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 21

Алгоритм Брезенхема в паяльной печи — теория

Время на прочтение 2 мин
Количество просмотров 37K
Алгоритм Брезенхема является одним из старейших алгоритмов в машинной графике. Казалось бы, как можно применить алгоритм построения растровых прямых при создании домашней паяльной печи? Оказывается, можно, причем с очень достойным результатом. Забегая вперед, скажу, что данный алгоритм очень хорошо скармливается маломощному 8-битному микроконтроллеру. Но обо всем по порядку.
Читать дальше →
Всего голосов 33: ↑33 и ↓0 +33
Комментарии 37

Аквапоника своими руками с применением микроконтроллера

Время на прочтение 5 мин
Количество просмотров 157K
image

Всем привет. Как-то на просторах Интернета мне попался интересный американский проект. Суть проекта в том, что можно выращивать различные агрокультуры, используя не почву, а, так сказать, симбиоз рыб с растениями. Получается замкнутый цикл. Вы кормите и выращиваете рыб, их продукты жизнедеятельности, растворённые в воде, являются питательной средой для растений. А эти растения, получая питательные вещества для роста из воды, очищают её. Весь процесс повторяется по кругу. Данный метод называется «аквапоника».
Читать дальше →
Всего голосов 112: ↑112 и ↓0 +112
Комментарии 122
1

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность