2011-02-27
2010-11-09
Число Эрдёша
Меня заинтересовала дискусия в коментариях про число Эрдёша.
2010-08-17
Определение рабочего окружения и возможностей платформы в Emacs
.emacs на различных платформах и различных версиях Emacs требуется проверять множество условий.
Я собрал несколько из них.
2010-08-12
Топ 10 правил безопасного написания кода от CERT.
- Проверяйте входящие данные.
- Учитывайте предупреждения компилятора.
- Проектируйте с возможностью разделения привелегий.
- Делайте все прстым.
- По умолчанию запрещайте.
- Используйте наименее возможные привелегии.
- Уберите лишюю информацию при отправке в сторонние системы.
- Защищайтесь на всех уровнях.
- Используйте хорошие системы контроля качества.
- Разработайте правила/стандарт безопасного написания кода.
См. также:
2010-08-11
Пробретение процессора Intel Core i5 750
Характеристики процессора Intel Core i5 750:
2010-08-06
Сортировка с помощью утилиты sort элементов в строке.
2010-03-31
Магия кавычек в POSIX sh.
-n скушало -a!
Подумал я взять подвыражения по бокам -a в скобки (утилита test позволяет группировать условия, заключая их в скобки):
Тут до меня доходит что у -n аппетит хороший и нужно гарантировать ему аргумент! Потому заключаем переменные окружения в двойные кавычки (которые позволяют подстановки в отличии от одинарных кавычек):
2010-03-07
emacs.info в Debian.
Потому мантейнеры пакета Emacs исключают emacs.info, eintr.info, elisp.info и некоторые другие документы из пакета.
Можно было бы получить emacs-no-chunk.html, открыть html в Firefox и с включенным "Search for text when I start typing" также легко искать текст, но:
- приходится помнить/искать где лежит
emacs-no-chunk.html - документ большой ~= 1 MiB, долго загружается Firefox'ом и немного натупляет Firefox
И так нужно поступать с каждым документом, тогда как при использовании site wide installed info по C-h i видны и искабельны by s или C-s все info-файлы.
Из дистрибутива исходных текстов Emacs извлекаем *.info файлы:
О наличии *.info файлов Emacs'у можно сказать переменной среды INFOPATH:
*.info, установленными с Emacs'ом.
Я пошел по другому пути, что бы не прописывать на каждом хосте INFOPATH, добавил следующее в .emacs:
(unless (getenv "INFOPATH") позволит использовать переменную среды INFOPATH, которую я обычно устанавливаю в Windows для чтения info, поставляемых с MinGW/MSYS/Cygwin, из Emacs, но об этом в следующий раз.
Также это удобно тем, что собранные вручную программы я обычно конфигурирую таким образом:
2010-03-01
Логическая задача Льюиса Керрола.
- 1. Всякий, кто не танцует на туго натянутом канате и не ест пирожков за одни пенс, стар.
- 2. Со свиньями, которые временами испытывают головокружение, обращаются почтительно.
- 3. Разумная свинья, отправляясь в путешествие на воздушном шаре, берет с собой зонтик.
- 4. Не следует завтракать в присутствии посторонних тому, кто имеет смешной вид и ест пирожки за один пенс.
- 5. Юные существа, отправляющиеся в путешествие на воздушном шаре, временами испытывают головокружение.
- 6. Жирные существа, имеющие смешной вид, могут завтракать при посторонних, если только они не танцуют на туго натянутом канате.
- 7. Ни одно разумное существо не станет танцевать на туго натянутом канате, если оно временами испытывает головокружение.
- 8. Свинья с зонтиком имеет смешной вид.
- 9. Все, кто не танцует на туго натянутом канате и с кем обращаются почтительно, жирны.
Update:Я смог решить задачу только используя Reductio Ad Absurdum. Скорее всего в интуиционистской логике задача не решаема, т.е. прямого доказательства нет.
2010-02-21
Игра в неправильные кубики.
Если играть кубиками с развертками:
Действительно:
2010-01-13
Высказывание Джеймса Гуслинга о динамических языках.
Действительно когда пытаешься быстро написать прототип или проверить концепцию, избирая языком программирования Java, приходится возиться с различными мелочами, отнимающими только время.
Создание абстракции потребует объявление класса и написания кучи ключевых слов. Если изменить концепцию - весь код можно выбрасывать - ведь код на Java это инструкции для манипуляции состоянием объектов. Действительной логики совсем немного.
Сравнение хорошо почувствуется если почитать статью "Why Functional Programming Matters" - все примеры демонстрируют обобщенность полученного кода, реализации концепции и возможность применения ее к различным по структуре данным.
См. также:
2010-01-09
SCIgen
Значимость науки обусловила вовлечения громадного числа людей и денег в эту сферу. А где деньги - там и бюрократия с коррупцией.
Дипломы покупают, защиты покупают, статьи пишут для галочки, гоняются за грантами.
Для получения научного звания (научной степени) во многих странах требуется определенное количество опубликованных статьей в научных журналах. Не все гении, а звание хочется, потому и появляются статьи типа "О низкотемпературной протонной релаксации и динамическом охлаждении".
Для обслуживания такого рода клиентов работают научные журналы. Буквально печать производится за средства авторов!
Ребята из MIT решили посмеяться над системой. Написали программу для генерации бреда, похожего на научную статью и отправили в качестве доклада на конференции - и статья прошла!
Я посетил домашнюю страницу проекта - http://pdos.csail.mit.edu/scigen/. В предложенную форму вбил свое имя отчество, нажал кнопку получить - и вуаля статья готова:
On the Evaluation of 16 Bit Architectures
Как говорится в моей новоиспеченной статье:
Смотри также:
- SCIgen home page
- SCIgen на Wikipedia (ru) - здесь вы найдете веселые истории.
- Блог SCIgen с описанием успешных публикаций.
- Корчеватель на русском )) - эта статья напечаталась в русском журнале!
- Определение научного журнала на Wikipedia (ru)
2009-12-24
Пасхальные яйца в программах.
Пасхальные яйца обычно не влияют на нормальную работу программы, для их активации пользователю потребуется выполнить "магическую" последовательность действий.
В коммерческих продуктах пресекается встраивание пасхальных яиц, т.к. их исходный код может быть потенциальной дырой в безопасности продукта. Так было найдено множество пасхальных яиц в продуктах Microsoft, но после начала участия Microsoft в программе Trustworthy Computing программистам шутить запретили.
Одним из пасхальных яиц является появление отрывков из книги "The Book of Mozilla" если в строку адреса ввести URL: about:mozilla. Данный URL приводят в качестве примера в черновике спецификации схемы URL about: http://tools.ietf.org/html/draft-holsten-about-uri-scheme.
Текст отрывков вымышленной книги эзотерического характера и в переносном смысле говорит о восстании из пепла свободного браузера.
Интересно что разработчики Microsoft ответили "синим экраном смерти" - если набрать URL about:mozzila в Internet Explorer в Windows XP до SP1 включая. Указанная страница позже таким образом не доступна, ее можно увидеть введя URL: res://mshtml.dll/about.moz
2009-12-20
Непоследовательный калькулятор Windows.
2009-11-22
Сборка NetHack в MSYS/MinGW (Windows).
- Получил исходные тексты: http://nethack.org/v343/download-src.html.
- Получил работающую среду MSYS/MinGW: http://www.mingw.org.
- Почитал nethack-3.4.3/sys/winnt/Install.nt. Встретил команду mingw32-make -f Makefile.gcc install, но как оказалось Makefile.gcc рассчитан на использование SHELL = cmd.exe, как я понимаю mingw32-make. Я же решил собирать make с SHELL = /bin/sh.
- В Makefile.gcc установил значение переменной GRAPHICAL в "Y" для сборки также и GUI версии.
- Запустил nhsetup.bat (скрипт кроме всего копирует Makefile.gcc в nethack-3.4.3/src)
-
Поправил nethack-3.4.3/src/Makefile.gcc с win-shell (cmd.exe) на unix-shell (/bin/sh):
$(subst /,\,copy nhdat $(GAMEDIR))наcp nhdat $(GAMEDIR)регулярным выражением s=$(subst /,\\,copy \(.*\))=cp \1=
-
$(subst /,\,if exist $(GAMEDIR)/makefile del $(GAMEDIR)/makefile)на[ -f $(GAMEDIR)/makefile ] && rm $(GAMEDIR)/makefile || :
-
@copy $< $@наcp $< $@подстановкой copy на cp
-
$(subst /,\,@if not exist $(GAMEDIR)/*.* echo creating directory $(GAMEDIR)) $(subst /,\,@if not exist $(GAMEDIR)/*.* mkdir $(GAMEDIR)) $(subst /,\,@echo directory created > $@)наmkdir $(GAMEDIR)
- И т.д.
-
Затем запустил сборку:
$ cd nethack-3.4.3/src $ make -f Makefile.gcc install
- В каталоге nethack-3.4.3/binary появились NetHack.exe и NetHackW.exe.
2009-11-08
Мои настройки blogger.
Первым делом при создании нового блога на blogger я устанавливаю эти настройки!
- Отключить WYSWYG редактор.
Settings ==> Basic ==> Show Compose Mode for all your blogs? ==> No.Я редактирую статьи в чистом HTML для полного контроля над видом статьи (WYSWYG редактор вставляет свои теги, они могут портить вид).
- Включить ссылки быстрого редактирования статьи.
Settings ==> Basic ==> Show Quick Editing on your Blog? ==> Yes.Не то что б я их использую, но оставил в шаблоне код, который создает их.
- Открывать новую странице для создания комментария.
Settings ==> Comments ==> Comment Form Placement ==> Pop-up window.Уменьшается использование площади страницы и чуть чуть сохраняет трафик тем кто не собирается оставлять комментарий.
- Только авторизированные пользователи могут оставлять комментарии.
Settings ==> Comments ==> Who Can Comment? ==> Registered Users.Нет anonymous. Не забудьте включить OpenID!
- Отключить backlinks.
Settings ==> Comments ==> Backlinks ==> Hide. Settings ==> Comments ==> Backlinks ==> Backlinks Default for Posts ==> New post do not have backlinks.Мне они не нужны (я даже удалил код из шаблона, который создает backlinks).
- Использовать CAPTCHA.
Settings ==> Comments ==> Backlinks ==> Show word verification for comments? ==> Yes.Остановим спам!
- Сообщать о новых комментариях по email.
Settings ==> Comments ==> Backlinks ==> Comment Notification Email ==> <Enter emails>.Мне нужно знать что кто то оставил комментарий.
- Не вставлять <br/> после LF.
Settings ==> Formatting ==> Convert line breaks ==> No.Я хочу иметь полный контроль дан содержимым статьи.
2009-11-04
Переименование пользователя в Linux.
mv не ограничится:
Находим все вхождения слова olduser в конфигурационных файлах:
Можно было использовать следующий способ поиска вхождений:
Я для правок использовал команду Emacs grep-find, это позволяло мне быстро переходить в место вхождения заменяемого слова:
2009-10-11
Сортируем без повторений в Emacs.
M-x sort-lines.
Для сортировки без повторений выполняем:
- выделить область
C-u M-| sort -u RET
С включенными режимами transient-mark-mode и delete-selection-mode можно сразу заменить выделенную область отсортированными без повторения строками:
- выделить область
M-| sort -u RET
mit.edu в помощь!
Это я набираю по памяти:
2009-10-09
TiddlyWiki.
Работает в Firefox, Explorer, Safari и Opera.
Движок wiki активно использует JavaScript. Движок и данные размещаются в одном и том же html файле.
Компактность движка (~340 KiB) и использование одного файла в качестве хранилища позволяют с легкостью переносить статьи с компьютера на компьютер, хранить wiki на внешнем носителе (например USB stick).
Проект выпущен на условиях BSD лицензии (делай что хочешь - только авторов и лицензионное соглашение из исходного текста не выбрасывай).
Ссылки:
- http://www.tiddlywiki.com - домашняя страничка
- http://tiddlywiki.org/wiki/Main_Page - wiki, посвященная TiddlyWiki
- http://ru.wikipedia.org/wiki/TiddlyWiki - статья в Wikipedia
- http://tiddlyspot.com - online сервис, предлагающий бесплатно использовать TiddlyWiki