Немного twit-попа

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

В общем, хватит о личном, пора о главном. Поскольку любовь меня и LMT не сложилась, то direct сообщения из twitter-a на мобильник ко мне не приходят. И ладно бы была возможность получить извещение о них с web-интерфейса телефоном, но ее пока нет. Поэтому на досуге я наваял небольшой скриптик, который ходит на сайт, забирает оттуда директы и отсылает их мне на мобильник SMS-ками.


#!/usr/bin/env ruby

require 'rubygems'
require 'twitter'
require 'net/smtp'

twitter = Twitter::Client.new(:login => "не скажу", :password => "угадай")

twitter.messages(:received).each do |message|
  mtext = transliter(message.text)
  msg = "from: TwitterBot nn#{message.sender.screen_name}: #{mtext}"
  Net::SMTP.start('mail.copperred.net',25,'copperred.net',
                  'аккаунт','пароль',:login) do |smtp|
    smtp.send_message(msg,'откудамыло', '371номермобилки@sms.tele2.lv')
  end
  twitter.message(:delete,message.id)
end

Комментарии я думаю не нужны: обычный цикл по всем сообщениям для приведения их к стандартному виду и удалению по факту отправки SMS. Оно живет у меня на кроне и В альтернативной разметкe смотреть на Pastie. Если уже написанного вам маловато будет, то дальше можно прочитать, почему у поста такой странный заголовок.

Continue reading Немного twit-попа

Немного багов с Gems

В последнее время, меня немного поколбасило. Ну, не считая сессии, прошел BarCamp, где я проявился на Инкубаторе Инноваций. Ушел с работы, чтобы освободить больше времени для оффициального и личного образования. Теперь, перехватываю сторонние проекты, которые изредка падают на голову.

В связи с уходом с работы, пришлось менять сервер. Блога это не коснулось, хостинг-то у меня зарубежный, платный и shared, но приятно иметь 24/7 сервер на котором у тебя есть права root-а. Тоесть можно легко и просто поставить нужные пакеты, или просто перезагрузить машину, когда она просто начала сильно сбоить. Слава Богу, мир не без добрых людей. Jujo, выделил мне место на своем development server-e, и я теперь планомерно переношу туда свои разработки.

Сервер хороший, и работает на правильной операционке Ubuntu Server, поэтому большинство пакетов поставились простым apt-get. Но, не все было просто. Поскольку я любитель-экспериментатор, то свой репозиторий gem пакетов (это специальные библиотеки для ruby) я предпочитаю хранить отдельно. Мало ли кому не понравятся development версии. Для этого, я пользуюсь простым решением, когда найденым на форумах хостера.

Ниже идет решение, которое будет полезно любому, кто решил завести свой gem repository, а также список ошибок, которые могут быть причиной не совсем верных апдейтов или нехватки пакетов. В общем, если вас зацепило, то надо жать на ссылку, а если нет, то гляньте в Blogroll, там много интересных кандидатур. Кстати, чтобы ссылка на ваш сайт оказалась в моем блогролле, нужно регулярно – раз в месяц – перечислять мне 1.99 долларов на каждый из счетов в webmoney, moneybookers, paypal и 3ех банках. 🙂

Continue reading Немного багов с Gems

Link Splash: Ruby and Friends

Итак, я уже дозрел до того, чтобы выпустить список кое-каких ссылок. Не думаю, что такие “линковочные” посты станут у меня регулярными, но все-таки надо избавляться от десятка драфтов недописанных статей. Начну с полезного, а потом об остальном:

Ruby/Rails

http://www.rubular.com/ – Сайт интерактивного составления RegExp-ов на языке Ruby c красивыми подсказками. Все очень симпотично, так что если вы используете Ruby, то прошу любить и пользовать.

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


Markaby::Builder.new({},self) do
  div.debug_block do
    h2 "Some errors found"
    p "Please check: "
    ul.error_list do
      object.errors.each do |str_n, error_msg|
        li "#{str_n}: #{error_msg}"
      end
    end
  end
end

(альтернативная расцветка) чем громоздить встраиваемые теги в виде


  <ul class="error_list">
<% object.errors.each do |str_n, error_msg| %>
<li><%= str_n %>:<%= error_msg %></li>
<% end %>
</ul>

Я бы вряд ли вспомнил, что хотел писать об этом если бы Алексей Лапуста, который начал в своем блоге рассказывать о Apache Widgets. И большое спасибо ему за это, и за ссылочку на Юрия Рашковского с его lilu, поскольку любой из этих механизмов делает большое дело – облегчает труд программиста.

