SSH Telnet под Windows

Давно работаю под ShellGuard, но в последнее время стал искать замену (мало того что он платный и уже не поддерживаемый, дак еще и не работает с UTF-8). Перепробовал много telnet-ов, но остановился на проверенном и нормально работающем — PuTTY. Но вот есть у него довольно неприятная проблема. ShellGuard работает почти с теми же клавиами, что привычные Unix терминалы — Alt + F1(F2, … F12) — переключает на нужные открытые консоли, а PuTTY работает всегда с одной консолью и для новой надо заново запускать новый процесс, а переключаться между ними не удобно — Alt+Tab — обычное переключение в Windows.

Долго искал — можно ли как-то приблизиться к сервису, близкому ShellGuard, и нашел максимально хорошее решение Читать далее SSH Telnet под Windows

perl, utf8 и encode & decode термины

Полезно будет знать Perl программерам. Дело в том, что часто в документациях к perl (perldoc utf8) и модулям (например JSON) употреблаются такие термины, которые лично меня часто путали своим смыслом, а именно: encode to UTF-8, decode to UTF-8. Что подумает нормальный программер, услышав слово encode to? То, что что-то кодируется во что-то, а именно «encode to UTF-8» -> «кодирование в UTF-8». Я знаю, что perl хранит внутри себя строки UTF-8 со специальным флагом — если он установлен — строка UTF-8, если нет — бинарная. Поэтому, когда в доке я читал encode to UTF-8, я все время путался — думал, что говорят про установку этого флага. Оказалось, все в точности наоборот.

Правильно так: когда пишут encode to UTF-8, это значит, что внутри перла строка с UTF-8 данными остается как есть, но флаг UTF-8 убирается, и perl начинает вести себя со строкой так, как будто там бинарные (octet) байтовые данные (то есть посути, строка внутри перла перестает быть UTF8, хотя слово «encode» несет в себе другой смысл). И наоборот — decode to UTF-8 -> UTF8 флаг ставится (то есть для perl-а строка становится UTF8).

P.S. В Perl есть такая функция — encode (модуль Encode). Смысл ее в том, чтобы перевести строку из внутреннего содержания на perl (которое всегда UTF-8 внутри, т.е. Unicode символы) в байтовую последовательность, которая бы отражала ту кодировку, которую ей указали (то есть раз байтовая — значит всегда utf8 флаг в результате отсутсвует). Если мы делаем $result = encode(‘utf-8’, $string), то результат как раз будет в том, что флаг utf8 будет просто снят для $result и в реальности никакого переводирования не будет (то есть побайтово внутри perl-а $string & $result будут содержать одни и те же байты, только $string еще будет иметь взведенный utf8 флаг). И это как раз вписывается в те понятия, которые я описал ранее. Для decode и байтового UTF8 всё обратно — флаг utf8 просто ставится в $result.

Вот такая абракодабра… Будьте внимательны!

Немного о супер направлениях в Web на Perl

Немогу не поделиться своими выводами об изучении нескольких новых технологий в Perl и в Web программировании. Немного предистории.

Я сам программирую динамические веб сайты (CGI) только на Perl. Никогда не использовал PHP. Это не только потому, что я фанат Perl, но и дань эффективности — под Perl много модулей, много возможностей, и при грамотном подходе сайты на Perl будут работать быстрее PHP — ведь Perl код после компиляции хранится в памяти в виде байт кода (типа «Пи кода» кода в Pascal). А если знаешь Perl, то и разработка может идти гораздо быстрее. Читать далее Немного о супер направлениях в Web на Perl

DNS — как сделать обратную запись (PTR), если зона не ваша

Бывают моменты, когда вам надо сделать корректное резрешение DNS из IP ареса в доменное имя для IP, который принадлежит провайдеру (и соответственно, он управляет DNS-ом обратной зоны), но сервер на этом IP ваш. Конечно, без его участия сделать это нельзя, но можно попросить провайдера прописать следующие настройки в DNS, чтобы вы могли в любое время на своём DNS менять имя записи PTR, а не просить сделать это каждый раз своего провайдера.

Здесь на английском официальная инструкция, как это сделать. Основной смысл — провайдер ставит записи CNAME вместо PTR в обратной зоне (IN-ADDR.ARPA), а вы уже меняете на своем DNS настройки. В примере дан более развернутый пример, когда провайдер описывает записи для целой подзоны, например сетки /27 (32 машины) и указывает NS записи вашего DNS. Можно сделать проще для одного IP — провайдер ставит на вас CNAME вместо PTR (но не NS), CNAME указывает на ваш доменный адрес (на адрес под вашим доменом), для которого вы уже описываете PTR запись. Тем самым, если захотели другое имя для IP, меняете его у себя в DNS и телемаркет…

Если не знаете, зачем это, то знайте: обратное разрешение нужно для более правильной работы e-mail (если у вас есть почтовый сервер — для его IP это лучше сделать 😉 ). В противном случае, письма, оправленные через ваш SMTP, могут «отвегаться» большинством почтовых релеев (relay).

Народные мудрости :)

Согласно народной примете, в новый дом первым нужно впускать интернет-кабель. И где он ляжет — там ставьте кровать. И стол. И комп. И жрачку.

Женятся и выходят замуж зайки, котики и солнышки, а разводятся козлы, суки и олени.

Firefox 5.* — обновлённые плагины…

Уже после написания этой заметки нашел более подходящий способ запуска несовместимых Add-ons — читайте здесь.

Вместе с Firefox 5 перестали работать некоторые мои любимые плагины. Я постарался оперативно обновить их и выложил у себя на блоге, так как авторы этих Add-ons не спешат их обновлять для Firefox 5.*. Я взял оригинальные версии и только подправил файлики install.rdf, где указал любую максимальную версию. Вот эти расширения (мои патченные файлы — внутри статеек):

  • Copy All Urls (копирует в буфер линки открытых табов, а также открывает табы с линками из буфера)
  • Copy Plain Text (копирование текста без аттрибутов форматирования, нужен для Auto Copy — очень хорошая «связка» плагинов для оптимизации работы с web страницами)

Взлом систем шифрования жестких дисков путем «холодной перезагрузки»

Вопреки устоявшемуся мнению, память DRAM, использующаяся в большинстве современных компьютеров, хранит в себе данные даже после отключения питания в течение нескольких секунд или минут, причём, это происходит при комнатной температуре и даже, в случае извлечения микросхемы из материнской платы. Этого времени оказывается вполне достаточно для снятия полного дампа оперативной памяти.

Перевод здесь. Вообщем, суть такая, что когда вы работаете с компом на зашифрованном диске, в ОЗУ хранится ключ в открытом виде (расшифрованный после ввода пароля вами при загрузке компьютера). Дак вот если кто-то заимеет доступ к вашему включенному заблокированному компьютеру, то получить ключ не составит труда. Особенно актуально для ноутбуков, которые крадут в общественных местах.