Mice
Почетный участник
Эту.. хм.. заметку нельзя назвать технической, поскольку в ней нету четких рекомендаций и указаний новичку по установке и использованию фреймворка. С другой стороны, литературной тоже не назовешь, поскольку здесь много не слишком понятных ассоциаций, хотя в общем, может быть, будет интересно и народу, далекому от Rails (по крайней мере, я надеюсь на это.)
А поскольку заметка не подходит ни под технический раздел, ни под литературный, значит, ей самое место в моем блоге. В конце концов, лично мне она нравится
Итак..
Немного про Ruby on Rails, или не все, что придумано программистами, полезно для пользователей

Было это все чуть меньше года назад, но сегодня почему - то вспомнилось.
У нас с Ruby отношения не сложились с первых же минут знакомства. Точнее, сначала мы вроде как даже приглянулись друг другу.
Ммм, как все просто и ясно - подумала я.
О, она на меня смотрит - подумал Ruby
Опять на нас ездить будут - подумали Rails (они же рельсы)
Ruby, как и все японское, был ужасно многофункционален, заводился как от пинка, так и от легкого касания, с высокой колокольни плевал на скобки,да и вообще на какую либо пунктуацию, и исповедовал модную нынче религию утипизации.
- Если оно крякает как утка и ходит как утка, то это утка! - утверждал он.
- А если это пьяный сосед из сорок пятой? - спрашивала я
- Значит, он выглядит как пьяный сосед. И пахнет тоже как пьяный сосед.
- Но ведь ходит как утка!!!
- Но по совокупности признаков он все же твой сосед...
Мы гуляли вечерами, беседуя о высоком и разглядывая луну. Он рассказывал мне о стране восходящего солнца, о цветении сакуры и роллах с лососем. Он разговаривал со мной как человек. И проблема оказалась лишь в том, что я привыкла разговаривать с языком программирования, как с технологией
Все говорили, что он прост в использовании и установке: достаточно лишь скачать дистрибутив, потом еще ввести пару команд в строке и будут тебе и руби, и рельсы, и sqlite впридачу. В общем, одно сплошное счастье и никаких проблем. Как же они ошибались!!! Хотя нет, у всех остальных все
было нормально. Да что там у остальных, даже на моем родном рабочем компе и то все было нормально. Но только вот проложить эти несчастные рельсы к себе домой у меня ну никак не получалось.
Сначала вроде все было хорошо: поставился руби, ждем рельсов. Итак... затаив дыхание,
вводим...
и тут же узнаем, что капризные рельсы не хотят автоматом становиться на наш дистрибутив руби. Он для них, понимаешь ли, слишком старый. Требуют новенокого, прям как я одежды.
- Сама такая - ответили мне рельсы(они же леди Rails) и гордо отвернулись.
Лаадно... снеся потихоньку свою "самую устойчивую версию дистрибутива", перекачала и установила более новую.
Итак...
....слегка сменила я политику партии, и...
Уффф.. здесь вроде все хорошо. Но ведь для работы нужна еще какая - то база данных. А что у нас проще всего? Проще всего sqlite.
Итак.... вы-ды-ха-ем....
И что? Опять что - то не так?
Всеми уважаемый джентльмен sqlite, вслед за красоткой Rails обвинил меня в излишем увлечении антиквариатом и сказал, что и эта версия Ruby для него слишком стара. Кусая губы от нежелая устанавливать себе слишком уж новый дистрибутив (доработанный новый дистрибутив? Не бывает таких!), я в очередной раз все снесла и полезла на сайт.. Итак, устанавливаем руби, теперь
стандартные гемы, теперь..
- АА! Ты что наделала? Эй, ты, программистка непуганная, я тебя спрашиваю? Где, я спрашиваю, где
мой любимый дистрибутив руби? Ты зачем мне это... поставила! Оно для меня еще слишком сырое!
- А как же. один дистрибутив два сезона не носим?
- Сезон еще не закончился. И вообще, ты чего это инициативу проявляешь?
- Так sqlite требует..
- Че? обойдется! Он мне не муж!
- Но.. .. ведь.. он нужен... может еще женится?
- И что? Что мне с ним сделать? Я с ЭТИМ работать не буду! Либо возвращай мне предыдущий дистрибутив, либо живи без меня!
Со вздохом снеся все в очередной раз, я, не без мыслей о шизофрении, наехала даже на свой ноутовый виндовс:
- Слушай, Виста, а может, это все ты виновата? Это ж ты у нас самая капризная, а? Вечно у тебя это нехорошо, это небезопасно, от этого руки болят, от того ноги?
- Слушай, милая, не нравится - не мешай людям! Вообще отойди, ты мне свет загораживаешь - тоном заправской рыночной торговки ответила мне Виста, - я че, крайняя, че ль?
- Да у тебя все капризничать начинают! Да ты вообще на всех негативно влияешь! Вот честное слово, проще самой этот дистрибутив собрать и на убунту поставить, чем бодаться с твоим Защитным По и дружественным интерФейсом.
- Да ты бы на свой Фейс посмотрела прежде! Страшила красноглазая! - обиделась Виста, упорно делая вид, что к моей красноглазости совершенно непричастна, - некоторые, между прочим,
заботятся о своей безопасности и не доверяют незнакомому ПО.
- Некоторые и мышей едят..... - бормотала сонная я, думая, что теперь делать.
Дальнейшие поиски решения были недолгими, но муторными. Ночью мне снились белые буквы на черном экране. Буквы прыгали, осыпаясь красивым дождем, как в фильме "Матрица". Изредка они
останавливались, складываясь в два слова: Rails и Sqlite. А на заднем плане слышался злорадный смех.
Эх, Руби, Руби. А ведь я тебе доверяла.
Итак, версию Руби я все же откатила чуть назад, тем самым удовлетворив требовательный вкус красотки Rails (в конце концов, без нее мне и sqlite не особо - то нужен был). После чего я попыталась просто установить более старую версию этого самого sqlite-а, правда, с докачкой его из интернета:
Из инета не пошло. Уж не знаю, виновата тут Виста или что - то еще, но sqlite упорно просил новую версию Руби, хотя я прекрасно знала, что для той версии, что я сейчас пытаюсь поставить, данного дистрибутива хватит за глаза.
В итоге файл нужной версии Гема sqlite был скачен мною отдельно, кинут куда - то в директорию рядом с самим Руби, и только после этого - таки соизволил установиться (для интересующихся - по той же команде, что и в предыдущий раз - с указанием номера версии). Радости моей не было предела.
Когда на следующее утро после выходных я вошла в офис прыжком, демонстрируя в полете победные жесты, команда поприветствовала меня соответственно.
- Ну что, Аннушка, ты теперь у нас Анна Каренина, не иначе? - приняв похлопывания по плечу и ироничные намеки на цвет волос, я попросила называть меня просто Анной - на - рельсах
. Проблемы с ними еще только начинались, но, по крайней мере, теперь я прочно на них стояла 
Потом, после нескольких усердно сделанных блогов и иже с ними (тренировка превыше всего), у меня вдруг неожиданно заглючил встроенный сервер. WEBriсk, кажется, так его звать? Проказник, едва загрузившись, сразу же уходил в перезагрузку, потом опять и опять, как будто процесс загрузки ему так нравился... Теперь я не могла запустить его через JetBrains вообще, также не могла запустить из командной строки, а потом в Мозилле. (Я уж не говорю про многочисленные глюки с миграцией БД и тому подобные вещи, это само собой разумеется). Единственным способом загрузить сервер был запуск его из ткомандной строки. И открытие через эксплорер. Только так.
Потом на меня навалились учеба с работой, а потому и Руби, и Рельсы, и Sqlite и несносный WEBrick были забыты.
Теперь Руби приходит ко мне время от времени. Мы встречаемся уютными вечерами, когда так приятно пить горячий красный чай из большой кружки.
- Привет - говорит Руби
- Здравствуй - с интересом говорю я
- Ну, может, начнем...?
- А зачем? Ты далеко не лучший.
- Нет, лучший. Я понятный. И я умею говорить. Почти как ты.
- Ты технология. И разговаривать с тобой - первый признак сумасшествия!
- Ну тогда тебе уже поздно об это задумываться. К тому же, скоро весь мир будет писать на Руби.
- Нет.
- Почему?
- Ты тормоз! Нет ничего тормознее тебя!
- Консерваторша!
- Тормоз, тормоз, ыыы...
- Я не тормоз. Надо было учить архитектуру...
- Для того, чтобы построить прямоугольную коробочку, не нужно быть мега - архитектором. Но даже в пределах одной квартиры переход между комнатами у тебя занимает час.
- Ну и что? Технический прогресс идет семимильными шагами.
- Ага.. уже совсем немного до стены осталось
- Нет, ну, конечно, меня не сравнить с компилируемыми языками, я всего лишь маленькая интерпретируемая игрушка.. - начинает давить на жалость Руби, и мне правда становится его жаль.
- Ну ладно, ладно, давай посмотрим... - соглашаюсь я.
- Только вот не надо этого примитивизма. Ой...ой.. ну что ты делаешь, что ты пишешь, у меня же есть встроенные функции...
- Слушай, может вообще ничего делать не будем? Скоро тебе вообще напишут пару замечательных функций:
CreateBlog (1500 параметров, 150 обязательных),
CreateTracker(3000 параметров, 300
обязательных)
и, главное, мега-хит:
DoAllMyWork(>1000,000 параметров. Ни одного обязательного. При значениях
по умолчанию просто создается еще один блог..
)
- Ну и что? То, что тебе влом почитать литературу и посмотреть, что у меня есть, а чего нет, еще не говорит, что другим это не нравится.
- А лет через 20 будет еще и функция LiveMyLife() - особо популярная среди неформальной молодежи, пресыщенных аристократов и патологических лентяев
- Потому что не нужно писать то, что уже написано
- Знаешь, вообще - то этот принцип был придуман для экономии времени. На прочтение списка параметров для твоих супер - мега функций у меня уйдет 4 часа. А на написание всего по - своему минут 30...
- Тебе надают по ушам.
- Нет. Вот посмотришь.
- Договорились. Снобка.
- Тормоз.
- Терпеть тебя не могу. Пока! Я ухожу!
- Пока! Передавай привет цветущей сакуре!
Вот так мы и разговариваем. Через полгода снова начинаем скучать друг по другу, снова встречаемся и снова разговариваем...а потом опять... а сакура все цветет..
А поскольку заметка не подходит ни под технический раздел, ни под литературный, значит, ей самое место в моем блоге. В конце концов, лично мне она нравится

Итак..
Немного про Ruby on Rails, или не все, что придумано программистами, полезно для пользователей

Было это все чуть меньше года назад, но сегодня почему - то вспомнилось.
У нас с Ruby отношения не сложились с первых же минут знакомства. Точнее, сначала мы вроде как даже приглянулись друг другу.
Ммм, как все просто и ясно - подумала я.
О, она на меня смотрит - подумал Ruby
Опять на нас ездить будут - подумали Rails (они же рельсы)
Ruby, как и все японское, был ужасно многофункционален, заводился как от пинка, так и от легкого касания, с высокой колокольни плевал на скобки,да и вообще на какую либо пунктуацию, и исповедовал модную нынче религию утипизации.
- Если оно крякает как утка и ходит как утка, то это утка! - утверждал он.
- А если это пьяный сосед из сорок пятой? - спрашивала я
- Значит, он выглядит как пьяный сосед. И пахнет тоже как пьяный сосед.
- Но ведь ходит как утка!!!
- Но по совокупности признаков он все же твой сосед...
Мы гуляли вечерами, беседуя о высоком и разглядывая луну. Он рассказывал мне о стране восходящего солнца, о цветении сакуры и роллах с лососем. Он разговаривал со мной как человек. И проблема оказалась лишь в том, что я привыкла разговаривать с языком программирования, как с технологией
Все говорили, что он прост в использовании и установке: достаточно лишь скачать дистрибутив, потом еще ввести пару команд в строке и будут тебе и руби, и рельсы, и sqlite впридачу. В общем, одно сплошное счастье и никаких проблем. Как же они ошибались!!! Хотя нет, у всех остальных все
было нормально. Да что там у остальных, даже на моем родном рабочем компе и то все было нормально. Но только вот проложить эти несчастные рельсы к себе домой у меня ну никак не получалось.
Сначала вроде все было хорошо: поставился руби, ждем рельсов. Итак... затаив дыхание,
вводим...
Код:
gem install rails -y
- Сама такая - ответили мне рельсы(они же леди Rails) и гордо отвернулись.
Лаадно... снеся потихоньку свою "самую устойчивую версию дистрибутива", перекачала и установила более новую.
Итак...
Код:
gem install rails -include-dependecies
Уффф.. здесь вроде все хорошо. Но ведь для работы нужна еще какая - то база данных. А что у нас проще всего? Проще всего sqlite.
Итак.... вы-ды-ха-ем....
Код:
gem install sqlite3-ruby
Всеми уважаемый джентльмен sqlite, вслед за красоткой Rails обвинил меня в излишем увлечении антиквариатом и сказал, что и эта версия Ruby для него слишком стара. Кусая губы от нежелая устанавливать себе слишком уж новый дистрибутив (доработанный новый дистрибутив? Не бывает таких!), я в очередной раз все снесла и полезла на сайт.. Итак, устанавливаем руби, теперь
стандартные гемы, теперь..
Код:
gem install rails -include-depen...
мой любимый дистрибутив руби? Ты зачем мне это... поставила! Оно для меня еще слишком сырое!
- А как же. один дистрибутив два сезона не носим?
- Сезон еще не закончился. И вообще, ты чего это инициативу проявляешь?
- Так sqlite требует..
- Че? обойдется! Он мне не муж!
- Но.. .. ведь.. он нужен... может еще женится?
- И что? Что мне с ним сделать? Я с ЭТИМ работать не буду! Либо возвращай мне предыдущий дистрибутив, либо живи без меня!
Со вздохом снеся все в очередной раз, я, не без мыслей о шизофрении, наехала даже на свой ноутовый виндовс:
- Слушай, Виста, а может, это все ты виновата? Это ж ты у нас самая капризная, а? Вечно у тебя это нехорошо, это небезопасно, от этого руки болят, от того ноги?
- Слушай, милая, не нравится - не мешай людям! Вообще отойди, ты мне свет загораживаешь - тоном заправской рыночной торговки ответила мне Виста, - я че, крайняя, че ль?
- Да у тебя все капризничать начинают! Да ты вообще на всех негативно влияешь! Вот честное слово, проще самой этот дистрибутив собрать и на убунту поставить, чем бодаться с твоим Защитным По и дружественным интерФейсом.
- Да ты бы на свой Фейс посмотрела прежде! Страшила красноглазая! - обиделась Виста, упорно делая вид, что к моей красноглазости совершенно непричастна, - некоторые, между прочим,
заботятся о своей безопасности и не доверяют незнакомому ПО.
- Некоторые и мышей едят..... - бормотала сонная я, думая, что теперь делать.
Дальнейшие поиски решения были недолгими, но муторными. Ночью мне снились белые буквы на черном экране. Буквы прыгали, осыпаясь красивым дождем, как в фильме "Матрица". Изредка они
останавливались, складываясь в два слова: Rails и Sqlite. А на заднем плане слышался злорадный смех.
Эх, Руби, Руби. А ведь я тебе доверяла.
Итак, версию Руби я все же откатила чуть назад, тем самым удовлетворив требовательный вкус красотки Rails (в конце концов, без нее мне и sqlite не особо - то нужен был). После чего я попыталась просто установить более старую версию этого самого sqlite-а, правда, с докачкой его из интернета:
Код:
gem install sqlte3-ruby-номер_версии
В итоге файл нужной версии Гема sqlite был скачен мною отдельно, кинут куда - то в директорию рядом с самим Руби, и только после этого - таки соизволил установиться (для интересующихся - по той же команде, что и в предыдущий раз - с указанием номера версии). Радости моей не было предела.
Когда на следующее утро после выходных я вошла в офис прыжком, демонстрируя в полете победные жесты, команда поприветствовала меня соответственно.
- Ну что, Аннушка, ты теперь у нас Анна Каренина, не иначе? - приняв похлопывания по плечу и ироничные намеки на цвет волос, я попросила называть меня просто Анной - на - рельсах


