Search
Write a publication
Pull to refresh
20
0
Кирилл Вечера @cvss

Системный программист

Send message

Имена или семантика классов в программировании

Reading time2 min
Views13K
1. При программировании на придумывание имен может уходить ощутимо много времени. Казалось бы, такая маловажная вещь, как имя. И вот только сегодня я осознал, почему я трачу на это время, и почему, в итоге, это не напрасная трата времени.

Придумывание имени для модели, класса (предметной области) — важно и при проектировании, и при кодировании. Ведь имя несет с собой огромное облако ассоциаций из реальной жизни, из других областей.

Выбор имени — это один из этапов проектирования, когда какие-то сложные вещи — операции, объекты, отношения, скрываются уровнем абстракции. То есть скрываются за назначенным именем.

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

Как вы яхту назовете, так она и поплывет.
Читать дальше →

Redmine на MySQL с RocksDB быстрее, чем с InnoDB, от 20% до 3 раз

Reading time10 min
Views13K

Мы собрали форк MySQL от Facebook с движком RocksDB вместо InnoDB и потестировали его с реальными приложениями: Drupal, Wordpress, Redmine.


Это офигенная штука. При низкой нагрузке выигрыш маленький, десятки процентов. Зато при высокой нагрузке выигрыш в разы. Когда RocksDB добавят в стабильный релиз в MariaDB, я уверен, что в течение полугода половина народа перейдет с InnoDB на RocksDB. Особенно, небольшие сайты на cloud/VPS и выделенных серверах.


Что такого хорошего в MyRocks? Линейная запись вместо случайной и снижение числа дисковых операций вообще. То есть транзакции базы данных порождают меньше дисковых операций, меньше занимают очередь диска, и пишутся намного быстрее.


Я собрал в статью результаты тестирования реальных сценариев Redmine, добавил анализ результатов и выводы. Redmine на MySQL с RocksDB оказался быстрее, чем с InnoDB — от 20% при минимальной нагрузке до 3 раз при максимальной. Позже подготовлю материалы по Drupal и другим PHP-приложениям.


Вы сможете проверить работу MyRocks и самостоятельно — в конце статьи есть ссылки на инсталляторы и виртуальные машины с LAMP/LEMP/Ruby стеками, собранные с MyRocks вместо MySQL.



Читать дальше →

Что нового в Ruby 2.3

Reading time4 min
Views15K
На прошой неделе вышел превью Ruby 2.3.0. Что есть интересного из изменений:

  • оператор безопасной навигации вглубь объектов (safe navigation operator), #11537
  • в Hash и Array добавлен метод dig для доступа вглубь вложенных хэшей или массивов #11688
  • движение в сторону неизменяемых (frozen) по умолчанию строковых литералов (обоснование, обсуждение #11473
Читать дальше →

Параллельное выполнение зависимых задач и синхронизация с условными переменными в shell

Reading time20 min
Views13K
Как синхронизировать параллельные шелл-процессы, используя named pipes (FIFO-файлы) в качестве условных переменных. Как выполнить параллельно зависимые задач в топологическом порядке с минимумом средств: POSIX shell, mkfifo, POSIX kernel. Как параллельный запуск ускоряет загрузку встраиваемых систем и *BSD (rc-этап FreeBSD с 27 до 7 секунд) или старт приложений в пользовательских контейнерах Docker, LXC и jail. Как это повышает аптайм в отказоустойчивых кластерах Jet9.
Читать дальше →

Тестируем Jet9 — отказоустойчивый хостинг сайтов с географической оптимизацией

Reading time7 min
Views8.7K
Мы создали платформу для выполнения веб-приложений Jet9 и сейчас проводим публичное бета-тестирование веб-хостинга, построенного на этой платформе. Здесь мы расскажем о том, что это такое, какие задачи решает, и как все организовано.

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

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

Резервное копирование — виртуальные клоны против неконсистентных кентавров

Reading time9 min
Views31K
Клоны Геракла и кентавр Нессоили простой способ создания консистентныx резервныx копий без остановки сервера с помощью клонирования виртуальных машин

Идеальный бэкап в вакууме


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

Грубая реальность вносит коррективы: если при настройке копирования не предусмотреть множество мелочей, то при восстановлении может случиться так, что часть данных в бэкапе окажется повреждена непонятным образом. Легкое восстановление превратится в мучительные поиски кусочков в разных архивах и собирание из них одного целого. Уход в закат откладывается из-за нарушенной консистентности копии.

Почему возникают неконсистентные копии, что в них плохого и как виртуализация решает проблему

Итоги ноябьского конкурса грантов

Reading time3 min
Views2.1K
Хоровод!Недавно на Хабре посетовали, что гранты получают только проекты IT-направленности. И тут же ноябрь ответил на это — первое место получил проект Родительский мост — благотворительный фонд, помогающий сиротам обрести семью. Вторым получателем гранта стал проект 3D Find.ru — база и система поиска 3D-моделей. Победители получили два бесплатных сервера True30: 1280 MHz CPU, 1024 Mb RAM, 32 Gb HDD, 1 год. Все результаты конкурса представлены на странице итогов.

На декабрьский конкурс грантов представлены 2 сервера True22: 960 MHz CPU, 512 Mb RAM, 16 Gb HDD, сроком на 1 год. Заявки принимаются через форму до полуночи 19 декабря (осталась 1 неделя), голосование будет проводиться с 20 по 30 декабря.

Победители ноябрьского конкурса


А теперь, победители конкурса расскажут о своих проектах:
Читать дальше →

Октябрьский конкурс грантов, итоги

Reading time5 min
Views3.6K
Фейерверк!Октябрьский конкурс грантов завершен и трое участников, набравших наибольшие баллы, уже получили три бесплатных сервера True22: 960 MHz CPU, 512 Mb RAM, 16 Gb HDD, сроком на 1 год. Полные результаты голосования можно увидеть на странице итогов, а здесь я представляю победителей:
  1. Мир Фотошопа
  2. Новоуральское интернет-сообщество
  3. VOMP

Ноябрьский конкурс

Сейчас идет прием заявок на ноябрьский конкурс, на который представлены 2 гранта — серверы True30: 1280 MHz CPU, 1024 Mb RAM, 32 Gb HDD, 1 год. Заявки принимаются через форму до полуночи 19 ноября. Голосование начнется в полдень 20 ноября и продлится до 30 ноября.

Победители октябрьского конкурса


Мы попросили победителей конкурса рассказать о своих проектах.
Читать дальше →

Итоги сентябрьского конкурса грантов

Reading time2 min
Views3.6K
Вино!Завершилось голосование по сентябрьскому конкурсу грантов. Я рад объявить победителей, финишировавших с заметным отрывом:

Миелофон
mielophone.com
Необычный плеер для прослушивания музыки из Интернет

BitByBit.ru
bitbybit.ru
Многофункциональный портал для программистов

Nesami.org.ua
nesami.org.ua
Центр коммуникации Херсонской областной организации Украинского общества слепых

Победители получают серверы True30 1.2 GHz CPU, 1 Gb RAM, 32 Gb HDD, сроком на 1 год. Мы выслали авторам заявок официальные сообщения о победе их проектов и информацию о процедуре получения серверов. Один из серверов уже подключен, два других сервера все еще ожидают своих владельцев. Поздравляю победителей еще раз!
Читать дальше →

Сентябрьский конкурс грантов на бесплатные серверы

Reading time1 min
Views5.6K
VendemmiaКак было объявлено ранее, мы переводим конкурс грантов ежемесячный формат, и сейчас начинаем прием заявок на сентябрьский конкурс.

В этом месяце требования к участникам облегчены — к участию принимаются любые проекты, включая коммерческие и ранние стартапы. На конкурс предоставлены три сервера: True30 1.2 GHz CPU, 1 Gb RAM, 32 Gb HDD, сроком на 1 год. Для того, чтобы отобрать самых лучших, приглашается Хабра-сообщество.

План действий такой:
Читать дальше →

Итоги конкурса грантов

Reading time3 min
Views5.3K
Шампанское!Голосование на конкурсе грантов завершено и теперь можно поздравлять победителей. Мы отправили приветственные письма с инструкциями по получению сервера.

Сочувствую тем, кто не вошел в их число. Лично меня огорчило то, что грант не получил проект SAMS (SQUID Account Management System), хотя это исправимо, о чем написано ниже. Еще больше огорчился наш бухгалтер, узнав, что двое из числа победителей являются нашими старыми клиентами. Но пусть бухгалтер горюет в одиночестве, а мы займемся приятным. Я с удовольствием перечисляю победителей и серверы, которые они получают:
Читать дальше →

Гранты на бесплатные серверы, первые заявки

Reading time3 min
Views2K
Мы публикуем список первых заявок, принятых к участию в конкурсе на гранты. Очень интересные и очень разные проекты, можно знакомиться с ними и составлять свое мнение.

Желаю им удачи и напоминаю, что прием заявок продолжается до 31 июля. Условия получения грантов: www.truevds.ru/grants
Читать дальше →

Гранты на серверы

Reading time3 min
Views6K
imageМы помогаем развиваться интересным и нужным интернет-проектам — проектам свободного программного обеспечения, образовательным проектам, культурным, коммуникационным и всем другим, которые делают мир лучше. Сейчас мы запустили программу грантов и бесплатно предоставляем таким проектам серверы различной мощности — от 960 MHz CPU / 512 Mb RAM / 16 Gb HDD до 2x2560 MHz CPU / 4096 Mb RAM / 128 Gb HDD. Гранты распределяются по результатам голосования на открытом конкурсе.

Гранты


Гранты предоставляются в виде серверов, аренда которых оплачена на 1 год. Гранты разделены на несколько категорий по мощности серверов.

Состав гранта Количество грантов
Сервер True40: 2x2560 MHz CPU, 4096 Mb RAM, 128 Gb HDD 1
Сервер True32: 2560 MHz CPU, 2048 Mb RAM, 64 Gb HDD 2
Сервер True30: 1280 MHz CPU, 1024 Mb RAM, 32 Gb HDD 4
Сервер True22: 960 MHz CPU, 512 Mb RAM, 16 Gb HDD 8

Всего грантов: 15
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Registered
Activity