Pull to refresh
4
0

Пользователь

Send message

Если есть в кармане пачка сигарет…

Reading time8 min
Views133K
Но если есть в кармане пачка сигарет,
Значит всё не так уж плохо на сегодняшний день.
Это – знаменитая фраза из знаменитой песни Виктора Цоя. Песня, вроде, вообще не о курении, но не так давно я понял – так мог написать только курильщик. Не знаю и, наверное, никогда уже не узнаю, что имел в виду Виктор Цой, но до меня смысл этой фразы дошел примерно год назад.

В этой фразе заключена одна из главных особенностей курения и его влияния на психику и ценности человека. Можно эту особенность игнорировать, или отвергать, а я предлагаю присмотреться к ней поподробнее и использовать в своих целях. Я пристально наблюдал за влиянием курения на свой мозг на протяжении года, спешу поделиться результатами.
Читать дальше →
Total votes 235: ↑203 and ↓32+171
Comments542

Свой облачный хостинг за 5 минут. Часть 1: Ansible, Docker, Docker Swarm

Reading time11 min
Views138K
Cloud hosting

Привет Хабр! Последние 1.5 года я работал над своим проектом, которому был необходим надежный облачный хостинг. До этого момента я больше 10 лет занимался веб-программированием и когда я решил построить свой хостинг у меня были относительно поверхностные знания в этой области, я и сейчас не являюсь системным администратором. Все что я буду рассказывать может выполнить обычный программист в течение 5 минут, просто запустив набор сценариев для Ansible, которые я подготовил специально для вас и выложил на GitHub.
Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments42

Цели обмена знаниями в IT компании

Reading time5 min
Views7.7K
«Знание есть сила», и я считаю, что компании должны поощрять культуру обмена знаниями между разработчиками. Удержание информации сотрудниками не является правильным путем по карьерной лестнице и не сделает никого ключевой персоной в долгосрочной перспективе. Ряд активностей, объединенных общим названием, напоминает win-win игру, в которой выигрывают обе стороны. За счет увеличения эффективности каждого отдельного разработчика, компании достигает более высоких целей наиболее эффективным образом. Основной трудностью, которая мешает продвижению этих активностей в компаниях, является отсутствие прямой связи между инвестициями в них и отдачи. Я не встречал четкой системы оценки прогресса этих мероприятий. Поэтому для себя расписал, как цели обмена знаниями связаны с реальными процессами в компании.
Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments7

Оптимизируем производительность веб-страницы: CSS

Reading time5 min
Views51K
В наше время скорость интернета довольно высока. Казалось бы, можно забыть о тех временах, когда нам приходилось ждать по 20-30 (а то и больше) секунд, чтобы веб-страница загрузилась и отобразилась на экране — теперь мы ждём отрисовки страницы в среднем около одной-двух секунд. Однако не стоит забывать, что значительная часть юзеров заходит на ваш сайт с мобильных устройств, на которых связь не всегда стабильна. В связи с этим будет совсем не лишним уделить немного внимания оптимизации вашего кода.

В этой статье речь пойдёт о различных методах оптимизации таблиц стилей. Я расскажу о том, что влияет на скорость отрисовки страницы, как заставить браузер отрисовывать страницу быстрее и какие инструменты использовать для оптимизации.
Читать дальше →
Total votes 42: ↑32 and ↓10+22
Comments22

Не стоит бояться использовать HandlerSocket

Reading time12 min
Views20K

(пример работы протокола HandlerSocket на картинке)

Вступление


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

HandlerSocket — это протокол, реализованный в одноимённом плагине для РСУБД MySQL, позволяющий использовать NoSQL методику для доступа к данным, хранящимся в InnoDB таблицах. Основная причина, по которой используют NoSQL решения — это очень быстрый поиск по первичному ключу.

Еще про HandlerSocket
HandlerSocket работает как демон внутри процесса mysql, принимая TCP соединения и выполняя запросы клиентов. Он не поддерживает SQL запросы, вместо этого он предоставляет простой язык запросов для CRUD операций с таблицами. Именно поэтому он гораздо быстрее mysqld/libmysql в некоторых случаях:

HandlerSocket оперирует данными без парсинга SQL запроса, что приводит к уменьшению загрузки процессора.
Он поддерживает пакетное выполнение запросов. Можно отправить несколько запросов сразу и получить результат за один раз, что опять же снижает нагрузку на процессор и на сеть.
Протокол HandlerSocket более компактный, чем у mysql/libmysql, что приводит к сокращению нагрузки на сеть.

Подробнее можно почитать здесь:



Под катом вас ожидает:
  • Новая библиотека для работы с HS, написанная на PHP;
  • Сравнение производительности существующих решений + нового;
  • Symfony2 bundle для работы с HS;
  • Плагины к Munin для мониторинга активности HS;
  • Разные мысли вслух и рассказы о «шишках».

Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments15

Приводим в порядок css-код. Опыт Яндекса

Reading time6 min
Views90K
Всем привет!

Я работаю над фронтендом огромного проекта — поисковой выдачи Яндекса. И у нас, как и у любого другого большого веб-проекта, есть огромное количество css-кода и немаленькая команда, которая с ним взаимодействует.

Когда много людей, используя разные инструменты, пишут и редактируют css, со временем этот css может получиться очень запутанным, неконсистентым и в целом начинает выглядеть плохо. Например, кому-то удобнее писать вендорные префиксы в одном порядке, кому-то — в другом, кто-то ставит кавычки вокруг url, кто-то — нет, а кто-нибудь фикся срочную багу к релизу мог бы, к примеру, написать position: relative в начале блока свойств, незаметив что где-нибудь внизу между color и box-shadow, уже есть position: absolute, и долго гадать, почему у него ничего не работает.



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

Как мы этого добились, можно прочитать под катом.
Читать дальше →
Total votes 174: ↑169 and ↓5+164
Comments70

В чем разница между factory и provider в AngularJS (на пальцах)

Reading time2 min
Views53K
Как-то давно переводил статью «Понимание типов сервисов в AngularJS (constant, value, factory, service, provider)». На практике, конечно, не всё пригождается, поэтому в рамках понижения порога вхождения в Ангуляр, объясню проще.
Читать дальше →
Total votes 45: ↑36 and ↓9+27
Comments9

Information

Rating
Does not participate
Date of birth
Registered
Activity