Pull to refresh
2
0
Владимир @zero13cool

User

Send message

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

Reading time5 min
Views18K
Доброго времени суток. Решил поделиться опытом в организации рабочего процесса разработки веб-проектов и не только веб. Расскажу свое видение максимально удобного использования связки типа: bugtraker + git + ci + deploy.



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

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

Reading time6 min
Views221K
   На днях нас с коллегами случайно занесло в северную столицу, где не менее случайно нам удалось побывать в самом, пожалуй, необычном офисе города. Наличие фотоаппарата позволило частично передать вам ту атмосферу, которая царит в этом месте — осторожно, много фоток!

image
Читать дальше →
Total votes 390: ↑303 and ↓87+216
Comments342

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

Reading time1 min
Views1.7K
Управляющий партнер компании ScrumTrek Асхат Уразбаев — о внедрении гибких методологий программирования в российских IT-компаниях, о принципах Agile и их эффективности в веб-бизнесе, об ошибках использования Scrum и Agile и о том, как относятся к применению Scrum разработчики, менеджеры и заказчики.
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments9

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

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

Как все получилось, можно узнать дальше...
Total votes 55: ↑43 and ↓12+31
Comments34

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

Reading time20 min
Views96K
Мой список книг, которые мне хочется прочесть, изрядно вырос, спасибо топику “запасаемся на зиму”. Под катом вы обнаружите список книг, составленный по комментариям в том топике.
Читать дальше →
Total votes 139: ↑124 and ↓15+109
Comments89

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

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

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

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

Но оказывается это сделать можно!
Total votes 9: ↑8 and ↓1+7
Comments15

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

Reading time5 min
Views27K

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

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

Читать дальше →
Total votes 60: ↑56 and ↓4+52
Comments42

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

Reading time1 min
Views65K
На Хабре неоднократно обсуждалось использование 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.
Total votes 42: ↑37 and ↓5+32
Comments9

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

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

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

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


Читать дальше →
Total votes 60: ↑57 and ↓3+54
Comments19

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

Reading time4 min
Views145K
Любой приказ, который может быть неправильно понят, понимается неправильно (Армейская аксиома)

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

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

Reading time7 min
Views10K
В моей практике чаще всего в качестве шаблонизатора используется именно 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.

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

Читать дальше →
Total votes 60: ↑59 and ↓1+58
Comments50

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

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

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

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

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

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

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

Читайте:
Total votes 60: ↑52 and ↓8+44
Comments90

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

Reading time6 min
Views1.4K
Наиболее частый вопрос, который я слышу от молодых предпринимателей — «Как я заполучил пользователей?»

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

Обо мне

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

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

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

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

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

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

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

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

Пайпы, the pythonic way

Reading time3 min
Views18K
Одни питонисты любят код читаемый, другие предпочитают лаконичный. К сожалению, баланс между первым и вторым — решения по-настоящему изящные — редко случается встретить на практике. Чаще стречаются строки вроде
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

Не в Питоне?
Зря так думаете...
Total votes 83: ↑81 and ↓2+79
Comments81

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

Reading time8 min
Views7.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

Список игр на дисках:
Читать дальше →
Total votes 72: ↑60 and ↓12+48
Comments56

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

Reading time4 min
Views115K
Здесь уже проскакивали вскользь упоминания об этом фреймворке для сбора данных. Инструмент действительно мощный и заслуживает большего внимания. В этом обзоре я расскажу, как

scrapy

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





Читать дальше →
Total votes 87: ↑85 and ↓2+83
Comments49

Information

Rating
Does not participate
Date of birth
Registered
Activity