• Только что вышла Java 13. ZGC начал делиться памятью, CDS сам запоминает классы, и другие чудеса техники
    0

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

  • Только что вышла Java 13. ZGC начал делиться памятью, CDS сам запоминает классы, и другие чудеса техники
    0

    Поправил. Сорри, очень непросто на ходу набирать текст на планшете

  • Подумайте дважды, прежде чем использовать игровые движки
    +4

    Молодые разработчики используют движки потому, что они учат их, как делать вещи. Расширяют горизонты возможного. Все это можно написать руками, если ты уже знаешь, что именно нужно писать. Это как в магазине, когда ты приходишь совершенно без идей, что же тебе хочется есть, но нагуливаешь аппетит, ходя вдоль полок и раздумывая — а съел бы я вот это и это, а какие они на вкус,… и в конце концов заканчиваешь с целой корзиной еды! А то и двумя и тремя! Если же тебе сразу сказали бы — составь список покупок, фиг бы ты чего купил. То же самое и с движками, и вообще с любым софтом. Софт — это твой учитель в первую очередь, и во вторую уже всё остальное вроде качественно сделанной функциональности или готовых быстро применимых решений.

  • Обзор программы С++ Russia 2019 Piter: асинхронность, модули, библиотеки… и такси
    0

    Не, на Марс ещё не слетали, но в целом у нас зашибись!


    C constexpr все еще беда, даже в MSVS 2019: https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=vs-2019

  • Третье сентября
    +1

    Мануалы не успевают поспевать за прогрессом технологий. (И это даже не шутка!)


    Я вчера читал мануал, в котором в двух соседних абзацах рассказывались взаимоисключающие положения — в одном про то, что поскольку Windows не поддерживается нужно делать вот так, а в другом — как настраивать всё для Windows. У людей не хватает времени, чтобы вычитать даже два рядом стоящих абзаца.

  • Третье сентября
    +1

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


    Ну и все сисадмины в будущем будут робопсихологами

  • Обзор программы С++ Russia 2019 Piter: асинхронность, модули, библиотеки… и такси
    +2

    Там специально по этому случаю большая скидка при покупке билета самостоятельно. На момент написания этого комментария — 53% от полной стоимости.

  • Третье сентября
    0

    Я, кажется, всё напутал, и Кубернетис с Терраформом — это всё ещё самый край технологий, а не далёкое прошлое :) Но не переписывать же теперь такую стену текста!

  • 10 книг для понимания устройства фондового рынка, инвестиций на бирже и автоматизированной торговли
    0

    Какой можно подвести итог по этому вопросу? Это какое-то мошенничество на договорах?

  • Сибирская компания Excelsior стала «Excelsior at Huawei»
    0

    Та ничего бы не произошло страшного. Взяли бы гуглы Idea Community Edition, влили туда триллионы бабла и всё.

  • Большое интервью с Клиффом Кликом — отцом JIT-компиляции в Java
    0

    Спасибо :)

  • В Россию приезжает отец Free Software, Ричард Столлман. Ищем того, кто готов на пару дней его приютить
    +1

    Звериный оскал!

  • В Россию приезжает отец Free Software, Ричард Столлман. Ищем того, кто готов на пару дней его приютить
    +2
  • В Россию приезжает отец Free Software, Ричард Столлман. Ищем того, кто готов на пару дней его приютить
    +2

    Ну то есть, проприетарная насквозь Циска, воткнутая в твой роутер со стороны провайдера, ломает всю схему? Нужно отказаться сразу от всего интернета? :)


    Нельзя победить всё зло в мире за раз, но можно уменьшать его количество

  • В Россию приезжает отец Free Software, Ричард Столлман. Ищем того, кто готов на пару дней его приютить
    0

    Несвободные драйвера, которые он не станет устанавливать?

  • В Россию приезжает отец Free Software, Ричард Столлман. Ищем того, кто готов на пару дней его приютить
    +1

    Может, проще не иметь телефона? :-) (Это не шутка, если что)

  • В Россию приезжает отец Free Software, Ричард Столлман. Ищем того, кто готов на пару дней его приютить
    0

    Валидация полей действительно поплыла. Причины не понятны. Но сейчас всё должно заработать. Можете попробовать?

  • В Россию приезжает отец Free Software, Ричард Столлман. Ищем того, кто готов на пару дней его приютить
    +2

    Наверное, стоит указать это в комментарии. Конечно же, внешнее неуправляемое тобой видеонаблюдение, записи которого идут непонятно кому — это не самое большое преимущество

  • В Россию приезжает отец Free Software, Ричард Столлман. Ищем того, кто готов на пару дней его приютить
    +1

    У меня похожий экспириенс с Бутово и Измайлово в Москве. Сколько ни ходил там ночью — вроде всё в порядке. Выглядят вполне прилично. А вот ребята, написавшие статью на Лурке, считают по-другому :) Всё что могу вспомнить — купил ночью картонную коробку плова с мясом, а там мясо было как будто из кошки.

  • В Россию приезжает отец Free Software, Ричард Столлман. Ищем того, кто готов на пару дней его приютить
    +1

    Это очень странная проблема, но мы пытаемся понять, в чем дело. Как будет решение — я вам напишу в личку, и ответом на этот комментарий.

  • В Россию приезжает отец Free Software, Ричард Столлман. Ищем того, кто готов на пару дней его приютить
    0

    Там на стороне формы творится какая-то фигня. У кого-то не работают валидаторы и все поля отображаются как неправильные, у кого-то наоборот. Я стараюсь разобраться.

  • Promise.allSettled
    +1

    В самом промисе будет скрытое поле [[PromiseStatus]], но можно получить эти значения в then:


    var assert = require('assert');
    var allSettled = require('promise.allsettled');
    
    var resolved = Promise.resolve(42);
    var rejected = Promise.reject(-1);
    
    function prettyJSON(obj) {
        console.log(JSON.stringify(obj, null, 2));
    }
    
    allSettled([resolved, rejected]).then(function (results) {
        prettyJSON(results);
        assert.deepEqual(results, [
            { status: 'fulfilled', value: 42 },
            { status: 'rejected', reason: -1 }
        ]);
    });

    Протестить этот код можно или через Ноду (npm i promise.allsettled) или в каком-нибудь свежем Chrome Canary (заменив вызов allSettled на Promise.allSettled)

  • Promise.allSettled
    0

    Кажется, не завезли: единстенный кто ждёт всех — allSettled. С другой стороны, теперь можно проапдейтить ваш бойлерплейт :)

  • Promise.allSettled
    +1

    Наверное, вы правы. Указал английские варианты. Разница между терминами хорошо описана в документе States and Fates, который являлся частью пропозала промисов для ES2015.

  • «Проще ответить, чем продолжать молчать» — большое интервью с отцом транзакционной памяти, Морисом Херлихи
    0

    Ценное дополнение) Я уверен, что на аудизаписи была Харибда. Но если поменять имя, ничего не изменится :)

  • «Проще ответить, чем продолжать молчать» — большое интервью с отцом транзакционной памяти, Морисом Херлихи
    +1

    Ага. Надеюсь, в понедельник будет ещё и Майкл Скотт!

  • Большое интервью с Клиффом Кликом — отцом JIT-компиляции в Java
    +2

    Кстати, можно прийти и пообщаться с Клиффом на встрече JUG.ru в Питере. Не знаю, насколько это актуально для всех подряд, но для джавистов либо тех, кто специализируеся на распределёнщине — это мастхэв.


    https://jugru.timepad.ru/event/1007483/


    Участие бесплатное, регистрация по ссылке — обязательна.

  • Большое интервью с Клиффом Кликом — отцом JIT-компиляции в Java
    0

    Все в шоке :-)

  • Большое интервью с Клиффом Кликом — отцом JIT-компиляции в Java
    +1

    Хотелось выпустить интервью прямо сейчас и для Хабра. Но написать красиво по-английски я не в состоянии — он очень необычным образом говорит, это больше похоже на ток-шоу. Очень интересно слушать, но сдампленное в текстовом виде оно выглядит дико. Над русскоязычным текстом я могу постараться, а вот англоязычный вариант надо писать вместе с носителем, который возьмёт на себя ответственность за переписывание текста. Возможно, будет позже.

  • [Питер] Встреча JUG.ru с Клиффом Кликом — A JVM Does That?
    +2

    Ничего не могу поделать, так прислал Клифф, он теперь босс. Скажет поставить "Dr." перед JVM, будет "Dr."!


    Ну вообще, JVM-ок то дофига

  • Свободный как ветер и бесплатный как пиво перевод «Free as in Freedom» на русский язык под лицензией GNU FDL 1.3
    0

    Пожелаем им удачи: к сожалению, я не слежу и не читаю, чего они там пишут, нет времени.

  • Свободный как ветер и бесплатный как пиво перевод «Free as in Freedom» на русский язык под лицензией GNU FDL 1.3
    0

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


    И да, это именно формат твиттера. В этом и смысл. Именно поэтому и запрещены контрибьюшены.


    Но форканье не запрещено, например — не может быть запрещено, исходя из духа лицензии FDL. Кто угодно может заняться этим — как собственно и произошло с Мишей.

  • Свободный как ветер и бесплатный как пиво перевод «Free as in Freedom» на русский язык под лицензией GNU FDL 1.3
    0

    Этот перевод начали сразу же после того, как я подал идею своим примером.


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


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


    Что касается TeX, то Markdown элементарно транслируется и в TeX, и в HTML, и в любой другой формат, именно поэтому я выбрал именно его. Мне особенно важен HTML+JS как основной медиум, и бумажная печать, всё остальное второстепенно. В частности это помогает избегать проблем с рендерингом TeX на нескольких операционных системах (для винды нужен Miktex со своими заморочками) и при подготовке в печать. Скрипт на тридцать строчек решает все эти проблемы.


    Применительно к моему документу, принципы FOSS соблюдаются следующим образом: я уважаю требования GNU FDL и призываю всех, кому что-то не нравится в оригинале, делать свои форки. Тем не менее, я не верю в создание художественных произведений большим количеством авторов, поэтому пулл-риквесты на моем репозитории закрыты. Они могут быть открыты для избранных людей по ролям (один человек — одна роль, например будет выделенный редактор), либо в качестве финальной вычитки сообществом.

  • Свободный как ветер и бесплатный как пиво перевод «Free as in Freedom» на русский язык под лицензией GNU FDL 1.3
    0

    Можно сделать на гитхабе ишшую, я поправлю (может быть — я существо крайне необязательное и не люблю коммититься на что либо).


    UPD: исправлено

  • Если вы не пишете программу, не используйте язык программирования
    +4

    С inline-формулами, наверное, ничего особо не сделаешь, это нужно как-то делать на уровне движка Хабра, так? Кастануть бы кого-нибудь вроде Boomburum


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


    UPD Перерендерил часть формул в картинки, теперь на мобилке смотреть немного удобней.

  • Ответ психиатра на статью «Болен-здоров»
    0

    У меня все то же самое лет эдак 15 из 33, разве что попыток самоубийства нет — если ты умрёшь, ничего не изменится. Временами приходилось вставать под Олега Медведева "вставай, ведь такова твоя функция".


    Но это ведь совершенно естественные штуки здорового человека, нет? :-) В жизни нет никакого смысла кроме того, который мы сами себе придумаем, и если мы не придумали по какой-то причине — действительно можно убиться об стену и это вполне логично, так же как робот-пылесос выключается когда подмёл всю квартиру.


    А если какая-то цель имеется, то общение с людьми — это обычно штука сложная и болезненная, чреватая огромными потерями времени и сил на это самое общение. Первое правило совещаний на работе — не должно быть никаких совещаний :-) То же самое про выходить из дома — зачем куда-то выходить, если всё доступно через интернет? Ну да, в 19 веке приходилось выходить, но тут вот случился прогресс.


    У меня из информации только этот ваш пост, но я в нём вижу проблему не в том, что говорить с людьми и выходить на улицу не хочется — это как раз совершенно здоровые рациональные штки. Проблема в том, что вы это окрасили в резко негативную окраску для самого себя.

  • Программирование — больше, чем кодинг
    +1

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


    Например, можно было бы посчитать, что действительно, TLA+ — это что-то типа продвинутого фаззера. Но фаззеру для работы нужно запустить программу множество раз, а проверяльщику модели — не нужно запускать ни разу. Он не запускает, а только проверяет. Что позволяет ему проверить бесконечное количетство запусков с бесконечным количеством шагов в каждом из них.


    К примеру, в Amazon DynamoDB, TLA+ позволила обнаружить такие баги, которые требовали 35+ шагов для их воспроизведения — для этого пришлось написать спеку примерно на 1000 строк в TLA+.


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


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

  • Программирование — больше, чем кодинг
    +1

    Я вначале отвтил в каком-то смутном состоянии духа, сорри. Потом перечитал несколько раз, понял что неправ, и исправил.


    Дальше возникает вопрос: что такое постановка задачи? Допустим, если к вам приходит заказчик и говорит: вы делали мне электронный магазин еды, я хочу чтобы кнопочка "купить пожрать" теперь вела сразу на покупку, а не на корзину. Это простая, интуитивно понятная задача. Иначе говоря, с постановкой задачи справилась интуиция. (Причем совершенно не факт, что справилась правильно).


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


    Второй вопрос, что в общем случае спека описывает не решение, а класс решений. Например, есть спецификация языка и виртуальной машины Java. А реализаций у них написана куча. Без спеки ничего такого бы не было. Причем в спеке есть такие моменты (например, вся фигня про модель памяти, многопоточность, итп), которые до конца понимают три с половиной землекопа в мире.


    Мир очень разнообразная штука. Не нужно вам конкретно думать над спекой — ну не думайте, в чем проблема-то, move along citizen

  • Программирование — больше, чем кодинг
    +1

    В спеках описывается задача и модель решения, а не конкретный способ. Более того, задача возникает при написании спеки, ведь первый этап (опять читаем статью) — определить, какой цели нужно достичь (это непросто).


    то "кодер"=="ручной компилятор".

    Очень хороший ручной компилятор. Намного, намного более лучший, чем просто компилятор.


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

  • Программирование — больше, чем кодинг
    +6

    У вас на работе принята практика написания формальных спецификаций с помощью TLA+ или подобного? Вы знаете хоть кого-нибудь, у кого в российском "кровавом энтерпрайзе" принято?


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