Александр Карпинский @homm
Например: Программист
Закон Евросоюза о cookies
2 min
31KЗакон Евросоюза о cookies вступил в силу в 2011 году, но ICO (Information Commissioner’s Office) решили, что справедливо будет дать владельцам сайтов один год для выполнения требований закона. Крайним сроком было назначено 26 мая 2012 года. С этой даты сайты, не соответствующие требованиям закона, могут быть оштрафованы на сумму £500 000.
+77
Чёрточки: только ли тире, минус и дефис?
4 min
178KОднажды вечером я почувствовал, что пришло время расширить 97‐ й параграф «Ководства» Артемия Лебедева.
На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас.
На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас.
+265
Откуда тормоза в ORM?
8 min
10KАнализ некоторых python ORM на непроизводительные расходы
При разработке приложения на python django, я столкнулся с его неадекватным торможением.
После нескольких попыток улучшить довольно сложные алгоритмы расчетов, я обратил внимание, что существенные улучшения этих алгоритмов приводили к весьма скромному результату — из чего я сделал вывод, что узкое место вовсе не в алгоритмах.
Последующий анализ показал, что действительно, основным непроизводительным потребителем ресурсов процессора оказался django ORM, который был использован для доступа к данным, необходимым при расчетах.
Введение
При разработке приложения на python django, я столкнулся с его неадекватным торможением.
После нескольких попыток улучшить довольно сложные алгоритмы расчетов, я обратил внимание, что существенные улучшения этих алгоритмов приводили к весьма скромному результату — из чего я сделал вывод, что узкое место вовсе не в алгоритмах.
Последующий анализ показал, что действительно, основным непроизводительным потребителем ресурсов процессора оказался django ORM, который был использован для доступа к данным, необходимым при расчетах.
+13
О производительности сетевых программ
2 min
15KЗаключительная лекция курса «Сетевое программирование в UNIX», который подготовили специалисты SkyDNS и компании «Айдеко», получилась многогранной.
На лекции были рассмотрены две основных темы. Марк Коренберг («Айдеко») и Александр Патраков (SkyDNS) рассказали, как простыми модификациями можно ускорить работу цикла обработки событий и объяснили, как пользоваться флагом EPOLLET.
+15
Пользовательские атрибуты в Python
11 min
185KВы когда нибудь задумывались о том, что происходит, когда вы ставите точку в python? Что скрывает за собой символ str(“\u002E”)? Какие тайны он хранит? Если без мистики, вы знаете как происходит поиск и установка значений пользовательских атрибутов в python? Хотели бы узнать? Тогда… добро пожаловать!
+91
Data Mining в онлайн играх
11 min
32KВо всех онлайн сервисах и играх самая большая доля аудитории уходит прямо на старте – в первые же минуты и часы знакомства с продуктом. Этой теме уже посвящены сотни книг и статей с самыми различными гипотезами успеха и причин лояльности аудитории – уникальность, простота, юзабилити, бесплатность, обучение или инструкция, эмоциональность, и еще множество факторов считаются крайне важными.
Мы захотели узнать, почему уходят игроки и можно ли предсказать их уход. Предмет исследования – ММОРПГ Аион, однако наши результаты оказались применимы к широкому кругу игр и онлайн сервисов.
Мы захотели узнать, почему уходят игроки и можно ли предсказать их уход. Предмет исследования – ММОРПГ Аион, однако наши результаты оказались применимы к широкому кругу игр и онлайн сервисов.
+198
Если пришла проверка
5 min
45KПервоначально необходимо выяснить цель визита и полномочия сотрудников на совершение определённых действий. Данные полномочия могут быть выражены в различных документах (постановлениях начальника органа дознания, суда, следователя, дознавателя) в зависимости от того, каким законом регламентированы их действия (доследственная проверка в рамках ст. 144, 145 Уголовно-процессуального кодекса РФ или деятельность в рамках Законов «О милиции», «Об ОРД»).
+162
Плавный перезапуск FastCGI-процессов — django_graceful
3 min
3.2KИз всех способов деплоинга django-проектов мой любимый — FastCGI. Он поддерживается большинством веб-серверов, позволяет внятно разграничить права доступа и имеет массу других преимуществ.
Однако в django его реализация не лишена недостатков. Чтобы запустить FastCGI-сервер нужно выполнить «./manage.py runfcgi» с немаленьким количеством параметров, которые если и можно запомнить, то точно не захочется писать каждый раз руками. А если это происходит в контексте обновления кода проекта на боевом сервере, то команд становится ещё больше. Приходится писать различные wrapper-ы для запуска и перезапуска, которые засоряют проект.
Однако в django его реализация не лишена недостатков. Чтобы запустить FastCGI-сервер нужно выполнить «./manage.py runfcgi» с немаленьким количеством параметров, которые если и можно запомнить, то точно не захочется писать каждый раз руками. А если это происходит в контексте обновления кода проекта на боевом сервере, то команд становится ещё больше. Приходится писать различные wrapper-ы для запуска и перезапуска, которые засоряют проект.
+47
Imperavi: удобный и действительно красивый JS WYSIWYG редактор
1 min
22KВ продолжение темы о красивой и удобной JS визуализации (http://habrahabr.ru/blogs/javascript/124899/) хочу рассказать вам о WYSIWYG редакторе, на который сегодня случайно наткнулся.
Вы наверное часто используете различные WYSIWYG редакторы в ваших проектах. Я их тоже часто использую, так уж получается, что они очень нравятсясекретаршам и т.д. нашим пользователям.
Таких редакторов существуют десятки, но все они мне почему-то не нравилисись: то выглядит уж очень топорно, то работает совершенно криво. В конце концов я остановился на TinyMCE. Он хоть и ужасен на вид, но рабоет стабильно.
И вот сегодня я совершенно случано наткнулся на редактор, который мне полностью подходит:
Имя этому чуду – Imperavi.
Попробуйте сами и думаю, что вам понравится.
Скриншот:
UPD
Более новая версия редактора: http://imperavi.ru/redactor/.
Вы наверное часто используете различные WYSIWYG редакторы в ваших проектах. Я их тоже часто использую, так уж получается, что они очень нравятся
Таких редакторов существуют десятки, но все они мне почему-то не нравилисись: то выглядит уж очень топорно, то работает совершенно криво. В конце концов я остановился на TinyMCE. Он хоть и ужасен на вид, но рабоет стабильно.
И вот сегодня я совершенно случано наткнулся на редактор, который мне полностью подходит:
- работает стабильно
- выглядит очень стильно
- написан на jQuery
Имя этому чуду – Imperavi.
Попробуйте сами и думаю, что вам понравится.
Скриншот:
UPD
Более новая версия редактора: http://imperavi.ru/redactor/.
+100
Конвертируем и загружаем на YouTube
8 min
3.1KДоброго времени суток!
Итак начнём. В статье я опишу краткий проект на django, который конвертирует/загружает видео-ролики на Ваш канал YouTube.
Итак начнём. В статье я опишу краткий проект на django, который конвертирует/загружает видео-ролики на Ваш канал YouTube.
+36
Руководство к дескрипторам
10 min
167KTranslation
Краткий обзор
В этой статье я расскажу о том, что такое дескрипторы, о протоколе дескрипторов, покажу как вызываются дескрипторы. Опишу создание собственных и исследую несколько встроенных дескрипторов, включая функции, свойства, статические методы и методы класса. С помощью простого приложения покажу, как работает каждый из них, приведу эквиваленты внутренней реализации работы дескрипторов кодом на чистом питоне.
Изучение того, как работают дескрипторы, откроет доступ к большему числу рабочих инструментов, поможет лучше понять как работает питон, и ощутить элегантность его дизайна.
+45
Строю сайты! Like a boss
6 min
3.3Kwww.youtube.com/watch?v=NisCkxU544c
Посмотрев презентацию Юрия (yrashk) с Erlang Conference о веб-фреймворках в эрланге я заинтересовался и решил сделать сайтик не на node.js, как намеревался изначально, а используя какой-нибудь эрланговский фреймворк.
В итоге я наткнулся на фреймворк Chicago Boss. Про сам фреймворк я слышал и раньше, но пользоваться пока не довелось.
+40
Настройка резервного копирования в Ubuntu
4 min
96KНастройка резервного копирования в Ubuntu за 20 минут.
Для работы над проектами использую svn, который находится на удаленном виртуальном выделенном хосте, под управлением ubuntu 8.04. Со временем объемы данных выросли, как и критичность этих данных. Потеря чего-то снилась в кошмарах. Время от времени копировал репозитории на локальный компьютер. Недавно мне это надоело. И я стал искать возможности автоматизировать это дело. Не буду говорить о поисках и вариантах, расскажу о результатах.
Итак, мы имеем удаленный хост под управлением ubuntu, с некоторым массивом довольно критичных данных. Довольно логичным было бы настроить бэкап прямо на удаленном хосте, с помощью tar по крону, rsyns и т.д. Но, т.к. место на виртуальном выделенном хостинге довольно дорого и использовать его лучше по делу, идеально было бы, чтобы данные автоматически копировались на какую нибудь локальную машину, место на которой хоть отбавляй. В моем случае это файловый сервис в офисе, под управлением все той же Ubuntu.
+48
Скринкасты о том, как резать и натягивать
1 min
11KЧтобы было понятно о чем речь, прикладываю 3 скринкаста, второй и третий под катом.
+111
Пора завязывать использовать пробелы вместо табуляции в коде
3 min
91KЭтот топик — ответ на топик "Пора завязывать использовать символы табуляции в коде".
Я хотел было ответить к комментариях, но в силу объема и желания независимости от исходного топика решил создать новый топик.
Итак, под катом — почему табы лучше пробелов, самые значительные заблуждения касательно табов и как ими правильно пользоваться.
+267
«Съешь меня»… нет, не так… «Выполни меня»!
15 min
2.9KУ меня периодические возникают разные потребности решения мелких насущных задач в Mac OS X. Для этих целей я обычно делаю небольшие программы, которые «закрывают» потребность частным образом. Но иногда хочется, чтоб программа была универсальной, и ей могли воспользоваться другие люди при необходимости (например «Переlator»). Так получилось и в этот раз…
Я люблю, когда Dock отображается всегда на экране. Но при запуске Симулятора iOS постоянно приходилось включать автоматические скрытие, чтобы симулятор полностью умещался на экране. Появилась задача — автоматизировать этот процесс. За пару дней набросал универсальную программу, с помощью которой можно задать AppleScript на определённое действие любой программы: «Программа запущена», «Программа завершена», «Программа активирована», «Программа деактивирована» и пр.
Я люблю, когда Dock отображается всегда на экране. Но при запуске Симулятора iOS постоянно приходилось включать автоматические скрытие, чтобы симулятор полностью умещался на экране. Появилась задача — автоматизировать этот процесс. За пару дней набросал универсальную программу, с помощью которой можно задать AppleScript на определённое действие любой программы: «Программа запущена», «Программа завершена», «Программа активирована», «Программа деактивирована» и пр.
+53
Ускоряем логин через SSH в Ubuntu в 100 раз
2 min
42KДолгое время я мучился ужасно медленным удаленным логином на свои Ubuntu сервера (все 2 ). Ужасно медленно в данном случае — 2-3 секунды. Не то чтобы это было совсем фатально, но когда логин через ключ — хочется чтобы все работало мгновенно — в конце концов, у нас не 486SX.
Длительное гугление приводило только к стандартным решениям:
Длительное гугление приводило только к стандартным решениям:
- UseDNS no в /etc/ssh/sshd_config — ускоряет логин в случае тормозного DNS. В моём случае стоял локальный кеширующий DNS, потому и так все было быстро.
- Принудительное указание IPv4 в SSH клиенте — особо не помогло, видимо не у всех тормозит
+125
(Как написать (Lisp) интерпретатор (на Python))
16 min
13KTranslation
Перевод статьи "(How to Write a (Lisp) Interpreter (in Python))" Питера Норвига. В данной статье Питер довольно кратко, но емко описывает принцип работы интерпретаторов и показывает как можно написать совсем крошечный (всего 90 строк на Python) интерпретатор подмножества языка Scheme. Перевод публикуется с разрешения автора.
Питер Норвиг (англ. Peter Norvig) — американский ученый в области вычислительной техники. В данный момент работает директором по исследованиям (ранее — директор по качеству поиска) в корпорации Google. Ранее являлся главой Подразделения вычислительной техники в исследовательском центре Амес NASA, где он руководил штатом из двухсот ученых, занимающихся разработками NASA в областях анатомии и робототехники, автоматизированной разработке ПО и анализа данных, нейроинженерии, разработки коллективных систем, и принятия решений, основанном на симуляции.
+63
Верстка почтовых рассылок: разбор полетов
4 min
27KTutorial
В предыдущих своих топиках я давал лишь сухую теорию о верстке рассылок, и считаю, что подошло время практики. Кардинально новой информации относительно предыдущих статей читатель не почерпнет, но увидит как применяются на практике описанные ранее мною советы. В качестве примера будем использовать макет рассылки выдуманной компании(рисовал сам). С макетом, а затем и разбором верстки можете ознакомиться по катом.
+44
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity