Pull to refresh
15
0
Send message

Домашняя библиотека современного ребёнка

Reading time7 min
Views69K
В моём детстве огромную роль играли книги. У моих родителей (тогда ещё молодых инженеров) было много книг — приключенческие романы, детективы, фантастика, техническая и научная литература. У отца была подшивка журналов «Юный техник» и «Изобретатель и рационализатор» за полтора десятилетия. Книга или журнал в нашем доме всегда были чем-то очень важным. Дело было даже не столько в том, что в 80-90-ых их было не так легко достать, как во внимании, с которым мои родители их читали, обсуждали, что-то пересказывали мне. А ребёнок ведь в любом случае наследует поведение родителей, их интересы. И я зачитывал до дыр технические журналы, легко «глотал» детскую фантастику Булычева и Гаррисона, чуть поднапрягшись — и более серьёзных Брэдбери и Шекли. Городская библиотека, откровенно презираемая большинством моих сверстников, видела меня 2-3 раза в неделю почти десятилетие. Во многом мой жизненный путь, интерес к науке и технике, был определён уже тогда. Думаю, если бы в моём книжном шкафу 20 лет назад не стояли «Аэлита» Толстого, «Машина времени» Уэллса и «Я, робот» Азимова, я не писал бы сейчас на Хабре эту статью (и сотню предыдущих), а протирал бы штаны где-нибудь на должности «менеджера среднего звена по перекладыванию из пустого в порожнее».

Сегодня на дворе 2014 год и вот уже мой ребёнок учится читать по слогам. Завтра он протянет руку к книжному шкафу. Что же он возьмёт — бумажную книгу или электронную? Что это будет за книга?
Читать дальше →
Total votes 123: ↑116 and ↓7+109
Comments87

Живые книги (небольшой туториал по книгопроизводству, со своими хитростями)

Reading time9 min
Views76K
Статей на данную тему не много, но они есть. Правда на мой взгляд, поскольку практически все они базируются на реальных типографских приемах, для мелкосерийного и уж тем более единичного производства описанные технологии не всегда удобны, особенно когда под рукой кроме желания больше ничего и нет.
Поэтому делюсь своими ноу-хау именно для разовых работ.
В данном случае рассмотрим изготовление ну совсем настоящей книжицы, прямо в домашних условиях, прямо из бумаги и с минимумом оснастки.

230 страниц А5, в мягком переплете, за 4,5 часа.


Заинтересовавшихся под катом ждут картинки
Total votes 91: ↑84 and ↓7+77
Comments29

Ruby on Rails шаг за шагом. #3 Контроллер и Вид

Reading time5 min
Views20K
Итак, прошлый шаг мы закончили на том, что позволили RoR сгенерировать нам первое приложение test, на его базе мы и начнем знакомиться с возможностями фрэймворка. Как мы уже говорили, приложение RoR имеет строго определенную структуру, давайте посмотрим, для чего предназначены его папки:
Катимся по Рельсам дальше
Total votes 15: ↑10 and ↓5+5
Comments20

Ruby on Rails шаг за шагом. #2 Рабочее место и первое приложение

Reading time3 min
Views16K
На этот раз мы развернем «полигон» девелопера RoR, поговорим о gem, сгенерируем и запустим первое приложение.

Instant Rails


Установка рабочего комплекта для Windows максимально проста, а все из-за того, что один щедрый программист по имени Курт Хибс уже собрал для нас все необходимое для разработки приложений RoR в одном пакете под название Instant Rails. В пакеты собраны:
  • интерпретатор Ruby,
  • движки БД SQLite и MySQL,
  • веб-сервер Apache (который, собственно, нам не нужен…)
  • и сами Rails

Устанавливаем рельсы
Total votes 36: ↑30 and ↓6+24
Comments90

Ruby on Rails шаг за шагом. #1 Теория

Reading time5 min
Views55K
Ненадолго отставив серию статей о ЯП Ruby в сторону (1, 2, 3, 4, 5, 6, 7, 8, 9, 10), решил презентовать вам новый цикл о фрэймворке Rails. Набравшись некоторого опыта в «обучении» попробую вывести эту серию на уровень качества и продуманности несколько выше, чем прежде.

Целью первой части уроков по Ruby on Rails будет создание некоторого многопользовательского блога (аля Хабр). Также хочется отметить, что для этой первой части желательно иметь познание о Руби хотя бы на уровне трех-четырех капель. Хочется поскорей приступить к кодингу, но начинать все равно придется с теории.

Что такое Ruby on Rails (далее RoR)? Самый распространненый ответ – это базирующийся на ЯП Ruby (далее Руби) фрэймворк, который реализует шаблон (далее паттерн) MVC. Выделим два главных пункта из ответа:
  • Это фрэймворк на базе Ruby
  • Он реализует паттерн MVC
Разберем каждый отдельно.
Продолжаем
Total votes 60: ↑53 and ↓7+46
Comments39

Покорим Ruby вместе! Капля тринадцатая

Reading time5 min
Views13K
Сегодня мы познакомимся с таким мощным и полезным инструментом Руби и компонентом RoR, как Active Record. Как часть RoR мы знаем Active Record из первого шага статей о рельсах (что-то эта серия не очень хорошо пошла, правда). Рассмотрим практическое применение компонента в Руби, что очень пригодится и в RoR.

Active Record придерживается принципов ORM: базы данных могут быть представлены в виде объектно-ориентированного кода, где таблицы — это классы, строки таблицы — объекты, а поля — атрибуты объекта. Однако Active Record отличается от других ORM библиотек, например, от Hibernate из Java, тем, что здесь нет необходимости начальной конфигурации — все работает «из коробки». Active Record написан на чистом Руби, что позволяет нам работать с ним, как с обычным классом: использовать наследование, переписывать методы, использовать метапрограмминг и др. Да, атрибуты объекта в большинстве случаев заполняются с помощью SQL-запросов и точно также атрибуты записываются назад в таблицу. Но все, что происходит между этими двумя процессами — обычная работа с объектом Руби. Стоит понимать «отдельность» существования записей базы данных и объектов Руби: подчас база данных будет отличаться от класса Руби.
Продолжим
Total votes 42: ↑34 and ↓8+26
Comments27

Покорим Ruby вместе! Капля двенадцатая

Reading time4 min
Views18K
Настало время писать на Руби что-то пригодное для использования ;) Сегодня мы научимся выдирать нужную нам информацию из web-страниц с помощью Руби на примере Хабра. Начнем с кармы.

open-uri


Давайте каждый откроет свою персональный Хаброцентр (ну или чужой, если все еще не обзавелись инвайтом ;) с адресом вида %username.habrahabr.ru. Наша задача – извлечь из полутысячи строк HTML-кода значение нашей кармы. Предполагаем, что для этого нам необходимо сохранить код страницы в файл, открыть и прочитать его и, используя регулярные выражения, получить необходимую информацию.

Библиотека open-uri сделает первую часть работы за нас. После включения ее в программу становится доступен метод open, который позволяет открывать как локальные файлы, так и URL:
Едем дальше
Total votes 47: ↑39 and ↓8+31
Comments31

Покорим Ruby вместе! Капля одиннадцатая

Reading time5 min
Views17K
Еще одна капля в наш стакан Руби (1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Поговорим о self, работе с CSV и обработке исключений.

Описывая и обсуждая компьютерные программы, мы часто используем образные и человеческие метафоры. Например, мы говорим, что находимся в классе или возвращаемся из вызова метода. Иногда имеет смысл говорить во втором лице, например, object.respond_to?("x"): “Эй, объект, ты ответишь на х? И пока программа интепретируется контекст меняется снова и снова.

Некоторые объекты везде означают одно и тоже, например, числа и ключевые слова вроде def и class. Однако значение большинства элементов зависит от контекста.
Продолжаем
Total votes 44: ↑34 and ↓10+24
Comments16

Покорим Ruby вместе! Капля десятая

Reading time6 min
Views11K
В этой капле мы еще раз углубимся ООП, выясняя новые методики работы с классами, объектами, модулями, которые обязательно пригодятся нам в серьезном программировании.

Множественные конструкторы


Что если мы хотим иметь несколько конструкторов для объекта? Ничто не мешает нам создать дополнительные методы класса, которые возвращают новые объекты. В следующем примере мы описываем котов, имеющих пять параметров: вес, высота, и три на окрас. Мы создадим дополнительные методы, которые определят некоторые типы котов “по умолчанию” (например, черный кот или толстый кот):

Дальше еще больше о котах
Total votes 36: ↑26 and ↓10+16
Comments21

Покорим Ruby вместе! Капля девятая

Reading time3 min
Views29K
Сегодня у нас действительно маленькая капля — немного остаточной, но серьезной и важной информации о Руби, которая, возможно, будет интересна для пишущих на других языках.

Замораживание объектов



Метод freeze в классе Object защищает объект от изменений, превращая его в константу. После «заморозки» объекта, любая попытка изменить его превратится в ошибку TypeError. Метод frozen? позволит узнать, заморожен ли объект:

Смотрим дальше
Total votes 57: ↑42 and ↓15+27
Comments32

Покорим Ruby вместе! Капля восьмая

Reading time3 min
Views28K
Давайте прямо сейчас перечитаем четвертую каплю, чтобы вспомнить о реализации ООП в Руби. Повторили? Идем дальше. В этой капле мы подрежем все образовавшиеся хвосты, связанные с объектно-ориентированным программированием на Руби.

Читать дальше →
Total votes 45: ↑34 and ↓11+23
Comments33

Покорим Ruby вместе! Капля седьмая

Reading time4 min
Views21K
В этой капле мы еще раз пробежимся по всем рассмотренным нами темам и углубимся в них в поисках упущенного и интересного.

Внимание! Это последняя капля, опубликованная в блоге Ruby! Все прошлые (1, 2, 3, 4, 5, 6) уже сидят в новом блоге Стартап «Программист». Блог предназначен для начинающих и, возможно, «матёрых» программистов, желающих выучить шаг за шагом первый или… цатый язык программирования. Теперь следить за каплями еще проще!

Продолжим обучение
Total votes 56: ↑41 and ↓15+26
Comments40

Покорим Ruby вместе! Капля шестая

Reading time6 min
Views25K
Сегодня мы с вами создадим наше первое полноценное приложение на Руби, попутно обучаясь новым методам классов String и File и регулярными выражениями.

Наше приложение: Текстовый анализатор


Собственно программа простая: она будет считывать текстовый файл, анализировать его по некоторым паттернам, считать статистику и выводить результат. Руби замечательно подходит для анализа документов и текстов с помощью регулярных выражений и методов scan и split. В этом приложении мы сконцентрируемся на простом и быстром программировании и не будем организовывать объектно-ориентированную структуру.
Читать дальше →
Total votes 49: ↑34 and ↓15+19
Comments47

Покорим Ruby вместе! Капля пятая

Reading time4 min
Views35K
Продолжаем (1, 2, 3, 4) штудировать Руби. На этот раз дело коснётся массивов. Но начнем с диапазонов.

Диапазоны значений


Иногда полезно иметь возможность сохранить «концепт» простого списка, причём хочется, чтобы объявить его мы могли бы максимально просто, например: список из букв от A до Z, или числа от 1 до 25. С помощью диапазонов это возможно, они в Руби максимально интуитивно понятны. Вот простые числовые диапазоны:

digits = 0..9
scale1 = 0..10
scale2 = 0...10 #digits = scale2

Идем дальше
Total votes 56: ↑49 and ↓7+42
Comments47

Покорим Ruby вместе! Капля четвертая

Reading time3 min
Views34K
Собираем капли дальше (1, 2, 3). В этот раз узнаем о реализации ООП в Руби.

Классы, объекты, методы


Вместо того, чтобы углубляться дальше в синтаксис Ruby, отставим циклы, типы, модули и др. — мы вернёмся к ним позже. Сейчас же мы посмотрим, как создавать классы, объекты и методы.
Хотите еще? Смотрите дальше!
Total votes 54: ↑47 and ↓7+40
Comments66

Покорим Ruby вместе! Капля третья

Reading time4 min
Views27K
Капаем дальше. В третьей капле (капля первая, капля вторая) мы познакомимся с числовыми переменными и узнаем о принципах ООП.

Числа и Выражения


В программировании выражением (expression) называется комбинация чисел, операторов и переменных, которая, будучи понята компьютером, дает результат в какой-либо форме. Вот несколько примеров:
Смотрим дальше
Total votes 65: ↑55 and ↓10+45
Comments69

Покорим Ruby вместе! Капля вторая

Reading time3 min
Views45K
Продолжаем изучать Ruby? Так точно!

В первой части мы получили обзорные знания о Руби и Рельсах и, надеюсь, решили, нужно ли нам это, или нет. Так как мы взялись за язык основательно необходимо обустроить рабочее учебное место. Нам нужны: сам интерпретатор Ruby, фрэймворк Rails, база данных (MySQL, думаю, будет лучшим выбором) и непосредственно среда разработки, которая должна сделать процесс программирования приятным, удобным и увлекательным ;)

Начнем с последнего пункта
Total votes 65: ↑51 and ↓14+37
Comments94

Покорим Ruby вместе! Капля первая

Reading time3 min
Views38K
Дабы сразу определить целевую аудиторию этого цикла заметок-статей-поучений пару слов о себе. Бывший школьник, будущий студент, в программинге толком ничего не смыслю, хотя есть пара сайтиков на готовых движках. В php-скриптах могу чего-нить лишнее удалить, изменить, но написать что-то с чистого листа — это не ко мне. Неоднократно пытался научится мастерству создания программ, но обычно тормозил как только дело доходило до ООП (видел в коде эти многочисленные классы, в пособиях всякие «объекты», «инкапсуляции» и т.п. и зависал...)

Собственно точно такое же желание появилось и сейчас. Порыскав по сети в поисках «чего-бы такого интересного выучить» наткнулся именно на Ruby с его рельсами. По словам спецов разного качества Руби сейчас актуален, программировать на нем быстро, это полный ООП (что перспективно в дальнейшем покорении олимпа программирования), синтаксис несложен… В то же время язык — тормоз, нагружает систему, twitter в нем барахтается, пытаясь удержаться на плаву, постоянные проблемы с хостингом. Но я вроде как стартапить в многомиллионную аудиторию не собираюсь, а для общего образования всегда подойдет.

Так что стоит признаться, что и Ruby я знаю совсем каплю, но уверен, что и мои «капли» будут интересны некоторым индивидам, подобным мне. Я могу (и буду) часто ошибаться в каких-то понятиях, методах, но мы ведь готовы помогать друг другу? Вроде бы как Хабр — это элита ИТ, но я думаю, что местные спецы не будут против, если мы тут с начинающими ребятами немного «потусим» :)

Собственно в этой серии статей мы будем капля за каплей наполнять стаканчик знаниями о Руби, наполнять будем вместе — для меня это также станет дополнительным стимулом не бросать занятия. Надеюсь, что и вам будет интересно! Начнем?

Дальше - больше
Total votes 78: ↑64 and ↓14+50
Comments192

Лучший способ изучить Rails

Reading time5 min
Views200K
Доброго времени суток!

Предисловие


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

Введение


У меня за спиной огромный опыт работы с PHP, но сейчас я работаю Rails разработчиком. Огромную сложность для большинства людей, которые пытаются освоить что-то новое — это сам процесс обучения. Когда вы владеете каким-либо языком или фреймворком и знаете его вдоль и поперёк, переход на что-то новое не представляется необходимым.

Однако, изучение Ruby on Rails является достаточно простым занятием. Это невероятно мощный фреймворк, который имеет огромное сообщество, продвигающее его вперёд. Итак, у нас возникает вопрос: какой способ изучить Rails является лучшим? Вот он — план занятий.
Читать дальше →
Total votes 83: ↑69 and ↓14+55
Comments118

Information

Rating
Does not participate
Registered
Activity