Thursday, 14 May 2015

Линейность математического ожидания или Typewriter Monkey

"Абсолютно случайным образом ударяя по 
клавишам пишущей машинки, гипотетическая 
обезьяна рано или поздно напечатает одну 
из пьес Шекспира."
Вы знаете что такое математическое ожидание? Тогда сегодня я вам предлагаю поразмыслить над следующей задачкой по программированию Typewriter Monkey.

На прошлых выходных я участвовал в конкурсе Google Code Jam и единственная задача, которая не далась мне полностью оказалась задача про обезьян с печатными машинками.

Итак, для начала, вкратце об условиях конкурса. Условия задачи описаны в тексте по ссылке выше. Решать задачу можно на абсолютно любом языке программирования. На странице с заданием можно скачать два тестовых набора данных: маленький и большой. Данные в обоих случаях структурированы одинаково, отличие в ограничениях на начальные  условия и количество времени, которое можно потратить на генерирование ответа. 

В нашем случае ограничения следующие:

index

Friday, 8 February 2013

Regular Expressions basics course

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

"Иногда люди сталкиваются с проблемой и думают: "Для решения я использую Регулярные Выражения". Теперь у них две проблемы." (c) история появления фразы

Ключ к решению задач и преодолению страха перед формальными языками (коим является RegExp) – обучение, не так ли? И сегодня я хотел бы поделиться с Вами своим курсом по основам регулярных выражений. 20 кратких слайдов, которые могут изменить (я надеюсь) Ваш подход к поиску информации. Вы не представляете сколько Вы теряете не пользуясь регулярками. Их поддержка встроена во все современные языки программирования, во многие утилиты и консольные приложения. И по сути, если где либо Вы встречаете слово шаблон или маска, то в половине случаев это будет регулярное выражение.

Интересно? Ай-да под кат.

index

Regular Expression quiz

Понравился Regular Expression Crossword из предыдущей записи? У меня для Вас хорошая новость – некоторое время назад я составил небольшой опрос-викторину, когда готовил курс по изучению регулярных выражений.

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

Итак, считаете себя несокрушимым ниндзя-экспертом Регулярок? Не уверены, но хотели бы попробовать свои силы? Новичёк, но не знаете с чего начать обучение? Для Вас ниже всего дестяь (10) усложняющихся вопросов на знание различных тем регулярных выражений.

index

Thursday, 7 February 2013

Regular Crossword

Regular expression crossword
Regular expressions crossword
Отличная идея кроссворда.

Любите головоломки? Знаете регулярные выражения? Тогда время Че настало... Я не пожалел потраченного времени на решение.

Итак, у нас есть соты. В каждой ячейке должна стоять буква латинского алфавита. Каждое регулярное выражение должно полностью "матчить" свою строку. Таким образом каждая буква будет провалидирована тремя разными регулярками.

Для получения читабельного PDF – кликните на картинку.

index

Monday, 9 January 2012

Handmade lamp/alarm clock with Android charge

Взбрело мне в голову поиграться с микросхемами. Поскольку от схемотехники я уже далёк, то решил сделать для начала что-то простое, но полезное, а затем уже двигаться к сложному и just-for-fun. Выписал список идей, составил таблицу истинности плюсов и минусов, отсортировал в порядке усложнения...

В итоге, решил сделать световой будильник с использованием Андроида. В чём суть?

index

Saturday, 24 September 2011

Influence, Robert Cialdini

В последнее время я стал достаточно много читать и решил поделиться немного с вами. Очередную книгу по психологии мне посоветовал друг. Встречайте: Robert Cialdini, Influence.

Честно говоря, я люблю психологию в доступном изложении, но, к сожалению, к подобным книгам отношусь с опаской. Слишком громкое название, за которым автор обычно прячет достаточно известные принципы, которые разжевываются по триста раз и вода в тексте, в которой утопаешь, забыв о сути книги. Не совсем понимаю почему многократное повторение так любят авторы подобной литературы, но мне это не подходит. Именно по данной причине, например, я не могу читать Карнеги Дейла. Так что же мне понравилось в данной книге?

index

Sunday, 19 June 2011

Immigration process (search for a work)

"Люди думают, что будут счастливы, если переедут в Париж, а потом оказывается: куда бы ты ни поехал, ты берёшь с собой себя." (с)овершенно точно.

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

index

Wednesday, 6 April 2011

PostgreSQL. Redirect data to child partition.

На одном из недавно "вверенных" проектов жил поживал PostgreSQL с настроенным разбиением данных по таблицам-разделам в зависимости от значений (т.н. Partitioning). Особенности работы с БД были таковы, что раз в сутки в таблицы "вливалось" достаточно большое кол-во данных (десятки миллионов строк) и до следующего "вливания" база работала только на отдачу данных.
Проблема, а точнее даже не проблема, а пожелание заключалось в следующем: ПО, которое занималось подготовкой, фильтрацией и, собственно заливкой данных, занималось еще и тем, что вычисляло тот самый, нужный раздел (child table), в который данные нужно сложить. Это приводило к:
  • невозможности менять условия разбиения данных достаточно гибко (изменения должны быть синхронизированы на стороне БД и кода);
  • иногда в разделы попадали некорректные данные, так как заливка данных осуществлялась пакетно, с помощью операции COPY и нужный раздел определялся для всего пакета один;
  • необходимо было заранее создавать таблицы разделов.
Решение, приведенное ниже - не панацея, но кому-то может пригодиться:

index

Blogspot expandable posts

Давно я не писал сюда. Сегодня решил исправится и первым делом настроил себе красивый скрипт для длинных статей.

Встречайте:

index

Tuesday, 22 June 2010

Видео прокси для вещания в локальной сети

В период чемпионата мира по футболу очень хотелось следить за ходом матчей в живую, да вот беда - работа. Решение казалось бы банально - on-line видео трансляции, но не я один такой заинтересованный оказался. А при 30-40 одновременных потоках входящий Интернет канал оставляет остальным сотрудникам офиса лишь маленькую надежду на закачку чего бы то ни было.
Очень быстро родилась идея организовать видео прокси, которое бы принимало on-line трансляцию и раздавало видео поток в сети. Локальный трафик не так значим, как входящий интернет трафик, потому приступил к реализации. Выбор пал на VLC media player, который сначала показался несколько монстроидальным, но в дальнейшем оправдал все надежды.

index