Search
Write a publication
Pull to refresh
0
0
Вадим Г @hrumcraft

User

Send message

Притча о пропавшем Стэке

Reading time3 min
Views994
— Здравствуй, дружок…
— Дяденька, вы снова расскажете мне сказку?
— Конечно! Какой умненький мальчик!
— А про что?
— М… сегодня я расскажу тебе о том, куда пропадают чересчур самостоятельные мальчики вроде тебя…
— Э! Что значит пропадают?
— Вот то и значит… На, держи огнелиса *протянул, держа за хвост, пылающее пламенем животное* Только осторожно — он горячий!
— Ай-ай-ай! Он брыкается!
— Посади на него огненного жука — мигом успокоится.
— Класс! Действует!
— Ато! Теперь скажи ему:
function throwException( ){
    (void 0)()
}
throwException()

А дальше идёт жёсткое разоблачение

Rework — долгожданная книга от 37signals

Reading time1 min
Views25K
Rework

Свершилось! Cегодня появилась в продаже новая книга Джейсон Фрид (Jason Fried) и Дэвид Хейнемейер (David Heinmeier) из 37signals. В книге рассказывается о принципах управления всем известных проектов этой студии. Rework идейно дополняет книгу Тима Ферриса (Tim Ferriss) «The 4-Hour Workweek».

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

Что мне нравится в Redmine

Reading time4 min
Views131K
В недавней статье об инструментах управления проектами был задан вопрос о различиях Trac и Redmine. Ниже перевод довольно субъективной, но вполне аргументированной статьи о различиях между этими системами.

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

Новый метод работы в 37signals: результаты двух месяцев

Reading time4 min
Views2.1K
37signals — небольшая частная компания из Чикаго, специализирующаяся в разработке веб-приложений. Среди их продуктов средства для совместной работы и системы управления данными: Basecamp, Campfire, Highrise.

imageВ начале января я писал (перевод) о введении новых методов работы в этом году. Мы решили объединить отдельных разработчиков в команды из 3 человек: двух программистов и дизайнера. Состав команд будет оставаться неизменным в течение 2 месяцев. Каждый двухмесячный модуль будет разбит на 4 последовательные итерации, по две недели каждая. Мы поставили цель добиться сокращения списка задач для каждой итерации, строгого следования сжатым срокам и улучшения нашего продукта.

Что из этого получилось?


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

Сила и красота декораторов

Reading time5 min
Views83K
Одним из самых сложных для понимания и осознания элементов языка является декоратор, хотя по сути это очень простая вещь, доступная для понимания даже начинающему программисту. Новых Эверестов я не открываю, а лишь предлагаю краткий обзор возможностей и несколько типичных примеров использования. Этакий короткий экскурс в метапрограммирование на питоне.

Upd 1: изменил несколько категоричное утверждение о несходстве паттерна Декоратор и одноимённой языковой конструкции на более мягкое.

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

Тонкости использования селекторов аттрибутов в CSS

Reading time4 min
Views35K
CSS может связываться с HTML элементами используя любые из его атрибутов. Вы наверняка знаете о классах и ID. Проверим это в HTML:
<h2 id="first-title" class="magical" rel="friend">David Walsh</h2>

