Pull to refresh
51
0
Максим Сябро @Azy

User

Send message

План интеграции на новом месте работы

Reading time2 min
Views5.8K
Рано или поздно каждому из нас приходится оставлять одну работу и отправляться на поиски другой более перспективной и высокооплачиваемой...
Большинство работодателей ценит в сотрудниках не только конкретные навыки, но и обучаемость — способность «осваивать целину». Поэтому чрезвычайно важно проявить себя грамотным специалистом с самых первых дней на новом рабочем месте. Одним из основополагающих качеств менеджера проектов является способность планировать и не только проектную работу, но и свои активности. Вот план интеграции, который я составил как раз перед переходом на новое место, во время двухнедельной отработки. Как говорится, готовь сани летом :)
Читать дальше →
Total votes 67: ↑48 and ↓19+29
Comments21

Материалы продвинутого уровня по Питону

Reading time5 min
Views44K
PythonВ мире все примерно распределяется в соответствии с принципом Паретто. Меньшая часть — богатые, большая часть — бедные (читающий, ты входишь в золотой миллиард). Тоже касается и материалов о программировании. Порой очень сложно найти хоть что-нибудь не начального уровня.

После прочтения Dive into Python или подобной ей и ознакомления с документацией возникает вопрос, а что читать дальше? Можно обратиться к списку книг на python.org. Там есть раздел Advanced Books, но в нем всего лишь 6 книг (седьмая не выходила), и только одну я бы назвал по-настоящему стоящей.

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

Ниже собраны сложные материлы про Питон, его устройство и возможности. Все на английском (грех, не знать технический английский). Про Dive into Python я слукавил. Большинство приведенных материалов требуют хорошее знание Питона и наличие опыта программирования на нем.

Подробнее
Total votes 136: ↑133 and ↓3+130
Comments23

Небольшой tip по заполнению заявлений для их нотариального заверения

Reading time1 min
Views596
Всем доброй хабрасубботы.
Мне понадобилось унести домены от известного регистратора.
С нового года на нотариусов наехали и сказали к_ноге делать всё по закону. И мне пришлось поиграть с разными нотариусами в угадайку, что же я все-таки делал неправильно.

отгадка
Total votes 12: ↑7 and ↓5+2
Comments8

Качества успешного предпринимателя – Практическая хватка (2/11)

Reading time6 min
Views1.3K
Перевод второго поста Марка Састера из серии про качества успешного предпринимателя (здесь перевод первого поста).
_________

Это часть моей новой серии постов о том, что делает предпринимателя успешным. Исходно я публиковал их на сайте VentureHacks, одном из моих любимых сайтов для предпринимателей. Если вы там не были, то стоит зайти.

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



2. Практическая хватка. Итак, вы упорный человек и никогда не сдаетесь. Очевидно, с этого мало толку, если ваша стартап-идея никуда не годится. Не думаю, что для создания хороших компаний требуются начитанные люди — часто это только мешает делу. Но вам нужно быть умным, и я предпочитаю тех, кто обладает житейской, практической мудростью. Есть люди, которые просто «рубят фишку» — их-то я ищу. Они на инстиктивном уровне понимают, как покупают их клиенты, и знают, как их вдохновить. Слабости конкурентов они чуют шестым чувством. Они выявляют благоприятные возможности, на которые никто еще не обратил внимание, и создают продукты, которые удовлетворяют соответствующие потребности.
Читать дальше →
Total votes 81: ↑70 and ↓11+59
Comments17

sms2twitter гейт за 5 минут

Reading time6 min
Views1.8K
imageЦелью статьи является демонстрация возможностей Python for s60 для работы с смс сообщениями и базами данных. Чтобы было интересней, разберем на реальном примере, создадим приложение, которое будет читать новые сообщения смартфона, парсить их, сохранять в свою базу данных номера телефонов с логинами и паролями, и постить твиты, пришедшие с этих номеров.

Для чего это еще может пригодиться? В наше время смс сервисы используются достаточно широко. Способов их реализации достаточно много. У меня недавно возникла необходимость реализовать сервис, при котором клиенты могли бы посылать смс сообщением номер заказа и в ответ приходил бы его статус. Задача решилась так: за 500 руб., на барахолке был куплен старенький Nokia 7610 в разваливающемся состоянии, у которого не работала половина кнопок, были проблемы со звуком и т. д. Туда была вставлена сим карта от местного оператора с безлимитным смс пакетом. Теперь этот аппарат будет играть роль сервера, который будет работать в режиме 24/7, с бесперебойным источником питания (аккамулятор), и не будет знать проблем с охлаждением :)

Читать дальше →
Total votes 71: ↑61 and ↓10+51
Comments29

Python плагин для IntelliJ IDEA

Reading time1 min
Views20K
С неделю назад прочитал приятную новость про «размораживание» разработки Python плагина для IDEA. Памятуя про позитивные чувства, которые вызвало общение с IDEA 6 версии в роли Java-IDE, решил попробовать этот плагин, благо новая сборка уже доступна для загрузки и регулярно обновляется.

В общем, смею вам доложить — впечатления положительные. Очень рекомендую попробовать всем, так или иначе связанным с Python-разработкой.
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments34

Развертывание Django-проектов c помощью Fabric

Reading time2 min
Views11K
В одном из проектов необходимо регулярно выкладывать код из ветки stage на staging сервер. Начали делать это вручную — входишь через ssh, делаешь git push origin stage, если нужно — обновляешь базу и затем перезапускаешь apache. К концу этой недели решили, что хорошо бы все эти действия выполнять одной командой. Я прошерстил блоги — сейчас очень активно пишут про использования для этих целей библиотеки Fabric (это аналог Capistrano из Ruby on Rails).
Читать дальше →
Total votes 49: ↑40 and ↓9+31
Comments11

nginx, ещё раз про кэширование

Reading time3 min
Views14K
Иногда скорость роста проекта несколько выше чем скорость оптимизации веб-приложения или приобретение более мощного оборудования под backend.

Наиболее простая схема «распараллеливания» нагрузки — вынос основной нагрузки на несколько frontend. Раньше приходилось мучиться (или наслаждаться, кому как) с webdav'ами, кластерными ФС и прочими хитростями чтобы обеспечить актуальную информацию, так было до тех пор, пока не появился nginx, а точнее proxy_store и proxy_cache в нём.

Читать дальше →
Total votes 53: ↑49 and ↓4+45
Comments27

Создание расширения для Google Chrome

Reading time8 min
Views118K
Тема создания расширений достаточно хорошо раскрыта в сети, есть множество статей, документации на эту тему. Но я не нашел ни одного ресурса, который бы описал процесс создания расширения от начала до конца. Я собираюсь исправить эту ситуацию, и рассказать о том как создать расширение, как хранить, читать настройки, как добавить поддержку нескольких языков.

Для работы с расширениями вам понадобится переключить канал обновлений на Dev или Beta.
Читать дальше →
Total votes 98: ↑93 and ↓5+88
Comments28

А давайте подружимся с SSH

Reading time7 min
Views1.1K
Многие мои знакомые так или иначе используют протокол SSH (заходя на свои роутеры, веб хостинги и непосредственно на собственные компьютеры дома и в офисе), при этом не все об этом знают.



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

В этой заметке вы узнаете:
  • как прописать псевдонимы для соединений
  • как настроить авторизацию без пароля
  • как передавать файлы по SSH
  • как запускать графические приложения по SSH
  • а так же получите общие советы по опциям SSHD


Читать дальше →
Total votes 205: ↑187 and ↓18+169
Comments96

Browsera — новый инструмент тестирования сайта

Reading time2 min
Views5K
Browsera — сразу определимся что это не ещё один сервис бесплатных скриншотов. Этот сервис позволяет проводить атоматизированнное тестирование кросс-браузерности вашей вёрстки, то есть читается ваш html код, стили, скрипты — и моделируется их отрисовка в соответствии с особенностями того или иного браузера. Впрочем, сервис также генерирует скриншот для каждого браузера: будет что отослать верстальщику.

image
Читать дальше →
Total votes 80: ↑71 and ↓9+62
Comments29

Исправляем Python Imaging (PIL) в Snow Leopard'е

Reading time1 min
Views1.1K
После перехода на Snow Leopard в Django перестали работать ImageField'ы. Причина оказалась в неработоспособном PIL'е, а точней в его привязке к libjpeg.
(типичное сообщение об ошибке:ImportError: dlopen(/Library/Python/2.6/site-packages/PIL/_imaging.so, 2): Symbol not found: _jpeg_resync_to_restart)

Решение проблемы частично описано здесь (english)
качаем отсюда:
tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b
cp /usr/share/libtool/config/config.sub .
cp /usr/share/libtool/config/config.guess .
./configure --enable-shared --enable-static
make
sudo make install


Однако мне «повезло» и я оказался в числе тех, у кого это сразу не заработало — причина была в «зоопарке» установленных libjpeg'ов.
Итак, делаем следующее:
1. Смотрим все зависимости _imaging:
otool -L /Library/Python/2.6/site-packages/PIL/_imaging.so
2. Получаем что-то вроде:/Library/Python/2.6/site-packages/PIL/_imaging.so:
/sw/lib/libjpeg.62.dylib (compatibility version 63.0.0, current version 63.0.0)

Дальше можно решить двумя способами:
а) удалить «зоопарковую» библиотеку (в моем случае — из /sw/lib и пересобрать все заново)
б) если удалять — не вариант, то можно перелинковать питоновский _imaging на правильную, свежесобраную библиотеку:install_name_tool -change /sw/lib/libjpeg.62.dylib /usr/local/lib/libjpeg.62.dylib _imaging.so

После этого все должно работать :)
Total votes 7: ↑6 and ↓1+5
Comments16

Общий обзор стандартных средств наблюдений за системой

Reading time5 min
Views16K
Уровень сложности: начальный

Вводный обзор стандартных инструментов GNU/Linux должен помочь начинающим пользователям Linux контроллировать работу ОС. Используемые приложения, как правило, включены в поставку известных дистрибутивов. Полезным побочным эффектом я считаю возможность сориентировать молодых системных и сетевых администраторов в условиях [подозрения] компрометации.
Читать дальше →
Total votes 81: ↑76 and ↓5+71
Comments88

Анализ рынка ноутбуков с помощью Python

Reading time8 min
Views5.5K

Введение



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

Начнём



diy-03-425[1] Для анализа нам необходим набор данных, к сожалению я не смог обнаружить веб-сервисы у российских он-лайн магазинов ноутбуков, поэтому мне пришлось скачать прайс-лист одного из них (я не стану называть его) и вытащить из него цены и основные параметры (по-моему мнению таковыми являются: частота процессора, диагональ монитора, объем оперативной памяти, размер жесткого диска и объем памяти на видео-карточке). Далее я провёл некоторый анализ по следующим вопросам:
Читать дальше →
Total votes 87: ↑79 and ↓8+71
Comments26

Развертывание Django-проекта под nginx

Reading time3 min
Views17K

Преамбула


Из нескольких способов развертывания Django я сразу отмёл mod_python, потому что мне не хотелось поднимать тяжеловесный Apache. Решил развернуть на легком веб-сервере. На данный момент основных легковесных альтернатив Апачу две — lighttpd и nginx. Первоначально я выбрал первый, но столкнулся с проблемами, связанными с URL. Я подумал, что, может, nginx будет работать получше, и развернул приложение на нём. В этом деле мне очень сильно помог один скринкаст, уже не помню точно чьего авторства.
Всё было отлично, но когда я захотел использовать админку Django(удобная вещь, кстати), меня постигло разочарование — форма логина показывалась, но при попытке войти меня выбрасывало на admin. После получаса гугления, я нашёл топик на небезызвестном форуме Ивана Салагаева, в котором описывалось решение проблемы. После того, как я последовал описанным советам, все заработало на-ура. Представляю вашему вниманию необходимую конфигурацию сервера и Django.

Читать дальше →
Total votes 37: ↑33 and ↓4+29
Comments16

Отладка в Django

Reading time4 min
Views28K
Новичкам в Django будет полезно узнать об очень полезном инструменте отладки — debug-toolbar. Он настолько крут, что его называют Firebug for Django. На больших проектах без него (или другого отладчика) не обойтись.
Посмотрите, как это работает.
Total votes 54: ↑53 and ↓1+52
Comments32

10 рекомендаций по html-верстке электронных писем

Reading time4 min
Views106K
Рекомендация первая: забудьте про блочную верстку. Весь лэйаут должен быть на таблицах. При этом, без крайней необходимости — их тоже лучше не использовать. Также следует выкинуть из головы представления о семантике, сокращенных css-правилах, валидации, плавающих блоках — и прочее. Самый распространенный в РФ почтовый сервис на данный момент (mail.ru) вообще не понимает стили (css). Любые тэги/атрибуты style заменяются на xstyle и не работают. Вообще все.

Так что, фактически, при вёрстке html для почтовой рассылки надо мысленно переместиться в 90-ые годы прошлого века и смело использовать все распространенные приёмы того времени.

Для тех, кто с ними не знаком (как я был) — напомню:
Читать дальше →
Total votes 124: ↑111 and ↓13+98
Comments104

Встроенному perl'у быть!

Reading time12 min
Views6.7K
Однажды холодной сибирской зимой начальство решило согреть нашу команду горячей начальственной любовью и передало в наши руки еще один проект. С первого же взгляда обнаружилось несколько серьёзных проблем:
  • Это было написано на PHP;
  • Это было написано на таком PHP, что **** **** ***;
  • Захардкожено было всё, и ни о какой расширяемости или настраиваемости речи не шло. А ведь нагрузка росла не по дням.

В общем, как настоящие русские парни, мы решили все сломать к хренам собачьим и построить заново, сделав красиво. Почесав репу решили, что apache+modperl — это для старпёров и не интересно, а fastcgi — путь слабых духом, поэтому все будем делать на nginx + его вечноэкспериментальный встроенный перл.

Позже я почувствовал себя на густозасеянном разного размера глаблями поле…
Читать дальше →
Total votes 119: ↑105 and ↓14+91
Comments170

Закат Веба?

Reading time11 min
Views3.6K
7 марта прошлого года W3C, после 10-летнего перерыва, возобновила работу над HTML.

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

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

Я решил выложить их в виде статьи, переработав и снабдив иллюстрациями и примечаниями.


Содержание:

  1. Вступление
  2. Сценарии гибели
    • Гибель ментальная, или HTML — новый ассемблер
    • Гибель физическая, или HTML — новый Turbo Pascal
  3. Все ли так серьезно?
    • Ментальной гибели не будет, если web-технологии будут правильно поняты
    • Физической гибели не будет, если web-технологии будут развиваться
  4. Заключение
  5. Примечания


В настоящий момент мир вступает в эпоху расцвета богатых web-приложений.

Программы, работающие через Веб, все больше вытесняют традиционные десктопные приложения. Gmail, Google Map, online-офис, даже web-операционные системы… Список можете продолжить сами.

Однако, по мере продвижения web-приложений, все больше возрастают требования к основным клиентским web-технологиям: xHTML, CSS, JavaScript.

И, если эти технологии не будут поспевать за все более возрастающими требованиями, это приведет к их медленному закату…
 
Читать дальше →
Total votes 242: ↑189 and ↓53+136
Comments282

Автоматизируем клиентскую оптимизацию

Reading time12 min
Views5.4K

Предыстория

Как известно, перед тем, как выложить сайт в нет, мы его разрабатываем. И делаем мы это, как ни странно, на машине разработчика. И давно замечено, что javascript, а в некоторых случаях и css удобнее при разработке держать в нескольких файлах.Проблема в том, что, согласно принципам, описанным в статье Best Practices for Speeding Up Your Web Site (перевод доступен на сайте webo.in), для ускорения загрузки сайта нам нужно произвести следующие манипуляции над javascript и css файлами:
  1. Слить весь javascript в один файл, причем, желательно так, чтобы сохранился нужный порядок — т.е., скажем, библиотека jQuery — была ближе к началу, а функции и объекты, которые ее используют — после нее.
  2. Слить весь css в один файл
  3. Сжать эти большие файлы с помощью какой-нибудь утилиты вроде yui-compressor (за исключением css-файлов, название которых начинается, скажем, с префикса ie_, которые содержат data:URL, и поэтому критично относятся к переходам со строки на строку, так что их для собственного спокойствия лучше не сжимать)
  4. Расположить их в таком порядке — css-файл как можно ближе к открывающему тэгу head, а js-файл — как можно ближе к закрывающему тэгу body.
  5. Выставить HTTP-заголовок expires на подольше, чтобы браузер пользователя их закешировал. Ну а для того, чтобы при следующем билде у пользователя обновился js и css надо этим файлам дать какое-нибудь уникальное имя.
  6. Перед отдачей файлов клиенту сжимать их с помощью gzip

К чему это я?

Пункты 5 и 6 уже подробно расписаны в других местах.
Я же хочу рассмотреть в этой статье вопрос автоматизации пунктов 1,2,3,4. А точнее, я хочу предложить инструмент, с помощью которого одним (ну, максимум — двумя-тремя :) нажатием кнопки можно выполнить пункты 1, 2, 3, 4 настоящего списка и получить готовые к заливке на сервер javascript и css файлы.
Интересно?
Total votes 50: ↑48 and ↓2+46
Comments74

Information

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