23 марта 2011

L.A. Zadeh (1964) Fuzzy sets

Download TeX source of "1964, L. A. Zadeh Fuzzy Sets".

Compilation PDF:


pdflatex \\nonstopmode\\input Zadeh-1965.en.tex


Hm, TeX is interesting project, why I can't write my blog on it? Why people like SGML? Oh, yes. They need the markup.
But I don't need markup. I need no colorfull desing.

05 марта 2011

Qt application settings in JSON

Class for storing Qt Application settings into JSON file.

Based on QLALR-based JSON parser by Girish Ramakrishnan. Many thanks to him for it.
QLALR JSON parser:
http://git.forwardbias.in/?p=qjsonparser.git

Download from gitorious
git clone --depth 1 http://git.gitorious.org/qtjsonsettings/qtjsonsettings.git

Using

CMake
Compiled as static library
add_subdirectory(~/projects/qtjsonsettings ${CMAKE_CURRENT_BINARY_DIR}/qtjsonsettings)
include_directories(~/projects/qtjsonsettings) 

target_link_libraries(${PROJECT_NAME} ${QT_LIBRARIES} 
qtjsonsettings)

QMake
Included as sources
include(~/projects/qtjsonsetting/qtjsonsettings.pri)

02 марта 2011

Clojure Web REPL

Сегодня мы постараемся сделать web приложение предоставляющее repl к самой себе. Ну мы могли бы просто внедрить swank и подключаться к нему через slime. Но slime на клиентской машине может быть недоступен, а web броузер доступен почти всегда, и даже, хм, в телефоне.

01 марта 2011

Emacs. Github blog hosting

Хочу чтобы emacs умел рисовать html странички. И чтобы midnight commander в нем запускался. Ну а пока давайте сделаем так, чтобы печатать сообщения в блог из emacs.

Принцип

# Установите git
  # Создайте аккаунт на "github.com":http://github.com
  # Создайте репозиторий "Ваше-имя.github.com"
  # Чуть-чуть подкрутите
  # Создавайте сообщения в textile или markdown разметке
  # Обновляйте блог с помощью git push

Технический аспект

Репозиторий, хранящийся на сервере, Вами периодически обновляется. Специально для этого придуманный Jekyll обрабатывает каждый раз Ваши файлы и генерирует html. Как будет выглядеть Ваш блог, Вы задаете, используя механизм шаблонов Liquid и разметку textile или markdown.
А также с помощью шаблона
{% highlight language %}
(defn hello-world
  "Hello  username  function"
  [x]
  (prn "Hello, " x))
{% endhighlight %}

Репозиторий

Репозиторий должен содержать в себе следующую структуру папок.
.
|-- _config.yml
|-- _layouts
|   |-- default.html
|   `-- post.html
|-- _posts
|   |-- 2007-10-29-why-every-programmer-should-play-nethack.textile
|   `-- 2009-04-26-barcamp-boston-4-roundup.textile
|-- _site
`-- index.html

Что-зачем?

_config.yml
Ваши настройки для jekyll, который будет парсить Ваш блог.
_layouts
Файлы с Liquid шаблонами. Тег {{ content }} будет заменен на содержимое страницы.
_posts
Ваши сообщения. Имя файла должно быть следующей нотации: ГОД-МЕСЯЦ-ДЕНЬ-название.(mardown|textile).
_site
Сгенерированный сайт
_plugins
Руби-плагины для блога.
_includes
Заготовки для шаблонов
other-directories
Другие директории будут расцениваться как статические и к ним будет предоставляться доступ.
Например:
.
|-- css
|   `-- blog.css
`-- js
    `-- blog.js

Еще подробнее

Создайте папку для вашего блога. Разместите в ней следующую структуру.
.
|--css/
|  `--blog.css
|--about/
|  `--index.html
|--_includes/
|  |--top.html
|  |--rightblock.html
|  `--bot.html
|--rss.xml
|--_layouts/
|  |--default.html
|  |--post.html
|  `--posts.html
|--_posts/
|--README.textile
`--_config.yml

Шаблон

Начнем с заготовок для будущего шаблона. Они будут расположены в папке _includes.
"Шапка" шаблона top.html
"Подвал" шаблона bot.html
Блок справа rightblock.html

Данный файлы подключается в шаблон с помощью инструкции
{% include filename %}
Конструируем шаблон. Файл default.html содержит включение вышеперечисленных элементов. Файл posts.html содержит шаблон страницы содержащий список сообщений блога. Файл post.html содержит шаблон страницы одного сообщения.

Определяем index.html

Конструкция в начале опеределяет какой шаблон необходимо применить. Все остальное в этом файле окажеться в шаблоне на месте {{ content }}
---
layout: posts
---
Соответственно в index.html мы выведем список всех сообщений. Данной конструкцией файлы шаблонов могут включать другие файлы шаблонов. Корнем шаблонов в нашем случае является default.html.

Настройка jekyll

В настройках указывается способ генерации путей к вашим сообщениям с помощью Permalink. Указываются игнорируемые ресурсы. Конфигурируется инструмент разметки. Включается генерация подсветки для исходного кода. И так далее.

Git

Git прост, как и его название. Если кто-то говорит Вам, что это не так, не верьте. В папке с вашим блогом выполните и ожидайте некоторое время, а затем можете полюбоваться результатами своего труда. Это Вам не попсовый livejournal.
git init
git add .
git commit -m "Initial commit"
git remote add origin git@github.com:your-name/your-name.github.com.git
git push origin master
Домашним заданием останется организовать все так, чтобы не закрывать emacs.
Исходный код сообщения

Блог на github.com