PDA

View Full Version : Конец Java Applet-ов



Alex_3112
01-15-2014, 03:41 PM
Вчера Oracle выпустил новую версию Java - 7u51
Среди нововведений - то, что любой Java Applet, запускаемый в браузере, должен быть теперь "подписан" официальным сертификатом; self-signed applets больше не могут запускаться вообще. С одной стороны, это полезная забота о безопасности пользователей. С другой стороны, полный облом для изучаюших Java и энтузиастов, которые не хотят покупать сертификаты только для того, чтобы поиграться и поэкспериментировать на своем компьютере.

Я лично нахожусь на распутье и возможно перейду в конфессию Javascript.

Java всегда была бесплатной для энтузиастов, и введение оплаты, тем более таким "ползучим" образом, меня совсем не радует.

Lor
01-15-2014, 05:22 PM
Среди нововведений - то, что любой Java Applet, запускаемый в браузере, должен быть теперь "подписан"
Так и раньше, юзер должен быть давать разрешение на запуск аплета. По крайней мере, когда-то я хотел на один сайт аплет поставить, но потом, разобравшись, решил, что юзверей больше распугаю, чем пользы от него будет.

Welcome to our club "Javascript"!

P.S. Правда большинство новоиспеченных идиотов предпочитают грузить юзеру 200Кб jQuery, чем написать три строчки кода на Javascript. Что меня бесит - это когда на стэковерфлоу задают вопрос о Javascript, тут же сопливые тупые обезьяны начинают строчить ответы о том, как это все красиво на jquery. "Поубывав бы!!!" :30:

Olezhik
01-15-2014, 05:35 PM
Помню было дело, 1995 год...

Щяс время уже не то, [JavaScript] на столько сильный язык что никакиий плагины типа [Java Applet] нафиг не нужны. Посмотрите какую системы я разработал для [CBS] на [CBS March Madness 2013]. Работает везде [HTML5 JavaScript]; андрой, айпфон, любые браузеры, фаерфакс,хроме, [ie]. И все с помощью [JavaScript], [back end node.js and mangoDB].

Пока игры проходили милионы пользавателей пользавались этой системой одновремено. Ставили ставки на любимые команды приблезительно по 100 тысяч ставок в миниту. Никакая другая система невыдержала бы такого напряга только [JavaScript] без особых нагрузок выдовала и принемала ставки.

В этом году будут эту же прогу использовать даже переделовать не собераюца так что если кому интереснто когда игры начнуться заглените ;)


75743

Olezhik
01-15-2014, 05:41 PM
Так и раньше, юзер должен быть давать разрешение на запуск аплета. По крайней мере, когда-то я хотел на один сайт аплет поставить, но потом, разобравшись, решил, что юзверей больше распугаю, чем пользы от него будет.

Welcome to our club "Javascript"!

P.S. Правда большинство новоиспеченных идиотов предпочитают грузить юзеру 200Кб jQuery, чем написать три строчки кода на Javascript. Что меня бесит - это когда на стэковерфлоу задают вопрос о Javascript, тут же сопливые тупые обезьяны начинают строчить ответы о том, как это все красиво на jquery. "Поубывав бы!!!" :30:
ты возми и напешы в три строчки кода чтоб работал твой код везде [ie,ff,chrome, opera, iphone, android,etc.....]

Lor
01-15-2014, 05:43 PM
Посмотрите какую системы я разработал для [CBS] на [CBS March Madness 2013].]Это что? Россия глазами зарубежных гостей?

Ты своими словами раскажи.



ты возми и напешы в три строчки кода чтоб работал твой код везде [ie,ff,chrome, opera, iphone, android,etc.....]
То, что мне надо и так везде работает. Уже новые браузеры давно стали вменяемые.

Olezhik
01-15-2014, 05:58 PM
Это что? Россия глазами зарубежных гостей?

Ты своими словами раскажи.



То, что мне надо и так везде работает. Уже новые браузеры давно стали вменяемые.

ААх ну если ты только для себя проги делаеш, тогда да, дествительно в три строчки можно уложиться ;)

Lor
01-15-2014, 06:06 PM
ААх ну если ты только для себя проги делаеш, тогда да, дествительно в три строчки можно уложиться ;)Да. Только самое необходимое. Заманчиво, конечно на компьютеры клиентов свалить часть, но я сторонник здравого смысла. В чем лишний раз убеждаюсь, когда пытаюсь открыть какого-нибудь "корпоративного монстра" на первом iPad, t-mobile.com или comcast.com, например. Я бы вообще вешал разработчиков, которые делают сайты по 1000+ Kb. весом.

P.S. Я из "старой гвардии" - ненавижу frameworks!

crazy-mike
01-15-2014, 06:22 PM
Вчера Oracle выпустил новую версию Java - 7u51
Среди нововведений - то, что любой Java Applet, запускаемый в браузере, должен быть теперь "подписан" официальным сертификатом; self-signed applets больше не могут запускаться вообще. С одной стороны, это полезная забота о безопасности пользователей. С другой стороны, полный облом для изучаюших Java и энтузиастов, которые не хотят покупать сертификаты только для того, чтобы поиграться и поэкспериментировать на своем компьютере.

Я лично нахожусь на распутье и возможно перейду в конфессию Javascript.

Java всегда была бесплатной для энтузиастов, и введение оплаты, тем более таким "ползучим" образом, меня совсем не радует.
Open JDK есть. Там всем "насрать" на Oracle. :111:
( и java runtime там в нескольких разновидностях существует - совсем не "от Oracle" )
Ну а Android SDK нормально работает на Linux с Open JDK 1.7

P.S. И на Oracle можно просто не обращать внимания после того , что они "учудили" с Java FX.
Да и больше 10ти лет ведь Java совсем даже не "написано однажды - работает везде". Скорее - "написано как получилось под Eclipse, и работает если запустится". :111:

Olezhik
01-15-2014, 07:16 PM
Да. Только самое необходимое. Заманчиво, конечно на компьютеры клиентов свалить часть, но я сторонник здравого смысла. В чем лишний раз убеждаюсь, когда пытаюсь открыть какого-нибудь "корпоративного монстра" на первом иПад, т-мобиле.цом или цомцаст.цом, например. Я бы вообще вешал разработчиков, которые делают сайты по 1000+ Кб. весом.

П.С. Я из "старой гвардии" - ненавижу [frameworks]!

ххммм Само учка что-ли? ;)

Ну ты и замохнулся на [frameworks]... Всё равно что сказать, "Ненавижу калёса заводцкий, предпочитаю сам делать!"

http://en.wikipedia.org/wiki/Software_framework

Ангел
01-15-2014, 08:26 PM
P.S. Правда большинство новоиспеченных идиотов предпочитают грузить юзеру 200Кб jQuery, чем написать три строчки кода на Javascript. Что меня бесит - это когда на стэковерфлоу задают вопрос о Javascript, тут же сопливые тупые обезьяны начинают строчить ответы о том, как это все красиво на jquery. "Поубывав бы!!!" :30:
gzip зачем ? :116:



То, что мне надо и так везде работает. Уже новые браузеры давно стали вменяемые.
Видимо ты ИЕ не видел :111: Он все невменяемее и невменяемее помоему.

Lor
01-15-2014, 11:42 PM
ххммм Само учка что-ли? ;)

Ну ты и замохнулся на [frameworks]... Всё равно что сказать, "Ненавижу калёса заводцкий, предпочитаю сам делать!"Можно сказать, что самоучка. Я когда учился, кроме фортрана на перфокартах ни о чем не знали ... :)

А насчет "колес", то я не один такой. Полно людей пишут и на С и даже на асемблере. Я предпочитаю perl. А для perl-а юзать framework - это для ремесленников.

Зачем мне 200К jquery + 200K Bootstrap-а + еще какие-то там "плюшки", если я могу, без напряга, запихнуть страницу в 25..40К?

Это корпоративным "кодерам" надо готовое юзать, пусть оно и в 10 раз больше ресурсов жрет, зато, если что, можно все траблы свалить на гитхаб. :)

Olezhik
01-16-2014, 12:50 AM
Можно сказать, что самоучка. Я когда учился, кроме фортрана на перфокартах ни о чем не знали ... :)

А насчет "колес", то я не один такой. Полно людей пишут и на С и даже на асемблере. Я предпочитаю перл. А для перл-а юзать фрамещорк - это для ремесленников.

Зачем мне 200К йэуеры + 200К Боотстрап-а + еще какие-то там "плюшки", если я могу, без напряга, запихнуть страницу в 25..40К?

Это корпоративным "кодерам" надо готовое юзать, пусть оно и в 10 раз больше ресурсов жрет, зато, если что, можно все траблы свалить на гитхаб. :)

Извени, не в обиду мне будет сложно тебе все обяснить, но я попытаюсь если тебе интерестно. Если же тебе не интерестно можеш перестать читать мой пост на этой строке дальше будет еше нуднея.

Ты слишком далёк от современого вэб-програмированья.....

К примеру, простое задание. Нарисовать на икране обек, заставить его двигать мышкой, изменять размер этого обекта и выдовать эту всю информацию об обекте допустим на икран.

С нуля выполнить такое займет да ещё и протестировать даже такому легендароному програмисту как ты, займет не один час. Ведь этот обект должен работать не только в ИЕ, а во всех остальных бразузерах. Ещё же существуют другий деваисы, телефоны, планшэты телевизоры с вмантироваными браузарами. А ты видел браузер в Самсунг телевизоре? Да это просто убиство, под него писать когда на [javasciprt] можно сразу веситса. Но не будем о страшном. За нас об этом всём уже позаботилась библиотека [jQuery] и это простое задание с помощю [jQuery] может выполнить любой начинающи програмист за 20$ в чяс ну или за 30$ в течений 10 минут. А вот твой час как я понимаю очень дорог так как у тебя огромны опыт за плечями [c, fortran] перфо карты. Теперь представь сколько будет стоить компаний когда ты будеш выполнять любое задание и представь как долго ты будеш выполнять это задание по сравнению с начинающим програмистами. Да так все клиенты разбегуца, зачем им ждать месятс а то и два пока ты зделаеш проект? Если такой же самы проект могут выполнить другий програмисты за короткии сроки и уже чут ли не на следущи день клиенты могут начять пользаваться програмой и прога начнет сразу себя отбивать.

Не знаю если я понятно обяснил, ну надеюсь что смысл ты уловил. Только пожалуста давай не будем спорить потому что этот спор ни к чему не приведет. Я тебе просто привел пример из жизни.

Кстати вот эти кода для того задание каторое я упомянул. Теперь подумай сколько времени тебе бы заняло это делать с нуля....


[
$( "#objName" ).resizable();
$( "#objName" ).draggable();

http://jqueryui.com/resizable/
http://jqueryui.com/draggable

crazy-mike
01-16-2014, 02:04 AM
Видимо ты ИЕ не видел :111: Он все невменяемее и невменяемее помоему.
Google Chrome тоже хронической вменяемостью не отличается. :111:

Olezhik
01-16-2014, 03:14 AM
Гоогле Чроме тоже хронической вменяемостью не отличается. :111:

Мы щяс трёх мерны движок используем [WebGL] только в Гугл Хроме он болие не мения работает. Во всёх остальных современых браузарах только трёх мерны кубик можно запустить...

crazy-mike
01-16-2014, 03:30 AM
Мы щяс трёх мерны движок используем [WebGL] только в Гугл Хроме он болие не мения работает. Во всёх остальных современых браузарах только трёх мерны кубик можно запустить...
В Google Chrome неправильно HTML5-видео отрабатывается ( события "end" и т.д. не всегда происходят ) - под Linux.
Поскольку он "поймался" на видео - то есть подозрения , что и в других случаях он "глючит".
А под Android 4.0.1 на нём тупо глючит рендеринг страниц (в самых последних версиях. Они , кажется , думают , что у всех стоит Android 4.4 ).

Olezhik
01-16-2014, 12:23 PM
В Google Chrome неправильно HTML5-видео отрабатывается ( события "end" и т.д. не всегда происходят ) - под Linux.
Поскольку он "поймался" на видео - то есть подозрения , что и в других случаях он "глючит".
А под Android 4.0.1 на нём тупо глючит рендеринг страниц (в самых последних версиях. Они , кажется , думают , что у всех стоит Android 4.4 ).

Да у меня тоже лажа с видео была на кроме...

crazy-mike
01-16-2014, 01:08 PM
Да у меня тоже лажа с видео была на кроме...
А ещё самая главная шиза у всех этих браузеров - web applications , потому что для этой хреновины в каждом бразуре , который такую фишку поддерживает , packaging для web application ( zip-архив страничек и скриптов вместе с xml-файлом манифеста ) делается чуть иначе чем во всех остальных.
:111:
Соответственно , JavaScript не гарантирует этой самой portability. О таких нюансах как разница между addEventListener и attachEvent - уже можно и не вспоминать.

реднек
01-17-2014, 01:45 PM
Мы щяс трёх мерны движок используем [WebGL] только в Гугл Хроме он болие не мения работает. Во всёх остальных современых браузарах только трёх мерны кубик можно запустить... хм. Фф хвастался переносон unreal engine на asm.js, который для рендерига webgl пользует.

Olezhik
01-17-2014, 07:19 PM
хм. Фф хвастался переносон unreal engine на asm.js, который для рендерига webgl пользует.

Щяс тебе Лор раскажит что он может заменить [asm.js] тримя строчками своего кода. Ты что видео игры делаеш?

реднек
01-17-2014, 09:10 PM
Щяс тебе Лор раскажит что он может заменить [asm.js] тримя строчками своего кода. Ты что видео игры делаеш?

Нет, в новостях где то мелькало.

profAleks
01-18-2014, 03:20 AM
Я лично нахожусь на распутье и возможно перейду в конфессию Javascript.

В секту Java-Script ?
:111:

crazy-mike
01-18-2014, 03:24 AM
В секту Java-Script ?
:111:
В клуб садомазохистов "Java для Adroid" :111:

Alex_3112
01-18-2014, 09:49 AM
Копаюсь в Javascript.
Я уже неплохо с ней был знаком, но только в части визуальных примочек.
В вычислительной части похоже, что все посложнее, чем Java - например нет типа Long, и библиотеки нужно искать самому, в то время как в Java многие вещи уже давно включены в Core Java.
Ну и отсутствие строгой типизации непривычно.

crazy-mike
01-18-2014, 10:05 AM
Копаюсь в Javascript.
Я уже неплохо с ней был знаком, но только в части визуальных примочек.
В вычислительной части похоже, что все посложнее, чем Java - например нет типа Long, и библиотеки нужно искать самому, в то время как в Java многие вещи уже давно включены в Core Java.
Ну и отсутствие строгой типизации непривычно.
Шиза в том , что JavaScript очень сильно похож на Perl ( особенно там , где instantiated objects создаются. В JavaScript такое тоже можно делать ).
А никакие "библиотеки" там особо и не нужны.

Alex_3112
01-18-2014, 10:20 AM
А никакие "библиотеки" там особо и не нужны.

Ну что значит не нужны - а как работать например с long и еще более крупными числами (float не предлагать :) )?

crazy-mike
01-18-2014, 10:35 AM
Ну что значит не нужны - а как работать например с long и еще более крупными числами (float не предлагать :) )?
Ну какой идиот будет заниматься "интенсивными вычислениями" на интерпретируемом языке? :111:
( int там как раз очень даже long в JavaScript. Посмотри на "объект" Math )

Alex_3112
01-18-2014, 10:40 AM
Ну какой идиот будет заниматься "интенсивными вычислениями" на интерпретируемом языке? :111:
( int там как раз очень даже long в JavaScript. Посмотри на "объект" Math )

Дык, не нужно было заниматься - я бы и не открывал тему. Интенсивность вычислений у меня не высокая, но потеря точности совершенно неприемлема.
А Math разве оперирует с int?

crazy-mike
01-18-2014, 10:43 AM
Дык, не нужно было заниматься - я бы и не открывал тему. Интенсивность вычислений у меня не высокая, но потеря точности совершенно неприемлема.
А Math разве оперирует с int?
Ну глянь , что они там делают. Просто int уже давно от long не отличается. И даже от long long.
Я этот Java-его-Скрипт больше для создания динамического контента на веб-страничках использую , но совсем не для того чтобы на нём что-то считать.

Alex_3112
01-18-2014, 10:59 AM
Ну глянь , что они там делают. Просто int уже давно от long не отличается. И даже от long long.
Я этот Java-его-Скрипт больше для создания динамического контента на веб-страничках использую , но совсем не для того чтобы на нём что-то считать.

Я тоже так использую. Но в некоторых случаях стоит задача, чтобы все работало с самого примитивного хостинга или локального файла. Соответственно полагаться приходится только на вычисления внутри браузера.
Math, насколько я понимаю, использует данные с плавающей точкой. И можно ли вообще javascript заставить использовать целочисленную математику, я еще не разобрался.

crazy-mike
01-18-2014, 01:35 PM
Я тоже так использую. Но в некоторых случаях стоит задача, чтобы все работало с самого примитивного хостинга или локального файла. Соответственно полагаться приходится только на вычисления внутри браузера.
Math, насколько я понимаю, использует данные с плавающей точкой. И можно ли вообще javascript заставить использовать целочисленную математику, я еще не разобрался.
2**10 = 1000 , 2**30 = миллиард. И тебе целых 32битных чисел не хватает? :101: Хотя они там 64битные на 64битных платформах.

Alex_3112
01-18-2014, 09:01 PM
2**10 = 1000 , 2**30 = миллиард. И тебе целых 32битных чисел не хватает? :101: Хотя они там 64битные на 64битных платформах.

В том-то и дело, что не хватает. 64 битных пока хватает, но могут возникнуть ситуации, когда их тоже хватать не будет. В Java есть наработанные библиотека для работы с числами с произвольной точностью.
Браузеры пока что все равно 32-битные, но даже если пойдут 64-битные, платформенная неопределенность - это не то, от чего бы хотелось зависеть. В обычной Java все-таки int - это 32 бита, а long - это 64 бита на любой платформе.

реднек
01-18-2014, 09:35 PM
В том-то и дело, что не хватает. 64 битных пока хватает, но могут возникнуть ситуации, когда их тоже хватать не будет. В Java есть наработанные библиотека для работы с числами с произвольной точностью.
Браузеры пока что все равно 32-битные, но даже если пойдут 64-битные, платформенная неопределенность - это не то, от чего бы хотелось зависеть. В обычной Java все-таки int - это 32 бита, а long - это 64 бита на любой платформе.

https://github.com/MikeMcl/big.js/

Lor
01-21-2014, 12:28 PM
Щяс тебе Лор раскажит что он может заменить [asm.js] тримя строчками своего кода.
Да ладно. :)

Посмотрел сегодня чего достигла хваленая jQuery в области ajax-подобной загрузки файлов на сервер ... "пичалька" ... IE10+ :119: , если с "понтами", а так ... все, что я написал 10 лет назад в "три строчки кода" актуально и теперь. :)

crazy-mike
01-21-2014, 01:22 PM
Да ладно. :)

Посмотрел сегодня чего достигла хваленая jQuery в области ajax-подобной загрузки файлов на сервер ... "пичалька" ... IE10+ :119: , если с "понтами", а так ... все, что я написал 10 лет назад в "три строчки кода" актуально и теперь. :)
Если уже совсем откровенно , то не особо понятно , а зачем jQuery вообще нужно. Особенно если глубоко до лампочки IE и всё делается для Android и Linux. Конечно же между addEventListener и attachEvent есть довольно ощутимая разница. Но это вполне преодолимо как раз проверкой if(window.attachEvent) ... :111:

Olezhik
01-21-2014, 05:29 PM
Если уже совсем откровенно , то не особо понятно , а зачем йЭуеры вообще нужно. Особенно если глубоко до лампочки ИЕ и всё делается для Андроид и Линух. Конечно же между аддЕвентЛистенер и аттачЕвент есть довольно ощутимая разница. Но это вполне преодолимо как раз проверкой иф(щиндощ.аттачЕвент) ... :111:

Говорили, балакали силы да и за плакали.

Я же привел пример с обьектом катори можно двигать по икрану и менять его размер. И покозал как лехко это можно делаетьса с помощю [jQuery] тремя строчками. Кстати когда работают во ввех браузерах.

тоже самое можно написать с нуля ну никогда в жизни в три строчки в течений 30 сикунд.

[jQuery] нужен если что-то нужно срочно и времени нет размусоливать одну и туже фигну месетсами.

crazy-mike
01-21-2014, 05:44 PM
Говорили, балакали силы да и за плакали.

Я же привел пример с обьектом катори можно двигать по икрану и менять его размер. И покозал как лехко это можно делаетьса с помощю [jQuery] тремя строчками. Кстати когда работают во ввех браузерах.

В UC Browser тоже? А в Dolphin Browser? :111:
А в Dolphin Mini ??????
А в Opera Mini ???????

А в lynx????????????????????????????

XCNY
01-21-2014, 06:47 PM
Вы программёры как не от мира сего.Проше нада быть, в изьяснениях,хотя бы.

crazy-mike
01-21-2014, 07:14 PM
Вы программёры как не от мира сего.Проше нада быть, в изьяснениях,хотя бы.
lynx - браузер , который работает в текстовом режиме. Никаких картинок. И никакого JavaScript вообще. Соответственно и jQuery там не работает. :111:
Ну и целый "класс" мини-браузеров для смартфонов ( половина всей интерфейной мути там вообще на удалённом сервере транслируется в что-то "очень простое" ) - там drug-n-drop просто особого смысла не имеет из-за очень маленького экрана. Кроме того в Opera Mini есть режим "мобильный вид" - там такое с "окошками" делается ...:111:

Olezhik
01-22-2014, 12:17 AM
Вы программёры как не от мира сего.Проше нада быть, в изьяснениях,хотя бы.

так я вроде по человечески говорю, без никаких наворотов.

Serge7
01-22-2014, 12:22 AM
Вы программёры как не от мира сего.Проше нада быть, в изьяснениях,хотя бы.

Программеры - хороший народ. I Love Them! :) :110:

crazy-mike
01-22-2014, 03:28 AM
так я вроде по человечески говорю, без никаких наворотов.
Просто все эти "фремуорки" часто не успевают за "новыми платформами".

Olezhik
01-22-2014, 07:10 PM
Просто все эти "фремуорки" часто не успевают за "новыми платформами".

Ну нашёт чясто это ты преувеличиваеш....

crazy-mike
01-23-2014, 04:27 AM
Ну нашёт чясто это ты преувеличиваеш....
За Android-ом не успели. :101:

Olezhik
01-23-2014, 04:55 AM
За Андроид-ом не успели. :101:

ххм у меня и у моих программистов никаких проблем с Андройдом небыло. К примеру [Samsung] работает как чясты. Может старые Андройды в каторых лиметированые браузары.

crazy-mike
01-23-2014, 05:17 AM
ххм у меня и у моих программистов никаких проблем с Андройдом небыло. К примеру [Samsung] работает как чясты. Может старые Андройды в каторых лиметированые браузары.
Анроид ведь не только на Samsung. Просто у Samsung очень хорошая "sensitivity" ( чувствительность ) этого их тачскрина. На других таблетках всё иначе. Мне вот для таблеток Lenovo пришлось специально со стилями "химичить" ( специально по mouseover размер увеличивать и т.д. Да - это можно и с jQuery делать , но тупо через css - проще. ).
Но больше всех достали iPad-ы ( со старой iOS и Safari без AJAX )

Alex_3112
01-23-2014, 03:56 PM
Кажется, с Javascript-ом у меня облом. Не нашел ни одного удовлетворительного способа обойти Same Origin Policy. Все, что работает (JSONP, CORS), требует чтобы _оба_ ресурса общались друг с другом. А так, чтобы например загрузить данные с weather.com и сказать пользователю - "Да у тебя, приятель, холодно!" - увы, никак.

crazy-mike
01-23-2014, 04:01 PM
Кажется, с Javascript-ом у меня облом. Не нашел ни одного удовлетворительного способа обойти Same Origin Policy. Все, что работает (JSONP, CORS), требует чтобы _оба_ ресурса общались друг с другом. А так, чтобы например загрузить данные с weather.com и сказать пользователю - "Да у тебя, приятель, холодно!" - увы, никак.
Не совсем так. Можно "обмануть" через php или perl.
Да и без AJAX можно создать form и send вызвать.

Olezhik
01-23-2014, 04:05 PM
Кажется, с Явасцрипт-ом у меня облом. Не нашел ни одного удовлетворительного способа обойти Саме Оригин Полицы. Все, что работает (ЙСОНП, ЦОРС), требует чтобы _оба_ ресурса общались друг с другом. А так, чтобы например загрузить данные с щеатхер.цом и сказать пользователю - "Да у тебя, приятель, холодно!" - увы, никак.

а чем тебя [jsonp] не устраивает?

Alex_3112
01-23-2014, 04:16 PM
Не совсем так. Можно "обмануть" через php или perl.
Да и без AJAX можно создать form и send вызвать.

Если у меня есть прокси-сервер, то можно и через php, и через perl. Но вот если его нет?

Alex_3112
01-23-2014, 04:18 PM
а чем тебя [jsonp] не устраивает?

JSONP хорош, когда "child" возвращает JSON. А если это тот же weather.com, который возвращает HTML?

crazy-mike
01-23-2014, 04:30 PM
JSONP хорош, когда "child" возвращает JSON. А если это тот же weather.com, который возвращает HTML?
HTML можно загрузить в строку и "разобрать" через функции DOM - и всё это сделать на JavaScript.
Можно на php или perl построить из html - какое-нибудь JSON или XML , ну и вернуть такую радость в JavaScript.
:111:

Alex_3112
01-23-2014, 04:42 PM
HTML можно загрузить в строку и "разобрать" через функции DOM - и всё это сделать на JavaScript.

Вот это-то у меня как раз не получается - browser security постоянно ставит преграды.

Olezhik
01-23-2014, 05:32 PM
Если у меня есть прокси-сервер, то можно и через php, и через perl. Но вот если его нет?

Node.JS

Olezhik
01-23-2014, 05:34 PM
ЙСОНП хорош, когда "чилд" возвращает ЙСОН. А если это тот же щеатхер.цом, который возвращает ХТМЛ?

Ну так принимаи [html] и парсаи его (так сложно понять что конретно ты хочиш зделать, пэтому советовать сложно)

crazy-mike
01-23-2014, 05:50 PM
Вот это-то у меня как раз не получается - browser security постоянно ставит преграды.
Элементарно получается. Просто ответ от скрипта получаешь с content-type text/plain ( и никакая security не мешает при этом ).
Security только для cross domain обычно срабатывает.
Ну и в "строке" ведь можно замену сделать - поменять все теги на чуть-чуть свои. Даже если там внутри было <html> , то сделать из него <coocoohtml> и т.д. В результате от него останется только XML.

Alex_3112
01-23-2014, 09:31 PM
Node.JS

Да, можно, как вариант. Но его тоже нужно устанавливать.

crazy-mike
01-23-2014, 10:40 PM
Да, можно, как вариант. Но его тоже нужно устанавливать.

< script src="" /> - это "устанавливать" ?????? :111:

Alex_3112
01-24-2014, 12:34 PM
< script src="" /> - это "устанавливать" ?????? :111:

< script src="" /> - это же не HTTP сервер :)

Olezhik
01-24-2014, 12:39 PM
Да, можно, как вариант. Но его тоже нужно устанавливать.

Установка 5 сикунд ! И существует полно бесплантых хостов.

Alex_3112
01-24-2014, 03:33 PM
Ну так принимаи [html] и парсаи его (так сложно понять что конретно ты хочиш зделать, пэтому советовать сложно)

Ага, попробовал в "script src=" засунуть ссылку на HTML, документ по ссылке загружается, но ничего не происходит. С основной страницы до содержимого этого HTML не могу никак докопаться (innerHTML, text - все пустое). Но и ошибок тоже нет.

Конкретнее - например, как я упоминал выше, загрузка прогноза погоды с weather.com и обработка этого прогноза на той же странице.

Olezhik
01-24-2014, 04:30 PM
если ти хочиш залодать [html] тогда так надо делать...

http://api.jquery.com/load/

crazy-mike
01-24-2014, 05:56 PM
< script src="" /> - это же не HTTP сервер :)
А ты хочешь чтобы оффлайновые странички ( которые совсем не с http сервера ) получали онлайн данные ?
Там один прикол для таких случаев есть - виджеты. Или web applications - в зависимости от браузера. И в этом случае в файле манифеста описывается , из каких доменов можно получать данные ( в т.ч. из любого домена ). И тогда из виджета без всяких node.js можно грузить через XmlHttpRequest что попало и откуда попало.

