Ruby: абсолютный путь к файлу

ruby-absolute-pathДоброго времени. Наверное многие не раз замечали вот такой вызов метода: File.expand_path(‘../boot’, __FILE__), например в rails приложении в файле config/application.rb. Согласно документации, метод File::expand_path принимает в качестве первого аргумента путь и возвращает строку с его абсолютным значением. Например, пусть у нас есть файл code.rb в каталоге /home/helo/learning/ruby с таким содержимым:

path = File.expand_path(".")
p path

Перейдём в каталог /home/helo/learning/ruby и выполним наш файл:

ruby code.rb

В результате получаем строку: «/home/helo/learning/ruby». Это так, потому что File::expand_path вернул нам абсолютное значение переданного в аргументе пути (в данном случае «.»). Теперь поднимемся на два уровня выше до /home/helo и снова исполним тот же файл:

Читать далее

Clojure: любовь с первого взгляда!

clojure-love-from-the-first-sightНесколько лет назад я узнал о Функциональном программировании. С тех пор, в большей или меньшей степени, мне встречались разрозненные описания идей этой парадигмы. И чем больше я узнавал, тем сильнее хотелось поближе с ними познакомиться. Интриговало многое: отсутствие состояния, чистые функции, возможность кэширования результата функции, параллельные вычисления. Как заядлому императивному программисту, довольно сложно представить как можно обойтись без сохранения состояния в обыденной жизни. Так или иначе, я стал посматривать в сторону функциональных языков. Бегло посмотрев на Haskell, Lisp (Scheme) и Clojure, взгляд остановился на последнем. Уж не знаю, то ли логотип пригляделся ) То ли, реализация на JVM показалась хорошим решением. Почти наверняка, сказалось начало чтения SICP (там используется LISP, но мне хотелось чего-то более современного). Словом, что-то потянуло к Clojure, и я решил начать изучение. Читать далее

Исходный код gem-а в текстовом редакторе

Gem source in editorКак известно, лучший способ понять что делает gem — посмотреть в его исходный код. Серьёзно, прочитайте исходный код вашей любимой библиотеки, и вы получите массу опыта и удовольствия от того как она написана. Другой повод путешествия по исходным текстам — альтернатива документации. Бывает проще заглянуть внутрь, чтобы посмотреть какие аргументы принимает метод, чем открывать документацию (особенно, если она в сети, а интернет вне зоны досягаемости). Читать далее

Инициализация

InitializationПриветствие читателям этого текста! Его появлению, прежде всего, я обязан большому внутреннему желанию поделиться своими мыслями и любви к письму в целом. Еще одна цель — привести мысли в еще больший порядок, чему письмо как раз очень способствует. Основную сферу моих интересов формируют информационные технологии и программирование в частности. Сейчас по большей части использую Ruby/Rails и JavaScript. В последнее время заинтересовался Clojure и Processing.

Помимо захватывающего мира программирования, делаю шаги в мире музыки и техники Вин Чун, о чём периодически тоже буду что-то писать. Таким образом, стартовый флаг остался за спиной, впереди интересный и увлекательный путь, полный исследований и новых открытий. Искренне благодарю за интерес к будущим записям и заранее приглашаю к продолжению бесед в комментариях. Итак, поехали!