Не так давно на хабре (и на лепре, и еще где-то) появилась такая гифка:
image
Я посидел и подумал: “А почему бы и нет?”
Прошло некоторое время и, как я и обещал
Встречайте! VKFS - файловая система vkontakte, основаная на fuse.
Это не релиз - пока что реализована только возможность чтения собственной стены, но уже готов весь “каркас” для этого всего.
По ходу дела пишу библиотеку vklib, которая предназначена для работы с userapi. Возможно, выделю её потом в отдельный проект, а пока - это два файлика vklib.cpp и vklib.h =)

http://code.google.com/p/vkfs - тут можно скачать исходники через svn.
Также в разделе Downloads есть архив с исходниками одной из последних ревизий, но все-же лучше собирать из исходников.

Работает всё просто:
$ vkfs /mount/point
e-mail:
password:
your vkontakte-id:

Где /mount/point - точка монтирования, любая папка.

Зачем вводить свой vkontakte-id? Я не нашел способа с помощью userapi определить его. Может кто-то сталкивался?

В папке /mount/point/ находится всего 2 папки - Messages и My_Info.
Заходим в My_Info: там файлы Wall и AboutMe.
Из всего этого реализована только стена - Wall.
Открываем её в любом редакторе, или с помощью
$ cat Wall
Читаем и радуемся =)

Чтоб отмонтировать:
$ fusermount /mount/point -u

Библиотеки использовал curl и curlpp-обертку для curl’a в с++; и, собственно fuse. UPD А также cajun-json.

http://habrahabr.ru/edit/topic/85014/

Эта статья — смесь переводов мануалов и статей по curl и curlpp. Будет полезна тем, кто хочет начать работу с библиотекой, но не знает откуда начать =).
А начнем мы, конечно же, с официального сайта. На нем написано, что cURLpp — библиотека-обертка для языка С++ на библиотеку curl — удобную утилиту и одноименную библиотеку для работы с сетью.

Установка

Перед тем как работать непосредственно с curlpp, нужно установить libcurl. В большинстве дистрибутивов она есть в репозитории, но все-таки предпочтительнее брать её из исходников — благо установка легкая, зато вы будете знать что конкретно вы ставить. Хотя это дело вкуса.

Для начала, желательно установить openssl. Без него будут недоступны функции с зашифрованным соединением.
Итак, сначала скачаем архив исходников с curl.haxx.se/download.html
На момент написания статьи это был curl-7.20.0.tar.gz

$ mkdir curl && cd curl
$ wget curl.haxx.se/download/curl-7.20.0.tar.gz
$ tar xfv curl-7.20.0.tar.gz
$ cd curl-7.20.0
Теперь собираем
$ ./configure
После конфигурации можно посмотреть куда make собирается его кидать. По умолчанию это /usr/local, если вас это не устраивает — при конфигурации укажите опцию –prefix=/path/to/install/

$ ./configure –prefix=/path/to/install/

$ make
$ sudo make install

Всё. libcurl установлен.

Теперь приступаем к установке curlpp.
Качаем последнюю версию:
$ wget curlpp.googlecode.com/files/curlpp-0.7.3.tar.gz

$ cd… && mkdir curlpp && cd curlpp
$ tar xfv curlpp-0.7.3.tar.gz
$ cd curlpp-0.7.3
Собираем…
$ ./configure
$ make
$ sudo make install

Есть. curlpp также установлен.
Теперь можно приступать непосредственно к программировани

Теория и практика

Компиляция

Для того чтобы упростить указание компилятору путь к библиотеке и заголовочным файлам, была создана утилита curlpp-config

$ curlpp-config –cflags
Показывает, какие флаги нужно указать для компилятора

$ curlpp-config –libs
Список флагов для линковщика

Соответственно, для компиляции файла somefile.cpp нужно дать такую команду:
$ g++ somefile.cpp `curlpp-config –cflags` `curlpp-config –libs`

Практика

Рассмотрим easy-интерфейс. Работа через него очень проста и удобна.

Для начала подключим заголовки
#include <curlpp/cURLpp.hpp>
#include <curlpp/Easy.hpp>
#include <curlpp/Options.hpp>

и пропишем неймспейсы:
using namespace cURLpp;
using namespace Options;

using namespace types;
using namespace std;

Объявим объект класса curlpp::Easy:
curlpp::Easy request;

Чтобы связать объект с определенным адресом сначала устанавливаются опции:
Для начала нужно создать объект URL
curlpp::options::Url uHabr(std::string(«m.habrahabr.ru»));

И задаем его для нашего запроса
request.setOpt(uHabr);

Можно эти две строки объеденить:
request.setOpt( Url(«m.habrahabr.ru») );
request.setOpt( UserAgent(«Curl-Testing Agent») );

Для того, чтобы результат запроса получить, например, в виде строки, нужно реализовать функтор size_t WriteMemoryCallback(char* ptr, size_t size, size_t nmemb):

std::string RequestAnswer;

size_t WriteMemoryCallback(char* ptr, size_t size, size_t nmemb)
{
RequestAnswer += ptr;
int FullSize = size*nmemb;
return FullSize;

}

И добавить его в опции:
WriteFunctionFunctor functor(WriteMemoryCallback);
WriteFunction* cb = new curlpp::options::WriteFunction(functor);
request.setOpt(cb);

Также доступны и другие опции.

Выполняем perform — все указанные опции будут применены.

request.perform();
Внимание! Если не указать функтор, результат идет на стандартный вывод.

Поздравляю! Мы написали программу, которая скачивает данные по указаному адресу!
Скачать исходный код

Компилировать его нужно просто коммандой

$ g++ test.cpp `curlpp-config –cflags` `curlpp-config –libs`

В скачаном архиве curlpp есть папка examples. В ней еще достаточно много разных примеров использования библиотеки.

Удачи в программировании!

Здравствуйте!
Эта статья будет больше интересна украинскому сектору.

Думаю, каждый из вас когда-нибудь задумывался, что означает или как пишется какое-то слово. Что же мы делаем в большинстве случаем? Заходим в гугл яндекс нигму другое (нужное подчеркнуть) и ищем слово. Если дома есть словарь, то смотрим в него.

Лично я давно пользуюсь таким сервисом как slovnyk.net, и, поспрашивав у знакомых, понял, что о нем почти никто не знает!
Сервис развивается достаточно активно, приятно сверстана страница и подобран дизайн.
По данным из раздела «О СЛОВНИК.net», В базе находится более 220 000 словарных статей и 20 000 фразеологизмов из 28 источников. (а также слова пользователей).

Если вы зарегистрированы на сайте, можно редактировать словарную статью, добавить изображение или примеры использования, словоформы и другое. Также можно добавлять новые слова.

Есть действующий активный форум на котором можно задать вопрос по лингвистике.

Поиск в Chrome

И приятное дополнение — в Chrome добавляем возможность поиска в словаре:
Название: СЛОВНИК.НЕТ
Ключевое слово: словн

Запрос: slovnyk.net/?swrd=%s

И пишем в адресной строке «словн %s»
PS «Тиць» в словаре! :)
И напоследок, желаю разработчикам сервиса творческих успехов и взлетов =)

Статья на хабре http://habrahabr.ru/blogs/i_recommend/84556/

С июня 2009 года я занимаюсь разработкой интерпретатора Си. (я уже упоминал об этом в статье о вызовах функций).
Сейчас уже реализовано достаточно много конструкций: циклы, выбор, вычисление выражений, вызовы функций (как объявленных пользователем, так и стандартных), инклуды и другое.
Читать полностью

Рубрика: Статьи

Постановка задачи

Что же я имел ввиду, когда написал “неизвестное” имя функции? А значит это то, что имя функции, её параметры и, в конце концов, соглашение вызова, становятся известными только во время выполнения программы. Займемся её вызовом! =)
Читать полностью

Рубрика: Статьи

Итак, вчера было официальное сообщение, что Google запускают новый сервис - Browser Size.
Суть проста - на сайт накладывается размеченная картинка и можно анализировать. Например, сколько пользователей увидят кнопку Donate.
Что же меня поразило:
Читать полностью

Рубрика: Статьи

У меня в телефоне стал плохо работать разъем. Причем, подключить возможно лишь очень хитрым способом вставляя кабель: сначала под 45 градусов до половины, а потом повернуть еще на 15-20 градусов %) .
Почитал форумы, покурил мануалы и… решил почистить разъем. А заодно и весь телефон.
Открыл крышку и увидел неприятную картину: там были винтики с углублением в виде шестиугольной звезды. Как выяснилось отсюда, нужны отвертка TORX T05 (также называется T5, A3). Таковой у меня не оказалось. Покупать тоже желания не было, было решено изготовить подручными средствами что-угодно, позволяющее открутить эти винты. Открутить обычной отверткой и крестовой не получилось, да я и не сильно старался, так как очень не хотелось сорвать шлицы — винты показались очень хрупкими. Значит, обычные металлические предметы, такие как нож, ключ, ножницы или железная линейка, нам не подходят.
А вот пластиковая линейка очень даже подходит!
Читать полностью

GTalkДавно пользуюсь gmail’овским джаббером для общения. Подключил транспорт и пользовался, радуясь жизни. Спустя пол года Чингачгук заметил, что одной стены в его камере нет я заметил, что пользоваться историей жутко неудобно и я решил скачать всю историю сообщений для оффлайнового пользования.
Читать полностью

HRun 1.2

Автор: antigluk 14 Дек 2008 Comments Отзывов: 2

Доброго времени суток!
Решил выставить “на публику” мое творение - HRun. Программа эта из серии утилит-помощников для программиста, администратора или любого другого человека, который адекватно разбирается в компьютерах (об этом говорит приставка H - от слова Help). Читать полностью

CMP Drawer

Автор: antigluk 12 Дек 2008 Comments Отзывов: 6

Здравствуйте читатели моего блога!
Сегодня я хотел-бы расказать о графическом формате CMP, который разрабатывал специально для программистов.
Думаю, что все, если не все, то многие согласятся, что в программах для оформления используются простые картинки, которые чаще всего нарисованы в том же пэйнте. Читать полностью

Рубрика: Мои программы

Теги: , ,