Pull to refresh
42
0
Send message

«Производительность MySQL» в Киеве, 22.09.2009

Reading time2 min
Views613
Сегодня был на конференции "Производительность MySQL". Докладчик был Дмитрий Кравчук. Спасибо maghamed, 60% конференции я уже знал.
Сама конференция была интересной, в хронографическом порядке зарождения MySQL. Начиная от 1995 года, когда собрались Монти и Дэвид, до сегодняшнего дня, MySQL Perf версии.
Что не понравилось:
  • Sun имеет инсайдерскую версию MySQL Perf (производительность чуть выше чем в 5.4), которую не спешит выкатывать.
  • Почти всю конференцию было слышно «Sun это, Sun то».
  • Обделили maatkit вниманием (может потому что вражеская разработка?)
  • Порадовал слушатель, в компании которого была «масштабируемая система» — 1500 запросов на 1 страницу. При этом их техлид считает memcache костылями.
  • Не было бутербродов :(

Что понравилось:
  • Докладчик :). Дмитрий отвечал на все вопросы, было живое обсуждение. В конце выступления пошли хинты, про которые я до этого не слышал и нигде не видел.
  • Принцип «Доверяй, но проверяй». Дмитрий не верил никому, поэтому полностью сам тестил MySQL в производительности.
  • В зале был человек от Percona, который иногда помогал Дмитрию с ответами.
  • MySQL развивается! Не смотря на покупку Sun в последние годы много внимания было уделено производительности, что привело к появлению версии 5.4.

Пару хинтов для себя, чтобы не забыть:
  • Каждая аппликация уникальная и сервер надо настраивать под конкретные нужды (ваш КО)
  • Сейчас есть баг с innodb_max_dirty_pages_pct. Это значение просто игнорируется. Патч есть, в основную ветку еще вроде не внесли (могу ошибаться)
  • Пока существует баг с innodb_max_dirty_pages_pct влиять на флаш «грязных страниц» можно через innodb_log_file (не спрашивайте почему, спросите у Димы)
  • Интересная опция, про которую раньше не слышал — innodb_flush_log_trx_commit. Принимает значения 0, 1, 2. 0 — флаш каждую секунду (0 коммитов в сек = 1 флаш), 1 — флаш каждый коммит (10тыс коммитов в сек = 10тыс флашей), 2 — флаш каждую секунду, если был коммит (10 тыс коммитов в сек = 1 флаш). Оптимальный вариант для быстродействия естессно 2
  • innodb_io_capacity — стоит выставить в зависимости от возможностей винчестера. Дмитрий предлагал 2000
  • Query cache больше 20мб — зло
  • С включенным double write buffer в некоторых случаях можно потерять до 30% производительности
  • Redo log, bin log, Double Write buffer стоит хранить на разных винчестерах из-за random read для самой базы
  • Иногда стоит поиграться с max_purge_log
  • Блог Дмитрия dimitrik.free.fr

Окологиковские штуки

Reading time1 min
Views599
Случайно наткнулся на одном сайте на довольно таки занятные и необычные «поделки».

Долой обыденные надоевшие вешалки. Даешь Ninja Star Coat Hook!!!

image

В интерьере смотрится довольно таки симпатично.

image

А такой штукой можно в кого нибудь запустить

image

Или придумать какое нибудь применение.

image

Называется — Star Trek Interactive Tribbles.

А этот половичек захотел бы любой системный/сетевой администратор.

image

Я хочу стену в «звёздочках», гору волосатых э… просто волосатых штук – чтобы бросаться. Ну и коврик на входе.)

Часть 3/3. Компилятор идеальной VM для ICFPC 2009, на Haskell, с популяризаторскими комментариями

Reading time3 min
Views480
Окончание. Предыдущие части: 1 и 2

Что еще осталось? Мы пропустили место, в котором два смежных опкода превращаются в один. Что мы имели? По спецификации проходили следующие операции:

flag = m20 > 0
if (flag) m222 = m3 else m222 = m4


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

-- convert 2-op conditional operator to 1-op<br>
removePhi [] = []<br>
removePhi ((Cmpz cond condr1):(Phi addr r1 r2):xs) = <br>
            Noop addr : If cond condr1 addr r1 r2 : removePhi xs<br>
removePhi (x:xs) = x:removePhi xs<br>
Читать дальше →

Часть 2/3. Компилятор идеальной VM для ICFPC 2009, на Haskell, с популяризаторскими комментариями

Reading time17 min
Views553
Начало здесь.

Теперь разбираемся как мы будем декодировать весь файл, а не только одну инструкцию.

readMyFile = withBinaryFile "bin4.obf" ReadMode $ \-> do<br>
        len <- hFileSize h<br>
        buf <- mallocBytes $ fromInteger len<br>
        hGetBuf h buf $ fromInteger len<br>
        return (len, buf)<br>
Это императивный кусок, потому что с файлами так в основном и работают. withBinaryFile открывает файл, выполняет указанную ей «пользовательскую» функцию, передав ей handle, и закрывает файл, и возвращает то, что вернула ей пользовательская функция. Вот, после знака $ мы описали «пользовательскую» функцию с одним параметром h (от handle). Эта функция получает размер файла, аллоцирует буфер, читает в буфер и возвращает сам буфер и его длину (в байтах). Заметим, что «пользовательская функция» здесь не имеет имени и начинается так:

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

Тёмная тема для Eclipse+PDT (ZendStudio for Eclipse)

Reading time5 min
Views3K

Преамбула


Когда-то давно, работая еще в ZendStudio 5.0, а потом и 5.5 нашлась красивая темная тема для подсветки кода. За пару лет работы я так привык к ней, что пересев на Eclipse+PDT, глаза были против белого фона с зелеными буковками.
Поиски в интернете такой же темы для Eclipse, поиски хоть какой-нибудь тёмной темы а затем и поиски вообще какой-либо темы результата не дали. Оказалось (о ужас!), что Eclipse не поддерживает смену готовых тем.

Поиски хотя бы какой-то возможности кастомизации Эклипса на хабре вывели на топик хабраюзера olegchir. Вдохновленный идеей самому сделать аналог Parabox Style для Eclipse, я принялся за работу

Что из этого получилось, можно глянуть на скриншотах ниже:


Еще скриншоты и инструкция

TotalFinder — удобный плагин для Finder'а

Reading time1 min
Views16K
Кроме сторонних файловых менеджеров в Mac OS X, которые довольно плохо интегрируются с системой и заменяют Finder (за исключением, пожалуй, Path Finder — он в этом плане довольно далеко продвинулся), можно прокачать обычный Finder :)

Вот уже как пару месяцев существует TotalFinder — плагин для файндера, работающий через SIMBL, позволяющий немного расширить возможности файл-менеджера.

К слову, автором этого плагина является человек, зарекомендовавший себя Visor'ом (Quake-like Terminal.app).

Плюсы, минусы, подводные камни, скриншоты, скачать — под хабракатом.
Читать дальше →

GUI для подключения сетевых томов через SSH

Reading time2 min
Views5.9K
Моё приложение является обычной «мордой» к консольному приложению sshfs и доступно для скачивания по адресу code.google.com/p/sshfs-gui. Оно было написано мной для обучения программированию под Cocoa и является моим первым графическим приложением под Mac OS X.
Читать дальше →

Psystar анонсировали «Rebel EFI» позволяющий установить Mac OS X на обычные PC

Reading time2 min
Views3.7K
Psystar сегодня анонсировала релиз Rebel EFI — нового программного продукта который позволяет установить любую современную операционную систему, включая Mac OS «Snow Leopard», на ряд PC.
Читать дальше →

Шифрование небольшого количества данных в OS X

Reading time3 min
Views6.6K
Есть задача — зашифровать несколько документов и профиль фаерфокса. Включать FileVault для этого, всё-равно что бить мух гантелями. Посторонний софт ставить тоже нет желания. Вот решение:
Читать дальше →

Hеroвый root или как получить полноценный русифицированный HTC Hero с приложениями Google из «обрезанного»

Reading time5 min
Views3.7K

Многие засматриваются в сторону телефона на OS Android.
И, среди доступных вариантов, именно HTC Hero для многих является заветной мечтой.
К превеликому сожалению, Google почему-то не любит украинских граждан и не разрешает официально продавать в Украине телефоны с Android Market — даже с его бесплатной версией…
И кроме того на сером рынке доступно много телефонов из других стран, в которых нет русского или также отсутствует market.
Но, прелесть OS Android в её открытости… Так что под катом постараюсь рассказать, как можно перепрошить телефон полноценной прошивкой с полноценным Android Market, русификацией и возможностью покупки платных программ.
Данный мануал особо актуален для официальных украинских HTC Hero, но подойдет для владельцев любых Hero, которые хотят сменить прошивку своего телефона или открыть доступ к дополнительным фукциям своего телефона.
Читать дальше →

Ненормальное программирование. Может так писал Бог?

Reading time3 min
Views2.5K

Допустим надо написать Мир. Запрограммировать.
Как бы тогда назывался среда программирования?

Так… думаем…
Что у нас в мире главное?
Правильно — информация!
Information — длинно. Во — inform. 6 — букв :(
Добавляем седьмую, получаем — inform7.

Гуглим —

есть!



www.inform7.com


image



Все как всегда бесплатно и есть под все платформы
I7_5Z71_OSX.dmg
Mac OS X version

I7_5Z71_Windows.exe
Windows version

I7_5Z71_Linux_all.tar.gz
Linux version

Устанавливаем.
Ну что напишем?
Hello word или Notepad?
Голосуем…



Понял! C Hello word все просто. Значит Notepad.
Блокнот это тип вещи. Блокнот имеет упорядоченный текст, который называется заметка. Обычно заметка в блокноте это "".<br>


Так… не проходит. Ах да, все языки программирования на английском! Пишем:…

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

Сравнение сервисов для автодополнения адресов в форме

Reading time3 min
Views95K
Автодополнение адреса


На Хабре не раз поднимался вопрос автодополнения адресов в форме (раз, два, три).

Но вот и перед мной появилась задача реализовать такое автодополнение для небольшого интернет магазина. Критерии были такие:
  • Автодополнение адресов только Москвы
  • Автодополнение адреса одной строкой
  • Решение должно быть бесплатно (лимит запросов не менее 1000 в сутки)
  • Возможность подключить без дополнительных JS библиотек. (Я использую AngularJS Bootstrap-UI, в котором есть директива Typeahead, реализующая автодополнение формы)
  • Стопроцентный uptime не обязателен


Но какой источник данных выбрать? Я выбрал целых четыре, и решил их сравнить: в одном углу ринга заморские Google Geocode и Google Autococomplete, а в другом отечественные КЛАДР в облаке и DaData подсказки.

DISCLAIMER: Автор никак не причастен к разработчикам ни одного из представленных сервисов.
Интересно? Тогда прошу под кат

Geonames, Google Maps, Geocoding, часовые пояса и все, все, все

Reading time11 min
Views24K

Пользователям не хочется разбираться с особенностями координат, часовых поясов. Некоторые даже не знают, как эти координаты выражаются, и что такое часовые пояса.
Как сделать, чтобы было хорошо пользователю?

В данной статье будет разобрано, как работать с координатами и часовыми поясами:
А именно,
  1. Установка Google Maps, рассмотрен небольшой функционал с примером.
  2. Поиск часового пояса с по координатам (Geonames.org).
  3. Поиск координат и часового пояса по названию города (Geonames.org).
  4. Определение названия местности по координатам.


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

Получаем i18n список стран, регионов, населенных пунктов из ВКонтакте

Reading time5 min
Views65K

Получить базу данных стран, регионов, населенных пунктов с переводом названий и связями бесплатно и без регистрации? Это реально!


При разработке небольшого стартап-проекта с большими амбициями столкнулся с необходимостью в базе данных стран, регионов и городов, с переводом названий хотя бы на самые распространенные языки (английский, русский, испанский, немецкий и т. д.). Готовое решение найдено не было, поэтому стал искать источники, из которых можно спарсить необходимые данные. На ум сразу пришли известные социальные сети. В этой статье уже описывалось получение данных из ВКонтакте, но покопавшись в документации API ВКонтакте, был приятно удивлен, найдя открытые документированные методы получения геоданных:

database.getCountries — Возвращает список стран.

database.getRegions — Возвращает список регионов.

database.getCities — Возвращает список населенных пунктов.

database.getCountriesById — Возвращает информацию о странах по их идентификаторам

database.getCitiesById — Возвращает информацию о городах по их идентификаторам.

Это основные, интересные нам методы, к тому же не требующие авторизации и использования токенов. Больше методов можно посмотреть в разделе документации.

Пример url для обращения к методу получения списка стран представлен ниже (аналогично происходит обращение по протоколу https):
http://api.vk.com/method/database.getCountries?v=5.5&need_all=1&count=10
Читать дальше →

Адаптивный поиск с фильтром

Reading time1 min
Views11K
Перевод статьи Криса Койера (Chris Coyier) с CSS-Tricks.com "Search with Filters Responsive Design Pattern".

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

Brad Frost даже собрал очень хорошую коллекцию адаптивных паттернов, очень полезно. Еще один пример, форма поиска с фильтром результатов. На десктопе места много:

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

Vim-airline — новая строка статуса для Vim

Reading time2 min
Views28K


Известно что строку статуса в Vim можно легко кастомизировать в соответствии с вашими пожеланиями: вывести информацию о текущем файле, позиции курсора, текущей vcs-ветке. Есть также отдельные плагины, которые полностью заменяют строку статуса, самым используемым из которых является vim-powerline. В данной статье я хочу познакомить вас с одним из таких плагинов, vim-airline, который я с недавнего времени использую вместо vim-powerline.
Читать дальше →

Адаптивное меню с поддержкой retina

Reading time8 min
Views35K
В этой статье очень подробно описано пошаговое создание адаптивного меню для сайта с несколькими вариантами компоновки элементов (в зависимости от размера экрана девайса). Для поддержки retina-экранов используется иконочный шрифт.



Демо / Скачать исходники
Читать дальше →

Проект полностью свободного Умного Дома

Reading time2 min
Views62K
Привет, Хабрасообщество!

У меня вот уже больше 10 лет горит идея сделать такой проект Умного Дома, чтобы любой желающий мог при желании собрать полный прототип из подручных материалов.
Совсем недавно, при общении с некоторыми представителями хабрасообщества, идея была скорректирована под то, что не плохо бы сделать некий массовый блог, где каждый смог бы оставлять свои идеи по поводу реализаций (под это дело я сегодня даже поднял лайвстрит на субдомене своего личного домена, ибо пока не придумал названия для проекта с учётом его новой специфики) + к этому некое хранилище проверенных проектов (на гитхабе. Уже даже есть Gentoo'шный layman'овский репозиторий под это дело) + к этому некую «биржу», где люди далёкие от паяльных дел, но желающие умный дом, могли бы найти желающих чуток подзаработать мастеров паяльного дела в своём городе :).
Дополнительным бонусом являлось бы объединение (по возможности всех) людей, занимающихся этой тематикой «под одной крышей» для обмена идеями и опытом.
Читать дальше →

ntop вернулся. Релиз нового поколения — ntopng

Reading time2 min
Views63K
ntop это сетевой зонд, который показывает использование сети подобно *nix приложениям top и processes.
Спустя 15 лет с момента представления оригинального ntop, пришло время создать новый, современный ntop. Мы называем его ntopng, ntop next generation (ntop следующее поколение). Цели преследуемые этим приложением многогранны:

  1. Публикация под GNU GPLv3
  2. Представление современного, основанного на HTML5 и Ajax веб интерфейса (предостережение: вам нужен современный браузер для использования ntopng)
  3. Небольшой движок приложения, разумное потребление памяти и отказоустойчивость
  4. Возможность определить протокол приложения с помощью nDP, DPI (Deep Packet Inspection) фреймворка ntop'a c открытым исходным кодом

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

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Registered
Activity