Search
Write a publication
Pull to refresh
1
0
Виталий Ф. @FuN_ViT

программист, синьор-помидор :)

Send message

Сумбурные заметки про python и django

Reading time5 min
Views47K
Накопилось несколько маленьких заметок/советов про python и django, которые на отдельные топики не тянут, поэтому публикую все сразу.

Под катом:
  • как упростить код вьюх ровно в 2 раза
  • легкий способ рисования графиков
  • почему Ian Bicking воскликнул «Cool!»
  • приложения для ВКонтакте на django за 5 минут
  • хорош ли pymorphy?
  • пара фишек насчет выкладки пакетов на pypi
  • что общего между декораторами и with-контекст-менеджерами
  • принимаем оплату на django-сайтах
  • показываем Яндекс.Карту для заданного адреса

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

SRP-6: аутентификация без передачи пароля

Reading time5 min
Views34K
Как и было обещано в соседней теме, где рассказывался велосипед, выкладываю описание алгоритма SRP RFC2945 — способе регистрации и аутентификации пользователей безопасным образом по небезопасному каналу. Вот только в процессе подготовки статьи я обнаружил более свежую версию протокола, SRP-6, вместе с реализацией, в связи с чем решил выбросить свои архаичные наработки по SRP-3, и просто дать ссылки на имплементацию новой версии.
Читать дальше →

Извлечение ключа разблокировки из MBR-блокера

Reading time3 min
Views26K
Мы решили учесть пожелания читателей нашего блога и подготовили небольшую статью о том, как можно извлечь код разблокировки из блокера. Отвечает старший вирусный аналитик «Лаборатории Касперского» Вячеслав Закоржевский!..

Для разбора мной был выбран один из представителей нового семейства Trojan-Ransom.Win32.Mbro. Эти блокеры заражают MBR и вымогают деньги у пользователя за снятие блокировки компьютера.
Читать дальше →

FreeBSD + PostgreSQL: тюнинг сервера БД

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

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

Русский голос TED

Reading time1 min
Views1.3K


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

Недавно Центр речевых технологий — компания, одна из немногих имеющая собственные системы синтеза и распознавания речи, — начала озвучивание на русский язык материалов конференции TED, используя технологию синтеза русской речи. Озвученные роботом материалы размещаются в блоге «Фабрика речи» (VoiceFabric).
Читать дальше →

Отрисовка графиков в Chaco

Reading time43 min
Views5.2K
Сегодня расскажу вам о замечательной программе под названием Chaco, которую разрабатывает компания Enthought.

Chaco — это кроссплатформенное приложение по созданию графиков любой сложности на языке Python. Ориентируется на отрисовку статических данных, но имеет и возможности создания анимации.



Так же, как и Mayavi умеет встраиваться в Wx и Qt (PyQt и PySide) приложения, дружит с Numpy-массивами.
Читать дальше →

Это должен знать каждый

Reading time3 min
Views83K
Спрос на Android-разработчиков весьма велик сейчас. Я решил подготовить список того, что нужно знать каждому разработчику под эту платформу. Это не только то, что вас могут спросить на собседовании, а весь спектр знаний, который скорее всего пригодится в работе. Бонусом идет пара интерсных вопросов про платформу.
Читать дальше →

Пишем игру для Android c помощью AndEngine. Часть 1

Reading time4 min
Views55K
Всем привет.
Сегодня я расскажу вам как с помощью AndEngine написать небольшую игру. Стаья получилась довольно большая и, чтобы не утомлять читателя, пока мы остановимся на первой ее части. Все что нужно от читателя — это знание java, ООП и умение обращаться с Eclipse и Android SDK. Забегая вперед, у нас получится что то похожее на Mirrors Maze либо Laser Logic.
Вторая часть статьи.
Третья часть статьи.
Читать дальше →

Выпущена утилита ioping для тестирования отзывчивости дисковой подсистемы

Reading time1 min
Views5.5K
Случайно наткнулся на свеженаписанную утилиту ioping, написал её русский программист koct9i, пользователь k001 оформил в rpm для fedora 14 . ioping на google code.
А пользователь Grohman собрал ебилд, а LupineDreamer сделал деб-пакет i386 и x64 от magzimko.

Выглядит это дело примерно вот как:
$ ioping -i 0.2 -c 6 -s 1M -S 10M /tmp
1048576 bytes from /tmp (ext3 /dev/mapper/VolGroup00-LogVol00): request=1 time=0.7 ms
1048576 bytes from /tmp (ext3 /dev/mapper/VolGroup00-LogVol00): request=2 time=191.3 ms
1048576 bytes from /tmp (ext3 /dev/mapper/VolGroup00-LogVol00): request=3 time=18.4 ms
1048576 bytes from /tmp (ext3 /dev/mapper/VolGroup00-LogVol00): request=4 time=12.4 ms
1048576 bytes from /tmp (ext3 /dev/mapper/VolGroup00-LogVol00): request=5 time=8.4 ms
1048576 bytes from /tmp (ext3 /dev/mapper/VolGroup00-LogVol00): request=6 time=8.2 ms
Читать дальше →

Ограничиваем интерфейс редактирования с помощью прокси-моделей

Reading time2 min
Views9.6K
Административный интерфейс джанго позволяет настраивать права доступа к объектам различных приложений. Для любой модели любого приложения вы можете разрешить пользователю три действия: добавлять новые объекты, редактировать и удалять существующие объекты.

А что делать, если мы хотим разрешить пользователю редактировать только часть полей? И в то же время оставить возможность другим пользователям редактировать все поля.
Читать дальше →

Криминалистическая экспертиза зараженных TDL4 компьютеров

Reading time1 min
Views12K
Началось все с того, что в начале прошлого лета у нас появился ряд задач, связанных с быстрым извлечением скрытого контейнера файловой системы руткита Win32/Olmarik, тогда еще в версии TDL3. Немного поразмыслив, мы разработали первую версию утилиты TdlFsReader, которая справляется с TDL3 и TDL3+. Через какое-то время она была опубликована в свободном доступе и многим помогла в задачах криминалистических экспертиз. Однако в конце лета появилась четвертая версия данного руткита, которая имела уже принципиальные отличия в файловой системе: теперь это уже больше походило на полноценную файловую систему.

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

Гигагерцы задешево — Win 2008R2 Core на Amazon

Reading time5 min
Views4.8K
Занимаясь стартапами я, наконец-то, дошел до той точки, когда нужно быть готовым отмасштабировать приложение на N серверов для 1M просмотров в день и я начал думать, как же это сделать наиболее эффективно с использованием Amazon Ec2.

Примерный план известен всем — сервер помощнее для базы данных и набор небольших серверов, которые запускаются/останавливаются по мере необходимости в зависимости от нагрузки.

Из недорогих серверов у амазона особого выбора нет. Изначально я планировал использовать для этого Small Instance — именно этот вариант рекомендует amazon по умолчанию. В нем 1.7 GB RAM, что довольно комфортно для windows, но только 1 ECU. На практике в памяти можно разместить 5-8 рабочих процессов, однако, толком работать одновременно они не способны — ядро одно и очень слабое: 1 ECU это всего-то 1 Ghz одного ядра Xeon образца 2007 года. По моим оценкам, примерный эквивалент — процессор Celeron на частоте 1.5 Ghz. Стоит такой сервер $0.12 в час ~ $86 в месяц, десяток — $860 в месяц… Было очевидно, что эта конфигурация сервера не совсем отвечает моим задачам.

Поэтому я решил попробовать Micro instance — всего-навсего 613 MB памяти, но зато:
  • производительность достигает 2 ECU
  • он в 4 раза дешевле
  • можно использовать 64 битную платформу Windows Server 2008 R2 Core


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

Создание приложений реального времени с помощью Server-Sent Events

Reading time7 min
Views54K
Буквально недавно стало известно, что Firefox 6 получит SSE (уже есть в Opera 10.6+, Chrome, WebKit 5+, iOS Safari 4+, Opera Mobile 10+) так, что поддержка более половины всех браузеров (охват аудитории пользователей) уже не за горами. Настало время присмотреться к этой технологии. SSE предложил Ian Hickson более 7 лет назад, но только год назад она стала появляться в браузерах. У нас же есть WebSockets зачем нам ещё один какой-то протокол?! Но во всем есть свои плюсы и минусы, давайте посмотрим чем же SSE может быть полезен.

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

Разработка игр с использованием Cocos2d на Python

Reading time5 min
Views33K
image

Введение


Имплементация Cocos2d на Objective-C используется для разработки игр для iPhone весьма широко. По данным официального сайта число игр на этом движке уже превышает 1800. Не раз упоминался он и на Хабре. Другие порты (cocos2d-x на C++ и cocos2d-android на Java) также известны и набирают популярность. Однако прародитель этих движков, оригинальный Cocos2d оказался незаслуженно обойден вниманием. Попробую восполнить этот пробел.
Читать дальше →

Настройка сервера для django-проектов с нуля

Reading time6 min
Views41K
Хочу поделиться опытом настройки сервера для django-проектов. Так вышло, что мне часто приходится настраивать с нуля VPS-сервера для запуска на них django-сайтов. Как-то мне в голову пришла идея записать пошагово процесс настройки. Оказалось, что “по бумажке” выполнять эти рутинные операции гораздо проще и быстрее — все нюансы записаны, трудно что-то упустить. Дальше больше — я превратил инструкцию в самостоятельный shell-скрипт — запустил и сервер готов. Я думаю, некоторым python-разработчикам, особенно начинающим, будет полезно ознакомиться с содержимым скрипта. С некоторыми доработками вы, возможно, захотите использовать его в своей практике.
Читать дальше →

Parking.ru: 503

Reading time1 min
Views1.8K
Эпидемия падений облачных хостингов продолжается. На этот раз упал Parking.ru, вместе со своим главным сайтом. Виртуальные машины недоступны, телефон техподдержки тем более.

Cloud Hosting — это очень надёжно?

Update. Служба поддержки наконец смогла выдавить из себя письмо, в ответ на тикет:

From: Parking.ru. Cлужба поддержки. [mailto:helpdesk@parking.ru] 
Sent: Tuesday, May 31, 2011 11:24 AM
 
Уважаемые пользователи!


Сегодня, в связи с аварией системы охлаждения в ЦОД МГУ возможны перебои
в работоспособности серверов. О сроках восстановления сообщим дополнительно.

C уважением, 

И***** В****** 
Parking.ru

Непонятно, зачем было держать в неведении, имея аккаунт на Хабре, не говоря уж о микроблоге в Твиттере. Рассылок по пользователям, видимо, тоже уже не существует.

Отладка становится проще: Opera Mobile Emulator

Reading time1 min
Views14K
Opera Mobile Emulator

Сегодня не иметь мобильной версии проекта или хотя бы не тестировать его на мобильных устройствах — верный способ потерять пользователей. Если я не смогу найти адрес или телефон вашей кафешки со своей малосильной мобилки — значит я к вам просто не приеду.

И верстальщики берут в руки девайсы и начинают тестировать…
Читать дальше →

Стилизация HTML5 плейсхолдера с помощью CSS

Reading time2 min
Views139K
В HTML5 есть замечательный атрибут — placeholder (текст-подсказка для элементов ввода). Задается он следующим образом:

<input type=«text» placeholder=«type here some text» />

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

Как я боролся с Android NDK и NetBeans 6.8

Reading time3 min
Views7.2K
image
В этом посте я хочу немного поделиться сыном ошибок трудных — опытом. По другому и не скажешь, потому что некоторые ошибки компиляции, сборки и т.п. съели очень много времени. Я не всякий раз докапывался до причин, хотелось побыстрее получить работающую математику. Но так или иначе мне удавалось находить или вычитывать правильное решение. Поэтому я просто хочу обратить внимание тех, кто будет идти тем же путем, на некоторые нюансы. Возможно это сэкономит вам какое-то время. В конце я приведу пример приложения, ради которого это все было нужно. Картинка из заголовка — это скрин приложения.
И так, задача у меня была следующая. Я написал приложение под андроид, которое оказалось очень требовательным к ресурсам. На «математику» (я имею в виду работу с контейнерами, вычисления и т.п.) уходило очень много времени. Для сравнения, консольное приложение на чистом С++, считало задачу в пределах 3 секунд. Тогда как Android-приложение на java, запущенное на эмуляторе, то же самое считало 2.5 минуты. Поэтому я решил алгоритмическую часть вынести на C++. Также хочу отметить что мне совсем не хотелось ставить Eclipse поэтому я боролся в том что было — NetBeans 6.8. Так что предположим, что у вас уже стоит SDK, NDK и NetBeans и пойдем дальше.
Читать дальше →

Первичный кэш в Kohana 3 с использованием тегов

Reading time5 min
Views3.3K
Приведенный пример является результатом решения одной задачи, которая возникла при разработке системы управления сайтом на фреймворке Kohana 3.1, в которой предполагается одна учетная запись администратора и множество незарегистрированных читателей.

Требовалось надолго кэшировать результаты работы методов моделей, которые обращаются к базе данных. Фактически, требовалось создавать копии наборов данных из базы, чтобы снизить нагрузку на СУБД. Для немедленного обновления кэша при добавлении новых данных или обновления старых требовалась очистка кэша по тегам.

Учитывая все это, и в связи с ограничениями используемых хостингов требования были следующие:
  • Кэш должен храниться в файлах.
  • Кэш должен храниться долго, для увеличения скорости извлечения данных и снижения нагрузки на СУБД.
  • При обновлении данных администратором сайта, кэш, содержащий устаревшие данные должен очищаться, причем, очищаться должен не только кэш результатов функций, напрямую извлекающих эти данные из базы, но и тех, результаты которых связаны с этими данными (например, при удалении рубрики каталога должен очищаться кэш списков позиций рубрик). Для достижения этой цели должны поддерживаться теги.
  • Ради достижения цели можно в определенных рамках пожертвовать временем, уходящим на добавление новых материалов, и которое будет затрачено в том числе на очистку кэша, так они добавляются «своим человеком», а не сторонними пользователями.

Стандартный класс Cache_File не поддерживает теги, по этой причине потребовалось писать свой класс, ему было дано имя JetCache.

Класс спроектирован по шаблону «одиночка». Рассмотрим пример работы класса в модели для банка файлов. При инициализации модели создается экземпляр:

$this->cache = JetCache::instance();


Создание кэша данных рассмотрим на примере функции для извлечения списка файлов определенной рубрики (здесь из нее удалены некоторые аргументы и некоторый код для упрощения чтения):
Подробности далее

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity