четверг, 10 декабря 2009 г.

juick-el — juick клиент в Emacs

Для того что бы расширить GNU Emacs juick клиентом, рассмотрим расширение juick-el для GNU Emacs.
Установить расширение можно следующим образом: Есть два пути 1) Скачать файлы проекта с официального сайта. 2) Создать локальнуюкопию git репозитария у себя:

$git clone git://github.com/mad/emacs-juick-el.git

После чего в файлe .emacs добавляем следующие:

(add-to-list 'load-path "~/.emacs.d/plugins/juick-el/")
(require 'juick)
(setq juick-tmp-dir "~/.emacs.d/juick-avatars/")
(setq juick-tag-subscribed '(«emacs» «linux» «juick» «GTD» «todo»))
(juick-auto-update t)

Рассмотрим то что мы добавили в файл .emacs:
1) Указываем путь до папки с файлами расширений
2) Указываем подключения нашего расширения
3) Указываем папку, в которой будут храниться аватарки
4) Указываем теги, на которые мы подписываемся
5) Получение сообщений с указанными тэгами

Для того, чтобы ответить на запись или комментарий достаточно подвести курсор к номеру сообщения и нажать RET. Для того, чтобы подписаться на сообщения пользователя подводим курсор к его имени и жмем s, чтобы отписаться u.

p.s. Страница проекта — juick-el

пятница, 20 ноября 2009 г.

Ocaml Tools

Сегодня я постараюсь рассказать вам об инструментах, помогающих программировать на Objective CAML.

воскресенье, 18 октября 2009 г.

Mail Agent для Linux

Наконец то нашел вменяемый клиент для Mail Agent под Linux.

Для сборки myagent-im нам понадобятся библиотеки:

1) qt4.4

2) zlib

3) xapian

4) libxss (X11 Screen Saver extension Library)

Для компиляции требуются:

1) g++

2) flex

Компиляция:

> qmake

> make

Инсталляция (под рутом):

> make install

или же из-под обычного пользователя:

> sudo make install

Бинарник копируется в /usr/local/bin, файлы данных (переводы) в /usr/local/share/myagent-im Изменить пути можно подредактировав файл проекта src.pro (переменные BINDIR и DATADIR)

Запуск:

> myagent-im

Пользуйтесь - MaiL.ru Agent для Linux

Yet another terminal emulator

Сегодня в интеренете случайно набрел на еще один эмулятор терминала - Yakuake. Ну что ж, проделал:
apt-get install yakuake
Как ни странно пакет нашелся в репах. После запуска был удивлен, так как до этого всегда пользовался родным gnome-terminal. В верху экрана был всплывающий на подобии mack-dock panel    - Yakuake. Все это всплывало и пряталось по горячим клавишам по умолчанию это F12, хотя можно и поменять. Выглядит это все как-то так:



Отключение системного динамика

Отключение системного динамика в Debian, да и не только происходит следющим образом:
Из под рута выполнить: rmmod pcspkr
Добавить в blacklist: echo blacklist pcspkr >> /etc/modprobe.d/blacklist

суббота, 17 октября 2009 г.

Список основных команд VI

Для начинающих пользователей *nix подобных операционных систем, редактор VI кажется чем-т ужасным. По правде сказть до поры д времени я и сам так думал. Хотя если разобрться это действительно грандиозная вещь. Поэтому здесь привожу список основных коандр VI:

суббота, 3 октября 2009 г.

Linux Mint is Third

Сегодня зашел на distrowatch.com - и был удивлен, Linux Mint давольно молодой дистрибутив, занимает 3 место.

вторник, 29 сентября 2009 г.

Преобразование из инфиксной нотации в Обратную польскую запись

Девиз функциональны программистов - "Больше думай меньше пиши" как ниде хорошо оправдывает себя в следующем примере: Преобразование из инфиксной нотации в Обратную польскую запись.

Код Delphi:
program calc;

{$apptype console}

type
real=double;

const
prs='+-*/(';
pri:array [1..5] of byte = (1,1,2,2,0);

var
s1,s2:string;
q:array[0..500] of real;
w:array[0..500] of char;
n,len,len2,i,j:longint;
t:real;
ch:char;

procedure push(x:real);
begin
  inc(len);
  q[len]:=x;
end;

function pop:real;
begin
  pop:=q[len];
  q[len]:=0;
  dec(len);
end;

procedure pushc(x:char);
begin
  inc(len2);
  w[len2]:=x;
end;

function popc:char;
begin
  popc:=w[len2];
  w[len2]:=#0;
  dec(len2);
end;

function oper(s1,s2:real;s3:char):real;
var
s:string;
x,y,z:real;
tmp:integer;
begin
  x:=s1;
  y:=s2;
  case s3 of
    '+':z:=x+y;
    '-':z:=x-y;
    '*':z:=x*y;
    '/':z:=x/y;
  end;
  oper:=z;
end;

procedure prechange(var s:string);
var
i:longint;
begin
  if s[1]='-' then s:='0'+s;
  i:=1;
  while i<=n do if (s[i]='(')and(s[i+1]='-') then insert('0',s,i+1) else inc(i);
end;

function change(s:string):string;
var
i:longint;
rezs:string;
c:boolean;
begin
  c:=false;
  for i:=1 to n do begin
    if not(s[i] in ['+','-','*','/','(',')']) then begin
      if c then rezs:=rezs+' ';
      rezs:=rezs+s[i];
      c:=false;
    end
    else begin
      c:=true;
      if s[i]='(' then pushc(s[i]) else
      if s[i]=')' then begin
        while w[len2]<>'(' do begin
          rezs:=rezs+' '+popc;
        end;
        popc;
      end else
      if s[i] in ['+','-','*','/'] then begin
        while pri[pos(w[len2],prs)]>=pri[pos(s[i],prs)] do rezs:=rezs+' '+popc;
        pushc(s[i]);
      end;
    end;
  end;
  while len2<>0 do rezs:=rezs+' '+popc;
  change:=rezs;
end;

function count(s:string):real;
var
ss:string;
x,s1,s2:real;
chh,s3:char;
p,i,j:longint;
tmp:integer;
begin
  i:=0;
  repeat
    j:=i+1;
    repeat inc(i) until s[i]=' ';
    ss:=copy(s,j,i-j);
    chh:=ss[1];
    if not(chh in ['+','-','*','/']) then begin
      val(ss,p,tmp);
      push(p);
    end
    else begin
      s2:=pop;
      s1:=pop;
      s3:=chh;
      push(oper(s1,s2,s3));
    end;
  until i>=n;
  x:=pop;
  count:=x;
end;

procedure writeL(x:real);
var
y,a,b:longint;
q:real;
begin
  y:=trunc(x);
  b:=0;
  if abs(x-y)<(1e-12) then
  writeln(y)
  else begin
    if y>0 then a:=round(ln(y)/ln(10))+1 else a:=1;
    q:=x;
    repeat
      q:=q*10;
      inc(b);
    until abs(q-trunc(q))<(1e-12);
    writeln(x:a+b:b);
  end;
end;

begin

repeat
    writeln('Enter expression');
    readln(s1);
    n:=length(s1);
    prechange(s1);
    n:=length(s1);
    s2:=change(s1);
    if s2[1]=' ' then delete(s2,1,1);
    s2:=s2+' ';
    n:=length(s2);
    t:=count(s2);
    writeL(t);
    writeln('One more expression?(Y/N)');
    readln(ch);
until upcase(ch)='N';

end.

Colored with dumpz.org

Colored with dumpz.org


Код Haskell:
calc :: String -> [Float]
 calc = foldl f [] . words
   where
     f (x:y:zs) "+" = (y + x):zs
     f (x:y:zs) "-" = (y - x):zs
     f (x:y:zs) "*" = (y * x):zs
     f (x:y:zs) "/" = (y / x):zs
     f xs y         = read y : xs

Colored with dumpz.org

Colored with dumpz.org

понедельник, 28 сентября 2009 г.

Haskell IDE

Давно выбирал себе инструмент в лице IDE с подсветкой синтаксиса, встроенным интерпритатором, адекватным отладчиком и т.д. для Haskell. Остановил свой выбор на Leksah, одна из немногих IDE для Haskell, которая удовлетворяет всем моим требованиям.


суббота, 26 сентября 2009 г.

Yet another blog

Создал еще один блог в сервие yaproger.

Так что милости просим по адресу - Yet another blog

суббота, 12 сентября 2009 г.

C днем программиста!!!

13.09.2009, Москва 00:12:27 Россия впервые отмечает День программиста. Накануне президент РФ Дмитрий Медведев своим указом установил профессиональный праздник программистов, который отмечается 13 сентября (в 256-й день года), если год високосный - 12 сентября.

Неофициально День программиста отмечается в мире уже много лет на 256-й день каждого года. Число 256 выбрано потому, что это количество целых чисел, которое можно выразить с помощью одного восьмиразрядного байта и также это максимальная степень числа 2, которая меньше 365, сообщает ИТАР-ТАСС.

Так что с праздником коллеги!!!

среда, 9 сентября 2009 г.

uzbl - *nix браузер

Вышла альфа версия браузера поддерживающая философию *nix:
Релиз-инженер Arch Linux Дитер Платинк (Dieter Plaetinck) некоторое время назад загорелся идеей создать браузер, который бы отвечал философской концепции Unix: «программа, должна уметь делать одну операцию, но делать ее хорошо, должна интегрироваться с другими программами, и использовать стандартные потоки ввода/вывода для обмена данными». В результате появился легкий и быстрый браузер Uzbl, который в тесте Acid3 показывает впечатляющие результаты. Основанный на WebKit, он управляется горячими клавишами, на манер редактора Vim, а его функциональность расширяется за счет скриптов.

Основные особенности браузера:

* Минималистичный графический интерфейс. На панели отображается только то, что пользователь желает видеть.
* Все, что напрямую не относится к навигации по сети, в Uzbl отсутствует. Такие операции, как смена URL, управление загрузками, работа с закладками, история посещения, выполняются с помощью внешних скриптов, которые пользователь пишет сам.
* Управление браузером может осуществляться с помощью таких средств, как клавиатура, stdin, fifo и файлы-сокеты.
* Расширенный настраиваемый интерфейс горячих клавиш позволяет создавать привязки, к каким привык пользователь, делая браузер похожим на vim, emacs или любую другую программу.
* Все настройки хранятся в простом текстовом файле в формате, удобном для чтения.
* Приоритетом Uzbl является простота и конфигурируемость абсолютно всех аспектов его работы.

Uzbl находится в стадии активной разработки и текущий релиз нужно рассматривать как альфа версию. (с) opennet.ru
Oффициальный сайт uzbi

суббота, 5 сентября 2009 г.

Проблемы с переключением раскладки Debian

После настройки системы заметил что не переключается раскладка клавиатуры, хотя в Control Center все вроде бы выставлено и раскладки и горячие клавиши. Проблема решилась давольно простым способом, добавлением 2 строчек в /etc/X11/xorg.conf в секцию InputDevice:
Option "XkbLayoout" "us,ru"
Option "XkbOptions" "grp:alt_shift_toggle

И все после этого заработало

пятница, 4 сентября 2009 г.

Настройка wi-fi в Debian

Случилось мне сегодня устанавливать Debian Lenny на одну из машин. Установилась система вроде бы правильно, начал проверять оказалось все в порядке кроме подключения по беспроводной сети, ну ни в какую не мог обнаружить модем. Начал разбираться в чем проблема, оказалось в ядре 2.26 нет драйверов для моей карточки Intel WIFI Link 5100... Решается данная проблема следующим образом:

1. Для начала убедитесь что в /etc/apt/sources.list есть зеркало:                                                
 #Backported packages for Debian Lenny
deb http://www.backports.org/debian lenny-backports main contrib non-free

2. Затем обновим список пакетов
  # aptitude update
  # aptitude -t lenny-backports install debian-backports-keyring
3. Установим ядро версии 2.6.30 или более поздне версии, а также следующие пакеты: wireless-tools, firmware-iwlwifi.
# aptitude update
# aptitude -t lenny-backports install linux-image-2.6.30-bpo
# aptitude -t firmware-iwlwifi
# aptitude -t wireless-tools
4.Reboot системы.
5. Если модуль не загрузился автоматически то сделаем это вручную:
#modprobe iwlagn
6. Активируем интерфейс:
# ifconfig wlan0 up
И напоследок осталось сконфигурировать подключение в KNetworkManager и наслаждаться интернетом.

вторник, 1 сентября 2009 г.

Проблемы с временем в Arch Linux

При обновлении системы Arch Linux на домашнем компьютере, возникли проблемы с временем, при каждом включении машины время отставало на пять часов. Вылечить оказалось  очень просто. В файле /etc/rc.conf, закомментируем строчку - TIMEZONE = "YOUR_TIME_ZONE" и в HARDWARECLOCK должно быть значение local.

понедельник, 31 августа 2009 г.

Первое впечатление о Linux Mint

         И вот наконец то мне удалось скачать и установить на ноутбук Linux Mint. Что могу сказать, очень меня порадовал данный дистрибутив. Вся установка занела около 20 минут. Gnome на вид очень аккуратный. Удобно сделали Mint Menu. Дистрибутив отлично локализован на русский язык. Что очень удивило не было проблем с драйверами, в отличие от Debian, как он и не пытался определить wi-fi карточку. Все кодеки и большой выбор программного обеспечения прямо из коробки: Gimp,open office, firefox, pidgin, totem, XChat и многое другое, что может пригодится на домашнем компьютере. Отдельно хочется сказать о Control Center, очень сильная вещь. По удобству не уступает Yast'у из OpenSuse, кстати очень его напоминает. 

        Итог: посоветовал бы данный дистрибутив людям только что ушедших от Windows. Для того что бы привести систему в человеческий вид пригодный к использованию, даже не пришлось использовать терминал, правда не могу однозначно сказать, положительная или отрицательная сторона системы. 
       Пока как - то так. Буду разбираться дальше. 

воскресенье, 30 августа 2009 г.

Прощай еще одно лето...

И от чего-то грустно...

суббота, 29 августа 2009 г.

Выбор Desktop дистрибутива


Вот обзавелся ноутбуком c предустановленной на нем Windows VIsta. Просидев час другой за творением Micro$oft, понял что не зря я ушел в *nix. Начал выбирать какой-бы дистрибутив поставить. Так как ноутбук будет использоваться сугубо в домашних целях и возможно не только мной, но и моими родными, мой выбор пал на Linux Mint, как на user-frendly и снабженным из коробки всевозможным  ПО на все случаи жизни,кодеками и прочей  мелкой утварью. Поставил на закачку. Как скачаю, поставлю поделюсь впечатлениями.

среда, 26 августа 2009 г.

Hello world

Не будем менять традиции и поэтому традиционно Hello World!!!

Поиск по этому блогу

Powered By Blogger