3 раза перечитал задачу про узел из середины односвязного списка — какой то бред.
1. Удаляется не указанный узел а следующий. Указанный удалить нельзя, если нет указателя на начало или предыдущий элемент.
2. Зачем переприсваивать указатель на данные не понятно.
В одном старом проекте заменил сервис, который раздавал события клиентским приложениям с реализации на Delphi на реализацию на NodeJS. Ну там вообще вся серверная часть переползла под линукс. Старый сервис уже использовал JS (движок от Microsoft) так что на NodeJS надо было только реализовать такую же глобальную область видимости ( с такими же функциями и объектами), а старые все скрипты просто подхватились.
В новых проектах (у меня это не сайты) для Web интерфейса использую NodeJS + NowJS — основное преимущество это использование одного языка в клиенте и сервере ну и RPC «без напряга» (фишка NowJS — возможность легко вызвать функцию на другой стороне (с клиента на сервере и наоборот) и получить обратно callback).
Еще одно применение у меня это создание сетевых сервисов для разных железяк, которые работают по Serial интерфейсу. Например, когда несколько устройств сидит на RS-485 (разные датчики или реле) и надо с ними общаться другим программам по сети. Асинхронность и сетевые возможности NodeJS приходятся очень кстати.
Опять мимо — это не синтаксический сахар. А велосипед изобретать — да полезно, чтобы понять как оно работает внутри. Только в первом абзаце своего поста Вы отказались от изобретения велосипеда. Я бы сказал, что Socket.IO и NowJS позволяют работать на разных уровнях абстракции. Socket.IO — уровень сокетов, NowJS — уровень разделяемых объектов. Можно опуститься еще ниже, но тяжело. Ну а ko.liveModel() на столько же нативная, как io.connect(). ko.liveModel() выводит нас на новый уровень — уровень разделяемой модели, которая привязана к элементам DOM. В результате изменения в DOM одного клиента, автоматически приводят к изменениям у остальных. Я просто хотел обратить внимание на эту технологию.
Вы бы хоть глянули, что там. Что значит «на чистом JS»? А SocketюIO или тот же jQuery — это по вашему не чистый JS? И чем Socket.IO «чище» NowJS? Так бы сразу и написали — «хотел написать свой велосипед».
Тут еще меньше кода КлиентСервер. Это KnockoutJS+NowJS(SocketIO)+Плугин для Knockout (ссылки на него на Github). Кстати, почему никто не пишет про Knockout 1.3? Там много вкусного.
так вот SLES 10 и 11
выполнив set под рутом
получил какой то мусор в environment у всех пользователей
мусор представляет собой какой-то shell скрипт, точнее набор скриптов
как убрать не понял
гугль не помог
Да меня интересует фильтр не по видам, а исходя из логики проекта. Т.е. по именам.
Ну с просмотром изменений проще — можно из двух баз выдрать метаданные и сравнить два скрипта, как два текстовых файла. Конечно, хорошо бы, чтоб это было автоматизировано.
В IBExpert — это инструмент администрирования для Interbase/Firebird. Уже давно есть подобная функция — Сравнение БД, сравнивает структуру, генерирует скрипты для приведения в одинаковый вид, для данных есть аналогичная вещь.
Давно ею успешно пользуюсь.
Чего не хватает там — фильтра для структуры, т.е. когда нужно синхронизировать часть объектов, а не все. Ну критерием для фильтра могла бы быть принадлежность той или иной схеме, но в Interbase/Firebird нет схем. Устроил бы фильтр по регулярке от имени объекта.
Практическое применения для планшета, кстати, — это способ показать нечто большее чем способен отобразить экран. Эдакая интуитивная замена скроллингу. Впрочем… На знаю — это надо пробовать, чтоб сказать, что удобнее.
var model = {
menus:[
MenuItem('Услуги/Операции','eq-operations'),
MenuItem('Рабочие места','eq-workplaces')
],
currMenuIdx: ko.observable(0),
currMenuTemplate: function(){
return model.menus[model.currMenuIdx()].template;
}
};
function MenuItem(caption, template){
var r = {
caption: caption,
template: template,
click: function(){ ActivateMenu( r ); }
};
return r;
};
function ActivateMenu(mi){
var i = model.menus.indexOf(mi);
model.currMenuIdx(i);
$.koApplication.loadModel('ui/js/eq/'+mi.template+'.js');
}
Когда меняется currMenuIdx — меняется шаблон. Кстати, я пока не понял почему. Магия какая-то… Код подгрузки шаблона я не показал — там нет проблем. Так вот не могу понять как модель привязать к такому меняющемуся шаблону. Он обращается к основной модели и не находит там нужных свойств. Так пока писал у меня уже возникло несколько идей. Пойду проверять.
У меня в политехе были лабы по изготовлению микросхем. Перед ними была курсовая на проектирование. Т.е. на входе курсовой была схема, кажется, усилительный каскад на 3 транзистора. На выходе надо было получить послойные чертежи микросхемы. Лабы включали нанесение фоторезиста, экспонирование, смывку лишнего, эпитаксию в печи, металлизацию медью в вакуумной камере. Теоретически каждый должен был сделать свою спроектированную схемку. Но там слишком много шансов запороть свое творение, поэтому реально это было просто похоже на расширенную экскурсию на производство. Впрочем лаборанты демонстрировали собственноручно сделанные солнечные батареи на том же оборудовании. Проектирование было чуть более серьезное.
1. Удаляется не указанный узел а следующий. Указанный удалить нельзя, если нет указателя на начало или предыдущий элемент.
2. Зачем переприсваивать указатель на данные не понятно.
В новых проектах (у меня это не сайты) для Web интерфейса использую NodeJS + NowJS — основное преимущество это использование одного языка в клиенте и сервере ну и RPC «без напряга» (фишка NowJS — возможность легко вызвать функцию на другой стороне (с клиента на сервере и наоборот) и получить обратно callback).
Еще одно применение у меня это создание сетевых сервисов для разных железяк, которые работают по Serial интерфейсу. Например, когда несколько устройств сидит на RS-485 (разные датчики или реле) и надо с ними общаться другим программам по сети. Асинхронность и сетевые возможности NodeJS приходятся очень кстати.
так вот SLES 10 и 11
выполнив set под рутом
получил какой то мусор в environment у всех пользователей
мусор представляет собой какой-то shell скрипт, точнее набор скриптов
как убрать не понял
гугль не помог
Ну с просмотром изменений проще — можно из двух баз выдрать метаданные и сравнить два скрипта, как два текстовых файла. Конечно, хорошо бы, чтоб это было автоматизировано.
Давно ею успешно пользуюсь.
Чего не хватает там — фильтра для структуры, т.е. когда нужно синхронизировать часть объектов, а не все. Ну критерием для фильтра могла бы быть принадлежность той или иной схеме, но в Interbase/Firebird нет схем. Устроил бы фильтр по регулярке от имени объекта.
и в модели
и подгружать модель в subModel.
Когда меняется currMenuIdx — меняется шаблон. Кстати, я пока не понял почему. Магия какая-то… Код подгрузки шаблона я не показал — там нет проблем. Так вот не могу понять как модель привязать к такому меняющемуся шаблону. Он обращается к основной модели и не находит там нужных свойств. Так пока писал у меня уже возникло несколько идей. Пойду проверять.
Понятно, что можно так же объявить обычную функцию, но так просто короче.
или
или именованных функций
или для рекурсии