пятница, 11 декабря 2009 г.

Google go для Windows

Можно скачать бинарники и поиграться

http://code.google.com/p/go-windows/

Первые впечатления:
1. То что в конце строки можно не ставить ";" - врут. Если забыть поставить - как правило глюки. Хотя, возможно, это кривой билд для винды.
2. Сообщения об ошибках - то ли не слишком информативны, то ли просто непривычны (скорее второе). Постоянно путаю местами тип и имя в обьявлении переменной и/или параметра функции

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

trim на JS

Наверное, самое короткое и изящное решение:

function trim(str) {
return str.replace(/^\s*|\s*$/,'');
}

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

Текстовый редактор на чистом <canvas>
С функциональностью затык, но по скорости весьма неплохо летает.
Это ж я б так мог и Ленина спасти можно писАть вполне себе шустрые офисные приложения...

http://guillaume.bort.fr/textile-editor/

PS под IE не работает, естественно, ну да кого это волнует ;)

понедельник, 13 июля 2009 г.

Accessing the current module's HINSTANCE from a static library

Наткнулся на ссылку в хромоском коде:
http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx

вторник, 7 июля 2009 г.

How to access more than 2(3)GB of memory under 32-bit Windows:

http://blogs.msdn.com/oldnewthing/archive/2009/07/06/9818299.aspx

четверг, 23 апреля 2009 г.

Великий и могучий JavaScript, кодогенерация

JavaScript - великий язык. Вот как делается функция для создания текста с отступами:

function CreateStream() {
var strmContent = []; // Whole content

function substream(strTabs) {
function print(args) {
for (var i=0; i
strmContent.push(strTabs + args[i]);
}
}

var res = function() {
print(arguments);
return res;
}
res.tab = function() {
return substream(strTabs+"\t");
}
return res;
}

var res = substream("");

res.saveAsString = function() {
return strmContent.join("\r\n")
}

return res;
}

и использование:

var stream = CreateStream();
stream("function a() {");
stream.tab()("// комментарии тут");
stream("}");

var res = stream. saveAsString();

Оч. удобно для кодогенерации и т.п.

пятница, 17 апреля 2009 г.

Как запустить junit-тесты из командной строки

Постоянно забываю имя класса из junit которое нужно передавать джаве как main class. Дабы больше не забывать: junit.textui.TestRunner (это для junit 3.8, в 4-м ЕМНИП всё по-другому)

вторник, 14 апреля 2009 г.

Задача - поставить breakpoint на функцию для которой нет полного debug info
Типичный пример - ставим breakpoint на LoadLibraryEx
Решение (MSVC):
Делаем new breakpoint на _LoadLibraryExW@12
Теперь, когда мы стоим на breakpoint надо посмотреть параметры.
В случае если это Unicode-строка делаем add watch для вот такого:
*((wchar_t**)esp+1)
+1 - потому что по esp+0 лежит адрес возврата.

Счастливого дебаггинга, мои маленькие любители ковыряться в чужом коде!