s o m e t h i n g a b o u t m e

shameless lie shines brightly

трудно поверить, но интернет сделал меня чертовски социальной личностью ) нужно лечиться. и понял, наконец, что у меня пропала не возможность и условия одиночества, но одиночество.

нужно лечиться, т.к. чувствую себя неполноценным. проморгал кусок себя.

:) приятной мне ночи!


robot inside @

Интересный хинт - набирая с помощью Т9 смс-ку с простой, известной всем, фразой, получаешь сначала “Я люблю себя”. смотришь 20 сек на экран, вспоминаешь что делал, правишь “себя” на “тебя” и отсылаешь.

ощущение, что роботы правят миром не покидает целый день


smokers can and do die young

снова начал видеть снимками. отлично-отлично

и хочется новых людей :)


film

побывав как-то на родине, взяли у Яниных дедушки и бабушки старых непрояленных отснятых и просто чистых пленок. Рассортировали по внешним признакам (Svema 32, 64). У меня сразу загорелись глаза - захотелось поснимать на пленку, просроченную вот уже 17 лет.

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

сегодня я забрал 5 абсолютно чистых проявленных пленок. рыдал, выбрасывая :(

вот и угадай теперь - где будешь эксперементировать со старой пленкой, а где накатывать мультиэкспозицию :( стремно


junk

об этом нельзя не упомянуть :) судя по статистике (ip + поисковая фраза) у меня на блоге побывал индийский программер

гип-гип, уррра! :) китайцы и индийцы захватят мир


All of the true things that I am about to tell you are shameless lies

черт, Воннегут умер (NYTimes)

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

Курт Воннегут “Бойня номер пять”

хей-хо. rip


enter your password

появилась потребность реализовать ввод логина/пароля в рамках лабораторной работы по защите информации. т.к. преподу абсолютно все равно - интегрирована защита в ОС (как я пытался изначально сделать, юзая корявые shell скрипты) или сделана в отдельном приложении (!), решил писать все лабораторные на java, эмулируя командную строку (изначально пугали необходимостью резидентов и проч. в лабе, а все сошлось к банальным приложениям на делфе. как обычно).

Начав делать ввод пароля, натолкнулся на интересные вещи - по запросу преподавателя нужны были “*” вместо пароля (плевать ему, что это не секьюрно и лучше вообще не светить количество символов в пароле). Если б без звездочек - пересобрал бы shadow или использовал бы кривой Console.getPassword(), но тут, бля, звездочки.

Тут оказалось, что в джаве нет поддержки по-символьного ввода и нет поддержки режима ввода без echo (под посимвольным вводом я понимаю реакцию метода read на нажатие кнопки в консоли. в джаве в стандартном режиме считать из консоли можно лишь по return). Гугл подсказал несколько workaround-ов и указал на этот баг 9-летней (!) давности (продолжил свою жизнь тут). Частично проблема исправлена в 1.6 классом Console, но криво (например, очень мне нравится код наподобие try {bla-bla} catch (IOException e) {}) и то создан только метод getPassword(), причем без поддержки echo/-echo режимов, а только полная аналогия никсового getpass().

Пришлось выкручиватся, т.к. лезть в swing принципиально не хотелось :)

Варианты решения проблемы:

  • забить на звездочки и использовать
    System.console().getPassword();
  • играться с /dev/tty через exec.
  • использовать, например, jcurses

Решил попробовать второй вариан - и он все-таки заработал, не очень красиво, но хитрость забавляет :) Вот код:


p = Runtime.getRuntime().exec(new String[] {
                                                             "sh", "-c", "stty" +
                                                             (on ? " echo -cbreak" : " -echo cbreak") +
                                                             " < /dev/tty"});
p.waitFor();

т.е. на on == true включает echo и отключает cbreak, на false - наоборот.

screen

Теперь осталось дописать подобие интерактивной консоли и можно парить сразу 3 лабы :)


quartz enterprise job scheduler

краткие вкусовпечатления, так сказать :) понравилась узкая специализированность и продуманность фреймворка - все, для решения необходимой задачи. Каждая задача характеризуется JobDetails - тут ее можно отнести к некоторой группе задач, дать этой задаче имя, и, собственно указать, что есть задача - указать на класс (что примечательно, т.к. экземпляр класа задачи создается именно в момент выполнения и раньше не засоряет систему. + определение задачи классом прочищает мозг и мотивирует делать правильную архитектуру :) ).


JobDetail jobDetail = new JobDetail("myJob",                      // job name
                     sched.DEFAULT_GROUP, // job group ('null' to use the default group)
                     DumbJob.class);           // the java class to execute

Еще интересная штука - система календарей. Т.е. мы можем запустить scheduler (главный экземпляр механизма так сказать) с разными календарями - календарь с вырезанными выходными днями (Sun/Sat), с вырезанными праздниками, и собственный календарь, с вырезанными чем-угодно даже до минут :) (Calendar - an interface to be implemented by objects that define spaces of time that should be included or excluded from a Trigger’s normal ‘firing’ schedule). Да, триггеры тоже интересная вещь - они задают время выполениния джоба (т.е. сам джоб и расписание его выполнения - совершенно разные штуки), причем триггеры весьма гибкие - есть даже подобие cron-a с сохранением синтаксиса (например “0 30 10-13 ? * WED,FRI”), но тут плюс - выполнение до секунд, в отличии от поминутного никсового крона. А, еще джобы интересно интерраптятся - прям по правилам threads - поток должен завершить работу сам, потому джоб (если может быть прерван по запросу) должен реализовать спец. интерфейс InterruptableJob - а там есть метод interrupt, который и нужно реализовать :) красиво

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

т.е. довольно таки гибкий и удобный специализированный инструмент. мог в деталях ошибиться :) tutorial тут


I love myself better than you

It is widely considered by critics to be one of the most memorable, if not ‘the’ most memorable Unplugged of any band.

тру


phantasmagoria

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

хорошо и спокойно. пусть они там хоть застрелятся :)