Как стать автором
Обновить
0
0
Олег Корх @korkholeh

Пользователь

Отправить сообщение

Chain Friends by MongoDB

Время на прочтение2 мин
Количество просмотров3.5K
imageПро MongoDb было рассказано не так много, но относительно полно, например здесь. Хочу поделиться еще с одним практическим использованием этой БД — это построение цепочек друзей. Построение цепочек и концепцию кругов было использовано в Мойм Круге. Вот пример: Я — Иван Петров — Петр-Иванов — Киририлл Лавров — Вася Пупкин.

MongoDb было выбрано как высокопроизводительное хранилище данных, позволяющее быстро извлекать массивы структур данных. Традиционные key/value DB для этого не подходят, почему — поймете по ходу изложения статьи.

В данной статье рассмотрен опыт использования noSQL DB при построение «цепочек друзей» в небольшой соц-сети 300 тыс пользователей.
Читать дальше →
Всего голосов 35: ↑27 и ↓8+19
Комментарии62

20 причин проводить обзоры кода

Время на прочтение6 мин
Количество просмотров5.3K
(прим. перев. Перевод немного вольный, но я попытался максимально точно сохранить смысл текста, в то же время отыгравшись на некоторых некритичных моментах, просьба не судить строго :)
Должен также отметить, что я не по всем пунктам согласен с автором (в конце он уже начинает зарываться) и, разумеется, обзоры кода — это не серебряная пуля, но, тем не менее, очень и очень полезная практика.)

Я затвитил эту статью о 5 причинах проводить обзоры кода на CIO.com на прошлой неделе и понял, что на самом деле причин гораздо больше, чем те пять, о которых там написано. Так что к концу дня у меня их было уже больше 20. Это коллекция тех твитов с некоторыми подробностями, описанными здесь.

Причина №1. Достаточно быстрая ответная реакция, чтобы подстегнуть разработчика.
Так как обзор кода производится после кодирования и перед интеграционными и системными тестами, разработчикам не надо ждать столько же, сколько и ответа от отдела по качеству кода (QA). Обеспечив конкретный, своевременный ответ, разработчики могут подстраивать свои навыки кодирования для избежания общих ошибок.
Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии29

Nagare — пример использования фреймворка

Время на прочтение4 мин
Количество просмотров1.1K
В прошлом посте я презентовал Nagare — революционный (хоть и имеющий аналоги на Smalltalk и CL) питоновский web-фреймворк. Тот пост был несколько сумбурен и отражал, скорее, степень моего восторга, чем реальные особенности технологии. Сегодня я попробую дать немного более практический пример.
Читать дальше →
Всего голосов 32: ↑23 и ↓9+14
Комментарии42

Как нанять программиста с закрытыми глазами

Время на прочтение5 мин
Количество просмотров8K

Найти хорошего программиста – это большая проблема. За свою жизнь мы наняли около 50 программистов исходя из интервью и только интервью. Редкий случай был успехом.Проблемы начинались оттуда, откуда их не ждешь.

  • Один не мылся и вонял так, что в комнату не зайти. Я угрожал поставить вытяжку и вычесть из зарплаты; это помогало на один душ, не больше.
  • Другой пил запоем и врал, что отравился брюшками семги.
  • И все, почти все затягивали сроки.


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




Поиск кандидатов



Очередного программиста я нашел так: отобрал несколько откликов на HeadHunter.ru и попросил их посмотреть, чем они займутся. Вот что я написал:

Читать дальше →
Всего голосов 379: ↑341 и ↓38+303
Комментарии237

Центробанк поставит WM и ЯД под «нормальный надзор»

Время на прочтение1 мин
Количество просмотров773
Чиновники наконец-то проговорились, зачем на самом деле создаётся Национальная платёжная система. На эту тему вчера выступил замминистра финансов РФ Алексей Саватюгин и он конкретно дал понять, что Webmoney и «Яндекс.Деньги» выросли до слишком больших оборотов (9 и 8 млрд руб. в год, соответственно), и государство не может оставить такой рынок без надзора.

Webmoney и «Яндекс.Деньги» контролируют 90% всего российского рынка интернет-платежей. А если добавить к ним терминалы Qiwi и SMS-платежи, то весь рынок электронных платежей в 2010 году может удвоиться до 80 млрд руб.

Российские госорганы интересуют, в первую очередь, уникальные небанковские образования вроде WM и ЯД. Общее число активных аккаунтов у них уже сейчас превысило 2,3 млн. Центробанк сейчас обсуждает возможность ввести для небанковских организаций специального вида лицензии, «чтобы WebMoney и «Яндекс.Деньги» были под нормальным надзором», — пояснил замминистра.
Всего голосов 68: ↑67 и ↓1+66
Комментарии133

Всем по сообщению

Время на прочтение6 мин
Количество просмотров15K
В сегодняшних веб-приложениях часто требуется выдать посетителю некоторое оповещение. Будь то «Ваш комментарий сохранён и ожидает модерации» или же «Благодарим за проявленный интерес, мы обязательно вышлем Вам приглашение, как только откроемся», эти небольшие сообщения появляются то тут, то там постоянно, так что весьма здорово иметь удобный интерфейс для отображения их пользователю.

Идущее в поставке с Django приложение аутентификации и авторизации (django.contrib.auth) всегда включало базовый функционал для отображения всплывающих сообщений пользователю, но он имел несколько досадных недостатков. В Django 1.2 же теперь есть совершенно новый фреймворк для таких сообщений, написанный в первую очередь Тобаясом Макналти (Tobias McNulty).

Читать дальше →
Всего голосов 66: ↑60 и ↓6+54
Комментарии12

Твой блог – твой стиль!

Время на прочтение1 мин
Количество просмотров3.1K
Сиобан Куинн, менеджер продукта Blogger

Мы рады поделиться с вами замечательной новостью. Сегодня в Черновике Blogger, экспериментальном полигоне нашей службы блогов, появилась новая возможность. Это дизайнер шаблонов.

Он позволит вам создавать красивые и уникальные по своему оформлению блоги. В вашем распоряжении:

— 15 новых профессиональных шаблонов. В дальнейшем их станет гораздо больше.
— Настройка количества колонок: одна, две или три.
— Сотни профессиональных фоновых изображений.
— Настройка цветов, шрифтов — и многое, многое другое!

Чтобы ваш блог выглядел еще лучше, мы сотрудничаем с ведущим фотобанком iStockphoto. Благодаря этому вы сможете бесплатно использовать сотни фоновых изображений.



И это только начало. В рамках нашей группы дизайнеров шаблонов мы сотрудничаем с широким сообществом дизайнеров. Это позволяет постоянно создавать новые уникальные шаблоны для сервиса Blogger.



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

Оставайтесь на связи! В течение ближайших нескольких недель у нас появятся новые шаблоны и изображения, а вскоре после этого дизайнер шаблонов Blogger станет доступен пользователям службы Blogger.com по умолчанию.
Всего голосов 31: ↑23 и ↓8+15
Комментарии11

Горячие клавиши ctrl+shift+[key] и переключение языков по ctrl+shift (решено)

Время на прочтение1 мин
Количество просмотров27K
Проблема: При настройке переключения раскладок на ctrl+shift горячие клавиши вида ctrl+shift+ отказываются работать.
Оказывается совсем недавно (буквально месяц назад) Илья Муравьев написал патч, исправляющий данное недоразумение. Суть сводится к тому что переключение языка после патча срабатывает не на нажатие, а на отпускание кнопок ctrl+shift.

Тема про баг четырехлетней давности на лаунчпаде и на фридесктоп.орг. Сам патч.
читаем как пропатчить и где взять готовые пакеты
Всего голосов 59: ↑48 и ↓11+37
Комментарии119

Введение в pygtk/gtkbuilder: пишем калькулятор

Время на прочтение3 мин
Количество просмотров6.9K
Разберем создание интерфейса на pygtk на примере самого примитивного калькулятора. Много картинок, немного кода.
gtkbuilder наиболее прогрессивный формат описания gtk интерфейса в xml,
если вы ранее использовали libglade, вы можете сконфертировать .glade файл в новый формат командой libglade-convert
Читать дальше →
Всего голосов 52: ↑46 и ↓6+40
Комментарии19

Паттерн проектирования «Фасад» / «Facade»

Время на прочтение5 мин
Количество просмотров82K
Почитать описание других паттернов.

Проблема


Минимизировать зависимость подсистем некоторой сложной системы и обмен информацией между ними.

Описание


При проектировании сложных систем, зачастую применяется т.н. принцип декомпозиции, при котором сложная система разбивается на более мелкие и простые подсистемы. Причем, уровень декомпозиции (ее глубину) определяет исключительно проектировщик. Благодаря такому подходу, отдельные компоненты системы могу быть разработаны изолированно, затем интегрированы вместе. Однако возникает, очевидная на первый взгляд, проблема — высокая связность модулей системы. Это проявляется, в первую очередь, в большом объеме информации, которой модули обмениваются друг с другом. К тому же, для подобной коммуникации одни модули должны обладать достаточной информацией о природе других модулей.

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

Один из способов решения данной задачи — использование паттерна «Фасад».
Читать дальше →
Всего голосов 49: ↑38 и ↓11+27
Комментарии21

Немного про py2exe

Время на прочтение4 мин
Количество просмотров126K
Есть такое приложение. Называется py2exe. Оно позволяет упаковать, сконвертировать программу на python в exe файл (ну, точнее, exe и еще кучку других). Зачем оно все надо? Ну, далеко не у всех пользователей windows установлен интерпретатор python с нужными библиотеками. А вот упакованная программа в идеале должна запуститься на любой windows-машине.
Читать дальше
Всего голосов 54: ↑48 и ↓6+42
Комментарии35

Удаленное обучение на основе Open Source — BigBlueButton

Время на прочтение1 мин
Количество просмотров21K
Какое-то время работал с организацией системы обучения на основе ВКС Tandberg. Когда была поставлена задача организации удаленного обучения, Open Source решения были просты и унылы. Конторе пришлось изрядно потратится. Но Open Source не стоит на месте, все больше и больше компаний выходят на рынок с новыми идеями и большинство из них бесплатны для простого обывателя.


Читать дальше →
Всего голосов 85: ↑77 и ↓8+69
Комментарии33

Бюджетная доска для писания маркером (Glass WhiteBoard)

Время на прочтение2 мин
Количество просмотров77K

В офисе стало не хватать доски на которой можно было писать задачи для выполнения.
После походов по магазинам целесообразность покупки досок типа WhiteBoard не достигла пика, т.к. размеры и цены не соответствовали нашим потребностям.
Читать дальше →
Всего голосов 142: ↑130 и ↓12+118
Комментарии82

Пишем игру Реверси на Python + PyQt4

Время на прочтение6 мин
Количество просмотров16K
Задали нам как-то написать небольшой проект — игру Реверси.
А так как сейчас я изучаю Python, решил писать на нем. Вместе с графической библиотекой PyQt4.
Ну так за чем же дело встало? Создаем SVN и вперед! (Переехали на Github)

Вот такое чудо у меня получилось:
Скриншот игры
Читать дальше
Всего голосов 73: ↑68 и ↓5+63
Комментарии35

RPG me

Время на прочтение2 мин
Количество просмотров16K

Внутренний диалог


-Почему 27 летний мужчина присев на минутку посмотреть $имя_новой_крутой_игры втягивается и его тяжело оторвать?
-А кто его знает, но это работает безотказно!

-Чем мне нравятся РПГ и что я в них делаю?
-Ну там типа даже интересно не столько бегать и однообразно мочится, а выполнять всякие задания и совершенствовать своего персонажа. (здесь ключевой момент этого поста).
Читать дальше →
Всего голосов 84: ↑57 и ↓27+30
Комментарии78

Увеличиваем скорость загрузки сайта используя lazy-load изображений

Время на прочтение1 мин
Количество просмотров70K
Сейчас многие сайты насыщены графикой в разных видах: аватары, иллюстрации к постам, галереи и тп.

