compiler bug
Aug. 12th, 2013 03:01 pm
кроме всего прочего, попалась странная задача. есть, кхм, глючный оптимизирующий компилятор (точнее, кросс-транслятор). в него суется арифметика и он ее иногда неправильно оптимизирует. например промежуточные результаты получаются шириной в регистр а не шириной в байт. как это дебажить? )
или таки bite the bullet и продолжить составлять //gist.github.com/wizzard0/6189922?
потому что кросстрансляторы я люблю, и это не первый раз, и похоже далеко не последний.
а еще мне надо дописать спеку на код, написанный человеком А (не мной, но по моей просьбе), чтобы с ним мог интероперировать код, написанный человеком Б. тоже веселое занятие...
...а также иллюзию того, что историю и куки можно чистить, а от browser fingerprinting - уйти.
Я нашел чудесный сайт, на который можно аплодить картинки (и смотреть эти картинки, естественно), при этом ни аплоад, ни даунлоад не показывается в network debugger'e :)
HTML5 рулит, да. Никаких плагинов.
Это в дополнение к antidebug tricks, которые в JS тоже возможны, да)
P.S. я сайт пока не показываю потому что ищу, можно ли этой техникой раскопать внутренний IP посетителя и/или его айпи "до VPN"
UPDATE: PoC - http://wizzard.dreamwidth.org/306493.html
typescript
Oct. 2nd, 2012 12:04 pmЧто скажете? Embrace, extend, extinguish? Или хорошее дело?
Имхо, с точки зрения scalability кода, который на этом можно написать - явно хорошее. По крайней мере, лучше Dart и прочих попыток сделать из JS джаву.
Но вот не сломали ли они Good Parts (в смысле, лиспообразие и совместимость с прототипным программированием) - надо внимательно посмотреть.
век живи, век учись (гуглить)
Jul. 1st, 2012 03:31 amИтак, если вас тоже задолбало писать JS под разные браузеры, то фигни, которые патчат поведение стандартных обьектов до стандартов поновее, называются shims, а сборки таких штук, накатывающие их группами по много, называются polyfills.
Соответственно, искать надо "недостающая фича polyfill" или "недостающая фича shim".
Еще можно сходить сюда http://www.calormen.com/polyfill/ или сюда - https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills
Еще 10 лет назад ничего из этого не имело смысла. А еще через 20-50 уже не будет иметь. Век живи, век учись...
Hello World –> 17259 строк кода, по сравнению с которым Java кажется верхом компактности и скорости.
Подробнее можно читать тут.
Лично меня удивил не размер stdlib сам по себе, а то, что они пытаются:
- компилировать все это в рантайме (мобильные устройства, привет)
- без каких-либо оптимизаций (черт, весь мой JS обфускатор весит меньше, могли бы уже и воткнуть какой-нибудь простой инлайнер, тем более, что у них есть Closure Compiler)
- вообще без какой-либо оглядки на Javascript: The Good Parts и прочие гайдлайны
- без совместимости с существующими JS библиотеками
короче, это ужас и кошмар, *любой* из компиляторов с List of languages that compile to JS работает лучше.
Окей, вначале Dalvik, теперь Dart, что будет следующим? :)
Remote JS Debugging
Apr. 18th, 2011 04:03 amhttp://jsconsole.com и их Remote Debugging – это просто волшебная штука, если хочется дебажить приложение на телефоне!
WSH Javascript microrunner.
Dec. 8th, 2010 08:14 pmUsable instead of Rhino Shell or v8-shell on any Windows PC. Provides (very) basic file IO and include functionality. Download: run.js
I used it to build and run OMeta-based ES5 parser from ES-LAB.
N:\nya\the-one\parsers>cscript //NoLogo run.js es-lab-jsparser-tests.js
Loading N:\nya\the-one\parsers\es-lab-jsparser-tests.js...
Loading N:\nya\the-one\parsers\load-ometa.js...
Loading N:\nya\ometa-js\lib.js...
Loading N:\nya\ometa-js\ometa-base.js...
Loading N:\nya\ometa-js\parser.js...
Loading N:\nya\ometa-js\bs-js-compiler.js...
Loading N:\nya\ometa-js\bs-ometa-compiler.js...
Loading N:\nya\ometa-js\bs-ometa-optimizer.js...
Loading N:\nya\ometa-js\bs-ometa-js-compiler.js...
Loading N:\nya\es-lab\unicode.js...
Loading N:\nya\es-lab\es5parser.js...
Loading N:\nya\es-lab\json2.js...
Loading N:\nya\es-lab\unit.js...
Loading N:\nya\es-lab\parsertests.js...
[Lexer done. Passed: 190 Failed: 0 Total: 190]
[Parser done. Passed: 1186 Failed: 0 Total: 1186]
N:\nya\the-one\parsers> UPD: Moved to http://tvori.info/wsh-runner/
flexibility vs security
Aug. 7th, 2010 02:39 am(захотелось мыслю написать и сюда тоже)
еще одна причина трепыханий с собственным JS рантаймом - потому что хочется сделать подобие Application Domains из .NET для JS, чтобы компоненты могли что угодно творить. ибо без eval (или кодогенерации, как кому угодно), все-таки, львиная доля привлекательности динамических языков теряется.
плюс, когда рантайм свой, можно делать как hard так и soft resource quotes, и попробовать все-таки осилить его сериализацию и сделать тот самый holy grail ака мигрирующие в пространстве (между машинами) и во времени (сейв-лоад) аппликухи.
а йаваскрипт, а не другой язык, просто потому, что популярный.