?

Log in

No account? Create an account
Белые слова [KAPACb] [ДАЖДЬ] [Анти-Синтон] [Фото] [TheQuestion] [DomEconom] [Ticketland] [ВКонтакте] [FaceBook] [Спрашивалка] Below are the 10 most recent journal entries recorded in the "Сервер не найден" journal:

[<< Previous 10 entries]

October 27th, 2018
10:48 pm

[Link]

Левое и правое IT

Среди теоретиков программирования и продвигаемых ими идей тоже есть правые и левые, как в политике.

Правые - это Пол Грэм (или как его там, Грэхам?) Больше возможностей для сильных программистов, лично закреплённый код, использование максимально мощных программных средств, при этом - апология экономического неравенства и восхваление хакерства и стартапов.

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

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

Tags:

(Leave a comment)

August 23rd, 2018
11:35 pm

[Link]

Новые песни

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

Романс маньяка

Зацепившись языком,
Удержи её зубами.
Начинать всегда легко,
А потом и разум свалит.
Дело, вроде бы, пустяк,
Но я влюбчив, как маньяк.

А идёт всё к одному:
Не твоё, дурак, не трогай,
Не нашёл покой уму –
Так иди своей дорогой,
А дорога коротка,
Но петляет как река.

Я смотрю с её петель,
Заковыристых развязок,
Бесконечна куча тел,
Как бы знал – не лез бы сразу.
Накатило, понесло,
Залежалось, отлегло.





Бумага фонарей

За окном рассыпана бумага фонарей,
Выйди, собери её скорей!
Круглые листы лежат на плоскости и ждут карандаша,
Глаз прищуриваю, руки чешутся, волнуется душа.

Чем тебе покажется бумага фонарей?
Чем скорей ответишь, тем верней:
Картой, транспарантом, или скатертью для ланча на ходу,
«Шпорой», перевязочным пакетом, сверхсекретом на виду?

За окном подмигивают дети фонарей,
Сколько ярких окон без дверей!
Сколько сказок знают, я прошу их рассказать всего одну:
Можно ли и мне не суетиться, излучать свою волну?

Что ты мне напишешь на бумаге фонарей?
Ничего не проще и хитрей:
Танцем своей тени исчезая, растворяясь, чуть дыша,
С новый вдохновеньем возвращаясь на конец карандаша.


The Law

Я просыпаюсь в палате, отходит наркоз,
Где моя шерсть, чего ради я бегал и рос?
Что-то теперь мне подсунут ценой перемен?
This is the Law, are we not Men?

Из глубины своей ямы узреть небосвод,
Старых успехов тенями очищенный от
Блеска наследства, бахром золочёных знамен,
This is the Law, are we not Men?

С краденым словом согнуться в нощи яко тать,
Да, я упал, чтоб вернуться, ушёл, чтобы встать.
Нет, не заткнуть мою совесть, я здесь не затем,
This is the Law, are we not Men?

Господи Боже мой, Ты-то Сам знаешь всё как,
Ты же мне вырвал копыта, отрезал пятак,
Дело за мной – это всё, что я понял пока,
Но если это закон, чья здесь рука?

Что же, сестра, подходи и держи свои пять.
Больше нет страха друг друга ни в чём не понять
Остров наш мал, наш надел, наш удел, наш домен,

This is the Law, are we not Men?
This is the Law, are we not Women and Men?

Tags:

(Leave a comment)

August 7th, 2018
01:50 pm

[Link]

Языки запросов

Вот есть SQL со всеми его диалектами и прочие, довольно экзотические, языки запросов. Не всем они нравятся - но что придёт им на смену?

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

С другой стороны - как происходит эта интеграция? Вот есть веб-приложение, приходит от клиентской части HTTP-запрос, "средний слой" преобразует его в (SQL-)запрос и переправляет серверу БД. Часто это преобразование не сводится к простой подстановке параметров, и запрос получается сложным (в силу недостатков языка запросов) и плохо читаемым человеком. Какие возможны выходы:

1. Формирование запроса как объекта - и дальнейшее преобразование в запрос на SQL. В предельном случае преобразование будет абстрактно от текущего проекта, и выполнено в виде отдельной библиотеки. Язык запросов в таком случае подменяется интерфейсами для формирования запроса-объекта - мы получаем вместо двух разных языков один с новым подмножеством, а старый язык тогда остаётся языком "сериализации" объектов-запросов. С одной стороны, шагом к этому была Java Persistence Architecture с её CriteriaBuilder - но возможности построенных  абстрактных от СУБД запросов намного скромнее, чем у запросов на конкретном диалекте SQL; с другой, можно вспомнить MongoDB, у которой запросы - просто JSON (то есть уже готовый механизм сериализации используется).

2. Формирование запроса с помощью движков шаблонов - кто-нибудь пробовал??

3. Более тесная интеграция языка среднего слоя внутрь сервера базы данных, переход на какой-нибудь RPC с привычными прозрачными интерфейсами. Тут плохо то, что реализации RPC тоже уже старые и громоздкие (SOAP ещё вспомните), а сами языки "среднего слоя" более императивны, чем декларативны (но тут есть подвижки, типа unapply в Scala), и эта декларативность может помешать использовать внутреннюю оптимизацию запросов. Хотя запросы бывают разные, вручную их тоже оптимизировать бывает надо.

Upd. 4. Вариант, который я не сразу вспомнил , а ведь сталкивался - максимально перенести логику в хранимые процедуры, усложнить статически SQL-код. Можно ведь уже сейчас много что делать, вплоть до сериализации прямо внутри SQL, да? Проблема использования версионности, синхронизации кода в VCS и базе - чисто техническая. То, что получится, будет меньше испытывать проблем от применения двух разных языков, и больше - от недостатков самого SQL.

Tags:

(Leave a comment)

May 12th, 2018
10:59 pm

[Link]

Новые песни
The Cakewalk

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

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

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

Песня о стремлениях и мечтах

Оставаться в прошлом, глупом, тесном, пошлом
Мне не надо точно, и вряд ли хочешь ты.
Всякому живому, кроме как больному
Свойственны стремленья и мечты

Припев:
Все хотят чужого, все хотят чужого,
Нового, большого, звёзды на плечо,
Все хотят чужого, все хотят чужого,
Все хотят ещё!

Сдвинувшего нормы не пугают штормы,
Чем сложней задача, тем ему милей.
Скалы, волн громады, вызовы, преграды
Делают сильнее и смелей!

Припев.

Но мы знаем: каждый, испытавший жажду,
Коль ему не страшно, будет напоён,
В поле, на заводе, в обществе, в природе
Он отыщет что-нибудь своё!
Но…
Припев.

Salma ya salaya

(Вольный перевод народной песни арабов Египта)

Всю жизнь по пустыне
Шёл путник, а ныне
Он видит вдали, наконец,
Бассейны, фонтаны,
Павлинов, лианы,
Тенью манящий дворец,
Из его дверей он слышит:

Salma ya salaya,
Привет, скиталец, salaya,
Salma ya salaya,
Мы ждём тебя, bisalaya

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

Salma ya salaya,
Входи смелее, salaya,
Salma ya salaya,
Садись за стол, bisalaya...

Утешная

Столько часов, а нам всё не спится,
Ночь прячет свет, мы прячем лица,
Слёзы стеной, я столько не выпью!
Why weep ye?

Мир не таков, как ты хотела,
Нет никому до тебя дела,
Вот и всего, а плача на весь мир,
Ай вэйзмир!

Знаешь, и я так же размякнуть,
Сжаться в комок, так же заплакать
Мог бы и сам, будь я так нежен,
Но нет же!

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

Романс изгоя

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

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

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

Так не надо искать, оставайтесь под крышей, меж стенками,
И однажды под ночь я приду на немеркнущий свет,
Весь в пыли как в долгах, волосатый, обвешанный феньками,
Постучусь к Вам в окно, и скажу Вам: впишите на флэт!

Инверсия

Не действуй на столетья, павши ниц!
Сойдёт пространство - помогу запутаться:
Басят они, как штык у ягодиц,
Затянутые времени конструкции!

Столетья распадаются на дни,
Столетья разлетаются годинами,
Но ты не удивишься ни на миг:
Что завтра, что вчера - да всё единое!

У некоторых, впрочем, общий бред
И общий барабан, и маски стёртые,
Они насоберут со всех побед
И почести возьмут, но нужно ль мёртвым-то?

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

Ушёл мой век короткий - и плевать,
Плевок средь наводнения - искать ещё!
Так будем хитро прибыль забывать -
Так, в частности. В минуту подходящую.

Tags:

(Leave a comment)

December 27th, 2017
12:17 pm

[Link]

Паразитная функциональность
https://www.gazeta.ru/science/2017/12/26_a_11545316.shtml

У автобусов ЛиАЗ-5292 есть защита от езды с закрытыми дверями. Эта полезная штука порождает опасный обратный эффект: можно использовать открытую дверь как состояние органов управления, в котором автобус не едет, но тогда он может неожиданно тронуться при закрытии двери.

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

Tags:

(Leave a comment)

December 19th, 2017
05:55 pm

[Link]

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

Вы думаете, так не бывает? А ведь сами всё видели. Бывает даже, что оба охотника из одного племени.

Tags: ,

(Leave a comment)

November 17th, 2017
11:17 pm

[Link]

Гипотеза

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

Прямо как субдоминанта-доминанта-тоника (кстати, первый пример).

С детства такое вижу: мой радиус метро кончается станциями Измайловская-Первомайская-Щёлковская, потому здесь такое уютное место. До 2003 года другой конец линии был Арбатская-Смоленская-Киевская, теперь такие кадансы надо искать в других местах: Борисово-Шипиловская-Зябликово. А другие примеры?

Труба, валторна, тромбон, туба.
Июнь, июль, август.
Cреда, четверг, пятница
.

- ну и что, что не по официальному календарю, конец в самом приятном месте.

Ещё примеры?

Tags:

(2 comments | Leave a comment)

September 8th, 2017
10:26 pm

[Link]

из фейсбука, но и тут уместно
флешмоб

10 утверждений про меня, ровно два из которых неправда.

1. я ни разу не пил пива
2. на моей гитаре однажды играл Сергей Калугин, а она была расстроена
3. единственную единицу в школе я получил за невыученные стихи, а один раз получил пять в четверти по физкультуре
4. один раз я перевёл фильм
5. из всех предметов одежды, которые я носил, самый большой эффект на окружающих произвела бирюзовая футболка
6. однажды я провел консультацию перед экзаменом в парке
7. у меня дома лежат топор, две шляпы и солонка, которые я все забываю отдать
8. однажды я публично играл на ударной установке
9. раз в две недели я не сплю всю ночь
10. я могу нарисовать схему Московского метро по памяти

Tags:

(1 comment | Leave a comment)

July 23rd, 2017
12:24 am

[Link]

Несколько мыслей о выразительности
1. Симметрия (и ритм как переносная симметрия), да и всё прямое и ровненькое, радуют глаз и восхищают во всём, кроме программного кода. Повторяемость конструкций вызывает подозрение, что какие-то из них лишние и надо использовать одну за всех.

2. Выразительность в программировании делится на "ясно, зачем это" и "ясно, как". Крайний пример второго - язык ассемблера, где каждая строчка делает понятно что, но в реальной программе теряется в дебрях структуры (а всё выглядит ровненько-ровненько, см. п.1). Крайний пример первого - почему-то тестовые библиотеки, такие, как mockito и scalatest: конструции вида when(a.isCalled()).thenReturn(whatIsNeeded) выглядят почти как связный английский текст, но поди сразу пойми, какие методы каких классов тут вызываются и какие объекты выдают. К счастью, взаимоисключение неабсолютное, языки развиваются с улучшением обеих выразительностей. Но какой код легче переиспользовать? Если первый раз видишь и нет описаний, то легче выразительный "как": очень часто бывает, что скопируешь вроде как понятный выразительный "зачем" кусок, слегка переделаешь для новой задачи и потом долго тупишь - а почему он не работает. А вообще - конечно, он лучше.

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

Tags: ,

(2 comments | Leave a comment)

July 9th, 2017
10:04 pm

[Link]

Урбанистиха
в фейсбуке уже былоCollapse )

Tags:

(Leave a comment)

[<< Previous 10 entries]

KAPACb Powered by LiveJournal.com