Pull to refresh
0
0
Дроздовский Михаил @drozdovsky

User

Send message

Масштабирование MySQL в реальном времени

Reading time2 min
Views1.5K
imageНа написание этого поста меня натолкнул топик glix. Итак вкратце:
Amazon теперь предоставляет сервис отказоустойчивой масштабируемой базы данных, т.е. наш MySQL теперь в облаке. Более подробно можно прочитать в самой статье, так что пересказывать её не буду.

Единственный минус подобного решения — цена. Не скажу, что услуги Amazon заоблачно :) дороги, но при работе сервера 24 часа в сутки, это может влететь в копеечку. Сидя на DevConf'е у меня родилась идея, как этого можно избежать.
читать дальше
Total votes 12: ↑11 and ↓1+10
Comments21

Вариант синхронной импульсной нейронной сети с обратными связями

Reading time6 min
Views12K

Предупреждение


Предупреждаю, рассуждения на данный момент чисто теоретические. Но уж очень красивая теория получается. Или я схожу с ума. Интересно ваше мнение о моих рассуждениях — стоит ли затевать практическую реализацию?
Скажу честно, причина по которой родились все дальнейшие рассуждения в том, что мне не удалась одна моя дурная затея — научить нейронную сеть самостоятельно играть в тетрис. Обучать сеть с учителем нереально долго, т.к. учитель — это я, да и однозначно правильных вариантов движения фигурок в тетрисе нет. Был применён генетический алгоритм обучения сети. Максимум чему обучилась моя популяция за сутки виртуального процесса эволюции и естественного отбора — раскладывать падающие фигурки в три столбика (на самом деле она ещё научилась поворачивать фигурки так, чтоб они были скорее «горизонтальны», чем «вертикальны», но вот научиться делать поворот фигурок так чтоб линии убирались — оказалось не по силам).
Читать дальше →
Total votes 63: ↑57 and ↓6+51
Comments154

Пишу поисковик (virtual project). Хранение данных

Reading time4 min
Views545
Хранение — пожалуй самое тонкое место подобных проектов. В зависимости от решаемых задач оно должно обеспечивать:
— быстрый доступ к данным;
— быстрое обновление данных;
— достаточный функционал с возможностями расширения.
В системах массового обслуживания с большим потоком запросов, малое время обработки отдельного запроса — залог работоспособности системы.
Если важна оперативность появления в доступе новых данных (новостные системы), то на первый план выходит скорость обновления базы.
С ростом объемов данных совмещать совмещать высокую скорость доступа и обновления становится практически невозможно.
Читать дальше →
Total votes 10: ↑6 and ↓4+2
Comments16

Знаете ли вы как работает этот код?

Reading time3 min
Views927
Вчера, в очередной раз столкнувшись с интересным поведением кода, я решил привести пару примеров из C# и MS SQL, которые в свое время меня удивили.

