Pull to refresh
13
0.1
Дмитрий Земсков @SADKO

Overqualified

Send message

IP-адреса зоны RU/SU

Reading time2 min
Views4.5K
Привет, Хабр!
Год назад у меня зачесались руки появилась идея установить соответствие каждого доменного имени в RU и его IP.
Что и было сделано, сканировалось это всё почти 2 недели.
Вот что из этого вышло
Total votes 83: ↑68 and ↓15+53
Comments101

Как устроен GIL в Python

Reading time6 min
Views123K
Почему после распараллеливания выполнение вашей программы может замедлиться вдвое?
Почему после создания потока перестает работать Ctrl-C?
Представляю вашему вниманию перевод статьи David Beazley «Inside the Python GIL». В ней рассматриваются некоторые тонкости работы потоков и обработки сигналов в Python.

GIL
Читать дальше →
Total votes 67: ↑65 and ↓2+63
Comments27

Почему не работают планы? Личный опыт в виде вебинара

Reading time1 min
Views3.1K
Проводил недавно вебинар по управлению временем.

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

Изложены основы time management в моем понимании. Только обобщение практического опыта под соусом IMHO и никаких претензий на абсолютность. Упор на простоту изложения, понятность. четкость и структурированность материала.

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

Таким образом, time management увязан с саморазвитием.

В качестве обзора затронутых тем можно посмотреть презентацию (Slideshare.net), используемую в вебинаре (1 мб)
Читать дальше →
Total votes 33: ↑25 and ↓8+17
Comments52

The Zoomquilt

Reading time1 min
Views2.5K
image

Представляю вашему вниманию «анимационную работу» — The Zoomquilt II
Штука весьма интересная и выносящая мозг. Нарисовано в стиле и очень даже неплохо, но главное тут — сама идея… )

P.S. Может напутал с блогом, но более подходящего не нашел
_________
UPD Перенес в блог «Странные Идеи», т.к. была найдена схожая статья, созданная там же еще в далеком 2007-ом :)
UPD2 Первая часть. Спасибо Demlock
Total votes 80: ↑65 and ↓15+50
Comments51

ProFORMA: Объекты в 3D через Веб-камеру

Reading time1 min
Views9K
ProFORMA: Probabilistic Feature-based On-line Rapid Model Acquisition
Пан Ки(Pan Qi), аспирант Университета Кембриджа, разработал интересный метод моделирования объектов с помощью веб-камеры.
image
Слева направо: (A) Вращаем объект рукой перед камерой. (B) Образование облака точек полученного из структуры оценки движения. (С) Триангуляция Делоне из облака точек, образование выпуклого объёма из тетраэдров. (D) Сетка покрытия получаемая из возможной рекурсии тетраидальной разметки. (E) Текстурирование отображенной поверхности сетки.
Читать дальше →
Total votes 117: ↑117 and ↓0+117
Comments74

Перевод Django Documentation: Models. Part 1

Reading time8 min
Views19K
image

Доброго времени суток!

Данный топик представляет собой первую часть перевода документации Django, а именно раздела о моделях. Сразу хочу сказать, что я не являюсь профессиональным переводчиком и изначально делал перевод для себя. Все замечания и вопросы просьба писать в комментариях или посылать по хабрапочте. Надеюсь, информация окажется полезной для вас.

_Модели
___Небольшой пример
___Использование моделей
___Поля
_____Типы полей
_____Параметры полей
_____Автоматические первичные ключи
_____Подробные имена полей


Перевод Django Documentation: Models. Part 2
Перевод Django Documentation: Models. Part 3
Перевод Django Documentation: Models. Part 4 (Last)

Читать дальше →
Total votes 70: ↑64 and ↓6+58
Comments29

Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Reading time16 min
Views40K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:

0. Зачем вообще что-то оптимизировать?
  
1. Оптимизация ОС (FreeBSD)
  1.1 Переход на 7.х 
  1.2 Переход на 7.2
  1.3 Переход на amd64
  1.4 Разгрузка сетевой подсистемы
  1.5 FreeBSD и большое кол-во файлов
  1.6 Softupdates, gjournal и mount options
  
2. Оптимизация фронтенда (nginx)
  2.1 Accept Filters
  2.2 Кеширование
  2.3 AIO
  
3. Оптимизация бэкенда
  3.1 APC
  3.1.1 APC locking
  3.1.2 APC hints
  3.1.3 APC fragmentation
  3.2 PHP 5.3
  
4. Оптимизация базы данных
  4.1 MySQL 
  4.1.1 Переход на 5.1
  4.1.2 Переход на InnoDB
  4.1.3 Встроеный кеш MySQL - Query Cache
  4.1.4 Индексы
  
4.2 PostgreSQL
  4.2.1 Индексы
  4.2.2 pgBouncer и другие.
  4.2.3 pgFouine
  
4.3 Разгрузка базы данных
  4.3.1 SphinxQL
  4.3.2 Не-RDBMS хранилище
  4.4 Кодировки
  4.5 Асинхронность
  
Приложение. Мелочи.
  1. SSHGuard или альтернатива.
  2. xtrabackup
  3. Перенос почты на другой хост
  4. Интеграция со сторонним ПО
  5. Мониторинг
  
 6. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...
Total votes 375: ↑368 and ↓7+361
Comments105

Список полезных инструментов для CSS разработчика

Reading time8 min
Views71K
Это не попытка создать список всех существующих инструментов для CSS разработки. Только некоторые, наиболее полезные были отобраны и размещены в соответствующих категориях.


Чтобы инструмент был по-настоящему полезен, у него должна быть хорошая документация и дружелюбный интерфейс. К сожалению, некоторые инструменты в списке не полностью попадают под данные критерии. Если кто-то знает лучшие альтернативы с более дружелюбным интерфейсом и большей функциональностью, пишите в комментариях.
Читать дальше →
Total votes 179: ↑170 and ↓9+161
Comments65

Станок с ЧПУ

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



Читать дальше →
Total votes 161: ↑160 and ↓1+159
Comments81

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

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

Когда Photoshop отображает совсем не то, что надо

Reading time3 min
Views288K
example

Такая вот ситуация: дизайнер присылает макет, а у верстальщика открывается какая то лабуда светлая, или темная (если верстальщик испольует МасOS, а дизайнер Win.). Или же верстальщик сохраняет картинку, а там цвета другие стали.

Разберемся почему так и как с этим жить.

Читать дальше →
Total votes 173: ↑158 and ↓15+143
Comments139

C# для школьников

Reading time2 min
Views75K
С удивлением обнаружил на российском сайте мс эту книгу. Надеюсь что C# станет хорошей альтернативой бейсику и паскалю в обучении школьников программированию. Особенно если его будут преподавать по подобным учебникам. Будет очень здорово, если выходя из учебного заведения выпускник будет знать не дефолтные бейсик/паскаль, а современный и часто используемый язык программирования. Лично я не настаиваю чтобы это был именно C#, можно обучать детей и яве, и питону, но раз уж попалась книжка по C#, давайте проведем ее обзор.

Что же такого интересного я вычитал?
Читать дальше →
Total votes 86: ↑67 and ↓19+48
Comments114

Подключение к Yota из Linux

Reading time2 min
Views20K
Доброго времени суток. Сегодня я расскажу о том, как подключить устройство под управлением Linux к сети Yota. В моём случае это Asus EEE 1003, с установленной EEEbuntu 3 Standart(которая из себя представляет модифицированную Ubuntu 9.04) на борту. Если у вас за работу WiMax`a отвечает Intel`овский чип(можно узнать выполнив lspci) — этот рецепт вам поможет. Дистрибутив особой роли не играет.
далее
Total votes 47: ↑40 and ↓7+33
Comments26

Распараллеливание задач в Linux

Reading time2 min
Views10K
Потребовалось мне перекодировать некоторое количество видео-файлов. Для этого я написал следующий сценарий:

#!/bin/bash

recode() {
mencoder -o $2 $1 -ovc x264 -x264encopts bitrate=22000:keyint=50 -oac mp3lame -lameopts vbr=3:br=320 -fps 50
}
recode input/00108.mts 00108.avi
recode input/00109.mts 00109.avi
...
...


Казалось-бы все готово, но я заметил, что загружен только один процессор из двух, а это значит, что этот процесс можно ускорить, раза в два.
Читать дальше
Total votes 103: ↑95 and ↓8+87
Comments58

Простота в дизайне. Эпизод 2. DHT и PEX

Reading time2 min
Views5.8K
Peer-to-peer сеть BitTorrent очень популярна. И тем обидней, что базируется такая сеть на веб-сайт, трекер, что совершенно не пиртупирно и потенциально опасно. Соответственно, с тех пор, как жив BitTorrent, предпринимались различные попытки децентрализовать и оставшуюся часть — получение списка пиров.

Есть у студентов computer science популярный шаблон мышления: «Децентрализовать? DHT!». DHT, Distributed Hash Tables — умозрительно простая идея: диапазоны ключей хэш-таблицы разбрасываются на пиров, выстраиваются взаимные ссылки и ура. Ура — в жопе дыра. Потому что при столкновении с реальной сетью, в отличие от симулятора или кластера, начинается преогромное количество проблем. Более половины пиров, например, скрыты за NATами и фэйрволами, поэтому на запросы DHT одним пирам они отвечают, а другим — нет, причём труднопредсказуемым образом. Пиры постоянно приходят и уходят, некоторые пиры глючат, есть злоумышленные пиры, кто-то подключён по диал-апу. Чтобы всё это предусмотреть и подкрутить соответствующие затычки, пришлось серьёзно потрудиться. И получившийся код всё равно вызывает нарекания. Коренная проблема в том, что DHT вынужден строить свою отдельную P2P-сеть по своим отдельным правилам. Что плохо влияет на сложность, эффективность, безопаснось.

Другая попытка в том же направлении — PEX (Peer EXchange)*, gossip протокол, в котором уже соединённые пиры просто обмениваются адресами тех, к кому они уже присоединены. У протокола была нелёгкая судьба, потому что изначально Брам Коэн (автор BitTorrent) был уверен, что PEX будет вести к распадению роя. Он сделал по-быстрому какой-то симулятор и увидел полный распад. Некоторое время назад мне показалось, что я понимаю, почему и него рои распадались. Я тоже сделал симулятор, но при разумных параметрах распадения роя добиться не удалось. Видимо, была у него какая-то ошибка.

А PEX работает отлично. Его изначально реализовали в неофициальных клиентах, кажется Azureus и µTorrent (второй ещё не был куплен BitTorrent Inc). Постепенно реализация µTorrent, под названием ut_pex, стала общепринятой. Протокол очень эффективен: я с моего лаптопа своим специальным BitTorrent-пауком за пару-тройку минут переписывал всех пиров в 100-тысячном рое. Логика работы простая, экспоненциальная. Получив от трекера двадцать пиров и успешно присоединившись к двум, мы тут же по ut_pex получаем ещё двести. Ну и так далее. Сам протокол чрезвычайно прост и состоит из одного (!) сообщения. Ещё один популярный шаблон мышления: все думают, что сообщения должно быть два: запрос и ответ. Нет, запроса нет. Просто сообщения так малы, что экономить нет смысла. А с запросами куча мороки. Поэтому если пир видит, что вы понимаете ut_pex, он просто периодически шлёт вам IP-адреса. Реализация ut_pex в libtorrent-rasterbar занимает в 7 раз меньше места, чем довольно компактная реализация DHT там же**.

* А то, что сейчас написано про PEX в Википедии — это original research или попросту лажа.

** Внимательный читатель, возможно, заметит подтасовку — ut_pex не обеспечивает полной децентрализации трекинга, ведь ему нужны стартовые пиры. Поделюсь секретом. DHT этого тоже не обеспечивает. Во-первых, пользователи всё равно идут на сайт, потому что иначе их собрать сложно. Во-вторых, из того что я знаю, DHT на практике бутстрапится с корневых серверов (только это большой секрет! :) )

The cheapest, fastest, and most reliable components of a computer system are those that aren't there. — G. Bell
Total votes 59: ↑51 and ↓8+43
Comments30

XSS глазами злоумышленника

Reading time4 min
Views265K
Что такое XSS и как от него защитится все уже давно знают, поэтому буду краток. XSS это возможность злоумышленника определенным образом (ссылку на возможные варианты смотрите в конце статьи) интегрировать в страницу сайта-жертвы скрипт, который будет выполнен при ее посещении.

Интересно, что в большинстве случаев, где описывается данная уязвимость, нас пугают следующим кодом:

http://www.site.com/page.php?var=<script>alert('xss');</script>


Как-то не очень страшно :) Чем же действительно может быть опасной данная уязвимость?
Читать дальше →
Total votes 93: ↑87 and ↓6+81
Comments41

Что такое Zeroconf и с чем его едят

Reading time3 min
Views86K
Я, как старый линуксоид, когда впервые установил Ubuntu и увидел незнакомое слово avahi, конечно же сразу посмотрел в google. Потыкался в несколько ссылок, увидел другие непонятные слова, типа zeroconf, multicast dns, bonjour. Сразу понял, что это какая то мутная технология от Apple и нафиг мне ненужная.

Однако, с ростом локальной сети внутри моей квартиры, подумал, что неплохо бы было полюбопытствовать, как можно приспособить zeroconf, чтобы облегчить себе жизнь.

Давайте разберемся с терминологией:
  1. Zeroconf — это протокол, разработанный Apple и призванный решать следующие проблемы:
    • выбор сетевого адреса для устройства;
    • нахождение компьютеров по имени;
    • обнаружение сервисов, например принтеров.
  2. Avahi — открытая и свободная реализация протокола zeroconf.
  3. Bonjour — open-source реализация протокола zeroconf от Apple.

Читать дальше →
Total votes 68: ↑65 and ↓3+62
Comments27

Ускоряем запуск браузера FireFox

Reading time2 min
Views35K
Ещё давно приметил, что мой любимый инструмент, запускается значительно шустрее после установки, чем после многомесячного, активного использования браузера. Заметил, но как распорядится этим знанием мыслей не было. И вот, только что наткнулся на полезную тему, где описано это узкое место, а также дан ещё один совет по ускорению запуска браузера.

И так узкое место при запуске это загрузка .sqlite, базы данных вашего профиля. При интенсивной работе с Фоксом, базы разрастаются, в них появляются «пустые места», ну и главный недостаток, файл базы данных становится сильно фрагментированными. Для решения подобной проблемы существует специальная команда «очистки», точнее операция пересоздаёт файл базы, но уже без пустых мест. Для этого нужно проделать следующее:
Читать дальше →
Total votes 219: ↑206 and ↓13+193
Comments215

Встречер: опыт создания стартапа

Reading time4 min
Views1.1K
Привет!

В этом посте я хочу рассказать про тот опыт и понимание, которые накопились за время развития собственного бизнеса за последние 1,5 года. А именно: это проект “Встречер”, бета-версия которого была выпущена в конце февраля-марте — 5 месяцев назад, а сейчас стабильно приносит нам деньги, чтобы содержать команду 5 человек+фрилансеры и дает возможности развиваться дальше.

Если коротко описать хронологию событий, она выглядит так:

Читать дальше →
Total votes 143: ↑137 and ↓6+131
Comments73

Работа с камерой мобильного телефона в Python

Reading time2 min
Views16K
В прошлой статье мы рассмотрели установку Python для S60 и работу в интерактивной консоли, сегодня мы рассмотрим возможности работы Python с камерой мобильного телефона.

Итак, приступим...


Читать дальше →
Total votes 48: ↑47 and ↓1+46
Comments22

Information

Rating
2,971-st
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity