Обновить
44
0

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

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

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

Время на прочтение5 мин
Охват и читатели47K
Накопилось несколько маленьких заметок/советов про python и django, которые на отдельные топики не тянут, поэтому публикую все сразу.

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

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

Как выглядит китайская клавиатура

Время на прочтение8 мин
Охват и читатели415K
Вы, вероятно, представляли ее себе как целый орган — грандиозное сооружение длиной в пару метров с сотнями и тысячами клавиш. На самом деле, большинство китайцев используют обычную клавиатуру с латинской раскладкой QWERTY. Но как с помощью нее можно набрать такое несметное количество различных иероглифов? Мы попросили рассказать об этом нашу сотрудницу Юлию Дрейзис. Ее с Китаем связывают и давняя любовь, и работа.

История вопроса: печатные машинки


За несколько тысяч лет хитроумные китайцы успели довести количество иероглифов до 50000 с хвостиком. И хотя число нужных в повседневной жизни знаков не измеряется десятками тысяч, все равно, как ни крути, стандартный набор старой типографии — 9000 литер.

Долгое время набор осуществлялся по принципу «на каждый иероглиф — отдельный печатный элемент». Поэтому работать приходилось с машинками-монстрами вроде такой:

image
Печатная машинка фирмы «Шуангэ», 1947 год (принцип действия придуман японцем Киота Сугимото в 1915 году).

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

pdb – Интерактивный отладчик

Время на прочтение23 мин
Охват и читатели102K

pdb – Интерактивный отладчик


Версии Python: 1.4 и выше

pdb является интерактивной средой отладки для программ на Python. Он включает возможности приостановки выполнения программы, просмотра значений переменных, построчного выполнения кода так, что вы можете понять, чем ваша программа на самом деле занимается, и найти логические ошибки.
Читать дальше →

MapReduce или подсчеты за пределами возможностей памяти и процессора (попробую без зауми)

Время на прочтение8 мин
Охват и читатели94K
Давно хотел рассказать про MapReduce, а то как ни взгляшешь на подобное — такая заумь, что просто ужас берет, а на самом деле очень простой и полезный подход для многих целей. И реализовать самому — не так уж и сложно.

Сразу скажу — топик — для тех, кто не разобрался что такое MapReduce. Для тех, кто разобрался — полезного тут ничего не будет.

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

Сначала опишу как она рождалась (подход был неправильный), а потом как надо правильно делать.

Как посчитать все слова в Википедии (неправильный подход)


А родилась она, как и, наверное, везде — для подсчета частоты слов, когда обычной памяти не хватает (подсчет частоты всех слов в Википедии). Вместо слова «частота» тут скорее должно быть «количество вхождений», но для простоты оставлю «частота».

В самом простом случае мы можем завести хеш (dict, map, hash, ассоциативный массив, array() в PHP) и считать в нем слова.

$dict['word1'] += 1

Но что делать когда память под хеш кончится, а мы посчитали только одну сотую всех слов?

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

Секрет успеха для стартапов: инвестируйте ДО принятия продукта рынком, удваивайте ставки ПОСЛЕ

Время на прочтение10 мин
Охват и читатели788
Оригинал статьи на BusinessInsider.com
Dave McClure

Секрет успеха для стартапов: инвестируйте ДО принятия продукта рынком, удваивайте ставки ПОСЛЕ

Прошу прощения… статья получилась длинной (~2500 слов). Не для слабонервных. Если вы хотите сокращенную версию, прочтите нижеследующее резюме и 3 основных утверждения, затем сразу перейдите к выводам вконце.

Резюме: Венчурные фонды становятся меньше (это хорошо), позиции ангельских инвесторов укрепляются (тоже хорошо), но обоим необходимо становиться умнее и инновационнее. Стоимость запуска стартапов значительно снизилась за последние 5-10 лет, а онлайновые каналы дистрибуции через Поиск, Социальные сети, Мобильные платформы (тоесть Google, Facebook, Apple) стали господствовать. В то же время, количество сделок по покупке компаний выросло, но размеры их уменьшились, так как состоявшиеся компании теперь покупают стартапы на более ранних стадиях их жизненного цикла.

Что всё это значит? Какие перспективы и подводные камни это сулит инвесторам?

Давайте начнём с 2 начальных наблюдений текущего рынка для инвесторов и для стартапов.

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

Обработка Excel файлов с использованием Python

Время на прочтение4 мин
Охват и читатели212K
image
По работе пришлось столкнуться с задачей обработки xls файлов средствами python. Немного по гуглив, я натолкнулся на несколько библиотек, с помощью которых можно работать с файлами excel.
Читать дальше

Как фрилансеру распознать нежелательного заказчика?

Время на прочтение3 мин
Охват и читатели5.3K
Я более 4 лет работаю фрилансером и имею опыт общения с различными заказчиками, опыт разработки различных проектов. Свой опыт я постарался обобщить, создав небольшую памятку, а вернее «стоп-лист», которым теперь пользуюсь для раннего отсева заказчиков, работа с которыми не приносит ни радости, ни выгоды. Мне он помогает экономить время и нервы. Надеюсь, он будет полезен и вам, если вы фрилансер. Он также может быть полезен начинающим заказчикам. Публикую его здесь с небольшими комментариями к каждому пункту.

«Стоп-лист» содержит негативные признаки заказчика. Пожалуйста, обратите внимание, что совпадение 1-2 пунктов может оказаться случайностью. При совпадении 3 и более пунктов я отказываюсь работать с заказчиком.
Читать дальше →

Умная раскладка через ComposeKey

Время на прочтение3 мин
Охват и читатели3.2K
Этот топик — продолжение моего предыдущего, где я описывал проблему с переключениями раскладок, если их три и больше. В этом топике я расскажу о решении этой проблемы через ComposeKey. Помимо того, ComposeKey отлично подойдет и для других целей.
Читать дальше →

Еще один fail

Время на прочтение4 мин
Охват и читатели1.4K

Для начала, пара слов в защиту описания fail'ов


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

Рассказ создателя хостинга-однодневки

Время на прочтение6 мин
Охват и читатели23K
Прочитав топик про хостинги-однодневки, я решил описать свой опыт создания хостинг-провайдера.

Дело было так. Еще в далеком 2005 году я задумался о том, чтобы заняться продажей хостинга. Ведь затраты мизерны, по сравнению с доходами — думал я. И мы с другом арендовали небольшую ВПС. Но тогда ни у кого из нас не было опыта и видимо особого желания этим заниматься. На впс не было даже панели управления, всё делалось вручную. В общем месяца два провисел этот ВПС и всё как-то само собой загнулось.

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

Знакомство с Arduino, часть 3. Морзе-клавиатура: бета-версия

Время на прочтение15 мин
Охват и читатели15K
В начале февраля я попробовала собрать морзе-клавиатуру на базе «радиоконструктора» Arduino. Получился вполне работоспособный прототип с единственной кнопкой, нажимая которую, можно «генерировать» точки и тире — из которых микроконтроллер будет собирать буквы и отправлять их на компьютер. Девайс (если можно назвать девайсом с полдюжины деталек на макетной плате) получился вполне работоспособный. Но для практического применения малопригодный, так что я собиралась усовершенствовать конструкцию. И вот, что у меня получилось.


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

Станок с ЧПУ

Время на прочтение5 мин
Охват и читатели185K
Станок с ЧПУ (Числовым Программным Управлением) – станок, работа которого подчиняется заранее заданной программе. Благодаря этому для обработки детали не нужен человек. Нарисовал на компьютере детальку, установил в станок заготовку, нажал пуск и пошел пить чай. По возвращении достаешь готовую детальку из станка. Фантастика? Совсем нет, такой станочек можно сделать самостоятельно!



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

Марш против RDBMS или проекты распределенных хранилищ (key-value stores)

Время на прочтение5 мин
Охват и читатели15K
candybar2Вот вы часто создаете проекты? И, наверное, везде применяете базу данных, в частности, MySQL (а кто-то и PostgreSQL). Но вот что интересно, по опыту да и просто после чтения описания различных архитектур видно, что далеко не везде в проекте нужны ключевые особенности баз данных, во многих случаях базу используют просто как некоторое хранилище обычных данных. Например, в системах кеширования базы обычно не применяются, более того, кеширование как раз используют для того, чтобы избежать лишних запросов. А что используют для кеширования наиболее часто? Memcached. А что это такое? Это распределенная система хранения данных на основе хеш-таблицы. В общих чертах, это просто хранилище пар ключ-значение, над которыми можно производить только основные операции — запись, чтение, удаление и проверку на присутствие. Да-да, нет никаких фильтров, выборок, сортировки, самый максимум — система тегов для выборки одним запросом всех связанных записей. И во многих случаях такого функционала вполне достаточно.
Читать дальше →

Страны, регионы, города

Время на прочтение1 мин
Охват и читатели123K
Карта мира
Хочу поделиться базой стран, регионов и городов на русском языке. Возможно, кому-то пригодиться в своих проектах. В базе 106 стран, 922 региона и 10969 городов!

Если кто не понял о чем речь, то вспомните, например, как на ВКонтакте указывается город: выбирается страна -> подгружается список регионов -> выбирается регион -> подгружается список городов

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

Как загружается Linux

Время на прочтение9 мин
Охват и читатели21K
Update: Статья и скрипты были обновлены в марте 2013 (прошло 5 лет, старые скрипты не сильно отличаются от текущих, но всё-таки лучше изучать актуальный код, а логика загрузки системы за эти годы немного изменилась — иначе работает udev, появились новые синтетические fs вроде devtmpfs, /var/run переехал в /run, etc.).

Когда я осваивал Linux, мне было очень интересно что происходит при загрузке системы. Попытка разобраться в процессе загрузки привела меня в исходники загрузочных скриптов (/etc/inittab, /etc/rc*, /etc/init.d/*, ...) и их конфигов (/etc/sysconfig/*, /etc/cond.f/*, ...). Надо отметить серьёзные размеры и сложность этих скриптов — чтобы в них разобраться потребовалось немало времени. Но я в те времена искренне верил, что загрузка это сложный процесс, и что размеры и сложность загрузочных скриптов вполне оправданы.

Когда меня окончательно достал RedHat (2001 год), я решил собрать свой дистрибутив на базе LFS. Для своего дистрибутива пришлось самостоятельно разрабатывать загрузочные скрипты, и тут-то выяснилась правда: ничего сложного в процессе загрузки нет!
Читать дальше →

Персональный OpenID сервер на Perl

Время на прочтение1 мин
Охват и читатели1.4K
Решил наконец-то поднять у себя персональный OpenID сервер (ну да, я параноик, не хочу чтобы кто-то ещё собирал информацию на каких сайтах я бываю). Причём хотелось чтобы он был написан на Perl. Поискал в сети — нету! Более того, невероятно, но на CPAN только два модуля для OpenID, один жутко раздутый и явно недописанный, а второй вроде бы неплохой (Net::OpenID::Server Фитцпатрика), но документации и примеров для него практически нет. :(

В общем, за 6 часов написал свой сервер: OpenIDsrv. Может пригодится другим параноикам или в качестве дополнения к документации на Net::OpenID::Server.
Читать дальше →

Чёрточки: только ли тире, минус и дефис?

Время на прочтение4 мин
Охват и читатели188K
Однажды вечером я почувствовал, что пришло время расширить 97‐ й параграф «Ководства» Артемия Лебедева.

На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас.

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

Стоп! Снято!

Время на прочтение2 мин
Охват и читатели7.6K

О Screencast.


Для начала коротко о том, что такое скринкаст.
Screencast (скринкаст) — Цифровая запись с экрана монитора, со звуком или без.
Так как мы «правильные» пользователи, то будем использовать только Open Source программы.

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

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

django-voting сортировка по рейтингу

Время на прочтение2 мин
Охват и читатели2.2K
Думаю, многие знакомы с этим расширением, но всё же:
django-voting позволяет ввести оценку любой сущности по digg-принципу (+1/-1) максимум за 30 минут (с учётом включения асинхронных запросов JS).
Сайт проекта: django-voting.googlecode.com
Но есть одна плохая особенность: отсутствие возможности сортировать сущности по рейтингу стандартными средствами ORM. Далее опишу как это реализовал я.
Читать дальше →

Задача про два шарика

Время на прочтение1 мин
Охват и читатели24K
Думаю, эта задача не является чем-то очень сложным или оригинальным, тем не менее, уверен, что она многим понравится. Её рассказал мой друг, которому его нынешний работодатель при устройстве на работу предложил её решить.

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

Просьба ответ писать белым шрифтом ;)

UPD! Шаг — это один бросок одного шарика.
UPD! Шарик начинает разбиваться с определённого этажа.
UPD! Не все правильно поняли формулировку задачи, поэтому уточняю. Спасибо Aleco. Существуют разные алгоритмы бросания шаров для поиска номера этажа с которого начинается разбиваться шарик. Каждый алгоритм гарантирует определение этажа не более чем за N бросков (например не более чем за 100, если бросать последовательно начиная с нижних этажей). Найдите минимум N и опишите оптимальный алгоритм.

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность