The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Возобновлено соревнование по написанию самого запутанного ко..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от opennews (??) on 14-Ноя-11, 14:49 
После пятилетнего перерыва, анонсировано (http://www.ioccc.org/2011/rules.txt) возрождение конкурса IOCCC (http://www.ioccc.org) (International Obfuscated C Code Contest), участникам которого предлагается написать на языке Си наиболее запутанный и трудноразбираемый код, на основании анализа которого проблематично разобраться в сути решаемой задачи. При этом код должен быть интересен и чем-то примечателен, подчеркивая важность правильного стилевого оформления или выделяя неожиданные стороны языка Си. Размер программы не должен превышать 4096 байт, программа должна собираться и выполнять какое-либо осмысленное действие.

Работы на конкурс будут приниматься (http://www.ioccc.org/2011/guidelines.txt) до 12 января 2012 года. Каталог работ прошлых победителей можно найти на данной  странице (http://www.ioccc.org/winners.html).

URL: http://www.ioccc.org/index.html#new
Новость: https://www.opennet.ru/opennews/art.shtml?num=32294

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Возобновлено соревнование по написанию самого запутанного ко..."  +51 +/
Сообщение от xxx (??) on 14-Ноя-11, 14:49 
>Размер программы не должен превышать 4096 байт

Эх жалко, я бы им весь наш проект отправил.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Возобновлено соревнование по написанию самого запутанного ко..."  –1 +/
Сообщение от Аноним (??) on 14-Ноя-11, 15:14 
Название новости неверно. Это не соревнование по написанию запутанного кода - запутанность кода просто следствие.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

23. "Возобновлено соревнование по написанию самого запутанного ко..."  +1 +/
Сообщение от Ананимуз on 14-Ноя-11, 18:38 
Следствием чего? В списке целей мероприятия первым пунктом английским по белому значится  ни что иное как "Написать наиболее непонятный/запутанный код."

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

3. "Возобновлено соревнование по написанию самого запутанного ко..."  +5 +/
Сообщение от жабабыдлокодер (ok) on 14-Ноя-11, 15:26 
Посмотрел одного из победителей прошлых лет... Мать честная!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Возобновлено соревнование по написанию самого запутанного ко..."  +4 +/
Сообщение от jedie on 14-Ноя-11, 15:29 
Что, удивлен что кто то пишет более запутанный код? :D
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Возобновлено соревнование по написанию самого запутанного ко..."  +1 +/
Сообщение от жабабыдлокодер (ok) on 14-Ноя-11, 15:39 
Мы неприличностей себе не позволяем, а жаба всяко ясней и понятней по природе своей, чем ся.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Возобновлено соревнование по написанию самого запутанного ко..."  +1 +/
Сообщение от jedie on 14-Ноя-11, 16:08 
Сравнение некорректное
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

11. "Возобновлено соревнование по написанию самого запутанного ко..."  –3 +/
Сообщение от жабабыдлокодер (ok) on 14-Ноя-11, 16:26 
Почему? Java - прямой потомок C по синтаксису. Работу с классами, правда, сделали не по образцу C++, но жабакодер в состоянии разобраться в коде на C, даже таком запутанном.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

12. "Возобновлено соревнование по написанию самого запутанного ко..."  +2 +/
Сообщение от jedie on 14-Ноя-11, 16:41 
Вообще Java уровнем повыше будет. В конце концов Java это почти полностью OO язык, в то время как чистый C совершенно нет. Их вообще нельзя сравнивать, это даже глупо.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

16. "Возобновлено соревнование по написанию самого запутанного ко..."  +1 +/
Сообщение от Аноним (??) on 14-Ноя-11, 17:12 
> жабакодер в состоянии разобраться в коде на C, даже таком запутанном.

А вот и хрен тебе. Готов поспорить что iZEN который что-то там типа программирует на жабе и куда больше соответствует твоему нику - в запутанном сищном коде вообще нихрена не поймет.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

26. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от анон on 14-Ноя-11, 19:05 
Ага, особенно если в сишном коде будет адресная арифметика и прочие хитрости с указателями, которые в жабе были выпилены как слишком сложные для мозга на ней пишущих.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

34. "Возобновлено соревнование по написанию самого запутанного ко..."  –3 +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 21:30 
> Ага, особенно если в сишном коде будет адресная арифметика

Чего там сложного в арифметике то? Но гордость цшников что они освоили 2 арифметических действия доставляет.

> прочие хитрости с указателями, которые в жабе были выпилены как слишком сложные для мозга на ней пишущих.

Хитростей там нет, а есть костыли связанные с отсутствием возможности передавать переменные по ссылке. Ну так цшникам не привыкать, в ц ведь вообще ничего полезного нет - массивов, строк и т.п. и там тоже костыли на базе указателей используются вместо.

В жабе же (как и в ц++) есть ссылки, поэтому танцев с бубном не надо.  Но в ц++ можно увидеть указатели т.к. строк и маасивов все равно не добавили так что без костылей никуда. Да и мозг уже поражен.

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

39. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от fork (??) on 14-Ноя-11, 21:58 
Какбы передача по ссылке по сути то же самое что и через указатель, массивы строки и т.п. и в си и в си++ есть, а мозг поражен у троллей, а не у сишников
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

51. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 22:50 
>Какбы передача по ссылке по сути то же самое что и через указатель, массивы строки и т.п. и в си и в си++ есть, а мозг поражен у троллей, а не у сишников

По сути и ц и ц++ и жаба и ц# одинаковое гуано. Троллить тут начали указателелюбители, которые еще как оказалось и не понимают разницы между передачей объекта/структуры/переменной и т.д. по ссылке и передачей указателя неизвестно на что т.к. в ц нет возможности узнать на что передан указатель и соответственно нельзя проверить правильность операций его использующих. Ну и как обычно они не понимают что в ц массив это просто указатель, а строка это не строка а массив.

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

63. "Возобновлено соревнование по написанию самого запутанного ко..."  –1 +/
Сообщение от Аноним (??) on 14-Ноя-11, 23:07 
> разницы между передачей объекта/структуры/переменной и т.д.

А ты попробуй передай в своем суперправильном яп допустим _треть_ стомегового объекта куда-то. Без его копирования (ибо медленно и печально).

Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

69. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 23:13 
>> разницы между передачей объекта/структуры/переменной и т.д.
> А ты попробуй передай в своем суперправильном яп допустим _треть_ стомегового объекта
> куда-то. Без его копирования (ибо медленно и печально).

Объекты в жабе как раз передаются по ссылке. Впрочем я вижу что не видите разницы между объектом и структурой данных. А ну да, вспомнил, все что нужно знать это указатели. А вот как в ц передать 100-мерный массив?


Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

78. "Возобновлено соревнование по написанию самого запутанного ко..."  +1 +/
Сообщение от Аноним (??) on 14-Ноя-11, 23:21 
> ц передать 100-мерный массив?

Хоть 200 мерный. Массив байтов - он и в африке массив байтов. И у байтов всегда есть адрес в памяти. Сколько у него там измерений - вообще наплевать.

Ответить | Правка | ^ к родителю #69 | Наверх | Cообщить модератору

111. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от anon2 on 15-Ноя-11, 01:20 
> т.к. в ц нет возможности узнать на что передан указатель и соответственно нельзя проверить правильность операций его использующих.

Зачем узнавать, если это указывается явно:

int foo(struct xxx *ptr);

C - статически типизированный язык, и компилятор проверит правильность операций с этим указателем за тебя, школьник :)

Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

112. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 01:24 
> int foo(struct xxx *ptr);
> C - статически типизированный язык, и компилятор проверит правильность операций с этим
> указателем за тебя, школьник :)

ptr[1000000].field = 42; /* BANG! */

Ответить | Правка | ^ к родителю #111 | Наверх | Cообщить модератору

138. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 13:58 
> ptr[1000000].field = 42; /* BANG! */

Си язык для системщиков, а не для идиотов которые хотят посмотреть что будет если заряжить пистолер, снять с предохранителя, засунуть его себе в рот и нажать на спуск. Все эти операции можно сделать. А то что в результате пуля вынесет мозг - довольно ожидаемо, не?

Ответить | Правка | ^ к родителю #112 | Наверх | Cообщить модератору

141. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от iZEN (ok) on 15-Ноя-11, 16:19 
Да, да, да — прострелит ногу вместо бошки, хотя по плану был вынос мозга. :))
Ответить | Правка | ^ к родителю #138 | Наверх | Cообщить модератору

147. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 16:59 
> Да, да, да — прострелит ногу вместо бошки, хотя по плану был вынос мозга. :))

Какой-то шутник подсунул пулю со смещенным центром тяжести? :)

Ответить | Правка | ^ к родителю #141 | Наверх | Cообщить модератору

159. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 19:34 
> компилятор проверит правильность операций с этим указателем за тебя

это не я сию глупость сказал. я только продемонстрировал, что это глупость, и в пылу полемики не стоит делать утверждений, за которые потом придётся прилюдно краснеть.

Ответить | Правка | ^ к родителю #138 | Наверх | Cообщить модератору

162. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anon2 on 15-Ноя-11, 21:03 
>> ptr[1000000].field = 42; /* BANG! */

С точки зрения компилятора С - операция с указателем правильная :)

>>> компилятор проверит правильность операций с этим указателем за тебя

Ну хорошо, не всех операций - голову тоже нужно применять.
От логических ошибок никакой компилятор не спасет.

Ответить | Правка | ^ к родителю #159 | Наверх | Cообщить модератору

163. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 21:20 
>>> ptr[1000000].field = 42; /* BANG! */
> С точки зрения компилятора С — операция с указателем правильная :)

это, в принципе, обычная отмазка. да-да, я уловил невидимый тэг, но тем не менее.

>>>> компилятор проверит правильность операций с этим указателем за тебя
> Ну хорошо, не всех операций — голову тоже нужно применять.
> От логических ошибок никакой компилятор не спасет.

но, например, может «спасти» от выхода за пределы массива. однако же си этого не делает (понятно, что это не баг, а фича, но), и потому говорить, что «компилятор проверит правильность» несколько неверно. может проверить только «логичность с точки зрения кода». и то — эту проверку при желании можно уконтрапупить приведением типов.

Ответить | Правка | ^ к родителю #162 | Наверх | Cообщить модератору

253. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 17-Ноя-11, 16:19 
> но, например, может «спасти» от выхода за пределы массива. однако же си
> этого не делает

Рантайм проверки в тугом цикле могут посадить скорость в _разы_. Что и наблюдается в явах и дотнетах всяких. Что делает эти ЯП непригодными для написания критичных к скорости работы программ.

Ответить | Правка | ^ к родителю #163 | Наверх | Cообщить модератору

260. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 17-Ноя-11, 19:19 
> Рантайм проверки в тугом цикле могут посадить скорость в _разы_.

поэтому их можно сделать отключаемыми. плюс — хороший анализатор вполне в состоянии вынести проверки за цикл, и ничего не просядет. правда, программа обидится не в цикле, а до него — но какая разница?

Ответить | Правка | ^ к родителю #253 | Наверх | Cообщить модератору

263. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 17-Ноя-11, 21:15 
>> Рантайм проверки в тугом цикле могут посадить скорость в _разы_.
> поэтому их можно сделать отключаемыми.

Если честно я не понимаю почему до столь очевидного решения еще никто не допер. С другой стороны, это потребует некоего гемора по профайлингу и отключке + поспособствует расслаблению программера т.к. теперь вроде как и невозможно облажаться (по поводу чего толпа изенов всяких набежит). А иногда "неправильные" указатели и вовсе на самом деле очень даже правильные. Если нам нужно например в конкретный адрес сунуться. Откуда б компилеру знать что вон то - не левый доступ в память а например запуск функции из произвольного адреса, который может меняться по времени? (удобно для кусков всяких там boot loader'ов в памяти и прочая). Или например что это на самом деле было просто обращение в оборудование, типа как запись в чип флеша определенных magic words по определенному адресу - позволяет выполнить некую команду, например программирования сектора. Или вы предлагаете всю работу с железом на асме делать? Это ж геморно.

> плюс — хороший анализатор вполне в состоянии вынести проверки за цикл,

Далеко не всегда и программист в этом плане лучше. Си все-таки не для дебилов делается а для системщиков. Автоматически подтирать задницу надо всяким изенам, а не этим парням.

> и ничего не просядет. правда, программа обидится не в цикле, а до него — но какая разница?

Да почти никакой, если в нужных местах это умничание можно просто и без геморроя отключить. И честно говоря я не понимаю почему какое-то подобное расширение никто не сделал до сих пор. Обычно впадают в крайности - или нифига нельзя, или все можно. Ну еще у всяких жабистов и сишарперов можно звать нативный код из типа безопасного но настолько геморно что мазохистов юзать такие средства - мало.

Ответить | Правка | ^ к родителю #260 | Наверх | Cообщить модератору

264. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 17-Ноя-11, 21:20 
>> поэтому их можно сделать отключаемыми.
> Если честно я не понимаю почему до столь очевидного решения еще никто
> не допер.

вообще-то turbo pascal это умел больше десяти лет назад. даже больше пятнадцати. component pascal compiler из bcb тоже.

>> плюс — хороший анализатор вполне в состоянии вынести проверки за цикл,
> Далеко не всегда и программист в этом плане лучше.

а я и не говорил, что всегда.

> Си все-таки не для дебилов делается а для системщиков.

как будто это взаимоисключающие понятия.

> И честно говоря я не понимаю почему какое-то подобное расширение никто не сделал до сих пор.

в принципе, потому, что в си вовсе нет никаких массивов, а так, указатели. иногда с тэгом «размер».

Ответить | Правка | ^ к родителю #263 | Наверх | Cообщить модератору

267. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от fork (??) on 18-Ноя-11, 04:48 
>По сути и ц и ц++ и жаба и ц# одинаковое гуано. Троллить тут начали указателелюбители, >которые еще как оказалось и не понимают разницы между передачей
>объекта/структуры/  переменной и т.д. по ссылке и передачей указателя неизвестно на что >т.к. в ц нет возможности узнать на что передан указатель и соответственно нельзя проверить >правильность операций его использующих. Ну и как обычно они не понимают что в ц массив это >просто указатель, а строка это не строка а массив.

Типа папские обьяснения примитивных вещей.
Одинаковое оно всё, все эти твои ссылки указатели, только в твоей голове начинается разница.
В твоей голове строка должна быть обьектом с методами? Бред сивой кобылы. Что массив как последовательность указателей это не массив? И массив букв тоже не строка??
Не придумывай определения ссылок, строк и массив, школьничек, всё оно одно и тоже через что бы ты те массивы ссылки и строки не представлял.

Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

43. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 14-Ноя-11, 22:36 
краткое содержание: «то, чего нет в жабе — лишнее и никому не надо!»
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

54. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 22:56 
> краткое содержание: «то, чего нет в жабе — лишнее и никому не  надо!»

На самом деле все ц подобные языки дрянь, но на жабе такой конкурс провести труднее.

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

79. "Возобновлено соревнование по написанию самого..."  +2 +/
Сообщение от Аноним (??) on 14-Ноя-11, 23:22 
> конкурс провести труднее.

Потому что энтерпрайзникам надо язык для постановки индусни в стойло и зашибания бабла скорей-быстрей, а не какого-то там системного программирования и эффективных алгоритмов.

Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

44. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 22:37 
> Чего там сложного в арифметике то? Но гордость цшников что они освоили
> 2 арифметических действия доставляет.

Товарищ, полный по тюрингу проц вообще реализуется одной командой! И освоив _одну_ команду можно писать _произвольные_ программы. Так что 2 действия - сойдут за понты и навороты :)))

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

57. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 22:59 
> Товарищ, полный по тюрингу проц вообще реализуется одной командой! И освоив _одну_  команду можно писать _произвольные_ программы. Так что 2 действия - сойдут  за понты и навороты :)))

Сами то поняли чего сказали?


Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

60. "Возобновлено соревнование по написанию самого..."  –1 +/
Сообщение от arisu (ok) on 14-Ноя-11, 23:01 
> Сами то поняли чего сказали?

правду он сказал. google://one+instruction+set+computer

Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

73. "Возобновлено соревнование по написанию самого..."  +1 +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 23:16 
>> Сами то поняли чего сказали?
> правду он сказал. google://one+instruction+set+computer

Вы че абстрактный математи что ле?  Слова and given infinite resources - не смущает?


Ответить | Правка | ^ к родителю #60 | Наверх | Cообщить модератору

86. "Возобновлено соревнование по написанию самого..."  –1 +/
Сообщение от arisu (ok) on 14-Ноя-11, 23:38 
> Вы че абстрактный математи что ле?  Слова and given infinite resources
> - не смущает?

таки ты тупенький, с гуголем не дружишь. http://mazonka.com/subleq/hsq.html

Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

139. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 14:00 
> таки ты тупенький, с гуголем не дружишь. http://mazonka.com/subleq/hsq.html

Так их, Кэп!

Ответить | Правка | ^ к родителю #86 | Наверх | Cообщить модератору

74. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 23:17 
> Сами то поняли чего сказали?

Правду. Гуглить на тему subleq или bitbitjump. Кажется я переакадемзадротствовал академзадрота.

Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

45. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 14-Ноя-11, 22:39 
кстате. а гордость жабистов в отсутствии униформной системы типов (ну зачем там int и Integer? потому что компилятор был глупенький и не умел оптимизировать?) и наиболее костылеограниченой «реализации» ООП, да?
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

56. "Возобновлено соревнование по написанию самого..."  +2 +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 22:57 
> кстате. а гордость жабистов в отсутствии униформной системы типов

Ну лично я совершенно не понимаю чем в жабе гордиться. Но ц и ц++ это же вообще катастрофа.

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

58. "Возобновлено соревнование по написанию самого..."  +1 +/
Сообщение от arisu (ok) on 14-Ноя-11, 22:59 
> Ну лично я совершенно не понимаю чем в жабе гордиться. Но ц
> и ц++ это же вообще катастрофа.

цпп — да. а ц — хороший макроассемблер.

Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

64. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 23:07 
> цпп — да. а ц — хороший макроассемблер.

макроассемблер да, а хороший то почему? Просто распространенный. Ну а потом его синтаксические находки потащили в другие языки. И пошло-поехало. Ну да спасибо что не лисп.


Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

70. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 14-Ноя-11, 23:13 
> макроассемблер да, а хороший то почему?

а чем он плох?

> Ну да спасибо что не лисп.

вообще-то, *жаль*, что не лисп.

Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

82. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 23:24 
> вообще-то, *жаль*, что не лисп.

Да ну его нафиг этот ваш лисп. Больно много в нем одинаковых скобочек - месиво из одинаковых скобок читается хреново. Си схватывается глазом проще.

Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

88. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 14-Ноя-11, 23:41 
> Да ну его нафиг этот ваш лисп. Больно много в нем одинаковых
> скобочек - месиво из одинаковых скобок читается хреново. Си схватывается глазом
> проще.


#include                     <math.h>
#include                   <sys/time.h>
#include                   <X11/Xlib.h>
#include                  <X11/keysym.h>
                      double L ,o ,P
                     ,_=dt,T,Z,D=1,d,
                     s[999],E,h= 8,I,
                     J,K,w[999],M,m,O
                    ,n[999],j=33e-3,i=
                    1E3,r,t, u,v ,W,S=
                    74.5,l=221,X=7.26,
                    a,B,A=32.2,c, F,H;
                    int N,q, C, y,p,U;
                       Window z; char f[52]
                    ; GC k; main(){ Display*e=
XOpenDisplay( 0); z=RootWindow(e,0); for (XSetForeground(e,k=XCreateGC (e,z,0,0),BlackPixel(e,0))
; scanf("%lf%lf%lf",y +n,w+y, y+s)+1; y ++); XSelectInput(e,z= XCreateSimpleWindow(e,z,0,0,400,400,
0,0,WhitePixel(e,0) ),KeyPressMask); for(XMapWindow(e,z); ; T=sin(O)){ struct timeval G={ 0,dt*1e6}
; K= cos(j); N=1e4; M+= H*_; Z=D*K; F+=_*P; r=E*K; W=cos( O); m=K*W; H=K*T; O+=D*_*F/ K+d/K*E*_; B=
sin(j); a=B*T*D-E*W; XClearWindow(e,z); t=T*E+ D*B*W; j+=d*_*D-_*F*E; P=W*E*B-T*D; for (o+=(I=D*W+E
*T*B,E*d/K *B+v+B/K*F*D)*_; p<y; ){ T=p[s]+i; E=c-p[w]; D=n[p]-L; K=D*m-B*T-H*E; if(p [n]+w[ p]+p[s
]== 0|K <fabs(W=T*r-I*E +D*P) |fabs(D=t *D+Z *T-a *E)> K)N=1e4; else{ q=W/K *4E2+2e2; C= 2E2+4e2/ K
*D; N-1E4&& XDrawLine(e ,z,k,N ,U,q,C); N=q; U=C; } ++p; } L+=_* (X*t +P*M+m*l); T=X*X+ l*l+M *M;
  XDrawString(e,z,k ,20,380,f,17); D=v/l*15; i+=(B *l-M*r -X*Z)*_; for(; XPending(e); u *=CS!=N){
                   XEvent z; XNextEvent(e ,&z);
                                       ++*((N=XLookupKeysym
                     (&z.xkey,0))-IT?
                     N-LT? UP-N?& E:&
                     J:& u: &h); --*(
                     DN -N? N-DT ?N==
                     RT?&u: & W:&h:&J
                      ); } m=15*F/l;
                      c+=(I=M/ l,l*H
                      +I*M+a*X)*_; H
                      =A*r+v*X-F*l+(
                      E=.1+X*4.9/l,t
                      =T*m/32-I*T/24
                       )/S; K=F*M+(
                       h* 1e4/l-(T+
                       E*5*T*E)/3e2
                       )/S-X*d-B*A;
                       a=2.63 /l*d;
                       X+=( d*l-T/S
                        *(.19*E +a
                        *.64+J/1e3
                        )-M* v +A*
                        Z)*_; l +=
                                            K *_; W=d;
                        sprintf(f,
                        "%5d  %3d"
                        "%7d",p =l
                       /1.7,(C=9E3+
                  O*57.3)%0550,(int)i); d+=T*(.45-14/l*
                 X-a*130-J* .14)*_/125e2+F*_*v; P=(T*(47
                 *I-m* 52+E*94 *D-t*.38+u*.21*E) /1e2+W*
                 179*v)/2312; select(p=0,0,0,0,&G); v-=(
                  W*F-T*(.63*m-I*.086+m*E*19-D*25-.11*u
                   )/107e2)*_; D=cos(o); E=sin(o); } }



это С, да.
Ответить | Правка | ^ к родителю #82 | Наверх | Cообщить модератору

100. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от pavlinux (ok) on 15-Ноя-11, 00:32 
Х...ня. Оно ещё должно компилится  

foo.c:6:21: ошибка: «dt» undeclared here (not in a function)
foo.c: В функции «main»:
foo.c:19:13: предупреждение: несовместимая неявная декларация внутренней функции «scanf» [по умолчанию включена]
foo.c:69:34: ошибка: «CS» undeclared (first use in this function)
foo.c:69:34: замечание: each undeclared identifier is reported only once for each function it appears in
foo.c:73:37: ошибка: «IT» undeclared (first use in this function)
foo.c:74:25: ошибка: «LT» undeclared (first use in this function)
foo.c:74:30: ошибка: «UP» undeclared (first use in this function)
foo.c:75:17: ошибка: «DN» undeclared (first use in this function)
foo.c:75:30: ошибка: «DT» undeclared (first use in this function)
foo.c:75:40: ошибка: «RT» undeclared (first use in this function)
foo.c:89:9: предупреждение: несовместимая неявная декларация внутренней функции «sprintf» [по умолчанию включена]

Ответить | Правка | ^ к родителю #88 | Наверх | Cообщить модератору

107. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 00:55 
возьми мейкфайл из оригинального ioccc. оно компилится, как не удивительно. там же и ландшафты есть.
Ответить | Правка | ^ к родителю #100 | Наверх | Cообщить модератору

117. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от pavlinux (ok) on 15-Ноя-11, 02:25 
Короча фигня. Переименовать переменные каждый чайник сможет.
А уж форматнуть в виде какого-нить объекта, дело пару минут, тем более утиль есть готовая.
Ответить | Правка | ^ к родителю #107 | Наверх | Cообщить модератору

119. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 02:42 
ну-ну. ждём your entry.
Ответить | Правка | ^ к родителю #117 | Наверх | Cообщить модератору

105. "Возобновлено соревнование по написанию самого..."  –1 +/
Сообщение от Аноним (??) on 15-Ноя-11, 00:53 
>
> это С, да.

И что? Ну вон там из си++ вообще какой-то 1С сделали. Поматерился полдня - вот тебе и программа. Они на си++ не пишут, они им разговаривают. Просто #define'ы правильные воткнуть надо :)

Тем не менее, одно дело программа на повы...ться, а другое - программа писаная всерьез. У лиспа как-то сильно дохрена совершенно одинаковых скобок. Авторам си в этом плане респект - они осознали что в природе есть минимум 3 типа скобок. А у лисперов на все одни и те же. Мне такое не доставляет.

Ответить | Правка | ^ к родителю #88 | Наверх | Cообщить модератору

108. "Возобновлено соревнование по написанию самого..."  +2 +/
Сообщение от arisu (ok) on 15-Ноя-11, 00:57 
> У лиспа как-то сильно дохрена совершенно одинаковых скобок. Авторам
> си в этом плане респект — они осознали что в природе
> есть минимум 3 типа скобок. А у лисперов на все одни
> и те же. Мне такое не доставляет.

это всего лишь значит, что ты не умеешь писать на лиспе, вот и всё. а потому совершенно не понимаешь, отчего многочисленные попытки «сделать лисп понятней» закономерно фэйлили. на лиспе не пишут программ, на лиспе пишут dsl-и для решения задач. на других языках это или сложно, или невозможно вовсе.

Ответить | Правка | ^ к родителю #105 | Наверх | Cообщить модератору

275. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 30-Ноя-11, 22:50 
>> и те же. Мне такое не доставляет.
> это всего лишь значит, что ты не умеешь писать на лиспе, вот и всё.

Да, и _не_ _хочу_ уметь программить на языке с _таким_ синтаксисом. Я не считаю его для себя удобным и хорошо читаемым. Поэтому у меня не лежит к оному душа. Вроде бы логично что я не умею и не собираюсь уметь на нем программировать.

> а потому совершенно не понимаешь, отчего многочисленные попытки «сделать
> лисп понятней» закономерно фэйлили. на лиспе не пишут программ, на лиспе
> пишут dsl-и для решения задач. на других языках это или сложно,
> или невозможно вовсе.

Ну, пусть пишут. А мне мои задачи явно проще реализовать на чем-то еще.

Ответить | Правка | ^ к родителю #108 | Наверх | Cообщить модератору

276. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 01-Дек-11, 00:13 
упрощу: «я не хочу учиться ездить на велосипеде! каждый раз как я на него садился — падал. мне говорили, что я что-то не так делаю, но я уже привык к самокату.»

да пиши на чём хочешь, мне-то что? я всего лишь пытался тебе намекнуть, что некоторые инструменты требуют обучения. потом ты их можешь применять более эффективно, чем те, что применяешь сейчас — но да, учиться придётся. и принцип работы с лиспом совсем не такой, как принцип работы с сями, например. хочешь — изучай. не хочешь — пользуйся тем, чем пользуешься. твой выбор.

Ответить | Правка | ^ к родителю #275 | Наверх | Cообщить модератору

174. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Michael Shigorin email(ok) on 15-Ноя-11, 23:59 
> У лиспа как-то сильно дохрена совершенно одинаковых скобок. Авторам си в этом плане
> респект - они осознали что в природе есть минимум 3 типа скобок. А у лисперов на все
> одни и те же.

А это палка о двух концах: такой код заодно является данными, его удобно и разбирать, и порождать, причём макросы N-го порядка ещё остаётся шанс применять и анализировать, в отличие от.

Этот бедный синтаксис -- он помудрей многих засахареных по самое некогда.  Просто ложится на голову хорошо вместе с математикой и переключаться между императивными и функциональными языками быстро мало кому получается -- у меня вообще дня три занимает...


Ответить | Правка | ^ к родителю #105 | Наверх | Cообщить модератору

178. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 16-Ноя-11, 00:07 
> переключаться между
> императивными и функциональными языками быстро мало кому получается -- у меня
> вообще дня три занимает...

угу, это да. особенно прикольная каша в голове получается, когда, например, пишешь реализацию схемы, и надо мыслить в обеих парадигмах.

Ответить | Правка | ^ к родителю #174 | Наверх | Cообщить модератору

237. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 16-Ноя-11, 22:54 
> Этот бедный синтаксис -- он помудрей многих засахареных по самое некогда.  

Просто лично мне в куче одинаковых скобок как-то проще ошибаться с их предназначением и иерархией. В сиобразных синтаксисах различные формы скобок очень способствуют пониманию на кой хрен они в конкретном месте вообще поставлены. А когда пять уровней одинаковых скобок рядом но их предназначение напрочь разное - меня это напрягает.

> Просто ложится на голову хорошо вместе с математикой и переключаться между
> императивными и функциональными языками быстро мало кому получается -- у меня
> вообще дня три занимает...

Я на такую кучу скобочек вообще переключаться не хочу. Мне не нравится такой синтаксис. Можно конечно и при помощи одной команды subleq написать любую программу. Сущностей будет минимум, синтаксис доступен даже обезьяне, но вот только программить будет очень геморройно. Как раз потому что 100500 одинаковых сущностей подряд мало чего говорят о логике программы пока не отпарсишь лично все 100500 своим взглядом. ИМХО, разные типы скобок придают программе более читаемый и структурированный вид, так что предназначение конструкции быстрее определяется чисто визуально.

Ответить | Правка | ^ к родителю #174 | Наверх | Cообщить модератору

239. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 16-Ноя-11, 23:02 
> когда пять уровней одинаковых скобок рядом но их предназначение напрочь разное

какое такое «разное»? O_O алё, марсианцы, у вас там свой, самостийный лисп?

p.s. специально для удобства парзер некоторых Схем допускает использование [] вместо ().

p.p.s. и ещё раз удивлюсь: зачем же писать на «чистом лиспе»? просто потому, что его возможности метапрограммирования очень непривычны? так это повод вникнуть в концепцию и начать ней пользоваться. хотя есть и недостаток: потом на других языках дико выбешивает отсутствие таких фич.

Ответить | Правка | ^ к родителю #237 | Наверх | Cообщить модератору

265. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 17-Ноя-11, 21:28 
> какое такое «разное»? O_O алё, марсианцы, у вас там свой, самостийный лисп?

Ну на первый взгляд выглядит как будто там вообще все одними скобками делается. Что в объявлениях, что в отделениях блоков кода, етц. Или я что-то не понял?

> p.s. специально для удобства парзер некоторых Схем допускает использование [] вместо ().

Ну я рад за них.

> p.p.s. и ещё раз удивлюсь: зачем же писать на «чистом лиспе»? просто
> потому, что его возможности метапрограммирования очень непривычны? так это повод вникнуть
> в концепцию и начать ней пользоваться. хотя есть и недостаток: потом
> на других языках дико выбешивает отсутствие таких фич.

Тут наверно разница в подходе. Если я беру в лапы компилер - то это не потому что мне приспичило подр^W на высокие концепции, а потому что я всего лишь хочу разрулить какую-то свою практическую задачку которая показалась мне интересной. При этом я шкурно заинтересован чтобы от того как это работает прежде всего не проблевался я сам, для начала. Всякие там си хороши тем что генерят достаточно резвый код. Еще они позволяют программировать системы очень разного калибра. Ну вот например микроконтроллер ценой в доллар на си программируется на ура. Это законченная система с процессором, флеш-памятью и оперативой на борту и масса периферии. И оно может здорово расширить мои возможности. Позволив измерять кучу величин, отмерять микросекунды, управлять в реальном времени различными процессами или реализуя некий прибор аналогов которого может тупо не существовать в природе(или только по неразумной цене). Что мне там ловить с этим вашим лиспом? Его для таких применений элементарно нет. А изучать 100500 синтаксисов всерьез?  А смысл? Я ленивый бастард и не ставлю целью подр^W на концепции сами по себе, уж извините :)

Ответить | Правка | ^ к родителю #239 | Наверх | Cообщить модератору

266. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 17-Ноя-11, 21:37 
> Ну на первый взгляд выглядит как будто там вообще все одними скобками
> делается. Что в объявлениях, что в отделениях блоков кода, етц. Или
> я что-то не понял?

в общем-то да, не понял. по сути, программа на лиспе — это прямая запись AST (что и даёт возможность метапрограммирования). отсюда и логичное единообразное представление. опять же, code is data.

> Тут наверно разница в подходе.

да, причём кардинальная. лисперы тоже решают свои конкретные задачи. только вместо приспосабливать задачу к языку, они приспосабливают свой язык к задаче.

> Его для таких применений элементарно нет.

если ты чего-то не видел, это не значит, что его не существует. на CL вполне себе операционки пишут, и компиляторы вполне себе хорошие и оптимизирующие есть, и много ещё чего интересного. просто ты об этом не знаешь, потому что не интересовался и не копал. это как если бы я увидел на си «приветмир» и стал говорить, что си ужасен, ничего сложного на нём написать нельзя, гуи невозможны и так далее.

Ответить | Правка | ^ к родителю #265 | Наверх | Cообщить модератору

249. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Michael Shigorin email(ok) on 17-Ноя-11, 01:41 
> Просто лично мне в куче одинаковых скобок как-то проще ошибаться с их
> предназначением и иерархией.

Так есть вполне сложившаяся традиция записи, и оба редактора её прекрасно умеют.  При этом между гирляндами вполне можно поместить комментарии.  Вот пример вида ужас-ужас -- думаю, сгодится проиллюстрировать, что при аккуратном написании всё вообще хорошо: http://tinyurl.com/crmuyaq

> В сиобразных синтаксисах различные формы скобок очень способствуют
> пониманию на кой хрен они в конкретном месте вообще поставлены.
> А когда пять уровней одинаковых скобок рядом но их предназначение напрочь разное
> - меня это напрягает.

Вы это уже озвучили, а я понял.  Попробуйте из программы с сиобразным синтаксисом распарсить или сгенерить кусок кода программы с сиобразным синтаксисом, а потом сравните со скобочками, в которых всё уже разложено.

Да и дело не только (и не столько) в удобстве машины, а в другом _подходе_.

> Я на такую кучу скобочек вообще переключаться не хочу.

Так кто ж заставляет.  Можно для разминки поразмышлять, что пайп в шелле -- это тоже такое себе ФП: с одной стороны выдали, с другой подхватили.  Некоторые предпочитают тому, чтоб лопатить куски на перле или там полнокранными приложениями заменять.

> ИМХО, разные типы скобок придают программе более читаемый и структурированный вид,
> так что предназначение конструкции быстрее определяется чисто визуально.

Если в Вас когда-то был математик, то когда-нибудь Вы будете на себя в обиде за такие фразы. :)

http://www.altlinux.org/Scheme/Tutorial

PS: каюсь, это злейший офтопик в теме про си. :)

Ответить | Правка | ^ к родителю #237 | Наверх | Cообщить модератору

252. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 17-Ноя-11, 02:29 
> http://www.altlinux.org/Scheme/Tutorial

вай, даже так. плюсадинвкарму альту.

Ответить | Правка | ^ к родителю #249 | Наверх | Cообщить модератору

254. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 17-Ноя-11, 17:12 
> Так есть вполне сложившаяся традиция записи,

Посмотрев на несколько программ на этом я как-то не ощутил особого комфорта. Не знаю насколько они там следовали традициям записи, но кучи одинаковых на вид скобок лично меня не радуют.

> и оба редактора её прекрасно умеют.

А я не собираюсь ограничиваться двумя редакторами, когда на планете есть сотни. Если вы про vim и emacs, можете меня закидать ссаными тряпками, но они мне оба не понравились. Если уж говорить о консольных редакторах, вменяемым лично мне показался nano для простого редактирования (1 конфиг по мелочи) или fte как "консольный програмерский редактор". Иногда по мелочи сгодится встроенный редактор mc, если надо отредактировать немного, быстро и "по месту" в конкретной локации файловой системы.

> При этом между гирляндами вполне можно поместить комментарии.  

Я не сторонник радостной борьбы с любезно предоставленным геморроем, увы.

> Вот пример вида ужас-ужас

Действительно, ужас.

Например:
------
> term))))))

------
Какой улыбчивый язык :)). Всего 6 одинаковых скобок в ряд?! Правда вот такой смайлик можно и задолбаться парсить глазами. Даже в эдиторе "с костылями" (умеющем фолдинг блоков и поиск парных скобок) на глаз такие конструкции схватываются как-то не очень, а их "парсинг" для понимания "а что это и зачем?" имхо довольно неудобен. Привыкнуть конечно можно ко всему, но после "сишного" синтаксиса (curly bracket) мне к такому привыкать как-то не очень то и хочется. В curly bracket такие конструкции читабельнее получаются.

> -- думаю, сгодится проиллюстрировать, что при аккуратном написании
> всё вообще хорошо: http://tinyurl.com/crmuyaq

Угу. Взгляд упал на 6-уровневое закрытие скобок. Не хочу ничего сказать но в curly bracket столь невкусные конструкции встречаются куда реже. А разный вид скобок подчеркивает их разное предназначение, что сложно назвать неправильным.

>> А когда пять уровней одинаковых скобок рядом но их предназначение напрочь разное
>> - меня это напрягает.
> Вы это уже озвучили, а я понял.  Попробуйте из программы с сиобразным
> синтаксисом распарсить или сгенерить кусок кода программы с сиобразным синтаксисом,
> а потом сравните со скобочками, в которых всё уже разложено.

Я не писатель компиляторов и прочих кодогенераторов, поэтому данные неудобства как-то более-менее пролетают мимо меня. И вообще я туго представляю себе зачем мне это нужно. А еще я не умею стоять на голове и ходить на руках. Но каких-то фатальных неудобств от этого я не испытываю. Да, некоторые это умеют. Ну и пусть себе умеют, отсюда не следует что мне надо бросить все и учиться ходить на руках.

> Да и дело не только (и не столько) в удобстве машины, а в другом _подходе_.

Мне достаточно моего персонального неудобства в парсинге таких конструкций чтобы не желать иметь с ними дела. А машинам, если уж на то пошло, с их байтами и регистрами вообще удобнее всего в плане парсинга бинарные конструкции (которые еще и максимально компактны к тому же). Правда вот они для двуногих бывают не очень удобны в парсинге.

>> Я на такую кучу скобочек вообще переключаться не хочу.
> Так кто ж заставляет.  Можно для разминки поразмышлять, что пайп в
> шелле -- это тоже такое себе ФП: с одной стороны выдали, с другой подхватили.  

Ну если настолько в дебри лезть - то так можно назвать любое межпроцессное взаимодействие программированием. Насколько это будет правдой - вопрос интересный. До некоторой степени компоновка желаемой логики пачкой пайпов похоже на программирование в принципе.

> Некоторые предпочитают тому, чтоб лопатить куски на
> перле или там полнокранными приложениями заменять.

Ничего не имею против пайпов, пользуюсь. Удобно временами, факт. Хоть это и называется решением "из г-на и палок", но когда оно надо на 1-2 раза или раз в год - вполне себе вариант. А таких ситуаций почему-то как раз оказывается предостаточно.

>> ИМХО, разные типы скобок придают программе более читаемый и структурированный вид,
>> так что предназначение конструкции быстрее определяется чисто визуально.
> Если в Вас когда-то был математик, то когда-нибудь Вы будете на себя
> в обиде за такие фразы. :)

Я скорее инженер чем математик. Матаппарат для меня - средство, инструмент, а не самоцель. Тем не менее, замечу что математики кажется и придумали использовать разные по форме скобки. В навороченных выражениях они применяют минимум 3 типа скобок чтобы сделать сие более читаемым. Иначе когда у вас 6 уровней одинаковых скобок в ряд - вы очень даже можете запутаться в их иерархии и накосячить. А вот пересчитывать вычисления или преобразования на тетрадный лист размером - любителей мало.

> http://www.altlinux.org/Scheme/Tutorial
> PS: каюсь, это злейший офтопик в теме про си. :)

О, еще какой-то язык для любителей смайликов :))

Ответить | Правка | ^ к родителю #249 | Наверх | Cообщить модератору

256. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Michael Shigorin email(ok) on 17-Ноя-11, 17:40 
>> и оба редактора её прекрасно умеют.
> А я не собираюсь ограничиваться двумя редакторами, когда на планете есть сотни.

Да при чём тут "ограничиваться"... а подковырка была в том, что редакторов и действительно есть две штуки, и если человек ещё не упирался головой в потолок используемого инструментария -- то это для существенной части из этих "сотен" вопрос времени при толковом человеке.

> Действительно, ужас. Например:
>> term))))))

Не, это как раз не ужас.  Когда что-то закрывается до упора, это тривиально проверяется (разумеется, подсветкой, а не отсчётом на плюс-минус глазами).

> такой смайлик можно и задолбаться парсить глазами. Даже в эдиторе "с
> костылями" (умеющем фолдинг блоков и поиск парных скобок) на глаз такие
> конструкции схватываются как-то не очень

Так всё-таки задолбаться или костылями?  Определитесь, что ли.  Да что там, даже в mcedit хотя бы подсветка парных скобок есть (в vim по ним ещё и удобно прыгать %-ом).

> а их "парсинг" для понимания "а что это и зачем?" имхо довольно неудобен.

Да так и скажите уже -- "непривычен".  Для понимания-то нормален, только голову надо перестроить из арифметики по шагу за раз в алгебру.

Впрочем, о вкусах не спорят и утверждать, что именно мой правилен -- глупо. :)

> Угу. Взгляд упал на 6-уровневое закрытие скобок. Не хочу ничего сказать но
> в curly bracket столь невкусные конструкции встречаются куда реже.

Да ну.  Просто занимает больше строк в явном или неявном виде.

> Я не писатель компиляторов и прочих кодогенераторов, поэтому данные неудобства
> как-то более-менее пролетают мимо меня. И вообще я туго представляю себе зачем мне
> это нужно.

Бывает полезно для обобщения решения задачи, чтоб не индусить.  Скорее в прикладухе, чем в системном программировании, конечно.

>> Так кто ж заставляет.  Можно для разминки поразмышлять, что пайп в
>> шелле -- это тоже такое себе ФП: с одной стороны выдали, с другой подхватили.
> Ну если настолько в дебри лезть - то так можно назвать любое
> межпроцессное взаимодействие программированием.

Не, я серьёзно.  Попробуйте обойтись в скриптах без пайпа, а потом подумайте, что можете терять и в других областях применения ЯП.

>> Если в Вас когда-то был математик, то когда-нибудь Вы будете на себя
>> в обиде за такие фразы. :)
> Я скорее инженер чем математик.

Это заметно (не наезд!).  Но одни инженеры предпочитают "на глазок", другие всё же заморачиваются расчётами, а то и матмоделями.  Чтобы сгородить нетривиальное и оно не развалилось под своим весом, приходится заморачиваться.

Ответить | Правка | ^ к родителю #254 | Наверх | Cообщить модератору

257. "Возобновлено соревнование по написанию самого..."  +1 +/
Сообщение от arisu (ok) on 17-Ноя-11, 19:08 
> в curly bracket столь невкусные конструкции встречаются куда реже


if (a) {
  if (b) {
    if (c) {
      …
    }
  }
}

(if a
  (if b
    (if c
      …
    )
  )
)


если уж так нравиться тратить целую строку ни на что. где разница?
при этом лисповый исходник элементарно реформатируется во что угодно простейшей программой на лиспе — потому что он одновременно и данные. а сишный с трудом жуётся огромным indent'ом.
Ответить | Правка | ^ к родителю #254 | Наверх | Cообщить модератору

269. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 18-Ноя-11, 15:14 
> если уж так нравиться тратить целую строку ни на что.

На читаемость. Потому что 6 скобок в ряд совершенно не рулят, ИМХО. Чтобы понять к чему они относятся, в них надо нудно тыкать.

> где разница?

А разница будет например если еще и в логическом условии if'а захотеть несколько скобок, например. Ну или в определениях и прочая. В curly bracket это более сносно, потому что скобки разные.

> при этом лисповый исходник элементарно реформатируется во что угодно простейшей программой
> на лиспе — потому что он одновременно и данные. а сишный
> с трудом жуётся огромным indent'ом.

Программ для переформатирования исходников в мире придумано уже достаточно, в том числе и для сишных сырцов. Честное пионерское, у меня ни разу не возникало даже желание заняться построением велосипедов (а зачем мне делать то что уже сделано?). Проще сказать apt-get install, блин. Грубо говоря, у меня нет цели окостылить все вокруг своим персональным велосипедом. А еще я например фиг с два напишу gcc. Но мне это не страшно - потому что он уже есть и намного лучше работает чем то что написал бы сам за какое-то разумное время. Отсюда кстати не следует что его сырцы мне бесполезны, как минимум я могу пересобрать его с потребными мне кастомными опциями, кросскомпиля на платформе типа "шило" под платформу типа "мыло", при том что общего у них чуть менее чем ничего, кроме того факта что и там и там компилируется си :).

Ответить | Правка | ^ к родителю #257 | Наверх | Cообщить модератору

258. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 17-Ноя-11, 19:13 
а вот кстати если хочешь немного взрыва мозга, то (уж не помню, сам я это родил, или спёр где; не суть):

(define-macro (fluid-let xexe . body)
    (let ((xx (map car xexe))
          (ee (map cadr xexe))
          (old-xx (map (lambda (ig) (gensym)) xexe))
          (result (gensym)))
      `(let ,(map (lambda (old-x x) `(,old-x ,x))
                  old-xx xx)
         ,@(map (lambda (x e)
                  `(set! ,x ,e))
                xx ee)
         (let ((,result (begin ,@body)))
           ,@(map (lambda (x old-x)
                    `(set! ,x ,old-x))
                  xx old-xx)
           ,result))))

не пытайтесь повторить это дома, да. но тем не менее, с языками, где нельзя генерировать куски программы в процессе компиляции, такой финт не пройдёт.

на самом деле ничего сложного тут нет -- это не сложнее сей. а где-то даже понятней.

для пуристов: да, это схема. нет, "гигиенические макросы" я не люблю.

p.s. надеюсь, я достаточно тебя напугал, чтобы в ближайшие лет 20 даже с испугу тебя не посетила мысль разобраться с лиспом?

Ответить | Правка | ^ к родителю #254 | Наверх | Cообщить модератору

118. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 15-Ноя-11, 02:34 
>> макроассемблер да, а хороший то почему?
> а чем он плох?

описывать все недостатки сил не хватит. но из простейших - нет массивов и строк, нет цикла с заданным числом повторений, нет булева типа (отсюда вообще куча анекдотов типа if(i=1)) или
for(i=0;i<10;i++)  for(i<10; i=0;i++) for(i++;i<10;i<10) что все синтаксически правильны

вообще такие вопросы (вы ведь не просто тролль?) говорят либо о том что человек не просто одного языка кроме ц не видел, но и совершенно лишен критического взгляда, ну или уже что-то не по моей части


Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

142. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 16:20 
> описывать все недостатки сил не хватит. но из простейших - нет массивов

Это точно про си?!

> и строк,

Кто украл у си строки?!

> нет цикла с заданным числом повторений, нет булева типа
> (отсюда вообще куча анекдотов типа if(i=1)) или
> for(i=0;i<10;i++)  for(i<10; i=0;i++) for(i++;i<10;i<10) что все синтаксически правильны

Хаха, на сях просто цикл относительно честно выглядит. Примерно так оно и отправится в процессор - с инкрементом/декрементом и проверкой условия выхода.

> вообще такие вопросы (вы ведь не просто тролль?) говорят либо о том
> что человек не просто одного языка кроме ц не видел, но
> и совершенно лишен критического взгляда, ну или уже что-то не по моей части

Вы забыли сущую фигню: покажите что-то лучше пригодное для системного программирования?!

Ответить | Правка | ^ к родителю #118 | Наверх | Cообщить модератору

156. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 19:30 
>> описывать все недостатки сил не хватит. но из простейших — нет массивов
> Это точно про си?!
>> и строк,
> Кто украл у си строки?!

на самом деле нет *типов* таких. в понимании «тип + операции над ним как одно целое». только в виде «давайте вот этот участок памяти как бы будет строкой».

человек просто совершенно не понимает область применения си. а соответственно слабо врубается, отчего там нет подобных абстракций типа строк и их реализации, раз и навсегда прибитой гвоздями к компилятору.

Ответить | Правка | ^ к родителю #142 | Наверх | Cообщить модератору

173. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 23:57 
> на самом деле нет *типов* таких.

Типов "нет", а операции над ними - есть.

> в понимании «тип + операции над  ним как одно целое». только в виде «давайте вот этот участок
> памяти как бы будет строкой».

Ну и договоренности что кончается нулем, тогда уж. Спорный вопрос баг это или фича. В других языках можно натрахаьться с всякой там сериализацией-десереализацией когда захочется суперпуперобъект в файло слить или там по сетке передать. А тут все просто и понятно как раз.

> отчего там нет подобных абстракций типа строк и их реализации, раз
> и навсегда прибитой гвоздями к компилятору.

Да я заметил - дай волю некоторым урюкам они и демоны на питоне или яве напишут запросто. И ядро бы написали, да кишка тонка.

Ответить | Правка | ^ к родителю #156 | Наверх | Cообщить модератору

180. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 16-Ноя-11, 00:09 
>> на самом деле нет *типов* таких.
> Типов "нет", а операции над ними - есть.

всё в стиле "вот этот деревянный меч кагбэ Дюрандаль".

> Ну и договоренности что кончается нулем, тогда уж.

не всегда. зависит от библиотеки же.

> Спорный вопрос баг это или фича.

фича, в общем-то, учитывая изначальную область применения языка.

Ответить | Правка | ^ к родителю #173 | Наверх | Cообщить модератору

238. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 16-Ноя-11, 22:57 
> всё в стиле "вот этот деревянный меч кагбэ Дюрандаль".

Да и хрен бы с ним :) свое дело делает же. А то что гламурным прикладникам фанатеющим по бизнес логике не нравится - так и хрен бы с ними, пусть на своих явах и питонах свой энтерпрайзный крап наворачивают :)

Ответить | Правка | ^ к родителю #180 | Наверх | Cообщить модератору

241. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 16-Ноя-11, 23:04 
>> всё в стиле «вот этот деревянный меч кагбэ Дюрандаль».
> Да и хрен бы с ним :) свое дело делает же.

делает. просто всегда находится удивительный человек, который начинает с умным видом Вещать: «вас обманули, это не Дюрандаль, это обычная деревянная чурка!» а когда ему говорят: «да, мы знаем. и что?» так забавно начинает подпрыгивать и что-то лопотать…

Ответить | Правка | ^ к родителю #238 | Наверх | Cообщить модератору

255. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 17-Ноя-11, 17:16 
> ему говорят: «да, мы знаем. и что?» так забавно начинает подпрыгивать
> и что-то лопотать…

Какое эпичное описание шаблона :))

Ответить | Правка | ^ к родителю #241 | Наверх | Cообщить модератору

65. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 23:08 
> цпп — да. а ц — хороший макроассемблер.

Главное портабельный и высокоуровневый ;-]

Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

46. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 22:41 
> В жабе же (как и в ц++) есть ссылки, поэтому танцев с бубном не надо.  

А знаешь, указатели иногда не лишние, если хочется получить настоящий, неподдельный zero copy во всей красе.  Ну вот висит в памяти чушка, мегабайтов так эн. Пусть мы хотим треть из нее заадресовать. А чтоб без копирования, и только треть? Адресной арифметикой как делать нехрен. А как с этим в яве?

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

52. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 22:52 
> А как с этим в яве?

Ну так разберитесь как и покритикуйте сравнительно с еще парой языков.


Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

66. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 23:09 
> Ну так разберитесь как и покритикуйте сравнительно с еще парой языков.

Пусть жабисты выскажутся. Мне эта ваша ява никуда не вперлась - я ей пользоваться не собираюсь. Достаточно посмотреть на программы на яве и тех кто ей пользоваться, чтобы понять что мне не по пути, извините.

Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

75. "Возобновлено соревнование по написанию самого запутанного ко..."  +1 +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 23:18 
> Пусть жабисты выскажутся. Мне эта ваша ява никуда не вперлась - я  ей пользоваться не собираюсь. Достаточно посмотреть на программы на яве и  тех кто ей пользоваться, чтобы понять что мне не по пути, извините.

Ну а я ц пользовался. И еще много чем. В этом и разница.

Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

106. "Возобновлено соревнование по написанию самого запутанного ко..."  +1 +/
Сообщение от Аноним (??) on 15-Ноя-11, 00:55 
> Ну а я ц пользовался. И еще много чем. В этом и разница.

Судя по тому какую чепуху вы про 100-мерные массивы втерли - быдлокодерствовать в принципе можно даже на си. Только он категорически неудобен для быдлокодинга, поэтому быдлокодеры его не жалуют :)

Ответить | Правка | ^ к родителю #75 | Наверх | Cообщить модератору

127. "Возобновлено соревнование по написанию самого запутанного ко..."  +1 +/
Сообщение от anonymous vulgaris on 15-Ноя-11, 03:33 
> Судя по тому какую чепуху вы про 100-мерные массивы втерли

так что ж вы правду то скрывате, поделитесь с цшниками, а то мне созерцать вещи типа int ***array3D = malloc(x * sizeof(int **)) надоело уже

в ц++ хоть можно a[] использовать, но вот a[][] уже нельзя

Ответить | Правка | ^ к родителю #106 | Наверх | Cообщить модератору

143. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 16:42 
> в ц++ хоть можно a[] использовать, но вот a[][] уже нельзя

Вазап?! А как же я ими тогда пользуюсь?!?

В гольном си:
uint8_t array[2][3][4][5] - вполне себе 4-мерный массив. Вполне себе валидный. И  sizeof(array) вполне ожидаемый и логичный - 120.

Передается сие _одним_ указателем совершенно без проблем. Потому что физически сие есть одна 120-байтовая структура, которую если хочется можно рассматривать как 4-мерный массив.

А то что вы привели - это указатель на массив указателей. За коим хреном именно так - ну спросите у того кто это придумал, да?

Ответить | Правка | ^ к родителю #127 | Наверх | Cообщить модератору

157. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 19:31 
не стоит метать бисер: си оно не знает. подозреваю, что остальных языков, которыми размахивало, тоже.
Ответить | Правка | ^ к родителю #143 | Наверх | Cообщить модератору

214. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от anonymous vulgaris on 16-Ноя-11, 01:51 
> В гольном си:  uint8_t array[2][3][4][5] - вполне себе 4-мерный массив. Вполне себе валидный. И  sizeof(array) вполне ожидаемый и логичный - 120.

Нет это просто праздник безграмотности какой-то. Вы же с коллегами даже разницу между статическим и динамическим массивом не понимаете. Это твердая двойка.

Чисто из жалости даю ссылку
Dynamic Three Dimensional Arrays in C\C++\C#\Java
http://mycodelog.com/2010/05/21/array3d/


>> в ц++ хоть можно a[] использовать, но вот a[][] уже нельзя
> Вазап?! А как же я ими тогда пользуюсь?!?

Естественно a[][] не пользуетесь поскольку язык не позволяет (а я вообще начинаю сомневаится что вы ц когда нибудь видели). И естественно опять не видите элементарного - разницы между пустой скобочкой и с цифиркой внутри. Вы все таки учебник то почитайте. Вместе с коллегами.

Опять только из жалости
http://c-faq.com/~scs/cclass/int/sx9a.html
That is, if we want to leave out any dimensions, we can only leave out the first one:
    func(int a[][7])
    {
    ...
    }
The second dimension is still required. (For a three- or more dimensional array, all but the first dimension are required; again, only the first dimension may be omitted.)


Ответить | Правка | ^ к родителю #143 | Наверх | Cообщить модератору

215. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от anonymous vulgaris on 16-Ноя-11, 01:58 
Ну и как последний пост в обучении продвинутых дошкольников

рекомендую сравнить работу с динамическими массива в этих языках

Dynamic Three Dimensional Arrays in C\C++\C#\Java
http://mycodelog.com/2010/05/21/array3d/

с тем как это делается в языках для людей

...
a: array of array of array of data;
SetLength(a, x, y, z);
...

Ответить | Правка | ^ к родителю #214 | Наверх | Cообщить модератору

216. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 16-Ноя-11, 01:59 
о! ВНИЗАПНА! из рукава добыли «динамические массивы», о которых ранее речь не шла. какой следующий шулерский трюк нас ожидает?
Ответить | Правка | ^ к родителю #214 | Наверх | Cообщить модератору

225. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 16-Ноя-11, 21:17 
> о! ВНИЗАПНА! из рукава добыли «динамические массивы», о которых ранее речь не  шла. какой следующий шулерский трюк нас ожидает?

То есть вы с коллегой никогда не имели дела с динамическим массивами, но искренне полагаете что с пониманием статических (псевдо)массивов в ц у вас все в порядке. Ну что ж посмотрим

>uint8_t array[2][3][4][5] - вполне себе 4-мерный массив. Вполне себе валидный. И  sizeof(array) вполне ожидаемый и логичный - 120.

раз вы думаете что в ц sizeof имеет такое уж прямое отношение к типу то будете приятно удивлены (в ц логика видимо неевклидова). Попробуем посмотреть какого типа это образование на самом деле. Делаем присвоение (ц ведь язык типизированный и левое присвоение не сделает, так?)

void* parray = array;

(заметим - не &array а просто array но это если кто понимает разницу, а самое забавное теперь сделать  cout << sizeof(parray) << endl; и сравнить с cout << sizeof(array) << endl и поискать логику)

ну и, вполне ожидаемо и логично (для тех кто ц знает), оказывается что array это такой слегка замаскированный  указатель. А что же sizeof? Ну это костыль такой, и спасибо авторам замечательного языка хоть за него, да. Но кто видел нормальную реализацию массивов тому печально. sizeof ведь тут показывает только полный размер массива, а размер по каждому индексу узнать нельзя увы. такой вот статический "многомерный массив" получается.

Ответить | Правка | ^ к родителю #216 | Наверх | Cообщить модератору

233. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 16-Ноя-11, 22:37 
> То есть вы с коллегой никогда не имели дела с динамическим массивами,

Это вы, сэр, облажались. В вашем тексте предъяв исходно слово "динамический" нигде не фигурирует. Вы просто обгадили все массивы без разбора, сделав вид что так и надо. А получив контрпример как демонстрацию что вы гонщик - резко вытащили карту из рукава. Нормально придумано!

> но искренне полагаете что с пониманием статических (псевдо)массивов в ц у
> вас все в порядке. Ну что ж посмотрим
>>uint8_t array[2][3][4][5] - вполне себе 4-мерный массив. Вполне себе валидный. И  sizeof(array) вполне ожидаемый и логичный - 120.
> раз вы думаете что в ц sizeof имеет такое уж прямое отношение к типу

Я по-моему не делал таких громких заявлений. sizeof имеет отношение к фактическому размеру некоей сущности в памяти.

> то будете приятно удивлены (в ц логика видимо неевклидова).

???

> Попробуем посмотреть какого типа это образование на самом деле.

На самом деле это тупо 120 байтов лежащих в памяти. При желании повы...ться их можно трансформировать во что угодно и в половине случаев накосячить, если ж-а просит приключений. Вот только зачем это делать? Поиграйтесь лучше с заряженным револьвером, если делать нехрен и хочется себе что-нибудь прострелить.

> Делаем присвоение (ц ведь язык типизированный и левое присвоение не сделает, так?)

В случае арифметики с указателями и фокусов наподобие вашего - это слишком вольное допущение. По факту указатель вообще лишь адрес в памяти. В принципе плевать какие там данные там лежат.

> void* parray = array;

А тип нового указателя "void" совершенно случайно выбран, а вовсе не для того чтобы всех успешно нае...ть, ну конечно же :)

> (заметим - не &array а просто array но это если кто понимает
> разницу, а самое забавное теперь сделать  cout << sizeof(parray) <<
> endl; и сравнить с cout << sizeof(array) << endl и поискать логику)

Нормально, из сей уже без предупреждения получились плюсы, была проделана архиподозрительная манипуляция с указателями в результате удалось всех нае...ть и виноват в этом конечно же си? :)))

> ну и, вполне ожидаемо и логично (для тех кто ц знает), оказывается
> что array это такой слегка замаскированный  указатель.

А вы оказывается тоже Капитан?!

> А что же sizeof? Ну это костыль такой, и спасибо авторам замечательного языка хоть
> за него, да. Но кто видел нормальную реализацию массивов тому печально.

Бухахаха, возможности си по откалыванию подобных фокусов - это не баг, это фича. Ты еще удивись что на ассемблере можно в регистры проца сунуться и обнаружить что надо же, процу пофиг, грузишь ты в регистр кусок строки или int, для него один хрен и так и сяк один черт байтики с которыми некие операции можно проделать.

> sizeof ведь тут показывает только полный размер массива, а размер по
> каждому индексу узнать нельзя увы. такой вот статический "многомерный массив" получается.

Зачем искать проблемы на ровном месте там где их нет? Да, на си можно создать себе проблемы если задаться такой целью. Си не защищен от идиотов и никогда таковым не планировался даже в проекте. Приколитесь?! Вы еще в ассемблере защиту от идиотов для самых маленьких потребуйте! Для полного эффекта клоунады.

Ответить | Правка | ^ к родителю #225 | Наверх | Cообщить модератору

246. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 16-Ноя-11, 23:32 
>> То есть вы с коллегой никогда не имели дела с динамическим массивами,  Это вы, сэр, облажались. В вашем тексте предъяв исходно слово "динамический" нигде  не фигурирует.

в ответ на мой пост 127

>мне созерцать вещи типа int ***array3D = malloc(x * sizeof(int **)) надоело уже

и
>.в ц++ хоть можно a[] использовать, но вот a[][] уже нельзя

Я получаю пост 143

>uint8_t array[2][3][4][5] - вполне себе 4-мерный массив

т.е. очередной цшник не понимает что значат и где применяются абсолютно стандартные вещи типа int ***array3D = malloc(x * sizeof(int **)) или a[] и a[][] ???

>Вы просто обгадили все массивы без разбора, сделав вид  что так и надо. А получив контрпример как демонстрацию что вы  гонщик - резко вытащили карту из рукава. Нормально придумано!

Чего там в примере хорошего. Как ваш массив передать в функцию? Надо передать указатель и ДОПОЛНИТЕЛЬНО размеры массива. Вот и оказывается что массив то не массив, информации для работы с ним в нем недостаточно.

> Я по-моему не делал таких громких заявлений. sizeof имеет отношение к фактическому  размеру некоей сущности в памяти.

Некоей сущности. Тогда при чем здесь массив. Это же должна быть не некая сущность а структура данных с известными параметрами. Вся ось это тоже некотрая сущность в памяти.

>> то будете приятно удивлены (в ц логика видимо неевклидова).
> ???

Специально для вас поясню - это шутка юмора.

>> Попробуем посмотреть какого типа это образование на самом деле.
> На самом деле это тупо 120 байтов лежащих в памяти.

О чем и речь. В ц натурально да, массив это не массив а область памяти (причем даже размер ее не всегда можно определить в принципе). Как и строка (что будет если там 0 забудут поставить). В многих других языках уже давно нет. В той же жабе например.

>При желании повы...ться их можно трансформировать во что угодно и в половине случаев накосячить, если ж-а просит приключений. Вот только зачем это делать?

Настоящие программисты не делают ошибок - это мне конечно известно. Наверное поэтому каждая третья новость тут об уязвимостях типа переполнения буфера и т.п.

>Нормально, из сей уже без предупреждения получились плюсы,

Да уж cout вместо printf совершенно поменял дело

>> void* parray = array;
> А тип нового указателя "void" совершенно случайно выбран, а вовсе не для  того чтобы всех успешно нае...ть, ну конечно же :)

Да ладно, попробуйте любопытства ради то же не с массивом
int a=5;
void* pa = a;
Что получилось? Ну да это все не баги а фичи конечно же. Чтобы конкурсы устраивать.

> Бухахаха, возможности си по откалыванию подобных фокусов - это не баг, это

О чем и речь. Язык для откалывания фокусов да. Целиком согласен. И в заголовке новости то же самое. Хотелось бы еще чего нибудь для удобного и приятного программирования. Например жаба хоть и вобрала в себя многие недостатки ц, но кое что и исправила. Жаль компилятор к ней так и не написали толком. Ну и алголоподобные языки конечно вещь.

>Си не защищен от идиотов и никогда таковым не планировался даже в проекте. Вы еще в ассемблере защиту от идиотов для самых маленьких потребуйте!

Странный вы какой то. Я ничего не требую, я указываю на недостатки, говорю где они устранены. И сам стараюсь ц не пользоваться по мере сил.

Ответить | Правка | ^ к родителю #233 | Наверх | Cообщить модератору

259. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 17-Ноя-11, 19:17 
>>мне созерцать вещи типа int ***array3D = malloc(x * sizeof(int **)) надоело уже
> и
>>.в ц++ хоть можно a[] использовать, но вот a[][] уже нельзя
> Я получаю пост 143
>>uint8_t array[2][3][4][5] - вполне себе 4-мерный массив

Ну мне кажется неправильным домысливать за вас ваши же претензии. Поэтому вам придется формулировать их четко и понятно самому. Я конечно мог погадать на кофейной гуще что вы имеете претензии только к динамическому выделению памяти и массивов в частности, но из вашей формулировки это ниоткуда не следует, а настолько нагло домысливать за собеседника половину условий как-то неправильно.

> т.е. очередной цшник не понимает что значат и где применяются абсолютно стандартные
> вещи типа int ***array3D = malloc(x * sizeof(int **)) или a[] и a[][] ???

Нет, очередной сишник не понимает какого фига надо сделать глобальное и неправильное заявление а потом для прикрытия своего зада доставать туз из рукава.

> Чего там в примере хорошего. Как ваш массив передать в функцию? Надо
> передать указатель и ДОПОЛНИТЕЛЬНО размеры массива. Вот и оказывается что массив
> то не массив, информации для работы с ним в нем недостаточно.

А еще "дефолтной" реализации строк предъявляют что неизвестен их размер. Но тоже можно его передать, если хочется. Ну, что там у нас про деревянные мечи? :)

>> Я по-моему не делал таких громких заявлений. sizeof имеет отношение к фактическому  размеру некоей сущности в памяти.
> Некоей сущности. Тогда при чем здесь массив.

Только при том что он тоже сущность и для него sizeof вполне имеет физический смысл.

> Это же должна быть не некая сущность а структура данных с известными параметрами.
> Вся ось это тоже некотрая сущность в памяти.

На самом деле никаких проблем нет. Если некто ведет себя не так как хочется - нет никаких проблем добавить определения и доделать до нужного поведения за 2 минуты и забыть о проблеме как таковой. ИМХО, некоторая "топорность" имеет свои плюсы. Когда структуры простые - их проще сериализовать-десереализовать и это не требует длительного факания мозга вещами типа "размер массива? А какой у него тип, порядок байтов и сколько там вообще байтов надо для описания без потери точности? А сие стандарт или зависит от имплементации языка? Будет ли оно одинаковым на разных системах?".

> Специально для вас поясню - это шутка юмора.

Пятый туз из рукава видимо тоже был своеобразным юмором =)

>>> Попробуем посмотреть какого типа это образование на самом деле.
>> На самом деле это тупо 120 байтов лежащих в памяти.
> О чем и речь. В ц натурально да, массив это не массив а область памяти

Так за это мы его и лю - он не оказывает шибко вумных медвежьих услуг в момент когда этого меньше всего хотелось бы и не пытается переумничать того кто за монитором :)))).

> (причем даже размер ее не всегда можно определить в принципе).

Ну блин, возьмем и передадим его явно. Если уж приспичило. А вы попробуйте 100-мерный массив в файл слить? Так чтобы было портабельно, компактно и работало везде? В этом случае вы пожалуй еще и спасибо скажете, если все размеры будут не только явно указаны но еще и с явным типом а не какими-то имплементационными допущениями, например - их будет проще в файл заталкивать, заранее понимая - что же мы туда собираемся записать все-таки :)

> Как и строка (что будет если там 0 забудут поставить).

О, я как знал что вы расскажете нам про деревянный меч еще раз. Ну елки, не нравятся тебе строки по дефолту? Сделал свои с шахматами и явной передачей длины, например.
//Кстати arisu получает +5 к скиллу телепатии :)))

> В многих других языках уже давно нет. В той же жабе например.

Да и хрен с ней, с этой жабой. Очень нишевая штука для энтерпрайзного барахла, где важно лишь то чтобы было готово еще вчера, ну накрайняк сегодня, а сервера в крайнем случае особо толстая корпорация может и докупить.

>>При желании повы...ться их можно трансформировать во что угодно и в половине случаев накосячить, если ж-а просит приключений. Вот только зачем это делать?
> Настоящие программисты не делают ошибок - это мне конечно известно. Наверное поэтому
> каждая третья новость тут об уязвимостях типа переполнения буфера и т.п.

Ну так удачи вам написать на яве мультимедиа библы, ядра операционок, системные демоны, программы для сжатия и шифрования и прочее. Особенно прикольно когда рантайм-проверки в тугом цикле все сажают минимум раза в три на ровном месте. А бывает и больше. Достаточно посмотреть как жабист на хабре боролся за скорость. Сплошное садо-мазо по борьбе с зело умным рантаймом и его медвежьими услугами, на фоне которых какая-то там передача длины строки отдельно сбоку - так, мелочь. Товарисч просадил _намного_ _больше_ времени на свои супероптимизации и изучение как этот монстрятник внутри работает чем потребуется для костылирования дописки длины к строке в си. Но у жабабыдлокодеров (не того который с таким ником, тот как раз редкое исключение из правил, а более типичные фрукты типа изена) - брейнфак с дрюканием в профайлере неделями считается "нормальным".

[...]
> Да ладно, попробуйте любопытства ради то же не с массивом
> int a=5;
> void* pa = a;
> Что получилось? Ну да это все не баги а фичи конечно же.

Что получилось? Вы поюзали конструкцию предназначенную как раз для оверрайда типов и нае...лова окружающих (void). Сделали хитровыгнутую операцию. И получили именно нае...лово. Какая неожиданность! А если взять молоток, положить палец на ровную твердую поверхность и как следует е%$#уть по нему молотком - будет больно. Но отсюда не следует что это баг в конструкции молотка. Отсюда следует лишь то что обладатель молотка - дурак, если не способен осознать простейшую причинно-следственную связь между своими действиями и их результатами. А еще иногда и опытный человек может себе по пальцу попасть. Но случайно, редко, и даже не потому что так задумано. И странно из этого делать далеко идущий вывод что молоток - плохой инструмент.

> Чтобы конкурсы устраивать.

Хм, ну если вы не способны придумать более полезных применений - кто ж вам доктор?

А так - попробуйте флеш микроконтроллеру на яве запрограммть? Сделав доступ в конкретный адрес памяти конкретной последовательностью данных? На сях - можно, фигле. В том числе за счет указателей. А вот когда эта механика недоступна - нас посещает птица обломинго и мы идем на костылестроительную фабрику. Альтернативой является разве что юзеж в таком случае асма. Но это непортабельно и геморройно.

>> Бухахаха, возможности си по откалыванию подобных фокусов - это не баг, это
> О чем и речь. Язык для откалывания фокусов да. Целиком согласен. И
> в заголовке новости то же самое. Хотелось бы еще чего нибудь
> для удобного и приятного программирования.

Вы так говорите как будто к вам пришел надзиратель и под страхом расстрела запретил вам использовать ЯП кроме си.

> Например жаба хоть и вобрала в себя многие недостатки ц, но кое что и исправила.

Только я никогда не смогу ее попросить "запиши мне байт X в адрес Y. А теперь байт Z в адрес K. А теперь вот так. А теперь шлем в флешку по адресу N блок данных ращмером M, потому что режим программирования - активирован!". На яве такое сделать тупо нельзя. Как максимум через нативные костыли (на презренном си, лол).

> Жаль компилятор к ней так и не написали толком.

На ней еще и программ толком нет. Несколько энтерпрайзных хреновин для серверов за многие килобаксы. И ... все.

> Ну и алголоподобные языки конечно вещь.

Вообще-то, си вполне хорош в энном количестве ниш и лучше просто не смогли сделать. Вот в этих алголоподобных без этой указательной арифметики - можно сделать не абстрактное оперирование с массивом, а вполне конкретный доступ к памяти по конкретному адресу, например? Если нет - так это вообще не проканает как ЯП для системного программирования, embedded и прочая, например.

>>Си не защищен от идиотов и никогда таковым не планировался даже в проекте. Вы еще в ассемблере защиту от идиотов для самых маленьких потребуйте!
> Странный вы какой то. Я ничего не требую, я указываю на недостатки,

...которые в половине случаев фичи а не баги :)

> говорю где они устранены.

Угу. В той же яве устранены указатели и работа с ними. Только вот иногда фича превращается в эпик фэйл. Поэтому вы никогда не сможете инициировать магическую последовательность байтов в флешку обеспечивающих стирание сектора и его перепрограммирование на яве без изобретения дичайших костылей, например. Поэтому яве в принципе не светит стать ЯП для системных применений, например. От нее там один гемор будет и никакого профита. А на асме такое выписывать - тоже не очень то прикольно, да?

> И сам стараюсь ц не пользоваться по мере сил.

Who the f...ly cares? Если вы тупой, объясняю: в некоторых случаях _единственной_ альтернативой является гвоздеж на чистокровном асме. А сие не портабельно и довольно утомительно. И никакая ява не является в этом случае эквивалентной заменой, да?

Ответить | Правка | ^ к родителю #246 | Наверх | Cообщить модератору

262. "Возобновлено соревнование по написанию самого..."  +1 +/
Сообщение от Okruzhor (ok) on 17-Ноя-11, 20:39 
> Вот в этих алголоподобных без этой указательной арифметики - можно сделать не абстрактное оперирование с массивом, а вполне конкретный доступ к памяти по конкретному адресу, например? Если нет - так это вообще не проканает как ЯП для системного программирования, embedded и прочая, например.

Модула 3

Ответить | Правка | ^ к родителю #259 | Наверх | Cообщить модератору

270. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 18-Ноя-11, 19:19 
> Модула 3

Угу, ну допустим я хочу собрать программу под микроконтроллер, допустим, STM32. Мои действия?

Ответить | Правка | ^ к родителю #262 | Наверх | Cообщить модератору

273. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 21-Ноя-11, 21:22 
> Ну и алголоподобные языки конечно вещь.
>Вообще-то, си вполне хорош в энном количестве ниш и лучше просто не смогли сделать. Вот в этих алголоподобных без этой указательной арифметики - можно сделать не абстрактное оперирование с массивом, а вполне конкретный доступ к памяти по конкретному адресу, например? Если нет - так это вообще не проканает как ЯП для системного программирования, embedded и прочая, например.

Слушайте, ну не надоело еще демонстрировать свою ограниченность? Весь по настоящему серьезный  embedded (там где типа самолеты летают) делается на аде, да и паскалей для микроконтроллеров вполне себе хватает. Но если вы ничего не видели не знаете и не пользовались то это все не так и неправильно.

Я конечно понимаю что потратив массу времени на изучение крайне неприятных фич и багов ставших фичами его жалко, но это ваши проблемы. А можно сделать то же самое но с меньшим мозгоклюйством. Что многие и делают.

Ответить | Правка | ^ к родителю #259 | Наверх | Cообщить модератору

53. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от iZEN (ok) on 14-Ноя-11, 22:55 
>> В жабе же (как и в ц++) есть ссылки, поэтому танцев с бубном не надо.
> А знаешь, указатели иногда не лишние, если хочется получить настоящий, неподдельный zero
> copy во всей красе.  Ну вот висит в памяти чушка,
> мегабайтов так эн. Пусть мы хотим треть из нее заадресовать. А
> чтоб без копирования, и только треть? Адресной арифметикой как делать нехрен.
> А как с этим в яве?

Вот, висит в памяти чушка типа java.util.BitSet, мегабайтов так эн.
Дальше сами: http://download.oracle.com/javase/6/docs/api/java/util/BitSe...

Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

67. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 23:11 
> Вот, висит в памяти чушка типа java.util.BitSet, мегабайтов так эн.

И что, если мне где-то захочется только треть оного в другом месте обмолотить - неужто дадут и даже без копирования обойдутся?

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

221. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 16-Ноя-11, 17:02 
если правильно класс сделан - просто
Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

171. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Michael Shigorin email(ok) on 15-Ноя-11, 23:39 
> Да и мозг уже поражен.

Мужики, вам не надоело ещё кидалиями фекаться, сравнивая торпеду с бульдозером?

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

35. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 21:33 
> Почему? Java - прямой потомок C по синтаксису.

Только по самым примитивным (и неудачным) конструкциям.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

37. "Возобновлено соревнование по написанию самого запутанного ко..."  +1 +/
Сообщение от жабабыдлокодер (ok) on 14-Ноя-11, 21:38 
К сожалению, - да.
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

41. "Возобновлено соревнование по написанию самого..."  +1 +/
Сообщение от arisu (ok) on 14-Ноя-11, 22:35 
> жабакодер в состоянии разобраться в коде на C

в 90% случаев у него взрывается череп, как только дело доходит до указателей. а уж если там хитрые преобразования типов и указатели-на-указатели-на — то смерть почти гарантирована. проверено электричеством^w личным 10-летним опытом собеседований с укушеными жабой.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

62. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 23:04 
> указателей. а уж если там хитрые преобразования типов

Да уж преобразования типов это атас - 1 поделить на 3 по умолчанию равно 0. Ну всем же понятно что не в 1/3 это же преобразовывать надо.

Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

68. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 14-Ноя-11, 23:12 
вопрос не в том, насколько это хорошо (а что, в жабе деление двух интов не инт даёт разве?), а в том, что жабисты опупевают.
Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

77. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 23:20 
>  а в том, что жабисты  опупевают.

Да все нормальные люди опупевают, но... ну вы понимаете. Но и на этом спасибо, а ведь могли и минус бесконечности приравнять. Чтобы еще больше народу опупело.


Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

81. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 23:24 
> (а что, в жабе деление двух интов не инт даёт разве?

А чего мне жаба то. Они там многие ц глупости старательно повторили.

Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

92. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 14-Ноя-11, 23:45 
> А чего мне жаба то. Они там многие ц глупости старательно повторили.

можно посмотреть хотя бы на concept твоего крутого языка без «глупостей»? действительно, интересно. хотя бы концепт, без реализации.

Ответить | Правка | ^ к родителю #81 | Наверх | Cообщить модератору

94. "Возобновлено соревнование по написанию самого..."  +1 +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 23:52 
> можно посмотреть хотя бы на concept твоего крутого языка без «глупостей»? действительно,  интересно. хотя бы концепт, без реализации.

Концепты правильного подхода к программированию были реализованы в Алголе. Но потом линия ц подобных языков получила большее распространение. А алголоподобные языки затормозились в развитии, практически остался только объектный паскаль. В результате имеем что имеем. 99% Багов рапортуемых на опеннете на совести плохих языков.


Ответить | Правка | ^ к родителю #92 | Наверх | Cообщить модератору

96. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 00:03 
ясно. «бла-бла-бла» и императивщина. скука. я думал, интересней будет.
Ответить | Правка | ^ к родителю #94 | Наверх | Cообщить модератору

121. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 15-Ноя-11, 02:44 
> ясно. «бла-бла-бла» и императивщина. скука. я думал, интересней будет.

мы говорим о реальном языке с областью применения типа как у ц или о чем то абстрактном идеальном?

а так типа вот сейчас заменим ц хаскелем да? и будем теперь получать удовольствие от ситнтаксиса типа   inc :: Integer -> Integer или take n (x:xs) = x : take (n-1) xs

если же другие области то и языки другие. Matlab/scilab например в своей нише замечателен, хотя там и типизации нет и много чего, а вот не особо мешает как-то


Ответить | Правка | ^ к родителю #96 | Наверх | Cообщить модератору

123. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 02:51 
я не знаю, какие у тебя «области применения». ну, и то, что ты сразу вспомнил про хацкель, Символизирует. конечно, не эрланг, не схему — про это в пту не упоминают.
Ответить | Правка | ^ к родителю #121 | Наверх | Cообщить модератору

109. "Возобновлено соревнование по написанию самого..."  –1 +/
Сообщение от Аноним (??) on 15-Ноя-11, 00:58 
> 99% Багов рапортуемых на опеннете на совести плохих языков.

Плохим танцорам почему-то всегда что-то мешает :). Можно подумать что дай другой язык - ошибок бы не стало. Агащазблинужетрираза. Ну вон веб взять. что, нет переполнений буфера? Зато sql injection, xss, csrf, php-injection и прочее. И по-моему, левый платеж через пэйпэл на штуку баксов за счет XSS - пострашнее иного buffer overflow, пожалуй...  

Ответить | Правка | ^ к родителю #94 | Наверх | Cообщить модератору

122. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 15-Ноя-11, 02:47 
>> 99% Багов рапортуемых на опеннете на совести плохих языков.
> Плохим танцорам почему-то всегда что-то мешает :). Можно подумать что дай другой
> язык - ошибок бы не стало. Агащазблинужетрираза.

ну естественно стало бы меньше, откуда сомнения то?

>Ну вон веб взять.  что, нет переполнений буфера? Зато sql injection, xss, csrf, php-injection и  прочее. И по-моему, левый платеж через пэйпэл на штуку баксов за

счет XSS - пострашнее иного buffer overflow, пожалуй...

ну так вы веб языки то видели? жабоскрипт и то страшнее жабы, а уж пых

Ответить | Правка | ^ к родителю #109 | Наверх | Cообщить модератору

124. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 02:52 
> жабоскрипт и то страшнее жабы

…потому что я его не знаю.

Ответить | Правка | ^ к родителю #122 | Наверх | Cообщить модератору

144. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 16:48 
> ну естественно стало бы меньше, откуда сомнения то?

Практика показала что баги почему-то на любом языке. Ну вон на питоне например каждая первая программа с кучей багов. Да, не переполнений буфера, но это не мешает проживать там толпе других багов.

>> счет XSS - пострашнее иного buffer overflow, пожалуй...
> ну так вы веб языки то видели? жабоскрипт и то страшнее жабы, а уж пых

Да какой ни дай обезьянам в руки - результат будет одинаковый. Ну вон борландпаскальские проги любили валиться с рантайм еррор 200 - как серпом по йайцам. Это было чем-то лучше?

Ответить | Правка | ^ к родителю #122 | Наверх | Cообщить модератору

217. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 16-Ноя-11, 02:20 
> Да какой ни дай обезьянам в руки - результат будет одинаковый. Ну вон борландпаскальские проги любили валиться с рантайм еррор 200 - как серпом по йайцам. Это было чем-то лучше?

Ну раз вы про это знаете, то знаете что это была проблема только библиотеки crt. И проявилась только лет через 10 после выпуска компилятора, когда компы стали много шустрее чем 10 лет назад предполагали что они станут. Т.е. это и не ошибка даже, а просто отсутствие машины времени у разаботчиков. Думаете через 10 лет все нынешние программы заработают? Кстати библиотека потом была выпущена подправленая. И достаточно было перекомпилировать. Но это уже никого особо не интересовало т.к. досовские программы к тому времени уже были малопопулярны.

Ответить | Правка | ^ к родителю #144 | Наверх | Cообщить модератору

219. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Michael Shigorin email(ok) on 16-Ноя-11, 13:18 
> Т.е. это и не ошибка даже, а просто отсутствие машины времени у разаботчиков.

Слышал, но уже не интересовался, в чём именно было дело.  Тем не менее как внедренец считаю, что это именно ошибка разработчиков, думавших в стиле "да какая разница".

> Думаете через 10 лет все нынешние программы заработают?

Думаю, что у меня специально с 2002 года захолдена сборка yacas, которая до сих пор работает.  Также и приличный рантайм вроде тиклёвого не позволял себе таких развалов, не говоря уже вот про тот самый с круглыми скобочками (где из конфузов сходу припоминается разве что исходно жёстко 32-битный picolisp). :)

Просто в досово-виндовом мире культура думать про послезавтра не наработана в сравнении с приличным миром: или "640k хватит всем", или вообще "да что чинить, наступят -- новую версию придут покупать"... вот в итоге и получаются то массово прибитые в структуры данных и логику 32 бита, то предположения о том, что раз в win95 разрешено всё, то и всегда так будет.  Понятно, что шишки учат, но эффективность процесса удручающе низка.

Ответить | Правка | ^ к родителю #217 | Наверх | Cообщить модератору

227. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 16-Ноя-11, 21:38 
>> Т.е. это и не ошибка даже, а просто отсутствие машины времени у разаботчиков.
> Просто в досово-виндовом мире культура думать про послезавтра не наработана в сравнении

с приличным миром: или "640k хватит всем"

Когда писался дос единственным доступным по цене приличным процом был 8086/88 адресовавший 1МБ (а реально на машинках было не более 64-256К) и то 64КБ сегментами, и с 16 разрядными регистрами. Они что должны были в ДОС программную виртуальную 32-разрядную адресацию заложить что ли? И с какой скоростью бы это все работало на 4.77 МГц? Не мне такого не надо было. Причем мелкомягкие как раз много лет пытались пропихнуть юникс на писи http://en.wikipedia.org/wiki/Xenix и что?

>Понятно, что шишки учат, но эффективность процесса удручающе низка.

Не хотелось бы разводить очередной красноглазый флейм. А так про эффективность много где можно много чего сказать.

Ответить | Правка | ^ к родителю #219 | Наверх | Cообщить модератору

248. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Michael Shigorin email(ok) on 17-Ноя-11, 01:27 
>>> Т.е. это и не ошибка даже, а просто отсутствие машины времени у разаботчиков.
>> Просто в досово-виндовом мире культура думать про послезавтра не наработана
>> в сравнении с приличным миром: или "640k хватит всем"
> Когда писался дос

Напомню, в девичестве -- QDOS, quick and dirty OS.  На деле тоже ни разу не OS, а скорее монитор файловой системы навроде того же CP/M (одним из частичных следствий этого является то, что софт был вынужден таскать драйвера к оборудованию свои и с собой).

> единственным доступным по цене приличным процом был 8086/88 адресовавший 1МБ
> (а реально на машинках было не более 64-256К) и то 64КБ сегментами,
> и с 16 разрядными регистрами. Они что должны были в ДОС программную виртуальную
> 32-разрядную адресацию заложить что ли?  И с какой скоростью бы это все работало
> на 4.77 МГц?

Не пойму -- Вы постарались получше проиллюстрировать мой тезис про послезавтра?  Спасибо, конечно.  Заметьте ещё: ведь до мегабайта ввиду истории простейших восьмибитных было уже вовсе не настолько далеко, как потом опять показалось с тридцатидвухбитными.

Вопрос не в том.  Если задуматься, то PDP-11 были намного слабее железом, чем даже ЕС1841 (с 512К и если верно помню замеры -- то двумя мегагерцами тактовой).  Но там люди думали надолго, а не чтоб только конкуренцию шкафам не создать (одни) и впарить быстрей-быстрей, пока про мамочку не передумали (вторые).

> Причем мелкомягкие как раз много лет пытались пропихнуть юникс на писи [...] и что?

Ну они и ФП в CLR попытались запихнуть с не менее слоновьей грацией.

>>Понятно, что шишки учат, но эффективность процесса удручающе низка.
> Не хотелось бы разводить очередной красноглазый флейм.

Похвально, вот и не разводите.

Ответить | Правка | ^ к родителю #227 | Наверх | Cообщить модератору

250. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 17-Ноя-11, 02:00 
> Вопрос не в том.  Если задуматься, то PDP-11 были намного слабее  железом, чем даже ЕС1841 (с 512К и если верно помню замеры - то двумя мегагерцами тактовой).

Да были слабее. Потому их и выкинули на помойку как только появилась альтернатива.

>Но там люди думали надолго,  а не чтоб только конкуренцию шкафам не создать (одни) и впарить быстрей-быстрей, пока про мамочку не передумали (вторые).

Результат их раздумий известен. Результат раздумий других тоже. Вы на нем сейчас их же и критикуете. Это тоже для красноглазых типично.

>> Не хотелось бы разводить очередной красноглазый флейм.
> Похвально, вот и не разводите.

Я не могу разводить красноглазый флейм. Это по вашей части.

Ответить | Правка | ^ к родителю #248 | Наверх | Cообщить модератору

251. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Michael Shigorin email(ok) on 17-Ноя-11, 02:13 
>> Вопрос не в том.  Если задуматься, то PDP-11 были намного слабее  железом,
>> чем даже ЕС1841 (с 512К и если верно помню замеры - то двумя мегагерцами тактовой).
> Да были слабее. Потому их и выкинули на помойку как только появилась альтернатива.

На минуточку: сколько у Вас на хозяйстве кода, унаследованного от разработок для вот тех (не 386-х даже) писишек, и сколько -- от тех PDP-шек?  У меня с ощутимым перевесом последний берёт, IMHO.

>>Но там люди думали надолго,  а не чтоб только конкуренцию шкафам не создать (одни)
>>и впарить быстрей-быстрей, пока про мамочку не передумали (вторые).
> Результат их раздумий известен. Результат раздумий других тоже. Вы на нем сейчас
> их же и критикуете. Это тоже для красноглазых типично.

Промахнулись, рост писишек как платформы всё-таки в существенной мере определялся открытостью архитектуры.  Интересно, если бы IBM решила правдами или неправдами замочить тот реверс-инжиниринг BIOS -- что бы получилось? (по PS/2 судить сложно, их и одна закрытая MCA могла угробить)

>>> Не хотелось бы разводить очередной красноглазый флейм.
>> Похвально, вот и не разводите.
> Я не могу разводить красноглазый флейм.

Тем вульгарней, когда разводите.

Спокойной ночи :)

Ответить | Правка | ^ к родителю #250 | Наверх | Cообщить модератору

274. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от anonymous vulgaris on 21-Ноя-11, 21:34 
> На минуточку: сколько у Вас на хозяйстве кода, унаследованного от разработок для  вот тех (не 386-х даже) писишек, и сколько -- от тех PDP-шек?  У меня с ощутимым перевесом последний берёт, IMHO.

О чем вы? Если код на ЯВУ то откуда и куда он наследуется?

> Промахнулись, рост писишек как платформы всё-таки в существенной мере определялся открытостью  архитектуры.  Интересно, если бы IBM решила правдами или неправдами замочить  тот реверс-инжиниринг BIOS -- что бы получилось? (по PS/2 судить сложно,  их и одна закрытая MCA могла угробить)

История не имеет сослагательного наклонения. Инженеры интела сумели сделать лучшие процы за счет введения разумных ограничений на систему команд (специализация регистров, сегменты и т.п.), дек не сумел наложить разумные ограничения на систему команд и зашился в стоимость/эффективность из-за ограниченности количества транзисторов.

А дос сделал эти процы общедоступными с программной точки зрения.

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

Ответить | Правка | ^ к родителю #251 | Наверх | Cообщить модератору

240. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 16-Ноя-11, 23:03 
> Слышал, но уже не интересовался, в чём именно было дело.  Тем
> не менее как внедренец считаю, что это именно ошибка разработчиков, думавших
> в стиле "да какая разница".

Это был эпичный по тупизне баг. Господа не думали бошкой и мысли не допускали что процессоры бывают с разной производительностью. Поэтому они, если не ошибаюсь, вычисляя задержку для калибровки функции delay() - делили на величину которая уменьшается по мере увеличения скорости процессора. И вот однажды, когда процессоры стали достаочно быстрые, величина стала достигать нуля и конечно же случалось деление на ноль, известное как runtime error 200. На самом деле - тупейший баг разработчиков и просто стратегическая недальновидность в алгоритме.

Ответить | Правка | ^ к родителю #219 | Наверх | Cообщить модератору

244. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 16-Ноя-11, 23:10 
> тупейший баг разработчиков и просто стратегическая недальновидность в алгоритме.

а уж как тупы были авторы юникса, выделяя на время всего 32 бита!

никогда не думал, что некоторые решения не рассчитаны на тысячелетия работы? достаточно длительное время калибратор работал вполне удовлетворительно. а к тому времени, как перестал — уже и дос был экзотикой, тащемта. а то, что народ умудрился понаписывать софта, который перестал сопровождать и не дал исходников — это тем более никак не проблемы борланда.

Ответить | Правка | ^ к родителю #240 | Наверх | Cообщить модератору

261. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 17-Ноя-11, 19:31 
> а уж как тупы были авторы юникса, выделяя на время всего 32 бита!

Я думаю что мы еще ощутим это на своей шкурке. С IPv4 кстати уже ощущаем - адресов на всех не стало хватать.

> никогда не думал, что некоторые решения не рассчитаны на тысячелетия работы? достаточно
> длительное время калибратор работал вполне удовлетворительно. а к тому времени, как
> перестал — уже и дос был экзотикой, тащемта.

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

> а то, что народ умудрился понаписывать софта, который перестал сопровождать
> и не дал исходников — это тем более никак не проблемы борланда.

Я что-то не помню, а сам борланд то давал сорц на этот модуль? Что-то я не припоминаю сырцов служебных модулей в дефолтной поставке компилера.

Ответить | Правка | ^ к родителю #244 | Наверх | Cообщить модератору

234. "Возобновлено соревнование по написанию самого..."  +1 +/
Сообщение от Аноним (??) on 16-Ноя-11, 22:45 
> что они станут. Т.е. это и не ошибка даже, а просто
> отсутствие машины времени у разаботчиков.

Ага, вполне предсказуемое деление на ноль - это ну совсем не баг. Наверное, фича.

> Думаете через 10 лет все нынешние программы заработают?

Я вот тут LZ на сях из каких-то древних 80-х скомпилил. Заработало.

> Кстати библиотека потом была выпущена подправленая. И достаточно было перекомпилировать.

Ну да, если б еще на все программы на пасквиле давали б сорс... ну вот за что-то такое мы любим и борланд и проприетарщиков. Одни допустили тупой баг в рантайме, вторые жадные. А пролетают в результате те кто эти программы на свой зад использовал.

> Но это уже никого особо не интересовало т.к. досовские
> программы к тому времени уже были малопопулярны.

Да знаете, этот еггог настолько всех достал что кто-то даже выпустил патчер для бинарей который затыкал этот долбучий баг. Но в конечном итоге такие вот например от проприерастии успешно отучает, когда есть фатальный баг в проге, поправить его просто, но цивильного и простого метода это сделать - нет. Патчеры с эвристикой и поиском куска либы по бинарному представлению - дикий изврат.

Ответить | Правка | ^ к родителю #217 | Наверх | Cообщить модератору

71. "Возобновлено соревнование по написанию самого..."  +1 +/
Сообщение от Аноним (??) on 14-Ноя-11, 23:13 
> Да уж преобразования типов это атас - 1 поделить на 3 по
> умолчанию равно 0.

Не, конечно, пусть нам флоатов без спроса воткнут. Особенно в какихнить микроконтроллерах где и FPU то нету. Си это системный язык. Поэтому он предсказуем, бл. А не как ява - 2 запуска из 5 сглючило? Идем сдавать заказчику!

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

80. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от жабабыдлокодер (ok) on 14-Ноя-11, 23:23 
Да, конечно. Не подскажете, заодно, где есть переполнение строк, утечки памяти и неверная адресация, а где нет?
Ответить | Правка | ^ к родителю #71 | Наверх | Cообщить модератору

95. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от xxx (??) on 15-Ноя-11, 00:00 
>утечки памяти

Ты полагаешь, что в Яве нет утечек памяти?

Ответить | Правка | ^ к родителю #80 | Наверх | Cообщить модератору

97. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 00:03 
> Ты полагаешь, что в Яве нет утечек памяти?

он их не видит — значит, нет.

Ответить | Правка | ^ к родителю #95 | Наверх | Cообщить модератору

148. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 17:04 
> он их не видит — значит, нет.

Там можно иногда отбрехаться что это все сборщик мусора виноват :)))

Ответить | Правка | ^ к родителю #97 | Наверх | Cообщить модератору

154. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 19:17 
>> он их не видит — значит, нет.
> Там можно иногда отбрехаться что это все сборщик мусора виноват :)))

ага. не умеет, падла, телепатически определять, что эта куча заякорена, но уже никому не нужна.

Ответить | Правка | ^ к родителю #148 | Наверх | Cообщить модератору

235. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 16-Ноя-11, 22:48 
> ага. не умеет, падла, телепатически определять, что эта куча заякорена, но уже
> никому не нужна.

Ну вот как-то так у них обычно и получается. А потом они неделями дрюкаются с профилированием,  пытаясь понять где же случилась Ж, когда кастомер (окружение которого конечно же не соответствует тому что представлял себе программист) начинает срать кирпичами когда на супермощном сервере вдруг каким-то хреном все-равно кончается память, несмотря на то что GC умный и все дела.

Ответить | Правка | ^ к родителю #154 | Наверх | Cообщить модератору

236. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 16-Ноя-11, 22:53 
это, кстати, отчасти вина мифотворцов жабы. которые убедили обезьян, что «в жабе памятью управлять не надо, а освобождать — тем более!» в итоге обезьянки и не освобождают, оставляя висеть никому не нужные заякореные объекты, заместо аккуратно чистить за собой ссылки. пропаганда такая пропаганда.

я вот видел как-то человека, писавшего несложную VM. на сях, правда, но с использованием Boehm GC. так вот он очень удивлялся, отчего у него так память слабо освобождается. гений кода сделал стек в виде большого массива, пихал туда элементы, а удалял простым декрементом индекса вершины стека. и человек, вроде, не глупый, а вот миф «если есть GC, то память чистить не надо» как-то в мозгу угнездился.

Ответить | Правка | ^ к родителю #235 | Наверх | Cообщить модератору

242. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 16-Ноя-11, 23:06 
> это, кстати, отчасти вина мифотворцов жабы. которые убедили обезьян, что «в жабе
> памятью управлять не надо, а освобождать — тем более!» в итоге
> обезьянки и не освобождают, оставляя висеть никому не нужные заякореные объекты,
> заместо аккуратно чистить за собой ссылки. пропаганда такая пропаганда.

Даже хуже - эти обезьяны искренне полагают что думать за них должен рантайм. А им можно программить абы как. Что получается на выходе - несложно догадаться. Лютейший энтерпрайз. Которому какиенить там 8 ядер и 64Г оперативы - вообще не сервер! Replace and press any key when ready!

Ответить | Правка | ^ к родителю #236 | Наверх | Cообщить модератору

245. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 16-Ноя-11, 23:13 
зато их пучок за пятачок. заартачатся — можно всех скопом выгнать и набрать новых, всё равно сакральным знанием о системе обладает один Гуру на всю контору. а code monkeys на любом углу за досирак готовы драться до смерти. в принципе, как раз нормальный цикл работы для жабоконторы, видел неоднократно.
Ответить | Правка | ^ к родителю #242 | Наверх | Cообщить модератору

110. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 01:00 
> Да, конечно. Не подскажете, заодно, где есть переполнение строк, утечки памяти и
> неверная адресация, а где нет?

В ява программах утечек памяти - как грязи. И в C# - тоже. Просто они становятся настолько неочевидны, а программы и сами по себе жрут столько что бороться с ними вообще не считают нужным. Просят докупить оперативы, это у жабистов традиционно :). Ну и иногда перезапускайте, дескать, наш кульный ынтерпрайз. Видели мы такие поделия. И старательно обходим эти отходы мозговой деятельности за километр.

Ответить | Правка | ^ к родителю #80 | Наверх | Cообщить модератору

113. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от iZEN (ok) on 15-Ноя-11, 01:25 
>> Да, конечно. Не подскажете, заодно, где есть переполнение строк, утечки памяти и
>> неверная адресация, а где нет?
> В ява программах утечек памяти - как грязи. И в C# -
> тоже. Просто они становятся настолько неочевидны, а программы и сами по
> себе жрут столько что бороться с ними вообще не считают нужным.

Бред. Для отслеживания утечек памяти в Java давно используют профилировщики, а кто не использует, те "Просят докупить оперативы, это у [горе-]жабистов традиционно :). Ну и иногда перезапускайте, дескать, наш кульный ынтерпрайз."

> Видели мы такие поделия. И старательно обходим эти отходы мозговой деятельности за километр.

Мы тоже. Обжегшись на молоке — дуют на воду.

Ответить | Правка | ^ к родителю #110 | Наверх | Cообщить модератору

116. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 01:57 
> Бред. Для отслеживания утечек памяти в Java давно используют профилировщики

…а в си профилировщики используют по назначению: для построения профилей и оптимизации. опять в жабе всё не через то отверстие.

кстати, для си есть valgrind, например.

Ответить | Правка | ^ к родителю #113 | Наверх | Cообщить модератору

133. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от iZEN (ok) on 15-Ноя-11, 08:42 
>> Бред. Для отслеживания утечек памяти в Java давно используют профилировщики
> …а в си профилировщики используют по назначению: для построения профилей и оптимизации.
> опять в жабе всё не через то отверстие.
> кстати, для си есть valgrind, например.

http://habrahabr.ru/blogs/java/61857/
http://www.ibm.com/developerworks/ru/edu/os-ecl-tptp/index.html

http://www.youtube.com/watch?v=b-Cr0EWwaTk


Ответить | Правка | ^ к родителю #116 | Наверх | Cообщить модератору

134. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 08:48 
и в чём это должно было меня убедить? в том, что жабисты cannot into термины? так это давно уже не новость. у них и место, откуда их руки растут, до сих пор «плечи» называется.
Ответить | Правка | ^ к родителю #133 | Наверх | Cообщить модератору

145. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 16:55 
> Бред. Для отслеживания утечек памяти в Java давно используют профилировщики,

Поэтому жабист быстро накодив какашку потом долго разгребает за собой фекальные массы, тщетно пытаясь сделать конфетку из г-на. На хабре как-то был эпичный рассказ про то как чувак оптимизил работу фигни на яве. Дык он там столько с костылингом рантайма сношался и выяснением как оптимальнее что за это время на сях тот же фрагмент кода можно 20 раз было написать и отладить и оно бы сразу работало с человеческой скоростью. Потому что нет рантайма который услужливо поднасрет на тривиальных казалось бы операциях парой лишних слоев абстракций на ровном месте.

> а кто не использует, те "Просят докупить оперативы, это у [горе-]жабистов традиционно :).
> Ну и иногда перезапускайте, дескать, наш кульный ынтерпрайз."

Ну да, ну да, конечно же. А чем это все лучше валгриндинга сишной проги, интересно? "Потому что ява", да? :)))

> Мы тоже. Обжегшись на молоке — дуют на воду.

Вот это как раз про нытье что си типа течет, а ява типа нет. Только почему-то фигня на яве жрущая адово количество оперативы попадается регулярно.

Ответить | Правка | ^ к родителю #113 | Наверх | Cообщить модератору

155. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 19:19 
> Ну да, ну да, конечно же. А чем это все лучше валгриндинга
> сишной проги, интересно?

к тому же у валгринда есть, например, кэшгринд. чота както я слабо представляю подобный инструмент для жабы.

Ответить | Правка | ^ к родителю #145 | Наверх | Cообщить модератору

175. "Возобновлено соревнование по написанию самого..."  +1 +/
Сообщение от Аноним (??) on 15-Ноя-11, 23:59 
> к тому же у валгринда есть, например, кэшгринд. чота както я слабо
> представляю подобный инструмент для жабы.

В этом месте жабисты по сценарию орут "Это не нужно!!!111" ;)

Ответить | Правка | ^ к родителю #155 | Наверх | Cообщить модератору

223. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 16-Ноя-11, 17:06 
у них это есть
Ответить | Правка | ^ к родителю #175 | Наверх | Cообщить модератору

224. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 16-Ноя-11, 19:41 
> у них это есть

rotfl.

Ответить | Правка | ^ к родителю #223 | Наверх | Cообщить модератору

6. "Возобновлено соревнование по написанию самого запутанного ко..."  +4 +/
Сообщение от Аноним (??) on 14-Ноя-11, 16:02 
Между прочим, практически все современные дистрибутивы проводят аналогичное соревнование для языка bash/sh среди своих разработчиков.
Конкурсные работы хаотично разбрасываются по ФС, но лучшие среди них (финалисты) обычно собраны в специальном каталоге /etc/rc./init.d
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 16:03 
> каталоге /etc/rc./init.d

То ли я очепятался, то ли движок букву d сожрал =(

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

10. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Michael Shigorin email(ok) on 14-Ноя-11, 16:23 
>> каталоге /etc/rc./init.d
> То ли я очепятался, то ли движок букву d сожрал =(

Да нет, как Вы могли опечататься.  Конечно, это всё движок, httpd, браузер, клавиатура и хромая память.

А локальные финалисты скорее в /opt и /usr/local у тех, кто занимается научным софтом -- в инитскриптах извраты бывают, но дистрибутивов с систематически особо жестокими пока не встречал вроде.

Но сравнивать языки с автоматическим и прямым управлением памятью тут и впрямь некорректно...

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

18. "Возобновлено соревнование по написанию самого запутанного ко..."  +3 +/
Сообщение от Клыкастый2 on 14-Ноя-11, 17:28 
самый аццкий тип инитскриптов это во фре при портах с линукса. вот где дрожь и трепет, при просмотре кофе не пить - клавиатуре хана. отт мейнтейнера зависит, но таки да, встречается.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

29. "Возобновлено соревнование по написанию самого запутанного ко..."  –1 +/
Сообщение от iZEN (ok) on 14-Ноя-11, 20:55 
> самый аццкий тип инитскриптов это во фре при портах с линукса. вот где дрожь и трепет, при просмотре кофе не пить - клавиатуре хана. отт мейнтейнера зависит, но таки да, встречается.

Это где?

% cat /usr/local/etc/rc.d/hald
#!/bin/sh
#
# $FreeBSD: ports/sysutils/hal/files/hald.in,v 1.11 2010/05/10 21:18:39 kwm Exp $
#   $MCom: ports/sysutils/hal/files/hald.in,v 1.22 2010/04/17 19:05:10 marcus Exp $
#
# PROVIDE: hald
# REQUIRE: DAEMON usbd devd dbus moused webcamd
#
# Add the following line to /etc/rc.conf to enable the HAL daemon:
#
# hald_enable="YES"
#

. /etc/rc.subr
. /usr/local/etc/gnome.subr

hald_enable=${hald_enable-${gnome_enable}}
hald_flags=${hald_flags-""}

name=hald
rcvar=`set_rcvar`

command="/usr/local/sbin/hald"
pidfile="/var/run/${name}/${name}.pid"

stop_postcmd="hald_postcmd"
start_precmd="hald_precmd"
start_cmd="hald_start"

local_force_depend()
{
    _depend="$1"
    if [ -f /usr/local/etc/rc.d/${_depend}.sh ]; then
    _depend="${_depend}.sh"
    fi

    if ! /usr/local/etc/rc.d/${_depend} forcestatus 1>/dev/null 2>&1 &&
       ! /usr/local/etc/rc.d/${_depend} forcestart; then
       return 1
   fi
   return 0
}

hald_precmd()
{
    if ! checkyesno dbus_enable
    then
    local_force_depend dbus || return 1
    fi

    chmod 0755 /var/cache

    mkdir -p $(dirname $pidfile)
}

hald_postcmd()
{
    rm -f $pidfile
}

hald_start()
{
    if ! checkyesno hald_enable ; then
    return 0
    fi
    echo "Starting ${name}."

    ( iter=0
    while ! ps -axoargs | grep "^/usr/libexec/getty " | grep -qv grep >/dev/null 2>&1; do
    if [ ${iter} -eq 60 ]; then
        break
    fi
    sleep 1
    iter=$(expr ${iter} + 1)
    done
    ${command} ${hald_flags} ) &
}

load_rc_config ${name}
run_rc_command "$1"

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

49. "Возобновлено соревнование по написанию самого запутанного ко..."  +4 +/
Сообщение от Аноним (??) on 14-Ноя-11, 22:44 
М-де, уныло выглядит.
Особенно на фоне моего конфиг-файла для апстарта где в целых ~7 строк уместилось:
1) Рестарт сервиса при внезапном завершении.
2) Лимитирование числа рестартов в единицу времени.
3) Старт только после того как появилась сеть.
4) Сервису выставляется приоритет повыше фоновых задач т.к. с именно оным юзер и работает и его время отклика роялит.
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

136. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 13:49 
> Особенно на фоне моего конфиг-файла для апстарта

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

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

149. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 17:10 
>> Особенно на фоне моего конфиг-файла для апстарта
> Нехорошо смеяться над паровозом, едучи на "сапсане". Другой век, другие технологии.
> Управление службами через init-скрипты сейчас осталось лишь темной тенью прошлого.
> Но тогда, тридцать-сорок лет назад, это был самый простой и логичный путь.

Ну так нефиг понтоваться тем что это просто и читабельно. Если кто понтанулся скоростью своего паровоза - ну мы и сравним, уж простите, с тем что выпускается и ездит.

Ответить | Правка | ^ к родителю #136 | Наверх | Cообщить модератору

167. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 23:22 
> Ну так нефиг понтоваться тем что это просто и читабельно. Если кто
> понтанулся скоростью своего паровоза - ну мы и сравним, уж простите,
> с тем что выпускается и ездит.

Если человек в 2011 году гордится init-скриптами, то это со всей очевидностью означает, что он сильно отстал от реалий нашей жизни. Смотрели такой старый французско-итальянский фильм - "Замороженный"?
Нехорошо над такими людьми смеяться.

Ответить | Правка | ^ к родителю #149 | Наверх | Cообщить модератору

222. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 16-Ноя-11, 17:06 
Пока вы так говорите Fedora допиливают до состояния Unix v6(недавняя ссылка про /usr/bin и прочие), а гном - в отдельную ОС
Ответить | Правка | ^ к родителю #167 | Наверх | Cообщить модератору

243. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 16-Ноя-11, 23:08 
> старый французско-итальянский фильм - "Замороженный"?

Только вот тут никого не замораживали, поэтому политкорректнее будет термин "заторможенный".

Ответить | Правка | ^ к родителю #167 | Наверх | Cообщить модератору

158. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 19:32 
мы уж как-нибудь пешком постоим, без монстрософта.
Ответить | Правка | ^ к родителю #136 | Наверх | Cообщить модератору

102. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от pavlinux (ok) on 15-Ноя-11, 00:42 
> самый аццкий тип инитскриптов ...

Пока самый ацкий я виде в VMware Server 1.0.2

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

19. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 17:32 
> Да нет, как Вы могли опечататься.  Конечно, это всё движок, httpd, браузер, клавиатура и хромая память.

Спасибо, зело утешили старого дурака...

> А локальные финалисты скорее в /opt и /usr/local у тех, кто занимается научным софтом

Где вы такой софт берете? Глянул стартовый скрипт матлаба - вполне себе красиво написано, с исчерпывающими комментариями.
А вот ловля багов в init-скриптах и сочинение новых по образцу, в свое время немало нервных клеток отняли, что в рхеле, что в дебиане.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

30. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 21:12 
На шелле можно вполне себе структурно писать. С комментами и подпрограммами. А не как обдолбавшийся упоротый упырь из Бхопала. В том числе и инит-скрипты можно так писать. Все дело в прокладке между креслом и консолью.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

36. "Возобновлено соревнование по написанию самого запутанного ко..."  +2 +/
Сообщение от anonymous vulgaris on 14-Ноя-11, 21:35 
> На шелле можно вполне себе структурно писать. С комментами и подпрограммами. А  не как обдолбавшийся упоротый упырь из Бхопала.

Только вот непруха, как что не берешь все упырями из бхопала написано, а не умниками с опеннета.

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

137. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 13:52 
> На шелле можно вполне себе структурно писать. С комментами и подпрограммами.

Можно, не спорю.
Но использовать shell для управления службами - это все равно что пытаться впихнуть PHP там, где нужен Prolog. Поэтому init-скрипты практически всегда выглядят ужасно.

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

160. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 19:52 
> Но использовать shell для управления службами - это все равно что пытаться
> впихнуть PHP там, где нужен Prolog. Поэтому init-скрипты практически всегда выглядят
> ужасно.

может быть, ты просто писать их не умеешь?


#!/bin/sh

RCL_SHORTNAME="pop3 daemon"
RCL_LONGNAME="POP3 mail service daemon"
RCL_START="S:/usr/local/sbin/popa3d -D"
RCL_STOP="K:popa3d"
RCL_STATUSCHECK="F:popa3d"

. /etc/rc.d/rc.util/rclib.sh

вот что тут ужасного? вся рутина делается одной библиотекой, которой достаточно скормить параметры. я это написал лет пять назад или даже больше, и с тех пор библиотеку не трогал. при этом на любую мою новую систему библиотека накатывается путём копирования /etc/rc.d/rc.util/. не требует ничего, кроме sh и стандартных утилит. ЧЯДНТ?

Ответить | Правка | ^ к родителю #137 | Наверх | Cообщить модератору

151. "Возобновлено соревнование по написанию самого запутанного ко..."  +2 +/
Сообщение от Аноним (??) on 15-Ноя-11, 17:13 
> инит-скрипты можно так писать.

Угу, глядя как 2 страницы текста делают то же что 5-7 тривиальных строк в конфиге запускалки сервисов, понимаешь что можно != нужно.

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

164. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Michael Shigorin email(ok) on 15-Ноя-11, 22:49 
>> А локальные финалисты скорее в /opt и /usr/local у тех, кто занимается научным софтом
> Где вы такой софт берете?

Какой где, но ещё с универа навидался чуточку разного.  Сейчас сходу не припомню именно по коду -- лицензия компиляторов PGI затмила -- если хотите, постараюсь вспомнить, но вообще это довольно известный феномен.

> Глянул стартовый скрипт матлаба - вполне себе красиво написано

Видимо, всё-таки математика и годы дают знать. :)

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

165. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 22:54 
вообще, математиков нельзя допускать к программированию. вообще. не то, чтобы они не могли писать код — могут. но обычно получаются совершенно убойные, нечитаемые простыни. почему они работают — может сказать только другой математик после долгой медитации.
Ответить | Правка | ^ к родителю #164 | Наверх | Cообщить модератору

9. "Возобновлено соревнование по написанию самого запутанного ко..."  +4 +/
Сообщение от Аноним (??) on 14-Ноя-11, 16:14 
>(взято из википедии) Ларри Уолл (англ. Larry Wall) — американский программист. Знаменит как создатель языка программирования Perl. Лингвист по образованию. Уолл — автор клиента Usenet и широкоиспользуемой программы patch. Он дважды побеждал в международном конкурсе запутанного кода на языке программирования Си (IOCCC) и был лауреатом первой награды Free Software Foundation за продвижение свободного программного обеспечения (Free Software Foundation Award for the Advancement of Free Software) в 1998 году.

Надо быть каким-то особенным чтобы делать особенные вещи. Ларри Уолл и его детище в виде ЯП Perl тому пример. Где-то рядом есть смысл конкурса IOCCC.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

47. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 14-Ноя-11, 22:42 
Ларри, кстати, был участником. и по-моему, даже неоднократно.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

15. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 17:10 
Кому-то не дает покоя слава однострочника на перл? Это шанс проявить себя :)))
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Возобновлено соревнование по написанию самого запутанного ко..."  +2 +/
Сообщение от Аноним (??) on 14-Ноя-11, 18:15 
Вот кстати годный номинант на премию накопался:
http://habrahabr.ru/blogs/compilers/116301/#comment_3773449

Правда байтов на 200 не влазит в лимит вроде, но при желании это видимо решаемо.

Варнинг: чтение таких сырцов не рекомендуется людям со слабой психикой.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от АнонимАнонимус on 14-Ноя-11, 19:04 
удалить ряд дефайнов и пробелов...
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

28. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 20:46 
> удалить ряд дефайнов и пробелов...

Переписать в английский вариант. Хотя на русском честно говоря лучше смотрится. Этакий 1С из си++ сделали :)

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

48. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 14-Ноя-11, 22:43 
> удалить ряд дефайнов и пробелов...

пробелы там не считают.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

38. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от жабабыдлокодер (ok) on 14-Ноя-11, 21:40 
Где-то видел вариант про Ленина и революцию. Такой код вставляет гораздо сильнее.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

42. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 22:35 
> Где-то видел вариант про Ленина и революцию. Такой код вставляет гораздо сильнее.

Кейворды для поиска?!

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

22. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 18:33 
Это нужно для того чтобы научиться распознавать скрытый зловредный код. Думаю далеко не всякий хороший программист может разобраться в специально запутанно чужом коде, а уж как-то программно это анализировать вообще невозможно. Если вспомнить, что такого кода тонны и тонны, то доверие к нему стремится к нулю.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

31. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 21:12 
> Это нужно для того чтобы научиться распознавать скрытый зловредный код. Думаю далеко
> не всякий хороший программист может разобраться в специально запутанно чужом коде,
> а уж как-то программно это анализировать вообще невозможно. Если вспомнить, что
> такого кода тонны и тонны, то доверие к нему стремится к
> нулю.

Песочницы и отладчики никто не отменял.

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

247. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 17-Ноя-11, 00:12 
> Песочницы и отладчики никто не отменял.

А прикинь неочевидный кусок срабатывает чисто рандомно и не чаще раза в 2 месяца? Упухнешь же ожидать такого счастья :)

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

24. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 18:57 
> 1991 ant    compressed vi-like editor
> 1993 ant    egrep utility with Posix-like documentation
> 1996 august    Subset of C compiler and byte code interpreter
> 1998 banks    A flight simulator!
> 2001 anonymous    optimizing dynamic binary translator, x86 progs on any host
> 2004 anonymous    Rendering of a stroked font

4 килобайта вы говорите?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от XoRe (ok) on 14-Ноя-11, 20:33 
>> 1991 ant    compressed vi-like editor
>> 1993 ant    egrep utility with Posix-like documentation
>> 1996 august    Subset of C compiler and byte code interpreter
>> 1998 banks    A flight simulator!
>> 2001 anonymous    optimizing dynamic binary translator, x86 progs on any host
>> 2004 anonymous    Rendering of a stroked font
> 4 килобайта вы говорите?

Это вам не интерпретируемые языки, с сборщиками мусора, байткодами и виртуальными машинами.
Особо упоротые^W упорные делают на assembler программы с 3d роликами, которые весят 75 кб.

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

32. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 21:13 
>>> 1991 ant    compressed vi-like editor
>>> 1993 ant    egrep utility with Posix-like documentation
>>> 1996 august    Subset of C compiler and byte code interpreter
>>> 1998 banks    A flight simulator!
>>> 2001 anonymous    optimizing dynamic binary translator, x86 progs on any host
>>> 2004 anonymous    Rendering of a stroked font
>> 4 килобайта вы говорите?
> Это вам не интерпретируемые языки, с сборщиками мусора, байткодами и виртуальными машинами.
> Особо упоротые^W упорные делают на assembler программы с 3d роликами, которые весят
> 75 кб.

Особо упоротые^W упорные на Assembly-91 и в 5Кбайт демки впихивали.

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

33. "Возобновлено соревнование по написанию самого запутанного ко..."  +1 +/
Сообщение от iZEN (ok) on 14-Ноя-11, 21:21 
"Мне не хватало байта. Всего одного. Да, да. Того самого, что из восьми бит состоит. Что? Hет, я не псих, хотя одному богу известно, сколь тонкой была граница отделявшая меня от этого состояния. Hо все по порядку..."
Читать далее: http://wasm.ru/article.php?article=onebyte
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

40. "Возобновлено соревнование по написанию самого запутанного ко..."  –1 +/
Сообщение от Аноним (??) on 14-Ноя-11, 22:33 
> Читать далее: http://wasm.ru/article.php?article=onebyte

Ты, овощ, никогда не испытывал этого ощущения. А я вот однажды ощутил это на себе, пытаясь реализовать не совсем тупой алгоритм в 254 байтах (больше передавать протокол не позволяет).

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

50. "Возобновлено соревнование по написанию самого запутанного ко..."  –2 +/
Сообщение от iZEN (ok) on 14-Ноя-11, 22:46 
>> Читать далее: http://wasm.ru/article.php?article=onebyte
> Ты, овощ, никогда не испытывал этого ощущения.

Это ты телепатически обнаружил?

Успокойся — я на «Электроника МК 61» делал то, чему не хватало жалких двух-трёх "шагов программы". :) Но каждый раз испытывать оргазм от решения очередной "проблемы одного байта" — ни сил, ни времени, ни желания на это уже НЕ_ХОЧЕТСЯ тратить. :)) Память больше не ресурс — и точка!

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

76. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 23:20 
> В 1992 году Java не было по объективным причинам. Пришлось осваивать обратную
> польскую запись и вычисления на стеке. ;)

Что-то поздно ты ручник отпустил. В 1992 году уже были нормальные компьютеры, доступные простым смертным. Даже IBM PC совместимые уже были, хоть и дорогие, падлы.

Ответить | Правка | ^ к родителю #158 | Наверх | Cообщить модератору

83. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 14-Ноя-11, 23:27 
> Успокойся — я на «Электроника МК 61» делал то, чему не хватало
> жалких двух-трёх "шагов программы". :)

На совецком программируемом пепелаце^W планетоходе 16 шагов программы вообще почему-то по жини не хватало. Правда он был не полным по тюрингу - переходов не было, поэтому условия отработать было низзя ;(

Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

103. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от iZEN (ok) on 15-Ноя-11, 00:50 
>> Успокойся — я на «Электроника МК 61» делал то, чему не хватало
>> жалких двух-трёх "шагов программы". :)
> На совецком программируемом пепелаце^W планетоходе 16 шагов программы вообще почему-то
> по жини не хватало. Правда он был не полным по тюрингу
> - переходов не было, поэтому условия отработать было низзя ;(

Ты действительно понимаешь, о чём говоришь?
«Электроника МК 61» это вот: http://ru.wikipedia.org/wiki/Электроника_МК-61
Всё там было: и безусловные переходы, и условные переходы, и косвенные переходы.


Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

114. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 01:30 
> Ты действительно понимаешь, о чём говоришь?

Да, я понимаю. Совеццкая промышленность где-то в 80х каким-то чудом освоила выпуск вот такого архиэпичного (для промышленности СССР) пепелаца: http://abandongames.ru/images/articles/big_track/02.jpg

У него внутри был какой-то довольно самобытный проц с масочным ROM, но главное - оно позволяло напрограммить 16 шагов программы в RAM. И далее эта хрень могла их отпедалить, спокойно заложив маршрут из комнаты в комнату под управлением свеженаписанной программы без участия в процессе человеков, что вызывало у впервые видящих этот пепелац неслабый а**й :). В комплект также входил "типа дебагер", как то возможность пошагового теста программы и стирания последнего шага, если результат его тестирования не доставил. Так можно было отладить пошагово программу и далее вполне эпично запускать девайс по заданному маршруту.

На самом деле - AFAIK это скопипи...ли какую-то буржуйскую игрушку. Но то что хоть какое-то предприятие в СССР вообще осилило выпуск такого пепелаца - было дико удивительно по своим временам.

Из наиболее очевидных упущений:
1) У "системы команд" не было условий. Совсем. И замер передвижений был крайне тупой - мерялись обороты колес герконами, а не сколько фактически проехал этот пепелац. Поэтому любопытный субъект возжелавший посмотреть "что это за фигня? само ездит без участия человека?!" и схапавший пепелац под мышку - портил всю логику программы %(
2) В 16 шагов сложная программа не лезла - пичаль для любителя сгонять в соседнюю комнату, посигналить и вернуться назад. Вот там была оптимизация, да.  
3) Совеццкие моторчики то еще г-но и такую дуру катали с большим напрягом.
4) Зато батарейки жрались хорошо и много. Управляющая электроника с удовольствием гробила убогенькие советские "кроны", да и огроменных 373 в ходовой части не так уж и надолго хватало. А покупать столько батареек (4 х "373" aka size D + "крона") - сплошной разор. Не говоря о том что сам пепелац стоил диковато, но даже это не смущало - урвать его было редким везением. Страна инженеров любила неведомые программируемые пепелацы. Даже за дикую цену, впрочем, в ссср вообще любая электроника стоила диковато :)

> «Электроника МК 61» это вот: http://ru.wikipedia.org/wiki/Электроника_МК-61
> Всё там было: и безусловные переходы, и условные переходы, и косвенные переходы.

Зато там 105 шагов программы аж. После 16 - это вообще шикарно, я бы сказал :))). Система команд у МК-61 и правда довольно шибанутая. А еще он жрал батарейки как свинья помои (спасибо вакуумно-люминесцентному индикатору) а энергонезависимой памяти или хотя-бы режима сна - не имел. Был конечно еще и блок питания (кстати, импульсные БП в ссср тоже не умели делать и схема БП была весьма ламерской) но на нем постоянно то сидеть не будешь же - мобильность теряется (впрочем с учетом галимости советских батареек запас оной измерялся единицами часов за которые надлежало вбить и отладить программу и что-то еще и успеть посчитать, что было еще той попаболью).

Ответить | Правка | ^ к родителю #103 | Наверх | Cообщить модератору

132. "Возобновлено соревнование по написанию самого запутанного ко..."  –1 +/
Сообщение от anonymous (??) on 15-Ноя-11, 07:45 
Но HDTV, HDTV то хоть было или тоже нет? И с сесом как? Был доступен избранным, кто был дипломатом?

Специально для тебя, шибанутый побаболь луркосос обыкновенный, есть гугл. Набери там "Попасть в "бейсбольный мяч" в космосе" или система A135.

Ответить | Правка | ^ к родителю #114 | Наверх | Cообщить модератору

135. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 12:17 
> в "бейсбольный мяч" в космосе" или система A135.

Мы уже не попали в Фобос, который покрупнее бейсбольного мяча раз так в эн ;(

Ответить | Правка | ^ к родителю #132 | Наверх | Cообщить модератору

152. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 17:36 
>> в "бейсбольный мяч" в космосе" или система A135.
> Мы уже не попали в Фобос, который покрупнее бейсбольного мяча раз так
> в эн ;(

А это уже как раз к СССР и не относится, а касается нынешних засранцев...

Ответить | Правка | ^ к родителю #135 | Наверх | Cообщить модератору

188. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Michael Shigorin email(ok) on 16-Ноя-11, 00:23 
> Да, я понимаю. Совеццкая промышленность где-то в 80х каким-то чудом освоила выпуск
> вот такого архиэпичного (для промышленности СССР) пепелаца:

Да ладно опускательством-то заниматься.  Пепелац стоил рублей двести IIRC, правда...

> 3) Совеццкие моторчики то еще г-но и такую дуру катали с большим напрягом.

Ну конечно, а авиамоделисты и прочие пилившие да разгонявшие ДП-3 (или МП-3? цилиндрик металлический, штатное напряжение 3В, штатные обороты что-то около 3000/мин) до чуть ли не 12В и дикой тяги?  Во, порылся в старых запасах -- ДИ1-2, 5000 ОБ/МИН, 1Р-22К.

> 4) Зато батарейки жрались хорошо и много. Управляющая электроника с удовольствием
> гробила убогенькие советские "кроны"

Нормальные солевые батарейки, eastpower рядом не валялся.

> А покупать столько батареек (4 х "373" aka size D + "крона") - сплошной разор.

Не столько разор, столько дефицит.  Вот уж на что-что, а на батарейки карманных денег завсегда хватало.

> Был конечно еще и блок питания (кстати, импульсные БП в ссср
> тоже не умели делать и схема БП была весьма ламерской)

Ещё как умели (даже я спаял двухсотваттный), а схема стабилизированного трансформаторного блока проста как двери -- предохранитель, трансформатор, мостик, кондёр, силовой транзистор, резистор (или делитель?), стабилитрон, кондёр и по-хорошему второй предохранитель.  Нокиевский "кубик", которым сейчас проверял эти два движка (похоже, сжёг оба ещё тогда) -- тоже вон трансформаторный, зато западный и можно поидолопоклонничать, так?

Ответить | Правка | ^ к родителю #114 | Наверх | Cообщить модератору

218. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 16-Ноя-11, 06:29 
>> Да, я понимаю. Совеццкая промышленность где-то в 80х каким-то чудом освоила выпуск
>> вот такого архиэпичного (для промышленности СССР) пепелаца:
> Да ладно опускательством-то заниматься.

Не вижу никакого опускательства. Даже с учетом того что содрали у буржуев 1 в 1 - пепелац получился довольно годный и просто нереально доставлял по своим временам. Как бонус приучал к программированию слегка. Просто был ряд анноянсов имевших место быть.

>   Пепелац стоил рублей двести IIRC, правда...

А мне что-то казалось что рублей 40, что впрочем тоже было о-го-го (около 1/5 зарплаты отличного советского инженера).

>> 3) Совеццкие моторчики то еще г-но и такую дуру катали с большим напрягом.
> Ну конечно, а авиамоделисты и прочие пилившие да разгонявшие ДП-3 (или МП-3?
> цилиндрик металлический, штатное напряжение 3В, штатные обороты что-то около 3000/мин)
> до чуть ли не 12В и дикой тяги?  Во, порылся в старых запасах -- ДИ1-2, 5000 ОБ/МИН, 1Р-22К.

Рекомендую посмотреть сколько ваттов и в каких габаритах нынче выжимает даже всякая недорогая китайчатина. И сразу станет понятно что прогресс безнадежно ушел вперед. За счет редкоземельных магнитов, низкоомных обмоток, отсутствия коллектора и не шибко тупого управления обмотками, вплоть до микроконтроллерной регулировки и коммутации (в времена СССР такое не светило, не было силовой электроники потребной, особенно у СССР и для простых смертных, да и проц ставить в какой-то там преобразователь было неслыханной роскошью) - даже мелкая фигулина размерами почти как мотор советских игрушек - может выжать чуть ли не полкиловатта (подозреваю что планетоход с такой штукой стал бы гоночным джипом). А фигулина более-менее умещающаяся в руке может осилить киловаттов этак 5-6, по поводу чего ходят слухи что из толи 8, толи 12 таких эпичных моторов (довольно технологичная и красивая штукенция, показывающая что более 100 лет улучшения констуркции движков не прошли даром) какой-то фрукт сделал мультикоптер способный поднять в воздух самого создателя конструкции. Такие вот моторчики "для моделек" нынче.

>> 4) Зато батарейки жрались хорошо и много. Управляющая электроника с удовольствием
>> гробила убогенькие советские "кроны"
> Нормальные солевые батарейки, eastpower рядом не валялся.

Не знаю насчет eastpower но выдыхались советские кроны удивительно быстро. Какой-то буржуйский ATC (или как их там) покупаемый в 90е - держал нагрузку не в пример дольше при прочих равных. У меня мультиметр питался от 9 вольт, кушал более-менее постоянно и довольно много, так что я на своей шкурке прекрасно ощущал кто и чего, меняя эти самые кроны пачками и потом искренне удивившись что это буржуйское нечто живет наверное как 2-3 кроны аж.

>> А покупать столько батареек (4 х "373" aka size D + "крона") - сплошной разор.
> Не столько разор, столько дефицит.  Вот уж на что-что, а на батарейки карманных
> денег завсегда хватало.

И то и другое. Все-таки комплект в сумме стоил заметно а выдыхался быстро. И не всегда был прост в добывании.

>> Был конечно еще и блок питания (кстати, импульсные БП в ссср
>> тоже не умели делать и схема БП была весьма ламерской)
> Ещё как умели (даже я спаял двухсотваттный),

А БП у МК-61 это жалкая пародия на буржуйские БП-вилки. Только вместо мелкого импульсника (требующего всего одну, но все-таки специализированную микросхему управления, с чем в СССР было "как обычно") там собран обычный сетевой транс на 50 гц и совершенно дубовый и тривиальный стабилизатор напряжения в стиле "пионер в радиокружке спаяет лучше". Ну то-есть 4 диода, кондер и стабилитрон. Пионеры для тренировки позабористее паяют. В принципе оно работало и даже было корпусом вилка. Претензия только к тому что вилка вышла довольно большая при крайне хилой мощности. Хотя относительно осмысленная конструкция корпуса не сильно мешалась в тройниках и поэтому несмотря на общий пещерный уровень конструкции оно в общем то работало и серьезно предъявить ему можно разве что то что при сильных нагрузках на электросеть (~170-180 вольт вечером в старых домах было не то чтобы редкостью) оно попросту не осиливало стартануть калькулятор. Что временами портило карму любителям вычислений.

> а схема стабилизированного трансформаторного блока проста как
> двери -- предохранитель, трансформатор, мостик, кондёр, силовой транзистор,

IIRC там на транзистор забили. Тупо стабилитрон через который сливается избыток "just in case". Вторичка очень высокоомная и потому охотно просаживает напряжение при малейшей нагрузке, так что видимо за счет ее сопротивления ток через стабилитрон вполне вменяемый выходит и столь пионерского решения - хватает.

> резистор (или делитель?), стабилитрон, кондёр и по-хорошему второй предохранитель.

Там вторичка столь высокоомна что предохранитель нафиг не сдался - кз на несколько секунд для такой схемы вообще никаких проблем не вызывает (ток кз - считанные сотни миллиампер). По поводу чего этот хлам используется как "лабораторный" инструмент для запуска маломощных схем как принципиально неспособный вызвать сколь-нибудь заметный дестрой в схеме.

>  Нокиевский "кубик", которым сейчас проверял эти два движка (похоже, сжёг оба ещё
> тогда) -- тоже вон трансформаторный, зато западный и можно поидолопоклонничать, так?

Не знаю что такое "нокиевский кубик", у меня от нокии есть аж 3 зарядки, и все 3 - это такие прямоугольнички характерные, хоть и немного разных моделей. И все 3 разумеется импульсные. Самый мощный (для n900, который при заряде жрет как трактор) выдает 5V@1200mA, что раз в ~6 больше того что можно в принципе выжать из советской вилки. При том что габариты поменьше и поудобнее (хотя в некоторых тройниках может быть и ровно наоборот). Не говоря о том что там 5 вольт - это 5 вольт. А не так что при малейшем росте нагрузки - напряжение стремительно летит вниз. И да, такое не то что от 170, но и от 150 вольт нормально работает. Современные импульсники обычно жрут все, от 90 до 250 вольт. Чтоб не надо было паять разные схемы для разных стран. Сие дает оным большую фору в местности где электричество занижено по напряжению или нестабильное. А вот БП от мк-61 мог вечером малость огорчить, если напряжение упало ниже номинала. Формально это конечно энергетики уроды что напряжение в доме вышло за номинал, но это слабое утешение.

Ответить | Правка | ^ к родителю #188 | Наверх | Cообщить модератору

220. "(offtopic) now and then"  +/
Сообщение от Michael Shigorin email(ok) on 16-Ноя-11, 13:35 
>>   Пепелац стоил рублей двести IIRC, правда...
> А мне что-то казалось что рублей 40

Ба, так это вообще четыре болгарских дискеты (или всё же пять? не помню уж точно).

>> Во, порылся в старых запасах -- ДИ1-2, 5000 ОБ/МИН, 1Р-22К.
> Рекомендую посмотреть сколько ваттов и в каких габаритах нынче выжимает
> даже всякая недорогая китайчатина.

Ну супербрайты с АЛ-307 тоже не сравниваю -- хотя как раз на упомянутом движке магниты, кажется, были не совсем обычные.  Вот с коллектором да, долго на таких перегрузках не жил даже при замене штатных "усиков" на пластинчатые контакты...

> За счет редкоземельных магнитов, низкоомных обмоток, отсутствия коллектора
> и не шибко тупого управления обмотками, вплоть до микроконтроллерной регулировки
> и коммутации (в времена СССР такое не светило, не было силовой электроники потребной,
> особенно у СССР и для простых смертных

Да ладно, П213 (или ГТ?) и КТ805 у этих самых простых смертных вполне водились. :)

> да и проц ставить в какой-то там преобразователь было неслыханной роскошью)

*Проц*-то там зачем?

> Такие вот моторчики "для моделек" нынче.

Спасибо за ликбез, слышал совсем краем уха про результаты, но не компоненты.

>>  Нокиевский "кубик" [...] -- тоже вон трансформаторный, зато западный
> Не знаю что такое "нокиевский кубик"

Старая зарядка на толстый штекер, валялась тут от 6230i.  Кстати, "дальнобойщики" во время смены на импульсники упорно придерживались мнения, что "кубик заряжает плотнее"...

> Современные импульсники обычно жрут все, от 90 до 250 вольт.

Это да.

PS: надо попросить Максима организовать отдельный старпёрский уголок :)

Ответить | Правка | ^ к родителю #218 | Наверх | Cообщить модератору

271. "(offtopic) now and then"  +/
Сообщение от Аноним (??) on 21-Ноя-11, 03:09 
> Ба, так это вообще четыре болгарских дискеты (или всё же пять? не помню уж точно).

Для игрушки все-таки довольно приличная сумма, как ни крути.

[..]
> Ну супербрайты с АЛ-307 тоже не сравниваю --

С светодиодами я особого отставания у СССР не вижу: это были чисто индикационные приборы, а потому улучшались мало и медленно.

> хотя как раз на упомянутом движке магниты, кажется, были не совсем обычные.  

Сдается мне что нынче магниты все-таки сильнее. Кстати в пепелаце были похожие круглые металлические моторчики. Если верить гуглу, то что там было, называлось видимо ДИ1-3.

> Вот с коллектором да, долго на таких перегрузках не жил даже при замене
> штатных "усиков" на пластинчатые контакты...

Беда всех коллекторников. За что их нынче и заменяют повсеместно на бесколлекторники и асинхронники, т.к. силовая электроника развилась до должного уровня. А нынче авиамоделисты дорабатывают моторчики от дохлых сидиромов :)

[..]
> Да ладно, П213 (или ГТ?) и КТ805 у этих самых простых смертных вполне водились. :)

Тем не менее,
1) Аналоговой техникой 3-фазную последовательность генерить геморно и получится очень уж дофига электроники. Да и на дискретной цифре - начинание так себе (если надо регулировку, например).
2) П213 огромный, много весит (не для летунов), саморазгоняем по температуре (чревато FAILом при перегреве) и коэфф. усиления никакой. Чтобы его раскачать - надо постараться. Кт805 простым смертным стал доступен не так уж давно. И к тому же кремниевый, на нем падение напряжения в полностью открытом виде еще больше. На мало мальски серьезном токе он перегреется.

Нынче все намного проще. Цепляем logic level FET к микроконтроллеру (или что там у нас) еще и генерим себе программно все что душе угодно прямо на мощную нагрузку. Просто в плане схемы, бесконечно гибко в плане выдаваемых сигналов и фич. Power MOSFET с низким управляющим напряжением - лютый win, но в СССР их делать не умели.

>> да и проц ставить в какой-то там преобразователь было неслыханной роскошью)
> *Проц*-то там зачем?

1) Регулировать обороты. В синхроннике недостаточно рулить только мощщой как в коллекторнике. Надо еще и частоту менять. Делать это без умных элементов схемы крайне геморройно. По этой самой причине в СССРовских книжках бывало упоминание что регулировать обороты асинхронников (которые по принципу работы похожи) - сложно. Потому что на дискретных компонентах делать схему преобразующую то что есть в 3-фазную последовательность с регулируемой пропорционально желаемым оборотам частотой получается действительно невкусно ;)
2) Достаточно удобно когда процу реализующему основную логику досточно кинуть понекоему протоколу команду вида "а выдай ка нам вот столько!" и дальше предоставить процу в моторном отсеке заниматься стабилизацией частоты вращения, регулировкой, мониторингом состояния дел и прочая. Некое разделение труда.
3) В совсем наглом варианте такая схема являет собой logic level FET прицепленные влобовую на GPIO лапки микроконтроллера. Более простое и нахальное схемотехническое решение придумать сложно. А такое может что угодно. И грамотный разгон, и стабилизация скорости, и адаптация к внешним условиям, и диагностика/умная защита.

>> Такие вот моторчики "для моделек" нынче.
> Спасибо за ликбез, слышал совсем краем уха про результаты, но не компоненты.

Ну вот еще порция. Даже наверное не совсем оффтоп: писать управление обмотками мотора на си вполне можно и это пожалуй сойдет за сабж в каком-то роде. Кстати в результате при столь ядреном управлении можно получить что-нибудь необычное. Наиболее ярким примером является segway. Попробуйте сделать такое без реалтаймного управления моторов фирмварой, а я на это посмотрю. Раньше такой агрегат соорудить было проблематично.

[..]
>> Не знаю что такое "нокиевский кубик"
> Старая зарядка на толстый штекер, валялась тут от 6230i.  Кстати, "дальнобойщики"
> во время смены на импульсники упорно придерживались мнения, что "кубик заряжает
> плотнее"...

На современных телефонах с литий-ионниками это маловероятно. LiIon капризная и опасная штука, очень чувствительная к перезаряду и переразряду.  По этому поводу стоит неглупый чип контролирующий процесс заряда от и до. Он прекращает заряд по вполне конкретным критериям и сам делает из того что есть то что надо (данный процесс называется CC/CV и критерии его завершения от зарядного устройства вообще не зависят).

> PS: надо попросить Максима организовать отдельный старпёрский уголок :)

И переносить некоторый флуд туда. Я только за :). Тем не менее, на самом деле это не старперство а просто применение все тех же знаний на новом уровне.

Ответить | Правка | ^ к родителю #220 | Наверх | Cообщить модератору

98. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от xxx (??) on 15-Ноя-11, 00:14 
> Но каждый раз испытывать оргазм от
> решения очередной "проблемы одного байта" — ни сил, ни времени, ни
> желания на это уже НЕ_ХОЧЕТСЯ тратить. :)) Память больше не ресурс
> — и точка!

А это смотря как ты к этому подходишь. Если задрачиваешься над каждым байтом в реальном проекте, когда памяти есть и в избытке, жертвуя при этом читабельностью кода, простотой сопровождения, сроками и т. д., и при этом зачастую производительностью, то действительно нафиг надо.

Но если это просто пища для тренировки ума, развлечение, интересный хакерский трюк, то почему бы и не испытать очередной оргазм от решения задачи?


Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

104. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от iZEN (ok) on 15-Ноя-11, 00:52 
> Но если это просто пища для тренировки ума, развлечение, интересный хакерский трюк,
> то почему бы и не испытать очередной оргазм от решения задачи?

Когда работаешь в коллективе, от "хакерского трюка" будет не по себе многим программистам, которым придётся по работе сопровождать его. Если они его не поймут (что в 95% случаев так и есть), то тебя не оценят и в дальнейшем просто не будут с тобой работать.


Ответить | Правка | ^ к родителю #98 | Наверх | Cообщить модератору

115. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 01:32 
> поймут (что в 95% случаев так и есть),

Ага. Читаем лурк на предмет того что за нафиг с 95% такой и понимаем что программирование и быдло плохо совмещаются. Но поскольку бизнес-хрены всегда хотят на чем-нибудь сэкономить и чтобы еще вчера - за клавиатуру сажается стадо специально дрессированых обезьян, которых положительными и отрицательными стимулами натаскивают чтобы они выдавали какое-то подобие программ :)))

Ответить | Правка | ^ к родителю #104 | Наверх | Cообщить модератору

153. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 18:03 
А вот статья почти про izen'а: http://habrahabr.ru/blogs/htranslations/132600/
Ответить | Правка | ^ к родителю #104 | Наверх | Cообщить модератору

101. "Возобновлено соревнование по написанию самого запутанного ко..."  +1 +/
Сообщение от pavlinux (ok) on 15-Ноя-11, 00:35 
Кусок заявки :)

int l(){int l=1;l=(l<<1)<<1>>!1<<!1<<!1>>1^11>>!1^11<<!1<<1^11<<1>>!1;}


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

125. "Возобновлено соревнование по написанию самого запутанного ко..."  +1 +/
Сообщение от bircoph (ok) on 15-Ноя-11, 02:57 
Вот это им не побороть:

#include <stdio.h>
int main(int t,int _,char*a)
{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a
)&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,
t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\
,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\
+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\
l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\
+1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \
i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}

Код рабочий и с очень красивым результатом, впрочем, это очень известный код.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

140. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Аноним (??) on 15-Ноя-11, 15:55 
Я был знаком с челом, который участвовал в этом конкурсе и даже занял там призовое место. Помню, я сразу и не поверил, что он написал на C шахматную программу с размером исходного кода 4Кб. Был в шоке, когда сам скомпилировал ее, и она даже заработала. Правда, шок прошел, когда я дал ей мат в районе 20-го хода.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

150. "Возобновлено соревнование по написанию самого запутанного ко..."  +/
Сообщение от Michael Shigorin email(ok) on 15-Ноя-11, 17:10 
> Правда, шок прошел, когда я дал ей мат в районе 20-го хода.

Так настоящий fmax4_8w.c всё же 34K весит.  Правда, пара килобайт там одних комментариев...

Ответить | Правка | ^ к родителю #140 | Наверх | Cообщить модератору

161. "Возобновлено соревнование по написанию самого..."  +/
Сообщение от arisu (ok) on 15-Ноя-11, 19:58 
> Я был знаком с челом, который участвовал в этом конкурсе и даже
> занял там призовое место. Помню, я сразу и не поверил, что
> он написал на C шахматную программу с размером исходного кода 4Кб.
> Был в шоке, когда сам скомпилировал ее, и она даже заработала.
> Правда, шок прошел, когда я дал ей мат в районе 20-го
> хода.

а OTCC белардовский? а динамический рекомпилятор x86-кода? а электронная таблица с диаграммами и формулами? по-моему, это всё ни разу не хуже всяких шахмат (которые, к слову сказать, практического применения не имеют, в отличие от вышеуказаных программ).

Ответить | Правка | ^ к родителю #140 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру