Как стать автором
Обновить
2
0
Владимир @zero13cool

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

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

Оптимизируем рабочий процесс

Время на прочтение5 мин
Количество просмотров18K
Доброго времени суток. Решил поделиться опытом в организации рабочего процесса разработки веб-проектов и не только веб. Расскажу свое видение максимально удобного использования связки типа: bugtraker + git + ci + deploy.



Все чаще сталкиваюсь с тем, что подобная оптимизация будет полезна широкому кругу людей. Возможно, в предложенном варианте нет ничего нового, но, лично для меня это было, можно сказать, откровением. Если кто-то, кроме меня, захочет внедрить у себя на проекте что-то подобное, то я буду считать, что статья написана не зря.
Читать дальше →
Всего голосов 28: ↑21 и ↓7+14
Комментарии21

Офис компании «ВКонтакте»

Время на прочтение6 мин
Количество просмотров221K
   На днях нас с коллегами случайно занесло в северную столицу, где не менее случайно нам удалось побывать в самом, пожалуй, необычном офисе города. Наличие фотоаппарата позволило частично передать вам ту атмосферу, которая царит в этом месте — осторожно, много фоток!

image
Читать дальше →
Всего голосов 390: ↑303 и ↓87+216
Комментарии342

Рунетология (77): Scrum и Agile в веб-бизнесе

Время на прочтение1 мин
Количество просмотров1.7K
Управляющий партнер компании ScrumTrek Асхат Уразбаев — о внедрении гибких методологий программирования в российских IT-компаниях, о принципах Agile и их эффективности в веб-бизнесе, об ошибках использования Scrum и Agile и о том, как относятся к применению Scrum разработчики, менеджеры и заказчики.
Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии9

Интервью с основателем Facebook.com Марком Цукербергом

Время на прочтение1 мин
Количество просмотров3.4K
Перевел и озвучил это интересное хоть и короткое интервью, в котором Марк Цукерберг рассказывает как все начиналось.
Всего голосов 92: ↑76 и ↓16+60
Комментарии48

Управляем Ubuntu по bluetooth

Время на прочтение1 мин
Количество просмотров4.9K
Картинка для привлечения вниманияЧтобы использовать свою Nokia 5530 в качестве пульта для компьютера я использовал замечательную программу SmartTouch от kaist'a, но серверная часть для нее работает только с Windows, а мне хотелось иметь также и Linux версию. Что ж, при наличии исходных кодов (SmartTouch распространяется под GPL), сделать ee для Ubuntu не казалось сложной задачей.

Как все получилось, можно узнать дальше...
Всего голосов 55: ↑43 и ↓12+31
Комментарии34

Много книг, хороших и разных

Время на прочтение20 мин
Количество просмотров97K
Мой список книг, которые мне хочется прочесть, изрядно вырос, спасибо топику “запасаемся на зиму”. Под катом вы обнаружите список книг, составленный по комментариям в том топике.
Читать дальше →
Всего голосов 139: ↑124 и ↓15+109
Комментарии89

Изменение адресной строки из javascript

Время на прочтение1 мин
Количество просмотров2.9K
Когда писал код и текст сообщения думал что придумываю что-то новое и только потом начал замечать что это уже применяется, например, в google reader и в wikimapia.

При разработке страниц с помощью ajax возникает проблема: меняя содержимое страницы, мы не можем изменять адресную строку и потом перейти на нужную страницу просто скопировав адрес. (из-за этого в картах гугла есть "Ссылка на эту страницу")

В общем-то это логично с точки зрения безопасности. Если бы можно было изменять адрес из javascript, мы бы смогли подменять собой другие сайты.

Но оказывается это сделать можно!
Всего голосов 9: ↑8 и ↓1+7
Комментарии15

Ещё 10 батареек для джанго

Время на прочтение5 мин
Количество просмотров27K

Продолжаем делиться своим опытом использования полезных батареек для Django.
Первая часть
Ещё рекомендуем «Сумбурные заметки про python и django» и «Django проект PR Hero: что внутри и полученный опыт».

Для Django написано огромное количество пакетов. Из них мы выбрали 10, которые использовали сами в своих последних проектах и которыми остались довольны. Все они есть на PyPI. Они продокументированы и покрыты тестами, где-то больше, где-то меньше. Исключение составляет django-sphinx, о котором отдельно.

Читать дальше →
Всего голосов 60: ↑56 и ↓4+52
Комментарии42

Упаковка Python-программы в формат APK

Время на прочтение1 мин
Количество просмотров68K
На Хабре неоднократно обсуждалось использование SL4A (Android Scripting) — интерпретатора, который запускает под Android скрипты на Python, Perl, JRuby, JS, PHP и др. Однако, чтобы эти скрипты заработали, нужно установить на телефон SL4A. Ещё один недостаток — вы не можете упаковать приложение в формат .apk.

Разработчики из компании Kivy сделали удобный инструмент, который помогает создать готовый .apk с всеми необходимыми модулями и библиотеками Python и вашим приложением внутри. Для создания GUI используется OpenGL ES 2.0.

См. Python for Android на github, там же есть инструкция по созданию дистрибутива Python и компиляции APK на его основе.

Похожий проект: PGS4A.
Всего голосов 42: ↑37 и ↓5+32
Комментарии9

Шаблон проекта на Джанго с инструментами сборки и утилитами

Время на прочтение6 мин
Количество просмотров19K
Иногда приходится создавать с нуля сайт на Джанге. Это и тесты концепций, и простенькие странички (ведь если мы в проекте используем разные мощные инструменты, почему бы сайт-визитку не сделать тоже с их помощью, избавив себя от ручной работы?).

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

Это 2 шаблона:
  • шаблон конфига buildout, который подтягивает и собирает все необходимые проекту пакеты
  • шаблон проекта, а именно настройки, включающие все нужные инструменты, и набор статики (готовые файлы на Haml и Sass)


Читать дальше →
Всего голосов 60: ↑57 и ↓3+54
Комментарии19

Взаимодействие bash-скриптов с пользователем

Время на прочтение4 мин
Количество просмотров146K
Любой приказ, который может быть неправильно понят, понимается неправильно (Армейская аксиома)

Редкий скрипт лишен необходимости общения с пользователем. Мы ожидаем, что программа (утилита) будет выполнять то, что нам от нее хочется. Следовательно, нужны инструменты влияния на них, да и программа сама должна объяснить, как продвигается ее работа.
Данным топиком я хочу рассмотреть несколько способов взаимодействия bash-скриптов с пользователем. Статья рассчитана на новичков в скриптинге, но, надеюсь, люди опытные тоже найдут что-нибудь интересное для себя.
Итак, приступим...
Всего голосов 89: ↑87 и ↓2+85
Комментарии48

Производительный и читабельный XSLT: сборник советов

Время на прочтение7 мин
Количество просмотров10K
В моей практике чаще всего в качестве шаблонизатора используется именно XSLT. Я не буду рассуждать о том, почему так происходит — о преимуществах данной технологии написано вполне достаточно. Но ещё больше написано о её недостатках. Считается, что XSLT является слишком многословным и тяжёлым для чтения, а также не самым производительным. В этой статье я постараюсь собрать несколько советов по улучшению качества XSLT-кода с точки зрения читабельности и выразительности. Некоторые из них также позволят XSLT работать несколько быстрее.

Именованные шаблоны

Многие «проблемы» XSLT связаны с тем, что мы слишком часто пытаемся писать на нём в процедурном стиле. Мы постоянно пытаемся сделать из него Smarty, но упираемся в один простой факт — XSLT является декларативным языком, как бы необычно это для нас не выглядело.
Например, мы пытаемся использовать именованные шаблоны, воспринимая их как процедуры, выводящие данные в определённом формате:

<xsl:template name="CreateItemLink">
    <xsl:param name="item"/>
    <a href="/item/?id={$item/id}">
        <xsl:value-of select="$item/name"/>
    </a><br/>
</xsl:template>


* This source code was highlighted with Source Code Highlighter.

Наверное, многие программисты именно так написали свой первый шаблон. И он неплохо решает свою задачу. Декларативный XSLT предлагает немного другой подход:

<xsl:template match="item">
    <a href="/item/?id={id}">
        <xsl:value-of select="name"/>
    </a><br/>
</xsl:template>


* This source code was highlighted with Source Code Highlighter.

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

Читать дальше →
Всего голосов 60: ↑59 и ↓1+58
Комментарии50

Эффект второй системы

Время на прочтение4 мин
Количество просмотров7K
Когда технический долг команды потихоньку начинает превышать все мыслимые и немыслимые границы, то у команды появляется как минимум два способа его погашения: отрефакторить систему таким образом, чтобы стоимость будущих изменений была не столь высокой или оставить текущую версию системы в покое и переписать все заново. В первом случае легко столкнуться с синдромом рефакторинга, когда изменения делаются не с расчетом уменьшения стоимости будущих изменений, а вносятся просто ради изменений. Во втором же случае может возникнуть «эффект второй системы», когда развиваются и совершенствуются уже никому не нужные функции системы, а мысль «а не переписать ли все нафиг» является первой и единственной, которая приходит в голову команде, как только она сталкивается с чужим кодом.

И хотя в классическом понимании «эффект второй системы» немного отличается от паталогической нелюбви к чужому коду и постоянному его переписыванию, оба эти случая имеют и что-то общее, так что имеет смысл оба эти симптома рассмотреть совместно.
Читать дальше →
Всего голосов 54: ↑46 и ↓8+38
Комментарии17

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

Время на прочтение6 мин
Количество просмотров41K
Хочу поделиться опытом настройки сервера для django-проектов. Так вышло, что мне часто приходится настраивать с нуля VPS-сервера для запуска на них django-сайтов. Как-то мне в голову пришла идея записать пошагово процесс настройки. Оказалось, что “по бумажке” выполнять эти рутинные операции гораздо проще и быстрее — все нюансы записаны, трудно что-то упустить. Дальше больше — я превратил инструкцию в самостоятельный shell-скрипт — запустил и сервер готов. Я думаю, некоторым python-разработчикам, особенно начинающим, будет полезно ознакомиться с содержимым скрипта. С некоторыми доработками вы, возможно, захотите использовать его в своей практике.
Читать дальше →
Всего голосов 111: ↑100 и ↓11+89
Комментарии56

Возможности MongoDB

Время на прочтение2 мин
Количество просмотров11K
Посмотрел видеозаписи с конференции Mongo Moscow.
Вот тезисы о возможностях, оставшиеся от просмотренного.
Перевод был не ахти, смотрел на английском, мог что-нибудь напутать.
Старался быть объективным, если не получилось — пишите :)

Читайте:
Всего голосов 60: ↑52 и ↓8+44
Комментарии90

Как привлечь пользователей в ваш стартап

Время на прочтение6 мин
Количество просмотров1.4K
Наиболее частый вопрос, который я слышу от молодых предпринимателей — «Как я заполучил пользователей?»

И вот как я это делаю.

Обо мне

(испытываешь странное чувство от описания себя, но в случае если вы читаете это и удивляетесь, кто же этот парень… на самом деле я всего лишь пытаюсь помочь).

Я сделал блог с 5 миллионами читателей, рекламную биржу которая охватывает больше людей чем Facebook, написал книгу которая была 12-ой на Amazon и сделал еще кучу всяких разных странных вещей, которые популярны и приносят деньги. Я создал новую растущую компанию социальных покупок. Я ангел-инвестор и советник в дюжине разных компаний и одном университете. Я присутствую на нескольких журнальных обложках и тут (оцените количество просмотров и комментарии людей, которые желали бы чтобы их «папочка был так же крут» как я).
Читать дальше →
Всего голосов 123: ↑100 и ↓23+77
Комментарии65

Создание py2exe сборок с модулями Python, содержащими сторонние файлы

Время на прочтение6 мин
Количество просмотров11K
Для краткости, введем обозначение «нестандартные» — под этим термином будем далее подразумевать такие модули, которые содержат в себе файлы, отличные от *.py. К примеру это могут быть библиотеки (*.pyd), картинки, иконки, и т.д.

