понедельник, 30 мая 2011 г.

Мобильные мошенники mms-cntr.ru и mini6.ru пытаются облегчить Ваш карман

К лету активизируются не только квартирные воры. Мобильные мошенники так же не дремлют.

На этот раз липовое обновление за деньги. Граждане, будьте бдительны. Mms-cntr.ru и mini6.ru - это жулики и воры, пользующиеся прикрытием оператора для грабежа простых людей.

Подробнее о этой и других реинкарнациях: http://kilork.blogspot.com/2010/07/mms-centerru-3353-incoremediaru.html.

четверг, 26 мая 2011 г.

Учимся программировать на JavaScript: выводим себя на экран

Все изучаю JavaScript. Вспомнил, как в институте нам поручали написать программу, которая выводит сама себя на экран. Сделал это же на JavaScript в node.js:


var text = [
'var text = [',
'console.log(text[0]);',
'text.forEach(function(item) {console.log("\'" + item.split("\\\\").join("\\\\\\\\").split("\'").join("\\\\\'") + "\',");});',
'console.log("];");',
'for (var i = 1; i < text.length; i++) { console.log(text[i]); }',
];
console.log(text[0]);
text.forEach(function(item) {console.log("'" + item.split("\\").join("\\\\").split("'").join("\\'") + "',");});
console.log("];");
for (var i = 1; i < text.length; i++) { console.log(text[i]); }

JavaScript eval - передаем данные в вызов

Экспериментировал с qooxdoo и обнаружил неприятную для себя вещь.
Вот этот код работает для source версии, и не работает для build версии:


var qqq = 'qqq'; eval('alert(qqq)');


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


var qqq = 'qqq'; eval('(function (a) { alert(a); })')(qqq);


Этот простой трюк позволил работать и build версии, и мне стало казаться, что такой вариант в целом правильнее (насколько может быть правильным использование eval отдельный вопрос).

UPDATE: Оказалось, что я глубоко неправ. Даже когда мой код заработал - это было полдороги. Ведь есть еще IE. Так вот, писать надо как выяснилось вот так:
var f = new Function('a', 'alert(a)');
f('qqq');

А вот тут можно почерпнуть полезную информацию: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function

понедельник, 23 мая 2011 г.

Torrent'ы - почему так плохо с вебинтерфейсами?

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

Будем ждать новой достойной смены, тем более, в последнее время в технология все очень хорошо в этом плане...