Alex_3112
01-24-2014, 09:54 PM
если ти хочиш залодать [html] тогда так надо делать...

http://api.jquery.com/load/

Угу, и приходим к тому же:

Due to browser security restrictions, most "Ajax" requests are subject to the same origin policy; the request can not successfully retrieve data from a different domain, subdomain, or protocol.

реднек
01-24-2014, 10:29 PM
Угу, и приходим к тому же:

Due to browser security restrictions, most "Ajax" requests are subject to the same origin policy; the request can not successfully retrieve data from a different domain, subdomain, or protocol.

Если ты не хочешь писать серверную часть, но у тебя есть доступ к настройкам веб сервака, то можешь поставить reverse proxy и пользовать URLs типа:

http://yourdomain.com/callback?http://weather.com


То что в параметрах callback выпиливается reverse proxy и он же получает ресурс и возвращает его. Т.е. сервер, ну ручками писать не надо ничего, за исключением конфиг файлов.

Olezhik
01-25-2014, 02:12 AM
Угу, и приходим к тому же:

Дуе то брощсер сецуриты рестрицтионс, мост "Аях" реэуестс аре субйецт то тхе саме оригин полицы; тхе реэуест цан нот суццессфуллы ретриеве дата фром а дифферент домаин, субдомаин, ор протоцол.

http://benalman.com/code/projects/php-simple-proxy/docs/files/ba-simple-proxy-php.html

Olezhik
01-25-2014, 02:13 AM
http://benalman.com/code/projects/php-simple-proxy/docs/files/ba-simple-proxy-php.html

или в [node.js] можно написать тоже самое..

crazy-mike
01-25-2014, 07:09 AM
То что в параметрах callback выпиливается reverse proxy и он же получает ресурс и возвращает его. Т.е. сервер, ну ручками писать не надо ничего, за исключением конфиг файлов.
Лучше уже 4 строчки на php написать , чем ещё одни конфиги. Там этих конфигов и так уже слишком много.
:111:

реднек
01-25-2014, 08:10 AM
Лучше уже 4 строчки на php написать , чем ещё одни конфиги. Там этих конфигов и так уже слишком много.
:111:

Если уж заморачиваться с серверным кодом, то одна строчка на node.js в 10 раз лучше чем четыре на php ;)

Alex5448
01-25-2014, 09:21 AM
Читаешь ихние термины, круть неимоверная. Но только начинаешь простой смок тест и всё крашится нахрен:115:

crazy-mike
01-25-2014, 09:52 AM
Если уж заморачиваться с серверным кодом, то одна строчка на node.js в 10 раз лучше чем четыре на php ;)
На локальном компе может крутиться apache2 и там php/perl. :111: Ну и всё "из интернета" с любого места достаётся через php. И при этом можно без удалённого хостинга даже обойтись. :111:

реднек
01-25-2014, 09:59 AM
Если уж заморачиваться с серверным кодом, то одна строчка на node.js в 10 раз лучше чем четыре на php ;)


На локальном компе может крутиться apache2 и там php/perl. :111: Ну и всё "из интернета" с любого места достаётся через php. И при этом можно без удалённого хостинга даже обойтись. :111:
http://cdn.shopify.com/s/files/1/0016/9762/products/loneliest-number800_1024x1024.png?v=1267738387

crazy-mike
01-25-2014, 10:09 AM
http://cdn.shopify.com/s/files/1/0016/9762/products/loneliest-number800_1024x1024.png?v=1267738387
Кстати , можно и 127.0.0.2 , и 127.0.0.3 , ...:111:

crazy-mike
01-26-2014, 11:54 AM
https://github.com/szatkus/js2me

JS2ME
It's implementation of Java ME in JavaScript for Firefox OS.

Compatibility

Hard to say. There's a lot of different classes in J2ME ecosystem, not only MIDP. Currently it supports most of Java bytecode, part of MIDP and it's able to run few JS2ME games and application.

Alex_3112
01-28-2014, 04:46 PM
http://benalman.com/code/projects/php-simple-proxy/docs/files/ba-simple-proxy-php.html

Решил, что php proxy будет для меня наименьшим злом... и три часа бился над его настройками. Потом наконец нашел, что путь PHPIniDir "C:\Program Files (x86)\PHP\", который автоматически ставит инсталлятор - неправильный и конфигурация не работает. Если убрать последний слеш, все ставится на место.

В общем, стоит съехать с знакомых мне технологий, как начинаются сплошные ухабы...

Olezhik
01-28-2014, 06:43 PM
Решил, что пхп прохы будет для меня наименьшим злом... и три часа бился над его настройками. Потом наконец нашел, что путь ПХПИниДир "Ц:\Програм Филес (х86)\ПХП\", который автоматически ставит инсталлятор - неправильный и конфигурация не работает. Если убрать последний слеш, все ставится на место.

В общем, стоит съехать с знакомых мне технологий, как начинаются сплошные ухабы...

[node.js] лутше потому что это простая [js]

Установка очень простая, выходиш на [node.js]странитсу скачиваеш инсталятор
[ http://nodejs.org/dist/v0.10.25/x64/node-v0.10.25-x64.msi ]

потом скачиваеш эту прогу [https://github.com/felixge/node-paperboy]

закидываеш её в папку допустим

[c:\www\]

1) запускаеш [cmd]
2) [cd c:\www\node-paperboy\example\]
3) [ node basic.js]

вебсаит побежала....

потом открываеш странитсу в браузаре

[127.0.0.1:8003\index.html]

в папке [c:\www\node-paperboy\example\webroot\] нахица твоя вэбсаит.
в фаил [c:\www\node-paperboy\example\basic.js] твои [js] кода на сэрвере, можеш их изменять по необходимости.

Alex_3112
01-28-2014, 10:06 PM
[node.js] лутше потому что это простая [js]


Я рассудил, что php поддерживается на любом хостинге, а вот node.js - не факт.

реднек
01-28-2014, 10:12 PM
Я рассудил, что php поддерживается на любом хостинге, а вот node.js - не факт.
PHP не на любом.

Olezhik
01-29-2014, 12:56 AM
Я рассудил, что пхп поддерживается на любом хостинге, а вот ноде.йс - не факт.

Ну нa вкус и цвет товарищя нет, кому-то [php], кому-то [.net] а некоторым вобще пофиг что, главное чтоб платили :)

Olezhik
02-19-2014, 01:44 PM
Ок. Уговорил. Буду юзать йэуеры. Спасибо.
Да я вобщето не пытался уговорить, просто обяснил ;)

Olezhik
02-19-2014, 01:45 PM
Посмотрите какая вышла новая библиотека, можно квери писать для [json] обьектов, очень удобно.

http://www.breezejs.com/



var manager = new breeze.EntityManager('api/northwind');

var query = new breeze.EntityQuery()
.from("Employees")
.orderBy("LastName");

manager.executeQuery(query).then(function(data){
ko.applyBindings(data);
}).fail(function(e) {
alert(e);
});

реднек
02-19-2014, 02:58 PM
Посмотрите какая вышла новая библиотека, можно квери писать для [json] обьектов, очень удобно.

http://www.breezejs.com/



var manager = new breeze.EntityManager('api/northwind');

var query = new breeze.EntityQuery()
.from("Employees")
.orderBy("LastName");

manager.executeQuery(query).then(function(data){
ko.applyBindings(data);
}).fail(function(e) {
alert(e);
});

Найс. С промисами.

реднек
02-19-2014, 03:11 PM
А что это только для OData and Web API? Это уже не так интересно.

Olezhik
02-24-2014, 10:06 PM
А что это только для OData and Web API? Это уже не так интересно.


Я работаю с [WEB Api and OData] так что для меня это то что доктор прописал.

реднек
02-24-2014, 11:29 PM
Я работаю с [WEB Api and OData] так что для меня это то что доктор прописал.

О, я смотрю там еще замучаешься тесты писать не подключая серверную часть. Уже совсем скучно.

Olezhik
02-25-2014, 12:14 AM
О, я смотрю там еще замучаешься тесты писать не подключая серверную часть. Уже совсем скучно.
а так не получиться?


C:\PathTo\Chrome.exe" –allow-file-access-from-files

реднек
02-25-2014, 12:41 AM
а так не получиться?

Да я не про то как читать страницы без сервера. А про это:


breeze.EntityQuery
.from("Customers")
.where("CompanyName", "startsWith", "A")
.orderBy("CompanyName");


Откуда возмуться эти кастомерс с компаниями для тестирования подобного кода. Точнее даже не откуда возьмуться, а как их мокнуть в тестах безболезнено?

crazy-mike
02-25-2014, 02:46 AM
Да я не про то как читать страницы без сервера. А про это:


breeze.EntityQuery
.from("Customers")
.where("CompanyName", "startsWith", "A")
.orderBy("CompanyName");


Откуда возмуться эти кастомерс с компаниями для тестирования подобного кода. Точнее даже не откуда возьмуться, а как их мокнуть в тестах безболезнено?

JSON - это ведь "представление объекта внутри строки" ( при помощи фигурных скобок и т.д. ). Всё равно по JSON.parse получается готовая переменная. И обходить это всё можно не только по for each. Там и перекрёстные ссылки во время "загрузки" можно построить. Так зачем там вообще SQL тогда нужен? :111:

реднек
02-25-2014, 11:05 AM
JSON - это ведь "представление объекта внутри строки" ( при помощи фигурных скобок и т.д. ). Всё равно по JSON.parse получается готовая переменная. И обходить это всё можно не только по for each. Там и перекрёстные ссылки во время "загрузки" можно построить. Так зачем там вообще SQL тогда нужен? :111:

Это очень правильный вопрос Майк.

crazy-mike
02-25-2014, 01:27 PM
Это очень правильный вопрос Майк.
Не знаю даже - там есть нюанс. Формально для HTML5 и JavaScript интерфейс с SQL Lite уже не должен поддерживаться. Только Indexed DB. Но особой роли это не играет , потому что всё равно то , что получили по XmlHttpRequest , можно записывать в "локальную БД" и там делать поиск. Для SQL Lite там даже deprecated API как бы "стандартный". Поэтому никакие дополнительные frameworks особо сильно не нужны.
Ну и все эти переменные можно в session storage запоминать ( объекты в т.ч. ) - это даже без Indexed DB..

реднек
02-25-2014, 04:42 PM
Не знаю даже - там есть нюанс. Формально для HTML5 и JavaScript интерфейс с SQL Lite уже не должен поддерживаться. Только Indexed DB. Но особой роли это не играет , потому что всё равно то , что получили по XmlHttpRequest , можно записывать в "локальную БД" и там делать поиск. Для SQL Lite там даже deprecated API как бы "стандартный". Поэтому никакие дополнительные frameworks особо сильно не нужны.
Ну и все эти переменные можно в session storage запоминать ( объекты в т.ч. ) - это даже без Indexed DB..

Чтобы что то запоминать в локальном стораже (оставляя за скобками ограничения по размеру на session storage), надо это что то откуда то брать, иными словами для того чтобы запускать тесты только на клиенте надо хотя бы прогнать их разок на соединение с сервером. Это безусловно более сложная конфигурация чем когда клиентский код никуда вообще не должен ходить и берет фейковые данные из самого себя. Я обычно делаю так



MyCoolAPI.customers.then( function(customers) {...});


MyCoolAPI.customers часть клиентского кода оборачивающего конкретный запрос к серваку, и возвращает промис. В тестах это MyCoolAPI.customers этот промис уже resolved фейкнутыми данными. Тем самым убирается и возня с асинхронностью. Если писать а ля SQL в клиенте то зафейкать коммуникацию с серваком выглядит как гораздо более сложная задача.

Alex_3112
02-28-2014, 09:37 AM
Model View Controller vs event-driven architecture.

Разбираясь с Javascript, убеждаюсь, что с моими старыми привычками нужно что-то делать.
Вот например традиционная архитектура Model View Controller. Контроллер собирает данные, строит модель, и передает ее во View для отрисовки. В случае AJAX-подобной архитектуры все встает с ног на голову. Контроллер уже не контролирует сбор данных. Каждый AJAX запрос живет своей жизнью и запускает собственный event handler... Но что же делать с Model? Когда передавать ее во View? Если запросов много, и не все из них успешны?

Можно в контроллере поставить setTimeout() и со словами "Кто не завершился - я не виноват" - перейти ко View.
Можно похерить MVC совсем и дать каждому AJAX-у отрисовывать свои данные (но мне бы этого не хотелось).

А какие стандартные подходы существуют в мире javascript?

реднек
02-28-2014, 12:01 PM
Model View Controller vs event-driven architecture.

Разбираясь с Javascript, убеждаюсь, что с моими старыми привычками нужно что-то делать.
Вот например традиционная архитектура Model View Controller. Контроллер собирает данные, строит модель, и передает ее во View для отрисовки. В случае AJAX-подобной архитектуры все встает с ног на голову. Контроллер уже не контролирует сбор данных. Каждый AJAX запрос живет своей жизнью и запускает собственный event handler... Но что же делать с Model? Когда передавать ее во View? Если запросов много, и не все из них успешны?

Можно в контроллере поставить setTimeout() и со словами "Кто не завершился - я не виноват" - перейти ко View.
Можно похерить MVC совсем и дать каждому AJAX-у отрисовывать свои данные (но мне бы этого не хотелось).

А какие стандартные подходы существуют в мире javascript?

MVC и event-driven architecture это не одно vs другое, а две ортогональные вещи. Например контроллер хочет сказать вьюхе чтоб та отрисовала модель. Простой случай, когда модель берется одним запросом:



MyServer.getCustomer(...).then( funciton(customer) { this.view.render(customer) }.bind(this) );


Более сложный, когда моделей несколько моделей:


Q.spread([MyServer.getCustomer(...), MyServer.getInvoices(...)], function(customer, invoices) {this.view.render(customer, invoices)}.bind(this) );


См. сюда: https://github.com/kriskowal/q, сюда: https://github.com/caolan/async и сюда как example of real word production app: https://github.com/TryGhost/Ghost
В последнем все хорошо с асинхронностью.

crazy-mike
05-06-2014, 07:39 AM
:101:

var a=document.getElementsByTagName("img"),e;
for( e of a) { e.style.display="none"; };


Вот эта радость работает в Mozilla Firefox , но не работает в Google Chrome. И только по одной причине - for..of в JavaScript для Google Chrome не поддерживается. Для Google Chrome это нужно написать хотя бы так:

var a=document.getElementsByTagName("img"),i=0,e;
while(i<a.length) { e=a.item(i); i++; e.style.display="none"; };


Поэтому лучше не спешить c good bye.

реднек
05-06-2014, 10:11 PM
:101:

var a=document.getElementsByTagName("img"),e;
for( e of a) { e.style.display="none"; };


Вот эта радость работает в Mozilla Firefox , но не работает в Google Chrome. И только по одной причине - for..of в JavaScript для Google Chrome не поддерживается. Для Google Chrome это нужно написать хотя бы так:

var a=document.getElementsByTagName("img"),i=0,e;
while(i<a.length) { e=a.item(i); i++; e.style.display="none"; };


Поэтому лучше не спешить c good bye.
Пойду до мусорки, выкину Хром. Хотя, это, похоже кроме Gecko это ничем не поддерживается: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of#Browser_compatibility

crazy-mike
05-07-2014, 01:45 AM
Пойду до мусорки, выкину Хром. Хотя, это, похоже кроме Gecko это ничем не поддерживается: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of#Browser_compatibility
Но в этом тоже какое-то удовольствие есть. Написать код странички , который буде выводить из строя iPhone - например или из-за которого будет перегружаться "таблетка" с Windows 8.

Для for .. of ведь Google Chrome даже не выдаёт "illegal statement". Там просто illegal variable внутри очень даже legal statement.

P.S. Но я этот пример привёл просто для того , чтобы показать некоторую преждевременность "конца Java Applet-ов".
( да и Adobe Flash тоже ).
Ну а for .. of в Mozilla Firefox ведь очень быстро работает. И оно удобнее чем [ "Putin" ,"Yanukovich","Obama" ].forEach :101:
В forEach ведь функцию с тремя параметрами нужно передавать.

crazy-mike
05-14-2014, 05:53 AM
И самое забавное:

То , что возвращается по element.getElenentsByTagName("a") , например , ведь не является Array - потому что для него нельзя использовать итератор .forEach вообще. Для NodeList метод forEach просто не определён.
:101:
Поэтому прыгать из Java в JavaScript ( и даже из Adobe Flash ) является довольно садомазохисткой разновидностью самоубийства.

реднек
08-12-2014, 03:09 PM
Прикольная штука peerflix https://github.com/mafintosh/peerflix стримает битторрент, но упорядочено, т.е. можно сразу кино смотреть без закачки всего файла.

crazy-mike
08-13-2014, 04:42 AM
Прикольная штука peerflix https://github.com/mafintosh/peerflix стримает битторрент, но упорядочено, т.е. можно сразу кино смотреть без закачки всего файла.
Если не торренты , а просто HTML5-видео - тогда Firefox все делает без закачки всего файла.