↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Временно не работает,
как войти читайте здесь!

Блог » Поиск

До даты
#проект_fanficmd
#рубиновый_поезд
Не прошло и трех лет, как Страга Севера решил вернуться к этому проекту.
Пока у меня первое достижение - с использованием двух библиотек я смог удалить любое форматирование из фанфика =-)
троллейбус_из_буханки.jpg
Показать 5 комментариев
#рубиновый_поезд
#айтишный_быт

I'm given up on Ruby outside web and scripts.

Серьезно.

Не так давно мне пришла в голову идейка капельку потренироваться в геймдеве - сделать текстовую стратежку про стандартного попаданца. Естественно, я захотел написать ее на самом удобном и красивом языке в мире - Ruby.
Разумеется, мне захотелось, чтобы она жужжала не только на моей девелоперской линухомашине, но и под виндой. Я начал рыться в тысяче технологий с тысячью ограничений и танцами на цыпочках вокруг исходного кода, отметая одну за другой со словами "херня"...

... а потом нашел этот старый-старый, датированный 2011 годом тред.

И внезапно на меня снизошло просветление.

Руби - это язык, ориентированный на удовольствие разработчика, как объяснял нам вчера на RailsConf создатель этого языка, Юкихиро Мацумото.
И вся экосистема этого языка ориентирована на удобство разработчика. На нем можно писать прекрасные, красивые, удобные программы...
... которые работают на компьютере разработчика.
Но когда мы пытаемся выползти за его пределы - начинается пипец.

В принципе, это даже логично. Вся огромная библиотека гемов - это такой не останавливающийся circlejerk. Руби - сообщество разработчиков для разработчиков, разработчиков, чьи программы будут запускаться на количестве машин, измеряемом на пальцах. Это делает его идеальным для веба, идеальным для внутренних девелоперских фич, идеальным для messing around.
И отвратительным для клиентской разработки.

К сожалению, несмотря на мою фанатичную любовь к этому языку, я сдаюсь. Руби не убивают рельсы - Руби убивает Рубийная экосистема. Именно благодаря ей Руби никогда не станет таким массовым языком, как, скажем, Питон.


Сейчас разрываюсь между тем, чтобы начать учить питон, и тем, чтобы начать учить Rust. За питоном - некоторая похожесть на руби, универсальность и RenPy, за Rust - компилируемость и тоже некоторая похожесть на руби (как нам пояснял вчера мейнтейнер этого языка).
Граждане, что посоветуете для современной клиентской разработки, что не будет тупым ножом резать мои рубийные чувства?
Свернуть сообщение
-
Показать полностью
Показать 17 комментариев
#локальное
#айтишный_быт
#рубиновый_поезд

Почтенный мастер Ку Чи шел со своим учеником, Антоном. Надеясь вступить с мастером в дискуссию, Антон сказал: «Учитель, я слышал, что объекты это очень хорошая вещь — это правда?» Ку Чи с сожалением посмотрел на своего ученика и ответил: «Мой глупый ученик, объекты — это замыкания для бедных.» Антон поклонился и вернулся в свою келью изучать замыкания. Он внимательно прочитал всю серию работ «Lambda: The Ultimate…», потом все остальные статьи по этой теме, и создал небольшой интерпретатор с использованием объектов эмулирующих функционал замыканий. Он многому научился, и стал искать встречи с мастером, чтобы похвастатья. На своей следующей прогулке с Ку Чи, Антон сказал: «Учитель, я усердно изучал этот вопрос, и теперь понимаю, что объекты действительно являются замыканиями для бедных.» Ку Чи ударил Антона своей палкой и сказал: «Когда же ты научишься? Замыкания — это объекты для бедных». В этот самый момент Антон достиг просветления.

http://frontender.info/the-two-pillars-of-javascript-pt-2-functional-programming/
Показать 9 комментариев
#айтишный_быт
#рубиновый_поезд
Думая, что самый умный, разбил scss- и js-ассеты поконтроллерно. Типа, чтобы ненужный CSS не болтался повсюду.
Поставил иерархию - каждый контроллер линкует только свой ассет, а уже внутри него импортируется ассет общесайтовый.

Деплой идет уже минут шесть и не собирается заканчиваться. Прекомпилировать столько разнообразных CSS-ников...
...
... которые еще и не закешируются и будут грузиться с каждым новым контроллером...
Я гений, бл*.
Показать 6 комментариев
#рубиновый_поезд
#айтишный_быт
#проект_fanficmd
Обнаружил, что на Фанфиксе перекрывающиеся теги валидны.
Походу, придется отойти от стандартной библиотеки и писать парсер с ноля.
Ибо от древовидной структуры я отказываться не собираюсь, а Parslet перекрывающиеся теги не распознает.
Показать 7 комментариев
#рубиновый_поезд
#айтишный_быт
#проект_fanficmd
Обнаружил нетривиальные свойства тегов Фанфикса.
Например, теги выравнивания можно ставить в середине предложения, и они действуют не до закрывающего тега, а до СЛЕДУЮЩЕГО ОТКРЫВАЮЩЕГО тега выравнивания.
Товарищ ReFeRy, это нормальное поведение? Можно его вписывать в спецификацию?
Показать 14 комментариев
#рубиновый_поезд
#айтишный_быт
#проект_fanficmd
И, об overengineering.
Было:
class FanficsmeBlock < Parslet::Parser
# elementary rules
rule(:eol) { str("r") | str("n") | str("rn") }
rule(:lchar) { match("[^rn]") }
rule(:space) { match(" ") }
rule(:lspace) { match("[[:blank:]]") }
rule(:exspace) { match("[[:space:]]") }
rule(:eof) { any.absent? }
rule(:eolf) { eol | eof}

# basic rules
rule(:sline) { lspace.repeat(1).as(:line) >> eolf }
rule(:bline) { str("").as(:line) >> eol }
rule(:bsline) { bline | sline }
rule(:line) { lchar.repeat(1).as(:line) >> eolf }
rule(:aline) { bsline | line }

# complex rules
rule(:block) { aline }
rule(:text) { block.repeat(1) }
root(:text)
end

Стало:
class FanficsmeBlock
def parse(str)
str.gsub!(/rn/, "n")
str.gsub!(/r/, "n")

arr = str.split("n")
arr.map! { |s| {line: s} }
end
end
Свернуть сообщение
-
Показать полностью
Показать 14 комментариев
#металитература
#рубиновый_поезд
#айтишный_быт
#проект_fanficmd
Итак, товарищи, Страга дописал очередную проду, и у него появилась идея.
Изначально я хотел выставлять свой фанфик в нескольких местах. Куски его лежат на Фикбуке, на Самиздате и даже на СлиФоруме. (Да-да, знаю, я attention whore, можете не упоминать это снова).
Однако в процессе я понял, что конвертировать фанфик под стандарты этих разных площадок - занятие утомительное. Фанфикс требует расставлять HTML-теги жирности-курсива и не понимает отступов в начале строки, Самиздат требует полного HTML-оформления, но понимает отступы, СлиФорум требует использовать BB-коды...
Именно поэтому, например, на Самиздате у меня фанфик застрял на 14 главе. Потому что меня раздражает каждый раз скачивать с гуглдокса и экспортировать.

И у меня появилась идея.
Сервис, который автоматически конвертирует ваш фанфик под соответствие разным площадкам.
В качестве "принимаемого" формата, думаю, буду использовать Markdown. Он очень прост и рассчитан на нормальное восприятие "невооруженным глазом". Ведь мы регулярно, чтобы выделить текст в простой переписке, используем, скажем, звездочки - а Markdown просто переконвертирует выделенное звездочками в курсив. И так далее.
В общем, я, наверное, даже приостановлю написание блога на ought.ru ради подобного сервиса. Следите за новостями!
Свернуть сообщение
-
Показать полностью
Показать 20 комментариев из 36
#айтишный_быт
#рубиновый_поезд
И, о моей жизни за последние дни одной строкой.
http://ought.ru/
Показать 20 комментариев из 26
#айтишный_быт
#рубиновый_поезд
#помощь_зала
Товарищи, есть ли хоть одна причина включать в .gitignore папку .idea, если я работаю над проектом один?
Показать 7 комментариев
#айтишный_быт
#рубиновый_поезд
С детства приучен не закрывать тег < P >. Ждет ли меня ад за это? =-)
Показать 8 комментариев
#логичная_логика
#айтишный_быт
#рубиновый_поезд
В King's Bounty меня повысили до барона. Значит, мне выдали нового бойца, гвардейца, и нужно определить, кто сильнее - гвардеец или древний медведь.
Так как считать самому по формулам и вычислять удельное лидерство на единицу урона грустно, надо писать скрипт.
Так как писать скрипт для одного подсчета грустно, то надо делать универсальный скрипт с базой данных.
Так как делать базу данных для локальной проги скучно, делаем онлайн-помощник.
Так как писать на PHP грустно, нужно использовать Ruby.
Так как писать на Ruby под Windows не интересно, нужно ставить Linux.
Итого - из-за того, что меня повысили до барона, я начинаю писать на Ruby под Linux'ом.
Люблю свою логику.
Показать 20 комментариев из 30
#айтишный_быт
#рубиновый_поезд
Ставлю линукс, кажется, раз в десятый. Только на этот раз я наконец-то понял, зачем он мне нужен.
Ruby FTW!
Показать 17 комментариев
ПОИСК
ФАНФИКОВ









Закрыть
Закрыть
Закрыть