Швейцарский нож для сетей - netcat



10 коммент.
Простая и очень нужная утилита, способная передавать данные по сети. Особенно полезна для небольших локальный сетей, где незачем городить огород с SSH и где требуется просто передать данные на другую машину.

Утилита netcat (или nc) должна быть в любом дистрибутиве, и даже в Knoppix она тоже есть. Если вдруг её нет, установка netcat проблем не составляет:
apt-get install netcat
Работать с ней очень просто, и на примере далее я покажу, как легко и просто передавать файлы при помощи nc. Идея netcat очень проста: он просто перенаправляет поток данных в порт сетевого устройства, а на другом конце поток перенаправляется в файл. Отсюда и название: NETcat - тот же cat, но сетевой. При передаче файлов следует первым запускать nc на сервере (куда будут передаваться данные), а потом уже с клиента (откуда передаются данные) пересылать файлы.


На стороне сервера (куда передаём данные):
Нужно запустить netcat так, чтобы он слушал определённый порт, и перенаправлял получаемый поток в файл. Вот так:
nc -l -p 3333 > file.txt
Это откроет на прослушивание порт 3333, и сохранит полученные данные в файл file.txt в текущем каталоге. При этом программа не вернёт управление консоли, и будет ждать, пока вы вручную завершите её.


На стороне клиента (откуда передаются данные):
Для этого передаём по конвейеру файл nc так:
cat file.txt | nc 192.168.1.1 3333
Это передаст файл file.txt на машину с IP-адресом 192.168.1.1, где уже запущен nc, слушающий порт 3333.

А кроме того
Можно с помощью nc устроить чат с пользователем на другой машине. Со стороны клиента просто пишете
nc 192.168.1.1 3333
и на том конце будет видно всё, что вы печатаете, в том числе кириллицу.


Ссылки:
Первоначально идея была любезно утянута отсюда, разбавлена вот этим и приправлена вот этим материалом.
Читать далее

RSS лента блога - полная и короткая



31 коммент.
Этот блог уже давно вырос из записной книжки о решениях, найденных мной в Дебиане. Ресурс поддерживается и настраивается для удобства чтения, в том числе - чтения новостей.

Не раз и не два я слышал пожелания сделать полную RSS-ленту. Лично я читаю RSS-ленты в Sage и меня достают полные ленты с кучей графики и видео. Но так как я один, а читателей уже более 700, решился спросить ваше уважаемое читательское мнение по поводу полных и сокращённых лент.

Что есть сейчас
Blogger может отдавать либо полную ленту, либо первые 255 симоволов - но что-то одно. Лента с Blogger уходит в feedburner и раздаётся вам. Она может быть либо короткой, либо длинной, и до последнего времени это настраивалось только в Blogger.


Что будет
Не так давно я заметил в feedburner такую опцию: можно обрезать ленту и делать её короткой. Делается это в меню Optimize - Summary Burner. То есть я могу создать ещё одну RSS-ленту, которая будет сокращённой (я поставил на 255 символов, как в Блоггере, чтобы ничего не менялось). Собственно, уже сделал - в боковой панели теперь две ссылки:

Пока что эти ленты одинаковые, и по этому поводу решил вывесить голосование - оно в боковой панели.
И мне действительно важно ваше мнение.
[обновлено] Полная лента запущена как основная новостная лента блога, её адрес прежний. Сокращённая лента рубится под 450 символов. Пока всё в тестовом режиме, что-то где-то может меняться. Если вылезли какие-то грабли - пишите в комментарии.
На обсуждение выносятся вопросы:
  1. Главная лента блога должа быть длинной или короткой?
  2. Подписка на RSS через e-mail нужна? И если да, то через какой сервис (feedburner, rss2email.ru)?
Насчёт главной ленты. Сейчас главная лента - короткая, 255 символов поста. Я могу сделать её полной, и тогда вы в RSS-ридерах и агрегаторах будете видеть полную ленту по привычному RSS-адресу (ничего менять не придётся). Если кого-то раздражают полные RSS-ленты, то надо будет подписаться на короткую ленту.

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

Если вы видете слово RSS впервые, здесь можно узнать, что это такое. И начать использовать :-)
Читать далее

Как запостить программный код на Blogger?



14 коммент.
Решил записать на память рецепт публикации программного кода в Blogger. Дело в том, что если вставить код просто так, его начнёт жевать блогодвижок и выдаст результат вместо кода. Особенно это неприятно в случае JavaScript.

Это, как выясняется, несложно. Для этого снова придётся править наш многострадальный шаблон, а именно вставить вот это:


pre
{
background:#efefef;
border:1px solid #A6B0BF;
font-size:120%;
line-height:100%;
overflow:auto;
padding:10px;
color:#000000 }
pre:hover {
border:1px solid #efefef;
}
code {
font-size:120%;
text-align:left;
margin:0;padding:0;
color: #000000;}
.clear { clear:both;
overflow:hidden;
}


внутрь шаблона между

<body> ... </body>
но перед тегом </head>.

 Это там, где идёт описание sidebar, footer и прочих элементов страницы блога.

Это не всё. Дело в том, что угловые скобки и другие символы могут жеваться всё равно, так что пропускаем наш код для вставки через эту форму. Оно будет работать только при включённом JavaScript (вырубаем NoScript на этой странице).

Теперь постим программные коды, заперев их между тегами

<pre>...</pre> 
или <code> </code>

Прошу меня за этот пост не пинать, так как вебмастер из меня ещё тот и может это кому и пригодится.



Цветовая раскраска кода для вставки в шаблон
На свете есть много вебсервисов для раскраски кода, но автору этих строк люб и дорог http://hilite.me/

Кроме этого, раскраска кода для вставки в пост делается с помощью Kate: подсвеченный в Kate программный код можно экспортировать в HTML  через меню File -> Export as HTML

Для автоматической подсветки синтаксиса есть higlight.js от Ивана Сагалаева. Но могут быть проблемы с угловыми скобками при переключении в онлайн редакторе поста из WYSIWYG в html режим.


Перевод изображений в Base64
Может потребоваться, если вы внедряете изображения в шаблон блога и не хотите, чтобы они постоянно дёргались со стороннего вебсервиса. Несколько вебсервисов, которые могут переводить изображения в Base64:
Кто знает другие сервисы - пишите в комментариях.

Изображения бывают разными, и стоит учитыавть разницу между фотореалистичными изображениями (подходит формат JPG) и скриншотами программ (лучше бы их сохранять в PNG). Иллюстрация на тему:

Стоит задуматься.
Читать далее

Иконка сайта - как создать иконку favicon для Blogger?



24 коммент.
Иконка сайта, favicon, которая отображается на вкладке маленьким значком, это по большому счёту украшательство. Но красивая иконка сайта сделает его заметнее - конечно, стандартная favicon на блогодвижках Blogger тоже ничего, но она одна и та же у всех на Blogger. Оригинальная иконка это и лицо сайта, и хороший тон дизайнера. Сделать favicon самому нетрудно, а для размещения её потребуется вставить только одну строчку в код шаблона. Итак , заводим себе аккаунт на любом хостинге картинок (та же Picasa подойдёт), берём любой графический редактор и создаём favicon ico за пять минут.


Создать favicon - просто!
Для этого нужно пять минут, немного терпения и графический редактор.
  1. Загружаем ваш любимый графический редактор (Adobe Photoshop, GIMP, Cinepaint...) и создаём изображение размером 16х16 или 22х22 пикселя. Рисуем, творим и создаём favicon - можно взять из элементов оформления блога или из любого понравившегося изображения. Главное, чтобы изображение было несложным - помните, ваш холст всего 22х22 пикселя!
  2. Сохраняем результат в формате png или ico. Есть мнение, что favicon ico предпочтительнее, однако favicon png так же хорошо отображаются (во всяком случае, Blogger-ом).
  3. Загружаем получившийся favicon на хостинг изображений, берём оттуда прямую ссылку на наш favicon.
    Следующие шаги специфичны для блогохостинга Blogger, однако идея для других движков должна быть сходной.
  4. Теперь заходим в Панель управления блогами в Blogger, нажимаем Макет и там - Править HTML.
  5. В коде блога ищем:

    <title><data:blog.pagetitle/></title>


  6. Сразу под этим кодом вставляем такой:
    <link href='http://где.ваша.картинка.png' rel='shortcut icon'/>


  7. Приведённый код должен быть между тегами
    <head> ... </head>


  8. Сохраняем шаблон и перезагружаем страницу. Всё, теперь на вкладке должна появиться созданная иконка.
Пример можно увидеть хотя бы на этом блоге - посмотрите на вкладку с этим постом, наверху должна быть иконка этого блога, жёлтый кленовый лист.


Ссылки
При написании этого поста и правке шаблона руководствовался тем и этим постами.
Читать далее

От фотонов до фотографии: от сырых данных к изображению



10 коммент.
В коммерческих цифровых фотокамерах используются CMOS и CCD фотосенсоры, сходные с теми, которые используются в технических цифровых камерах. Отклик таких фотосенсоров прямо пропорционален зарегистрированному излучению (если только это не логарифмическая камера). Однако фотография, сделанная в линейном режиме, выглядит бледной и мало контрастной. Для того, чтобы такое изображение было похоже на фотографию, применяются различные методы обработки изображений: интерполяция, гамма-коррекция, контрастирования и прочие. В общем, если хотите узнать, что происходит внутри камеры и как получается изображение - читайте.

Большинство современных цифровых фотокамер поддерживают вывод данных в ``сыром'' формате. При использовании соответствующего программного обеспечения и параметров конвертации, возможно получить необработанные данные из ``сырых'' данных фотокамеры, которые необходимы для широкого круга задач обработки изображений. К таким программным конвертерам можно отнести конвертер RAW-файлов DCRAW.

Следует, впрочем, отметить, что не все RAW-файлы являются необработанными. В случае CMOS-фотосенсоров предварительное шумоподавление происходит уже на сенсоре (об этом чуть ниже). Более того, некоторые производители коммерческих цифровых камер применяют нелинейную компрессию RAW-файлов, например некоторые камеры Nikon:
Leaving off Uncompressed NEF is potentially significant--we've been
limited in our ability to post process highlight detail, since some of
it is destroyed in compression.<...> There is some loss of data, mostly in the form of lowered resolution in the highlights.
<...>

In another disturbing development in Nikon's RAW formats saga, it seems they are encrypting white balance information in the D2X and D50 NEF format.

Однако большинство современных камер позволяют получать всё-таки линейные RAW-файлы.

В бытовой камере происходит обработка полученного с фотосенсора изображения прежде, чем оно будет записано в файл. И эта обработка - во всяком случае для CMOS фотосенсоров - начинается уже на сенсоре. Вот что происходит в цифровой камере перед выдачей красивой цветной фотографии:

0. Шумоподавление на чипе. Этот этап имеет место для CMOS фотосенсоров. Ещё до квантования из данных вычитается темновой пространственный шум (данные о шуме накапливаются в том же пикселе) и устраняется неоднородность усиления по столбцам (метод Correlated Double Sampling). Такие операции производятся прямо на пикселе (активные пиксели, технология 4/5Т) и электроникой камеры.

1. Квантование и запись сырых данных.
На этом этапе данные квантуются АЦП и записываются в память фотокамеры в виде RAW-файла. Этот файл содержит линейные данные и информацию об условиях съёмки (время экспозиции, диафрагма, значение ISO и проч.). Эти данные могут быть извлечены только специализированными конвертерами.

2. Удаление постоянной составляющей шума. На этом этапе конвертер вычитает из данных среднее значение шума чтения. Это значение вычисляется из данных ``вторичных пикселей'' (secondary pixels), закрытых от света и присутствующих на матрице (как правило, это ``рамка'' з пикселей толщиной 5-10 пикселей). Например, конвертер DCRAW при этом выводит диагностическое сообщение Scaling with black 256.

3. Цветовое масштабирование данных. Эта операция требуется для того, чтобы восстановить правильный баланс цветов на изображении. Для этого ``сырые'' данные в пикселях R G B G (составляющих баеровский шаблон светофильтров) умножаются на рассчитанные камерой константы. Например, DCRAW выводит такое диагностическое сообщение: multipliers 2.630775 1.000000 1.249379 1.000000, то есть пиксели R G B G умножаются соответственно на эти числа.

4. Цветовая интерполяция. Чтобы полутоновое изображение, каким является в RAW-файл, стало цветным, требуется восстановить недостающие цветовые компоненты для каждого пикселя: для пикселя R - синюю и зелёную компоненту, для G - красную и синюю, для B - красную и зелёную. Например, можно найти среднее между значениями ближайших соседних пикселей каждого цвета. Алгоритмы современных конвертеров более изощрённые, в результате чего артефактов на цветном изображении после интерполяции почти не заметно. Таким образом, изображение после интерполяции становится цветным.

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

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

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

8. Визуальное улучшение. Так как изображение уже сглажено, возможно применение различных методов подчёркивания деталей для повышения детализованности изображения.
Для наглядности привожу изображение, которое прошло все стадии обработки: шумоподавление на чипе, квантование и запись данных в RAW-файл, вычитание постоянной составляющей шума, цветовое масштабирование, интерполяция, применение баланса белого, визуальное улучшение.



А казалось бы - простая вещь, цифровая фотокамера...
Читать далее

Два слова о /proc в Linux: cpuinfo и другие параметры



9 коммент.
Используя файловую систему /proc, можно изменять многие параметры системы без необходимости перезагрузки машины и многое узнать о работе системы. О некоторых полезных командах
Читать далее