Привет, Хабр! Меня зовут Олег, я PHP-и-не-только-разработчик в Badoo. Меня часто удивляет, насколько по-разному в языках программирования подходят к составлению стандартной библиотеки. Go — не исключение: отсутствие функции math.Round() меня удивило. Однако, покопавшись в этих ваших интернетах, я выяснил, в чём причина. Этими знаниями я и хотел бы поделиться в своём вольном переводе.
Everything Developer
Миграция базы данных с InnoDB на MyRocks
Зоджи-Ла, Индия
Привет, Хабр! Меня зовут Олег Ефимов, я работаю в Badoo в команде «Платформа», занимаюсь задачами хранения фотографий, интерфейсами сервисов и много чем ещё.
Мне часто приходится слышать, что в том, что касается серверных технологий, Badoo – довольно консервативная компания. Отчасти это так, но на самом деле мы используем много молодых языков программирования, новых инструментов и технологий. Одна из них – RocksDB, на основе которой Facebook создал MySQL storage engine – MyRocks. Пост о том, как Facebook осуществлял миграцию одной из своих баз данных с InnoDB на MyRocks, мне и захотелось для вас перевести.
Мониторинг приложений с помощью Pinba
Привет, Хабр! Мы в Badoo стараемся активно участвовать в жизни IT-сообщества: используем многие open-source-технологии и инструменты, а также делимся своими разработками.
Один из таких инструментов – Pinba – сервис для получения realtime-статистики от работающих приложений без накладных расходов на её сбор. Узнать побольше вы можете в этой статье.
Мы стараемся помочь всем, кто использует Pinba в своих проектах и всегда рады слышать success stories, связанные с Pinba. Этот перевод – одна из подобных историй от разработчиков Dailymotion.
Стандарт open source документации
Мотивация
Нас, авторов кода, стандарт спасёт от необходимости придумывать структуру документации для очередного проекта. Намного проще заполнять пробелы в заранее подготовленной структуре, чем думать о ней каждый раз. А чем проще и быстрее это будет происходить — тем больше разработчиков будет создавать хорошую документацию. (В конце концов, у нас останется больше времени на код и архитектуру — прим. пер.)
Стандартный формат также может сделать документацию более простой для понимания, если читатель будет знаком с её структурой. Для большинства вещей дизайн является лучшим способом привлечь потребителя, и именно дизайн ему нужен. Так что желание удовлетворить всех часто приводит к тому, что никто не оказывается удовлетворён, это касается и документации. Несмотря на то, что для обучения стоит применять персональный подход, я считаю, что тщательно продуманная и организованная документация позволит охватить больший процент потенциальных пользователей. Попытка же удовлетворить желания всех приводит к чрезмерному документированию: подобную документацию трудно сопровождать и она отпугивает читателя.
Во всяком случае, это только первый черновик стандарта, который я предлагаю. Комментарии приветствуются!
Наглядно о потоке выполнения в Node.js
Пример обработки запросов сервером с блокирующим чтением:

В первую очередь прокомментирую полезность использования неблокирующего ввода/вывода. Как правило, использовать блокирующие операции в Node.js стоит лишь на этапе инициализации приложения, и то не всегда. Правильная обработка ошибок в любом случае потребует использования try/catch, так что код при использовании неблокирующих операций не будет сложнее, чем при использовании блокирующих операций.
Нужно лишь помнить, что случае, когда запросов неблокирующих операций может оказаться больше, чем потоков libeio. В этом случае новые запросы будут становиться в очередь и блокировать выполнение, однако для программиста это будет происходить прозрачно.
Асинхронное программирование, коллбеки и использование process.nextTick()
Новая версия V8 будет на 50% быстрее

Переход Node.js под крыло Joyent, выпуск версий v0.2.5 и v0.3.1

Основной бизнес Joyent (облачные вычисления) вполне отвечает духу свободного и открытого Node. По этим причинам я заключил соглашение с Joyent об официальной поддержке Node.js. Единственное изменение, которое коснётся разработчиков — CLA будет подписываться не со мной, а с Joyent. Node будет продолжать регулярно выходить под лицензией MIT. В рамках соглашения — в дополнение к поддержке моих разработок — мы наняли Isaac Schlueter и планируем расширить команду ещё на одного человека в ближайшее время. Скоро мы начнём сдавать в аренду наши минималистичные инстансы no.de (хостинга с поддержкой Node) и разрабатывать на заказ различные модули и дополнения для Node.
Под катом описание изменений в выпущенных вчера версиях Node.js v0.2.5 и v0.3.1.
Node.js v0.2.4 и ожидаемые улучшения в ветке v0.3.x
И пусть разрабатываемая ветка всё ещё отмечена как «нестабильная», в ней ожидаются существенные улучшения производительности, переносимости и добавление новых возможностей, о которых стоит знать уже сейчас. Тем более, что эта версия уже вполне работоспособная.
Также в конце топика бонус в виде ссылок на репозитории пакетов Node.js v0.2.x и NPM (Node.js package manager).
Node-mysql-libmysqlclient v1.0.0
Understanding node.js
Если вы относитесь ко второй группе, я попробую объяснить, что же такое Node.js:
- Это инструмент командной строки. Вы скачиваете архив, компилируете и устанавливаете его.
- Это позволит вам выполнять программы на JavaScript, набрав 'node my_app.js' в терминале.
- JavaScript выполняется движком V8 (тем самым, благодаря которому так быстро работает Google Chrome).
- Node.js предоставляет API для доступа к сети и файловой системе из JavaScript.
Поддержка MySQL в Node.js: node-mysql-libmysqlclient
Встречайте: node-mysql-libmysqlclient v0.0.7, коннектор к MySQL для Node.js, поддерживающий синхронное и асинхронное выполнение запросов к БД и имеющий API, близкое к API аналогичных коннекторов для PHP/Perl/Ruby etc.
Несколько мыcлей о Google DNS
Сегодня, спустя почти четыре года после основания OpenDNS, Google запустил сервис DNS. Это не вызывает никакого удивления, так как было лишь вопросом времени, когда же один из интернет-гигантов осознает стратегическую важность DNS. Я получил много вопросов от блоггеров, журналистов, друзей и, самое главное, наших пользователям. И поэтому я хочу поделиться своими мыслями о том, что это означает для рекурсивного пространства DNS и что это означает для OpenDNS.
Информация
- В рейтинге
- 6 472-й
- Откуда
- Россия
- Дата рождения
- Зарегистрирован
- Активность