Боюсь, что позиционирование глазом никогда не сможет достичь той же точности, что и мышью — глаза никогда не стоят на месте, а заодно человек никогда не смотрит не объекты абсолютно прямо, так что даже самая совершенная техника в идеальных условиях будет выдавать не совсем точный результат. Такова биологическая особенность глаз.
Самый удобный скроллинг для тех кот мало двигает головой — использовать координаты глаза (у устройств от Тобии такие данные доступны).
А моргание подходит для тех задач, где не нужно часто кликать по объектам. Например, для игры в шахматы моргание вполне подойдёт, а для набора текста — нет.
немножко настораживает — сюда попадёт вообще всё что только есть в self (честно говоря, не знаю что он содержит, но подозреваю, что немало из того, что имеется в window). Безопаснее сделать реализацию методов worker'a в объекте:
function MyWorker() {
this.firstFunction = function (params) {
// implementation
};
this.firstFunction = function (params) {
// implementation
};
// другие публичные методы, приватные методы и данные объявляются через var privateVariable, privateFunction
}
и тогда
var myWorker = new MyWorker();
onmessage = function (event) {
if (event.data.functionName === '__init__') {
var methods = [];
for(var f in myWorker) {
if (myWorker.hasOwnProperty(f) && typeof f === 'function') { // вторая проверка, возможно, избыточна
methods.push(f);
}
}
postMessage({__methods__: methods });
return;
}
var requestId = event.data.requestId;
try{
var params = event.data.params;
var result = myWorker[event.data.functionName] (params);
postMessage({result: result, requestId: requestId});
}catch(ex){
postMessage({error: ex + ", functionName="+event.data.functionName, requestId: requestId});
}
}
alert(msg.data.error);
дело вкуса, наверное, но console.log вместо alert часто оказывается удобнее.
Да, в 80х было много исследовано как изображение передаётся по зрительному нерву и что сразу после этого происходит (очень здорово это описано в книге Хьюбела Глаз, мозг, зрение). А здесь говорится что же с ним происходит на ещё более позднем этапе. Выходит, компрессия есть на разных уровнях обработки визуального сигнала.
Может можно автоматическое определение функций сделать? Ну, как–то так:
во внешнем коде
function Performer(scriptSource) {
var worker = new Worker(scriptSource), callbacks = {}, nextRequestId = 0;
var perform = function(functionName, params, callback) {
callbacks["request_" + (++nextRequestId)] = callback;
worker.postMessage(
{functionName: functionName, params: params, requestId: nextRequestId}
);
}
var self = this;
worker.onmessage = function(msg) {
if (msg.data.__methods__) { // получили список функций, делаем их методами Performer'a
var methods = msg.data.__methods__;
var appendMethod = function (name) {
self[name] = function (params, callback) {
perform(name, params, callback);
}
};
for (var i = 0; i < methods.length; ++i) {
appendMethod(method[i]);
}
}
else {
callbacks["request_" + msg.data.requestId](msg.data.result);
delete callbacks["request_" + msg.data.requestId];
}
}
perform('__init__');
}
во внутреннем коде:
onmessage = function (event) {
if (event.data.functionName === '__init__') {
var methods = [ // может и тут как–то можно автоматизировать?
'firstFunction',
'secondFunction'
...
];
postMessage({__methods__: methods });
}
else {
var requestId = event.data.requestId;
var workerFunction = eval(event.data.functionName);
var params = event.data.params;
var result = workerFunction(params);
postMessage({result: result, requestId: requestId});
}
}
Как здорово, что вы о ней вспомнили. Восхитительная книга, 3 раза перечитывал. Мне, правда, её по специальности читать полагается, но рекомендовал бы читать всем.
Неплохо обстоят, хотя желающих очень много.
В 2002 грант было почти 1200 евро в месяц. Наверное, сейчас евров на 200 больше. Мне на всё 500 за глаза хватало (аренда в TOAS только 175), сейчас может и 600 понадобится…
Ах да, виноват, я обратил внимание только на жёлтые кружки, которыми (как-бы) обозначены заражённые сети. Ремарка в шапке слайда, видимо, относится только к ним.
Не факт. Расположение жёлтых кружков указывает на то, что их наштамповали в фотошопе:
— в Южной Америке они почему-то только в амазонских джунглях,
— в Африке — в только Чаде, Судане Египте и Ливии
— в Тибете плотность кружков такая же как и в Индии, а в Монголии — больше чем в Китае
т, е, большинство жёлтых кружков расположено в малонаселённых местах. Где они располагаются на самом деле — одному АНБ известно…
Недавно случайно стал владельцем аппарата на Аднроиде. Аккаунта не имею, пользоваться google play не могу, но все пакеты которые мне были нужны (а некоторые из них весьма специфичны, т.е. не относятся к популярным), нашёл на других сайтах. Так что пользоваться можно. Но в самом начале внимательно пройдитесь по настройкам и выясните что означает каждая из них.
П.С. На смарте симки нет, вайфай отключен :)
Не нашёл в описании, что будет когда аккумулятор разрядится. Можно пофантазировать:
– будет банальность: издаст звуковой сигнал и/или включится/замигает красная лампочка (интересно, где?)
– сообщит голосом что его пора подзарядить (а будет учитывать что рядом никого может не быть? а если есть, но все спят – утром расскажет?)
– сам сможет вставить вилку в розетку (навряд ли), или подойти туда где находится беспроводная зарядка (более реалистично)
Прочитал и подумал что у меня всё–таки одна жизнь, а вот уровней и правда бесконечность… как и игр. И что как–то неправильно её расходовать на прохождение этих бесконечных уровней.
Потом открыл ссылку. Понял, что не про ту жизнь подумал…
Кстати, сравнивать в байтах код автора поста и код по той ссылке не совсем корректно – там код минифицирован.
Позволю себе уточнение:
Первые такие дисплеи появились лет десять назад, если не больше. Поначалу работали весьма медленно, но несколько лет назад видел видео где рельеф создавался так же быстро, как и на видео в этом посте (жаль никак ссылку не могу найти — там «разрешение» дисплея было заметно лучше). Как я понимаю, новизна inFORM — в том что рельеф создаётся по данным сенсоров (Kinect?), с прямым управлением через камеру.
Да, видимо автор «высказался» на тему отношения Элопа к падению Нокия (т.е. что Элоп ни разу не виноват, я так понимаю), ибо на картинке в оригинальном посте фразы «Burning Platform memo» нет.
А моргание подходит для тех задач, где не нужно часто кликать по объектам. Например, для игры в шахматы моргание вполне подойдёт, а для набора текста — нет.
немножко настораживает — сюда попадёт вообще всё что только есть в self (честно говоря, не знаю что он содержит, но подозреваю, что немало из того, что имеется в window). Безопаснее сделать реализацию методов worker'a в объекте:
и тогда
дело вкуса, наверное, но console.log вместо alert часто оказывается удобнее.
Да, очень неплохой удобный wrapper получается.
во внешнем коде
во внутреннем коде:
В 2002 грант было почти 1200 евро в месяц. Наверное, сейчас евров на 200 больше. Мне на всё 500 за глаза хватало (аренда в TOAS только 175), сейчас может и 600 понадобится…
1337 — это они на что намекают?
— в Южной Америке они почему-то только в амазонских джунглях,
— в Африке — в только Чаде, Судане Египте и Ливии
— в Тибете плотность кружков такая же как и в Индии, а в Монголии — больше чем в Китае
т, е, большинство жёлтых кружков расположено в малонаселённых местах. Где они располагаются на самом деле — одному АНБ известно…
П.С. На смарте симки нет, вайфай отключен :)
– будет банальность: издаст звуковой сигнал и/или включится/замигает красная лампочка (интересно, где?)
– сообщит голосом что его пора подзарядить (а будет учитывать что рядом никого может не быть? а если есть, но все спят – утром расскажет?)
– сам сможет вставить вилку в розетку (навряд ли), или подойти туда где находится беспроводная зарядка (более реалистично)
П.С. Нда, электронные дети будущего…
Прочитал и подумал что у меня всё–таки одна жизнь, а вот уровней и правда бесконечность… как и игр. И что как–то неправильно её расходовать на прохождение этих бесконечных уровней.
Потом открыл ссылку. Понял, что не про ту жизнь подумал…
Кстати, сравнивать в байтах код автора поста и код по той ссылке не совсем корректно – там код минифицирован.
Первые такие дисплеи появились лет десять назад, если не больше. Поначалу работали весьма медленно, но несколько лет назад видел видео где рельеф создавался так же быстро, как и на видео в этом посте (жаль никак ссылку не могу найти — там «разрешение» дисплея было заметно лучше). Как я понимаю, новизна inFORM — в том что рельеф создаётся по данным сенсоров (Kinect?), с прямым управлением через камеру.