Как известно, в языке Oberon строку можно поместить в массив CHAR, добавив завершающий 0X. Это приводит к необходимости счёта длины, когда она необходима, что может приводить к избыточным накладным расходам. Но в отличии от языка C в Oberon из-за требования безопасности памяти также всегда доступен размер массива, используемого для хранения строки. Это приводит к возможности хранить длину строки так, чтобы её не приходилось считать.
÷ 0
Нужны не QR-коды
Техника давно способна распознавать человекочитаемый текст, поэтому массовое предоставление информации в виде QR-кодов, чтобы их была способна прочитать техника — это часто лишь традиция, которую давно пора отменить. Речь не об узкоспециальных применениях, а про массовое, в котором пользователи считывают код с помощью фотокамер своих навороченных смартфонов. Эта традиция должна быть заменена на «человек в первую очередь», раз уж технически этому ничто не мешает.
Нужно лишь
- Ограничить количество доступных литер и стандартизировать их начертание
- Cоздать простой графический якорь, чтобы для обнаружения необходимого к считыванию кода не приходилось задействовать сложных и ресурсоёмких алгоритмов
- Добавить код исправления ошибок, возможно, совместив его с якорем.
Миф о мифе о большом количестве скобочек в Lisp
Когда мне в очередной раз рассказывают про то, что в Lisp слишком много круглых скобочек — это миф, то я представляю себе приблизительно это:
В OS Android больше нет смысла
Google в скором времени откажется от возможности установки произвольных приложений от не зарегистрированных и верифицироанных разработчиков. Некоторые люди пытаются сопротивляться — . Стоит ожидать, что это не возымеет никакого действия. Единственное, что можно сделать, это перестать пользоваться новыми версиями Android на сертифицированных устройствах.
Положительным побочным действием могло бы быть подстегивание развития другой свободной мобильной ОС, но и это маловероятно.
Детектор языков C и C++
C++, в целом, старается быть надмножеством языка C, но всё же им не является. Вот пример проявляемых различий:
Исполняемый Jar-файл с shebang
Это стандартная особенность zip формата, позволяющего произвольные данные перед началом архива.
{ printf '#!/bin/sh\nexec java -jar "$0" "$@"\n'; cat app.jar; } > app
chmod +x app
Разумеется, Jar должен содержать класс с public static void main(String[] args) и соответствующий manifest. Без manifest можно обойтись, если заменить команду java -jar "$0" "$@" на java -cp "$0" my.prog.Main "$@"