Пример 1. Меняем местами значения переменных (C#)


С этим поведением я встретился несколько лет назад, когда только начал изучать C#. Применив знакомый метод, чтобы поменять значения 2-х переменных местами, я с удивлением обнаружил, что он не работает.
//Задаем 2 переменные
int x = 1, y = 2;

//Меняем их значения при помощи xor
x ^= y;
y ^= x;
x ^= y;

//Выводим результат [x=2;y=1]
Console.WriteLine("x = {0};y = {1}", x, y);

//Снова меняем их значения, но только пишем все в одну строчку
x ^= y ^= x ^= y;

//Выводим результат [x=0;y=2]
Console.WriteLine("x = {0};y = {1}", x, y);


* This source code was highlighted with Source Code Highlighter.

В итоге, в первый раз все проходит нормально и значения переменных меняются, а во второй раз, вопреки ожиданиям, у нас обнуляется переменная x.
Читать дальше
Total votes 31: ↑16 and ↓15+1
Comments35

Математический способ определения самых влиятельных юзеров

Reading time2 min
Views582
image
Ученые предложили новый метод определения самых влиятельных пользователей социальных сетей — оказалось, что количество связей конкретного индивидуума слабо сказывается на его способности распространять информацию. В качестве одного из модельных примеров выступала сеть, образованная дружественными аккаунтами в ЖЖ. Статья ученых пока нигде не опубликована, однако ее препринт доступен на сайте arXiv.org.
Читать дальше →
Total votes 65: ↑55 and ↓10+45
Comments36

Древовидные СУБД

Reading time7 min
Views3.9K
Приглашаются к обсуждению все, имеющие опыт использования, в качестве хранилища данных, древовидных СУБД. Было бы полезно делится опытом разработки древовидных структур, описанием конкретики построения дерева индексов и алгоритмов полнотекстового поиска информации внутри хранилища данных.

Поскольку любая компьютерная система с целью оптимизации обмена производит обмен между памятью и диском в виде блоков, то атомарным элементом, хранящим данные на диске, является блок. Ни для кого не секрет, что многие СУБД (тот же ORACLE и MSSQL) фактически хранят данные в Б-деревьях. Б-дерево – это набор логически связанных блоков, выстроенных в иерархию, на каждом уровне которой определены блоки, у каждого из которых одинаковое количество уровней потомков. Описание алгоритма работы Б-дерева выходит за рамки данного блога.

Реляционный, объектный или прямой доступ обеспечивается логической моделью. Попробую предположить, что разумное использование логической модели данных, максимально приближенной к фактическому хранению – позволит более просто и быстро обрабатывать низкоуровневые данные, чем использование других логических моделей(SQL и пр.), хотя и существенно повышаются требования к уровню разработки механизмов доступа к данным. Возможно, что прямой доступ может быть представлен логическим деревом. Примером логического дерева данных – является глобал в СУБД Cache.

Приведу несколько примеров использования, из личного опыта, древовидных структур данных (глобалов).
Читать дальше
Total votes 19: ↑12 and ↓7+5
Comments24

Хочешь жить — умей вертеться. История компании CDNvideo

Reading time8 min
Views18K
В основе любой работы должны лежать принципы. Мы с самого начала используем «принципы успеха» основателя Panasonic Коносуке Мацусита из одноименной книги. Его взгляд отличается от всего, чему учат западные бизнес-гуру, и мне кажется, что у нас в России работают именно советы знаменитого японца.

Главное, чему учит Мацусита — все возможности для бизнеса можно найти прямо у себя под носом. Надо найти инвесторов и клиентов для нового бизнеса? Поспрашивай у своих друзей в «Одноклассниках». Нужно сделать выбор — государственный грант или частные инвестиции? Нет проблем, возьми и то, и другое. Не успел собрать денег на старт бизнеса? Ничего страшного, поработай на более удачливых конкурентов — пережди кризис.
Читать дальше →
Total votes 38: ↑30 and ↓8+22
Comments8

Дерево ван Эмде Боаса

Reading time6 min
Views18K
Всем доброго времени суток!

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

Дерево ван Эмде Боаса (van Emde Boas tree) — ассоциативный массив, который позволяет хранить целые числа в диапазоне [0; U), где U = 2k, проще говоря, числа, состоящие не более чем из k бит. Казалось бы, зачем нужно еще какое-то дерево, да еще позволяющее хранить только целые числа, когда существует множество различных сбалансриованных двоичных деревьев поиска, позволяющих выполнять операции вставки, удаления и прочие за O(log n), где n — количество элементов в дереве?

Главная особенность этой структуры — выполнение всех операций за время O(log(log(U))) независимо от количества хранящихся в ней элементов.

Что же там еще есть такого вкусного?
Total votes 192: ↑190 and ↓2+188
Comments39

Краткий мануал по участию в программе «Старт» (1 млн.р. для вашего проекта)

Reading time10 min
Views7.5K


Наверное многие из участников хабра-сообщества слышали о конкурсе «СТАРТ», проводимым Фондом содействия развитию малых форм предприятий в научно-технической сфере (по народному, Фондом Бортника).

Суть конкурса — безвозмездное субсидирование стартапов в различных отраслях (ИТ, медицина, машиностроение и тд.) размером 1млн. рублей в первый, с возможность продолжения и получения 2млн.р. во второй и 3 млн.р. в третий год. В первый год деньги даются приблизительно 20% проектам, которые подали заявку (если точнее, 107 из 515 проектов в 2010г).

Читать дальше →
Total votes 53: ↑38 and ↓15+23
Comments49

Точка, точка, запятая: машинное обучение

Reading time7 min
Views17K
Как научить поисковую машину правильно разбивать текст на предложения? Сделать так, чтобы она могла распознавать точки, которые не являются концами предложений.

Наша статья о машинном обучении объясняет одну из техник, которые применяются в поисковой машине тогда, когда возникает нужда в корректном разбиения текста на предложения. Решение такой задачи имеет принципиальное значение, например, при генерации сниппетов поисковыми системами или при построении базы контекстов словоупотребления. Сейчас эта технология встраивается в индексатор Поиска@Mail.Ru. Точность метода, по нашим наблюдениям — не менее 99%.
О том, как это работает, читайте в нашей статье.
Читать дальше →
Total votes 56: ↑41 and ↓15+26
Comments8

libscgi — эффективное решение для простых и быстрых скриптов

Reading time4 min
Views4.7K
Очень часто необходимо реализовать простое легкое решение, которое должно отработать довольно быстро. А с использованием технологии AJAX это стало еще актуальнее. Это может быть как скрипт автокомплита, скрипт специфического поиска, вывод информации из справочника. Ранее использовались cgi скрипты. При больших нагрузках они оказались не очень эффективными и были разработаны протоколы fcgi и scgi. Следует заметить что производительность scgi сервера довольно-таки высокоя (более 1500 запр/сек) и памяти занимает всего 600K.

Протокол Simple Common Gateway Interface (SCGI) — это протокол по взаимодействию приложений с веб (http) серверами. Большинство современных WEB-серверов (Apache/nginx/lighttpd) имеют встроенную поддержку scgi. Ниже дано краткое описание использование простой библиотечки, которая представляет собой scgi сервер.

Исходники тут.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments40

Регистрация своей фирмы собственными руками, туду-лист

Reading time12 min
Views51K
Дисклаймер: описываю только свой личный опыт и мнения автора могут не совпадать с мнением автора. Статья огромная, читать много.

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

Эта статья адресована тем, кто уже «на грани». Она почти лишена философии и туманных ссылок, просто тупо туду-лист. Бери и делай. Намеренно избавляю тебя от объяснений, зачем молодому проекту нужна госрегистрация, такая ли уж это свобода – быть собственником и от куда взять деньги на госпошлину. Статья адресована московским стартаперам, гео-патчи от других городов приветствуются в комментариях.
Будем считать, что с формой собственности определились — это ООО и упрощенка 6%. Если кому нужно ИП – там проще, справишься и без этой статьи.

Для создания фирмы необходимо:

Минимальный реквизит для создания своей компании
Подробности под кОтом.
Total votes 372: ↑351 and ↓21+330
Comments248

Русская морфология, основанная на памяти

Reading time3 min
Views5.1K
Один из перспективных подходов в машинном обучении базируется на запоминании уже разобранных примеров и поиске похожего образца. Например, у нас уже есть коллекция расшифрованных аудиозаписей, и если появляется новый звуковой файл, мы ищем похожий образец и на его основе строим распознавание. Рассмотрим, как базируясь на этом принципе, можно построить морфологию русского языка.
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments37

PHP type hinting — строгое или мягкое?

Reading time2 min
Views23K
Добрый день, %username%!

Сегодня мне хотелось бы обсудить тему type hinting в PHP. В данный момент в листе рассылки для разработчиков идёт жаркая дискуссия на эту тему и обсуждается какой подход нужно использовать и как это будет работать. Ваш покорный слуга тоже активно участвует в этой дискуссии.

Дискусию можно начать читать здесь и продвигается по ней кликая на next in thread.

А теперь перейдём к деталям!
Total votes 44: ↑28 and ↓16+12
Comments167

Математическая поисковая система с визуальным вводом формул

Reading time3 min
Views2.5K
Почти полгода назад я написал на хабре статью о проекте математической поисковой системы uniquation.ru. Тогда была получена конструктивная критика, которая помогла улучшить проект.

С тех пор проект претерпел множество изменений, главное из которых — визуальный ввод формул — теперь, чтобы найти информацию о каком либо математическом объекте, необязательно знать его представление в формате TeX.



Под катом рассказ об изменениях, технологиях и влиянии хабра
Total votes 101: ↑89 and ↓12+77
Comments38

Twitter публикует свой FlockDB

Reading time1 min
Views3K
Приятно, что многие крупные компании продолжают традицию выкладывать серьезные вещи из внутренней разработки в Open Source.
Недавно Twitter выложил FlockDB

" FlockDB это база данных, которая хранит данные о графах. В то же время это не база данных, оптимизированная для операций обхода графа. FlockDB оптимизирован для работы с очень большими списками смежных вершин графов, быстрого чтения и записи и постраничными арифметическими операциями над запросами (page-able set arithmetic queries)."

Основной задачей проекта было решить проблемы Twitter с работой с очень большими графами соц данных пользователей (followers, операции mention, etc.). Миграция завершилась 9 месяцев назад и вроде бы они всем довольны сейчас.



В настоящий момент система хранит 13 миллиардов рёбер графов и поддерживает 20 тыс. операций записи и 100 тыс. операций чтения в сек.
Более детально с продуктом можно ознакомиться по ссылке.
Исходники доступны на github.
Total votes 62: ↑60 and ↓2+58
Comments16

Галерея эффектов кэшей процессоров

Reading time10 min
Views25K
Ядро PenrynПочти все разработчики знают, что кэш процессора — это такая маленькая, но быстрая память, в которой хранятся данные из недавно посещённых областей памяти — определение краткое и довольно точное. Тем не менее, знание «скучных» подробностей относительно механизмов работы кэша необходимо для понимания факторов влияющих на производительность кода.

В этой статье мы рассмотрим ряд примеров иллюстрирующих различные особенности работы кэшей и их влияние на производительность. Примеры будут на C#, выбор языка и платформы не так сильно влияет на оценку производительности и конечные выводы. Естественно, в разумных пределах, если вы выберите язык, в котором чтение значения из массива равносильно обращению к хеш-таблице, никаких результатов пригодных к интерпретации вы не получите. Курсивом идут примечания переводчика.
Читать дальше
Total votes 181: ↑177 and ↓4+173
Comments47

Мизерный ним

Reading time3 min
Views7.5K
Здравствуйте!
Сегодня я хочу разобрать еще одну классическую задачу на комбинаторные игры — мизерный ним. Всем известно что в теории игр ним с нормальным окончанием занимает центральное место, так как к нему сводятся все комбинаторные игры с нормальным окончанием. Посмотрим как обстоят дела с модификацией привычного нима.
Читать дальше →
Total votes 66: ↑46 and ↓20+26
Comments15
1

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity