Главная страница

Я на twitter.com

16:25, 2008-04-15 [ eo | ru | en ]

Поставил себе gTwitter. Можно меня наблюдать вот тут.

shell top

13:45, 2008-04-15 [ eo | ru | be | en ]
$ history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head
149 cd
76 l
28 git
25 rake
18 airstream
17 script/server
17 ls
16 sudo
13 sshm
12 vim

Vim так мало в связи с очередной попыткой полностью перейти на gedit.

[censored] будут наказаны!

09:15, 2008-04-13 [ ru ]

Белорусский <strike>чинуша</strike> большой папан из минобразования - Николай Листопад - транжирит деньги налогоплательщиков.

Внутри макбука

14:01, 2008-04-07 [ eo | ru ]

Разбирал на выходных свой макбук с целью заменить дерьмовый Wi-Fi адаптер… Внутри макбука

Все винтики, на которых крепится панель с клавиатурай оказались разной длинны и ширины. Было очень забавно искать что и куда вкрутить :)

Карточка от Dell оказалась еще более шильной. Буду брать вот эту.

Macbook

PS: Фотать мобилой определённо круто :)

No Pasaran!

12:23, 2008-04-07 [ ru ]

… или русские не здаются

Edge: UTC-based версии для миграций

17:11, 2008-04-06 [ ru ]

Теперь версии миграций базируются на более уникальной временной схеме:

script/generate migration  add_state_column
      exists  db/migrate
      create  db/migrate/20080407000142_add_state_column.rb

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

Evoluton: задачи и встречи

08:47, 2008-04-06 [ eo | ru | be | en ]

Чего не хватает в почтовике Evolution:

GTD: Борьба с "Разным"

08:28, 2008-04-06 [ ru ]

Дэвид Ален в Getting Things Done определил алгоритм перевода “Разного” в список задач, которые, при соблюдении других правил, должны привести к результату в виде сделанного дела :)

Разбор разного - задача с высоким уровнем неопределенности и может занимать от минут до нескольких лет. Кстати… Если на принятие решения уходит 2 минуты вместо 2 секунд - эффективность понижается в 60 раз.

Зависшее “разное” постоянно отвлекает от конкретных действий и повышает тревожность. Поэтому лучше отсортировать все “висяки” до начала работы :) Схема Дэвида Алена в полной версии. А вы как боретесь с хаосом?

Edge Rails: named_scope

18:26, 2008-04-05 [ ru ]

В Edge Rails появилась возможность определять именованые условия-фильтры для поиска:

class User < ActiveRecord::Base
  named_scope :active, :conditions => {:active => true}
  named_scope :inactive, :conditions => {:active => false}
  named_scope :recent, lambda { { :conditions => ['created_at > ?', 1.week.ago] } }
end

Стандартное использоваине:

User.active    
# = User.find(:all, :conditions => {:active => true})
User.inactive  
# = User.find(:all, :conditions => {:active => false})
User.recent    
# = User.find(:all, :conditions => ['created_at > ?', 1.week.ago])

К тому-же эти методы умеют гнездится:

User.active.recent

делает то-же, что

# User.with_scope(:conditions => {:active => true}) do
#   User.find(:all, :conditions => ['created_at > ?', 1.week.ago])
# end

а именно: находит всех активных пользователей зарегистрированных на прошлой неделе.

Чтобы воспользоваться этой функциональностью нужно иметь последние рельсы в vendor.

rake rails:freeze:edge

На хабре не популярен Rails русский мат или ODF?

04:27, 2008-04-03 [ ru ]

Опубликовал заметку о новом в Rails на Хабре - опустили материал ниже плинтуса :)

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

Rails Team теперь использует Git

02:17, 2008-04-03 [ ru ]

Сегодня Дэвид объявил о переводе репозирория Rails на Git. Рано или поздно это должно было случится :)

Старые репозитории пока работают, но Edge Rails можно получить только через git.

Edge: Грязные объекты

16:44, 2008-04-02 [ ru ]

Сейчас можно проверить был ли модифицирован объект (ActiveRecord) и что именно было модифицировано.

article = Article.find(:first)
article.changed?  #=> false

Отслеживать изменение отдельных атрибутов:

# attr_name_changed? accessor
article.title  
#=> "Заголовок"
article.title = "Новый заголовок"
article.title_changed? 
#=> true

Получить старое значение атрибута:

# attr_name_was accessor
article.title_was  
#=> "Заголовок"

Получить старое и новое значения:

# attr_name_change accessor
article.title_change  
#=> ["Заголовок", "Новый заголовок"]

Получить массив измененных атрибутов:

article.changed  #=> ['title']

Получить хэш изменений:

article.changes  
#=> { 'title' => ["Заголовок", "Новый заголовок"] }

Вот как ведет себя объект:

article.changed?  
#=> true
article.save  
#=> true
article.changed?  
#=> false

Однако если вы модифицируете значение атрибута вне attribute=(), вам придется предупредить об этом модель:

article = Article.find(:first)
article.title_will_change!
article.title.upcase!
article.title_change  #=> ['Title', 'TITLE']

Привет Планета

16:26, 2008-04-02 [ ru ]

Мой блог добавили к планете на рельсах.

Приветствую всех читателей :)

Ruby On Rails - работа в Минске

16:23, 2008-04-02 [ ru | en ]

Что нового в Rails

15:56, 2008-04-02 [ ru ]

Ryan постоянно пишет о новом в Ruby on Rails.

А я вот решил заморочится переводами :)

Что же нового в Rails?

Частичные апдейты модели

post = Post.find(:first)
post.title    
#=> "OOXML - банановый стандарт для плохих документов"
post.rating   
#=> 4329

# Изменяем всего один аттрибут модели
article.title = "Хуёвый стандарт для хуёвых документов"

# И только обновленный пойдет в базу
article.save 
#=>  "UPDATE articles SET title = 
'Хуёвый стандарт для хуёвых документов' WHERE id = 1"

Чудесно, не правда ли? Если кто-то не в курсе, раньше ActiveRecord апдейтал все атрибуты модели не смотря на то, что изменились только некоторые.

Чтобы включить эту фичу глобально нужно добавить в config/initializer вот это:

ActiveRecord::Base.partial_updates = true
Strio