Search
Write a publication
Pull to refresh
29
0
ramovsky @ramovsky

User

Send message

10 способов улучшить свои навыки программирования

Reading time4 min
Views89K

1. Выучить новый язык программирования


Изучение нового языка программирования разовьет новые способы мышления, особенно если новый язык программирования использует парадигмы, с которыми Вы еще не знакомы. Многие из приобретенных способов мышления могут быть применены к языкам, которые уже знаете. Возможно, вы даже полюбите новый для Вас язык программирования настолько, что начнёте использовать его для серьёзных проектов.

Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).

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

Django — обработка ошибок в ajax-формах

Reading time5 min
Views17K
Hello everyone!

Все мы знаем что Django — очень мощный и динамично развивающийся фреймворк для создания веб-приложений. Однако, несмотря на наступление эпохи Веб 2.0, в нём всё ещё нет встроенных механизмов для работы с AJAX, в частности отправки и проверки форм. Возможно django просто не хочет навязывать пользователю какой-то js-фреймворк и хочет оставаться гибкой в этом вопросе, но так или иначе при разработке часто требуются формы, работающие через ajax, без перезагрузок страниц.
О создании таких форм и работе с ними и пойдёт речь в данной статье.

Сразу оговорюсь, что идея не нова, и существует несколько библиотек, реализующих требуемую функциональность, например одна из них — http://www.dajaxproject.com/.
Для тех же, кто предпочитает сам управлять взаимодействием клиента с сервером или тех, кто не хочет втягивать в проект дополнительную библиотеку и иметь дело с её багами, я расскажу как изобрести велосипед реализовать механизм самостоятельно и опишу различные способы решения проблемы.
Читать дальше →

Новый каталог веб-шрифтов от Google

Reading time2 min
Views15K


Удивительно, сколько классных продуктов Google может выпустить за один день, пусть это даже и тау-день. На Хабре уже обсудили Google+, новый дизайн, Takeout и конвертер Swiffy, а вот ещё один релиз: новый интерфейс для просмотра веб-шрифтов Google Web Fonts. Ссылка на новую версию появилась также в старом интерфейсе (вверху). На данный момент каталог содержит 180 семейств веб-шрифтов. Все они являются свободными и могут быть легко встроены в любую страницу.
Читать дальше →

Простой дополнительный контроль состояния данных memcached

Reading time2 min
Views5.1K
image Мониторинг memcached — дело далеко не последней важности. Как на этапе тестирования, так и на этапе сопровождения уже работающего нагруженного ресурса. Средств «из коробки» для этого не так уж и много, а если вы работает с PHP, то зачастую ограничиваетесь средствами memcache (или memcached), а именно

Memcache::getStats()

$memcache = new Memcache;
$memcache->connect('localhost',11211);
print_r($memcache->getStats());


что возвращает типичный набор данных

Array ( [pid] => 25722 [uptime] => 4487286 [time] => 1308323074 [version] => 1.2.2 [pointer_size] => 64 [rusage_user] => 2646.005365 [rusage_system] => 17108.873237 [curr_items] => 37761 [total_items] => 10764857 [bytes] => 140070186 [curr_connections] => 5 [total_connections] => 17360659 [connection_structures] => 31 [cmd_get] => 89154830 [cmd_set] => 10764857 [get_hits] => 83452021 [get_misses] => 5702809 [evictions] => 0 [bytes_read] => 3527860756618 [bytes_written] => 4234517241183 [limit_maxbytes] => 2147483648 [threads] => 1 )

Вроде всё хорошо.
Мы видим, что у нас занято 133,5 Mb из 2 Gb выделенных под memcached и около 37 тыс. ключей.
Hits к misses относиться как 83/5, что тоже не внушает опасений.
Читать дальше →

EchoPrint — открытая система распознавания музыки

Reading time4 min
Views248K
Наверняка многие из вас слышали и знают про системы идентификации музыки вроде TrackID, Shazam, MusicBrainz или онлайновой Audiotag.info, позволяющие по записанному отрывку песни узнать ее название. Все они в достаточной степени хороши, но имеют общий недостаток — закрытый код и, соответственно, ограниченную сферу применения. TrackID вы можете использовать только на телефонах Sony Ericsson, Shazam — тоже только на телефонах, хотя и на более обширном списке платформ, а Music Brainz вообще неясно, работает ли вообще.

Ребята же из компании Echo Nest, решили, что распознавание музыки должно быть таким же доступным миру явлением, как электронная почта или DNS :), и выпустили своё детище полностью под MIT License. А детище, надо сказать, у них очень серьёзное — еще бы, если основателями компании являются доктора наук из MIT Media Lab .

Тот зверьфункционал, который они выпустили на свободу, не ограничивается только распознаванием музыки по записанному отрывку, но и позволяет делать такие вещи, как поиски дубликатов музыки, массовое распознавание и заполнение тэгов в музыкальных коллекциях, проверка аудио/видео на содержание того или иного материала, синхронизация коллекций из различных музыкальных пространств (iTunes <-> Last.fm <-> Spotify, например) и много чего еще.

Подробнее

Учим bash-скрипты, пишем Sokoban

Reading time4 min
Views139K
Мне кажется, что на свете еще есть люди, которые хорошо знают несколько языков программирования, но при этом не пишут скриптов для bash, потому что скриптовый язык bash выглядит для них слишком странным. Чтобы доказать, что bash — это несложно, я написала игру Сокобан (или Грузчик, кому как нравится), и хочу рассказать, как она работает.
Краткая справка по bash, скриншот игры, исходный код и ссылка на файл - под катом

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

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

Цветной man или как разукрасить вывод echo

Reading time8 min
Views115K
Когда пишешь даже минимальный скриптик, часто используешь echo — подсказки.
Согласитесь "цветной man" ведь намного приятнее читать, так почему бы не раскрасить вывод echo?
это достаточно легко.
Итак…

Задача:
Раскрасить текстовую строку выводимую на экран через команду echo
т.е. раскрасить эти самые подсказки
Читать дальше →

Живите (опять) без скучных дел

Reading time4 min
Views955
Если кратко, мы сделали веб-сервис, избавляющий от скучных дел. Причем клиенты выбирают сами, сколько платить:


Клиенты — наши начальники. Они сами оценивают работу и назначают оплату. Иллюстрация — Michael Dashow.

Когда-то хабр благосклонно принял мою статью Аутсорсинг жизни, водка, матрешка (в отличии от другой, 100 долларов в час). Речь шла о сервисе персональных ассистентов, который:
  • искал жестянщиков вытащить сосульку из крыши Пассата
  • делал визу в Польшу на 86 дней
  • в общем, скрашивал быт.

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

Профили пользователей: плюсы, минусы, подводные камни

Reading time5 min
Views12K
Не секрет, что работу с профилями пользователей в Django иначе как несчастьем не назовёшь. Все мы сталкивались с монолитностью модели auth.User, неадкеватным набором полей у неё, а также всеми теми ухищрениями, к которым приходилось прибегать.

Извращаться приходилось всем: не только пользователям джанги, но и самим её core-разработчикам. Помните, например, как в Django 1.2 внезапно стало возможно использовать в поле username символы собаки (@) и точки? Знаете зачем? Чтобы в качестве логинов можно было использовать адреса e-mail.

Нам, простым пользователям, тоже жилось несладко. Для того, чтобы изменить профиль пользователя, добавив ему какие-нибудь интересных полей — обычная, казалось бы, вещь, да? — приходилось действовать разными способами.
Интересно?

Еще одна визуализация ряда алгоритмов и структур данных

Reading time1 min
Views20K

Университет Сан-Франциско создал с использованием HTML5 коллекцию визуализаций различных алгоритмов и структур данных. Посмотреть и потыкать кнопки можно вот тут.
Список визуализированных алгоритмов и структур данных со ссылками под катом.
Читать дальше →

Разворачиваем nginx + mod_wsgi на сервере

Reading time8 min
Views29K
Здрасти. Долго-долго я присматривался к замечательному фреймворку django, читал книгу, изучал статьи, пробовал писать hello world'ы (со встроенным в джангу сервером это было легко и приятно). А вчера я попробовал настроить от начала до конца боевой сервер, и как оказалось, это не так просто, и мне даже показалось, что будь я моложе и неопытнее, я бы плюнул на это дело. Вот я и решил поделиться с читателями полной инструкцией, снабдив её некоторыми рассуждениями и конфигами. Статья расчитана на начинающих, но будет интересно всем, обещаю.
Читать дальше →

Продвинутые формы — мультиселект с автокомплитом

Reading time5 min
Views7.2K
Наши пользователи следят за спецпредложениями авиакомпаний и дешевыми перелетами, каждому интересно своё направление, пунктов вылета и прилета — тысячи, пользователи хотят одновременно следить за несколькоми городами, странами или регионами. Появилась задача — как предоставить удобный механизм подписки? Без долгого тыканья в мульти селект, без кнопок «Добавить пункт вылета». Ответ выглядит так —

Решением стал контрол из Фейсбука и Контакта — пользователи знакомы с ним, а значит не нужно объяснять как он работает. Осталось скрестить его с django.
Читать дальше →

Наш опыт работы с Django, или 10 полезных модулей, облегчающих жизнь

Reading time4 min
Views38K
Бесценный опыт работы с Django, или Django для блондинок, брюнеток и всех-всех-всехПоследние 15 недель мы активно работали над проектом «Стиллион», первым нашим мейнстрим-проектом, написанным на Django. Был приобретен интересный опыт, которым мы хотели бы поделиться с сообществом.
Статья, прежде всего, будет интересна новичкам в Django.
За катом список полезных плагинов, которые мы использовали, и ещё немного клёвых фич

Команда dd и все, что с ней связано

Reading time4 min
Views650K

В UNIX системах есть одна очень древняя команда, которая называется dd. Она предназначена для того, чтобы что-то куда-то копировать побайтово. На первый взгляд — ничего выдающегося, но если рассмотреть все возможности этого универсального инструмента, то можно выполнять довольно сложные операции без привлечения дополнительного ПО, например: выполнять резервную копию MBR, создавать дампы данных с различных накопителей, зеркалировать носители информации, восстанавливать из резервной копии данные на носители и многое другое, а, при совмещении возможностей dd и поддержке криптографических алгоритмов ядра Linux, можно даже создавать зашифрованные файлы, содержащие в себе целую файловую систему.
Опять же, в заметке я опишу самые часто используемые примеры использования команды, которые очень облегчают работу в UNIX системах.
Читать дальше →

Реализация графов и деревьев на Python

Reading time17 min
Views291K
Продолжаем публикацию наиболее интересных глав из книги Magnus Lie Hetland «Python Algorithms». Предыдущая статья расположена по адресу habrahabr.ru/blogs/algorithm/111858. Сегодня же речь пойдет об эффективной работе с графами и деревьями и особенностях их реализации в Python. Базовая терминология теории графов уже обсуждалась (например здесь: habrahabr.ru/blogs/algorithm/65367), так что я не включил часть главы о терминах в эту статью.

Реализация графов и деревьев


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

Зачем на самом деле нужен мозг

Reading time10 min
Views52K
В продолжение предыдущего топика "Как на самом деле работает мозг". На написание данного поста меня побудила, с одной стороны, замечательная книга «Grooming, Gossip, and the Evolution of Language» Робина Данбара (Robin Dunbar), а с другой — очередная порция «полезных» и «умных» советов в GTD и других блогах.

Для затравки — небольшая логическая задачка. Дан набор карточек; на каждой из них на одной стороне написана буква, на другой — цифра.
На столе лежат четыре карточки: «А», «Д», «5» и «6». Вам говорят: если на карточке (из числа лежащих на столе) на одной стороне гласная, то на обороте — чётная цифра. Какие из карточек достаточно перевернуть, чтобы однозначно подтвердить или опровергнуть это утверждение?

Подумайте немного, запишите ответ на бумажке и добро пожаловать под кат.

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

Медиамагия: Приходишь домой, берёшь пульт и выбираешь, чтобы посмотреть с трекера

Reading time2 min
Views23K
Позвольте мне начать своё повествование с рассказа про свободное время, семью и тягу к прекрасному. Свободного времени, которое я могу провести с женой, обычно очень мало. То я занят, то жена. То мы оба. Но иногда высвобождается час-другой, который можно провести вместе. А что можно сделать вместе? Ну, кроме того что вы подумали, можно ещё посмотреть вместе фильм. Сходить в кино, например, выбрав один из пяти унылых фильмов в кинотеатре. Или достать с полки DVD и в 5й раз посмотреть «Новинки 2006 года, 8 в 1». Но кому нужны новинки 2006 года в качестве для мобильного телефона или платить деньги за билеты в кино, если всё что нужно для удовольствия можно сделать у себя дома практически бесплатно? Если есть трекер на котором постоянно выкладываются сотни интересных фильмов? Если есть хороший телевизор и диван, на котором смотреть фильмы намного приятнее? Нет, иногда, конечно, приятно сходить в кино, или пересмотреть новинки 2006, но в большинстве случаев мы хотим (1) дома, (2) бесплатно посмотреть (3) новый фильм (4) в хорошем качестве (5) не дожидаясь пока он скачается.
Читать дальше →

Прикручиваем django-registration

Reading time6 min
Views57K
Нужно было прикрутить регистрацию на сайт. Вспомнил про django-registration (классический django reusable app). Первое, что удивило — в исходниках не было шаблонов. Пришлось немного покопаться в интернете, поискать ответы на вопросы и поделиться результатом.
Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity