Как стать автором
Обновить

Комментарии 12

Из исходников Asterisk IP PBX (ссылка), модуль Asterisk Manager:
	/* Mark: If there's one thing you learn from this code, it is this...
	   Never, ever fly Air France.  Their customer service is absolutely
	   the worst.  I've never heard the words "That's not my problem" as
	   many times as I have from their staff -- It should, without doubt
	   be their corporate motto if it isn't already.  Don't bother giving
	   them business because you're just a pain in their side and they
	   will be sure to let you know the first time you speak to them.

	   If you ever want to make me happy just tell me that you, too, will
	   never fly Air France again either (in spite of their excellent
	   cuisine).

	   Update by oej: The merger with KLM has transferred this
	   behaviour to KLM as well.
	   Don't bother giving them business either...

	   Only if you want to travel randomly without luggage, you
	   might pick either of them.

	*/
Some people like to tile their 24" screens with a 6x4 matrix of 80x24 xterms and use vi in all of them.
По одному экземпляру vi на каждый дюйм диагонали? Это точно были челябинские программисты…

кодогенерация в Scala (та, которая макросы), устроена приблизительно так: вы пишите код на Scala, использующий API компилятора, и компилируете его. Потом при следующем запуске компилятора вы просто передаёте получившийся кодогенератор в classpath самого компилятора, а тот, увидев специальную директиву, его вызывает, передав синтаксические деревья, полученные при вызове. В ответ он получает AST, которое нужно подставить в месте вызова.
Если я правильно понимаю, в Rust процедурные макросы работают точно так же (обычные — несколько проще): делается отдельный пакет, который на вход получает цепочку токенов (всё-таки не AST, да), поданную в макрос, а на выход подаёт цепочку токенов, которой вызов макроса нужно заменить.

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

Ну, тут хоть приблизительно описано, для чего использовать нельзя, хотя и не СПО, конечно, но её использование выглядит не так рискованно.

Some people like to tile their 24" screens with a 6x4 matrix of 80x24 xterms and use vi in all of them.

Тут имеется в виду 6x4 матрица с xterm-ами размером 24 ряда, 80 колонн.
Так и я о том же. 6 xterm-ов по горизонтали, 4 по вертикали, итого 24 штуки.

WooHoo, наверное, хочет сказать, что сравнивать "площадь" (38 попугаев 24 икстерма) и диагональ (24 дюйма) — размерность не сходится.

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

А вот результат рассчётов — не очень. По моим прикидкам в каждом терминале по 3 дюйма диагонали наберётся...

Мои соображения по поводу undefined behavior: есть только 4 варианта, в которые укладываются все ЯП:
  1. синтакическая мощь языка больше семантической, UB во всей красе
  2. пространства синтаксиса и семантики пересекаются, случаи UB существуют
  3. пространство синтаксиса и семантики полностью совпадают, UB не может быть в той же степени, как и такого ЯП
  4. семантическая мощь больше синтаксической, UB невозможен — очень печальное зрелище, IMHO, поскольку некоторые возможности языка невозможно реализовать в силу ограниченности его синтаксиса

P.S. Возможно, я не сам это придумал
НЛО прилетело и опубликовало эту надпись здесь

Да уж, даже говоря про программу размером в 10, байт лучше не употреблять термин самая маленькая. Ну, будем считать, что это была версия под C++ :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории