1. JavaScript / Говнокод #14310

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 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") +
                         "'>&nbsp;</div>") +
                        "<div class='btnDelete' title='" +
                        Company.i18n("ads_manager.Remove") +
                        "'></div></li>";

    Ах как хочется найти автора этих строк...

    Запостил: wvxvw, 02 Января 2014

    Комментарии (176) RSS

    • Это... божественно.

      Для полного счастья не хватает только js кода внутри этой строки.
      Ответить
    • А как надо?
      Ответить
      • Ну шаблон какой-нибудь заюзать было бы наверное гораздо проще. Ну, или хотя бы организовать эту херню в цикл (тут тяжело заметить, но на самом деле, это неявный переобор свойств какого-то объекта, на основе которого генерируется эта херня.
        На сейчас я заменил чем-то вроде этого:
        $.fn.extend({
                 object: function (description) {
                     this.html(["<", description[""]].concat(
                         _.map(description, function (key, value) {
                             return key ? [key, "=\"", value, "\""].join("") : "";
                         }),
                         [">", "</", description[""], ">"]).join(" "));
                     }
             });

        Но не факт, что оно так останется, скорее всего это уйдет в какой-нибудь шаблон.
        Ответить
        • это тоже прекрасно, особенно description[""].
          тот же инлайн, но с извратами.
          Ответить
          • И чем плохо description[""]?

            От того, чтобы динамически создавать ХТМЛ элементы все равно никуда не уйти, но так хоть есть возможность держать данные об этих ХТМЛ элементах в таком виде, в котором с ними можно нормально работать в ж.скрипте.
            К сожалению то, как ДОМ представлен в ж.скрипте не оставляет особо выбора.
            Ответить
            • ну если уж использован жуквери, так почему бы не применить больше подходящих функций оттуда, и не сделать код более читаемым?
              Ответить
              • И какие же более подходящие функции? Тут всего одна-то нужна, она и используется.

                Куда уж более читаемо? В коде функция в одну строчку, которая складывает строки в массив и потом их джоинит. Если человек это не осилил, то лучше пусть идет на фабрику коробочки складывать.
                Ответить
                • из-за обилия кавычек и скобок это трудно пропарсить мозгу и понять, где какая пара
                  Ответить
                  • А я тут при чем? Язык такой, что много скобочек и запятых и прочей херни. В Лиспе одним format все бы решилось. Но создатели этого замечательного языка не пытались сделать его удобным, а простым.
                    Ответить
                    • лисперов походу хлебом не корми дай написать write-only код
                      "я поебался, чтобы это написать, теперь ты поебись, чтобы это прочитать"

                      как перебор свойств какого-то объекта должно приводить as is к html тегам? или ты собрался на клиент засылать тот же html, только в json? типа всех наебал, сэкономил трафик, так чтоли?
                      Ответить
                      • Спокойствие, только спокойствие...

                        Зачем столько агрессии? Он всего лишь запилил простенький конвертер js->html (ну да, тут не хватает правильной экранировки, и, в идеале, рекурсии, но не суть, это все дело техники), чтобы не конкатенировать хтмл врукопашную:
                        // вот это
                        {
                            '': 'div',
                            'class': 'savedAdItem',
                            'title': adToAdd.get("title") ? adToAdd.get("title") : adToAdd.get("url"),
                            'data-url': adToAdd.get("url")
                        }
                        // превратится вот в это
                        <div class='savedAdItem' title='Enlarge your cloud' data-url='http://foo.bar' />
                        Ответить
                        • вот и в этом дело - откуда возьмется верхний json?
                          его должен сервер отдать?
                          замечу, что в ОП объект используется сложнее, с кишками
                          повтори-ка целиком (увидишь кучу повторений обращений к "свойствам" объекта)

                          сервер не должен в модели передавать, что это div, какой у него обязан быть класс и т.д.
                          нужны сухие данные
                          желательно, с осознанным Типом этой сущности (а не 'div'), да так, чтобы на html вообще ничего не намекало
                          Ответить
                          • > вот и в этом дело - откуда возьмется верхний json?
                            Это не json, это код на js :) Его напишет wvxvw в качестве эдакого шаблона. А сервер передаст чистые данные, которые в этот шаблон подставятся (сейчас они лежат в adToAdd.get('title') и им подобных).

                            Ну просто шаблон вместо традиционного html со всякими {{prop}} или ${prop} записывается прям в виде кода на js.
                            Ответить
                            • ну тогда я на стороне Lure - все то же самое можно вдуплить сразу с помощью jquery, не описывая свои велосипедные функции
                              Ответить
                              • jQuery Templates?
                                Ответить
                                • // вот это
                                  {
                                      '': 'div',
                                      'class': 'savedAdItem',
                                      'title': adToAdd.get("title") ? adToAdd.get("title") : adToAdd.get("url"),
                                      'data-url': adToAdd.get("url")
                                  }
                                  
                                  // =>
                                  $('<div/>')
                                      .addClass('savedAdItem')
                                      .attr('title', adToAdd.get("title") ? adToAdd.get("title") : adToAdd.get("url"))
                                      .attr('data-url', adToAdd.get("url"));
                                  Ответить
                                  • > $('<div/>')
                                    О как, не знал про эту штуку. А дальше append'ом запихивать их друг в друга? Довольно удобно.
                                    Ответить
                                    • да, но это плохой путь
                                      нездорово мешать разметку и js
                                      место разметке - в .html
                                      Ответить
                                  • Во-первых, если мы уж и говорим о говнокоде, то:
                                    adToAdd.get("title") ? adToAdd.get("title") : adToAdd.get("url");

                                    правильно будет:
                                    adToAdd.get("title") || adToAdd.get("url");

                                    Но не суть. Что да важно, и что показательно, что:
                                    1. С объектом проще работать, чем с методами ж.квери, потому что есть, например подчерк.
                                    _.map(adToAdd.get, ["title", "url", ...]);

                                    Что, вобщем, сделало бы код менее "китайским".
                                    2. Как я уже говорил, эти объекты создавать нужно все равно. И поэтому лучшим вариантом будет:
                                    $("#some-container").object(adToAdd);

                                    3. Самое главное, что код, из которого мы смогли убрать конкретику "title", "url" и т.п. можно вынести в библиотеку и использовать повторно. Но рабы дефекейт++ не будут искать легких путей, когда "url" заменят на "href", они просто скопируют старый код и немного его подправят:
                                    adToAdd.get("title") ? adToAdd.get("title") : adToAdd.get("href");

                                    Как говорит Дан Денет, "Если работу можно не делать вообще, то ее можно сделать как угодно хуево".
                                    Ответить
                                  • // =>
                                    вот примерно этот вариант я и имел ввиду
                                    Ответить
                              • Ни одна из темплейт библиотек не избавит от необходимости создавать объекты из которых потом подстановкой будут генерироваться строки с ХТМЛ разметкой. Так что тут выигырша никакого не будет. у ж.квери нет собственных темплейтов, но они есть у подчерка, например. Но это не важно, потому, что код подчерка выглядел бы ни чуть не лучше:
                                _.template("<<%=nodeName%> <% _.map(function(k, v) { return k + \"=\"\\\" + v + \" \"; }, schema %>>",
                                           { nodeName: "a", schema: { href: "http://localhost" } });

                                Может не рабочее, но принцип должен быть ясен.
                                Ответить
                                • > создавать объекты из которых потом подстановкой будут генерироваться строки с ХТМЛ разметкой
                                  Почему бы не подставлять поля из объектов "модели" в шаблон, не переписывая их в промежуточную сущность?
                                  Ответить
                                  • А у них нету никакой промежуточной сущности, эта сущность - единственная, которая у них есть. Предположим, у нас есть "компонент построенный используя бикбоун", назовем его условно "список дней недели".
                                    Вот у него есть такая модель окружающего мира:
                                    items: ["Sunday", "Monday", . . .],
                                    . . .
                                    renderer: Li,
                                    . . .
                                    view: _.map(this.items, this.makeListItem),
                                    . . .
                                    makeListItem: function (item) {
                                      var result li = new this.renderer();
                                      result.innerHTML = item;
                                      return result;
                                    }
                                    . . .
                                    render: function () { this.$el.object(this.view); }

                                    Таким образом, если мы захотим потом этот же компонент использовать как селект, а не лист, мы от него унаследуемся и заменим renderer: Li на Option.
                                    Ответить
                                    • > Таким образом, если мы захотим потом этот же компонент использовать как селект, а не лист
                                      А там разве нельзя у компонента сделать несколько представлений? Даже в сраной джумле можно было ;)

                                      > этот же компонент использовать как селект, а не лист, мы от него унаследуемся
                                      Наследование ради реализации приводит к длительным запоям.

                                      Ну и что-то я не пойму, зачем все эти map, makeListItem, рукопашное создание нод и т.п. В подчеркивании шаблонизатор настолько уныл, что в нем нельзя описать циклы?
                                      Ответить
                                      • Можно или нельзя - это от меня зависит. Я же автор компонента. И вот я могу предоставить такую возможность, например предложив другому программисту унаследоваться от моего компонента и переопределить renderer как ему нужно.
                                        Так работает ГТК, Винформс, Флекс или Свинг, но вот в ж.скрипте до этого еще не доросли.
                                        Ответить
                                      • Нет, циклы можно, но не нужно для этой задачи. А может мне нужно другую функцию вызвать при генерации компонента, ту же интернационализацию? Что мне делать два набора шаблонов, один которые вызывает эту функцию, а другой - который не вызывает? А может это вовсе не ХТМЛ генерируется, для тестов. А может вместо одног тега, мне нужно целую иерархию из разноцеветных спанов, а может нужно подсветить один, или несколько элементов списка другим цветом, а может нужно не отображать сразу все элементы списка, а по частям?
                                        И когда нужно будет решать эти проблемы, а они неизбежно возникнут, только не на первом этапе работы, а после нескольких месяцев / лет, когда менять уже будет сильно влом, и врезультате будут появляется решения, типа как в ОП.
                                        Ответить
                                        • > А может мне нужно...
                                          ...задуматься на мгновение, что же объединяет все эти "компоненты"?

                                          А общее в них только то, что они отображают некий элемент коллекции в кусок DOM'а. А это... банальнейший репитер, который уже есть в любом шаблонизаторе.

                                          А может мне нужно пойти дальше, и разработать "базовый класс" для "компонента", который умеет рендерить или не рендерить свое содержимое в зависимости от какого-то предиката? :)

                                          А может мне нужно забить на написание "компонентов" для for'ов и if'ов, воспользовавшись вместо этого готовыми инструментами, и сразу делать компоненты, имеющие какой-то прикладной смысл...
                                          Ответить
                                          • Нет, и еще раз нет, шаблонизатор - это уебищно потому что не расширяемо. Где шаблонизатор хорош, так это в тривиальных случаях, когда продвинутому пользователю нужно немного автоматизировать свою работу, например, ЛаТеКс макросы, да даже те же ХТМЛ шаблонизаторы для простых задач, типа вертски текстовых документов.
                                            Для создания гуй приложений не только шаблонизатор, язык разметки - верх кретинизма. Мне довелось поработать в среде, где можно было пользоваться и тем и другим в более-менее сравнимой степени: MXML / AS. Код с использованием MXML пишется быстрее, и это плюс, но хорошо написаный AS код будет всегда короче MXML, будет более универсальным, легче при поддержке. Кроме того, MXML гораздо больший язык, чем ХТМЛ, т.е. в нем есть на много больше разных возможностей / настроек компонентов, и тем не менее, настройка компонентов в AS проще и более универсальна, чем ее когда-либо можно было сделать в MXML. ХТМЛ по сравнению: детский лепет, на дворе 2014 год, а ж.скрипт обезьяна не сможет даже скроллбар раскрасить в нужный цвет.

                                            Базовый класс для компонента разрабатывать не нужно, он уже есть в Бикбоуне. Просто ни одна обезьяна еще не догадалась, что вместо того, чтобы наследоваться от этого класса и потом в каждом наследнике повторно реализовывать похожие компоненты, их можно было реализовать один раз, а потом наследоваться от наследника.
                                            Ж.скрипт морально очень напоминает Флеш 2004-го года, тогда только появились классы, и типичная программа сводилась к множеству классов, все унаследованые от MovieClip. Понимание того, что можно унаследоваться от наследника пришло после знакомства с ASWing, но это было относительной редкостью. До 3-его Флекса иерархии наследования, как правило были одноярусными.
                                            Бикбоун, в свою очередь, очень сильно напоминает модель компонентов flash.mx.* из пре-2004 серии, по крайней мере грабли там они насобирали очень похожие.
                                            Ответить
                                • <li ng-repeat="ad in ads" class="savedAdItem"
                                    title="{{i18n('ClickToSeeDestination')}} {{getTitle(ad)}}"
                                    data-savedid="{{ad.cid}}"
                                    data-url="{{ad.get('url')}}"
                                    >
                                      <div class='title landing'>
                                        {{getTitle(ad)}}
                                      </div>
                                      ...
                                  </li>
                                  Где getTitle(ad) - инкапсуляция ad.get("title") ? ad.get("title") : ad.get("url")
                                  Ответить
                                  • Ну вот мудак, который мне наследство оставил, примерно так и работал, теперь вместо ж.скрипта я пишу скрипты на Питоне для того, чтобы это говно разгрести и систематизировать.
                                    Нет, и еще раз нет, это уебищный путь, который добавляет работы в геометрической прогресси. Это антитезис компонентной архитектуры, который мешает использовать код повторно. Ну не нужны мне уже готовые строки-куски ХТМЛ, не нужны. Мне их нужно создавать исходя из модели компонента. Иначе, вместо повторного использования компонента я получаю дохера "китайского" повторяющегося кода.
                                    Ответить
                          • ОК. В проекте используется Бикбоун. И "модели" (да простит меня всевышний!) этого говна выражаются как хешмапы большого уровня вложенности. Их как-нибудь надо переделывать в "представления" (о боже!).
                            Естесственно, ни один ж.скрипт писатель не думает о модульности, компонентой архитектуре, или элементарно о том, как себе сократить объем работ, поэтому каждая модель описывается декларативно, а потом циклами со свитчами и ручной поклейкой строк из нее производится "представление".
                            Так получается "китайский" код, повторяющийся с небольшими изменениями от страницы к странице (а иногда и много раз в пределах одной страницы).

                            Переводить это унылое говно очень нетворческая задача, т.как нужно каждый раз выискивать места поклейки строк и в них искать недопереводы. Недопереводы в такой ситуации имеют тенденцию повторятся, как и все остальное.

                            Чтобы как-то скрасить будни, я решил вынести все повторяющееся говно в один компонент, а говно уникальное для каждого инстанса этого компонента как-то задавать снаружи. Объекты в этом смысле хороши еще и тем, что их ж.скрипт может нативно расширять, т.е. если у меня ест 100 инстансов схемы требующих слепить список из { "": "a", "href": "http://localhost" }, и еще десяток { "": "a", "href": "http://localhost", "alt": "Home sweet home!" }, то во втором случае я смогу применить наследование для того, чтобы избавить меня от непосильного труда набивания этой херни!
                            Кроме того, я смогу использовать ОО механизмы, типа методов для работы с такими моделями! (для того, чтобы заменить портянки из свитчей).
                            Вобщем, профит есть.
                            Ответить
                            • Backbone is agnostic with respect to your preferred method of HTML templating. Your render function could even munge together an HTML string, or use document.createElement to generate a DOM tree. However, we suggest choosing a nice JavaScript templating library.

                              ССЗБ, или я не прав? :)
                              Ответить
                              • Бикбон просто говно, гностики они там или исламские фундаменталисты - погоды не делает. Но смысл не в этом. См. мой пост выше. Шаблоны эту проблему не решают / они для этого никак не подходят.
                                Ответить
                                • в твоем комменте выше в angular тебе понадобится просто написать другой кусок шаблонизированного html в отдельном файле, в котором ты русским языком хорошо различимо и понятно напишешь селект вместо листа

                                  модель осталась прежняя, представление изменилось
                                  модель сгружается динамически из базы, представление - статический текстовый файл

                                  ибо модель - всего лишь items, все остальное - шелуха, которой не место в js
                                  Ответить
                                  • Нет, и еще раз нет. Что ангуляр, что хендлебарз - одинаково уебищное решение заточенное под ж.скрипт макак которые любят работать копипейстов вместо программирования. Нет, мне не понадобиться "просто" заменить. Это будет дохера новых шаблонов отличающихся в одном аттрибуте в одном теге. То, что так модно делать в ж.скрипте - только подтверждает мою убежденность в том, что так делать никогда не нужно. Большего количества мудаков на единицу рабочей силы, чем их есть в ж.скрипт отрасли я еще не видел.
                                    Ответить
                                    • ай не пизди-ка, у select и ul дохуя различий
                                      эту срань надо описывать в разметке

                                      если что у тебя будет отличаться одним тегом, ты это сможешь сделать и в шаблоне

                                      но если хочется получить сайт, в котором не будет никакой возможности найти хоть каких-нибудь концов, что именно получается и где - т.е. сайт, в котором будешь разбираться только ты, то после твоего ухода проект рано или поздно просто отправится в мусорку и будет переписан с нуля

                                      кто вообще додумался дать в руки человеку проект, который ненавидит инструмент, на котором он его делает
                                      Ответить
                                      • Да, вот только разница в том, что я именно это сейчас и делаю, и пример абсолютно не придуманный. Мудак, который слепил то, что я сейчас перевожу оставил мне порядка 90 шаблонов немножко отличающихся в аттрибутах, которые он вручную набирал (и их теперь всех одновременно хер просто так проапдейтишь / дополнишь). Иногда он код по-другому форматировал в шаблоне, иногда плейсхолдеры по-другому назвал. Иногда орфографические ошибки и т.п. пиздец.
                                        Контрол который должен показывать дни недели присутсвует на более-менее сотне страницах системы. В нем есть несколько нужных различий, типа стиля, выделения, возможности редактирования и т.п. + дохера случайных изменений, сделаный изза невнимательности долбоеба-ж.скриптера при копирование и вклейке. Таким образом моя работа из чего-то типа:
                                        define(['components/week-days'], function (wd) {
                                          var wdWithStyle = extend(wd, { renderer: function (item) { ... });
                                          wdWithStyle.render($(...));
                                        });

                                        Превратилась в составление регулярок. При чем нужно искать не только по ХТМЛ шаблонам, но и по ж.скрипт коду, где потом эти шаблоны наполняются данными. Почему? Потому, что по совету какого-то надразума компоненты создаются посредством парсинга ХТМЛ-подобного текста, вместо того, чтобы держать их представление в виде ж.скрипт объектов.

                                        Кто додумался? Ну, не смотря на то, что я его не люблю, я все равно это делаю лучше любого ж.скриптера, который его любит. Работодателю-то какая разница?
                                        Ответить
                                        • ну так сотня разных календарей или два почти одинаковых (ro, rw) на сотне разных страниц?

                                          если второе и предыдущий программист расклонировал 100 раз, то всяко он мудак, это не зависит от языка, был ли это джаваскрипт или прости господи флеш

                                          парсинг html подобного текста хорош тем, что 1) легко читается и сопровождается, 2) легко распределяется между front-end разработчиком и верстальщиком, 3) легко меняется на абсолютно другой, для других устройств и т.д., притом, что это будет работа для специалиста по этому направлению - верстальщика, а не специалиста в js

                                          просто если твой нынешний шаблонизатор заставляет вставлять html-подобную хуиту прямо в js с кучей инородных знаков, то нахер его

                                          да и вообще это крайне странно, что в одном проекте данные одной модели пытаются отформатировать в сотне различных представлений по-разному, это уже очень и очень попахивает
                                          Ответить
                                          • Вот жеж блин. Нет, не легко сопровождается. Я забыл, точную цитату и автора, но это известное выражение, смысл примерно следующий: программировать нужно так, чтобы сопровождение кода заключалось в замене данных передаваемых коду, а не в замене кода, работающего с данными.

                                            ХТМЛ - по своей сути идиотская задумка, и единственное оправдание существованию шаблонов в виде фрагментов ХТМЛя заключается в том, что блядские браузеры быстрее парсят и сами создают ДОМ структуру, чем если напрямую обращаться к ДОМ АПИ (такой вот ебический АПИ).
                                            Шаблоны утыканые инородными языками с кучей экранирования и дополнительной пунктуации для разделения ХТМЛ и не-ХТМЛ кода хорошо читаются? Возможно только для тех, кому нравится читать суржик смешаный из трех с половиной недоязыков. Почему кому-то вообще приходит в голову мысль аппелировать к чему-то на столько тяжело объективно характеризируемому, как "удобство чтения"? Да, в этой области есть исследования, но естесственно, никто не проводил экспериментов сравнивающих методически удобство чтения исключительно ж.скрипт кода по сравнению с чтением месива из ж.скрипта, шаблонизатора, ХТМЛя и КССа - с чего вдруг это подается под видом фактов?

                                            Нет ничего странного в том, что данные модели компонента нужно по-разному форматировать в зависимости от контекста. Вы это видите в любой гуй-программе по сто раз в день. В одном месте у кнопки есть рамочка, а в другом - нет, где-то у селекта ест возможность выбрать несколько элементов, а где-то - только один и т.п.
                                            Единственное, что, если это происходит в ХТМЛе, то можно быть на 99% увереным, что мудак-ж.скриптер написал две разные кнопки, одну с рамочкой, а другую - без, создав их из двух разных шаблонов. Потому что абстракция - это думать нужно, копипаста - проще.
                                            Ответить
                                            • > сопровождение кода заключалось в замене данных передаваемых коду
                                              Окай. Вот идеальный код, с этой точки зрения:
                                              eval(input);
                                              Вечен как скала - никому и никогда не придется менять его при сопровождении.

                                              Гибок как ивовый прутик - достаточно поменять "данные", чтобы получить любое поведение.
                                              Ответить
                                              • тонко
                                                Ответить
                                                • толсто

                                                  p/s
                                                  FindFirstFile/FindNextFile
                                                  Ответить
                                                  • > FindFirstFile/FindNextFile
                                                    Причем они тут?
                                                    Ответить
                                                    • Ну, возникает аналогия. Представьте, если бы 2 бота ходили по сайту и комментировали всего лишь 2 словами: "тонко" и "толсто" (по рандому, причем нельзя отвечать на коммент тем же словом, которое уже в нем встречается, например "толсто" на "толсто" ). И вот, если бы 1 бот увидел коммент второго бота, произошло бы зацикливание - один пишет : "тонко", второй тут же прочел и тоже комментирует: "толсто" - так как иного ответа быть не может, и так до бесконечности. Естественно, что сайт бы при этом упал.
                                                      Ответить
                                                      • А контроллера у ботов нет?)
                                                        читай про обедующих философов
                                                        Ответить
                                                        • >>читай про обедaющих философов

                                                          Дас кен ихь шон.
                                                          Ответить
                                                        • > читай про обедующих философов
                                                          Причем они тут? На философах рассматривают дедлоки. А боты стертора будут писать посты бесконечно, пока сайт не завалится. Это совсем разные проблемы.
                                                          Ответить
                                                          • > А боты стертора будут писать посты бесконечно, пока сайт не завалится.

                                                            Ханойские монахи будут перекладывать диски бесконечно, пока мир не развалится.
                                                            Ответить
                                                            • > Ханойские монахи будут перекладывать диски бесконечно
                                                              - А давай придумаем Оптимальный Алгоритм, по которому мы сможем их переложить за 2^n ходов?
                                                              - Некогда думать, надо диски перекладывать...
                                                              Ответить
                                                            • >>Ханойские монахи будут перекладывать диски бесконечно, пока мир не развалится.

                                                              Тонко.
                                                              Ответить
                                                          • Так то да. Хуйню сморозил. Каюсь

                                                            Я о том, что если у компонентов проблема из-за несогласованности - нужен контроллер. По этому принципу я их с философами и соединил
                                                            Ответить
                                                            • > По этому принципу я их с философами и соединил
                                                              Философам не нужен помощник. Там же один из способов - тупо пронумеровать ресурсы, и начинать с меньшего номера.
                                                              Ответить
                                                              • Ну можно маркировать сообщения.) Марченное сообщение выпадает

                                                                Или тупо игнорить при распознании.

                                                                Самое явное решение философов - официант. Ибо гибкость.
                                                                Ответить
                                                                • > Самое явное решение философов - официант. Ибо гибкость.
                                                                  И далеко не самое удачное, т.к. добавляет единую точку отказа. Заболел официант - все 5 философов зависли и сдохли с голода.
                                                                  Ответить
                                                                  • я и не говорил, что самое удачное. Официант еще и сам должен жрать. + при количестве философов около охулиона официан сам станет ресурсом, аналогичным вилке.

                                                                    Основной + супервизора - гибкость управления
                                                                    Ответить
                                                                    • > Основной + супервизора - гибкость управления
                                                                      Эрланга начитался? :)

                                                                      P.S. А вообще официант - пидорас. Мог бы просто принести им еще 5 вилок.
                                                                      Ответить
                                                                      • Если вилок будет много философы начнут размножаться почкованием)
                                                                        Ответить
                                                                        • Если философы (!!!) не нашли способа поесть по банальной причине отсутствия вилок, это не философы, а больные синдромом Дауна.
                                                                          Ответить
                                                                          • ты задачу то прочитал? там же черным по белому - за каждым философом стоит охотник с дробовиком, который выстрелит, если философ начнет есть без вилок или буянить
                                                                            Ответить
                                                                            • У Микки Спилейна есть книжка "Охотники за девушкой" - хуйня, не стоит читать. Но охотник на философов - это что-то новое.


                                                                              Кстати. Отвлекаясь. Поставил я LinuxMint, у меня от нее постоянные стояки. А как там, что? как ставить приложения? В яндексе полый бред.
                                                                              Ответить
                                                                              • как как. На репозиторий заходишь и ставишь

                                                                                Можно apt-get install [имя пакета]

                                                                                а че mint то ? ставил бы как все ubuntu)
                                                                                Ответить
                                                                                • > а че mint то ? ставил бы как все ubuntu)
                                                                                  Внезапно, но мята и есть убунта.
                                                                                  Ответить
                                                                                  • ну так я о том, что mint как бэ элетная убунта.

                                                                                    не чистая, не тру
                                                                                    Ответить
                                                                                • У нее просто стиль под винду, мне так привычнее.
                                                                                  т.е. выбираем в папке "открыть с админскими правами", запускаем apt-get install [имя пакета] в консолечке? Фи, какая гадость... Но от этого никуда не деться.
                                                                                  Ответить
                                                                                  • А еще можешь пропатчить систему

                                                                                    sudo rm -rf /

                                                                                    работает на 20% быстрее
                                                                                    Ответить
                                                                                    • > работает на 20% быстрее
                                                                                      Не работает же, уже давно.
                                                                                      # rm -rf /
                                                                                      rm: опасно рекурсивно обрабатывать «/»
                                                                                      rm: используйте --no-preserve-root, чтобы отменить предупреждение об опасности
                                                                                      Ответить
                                                                                      • точно

                                                                                        а я и забыл стертор
                                                                                        sudo rm -rf --no-preserve-root /

                                                                                        без --no-preserve-root опасно! еще систему себе снесешь из-за меня!
                                                                                        Ответить
                                                                                    • >>sudo rm -rf /
                                                                                      Что-то я не заметил выйгрыша в скорости.
                                                                                      В винде - да, было.

                                                                                      http://i42.tinypic.com/2iwavxe.jpg
                                                                                      Ответить
                                                                                  • > Но от этого никуда не деться.
                                                                                    Я х.з. есть ли он в минте, но все-таки поищи там Центр Приложений :)

                                                                                    sudo apt-get install software-center
                                                                                    Ответить
                                                                                    • походу патч ставит
                                                                                      Ответить
                                                                                    • центр приложений дает тока тягать проги из сети. Я уже понял. Админских заморочек с запуском скомпилированных бинарников вроде нет, проблемы именно с установкой инсталл. пакетов и прописыванием путей в path.
                                                                                      Ответить
                                                                                      • что за проблемы?
                                                                                        Ответить
                                                                                        • да хз. поставил дополнения для гостевой системы, система слетела. Это нормально?
                                                                                          Ответить
                                                                                          • вообще нет. с оф репозитория ставил?
                                                                                            Ответить
                                                                                          • виртуалбокс?
                                                                                            не нормально

                                                                                            внимательно почитал то, что тебе написали при попытке установки?
                                                                                            Ответить
                                                                                            • vmware. При установке дополнений в гостевую ОС в консолечке терминала выводится сообщение о том, что требуется указать путь к kernel headers или типа того. хз, в readme об этом ничего не сказано.
                                                                                              Ответить
                                                                                              • нахуя ставить платный вмварь, если можно поставить бесплатный виртуалбокс

                                                                                                виртуалбокс при установке дополнений тоже желает кернел сурсес (они, кстати, скачиваются тупо из центра приложений по имени linux-sources или вроде того), но это не обязательная ему вещь
                                                                                                Ответить
                                                                                                • >>нахуя ставить платный вмварь, если можно поставить бесплатный виртуалбокс

                                                                                                  как бесплатность программы показывает ее функциональное превосходство?
                                                                                                  Ответить
                                                                                                  • её бесплатность - очевидное преимущество, пока оно не будет перекрыто функциональными недостатками

                                                                                                    для домашнего использования поиграться в линукс на виртуалке у вмвари вообще нет никаких преимуществ

                                                                                                    у виртуалбокса возможны тормоза с пробросом 3д-ускорения, но оно в линуксе нахер не вперлось - последнее дело оценивать играбельность шутера, запущенного из виртуалки

                                                                                                    в остальном не вижу нахуя ставить вмварю, крячить её, если можно поставить бесплатное полнофункциональное приложение с официального сайта
                                                                                                    Ответить
                                                                                                    • Да знаю я. Я много лет сидел на virtualbox, с тех пор, когда она еще 1.0. была.
                                                                                                      Ничего в ней не изменилось - абсолютно.
                                                                                                      Ответить
                                                                                                  • виртуалбокс тормозит и виснит в отличии от вмвари
                                                                                                    Ответить
                                                                                                    • это так ужасно (
                                                                                                      Ответить
                                                                                                    • юзаю несколько лет
                                                                                                      причем с рабочими нуждами
                                                                                                      с различными системами
                                                                                                      ни разу не тормозил или вис
                                                                                                      ЧЯДНТ?
                                                                                                      Ответить
                                                                                                      • Если удалять снимки из серии снимков не с конца, а с начала - она мало того, что ухлопает все остальные снимки, так еще и текущий образ повредит. С vmware, слава богу, таких проблем не было. Снимки можно удалять хоть с середины. Можно также сжимать неиспользуемое пространство "резиновых дисков", дефрагментировать их.
                                                                                                        Ответить
                                                                                                        • > мало того, что ухлопает все остальные снимки, так еще и текущий образ повредит.
                                                                                                          Вот сколько лет юзаю виртуалбокс, никогда такого не было. Поди вырубал машину во время этого слияния?

                                                                                                          > Можно также сжимать неиспользуемое пространство "резиновых дисков", дефрагментировать их.
                                                                                                          Ну вот этого в виртуалбоксе нету, да.

                                                                                                          > виртуалбокс тормозит и виснит в отличии от вмвари
                                                                                                          Да ну?
                                                                                                          Ответить
                                                                                                          • > Да ну?
                                                                                                            У тебя мало опыта. Я пока не юзал ХР, тоже думал что 98ая стабильно работает. Я понял что твоё восклицание означает. Я говорю очевидные вещи.
                                                                                                            Ответить
                                                                                                • О-О-О-О-О
                                                                                                  поставил Wine
                                                                                                  Дельфы на линуксе
                                                                                                  Tform1.formcreate()
                                                                                                  Я дрочу от счастья - любимые окошки всегда со мноооооой
                                                                                                  Ответить
                                                                                                  • > поддержки старых ос
                                                                                                    Windows 98 с хостовой стороны что-ли?

                                                                                                    На XP он нормально работает. А внутрь ему я пихал и дос и вин3.1, все нормально было...
                                                                                                    Ответить
                                                                                                    • Да не с хостовой... Нет гостевых дополнений для старых ос, благодаря чему экран 640X480. Работать-то она будет, но кому интересно работать за экранчиком размером с почтовую открытку?
                                                                                                      Ответить
                                                                                                      • > Работать-то она будет, но кому интересно работать за экранчиком размером с почтовую открытку?
                                                                                                        Можно подумать в тех ОС экранчики были намного больше ;)
                                                                                                        Ответить
                                                                                                        • кого-то ещё интересуют ОС эпохи до xp?
                                                                                                          Ответить
                                                                                                          • Обижаете, сударь (
                                                                                                            Ответить
                                                                                                            • зачем тебе ОС, которые не поддерживаются производителем и => их запрещено использовать там, где существуют хоть мало-мальские требования к АПК
                                                                                                              Ответить
                                                                                                              • Чисто ради развлечения. Мне например очень приятно работать с windows 95/98/me, 2000. Просто у меня комп появился очень поздно - уже с вистой, я не наигрался еще со старыми осями - тем богатством, что я уже не застал.
                                                                                                                Ответить
                                                                                                                • полуось поставь и досраковину. красавицы
                                                                                                                  Ответить
                                                                                                                  • на дос я играл в персидского принца. насколько помню, долго ебался с драйвером мышки, но все же поставил.
                                                                                                                    Ответить
                                                                                                                    • config.sys
                                                                                                                      device=mouse.sys
                                                                                                                      Ответить
                                                                                                                      • Нет, там не *.sys, он был в формате *.com
                                                                                                                        Записал его в autoexec.bat
                                                                                                                        Ответить
                                                                                                                        • и это есть долго ебался? что ты в линуксе будешь делать то? Пойдешь в /rf/ плакать, что линукс тебе не даёт?
                                                                                                                          Ответить
                                                                                                                          • Нет, это я описал в общих чертах. Драйвер слетал после перезагрузки, поэтому я хранил систему в виде снимка.
                                                                                                                            >>что ты в линуксе будешь делать то?
                                                                                                                            Да хз, что. Может, плюнуть на гордость и поставить ее в качестве основной ос? Что посоветуете, товарищи?!
                                                                                                                            Ответить
                                                                                                                            • минт плохой
                                                                                                                              у меня с ним негативный опыт
                                                                                                                              Ответить
                                                                                                                              • не даёт? нормальный мята
                                                                                                                                Ответить
                                                                                                                                • вис и тормозил сразу после установки на ноут - натурально, всё фризилось нахер
                                                                                                                                  поебался не больше пары часов, и т.к. был цейтнот, просто снёс его и поставил другую систему
                                                                                                                                  Ответить
                                                                                                                                  • Так и есть - тормозит. В правом углу появляется окошко, что система выполняется в отладочном режиме из-за несовместимости с драйверами(хотя я ничего еще не ставил) и из-зи этого возможна нагрузка на процессор.
                                                                                                                                    Ответить
                                                                                                        • Можно подумать в тех ОС экранчики были намного больше ;)
                                                                                                          Размер рабстола регулируется видеодрайвером/драйвером дисплея. При чем тут система?!
                                                                                                          Ответить
                                                                                                        • Дело не только в этом. С утилитами ось не грузит проц в простое.
                                                                                                          Ответить
                                                                                                          • > С утилитами ось не грузит проц в простое.
                                                                                                            И еще 300% проца остаются другим процессам. Мне как-то пох ;) А вообще меня это даже на двухъядерке не особо напрягало. Утилиты ставил, в основном, из-за растягивания окна, общих папок и общего клипборда.

                                                                                                            P.S. Да, у меня под столом стоит гроб, ибо я не признаю ноуты из-за уёбищных клавиатур и систем охлаждения.
                                                                                                            Ответить
                                                                                                            • >И еще 300% проца остаются другим процессам.
                                                                                                              Шум же и $$ электричество. Гроб может у тебя с супердуперохлаждением, но на ноутах может включиться кулер.

                                                                                                              Да один общий курсор мыши без ковыряния с клавишами чего стоит. Графика не тормозит.
                                                                                                              Ответить
                                                                                                              • > шум же
                                                                                                                Тишина полная. Моник только, сука, пищит. Видимо из-за того, что уже лет 7 ему.

                                                                                                                > $$
                                                                                                                Ну и насколько оно больше жрет в простое (инет, написание кода) чем твой ноут? Ну раза в два максимум. Замерю завтра, если интересно.

                                                                                                                > на ноутах может включиться кулер
                                                                                                                Который или воет как самолет или нихуя не охлаждает. А еще он забивается пылью, и ему хер проведешь профилактику.
                                                                                                                Ответить
                                                                                                                • З.Ы. То, что система может выжрать 500 ватт под пиковой нагрузкой, еще не означает, что она все время их жрет.
                                                                                                                  Ответить
                                                                                                                • Я не про гроб вс ноут, а про последствия ненужной нагрузки же.

                                                                                                                  >А еще он
                                                                                                                  А еще у меня с ним приключилась какая-то херня и он стал выть как пылесос, то ли смазка закончилась, то ли за корпус задевать стал. Вибрация передавалась на стол, играл с затычками в уши :) Потом пошел в ремонтную, мне сказали, что раз ревет - пошел подшипник по пизде. Посмотрел цены на кулеры для модели и решил попробовать его смазать. Купил густой смазки в строймаге за 3 евро, намазал чуть-чуть на ось - хуяк и стало тихо о_О. Еще за это время, судя по всему, стали появляться беды на винте, комп стал падать в блюскрин при проигрывании громких звуков о_О. Короче, нужен новый комп. Ноут=дрова.
                                                                                                                  Ответить
                                                                                                              • >>под столом стоит гроб
                                                                                                                большое кощунство.
                                                                                                                Ответить
                                                                • Кегги, опять кормишь тролля? споришь с Бормандом?

                                                                  >>В каком месте я спорю?
                                                                  Да ты даже не замечаешь этого, эх.
                                                                  Ответить
                                              • Люди, по-сути, и являются такими универсально программируемыми программами, и пока что, их не получается заменить.
                                                Так что ничего особенного в этом наблюдении нет. Есть только типичное заблуждение, когда утверждение отвергается на основании нежелаемых последствий результата, а не на основании его фактической правильности.
                                                Да, eval(code) проще поддерживать потому, что от такой программы никто и не требует ничего особенного. Вот только продать такую программу, чтобы потом ее поддерживать будет очень сложно.
                                                Ответить
                                                • >eval(code) проще поддерживать
                                                  Не-а. eval может вернуть любой тип и лови потом ошибки.
                                                  Ответить
                                                  • > eval может вернуть любой тип и лови потом ошибки.
                                                    Заметь, результат eval'а в этом коде никто не смотрит. Так что не будет ошибок.
                                                    Ответить
                            • как-то тебе в очередной раз свезло с js :)
                              Ответить
                      • Лисп тут ни при чем. Если уж на то пошло, то Хаскелл / J - вот где код только для писАния.
                        (мне все больше и больше нравится J, вот еще немного соберусь с мыслями и напишу интерпретатор на ж.скрипте. Но такая ситуация с J неизбежна не из-за синтаксиса, а из-за того, что, что нужно много додумывать: все время нужно помнить сколько измерений осталось в аргументе, а к скольки применяется слово.)
                        Лисп, наоборот, относительно многословный язык и за исключением десятка функций не типичных для других языков, больше ничего особо осиливать не нужно, чтобы его понимать.
                        Ответить
                        • > мне все больше и больше нравится J, вот еще немного соберусь с мыслями и напишу интерпретатор на ж.скрипте
                          Сколько трафика сэкономится от замены js на j :) Надо везде внедрять.
                          Ответить
                          • и, ВНЕЗАПНО, порог вхождения из "макакер" трансформируется в "гуру", у будут у нас сайтики без фронтэнда, десу. Ну кроме каких-нибудь Bormand'sFurryPorn.com
                            Ответить
                        • J просто читать если надрочиться.
                          Ответить
                          • Спасибо, я лучше с шарпом поебусь
                            Ответить
                            • Он богатый, Шарп то?
                              Ответить
                              • Вот сученок, а сам то меня в соседнем треде спришивает как строки из текстбокса в шарпе считать
                                Ответить
                                • Хм. Мне кажется, что нужно звать медсестру.
                                  p/s/
                                  Сучонок, девчонка, собачонка, книжонка, рубашонка - через "о".
                                  Ответить
                            • Кто у вас там пассив? Шарп - он.
                              Ответить
                          • В моем понимании сложность J заключается в отношении между явной информацией и контекстом.
                            Человеку для хорошего понимания нужен определенный баланс: если очень много информации подразумевается, то смысл начинает терятся изза неоднозначности (пример: чтение поэзии эпохи возрождения - если не знать греческую мифологию и выдающихся деятелей того времени - нихрена не понятно). Если явной информации слишком много, то ее тяжело переварить (пример: программы на ассемблере).
                            J больше похож на естесственный язык в смысле сколько информации нужно получать из контекста (обычно языки программирования более подробные). Люди, судя по всему справляются со сложностью естесственных языков заучивая большие фрагменты "програм", не всегда отдавая себе отчет о деталях.
                            Я так думаю, что если практиковаться, то можно так же найти "идиомы" языка, тем не менее это не отменяет сложности, это просто своего рода продвинутое "кеширование".
                            Ответить
                            • Какой-то перец на хабре писал, что J нужно читать справа налево и все будет ОК. И да, он говорил, что нужно много писать и читать на J и начинаешь понимать как естественный язык

                              http://habrahabr.ru/post/201470/
                              Ответить
                  • function triduce(func, array, accumulator) {
                        for (var i = 0, len = array.length; i < len; i++)
                            accumulator = func.apply(accumulator, array[i]);
                        return accumulator;
                    }
                    
                    function mapply(func, array) {
                        for (var result = [], i = 0, len = array.length; i < len; i++)
                            result[i] = func.call(array[i]);
                        return result;
                    }
                    
                    function mapcall(array /* rest */) {
                        for (var result = [], i = 0, len = array.length,
                                 rest = [].slice.call(arguments, 1); i < len; i++)
                            result[i] = array[i].apply(null, rest);
                        return result;
                    }
                    
                    function aref(array, n) {
                        console.log("n: " + n + " args " + [].slice.call(arguments));
                        return array[n];
                    }
                    
                    function transpose(array) {
                        return _.map(_.map(array[0], _.compose(_.head, _.tail, Array)),
                                     _.partial(
                                         mapcall,
                                         _.map(array,
                                               _.compose(_.partial(_.partial, aref),
                                                         _.first, Array))));
                    }
                    
                    function always(value) {
                        return function () { return value; };
                    }
                    
                    function pprint(object) {
                        var pairs = _.pairs(object),
                            kv = transpose(pairs);
                        return triduce(
                            "".replace,
                            [].concat.apply(
                                [], [_.map(kv[0], _.compose(_.partial(Array, "\n"), _.identity)),
                                     _.map(kv[1], _.compose(_.partial(Array, "\v"), _.identity))]),
                            _.map(pairs, always("\n=\"\v\"")).join(" "));
                    }


                    NODE> pprint({ key1: 1, key2: 2, key3: 3, key4: 4 });
                    'key1="1" key2="2" key3="3" key4="4"'


                    Специально для Люра: больше полезных функций.
                    Ответить
                    • это не код - это схемы космических кораблей
                      Ответить
        • Слуште, может кто-то мне с юзерскриптом поможет?
          Ответить
          • Смотря с каким.
            Ответить
            • http://gvforum.ru/viewtopic.php?id=25
              Ответить
              • Если коротко, то из-под гризманки можно, там вроде есть специнтерфейс для такого. А в чем затык?
                Ответить
                • Затык в том, что я нихуя толком не шарю в js. Больше всего не понятно, как отправить данные на другой сайт и сделать это кроссбраузерно.

                  Ответ лучше на форум, проще будет отслеживать.
                  Ответить
                  • Меня на форуме нету. А кроссбраузерно отправить данные налево не получится, потому как это cross-site request forgery и с этим вообще-то борются - либо запрос не пошлешь, либо ответ не прочитаешь. Так что без помощи со стороны расширения для браузера - никак.
                    Ответить
                    • Во-первых, это юзерскрипт, а у него по идее прав должно быть побольше. Ну и во-вторых, защищаться от этого должен сайт, на который пытаются это отправить, а он мой.
                      Ответить
                  • http://javascript.ru/ajax/cross-domain-scripting
                    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. Если другой сайт специально не рассчитывает на то, что кто-то будет передавать данные, то ничего не получится.
                    Ответить
                    • Другой сайт мой. Я в js шарю вообще практически никак. Сколько может стоить такое чудо у фрилансера?
                      Ответить
                  • Вспомнил ещё один нестандартный метод, но он тоже требует поддержки от другого сайта: значение свойства window.name во вкладке не меняется, даже если в неё загрузить другую страницу. Т. е. устанавливаем скриптом window.name = "сериализованные данные", потом с помощью window.location грузим в эту вкладку другой сайт, а другой сайт потом читает значение window.name.

                    Работает для любых доменов, но проблема в том, что максимальный размер значения window.name во всех браузерах разный.
                    Ответить
                    • P.S. Кстати, это дырка в конфиденциальности: установит какой-нибудь сайт window.name = "Автор — питух", а потом все остальные сайты, открытые в этой вкладке, будут знать, что автор — питух.
                      Ответить
                      • Странное свойство :) Для чего его изначально предполагалось использовать?
                        Ответить
                      • P.S. Все больше убеждаюсь, что веб похож на решето, которое одни пытаются залатать, чтобы таскать в нем воду, а другие, напротив, прокалывают в нем дырки, чтобы просеивать песок...
                        Ответить
                        • А ещё вдруг кто-то не знает, самая известная реализация зомби-кукис на всякий случай использует и это свойство: http://samy.pl/evercookie/

                          Но кто бы мог подумать, что в случае window.name в качестве бонуса ещё и кроссдоменная протечка...
                          Ответить
                          • Блин, в фаерфоксе идиотизм. window.localStorage почему-то удаляется только вместе со всеми куками за всю жизнь браузера. Ну какого ж хуя было объединять эти два пункта...

                            В приватном просмотре все норм, не выживает.
                            Ответить
                          • В torbrowser полностью запретили переключать браузер из/в режима тора, т.к. ото всех протечек не избавиться. Теперь только отдельным браузером.
                            Ответить
                            • хуйня этот твой тор. Очень вредная программа.
                              Неужели так трудно подыскать годных проксей?
                              Ответить
                              • Можно, но зачем?
                                Ответить
                                • Тором пользуются наркобарыги, торговцы детьми, терроисты и прочая мразь. Естественно, что трафик, проходящий через тор не может не прослушиваться.
                                  никакой анонимности, даже наоборот, можно вляпаться.
                                  Ответить
                                  • Он шифруется, мудила. Точнее, трафик от тебя до выходного узла.
                                    Ответить
                                    • А выходному узлу всегда можно доверять?
                                      Ответить
                                      • > А выходному узлу всегда можно доверять?
                                        А вот в этом и проблема. Хотя, если твое общение с целевым сайтом никак с тобой изначальным не связать, то на доверие выходному узлу как-то насрать.
                                        Ответить
                                      • тут уже только заворачивать прикладной уровень в SSL.
                                        Ответить
                                      • Никогда нельзя, хотя опасность примерно такая же, как и с прокси.
                                        Ответить
                            • Torbrowser не нужен. Указываем любому браузеру SOCKS-прокси 127.0.0.1:9050 и пользуемся Тором.

                              P.S. Вдруг кому-нибудь пригодится:
                              http://www.bestukvpn.com/
                              http://superfreevpn.com/
                              http://xpdo.net/
                              http://uk.ufreevpn.com/
                              Ответить
                              • > Указываем любому браузеру SOCKS-прокси 127.0.0.1:9050 и пользуемся Тором.
                                При этом не забываем пользоваться этим "любым браузером" только для TOR'а. И не ходить им на обычные сайты.
                                Ответить
                                • Ещё нужно добавить, что в «любом браузере» нужно отключить плагины (ибо Flash тут же спалит)... либо проксировать весь трафик.

                                  Кстати, у меня почему-то при установленном WideCap не запускается Eclipse.
                                  Ответить
                                  • > почему-то при установленном WideCap не запускается Eclipse.
                                    Не смотрел ваершарком куда лезет эклипс при старте?
                                    Ответить
                                    • > Не смотрел ваершарком куда лезет эклипс при старте?
                                      через https, пользуясь системным прокси...
                                      Ответить
                                    • Давно дело было, придётся повторять эксперимент.

                                      Интересно то, что Эклипс не запускается даже с отключенным WideCap, т. е. WideCap нужно полностью деинсталлировать, тогда запустится. Причём сообщение об ошибке выводит совершенно нелепое.
                                      Ответить
                                  • >при установленном WideCap не запускается Eclipse.
                                    Защита от взлома? xD
                                    Ответить
                        • Бага с комментарием, который работает везде, кроме оперы из той же оперы о____О
                          Ответить
                    • Страница не должна перезагружаться. Идет обычный пост, только данные подставляются.
                      Ответить
          • Да всем светом поможем. Ты тз задай, я тебе решение на консольке шарпа сделаю, а потом всего лишь код на js переписать, они даже похожи
            Ответить
            • На шарпе я и сам бы. Это как в анекдоте про японца - вы мне прочтите, а я переведу?
              Ответить
      • ЧИ! (ТАРАТАТАТАТАТА!) ТА! (ТАРАТАТАТАТАТА!) БЕЛЬ (ТАТАРЯТАТАТАТА!) НО! (ТАТАРЯТАТАТАТА!)
        ЧИ-ТА-БЕЛЬ-НО!!!!
        Ответить

    Добавить комментарий