• –1
    Может, они как-то поверхностно понимают. Если добавить, что в Индии фашизм, то понятно, почему такие разные стандарты. Как раз, чтобы низшие не перепрыгивали «свой» уровень.
    Путешествие за бугор и обратно: как не надо устраиваться работать за рубежом
  • –2
    Согласно индуизму, еда в невежестве. Животные жиры, токсины, загружающую иммунную систему, вместо того, чтоб она занималась обычным делом, вплоть до полного отруба из-за перегрузки токсинами, если съесть много такой еды. Древний способ казни, когда осуждённого кормят только мясом, и он в мучениях доживает свой последний месяц.

    В общем, не в почёте у них мясо, и логично, что высшей касте не к лицу с этим связываться.
    Путешествие за бугор и обратно: как не надо устраиваться работать за рубежом
  • –7
    fix: С самого начала (пишет на Джаве, хочет в Европу) было понятно, что всё плохо.

    претензии к тому, что я не сделал ничего интересного вроде своей СУБД или своего языка программирования


    Хороший такой толстый намёк. platoff зрит в корень! Это, конечно, не оправдывает дальнейшее, но часто ли даётся такая возможность прозреть?
    Путешествие за бугор и обратно: как не надо устраиваться работать за рубежом
  • 0
    paserver от Delphi для Linux так и не заработал, но код ошибки поменялся с 22 на 92 Bad protocol option.
    Windows 10 Creators Update: что нового в Bash/WSL и Windows Console
  • 0
    В Continuation Passing C (руководство) реализуются зелёные потоки с возможностью миграции на выделенные обычные и обратно:

    cpc_detach, cpc_attach The cpc_detach statement detaches the current continuation; the following statements are executed in a dedicated native thread. The opposite operation is performed by cpc_attach, which causes the current continuation to be scheduled by the CPC scheduler.
    The cpc_detach and cpc_attach statements can only appear in cpc context.

    cpc_detached, cpc_attached The body of a cpc_detached statement is run detached: an implicit cpc_detach is executed upon entering the body, and a cpc_attach is executed upon exiting. The cpc_attached construct is dual: a cpc_attach is executed upon entry, and a cpc_detach is executed upon exit
    Lazy threads: опциональный параллелизм
  • 0
    «Наследуемый» именно в кавычках? Я там так и не увидел, как эта наследуемость делается. Другие люди целые IBM SOM и Objective-C 2.0 nonfragile ivars городили, чтобы наследование между компонентами сделать, а Qt и Gtk+ так и не осилили и пошли городить гирлянды указателей, а тут просто слегка хакнуть WRL — и всё? Отнаследовалось?
    Наследуемый класс компонента WinRT, написанный с использованием WRL
  • 0
    Какие библиотеки лучше использовать для небраузерной стороны? Предположим, у нас есть удалённое устройство и отдельно веб-сервер, реализующий файловый менеджер через WebSockets или WebRTC. И вот желательно, чтоб браузер перекачивать файлы с/на удалённое устройство мог напрямую.
    WebRTC PeerConnection и DataChannel: обмен данными между браузерами
  • 0
    Разработчики, желающие добавить поддержку XP в свои продукты, я имею в виду Inkscape всякие, могли бы зарубить себе на носу, что если им так хочется полезть в msvcrt.dll за новыми функциями, пусть тащат с собой установщик msvcrt 12.0 и лезут в msvcrt120.dll.
    One Core API чтоб править Windows
  • 0
    Можно ли фибрацию Хопфа спроецировать в набор непересекающихся орбит?
    Планеты и четвёртое измерение
  • 0
    КПЕ и ПВО нашли в себе силы пойти. Только их отстраняют от участия в выборах не мытьём, так катанием.
    Как не распространять запрещённый контент, но всё равно ощутить на себе действие 139-ФЗ
  • +1
    Я б сказал, что она давно захвачена, но есть разные уровни эксплуатации, и иногда нужно сломать прежнюю колониальную систему, чтоб увеличить уровень эксплуатации. Так сломали горбачёвский СССР, не так давно Украину. То, что делает бюрократия сейчас, очень похоже на целенаправленное создание революционной ситуации. При управляемом ходе революции исполнители даже не сильно страдают. Вот на Украине, как говорит Анатолий Шарий, судьи, которые его осудили при Януковиче, так и сидят при Порошенко. В них бутылки со смесями не летели.
    Как не распространять запрещённый контент, но всё равно ощутить на себе действие 139-ФЗ
  • 0
    Видимо, разработчики не смогли в sniproxy. Хотя что там в генерации конфига сильно отличающегося от генерации конфига squid, для меня загадка.
    Как не распространять запрещённый контент, но всё равно ощутить на себе действие 139-ФЗ
  • 0
    В этот момент нужно просто оказаться иностранцем. У нас же как запрещённую литературу распространят? Украинец печатает и продаёт запрещённую в России, но не на Украине, книгу, россиянин покупает. Гражданина другой страны на территории другой страны не может осудить российский суд, а россиянина российский суд может осудить только за распространение запрещённого в России, но не за приобретение. С тем, что запрещено на Украине, обратная схема.
    Как не распространять запрещённый контент, но всё равно ощутить на себе действие 139-ФЗ
  • 0
    Сфера вкладывается как в эллиптическое пространство, так и в Евклидово и Лобачевского. Евклидова плоскость вкладывается только в Евклидово и Лобачевского пространства. Плоскость Лобачевского можно вложить только в пространство Лобачевского.

    Однако этот ряд можно продолжить тем способом, который я не видел. Плоскость Лобачевского можно вложить в псевдоевклидово пространство Минковского. В принципе, это известный факт, пространство скоростей в теории относительности является гиперболическим. 4-вектор скорости всегда по модулю равен 1 (скорость света) — и вот получается гиперболоид возможных скоростей. Только я не видел, чтобы эта особенность рассматривалась с позиции возможных замощений.

    Если этот гиперболоид дополняется ещё одним гиперболоидом, но с пространственноподобным радиусом, вот, глядишь, и «выход за абсолют» нашёлся. Правда, как я понимаю, там не дополнение, а вообще все точки будут на таком гиперболоиде, а это уже, наверное, пространства де Ситтера и анти-де Ситтера должно называться.

    Ведь взять, допустим, пространство Минковского (2е пространственных координаты, одно время). На обычной плоскости Лобачевского вершины с бесконечным количеством рёбер мог быть только в идеалах. А в пространство Минковского вложил гиперболоид, замостил его пространственноподобной гиберболической мозаикой, и ещё от центра гиперболоида провёл бесконечность времениподобных вершин. И всё это — не в идеале, а в любой точке пространства. И для более простых «плохих» символов Шлефли должно место найтись.

    Заодно узнаем, какая у нас потенциально может быть решётка пространства-времени.
    Правильные многогранники. Часть 2. Четырёхмерие
  • 0
    Посмотрел. Там протобуф. Значит, поле для TTH добавить везде можно. А ещё значит, механическое добавление TTH к списку других хешей не поможет в данном вопросе. Даже в Blob там будут добавки, сделающие содержимое слишком другим.

    Поможет хакнутая функция, которая умеет парсить ProtoBuf для Blob и List и возвращать TTH для них.
    Новый параметр описания раздачи &x.do= в магнет-ссылке для FlylinkDC++. Факторы выбора юзером файлообменной сети
  • 0
    Не надо бросать пыль в глаза. Любой хеш Меркля — на самом деле направленный ациклический граф. Если вдруг хеши соседних узлов сошлись, вот считай, уже не дерево, и можно было бы такие куски дедуплицировать. Другое дело, что в масштабах миллионов файлов держать индексы не только для корней, но и для внутренних узлов, и всё это в режиме реального времени обнаруживать, мне кажется, было бы убийственно для производительности.

    Единственный полезный способ применять их произвольно гибкий граф, который я увидел, — это Jigdo для p2p. Но нормальный p2p стоит на прочном фундаменте хешей, всегда одинаковых для идентичных файлов. Я могу напихать файлов в Jigdo .iso, и эти файлы по TTH найдутся у тех, кто расшарил их, не координируясь со мной. Таким образом, из TTH+Jigdo можно сделать IPFS, а обратное, когда каждый хеширует файлы кто в лес, кто по дрова, не верно.

    Я там прокомментировал, как технически можно было бы внедрить TTH с учётом тонкостей. Попутно мне пришла идея, а не запилить ли совместимый с IPFS хеш в DC++? Просто такие ребята, ну знаете, как-то раз три года назад собрались начать переход на новый древовидный хеш на основе SHA3, когда конкурс ещё только шёл, и вот до сих пор можно открыть список официальных расширений протокола, TIGR там есть, а SHA3 — нет.

    Получается, планы озвучены, а в деталях реализации ещё чистый лист. Пользуясь шансом, можно взять и синхронизироваться. Чтобы сохранить все хорошие свойства TTH, придётся натянуть алгоритм IPFS на особенности вычисления TTH, и в каком-то диапазоне размеров файлов будет совместимость, а где-то у IPFS могут возникнуть (решаемые) проблемы.

    Так, нижние блоки совершенно аналогично TTH всегда имеют гранулярность 1024 байта. Они образуют объекты Blob, а из Blob образуются объекты List аналогично TTH узлам. Синтаксис List используется, как в IPFS. При этом все синтаксические навороты IPFS с точки зрения преемника TTH — это просто способ посолить хеши. В TTH базовая криптографическая функция Tiger солится нулевым или единичным байтом, а здесь это будет:

    {
       "data": ["blob", "list", "blob"],
       // lists have an array of object types as data
       "links": [
          { "hash": "XLYkgq61DYaQ8NhkcqyU7rLcnSa7dSHQ16x",
            "size": 189458 },
          { "hash": "XLHBNmRQ5sJJrdMPuu48pzeyTtRo39tNDR5",
            "size": 19441 },
          { "hash": "XLWVQDqxo9Km9zLyquoC9gAP8CL1gWnHZ7z",
            "size": 5286 }
          // lists have no names in links
       ]
    }
    


    Но только размеры здесь не могут быть произвольные. Всё должно быть повторяемо. Собственно, так же, как посоленная конкатенация Tiger хешей отправляется на вход Tiger и после вычисления исчезает, приведённая структура тоже существует только временно в памяти и не передаётся клиентами. Клиентами будет передаваться аналог gltth, то есть, тупо срез дерева хешей в максимально компактном виде.

    И так же, как в TTH, с дерева при необходимости может сниматься не самый нижний уровень. Клиенты, поддерживающие TTH, не требуют от другой стороны более глубокой детализации блоков, а просто проверяют более крупными блоками, сами достраивая поддеревья до ближайшего известного узла. В IPFS — не знаю, наверное, это может вызвать проблемы. Но их оригинальные хеши слишком гибки для нас, а наши всегда совпадающие для идентичных файлов хеши могут оказаться неудобны для них, при этом на фундаменте наших хешей уже что-то работает, а можно было бы даже и Jigdo сделать, а на их хешах в общем случае — нет.

    Ещё есть мысль добавить TTH рядом с этим новым, основанным на SHA3 хешем. Мне пока не понятно, возможно ли в Blob и List добавить ещё поле для TTH, но было бы здорово.

    В общем случае взаимодействия между DC++ и независимо опубликованными в IPFS файлами всё равно не будет потому что кто в лес по дрова хеширует, но потом можно научиться публиковать файлы в IPFS так же, как это делает будущий гипотетический DC++, и тогда и с DC++ совместимость получится, и внутри IPFS разброд и шатания будут с меньшей амплитудой, владельцы идентичных файлов смогут находить друг друга. И TTH таким образом вплетённый, не «забудут» посчитать.
    Новый параметр описания раздачи &x.do= в магнет-ссылке для FlylinkDC++. Факторы выбора юзером файлообменной сети
  • 0
    И этот «новый шаг» начался не с поддержки TTH. О чём они вообще думали, для кого они это делали. Крайне скептически я отношусь к таким «новым шагам». Ну как сделают TTH, так можно будет посмотреть.
    Новый параметр описания раздачи &x.do= в магнет-ссылке для FlylinkDC++. Факторы выбора юзером файлообменной сети
  • 0
    Да, вот это кажется бредом, чахнуть как Кащей над BTIH, лишь бы сошёлся. Имя поменяли — всё, капец, не сходится. Ну что за стыд.

    Вот я понимаю, многофайловые раздачи непросто будет пересекающиеся находить, но с однофайловыми-то всё понятно должно быть. Просто берём и используем TTH вместо BTIH. Ну не влезло маленько 4 байта разница, давайте в старом механизме обрубим, а в новом учтём.
    Новый параметр описания раздачи &x.do= в магнет-ссылке для FlylinkDC++. Факторы выбора юзером файлообменной сети
  • 0
    Ну так и из TTH можно микроторренты генерить по той же спеке. В принципе, веб-сервер можно научить. Скрипт модифицировать, чтоб рядом с каждым файлом подрисовывал тоже торрент с теми же параметрами, что у магнитки, и пожалуйста. И на любой размер смасштабируется, и на малых размерах (<2Мб) проверка будет по 1Кб, а не по всему размеру. А MD5, между прочим, в RFC есть, Content-MD5 называется, и Apache2 его генерить умеет. Только файл нужно качать от начала и до конца, иначе Content-MD5 от куска будет. Что теперь, за каждую архаичность цепляться? Есть TTH, он хороший, проверенный и нечего вытрёпываться, велосипедить пи-хеш, а-бтих, будь здоров, и нечего вытрёпываться использовать недревовидные хеши, а среди древовидных нужно веское основание не вычислить TTH. Я так считаю.

    Да, вот это и проблема, что только однофайловые. По оглашению мультипротокольная, а по умолчанию — все протоколы по-своему плохо. На базе DC++ гибридизация более перспективная, на мой взгляд.

    Скрипты — это вынужденная мера. Обычная раздутая страница — 6.9Кб, а сжатая до той степени, насколько возможно не в ущерб SEO — 1.5Кб. А чем меньше размер, тем больше чужих шар влезет. С точки зрения SEO я больше хотел, чтобы TTH был искабельным через поисковики, поэтому он там текстом, а магнитки в явном виде нет, как и многого другого. Если же кому-то захочется в автоматическом режиме что-то обработать, так проще всю директорию слить в одном из предложенных форматах.
    Новый параметр описания раздачи &x.do= в магнет-ссылке для FlylinkDC++. Факторы выбора юзером файлообменной сети
  • 0
    Любопытно. А понимает? Вот для теста: Operating Systems

    Это такой аналог HttpFileServer, только он не сами файлы и не директории скопом в .tar или .zip может давать скачать, а вместо файлов — магнитные ссылки, а вместо директорий для скачивания скопом — соответственно, описывающие их .dcls и ещё .torrent. Торренты тут не обычные. В идеале после того, как в 2006м опубликовали спеку, должен был начаться переходный период, когда были и TTH, и архаичный info.pieces, и сейчас, десять лет спустя клиенты были бы готовы к переходу на чистый TTH, но этого не произошло, поэтому мои чисто-TTH-ные торренты, скорее всего, застанут большинство из них врасплох. А вычислять архаичный info.pieces для трети петабайта чужих шар, понятное дело, не получится. И всякие пофайловые sha1 — туда же. Ну и, конечно, торренты тут ещё затем что их ищут чаще, чем DCLS и TTH. Ищете торренты — нате пожалуйста, но только с TTH. Тот же DCLS, вид сбоку.
    Новый параметр описания раздачи &x.do= в магнет-ссылке для FlylinkDC++. Факторы выбора юзером файлообменной сети
  • 0
    uTorrent каждый раз после обновления хекс-редактором патчить надо, заменять private на provate. Лень. А в последних ещё и реклама появилась. Но можно подумать, спасибо.
    Новый параметр описания раздачи &x.do= в магнет-ссылке для FlylinkDC++. Факторы выбора юзером файлообменной сети
  • 0
    Ну вообще есть спецификация на включение TTH в торренты от 2006го года, и если её поддержать, то это станет возможным. Учитывая, насколько устойчив пофайловый TTH к изменениям размера проверяемого блока, имени файла и прочему, и насколько хрупок BTIH, изменения должны делаться в более слабом звене. Генераторы торрентов должны вставлять TTH во все торренты, а для тех торрентов, которые пришли со стороны, если в них нет TTH, отображать восклицательный знак в треугольнике. Сайты торрентов, если залит торрент без TTH, должны отправлять переделывать. В результате присутствие TTH должно стать более массовым, и хотя прямая гибридизация файлообменных сетей удобным для людей способом, как показывает опыт Shareaza, часто затруднительна (если верить таблице по ссылке, скачивание многофайлового торрента в Shareaza реализовано таким костылём, что учесть TTH, даже если он есть, невозможно), но какие-нибудь умельцы бы смекнули, что к чему, запилили THEX в торрентах и поиск по TTH внутри сети BitTorrent. И уже потом потихоньку подтянулись бы гибриды.
    Интернет на магнитах 1 — Магнит
  • 0
    У GreyLink DC++ есть спецификация на такой режим режим работы. TTH (24 байта) чуть больше BTIH (20 байт), и BTIH + порядковый индекс файла в торренте образуют структуру той же длины, что и TTH, и по ней предполагалось делать поиск. Хотя лучше бы трекеры повернулись к нам лицом и начали требовать от заливающих TTH в торрентах. Вот один портал, называть который слишком много чести, требует отдельно текстом указать MD5 и SHA1, а TTH почему-то не требует ни текстом указать, ни в торрент включить.
    Новый параметр описания раздачи &x.do= в магнет-ссылке для FlylinkDC++. Факторы выбора юзером файлообменной сети
  • 0
    Вообще, я не следил за состоянием, может, что-то и исправили, но вот какие отличия увидел на примере Shareaza:

    DC++ наиболее близок к старому доброму FTP. Он отлично передаёт все нюансы структурированной файловой системы. Скажем, в торренте нельзя описать пустую папку, а в dcls — можно. Были ещё детские болезни вроде «не качать пустой файл» (подразумевается, что и не создавать тоже) и «не качать совпадающие файлы» (подразумевается, что и не копировать из шары тоже), нарушающие целостность директорий по сравнению с эталонным FTP, но ими DC++ клиенты переболели лет 8 как.

    Что касается Shareaza, то там структура в скачанных списках файлов реализована очень своеобразно, я когда первый раз увидел, просто в осадок выпал. Там дерево папок ведёт себя как фильтр файлов. Я выбрал папку и увидел все файлы из подпапок поскиданными в одно место. Я скачал, и действительно, там вся структура папок сплющилась. В Gnutella1 с директориями всё было плохо, их не было, но G2, такое чувство, что этой детской болезнью до конца не переболела. Мне что, вручную воссоздавать директории? F7, Shift-F6, F7, Shift-F6, я правильно понимаю? Это я вот этим должен заниматься?

    Далее, вот есть dcls для многофайловых раздач, а в Shareaza для этого есть коллекции. Только я что-то не увидел в wiki, как там дела с поддиректориями. Они вообще есть? Я вот подозреваю, что нет. И раз уж DC++ застолбил этот формат, будет логично, если Shareaza поддержит dcls, чтоб по нескольку раз не напрягаться для разных клиентов. Хотя это и не оформленная раздача, как в Shareaza.

    Кроме того, я наблюдаю, что DC++ совершенно нормально обрабатывает мои многотысячные списки файлов, со всякими Platform SDK незапакованными. А у других видел и под миллион. В DC++ оптимальнее не запаковывать, чтобы общие файлы находились. Platform SDK, MSDN Library разных версий — они во многом повторяются по файлам. А Shareaza, наоборот, с каждым новым файлом начинает корчиться в муках и корчить в муках мой ноут. Что ещё хуже, если Shareaza вдруг ненароком увидела всю бездну файлов DC++, шокирована она будет навсегда. Хоть там убрать шокирующую папку из базы, хоть базу средствами программы почистить, всё равно мегатормоза. Только вручную если поудалять базу данных и заново расшарить, помогает. Получается, наоборот, оптимальнее упаковывать файлы в архивы, но тогда поиск альтернативных источников — до свиданья, и это получается как ещё один торрент, где владельцы идентичных файлов как в кромешной тьме и не могут друг друга найти. А мне с одним торрентом уже хватает головной боли. Это уже исправлено?

    А ещё я считаю нормальным не иметь вычисленный sha1. Когда p2p только зарождался, разработчики делали proof of concept, были довольно наивными, а для наивного человека нормально полагать, что можно с 20и источников скачать файл общим размером 20Гб, и потом просто в дежурном режиме проверить SHA1 от 20Гб, и ни у кого клиент не сглючит, никто не обманет, хеш сойдётся. По идее, эта наивность должна остаться в далёком прошлом, вместе с SHA1, MD5 и всеми остальными недревовидными хешами, когда пошли жалобы «моя закачка начинается снова и снова, что делать?». Зачем вообще вычислять недревовидные хеши? Они же бесполезны. А если я на сервере хотел бы сгенерить коллекцию Shareaza, и у меня есть имя, размер, TTH, и больше ничего нет? Что, смогу я это сделать или нет? А вот по магнитной ссылке с TTH загрузка файла может начаться? Там в протоколе уже по чистому TTH закачка инициируется или всё ещё надо сначала ненужный SHA1 получить?

    А так, в принципе, если бы DC++ расширить Gnutella2, это было бы хорошо. Стронговская DHT мне не понравилась, в Shareaza глобализация явно лучше. Только со спамом беда. На DC++ хабах спамераста можно выпнуть с хаба, а в Gnutella2 выпнуть некому, а было бы нелишне иметь небольшой контроль. Что-то вроде подсети Gnutella2, где каждый участник получил криптографическое подтверждение на право присутствия в хабе. И сообщения от хаба нумеровать серийными номерами, подписывать и через узлы оптимально распространять.

    Возвращаясь к вопросу об оформлении, это сложный вопрос, выходящий за рамки проблем p2p. У нас есть отличный блог-редактор Windows Live Writer и протоколы XML-RPC, по которым он работает, но нет застывшего в файле аналога XML-RPC, чтоб как в Word, HTML с картинками содержал. Если мне по работе нужно было запостить на два наших сайта, я делаю пост в WLW, переключаю учётку и делаю ещё раз пост. А если репост с ненашего сайта — я шёл выколупывать с того сайта картинки по одной. А новостей может быть по 10 в день, в каждой по 5 картинок. Если новый пост пишу не я, а журналисты, отправляя друг другу на проверку и переделку, что чаще всего, то писать его будут не в WLW, потому что в нём нет файлов, а в Word, где файлы есть, но потом каждый раз в HTML переделывать надо из-за разной вёрстки. Знали бы вы, какой геморрой так каждый день. А всё потому что нет формата застывшего XML-RPC с вменяемым редактором для него. WLW не может ни сохранить в файл, ни открыть из файла, а если ковырять, то там какой-то вообще левый формат wpost Compound Document, который было бы сложно парсить и генерить на сервере. Другие HTML редакторы не аналогичны Word, в смысле, не умеют положить картинку внутрь общего файла. У Mozilla какой-то HTML редактор картинки кладёт в data URI, что для многих и без того непростых HTML парсеров на сервере стало бы серьёзным испытанием, когда картинки под мегабайты. Последний SAX парсер, которым я пользовался, не позволял читать атрибуты по 8К блокам, а возвращал их все сразу. С точки зрения формата идеально устроен WizHtmlEditor, там всё как надо, формат .zip, а в нём HTML с картинками, но сам редактор топорный до безумия, там даже картинку разместить с обтеканием без залезания в HTML код не получится. И XML-RPC нет. Непаханное поле, и вот кто это поле вспахал бы, заодно и с форматом p2p раздач вопрос решил.
    Новый параметр описания раздачи &x.do= в магнет-ссылке для FlylinkDC++. Факторы выбора юзером файлообменной сети
  • 0


    Вот так выглядит облом в BitTorrent. Это я искал редкие файлы (среди которых основной — OEDev.zip) всякими разными способами, и когда нашёл, решил раздать во все сети, где я раньше тщетно пытался найти. Этот торрент давно без сидов, а вот один пир ну очень долго тусовался, но выкачать OEDev.zip целиком так и не смог, потому что его начало в одном куске с другим файлом, которого у меня нет. И никак. И чата нет, чтоб как–то по–другому файл передать. Смотрим друга на друга, немые, как рыбы.

    А могу рассказать ещё одну замечательную историю. Как это обычно бывает в торрентах, четвёртый год пытаюсь скачать 6AE765434DEB78AB7CBDA3AAC869363E81046348. Когда мне админ одного сайта передал-таки один из файликов, я решил, а не раздать ли тоже хоть часть файлика. Правда, человек, который создавал торрент, запаковал каждый файл в торренте в отдельный rar, ну а я, конечно, не угадаю, как в этот rar запаковать, чтоб так же было. И тоже смотрим молча друг на друга.

    В самом деле, хорошо, что чата нет! Просто замечательно!
    Новый параметр описания раздачи &x.do= в магнет-ссылке для FlylinkDC++. Факторы выбора юзером файлообменной сети
  • 0
    Посмотрел, сильно отличается от оригинала. Звучание инструментов не такое. Но имена файлов помогли найти в Интернете нормальную версию с расширением .mid: http://www.ekn.net/midi/misc/Dance/index.html (заглавная тема — ethno_pa)

    В QuickTime Player, по крайней мере, воспроизводится как надо.
    Реверс-инжиниринг арканоида DX-ball, или Новая жизнь старой игры
  • 0
    Предполагается, что, натренировавшись, можно сделать что-то лучше, и то, что SOM не применяется — это в какой-то степени благо, можно сбросить балласт архаичных решений. А вместо совместимости с SOM на бинарном уровне я бы предпочёл частичную совместимость с Objective-C на уровне исходных кодов. Чтоб был специальный компилятор с модифицированной семантикой для портирования на новую модель.

    Кстати, я пишу вам сейчас из Comodo IceDragon, который почти Mozilla Firefox, а там XPCOM, и в некотором смысле COM себя замечательно чувствует. А ещё достаточно популярен VirtualBox со своей разновидностью XPCOM. Если вам нужно написать офисный документ, возьмёте, скорее всего, для этого вы либо Microsoft Word с понятно, какой начинкой, либо один из клонов бывшего StarOffice, в котором UNO. Ранее упомянутый Objective-C сейчас сложно заподозрить в недостатке внимания. А в Windows Metro есть такая штука, как Windows Runtime, и она, кроме поддержки .NET и JavaScript, пошла обратно в натив, и происходит это через COM. Как следствие, в супер-пупер новой Windows Runtime можно прочитать про такие ограничения, как «A ref class that has a public constructor must be declared as sealed, to prevent further derivation.» или, ещё раз, «You must declare as sealed any classes that are publicly exposed by your Windows Runtime Component.». Qt разрабатывается на обычном C++, и чтобы там не прекращалась совместимость, приходится плясать вот так. Другие разработчики под Linux этим правилам не следовали, и как результат, фрагментация дистрибутивов Linux. Если не нашёлся ноулайфер, который пересоберёт программу под очередной выпуск очередного дистрибутива Linux, оно там, если просто скопировать, имеет все шансы не запуститься, и о магазинах приложений под Linux остаётся только мечтать. А старый SOM эти проблемы решал и делал лучше всех других существующих решений.
    Интеграция внешней объектной системы в Delphi на примере IBM SOM
  • 0
    Увы, но для меня пока «напрямую запустить em-dosbox» — не понятная операция по сравнению с запуском JS-DOS.
    JS-DOS API: запускаем DOS в браузере
  • 0
    Выяснил, что там какой–то лимит на две запущенных программы. Первая — mount, вторая — это собственно запущенная программа, но если вместо программы там будет ещё один mount или subst, после него всё равно всё остановится.
    Сделал у себя пока такое: http://online.pascal.net.ru/1
    Если Crt подключать, проблема с чтением stdin не возникает. Я думал, kstack.com её решит, ведь он, как и модуль Crt, вроде как содержит собственный обработчик клавиатуры, но, видимо, нет.
    JS-DOS API: запускаем DOS в браузере
  • 0
    Командная строка виснет, хоть command.com, хоть ndos.com. Mount.com вешает. Subst.com вешает. Тут хоть что–нибудь вообще работает?
    JS-DOS API: запускаем DOS в браузере
  • 0
    Тем, кто интересуется в наши дни, на заметку:
    21000 руб. за AnywhereUSB против 6400 руб. ($99) за Linux версию Quantum Access LAN Mini PC Stick или Star Cloud PCG02U LAN (клоны Intel Computing Stick с Ethernet)
    USB over IP или AnywhereUSB
  • 0
    https://github.com/jbenet/multihash/blob/master/hashtable.csv
    code name
    0x11 sha1
    0x12 sha2-256
    0x13 sha2-512
    0x14 sha3-512
    0x15 sha3-384
    0x16 sha3-256
    0x17 sha3-224
    0x18 shake-128
    0x19 shake-256
    0x40 blake2b
    0x41 blake2s
    # 0x00-0x0f reserved for application specific functions
    # 0x10-0x3f reserved for SHA standard functions
    # 0x14 formerly had the name «sha3», now deprecated


    То есть, TIGER, из которого получается TTH, тут нет, петабайтная локалка уже сегодня в качестве кеша работать не сможет, а вот если все поставят IPFS, ну тогда, может быть, что–нибудь и получится. Inter-Planetary как бы намекает, в каком временном диапазоне это может случиться.
    Почему Интернету нужен IPFS, пока ещё не поздно
  • 0
    COBOL — это императивный, процедурный язык, а с 2002 года — объектно-ориентированный.


    С датировкой что–то явно не то. COBOL был одним из языков, которые реализовали Direct-to-SOM. Учитывая, что последнюю версию SOM для мейнфреймов выпустили в 1997м году (потом в IBM посходили с ума, прекратили разработку SOM и переключились на Java), и COBOL тут не какой–то, а именно IBM, то объектно–ориентированным он стал ну явно не позже, чем закрыли SOM.
    Интервью с мамой, банковским программистом на COBOL'е
  • +1
    Я хочу, например, иметь обобщенные списки и вообще полноценные коллекции объектов


    Так я в 2005м году открыл для себя Аду.

    Непревзойдённые (почти) качества в языке–таки имеются. Я рассматриваю Delphi как 2 языка в одном, и второй, менее мейнстримный язык, очень привлекателен. В первом языке — ручное управление памятью, единоличное владение и try…finally для объектов, а во втором — счётчик ссылок и RAII. Это можно видеть на примере, как реализаованы мейнстримный TJSONObject с ручным управлением памятью и мой CVariant. Диапазонные типы имеются, пусть даже ими сложнее пользоваться, чем в Аде (В языке Ада цикл от -1 до 0 не выбрасывает исключение нарушения диапазона, потому что система типов двухуровневая, для диапазонов обычно не создаются новые диапазонные типы, с которыми будут проблемы, как в Delphi, а делается ограниченный подтип существующего типа, и арифметические операции по умолчанию возвращают результаты в самом широком подтипе типа). Но даже такая плохонькая система типов может повышать целостность, особенно, если начать диапазон с -1 и не бояться использовать его в for. По крайней мере, в диапазоне от -1 до 15 не затесается 50.

    Язык нативный, подходит для низкоуровневого программирования, при этом особенности компилятора позволяют контроллировать целостность. К сожалению, проверки по умолчанию отключены, как если бы каждый первый встречный писал на Delphi видеокодеки, но их хотя бы можно включить, и я видел, как всплывает вот это вот всякое, когда во всём проекте резко врубить все проверки, и как всё оздаравливается, если исправить ошибки, вызывавшие эти исключения. В C++ коде для vector<> вы так просто в проекте проверки галочкой в настройках не включите. Мне приходилось делать другой шаблон, который заменял operator[] на at(). Что касается контроля диапазонов, в Java для сравнения, свой тип нельзя определить, а для встроенных типов переполнение не проверяется. В C# ключ /checked нужно использовать при компиляции, тоже под видеокодекописателей язык заточен, наверное.

    Наравне с C++ и Objective-C, Delphi и Ada позволяют в том или ином виде использовать RAII и счётчики ссылок, в то время, как многие разработчики инструментов разработки посходили с ума и заколебали остальных своей сборкой мусора. ARC в Objective-C очень распиарен, но хронологически в Delphi он был раньше, жаль только, что он был в немейнстримной версии языка.
    Интервью с мамой, банковским программистом на COBOL'е
  • 0
    А вирус–то, конечно, не может дать пощупать HTTP–сервер на локальной машине
    Антивирусная авантюра Вконтакте
  • 0
    Вроде как есть несколько TLD, которые по соглашению должны оставаться незарегистрированными
    TP-LINK потеряла права на домен, использующийся для настройки роутеров и усилителей
  • 0
    Пробовать в Одноклассниках пароли от роутера, владелец которого знает, как менять на ПК адреса DNS — офигенно хитрый план. Что может пойти не так?

    Впрочем, через всякие оперы турбы вероятность поймать ламера становится более осязаемой.
    TP-LINK потеряла права на домен, использующийся для настройки роутеров и усилителей