Ням-ням, YAML!

Сегодня я торжественно финишировал со сдачей всех своих долгов, успешно отчитавшись по “Электронной коммерции”. Самое интересное, как обычно было на ТКПО у С. А. Орлова. Надо было написать тестовый модуль, для прогонки определенного кода. Поскольку кроме ruby других интерпретаторов не держу, а всякие Delphi/Dotnet долго и неинтересно писал его на ruby. Вынес тестируемый кусок в отдельную функцию, и положил в папку скрипта простой файлик в виде:


- price: 50
  discount: 10
  result: 45

- price: -20
  discount: 10
  result: -1

А дальше сам модуль:


tc = YAML::load( File.open( 'testcase6.yml' ) )
tc.map do |m|
 puts "Result is "+"%3.2f" % discount(m).to_f
end

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

Пирожок с привокзальной площади

Вчера абсолютно случайно увидел такую штуку, как screencast создания блога на cakephp за 25 минут. На самом деле, мувик гораздо более взбаломошный, чем тот, который сделан ребятами из Ruby On Rails комманды.
Что же это такое – cakephp? Это просто закос на известный фреймворк, написанный на php. C одной стороны перспектива отказаться от изучения ruby делает его более массовым, однако в отличии от старшего брата, в нем нет ни системы тестирования, ни собственного development server-a, ни автоматических механизмов развертывания приложения. В общем, после подробного изучения предложенных скринкастов, я понял, что если rails – это обед в вагоне-ресторане, то cakephp – пирожок с привокзальной площади. Мне идея изучения данной схемы показалась очень надуманной: полнофункциональный OO-язык всегда будет полезнее чем набор макрорасширений, но возможно кто-то захочет сделать что-то очень быстро. А ведь местные хостинги совсем не радуют нас условиями: на большинстве из них ssh-доступ это уже Advanced Level, не говоря о возможностях установки собственных модулей для apache.
Кстати, грядет 1 мая, праздник известный многим блогерам, как CSS Reboot. Кроме смены дизайна, я планирую и смену названия блога, поскольку моя борьба за высшее образование подошла к финальному сражению. Как вы считаете, стоит ли менять “Дневник борца за высшее образование” на что-нибудь вроде “Ежедневник IT-война”? Может быть у вас есть предложения по смене названия? Всегда готов выслушать ваше мнение в комментариях к данной статье.

Циклик

Понадобилось на одну страничку заклепать этак почти 2 сотни картинок. В ручную прописывать понятное дело муторно и не эффективно. Залил картинки в нужные папки по FTP, а для генерации написал скриптик, благо стили уже давно были. Решил, что надо завязывать со всякой php-шной фигней, а потому скриптик родил на ruby. Глядишь, будет такой же полезный и часто используемый, как тот, что на javascript-e.


puts '<ul class="products2">'
193.times do |a|
		puts '<li><div class="frame3">'
		puts '<a href="res/catalog/images/shkafi/full/sk'+
					("%04d" % (a+1))+'.jpg" 
					target="_blank">'
		puts '<img src="res/catalog/images/shkafi/thumbs/sk'+
					("%04d" % (a+1))+'_s.jpg" width="104" 
					height="104" border="0" /></a>'
		puts '</div></li>'
	end
end
puts '</ul>'

Понятное дело, что и CSS, и сам код можно было бы дооптимизировать, но дело в том, что я этим занимаюсь не ради удовольствия, а “грубо и цинично рублю бабло” (с).

C подачи начальства появилось чуть-чуть времени и скриптик был чуть более автоматизирован. Теперь он берет имена файла из текущей папки, отрубает у них разширение .jpg и вписывает в нужное место в темплейте.
Continue reading Циклик

Приключение под названием “Exigen”

## Intrа

Все началось с почты. Уже не помню когда, но в начале июля я выгреб у себя из мыльника письмо, мол [Brainbench][] уведомляет что Вы очень нужны компании [Exigen][]. Я конечно особых иллюзий не строил, знаю что им нужны “пахотливые волы”, а не раздолбаи, но с содержанием ознакомился… зайдите сюда, заполните CV, мы Вас найдем… А почему бы и нет? Я потратил 2 часа своего времени на то, чтобы разобраться со всеми каверзными вопросами, и двинулся по делам. А когда вернулся, у меня в мыльнике лежало приглашение на собеседование.

[Brainbench]:http://www.brainbench.com
[Exigen]:http://www.exigengroup.lv


## Cобеседование №1. Отдел кадров.

Встретила меня особа с которой я вел переписку. Ноги примерно моей длины, только худее и меньше размеров на 10.
В общем, я на нее поглядел и решил, что надо разговаривать с ней о работе,
поскольку все мужское население фирмы бросало на меня взгляды:
“А ты, шмель, откуда?”.
Мы двинулись в комнату с кондиционером, где мне был предоставлен огромный список вопросов, а ля, “что подвигло тебя на мысли о смене работы”, “какая из компьютерных новостей за последние полгода тебе показалась интересной”, “чем тебе понравился руби?”, “что хорошего в rails?” и т.д. 40 минут и всего 3 улыбки. Потом я двинулся домой.

Continue reading Приключение под названием “Exigen”

Промежуточные результаты

Итак, снова вернулся к своему Rubyshop-у, тоесть тестово-учебному произведению на RoR.

Любопытный до жути, и въедливый я, начал ковырять стандартный скаффолд. Сначала данный механизм, который позволяет просто представить и управлять данными (берет на себя SUID функции) никак не хотел расскрывать мне свои потроха, но уже через несколько минут секрет был расколот и я начал писать первые собственные экшены. В результате, через 2 часа мой магазин оброс:

  • возможностью добавлять фирму производитель и ее хоумсайт
  • возможностью добавлять категорию для товара (пока только одну)
  • возможностью выборки из списка всех товаров по категории
  • возможностью выборки из списка всех товаров по названию фирмы

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