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

Тема: C, С++, Java, C#, Haskell, Python, Ruby, Scheme, Common Lisp, Erlang, OCaml, JavaScript, Clojure, Scala, Nemerle, F#, Groovy, R.
Код выкладывать на http://hastebin.com/
Вопросы задавать в чат, а не в личку.
Логи: http://tinyurl.com/ctcjr-logs
Упоминания о Flash, PHP, Pascal/Delphi/Borland, 1С караются съедением поциента.
Личкрафты: http://leechcraft.org
Horta Hell: https://github.com/ForNeVeR/horta-hell
Проблем решено: 0x16
[00:14:37] Сволота зашёл в конференцию
[00:22:39] <Ender> густав пидор
[00:22:45] <Ender> таки съебал
[00:23:20] Myp вышел из конференции
[00:23:57] <Ender> при пешке на g3 обычно все съебывают сразу на Qe7
[00:24:41] <Ender> Если честно я не понимал, почему гудстаф вату катал.
[00:26:20] <Ender> о точн
[00:26:25] <Ender> мунхок
[00:26:34] <Ender> посоветуешь ченить?
[00:26:38] <Ender> против густава то
[00:27:13] <moonhawk> Kbyr/
[00:27:15] <moonhawk> Линк.
[00:28:29] <Ender> кстати я ещё ждал его на f3
[00:28:33] <Ender> олй
[00:28:36] <Ender> f5
[00:30:16] <Ender> короче он меня просто просто подъебать решил.
[00:30:36] <Ender> он короче опять на мою лошадь охотится
[00:30:49] <Ender> на мою прекрасную лошадь
[00:42:14] <Ender> лол какое я смешное видео нашел
[00:42:16] <Ender> http://www.youtube.com/watch?v=ojiuE78zIqQ
[01:02:22] ckorzhik зашёл в конференцию
[01:05:57] <Ender> муня
[01:06:00] <Ender> http://www.chess.com/echess/game?id=82873010
[01:06:24] <Ender> густав же вроде показывал?
[01:07:15] <ckorzhik> ForNeVeR, несмотря на твои слова о применении построений формочек из кода в продакшене, меня не покидает ощущение, что я занимаюсь какой-то ерундой, когда можно бороздить просторы интернетов (в #crypto кидают отличные сайты).
[01:11:55] <ckorzhik> Кстати, почему гуёвый редактор форм - говно?
[01:12:48] <ckorzhik> видимо, потому что нужно создавать свои элементы.
[01:38:04] goodstuff зашёл в конференцию
[01:39:26] moonhawk вышел из конференции
[01:40:58] magog вышел из конференции
[01:42:48] пкщгяут[slacktop] зашёл в конференцию
[01:53:32] <horta hell> : / умер в забвении
[01:57:11] Bit0reZ зашёл в конференцию
[02:06:01] <j123123> $pet resurrect
[02:06:02] <horta hell> j123123: Вы воскресили питомца этой конфы! Это ли не чудо?!
[02:06:13] <j123123> $pet feed
[02:06:13] <horta hell> j123123: / покормлен
[02:07:06] Bit0reZ вышел из конференции
[02:11:19] Ender вышел из конференции: Replaced by new connection
[02:11:19] Ender зашёл в конференцию
[02:12:02] <Ender> $pet stats
[02:12:02] <horta hell> Ender:
Кличка: /
Здоровье: 99
Голод: 98
[02:12:14] <Ender> $pet heal
[02:12:15] <horta hell> Ender: / здоров
[02:12:27] <Ender> $pet feed
[02:12:27] <horta hell> Ender: / покормлен
[02:12:34] <Ender> $pet stats
[02:12:34] <horta hell> Ender:
Кличка: /
Здоровье: 100
Голод: 100
[02:12:38] <Ender> во
[02:13:00] <Ender> / ^_^
[02:19:44] Ramzessus зашёл в конференцию
[02:19:49] <Ramzessus> народ, имею код:
Response.Write(String.Format("<tr><td>{1}:</td><td align=\"left\">" +
"<input type=\"text\" size=47 value=\"{0}\"/>" +
"<a href=\"#\" runat=\"server\" onсlick =\" _____________ \"> Удалить поле </a></td></tr>", tmp[0], tmp[2], tmp[1]));
что мне вставить где полоса пробелов, что ссылатся на функцию в cs коде?
[02:21:14] goodstuff вышел из конференции
[02:45:27] Славный капитан зашёл в конференцию
[03:15:25] rafaelrs вышел из конференции
[03:18:22] Ramzessus вышел из конференции
[03:48:43] rafaelrs зашёл в конференцию
[03:51:47] sss|zombie зашёл в конференцию
[04:03:36] m4n71k0r вышел из конференции
[04:52:05] Graf зашёл в конференцию
[04:57:17] Graf вышел из конференции
[05:05:39] <Ender> $pet stats
[05:05:40] <horta hell> Ender:
Кличка: /
Здоровье: 71
Голод: 42
[05:05:55] <Ender> $pet feed
[05:05:55] <horta hell> Ender: / покормлен
[05:06:01] <Ender> $pet heal
[05:06:01] <horta hell> Ender: / здоров
[05:06:08] <Ender> $pet stats
[05:06:08] <horta hell> Ender:
Кличка: /
Здоровье: 100
Голод: 100
[05:07:06] <ckorzhik> Осталось написать скрипт, который кормит автоматически. Одна программа будет кормить другую.
[05:27:09] <Славный капитан> не
[05:27:36] <Славный капитан> нужно запилить плагин автоматического кормления
[05:27:58] <Славный капитан> чтобы хорта сама себя кормила
[05:28:43] <Славный капитан> $pet resurrect
[05:28:44] <horta hell> Славный капитан: / и так жив. Зачем его воскрешать?
[05:32:27] <ckorzhik> Так неинтересно. Разве что вероятность успеха добавить (добыл-не добыл еду).
[05:49:52] Славный капитан вышел из конференции
[05:50:54] ckorzhik вышел из конференции
[06:29:01] Славный капитан зашёл в конференцию
[06:44:32] rafaelrs вышел из конференции
[06:55:10] <Ender> $pet stats
[06:55:11] <horta hell> Ender:
Кличка: /
Здоровье: 82
Голод: 64
[06:55:24] <Ender> $pet feed
[06:55:24] <horta hell> Ender: / покормлен
[06:56:56] <Ender> у меня в восемь экзамен будет по геометрии
[06:57:03] <Ender> покормите / ?
[07:05:41] Славный капитан сменил ник на hоrta hell
[07:05:53] <hоrta hell> : / умер в забвении.
[07:06:25] hоrta hell сменил ник на Славный капитан
[07:10:56] <ForNeVeR> Эх вы. Надо ещё полечить было.
[07:11:08] <ForNeVeR> Хотя, гм, что-то он сильно уж быстро помер.
[07:12:35] <Ender> э!
[07:12:38] <Ender> какого хуя!
[07:12:53] <Ender> у него ж 82Hp было!
[07:12:57] <Ender> форневер!
[07:13:19] <Ender> почему слэшик сдох?!
[07:13:57] <Ender> $pet stats
[07:13:58] <horta hell> Ender:
Кличка: /
Здоровье: 79
Голод: 94
[07:14:06] <Ender> бля
[07:14:15] <Ender> f
[07:14:16] <Ender> А
[07:14:22] <Ender> ну понятно
[07:14:32] <Ender> прикалываетесь
[07:14:33] <Ender> =(
[07:14:45] <Ender> $pet heal
[07:14:45] <horta hell> Ender: / здоров
[07:14:54] <Ender> $pet feed
[07:14:54] <horta hell> Ender: / покормлен
[07:15:19] <Ender> воть
[08:18:45] O01eg вышел из конференции
[08:27:25] maledictus зашёл в конференцию
[08:39:14] <ForNeVeR> Да это с акторами чего-то, наверное.
[08:39:25] <ForNeVeR> Я не удивлюсь, если у конфочки два пета щас.
[08:50:34] <ForNeVeR> $pet stats
[08:50:35] <horta hell> ForNeVeR:
Кличка: /
Здоровье: 84
Голод: 68
[08:51:36] <Славный капитан> ;3
[08:52:31] maledictus вышел из конференции: Выключил машину, дабы насладиться жизнью
[10:53:07] SolarRay вышел из конференции
[10:58:21] ckorzhik зашёл в конференцию
[11:05:57] maledictus зашёл в конференцию
[11:11:23] <ForNeVeR> Ночью микель слонялся по жабберу.
[11:11:29] <ForNeVeR> maledictus: а где магог?
[11:15:10] <maledictus> ForNeVeR: у него не работает сервер генту.ру. Как обычно, собственно. я бы уже давно сменил сервер, если бы был годный мигратор + на сервере был норм icq-транспорт
[11:16:15] <ForNeVeR> А на личкрафторге дедфуд не собирается поднять транспорт?
[11:16:23] <ForNeVeR> У него ж там ресурсов немеряно.
[11:28:40] <Славный капитан> Они зарезервированы под серверную часть личкрафта, видимо.
[11:30:50] <maledictus> лолда
[11:31:48] <Славный капитан> $pet stats
[11:31:49] <horta hell> Славный капитан:
Кличка: /
Здоровье: 57
Голод: 14
[11:31:54] <Славный капитан> $pet feed
[11:31:54] <horta hell> Славный капитан: / покормлен
[11:43:18] <0xd34df00d> ForNeVeR: зачем?
[11:48:26] <Славный капитан> ForNeVeR: https://github.com/ForNeVeR/horta-hell/issues/62
[11:49:49] ckorzhik вышел из конференции
[11:51:03] <ForNeVeR> 0xd34df00d: чтобы магог мог юзать.
[11:55:47] <0xd34df00d> Пусть лучше в личкрафтах мультипротокольность допилит.
[11:55:50] <0xd34df00d> Либпурпле, это вот всё.
[12:08:06] <Kerrigаn> есть нормальный способ сделать std::find на deque из указателей?
[12:08:13] <Kerrigаn> или мне тупой перебрать
[12:08:16] <Kerrigаn> *тупо
[12:08:37] <Славный капитан> а они у тебя отсортированы хоть как-то?
[12:08:40] <Kerrigаn> нет
[12:09:04] <ForNeVeR> Посаны!
[12:09:07] <ForNeVeR> Все обобщения - ложны.
[12:09:37] <Славный капитан> а, ты не про алгоритм поиска
[12:09:44] <Славный капитан> но все равно тупо перебирать
[12:11:09] <Славный капитан> ForNeVeR: че
[12:11:36] <ForNeVeR> Славный капитан: парадокс Рассела же.
[12:11:43] <ForNeVeR> *Все* обобщения - ложны.
[12:11:47] <Kerrigаn> тогда похуй
[12:12:25] <Славный капитан> ForNeVeR: рассел лалка
[12:12:52] <Славный капитан> он рассматривает цирюльника вне времени и контекста
[12:14:15] <ForNeVeR> Ну и норм, так и нужно.
[12:14:21] <ForNeVeR> Муня подтвердит.
[12:16:41] <Славный капитан> ага
[12:16:51] <Славный капитан> он уже как-то раз про магнитные линии подтвердил
[12:17:30] <Славный капитан> кроме того
[12:18:17] <Славный капитан> в этом парадоксе приказ неоднозначен
[12:19:03] <Славный капитан> собственно, из-за этой неоднозначности парадокс и возникает
[12:20:03] <Славный капитан> и чтобы эту неоднозначность разрешить, нужен контекст
[12:20:18] <Славный капитан> должны ли все быть бритыми, или нет?
[12:21:00] Kerrigаn вышел из конференции
[12:48:23] <maledictus> 0xd34df00d: ко-ко-ко.
[12:48:53] <Ender> $pet stats
[12:48:54] <horta hell> Ender:
Кличка: /
Здоровье: 44
Голод: 74
[12:49:05] <Ender> $pet heal
[12:49:05] <horta hell> Ender: / здоров
[12:49:12] <Ender> $pet feed
[12:49:12] <horta hell> Ender: / покормлен
[12:49:18] <Ender> $pet stats
[12:49:18] <horta hell> Ender:
Кличка: /
Здоровье: 100
Голод: 100
[12:50:38] <Славный капитан> $say 5 asdf
[12:51:07] <Ender> Славный капитан: спасиб что покормил слешика
[12:51:13] <Ender> ^_^
[12:51:13] <Славный капитан> $say 10
[12:51:16] magog зашёл в конференцию
[12:51:17] <horta hell> Славный капитан: бой на печатной машинке с собой всех остальных случаях на прыщах?
[12:51:21] maledictus вышел из конференции: Выключил машину, дабы насладиться жизнью
[12:51:27] <Славный капитан> Ender: должен будешь
[12:51:39] <Ender> ок
[12:52:20] <Славный капитан> алсо, нужен подсчет аптайма пета
[12:53:46] magog вышел из конференции
[12:53:48] magog зашёл в конференцию
[13:13:24] <ForNeVeR> Славный капитан: ок, запили.
[13:13:29] <ForNeVeR> magog: да это же магог!
[13:13:35] <magog> угу
[13:13:38] <magog> вернулся =)
[13:42:13] rafaelrs зашёл в конференцию
[14:03:25] moonhawk зашёл в конференцию
[14:07:45] <moonhawk> .tell m4n71k0r: Тебе понравится http://en.wikipedia.org/wiki/Wavelet_Tree
http://alexbowe.com/wavelet-trees/
[14:07:46] <DeadBot> moonhawk: глянь приват
[14:23:46] moonhawk вышел из конференции
[14:29:45] Kerrigаn зашёл в конференцию
[14:29:50] <Kerrigаn> цодингтим
[14:29:59] <Kerrigаn> у меня поехал шланг и ллдб
[14:30:11] <Kerrigаn> я передаю в метод Cell& cell
[14:30:19] <Kerrigаn> а ллдб говорит, что там bool
[14:30:30] <Kerrigаn> как такое может быть?
[14:30:34] <ForNeVeR> А там точно не бул?
[14:30:59] <Kerrigаn> я там делаю unique_ptr<Cell>::get()
[14:31:07] <Kerrigаn> чтобы передать
[14:31:23] <ForNeVeR> ЧТОБЫ ПРЕДАТЬ
[14:31:36] <Kerrigаn> ?
[14:31:40] <Kerrigаn> чяднт?
[14:31:52] <ForNeVeR> Да кто тебя знает. Ты ж никакого контекста по задаче не сообщил.
[14:31:57] <ForNeVeR> Ну подумаешь, бул.
[14:32:10] <Kerrigаn> у меня есть unique_ptr
[14:32:12] <ForNeVeR> Булом он решил нас испугать.
[14:32:15] <Kerrigаn> я хочу передать его как ссылку
[14:32:17] <Kerrigаn> в метод
[14:32:33] <ForNeVeR> Вообще, передавать unique_ptr по ссылке - это уже попахивает.
[14:32:40] <Kerrigаn> эм
[14:32:40] <ForNeVeR> Ссылка на указатель. WAT?
[14:33:04] <ForNeVeR> Я обычно ссылки на значения передаю.
[14:33:11] <Kerrigаn> гм
[14:33:13] <ForNeVeR> Константные, ага.
[14:33:53] <Kerrigаn> ну так *(ptr-get()) это же значение, не?
[14:34:03] <Kerrigаn> ptr->get()
[14:34:23] <ForNeVeR> *ptr
[14:34:40] <Kerrigаn> c unique_ptr разве так можно?
[14:34:49] <ForNeVeR> А разве нельзя?
[14:34:58] * ForNeVeR озадачен
[14:35:08] <Kerrigаn> по-моему что-то ругалось
[14:35:11] <Kerrigаn> щас проверю
[14:35:39] <ForNeVeR> http://en.cppreference.com/w/cpp/memory/unique_ptr/operator*
[14:36:06] <ForNeVeR> Как видишь, там всё зойбись.
[14:37:31] <Kerrigаn> один хер булеан
[14:37:46] <Kerrigаn> с другой стороны я перед этим делаю std::move на этом ptr
[14:42:27] <Ender> где там густав?
[14:42:30] <Ender> $pet stats
[14:42:31] <horta hell> Ender:
Кличка: /
Здоровье: 81
Голод: 62
[14:42:37] <Ender> $pet feed
[14:42:37] <horta hell> Ender: / покормлен
[14:42:53] <ForNeVeR> Kerrigаn: да ты упоротый.
[14:43:08] <ForNeVeR> Kerrigаn: если ты куда-то переместил содержимое указателя - то чего ты вообще от него хочешь?
[14:43:11] <ForNeVeR> Зачем он тебе?
[14:43:15] <Kerrigаn> ForNeVeR: а иначе unique_ptr копировать нельзя же?
[14:43:17] <ForNeVeR> Он же пустой.
[14:43:29] <ForNeVeR> Ну и это, нафиг его копировать?
[14:43:38] <ForNeVeR> Его в принципе _нельзя_ копировать.
[14:43:44] <Kerrigаn> эм
[14:43:48] <ForNeVeR> std::move не копирует, а перемещает.
[14:43:53] <Kerrigаn> а какого хера вы мне его тут советовали?
[14:43:55] <ForNeVeR> Старый инстанс инвалидируется.
[14:44:16] <ForNeVeR> Я не знаю, кто тут тебе такое советовал, но можешь прописать ему с вертушки в щи.
[14:44:23] <Kerrigаn> ок
[14:44:38] <ForNeVeR> Я точно помню, как говорил тебе про shared_ptr.
[14:44:57] <Kerrigаn> что будет если я сделаю a = unique_ptr<Cell>(ptr->get()) ?
[14:45:14] <ForNeVeR> Хуита будет.
[14:45:24] <ForNeVeR> Дважды вызовется деструктор.
[14:45:44] <Kerrigаn> т.е. в какой-то момент значение потеряется?
[14:45:51] <ForNeVeR> Пиздец настанет в какой-то момент.
[14:45:58] <Kerrigаn> ясно
[14:46:03] <ForNeVeR> Двойной вызов деструктора - это пизда твоей программе.
[14:46:20] <ForNeVeR> Просто покрешится и всё.
[14:46:24] <Kerrigаn> уже
[14:46:40] <ForNeVeR> Друже. Скорее всего, тебе нужен shared_ptr.
[14:46:51] <ForNeVeR> Он реализует семантику коллективного владения объектом.
[14:46:53] <Kerrigаn> похоже да
[14:47:11] <ForNeVeR> Кто последний им владеет - тот и будет очищать за ним ресурсы.
[14:47:46] <Kerrigаn> их можно просто присваивать?
[14:47:55] <Славный капитан> ForNeVeR: а разве unique_ptr<>::get() вызывает деструктор?
[14:47:58] <ForNeVeR> Их можно копировать.
[14:48:04] <Kerrigаn> м, ок
[14:48:16] <ForNeVeR> Славный капитан: нет. Суть в том, что он создаёт второй unique_ptr, который ссылается на тот же объект.
[14:48:26] <ForNeVeR> get() это вообще хак.
[14:48:34] <Славный капитан> а
[14:48:37] <Славный капитан> точно
[14:49:10] <ForNeVeR> Сам по себе get(), в общем-то, безопасен, но вот конкретно тут чувак себе в ногу выстрелил из него.
[14:50:16] <Kerrigаn> что-то не вижу в доках как его копировать
[14:50:47] <ForNeVeR> auto a = shared_ptr(new int);
auto b = a; // вуаля
[14:50:56] <ForNeVeR> Ну или make_shared там запили.
[14:51:02] <Kerrigаn> нее
[14:51:05] <Kerrigаn> я не о том
[14:51:12] <Kerrigаn> у меня есть 2 шареда
[14:51:20] <Kerrigаn> я хочу один присвоить другому
[14:51:51] <ForNeVeR> Ну присвой.
[14:51:57] <ForNeVeR> Это же и есть копирование.
[14:52:00] <Kerrigаn> а, ок
[14:52:00] <Славный капитан> при этом и будет неявный вызов конструктора копирования
[14:52:10] <Kerrigаn> я с самого начала это и спросил
[14:52:45] <ForNeVeR> Я тебе с самого начала это и ответил.
[14:52:52] <Kerrigаn> ок
[14:55:04] <Ender> http://cs616323.vk.me/v616323660/2ae7/CHMTF0ZLGeQ.jpg
[14:56:35] <Kerrigаn> т.е. и в полях класса тоже лучше заменить на шаред?
[14:57:18] <Славный капитан> если ты собираешься их копировать
[14:57:24] <Kerrigаn> да
[14:57:31] <Kerrigаn> о
[14:58:28] <Kerrigаn> я собираюсь в них копировать
[14:58:28] <ForNeVeR> А я б не стал копировать.
[14:58:51] <ForNeVeR> У меня в полях обычно лежат unique_ptr, а во всякие левые места я ссылки передаю.
[15:01:35] Славный капитан вышел из конференции
[15:01:57] <Kerrigаn> теперь сегфолт из-за очистки шареда
[15:03:00] <ForNeVeR> Да ты наркоман. Показывай код.
[15:04:47] <Kerrigаn> сначала ллдб понасилую
[15:05:42] <j123123> Лучше уж писать на чистой сишке, чем на этом C++ с этими шибко умными указателями
[15:05:43] <ForNeVeR> Ну, это правильно.
[15:06:01] <ForNeVeR> j123123: плохо только если указатель умнее пользователя.
[15:06:18] <ForNeVeR> В сишке он точно так же везде бы дёргал delete и словил бы сегфолт.
[15:06:23] <ForNeVeR> Ой, не delete, а free.
[15:06:35] <j123123> в сишке delete нет
[15:06:39] <ForNeVeR> Будет!
[15:06:45] <ForNeVeR> Напишем свою сишку.
[15:20:10] <Kerrigаn> а что будет если я сделаю шаредптр на инстанс класса, внутри которого unique_ptr?
[15:21:24] <ForNeVeR> Ничего страшного не будет.
[15:21:36] <ForNeVeR> Копия самого инстанса жеж не создаётся.
[15:21:36] <Kerrigаn> тогда странно
[15:21:49] sss|zombie вышел из конференции: Вышел из Vacuum-IM
[15:23:27] <Kerrigаn> у меня начали появляться объекты явно взятые из пустого куска памяти
[15:24:07] <ForNeVeR> Дак у тебя там плохо всё :3
[15:24:31] <Kerrigаn> ага
[15:25:28] <Kerrigаn> надо выпиливать эту кучу гетов
[15:26:03] <Kerrigаn> но тогда я не понимаю как правильно засовывать shared_ptr в deque с обычными указателями
[15:26:18] <ForNeVeR> Што О_О
[15:26:32] <Kerrigаn> как што
[15:26:55] <Kerrigаn> мне тут говорили, что не надо держать умные указатели в контейнерах
[15:32:39] <uıʃɐɟ∀> Кто говорил?
[15:33:25] rexim зашёл в конференцию
[15:34:25] <rexim> Ему это сказали, видимо, говорящие указатели.
[15:34:57] * rexim ненавидит их.
[15:35:02] <rexim> Они слишком много говорят.
[15:35:08] <ForNeVeR> rexim: а ты пробовал их выслушать?
[15:35:14] <ForNeVeR> Им нужно только чуточку внимания.
[15:35:15] <Kerrigаn> короче, выпилю все эти умные указатели и заменю тупыми
[15:35:19] <ForNeVeR> Лал.
[15:35:23] <Kerrigаn> они меня бесят уже
[15:35:35] <rexim> Слишком умные.
[15:35:43] <rexim> Много о себе возомнили.
[15:35:56] <Kerrigаn> __ХУЙ_ПИЗДА___ДЖИГУРДА____КАТМАНДА___ EXC ACCESS ERROR
[15:36:04] <Kerrigаn> все ошибки выглядят как-то так
[15:36:15] <uıʃɐɟ∀> Странный у тебя коноплятор.
[15:36:21] <Kerrigаn> шланг
[15:36:26] <rexim> Это какие-то уже упоротые указатели.
[15:36:31] <uıʃɐɟ∀> Хз, у меня шланг по-другому ошибки высирает.
[15:37:00] <ForNeVeR> У меня любой компилятор как попало ошибки высирает.
[15:37:13] <Kerrigаn> у меня макось, но вряд ли это тут причем
[15:37:23] <ForNeVeR> Потому что это *компилятор*. Если ты даже настолько примитивно ошибся - то не заслуживаешь нормальных сообщений об ошибках.
[15:37:56] <rexim> Чего уж говорить о рабочей программе.
[15:38:14] <Kerrigаn> это вообще библиотека
[15:38:21] <Kerrigаn> рабочая программа будет на жабе
[15:38:23] <rexim> Не суть.
[15:38:26] <ForNeVeR> О_О
[15:39:32] <rexim> ForNeVeR: а что такого? JNI и все дела...
[15:39:42] <uıʃɐɟ∀> А сейчас ты пишешь нерабочую программу?
[15:39:51] <ForNeVeR> rexim: JNA полущ.
[15:40:02] <Kerrigаn> сейчас я переписываю с жабы на плюсы
[15:40:07] <ForNeVeR> Ну, в качестве хорошей-годной надстройки над JNI.
[15:40:24] <ForNeVeR> Я использую JNA и успешен :3
[15:40:50] <rexim> :3
[15:41:53] <Kerrigаn> до JNI надо еще добраться
[15:44:50] <j123123> Интересно было бы попробовать в байткоде виртуальной машины java попрограммировать
[15:45:48] <j123123> https://en.wikipedia.org/wiki/Jasmin_%28Java_assembler%29
[15:46:51] <ForNeVeR> BCEL есть.
[15:46:58] <Kerrigаn> йуху!
[15:47:12] * Kerrigаn всё заменил на человеческие указатели - заработало
[15:47:39] <uıʃɐɟ∀> Хм, я б не стал применять человеческие указатели.
[15:47:50] <uıʃɐɟ∀> Человек - опасное слишком явление.
[15:47:50] <Kerrigаn> я бы тоже
[15:48:15] <ForNeVeR> А я бы всех человеков бы переубивал.
[15:48:25] <j123123> и себя?
[15:48:28] <ForNeVeR> Да.
[15:48:37] <uıʃɐɟ∀> Порновар - человек?!
[15:48:41] <ForNeVeR> ^_^
[15:48:42] Славный капитан зашёл в конференцию
[15:48:58] <Kerrigаn> теперь оно будет течь
[15:49:03] <ForNeVeR> Эх ты...
[15:49:07] <uıʃɐɟ∀> Мокрые указатели?
[15:49:07] <ForNeVeR> Течь - плохо.
[15:49:09] <Kerrigаn> или не будет
[15:49:12] <Kerrigаn> я не уверен
[15:49:15] <ForNeVeR> Тогда хорошо.
[15:49:21] <ForNeVeR> А вот если не уверен - хуже вдвойне.
[15:49:33] <Kerrigаn> кстати о JNI
[15:49:41] <ForNeVeR> JNA юзай.
[15:50:17] <Kerrigаn> ForNeVeR: вот смотри, перед выходом из функции я по идее должен почистить все занятые ресусры
[15:50:22] <Kerrigаn> *ресурсы
[15:50:29] <ForNeVeR> Ну да, разумеется.
[15:50:32] <uıʃɐɟ∀> Не обязательно перед выходом из функции.
[15:50:38] <uıʃɐɟ∀> Но должен.
[15:50:39] <Kerrigаn> а если какой-то из них мне нужно как результат возвратить?
[15:50:51] <ForNeVeR> Хреново тебе!
[15:50:54] <uıʃɐɟ∀> Почисти потом.
[15:50:58] <ForNeVeR> Угу.
[15:51:00] <Kerrigаn> потом это когда?
[15:51:05] <ForNeVeR> Там всё так же, как в плюсцах.
[15:51:07] <uıʃɐɟ∀> Когда не нужен будет.
[15:51:09] <Kerrigаn> ретурт это выход же
[15:51:16] <Kerrigаn> *ретурн
[15:51:23] <Kerrigаn> потом я уже ничего не могу сделать
[15:51:25] <ForNeVeR> Ну, ресурс-то ты вернёшь же из функции?
[15:51:36] <ForNeVeR> Вот он у тебя в руках и останется. Сможешь его почистить,
[15:51:36] <Kerrigаn> я возвращу его как результат
[15:51:40] <Kerrigаn> в жабу
[15:51:40] <ForNeVeR> Ну да.
[15:51:51] <Kerrigаn> жаба сама почистит штоле?
[15:51:51] <ForNeVeR> Ну вот в жабе и почистишь.
[15:51:55] <j123123> Ну а там что, нельзя в нативную функцию передать указатель на массив из жабы
[15:51:57] <ForNeVeR> Нет, ты почистишь.
[15:51:58] <j123123> ?
[15:52:03] <Kerrigаn> ээээ
[15:52:05] <ForNeVeR> j123123: там всё несколько сложнее.
[15:52:12] <Kerrigаn> ок, привожу пример
[15:52:22] <ForNeVeR> Да и нахрен в нативной функции указатель на массив из жабы? Наркоман штоле дохрена?
[15:52:28] <Kerrigаn> я собираю в методе жабастроку
[15:52:33] <Kerrigаn> возвращаю ее
[15:52:46] <ForNeVeR> А там можно жабостроками оперировать?
[15:52:54] <Kerrigаn> она дальше сама почистится?
[15:53:05] <Kerrigаn> ForNeVeR: что-то такое там есть
[15:53:11] <Kerrigаn> или не так
[15:53:22] <ForNeVeR> Да, вроде бы почистится.
[15:53:25] <Kerrigаn> конкретно в июле я собирал жабомассивы
[15:53:38] <Kerrigаn> в JNI и возвращал их в жабу
[15:53:49] <Kerrigаn> а, ок
[15:54:08] <ForNeVeR> Вообще, зависит от того, кто управляет памятью.
[15:54:09] <j123123> >Да и нахрен в нативной функции указатель на массив из жабы?
Например, чтобы нативная функция в этот массив из жабы записала какие-то байтики. Или как там вся эта ерунда работает?
[15:54:20] <ForNeVeR> Байтики ему записать, лол.
[15:54:30] <Kerrigаn> джа
[15:54:42] <Kerrigаn> (потом конечно я все выпилил и переписал на жабе)
[15:57:08] <Kerrigаn> ок, другой вопрос
[15:57:14] <Kerrigаn> есть область видимости
[15:57:24] <ForNeVeR> j123123: в принципе, можно сделать как ты предлагаешь. Но какие тогда вопросы к освобождению ресурсов? Память выделена в жабамашине.
[15:57:26] <Kerrigаn> в ней объявляется указатель
[15:57:35] <Kerrigаn> после выхода из нее что будет?
[15:57:50] <ForNeVeR> Э, в смысле?
[15:58:02] <Kerrigаn> память утечет?
[15:58:16] <ForNeVeR> Стековая память, в которой хранился указатель (4 или 8 байт), будет помечена как свободная.
[15:58:18] <ForNeVeR> Всё.
[15:58:27] <ForNeVeR> Утечёт или не утечёт - зависит от тебя.
[15:58:32] <Kerrigаn> а хиповая утечет?
[15:59:00] <ForNeVeR> Если больше у тебя никто не указывает на эту область памяти, и ты не освободил её перед тем, как указатель ушёл со стека - да, технически это утечка.
[15:59:00] <uıʃɐɟ∀> Скажем так, если ты сделаешь new и не сделаешь delete - утечёт.
[15:59:08] <Kerrigаn> ок
[15:59:12] <j123123> Ну там жи деструкторы при выходе из скоупа сами должны срабатывать
[15:59:25] <uıʃɐɟ∀> Деструктор указателя ничего не должен чистить.
[15:59:28] <ForNeVeR> j123123: для указателей не срабатывают, и не должны. Умерь свой пыл.
[15:59:30] <j123123> именно для этого эти auto_ptr и сделаны
[15:59:48] <Kerrigаn> а если этот указатель не делают нью, а скажем просто обращается к элементу контейнера?
[15:59:50] <ForNeVeR> А вот auto_ptr (который уже сто лет как выброшен на мороз) - да, для этого и сделан.
[15:59:59] <j123123> так я о нем и говорил
[16:00:01] <ForNeVeR> Kerrigаn: указатель вообще никогда ничего не делает.
[16:00:07] <ForNeVeR> Уж тем более new.
[16:00:37] <Kerrigаn> не
[16:00:38] <ForNeVeR> Если у тебя указатель указывает на элемент, который доступен и из других объектов тоже - то технически утечки в этом сценарии не будет.
[16:00:42] <Kerrigаn> а, ок
[16:01:15] <ForNeVeR> Даже если ты не дёрнул delete (а ты в этом случае не должен его дёргать, т.к. область памяти, которая начинается где-нибудь в середине массива, не управляется менеджером памяти).
[16:01:16] moonhawk зашёл в конференцию
[16:01:57] <Kerrigаn> просто тут получается что
1. Есть контейнеры
2. Есть несколько указателей, которые дергают элементы из этих контейнеров
3. В конце функции часть контейнеров я почистил, а один возвратил как результат
[16:03:53] <j123123> Ну так жаба ж не умеет чистить контейнеры из сишки
[16:04:03] <j123123> из плюсов точнее
[16:04:44] <Kerrigаn> про жабу еще речь не идет
[16:06:27] <j123123> Почему бы в жабе не сделать массив, передать в JNI указатель на него, чтобы туда результат писать?
[16:06:42] <j123123> Или так делать нельзя по каким-то причинам?
[16:07:26] <Kerrigаn> j123123: потому что параметры в жабе передаются по ссылке
[16:07:39] <Kerrigаn> или
[16:07:44] <Kerrigаn> блжад, я запутался
[16:08:05] <Kerrigаn> короче изменения внутри метода не повлияют на переданный аргумент
[16:10:58] <j123123> http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/design.html
Referencing Java Objects Primitive types, such as integers, characters, and so on, are copied between Java and native code. Arbitrary Java objects, on the other hand, are passed by reference. The VM must keep track of all objects that have been passed to the native code, so that these objects are not freed by the garbage collector. The native code, in turn, must have a way to inform the VM that it no longer needs the objects. In addition, the garbage collector must be able to move an object referred to by the native code.
[16:13:14] <j123123> Передаются по ссылке короч
[16:14:55] <j123123> И еще цитата оттуда
>One solution introduces a notion of “pinning” so that the native method can ask the VM to pin down the contents of an array. The native method then receives a direct pointer to the elements.
[16:24:43] rexim вышел из конференции
[16:28:22] <Kerrigаn> похоже deque дергает деструкторы у всех элементов
[16:28:56] <uıʃɐɟ∀> Да.
[16:29:00] <Kerrigаn> збс
[16:29:14] <uıʃɐɟ∀> Но у тебя же там указатели.
[16:29:18] <Kerrigаn> да
[16:29:23] <uıʃɐɟ∀> А деструктор указателя ничего не делает.
[16:29:29] <Kerrigаn> эм
[16:29:34] <Kerrigаn> нью возвращает указатель же
[16:29:38] <uıʃɐɟ∀> Да.
[16:29:45] <Kerrigаn> там указатели на класс
[16:29:51] <uıʃɐɟ∀> Допустим.
[16:30:08] <Kerrigаn> декве юзает на них делит при очистке
[16:30:17] <uıʃɐɟ∀> Нет.
[16:30:27] <uıʃɐɟ∀> Она делает delete[] на массив с указателями.
[16:30:33] <Kerrigаn> эм
[16:30:43] <Kerrigаn> а результат не тот же?
[16:30:44] <uıʃɐɟ∀> И вызывает, соответственно, деструкторы указетелй.
[16:30:51] <Kerrigаn> ну вот
[16:30:54] <uıʃɐɟ∀> Но delete не указателях она не делает.
[16:31:28] <uıʃɐɟ∀> Представь, что у тебя там не указатель, а size_t. Целое число того же размера.
[16:31:45] <uıʃɐɟ∀> Работать всё будет точно так же, как и с указателем.
[16:31:54] <Kerrigаn> один хрен все очищается
[16:32:01] <uıʃɐɟ∀> С чего ты взял?
[16:32:32] <Kerrigаn> с того что если почистить руками каждый элемент
[16:32:49] <Kerrigаn> то потом оно будет орать на то, что я чищу уже очищенное
[16:32:55] <uıʃɐɟ∀> Покажи.
[16:33:29] <Kerrigаn> test(82724,0x7fff72c6a310) malloc: *** error for object 0x7f: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
[16:33:29] <uıʃɐɟ∀> Как ты чистишь и откуда тебе ругаются.
[16:34:10] <Kerrigаn> чищу фором с делитом
[16:34:19] <uıʃɐɟ∀> Код покажи, сука.
[16:34:23] <uıʃɐɟ∀> Или зобаню.
[16:34:30] <Kerrigаn> не покажу, он коммерческий
[16:34:39] <uıʃɐɟ∀> Ну и иди нахуй тогда со своими вопросами.
[16:34:48] <Kerrigаn> вообще-то ты уже ответил
[16:35:04] <uıʃɐɟ∀> Да, только ты нихуя не понял, мне кажется.
[16:35:33] <moonhawk> :-D
[16:36:02] <uıʃɐɟ∀> Алсо, что коммерческого может быть в коде { std::deque<pizda*> d; d.push_back(new pizda()); delete d.back(); } мне непонятно.
[16:36:35] <moonhawk> Он не умеет в MWE.
[16:36:44] <moonhawk> И в MNWE.
[16:36:55] <uıʃɐɟ∀> .google mwe
[16:36:57] <DeadBot> uıʃɐɟ∀: McDermott Will &amp; Emery:
... Orange County; |; Paris; |; Rome; |; Seoul; |; Silicon Valley; |; Washington, D.C.; |; Strategic alliance with MWE China Law Offices, a separate law firm.
http://www.mwe.com/
[16:37:08] <moonhawk> Minimal Working Example.
[16:37:11] <Kerrigаn> умею
[16:37:22] <Kerrigаn> но мне надо насиловать маны по гейфонам
[16:37:33] <uıʃɐɟ∀> При чём тут гейфоны?
[16:37:48] <Kerrigаn> при том что 4 часа цпп - 4 часа гейфоны
[16:37:54] <Kerrigаn> 4 часа прошли
[16:37:54] <uıʃɐɟ∀> И чо?
[16:37:59] <uıʃɐɟ∀> Тогда пиздуй.
[16:38:03] <Kerrigаn> оке
[16:38:06] <moonhawk> Он сразу на двух работах пашет.
[16:38:13] <uıʃɐɟ∀> Доебал уже.
[16:43:11] <j123123> на гейфонах наверное обж-ц
[16:43:22] <uıʃɐɟ∀> Не только.
[16:43:26] <uıʃɐɟ∀> Кресты там тоже есть.
[16:43:57] <moonhawk> Зачем?
[16:44:28] <uıʃɐɟ∀> Наверно, затем же, зачем и обжц.
[16:44:34] <uıʃɐɟ∀> Код писать.
[16:46:32] пкщгяут[slacktop] вышел из конференции
[16:53:07] m4n71k0r зашёл в конференцию
[16:53:12] <j123123> Можно на ARM ассемблере под айфоны код писать
[16:53:25] <j123123> по-хардкору
[16:54:13] <moonhawk> Разве в гейфоне арм?
[16:55:37] <j123123> Да, там арм
[16:56:33] <j123123> и в гейпадах тоже
[17:11:00] Новый год зашёл в конференцию
[17:23:29] Новый год вышел из конференции
[17:30:31] m4n71k0r вышел из конференции
[17:31:33] m4n71k0r зашёл в конференцию
[17:57:51] cutwater зашёл в конференцию
[18:15:21] eaeee зашёл в конференцию
[18:25:16] moonhawk вышел из конференции
[18:27:55] cutwater вышел из конференции
[18:43:22] moonhawk зашёл в конференцию
[19:16:24] <m4n71k0r> шикарные комменты http://www.ulmart.ru/goods/610448#discussion
[19:17:41] <uıʃɐɟ∀> Лол.
[19:23:01] <moonhawk> 1000 долларов за наушники?!
[19:41:30] <horta hell> : / умер в забвении
[19:42:29] <m4n71k0r> $pet resurrect
[19:42:29] <horta hell> m4n71k0r: Вы воскресили питомца этой конфы! Это ли не чудо?!
[19:44:38] <moonhawk> $pet feed
[19:44:38] <horta hell> moonhawk: / покормлен
[19:44:40] <moonhawk> $pet feed
[19:44:40] <horta hell> moonhawk: / покормлен
[19:44:42] <moonhawk> $pet feed
[19:44:42] <horta hell> moonhawk: / покормлен
[19:44:43] <moonhawk> $pet feed
[19:44:43] <horta hell> moonhawk: / покормлен
[19:44:48] <moonhawk> $pet kill
[19:44:48] <horta hell> moonhawk: Вы жестоко убили питомца этой конфы.
[19:44:50] <moonhawk> $pet kill
[19:44:50] <horta hell> moonhawk: / уже мертв. Но вам этого мало, да?
[19:44:56] <moonhawk> $pet resurrect
[19:44:56] <horta hell> moonhawk: Вы воскресили питомца этой конфы! Это ли не чудо?!
[20:11:49] eaeee вышел из конференции
[20:35:38] magog вышел из конференции
[20:36:46] O01eg зашёл в конференцию
[20:37:05] Славный капитан вышел из конференции
[20:42:25] Славный капитан зашёл в конференцию
[20:48:46] eaeee зашёл в конференцию
[20:53:10] OKTAVIUS вышел из конференции: Replaced by new connection
[20:53:11] OKTAVIUS зашёл в конференцию
[21:11:23] <Ender> $pet stats
[21:11:24] <horta hell> Ender:
Кличка: /
Здоровье: 86
Голод: 72
[21:11:33] <Ender> $pet feed
[21:11:33] <horta hell> Ender: / покормлен
[21:12:08] <moonhawk> $pet stats
[21:12:08] <horta hell> moonhawk:
Кличка: /
Здоровье: 85
Голод: 100
[21:12:13] <moonhawk> $pet feed
[21:12:13] <horta hell> moonhawk: / покормлен
[21:12:14] <moonhawk> $pet feed
[21:12:14] <horta hell> moonhawk: / покормлен
[21:12:15] <moonhawk> $pet feed
[21:12:15] <horta hell> moonhawk: / покормлен
[21:12:17] <moonhawk> $pet heal
[21:12:17] <horta hell> moonhawk: / здоров
[21:12:22] <moonhawk> $pet hell
[21:12:22] <horta hell> moonhawk: Попробуйте $pet help.
[21:12:27] <moonhawk> $pet stats
[21:12:27] <horta hell> moonhawk:
Кличка: /
Здоровье: 100
Голод: 100
[21:18:04] <moonhawk> $pet stats
[21:18:04] <horta hell> moonhawk:
Кличка: /
Здоровье: 99
Голод: 98
[21:18:07] <moonhawk> $pet stats
[21:18:07] <horta hell> moonhawk:
Кличка: /
Здоровье: 99
Голод: 98
[21:18:16] <moonhawk> Надо регулярно кормить!
[21:24:22] moonhawk вышел из конференции
[22:51:12] <Славный капитан> блин
[22:51:27] <Славный капитан> гит обосрался прямо поверх моей локальной репки
[22:52:43] <Славный капитан> теперь снова форкать-клонировать-импортировать
[22:53:06] <Славный капитан> ForNeVeR: какого фтора хорта так много весит?
[23:01:19] ckorzhik зашёл в конференцию
[23:13:18] пкщгяут[slacktop] зашёл в конференцию
[23:20:21] OKTAVIUS вышел из конференции
[23:31:38] magog зашёл в конференцию
[23:43:02] <Ender> $pet stats
[23:43:03] <horta hell> Ender:
Кличка: /
Здоровье: 75
Голод: 50
[23:43:16] <Ender> $pet heal
[23:43:16] <horta hell> Ender: / здоров
[23:43:25] <Ender> $pet feed
[23:43:25] <horta hell> Ender: / покормлен
[23:56:21] magog вышел из конференции
[23:57:32] magog зашёл в конференцию
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!