программы

Минималистика текстового редактора

Когда-то давно я открыл для себя текстовый редактор q10. Идея пустого чёрного экрана, на котором нет ничего, и ничто не отвлекает от создания текста, заметки, стихотворения или письма — это отличная идея, по которой я тоскую со времён моего фидошного прошлого, когда моим любимым текстовым редактором был GoldEd, поверх которого в консоли запускался vi. Ну и да, на те времена у меня всё было текстовым — старенький p233 не очень-то тянул графические оболочки.

Потом эти редакторы стали вылупляться, как грибы после соответствующего дождя. Я увидел jDarkRoom, полностью написанный на яве, которую я ненавижу. И просто DarkRoom. Утомлённый Windows 7 maxss показывает такую штуку, как WriteMonkey.

Это, ребята, всё круто. Но по сравнению с одной штукой, которая есть у маководов… Смотрите сюда — OmmWriter.

Парни, напишите такую штуку под винду, я её хочу. Это будет напоминать мне несколько более поздние времена, когда vi поверх GoldEd всё ещё запускался мной, а в самом низу, под всем этим, был очень красивый vesafb+splashscreen.

Да, было дело.

Pocketmod

Хотел сказать ещё об одном веб-приложении, без которого я себя давно не мыслю, и результаты работы которого всегда ношу с собой. Результаты его работы — не файлы, не картинки, не сгенерированные бинарники, и вообще к компьютерам имеют мало отношения. Результаты его работы — блокноты. Маленькие бумажные блокноты на несколько листиков, которые можно компоновать самому.

Знакомьтесь, Pocketmod.

При помощи конструктора на сайте можно блокнот скомпоновать, добавив в него листы в клетку, линейку, мини-ежедневник, календари, агенды, список дел, список покупок и много чего ещё. Далее, всё что нужно — это распечатать этот лист, нехитрым образом сложить, разрезать по определённой линии (инструкция есть на том же сайте) — и voila, блокнот готов.

Я обычно в понедельник утром печатаю такой блокнотик на ближайшую неделю — и порядок. Очень рекомендую.

SplitView

Вот ещё одна хорошая программа, без которой моя работа просто немыслима. SplitView. Она делит рабочие столы на сектора, в которые позволяет убирать программы (ура, больше не надо вымерять окна, таская их мышкой за края), поддерживает удалённые рабочие столы, а также мультимониторные конфигурации (отдельное ура). Один в ней недостаток — платная, но кому очень надо, тот заплатит, а кому очень надо, но платить не хочется, тот найдёт бесплатно.

Рекомендую.

F.lux

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

Очень простые настройки — нужно всего лишь выбрать своё географическое местоположение, в принципе, можно также поменять профиль понижения/повышения цветовой температуры, но это уже необязательно. Я менять не стал. Есть опция для отключения адаптирования температуры на 1 час (ну, мало ли, понадобится вам ночью фотографию отредактировать)…

А вот читать и сёрфить стало легче для глаз.

Принцип шокирующего абсурда

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

Гради Уорд в FAQ по PGP (система шифрования данных), советовал при выборе пароля руководствоваться принципом “шокирующего абсурда” и написал в абзаце, посвящённом выбору идентификационной фразы, так:

Принцип “шокирующего абсурда” заключается в составлении короткой фразы (или предложения), которая лишена смысла и в то же время вызывает шок у пользователя в данной культурной среде. То есть, она должна содержать совершенно неприличные или расистские высказывания либо состоять из абсолютно нестыкующихся между собой выражений. Применять такой подход не предосудительно, поскольку подразумевается, что пароль никогда не станет известен людям, чьи чувства могут быть им оскорблены.

Маловероятно, чтобы подобный пароль был повторен кем-то ещё, так как он уникален по своей сути. При этом он легко запоминается, потому что имеет яркую эмоциональную окраску. Сдержанный пример шокирующего абсурда выглядит так: “Моллюски отгрызли мои гарцующие гениталии”. Любой читатель без труда придумает более шокирующие фразы.

Задолго до того, как мне довелось прочесть эти два абзаца, я пришёл к принципу “шокирующего абсурда” сам. На прошлой работе у меня был вот такой вот пароль:

j,kb;b vj. pfkege

Русская фраза, набранная, не переключая раскладку. Не буду приводить её, любознательные мои читатели, думаю, вы и сами в состоянии это сделать, при должном интересе к теме. А случай случился, когда я уходил с той работы. Меня вызвали и попросили сказать свой пароль. Гаденько улыбаясь, я произнёс…

Её я, собственно, и произнёс.

1С конфигурация – Ищу подружку

// Ищу подружку – 1С Предприятие 7.7 – Комплексная конфигурация
//
// ————————–
// I I
// I Возраст: ________ I
// I I
// I Оклад: ________ I
// I I
// I I
// ————————–
//
// Обработка выводит форму запроса возраста и оклада
// и подыскивает в коллективе сотрудников нужного кандидата

Процедура ИщуПодружку()

Если (ВыбВозраст<18) ИЛИ (ВыбВозраст>35) Тогда
Сообщить(”О вкусах не спорят…”);
КонецЕсли;
Если ВыбОклад=0 Тогда
Сообщить(”Спонсор! :-)”);
КонецЕсли;

Коллектив=СоздатьОбъект(”Справочник.Сотрудники”);
Если Коллектив.ВыбратьЭлементы(0)=0 Тогда
Сообщить(”Hа вечеринку пойти не с кем! :-(”);
Возврат;
КонецЕсли;

ПредпочитаюПол=СоздатьОбъект(”Справочник.ОКИH”);
СемейноеПоложение=СоздатьОбъект(”Справочник.ОКИH”);

Если ПредпочитаюПол.HайтиПоHаименованию(”Женский”)=0 Тогда
Сообщить(”Женщин нет. А-а-а-а!!!”);
Возврат;
КонецЕсли;

Если СемейноеПоложение.HайтиПоHаименованию
(”Hикогда не состоял (не состояла в браке)”)=1 Тогда
HеЗамужем=СемейноеПоложение.ТекущийЭлемент();
КонецЕсли;
Если СемейноеПоложение.HайтиПоHаименованию(”Разведен (разведена)”)=1 Тогда
Разведена=СемейноеПоложение.ТекущийЭлемент();
КонецЕсли;
Если (HеЗамужем=0) И (Разведена=0) Тогда
Сообщить(”Справочник не заполнен! :-(”);
Возврат;
КонецЕсли;

Кандидатов=0;
Пока Коллектив.ПолучитьЭлемент()=1 Цикл
Кандидат=Коллектив.ТекущийЭлемент();
Если Кандидат.ФизЛицо.Пол=ПредпочитаюПол Тогда
Если (Кандидат.ФизЛицо.СемейноеПоложение=HеЗамужем)
ИЛИ (Кандидат.ФизЛицо.СемейноеПоложение=Разведена) Тогда
Если Кандидат.Оклад>ВыбОклад Тогда
ДатаРождения=Кандидат.ФизЛицо.ДатаРождения;
Возраст=ДатаГод(ТекущаяДата())-ДатаГод(ДатаРождения);
Если Возраст<=ВыбВозраст Тогда
Кандидатов=Кандидатов+1;
Сообщить(”Кандидат в подружки: “+Кандидат.ФизЛицо.ПолнHаименование);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;

Если Кандидатов=0 Тогда
Сообщить(”Плохи твои дела, брат…”);
Иначе
Сообщить(”Всего отобрано кандидатов: “+Кандидатов);
КонецЕсли;

КонецПроцедуры

BrainFuck

Давайте сделаем небольшое нелирическое отступление и поговорим об эзотерике в программировании. Да-да, вы не ослышались – именно об эзотерике. Недавно мне попалось под руку описание языка программирования BrainFuck… и я здорово задумался. Довольно забавный язык, эдакая «разминка красненьким». В нём всего восемь операторов: > < + - [ ] , . - восемь операторов и огромный массив однобайтовых блоков. С этим массивом можно производить операции таким вот образом:

> увеличивает указатель памяти (или смещает вправо) на 1 блок
< уменьшает указатель памяти (или смещает влево) на 1 блок
+ увеличивает значения в ячейке памяти, на которую ссылается указатель
- соответственно, уменьшает на единицу
[ аналог цикла while(cur_block_value != 0)
] а это - закрытие цикла и возврат на [
, аналог getchar(), ввод одного символа
. аналог putchar(), вывод одного символа на консоль

Условия: все символы, отличающиеся от восьми перечисленных, игнорируются; все значения в памяти ставятся на ноль в начале работы программы; циклов может быть сколько угодно, при условии, что они открываются ([) и закрываются (]).

О, это, действительно, мощный язык. С его помощью можно писать всё, что угодно, но BrainFuck он был назван не случайно. Вот так, например, на нём выглядит программа, которая пишет на консоль слова "Hello world":

>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-]<.>+++++++++++[<++++++++>-]<-.--------.+++.------.--------.[-]>++++++++[<++++>-]<+.[-]++++++++.

И чего он мне так понравился?