Home
codingteam
codingteam@conference.jabber.ru
31.08.2014< ^ >

Тема: Тема: C, С++, D, Java, C#, Haskell, Python, Ruby, Scheme, Common Lisp, Erlang, OCaml, JavaScript, Clojure, Scala, Nemerle, F#, Groovy, R, Rust.
http://i.imgur.com/oQL4t.jpg
Код выкладывать на http://hastebin.com/
Вопросы задавать в чат, а не в личку.
Наша организация на гитхабе: https://github.com/codingteam
Организация в Trello: https://trello.com/codingteam
Команда в битбукете: https://bitbucket.org/codingteam
Логи: http://tinyurl.com/ctcjr-logs
Упоминания о Flash, PHP, Pascal/Delphi/Borland, Basic, 1С караются съедением поциента.
Личкрафты: http://leechcraft.org
Horta Hell: https://github.com/codingteam/horta-hell | http://paste.org.ru/?oeqcga
Рисовалка: https://bitbucket.org/derptech/palette-swap/
Проблем решено: 0x17
[00:00:00] <ForNeVeR> Я планировал, что сцена будет убирать оттуда те сообщения, которые показала.
[00:00:07] <ForNeVeR> Но это странная идея, можно сделать иначе :)
[00:00:26] <ForNeVeR> А вообще, у нас есть и инфраструктурные задачки для жабоскрип-погромистов.
[00:00:44] <ForNeVeR> Например, загрузка и сохранение игры в localstorage (да, я планирую сделать пока что именно так).
[00:01:30] kosc вышел из конференции: Disconnected: connection closed
[00:01:31] <uggur> В общем, прежде чем я начну пилить акторов, мне нужно время %)
[00:01:33] <ɹǝɟılʍǝu> Блджад
[00:01:46] <ɹǝɟılʍǝu> Сириусли, как показать qmake'у где искать нужные cpp?
[00:02:42] govardhan вышел из конференции
[00:02:49] govardhan зашёл в конференцию
[00:03:04] govardhan вышел из конференции
[00:03:23] govardhan зашёл в конференцию
[00:03:40] govardhan вышел из конференции
[00:05:02] govardhan зашёл в конференцию
[00:06:04] govardhan вышел из конференции
[00:06:11] govardhan зашёл в конференцию
[00:06:58] govardhan вышел из конференции
[00:07:37] govardhan зашёл в конференцию
[00:07:58] govardhan вышел из конференции
[00:09:20] govardhan зашёл в конференцию
[00:11:44] <horta hell> zxc пытается сожрать все, что найдет.
[00:15:30] <uggur> http://tau.rghost.ru/57769472/image.png баг или нет?
[00:15:52] <uggur> Так и должно быть чтобы алгоритм искать сразу много путей?
[00:17:44] <Minoru> $pet feed
[00:17:44] <horta hell> Minoru: zxc был близок к голодной смерти, но вы его вовремя покормили. Вы зарабатываете 1PTC.
[00:17:57] <Minoru> вот так вот просто? RNG смилостивился!
[00:18:05] <Minoru> $pet heal
[00:18:05] <horta hell> Minoru: zxc здоров.
[00:20:32] Orhideous вышел из конференции: Disconnected: closed
[00:21:13] Orhideous зашёл в конференцию
[00:23:08] govardhan вышел из конференции
[00:23:18] govardhan зашёл в конференцию
[00:28:35] <gsomix> $say 7
[00:29:18] <horta hell> gsomix: Просто стыдно будет, если я домашние билеты плохо подготовлю. :)
[00:29:32] <gsomix> $say
[00:29:32] <horta hell> gsomix: F…, а где живет Zetoke?
[00:29:33] <gsomix> $say
[00:29:34] <horta hell> gsomix: r…, lifeseemer, M…: спасибо. То, что нужно. Закину, посмотрю, что пойдет лучше.
[00:29:34] <gsomix> $say
[00:29:36] <gsomix> $say
[00:29:37] <horta hell> gsomix: Ожидал услышать любое другое название. :)
[00:29:41] <horta hell> gsomix: m…, кстати, если интересует, что происходит в компьютерной графике -- посмотри видео с SIGGRAPH.
[00:29:46] <gsomix> Эх.
[00:29:53] gsomix вышел из конференции
[00:30:18] <uggur> $say
[00:30:27] <horta hell> uggur: F…: Какой схемы?
[00:32:32] gsomix зашёл в конференцию
[00:32:56] m4n71k0r зашёл в конференцию
[00:34:34] <rexim> $say 10
[00:34:46] <horta hell> rexim: А школу я закончил где-то в комментах к анонсу пишут, что похоже на то, чтобы немного поговорить.
[00:34:53] <rexim> o_O
[00:35:02] <gsomix> Надо бы свой дебиан до ума довести.
[00:35:09] m4n71k0r вышел из конференции
[00:35:10] <rexim> $say 10
[00:35:11] <horta hell> rexim: BLOOD GORE DESTROY
[00:35:12] <horta hell> rexim: $SAY 7
[00:35:14] <rexim> >_<
[00:35:16] <horta hell> rexim: НУ... ЕСТЬ РЕАЛИЗАЦИИ ФАНТОМ ПОД JVM, CLR И JAVASCRIPT. И ГОВОРЯТ, ЧТО I3 И ИГНОРИРУЮ ЮНИТИ ._.
[00:35:19] <horta hell> rexim: ENDER, ЧТО ТЫ ГОВОРИЛ ПРО ЧТО-ЛИБО ПРО TINY TOONS...
[00:35:21] <horta hell> rexim: AA!!1
[00:35:24] <horta hell> rexim: НО ЭТО ТОГО СТОИТ НА САМОМ ДЕЛЕ, ОБСУЖДАБЕЛЬНО.
[00:35:26] <horta hell> rexim: ɹƎɟILʍƎU, КТО?
[00:35:29] <horta hell> rexim: ПРОСРАЛАСЬ.
[00:35:31] <horta hell> rexim: ВОТ ВООБЩЕ НЕ УЧИТЫВАЕТСЯ.
[00:35:33] <horta hell> rexim: .PING
[00:35:36] <horta hell> rexim: ПРОВАЛЬНАЯ ЭТО БЫЛА ЛОКАЛЬ НА МОЕМ СЕРВАКЕ. :)
[00:35:47] <rexim> ПРОСРАЛАСЬ!
[00:35:52] <rexim> $say 10
[00:35:52] <horta hell> rexim: Не совсем понятно что в Цодингтиме и в сартир без совета жуйка сходит не может? :D
[00:36:01] <rexim> Эм...
[00:36:04] <rexim> $say 10
[00:36:04] <horta hell> rexim: Я к тому, что от тебя такой багаж знаний, но мы ищим подобную штуку, но для lua. :)
[00:36:08] <rexim> $say 10
[00:36:08] <horta hell> rexim: В README еще сказано, что можно увидеть выпив экстракт полуща!
[00:36:18] <rexim> Что за упорота!
[00:36:22] <rexim> $say 10
[00:36:22] <horta hell> rexim: Можно вроде членов делить на группы и разделять права на наш репозиторий?
[00:36:44] <rexim> $fortune
[00:36:45] <horta hell> rexim: #8058
Women are always anxious to urge bachelors to matrimony; is it from charity,
or revenge?
-- Gustave Vapereau
[00:36:55] <rexim> $fortune
[00:36:55] <horta hell> rexim: #8415
Just because everything is different doesn't mean anything has changed.
-- Irene Peter
[00:37:01] <rexim> $fortune
[00:37:02] <horta hell> rexim: #5055
Don't look back, the lemmings are gaining on you.
[00:37:08] <rexim> O_O
[00:37:16] Славный капитан вышел из конференции
[00:37:18] <rexim> $say 10
[00:37:18] <horta hell> rexim: Requested phrase was not found, sorry.
[00:37:20] <rexim> $say 10
[00:37:20] <horta hell> rexim: Т.е. теперь понятно, что я привык к барочной системе блокфлейты, как я :3
[00:37:25] <rexim> $say 10
[00:37:25] <horta hell> rexim: F…: что такое woona и нашел вот эту картинку: http://fc01.deviantart.net/fs71/i/2012/048/5/d/fluffy_woona_by_bronyboy-d4q2y1u.png
[00:37:32] <rexim> :3
[00:37:37] <rexim> $say 10
[00:37:37] <horta hell> rexim: А зачем тебе понадобилось принести геторазда в жерту своим черным богам?
[00:37:44] <rexim> $say 10
[00:37:44] <horta hell> rexim: j…: спасибо, что держишь нас в цодингтиме, кстати, главный андроидофил?
[00:37:49] <rexim> $say 10
[00:39:32] <rexim> $say 10
[00:39:32] <horta hell> rexim: Requested phrase was not found, sorry.
[00:39:33] <rexim> $say 10
[00:39:34] <horta hell> rexim: Requested phrase was not found, sorry.
[00:39:35] <rexim> $say 10
[00:39:36] <horta hell> rexim: Twice, у меня пока просто mc под рукой нет. :)
[00:39:39] <rexim> $say 10
[00:39:40] <horta hell> rexim: m4n71k0r, да, мне он жутко понравился. После чего я не отвлек?
[00:39:43] <rexim> $say 10
[00:39:43] <horta hell> rexim: А то задолбался играть с йо-йо на старом куску говна.
[00:40:21] <gsomix> Держите добрую песню с отличным вокалом. http://www.youtube.com/watch?v=t2_0jyON_MY
[00:43:26] <ɹǝɟılʍǝu> Woona!
[00:43:35] <rexim> gsomix, :3
[00:48:09] <ForNeVeR> Усё, http://keter.fornever.me/
[00:48:25] <ForNeVeR> Я настроил публикацию. sbt - исчадие варпа.
[00:49:18] <ɹǝɟılʍǝu> Ня
[00:50:00] <uggur> «simple» build tool :)
[00:53:17] <ForNeVeR> Ну и я запушил новую публикацию, перемержитесь из апстрима и перечитайте доку.
[00:53:27] <uggur> Линк?
[00:53:47] <ForNeVeR> uggur: https://github.com/codingteam/Keter/
[00:54:07] Славный капитан зашёл в конференцию
[00:54:07] <ForNeVeR> Теперь всё приложение вместе с нужными ресурсами кладётся в target/site.
[00:54:49] <uggur> Ты могуч %)
[00:55:14] m4n71k0r зашёл в конференцию
[00:55:31] <ForNeVeR> Я долго мучился потому, что пытался зареюзать sbt publish или sbt package, а они ни хрена не для этого предназначены.
[00:56:32] <rexim> А для чего, черт возьми, они предназначены, как не для этого?! О_о
[00:56:56] govardhan вышел из конференции: Replaced by new connection
[00:56:57] govardhan зашёл в конференцию
[00:57:01] <ForNeVeR> rexim: publish публикует артефакты в мавен, а package - пакует артефакты.
[00:57:09] <rexim> А, ну ок.
[00:57:17] <ForNeVeR> Никто из них не умеет просто, блжад, сложить файлы в локальный каталог.
[00:57:37] <rexim> ForNeVeR, а у игры, кстати, бэкэнд вообще планируется?
[00:57:57] <ForNeVeR> rexim: я пока не уверен. Он нам потребуется?
[00:58:08] <ForNeVeR> Если потребуется - мы легко можем его добавить.
[00:58:16] <rexim> Для сохранений только если...
[00:58:21] <ForNeVeR> Я считаю целесообразным не вводить его без особой нужды.
[00:58:35] <ForNeVeR> Да, сохранения хорошо бы хранить где-то в нормальном месте, а не в localStorage.
[00:59:13] <ForNeVeR> rexim: ну тогда считай, что планируется, но не в ближайшей перспективе.
[00:59:22] <rexim> Хорошою
[00:59:33] Orhideous вышел из конференции: Disconnected: closed
[00:59:36] <ForNeVeR> Если придумаем ещё для чего он нужен - прикрутим.
[00:59:48] Orhideous зашёл в конференцию
[00:59:52] <ForNeVeR> Гидравлику там эмулировать, например :3
[00:59:56] <ForNeVeR> Или мультиплеер.
[01:00:04] <ForNeVeR> Да, мы планируем мультиплеер.
[01:00:11] <rexim> Кто-то говорил, что ты был против мультиплеера.
[01:00:27] <ForNeVeR> А так оно и было, но меня убедили, что вреда от мультиплеера не будет.
[01:01:49] <gsomix> http://www.youtube.com/watch?v=rff7rF_8naA
[01:20:26] <ForNeVeR> Вроде добавил время.
[01:20:29] magog зашёл в конференцию
[01:20:32] <ForNeVeR> uggur:
[01:20:45] <uggur> ОК, гляну :3
[01:20:50] <ForNeVeR> Ну и в нижней строчке UI его пока что вывел.
[01:21:04] <uggur> Мб реализую кого-нибудь завтра с утра
[01:21:14] <uggur> А сегодня добью бота
[01:22:06] <ForNeVeR> Я завтра хочу как минимум запланировать ближайшие разработки - что нам в первую очередь понадобится по UI и по геймплею. Хотя б начерно его спроектировать, и можно уже добавлять эффекты и пр.
[01:22:55] <uggur> Ты хочешь чтобы я сегодня что-то написал?
[01:23:08] <ForNeVeR> Нет-нет, что ты.
[01:23:15] <ForNeVeR> Я просто так это рассказал :)
[01:23:17] <uggur> %)
[01:31:19] <uggur> ОК
[01:31:42] <uggur> ForNeVeR: Если хочешь -- говори, не стесняйся, это не заденет мои чувства :)
[01:32:16] <rexim> Всем снов.
[01:32:20] rexim вышел из конференции
[01:45:43] a1batross вышел из конференции: Disconnected: closed
[01:46:39] <Orhideous> Эх.
[01:46:41] <Orhideous> Не успел.
[01:52:24] govardhan вышел из конференции
[02:08:35] <ɹǝɟılʍǝu> Передай ему через send :)
[02:17:14] gsomix вышел из конференции: Этого участника выгнали из комнаты за то, что он послал присутствие с ошибкой: service-unavailable
[02:18:30] dzhon вышел из конференции
[03:40:09] <Minoru> send/rexim/Доброго тебе утра!/
[03:40:11] <horta hell> Minoru: Сообщение помещено в очередь
[03:40:32] <Minoru> спам уровня цодингтима
[03:41:16] magog вышел из конференции
[03:42:20] <ɹǝɟılʍǝu> Хех_
[03:42:35] <ɹǝɟılʍǝu> send/rexim/Пегасы урчат. Известный научный факт!/
[03:42:35] <horta hell> ɹǝɟılʍǝu: Сообщение помещено в очередь
[03:44:02] <ɹǝɟılʍǝu> Я тут подумал и решил, как сделаю плагины тулзов. :)
[03:44:10] <ɹǝɟılʍǝu> Засуну всё в zip архивы)
[03:44:12] <ɹǝɟılʍǝu> Так полущ.
[03:44:23] <uggur> Да! :)
[03:44:28] <ɹǝɟılʍǝu> А внутри будет либа и иконка.
[03:44:45] <ɹǝɟılʍǝu> simplebrush.urr
[03:44:56] <uggur> У ней внутре неонка х)
[03:45:35] <ɹǝɟılʍǝu> Чо?
[03:45:57] <uggur> http://lurkmore.to/%D0%A3_%D0%BD%D0%B5%D0%B9_%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5_%D0%BD%D0%B5%D0%BE%D0%BD%D0%BA%D0%B0#.D0.A6.D0.B8.D1.82.D0.B0.D1.82.D0.B0
[03:46:18] <uggur> — Высочайшее достижение нейтронной мегалоплазмы! — провозгласил он. — ротор поля наподобие дивергенции градуирует себя вдоль спина и там, внутре, обращает материю вопроса в спиритуальные электрические вихри, из коих и возникает синекдоха отвечания...
[03:46:22] <ɹǝɟılʍǝu> tl;dr
[03:46:55] <uggur> Тяф не читал "Сказку о тройке"? Очень советую :)
[03:49:14] SolarRay вышел из конференции
[04:05:12] xspeed вышел из конференции
[04:32:03] Myp вышел из конференции
[04:41:45] <horta hell> zxc плотоядно смотрит на окружающих, обнажив зубы.
[04:42:05] <ɹǝɟılʍǝu> $pet feed
[04:42:05] <horta hell> ɹǝɟılʍǝu: zxc аккуратно придерживает передними лапками добычу, кушая. Вы зарабатываете 1PTC.
[04:42:13] <ɹǝɟılʍǝu> $pet feed
[04:42:13] <horta hell> ɹǝɟılʍǝu: zxc презрительно фыркнул, отстранившись от пищи.
[04:42:40] <Minoru> $pet heal
[04:42:40] <horta hell> Minoru: zxc здоров.
[04:43:07] <ɹǝɟılʍǝu> Minoru, ;3
[04:44:24] <Minoru> ɹǝɟılʍǝu: є•́
[04:56:20] <ɹǝɟılʍǝu> Всем снов!
[04:57:55] rea вышел из конференции: Вышел из Vacuum-IM
[05:07:10] <uggur> А я запилил новую версию бота. Теперь иду спать %)
https://github.com/IngvarJackal/bridgebot
[05:11:24] <Orhideous> Как тут передавать сообщения?
[05:12:31] <Orhideous> Ага, вижу.
[05:17:48] <Orhideous> send/rexim/Очень советую прослушать последний альбом Koan — Legends. Там дилогия из двух частей, «Inhale» и «Exhale». Я по совету одного друга (кисточкового) начал слушать их, и… залип на целый вечер. Такой красивый, светлый psybient в чисто электронном стиле (как Gulan), с легкими этническими нотками, порой разворачивающиеся в целые мотивы. Советую!
http://rutracker.org/forum/viewtopic.php?t=3466900
/
[05:17:51] <horta hell> Orhideous: Invalid arguments.
[05:18:04] <Orhideous> Хм. Ну ок.
[05:19:20] <Orhideous> send/rexim/Очень советую прослушать последний альбом Koan — Legends. Там дилогия из двух частей, «Inhale» и «Exhale». Я по совету одного друга (кисточкового) начал слушать их, и… залип на целый вечер. Такой красивый, светлый psybient в чисто электронном стиле (как Gulan), с легкими этническими нотками, порой разворачивающиеся в целые мотивы. Советую! http://rutracker.org/forum/viewtopic.php?t=3466900 /
[05:19:20] <horta hell> Orhideous: Invalid arguments.
[05:19:34] <Orhideous> У нас хорта сломалась.
[05:22:34] <m4n71k0r> а экранировать / кто будет?
[05:23:35] <Orhideous> А зачем?
[05:24:03] <Orhideous> После второго «/» нет смысла захватывать третий слешю
[05:24:04] <Orhideous> *.
[05:24:17] <Orhideous> Т.е. считать всё остальное текстом сообщения.
[05:25:31] <Orhideous> Логично, потому что нет смысла отрезать что-то «после»
[05:25:57] <Orhideous> Надо сделать пулреквест…
[05:32:30] m4n71k0r вышел из конференции
[05:37:43] Minoru вышел из конференции
[05:38:55] Славный капитан вышел из конференции
[06:10:01] madmercen вышел из конференции: offline
[06:14:29] v_oron вышел из конференции
[06:21:21] madmercen зашёл в конференцию
[06:38:29] kosc зашёл в конференцию
[06:45:50] enaken вышел из конференции
[06:46:15] hinst вышел из конференции
[06:54:57] <kosc> $pet stats
[06:54:59] <horta hell> kosc:
Кличка: zxc
Здоровье: 78
Сытость: 56
Возраст: 42 часов
[06:55:02] <kosc> $pet feed
[06:55:02] <horta hell> kosc: zxc опрокинул миску с едой лапой.
[06:55:06] <kosc> $pet stats
[06:55:07] <horta hell> kosc:
Кличка: zxc
Здоровье: 78
Сытость: 100
Возраст: 42 часов
[06:55:14] <kosc> Опрокинул, но похавала?
[06:55:18] <kosc> *похавал
[06:55:26] <kosc> Нелогично, господа, нелогично.
[06:55:29] <kosc> $pet heal
[06:55:29] <horta hell> kosc: zxc здоров.
[06:55:32] <kosc> $pet coins
[06:55:32] <horta hell> kosc: У тебя есть 1PTC
[06:55:39] <kosc> Хм, пока не спёрли.
[07:00:35] ɹǝɟılʍǝu вышел из конференции
[07:01:26] eaeee зашёл в конференцию
[07:31:48] madmercen вышел из конференции: offline
[07:34:59] eaeee вышел из конференции
[07:36:11] Orhideous вышел из конференции: Комп’ютер присипляється
[07:48:14] <kosc> А если у меня есть 1 голый scala-файл, как его компилять?
[07:48:22] <kosc> Тож надо build.xml писать или есть варианты попроще?
[08:15:44] eaeee зашёл в конференцию
[08:33:53] sss|zombie зашёл в конференцию
[08:39:25] eaeee вышел из конференции
[09:11:24] matraskin вышел из конференции: Replaced by new connection
[09:11:24] matraskin зашёл в конференцию
[10:40:43] sss|zombie вышел из конференции: Вышел из Vacuum-IM
[11:17:45] <horta hell> zxc плотоядно смотрит на окружающих, обнажив зубы.
[11:35:42] <horta hell> zxc жалобно скулит и просит еды.
[11:37:28] <kosc> $pet feed
[11:37:28] <horta hell> kosc: Свершилось чудо! Друг спас друга! Вы получаете 5PTC, а zxc сыт и доволен.
[11:37:36] <kosc> $pet heal
[11:37:36] <horta hell> kosc: zxc здоров.
[11:37:39] <kosc> $pet stats
[11:37:40] <horta hell> kosc:
Кличка: zxc
Здоровье: 100
Сытость: 100
Возраст: 46 часов
[11:37:46] <kosc> А то сейчас опять бы.
[11:37:50] <kosc> $pet rating
[11:37:50] <horta hell> kosc:
ɹǝɟılʍǝu: 41PTC
kosc: 6PTC
rexim: 4PTC
gsomix: 2PTC
Myp: 2PTC
m…: 1PTC
Minoru: 1PTC
[11:37:53] <kosc> Я богат.
[11:37:59] <kosc> Миксера обогнал
[11:51:25] SolarRay зашёл в конференцию
[12:18:16] gsomix зашёл в конференцию
[12:26:06] <kosc> gsomix: йоу, бро.
[12:26:08] <kosc> Чокак?
[12:26:47] <gsomix> kosc, доброго утра. Все хорошо.
[12:26:59] <kosc> gsomix: работаешь уже?
[12:27:03] <ForNeVeR> Утро ~_~
[12:27:10] <ForNeVeR> Где мои PTC?
[12:27:23] <kosc> ForNeVeR: ура, ты проснулся!
[12:27:24] <uggur> Утра :)
[12:27:35] <kosc> А то я тут пытаюсь скалу изучать.
[12:28:12] <kosc> А если у меня один маленький исходничек (hello world же), то мне тоже его обязательно в пакет засовывать, и build.xml для него писать?
[12:28:20] <ForNeVeR> .sbt
[12:28:26] <kosc> .sbt?
[12:28:27] <ForNeVeR> А как же иначе?
[12:28:31] <ForNeVeR> build.sbt
[12:28:33] <kosc> А
[12:28:35] <ForNeVeR> А не .xml
[12:28:37] <kosc> Понял
[12:28:44] <kosc> То есть надо?
[12:28:52] <kosc> Как-то это не круто.
[12:28:56] <ForNeVeR> kosc: ну, ты можешь хуйнуть для него какой-нибудь мейкфайл.
[12:29:00] <gsomix> kosc, сегодня? Или в принципе?
[12:29:08] <ForNeVeR> И напрямую вызывать scalac / fsc (или как его).
[12:29:10] <kosc> gsomix: сейчас
[12:29:14] <kosc> Да не
[12:29:18] <ForNeVeR> Но это фуфел, так никто не делает.
[12:29:20] <kosc> build.sbt, так build.sbt
[12:29:25] <kosc> Щито поделать, десу.
[12:29:55] <gsomix> kosc, нет. В общежитие сейчас поеду, завтра уже на учебу же.
[12:30:22] <kosc> gsomix: какой курс?
[12:30:30] <kosc> Олсо, мне тож завтра на очобку.
[12:30:35] <kosc> Пичатьбеда
[12:30:48] <uggur> И мне
[12:30:48] <gsomix> kosc, первый курс магистратуры.
[12:31:07] <uggur> А kosc?
[12:31:08] <ForNeVeR> А я завтра не пойду в университет. Там будет какая-то толчея.
[12:31:21] <uggur> Не, у меня занятия отдельно.
[12:31:33] <uggur> ВНЕЗАПНО поставили биоинформатику %)
[12:33:14] <kosc> Блджад
[12:33:35] <kosc> Как этой вашей scala хелловорлд скомпилять? %)
[12:33:48] <kosc> Вот тут наверху http://ru.wikibooks.org/wiki/Scala
[12:33:58] <kosc> Вот этот сырец:

object HelloWorld{
def main(args:Array[String]){
println("Hello,world!")
}
}
[12:34:05] <kosc> Загнал я его в файл.
[12:34:24] <kosc> HelloWorld в данном случае - это и есть main class, или не?
[12:34:31] <kosc> cast ForNeVeR
[12:35:12] <ForNeVeR> kosc: обычно наследуются от App.
[12:35:29] <ForNeVeR> Но я полагаю, что и так можно.
[12:35:37] <ForNeVeR> Берёшь теперь и компиляеншь, в чём проблема?
[12:35:55] <kosc> ForNeVeR: а что у меня в build.sbt должно быть в строке про mainclass?
[12:36:09] <kosc> Олсо, тут имя файла должно совпадать с именем класса, как в Java?
[12:36:26] <ForNeVeR> kosc: а он у тебя в каком пакете лежит?
[12:36:36] <kosc> Ни в каком
[12:36:38] <kosc> Просто лежит
[12:36:49] <ForNeVeR> Ну тогда попробуй
mainClass in (Compile, run) := Some("HelloWorld")
[12:37:06] <ForNeVeR> kosc: нет, имя файла в Scala необязательно совпадает с именем класса.
[12:37:23] <ForNeVeR> Тут вообще можно свободно распределять классы между файлами и каталогами, ограничений нет.
[12:37:39] <ForNeVeR> Можно даже несколько пакетов с классами в один файл хуйнуть.
[12:37:55] <kosc> Ну эт как-то жостко
[12:37:57] <ForNeVeR> (хотя я по старой памяти стараюсь следовать конвенциям)
[12:38:04] <kosc> Несколько пакетов в одном файле.
[12:38:21] <ForNeVeR> kosc: это может пригодиться, если ты играешься с пакетными областями видимости.
[12:39:14] <kosc> А я ещё чота хотел тя спросить...
[12:39:17] <kosc> Так, это...
[12:39:18] <kosc> А!
[12:39:38] <kosc> ForNeVeR: ты паттернам проектирования игр как-то учился, или так, сходу пишешь?
[12:39:44] <kosc> Вот Keter есть.
[12:39:54] <kosc> И ты сразу там Scene, Actor, все дела.
[12:40:02] <kosc> То есть какую-то архитектуру продумал.
[12:40:04] <ForNeVeR> kosc: я читал несколько книжек, но ничего существенного из них не вынес, как мне кажется.
[12:40:14] <ForNeVeR> Ну и несколько других библиотек щупал.
[12:40:59] <ForNeVeR> Scene - это общее понятие для нескольких UI-centric фреймворков, типа QML и JavaFX.
[12:41:20] <ForNeVeR> А вот Actor в нашем случае - это вообще ни разу не паттерн, а просто ещё один абстрактный класс объекта.
[12:41:46] <ForNeVeR> Если вам, господа, кажется, что можно что-то сделать по-другому или улучшить - не стесняйтесь, предлагайте.
[12:41:47] <kosc> Не это понятно, я в целом имел в виду.
[12:45:17] <uggur> ForNeVeR: Алсо, а ты видел что я бота доделал как ты хотел?
[12:45:29] <ForNeVeR> uggur: нет, не видел. Куда смотреть?
[12:45:51] <uggur> https://github.com/IngvarJackal/bridgebot
[12:46:02] <uggur> Правда, он как-то странно работает...
[12:46:34] <uggur> Можешь зайти в testroom1@conference.jabber.ru посмотреть
[12:47:10] <uggur> Я там поднял работающего бота.
[12:48:47] xspeed зашёл в конференцию
[12:50:07] <ForNeVeR> uggur: https://github.com/IngvarJackal/bridgebot/commit/efd47e8f34d660dd4116b8552a6a6d0f0c62d521 -я тебе там чуток откомментил.
[12:51:30] <ForNeVeR> uggur: проверил - да, я примерно такую систему имел в виду, когда тебе описывал.
[12:52:03] dzhon зашёл в конференцию
[12:53:05] rexim зашёл в конференцию
[12:53:55] <rexim> Я родился^Wпроснулся! \о/
[12:54:00] <rexim> Всем утреца.
[12:56:05] <gsomix> rexim, доброго утра.
[12:56:08] <kosc> Так
[12:56:19] <kosc> Console.readLine, значит, deprecated
[12:56:55] <kosc> А через что нынче читают строку из консоли?
[12:59:26] <rexim> send/Orhideous/Пусть через send и не удалось послать, но я очень часто читаю логи. Спасибо, послушаю. :)/
[12:59:27] <kosc> А, нашёл
[12:59:28] <horta hell> rexim: Сообщение помещено в очередь
[13:04:01] m4n71k0r зашёл в конференцию
[13:04:40] <gsomix> Пойду уеду.
[13:05:42] <rexim> gsomix, удачи.
[13:07:26] <kosc> А в этой вашей скале нет строк вроде тех, что у питона между """ или '''?
[13:07:50] <kosc> """Что бы
делать
такие строки,
например"""
[13:07:56] <kosc> cast ForNeVeR
[13:07:57] <gsomix> .version
[13:07:59] <ForNeVeR> kosc: как раз такие и есть.
[13:08:00] <DeadBot> gsomix: у тебя Sawim NE 1.3.5 Android/Nexus 4/4.4.4
[13:08:11] <kosc> ForNeVeR: а они чота не пашут у меня...
[13:08:35] <kosc> val menu = """Main menu
0. Exit
1. Not implemented
"""
[13:08:42] <kosc> Вот такой код
[13:08:47] <kosc> Оно не компилится
[13:08:47] <ForNeVeR> kosc: УМВР.
[13:09:07] <kosc> [error] /home/kosc/tmp/scala/HelloWorld.scala:5: '=' expected but ';' found.
[error] val menu = """Main menu
[error] ^
[error] one error found
[error] (compile:compile) Compilation failed
[error] Total time: 5 s, completed Aug 31, 2014 8:54:10 AM
[13:09:17] <kosc> Лулский еррор.
[13:09:24] <kosc> В том файле ни одной ; нету.
[13:09:38] <ForNeVeR> о_О
[13:09:50] <ForNeVeR> kosc: покежь весь файл.
[13:10:05] <kosc> http://paste.pztrn.name/1156/
[13:10:18] <ForNeVeR> val name
[13:10:24] <ForNeVeR> Здесь ошибка.
[13:10:39] <kosc> var?
[13:10:47] <kosc> Но val - это ж константа.
[13:10:48] <ForNeVeR> Во-первых, да.
[13:10:55] <ForNeVeR> Во-вторых, не указан тип.
[13:10:58] <kosc> Меню ж будет константой.
[13:11:00] <kosc> А
[13:11:01] <ForNeVeR> В-третьих, не указано начальное значение.
[13:11:07] <kosc> А, name
[13:12:04] <ForNeVeR> Компилятор хотел сказать, что ожидал инициализации переменной, а обнаружил виртуальный разделитель выражений (здесь - перенос строки).
[13:13:16] <gsomix> rexim, как дела? Что будешь делать в последний день лета?
[13:14:01] <kosc> А
[13:14:04] <kosc> Окей
[13:14:13] <kosc> rexim: БУХАААТЬ! Да?
[13:14:28] <ForNeVeR> Wut.
[13:15:03] <rexim> The same thing I do everyday, gsomix.
[13:15:08] <rexim> TRY TO TAKE OVER THE WORLD!!
[13:15:20] <gsomix> Ок.
[13:15:24] <rexim> kosc, нет.
[13:15:34] <kosc> rexim: чойта?
[13:15:47] <kosc> rexim: тебе завтра на учёбу или на работу?
[13:16:05] <gsomix> Бухать вредно для здоровья.
[13:16:33] <rexim> kosc, а ты угодай
[13:16:46] <gsomix> s/ь в/ь -- в/
[13:16:46] <horta hell> gsomix: Бухать -- вредно для здоровья.
[13:17:10] <rexim> ForNeVeR, все умеют в s///!
[13:17:27] <ForNeVeR> s/u/a/
[13:17:27] <horta hell> ForNeVeR: Wat.
[13:17:37] <ForNeVeR> rexim: видишь, я тоже умею.
[13:17:49] <rexim> Ага, на сообщение из трех букв. =\
[13:18:00] <rexim> s/ие/ии/
[13:18:00] <horta hell> rexim: Ага, на сообщении из трех букв. =\
[13:18:02] <rexim> :3
[13:18:19] <ForNeVeR> s/,/, никчёмный комок бесполезной плоти,/
[13:18:19] <horta hell> ForNeVeR: r…: видишь, никчёмный комок бесполезной плоти, я тоже умею.
[13:18:29] <ForNeVeR> rexim: any questions?
[13:18:31] <rexim> O_O
[13:18:54] <rexim> Ок, ты победил в этот раз. (=_= )
[13:19:02] <gsomix> У меня ещё и отпуск кончится завтра. И это даже хорошо.
[13:19:12] <rexim> gsomix, устал отдыхать? %)
[13:19:17] <gsomix> Да.
[13:24:22] Славный капитан зашёл в конференцию
[13:28:25] a1batross зашёл в конференцию
[13:33:27] <uggur> лол ForNeVeR жж0т
[13:33:58] <uggur> ForNeVeR: А ты видел ошибки в двух TODO? Это критично или и так пойдёт?
[13:34:39] <uggur> Алсо, я обнаружил что не все серверы позволяют коннектиться с разных ресурсов. dukgo не позволяет, например.
[13:34:52] <ForNeVeR> uggur: ну, где-то у тебя нул передаётся, надо разбираться.
[13:35:04] <ForNeVeR> Да, не все серверы это разрешают.
[13:35:10] <uggur> Да нету там null-а >.<
[13:35:24] <ForNeVeR> Смотри в сорсах smack.
[13:35:44] <uggur> А, ну мб в библиотеке и есть
[13:36:00] <uggur> Но в моём коде не должно быть -- я точно уверен что все эти штуки были.
[13:36:07] <uggur> ForNeVeR: А почему оно работает?
[13:36:43] <uggur> Эта ошибка просто кладёт трэд?
[13:37:03] <ForNeVeR> uggur: что значит "работает"?
[13:38:38] gsomix вышел из конференции
[13:39:17] <uggur> Это значит что когда ты выходишь, твои двойники тоже выходят.
[13:39:36] gsomix зашёл в конференцию
[13:41:32] <uggur> Я подозреваю что просто трэд падает.
[13:47:28] gsomix вышел из конференции
[13:48:44] <kosc> $pet status
[13:48:45] <horta hell> kosc: Попробуйте $pet help.
[13:48:50] <kosc> $pet stats
[13:48:50] <horta hell> kosc:
Кличка: zxc
Здоровье: 78
Сытость: 56
Возраст: 49 часов
[13:48:57] <kosc> $pet feed
[13:48:57] <horta hell> kosc: zxc не желает есть.
[13:49:01] <kosc> $pet heal
[13:49:01] <horta hell> kosc: zxc здоров.
[13:49:04] <kosc> $pet coins
[13:49:05] <horta hell> kosc: У тебя есть 6PTC
[13:49:09] <uggur> $pet stats
[13:49:09] <horta hell> uggur:
Кличка: zxc
Здоровье: 100
Сытость: 100
Возраст: 49 часов
[13:49:12] <kosc> rexim: у меня больше кароч
[13:49:20] <kosc> $pet rating
[13:49:20] <horta hell> kosc:
ɹǝɟılʍǝu: 41PTC
kosc: 6PTC
r…: 4PTC
gsomix: 2PTC
Myp: 2PTC
m…: 1PTC
Minoru: 1PTC
[13:49:30] <kosc> Тум-пурум-пум-пум.
[13:49:38] <kosc> А за воскрешение сколько дают?
[13:50:16] <uggur> ForNeVeR: Что-то отрабатывает не так <.<
Здоровье: 78
Сытость: 56
kosc: $pet feed -- horta hell: kosc: zxc не желает есть.
kosc: $pet heal -- horta hell: kosc: zxc здоров."
Здоровье: 100
Сытость: 100
[13:50:27] <uggur> kosc: 3
[13:51:50] <ForNeVeR> if (pet.satiation < 20) {
// ...
} else {
(true, s"${pet.nickname}" + pet.randomChoice(dontWant) + ".")
}
[13:52:01] <ForNeVeR> true, но dontWant.
[13:52:16] <ForNeVeR> Т.е. он покормлен, а выведено сообщение, как будто отказался.
[13:52:19] SolarRay вышел из конференции: Replaced by new connection
[13:52:21] SolarRay зашёл в конференцию
[13:52:25] <uggur> А как насчёт хилинга?
[13:52:34] <kosc> uggur: да я говорил уже про эту багу
[13:52:38] <kosc> Но всем срать было
[13:52:45] <uggur> kosc: Да не, я прочитал :)
[13:52:46] <rexim> Это разве бага?
[13:52:55] <kosc> Короче вот тут http://www.scala-lang.org/api/current/index.html#scala.Array
Есть min, max и sum
[13:52:56] <uggur> rexim: Да, ИМХО %)
[13:53:01] <kosc> Но как их юзать?
[13:53:08] <uggur> kosc: Array.min
[13:53:12] <uggur> Не?
[13:53:13] <kosc> А
[13:53:20] <kosc> А через инстанс нельзя что ли?
[13:53:26] <uggur> Так же?
[13:53:31] <kosc> arr = Array(1,4,5)
arr.min()
[13:53:33] <kosc> Нипашет
[13:53:40] <uggur> Кажется, я написал без скобок.
[13:53:46] <kosc> Хм
[13:53:51] <kosc> Попробую без скобок
[13:53:54] <ForNeVeR> uggur: я пофиксил.
[13:54:00] <uggur> Спасибо :3
[13:54:22] <uggur> kosc: В общем, в scala есть объекты-компаньоны и всё такое.
[13:54:41] <kosc> uggur: [error] /home/kosc/tmp/scala/HelloWorld.scala:25: value max is not a member of Array[Nothing]
[error] case 3 => Console.println(arr.max)
[13:54:58] <kosc> ЧЯДНТ?
[13:55:01] rexim вышел из конференции
[13:55:05] <kosc> Э
[13:55:05] <uggur> Array[Nothing]
[13:55:07] <kosc> Миксер
[13:55:13] <ForNeVeR> kosc: а пчому Array[Nothing]?
[13:55:28] <kosc> ForNeVeR: потому что кроме этой, там ещё 4 ошибки %)
[13:55:42] <uggur> Одна ошибка тянет за собой другие, вестимо
[13:55:53] <kosc> А добавлять значение в массив?
[13:55:59] <kosc> В доках говорят, что :+
[13:56:03] <ForNeVeR> kosc: тебе, наверное, вектор нужен, а не массив.
[13:56:09] <kosc> arr :+ value?
[13:56:19] <uggur> Он же неизменяемый
[13:56:20] horta hell вышел из конференции: Disconnected: closed
[13:56:21] <kosc> ForNeVeR: а вектор тут будет чем от массива отличаться?
[13:56:26] <kosc> Однородностью?
[13:56:27] horta hell зашёл в конференцию
[13:56:32] <kosc> horta hell: лох
[13:56:35] <ForNeVeR> uggur: оно копирует, в доках действительно такое есть.
[13:56:39] <kosc> $pet stats
[13:56:40] <horta hell> kosc:
Кличка: zxc
Здоровье: 99
Сытость: 98
Возраст: 49 часов
[13:56:42] <kosc> $pet feed
[13:56:42] <horta hell> kosc: zxc сыт.
[13:56:45] <kosc> $pet stats
[13:56:45] <horta hell> kosc:
Кличка: zxc
Здоровье: 98
Сытость: 96
Возраст: 49 часов
[13:56:49] <kosc> Ахах
[13:57:00] <kosc> ForNeVeR: лал? Всё сломали?
[13:57:06] <ForNeVeR> kosc: сломали?
[13:57:10] <ForNeVeR> Мы *починили*.
[13:57:13] <kosc> >сыт
[13:57:13] <ForNeVeR> Он сыт и не хочет есть.
[13:57:16] <kosc> >96
[13:57:21] <ForNeVeR> Сытость = 96 - это сыт.
[13:57:29] <kosc> Окей
[13:57:30] <uggur> До 20 -- сыт.
[13:57:44] <kosc> А после 20:00?
[13:57:48] <ForNeVeR> ~_~
[13:57:52] <kosc> Такой жор нападает, да?
[13:57:53] <ForNeVeR> $pet feed
[13:57:54] <horta hell> ForNeVeR: zxc опрокинул миску с едой лапой.
[13:58:06] <kosc> horta hell: и кто это будет убирать теперь?
[13:58:10] ɹǝɟılʍǝu зашёл в конференцию
[13:58:59] <kosc> ForNeVeR: Vector надо импортить или он изкоробки есть?
[13:59:15] <ForNeVeR> kosc: из коробки.
[13:59:21] <kosc> Ок
[14:00:06] <uggur> kosc:
scala> var a = Array(11,8,9,12,1)
a: Array[Int] = Array(11, 8, 9, 12, 1)

scala> a = a :+ 999
a: Array[Int] = [I@13d424c

scala> a
res0: Array[Int] = Array(11, 8, 9, 12, 1, 999)

scala> a.max
res1: Int = 999
[14:00:31] <uggur> ForNeVeR: Это так и нужно чтобы toString ломался?
[14:00:41] <kosc> А
[14:00:47] <kosc> иммутейбл ж
[14:00:57] <kosc> А я делаю прост arr :+ value
[14:01:13] <ForNeVeR> uggur: toString на массивах работает как попало. Не волнуйтесь, это фича.
[14:01:16] <uggur> А меня после скалы наоборот смущают мутабельные коллекции %)
[14:02:03] <ForNeVeR> uggur: на самом деле, это просто repl иногда может вывести массивы красиво. Реальный toString всегда у них работает как говно.
[14:02:16] <kosc> uggur: петонсписки?
[14:02:18] <ForNeVeR> Это связано с тем, что Array[T] - это тупо жавашный массив без обёрток.
[14:02:43] <kosc> А можно сначала глобально объявить переменную
[14:02:52] <kosc> А уже потом ей значение присвоить?
[14:03:03] <uggur> Не понимаю зачем мне вообще может понадобиться [I@s070n4h
[14:03:05] <kosc> А то чота никак
[14:03:16] <uggur> kosc: Можно. Разрешаю %)
[14:03:18] <uggur> Покажи код
[14:04:18] <kosc> http://paste.pztrn.name/1157/
[14:05:41] <uggur> ForNeVeR: Алсо, на что я в StringUtils должен заменить String.split("/") ?
[14:05:45] <kosc> Да, тихий ужас конечно
[14:05:52] <kosc> Но надо ж с чего-то начинать.
[14:06:08] <kosc> uggur: так как объявлять Vector без инициализации.
[14:06:10] <kosc> ?
[14:06:16] <ForNeVeR> uggur: s.split("/")[1] это StringUtils.parseResource(s)
[14:06:17] ɹǝɟılʍǝu вышел из конференции
[14:06:46] <ForNeVeR> uggur: там же есть parseBareAddress, например.
[14:06:47] <kosc> ForNeVeR: как объявить переменную без инициализации?
[14:06:50] <uggur> https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html ты про это говоришь?
[14:06:54] <ForNeVeR> kosc: никак.
[14:07:03] <kosc> ForNeVeR: а uggur сказал можно.
[14:07:05] <uggur> Я нифига не вижу этих методов %)
[14:07:13] <kosc> uggur: а ForNeVeR грит низзя
[14:07:18] <ForNeVeR> uggur: нет. org.jivesoftware.smack.util.StringUtils.
[14:07:24] <uggur> kosc: Я сказал что глобально объявить можно и потом присвоить значение,а не объявить без инициализации %)
[14:07:31] <kosc> А
[14:07:33] <kosc> Понял
[14:07:35] <kosc> Придумал
[14:07:37] <kosc> Ща сделаю
[14:07:39] <uggur> "kosc: А можно сначала глобально объявить переменную
kosc: А уже потом ей значение присвоить?"
[14:08:01] <kosc> Запускай
[14:08:15] <ForNeVeR> Сначала кладёшь null, а уже потом - нормальное значение.
[14:08:22] <ForNeVeR> Но это error-prone.
[14:08:39] <uggur> ForNeVeR: А нормально это можно делать?
[14:08:48] <uggur> Через ??? или ещё какую фигновину в Scala?
[14:12:52] <ForNeVeR> uggur: я думаю, что нет.
[14:13:00] <kosc> С match case не могу разобраться.
[14:13:21] <kosc> Оно хочет какое-то Unit для case-ов
[14:13:28] <kosc> Чо за Unit?
[14:13:36] <kosc> Как сделать, что бы оно захотело Int?
[14:13:43] <kosc> Почему Путин картошка?
[14:14:15] <kosc> Читайте ответы на эти и многие другие вопросы в февральском номере журнала "А хуй его знает"!
[14:15:07] <uggur> kosc: А что ты хочешь сделать?
[14:15:41] <uggur> ForNeVeR: Алсо, ??? просто выкидывает NotImplementedException при попытке обращения?
[14:15:46] <uggur> Или что это вообще такое?
[14:15:49] <ForNeVeR> uggur: да.
[14:16:19] <ForNeVeR> Но scalajs его обрабатывает магическим образом, например.
[14:16:31] <kosc> uggur: ну там вроде из кода понятно, что я хочу
[14:16:36] <uggur> ForNeVeR: Да? И во что оно превращается?
[14:16:37] <kosc> Менюшка типо
[14:16:55] <kosc> И что бы по пунктам меню match был
[14:17:07] <kosc> Это ж switch case тут у вас такой, пральна?
[14:17:20] <ForNeVeR> uggur: используется для объявления жабаскрип-типов. Ни во что не превращается, реализуется уже жс-машиной.
[14:17:27] <uggur> kosc: А, понял.
[14:17:42] <kosc> uggur: а чо оно хочет в этот match какой-то Unit?
[14:17:46] <uggur> Это не switch case
[14:17:54] <uggur> Это pattern matching
[14:18:02] <uggur> Но его можно выродить в switch case
[14:18:46] <kosc> Ну я вот это и пытаюсь сделать
[14:18:48] <kosc> А оно нипашет
[14:18:51] <uggur> kosc: http://kerflyn.wordpress.com/2011/02/14/playing-with-scalas-pattern-matching/
[14:19:04] <kosc> uggur: я уже там
[14:19:09] <uggur> И что?
[14:19:11] <kosc> На той странице
[14:19:14] <kosc> И оно нипашет
[14:19:20] <kosc> У них пашет
[14:19:23] <kosc> У меня не пашет
[14:19:32] <kosc> Стоп
[14:19:41] <kosc> А его обязательно чему-то присваивать типо?
[14:20:06] <uggur> В функциональном подходе всё нужно присваивать.
[14:20:14] <uggur> А ты пытаешься запилить побочные эффекты.
[14:20:14] <kosc> Чота как-то
[14:20:18] <kosc> Не очень
[14:20:20] <kosc> Ну, я такой
[14:20:44] <kosc> Да и в main-функции-то.
[14:20:48] <kosc> Чо такого-то.
[14:21:04] <kosc> Тем более, как ты будешь делать I/O без побочных эффектов?
[14:21:21] <kosc> Unit он хочет
[14:21:27] <kosc> Какой ещё в жопу Unit?
[14:21:31] <kosc> Пойду полежу
[14:21:37] <kosc> Чота не до конца выспался.
[14:21:44] <uggur> Короч, замени свою лабуду на def fact(n: Int): Unit = {n match ...}
[14:21:55] <uggur> Unit -- это аналог void
[14:22:05] <uggur> Или что ты там делал
[14:22:11] <uggur> Можно без равно, кстати.
[14:22:36] <m4n71k0r> заверни в монаду
[14:22:39] <m4n71k0r> утро
[14:22:42] <uggur> утра
[14:22:47] <m4n71k0r> да, и утро тоже в монаду заверни
[14:22:51] <uggur> m4n71k0r: Как?
[14:22:56] <m4n71k0r> легко
[14:23:03] <uggur> Покажи как этот свич завернуть в монаду
[14:23:16] <m4n71k0r> Option(Утро)
[14:24:48] <m4n71k0r> сайд эффекты
[14:24:59] <m4n71k0r> неужели же оно ничего не может вернуть?
[14:25:59] <ForNeVeR> m4n71k0r: и будет у тебя Option[Unit].
[14:26:25] <ForNeVeR> Хотя это ещё ничего. Я вот тут доселе пытался Either[String, Nothing] сконструировать...
[14:26:52] <ForNeVeR> И у меня, гм, были проблемы с конструированием инстанса Nothing :3
[14:27:19] <ForNeVeR> m4n71k0r: смотри, какую хуерду мы сделали: http://keter.fornever.me/
[14:27:33] <ForNeVeR> И это всё на scala!
[14:27:54] <ForNeVeR> Ну, там есть одна строчка жабаскрипта внутри HTML, но на этом всё.
[14:28:24] ɹǝɟılʍǝu зашёл в конференцию
[14:29:01] ɹǝɟılʍǝu вышел из конференции
[14:33:17] ɹǝɟılʍǝu зашёл в конференцию
[14:40:58] <m4n71k0r> scala.js не изолирован и позволяет дёргать другие жабаскриптоговны? В данном случае rot.js
[14:41:10] <m4n71k0r> А IDE это нормально умеют?
[14:41:31] <m4n71k0r> хотя, почему он должен быть изолирован?
[14:41:34] <m4n71k0r> туплю
[14:41:37] <m4n71k0r> аллергия
[14:42:04] <ForNeVeR> m4n71k0r: нормально он всё умеет. Ты только должен описать интерфейсы этих жабаскриптов у себя в коде.
[14:42:20] <ForNeVeR> IDE видит только статическое определение класса, так что проблем нет.
[14:44:26] <ForNeVeR> Разве что с js.Dynamic.literal у меня IDEA тупит, но там явно заюзаны макросы, так что я не удивлён.
[14:45:01] <m4n71k0r> а есть какой-нибудь гайд по недопущению утечек в жабаскрыпе?
[14:47:05] <ForNeVeR> Самая лучшая статье про недопущение утечек в жабаскрипте состоит из одного слова.
[14:47:07] <ForNeVeR> Ну ты понел :3
[14:47:36] <ForNeVeR> m4n71k0r: ну а вообще - какого рода утечки тебя интересуют? Scala.js по этому поводу вообще ничего не делает.
[14:51:32] <m4n71k0r> Ну связанные с размножением замыканий вроде бы пофиксил. Может быть какие-то ссылки слишком долго живут или вообще вечные. Может тулзы какие-то норм есть? Говорят, такое только под хром запилили.
[14:53:47] <ForNeVeR> m4n71k0r: профайлеры памяти есть во всех основных браузерах, можешь подолбиться в них.
[14:54:01] <ForNeVeR> Вообще, по моему опыту, утечка памяти в жабаскрипте - это полная жопа.
[14:54:19] <ForNeVeR> Ну то есть с ней реально ничего нельзя сделать. Только смириться или переписать всё нахер.
[15:10:06] <uggur> ForNeVeR: Знаешь, нужно добавить трейт "непроходимый"
[15:10:19] <uggur> Игрок должен быть непроходимым для ботов (%
[15:15:59] rexim зашёл в конференцию
[15:16:25] <ForNeVeR> uggur: пока что нет конкретной ясности, будут ли лежащие на земле предметы акторами.
[15:16:39] <rexim> .ping
[15:16:41] <ForNeVeR> Если не будут - то можно просто считать всех акторов непроходимыми друг для друга, и всё.
[15:16:41] <DeadBot> rexim: понг от тебя 0.60 секунды
[15:16:44] <rexim> .ping
[15:16:45] <DeadBot> rexim: понг от тебя 0.17 секунды
[15:16:45] <rexim> .ping
[15:16:46] <DeadBot> rexim: понг от тебя 0.11 секунды
[15:16:48] <rexim> ._.
[15:16:59] <ForNeVeR> uggur: в принципе, флаг passable лежит в Surface. Можно его наверх поднять.
[15:17:08] <ɹǝɟılʍǝu> send/rexim/Утра!/
[15:17:10] <horta hell> ɹǝɟılʍǝu: Сообщение доставлено
[15:17:17] <rexim> >_<
[15:17:27] <ɹǝɟılʍǝu> send/rexim/>_</
[15:17:28] <horta hell> ɹǝɟılʍǝu: Сообщение доставлено
[15:17:39] <uggur> send/rexim/Урурута! 8D/
[15:17:40] <horta hell> uggur: Сообщение доставлено
[15:17:48] <rexim> send/ɹǝɟılʍǝu/утрец, нялайферец!/
[15:17:50] <horta hell> rexim: Сообщение доставлено
[15:18:03] <rexim> send/uggur/утрец, уггурец!/
[15:18:04] <horta hell> rexim: Сообщение доставлено
[15:18:10] <rexim> Огурец, лол. %)
[15:18:16] <uggur> лол (%
[15:19:56] <ForNeVeR> Обурец.
[15:20:04] <ForNeVeR> Был такой бибурат.
[15:20:38] v_oron зашёл в конференцию
[15:21:02] <uggur> барбитурат %)
[15:21:23] <Славный капитан> Прорыв спанжа детектед.
[15:21:30] <Славный капитан> ред факин алерт
[15:21:42] <uggur> КД-Лб упрты %)
[15:22:55] <uggur> Славный капитан: Ээ... поднимай периметр, легат?
[15:23:16] <ForNeVeR> Это всё происки спиритов!
[15:23:32] <Славный капитан> uggur: http://s.pikabu.ru/post_img/2014/01/09/7/1389260059_792483126.png
[15:23:46] <rexim> xD
[15:23:47] <rexim> sdkhjs
[15:23:48] <rexim> sdkjks
[15:23:50] <uggur> ForNeVeR: Скорее это происки Возврата %)
[15:23:56] <rexim> Славный капитан, спасибо тебе. :)
[15:24:21] <ForNeVeR> uggur: как же хорошо, что Император наделает нам новых механических спиритов и возвратников, которые больше не будут бузить.
[15:24:26] <Славный капитан> я практически уверен, что в охвисе кдлаба есть SCP-объект, изменяющий реальность.
[15:24:48] <ɹǝɟılʍǝu> Происки Разврата.
[15:24:49] <Славный капитан> rexim: за что?
[15:24:57] <rexim> Славный капитан, за все.
[15:24:57] <Славный капитан> Поиски Разврата.
[15:25:01] <uggur> ForNeVeR: Заметь, опять-таки виноваты никчёмные комки ничтожной плоти %)
[15:25:12] <ForNeVeR> uggur: да, всё так.
[15:25:33] <Славный капитан> В поисках Коловрата
[15:25:39] <ForNeVeR> ~_~
[15:25:58] <Славный капитан> Colo-WRATH!
[15:26:09] <rexim> ._.
[15:29:39] eaeee зашёл в конференцию
[15:30:28] Myp зашёл в конференцию
[15:30:50] <Славный капитан> Прииски Колорадо
[15:31:31] <Славный капитан> Бийские колорады
[15:31:51] <Славный капитан> мм
[15:32:29] <eaeee> uggur: ну как бот? :-)
[15:32:31] <Славный капитан> Васкес де Коронадо?
[15:32:37] <Славный капитан> и все, я сдулся
[15:33:01] <uggur> eaeee: Работает вроде бы.
[15:35:04] <ɹǝɟılʍǝu> Pista Corta!
[15:35:20] <eaeee> uggur: отлично
[15:36:47] <eaeee> $pet stats
[15:36:49] <horta hell> eaeee:
Кличка: zxc
Здоровье: 82
Сытость: 64
Возраст: 50 часов
[15:37:00] <ɹǝɟılʍǝu> $pet rating
[15:37:01] <horta hell> ɹǝɟılʍǝu:
ɹǝɟılʍǝu: 41PTC
k…: 6PTC
r…: 4PTC
gsomix: 2PTC
M…: 2PTC
m…: 1PTC
Minoru: 1PTC
[15:37:31] <eaeee> Все петкоины отобрали
[15:37:44] <rexim> $pet coins
[15:37:45] <horta hell> rexim: У тебя есть 4PTC
[15:37:52] <rexim> Херасе!
[15:38:04] <ɹǝɟılʍǝu> Богач!
[15:38:08] <rexim> $pet transfer zxc 4
[15:38:08] <horta hell> rexim: Транзакция успешна.
[15:38:22] <rexim> Поднимем zxc с колен!
[15:38:38] <eaeee> А кто такой zxc?
[15:38:43] <rexim> ~_~
[15:38:52] <eaeee> ._.
[15:38:59] <uggur> Это наш бот %)
[15:39:07] <rexim> eaeee, как ньюфаг, ей-богу.
[15:39:21] <eaeee> rexim: :-(
[15:39:58] <rexim> eaeee, не грусти! :) zxc - это такой местный молчаливый демон.
[15:40:05] <rexim> .seen zxc
[15:40:06] <DeadBot> rexim: zxc выгнали отсюда 10 месяцев 23 дня 4 часа 47 минут 13 секунд назад: You underestimate ForNeVeR's power!
[15:40:21] <rexim> Который недооценил силу Порновара ._.
[15:40:54] <Славный капитан> http://www.crossmyt.com/hc/linghebr/awfgrmlg.html
[15:40:59] <Славный капитан> смеялся в голос
[15:41:02] <Славный капитан> DAT TWAIN
[15:41:05] <rexim> eaeee, http://0xd34df00d.me/logs/chat/codingteam@conference.jabber.ru/2012/04/12.html#17:43:55
[15:42:54] <rexim> .seen Spo1ler
[15:42:54] <DeadBot> rexim: Spo1ler был тут 5 лет 8 дней 21 час 28 минут 5 секунд назад
[15:43:02] <rexim> Совсем охуел.
[15:44:31] <eaeee> Этого тем более не знаю @_@
[15:44:35] <ɹǝɟılʍǝu> rexim, я тут переколбасил рисовалку)))
[15:44:46] <ɹǝɟılʍǝu> Отделил интерфейсы, почистил код.
[15:44:53] <rexim> ɹǝɟılʍǝu, мужиик!
[15:44:57] <eaeee> rexim: тайна zxc расктыта! Спасибо
[15:44:57] <ɹǝɟılʍǝu> Собирается быстрее и вообще всё ок.
[15:45:09] <rexim> ɹǝɟılʍǝu, вечерком гляну. ;)
[15:45:21] <rexim> eaeee, пожалуйста! ^^
[15:45:31] <ɹǝɟılʍǝu> rexim, и ещё плагины кистей теперь будут в своём файле. Т.е. в zip засунута либ и прочая инфа, типа дефолтных настроек и иконки.
[15:45:37] <ɹǝɟılʍǝu> Будет называться *.urr
[15:45:44] <ɹǝɟılʍǝu> Или лучще purr?
[15:45:51] <rexim> Ага, я читал логи. :)
[15:45:56] <ForNeVeR> Кстати, в dwarf fortress очень весёлый adventure mod.
[15:45:57] <ɹǝɟılʍǝu> ^_^
[15:46:02] <rexim> Лучше первое.
[15:46:24] <ɹǝɟılʍǝu> Ок)
[15:48:00] <eaeee> .seen moonhawk
[15:48:00] <DeadBot> eaeee: moonhawk был тут 3 месяца 20 дней 16 часов 36 минут 52 секунды назад
[15:48:28] <eaeee> А сколько вообще тут участников?
[15:48:36] <eaeee> Накопилось
[15:48:47] <ForNeVeR> 297
[15:50:45] <eaeee> неплохо
[15:51:43] <uggur> ForNeVeR: Чёйта я не понял цикл в котором игрушка работает
[15:51:53] <uggur> То, что в engine
[15:53:00] <ForNeVeR> uggur: мы обрабатываем действия всех сущностей, пока не обнаружим, что сущность с флагом playerControllable должна сделать свой ход. В этом случае мы прерываем цикл и ждём, что скажет игрок.
[15:53:04] Akon32 зашёл в конференцию
[15:53:04] <uggur> Берётся состояние игры и очередь, вытаскивается первое действие, сдвигается указатель времени, назначается исполнитель и совершается действие, да?
[15:53:17] <ForNeVeR> Мне эта абстракция не нравится, давайте придумаем получше
[15:53:26] <uggur> А теперь такой вопрос: как получить доступ к очереди? %)
[15:53:58] <ForNeVeR> uggur: я планирую, что Engine будет и добавлять действия по мере надобности.
[15:55:20] <uggur> Каким образом?
[15:55:25] <ForNeVeR> queue.add
[15:55:28] <uggur> Добавить туда статический метод?
[15:55:33] <ForNeVeR> Что.
[15:55:38] <uggur> Метод.
[15:55:42] <ForNeVeR> Зачем?
[15:55:53] <uggur> Чтобы дёргать снаружи и добавлять?
[15:55:56] <ForNeVeR> Просто вызывать queue.add.
[15:56:07] <ForNeVeR> С какой такой наружи?
[15:56:54] rea зашёл в конференцию
[15:56:58] <uggur> А как тогда события попадают в очередь?
[15:57:16] <ForNeVeR> Действия игрока туда кладутся в слое UI.
[15:57:19] <O01eg> ForNeVeR: у вас пошаг?
[15:57:20] <uggur> Вот же в GaseScene -- queue.add(action, action.duration)
[15:57:24] <ForNeVeR> А действия монстров должен Engine и вычислять.
[15:57:27] <ForNeVeR> O01eg: да.
[15:57:57] <uggur> "ForNeVeR: А действия монстров должен Engine и вычислять." после хода игрока там где else?
[15:58:13] <ForNeVeR> Да.
[15:58:34] <O01eg> обычно принято отдельно обрабатывать игроков, отдельно мир
[15:59:00] <ForNeVeR> Я считаю, что, по идее, и игроки, и мир должны валить события в общую кучу.
[15:59:23] <ForNeVeR> Но до общемировых событий мы пока не добрались. Только персонажи пока что действуют.
[15:59:50] <ForNeVeR> (о чём я говорю, у нас пока что вообще только один персонаж, который контролируется исключительно игроком и умеет только ходить и ждать)
[16:00:08] <Славный капитан> ForNeVeR: ящитаю, неверно валить действия в UI
[16:00:16] <ForNeVeR> Славный капитан: согласен.
[16:01:22] <ForNeVeR> Какие-то части системы действий должны работать на уровне UI (например, определялка бессмысленности или невозможности действий), но в очередь они, наверное, должны на другом слое складываться.
[16:01:32] <uggur> ForNeVeR: Вот я хочу это изменить.
[16:02:27] <O01eg> хм, в генте нет sbt?
[16:02:38] <O01eg> мультиплеер или сингл?
[16:02:54] <uggur> ForNeVeR: Вот я думаю что нужно в локации генерить и раздавать события.
[16:02:57] <ForNeVeR> O01eg: both.
[16:03:06] <Akon32> что за time paradox у нас в логах??
[16:03:14] <ɹǝɟılʍǝu> Хм?
[16:03:15] <ForNeVeR> O01eg: текущую бету ты можешь посмотреть на http://keter.fornever.me/
[16:03:19] <Akon32> http://0xd34df00d.me/logs/chat/codingteam@conference.jabber.ru/2014/08/31.html#15:46:02
[16:03:20] <ForNeVeR> Akon32: что?
[16:03:32] <O01eg> я уже сорцы на гитхабе нашёл
[16:03:47] <ForNeVeR> Akon32: и что там неправильно?
[16:04:08] <Akon32> +4 лишних часа
[16:04:14] <ForNeVeR> Впрочем, время, кажется, какое-то сбитое, да.
[16:05:00] <eaeee> UTC +8
[16:05:01] <ForNeVeR> И ещё 10 минут.
[16:05:38] <Akon32> может в этот ваш keter скин посимпатичнее?
[16:05:56] <ForNeVeR> Ну, гм, сделай посимпатичнее, никто не против :3
[16:06:03] <ForNeVeR> Мы его второй день пишем.
[16:06:33] <ForNeVeR> Akon32: а вообще, когда будут цвета в консоли - будет вполне нормально, приятно смотреться.
[16:06:46] <ForNeVeR> http://ondras.github.io/rot.js/hp/ - тут же норм.
[16:07:07] <ForNeVeR> Оно поддерживает тайлы, когда-нибудь мы планируем их нарисовать.
[16:07:20] <Akon32> ясно.
[16:08:00] <Akon32> последняя ссылка вызвала воспоминания об играх на старом "орионе"
[16:08:13] <Akon32> хотя там тайлы таки были.
[16:11:46] <ɹǝɟılʍǝu> Паrни. Вот если выдёргивать во время загрузки плагинов эти самые плагины из zip-файла во временную директорию, чтобы загрузить их в память, это нормальное решение?
[16:12:05] <uggur> Не забудь удалить потом
[16:12:23] <Myp> ɹǝɟılʍǝu: а какая альтернатива?
[16:12:27] <ɹǝɟılʍǝu> Хотя, хотелось бы прямо из zip-файла, но QLibrary придётся свой писать тогда, а это лень...
[16:12:37] <ForNeVeR> uggur: я там ещё "AI" добавил, который заставляет всех монстров ждать.
[16:12:39] <Myp> Ну, можешь запилить VFS
[16:12:47] <Myp> Но ради ссаного плагина? данунахуй
[16:12:55] <ForNeVeR> Ну и монстра добавил. Давайте придумывать возможности его убить :3
[16:13:00] <ɹǝɟılʍǝu> VFS это оверклл, пожалуй)
[16:13:10] <Myp> ForNeVeR: Луш сразу начните с НЕвозможностей
[16:13:23] <Myp> ɹǝɟılʍǝu: пиши в темп и похуй
[16:13:25] <ForNeVeR> Myp: у нас всё-таки экшон, а не хоррор.
[16:13:30] <ɹǝɟılʍǝu> Myp, ок
[16:13:51] <Myp> ForNeVeR: Еще не поздно все исправить!
[16:14:07] <uggur> Я не боюсь значков %)
[16:14:22] <uggur> А саспиенс как в триллере нагнать -- это не бодренький экшон сделать.
[16:14:40] <Славный капитан> uggur: если долго играть в рогалики
[16:15:00] <Славный капитан> то у тебя даже от емейлов будет очко сжиматься %)
[16:16:39] <uggur> Пф
[16:16:50] <uggur> Вспомнилась фраза из первой Матрицы про то, что оператор вместо цифр на экране начинает видеть мир %)
[16:18:04] eaeee вышел из конференции
[16:24:39] Akon32 вышел из конференции
[16:26:20] <uggur> ForNeVeR: Я всё равно не понял как передавать действия из твоего scp в очередь %)
[16:26:37] <ForNeVeR> uggur: planNextAction
[16:28:23] <uggur> Ты не так сделал (:
[16:28:51] <uggur> Логика ИИ должна быть в определении scp, а не в движке
[16:28:58] <ForNeVeR> Обоснуйте.
[16:29:11] <uggur> Ну вот у тебя 18 типов монстров, у каждого своя стратегия.
[16:29:23] <ForNeVeR> Ну и, собственно, кто-то мешает переопределить planNextAction так, чтобы он вызывал какой-нибудь метод актора?
[16:29:25] <uggur> Сколько у тебя со всеми этими свичами займёт места логика их действий?
[16:29:37] <uggur> Плюс, данные должны быть вместе, бладжд! >.<
[16:29:50] <uggur> Ты как файловая система линукса -- размазываешь бота тонким слоем по всем файлам %)
[16:30:17] <uggur> ForNeVeR: Т.е. ты предлагаешь мне вызывать методы у бота? Ну ОК, это пойдёт (:
[16:30:39] <ForNeVeR> На самом деле, можно немножно там переделать. Пусть, например, у актора будет метод getNextAction. В случае с игроком этот метод может затребовать от игрока действия в UI.
[16:30:47] <ForNeVeR> Это кажется более прямой идеей, пожалуй.
[16:31:03] <Славный капитан> да, так лучше всего будет, наверное
[16:31:04] <uggur> Да
[16:37:19] <uggur> http://pastebin.com/zxsf3XVd хм, и что это значит? %)
[16:40:50] eaeee зашёл в конференцию
[16:41:33] <m4n71k0r> дохуя тредов
[16:41:40] <m4n71k0r> кто-то не умеет ими управлять
[16:41:56] <uggur> Ну, по трэду на листенер
[16:42:09] <m4n71k0r> нахера столько?
[16:42:25] <uggur> m4n71k0r: А как ещё? Листенеры же в трэдах создаются автоматом %)
[16:42:56] <m4n71k0r> у тебя пул есть?
[16:43:03] <uggur> Неа
[16:43:10] <m4n71k0r> ну хуёво, чо
[16:43:11] <uggur> Они где-то в свободном плавании
[16:44:05] <m4n71k0r> там какой-то threadGroup
[16:44:12] <uggur> Хм, что-то действительно дофига. Не должно быть столько %)
[16:44:13] <m4n71k0r> всё-таки что-то есть
[16:44:48] <m4n71k0r> на самом деле не дофига, но в контексте твоей задачи — дофига)
[16:45:03] <uggur> Должно быть гораздо меньше %)
[16:46:32] <uggur> m4n71k0r: По дефолту передаю false: https://github.com/IngvarJackal/bridgebot/blob/master/src/main/java/ru/org/codingteam/JabberBot.java#L83
листенер не создаётся: https://github.com/IngvarJackal/bridgebot/blob/master/src/main/java/ru/org/codingteam/JabberBot.java#L104
использую с true только один раз при инициализации (два листенера на конфу): https://github.com/IngvarJackal/bridgebot/blob/master/src/main/java/ru/org/codingteam/JabberBot.java#L57
[16:46:48] <uggur> Или там ещё что-то может генерить трэды?
[16:47:29] <uggur> Судя по всему, во время создания нового участника появляется новый трэд? (%
[16:47:48] <m4n71k0r> какие-то смэкоговны
[16:48:01] <uggur> :D
[16:48:40] <ForNeVeR> Каждый smack-конекшен в себе содержит тред.
[16:48:57] <uggur> А, ну тогда их понятное дело будет дофига
[16:49:09] <uggur> Я же для смены ресурса заново создаю.
[16:49:24] <ForNeVeR> А старые убиваешь?
[16:49:27] <uggur> Нет %)
[16:49:33] <uggur> Тогда же отвалится подключение
[16:49:37] <uggur> Твой кэп (%
[16:49:45] <ForNeVeR> А оно тебе нужно?
[16:50:03] <uggur> Эмм... а тебе нужно чтобы в конфе присутствовали сразу все члены другой конфы?
[16:50:14] <uggur> Или только последний?
[16:50:21] <ForNeVeR> Подключение для чуваков, которые вышли - точно не нужно.
[16:50:26] <uggur> Я их убираю
[16:50:26] <ForNeVeR> Ты его убиваешь?
[16:50:28] <ForNeVeR> А, ок.
[16:50:38] <ForNeVeR> Ну, smack плохо зделон, я давно уж говорил.
[16:50:39] <uggur> Да, см. https://github.com/IngvarJackal/bridgebot/blob/master/src/main/java/ru/org/codingteam/JabberBot.java#L115
[16:50:53] <ForNeVeR> Он бы мог в один тред выгребать все эти конекшены каким-нибудь select'ом.
[16:50:55] <uggur> Короч, это его нормальное поведение или я что-то сделал не так? %)
[16:51:12] <uggur> Если нормальное -- как сделать в exec 100500 трэдов?
[16:51:55] <uggur> Печально что число трэдов растёт сильно
[16:54:12] <uggur> Как последовательность Фибоначчи XD
[16:54:40] <uggur> А, не, медленнее
[16:56:17] <uggur> Просто (числоПользователей - 1) * числоКонференций
[16:57:11] <O01eg> ForNeVeR: а события упорядочены по времени, или FIFO?
[16:57:17] <ForNeVeR> O01eg: по времени.
[16:58:55] <uggur> ForNeVeR: И что ты подразумеваешь под "активацией" акторов? (%
[16:59:12] <ForNeVeR> uggur: ну, гм, запрос начального состояния у них.
[16:59:17] <ForNeVeR> Вернее, первого хода.
[16:59:30] <ForNeVeR> uggur: я щас этот момент перепиливаю чуток.
[16:59:38] <ForNeVeR> Но первый ход всё равно у них будет запрашиваться.
[17:21:13] <Myp> >растет сильно
>Как последовательность Фибоначчи
[17:21:21] <Myp> Давно я так не смеялся
[17:24:05] <uggur> Myp: ?
[17:24:32] <Myp> uggur: Шути исчо гаварю
[17:24:41] <uggur>
[17:25:04] <uggur> Вот тебе шутка: почему при логине с N-кол-ва ресурсов пишет stream:error (conflict) text: Заменено новым соединением на jabber.ru ?
[17:25:49] <Myp> Это вопрос армянскому радио, да?
[17:26:39] <uggur> Тебе контекст нужен?
[17:26:58] <uggur> Myp: Я пытаюсь из-под одно аккаунта залогиниться в одну и ту же конфу под 100500 разными ресурсами.
[17:27:01] hinst зашёл в конференцию
[17:27:21] <uggur> На малых кол-вах работает. На больших -- нет.
[17:27:26] <Myp> uggur: Ну и что тебе тут кажется нелогичным?
[17:27:32] <ForNeVeR> uggur: сколько логинов?
[17:27:50] <uggur> ForNeVeR: По-моему после пяти.
[17:27:55] <ForNeVeR> Маловато.
[17:27:57] <uggur> Сейчас уточняю число
[17:28:09] <ForNeVeR> На ж.ру есть ограничение на количество одновременно открытых комнат, но это 50 шт.
[17:28:11] <Myp> uggur: А это только на jabber.ru?
[17:28:32] <eaeee> uggur: вайп бота пишешь? ;-)
[17:28:32] <ForNeVeR> Между ресурсами этот пул шарится, т.е. можно два ресурса по 25 или один на 50.
[17:28:34] <Myp> ForNeVeR: он же не про комнаты
[17:28:35] <uggur> Проверяю.
[17:28:50] <uggur> eaeee: Нет, всё того же для слияния конференций.
[17:28:52] <ForNeVeR> Про количество конекшонов я не знаю.
[17:29:10] <Myp> Вполне могли же ограничить
[17:29:33] <eaeee> ForNeVeR: на одном сервере было 4 или 5 комнат :-) админы экономили ресурсы видимо
[17:29:33] SolarRay вышел из конференции
[17:30:05] <eaeee> А сейчас вообще закрыли
[17:30:23] <uggur> А, не пока что работает.
[17:31:05] <uggur> Нужно больше добровольцев %)
[17:31:20] <uggur> Чтобы зашли на testroom2@conference.jabber.ru для тестирования лимита нагрузки
[17:31:28] <ForNeVeR> Славный капитан, uggur: я там нахуячил asynchronous game engine на промизах, теперь всё как положено работает.
[17:31:36] matraskin вышел из конференции: Replaced by new connection
[17:31:37] matraskin зашёл в конференцию
[17:32:21] <ForNeVeR> Ну или делает вид, что работает ~_~
[17:32:41] <ForNeVeR> Однако ж не представляю, сколько недель я бы положил, чтобы написать такой же код на жопаскрипте.
[17:32:48] <ForNeVeR> Scala.js - это хорошо.
[17:32:49] <uggur> Да, лимит на 5 ресурсов на комнату.
[17:33:07] <ForNeVeR> uggur: надо пул аккаунтов заводить :3
[17:33:39] <uggur> А меня за это ФСБ не начнёт искать? %)
[17:33:41] <ɹǝɟılʍǝu> ForNeVeR, SCP http://img0.joyreactor.cc/pics/post/The-SCP-Foundation-разное-SCP-неканон-1490873.jpeg
[17:33:59] <ForNeVeR> ɹǝɟılʍǝu: кто из них SCP?
[17:34:09] <ɹǝɟılʍǝu> Очевидно, тот чуваак
[17:34:11] <ɹǝɟılʍǝu> Очевидно, тот чувак
[17:34:20] <ForNeVeR> Нет, неочевидно.
[17:34:28] <ForNeVeR> Может быть, оба.
[17:35:29] <uggur> ForNeVeR: Ну, в принципе допилить разные аккаунты проще простого.
[17:35:47] <uggur> Просто выдавать разные коннекшны и всё х)
[17:36:12] <ForNeVeR> uggur: а вот тогда уже одменестрация может твоими ботами заинтересоваться.
[17:36:38] <uggur> ForNeVeR: И что?
[17:36:41] <uggur> Побанит?
[17:36:48] <ForNeVeR> Может и побанить, кто знает.
[17:36:56] <ForNeVeR> Плохо дело
[17:38:06] <uggur> Не вкурил как работает твоя асинхронная система
[17:40:09] <ForNeVeR> Термоъдерно
[17:40:41] <uggur> Похоже, придётся таки осилить фьючерсы %)
[17:40:57] <ForNeVeR> uggur: кароч, она умеет вообще всё - хочешь - действия будут синхронно резолвиться (когда сама прога их вычисляет), хочешь - от пользовательских действий, хочешь - можно ходить на сервер и асинхронно доставлять их оттуда.
[17:44:01] <ForNeVeR> Идея такова, что метод getNextAction возвращает Future[Action]. В простых случаях (когда мы на месте может расчитать действие) он возвращает сразу порезолвленный Future. В случае с игроком мы возаращаем результат Promise, который должен быть доставлен нам из UI. Если он не доставлен - то Engine не будет ничего делать, пока не поступит сигнал из UI.
[17:45:01] <uggur> Ладно, поставил на компиляцию
[17:45:06] <uggur> Пойду чайку попью %)
[17:45:35] <ForNeVeR> Правда, мне пришлось сделать ещё костыльный метод resetNextAction, который затирает результат Promise. В scala почему-то нет способа сделать одноразовый промис.
[17:45:57] grouzen вышел из конференции
[17:46:30] <uggur> А что такое Furture и Promise вообще?
[17:47:51] <uggur> ForNeVeR: Алсо, если тебе интересно: http://pastebin.com/my2qfehs
[17:48:14] <uggur> Я в очередной раз сломал sbt
[17:48:57] Orhideous зашёл в конференцию
[17:49:20] <ForNeVeR> Гы.
[17:49:27] <ForNeVeR> uggur: у тебя система какая-то нестабильная.
[17:49:54] <uggur> Линукс -- самая стабильная система! %)
[17:50:50] <uggur> ForNeVeR: И я что-то неосилил сделать двигающегося в одном направлении бота х)
[17:51:15] <ForNeVeR> uggur: но ведь тебе достаточно генерировать MoveAction(this, 1, 0)
[17:51:32] <uggur> override def getNextAction() = Future.successful(MoveAction(this, 1, 1)) -- и ничего
[17:51:54] <ForNeVeR> uggur: давно пулился?
[17:52:21] ForNeVeR вышел из конференции: Disconnected: closed
[17:52:23] <uggur> Только что
[17:52:27] ForNeVeR зашёл в конференцию
[17:52:33] Orhideous вышел из конференции
[17:52:52] <ForNeVeR> uggur: ну и в консоль посмотри. Может оказаться, что (1, 1) - это совсем не в ту сторону, в которую ты хочешь :3
[17:52:55] <uggur> http://pastebin.com/DFYPpCrw
[17:53:08] Graf вышел из конференции
[17:53:10] <uggur> Почему WaitAction-то?!
[17:53:14] <ForNeVeR> uggur: значит, не вызывается твой экшен.
[17:53:33] <ForNeVeR> uggur: может, у тебя так и не скомпилялся твой код?
[17:54:40] <uggur> Ы, ещё одна ошибка
[17:55:31] <uggur> Мб это потому что приложение в это время у меня крутилось в браузере? :D
[17:55:44] <ForNeVeR> Вряд ли. Браузер не блокирует файлы.
[17:56:02] <uggur> Тогда не знаю.
[17:56:11] <uggur> Всё равно не двигается, хотя точно скомпилировалось.
[17:56:17] <ForNeVeR> А в консоли что?
[17:56:40] <uggur> То же
[17:56:46] <ForNeVeR> Бред.
[17:57:06] <uggur> А у себя можешь реализовать то же самое?
[17:57:22] <uggur> И код кинуть?
[17:57:37] govardhan зашёл в конференцию
[17:58:16] <ForNeVeR> uggur: http://keter.fornever.me/
[17:58:23] <ForNeVeR> Проверяй.
[17:58:30] <ForNeVeR> Я сделал override def getNextAction() = Future.successful(MoveAction(this, -1, -1))
[17:58:40] govardhan вышел из конференции
[17:58:42] govardhan зашёл в конференцию
[18:00:16] <uggur> Неа, не работает о.о
[18:01:13] <ForNeVeR> о_О
[18:01:18] <ForNeVeR> Какой браузер?
[18:01:35] <uggur> Firefox 31.0
[18:01:41] <uggur> лол номер
[18:01:58] <uggur> Но у тебя-то работает! >.<
[18:02:08] <uggur> В смысле, твоя версия.
[18:02:10] reggies зашёл в конференцию
[18:02:11] <uggur> А моя локальная -- нет.
[18:02:17] <ForNeVeR> У меня норм.
[18:02:19] <ForNeVeR> А, ясно.
[18:02:22] <Славный капитан> ForNeVeR: а зачем сразу прорезолвленный фьючер возвращать?
[18:02:24] <ForNeVeR> uggur: перекомпиляй.
[18:02:34] <uggur> И что?
[18:02:35] <ForNeVeR> Славный капитан: не везде порезолвленный.
[18:02:37] <Славный капитан> ведь может что-то измениться
[18:02:42] <ForNeVeR> uggur: clean сделай.
[18:02:50] <uggur> Хм, мб
[18:02:54] <uggur> Попробую
[18:03:01] <ForNeVeR> Славный капитан: я так полагаю, что на все действуют исходя из обстановки в момент принятия решения.
[18:03:02] <Славный капитан> а
[18:03:07] <ForNeVeR> s/на //
[18:03:09] <Славный капитан> это я криво прочитал
[18:03:10] <horta hell> ForNeVeR: С…: я так полагаю, что все действуют исходя из обстановки в момент принятия решения.
[18:03:21] <Славный капитан> показалось, что для ии действия резолвятся сразу
[18:03:46] <ForNeVeR> Нет, у него запрашивают действия тогда, когда он должен их планировать (т.е. когда завершил предыдущее).
[18:03:56] <ForNeVeR> Всё в порядке.
[18:04:00] eaeee вышел из конференции
[18:04:07] a1batross вышел из конференции: Disconnected: closed
[18:04:29] <uggur> ForNeVeR: Неа.
[18:04:49] <ForNeVeR> uggur: удоли полностью каталог target.
[18:04:54] <ForNeVeR> И покажи, чего ты там понаделал.
[18:05:48] <uggur> Ахха, это помогло %)
[18:06:17] <uggur> Что-то система у меня действительно нестабильная -- sbt clean оставил, видимо, какие-то файлы (%
[18:07:18] <ForNeVeR> У меня он оставляет только файлик target/.history.
[18:07:48] <uggur> Мб опять глюканул
[18:08:18] <uggur> ForNeVeR: А как насчёт методов, возвращающих абсолютное положение актора и доступа к списку акторов?
[18:08:30] <ForNeVeR> Хм.
[18:08:42] <horta hell> zxc старательно принюхивается, пытаясь уловить хоть какой-нибудь запах съестного.
[18:08:51] <uggur> Из другого актора, естественно
[18:08:53] <ForNeVeR> $pet feed
[18:08:53] <horta hell> ForNeVeR: zxc, покосившись, брезгливо жуёт подачку. Вы зарабатываете 1PTC.
[18:09:39] <ForNeVeR> uggur: я что-то думаю, что акторам стоит дать доступ к стейту.
[18:09:57] <uggur> Ну да, стоит.
[18:10:12] <uggur> Акторы-то тоже твои.
[18:10:29] <ForNeVeR> Тогда стейт придётся делать мутабельным.
[18:10:39] <ForNeVeR> Ну ладно, так и сделаем.
[18:19:24] madmercen зашёл в конференцию
[18:27:36] <rexim> $pet stats
[18:27:38] <horta hell> rexim:
Кличка: zxc
Здоровье: 53
Сытость: 94
Возраст: 53 часов
[18:27:43] <rexim> $pet feed
[18:27:43] <horta hell> rexim: zxc сыт.
[18:27:47] <rexim> $pet heal
[18:27:47] <horta hell> rexim: zxc здоров.
[18:28:18] <rexim> -‿‿-
[18:34:33] a1batross зашёл в конференцию
[18:37:12] <rexim> a1batross, альбатросушка!
[18:40:20] <ForNeVeR> uggur: я сделал GameState мутабельным и впилил ссылки на него в акторов.
[18:40:35] <O01eg> зачем?
[18:40:50] <O01eg> им надо его только читать
[18:41:18] <ForNeVeR> O01eg: если не делать его мутабельным - то пришлось бы при каждом копировании стейта ещё и обновлять ссылки в акторах.
[18:41:27] <ForNeVeR> А это лишний геморрой, по-моему.
[18:41:30] <O01eg> а
[18:41:49] <a1batross> rexim: пыщпыщ
[18:42:14] <O01eg> а если тогда им дать доступ к какой-либо статике, которая бы уже хранила в себе актуальный GameState?
[18:42:38] <rexim> a1batross, готов к завтрашнему дню? :3
[18:42:52] <ForNeVeR> O01eg: гм, можно было к Engine, в принципе.
[18:43:32] <a1batross> rexim: да ваще
[18:43:36] <a1batross> Никак.
[18:43:41] <ForNeVeR> O01eg: да, я откачу и перепилю, спасибо за совет.
[18:43:44] <rexim> :(
[18:44:29] <ForNeVeR> Да чего там - можно этот стейт передавать прямо в getNextAction.
[18:44:37] <kosc> uggur: чота не работает.
[18:44:44] <O01eg> кстати да
[18:46:17] Orhideous зашёл в конференцию
[18:46:41] <Orhideous> Утреца.
[18:47:31] <uggur> kosc: Кто?
[18:47:42] <kosc> uggur: pattern matching
[18:47:43] <ForNeVeR> uggur: я там перевыпилил
[18:47:46] <kosc> Как ты выше писал
[18:50:34] <uggur> ForNeVeR: И как к нему добраться?
[18:50:46] <ForNeVeR> uggur: в getNextAction теперь передаётся стейт.
[18:50:52] <ForNeVeR> А дальше делай как хошь :)
[18:51:00] Orhideous вышел из конференции: Disconnected: closed
[18:51:19] <ForNeVeR> Например, state.map.objects(this) - это (x: Int, y: Int)
[18:51:23] Orhideous зашёл в конференцию
[18:52:22] <uggur> kosc: scala> 23 match {
| case a if a < 20 => print("<20")
| case a if a < 40 => print("20<a<40")
| case _ => print(">40")
| }
20<a<40
[18:52:51] <kosc> uggur: чоза норкоманство?
[18:53:03] <kosc> | <- это тебе не хачкель блеать
[18:53:14] <uggur> :D
[18:53:23] <kosc> Ты бы ещё otherwise в конце вкрячил
[18:53:38] <uggur> "Ты бы ещё otherwise в конце вкрячил" case _ => print(">40") же :D
[18:53:57] <uggur> "| <- это тебе не хачкель блеать" смотри внимательнее на первую строку.
[18:54:21] <O01eg> это теперь реалтайм?
[18:54:34] <uggur> Это из интерпретатора же
[18:54:42] <kosc> Мултилайн в консольке такой?
[18:54:44] <kosc> Стрёмный.
[18:54:48] <uggur> Да
[18:54:58] <kosc> uggur: а как ты repl для scala запускаешь?
[18:55:02] <kosc> через sbt?
[18:55:03] <uggur> scala
[18:55:06] <kosc> А
[18:55:10] <kosc> Так эт конпелять надо.
[18:55:19] <uggur> Не scalac, а scala...
[18:55:45] gsomix зашёл в конференцию
[18:55:50] <O01eg> Не, я про асинхронный движок
[18:56:42] rexim вышел из конференции
[18:58:45] govardhan вышел из конференции
[19:21:23] <ForNeVeR> Можно sbt console.
[19:21:30] <ForNeVeR> O01eg: что, где, какой реалтайм?
[19:21:55] <ForNeVeR> Асинхронный - значит, что ходы асинхронно доставляет. Он всё равно пошаговый.
[19:25:52] <kosc> ForNeVeR: спс, попробую
[19:29:09] <uggur> ForNeVeR: MoveAction(this, 0, 0) завешивает метод. Так и надо?
[19:29:38] <ForNeVeR> MoveAction(this, 0, 0) не выглядит валидно.
[19:29:46] <uggur> ОК :)
[19:29:50] <ForNeVeR> Но и завешивать ничего не должно.
[19:30:27] <O01eg> кстати, нампад не работает для диагональных ходов
[19:30:34] <ForNeVeR> O01eg: работает.
[19:30:43] <uggur> Работает у меня
[19:30:47] <ForNeVeR> Просто надо NumLock включить.
[19:30:55] <ForNeVeR> Это так работает во всех рогаликах.
[19:31:07] <uggur> ForNeVeR: У меня завешивает когда я в акторе делаю.
[19:31:17] <ForNeVeR> O01eg: если у тебя всё равно не работает - гм, давай разбираться с твоим окружением.
[19:31:21] <O01eg> если влючить, то вообще не работает
[19:31:32] <O01eg> кстати, а логи куда-то выводятся?
[19:31:35] <Orhideous> Так. Глядите, особенно Нью.
[19:31:38] <Orhideous> https://code.google.com/p/prosody-modules/wiki/mod_carbons
[19:31:47] <ForNeVeR> O01eg: логи - в браузерной консоли, но я не логгировал туда нажатия клавиш
[19:31:50] <Orhideous> Поставить это, и скайп нинужен
[19:32:28] <ɹǝɟılʍǝu> Orhideous, суть вкратце?
[19:32:33] Graf зашёл в конференцию
[19:32:33] Graf вышел из конференции
[19:32:42] <Orhideous> Синхронизация истории жаббер
[19:32:51] <Orhideous> Как в скайпе
[19:32:53] <ɹǝɟılʍǝu> А, ну хорошо.
[19:32:55] <ɹǝɟılʍǝu> Но!
[19:33:01] <Orhideous> Но?
[19:33:04] <ɹǝɟılʍǝu> Это ещё не замена скайпу)
[19:33:07] <ForNeVeR> uggur: угу, есть такое.
[19:33:12] <Orhideous> :-)
[19:33:26] <ɹǝɟılʍǝu> Точнее, тут тока текст.
[19:33:30] <ɹǝɟılʍǝu> А вот Tox...
[19:33:37] <O01eg> в опере включенный нампад не работает
[19:33:48] <O01eg> а в файрфоске сбивается на поиск
[19:34:32] <ForNeVeR> И правда, в FF не работает.
[19:35:07] <ForNeVeR> А, нет, я же залоченную версию запустил.
[19:35:19] <ForNeVeR> O01eg: ты у меня берёшь версию или локально развернул?
[19:35:25] <O01eg> с гита
[19:35:29] <ForNeVeR> А.
[19:35:30] <kosc> uggur: А чо у меня вот это не пашет?
scala> def generate(){
| for (i <- 1 to 10) {
| vec :+ i+3
| }
| }
[19:35:36] <ForNeVeR> O01eg: проверим, починим.
[19:35:37] <kosc> (vec обьявлен раньше)
[19:35:38] <O01eg> о, в ff заработал
[19:35:51] <kosc> Как var vec:Vector[Int] = null
[19:35:52] <O01eg> отключил поиск по мере набора
[19:35:53] <kosc> А
[19:35:57] <kosc> Immutable же
[19:36:14] <ForNeVeR> vec :+ i+3 ничего не меняет ._.
[19:36:24] madmercen вышел из конференции
[19:37:28] <ForNeVeR> uggur: а, я понял.
[19:37:39] <kosc> Сё равно не пашет
[19:37:40] <ForNeVeR> uggur: он считает, что такой ход занимает нулевое время.
[19:37:44] rafaelrs вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable
[19:37:44] <kosc> Падает
[19:37:50] <uggur> Алсо, а vec :+ i+3 == (vec :+ i) + 3 ?
[19:37:52] <kosc> Сделал vec = vec :+ i+3
[19:37:52] <ForNeVeR> kosc: а какого поведения ты ожидаешь?
[19:37:55] Orhideous вышел из конференции: Disconnected: Replaced by new connection
[19:37:56] Orhideous зашёл в конференцию
[19:38:08] <kosc> ForNeVeR: заполнить vec цифирками
[19:38:14] <ForNeVeR> kosc: у тебя изначально vec == null.
[19:38:21] <ForNeVeR> Вот тебе и эксепшон.
[19:38:42] <kosc> ForNeVeR: а null переопределить нельзя через присваивание что ли?
[19:39:05] <ForNeVeR> kosc: можно.
[19:39:16] <ForNeVeR> kosc: но у null нельзя вызвать метод :+
[19:39:18] <kosc> vec = vec :+ 3 нипашет
[19:39:20] <kosc> А
[19:39:24] <kosc> И чо делать?
[19:39:38] <ForNeVeR> По умолчанию класть не null, а пустую коллекцию.
[19:39:57] <ForNeVeR> Я вообще не рекомендую в коде использовать null нигде, кроме проверок на границе с чужим кодом.
[19:40:28] Myp вышел из конференции
[19:40:54] <kosc> >проверок на границе
[19:40:59] <kosc> Паспортный контроль, лол
[19:42:18] <ForNeVeR> Да, в Кетере у меня нулл только в одном месте применяется - document.onkeydown = null.
[19:42:38] <ForNeVeR> Да и там это перестраховка, к тому ж я не могу больше ничего использовать с жабаскриптовым кодом. Так что ок :3
[19:44:21] <ɹǝɟılʍǝu> :3
[19:44:31] <ɹǝɟılʍǝu> Форневерик такой няшка. (@)
[19:44:57] <uggur> А зачем ты написал после своей фразы собаку?
[19:45:12] <ɹǝɟılʍǝu> У меня это смайл
[19:45:28] <ForNeVeR> uggur: это не собака, а Dr. Növer.
[19:45:30] <ɹǝɟılʍǝu> Аналогичныйтакому :3
[19:45:35] <kosc> [error] Console.println(s"$menu")
Чонетак-то?
[19:45:46] <ForNeVeR> Что за Console?
[19:45:53] <ForNeVeR> Впервые вижу такой объект.
[19:46:15] <ForNeVeR> kosc: юзай просто println(s"$menu")
[19:46:21] <kosc> Ок
[19:46:39] <O01eg> кстати, npc проходим?
[19:48:36] <ForNeVeR> O01eg: пока что да.
[19:48:41] <ForNeVeR> А вообще - надо чинить.
[19:49:01] <ɹǝɟılʍǝu> Вам с сюжетом помощь нужна?
[19:49:12] Orhideous вышел из конференции
[19:49:22] <ForNeVeR> Ну, я пока что проблем с сюжетом не вижу.
[19:49:34] <ForNeVeR> Потому что меня окружает гора других проблем.
[19:49:39] <ɹǝɟılʍǝu> Хех)
[19:49:56] <uggur> Сюжет: Dr. Növer оказывается в комнате 5 на 5 с монстрами %)
[19:50:06] <ɹǝɟılʍǝu> http://alexshatohin.deviantart.com/art/Copper-343781207
[19:50:11] <ForNeVeR> Пока что с одним, безвредным SCP.
[19:50:29] <uggur> Я ещё двоих добавить могу
[19:50:39] <ForNeVeR> Зачем?
[19:50:53] <ForNeVeR> Дело уже к вечеру, а мы этого ещё не научились убивать ~_~
[19:50:55] <ɹǝɟılʍǝu> У меня не ходит
[19:51:14] rexim зашёл в конференцию
[19:51:16] <ForNeVeR> ɹǝɟılʍǝu: как ты ходишь и браузер какой?
[19:51:19] <ForNeVeR> А, там сломано, да.
[19:51:25] <ForNeVeR> Это нормально :3
[19:51:28] <ɹǝɟılʍǝu> ForNeVeR, последняя жопера
[19:51:36] <ɹǝɟılʍǝu> ок)
[19:51:40] <ɹǝɟılʍǝu> rexim, mixer!
[19:51:41] <ForNeVeR> ɹǝɟılʍǝu: ты ж на моём хосте тестишь?
[19:51:46] <ɹǝɟılʍǝu> ForNeVeR, да.
[19:51:46] <kosc> [error] /home/kosc/tmp/scala/HelloWorld.scala:33: illegal start of declaration (possible cause: missing `=' in front of current method body)
[error] println(s"$menu")
Чоза грибы надо схавать, что бы понять, чего оно от меня хочет?
[19:51:57] <rexim> ɹǝɟılʍǝu, ?
[19:51:58] <ForNeVeR> kosc: покажи код.
[19:52:06] <ForNeVeR> ɹǝɟılʍǝu: там сломано, я щас починю.
[19:52:14] <ɹǝɟılʍǝu> rexim, !
[19:52:22] <kosc> http://paste.pztrn.name/1158/
[19:52:27] <ForNeVeR> ɹǝɟılʍǝu: починено.
[19:53:23] <ForNeVeR> Ну, в общем, ребят, у меня во всех браузерах работает, которые я смог проверить.
[19:53:30] <ForNeVeR> O01eg: в каком у тебя были проблемы?
[19:53:40] <kosc> ForNeVeR: чонетак у меня?
[19:53:51] <kosc> Ну то есть, всё не так, но уже лучше же.
[19:53:59] <ForNeVeR> kosc: def showMenu():Int {
[19:54:02] <ForNeVeR> Вот тут надо =
[19:54:07] <kosc> А
[19:54:08] <kosc> Ок
[19:54:15] rexim вышел из конференции
[19:54:19] <ForNeVeR> def showMenu():Int = {
[19:54:19] <O01eg> ForNeVeR: в опере не работает нампад
[19:54:25] <ForNeVeR> O01eg: в какой версии?
[19:54:29] <O01eg> ff всё нормально
[19:54:33] rexim зашёл в конференцию
[19:54:40] <kosc> А эт я такой тупой, или просто у Scala высокий порог вхождения?
[19:54:47] <ForNeVeR> kosc: высокий.
[19:54:54] <kosc> Утешает
[19:54:58] <O01eg> 12.16
[19:55:00] <ForNeVeR> O01eg: я на венде щас проверил новую оперу - всё работает.
[19:55:12] <rexim> Разве?
[19:55:13] <ForNeVeR> Не, 12 мы не будем поддерживать. Без обид, но это какая-то седая древность.
[19:55:13] <O01eg> а, у меня старая, даже не нехт
[19:55:26] <rexim> Хм...
[19:55:32] <rexim> .ping
[19:55:33] <DeadBot> rexim: понг от тебя 0.16 секунды
[19:55:33] <rexim> .ping
[19:55:35] <DeadBot> rexim: понг от тебя 0.15 секунды
[19:55:35] <rexim> .ping
[19:55:36] <DeadBot> rexim: понг от тебя 0.15 секунды
[19:55:48] <ForNeVeR> Ну или если вы найдёте энтузиаста, который запилит поддержку - я не против.
[19:55:53] <ɹǝɟılʍǝu> лол
[19:56:01] <ɹǝɟılʍǝu> забавно двигать туда-сюда в SCP
[19:56:09] <ɹǝɟılʍǝu> Когда SCP забеременнеет?
[19:56:10] <ForNeVeR> Сам я готов поддержать стандартно по две версии всех основных браузеров.
[19:56:22] <ForNeVeR> ɹǝɟılʍǝu: wat
[19:56:24] <ForNeVeR> WAT
[19:56:27] <rexim> ._.
[19:56:30] <ɹǝɟılʍǝu> лол
[19:56:40] <ForNeVeR> Посмотрите-ка на этого любителя процедуры 210-Монтаук.
[19:57:11] <ForNeVeR> Или... лол, я забыл.
[19:57:22] <ForNeVeR> А, 110-Монтаук.
[19:57:29] <rexim> Совсем старый стал... =\
[19:58:12] <rexim> .ping
[19:58:12] <DeadBot> rexim: понг от тебя 0.15 секунды
[19:58:14] <rexim> .ping
[19:58:14] <DeadBot> rexim: понг от тебя 0.15 секунды
[19:58:15] <rexim> .ping
[19:58:15] <DeadBot> rexim: понг от тебя 0.15 секунды
[19:58:19] <rexim> Херасе.
[19:58:22] <kosc> .ping
[19:58:22] <DeadBot> kosc: понг от тебя 0.09 секунды
[19:58:29] <kosc> rexim: лах!
[19:58:34] <kosc> И петкоинов у меня больше
[19:58:40] <rexim> kosc, Аллах!
[19:59:02] <rexim> kosc, АЛЛАХ БАБАХ!!1
[19:59:26] <uggur> ForNeVeR: А как идентифицировать игрока?
[19:59:36] <uggur> В state.map.objects
[19:59:48] <kosc> $pet rating
[19:59:50] <horta hell> kosc:
ɹ…: 41PTC
kosc: 6PTC
zxc: 4PTC
g…: 2PTC
Myp: 2PTC
m…: 1PTC
Minoru: 1PTC
F…: 1PTC
[19:59:53] <ForNeVeR> uggur: у него тип Player. Но давай что-нибудь полущ прикрутим.
[20:00:02] <kosc> rexim: тадааам
[20:00:08] <ForNeVeR> Вообще, я хотел какую-то зачаточную дипломатию.
[20:00:09] <uggur> лол
[20:00:14] <uggur> Ты бы видел что я сделал
[20:00:17] <ForNeVeR> Чтобы каждый актор хотяб "свой-чужой" опознавал.
[20:00:22] <uggur> Проверил на равенство с @ XD
[20:00:30] <ForNeVeR> Лал.
[20:00:49] <ForNeVeR> Ты б ещё имя проверил на равенство с Dr. Növer/
[20:00:54] rexim вышел из конференции
[20:01:06] <ForNeVeR> (кстати, имя, разумеется, мы будем делать конфигурируемым)
[20:01:09] <uggur> Да! 8D
[20:05:46] <kosc> http://paste.pztrn.name/1159/
Кароч, оно теперь на 100% работает, но при выходе через ввод 0 выдаёт эксепшен (и выходит xD):
Exception: sbt.TrapExitSecurityException thrown from the UncaughtExceptionHandler in thread "run-main-0"
[20:06:28] <ForNeVeR> kosc: как ты его запускаешь?
[20:06:44] <kosc> ForNeVeR: sbt run
[20:07:45] <ForNeVeR> kosc: если ты явно вызываешь Application.exit, это печалит sbt.
[20:07:55] <ForNeVeR> Попробуй чтоле не делать так :D
[20:08:00] <O01eg> но так не запускается, вроде
[20:08:12] <kosc> ForNeVeR: а как правильно?
[20:08:20] <ForNeVeR> kosc: return 0
[20:08:24] <kosc> Точн
[20:08:52] <kosc> Сделал
[20:09:09] <kosc> ForNeVeR: а теперь реквестирую стилистические и какие-нибудь ещё замечания по коду.
[20:09:29] <ForNeVeR> 5. Summ
[20:10:05] <kosc> [warn] /home/kosc/tmp/scala/HelloWorld.scala:24: a pure expression does nothing in statement position; you may be omitting necessary parentheses
[warn] case 0 => return 0
[warn] ^
[warn] /home/kosc/tmp/scala/HelloWorld.scala:24: enclosing method main has result type Unit: return value discarded
[warn] case 0 => return 0
[warn] ^
[warn] two warnings found
[20:10:07] <uggur> ForNeVeR: Так что, мне оставить проверку на "@"? %)
[20:10:15] <kosc> С return 0 вместо System.exit(0)
[20:10:32] <ForNeVeR> kosc: а, ну сделай результат Int.
[20:10:38] <ForNeVeR> uggur: нет, проверяй тип.
[20:10:56] <kosc> Точн
[20:16:48] rexim зашёл в конференцию
[20:23:15] <kosc> Добавил Int, сломался while xD
[20:23:26] <kosc> ForNeVeR: почему сломался while?
[20:23:34] <kosc> [error] /home/kosc/tmp/scala/HelloWorld.scala:21: type mismatch;
[error] found : Unit
[error] required: Int
[error] while (true) {
[error] ^
[error] one error found
[error] (compile:compile) Compilation failed
[error] Total time: 12 s, completed Aug 31, 2014 4:10:34 PM
[20:23:41] <ForNeVeR> Теперь все ветки должны вернуть Int.
[20:24:01] <kosc> Точн
[20:24:12] <kosc> Но если что-то вернётся...
[20:24:17] <ForNeVeR> А я тут попытался реализовать оружие и хитпоинты и столкнулся с проблемами проектирования.
[20:24:17] <kosc> Но оно сразу закроется.
[20:24:27] <rexim> kosc, как-будто на хаскеле не программировал, ей-богу.
[20:24:27] <kosc> А мне не надо так..
[20:24:39] <kosc> rexim: чутка баловался
[20:24:41] <uggur> ForNeVeR: Какими?
[20:24:46] <kosc> А так, что бы серьёзно - не.
[20:24:51] <ForNeVeR> uggur: case-классы нельзя наследовать друг от друга.
[20:24:58] <uggur> А, ну да
[20:25:06] <uggur> А зачем тебе?
[20:25:08] <ForNeVeR> Т.е. с иммутабельной структурой я не могу нормально юзать actor.copy
[20:25:22] <kosc> Ну блин
[20:25:28] <kosc> Такая элементарная задача
[20:25:35] <kosc> По типу универской лабы
[20:25:40] <kosc> И столько секаса с ней
[20:25:44] <ForNeVeR> kosc: покажи код.
[20:25:48] <uggur> ForNeVeR: WaitAction(this.asInstanceOf[Actor]) // unchecked cast!
[20:25:56] <uggur> Я с помощью трейта пытаюсь решить.
[20:25:57] <kosc> ForNeVeR: http://paste.pztrn.name/1160/
[20:26:01] <uggur> Или лучше абстрактным классом?
[20:26:18] <uggur> Суть: мне нужно поменять всего одну константу х)
[20:26:18] <ForNeVeR> kosc: ну, println(vec) не возвращает int.
[20:26:23] <ForNeVeR> Как же без этого?
[20:26:35] <kosc> Ну как бы
[20:26:37] <ForNeVeR> uggur: this.asInstanceOf[Actor] это бессмыслица какая-то.
[20:26:43] <uggur> Почему?
[20:26:47] <kosc> ForNeVeR: если я сделаю return, то прога закроется.
[20:26:47] <uggur> Там будет Actor
[20:26:50] <kosc> А я не хочу так.
[20:26:57] <ForNeVeR> Но ведь он и так знает, что this - это Actor.
[20:26:59] <uggur> Или это не так нужно реализовывать?
[20:27:05] <uggur> Неа, трейт же
[20:27:10] <uggur> У меня в трейте логика %)
[20:27:15] <ForNeVeR> Наследуй трейт от актора.
[20:27:32] <kosc> ForNeVeR: и чо мне делать, что б прога не закрылась? %)
[20:27:34] <ForNeVeR> kosc: дак а как ты хочешь-то?
[20:27:35] <uggur> Не даёт
[20:27:47] <kosc> ForNeVeR: меню в бесконечном цикле.
[20:27:56] <kosc> Выхода не должно быть, пока юзер не ввёл 0
[20:27:58] <rexim> Ололо, Форневера облепили со всех сторон. :D
[20:28:02] <uggur> trait StupidMover extends Actor(name, tile)
[20:28:26] <kosc> Набигаем
[20:28:42] <uggur> Или нужно без параметров?
[20:29:11] <uggur> Ладно, разберусь. Спасибо за идею %)
[20:29:54] <ForNeVeR> Да ну вас, я пошёл читать про case inheritance.
[20:30:10] <kosc> Эх
[20:31:20] <rexim> ForNeVeR, :3
[20:31:51] <uggur> ForNeVeR популярный :D
[20:35:35] <ForNeVeR> Кароч, в родительском классе должен быть метод для копирования дочерних, но с изменениями.
[20:35:43] <ForNeVeR> Как это сделоть? о.О
[20:35:49] <ForNeVeR> Это что, линза?
[20:37:16] <uggur> wut?
[20:37:27] <uggur> Разбей на две части
[20:37:37] <uggur> Изменяемую часть отдельно вынеси и сделай абстрактной
[20:37:40] <ForNeVeR> uggur: я хочу
a: Actor
b = a.copy(health = 10)
[20:38:08] <ForNeVeR> С учётом того, что у актора могут быть наследники.
[20:49:46] <ForNeVeR> Короче, надо перепиливать на мутабельность.
[20:50:06] <O01eg> зачем?
[20:50:13] SolarRay зашёл в конференцию
[20:50:43] <O01eg> деревья копировать?
[20:52:17] matrasskin зашёл в конференцию
[20:52:36] necroheaven зашёл в конференцию
[21:00:49] <ForNeVeR> O01eg: да, что-то в этом роде.
[21:01:04] <O01eg> А там GC разве нет?
[21:01:18] <O01eg> чтобы просто ссылки оставлять
[21:02:53] <ForNeVeR> O01eg: что значит "ссылки оставлять"?
[21:03:39] <ForNeVeR> Алсо, в JS, как и в JVM, есть нормальный GC.
[21:04:06] <O01eg> Ну, у тебя есть объект A в котором есть дочерние элементы a1, a2. Ты хочешь получить его копию A', где будут копии a1' и a2'?
[21:04:28] <ForNeVeR> O01eg: допустим, да.
[21:04:39] <ForNeVeR> Только не совсем так. Так я могу.
[21:05:00] <ForNeVeR> У меня есть класс Base, у которого есть наследники D1 и D2.
[21:05:07] <ForNeVeR> В классе Base есть свойство x.
[21:05:35] necroheaven вышел из конференции
[21:05:37] <ForNeVeR> В D1 и в D2 есть методы copy(newX), которые заменяют свойство x и возвращают копию своего объекта.
[21:05:48] a1batross вышел из конференции: Disconnected: closed
[21:06:19] <ForNeVeR> У меня в руках инстанс типа B (я не знаю, какого именно подкласса). Я хочу получить его копию с заменённым x.
[21:06:32] <ForNeVeR> Кажется, это никак не сделать ._.
[21:07:05] <ForNeVeR> Так что я хочу сделать B, D1 и D2 мутабельными.
[21:07:05] <O01eg> перегрузкой?
[21:07:09] necroheaven зашёл в конференцию
[21:07:14] <ForNeVeR> O01eg: что перегружать?
[21:07:24] <O01eg> copy(newX) у B
[21:07:35] <ForNeVeR> И что этот метод должен делать?
[21:08:00] <O01eg> дернуть у наследника по таблице его copy(newX)
[21:08:05] <ForNeVeR> На самом деле у меня нету copy(newX) у D1 и D2. Есть D1.copy(newX, newY) и D2.copy(newX, newZ)
[21:08:35] <ForNeVeR> (эти методы мне нагенерил компилятор, а в Base он этого сделать не может, да)
[21:09:36] <O01eg> потому что в Base нет X,Y,Z?
[21:09:39] <ForNeVeR> Да.
[21:09:47] <ForNeVeR> В Base есть только X.
[21:10:15] <ForNeVeR> Возможно, мы сможем что-то сообразить, если сделаем расширяемую систему трейтов для объектов.
[21:10:46] <ForNeVeR> В общем-то, объекты в рантайме могут затрансформироваться и временно или постоянно поменять свои свойства.
[21:10:53] <ForNeVeR> Важно красиво заимплементить это.
[21:11:43] <ForNeVeR> Я видел, как в коде Dungeon Crawl обрабатываются такие трансформации. Там половина логики выглядит так:
if (SpiderForm) { x }
else if (ShadowForm) { y }
else { z } // 90% случаев обрабатывается здесь
[21:12:10] <ForNeVeR> И любой, кто добавляет новую "форму" для персонажа, вынужден переписывать весь этот говнокод.
[21:13:21] <O01eg> Т.е. надо скопировать D?{Base,X},Y/Z в D?{Base,newX},Y/Z
[21:13:32] <ForNeVeR> Да.
[21:14:13] <O01eg> хм, разве что действительно явное определение copy(newX) в Base и наследниках
[21:15:34] <ForNeVeR> Да, это решение, но много бойлерплейта будет.
[21:15:51] <ForNeVeR> Я пока что не вижу в нашем случае конкретных применений для иммутабельности.
[21:16:05] <uggur> ForNeVeR: Добавил двух ботов: https://github.com/codingteam/Keter/pull/6
[21:17:11] <ForNeVeR> uggur: > case class RandomBot
Мне реально кажется, что это лучше сделать трейтом.
[21:17:40] <uggur> Случайно бродящий бот как трейт?
[21:17:50] <uggur> Тогда уж абстрактным классом, а не трейтом %)
[21:17:56] <uggur> Как ты в трейте будешь делать актора?
[21:18:03] <ForNeVeR> uggur: случайно бродящим может быть и BeastActor, и HumanActor, и RobotActor.
[21:18:26] <uggur> Или ты предлагаешь только поведение реализовывать, а всё остальное -- нет?
[21:18:34] <ForNeVeR> Ну ладно, давай я попробую порефачить.
[21:26:00] <ForNeVeR> uggur: перепилил в трейты и заюзал в NPC.
[21:28:14] <ForNeVeR> Ну а вот со стратегиями у нас тот же вопрос.
[21:28:17] v_oron вышел из конференции
[21:28:24] <ForNeVeR> В рантайме существо может менять свою модель поведения.
[21:29:15] <ForNeVeR> Ну это, впрочем, меньшая проблема. Можно заюзать behavior pattern и будет норм
[21:30:22] <ForNeVeR> Ладно, я всё-таки откажусь от иммутабельности пока что.
[21:30:31] <ForNeVeR> Мутабельность предоставляет нам больший оперативный простор.
[21:30:43] <ForNeVeR> А это важно для проекта - особенно на старте.
[21:30:50] <ForNeVeR> necroheaven <- допросите этого чувака.
[21:31:03] <ForNeVeR> rexim: лейтенант, пройдите в помещение для допросов, пожалуйста.
[21:31:29] <uggur> С пристрастием? D:
[21:31:35] <ForNeVeR> Нет, пока рано.
[21:32:22] <uggur> Ну ОК, когда^Wесли надумаешь -- позови, я привык по уши в кровиwе и дерьмиwе быть по долгу службы.
[21:32:41] <ForNeVeR> Эх, ну чо ж у меня не такая служба, а?
[21:32:52] <ForNeVeR> Я всё-то по железякам.
[21:33:39] Orhideous зашёл в конференцию
[21:33:43] <uggur> Хех, у тебя и стресса много
[21:34:06] <rexim> ForNeVeR, што?
[21:34:06] <uggur> Не то что мне: освежевал живьём пару мышек -- и полегчало на душе =^.^=
[21:34:15] <uggur> А может и не мышек >)
[21:34:24] <ForNeVeR> Хотя подождите. А какой функциональный способ решения моей проблемы с иммутабельностью?
[21:34:32] <rexim> А
[21:34:34] <ForNeVeR> Вот если б мы в хаскеле делали этих акторов - как бы мы поступили?
[21:34:38] <rexim> .whois necroheaven
[21:34:39] <Orhideous> Так, пока в дороге, накатал вступительную статью.
[21:34:40] <DeadBot> rexim: none/participant
away( (Автостатус 'Отошел' по причине бездействия более 5 мин))
зашел в конфу 31.08.14 21:07:09
уровень доступа: 2
[21:34:47] <Orhideous> Приеду, запощу.
[21:34:54] <ForNeVeR> Orhideous: какую статью?
[21:35:23] <rexim> ForNeVeR, допрашиваемый в бессознательном состоянии на данный момент. Требуется подождать некоторое время.
[21:35:28] <Orhideous> Предисловие к циклу о Flask
[21:35:40] <ForNeVeR> rexim: помоги мне тогда.
[21:35:50] <uggur> ...убрать тело %)
[21:35:50] <rexim> Чем?
[21:36:06] <uggur> Orhideous: Это на питоне для вэба?
[21:36:20] <Orhideous> uggur: да
[21:36:26] <ForNeVeR> rexim: я планирую структуру классов для персонажей и объектов в нашей системе.
[21:36:36] <ForNeVeR> А получается почему-то говно :(
[21:36:41] <uggur> Orhideous: Круть, держи меня в курсе. Знакомый админ-сетевик очень советовал посмотреть хоть одним глазком.
[21:37:41] <rexim> ForNeVeR, у меня так очень часто бывает, когда я не знаю, что мне нужно.
[21:37:56] <ForNeVeR> rexim: вот смотри с самого начала. Сейчас локация - это
- двумерный массив тайлов
- мап вида (объект -> координаты)
[21:38:17] <Orhideous> uggur: оооки.
[21:38:19] <ForNeVeR> Объект - это иерархия из
GameObject -> Actor -> {Player, NPC}
[21:38:43] <rexim> Кажется, не туда стрелочку.
[21:38:46] <rexim> Ну да ладно.
[21:38:50] <ForNeVeR> Ну ты же понел.
[21:38:53] <rexim> Да
[21:38:57] <ForNeVeR> Мне такая система не нравится.
[21:39:08] <ForNeVeR> Она неправильная в корне.
[21:39:12] <rexim> Почему?
[21:39:15] <ForNeVeR> Надо сделать нормальную, пока не поздно.
[21:39:43] <rexim> "Мне не нравится" - не аргумент в пользу неправильности системы.
[21:39:47] <rexim> Обоснуй нормально.
[21:39:50] <ForNeVeR> rexim: начнём с того, что любые свойства актора и GameObject'а нельзя поменять или клонировать их наследников, имея на руках объект.
[21:40:00] <ForNeVeR> Т.к. это не case-классы.
[21:40:57] <ForNeVeR> rexim: далее. Player и NPC - это лишь один аспект объекта. Почему мы разделили классы именно по нему? Игрок не может временно управлять каким-нибудь NPC? А когда у нас появятся летающие, плавающие и ползающие игроки - мы сделаем для каждого отдельный класс?
[21:41:06] <ForNeVeR> FlyingPlayerWithShotGunClass
[21:41:13] <ForNeVeR> Звучит не очень-то хорошо.
[21:41:16] <rexim> Миксины?
[21:41:21] <ForNeVeR> И непонятно, как в рантайме это переключать.
[21:41:31] <ForNeVeR> rexim: увы, миксины тоже слишком статичны.
[21:42:16] <ForNeVeR> rexim: я уже показал, что если модель поведения актора вынести в трейт (а мы щас для ботов так сделали) - то её нельзя потом поменять в рантайме. А она *должна* меняться, если NPC нашёл новое оружие или напуган, например.
[21:42:39] <ForNeVeR> Мы можем сделать толстые, не подменяемые трейты, но тогда какой смысл вообще?
[21:42:51] <ForNeVeR> rexim: я, кажется, начинаю понимать, как нужно сделать.
[21:42:56] <rexim> У тебя же есть функции высших порядков.
[21:43:06] <rexim> Пусть функция описывается поведение.
[21:43:12] <rexim> Ее же не сложно в рантайме менять?
[21:43:26] <ForNeVeR> В ООП-мире это реализуется темплейтом "стратегия".
[21:43:37] <rexim> Кстати, да.
[21:43:39] <ForNeVeR> Необязательно функцию, можно и целый объект вложенный хранить.
[21:43:52] <ForNeVeR> Персонаж должен состоять из нескольких трейтов и подобъектов, короче.
[21:44:13] rexim сменил ник на Speaking Rubber Duck
[21:44:19] <ɹǝɟılʍǝu> DUCK!
[21:44:25] <Speaking Rubber Duck> ForNeVeR, это решает твои проблемы?
[21:44:39] <uggur> http://media-cache-ak0.pinimg.com/736x/15/bc/0e/15bc0eb51076d3f605c5b30d0ab31270.jpg
[21:44:47] <ɹǝɟılʍǝu> XD
[21:45:05] <Speaking Rubber Duck> ( ͡° ͜ʖ ͡°)
[21:45:11] <ForNeVeR> У актора должны быть такие слоты:
- поведение (управляемый игроком или модели поведения NPC)
- общие параметры (хелсы? состояние живой / мёртвый? навыки из не реализованной ещё системы?)
- активное снаряжение
[21:45:45] <ForNeVeR> Что существенно - слот с общими параметрами, который всем так нужен, должен быть кейс-классом, то есть не расширяемым для любых видов акторов.
[21:46:06] <ForNeVeR> Т.о. любой может взять актора и поменять ему health, например.
[21:46:13] <ForNeVeR> Без всякой возни с наследованием.
[21:46:26] <ForNeVeR> А я могу взять и передать игроку в управление какого-нибудь монстрюшку.
[21:46:36] <ForNeVeR> Да.
[21:46:43] <ForNeVeR> Мухахахах!
[21:46:46] <Speaking Rubber Duck> :3
[21:46:48] <uggur> Тогда нет разницы между монстром и игроком
[21:46:50] <ForNeVeR> Speaking Rubber Duck: спасибо, миксер, ты мне помог.
[21:46:50] <uggur> %)
[21:46:55] <ForNeVeR> uggur: а её и не должно быть.
[21:47:07] <ForNeVeR> uggur: разница - лишь в объекте, который управляет поведением актора.
[21:47:15] <Speaking Rubber Duck> Моя миссия выполнена!
[21:47:16] Speaking Rubber Duck сменил ник на rexim
[21:47:33] <uggur> Д-р ForNeVeR пересаживает мозги в рантайме (%
[21:48:24] <ɹǝɟılʍǝu> Блин
[21:48:27] <ForNeVeR> И не видит в этом ничего плохого.
[21:48:38] <ɹǝɟılʍǝu> Там бы ещё всё оформить пиксель-артом...
[21:48:39] <ForNeVeR> Мы можем сделать 682-го, который думает, что он - бабочка.
[21:48:56] <ForNeVeR> (но нет, мы не будем делать 682-го)
[21:49:01] <uggur> ɹǝɟılʍǝu: Тайлы поддерживаются.
[21:49:07] <ɹǝɟılʍǝu> uggur, я знаю :)
[21:49:21] <ɹǝɟılʍǝu> Их ещё рисовать)
[21:49:26] <ɹǝɟılʍǝu> Хочется в свей рисовалке.
[21:49:30] <ɹǝɟılʍǝu> Будет символично!
[21:49:31] <uggur> Это что, так сложно?
[21:49:32] <ForNeVeR> Я боюсь, как бы нам не пришлось композировать тайлы в рантайме.
[21:49:35] <uggur> Берёшь и трейсишь.
[21:49:44] <ɹǝɟılʍǝu> О_о
[21:49:47] <uggur> ɹǝɟılʍǝu: Вряд ли твой подойдёт.
[21:49:49] <ForNeVeR> Ведь нужно всякое там снаряжение на тайлах рисовать.
[21:49:53] <ɹǝɟılʍǝu> Этот человек открыл мне глаза!
[21:50:09] <ɹǝɟılʍǝu> Пиксель-арт, оказывается, это самое простое занятие в мире!.
[21:50:10] <ɹǝɟılʍǝu> X)
[21:50:39] <uggur> Ну уж рундук какой-нибудь ты нарисовать сумеешь? х)
[21:50:50] <ForNeVeR> uggur: нет, рисовать - это не очень просто. Нужно иметь определённые навыки. Ну и пиксель-арт - это, гм, сложнее, чем кажется.
[21:50:51] <ɹǝɟılʍǝu> uggur, сундуки я рисовал
[21:50:55] <uggur> Или плитку?
[21:51:05] <ForNeVeR> О, а давайте сделаем игру про сундуки?
[21:51:10] <ɹǝɟılʍǝu> Лул)
[21:51:29] ForNeVeR сменил ник на Бог Сундуков
[21:51:37] <Бог Сундуков> ɹǝɟılʍǝu: приготовил ли ты подношение, смертный?
[21:51:43] <Бог Сундуков> ɹǝɟılʍǝu: нужно больше сундуков!
[21:51:45] <ɹǝɟılʍǝu> Бог Сундуков, Lf
[21:51:47] <ɹǝɟılʍǝu> Да.
[21:51:52] <uggur> http://youtu.be/vMQtTmOefew
[21:51:59] <ɹǝɟılʍǝu> Правда, тот сундучок не пиксель-артный был)
[21:52:03] <ɹǝɟılʍǝu> Но тоже для игоры
[21:52:10] <rexim> Плять!
[21:52:15] <uggur> Просто в игре 90% -- это даже не анимированные персонажи (:
[21:52:22] <ɹǝɟılʍǝu> http://unit-35.deviantart.com/art/Basic-isometric-tile-set-192902250
[21:52:23] <rexim> Мне на работе каждый день Дарк Соулсом соблазняют!
[21:52:25] <rexim> Еще и вы тут!
[21:52:34] <ɹǝɟılʍǝu> rexim, я вот смотрю прохождение)
[21:52:38] <uggur> :D
[21:52:39] <rexim> >_<
[21:52:49] <ɹǝɟılʍǝu> Возьму с собой геймпад и буду ночами рубицца
[21:52:54] <ɹǝɟılʍǝu> Потом тимлида перетяну
[21:53:14] <uggur> А потом вас обоих выгонят :D
[21:53:33] <rexim> ɹǝɟılʍǝu, я же рассказывал, как у меня на прошлой работе тимлид всех на доту подсадил?
[21:53:38] <rexim> Да, кажется, рассказывал.
[21:53:45] <uggur> Алсо, вот если бы кто и играл, так это m4n71k0r, но он презирает игрушки.
[21:53:45] <ɹǝɟılʍǝu> rexim, лол))
[21:53:59] <ɹǝɟılʍǝu> Он?)
[21:54:02] <ɹǝɟılʍǝu> Презирает?
[21:54:07] <rexim> Шта?
[21:54:12] <m4n71k0r> бгг
[21:54:14] <uggur> (:
[21:54:17] <rexim> Да он там в какую-то теру рубится.
[21:54:24] <m4n71k0r> уже нет
[21:54:26] <uggur> Не вижу противоречий.
[21:54:31] <rexim> А теперь во что?
[21:54:35] <ɹǝɟılʍǝu> Го к нам в WoW в гильду?
[21:54:43] <m4n71k0r> я и так в трёх гильдах
[21:54:49] <ɹǝɟılʍǝu> Ох... ок. :)
[21:54:54] <m4n71k0r> на разных серваках
[21:55:05] <uggur> А codingteam можно считать гильдией?
[21:55:15] <ɹǝɟılʍǝu> Ну.... отчего нет?
[21:55:17] <m4n71k0r> а теперь играю в близардовскую карточную эту… как её
[21:55:26] <rexim> Игру?
[21:55:30] <ɹǝɟılʍǝu> Квесты прокачивают цодингтим? Вроде да.
[21:55:36] <ɹǝɟılʍǝu> Хертстоун?
[21:55:44] <m4n71k0r> Hearthstone
[21:55:47] <m4n71k0r> харт
[21:55:55] <m4n71k0r> а не hurt
[21:55:57] <ɹǝɟılʍǝu> Хёрт)
[21:56:00] <rexim> Баттхертстоун
[21:56:30] <ɹǝɟılʍǝu> http://unit-35.deviantart.com/art/Basic-isometric-tile-set-192902250
[21:56:38] <ɹǝɟılʍǝu> http://amandakieferart.deviantart.com/art/Pixel-Trees-207378023
[21:56:45] Orhideous вышел из конференции
[21:56:53] <uggur> Ох, я про бесшовные тайлы не говорил.
[21:56:59] <uggur> Я говорил про плитку :)
[21:57:04] <ɹǝɟılʍǝu> ~_~
[21:57:18] <Бог Сундуков> uggur: кажись, rot.js умеет и в изометрию тоже.
[21:57:27] <uggur> х)
[21:57:28] <Бог Сундуков> Тьху ты, что с моим ником?
[21:57:37] Бог Сундуков сменил ник на ForNeVeR
[21:57:42] <rexim> xD
[21:58:05] <uggur> Похоже, ForNeVeR переключается в разных изолированных трэдах между задачами %)
[21:58:33] <uggur> Или у него расщепление личности как у одной из героинь романа "Ложная слепота" который я советовал почитать rexim
[21:58:33] <ɹǝɟılʍǝu> Изометрия, конечно, круто. Но рисовать её ещё заебастей((
[22:00:05] m4n71k0r сменил ник на m░n▒▓k█r
[22:01:38] necroheaven вышел из конференции: Machine going to sleep
[22:01:39] <m░n▒▓k█r> мне кто-то тут с m0nhawk@mail.ru написал и в теме указал "Удал петицию", а теле было: http://www.onlinepetition.ru/ad4ba3/petition.html
[22:02:04] <m░n▒▓k█r> Ну я честно признался, что у этого сайта нет функционала по удалению петиций
[22:02:29] <ForNeVeR> о_О
[22:03:08] <ForNeVeR> Интересно, кто ж её создал..
[22:03:12] <m░n▒▓k█r> я
[22:03:17] <ForNeVeR> Гы.
[22:03:18] <uggur> Зачем?
[22:03:32] <m░n▒▓k█r> фо фан
[22:03:55] <uggur> Ну вот добавят тебя во все известные списки рассылки спама -- будешь знать %)
[22:04:15] <m░n▒▓k█r> ох, вся надежда на гугол
[22:04:37] <uggur> Лол, на тебе будут тренировать классификатор х)
[22:04:41] <m░n▒▓k█r> я раз в три года почту меняю и не парюсь
[22:04:55] <uggur> А мне просто никто не пишет
[22:04:59] <m░n▒▓k█r> точнее новую создаю и с неё писать начинаю
[22:05:05] <rexim> .ping
[22:05:06] <DeadBot> rexim: понг от тебя 0.17 секунды
[22:05:09] <m░n▒▓k█r> >ping
[22:05:13] <m░n▒▓k█r> .ping
[22:05:13] <DeadBot> m░n▒▓k█r: понг от тебя 0.03 секунды
[22:05:14] <m░n▒▓k█r> .ping
[22:05:14] <DeadBot> m░n▒▓k█r: понг от тебя 0.03 секунды
[22:05:15] <m░n▒▓k█r> .ping
[22:05:16] <DeadBot> m░n▒▓k█r: понг от тебя 0.03 секунды
[22:05:20] <m░n▒▓k█r> вах
[22:05:25] <rexim> =\
[22:05:34] <uggur> .ping
[22:05:34] <DeadBot> uggur: понг от тебя 0.04 секунды
[22:05:36] <uggur> .ping
[22:05:36] <DeadBot> uggur: понг от тебя 0.03 секунды
[22:05:37] <uggur> .ping
[22:05:37] <DeadBot> uggur: понг от тебя 0.05 секунды
[22:05:48] <rexim> uggur, штормит?
[22:06:01] <m░n▒▓k█r> rexim: ты сам-то дальше попингуй)
[22:06:06] <uggur> m░n▒▓k█r украл мой интернет >.<
[22:06:11] <rexim> m░n▒▓k█r, нет ты!
[22:06:13] <m░n▒▓k█r> враньё
[22:06:16] <m░n▒▓k█r> забаню
[22:06:22] <rexim> Кого?
[22:06:27] <m░n▒▓k█r> первого
[22:06:35] <uggur> У меня в списке первый ForNeVeR
[22:06:36] <uggur> %)
[22:06:49] <m░n▒▓k█r> ты первый из контекста
[22:06:56] <m░n▒▓k█r> uggur: да, ты
[22:07:02] <rexim> .ban uggur
[22:07:02] <DeadBot> rexim: не получилося
[22:07:04] <rexim> =(
[22:07:10] <ForNeVeR> .ban rexim
[22:07:10] <DeadBot> ForNeVeR: не получилося
[22:07:15] <rexim> .ban ForNeVeR
[22:07:15] <DeadBot> rexim: не получилося
[22:07:17] <m░n▒▓k█r> а если бы получилось =\
[22:07:25] <rexim> Не получи лося!
[22:07:32] <uggur> m░n▒▓k█r: Эмм... а где это у тебя контекст начинается? %)
[22:07:53] <ɹǝɟılʍǝu> uggur, а не мунхок ли ты?
[22:07:59] <uggur> Кто?
[22:08:01] <rexim> .ban ɹǝɟılʍǝu
[22:08:01] <DeadBot> rexim: не получилося
[22:08:05] <ɹǝɟılʍǝu> :(
[22:08:14] <rexim> ɹǝɟılʍǝu, :(
[22:08:20] <ɹǝɟılʍǝu> DeadBot, меня миксер обижает!
[22:08:31] <DeadBot> .ban rexim
[22:08:31] * ɹǝɟılʍǝu улетел пить молоко!
[22:08:41] <DeadBot> .ban ɹǝɟılʍǝu
[22:08:42] <rexim> ɹǝɟılʍǝu, а я уже попил. :)
[22:08:50] <ɹǝɟılʍǝu> .ban DeadBot
[22:08:50] <DeadBot> ɹǝɟılʍǝu: не получилося
[22:08:50] <uggur> Я знаю Хокмуна -- ГГ Муркока
[22:11:32] <ɹǝɟılʍǝu> ЧСХ, муняня теперь и в WoW не заходит.
[22:11:37] <ɹǝɟılʍǝu> Может, сменил аккаунт...
[22:11:49] <ɹǝɟılʍǝu> Проебав персонажей или потравтив кучу денег на их перенос)
[22:12:04] <uggur> Он от тебя скрывается?
[22:12:16] <ɹǝɟılʍǝu> Откуда мен знать?
[22:14:05] <rexim> men?
[22:16:54] reggies вышел из конференции: offline
[22:21:09] madmercen зашёл в конференцию
[22:21:45] madmercen вышел из конференции
[22:23:16] madmercen зашёл в конференцию
[22:23:59] madmercen вышел из конференции
[22:24:58] <gsomix> Немного наладил быт в комнате.
[22:28:36] <rexim> gsomix, как новый сосед?
[22:29:12] <gsomix> Хороший сосед. Мой одногруппник, уже четыре года знакомы.
[22:29:25] <rexim> Это хорошо.
[22:31:16] <uggur> Ко мне четверых запихнули. Ненавижу этот набитый аки шпротами в банке промозглый притон >.<
[22:31:42] <gsomix> А мы вдвоем в комнате на троих. :3
[22:32:44] <horta hell> zxc с рыком впивается в бедро m… от голода, крепко вцепившись зубами и выдирая кусок ткани штанов с кошельком. m… теряет 3PTC.
[22:32:48] <uggur> Впятером в комнате на троих <.<
[22:33:11] <uggur> Вот, хорта за меня отомстила :Ь
[22:33:56] <gsomix> rexim, надо с комнатой до конца разобраться и можно будет дальше на компьютере рабочую среду настраивать.
[22:34:01] <ɹǝɟılʍǝu> $pet feed
[22:34:02] <horta hell> ɹǝɟılʍǝu: zxc сыт.
[22:34:06] <ɹǝɟılʍǝu> $pet heal
[22:34:06] <horta hell> ɹǝɟılʍǝu: zxc здоров.
[22:34:08] madmercen зашёл в конференцию
[22:34:15] <gsomix> Тут явно надо обои переклеить.
[22:36:09] <rexim> ɹǝɟılʍǝu, нялайфер!
[22:36:49] <ɹǝɟılʍǝu> Миксерочек!
[22:36:57] <uggur> Обклею комнату содранными шкурами первокурсников >.<
[22:38:13] sss|zombie зашёл в конференцию
[22:42:31] matraskin вышел из конференции
[22:42:53] matrasskin вышел из конференции: Replaced by new connection
[22:42:58] matraskin зашёл в конференцию
[22:44:09] <gsomix> uggur, крепись.
[22:47:11] <rexim> Веселись!
[22:48:22] <ɹǝɟılʍǝu> Так.
[22:48:39] <ɹǝɟılʍǝu> Раз уж у меня такой рефакторинг...
[22:48:50] <ɹǝɟılʍǝu> Стоит ли перейти с qmake на что-то полущ?
[22:52:01] <gsomix> uggur, ну, кстати, зато всегда большая компания, чтобы выпить.
[22:52:04] <gsomix> :3
[22:58:40] <ɹǝɟılʍǝu> Кто-нибудь пробовал? http://www.falconpl.org
[22:59:05] <gsomix> Тысячи их. ._.
[23:00:08] <rexim> Еще один falcon?!
[23:00:34] <rexim> Да еще и как язык программирования?!
[23:00:36] <rexim> x_x
[23:00:53] <ɹǝɟılʍǝu> Вот ещё http://www.fancy-lang.org
[23:01:23] <rexim> Что за tabular-oriented programming?
[23:01:43] <ɹǝɟılʍǝu> Питон))
[23:02:06] <rexim> Но это связано с синтаксисом, а не с парадигмой.
[23:02:18] <rexim> > Falcon provides six integrated programming paradigms: procedural, object oriented, prototype oriented, functional, tabular and message oriented
[23:02:19] <m░n▒▓k█r> это философия
[23:02:22] <rexim> > tabular
[23:02:24] <m░n▒▓k█r> они поехали все там
[23:02:46] <m░n▒▓k█r> у них даже лямбды однострочные из-за синтаксиса
[23:03:02] * ɹǝɟılʍǝu думает, на чём таком интересном и лёгковесном написать собиралку плагинов для рисовалки.
[23:03:19] <m░n▒▓k█r> мессаго-ориентированный - это смолток?
[23:03:25] <rexim> ɹǝɟılʍǝu, на Scala же.
[23:03:35] <ɹǝɟılʍǝu> > лёгковесном
[23:03:40] <rexim> Зато интересно. %)
[23:03:49] <m░n▒▓k█r> ускорьте сборку скалоговн, плз
[23:03:57] <rexim> m░n▒▓k█r, нет ты!
[23:03:57] <m░n▒▓k█r> а то слишком тырпрайзно
[23:04:11] <ɹǝɟılʍǝu> > Fake - Fancy automation & build tool
[23:04:34] <rexim> Omg
[23:04:41] <m░n▒▓k█r> так
[23:04:44] <rexim> My pun sensor are overloaded x_x
[23:04:48] <ɹǝɟılʍǝu> Напишу на лиспе X)
[23:04:49] <rexim> sensors*
[23:04:53] <m░n▒▓k█r> тут увидел какие-то няшные конфиги на ямле
[23:04:57] <m░n▒▓k█r> оказалось - тревис
[23:05:00] <rexim> ɹǝɟılʍǝu, на каком?
[23:05:00] <m░n▒▓k█r> кто юзал?
[23:05:08] <ɹǝɟılʍǝu> rexim, scheme
[23:05:24] <rexim> Да ты упоролся.
[23:05:32] <rexim> Там же вообще нихуя нет.
[23:05:32] <ɹǝɟılʍǝu> А что не так?(
[23:05:34] <m░n▒▓k█r> континиус тыгрейшон… всё такое
[23:05:37] <rexim> Кроме скобочек.
[23:05:50] <m░n▒▓k█r> rexim: эмунерка на схеме что-то херачил
[23:05:58] <m░n▒▓k█r> что не так со схемой?
[23:06:01] <rexim> Хотя в ракетке достаточно много полезных батареек.
[23:06:03] <m░n▒▓k█r> на прологе ещё можно
[23:06:05] <rexim> Но она уже не схема.
[23:06:28] <ɹǝɟılʍǝu> А мне нужно только модуль с zip :)
[23:06:42] <rexim> Тогда тебе и баш подойдет.
[23:06:45] uggur вышел из конференции
[23:06:46] <m░n▒▓k█r> CMake прикрути
[23:06:57] <m░n▒▓k█r> CPack
[23:07:03] <ɹǝɟılʍǝu> Хм...
[23:07:07] <rexim> Сраск
[23:07:16] <m░n▒▓k█r> chfcr&
[23:07:34] <rexim> lf
[23:07:39] <m░n▒▓k█r> [v
[23:07:51] <ɹǝɟılʍǝu> tlbyjhjub d znb
[23:08:25] <ɹǝɟılʍǝu> e rjirb nfbt ujhzxb kfgrb ^^
[23:08:32] <m░n▒▓k█r> ns rjuj gblfhfcjv yfpdf&!!!
[23:08:54] <rexim> пщ цкшеу ыщьу сщву фдкуфвн!
[23:09:20] <m░n▒▓k█r> почему мне ник Ингвар знаком, а уггур - нет?
[23:09:31] <m░n▒▓k█r> и я не помню, откуда знаком
[23:10:17] <m░n▒▓k█r> http://docs.travis-ci.com/user/languages/scala/ в общем, хочу попробовать
[23:10:58] <ɹǝɟılʍǝu> Кто-нибудь прикручивал автокомплит к саблайму?
[23:11:08] <m░n▒▓k█r> я дишный пытался прикрутить
[23:11:27] <m░n▒▓k█r> вроде бы демон работал, но саблайм как-то хреново с ним работал
[23:11:33] <m░n▒▓k█r> но лучше, чем кдевелоп
[23:11:35] <ɹǝɟılʍǝu> Хм...
[23:11:49] <ɹǝɟılʍǝu> Когда уже AppCode допилят. :(
[23:12:33] <m░n▒▓k█r> также я тыкал в автокомплит шланговский на саблайме. Этот обмудок дёргал какую-то старую либу и мне влом было конфигурировать пути поиска всех хедеров
[23:12:54] <m░n▒▓k█r> когда я ему сказал дёргать ам шланг, чуть получше дело пошло
[23:13:12] <m░n▒▓k█r> но в общем от саблайма никаких хороших впечатлений не осталось
[23:13:17] <m░n▒▓k█r> надо атом потыкать
[23:14:00] <m░n▒▓k█r> ɹǝɟılʍǝu: ты хотел сказать "Когда я уже накоплю на мак?"
[23:14:03] <m░n▒▓k█r> ?
[23:14:22] <ɹǝɟılʍǝu> ))
[23:14:41] <m░n▒▓k█r> не, правильно начал. Со стиралки
[23:15:32] <m░n▒▓k█r> вернусь к тревису
[23:15:50] <m░n▒▓k█r> там сожно настроить, чтобы после сборки он тебе в почту насрал или в ирку
[23:16:04] <m░n▒▓k█r> мб и в жаббер умеет. Не знаю
[23:16:49] uggur зашёл в конференцию
[23:18:17] <m░n▒▓k█r> хм, в свитере конкретно так упоролись по скале
[23:18:28] <m░n▒▓k█r> https://github.com/twitter/summingbird/tree/master
[23:18:34] <m░n▒▓k█r> https://github.com/twitter/scalding/tree/master
[23:18:58] <ɹǝɟılʍǝu> Забавно, на английской педевикии в списке ЯП по типу есть «Wirth languages»
[23:19:16] <ɹǝɟılʍǝu> Т.е. никакой тип, просто «Языки Вирта».
[23:19:17] <ɹǝɟılʍǝu> ))
[23:20:28] <rexim> Wrath languages
[23:27:57] <ForNeVeR> Я всё перепилил, но возникла проблема уникальности акторов.
[23:28:18] <ForNeVeR> Мне нужно их как-то идентифицировать, но теперь я не могу связать два инстанса (старый и новый).
[23:28:27] <ForNeVeR> Вводить какой-то автоинкрементный id?
[23:31:20] <O01eg> а ты разве не сделал их мутабельными?
[23:39:13] <ForNeVeR> O01eg: нет, я решил проблему более прямым путём.
[23:39:49] <ForNeVeR> От актора теперь никто не наследуется, а его просто формируют из заменяемых частей - поведения, статов и т.п.
[23:40:10] <ForNeVeR> Ну ладно, я запилил уже инкрементные id.
[23:41:00] Славный капитан вышел из конференции: Replaced by new connection
[23:41:01] Славный капитан зашёл в конференцию
[23:43:46] <ForNeVeR> Славный капитан: можешь пофиксить доступ к дизайн-докам? Надо бы запретить анонимусам редактирование. Я тогда на них ссылку в README дам.
[23:44:59] <Славный капитан> ForNeVeR: пофикшено
[23:45:19] <ForNeVeR> Славный капитан: алсо, зря ты не свистнул по поводу того, что ты запилил ещё доку по механике. Я бы уже её заипмлементил. Впрочем, текущая имплпментация движется один-к-одному с докой, хех.
[23:45:32] <Славный капитан> великие умы мыслят одинаково
[23:45:54] <Славный капитан> ForNeVeR: я ее не допилил еще же ._.
[23:46:52] <ForNeVeR> Славный капитан: дак и я имплементацию не допилил :3
[23:47:04] <Славный капитан> нуок
[23:47:29] <Славный капитан> буду тогда обозначивать поступление новых кусков геймдизана зелеными свистками вверх
[23:47:47] <ForNeVeR> Можно на северный верх?
[23:48:01] <Славный капитан> можно
[23:48:07] <Славный капитан> можно даже на серверный
[23:49:40] * ForNeVeR оставил в сорсах пасхалку.
[23:52:53] <ɹǝɟılʍǝu> пох на cmake
[23:52:57] <ɹǝɟılʍǝu> Буду на bjam
[23:55:21] <ForNeVeR> ɹǝɟılʍǝu: http://www.youtube.com/watch?v=Eyz77oJ2HJ0&feature=youtu.be&t=2m40s
[23:56:08] <ɹǝɟılʍǝu> ForNeVeR, )
[23:56:59] <ForNeVeR> ɹǝɟılʍǝu: надеюсь, это поможет тебе с выбором системы сборки.
[23:57:15] <ɹǝɟılʍǝu> лул
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!