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

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

dataArray = f.readlines


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

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

Словечко о банках

Так смешно: 3 раза меня жизнь приводила в “Hansabank” и ни разу не обошлось без курьеза. Сразу оговорюсь, что я не собираюсь рекламировать тут Parex или Hans-у ибо они мне никаких аффилятских отчислений не делают, а я, “собака продажная”, за бесплатно коммерческие ресурсы не промоучу.

Первая встреча с шуткой юмора в ханзе была, когда мы с женой надумали двинуть в романтическое путешествие. Надо было купить чешские кроны и я выстоял 50 минутную очередь в отделение Hansabank в Spice, где на электронном табло моргал курс чешской валюты к лату. Оказалось, что там их не меняют, а курс горит – типа, просто, так, мы даже и не знаем как это выключить.

Второй кусок был, когда директор попросил открыть меня счет в Hansabank-a для перевода зарплаты. Мы с супругой снова двинулись в близлежащее отделение. Я четко изложил проблему оператору и она сказала, что чтобы получать зарплату мне не нужно открывать новый счет, а можно просто дописать себя к счету жены. Мы заполнили необходимые бумаги и отправились восвояси. Когда же я пришел забирать карточку, то обнаружилось, что какую-то подпись не поставили, поэтому карточку мне не дадут. Пришлось ехать за женой и выстоять еще одну полутора-часовую очередь. Жена получила карточки, все хорошо, но самый главный прикол выдал мне шеф: **Он не может переводить зарплату на счет моей жены**. Я позвонил в Хансу и мне в офисе ответили, что “да, если счет сделан на жену, то вам на него деньги приходить не могут, только ей”. Едва сдержал мат и гнев по поводу компетентности сотрудников.

И вот, по свежим следам. Случай третий. Поняв, что в Spice сотрудники проходят какую-то обкатку и доверять им нельзя, я пошел в вокзальное отделение, чтобы открыть себе долгожданный зарплатный счет. Выстоял часовую очередь, подошел, поговорил. Сотрудница заполняет на компьютере формы и задает мне вопрос: “Вы хотите, чтобы вам приходили оповещения на телефон о поступлении денег?”. Ну, я соглашаюсь, диктую номер, она чего-то там давит, кликает, жмет, тыркает. Через 10 минут, она задает мне вопрос, которому я не был удивлен: “А вы не можете сказать номер телефона своей жены, а то я его случайно стерла?”. В общем, счет мне открыли, так что теперь буду пользоваться Хансабанком и смеяться 🙂

Ладно. Жизнь покажет, какие еще сюрпризы меня ждут. Главное, со всеми этими сюрпризами и хохмами не остаться без денег и не умереть со смеху. А у вас, мои дорогие читатели, были приколы с банками? Да? Тогда жду ваших комментов и трекбеков, чтобы разделить веселье или негодование.

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

По следам подкаста

Как я не ярился писать много и регулярно, работа отнюдь не способствует этому. Радует, что нашлась пара минут закачать на телефон подкаст Алексея Дмитриева о Рельсах. Замечательная речь, в которой хорошо вынесены все плюсы платформы:

1. Open Source – рецепт и экономической популярности, и кросс-платформенной совместимости. Открытый код позволяет любому разработчику посмотреть на исходный код.
1. Скорость разработки – причина, по которой вы можете оставить конкурентов позади. Буквально несколько команд позволяют вам создать каркас приложения, на котором строятся прототипы, на которые потом уже наращивается мясо. Очень хорошо сказано: в фокусе Ruby on Rails находится программист, а не сам продукт. То есть система построена так, чтобы облегчить разработку новых продуктов.
1. Автоматические тесты – защита готового проекта от человеческого фактора. Наборы тестов позволяют проверить функциональность работы системы, после внесения в код изменений. Таким образом можно автоматизировать проверку измененного кода. Система развертывания capistrano предназначена для автоматического обновления уже работающего кода. Для других систем тесты и развертывание не являются стандратом de facto.
1. База готового кода – импорт/экспорт документов Excel, системы авторизации, интеграция со сторонними сервисами, поддержка tag-ов, ajax, галереи и блоги – все это легко встраивается в приложение посредством plugin-ов и не надо изобретать велосипед.
1. Человечность языка – сам код приложения легко читаем даже теми, кто никогда не учил ruby. Как говорил Матсумото:
*”Человек создан для творчества, и я всегда знал, что люблю творить. Увы, я обделён талантом художника или музыканта. Зато умею писать программы. Я хочу, чтобы компьютер был моим слугой, а не господином, поэтому я должен уметь быстро и эффективно объяснить ему, что делать.”*
1. Ruby on Rails – это модно. Microsoft, Sun, Apple, Ebay и многие другие смотрят на RoR как на серьезный продукт.