Да, кстати, если rails для вас слишком громоздкий, а ActiveRecord просто незнакомый, то гляньте на [Merb](http://merbivore.com/) – быстрый, легкий и простой. Ну и конечно нельзя не сказать о [pastie](http://pastie.caboo.se/) – удобном способе “угощать” других кусочками кода.

Friends

Ну и подводя итог ссылочных постов, хочется вспомнить и о друзьях и близких.

[Любимая супруга](http://olga-from-riga.livejournal.com) – первый блогер, кто стал регулярно писать. Даже можно сказать “нулевой”, ибо я к тому времени еще не определился сам, нужен ли мне этот ЖЖ, а она уже вступила и поддержала меня там. Так что встречайте мою ненаглядную в своих френдлентах.

[Моджо Джуджо](http://g-xboct.livejournal.com/) – начал писать в свой блог когда я только перебрался на stand-alone. Вот так вот разминулись. Пишет редко, но еще проникнется, я думаю.

[Addict Линейки](http://kukish.copperred.net) – в принципе, на его регулярном журнале заметок об этой игре не хватает только моргающей кнопки “В мире Adena уже 19 часов”, которая бы показывала его адекватное состояние. Однако, надо отдать должное – его блог генерит хороший поток трафика и я подумываю о перевешивании своего адсенса на его страницы. Тем более он давно уже не пишет и вряд ли заметит такую метаморфозу.

[Константин Неуязвимый](http://axil.copperred.net) – мой хороший друг буквально этим летом попросил сделать ему небольшой чердачек, чтобы он смог класть туда самые яркие впечатления о своей жизни. Вот такая страшная получается штука – Неуязвимый ибо Ахилес, и запасливый как настоящий гном – туда стащил массу всего полезного и прекрасного. Прошу любить и жаловать. Кстати, одна из любимых его цитат: “Воистину Виндоуз это отрыжка сверхразума

[J.L](http://ziona.wordpress.com) – думали я буду ссылаться на JL на myspace 🙂 Фигульки! Это наша, рижская ДжеЛо, которая за пояс заткнет, а затем запихнет в горящую избу всяких там разных “гламурных” слонов, считающих себя админами, а gentoo новой версией windows. Прошу любить и жаловать.

Открытия

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

[Записки с Земли](http://zemlanin.info), [Мэкаль](http://mekal88.com), [BlogerStyle](http://www.blogerstyle.com/), [Блог Соотвечественника](http://dikiy.com)

Спасибы

В первом ссылочном посте я хочу сказать очень длинное предложение с благодарностями: [Ивану Сагалаеву](http://softwaremaniacs.org/blog) – за Учебник и за то, что показал прелести блогинга в блоге технического человека, [Юлиану Тарханову](http://live.julik.nl) – за пост “Скепсис” и мое знакомство с Ruby, [Группе RoR2ru](http://groups.google.com/group/ror2ru) за то что еще не срываются отвечать на мои нубские вопросы, [N.O.B-у](http://numberoneblogger.com/) – за то, что он умеет невыкинуть ночную бредовую мысль и поддержать ее мыслителя и [Slaff-у](http://slaff.net) – за то, что его просто приятно почитать.

Кстати, все ссылки без nofollow 🙂 Специально, чтобы эти людям было приятно и полезно.

Вышли Рельсы 2.0.1

Еще не успели отгреметь фанфары и сайт не отпустил digg-эффект , как я пишу заметку о том, что вышлa вторая версия Ruby on Rails, замечательного фреймворка, для разработки Web-приложений.

Много нововведений, таких как поддержка базовой HTTP авторизации 3 строчками, множество минорных фиксов на увеличение производительности да и вообще интересный список получается. Конечно, обзор никакой, но и новость свежая, сам буду ждать подробных отзывов и экспериментировать с ней в ближайшие дни.

Приходите еще, оставляйте ваши отзывы, ну и пишите сами чем вас порадовал этот выходной. Вдруг, выход Python 3.0 alpha 2 для вас гораздо важнее?

Не знаете, что такое Ruby on Rails? Смотрите screencast и пишите, что вы об этом думаете!

Первая книга по Rails

Я уже почти отчаялся найти ее на языке Пушкина и Достоевского, но все-таки мир не без умных людей! Книга номер один посвященная быстрой разработке на Ruby on Rails выйдет в конце февраля. Пойду на Озон смотреть цену на предзаказ. Однозначный МастХэв всем Rails-разработчикам.

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

Июльский скриптик для работы с файлами

В очередной раз надо было поставить на поток генерацию HTML-кода для списка файлов в одной категории. На этот раз, перенаправлением в консоль было не отделаться, поскольку нужно было выпечатать ряд html-ок для лежащих в директории флешевских мувиков.
Работа с файлами в ruby сделана более чем прозрачно и напоминает другие языки. Не открывая мануала, я написал что файловая переменная f у меня будет равна File.new(“filename.txt”) и это заработало. Правда, для того чтобы в файл можно было писать, нужно ставить вторым параметром букву w. Не забывайте об этом, иначе потеряете полторы минуты на отладке скрипта, как я.
Кстати, не приходит мне на ум другой язык, в котором есть такая конструкция как

dataArray = f.readlines


которая автоматом записывает каждую строку файла в массив.

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