Читатели блога «Клиентская оптимизация» как никто другой знают цену лишних запросов к серверу.

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

Читать дальше →
Всего голосов 68: ↑62 и ↓6+56
Комментарии75

GROUP_CONCAT для Django ORM

Время на прочтение2 мин
Количество просмотров3.3K

Агрегатные функции в Django ORM — крутые. Это обстоятельство послужило поводом добавить еще одну =)

Далее речь пойдет о mysql-специфичной функции GROUP_CONCAT и волшебных розовых пони, как на картинке django-trunk.
Читать дальше →
Всего голосов 43: ↑36 и ↓7+29
Комментарии8

Как рождаются идеи. История одного стартапа — часть I

Время на прочтение4 мин
Количество просмотров18K
История TheCommentor - как рождаются идеиУважаемые хабрапользователи, этим топиком мы начинаем небольшой цикл статей посвященный истории создания стартапа. Цель статей — осветить весь процесс создания с точки зрения реальной жизни, рассказать как это было, а не как должно быть в теории.

Возможно это многим поможет решиться на первый шаг, почерпнуть какие-то идеи или просто не наступить на такие грабли, которые попортили нам нервов. Надеемся, что каждый найдет тут что-то свое. Поехали…

Часть первая - как рождаются идеи.
Всего голосов 56: ↑39 и ↓17+22
Комментарии46

Дуэт OGRE 3D и SDL

Время на прочтение7 мин
Количество просмотров8K
В последнее время тут стали появляться статьи, связанные с движком OGRE, в т.ч. и пост по созданию простейшей программы, поэтому я решил не откладывать дело в долгий ящик и написать эту статью. Когда-то не так давно я уже писал небольшой поверхностный обзор библиотеки SDL, и здесь, в качестве продолжения, приведу конкретный пример использования этой библиотеки, а именно — как заставить её работать вместе с движком.
Немало текста и много кода
Всего голосов 33: ↑31 и ↓2+29
Комментарии15

Гомоморфное шифрование/ (Fully) Homomorphic Encryption

Время на прочтение2 мин
Количество просмотров7K
Так и подмывало озаглавить тему: «Закат компании Гугл близок!», но все-таки слишком уж «желто» было бы.

Теперь к делу. Что такое «гомоморфное шифрование» и причем тут Гугл?

Гомоморфным шифрованием называют такую криптосистему, которая позволяет совершать некоторые математические действия с открытым текстом путем произведения операций с зашифрованным (возможно другое математическое действие или даже ряд операций). Например, RSA гомоморфна для операции умножения (тривиально из самого шифрования).

Удивительно, но до недавних пор не существовало криптосистемы гомоморфной для операций умножения и суммирования одновременно, так называемого полностью гомоморфного шифрования (fully homomorphic encryption), т.к. суммы и умножения хватит, чтобы выразить любую математическую функцию. Главная проблема с предыдущими схемами была в том, что каждая операция добавляет некоторый «шум» в криптотекст (посмотрите на формулу RSA и вспомните определение mod), поэтому через некоторое количество шагов накопленный шум делает расшифровку невозможной. Насколько я помню из презентации, говорилось, что подобные схему все же существуют, но они экспоненциональны по «эффективности».

Крэйг Гэнтри (Craig Gentry, PhD Stanford, IBM Research) опубликовал пример первой такой функции в своей PhD диссертации. Не вдаваясь в подробности (да и не буду делать вид, что на 100% понял все математические выкладки), смысл его решения заключается в том, что он использует двойное шифрование. Т.е. через определенное количество шагов он «снимает верхний слой» (первое шифрование) и «убирает» накопившийся «шум».

Как это работает, я расскажу общими словами и примерами, которые он сам использовал в своей презентации. Кому интересна математика и более формальное объяснение — читать диссертацию.
Остальным под кат
Всего голосов 118: ↑110 и ↓8+102
Комментарии58

Информация

В рейтинге
Не участвует
Откуда
Полтава, Полтавская обл., Украина
Дата рождения
Зарегистрирован
Активность