БЕГЕМОТИКОВ МОЖНО! Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1239.1 пользователей не могут ошибаться!
?6942
прекрасное6443
говно5905
говнорашка5512
хуита4716
anime3066
linux2652
music2635
bnw2602
рашка2565
log2354
ололо2174
дунч1832
pic1815
сталирасты1491
украина1439
быдло1437
bnw_ppl1419
дыбр1238
гімно1158

О, очередной пылкий вьюноша со «скобочным вебом»!

Ну, попробуй реализуй скобочный веб, чо. Только сперва тебе придется написать свой валидирующий pull-парсер для S-выражений. Стандартный лисповый ридер не вернет AST, пока не распарсит все до последней скобки, а в вебе надо начинать интерпретировать по возможности сразу же.

Затем ты напишешь разборщик и валидатор своих DSL-аналогов HTML и CSS и начнешь реализовывать рендерер. В этот момент обнаружится, что для лиспа нет качественных биндингов к современным GUI-тулкитам. Сперва ты возьмешься за cffi-cairo и cl-cairo2, но выяснится, что они заточены под старые версии Cairo и не работают.

Ты станешь допиливать Cairo-биндинги, но однажды решишь, что Cairo семантически чужд лисп-парадигме и возьмешься писать свою кросс-платформенную библиотеку для поддержки высокопроизводительной векторной графики. Затем ты реализуешь аналог протокола HTTP, только на S-выражениях (назовем его SXTP), потому что HTTP с его убогими URL'ами и методами семантически чужд лисп-парадигме.

После этого встанет вопрос о написании веб-сервера, поддерживающего SXTP. Попутно ты напишешь template engine, аналоги XPath, XSLT, а также ORM и MVC-фреймворк. В этот момент выяснится, что традиционные SQL-базы данных семантически чужды лисп-парадигме, и ты начнешь разрабатывать собственную лисп-ориентированную БД.

В этот момент ты поймешь, что Common Lisp перегружен и недостаточно выразителен, его стандарт раздут, а макросы негигиеничны; что Scheme слишком минималистична и академична; что остальные диалекты лиспа либо маргинальны, либо требуют .NET/JVM. Тут тебе в голову придет идея создать собственный лисп. Ты потратишь несколько лет на разработку стандарта, реализацию языка и переписывание всего вышеперечисленного на твоем новом языке. После этого окажется, что все ужасно тормозит. И это, разумеется, исключительно по той причине, что операционные системы стандарта POSIX семантически чужды лисп-парадигме. Ты начнешь разрабатывать LISP OS.

В процессе разработки выяснится, что эффективная LISP OS для x86/ARM/MIPS не может быть создана в принципе, так как их семантика чужда лисп-парадигме. Ты возьмешься за изучение System C, Verilog, VHDL и в один прекрасный день создашь лисп-машину на FPGA.

В этот момент мозаика чудесным образом сложится. У тебя будут лисп-машина, лисп-OS, лисп-сервер и лисп-браузер. Ты восторженно оглянешься вокруг, и обнаружишь, что половина человечества уже переселилась на Gliese 581, а оставшаяся половина забыла про HTML/CSS/etc., как про страшный сон, и давно пользуется квантовыми компьютерами и квантовыми сетями. Но все это уже будет не важно. У тебя ведь будет лисп-браузер и полноценная замена HTML/CSS на S-выражениях.

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

#4FBDZ0 (11+1) / @ninesigns / 4029 дней назад

http://ache.vniz.net/demos.html охуительная история:

Своеобразный программисткий подвиг совершил Дима Бурков. В то время начали появляться первые PC. Unix на них выглядел неубедительно. Linux еще не появился, зато повился Venix. Хачить его было невозможно - не было исходных текстов ядра. Дима Бурков реассемблировал ядро, потом писал программы на Си, которые давали тот же текст ассемблера - так появились тексты ядра на Си ... работа не для слабонервных.

#FBAN47 (0) / @j123123 / 4042 дня назад

Как бороться с неоднозначностью простых, человеческих слов при проектировании интерфейса?

Скажем, есть у меня абстрактный класс с методами authenticate, authorise и account. Как избежать прочтения последнего существительным?
Вангую неиллюзорные отсосы с этой лажей, ведь она должна читаться глаголом и только глаголом. doAccount? performAccounting? Говно блядь какое-то. Накидайте

#RJM1E0 (38) / @ulidtko / 4044 дня назад

http://nimrod-code.org/
Пацаны, кто тыкал?

Выглядит как почти идеальный ЯП с паскалевским синтаксисом.

#42D7TI (10+1) / @ninesigns / 4045 дней назад

Мегаохуительный пост про то, как нарисровать треугольник на 3dfx voodoo напрямую говоря с железкой.

http://www.openglsuperbible.com/2013/09/07/voodoo-registers-part-1/

#OAAK6U (0+1) / @ninesigns / 4053 дня назад

Пишу тонну factory-бойлерплейта, но понимаю, что читающий может быть слишком шокирован, потому заставляю себя "пока-что-ненужные" вещи писать напрямую. Possible-cultural-misunderstanding-driven development.

#HJH51G (26) / @kb / 4059 дней назад

Проверял GCC на предмет того, как он умеет рекурсию оптимизировать.
Вот такая штука

unsigned int plus(unsigned int a, unsigned int b)
{
  if (b == 0) return a;
  return plus (a+1, b-1);
}

Относительно успешно сворачивается сложение. Получается такая шняга:

movl %edi, %eax
addl %esi, %eax
ret

Хотя в идеале можно было бы обойтись

leal (%rsi,%rdi), %eax
ret

Что касается умножения, там ситуация более печальная

inline unsigned long int product_0(const unsigned int a, const unsigned int b, const unsigned long int tmp)
{
  if (b == 0) return tmp;
  return product_0(a, b-1, tmp+a);
}

unsigned long int product(const unsigned int a, const unsigned int b)
{
  return product_0(a, b, 0);
}

В ассемблере получается такая фигня

product:
.LFB34:
.cfi_startproc
    xorl %eax, %eax
    testl %esi, %esi
    je .L7
    leal -1(%rsi), %eax
    mov %edi, %edi
    addq $1, %rax
    imulq %rdi, %rax
.L7:
    rep
    ret
.cfi_endproc

Тут оно зачем-то зануляет значение регистра, в котором хранится возврашемое из функции значение и сравнивает с нулем значение регистра, в котором в функцию передается число. Если ноль то прыгаем в конец функции, возвращая 0. Тогда внезапно появляется смысл в этом rep ret http://repzret.org/p/repzret/

Why? Because “The processor is unable to apply a branch prediction to the single-byte near-return form (opcode C3h) of the ret instruction.” Thus, “Use of a two-byte near-return can improve performance”, because it is not affected by this shortcoming.

Ну а дальше через leal из регистра rsi число копируется в eax, уменьшаясь при этом на 1 (нахрена?) и потом из регистра edi двигается в edi (НАХРЕНА??), увеличиваем rax на 1 через addq (ну тут понятно зачем, перед этим ведь оно было непонятно зачем уменьшено на 1, но нахрена уменьшать и потом увеличивать? И вообще, для увеличения на 1 лучше incq использовать) ну и в итоге компилятор таки вставляет инструкцию imulq. Распознать умножение в этой рекурсивной хрени компилятор смог, но при этом как-то через жопу все, нагенерировал кучу говна всякого. Можно было намного проще сделать

movl %esi, %eax
imull %edi, %eax

gcc version 4.5.1 если что

#3BR06J (1+1) / @j123123 / 4063 дня назад

VMKit: a substrate for virtual machines
http://vmkit.llvm.org/

#ZPX5WY (0) / @ninesigns / 4064 дня назад

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

#2AWI2R (16+4) / @ninesigns / 4070 дней назад

Все шло хорошо, наши отношения длились уже почти два года. Я чувствовала его сильное мужское плечо и уверенность в нашем будущем. Он был профессиональным разработчиком и готовил программы для больших компаний. Мы хотели пожениться, взять ипотеку, и я в тайне надеялась завести от него детей. Но потом в его поведении что-то изменилось. Мы, женщины, такое чувствуем. Вы же понимаете, о чем я, правда? Он стал неохотно проводить со мной время, перестал дарить цветы... Ему разонравилась моя готовка ;( Я пыталась узнать, кто эта сука, где они познакомились и когда встречаются. И этот его замутненный взгляд с глупой ухмылкой, которые легким ветерком иногда прокатывались по его лицу! И, я стала следить. А что мне еще оставалось делать? Мне уже 25!!! И если он уйдет от меня, то кому я вообще буду нужна?!

Я ушла в отпуск, не сказав ему об этом. В понедельник, я поцеловала его, вышла из квартиры, прошла один пролет наверх по лестнице, вызвала такси, и стала ждать. Где-то через 20 минут он вышел из квартиры. Я выскользнула из подъезда, села в такси, и стала наблюдать, как он сядет в машину. Но вместо того, чтобы сесть в форд фокус, кредит за который он выплачивал последние два года (он всегда говорил мне, что как только выплатит кредит за машину, мы устроим свадьбу), он пошел к небольшой двери у третьего подъезда, где живут узбеки-дворники, убирающие наш и соседний дворы, и выкатил от туда какой-то дурацкий велосипед. Представляете ВЕЛОСИПЕД! И он через весь город, по лужам ехал на нем до работы! Я еле сдерживалась, чтобы не выйти и не закричать, в каком виде он приедет на работу! Спина свитера намокла от пота, брюки были забрызганы мелкой грязью. Не знаю, как описать чувство стыда, которое я тогда испытывала. Но я тихонечко ждала в такси.

К нему на работу незаметно проникнуть я не могла - у них проходная. Тогда я позвонила Олегу - это их бизнес-аналитик. Когда я приходила к ним в офис, Олег мог целый день смешить меня своими историями про бизнесменов и программистов. Иногда, когда мой любимый задерживался, я звонила Олегу и тот выпроваживал его. Позвонив, я сказала, что у моего Стаса проблемы с желудком и, я не уверена, что он серьезно к этому относится, потому попросила докладывать обо всем, что Стас делает на работе. Сама пошла в кафе читать Коэльо. За целый день, мой только пару раз вышел в туалет, да сходил в обед, где закал борщ. Хотя мне всегда казалось, что ему супы не нравятся, но, может, я плохо их готовлю. Задержавшись на работе примерно на полчаса, он сел на велосипед и поехал домой. Когда я вошла, он был в душе... Так продолжалось 2 недели: дом - работа - дом. Я прекратила свое расследование, так ничего и не найдя. Но в моей душе притаился страх.

Прошло еще 2 месяца. Стас стал груб со мной, стал реже мыться, стал ворчать на меня, когда я стирала его свитер или покупала ему новые брюки. От него пахло борщом и потом. Он больше не хотел секса... Стал много пить. Я боялась за него, но на всю мою заботу он отвечал невнятным ворчанием про дырку в мясе, про суть программирования, про чистоту. Говорил, где теперь мой бог... Что все это значит?!!

Потом он стал нерегулярно ходить на работу. Говорил, что он настолько ценный сотрудник, что ему можно работать из дома. Я звонила Олегу. Он сказал, что Стас в последнее время какой-то странный стал. Смотрит на коллег исподлобья. Эти его постоянные попытки сорвать рабочий процесс, заставив коллег искать элемент в массиве. Эти его рассуждения, что никаких объектов не существует, что состояний не существует! Не знаю, в каком он был состоянии, но точно не в порядке! Олег сказал, что кто-то из сотрудников видел, как Стас, думая, что совершенно один, поплевывал на UML диаграмму, чертил ботиками черные стрелки на линолиуме... Потому ему дали поработать из дома, чтобы не смущать коллег. Олег просил меня быть осторожной.

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

А в то утро... Я проснулась от дискомфорта в плечах, как будто меня кто-то перекатывал. Я открыла глаза и увидела его совершенно сумасшедший взгляд. ОН ЗАВОРАЧИВАЛ МЕНЯ В МОНАДУ! Меня заворачивал в монаду, как будто я какой-то грязный побочный эффект в его жизни! Я взмолилась, прося его это не делать, он ударил меня по лицу.
- Стас, что ты делае...
- У тебя нет денотационной семантики
- Стас...
- У тебя нет аксиоматической самантики
- Прошу!
- Ты сплошной побочный эффект. Имеративная шлюха, стейт ходячий
- Не надаааааа!

- IO с тобой мне больше нинужна

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

- ммммм-ууууу-ммм..... ;( ;( ;(

И тут удар, грохот. Уши заложило. Я подумала, что мне конец....
Когда я очнулась, в комнате сидели полицейские, сидел Олег.
- Мы нашли твой кластер метапарадигм, Стас, все кончено. - говорил полицейский.
- Вы не можете, я же чистая функция. Лямбда-абстрактор в категории гомотопических прото-моноидов.
- Боже, как далеко ты зашел! Но теперь мы определим тебе место пребывания, где ты будешь не опасен
- Я комбинирую неподвижные точки Y
- Кто твой хозяин? Кто твой функциональный божок?
- Я строю доказательства существования вычислимости и населенности суммы двух и двух

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

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

И вот я пришла к вам, и спрашиваю. ЗА ЧТО ВЫ СДЕЛАЛИ ЭТО С МОИМ СТАСОМ? КТО ВАМ ТАКОЕ ПОЗВОЛИЛ? ПОЧЕМУ ВЫ ПРЕВРАТИЛИ МОЕГО БУДУЩЕГО МУЖА В ФУНКЦИОНАЛЬНОГО МУДАКА, КОТОРЫй ТЕПЕРЬ СИДИТ В ДУРКЕ И ПИШЕТ ПОД ТАБЛЕТКАМИ ИСТОРИИ ПРО ПРЫЖКИ С ПАРАШюТОМ ИЛИ МАЛОЛЕТНЫХ ШЛЮХ? КАК ВЫ сМЕЕТЕ! я НАДЕЮСЬ ВАС ВСЕХ ВЫЧИСЛЯТ ПО АЙПИ И ПОСАДЯТ В СМИРИТЕЛЬНУЮ РУБАШКУ В БОЛЬНИЦУ! в ПСИХУШКУ ПОСАДЯТ! И ВЫ БОЛЬШЕ НЕ БУДЕТЕ ПОРТИТЬ ЖИЗНЬ ЧЕСТНЫМ ДЕВУШКАМ УВОДЯ ИХ ПАРНЕЙ-ПРОГРАММИСТОВ В ЕНТУ ЗЛОСЧАСТНУЮ СЕКТУ. мРАЗИ НЕНАВИЖУ ВАС!!1

#WCL8Q5 (5+6) / @ninesigns / 4079 дней назад

Чят, есть необходимость быстро изучить direct x 11.

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

?

#FSS823 (0) / @ninesigns / 4085 дней назад

Значит как оно в приложении к CS? Берется уже существующий язык, ну который дан, который успешен, который популярен. Ну, не знаю, пусть будет джава как конкретный пример. Мы вполне можем писать на джаве и иметь профит - но вот нам мало, по-этому мы берем какой-то формализм и описываем на нем джаву, весь ее стандарт, со всеми гофовскими паттернами и прочей хренью (но такого формализма нет, беда), причем полностью описываем, безо всяких там «подмножеств», понятное дело. Потом смотрим, и внезапно оказывается, что язык удовлетворяет какому-то свойству Х, которого мы не ожидали! И, оказывается, на нем можно делать какое-то Y, которое мы, читая стандарт языка, и не думали, что можно! Вот это и называется практическим результатом.

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

http://www.linux.org.ru/forum/development/9498005?cid=9592666

#T8ZSB0 (10) / @ninesigns / 4088 дней назад

«Mercurial: The Definitive Guide» гласит:

In most cases, trailing whitespace is unnecessary, invisible noise, but it is occasionally problematic

Что-то я не могу представить себе ситуацию, в которой trailing whitespace может создавать проблемы. Кто-то может привести пример?

#HAKPSU (11) / @minoru / 4091 день назад

Есть такой программист, вот его сайт http://david.heinemeierhansson.com/
http://david.heinemeierhansson.com/images/racing/mosport-win.jpg
Он написал тот самый веб-фремворк Rails (с открытым исходным кодом), написал несколько книг и гоняет в гонках GT3, получает кубки.
GT3 это очень серьёзные гонки, там настоящие болиды.
А ещё у него семья: жена-блондинка и ребёнок.
Бывают же такие крутые люди, уважаю.

#8J53GE (14+1) / @engineer / 4095 дней назад

Подхачил моду cdb-gud, чтобы можно было подключаться к удаленной сессии windbg.
Олсо, добаваил парсер выхлопа kd.exe чтобы показывался call stack в speedbar и gud показывал исходники (если есть символы).

https://github.com/4DA/kd-gud

#SGBFQI (0) / @ninesigns / 4100 дней назад

Почему когда спрашивают про биндинги ЯП к GUI, говорят "биндинги не очень,
однако посмотрите на web-интерфейс".

Каким хером эти http-огрызки могут сканать за GUI?

#NWUUF0 (11) / @ninesigns / 4102 дня назад

Показать man функции, которая щас под курсором.

(require 'thingatpt)

(defun man-at-point ()
(interactive)
(let ((sym (symbol-at-point)))
(message (format "Showing man for %s ..." sym))
(man (symbol-name sym))))

(defun my-c-stuff ()
;; blah blah
(local-set-key (kbd "C-c C-m") 'man-at-point))

(add-hook 'c-mode-common-hook 'my-c-stuff)

#3EELYT (0) / @ninesigns / 4103 дня назад

Прочитал Richard Reese - Understanding and Using C Pointers. Чот как-то... 2/3 книги какая-то лажа о том как объявлять и разыменоывать указатели. Код в книжке няшно подсвечен, цветастый. Но написан будто школьником каким-то. Под конец правда более-менее интересно, но опять же, ничего нового. Я не спец в сях, но книжка явно начального уровня, IMHO. Не верьте обзорам. Рекомендую людям которые не втыкают в указатели или знают их поверхностно. Всё же надо заметить, что в этой книге они описаны довольно подробно.

#H3YXUI (0) / @shizeeg / 4117 дней назад

Я всерьез подумываю насчет того, чтобы пойти работать программистом. Но тут проблема вот в чем. Чаще всего, работа программиста подразумевает создание проприетарного ПО с передачей всех прав заказчику, и даже иногда требуют подписывать какие-то NDA. Меня такая ситуация совершенно не устраивает, я хочу разрабатывать Free Software. Т.е. я категорически не хочу разрабатывать какое бы то ни было проприетарное ПО. Трудно ли мне будет искать работу при таком раскладе? Какие технологии в таком случае стоит изучать?
(менять свои убеждения я не намерен)

#NYF44F (26+3) / @j123123 / 4117 дней назад

Считаете, что монадные трансформеры это сложно?

Попробуйте разобраться с syntax model в racket!

#YDNPWW (0) / @ninesigns / 4117 дней назад
--
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.