- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
var htmlContent = "<li class='savedAdItem' data-savedid='" +
adToAdd.cid + "' title='" +
Company.i18n("ads_manager.ClickToSeeDestination") +
(adToAdd.get("title") ? adToAdd.get("title") :
adToAdd.get("url")) +
"' data-url='" + adToAdd.get("url") +
"' ><div class='title landing'>" +
(adToAdd.get("title") ? adToAdd.get("title") : "URL") +
"</div><div class='landingUrl hide'>" +
this.getDomainName(adToAdd.get("url")) + "</div>" +
(adToAdd.get("imageUrl") ?
"<div style='text-align:center;'><img src='" +
adToAdd.get("imageUrl") +
"' style='max-width: 99px;max-height: 72px;' /></div>" :
"<div class='img-target-" + adToAdd.get("targetType") +
"'> </div>") +
"<div class='btnDelete' title='" +
Company.i18n("ads_manager.Remove") +
"'></div></li>";
bormand 02.01.2014 17:53 # +3
Для полного счастья не хватает только js кода внутри этой строки.
anonimb84a2f6fd141 02.01.2014 18:12 # 0
wvxvw 02.01.2014 19:12 # 0
На сейчас я заменил чем-то вроде этого:
Но не факт, что оно так останется, скорее всего это уйдет в какой-нибудь шаблон.
Lure Of Chaos 02.01.2014 21:27 # +1
тот же инлайн, но с извратами.
wvxvw 02.01.2014 22:00 # 0
От того, чтобы динамически создавать ХТМЛ элементы все равно никуда не уйти, но так хоть есть возможность держать данные об этих ХТМЛ элементах в таком виде, в котором с ними можно нормально работать в ж.скрипте.
К сожалению то, как ДОМ представлен в ж.скрипте не оставляет особо выбора.
Lure Of Chaos 02.01.2014 22:50 # +1
wvxvw 03.01.2014 00:19 # 0
Куда уж более читаемо? В коде функция в одну строчку, которая складывает строки в массив и потом их джоинит. Если человек это не осилил, то лучше пусть идет на фабрику коробочки складывать.
Lure Of Chaos 03.01.2014 00:22 # +2
wvxvw 03.01.2014 00:25 # −3
defecate-plusplus 03.01.2014 05:50 # +2
"я поебался, чтобы это написать, теперь ты поебись, чтобы это прочитать"
как перебор свойств какого-то объекта должно приводить as is к html тегам? или ты собрался на клиент засылать тот же html, только в json? типа всех наебал, сэкономил трафик, так чтоли?
bormand 03.01.2014 10:18 # 0
Зачем столько агрессии? Он всего лишь запилил простенький конвертер js->html (ну да, тут не хватает правильной экранировки, и, в идеале, рекурсии, но не суть, это все дело техники), чтобы не конкатенировать хтмл врукопашную:
defecate-plusplus 03.01.2014 10:29 # 0
его должен сервер отдать?
замечу, что в ОП объект используется сложнее, с кишками
повтори-ка целиком (увидишь кучу повторений обращений к "свойствам" объекта)
сервер не должен в модели передавать, что это div, какой у него обязан быть класс и т.д.
нужны сухие данные
желательно, с осознанным Типом этой сущности (а не 'div'), да так, чтобы на html вообще ничего не намекало
bormand 03.01.2014 10:31 # 0
Это не json, это код на js :) Его напишет wvxvw в качестве эдакого шаблона. А сервер передаст чистые данные, которые в этот шаблон подставятся (сейчас они лежат в adToAdd.get('title') и им подобных).
Ну просто шаблон вместо традиционного html со всякими {{prop}} или ${prop} записывается прям в виде кода на js.
defecate-plusplus 03.01.2014 10:37 # 0
bormand 03.01.2014 10:39 # 0
defecate-plusplus 03.01.2014 10:44 # +2
bormand 03.01.2014 10:56 # 0
О как, не знал про эту штуку. А дальше append'ом запихивать их друг в друга? Довольно удобно.
defecate-plusplus 03.01.2014 10:58 # 0
нездорово мешать разметку и js
место разметке - в .html
wvxvw 03.01.2014 23:05 # −1
правильно будет:
Но не суть. Что да важно, и что показательно, что:
1. С объектом проще работать, чем с методами ж.квери, потому что есть, например подчерк.
Что, вобщем, сделало бы код менее "китайским".
2. Как я уже говорил, эти объекты создавать нужно все равно. И поэтому лучшим вариантом будет:
3. Самое главное, что код, из которого мы смогли убрать конкретику "title", "url" и т.п. можно вынести в библиотеку и использовать повторно. Но рабы дефекейт++ не будут искать легких путей, когда "url" заменят на "href", они просто скопируют старый код и немного его подправят:
Как говорит Дан Денет, "Если работу можно не делать вообще, то ее можно сделать как угодно хуево".
Lure Of Chaos 04.01.2014 03:51 # 0
вот примерно этот вариант я и имел ввиду
wvxvw 03.01.2014 11:10 # 0
Может не рабочее, но принцип должен быть ясен.
bormand 03.01.2014 11:11 # +1
Почему бы не подставлять поля из объектов "модели" в шаблон, не переписывая их в промежуточную сущность?
wvxvw 03.01.2014 11:24 # 0
Вот у него есть такая модель окружающего мира:
Таким образом, если мы захотим потом этот же компонент использовать как селект, а не лист, мы от него унаследуемся и заменим renderer: Li на Option.
bormand 03.01.2014 11:40 # 0
А там разве нельзя у компонента сделать несколько представлений? Даже в сраной джумле можно было ;)
> этот же компонент использовать как селект, а не лист, мы от него унаследуемся
Наследование ради реализации приводит к длительным запоям.
Ну и что-то я не пойму, зачем все эти map, makeListItem, рукопашное создание нод и т.п. В подчеркивании шаблонизатор настолько уныл, что в нем нельзя описать циклы?
wvxvw 03.01.2014 11:44 # 0
Так работает ГТК, Винформс, Флекс или Свинг, но вот в ж.скрипте до этого еще не доросли.
wvxvw 03.01.2014 11:52 # 0
И когда нужно будет решать эти проблемы, а они неизбежно возникнут, только не на первом этапе работы, а после нескольких месяцев / лет, когда менять уже будет сильно влом, и врезультате будут появляется решения, типа как в ОП.
bormand 03.01.2014 15:09 # 0
...задуматься на мгновение, что же объединяет все эти "компоненты"?
А общее в них только то, что они отображают некий элемент коллекции в кусок DOM'а. А это... банальнейший репитер, который уже есть в любом шаблонизаторе.
А может мне нужно пойти дальше, и разработать "базовый класс" для "компонента", который умеет рендерить или не рендерить свое содержимое в зависимости от какого-то предиката? :)
А может мне нужно забить на написание "компонентов" для for'ов и if'ов, воспользовавшись вместо этого готовыми инструментами, и сразу делать компоненты, имеющие какой-то прикладной смысл...
wvxvw 03.01.2014 15:49 # 0
Для создания гуй приложений не только шаблонизатор, язык разметки - верх кретинизма. Мне довелось поработать в среде, где можно было пользоваться и тем и другим в более-менее сравнимой степени: MXML / AS. Код с использованием MXML пишется быстрее, и это плюс, но хорошо написаный AS код будет всегда короче MXML, будет более универсальным, легче при поддержке. Кроме того, MXML гораздо больший язык, чем ХТМЛ, т.е. в нем есть на много больше разных возможностей / настроек компонентов, и тем не менее, настройка компонентов в AS проще и более универсальна, чем ее когда-либо можно было сделать в MXML. ХТМЛ по сравнению: детский лепет, на дворе 2014 год, а ж.скрипт обезьяна не сможет даже скроллбар раскрасить в нужный цвет.
Базовый класс для компонента разрабатывать не нужно, он уже есть в Бикбоуне. Просто ни одна обезьяна еще не догадалась, что вместо того, чтобы наследоваться от этого класса и потом в каждом наследнике повторно реализовывать похожие компоненты, их можно было реализовать один раз, а потом наследоваться от наследника.
Ж.скрипт морально очень напоминает Флеш 2004-го года, тогда только появились классы, и типичная программа сводилась к множеству классов, все унаследованые от MovieClip. Понимание того, что можно унаследоваться от наследника пришло после знакомства с ASWing, но это было относительной редкостью. До 3-его Флекса иерархии наследования, как правило были одноярусными.
Бикбоун, в свою очередь, очень сильно напоминает модель компонентов flash.mx.* из пре-2004 серии, по крайней мере грабли там они насобирали очень похожие.
bormand 03.01.2014 11:19 # +2
wvxvw 03.01.2014 11:35 # 0
Нет, и еще раз нет, это уебищный путь, который добавляет работы в геометрической прогресси. Это антитезис компонентной архитектуры, который мешает использовать код повторно. Ну не нужны мне уже готовые строки-куски ХТМЛ, не нужны. Мне их нужно создавать исходя из модели компонента. Иначе, вместо повторного использования компонента я получаю дохера "китайского" повторяющегося кода.
wvxvw 03.01.2014 10:58 # +2
Естесственно, ни один ж.скрипт писатель не думает о модульности, компонентой архитектуре, или элементарно о том, как себе сократить объем работ, поэтому каждая модель описывается декларативно, а потом циклами со свитчами и ручной поклейкой строк из нее производится "представление".
Так получается "китайский" код, повторяющийся с небольшими изменениями от страницы к странице (а иногда и много раз в пределах одной страницы).
Переводить это унылое говно очень нетворческая задача, т.как нужно каждый раз выискивать места поклейки строк и в них искать недопереводы. Недопереводы в такой ситуации имеют тенденцию повторятся, как и все остальное.
Чтобы как-то скрасить будни, я решил вынести все повторяющееся говно в один компонент, а говно уникальное для каждого инстанса этого компонента как-то задавать снаружи. Объекты в этом смысле хороши еще и тем, что их ж.скрипт может нативно расширять, т.е. если у меня ест 100 инстансов схемы требующих слепить список из { "": "a", "href": "http://localhost" }, и еще десяток { "": "a", "href": "http://localhost", "alt": "Home sweet home!" }, то во втором случае я смогу применить наследование для того, чтобы избавить меня от непосильного труда набивания этой херни!
Кроме того, я смогу использовать ОО механизмы, типа методов для работы с такими моделями! (для того, чтобы заменить портянки из свитчей).
Вобщем, профит есть.
bormand 03.01.2014 11:07 # +1
ССЗБ, или я не прав? :)
wvxvw 03.01.2014 11:26 # 0
defecate-plusplus 03.01.2014 11:29 # 0
модель осталась прежняя, представление изменилось
модель сгружается динамически из базы, представление - статический текстовый файл
ибо модель - всего лишь items, все остальное - шелуха, которой не место в js
wvxvw 03.01.2014 11:39 # 0
defecate-plusplus 03.01.2014 11:58 # 0
эту срань надо описывать в разметке
если что у тебя будет отличаться одним тегом, ты это сможешь сделать и в шаблоне
но если хочется получить сайт, в котором не будет никакой возможности найти хоть каких-нибудь концов, что именно получается и где - т.е. сайт, в котором будешь разбираться только ты, то после твоего ухода проект рано или поздно просто отправится в мусорку и будет переписан с нуля
кто вообще додумался дать в руки человеку проект, который ненавидит инструмент, на котором он его делает
wvxvw 03.01.2014 12:45 # +1
Контрол который должен показывать дни недели присутсвует на более-менее сотне страницах системы. В нем есть несколько нужных различий, типа стиля, выделения, возможности редактирования и т.п. + дохера случайных изменений, сделаный изза невнимательности долбоеба-ж.скриптера при копирование и вклейке. Таким образом моя работа из чего-то типа:
Превратилась в составление регулярок. При чем нужно искать не только по ХТМЛ шаблонам, но и по ж.скрипт коду, где потом эти шаблоны наполняются данными. Почему? Потому, что по совету какого-то надразума компоненты создаются посредством парсинга ХТМЛ-подобного текста, вместо того, чтобы держать их представление в виде ж.скрипт объектов.
Кто додумался? Ну, не смотря на то, что я его не люблю, я все равно это делаю лучше любого ж.скриптера, который его любит. Работодателю-то какая разница?
defecate-plusplus 03.01.2014 14:33 # +2
если второе и предыдущий программист расклонировал 100 раз, то всяко он мудак, это не зависит от языка, был ли это джаваскрипт или прости господи флеш
парсинг html подобного текста хорош тем, что 1) легко читается и сопровождается, 2) легко распределяется между front-end разработчиком и верстальщиком, 3) легко меняется на абсолютно другой, для других устройств и т.д., притом, что это будет работа для специалиста по этому направлению - верстальщика, а не специалиста в js
просто если твой нынешний шаблонизатор заставляет вставлять html-подобную хуиту прямо в js с кучей инородных знаков, то нахер его
да и вообще это крайне странно, что в одном проекте данные одной модели пытаются отформатировать в сотне различных представлений по-разному, это уже очень и очень попахивает
wvxvw 03.01.2014 15:01 # 0
ХТМЛ - по своей сути идиотская задумка, и единственное оправдание существованию шаблонов в виде фрагментов ХТМЛя заключается в том, что блядские браузеры быстрее парсят и сами создают ДОМ структуру, чем если напрямую обращаться к ДОМ АПИ (такой вот ебический АПИ).
Шаблоны утыканые инородными языками с кучей экранирования и дополнительной пунктуации для разделения ХТМЛ и не-ХТМЛ кода хорошо читаются? Возможно только для тех, кому нравится читать суржик смешаный из трех с половиной недоязыков. Почему кому-то вообще приходит в голову мысль аппелировать к чему-то на столько тяжело объективно характеризируемому, как "удобство чтения"? Да, в этой области есть исследования, но естесственно, никто не проводил экспериментов сравнивающих методически удобство чтения исключительно ж.скрипт кода по сравнению с чтением месива из ж.скрипта, шаблонизатора, ХТМЛя и КССа - с чего вдруг это подается под видом фактов?
Нет ничего странного в том, что данные модели компонента нужно по-разному форматировать в зависимости от контекста. Вы это видите в любой гуй-программе по сто раз в день. В одном месте у кнопки есть рамочка, а в другом - нет, где-то у селекта ест возможность выбрать несколько элементов, а где-то - только один и т.п.
Единственное, что, если это происходит в ХТМЛе, то можно быть на 99% увереным, что мудак-ж.скриптер написал две разные кнопки, одну с рамочкой, а другую - без, создав их из двух разных шаблонов. Потому что абстракция - это думать нужно, копипаста - проще.
bormand 03.01.2014 15:14 # +7
Окай. Вот идеальный код, с этой точки зрения: Вечен как скала - никому и никогда не придется менять его при сопровождении.
Гибок как ивовый прутик - достаточно поменять "данные", чтобы получить любое поведение.
kegdan 03.01.2014 15:51 # −2
Stertor 03.01.2014 16:07 # −1
p/s
FindFirstFile/FindNextFile
bormand 03.01.2014 16:11 # +1
Причем они тут?
Stertor 03.01.2014 16:21 # −1
kegdan 03.01.2014 16:27 # −2
читай про обедующих философов
Stertor 03.01.2014 16:31 # −1
Дас кен ихь шон.
kegdan 03.01.2014 16:32 # −2
bormand 03.01.2014 16:40 # +1
Причем они тут? На философах рассматривают дедлоки. А боты стертора будут писать посты бесконечно, пока сайт не завалится. Это совсем разные проблемы.
LispGovno 03.01.2014 16:44 # −2
Ханойские монахи будут перекладывать диски бесконечно, пока мир не развалится.
bormand 03.01.2014 16:45 # 0
- А давай придумаем Оптимальный Алгоритм, по которому мы сможем их переложить за 2^n ходов?
- Некогда думать, надо диски перекладывать...
kegdan 03.01.2014 16:58 # −2
Stertor 03.01.2014 16:49 # −1
Тонко.
kegdan 03.01.2014 16:46 # −2
Я о том, что если у компонентов проблема из-за несогласованности - нужен контроллер. По этому принципу я их с философами и соединил
bormand 03.01.2014 17:01 # 0
Философам не нужен помощник. Там же один из способов - тупо пронумеровать ресурсы, и начинать с меньшего номера.
kegdan 03.01.2014 17:05 # −2
Или тупо игнорить при распознании.
Самое явное решение философов - официант. Ибо гибкость.
bormand 03.01.2014 17:10 # −1
И далеко не самое удачное, т.к. добавляет единую точку отказа. Заболел официант - все 5 философов зависли и сдохли с голода.
kegdan 03.01.2014 17:16 # −1
Основной + супервизора - гибкость управления
bormand 03.01.2014 17:19 # 0
Эрланга начитался? :)
P.S. А вообще официант - пидорас. Мог бы просто принести им еще 5 вилок.
kegdan 03.01.2014 17:21 # −1
Stertor 03.01.2014 17:27 # +2
kegdan 03.01.2014 17:36 # 0
Stertor 03.01.2014 17:39 # 0
Кстати. Отвлекаясь. Поставил я LinuxMint, у меня от нее постоянные стояки. А как там, что? как ставить приложения? В яндексе полый бред.
kegdan 03.01.2014 17:45 # +1
Можно apt-get install [имя пакета]
а че mint то ? ставил бы как все ubuntu)
bormand 03.01.2014 17:48 # 0
Внезапно, но мята и есть убунта.
kegdan 03.01.2014 17:55 # 0
не чистая, не тру
Stertor 03.01.2014 17:50 # 0
т.е. выбираем в папке "открыть с админскими правами", запускаем apt-get install [имя пакета] в консолечке? Фи, какая гадость... Но от этого никуда не деться.
kegdan 03.01.2014 17:59 # 0
sudo rm -rf /
работает на 20% быстрее
bormand 03.01.2014 18:12 # 0
Не работает же, уже давно.
kegdan 03.01.2014 18:15 # 0
а я и забыл стертор
sudo rm -rf --no-preserve-root /
без --no-preserve-root опасно! еще систему себе снесешь из-за меня!
Stertor 03.01.2014 18:17 # 0
Что-то я не заметил выйгрыша в скорости.
В винде - да, было.
bormand 03.01.2014 18:00 # 0
Я х.з. есть ли он в минте, но все-таки поищи там Центр Приложений :)
sudo apt-get install software-center
kegdan 03.01.2014 18:08 # 0
Stertor 03.01.2014 18:22 # 0
kegdan 03.01.2014 18:25 # 0
Stertor 03.01.2014 18:30 # 0
kegdan 03.01.2014 18:32 # 0
Stertor 03.01.2014 18:34 # 0
kegdan 03.01.2014 18:39 # 0
defecate-plusplus 03.01.2014 18:36 # 0
не нормально
внимательно почитал то, что тебе написали при попытке установки?
Stertor 03.01.2014 18:40 # 0
defecate-plusplus 03.01.2014 18:47 # 0
виртуалбокс при установке дополнений тоже желает кернел сурсес (они, кстати, скачиваются тупо из центра приложений по имени linux-sources или вроде того), но это не обязательная ему вещь
kegdan 03.01.2014 18:57 # 0
как бесплатность программы показывает ее функциональное превосходство?
defecate-plusplus 03.01.2014 19:03 # +1
для домашнего использования поиграться в линукс на виртуалке у вмвари вообще нет никаких преимуществ
у виртуалбокса возможны тормоза с пробросом 3д-ускорения, но оно в линуксе нахер не вперлось - последнее дело оценивать играбельность шутера, запущенного из виртуалки
в остальном не вижу нахуя ставить вмварю, крячить её, если можно поставить бесплатное полнофункциональное приложение с официального сайта
Stertor 03.01.2014 19:05 # 0
Ничего в ней не изменилось - абсолютно.
LispGovno 03.01.2014 19:04 # +1
Stertor 03.01.2014 19:06 # 0
defecate-plusplus 03.01.2014 19:06 # 0
причем с рабочими нуждами
с различными системами
ни разу не тормозил или вис
ЧЯДНТ?
Stertor 03.01.2014 19:15 # 0
bormand 03.01.2014 19:20 # −1
Вот сколько лет юзаю виртуалбокс, никогда такого не было. Поди вырубал машину во время этого слияния?
> Можно также сжимать неиспользуемое пространство "резиновых дисков", дефрагментировать их.
Ну вот этого в виртуалбоксе нету, да.
> виртуалбокс тормозит и виснит в отличии от вмвари
Да ну?
LispGovno 03.01.2014 19:33 # +1
У тебя мало опыта. Я пока не юзал ХР, тоже думал что 98ая стабильно работает. Я понял что твоё восклицание означает. Я говорю очевидные вещи.
Stertor 03.01.2014 18:58 # +2
поставил Wine
Дельфы на линуксе
Tform1.formcreate()
Я дрочу от счастья - любимые окошки всегда со мноооооой
bormand 03.01.2014 18:59 # −1
Windows 98 с хостовой стороны что-ли?
На XP он нормально работает. А внутрь ему я пихал и дос и вин3.1, все нормально было...
Stertor 03.01.2014 19:03 # 0
bormand 03.01.2014 19:18 # −1
Можно подумать в тех ОС экранчики были намного больше ;)
defecate-plusplus 03.01.2014 19:21 # 0
Stertor 03.01.2014 19:22 # 0
defecate-plusplus 03.01.2014 19:29 # 0
Stertor 03.01.2014 19:35 # 0
LispGovno 03.01.2014 19:36 # +2
Stertor 03.01.2014 19:37 # 0
LispGovno 03.01.2014 19:41 # 0
device=mouse.sys
Stertor 03.01.2014 19:42 # 0
Записал его в autoexec.bat
LispGovno 03.01.2014 19:44 # 0
Stertor 03.01.2014 19:49 # 0
>>что ты в линуксе будешь делать то?
Да хз, что. Может, плюнуть на гордость и поставить ее в качестве основной ос? Что посоветуете, товарищи?!
defecate-plusplus 03.01.2014 19:58 # 0
у меня с ним негативный опыт
LispGovno 03.01.2014 20:31 # 0
defecate-plusplus 03.01.2014 20:34 # 0
поебался не больше пары часов, и т.к. был цейтнот, просто снёс его и поставил другую систему
Stertor 03.01.2014 21:03 # 0
Stertor 03.01.2014 19:26 # 0
Размер рабстола регулируется видеодрайвером/драйвером дисплея. При чем тут система?!
anonimb84a2f6fd141 04.01.2014 21:44 # 0
bormand 04.01.2014 22:02 # 0
И еще 300% проца остаются другим процессам. Мне как-то пох ;) А вообще меня это даже на двухъядерке не особо напрягало. Утилиты ставил, в основном, из-за растягивания окна, общих папок и общего клипборда.
P.S. Да, у меня под столом стоит гроб, ибо я не признаю ноуты из-за уёбищных клавиатур и систем охлаждения.
anonimb84a2f6fd141 04.01.2014 22:53 # 0
Шум же и $$ электричество. Гроб может у тебя с супердуперохлаждением, но на ноутах может включиться кулер.
Да один общий курсор мыши без ковыряния с клавишами чего стоит. Графика не тормозит.
bormand 04.01.2014 23:21 # 0
Тишина полная. Моник только, сука, пищит. Видимо из-за того, что уже лет 7 ему.
> $$
Ну и насколько оно больше жрет в простое (инет, написание кода) чем твой ноут? Ну раза в два максимум. Замерю завтра, если интересно.
> на ноутах может включиться кулер
Который или воет как самолет или нихуя не охлаждает. А еще он забивается пылью, и ему хер проведешь профилактику.
bormand 04.01.2014 23:29 # 0
anonimb84a2f6fd141 04.01.2014 23:45 # 0
>А еще он
А еще у меня с ним приключилась какая-то херня и он стал выть как пылесос, то ли смазка закончилась, то ли за корпус задевать стал. Вибрация передавалась на стол, играл с затычками в уши :) Потом пошел в ремонтную, мне сказали, что раз ревет - пошел подшипник по пизде. Посмотрел цены на кулеры для модели и решил попробовать его смазать. Купил густой смазки в строймаге за 3 евро, намазал чуть-чуть на ось - хуяк и стало тихо о_О. Еще за это время, судя по всему, стали появляться беды на винте, комп стал падать в блюскрин при проигрывании громких звуков о_О. Короче, нужен новый комп. Ноут=дрова.
Stertor 05.01.2014 00:44 # 0
большое кощунство.
Stertor 03.01.2014 17:17 # 0
>>В каком месте я спорю?
Да ты даже не замечаешь этого, эх.
kegdan 03.01.2014 17:20 # −1
wvxvw 03.01.2014 18:03 # +2
Так что ничего особенного в этом наблюдении нет. Есть только типичное заблуждение, когда утверждение отвергается на основании нежелаемых последствий результата, а не на основании его фактической правильности.
Да, eval(code) проще поддерживать потому, что от такой программы никто и не требует ничего особенного. Вот только продать такую программу, чтобы потом ее поддерживать будет очень сложно.
anonimb84a2f6fd141 04.01.2014 21:45 # −1
Не-а. eval может вернуть любой тип и лови потом ошибки.
bormand 04.01.2014 22:00 # 0
Заметь, результат eval'а в этом коде никто не смотрит. Так что не будет ошибок.
defecate-plusplus 03.01.2014 11:07 # 0
wvxvw 03.01.2014 10:44 # −2
(мне все больше и больше нравится J, вот еще немного соберусь с мыслями и напишу интерпретатор на ж.скрипте. Но такая ситуация с J неизбежна не из-за синтаксиса, а из-за того, что, что нужно много додумывать: все время нужно помнить сколько измерений осталось в аргументе, а к скольки применяется слово.)
Лисп, наоборот, относительно многословный язык и за исключением десятка функций не типичных для других языков, больше ничего особо осиливать не нужно, чтобы его понимать.
bormand 03.01.2014 10:46 # +1
Сколько трафика сэкономится от замены js на j :) Надо везде внедрять.
kegdan 03.01.2014 14:58 # −3
Abbath 03.01.2014 22:20 # 0
Abbath 03.01.2014 22:19 # 0
kegdan 03.01.2014 22:25 # +1
Stertor 03.01.2014 22:33 # 0
kegdan 03.01.2014 22:43 # +1
Stertor 03.01.2014 22:44 # 0
p/s/
Сучонок, девчонка, собачонка, книжонка, рубашонка - через "о".
Abbath 03.01.2014 23:04 # +3
kegdan 05.01.2014 01:38 # 0
Abbath 03.01.2014 23:04 # −1
wvxvw 03.01.2014 22:55 # 0
Человеку для хорошего понимания нужен определенный баланс: если очень много информации подразумевается, то смысл начинает терятся изза неоднозначности (пример: чтение поэзии эпохи возрождения - если не знать греческую мифологию и выдающихся деятелей того времени - нихрена не понятно). Если явной информации слишком много, то ее тяжело переварить (пример: программы на ассемблере).
J больше похож на естесственный язык в смысле сколько информации нужно получать из контекста (обычно языки программирования более подробные). Люди, судя по всему справляются со сложностью естесственных языков заучивая большие фрагменты "програм", не всегда отдавая себе отчет о деталях.
Я так думаю, что если практиковаться, то можно так же найти "идиомы" языка, тем не менее это не отменяет сложности, это просто своего рода продвинутое "кеширование".
Abbath 03.01.2014 23:03 # 0
http://habrahabr.ru/post/201470/
wvxvw 03.01.2014 04:04 # 0
Специально для Люра: больше полезных функций.
kegdan 03.01.2014 05:39 # +2
anonimb84a2f6fd141 02.01.2014 22:32 # −1
Vindicar 03.01.2014 14:58 # 0
anonimb84a2f6fd141 03.01.2014 20:05 # 0
Vindicar 03.01.2014 20:29 # 0
anonimb84a2f6fd141 04.01.2014 03:35 # 0
Ответ лучше на форум, проще будет отслеживать.
Vindicar 04.01.2014 11:05 # +1
anonimb84a2f6fd141 04.01.2014 21:22 # 0
inkanus-gray 04.01.2014 14:48 # +1
• http://javascript.ru/ajax/cross-origin-2
Своими словами:
1. XMLHttpRequest не умеет отправлять на другой домен. Вообще. В Интернет Эксплорере умеет со страницы, сохранённой на компьютере, отправлять на любой домен.
2. Атрибут src тега script умеет отправлять только GET, но не умеет получать ответ. Ответ получить можно, если сервер возвращает JSONP (т. е. оборачивает данные в pituhFunction({данные}), тогда эту pituhFunction можно определить на своей странице).
3. IFRAME. Мы можем в нём разместить форму с автокликом и отправить даже POST, но получить содержимое фрейма из внешней страницы не получится. Разве что если фотографировать экран.
4. Плагины: Flash, Java, Silverlight по вкусу. Из них можно открыть любое соединение и не только http.
5. Все прочие работающие методы требуют поддержки от другого сайта. Сюда относится передача данных во фрейм через указатель фрагмента URL (#), window.postMessage, XMLHTTPRequest 2 / XDomainRequest. Если другой сайт специально не рассчитывает на то, что кто-то будет передавать данные, то ничего не получится.
anonimb84a2f6fd141 04.01.2014 21:20 # 0
inkanus-gray 04.01.2014 16:17 # +3
Работает для любых доменов, но проблема в том, что максимальный размер значения window.name во всех браузерах разный.
inkanus-gray 04.01.2014 16:24 # +3
bormand 04.01.2014 16:38 # 0
inkanus-gray 04.01.2014 17:03 # +4
bormand 04.01.2014 16:46 # +5
inkanus-gray 04.01.2014 18:02 # +1
Но кто бы мог подумать, что в случае window.name в качестве бонуса ещё и кроссдоменная протечка...
bormand 04.01.2014 19:21 # +1
В приватном просмотре все норм, не выживает.
anonimb84a2f6fd141 04.01.2014 21:24 # 0
Stertor 05.01.2014 00:46 # 0
Неужели так трудно подыскать годных проксей?
anonimb84a2f6fd141 05.01.2014 01:01 # −1
Stertor 05.01.2014 01:06 # 0
никакой анонимности, даже наоборот, можно вляпаться.
anonimb84a2f6fd141 05.01.2014 01:38 # 0
inkanus-gray 05.01.2014 12:51 # 0
bormand 05.01.2014 12:54 # 0
А вот в этом и проблема. Хотя, если твое общение с целевым сайтом никак с тобой изначальным не связать, то на доверие выходному узлу как-то насрать.
Vindicar 05.01.2014 15:47 # +2
anonimb84a2f6fd141 05.01.2014 21:26 # 0
inkanus-gray 05.01.2014 12:42 # 0
P.S. Вдруг кому-нибудь пригодится:
http://www.bestukvpn.com/
http://superfreevpn.com/
http://xpdo.net/
http://uk.ufreevpn.com/
bormand 05.01.2014 12:55 # 0
При этом не забываем пользоваться этим "любым браузером" только для TOR'а. И не ходить им на обычные сайты.
inkanus-gray 05.01.2014 13:33 # 0
Кстати, у меня почему-то при установленном WideCap не запускается Eclipse.
bormand 05.01.2014 13:43 # 0
Не смотрел ваершарком куда лезет эклипс при старте?
Lure Of Chaos 05.01.2014 19:40 # 0
через https, пользуясь системным прокси...
inkanus-gray 05.01.2014 20:54 # 0
Интересно то, что Эклипс не запускается даже с отключенным WideCap, т. е. WideCap нужно полностью деинсталлировать, тогда запустится. Причём сообщение об ошибке выводит совершенно нелепое.
anonimb84a2f6fd141 05.01.2014 21:27 # 0
Защита от взлома? xD
anonimb84a2f6fd141 04.01.2014 21:26 # 0
anonimb84a2f6fd141 04.01.2014 21:25 # 0
kegdan 03.01.2014 15:00 # 0
anonimb84a2f6fd141 03.01.2014 20:05 # 0
kegdan 02.01.2014 19:12 # +1
ЧИ-ТА-БЕЛЬ-НО!!!!
anonimb84a2f6fd141 02.01.2014 22:32 # +2