Здравствуйте, artelk, Вы писали:
A>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, artelk, Вы писали:
A>>>PS Я нигде не ошибся? A>>>PPS На правах шутки А>>Ошибся, при вычислениях коллизий хеша берут корень из числа значений т.е примерно 10^24 (парадокс шапок) А>>Хеш относильно легко подделывается, а генерация пар текстов имеющих один и тот же хеш плевое дело давно уже.... A>Но это другая задача, она проще, чем подобрать другой текст с тем же хэшем.
А>>но если злой умысел можно исключить, то винт сгорит всяко быстрее даи сервер сменят... A>Был один js, его как-то поменяли (без намерения сделать так, чтобы результат имел тот же хэш). Какова вероятность?
10^48
если у тебя много файлов таких то она растет как n^2
Здравствуйте, WolfHound, Вы писали:
VD>>Круто! А что делать если хэши совпадут? Они ведь по определению не уникальны. WH>SHA1 совпадет? А ты знаешь, что GIT использует SHA1 в качестве первичного ключа? WH>Что будет, если у двух исходных файлов SHA1 совпадет? Это же репозиторий GIT'а сломается... WH>Короче на данный момент не известно ни одной коллизии SHA1.
Вообще у нас упор на читаемость, поэтому хотелось бы и имена файлов в виде названий классов с неймспейсом. В таком случае легко дебужиться в браузере, не знаю, правда насколько это будет востребовано.
Здравствуйте, ionoy, Вы писали:
I>Вообще у нас упор на читаемость, поэтому хотелось бы и имена файлов в виде названий классов с неймспейсом. В таком случае легко дебужиться в браузере, не знаю, правда насколько это будет востребовано.
Здравствуйте, ionoy, Вы писали:
I>Вообще у нас упор на читаемость, поэтому хотелось бы и имена файлов в виде названий классов с неймспейсом. В таком случае легко дебужиться в браузере, не знаю, правда насколько это будет востребовано.
Думаю востребовано.
1. Можно в конец JS файла добавлять такой комментарий:
//@ sourceURL=my-original-name.js
(Возможно надо его оградить переносами строк, был какой-то нюанс не помню уже). Это должно заставить дебаггер отображать этот ресурс именно с этим именем. Chrome и FF это должны поддерживать. Сам я давно этим уже не пользовался, но раньше точно работало.
2. Сейчас вроде как модно Source Maps — механизм посложнее, но и возможностей поболее. Использовать пока не довелось, не разбирался. Chrome DevTools его поддерживает (нужно включить в настройках devtools).
Здравствуйте, <Аноним>, Вы писали:
А>Хеш относильно легко подделывается, а генерация пар текстов имеющих один и тот же хеш плевое дело давно уже....
Для SHA1? Ссылку на работу можно?
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Аноним, Вы писали:
I>>Вообще у нас упор на читаемость, поэтому хотелось бы и имена файлов в виде названий классов с неймспейсом. В таком случае легко дебужиться в браузере, не знаю, правда насколько это будет востребовано. А>тогда название и хеш
Это настоящее вредительство и хэппи дебаг, при разработке.
Как только сервер сгенерирует новый хеш, все наши брейкпойнты уедут в небытие. Собственно моим сообщением ниже именно эта проблема и решается.
Здравствуйте, fddima, Вы писали:
F>1. Можно в конец JS файла добавлять такой комментарий: F>
F>//@ sourceURL=my-original-name.js
F>
F>(Возможно надо его оградить переносами строк, был какой-то нюанс не помню уже). Это должно заставить дебаггер отображать этот ресурс именно с этим именем. Chrome и FF это должны поддерживать. Сам я давно этим уже не пользовался, но раньше точно работало.
Не знал, спасибо! Если это работает во ФФ и Хроме, то будет очень даже неплохо.
Здравствуйте, ionoy, Вы писали:
I>Да, мы об этом уже думали. Там вместе с этим надо будет некоторые инфраструктурные изменения сделать, поэтому пока откладывали. I>Сваливать всё в один запрос конечно никуда не годится
Надо это все абстрагировать от самого фреймворка. Сделать удобные способы для вывода на страницу, в файл при компиляции, в script bundler.
Самим городить этот огород с хешами не стоит, ибо оно будет навязывать идеологию и идти вразрез с текущей политикой управления скриптами в проекте. Не стоит сосредотачивать свои усилия на написании своего аналога bundler.
Offtopic:
Я бы посоветовал сейчас сосредоточиться на простом способе подцепить ваш функционал к готовому проекту на любом языке .net (или хотя бы C#) и на раскрутку (seo по "asp.net mvc knockoutjs"). Убежден, что технология выстрелит только при использовании оригинального knockoutjs (либо будучи 100% совместимой с ним). Я понимаю причины которые побудили создать свой велосипед. Но для популярности нужен либо http://knockoutjs.com/ и поддержка MS либо 100% совместимость с ним (и в будущем тоже). Насколько сложно сейчас вернуться на knockoutjs, пусть даже с использованием манкипатчинга?
P.S. у меня на сайте не подсвечивается Source, но подсвечивается Main page source.
Здравствуйте, Ziaw, Вы писали:
Z>Надо это все абстрагировать от самого фреймворка. Сделать удобные способы для вывода на страницу, в файл при компиляции, в script bundler. Z>Самим городить этот огород с хешами не стоит, ибо оно будет навязывать идеологию и идти вразрез с текущей политикой управления скриптами в проекте. Не стоит сосредотачивать свои усилия на написании своего аналога bundler.
Это дело надо серъёзно обдумать, если есть желание помочь, то было бы неплохо. Можно в скайпе конфу создать и обсудить всё.
Нам двоим сейчас и так забот хватает — NN пилит PEG, я в этом время исправляю/дополняю транслятор. После этого можно будет подумать над правильной организацией скриптов.
Z>Offtopic: Z>Я бы посоветовал сейчас сосредоточиться на простом способе подцепить ваш функционал к готовому проекту на любом языке .net (или хотя бы C#) и на раскрутку (seo по "asp.net mvc knockoutjs").
Ну так оно так и работает. Достаточно добавить класс с атрибутом Unit и вернуть его из какого-нибудь экшена.
Z>Убежден, что технология выстрелит только при использовании оригинального knockoutjs (либо будучи 100% совместимой с ним). Я понимаю причины которые побудили создать свой велосипед. Но для популярности нужен либо http://knockoutjs.com/ и поддержка MS либо 100% совместимость с ним (и в будущем тоже). Насколько сложно сейчас вернуться на knockoutjs, пусть даже с использованием манкипатчинга?
А смысл? Никто всё равно не видит, что там под капотом творится, а Нокаут сильно ограничивает нас в трансляции. С новым биндингом у нас практически неограниченные возможности, а раньше постоянно приходилось бороться с Нокаутом, причём частенько безуспешно.
Z>P.S. у меня на сайте не подсвечивается Source, но подсвечивается Main page source.
Надо будет поправить, спс.
Здравствуйте, ionoy, Вы писали:
I>Это дело надо серъёзно обдумать, если есть желание помочь, то было бы неплохо. Можно в скайпе конфу создать и обсудить всё. I>Нам двоим сейчас и так забот хватает — NN пилит PEG, я в этом время исправляю/дополняю транслятор. После этого можно будет подумать над правильной организацией скриптов.
Что тут думать, не надо переизобретать то, что уже есть, работает и все этим пользуются.
I>Ну так оно так и работает. Достаточно добавить класс с атрибутом Unit и вернуть его из какого-нибудь экшена.
отлично
Z>>Убежден, что технология выстрелит только при использовании оригинального knockoutjs (либо будучи 100% совместимой с ним). Я понимаю причины которые побудили создать свой велосипед. Но для популярности нужен либо http://knockoutjs.com/ и поддержка MS либо 100% совместимость с ним (и в будущем тоже). Насколько сложно сейчас вернуться на knockoutjs, пусть даже с использованием манкипатчинга? I>А смысл? Никто всё равно не видит, что там под капотом творится, а Нокаут сильно ограничивает нас в трансляции. С новым биндингом у нас практически неограниченные возможности, а раньше постоянно приходилось бороться с Нокаутом, причём частенько безуспешно.
А над капотом? Биндинги те же? Принципы observable, computed? Возможность создания собственных биндингов? Насколько сложно сделать что-то не очень стандартное, типа свойства которое биндится на класс элемента, не трогая классы уже прописанные в разметке, биндинг даты на календарь? Где про все это прочитать? 95% потенциальных пользователей пробовали нокаут и знают как с ним работать, хорошо бы их не переобучать. Я пока не на 100% в этом уверен, но надо хорошо подумать над этим вопросом. Сейчас нокаут идет в шаблоне MVC проекта и людей, которые его знают становится все больше.
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, ionoy, Вы писали:
I>>Это дело надо серъёзно обдумать, если есть желание помочь, то было бы неплохо. Можно в скайпе конфу создать и обсудить всё. Z>Что тут думать, не надо переизобретать то, что уже есть, работает и все этим пользуются.
Надо решить, как будут формироваться скрипты. Сохранять ли их физически на диск? (Нужно разрешение на запись, что не всегда есть) Прописывать скрипт в поле и возвращать его потом из экшена?
Может быть стоит добавить ключ в конфигурацию?
Z>А над капотом? Биндинги те же? Принципы observable, computed? Возможность создания собственных биндингов? Насколько сложно сделать что-то не очень стандартное, типа свойства которое биндится на класс элемента, не трогая классы уже прописанные в разметке, биндинг даты на календарь? Где про все это прочитать? 95% потенциальных пользователей пробовали нокаут и знают как с ним работать, хорошо бы их не переобучать. Я пока не на 100% в этом уверен, но надо хорошо подумать над этим вопросом. Сейчас нокаут идет в шаблоне MVC проекта и людей, которые его знают становится все больше.
Никаких observable или computed тут нет, это всё осталось в нокауте. Теперь у нас есть произвольный объект, например:
function User(name, age) {
this.name = name;
this.age = age;
this.greeting = function() {
return "Hello, " + name + "!";
}
}
или
var user = {
name: "Peter",
age: 43
this.greeting = function() {
return "Hello, " + name + "!";
}
};
Можно биндиться ко всему, что возвращает значение, будь то функция или поле.
При этом биндинг в HTML выглядит не так как в нокауте, а просто
<span class="greeting" class="$SomeClass">This is greeting: $(User.greeting)</span>
На данный момент, чтобы добавить класс к уже прописанным статически придётся добавлять второй атрибут class, но это просто потому что никто этим не занимался. Там немного парсер надо поправить и всё будет работать.
Здравствуйте, VladD2, Вы писали:
WH>>SHA1 совпадет? VD>Хэш есть хэш. Вероятность может и низка, но она 100% есть.
WH>>А ты знаешь, что GIT использует SHA1 в качестве первичного ключа?
VD>Я в детали не вдавался. Если это так и никаких дополнительных действий не предпринимается, то вероятность дублирования есть. Возможно они тупо добавляют время комита, что делает вероятность совпадения совсем мизерной.
Да она и так, мягко говоря, настолько около нуля, что добавление времени ничего здесь не изменит.
Слабо знаком с Веб девелопментом, но что понял при первом знакомстве — я бы убил создателей Javascript
Все-таки я приверженец статической типизации.
Есть насущный вопрос. Сумбурно но, надеюсь, главная идея будет понятна.
Надо делать программу под мобильные девайсы, очень неплохо подходит PhoneGap, так как переносима между платформами да и слишком больших наворотов в графике не предвидется. В голове витают такие мысли: есть ли возможность вашим фреймворком сделать скрипты, страницы так чтобы я их смог спокойно запихнуть в PhoneGap и наслаждаться девелопментом в Nemerle?
Здравствуйте, Danchik, Вы писали:
D>Здравствуйте, ionoy, Вы писали:
D>Слабо знаком с Веб девелопментом, но что понял при первом знакомстве — я бы убил создателей Javascript D>Все-таки я приверженец статической типизации.
Яваскрипт на самом деле очень интересный язык и для многих вещей очень удобен. Просто Немерле круче
D>Есть насущный вопрос. Сумбурно но, надеюсь, главная идея будет понятна. D>Надо делать программу под мобильные девайсы, очень неплохо подходит PhoneGap, так как переносима между платформами да и слишком больших наворотов в графике не предвидется. В голове витают такие мысли: есть ли возможность вашим фреймворком сделать скрипты, страницы так чтобы я их смог спокойно запихнуть в PhoneGap и наслаждаться девелопментом в Nemerle?
Теоретически это вполне реально. Я правда не пробовал на PhoneGap что-то делать, надо будет посмотреть. Но так как транслятор сейчас универсальный, то не составит труда генерировать какой угодно код.
Сейчас мы постоянно меняем что-то в фреймворке, поэтому нельзя закладываться на какую-либо функциональность. Ну и самое главное, кто-то должен реализовать ту часть, которая будет отвечать за PhoneGap. Если есть желание, то мы поможем всем чем сможем Прикручивать можно и сейчас начать, для этого необязательно ждать пока мы всё исправим.
Здравствуйте, ionoy, Вы писали:
D>>Здравствуйте, ionoy, Вы писали:
D>>Слабо знаком с Веб девелопментом, но что понял при первом знакомстве — я бы убил создателей Javascript D>>Все-таки я приверженец статической типизации. I>Яваскрипт на самом деле очень интересный язык и для многих вещей очень удобен. Просто Немерле круче
Да некоторые вещи интересны но, честно, извините, не люблю языков поощряющих прострел ноги Хочу чтобы ошибки искал компилятор, а не юзверь.
I>Сейчас мы постоянно меняем что-то в фреймворке, поэтому нельзя закладываться на какую-либо функциональность. Ну и самое главное, кто-то должен реализовать ту часть, которая будет отвечать за PhoneGap. Если есть желание, то мы поможем всем чем сможем Прикручивать можно и сейчас начать, для этого необязательно ждать пока мы всё исправим.
Похоже нужно реализовывать интерфейс к Cordova. Пока еще в этом дуб дубом, любая помощь приветствуется. Если тыкните пальцем куда копать — нароем. https://github.com/phonegap/phonegap
Здравствуйте, Danchik, Вы писали:
D>Похоже нужно реализовывать интерфейс к Cordova. Пока еще в этом дуб дубом, любая помощь приветствуется. Если тыкните пальцем куда копать — нароем. D>https://github.com/phonegap/phonegap
Я так понимаю, PhoneGap это просто набор интерфейсов (Cordova). Девелопер создаёт произвольную HTML страницу, и там этими интерфейсами пользуется, так?
Здравствуйте, ionoy, Вы писали:
I>Здравствуйте, Danchik, Вы писали:
D>>Похоже нужно реализовывать интерфейс к Cordova. Пока еще в этом дуб дубом, любая помощь приветствуется. Если тыкните пальцем куда копать — нароем. D>>https://github.com/phonegap/phonegap
I>Я так понимаю, PhoneGap это просто набор интерфейсов (Cordova). Девелопер создаёт произвольную HTML страницу, и там этими интерфейсами пользуется, так?
Если я не ошибаюсь так оно и есть (бегло глянув на содержимое).
Значит, заюзав произвольную Style Library можна начать ваять сайт с использованием вашего фрамеворка?
Здравствуйте, Danchik, Вы писали:
I>>Я так понимаю, PhoneGap это просто набор интерфейсов (Cordova). Девелопер создаёт произвольную HTML страницу, и там этими интерфейсами пользуется, так?
D>Если я не ошибаюсь так оно и есть (бегло глянув на содержимое). D>Значит, заюзав произвольную Style Library можна начать ваять сайт с использованием вашего фрамеворка?
В принципе да, только надо будет для начала добавить возможность генерировать файлы на жёсткий диск. Плюс нужен какой-то механизм для Master Pages.
Первое я собирался делать сразу после того, как полностью допилим PEG (что должно произойти на днях).
Ну и ещё не совсем продумали, как и куда правильней сохранять полученный код, а главное, как его потом отдавать. Хотелось бы разобраться с этим вопросом раз и на всегда, чтобы потом не вносить ломающих изменений в такую важную часть фреймворка.
Здравствуйте, ionoy, Вы писали:
I>Здравствуйте, Danchik, Вы писали:
I>>>Я так понимаю, PhoneGap это просто набор интерфейсов (Cordova). Девелопер создаёт произвольную HTML страницу, и там этими интерфейсами пользуется, так?
D>>Если я не ошибаюсь так оно и есть (бегло глянув на содержимое). D>>Значит, заюзав произвольную Style Library можна начать ваять сайт с использованием вашего фрамеворка?
I>В принципе да, только надо будет для начала добавить возможность генерировать файлы на жёсткий диск. Плюс нужен какой-то механизм для Master Pages. I>Первое я собирался делать сразу после того, как полностью допилим PEG (что должно произойти на днях).
Ну что ж, для меня это будет просто киллер фича
I>Ну и ещё не совсем продумали, как и куда правильней сохранять полученный код, а главное, как его потом отдавать. Хотелось бы разобраться с этим вопросом раз и на всегда, чтобы потом не вносить ломающих изменений в такую важную часть фреймворка.
Надеюсь это случится в этом году )))
Теперь вопрос, есть ли какой-то механизм задания типизированного интерфейса к жаваскрипту? Например с Cordova. Имееется ввиду что-то подобное:
namespace Cordova
{
[JsIntf]
module Camera
{
public GetPicture(success : Action<string>, error : Action<string>) : void;
{
// черт его знает что, чтобы при трансляции генерило вызов camera.getPicture(successCallback, errorCallback)
}
}
}