Cheese
блин, тут все понимают эту картинку
Влод
как видишь, я не понимал
Donat
к слову, кто-нибудь задумывался как работают шутки?
Cheese
этой картинкой я прокомментировал type JSON = Text
Cheese
не обязательно отвечать на ответ
Cheese
Cheese
кто-нибудь
Влод
там что связанное с тем что привычный ход мысли обламывается, мозг начинает искать новые пути интерпретации усылшенного/увиденного и в это время ты начинаешь чувствовать дизкомфорт/страх, потом мозг решает этот ребус и ты снова возвращаешься в комфортное состояние и впрыскиваются гормоны
Donat
совпадает с высказыванием о том, что объяснение шутки делает её несмешной
Alexander
повтор шутки уже делает её не смешной
Cheese
чаще путь шутки ещё короче: демонстрация глупости -> чувство превосходства -> удовольствие
Alexander
=)
Влод
но пока ты её не понимаешь ты вообще такой в напряге, загоняешься
Vladislav
Шутки работают не так.
Влод
?
Andrey
осторожно, а то откроете формулу смеха и будет как в том произведении
Vladislav
Шутки -- это криптография, которая позволяет различать свой/чужой.
Vladislav
Когда шутку понимаешь и тебе смешно, то ты верифицируешь, что имеешь с автором общий контекст в понимании ситуации.
Vladislav
Почитайте про теории юмора, это исследованная тема. Зачем вообще могло появиться такое явление, эволюционно.
Vladislav
Поэтому объясненные шутки не смешны. Нет процедуры верификации, тебе просто рассказали какую-то вещь, которая может быть внешне тривиальной.
Donat
Donat
в смысле, если нет консенсуса, значит всё-таки недостаточно исследованная тема
Vladislav
Ладно, я не смог найти пейпер, в котором изложена упомянутая мной теория, но на собственном опыте просто заметил, что вроде хорошо объясняет все шутки, которые мне кажутся смешными.
Cheese
похоже, что есть два вида шуток: превосходство над другим человеком
1) в неприятной ситуации
2) не принадлежащим особому кругу
2а) не знающим мем
Yurii
Про классификацию юмора
http://www.lib.csu.ru/vch/226/007.pdf
Kirill
Есть вот такой вот код:
readJsonText file = do
exists <- doesFileExist file
if exists then
readFile file
else
return "[]"
writeJson file value = do
print "Hello"
writeFile file $ encode value
parseJson value = either throwError return $ eitherDecode value
runApp action file = db >>= ioAction
where saveResults = either (hPutStrLn stderr) (writeJson file =<<)
ioAction = saveResults . runExcept . toIOT . (parseJson >=> evalStateT action)
db = readJsonText file
При выполнении на несуществующем файле падает вот так:
todo-list: ~/.todos: openBinaryFile: does not exist (No such file or directory)
"Hello"
ЧЯДНТ?
P.S. readFile/writeFile из lazy bytestring
P.P.S. Сильно не бейте - первый велосипед для менеджемента TODO
Alexander
@saksmt а есть полный ход, я чего-то сходу проблемы не вижу
Dmitry
по разному разбирают какие-нибудь относительные пути?
Dmitry
короче, хорошо бы путь распечатать и посмотреть
Dmitry
ну, например кто-то тильду расширяет, а кто-то нет
Kirill
Dmitry
так и есть, кстати
Dmitry
там есть функции, которые расширяют относительные имена файлов
Dmitry
и нормализуют
Kirill
я как-то не ожидал этого подвоха)
Kirill
грешил на ленивость, но закоменчивание readFile не помогло и решил постучать сюда
Alexander
doesFileExists разве расширяет?
Dmitry
хм, нет
Alexander
вообще из-за ленивости проблемы бы могли быть, но не такие
Alexander
но расчепятать что читали полезно может быть
Alexander
до "hello" тоже не доходит
Kirill
да не, до hello как раз дошло
Alexander
тогда я бы не сказал, что оно падает..
Alexander
т.е. то что оно падает, а не исключение всередине написано - не очевидно
Kirill
Оно падает, но после этого на попытке записи
Alexander
а что у тебя в передается в file если нету аргументов?
Dmitry
стоп - так это writeFile же падает?
λ> Prelude.writeFile "~/.wtfqqq" "AAA"
*** Exception: ~/.wtfqqq: openFile: does not exist (No such file or directory)
Kirill
Ага
Dmitry
а в чём тогда вопрос?
Dmitry
что-то я невнимателен
Kirill
Alexander
а file!
Alexander
в
Alexander
runApp action file <-
Alexander
у тебя ./todos
Alexander
что ты передаешь как file когда вызываешь runApp
Kirill
нет, "~/.todos"
Alexander
а, ну да тильду никто раскрывать не будет
Alexander
это видать была сессия программы?
Alexander
а то я думал что это терминал:/
Kirill
а в чём тогда вопрос?
Уже ни в чём - разобрался, проблема была в том, что пути не резолвятся автоматом и из-за этого writeFile падает не с самой очевидной ошибкой
Kirill
Alexander
я думал что ты вызываешь утилиту ./todos из command line
Alexander
а там резолв путей делается башем
Alexander
ну или что вместо шела
Kirill
баш не делает резолв
Kirill
и да я из баша вызывал
Kirill
Вот исходники, если вдруг кому интересно: http://git.home.smt.run/experimental/haskell-todo/blob/develop/src/Main.hs
P.S. Был бы рад услышать здоровую критику :)
Alexander
если в кавычках, то не ресолвит, без кавычек ресолвит
Donat
#offtop а у меня todo в vimwiki и мне нравится...
Kirill
Donat
я бы хотел для себя фронтенд к vimwiki на ведроид, но на хаскелле не получится :(
Kirill
Почему?
Kirill
ndk и вперёд
Kirill
Правда не уверен что оно того стоит
Donat
а гуй?
Kirill
FFI и биндинге к джавке
Kirill
через ndk
Donat
там вроде всё очень печально было когда я смотрел