Архив

Архив ‘разработка’ категории

typename

Март 6th, 2011

впервые столкнулся с ключевым словом typename
прочитать что это и зачем можно здесь:
http://alenacpp.blogspot.com/2006/08/typename.html

а я столкнулся при портировании проекта из MS VC++ 2008 под Linux g++ 4.4.5

пример:
template
void function(T1& src, unsigned int n)
{
...
std::map ::iterator I;
...
}

VC++ всем доволен, а вот g++ на эту строчку ругнулся
error: expected ‘;’ before ‘I’

получается компилятор не может понять что от него хотят, т.о. для исправления ошибки необходимо в начале строчки прописать typename:
typename std::map ::iterator I;
и всё в шоколаде :)

аналогично решается ошибка в строке:
for(T1::iterator I = src.begin(); I != src.end(); ++I) {
добавляем
for(typename T1::iterator I = src.begin(); I != src.end(); ++I) {

такие дела.

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

разработка , ,

уроки по OpenCV – шаг за шагом

Октябрь 4th, 2010


1. OpenCV шаг за шагом. Введение.
2. Установка.
и т.д.

инструменты, исследования, разработка

Кнопка для трансляции в Twitter, Facebook, vkontakte

function sendToTwitter (obj, sText, sTag){
var sTwit = sText.replace(/(\s)+/g, '+');
var hashTag = '+%23'+sTag;
location.href = 'http://twitter.com/home/?status='+sTwit+hashTag;
return false;
}

function sendToFacebook (obj, sUrl){
location.href = 'http://www.facebook.com/sharer.php?u='+sUrl;
return false;
}

function sendToVkontakte (obj, sUrl){
location.href = 'http://vkontakte.ru/share.php?url='+sUrl;
return false;
}

и, соответственно, html-код:

<a title=»Добавить в Twitter» href=»http://twitter.com/home?status=RT @idea2ru Книга: http://idea2.ru/blog/clever_mind/708.html» target=»_blank» rel=»nofollow»></a>

<a title=»Добавить в Facebook»  href=»http://www.facebook.com/sharer.php?u=http://idea2.ru/blog/clever_mind/708.html» target=»blank» rel=»nofollow»></a>

<a title=»Добавить в ВКонтакте»  href=»http://vkontakte.ru/share.php?url=http://idea2.ru/blog/clever_mind/708.html» target=»blank» rel=»nofollow»></a>

разработка , , ,

Кнопка для трансляции в Buzz

function sendToBuzz(obj, sText, sUrl){
location.href = 'http://www.google.com/reader/link?url='+sUrl+'&title='+sText+'&srcURL='+DIR_WEB_ROOT;
return false;
}

или html-код

<a title=»в Buzz» rel=»nofollow» href=»http://www.google.com/reader/link?url=http://idea2.ru/blog/clever_mind/708.html&amp;title=Книга&amp;srcURL=http://idea2.ru» target=»_blank» onfocus=»blur();»><img src=»buzz_it.png» alt=»" /></a>

разработка , ,

GDirections без маркеров

Март 30th, 2010
//Don't supply a map to GDirections()
var direction = new GDirections(); 

//Make sure {getPolyline:true} is given to the load function
direction.load("here to there", {getPolyline:true});

GEvent.addListener(direction,
                   "load",
                   function(){ map.addOverlay(direction.getPolyline()); }
);

разработка , , , , ,

var_dump на javascript

Март 30th, 2010

function var_dump(arr,level) {
var dumped_text = "";
if(!level) level = 0;
//The padding given at the beginning of the line.
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += "    ";
if(typeof(arr) == 'object') { //Array/Hashes/Objects
for(var item in arr) {
var value = arr[item];
if(typeof(value) == 'object') {
dumped_text += level_padding + "'" + item + "' ...\n";
dumped_text += var_dump(value,level+1);
} else {
dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
}
}
} else { //Stings/Chars/Numbers etc.
dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
}

разработка ,

Геолокация на JavaScript

Март 4th, 2010

Используя javascript geolocation framework можно (после подтверждения со стороны пользователя) приблизительно определить положение пользователя. (IE эту возможность не поддерживает)
читать подробности

разработка ,

SQL разница между датами

Март 3rd, 2010

везде предлагается использовать функцию DATEDIFF()
но когда мне потребовалось высчитать разницу между датами в днях – у меня это почему-то не вышло :(
пришлось изобрести велосипед (аж две штуки):
1. (UNIX_TIMESTAMP(`date2`)-UNIX_TIMESTAMP(`date1`))/86400)
2. (TO_DAYS(`date2`) - TO_DAYS(`date1`))

например, узнать сколько прошло дней от даты `date1`:
(TO_DAYS(NOW()) - TO_DAYS(`date1`))

вот собственно и всё :)

разработка , , ,

LiveStreet и Arduino/CraftDuino

Январь 23rd, 2010


Здесь я уже писал, как ардуина может читать RSS-ленту. Используя тот же принцип можно сделать следующий шаг и научить ардуину вести свой блог ;)
Далее…

идеи, разработка , , , , , , , ,

Идеальный Интерфейс – Круг друзей :)

Январь 17th, 2010


Нам всем не хватает идеальности и я решил восполнить это факт маленьким модулем :)

Пока он делает только одно – отображает круг друзей в профиле пользователя.
Надеюсь это только начало! :) Далее…

идеи, разработка , , , , , , , , ,