понедельник, 29 октября 2007 г.

Опыты со SWIG'ом: C++ код и Ruby

Недавно у меня возник вопрос, как скрестить C++ и Ruby, а именно - есть С++ либа, хотелось бы использовать ее из Ruby. Покопавшись немного в инете, нашел статью "Использование C и Ruby", откуда стало ясно, что основные способы создания расширений для Руби - использование Ruby API (ruby.h, rubyio.h, intern.h) и утилита SWIG. Для начала решил попробовать SWIG.

Read More...

вторник, 23 октября 2007 г.

Неизвестный Киев: Киево-Печерская крепость, Госпитальное укрепление

На прошлой неделе просматривал экскурсии на сайте "Интересный Киев" и узнал о существовании Киево-Печерская крепости. Крепость включает в себя:

  • Старая Печерская крепость, цитадель (А);
  • Васильковское укрепление (Б);
  • Госпитальное укрепление (В);
  • Зверинецкое укрепление (Г);
  • Лысогорский форт (Д);
  • северный фас крепости(оборонительные казармы, мастерские, подпорные стенки) (Е).

Read More...

четверг, 18 октября 2007 г.

Рубиновые сокеты

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

  • протокол (TCP, UDP, raw IP);
  • локальный IP адрес (к нему чему сокет привязывается при создании);
  • локальный порт (к нему чему сокет привязывается при создании);
  • удаленный IP адрес;
  • удаленный порт (используя эти параметры сокет конектится к удаленному сокету).

Сокеты реализуются с посредством библиотек, таких как Berkeley sockets (BSD sockets) или Winsock.

Ruby предоставляет свой инструментарий для работы с сокетами (на базе BSD sockets):

Read More...

среда, 17 октября 2007 г.

The GoF patterns in Ruby

I've just found implementation of the GoF patterns in Ruby with examples.

вторник, 16 октября 2007 г.

Шпаргалка по созданию Makefile

Что такое Makefile? Makefile - это сценарий для утилиты make. Эта утилита помогает автоматизировать процесс компиляции проекта (проектов):

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

Об опциях компилятора можно почитать здесь.

Read More...

понедельник, 15 октября 2007 г.

Muse in Kiev

Muse Live in Kiev - one more video, bad quality but good sound:

C + Ruby

It is no secret that Ruby sends messages to invoke methods. So it much slower than in C. If you need speed in accessing instance variables and invoking methods you can use CplusRuby:


With CplusRuby you can define custom C structures from within Ruby and wrap them easily in a Ruby class. You can as well define C functions that can access this structure easily. CplusRuby generates setter/getter methods for every property and wrapper methods for the C functions.

The purpose is speed! The C functions can access the C-structure, which is much faster than accessing instance variables. Also, the C functions can call each other directly. This is *much* faster than invoking a method in Ruby. As wrappers are generated, the Ruby-side can access all C-structures and functions as well.

воскресенье, 14 октября 2007 г.

Reading C type declarations

Article Reading C type declarations intends to describe how read difficult C statements such as

Muse в Киеве

Не смотря на угрозу отмены, концерт Muse вчера все же состоялся.


Read More...

вторник, 9 октября 2007 г.

Software Engineering Radio

Software Engineering Radio - The Podcast for Professional Software Developers.

Здесь собраны и постоянно обновляются записи разговоров с девелоперами о девелопменте. Файлы в среднем по 40-50 метров. К некоторым прилагаются слайды и ссылки на источники по теме.

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

В дополнение можно посмотреть лекции университета Беркли (Berkeley).

С++ под капюшоном

C++ under the hood - в этой доке один из сотрудников микрософта рассказывает как устроен С++ изнутри (Microsoft Visual C++), т.е. размещаются в памяти классы, наследование, виртуальное наследование, виртуальные функции и т.д. Полного представления об реализации С++ (Microsoft Visual C++) она не дает, но отвечает на некоторые вопросы которые любят спрашивать на собеседованиях и в brainbench.

четверг, 4 октября 2007 г.

Тираж закончился. Оставьте заявку...


Тираж закончился. Оставьте заявку. Мы постараемся отыскать эту книгу для Вас, немедленно известив Вас об этом...

Недавно решил купить книгу Шаблоны C++: справочник разработчика. Захотелось полистать бумажный вариант. Оказалось, что поздно опомнился. Когда услышал на Петровке, что такой книги больше нет, вся продана - не поверил. Стал искать по интернет магазинам - таже ситуация. Есть только на российских сайтах и вроде как есть во Львове. Посмотрел, что тираж у нее всего 5000 экз (хотя встречалась и цифра 3000). Значит все уже раскупили. Но у Страуструпового Язык программирования C++. Специальное издание тираж такой же и встречается в купленном виде намного чаше. И вообще, 3000-5000 экземпляров - это нормальный тираж для книг по программированию. Может их изымают и сжигают? Фигня какая-то. Надо купить, пока до Львова не добрарилсь :)

среда, 3 октября 2007 г.

Ruby-гуру со всего мира о Ruby

Здесь можно почитать что думаю о Руби программисты из разных стран мира: Advice For Ruby Beginners

вторник, 2 октября 2007 г.

Временно бесплатная книга по Ruby on Rails

60 дней будет доступна в pdf формате книга Build Your Own Ruby on Rails Applications на сайте SitePoint

В российский школах будет своя ось

Шутка о то, что в России планируется разработать специальную ось для школ, были известна уже давно. Теперь это уже не шутка, а реальная угроза для учителей и школьников: Россия выбирает третий путь

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

Поэтому будет писаться своя ось, свой софт... Мы не ищем легких путей :)))

Программистские видео лекции

В дополнении к книгам, можно посмотреть лекции по программированию на C++, Java, Perl, Python и т.д. Programming Language Video Lectures

Программистские онлайновые книжки

Your Book Case. Preview The Book You Want To Buy. Тут есть такие интересные книжки как:

C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond

CPP Coding Standards 101 Rules Guidelines and Best Practices

и т.д.

Циклы в Руби

На первый взгяд, Руби предоставляет не большой набор встроенных конструкций для создания циклов. Здесь нет привычного for(i=0;i < N;i++), только while и until.

Read More...

понедельник, 1 октября 2007 г.

Один Vim, много файлов

Являсь мощным текстовым редактором, vim позволяет с помошью одной командной строки сделать столько, сколько другие редакторы не могут позволить сделать с помошью мыши и шаманского бубна. Например работа с несколькими файлами. Для открытия в vim нескольких файлов достаточно в командной строке написать:

vim file1 fill2

Перемещаться по открытым файлам можно будет с помощью команд :n (вперед), :prev (назад). Это самый простой способ.

Больше узнать об этом всем можно спросив в самого вима :help split.

Read More...

gdb links

Пара ссылок на доки по gdb:
- Debugging with GDB (объемная дока по всему, что умеет отладчик; дока поддерживается разработчиками gdb)
- Отладка с помощью GDB (то же самое, но на русском и не обновлялось с марта 2000)

Посещение "Водно-информационный центра"

Недалеко от арки Дружбы народов в Киеве, в Хрещатом парке, находиться Водно-информационный центр - две башни, похожие на пожарные вышки.

Read More...