Pull to refresh
43
0
Константин Львов @klvov

программист, программист СУБД, веб-разработчик

Send message
Алан Кей очень умный. Но те вещи, о которых он тут говорит, требуют достаточно долгой работы, чтобы достичь того уровня, когда они начинают доходить до сознания. Благо, что путь открыт и все это можно изучать постепенно: начать с основ (архитектура фон Неймана и расширение понятия «энтропия» на информационный план, что придумал Шеннон), затем понять принцип Тьюринг-полноты (как так получается, что на любом Тьюринг-полном языке можно реализовать любой другой Тьюринг-полный язык) и увидеть схожесть этого принципа с диагональным аргументом Кантора, а потом изучить то, что сделал Джон Маккарти (изобрел функцию eval, которой на вход можно подавать программный код, и это был по сути первый интерпретатор Лиспа), и увидеть, насколько сильно наличие такой функции увеличивает семантическую выразительность языка (по мнению Пола Грэма, эссе которого «Побеждая посредственность» хорошо бы регулярно перечитывать, наличие eval в языке превращает его в диалект Лиспа и после этого он может быть использован как конструктор для разных других DSL, что мы и видим в практике).

Вот это вот и есть настоящая компьютерная наука. А не «какие аннотации в Spring для чего используются». Спасибо, что переводите такие посты.
Причем к этому можно прийти чисто путем логики. Мир — это твой дом. Ты — его часть. Ты же у себя дома поддерживаешь порядок и чистоту, чинишь вещи, а не ломаешь их. Вот и с миром надо точно так же.
Нет, многие всё равно думают, что главное нахапать себе всего побольше, а там хоть трава не расти.
А вот это смешное:

Каждый студент сейчас должен уметь использовать основные монады: IO, Maybe, [] (список), Either. Это позволит ему найти работу в будущем и избавить экономику от перекосов и дефицита кадров.
Насколько я могу вспомнить, все нормальные введения в тему функционального программирования начинаются с показа функций map, filter и reduce.

Про javascript еще всегда интересны статьи на тему «Почему в javascript есть функция eval, откуда она там взялась, зачем она там нужна, и почему такой функции нету в императивных языках вроде Pascal и Java».
Еще версия — Василий Иванович Чапаев и Николай Второй (которого на самом деле не расстреляли) делают операцию Котовскому, которого зацепила белогвардейская пуля. На переднем плане — Петька, который должен внедриться к белым со шпионской миссией, поэтому так и одет )
Выскажу свое ИМХО тоже, как человек, который лет 5 проработал в бизнес-центрах со стеклянными фасадами, как раз в Санкт-Петербурге. При том, что стеклянные фасады иногда смотрятся эффектно, у них есть еще один колоссальный недостаток — в солнечную погоду, особенно летом, здание превращается в теплицу. И поэтому в нем необходимо обязательно устраивать систему принудительной приточной вентиляции и кондиционирования. При этом хоть из кожи вон лезь, воздух внутри здания получается хуже, чем если открыть окна и проветривать (кондиционеры гоняют воздух, в нем циркулирует пыль, вирусы — поэтому заболеваемость выше, воздуховоды надо по-хорошему чистить, менять фильтры, и все такое прочее). И все равно летом в жару кондиционеры не справляются нормально с охлаждением, им банально не хватает мощности.Окна при этом считается, что открывать нельзя, потому что тогда «кондиционеры будут охлаждать город».

Так что у меня сформировалось мнение, что по микроклимату самое хорошее — это «сталинская» архитектура — толстые стены из камня, высокие потолки, естественная вентиляция. Кондиционеры при этом могут быть установлены, но большой нужды в них нету. Но, конечно, вам (Лахта-центру) менять проект из-за моего комментария уже поздно :)
Как-то стремно писать статью в таком месте, где можно потерять возможность ее редактировать. Вот сотрутся куки в браузере, и все, привет, кнопка «Edit» исчезла. А ведь при работе с текстом автор обычно пишет что-нибудь, потом возвращается к написанному, дописывает, редактирует, правит, меняет формулировки, работает над стилем. И в таком месте, где возможность редактирования можно на раз потерять, лично я статью даже не начинал бы писать.

Хотя бы ссылок было два вида, например так:

http://telegra.ph/Cool-story-about-11-24 — обычная
http://telegra.ph/Cool-story-about-11-24?cookie=uiou3o42o3i4ujkldsfjk — для редактирования.

А так… не очень понимаю, зачем оно надо такое.
Это очень правильно: прятать такие картинки под кат.
Плюс один вам. Когда видишь такие цифры, то первая реакция «аааа, ужас, 128 человек!». А потом посмотришь, вторая группа больше первой примерно в 4 раза, ну и умерло тоже больше примерно в 4 раза. Мне иногда начинает казаться, что за таким употреблением цифр стоит сознательная попытка манипуляции.
Оно надувное что ли, а не монолитное? Тогда антипрокол можно туда залить, как велосипедисты иногда делают. Не знаю, насколько помогает от проколов, но вроде и не мешает.
Да, все так. Там автор сразу пишет, что это программа не для промышленного использования, в ней есть утечки памяти, и написана она была исключительно с целью поразбираться, как вообще работает интерпретатор лиспа. И мне кажется, что ценность его примера именно в том, что интерпретатор лиспа он реализует на C (ну или на C++), а это (по авторитетному мнению Пола Грэма), две различающиеся парадигмы вообще подхода к машинным вычислениям. Если «подход Си» идет от архитектуры вычислительных машин (архитектуры фон Неймана), то «подход лисп» идет, видимо, от математических построений, когда оказывается, что можно определить несколько примитивных функций в ядре языка (те, что перечислены в комментарии выше — cons, car, cdr и пр.), и из них построить функцию eval. Пол Грэм об этом интересно писал в своих эссе, кажется, «The roots of LISP».
И в дополнение к статье Норвига еще одна статья, где автор пишет интерпретатор лиспа по мотивам Норвига, но не на Питоне, а на Си. Между прочим, там уточняется не совсем очевидный вопрос — как сделать лямбды, когда в языке реализации интерпретатора (Си) их нет. Вот ссылка:
http://howtowriteaprogram.blogspot.ru/2010/11/lisp-interpreter-in-90-lines-of-c.html
Хуже того, это не только «сюжет для фильма в жанре «техногенный апокалипсис»», а ситуация, которая уже происходила в истории, и не поручусь, что сейчас где-то что-то подобное не происходит или не будет происходить. Именно о ситуации «программа принимает решения за людей, которые не понимают, как она работает» Вейценбаум писал в своей (очень, кстати, поучительной) книжке:

Чтобы дополнить поучительную историю, рассказанную Моррисоном, нет нужды обращаться к системам, которые появятся в будущем. Во время войны США с Вьетнамом вычислительные машины, используемые офицерами, не имевшими ни малейшего понятия о том, что происходит внутри этих машин, фактически определяли, какие деревни должны подвергнуться бомбардировке и в каких зонах концентрация вьетконговцев достаточна для того, чтобы «имелись основания» объявить их «зонами стрельбы без предупреждения», т. е. в обширных географических районах летчики наделялись «правом» убивать любое живое существо.
Кто-нибудь знает, помогает ли избежать заражения таким способом («через рекламные баннеры, крутившиеся в роликах на YouTube») включенный User Account Control?
Хм… «конус прошлого», «конус будущего», «логическое время». Очень похожие термины часто употребляются в научно-популярных изложениях СТО (Специальной теории относительности). С иллюстрациями, где два конуса (один расходится вверх, другой вниз) соприкасаются вершинами, и внутри конуса, уходящего вниз, написано «absolute past», внутри уходящего вверх написано «absolute future», а пространство вне конусов подписано «absolute elsewhere».
А, понятно, в случае C и С++, наверное, удобнее как у вас. У меня просто другая ситуация — сборка обычно очень быстрая, вывод make'а короткий и содержит в основном информацию либо «Скомпилировалось ОК», либо «Ошибка на такой-то строке».
У меня тоже сборка в Vim через make. Висит примерно на такой функции:

function! MakeProject()
  execute "silent update"
  execute 'echo system("cd ..\\PROJECT_DIR && nmake")'
endfunction


При этом вывод make'а идет в том же окне, где код, таким же образом, как если, например, набрать :ls
Мне кажется, удобно, потому что смотришь в код и не теряешь контекст.
Upd. Это под Windows.

Мне посоветовали в свое время для этого дополнение addons.mozilla.org/ru/firefox/addon/hide-bookmarksbar/
Советую его вам в свою очередь.
Да, делает, например банк Санкт-Петербург. Надеюсь, скоро будут и другие так делать, предпосылки к этому есть.
Насколько я помню, то, что у вас называется object_fast_table, обычно называется таблицей транзитивных замыканий. В принципе, достаточно удобный способ работы с древовидными структурами в SQL. Если CONNECT BY PRIOR или аналоги в диалекте SQL не поддерживается, то без такой или подобной структуры трудно обойтись.

Information

Rating
6,411-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity