<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: JavaScript: безопасный код</title>
	<atom:link href="http://john.5070.info/2009/10/javascript-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d1%8b%d0%b9-%d0%ba%d0%be%d0%b4/feed/" rel="self" type="application/rss+xml" />
	<link>http://john.5070.info/2009/10/javascript-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d1%8b%d0%b9-%d0%ba%d0%be%d0%b4/</link>
	<description>:-)</description>
	<lastBuildDate>Thu, 25 Feb 2010 08:02:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: RedChrom</title>
		<link>http://john.5070.info/2009/10/javascript-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d1%8b%d0%b9-%d0%ba%d0%be%d0%b4/comment-page-1/#comment-185</link>
		<dc:creator>RedChrom</dc:creator>
		<pubDate>Fri, 09 Oct 2009 08:30:47 +0000</pubDate>
		<guid isPermaLink="false">http://john.5070.info/?p=193#comment-185</guid>
		<description>Ocamljs, там не хватает некторых dom properties, проблемы с юникодом и так по мелочи.</description>
		<content:encoded><![CDATA[<p>Ocamljs, там не хватает некторых dom properties, проблемы с юникодом и так по мелочи.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Lepikhin</title>
		<link>http://john.5070.info/2009/10/javascript-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d1%8b%d0%b9-%d0%ba%d0%be%d0%b4/comment-page-1/#comment-184</link>
		<dc:creator>John Lepikhin</dc:creator>
		<pubDate>Fri, 09 Oct 2009 07:53:58 +0000</pubDate>
		<guid isPermaLink="false">http://john.5070.info/?p=193#comment-184</guid>
		<description>Что патчил?</description>
		<content:encoded><![CDATA[<p>Что патчил?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: RedChrom</title>
		<link>http://john.5070.info/2009/10/javascript-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d1%8b%d0%b9-%d0%ba%d0%be%d0%b4/comment-page-1/#comment-183</link>
		<dc:creator>RedChrom</dc:creator>
		<pubDate>Fri, 09 Oct 2009 07:32:16 +0000</pubDate>
		<guid isPermaLink="false">http://john.5070.info/?p=193#comment-183</guid>
		<description>Btw, если кто собирётся писать что-то серьёзное на ocamljs то ко мне можно обращаться за патчами, ибо хуй знает когда в апстриме их закоммитят :)</description>
		<content:encoded><![CDATA[<p>Btw, если кто собирётся писать что-то серьёзное на ocamljs то ко мне можно обращаться за патчами, ибо хуй знает когда в апстриме их закоммитят :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: RedChrom</title>
		<link>http://john.5070.info/2009/10/javascript-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d1%8b%d0%b9-%d0%ba%d0%be%d0%b4/comment-page-1/#comment-182</link>
		<dc:creator>RedChrom</dc:creator>
		<pubDate>Fri, 09 Oct 2009 07:30:55 +0000</pubDate>
		<guid isPermaLink="false">http://john.5070.info/?p=193#comment-182</guid>
		<description>Всё-таки с ocamljs есть проблемы с типами, точнее в его интерфейсе к внешнему миру. Ибо некоторые js функции могут вернуть null, вместо element и это дело нужно явно чекать. Тем не менее если обвернуть более высокоуровневый и безопасный интерфейс - жить можно.
&gt;бОльшая часть скрипта всё равно будет алгоритмом, RPC и т.д.
Вот главная минус всяких jQuery, это предположение, что весь DOM свёрстан ручками, а надо только свистелки и перделки добавлять по идентификаторам. У меня весь DOM из js строиться и еботни со этим DOM дофига. Манипуляции с DOM из ocaml очень не привычны, но привыкаешь и ошибок действительно получается меньше.</description>
		<content:encoded><![CDATA[<p>Всё-таки с ocamljs есть проблемы с типами, точнее в его интерфейсе к внешнему миру. Ибо некоторые js функции могут вернуть null, вместо element и это дело нужно явно чекать. Тем не менее если обвернуть более высокоуровневый и безопасный интерфейс &#8211; жить можно.<br />
&gt;бОльшая часть скрипта всё равно будет алгоритмом, RPC и т.д.<br />
Вот главная минус всяких jQuery, это предположение, что весь DOM свёрстан ручками, а надо только свистелки и перделки добавлять по идентификаторам. У меня весь DOM из js строиться и еботни со этим DOM дофига. Манипуляции с DOM из ocaml очень не привычны, но привыкаешь и ошибок действительно получается меньше.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Lepikhin</title>
		<link>http://john.5070.info/2009/10/javascript-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d1%8b%d0%b9-%d0%ba%d0%be%d0%b4/comment-page-1/#comment-181</link>
		<dc:creator>John Lepikhin</dc:creator>
		<pubDate>Wed, 07 Oct 2009 14:53:21 +0000</pubDate>
		<guid isPermaLink="false">http://john.5070.info/?p=193#comment-181</guid>
		<description>Теперь сюрприз: сделать логическую ошибку на языке с хорошо развитой системой типов очень сложно :) С использованием OUnit (система для написания юнит-тестов) ошибку допустить предельно сложно. С проектированием алгоритмов в каком-нибудь Coq и вовсе невозможно.

К слову, в oProxy было за всю историю лишь 2-3 логических ошибки(!). И то, саппорт их не видел. Их заметил только я т.к. они были минорными. А то, из-за чего имел проблемы саппорт — это не логические ошибки, а ошибки в моём ДНК:
 1. Апрельская проблема: не надо использовать POSIX-потоки. Они очень тяжёлые.
 2. Сентябрьские дауны: плохо давать процессу ничем не ограниченное количество файлов. В драке за FD процесса и ОС всегда почему-то побеждает ОС.

Согласись, обе ошибки к алгоритмической логике отношения не имеют.

Касаетельно браузерной совместимости. Так ведь и на окамле точно так же всё можно описать. Тем более, что таких узких мест на большой скрипт обычно очень мало: бОльшая часть скрипта всё равно будет алгоритмом, RPC и т.д.</description>
		<content:encoded><![CDATA[<p>Теперь сюрприз: сделать логическую ошибку на языке с хорошо развитой системой типов очень сложно :) С использованием OUnit (система для написания юнит-тестов) ошибку допустить предельно сложно. С проектированием алгоритмов в каком-нибудь Coq и вовсе невозможно.</p>
<p>К слову, в oProxy было за всю историю лишь 2-3 логических ошибки(!). И то, саппорт их не видел. Их заметил только я т.к. они были минорными. А то, из-за чего имел проблемы саппорт — это не логические ошибки, а ошибки в моём ДНК:<br />
 1. Апрельская проблема: не надо использовать POSIX-потоки. Они очень тяжёлые.<br />
 2. Сентябрьские дауны: плохо давать процессу ничем не ограниченное количество файлов. В драке за FD процесса и ОС всегда почему-то побеждает ОС.</p>
<p>Согласись, обе ошибки к алгоритмической логике отношения не имеют.</p>
<p>Касаетельно браузерной совместимости. Так ведь и на окамле точно так же всё можно описать. Тем более, что таких узких мест на большой скрипт обычно очень мало: бОльшая часть скрипта всё равно будет алгоритмом, RPC и т.д.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yumaa</title>
		<link>http://john.5070.info/2009/10/javascript-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d1%8b%d0%b9-%d0%ba%d0%be%d0%b4/comment-page-1/#comment-180</link>
		<dc:creator>yumaa</dc:creator>
		<pubDate>Wed, 07 Oct 2009 14:08:01 +0000</pubDate>
		<guid isPermaLink="false">http://john.5070.info/?p=193#comment-180</guid>
		<description>имею некоторый опыт по написанию скриптов на javascript, и имхо валидность кода ещё пол-дела. и если код на ocaml очарователен по виду, но получившийся в результате ocamljs скрипт - страшный как моя жизнь. логическую ошибку искать в таком... при одной мысли в дрожь бросает :) или ещё чего хуже, под разные браузеры править, чтобы работало одинаково.</description>
		<content:encoded><![CDATA[<p>имею некоторый опыт по написанию скриптов на javascript, и имхо валидность кода ещё пол-дела. и если код на ocaml очарователен по виду, но получившийся в результате ocamljs скрипт &#8211; страшный как моя жизнь. логическую ошибку искать в таком&#8230; при одной мысли в дрожь бросает :) или ещё чего хуже, под разные браузеры править, чтобы работало одинаково.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