Первая проблема состоит в том, что практически все сборщики бинарных «дистрибутивов» python-приложений, такие как py2exe, bbfreeze, cx_Freeze, и другие, забирают из таких модулей только *.py файлы. Вторая проблема возникает со сложными namespace-модулями, такими как ETS — часто сборщик не может правильно разобрать все их внутренние зависимости.

Конкретно в моем случае камнями преткновения оказались все модули ETS (mayavi, chaco, и т.д.), m2crypto, vtk, h5py, matplotlib и несколько других (вообще, как выяснилось, таких модулей очень много).

Я попробовал протестировать разные сборщики и поначалу остановился на cx_Freeze, т.к. он единственный умеет более-менее правильно импортировать ETS «из коробки». Однако, его оказалось недостаточно: он не смог справиться с другими нестандартными модулями, а также по ряду других причин (к примеру, мне так и не удалось скрыть окно консоли, поставить кастомную иконку, и пр.). Конечно, там есть механизм «рецептов» (совсем не документированный), который даже работает, к примеру, для matplotlib, но хотелось более универсального и простого решения, чем писать подобный рецепт под каждый модуль.

В итоге я остановился на py2exe, т.к. с ним удалось решить все вышеназванные проблемы. Поскольку на это ушло довольно-таки значительное время, то хочу с вами поделиться — может кому тоже понадобится.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии8

Пайпы, the pythonic way

Время на прочтение3 мин
Количество просмотров18K
Одни питонисты любят код читаемый, другие предпочитают лаконичный. К сожалению, баланс между первым и вторым — решения по-настоящему изящные — редко случается встретить на практике. Чаще стречаются строки вроде
my_function(sum(filter(lambda x: x % 3 == 1, [x for x in range(100)])))
Или четверостишья а ля
xs = [x for x in range(100)]
xs_filtered = filter(lambda x: x % 3 == 1, xs)
xs_sum = sum(xs_filtered)
result = my_function(xs_sum)
Идеалистам же хотелось бы писать как-то так
result = [x for x in range(100)] \
    | where(lambda x: x % 3 == 1)) \
    | sum \
    | my_function

Не в Питоне?
Зря так думаете...
Всего голосов 83: ↑81 и ↓2+79
Комментарии81

Большая коллекция игр для Ubuntu на DVD — Ubuntu GamePack

Время на прочтение8 мин
Количество просмотров7.8K
Доступна для загрузки Самая большая коллекция игр для Ubuntu — Ubuntu GamePack.

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

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

Большинство игр возможно скачать из официального репозитория Ubuntu или дополнительного www.playdeb.net.
Но преимущество данного сборника состоит в том, что имея его под рукой и не имея БЫСТРОГО интернета (некоторые инсталляции игр занимают более 100М, а такой объем вы вряд ли скачаете быстро по модему), вы с легкостью можете установить игру на компьютере не имеющего подключения к интернет.
Все игры на дисках упорядоченны по жанрам.

Диски содержат только игры и не содержат операционной системы, поэтому требуют предустановленную систему Ubuntu Desktop 10.04 или новее.
Все игры представленные на дисках имеют установочные пакеты для 32-х и для 64-х разрядных систем.

Загрузить сие творение можно:
с FTP — http://ualinux.com/ru/windows-download/category/6-gamepack

c torrent — http://rutor.org/torrent/104504

для жителей Украины будет удобна загрузка с — http://www.ex.ua/view/6131394

Список игр на дисках:
Читать дальше →
Всего голосов 72: ↑60 и ↓12+48
Комментарии56

Собираем данные с помощью Scrapy

Время на прочтение4 мин
Количество просмотров116K
Здесь уже проскакивали вскользь упоминания об этом фреймворке для сбора данных. Инструмент действительно мощный и заслуживает большего внимания. В этом обзоре я расскажу, как

scrapy

  • создать паука, выполняющего GET запросы,
  • извлекать данные из HTML документа,
  • обрабатывать и экспортировать данные.





Читать дальше →
Всего голосов 87: ↑85 и ↓2+83
Комментарии49

Информация

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