Замечательный выпуск, меня очень порадовало что автор прекрасно раскрыл все плюсы разработки. Особенно понравилась фраза:
: Программисты народ заскорузлый. Их заставить что-то изучить надо постараться. Особенно это касается программистов на php: да ладно, мы будем по старому, как сапоги тачали, так и будем тачать.

Ждем следующих выпусков, в которых автор откроет такие темы как:

+ Когда не стоит использовать Ruby on Rails
+ Подводные камни, которые ожидают тех, кто собирается перевести текущую разработку на RoR
+ Рентабильность размещения Rails приложений для хостеров

А о чем бы хотели услышать вы? Оставьте комментарий или трекбек, что именно вас волнует в современной веб-разработки и какие темы надо бы расскрыть.

[tags]ruby, rails, ruby on rails[/tags]

Eще один WP Update

Как бы я не плевался на необходимость апдейтить движок блога, на днях все-таки сподобился на смену и на своем домене. Оказалось, что по накатанным следам это достаточно просто:

* Выключил все плагины и включил стандартную стандартную тему
* Сделал бекап базы и директории блога
* Сохранил старый файл настроек с паролем и логином
* Поставил через Fantastico блог (WordPress 2.2) в новую директорию
* Сделал копию новой инсталляции поверх старой
* Зашел в новый wp-config.php и закомментарил две строчки с DB_CHARSET и DB_COLLATE
* Исправил пароль на свой
* Зашел в админскую часть (wp-admin/)
* Нажал галку update database

Вот и все танцы с бубном. Надеюсь у вас все пройдет так же легко, как и у меня.

Еще один мотиватор

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

* определиться с нишей в которой будет находиться тематика моих статей – тут я уже понял и со сменой дизайна скорее всего смогу вас порадовать новым названием. Поскольку битва за высшее образование уже подошла к концу, то отныне я буду меньше фокусироваться на вопросах обучения, а уделю больше внимание гиковско-программерским фишкам. В частности, планируется ряд постов, о том как сделать элементарные вещи с помощью ruby.
* привлечь постоянных посетителей – насколько я знаю, мой блог попал в аггрегатор Димка и Дмитрия Кибина, постоянно меня читает Kukish и Hairgel_Addict_A. Если еще у кого-то моя писанина вызывает какие-то эмоции, просьба не ленится, а отметиться в комментариях. На основании этого чтива будет сформирован новый blogroll.
* выработать оригинальный стиль – не мне судить, пусть общественность скажет
* выйти на режим 3 статьи в неделю – это главный TODO на данный момент, но здесь мало что зависит от меня – есть поле для экспериментов и творчества, но зачастую просто не хватает времени для того, чтобы большую часть этого красиво изложить на страницах. Да и вечный вопрос, “надо ли?” терзает сознание. Если вам хочется о чем-то прочитать, моя почта ждет ваших посланий.
* нарисовать оригинальный дизайн – с постоянной сменой концепций, тот редизайн, который я готовил к майскому ребуту уже вряд ли можно назвать подходящим на 100%. Планирую кое что новое, даже есть идеи, но как известно, красиво и функционально у меня не всегда идут рука об руку.

И еще дорогие читатели вопрос к вам: стоит ли оставлять на блоге Adsense? За полгода висения, он “пережил” около 20 кликов и принес едва больше 3ех долларов. Имеет ли смысл тратить под него место? Конечно, хочется монетизировать свой труд, но возможно это лучше делать иным путем, например, размещая в конце каждого поста ссылку – “Понравился пост, купи мне пиво” с номерами кошельков WebMoney и прочих электронных денег? Часто ли вы нажимаете на adsense рекламу, если статья на блоге оказалась вам полезной?

Борьба за образование: KnockOut

Здравствуйте, мои дорогие читатели!

Битва за образование закончена: сдана бакалаврская, выиграно первое сражение.

Хотелось бы выразить свое огромное спасибо: жене, родителям, тестю и теще, Ахилу, Джуджо, сотрудникам фирмы Спаркс и научному руководителю.

За подготовкой работы совсем выпал из ритма жизни и почти неделю входил в колею. Было желание творить, а пришлось работать. Благо начальник – не тот который новый занудный педант, а тот который сообразительный дал интересное задание по связке двух баз: магазина на кривущем псевдодвижке и поставщика на огромном ХМЛе. Структура базы поработила мой мозг и осознание ее сожрало почти день.

По ходу работы был обнаружен жестокий баг SimpleXML: если вы считываете из базы поле float или decimals и не проводите дополнительный его cast через floatval, то рискуете потерять знаки после запятой. Обнаружилось на php5.2.1 пащущего под freeBSD6.0.

Кстати, если друзья мои вам набор макрорасширений милее красивого языка программирования, то можете присоединится к Сергею Куракину в его трудах над человечизацией ORM-слоя в php5.