Skip to main content

Posts

Showing posts from August, 2007

Какой айпишник у двери?

Однажды у нас в конторе произошел следующий забавный случай:
Заходит к нам в отдел сотрудник и спрашивает: "Какой айпишник у двери?". Все в отделе сидят уткнувшись в монитор, с которого на них смотрит родной Linux (ну или Windows у кого-то), и кто-то не поднимая головы отвечает: "76-й!". Сотрудник уходит. И тут все дружно подымают головы и всех пробивает на ха-ха. IP адрес у двери? и самое главное, что на такой вопрос был получен ответ! Объясняется все просто: один из проектов, который мы сейчас разрабатываем, - это система доступа в помещение по отпечаткам пальцев, которая работает под управлением Linux и включена в сеть.

Еще как то разговорились и пришли к выводу, что булевы переменные в PL/SQL обладают женской логикой (они ведь имеют три состояния) - "да", "нет", "наверное".

Quine

Когда то у нас в университете одним из заданий на курсовой проект было написать программу печатающую свой собственный код. Так тогда это задание никто и не взял себе. И вот недавно, вспомнив об этом, решил поискать в сети. Оказалось, что подобные программы называются Куайн (Quine) и программисты иногда ради забавы соревнуются кто же напишет максимально короткий куайн. Ниже пример с Wikipedia:

std::string vs. const char* . Comparison

Захотелось мне как-то узнать какие строки сравниваются быстрее - С-строки или STL. Да и Страуструп помнится в своей книге писал, что STL строки скорее всего реализованы эффективнее. Решил провести небольшой бенчмарк. Один тестовый случай заключался в 1000 сравнении 2х строк. Продолжительность каждого тестового случая измерялась. Тест состоял из набора в 1000000 тестовых случаев. После проведения теста время сравнения усреднялось. Результаты оказались довольно занятными.

Начинаю учить японский

Наткнулся на тест согласно которому мне рекомендуют:

You Should Learn Japanese
You're cutting edge, and you are ready to delve into wacky Japanese culture.
From Engrish to eating contests, you're born to be a crazy gaijin. Saiko!

gaijin - чужак (пересмотрел недавно Токийский Дрифт). Может и взаправду начать изучать его? говорят он полегче английского ;-)

Внешне указатели, сокеты внутри

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

Font Rasterization

Появилась довольно интересная статья по растеризации текста. Автор хоть и не является экспертом в данной области, но определенно “have something to say”. Как-то до прочтения статьи мне не приходилось задумываться над подобными вещами. Неужели все настолько плохо? Кто что думает?

Motolinux

Motorola начала продажи (пока только на территории США) мобильного телефона RAZR2 V8, работающего под управлением мобильной Linux платформы MotoMAGX. На страничке MotoMAGX в частности можно прочитать следующие слова:

With more than 9 million Linux®-based handsets shipped worldwide, Motorola is a leader in mobile Linux innovation — and this is just the beginning. In the next few years, up to 60 percent of Motorola's handset portfolio is expected to be based on Linux. MOTOMAGX, Motorola's recently announced mobile Linux platform, is the next significant step in demonstrating our commitment to mobile Linux. It will play a key role in supporting Motorola's strategy

Такие заявления звучат более чем обнадеживающе ;-). Если мир и не услышит о Linux на десктопах, то похоже о Linux в мобильных устройствах ему придется услышать в самом ближайшем будущем. А когда наконец-то настанет эра ubiquitous computing о Linux будут знать все. Знать будут по крайней мере, что он есть ;-). Интересн…

Computer programming career

Нашел пару интересных статей
Why a career in computer programming sucksThe death of the generalist software developerНедоумение вызвала фраза:
And I stand by my belief that people born in this country have more rights to the money being created here than foreigners.

Расизмом это все попахивает ИМХО.

Покажи мне свой Desktop и я скажу кто ты

Мой десктоп на работе выглядит вот так:


Ничего лишнего и все нужное под рукой :-). А панелька со средствами разработки справа - скывается автоматически.

Просто undefined behaviour

Вот такой простой код приводит к undefined behaviour.

#include <iostream> #include <cstdlib> using namespace std; int main(int argc, char *argv[]) { char*str="Hello, world"; cout <<str<<endl; str[6]='!'; cout <<str<<endl; return EXIT_SUCCESS; }
А все потому ,что строковый литерал есть "массив с надлежащим количеством константных символов", и, следовательно, присваивание константе незаконно. И поймать это можно только в рантайме. В моем тестовом случае это привело к segmentation fault.

Русских победить невозможнно!

Однажды произошла следующая история. В Сибири велась разработка земли и для этой цели понадобился какой-то специальный трактор. Трактор был приобретен через представителей в Москве у немецкой фирмы, доставлен в пункт назначения и представители благополучно разъехались по домам. И тут в Москве раздается звонок: "Ваш трактор не заводится". Представители срочно выезжают в Сибирь, смотрят, да, действительно, трактор не работает. Звонят в Германию производителю. Немецкие разработчики срочно выезжают в Сибирь, смотрят, а из салона трактора пропала магнитола. Как оказалось, местный прораб залез в кабину трактора, а там магнитола, кондиционер и куча другой электроники. Он не долго думая выдирает эту магнитолу из гнезда и запихивает в свою Волгу. Ну немцы и говорят - верните магнитолу на место, без нее электроника не работать не будет, трактор не заведется. Магнитолу вернули, трактор завелся, все довольные и счастливые уехали, немцы улетели к себе на родину. Не успели немцы долететь,…

Живность в коде. Часть 2. Метод муравьиных колоний

Энтомологи установили, что муравьи способны быстро находить кратчайший путь от муравейника к источнику пищи. Более того, они могут адаптироваться к изменяющимся условиям , находя новый кратчайший путь. Муравьи движутся по прямой, соединяющей муравейник с местом, в котором находится пища. При движении муравей метит свой путь специальными веществами - феромонами, и эта информация используется другими муравьями для выбора пути. А именно, муравьи предпочитают тропки наиболее обогащенные феромонами. Это элементарное правило поведения муравьев и определяет их способность находить новые пути, если старый оказывается перерезанным преградой. Действительно, достигнув этой преграды, муравьи уже не смогут продолжить свой путь и с равной вероятностью будут обходить ее справа и слева. То же самое будет происходить и на обратной стороне преграды. Однако, те муравьи, которые случайно выберут кратчайший путь, будут быстрее проходить свой путь и он с большей скоростью станет обогащаться феромонами. По…