↓
 ↑
Регистрация
Имя/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 комментариев
ПОИСК
ФАНФИКОВ











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