Потом, после нескольких усердно сделанных блогов и иже с ними (тренировка превыше всего), у меня вдруг неожиданно заглючил встроенный сервер. WEBriсk, кажется, так его звать? Проказник, едва загрузившись, сразу же уходил в перезагрузку, потом опять и опять, как будто процесс загрузки ему так нравился... Теперь я не могла запустить его через JetBrains вообще, также не могла запустить из командной строки, а потом в Мозилле. (Я уж не говорю про многочисленные глюки с миграцией БД и тому подобные вещи, это само собой разумеется). Единственным способом загрузить сервер был запуск его из ткомандной строки. И открытие через эксплорер. Только так.
Потом на меня навалились учеба с работой, а потому и Руби, и Рельсы, и Sqlite и несносный WEBrick были забыты.
Теперь Руби приходит ко мне время от времени. Мы встречаемся уютными вечерами, когда так приятно пить горячий красный чай из большой кружки.
- Привет - говорит Руби
- Здравствуй - с интересом говорю я
- Ну, может, начнем...?
- А зачем? Ты далеко не лучший.
- Нет, лучший. Я понятный. И я умею говорить. Почти как ты.
- Ты технология. И разговаривать с тобой - первый признак сумасшествия!
- Ну тогда тебе уже поздно об это задумываться. К тому же, скоро весь мир будет писать на Руби.
- Нет.
- Почему?
- Ты тормоз! Нет ничего тормознее тебя!
- Консерваторша!
- Тормоз, тормоз, ыыы...
- Я не тормоз. Надо было учить архитектуру...
- Для того, чтобы построить прямоугольную коробочку, не нужно быть мега - архитектором. Но даже в пределах одной квартиры переход между комнатами у тебя занимает час.
- Ну и что? Технический прогресс идет семимильными шагами.
- Ага.. уже совсем немного до стены осталось
- Нет, ну, конечно, меня не сравнить с компилируемыми языками, я всего лишь маленькая интерпретируемая игрушка.. - начинает давить на жалость Руби, и мне правда становится его жаль.
- Ну ладно, ладно, давай посмотрим... - соглашаюсь я.
- Только вот не надо этого примитивизма. Ой...ой.. ну что ты делаешь, что ты пишешь, у меня же есть встроенные функции...
- Слушай, может вообще ничего делать не будем? Скоро тебе вообще напишут пару замечательных функций:
CreateBlog (1500 параметров, 150 обязательных),
CreateTracker(3000 параметров, 300
обязательных)
и, главное, мега-хит:
DoAllMyWork(>1000,000 параметров. Ни одного обязательного. При значениях
по умолчанию просто создается еще один блог..

- Ну и что? То, что тебе влом почитать литературу и посмотреть, что у меня есть, а чего нет, еще не говорит, что другим это не нравится.
- А лет через 20 будет еще и функция LiveMyLife() - особо популярная среди неформальной молодежи, пресыщенных аристократов и патологических лентяев
- Потому что не нужно писать то, что уже написано
- Знаешь, вообще - то этот принцип был придуман для экономии времени. На прочтение списка параметров для твоих супер - мега функций у меня уйдет 4 часа. А на написание всего по - своему минут 30...
- Тебе надают по ушам.
- Нет. Вот посмотришь.
- Договорились. Снобка.
- Тормоз.
- Терпеть тебя не могу. Пока! Я ухожу!
- Пока! Передавай привет цветущей сакуре!
Вот так мы и разговариваем. Через полгода снова начинаем скучать друг по другу, снова встречаемся и снова разговариваем...а потом опять... а сакура все цветет..
