четверг, 7 июля 2011 г.

RAMFS и TMPFS

На первый взгляд RAMFS и TMPFS -- это одно и то же. Выделяется "раздел" оперативной памяти компьютера и монтируется в нужную точку, после чего можно использовать как любой другой каталог. Данные будут храниться в оперативной памяти и будем иметь ту же скорость доступа, что и до оперативной памяти.

Отличия:
  1. Первое отличие следует из определения с какой памятью работает RAMFS и TMFS. Напомню, что есть физическая память (physical memory) и виртуальная память (virtual memory). Соответственно RAMFS работает только с физической памятью, а TMPFS работает с виртуальной памятью;
  2. Второе отличие заключается в том, что RAMFS игнорирует ограничение на размер выделяемого "раздела" оперативной памяти и динамически увеличивается по мере необходимости. В связке с первым пунктом это может привести к фатальным последствиям. TMPFS не вылазит за пределы выделенного;
  3. Третье отличие -- возможность задать автоматическое монтирование ФС в /etc/fstab. RAMFS -- нельзя, TMPFS -- можно;

Пример записи в /etc/fstab:
none /srv tmpfs defaults,size=64m 1 2

Если прописать в /etc/fstab ramfs получаем следующую ошибку:
~$ sudo mount -a
mount: unknown filesystem type 'ramfs'

Примеры монтирование вручную:
~$ sudo mount -t tmpfs -o size=64m tmpfs /srv 
~$ sudo mount -t ramfs -o size=64m ramfs /srv 

Если вы работаете с контейнерами OpenVZ, то в контейнерах можно использовать TMPFS. Для этого достаточно прописать нужные парамерты в /etc/fstab контейнера. При старте контейнера будет произведено автоматическое монтирование.

Подсветка синтаксиса в blogger с помощью prettify (blogger prettify syntax highlighting)

Основываясь на следующих постах:
http://stackoverflow.com/questions/1852537/how-to-use-prettify-with-blogger-blogspot
и
http://lukabloga.blogspot.com/2008/10/to-test-new-highlighting.html

Используем подсветку синтаксиса prettify, т.к. поддерживает большинство языков/форматов.
  • Авторизуемся в blogger
  • Заходим в Design -> Egit HTML
  • В "Edit Template" делаем поиск  <head>
  • После тега добавляем следующий код:
<link href='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css' rel='stylesheet' type='text/css'/>
<script src='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js' type='text/javascript'></script>
  • Затем делаем поиск <body> и добавляем в конец открывающегося тега следующий код: onload='prettyPrint()'
    В моём темплейте это выглядит так:
<body expr:class='"loading" + data:blog.mobileClass' onload='prettyPrint()'>
У вас возможно в теге <body'> не будет ничего лишнего
  • Нажимаем "Save Template"
  • Готово

Теперь, чтобы использовать все эти радости создаем новый пост и редактируем в режиме HTML (Edit HTML), вместо Compose. Вставка кода осуществляется через открывающиеся и закрывающиеся теги <pre> или <code> -- разница между тегами только в отображении или не отображении рамки вокруг текста:

<pre class="prettyprint">...</pre>
<code class="prettyprint">...</code>

Для использования специфичной подсветки языка нужно добавить в class указание на язык вида lang-язык. Например lang-html будет выглядеть так: class="prettyprint lang-html".

Столкнулся с проблемой, когда в режиме "Edit HTML" вставляются html-теги, то парсер blogger'а ругается на используются недопустимых тегов. Обходится это заменой "<" на "&lt;" и ">"  на "&gt;" -- это можно сделать вручную, либо перейти в режим "Compose", вставить нужный текст и вернуться обратно в режим "Edit HTML".