Этот один элемент имеет три аттрибута: ID, class и rel. Для выбора элемента в CSS вы можете использовать селектор ID (#first-title) и селектор class (.magical). Но знаете ли вы, что можно использовать для выбора атрибут rel? Это так называемый селектор атрибута:
h2[rel=friend] {
  /* woohoo! */
}

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

First slice of rails

Reading time9 min
Views3.4K
-О чём вы, Морфеус?

Количество фреймворков в мире растёт с пугающей скоростью. Тысячи их уже на данный момент. Благо, лучших из низ — не так много. Весь мир Web разработчиков просто подразделился на несколько групп, которые отадют предпочтение тому или иному фреймворку. Я не люблю тёрок и холиваров, так что бог с ним с тем, что лучше. Я лишь хочу поговорить с разработчиками ASP.NET о Ruby on Rails.

Зачем?

Расскажу свою историю. На ASP.NET я пишу с 2004 года. Знаю множество закоулков данной системы и знаю, что она сама по себе восхитительна. Я пережил 3 больших проекта на .NET и написал с 10 сайтов, которые сейчас продолжают стабильно работать. Если говорить о фрейворкнутости, то .NET меня удовлетворял всем. В самых больших проектах я находил решения самых сложных задач. И вот, через 6 лет мне просто захотелось посмотреть, а что же есть другого на рынке? Естественно, первым делом я наткнулся на RoR.

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

Защита от XSS в Rails 3

Reading time4 min
Views3.5K
Скорее всего вы уже знаете о том, что в Rails 3 по умолчанию добавлена защита от XSS атак. Это значит, что отныне вам никогда не придется вручную фильтровать ввод пользователя используя хелпер h, потому что рельсы всегда будут делать это за вас.

Тем не менее, всё не так просто, как кажется на первый взгяд. Рассмотрим следующий код:
Привет <strong>друзья</strong>!

<%= tag(:p, some_text) %>
<%= some_text %>

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

ActiveRecord Query Interface 3.0

Reading time5 min
Views5.8K
В данном переводе рассмотрены нововведения в следующей версии ActiveRecrod для Ruby on Rails 3, а так-же описана часть модуля, которая будет исключена в пользу поддержки новых интерфейсов.

Что потеряет поддержку в Rails 3.1?


Следующие методы будут считаться устаревшими в релизе Rails 3.1 (но не Rails 3.0), и будут полностью исключены из Rails 3.2 (хотя можно будет установить специальный плагин для их дальнейшего использования). Имейте в виду это предупреждение, т.к. оно влечет за собой значительные изменения в коде.

В кратце, передача хеша options, содержащего :conditions, :include, :joins, :limit, :offset, :order, :select, :readonly, :group, :having, :from, :lock любому методу класса, предоставленного ActiveRecord’ом отныне считается устаревшим.

Рассмотрим это более подробно.
Читать дальше →

Обзор онлайн-справочников для Ruby On Rails

Reading time4 min
Views5.8K
Мало найдеться программистов (особенно начинающих), способных держать в голове названия всех нужных методов а так-же количество, порядок и назначение передаваемых им параметров. Для этого существуют справочники по API.

В этом посте я хотел бы собрать вместе несколько полезных, посвященных Ruby on Rails, справочных ресурсов (в том числе и по API), которые всегда удобно держать под рукой, в соседней вкладке браузера.

Речь пойдет о:
Читать дальше →

Асинхронный http-клиент, или почему многопоточность — лишнее

Reading time10 min
Views9.3K
Какое-то время назад Хабре проскакивала заметка про клиент-парсер сайтиков на Питоне. Автор на этом примере разбирал проблемы многопоточных сетевых приложений.

Но мне показалось, что ту же задачу (вернее, ее главную часть — параллельные соединения c http-cервером) вполне можно эффективно решить и без потоков.

И решил...

Создание мульти-модельных форм

Reading time7 min
Views21K
Иногда требуется создать форму, данные которой связаны с несколькими таблицами. К примеру, у вас имеется две модели: Owner и Car. При добавлении нового Owner'a хотелось бы, чтобы была возможность сразу добавить машину. С появлением Rails 2.3 это стало проще.

# Старый вариант (приблизительный)
def create
  @owner = Owner.new(params[:owner])
  ...
  if @owner.save
    @car = Car.new(params[:car])
    if @car.save
    ...
end

# Новый вариант, Rails 2.3+
def create
  @owner = Owner.new(params[:owner])
  ...
end


Где же магия?

Восполняем прорехи в документации

Reading time3 min
Views655
Я всё-таки закончил издевательства над LaTeX'ом, и теперь наконец-то могу предоставить на суд общественности pdf-версию руководства по переходу на Ubuntu.

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

Spree 0.10.0 release

Reading time1 min
Views1.3K
Intro: Spree — довольно мощный и гибкий движок для создания интернет-магазинов, написанный на Ruby on Rails, распространяющийся под лицензией New BSD.

Спустя почти полгода после релиза 0.9.0 вышла очередная версия Spree — 0.10.0, эта версия вобрала в себя множество замечательных, новых возможностей:
  • Поддержка тем оформления
  • Расширяемый механизм поиска (с помощью расширений поддерживается поиск через Xapian, Sphinx и Solr)
  • Настраиваемый процесс оформления заказа (можно убирать или добавлять шаги)
  • Группы товаров на основе разнообразных критериев
  • Улучшена поддержка конфигурации платёжных систем
  • Возможность выбора(для пользователя) из нескольких способов оплаты
  • RESTful API
  • Несколько SEO улучшений
  • Поддержка Rails 2.3.5 и Ruby 1.9

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

Полный список примечаний к релизу

UPD: перенесено в блог «Ruby»

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

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

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

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

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

Подробнее

Быстрочтение featuring Восприятие текста

Reading time8 min
Views79K
Привет всем. Основываясь на предыдущем опыте, считаю нужным сразу расставить все точи над ё. Описанная ниже методика — не мое изобретение. Однако из собственного опыта могу уверить вас, что она работает. Ровно так, как обещано.
Идея, описанная в посте, появилась давно (под катом есть история), в том виде, в каком расскажу ее я, по большей части она представлена в чудесных книгах Тони Бузана Use You Head и The Speed Reading Book (в последней много воды).

Пост затрагивает проблемы скорости чтения, понимания текста, а также методы значительного улучшения и того, и другого.

Написано с подачи пользователя cympak. Посвящается всем кто много читает: будь то деловые документы, художественные произведения или статьи на Хабре типа этой.

Прежде чем приступить к самому главному, прошу вас пройти тест из шести вопросов на Да/Нет.

1. Чтение со скоростью свыше 1000 слов в минуту невозможно?
2. Медленная скорость чтения способствует лучшему пониманию текста?
3. Пропускать слова во время чтения — плохая привычка, ухудшающая понимание текста?
4. По умолчанию мы все читаем с «естественной» для нас скоростью, а следовательно, наилучшей?
5. Если вы не поняли слово или предложение, лучше перечитать его и понять?
6. Ваши глаза находятся в непрерывном движении во время чтения?
За результатами и, наконец-то, интересными штуками добро пожаловать под кат.
Читать дальше →

Что ждет Индивидуальных предпринимателей без сотрудников в 2010 году?

Reading time2 min
Views738
Привет!

С начала этого года в России вступил в силу страшный закон, отменяющий ЕСН, и сразу же по интернету начали гулять мифы о том, какие нововведения ждут предпринимателей – на форумах пишут о дополнительном налоге в 14%, новой отчетности и прочих дьявольских хитростях. При этом опытные бухгалтеры многозначительно покряхтывают, говорят «Боже мой, как же все поменялось» и задумчиво качают головой.

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

В основном все осталось как и прежде. Поменялись всего 3 вещи:
Читать дальше →

OptionParser и UnitTest в python скриптах

Reading time9 min
Views4.7K
python logoВ этой статье я хочу поинтересоваться у общественности правильно ли я реализую возможности данных двух замечательных модулей питона, которые уже давно вошли в стандартный (жизненно необходимый) набор питоноводов всей планеты.
Читать дальше →

Adobe flash player VS кодировка cp1251

Reading time2 min
Views2.3K
Для большинства линуксоидов известна проблема с кириллицей и виндовыми кодировками в плагине flash player для браузеров. При попытке набора текста кириллицей в любых флеш приложениях, видны были только кракозябры. *nix пользователям приходилось набирать текст в других редакторах, а дальше ctrl+C && ctrl+V. В багрепортах этот баг известен, адоб уже достаточно давно обещался его пофиксить.
imageМожет для кого то это уже и не новость, но наконец то свершилось! В версии Flash Player 10.1 Beta 2 кириллица набивается вполне себе корректно.

Рецепт установки простой.
Проверяем что воспроизводит flash сейчас, для этого в строке браузера набираем about:plugins
Удаляем живущий у нас плагин, далее на всякий случай проверяем не осталось ли чего:
sudo find / -iname *flashplayer*.so //смотрим что консоль кажет)
Что то нашло? Убиваем/бекапим

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

Information

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