Как стать автором
Обновить
11
0
Арвид @Psih

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

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

Лучше, чем говорят: три необходимых вещи, чтобы следующий MacBook стал одним из лучших ноутбуков Apple

Время на прочтение9 мин
Количество просмотров31K
Это какая-то, наверное, особая форма слоупочества, но в середине весны, практически на пороге ожидавшегося тогда в июне релиза нового поколения MacBook, я запрыгнул в последний вагон поезда, из которого остальные уже собрались выходить — и стал обладателем «Макбука» пока ещё нынешнего поколения. Того самого, который без вентилятора, с одним портом USB-С на все случаи жизни и очень плохим паблисити после релиза.

Сама идея MacBook — тонкого, лёгкого и без встроенного пылесборника — меня захватила. Но негативные отзывы сразу настраивали интересоваться уже следующим поколением. Поэтому я даже не вспомнил про «Макбук», когда мне потребовался новый рабочий компьютер. Им стал 15-дюймовый MacBook Pro — мудрейший выбор для удалённо работающего человека, как мне казалось.


За шумом вокруг гаджетов почти незаметно, как ноутбуки приблизились к совершенству

Выбор оказался ужасным. Для меня Pro 15" стал личным провалом. До такой степени, что, за 2 месяца до предполагаемого релиза следующего поколения (не случившегося ни тогда в июне, ни вчера, 12 сентября) — я купил розовый MacBook. В конце концов, чего мне опасаться его маломощности, когда самая ресурсоёмкая моя задача, обычно, браузер? (Спойлер: за пять месяцев поводов жаловаться на его мощность так и не возникло).
Читать дальше →
Всего голосов 97: ↑50 и ↓47+3
Комментарии371

Докеризация nginx и php на сокетах с ротацией логов

Время на прочтение5 мин
Количество просмотров23K
В статье на Хабре обсуждался «docker way»(TM), который гласит: один контейнер — один процесс.
one process per container
Each container should have only one concern

Decoupling applications into multiple containers makes it much easier to scale horizontally and reuse containers. For instance, a web application stack might consist of three separate containers, each with its own unique image, to manage the web application, database, and an in-memory cache in a decoupled manner.

You may have heard that there should be “one process per container”. While this mantra has good intentions, it is not necessarily true that there should be only one operating system process per container. In addition to the fact that containers can now be spawned with an init process, some programs might spawn additional processes of their own accord. For instance, Celery can spawn multiple worker processes, or Apache might create a process per request. While “one process per container” is frequently a good rule of thumb, it is not a hard and fast rule. Use your best judgment to keep containers as clean and modular as possible.

If containers depend on each other, you can use Docker container networks to ensure that these containers can communicate.
Следование этому принципу при докеризации nginx чревато двумя последствиями. Настроить взаимодействие nginx и php-fpm в разных процессах через unix сокет немного сложнее, чем может показаться. И ротация логов, которая при обычной установке идет «из коробки», не может осуществляться в принципе, т.к. требует отправки сигнала USR1 nginx, для чего нужен ещё один процесс.
Читать дальше →
Всего голосов 17: ↑11 и ↓6+5
Комментарии25

Как мы ускорили наш DNS стек в 3 раза

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

Компании Cloudflare уже пошёл 6-й год и предоставление авторитативных DNS серверов было основной нашей инфраструктуры с самого начала. С тех пор мы выросли, став самым большим и быстрым поставщиком услуг DNS в Интернете, обслуживая около 100 000 сайтов из списка Alex top 1M sites, и более 6 миллионов DNS зон.


imageImg


На сегодняшний день наш сервис DNS отвечает около 1 миллиона запросов в секунду — не считая трафика во время атак — с помощью глобальной anycast сети. Разумеется, технологии, которые мы, будучи растущим стартапом, использовали для того, чтобы обслуживать сотни и тысячи зон несколько лет назад уже не справляются с миллионами, которые мы имеем сегодня. В прошлом году мы решили заменить два ключевых элемента в нашей DNS инфраструктуре: часть нашего DNS сервера, который отвечает на авторитативные запросы и систему, которая берёт пользовательские изменения и обновляет их на пограничных серверах по всему миру.

Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии3

Видеоконференцсвязь для одной государственной организации: почему нужны аппаратные решения

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

Студия телеприсутствия

Итак, однажды мы выиграли тендер на создание ВКС (видеоконференцсвязи) для одного госзаказчика, эксперты которого должны постоянно взаимодействовать с различными министерствами и ведомствами стран СНГ и не только. Серверное ядро системы должно было находиться в Москве у заказчика. Ещё из важного — два больших зала, переговорки, студия телеприсутствия, персональные терминалы для руководства. В общем, много железа.

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

Итак, давайте сначала посмотрим на инфраструктуру всего проекта оснащения комплекса зданий по этажам.
Читать дальше →
Всего голосов 27: ↑20 и ↓7+13
Комментарии43

6 типичных ошибок при заключении договоров на разработку ПО

Время на прочтение9 мин
Количество просмотров34K
В очередной раз хотим затронуть тему, когда компания разработчик ПО выполняет свою работу, но заказчик не хочет ее оплачивать. И судя по количеству публикаций на подобную тему, актуальность данного вопроса для отечественных разработчиков ПО растет.

Описанная ниже ситуация — это ситуация из жизни. В момент написания статьи данная ситуация еще не получила окончательного положительного разрешения для компании разработчика ПО (далее будем называть ее ИТ компания, название компании в данный момент раскрыть не можем), с которым мы работаем вот уже более года по взысканию семизначной суммы задолженности. Возможно, для кого-то данная статья окажется полезной и позволит избежать подобной участи, либо позволит минимизировать возможные потери если ситуация еще не сильно запущена.
Читать дальше →
Всего голосов 38: ↑31 и ↓7+24
Комментарии47

Низкий FPS при прокрутке страницы. Решение проблемы background-attachment: fixed

Время на прочтение2 мин
Количество просмотров41K
Решил я тут недавно на одном из своих сайтов сделать легкий редизайн. И дошло дело до фона. Показался он мне каким-то скучным. Захотелось его немного «оживить». Подобрал подходящую картинку небольшого размера, загнал ее в свойство фона:

body{
	background: url("../images/bg.jpg") no-repeat center center / cover fixed;
}


и довольный нажал F5. Красота, да и только!

Начал скроллить страничку вниз и чувствую, что-то не то…


Такое чувство, как будто я играю в Crysis на очень старом компьютере. Почему же на сайте начались «тормоза» и прокрутка проходит рывками?

Я начал свое расследование…
Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии33

Почему Яндекс отказался от подтверждения сайтов txt-файлом

Время на прочтение5 мин
Количество просмотров55K
Эта история про забавное стечение обстоятельств и один крошечный баг, который до недавнего времени имел место быть в сервисе «Я.Вебмастер». Хронология и некоторые моменты, изложенные тут, немного изменены, для более складного повествования. Но тем не менее, суть, остаётся не изменной.



Началось всё с того, что я заметил странную особенность CMS Wordpress. Так, при при первом обращении, к моему сайту по адресу www.domain.com/non_existent_file.ext выводился заголовок «404 Not Found», а при повторном «200 OK». На тот момент казалось, что на это могут влиять мои правки в движке и различные прикрученные костыли. Но при диагностике, на этапе отключения плагинов, выяснилось, что причиной такого поведения является плагин «W3 Total Cache». Не разбираясь в деталях, с мыслью «допилят ещё», включил его снова и забыл.

Через пару месяцев решил добавить этот сайт в Я.Вебмастер. Сервис предоставлял несколько способов для подтверждения владения сайтом.
Читать дальше →
Всего голосов 72: ↑68 и ↓4+64
Комментарии31

Как я 8 месяцев переписывал свою криптовалюту с PHP на Go. Часть 1

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


«Не звони и не пиши мне больше!!!!» — пришла смс-ка от моей девушки Кати. Через пару часов я осознал, что теперь у меня появилась куча свободного времени и я решил переписать Dcoin на Go.


Читать дальше →
Всего голосов 100: ↑78 и ↓22+56
Комментарии58

Видео с очередной встречи PUG: Phalcon и Zephir

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


Привет, Хабр!

Сегодня хотим поделиться видео с пятой встречи днепропетровской PHP User Group. Александр Трищенко и Иван Стеценко рассказывали про Phalcon и Zephir. Информацию о спикерах и докладах можно найти под видео.


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

Взгляды на Zend PHP Certification

Время на прочтение2 мин
Количество просмотров19K
О том, что такое Zend Certified PHP Engineer (ZCE) и как к нему готовиться было достаточно статей. Я опишу свое мнение о ZCE (PHP 5.5) и свой процесс подготовки за неделю (с учетом моего пятилетнего опыта практической разработки).

Взгляды на ZCE


Сама по себе сертификация, в общем и целом (за исключением нескольких вопросов), проверяет, насколько усвоенной оказалась официальная документация PHP. Может попасться пару практических вопросов, а также вопросы на знание паттернов (мне попался про Registry и его применимость), что немного радует.
Читать дальше →
Всего голосов 23: ↑16 и ↓7+9
Комментарии22

Подробно об объектах и классах в PHP

Время на прочтение25 мин
Количество просмотров94K
Сегодня объекты используются очень активно, хотя это трудно было предположить после выхода PHP 5 в 2005 году. Тогда я ещё мало что знал о возможностях этого языка. Пятую версию PHP сравнивали с предыдущей, четвёртой, и главным преимуществом нового релиза стала новая, очень мощная объектная модель. И сегодня, десять лет спустя, около 90% всего PHP-кода содержит объекты, не изменившиеся со времени PHP 5.0. Это убедительно говорит о том, какую роль сыграло внедрение объектной модели, неоднократно улучшавшейся на протяжении последующих лет. В этом посте я хотел бы рассказать о том, как всё устроено «под капотом». Чтобы люди понимали суть процессов — почему сделано так, а не иначе — и лучше, полнее использовали возможности языка. Также я затрону тему использования памяти объектами, в том числе в сравнении с эквивалентными массивами (когда это возможно).

Я буду рассказывать на примере версии PHP 5.4, и описываемые мной вещи справедливы для 5.5 и 5.6, потому что устройство объектной модели там почти не претерпело изменений. Обратите внимание, что в версии 5.3 всё не так хорошо с точки зрения возможностей и общей производительности.

В PHP 7, который пока ещё активно разрабатывается, объектная модель переработана не сильно, были внесены лишь незначительные изменения. Просто потому что всё и так хорошо работает, а лучшее — враг хорошего. Были добавлены возможности, не затрагивающие ядро, но здесь об этом речи не пойдёт.
Читать дальше →
Всего голосов 58: ↑54 и ↓4+50
Комментарии15

Nginx и https. Получаем класс А+

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

Недавно вспомнилось мне, что есть такой сервис — StartSsl, который совершенно бесплатно раздаёт trusted сертификаты владельцам доменов для личного использования. Да и выходные попались свободные. В общем сейчас напишу, как в nginx настроить HTTPS, чтобы при проверке в SSL Labs получить рейтинг А+ и обезопасить себя от последних багов с помощью выпиливания SSL.

Итак, приступим. Будем считать, что у вы уже зарегистрировались на StartSsl, прошли персональную проверку и получили вожделенный сертификат. Для начала опубликую итоговый конфиг, а после этого разберу его.
Читать дальше →
Всего голосов 61: ↑52 и ↓9+43
Комментарии85

Лучшая практика развертывания SSL/TLS, часть 2. Конфигурация

Время на прочтение4 мин
Количество просмотров16K
Представляем вашему вниманию вторую часть перевода статьи о развертывании SSL/TLS, первую часть можете почитать тут.

2. Конфигурация

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

2.2. Используйте безопасные протоколы

Существует пять версий протоколов в SSL/TLS семейства: SSL v2, SSL v3, TLS v1.0, TLS v1.1 и TLS v1.2. Из них:
• SSL v2 является небезопасным и не должен быть использован.
Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии4

Переходим на HTTPS на Nginx: шпаргалка

Время на прочтение3 мин
Количество просмотров150K
Уже второй раз сталкиваюсь с задачей «поставь https на наш сервер» от моего босса, поэтому решил сделать для самого себя шпаргалку, а заодно и для всех остальных. Итак, ситуация следующая: к нам пришел босс и заявил, что ему нужен https. Под катом я напишу 5 простых шагов, как все сделать буквально за час. Приступим.
Читать дальше →
Всего голосов 66: ↑43 и ↓23+20
Комментарии60

IOCELL Netdisk: необычный NAS

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

Сетевых хранилищ данных на рынке представлено много. Большие и маленькие, быстрые и медленные, хорошие и разные. Мы так привыкли к ним, что, кажется, уже ничем производители не смогут удивить искушённую публику. Ну, NAS. Ну, подключается через сеть. Наверняка ведь через SMB или NFS, по старому знакомому TCP/IP, с уже практически «стандартным» веб-интерфейсом.
Тем приятнее, когда появляются неожиданные исключения, новизной использованных решений вызывающие как минимум поднятую бровь и удивлённое «Ого!» Попавшие мне в руки Netdisk SOLO и Netdisk DUO от компании IOCELL – живой тому пример.

Что же в них необычного?
Читать дальше →
Всего голосов 37: ↑27 и ↓10+17
Комментарии44

Принтер для футболок: от домашней поделки до серийной модели текстильного принтера

Время на прочтение6 мин
Количество просмотров261K
Летом 2011 года я опубликовал на хабре пару статей (вот и вот) о том, как из подручных материалов практически «на коленке» собрать текстильный принтер. Как оказалось — тема эта весьма интересная многим людям, и с момента публикации этих статей любителями поиздеваться над принтерами было собрано много самодельных аппаратов, которые успешно печатают и даже приносят прибыль.

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

Так что если вам все это интересно, то добро пожаловать под кат.

image

Читать дальше →
Всего голосов 162: ↑161 и ↓1+160
Комментарии58

Следующая версия PHP будет называться PHP 7

Время на прочтение1 мин
Количество просмотров53K
imageДолгий спор вокруг названия следующей версии PHP сегодня наконец-то закончился: итак, следующая версия будет иметь порядковый номер 7.

В основу PHP7 ляжет PHPng. Многие из свежих предложений и патчей делаются уже на его базе — в том числе такие интересные вещи, как uniform variable syntax, native big integers и abstract syntax tree. Из-за изменений во внутренних API, многие сторонние расширения (например, xdebug, расширения для mongodb и memcached, php-protocolbuffers) должны быть переработаны, поэтому в PHP 5.7 PHPng войти уже не сможет. Казалось бы, проблема не так велика — но, например, Yahoo в своих разработках использует около 400 различных PHP-расширений, поэтому процесс должен занять некоторое время.
Читать дальше →
Всего голосов 90: ↑82 и ↓8+74
Комментарии62

Настройка современного Puppet сервера с нуля

Время на прочтение9 мин
Количество просмотров64K
Недавно я переосмыслил процедуру установки нового сервера Puppet с нуля на Ubuntu 12.04, включая все современные свистелки и перделки. В итоге у меня получился этот гайд.

Для начала нам потребуется чистая Ubuntu c работающей сетью и настроенным DNS.

В итоге мы должны получить:
  • Установленый везде Puppet 3-й версии
  • Конфиги в git репозитории с общим доступом
  • Динамические окружения, управляемые r10k
  • Поддержку PuppetDB
  • Поддержку Hiera


Данное руководство довольно длинное, т.к. все настройки делаются вручную, чтобы впоследствии легко можно было пользоваться результатом и подстраивать его под себя. Единственным исключением является PuppetDB, который проще установливать через собственный модуль от Puppet Labs, а не вручную.

Предполагается, что все команды будут выполнены от пользователя root на сервере Puppet, если не указано иное.
Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии15

PHP Zend сертифицирование сегодня

Время на прочтение4 мин
Количество просмотров25K
image
Причины для прохождения PHP Zend сертифицирования могут быть разными: кто-то хочет проверить свои знания, кому-то хочется выделится из огромного числа php разработчиков, а у кого-то это требование на работе. Месяц назад мне удалось успешно пройти сертифицирование, и в этой статье я расскажу как выглядит этот экзамен сегодня, где искать материалы для подготовки, а так же солью немного инфы о реальных вопросах с экзамена.
Читать дальше →
Всего голосов 57: ↑47 и ↓10+37
Комментарии32

Форматирование цены, или как я input переписывал

Время на прочтение5 мин
Количество просмотров23K
По работе недавно столкнулся с, вроде бы, тривиальной задачей — форматирование цены и деление ее по разрядам.
Ничего сложного решил я. Тем более на просторах интернета лежит уже куча готовых решений от простых и скучных (разворачиваем строку, добавляем через каждые 3 символа пробелы и разворачиваем назад) до вполне интересных (уверен что эту регулярку многие видели, но речь не о ней)
price.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ')


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


На глаза попадались даже библиотеки, для разбивания чисел по разрядам, но я решил остановится на вышеупомянутой регулярке.
Повесил форматирование на keyup, что может быть сложнее?
Как выяснилось - может.
Всего голосов 25: ↑15 и ↓10+5
Комментарии30
1

Информация

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