Как стать автором
Обновить
37
0.1
Сергей Шатунов @Prototik

JVM Backend разработчик

Отправить сообщение
Ну, для начала, это не Node.js foundation, а npm, Inc. Они и следят — как могут. Не будут же они ревьювить каждую строчку кода, которую залил очередной ноунейм.
зависимость от странных незнакомых людей по крайней мере неразумно

Ой, ну удалите пжалуйста все ОС со всех устройств — их тоже писали странные незнакомые люди. Пускай каждый пишет себе свою ОС. Вот и наступит рай на земле…
В Kotlin/Native нет jvm от слова вообще. Вы не то что не можете использовать библиотеки на других JVM языках, а даже не все библиотеки на Kotlin вам доступны — только те, чьи авторы позаботились о multiplatform в целом и native в частности.
Больше похоже на высоту navigation bar.
Да там и 1 бит можно было поменять — главное «поломать» строку.
Диагонали нарушатся.

По первому пункту: git merge --no-commit, правите что хотите, git commit. Только лишние сложности создали.

Спасибо за плагин! У меня сейчас статус DNS серверов показывается как stacked, думаю с этим плагином можно сделать покрасивше.

Штрафуют воздух за несанкционированную передачу звука.
Вообще да, странно, на арче openjdk8 собирается без всяких патчей:
Скрытый текст
build() {
  cd jdk8u-${_repo_ver}

  unset JAVA_HOME
  # http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1346
  export MAKEFLAGS=${MAKEFLAGS/-j*}

  # We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to O2
  export CFLAGS="${CFLAGS//-O2/-O3} ${CPPFLAGS} -Wno-error=deprecated-declarations -Wno-error=stringop-overflow= -Wno-error=return-type -Wno-error=cpp -fno-lifetime-dse -fno-delete-null-pointer-checks"
  export CXXFLAGS="${CXXFLAGS} ${CPPFLAGS}"

  install -d -m 755 "${srcdir}/${_prefix}/"
  sh configure \
    --prefix="${srcdir}/${_prefix}" \
    --with-update-version="${_jdk_update}" \
    --with-build-number="b${_jdk_build}" \
    --with-milestone="fcs" \
    --enable-unlimited-crypto \
    --with-zlib=system \
    --with-extra-cflags="${CFLAGS}" \
    --with-extra-cxxflags="${CXXFLAGS}" \
    --with-extra-ldflags="${LDFLAGS}"

  # TODO OpenJDK does not want last version of giflib (add 'giflib' as dependency once fixed)
  #--with-giflib=system \

  # These help to debug builds: LOG=trace HOTSPOT_BUILD_JOBS=1
  # Without 'DEBUG_BINARIES', i686 won't build: http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-July/019203.html
  make
  make docs

  # FIXME sadly 'DESTDIR' is not used here!
  make install

  cd ../${_imgdir}

  # A lot of build stuff were directly taken from
  # http://pkgs.fedoraproject.org/cgit/java-1.8.0-openjdk.git/tree/java-1.8.0-openjdk.spec

  # http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
  find . -iname '*.jar' -exec chmod ugo+r {} \;
  chmod ugo+r lib/ct.sym

  # remove redundant *diz and *debuginfo files
  find . -iname '*.diz' -exec rm {} \;
  find . -iname '*.debuginfo' -exec rm {} \;
}

А когда кто-то захочет прочитать, что ему отдавать?

Если кратко и без воды — если у вас есть рекурсивный dns сервер и на нём включена валидация dnssec — добавьте второй ключ в доверенные. Вот, например, для dnsmasq оба ключа:


prok@wendy:~$ cat /usr/share/dnsmasq-base/trust-anchors.conf
# The root DNSSEC trust anchor, valid as at 10/02/2017

# Note that this is a DS record (ie a hash of the root Zone Signing Key) 
# If was downloaded from https://data.iana.org/root-anchors/root-anchors.xml

trust-anchor=.,19036,8,2,49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
trust-anchor=.,20326,8,2,E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D

Ну дык и в kotlinx.serialization можно игнорировать "лишние" поля, и default там замечательно прописываются. В чём проблема?

Просто у Kotlin так сказать есть «дефолтный сервер» — это ktor. Для чистой Java встаёт вопрос «а что собсно у нас будет запросы обрабатывать?». Вот пример с com.sun.net.httpserver:
public class Main {
    public static void main(String[] args) throws Exception {
        HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
        server.createContext("/", (t) => {
            String response = "Hello World".getBytes();
            t.sendResponseHeaders(200, response.length);
            OutputStream os = t.getResponseBody();
            os.write(response);
            os.close();
        });
        server.start();
    }
}


Можно наколдовать с более удобным api, взять более удобную библиотеку, /etc…
а в джаве

Это не в «джаве», а в JavaEE. На SE тоже можно уложиться тупо кодом:
embeddedServer(CIO, 8080) {
  get("/") { call.respondText("Hello World") }
}

На Java будет чуть подлинее конечно (нужно класс объявить, public static void main, /etc), но тоже довольно коротко.
И… не буду говорить о Maven. Это — просто кошмарный инструмент.

Ну не знаю… Я как поглядел на webpack/gulp/babel/flow/ts/чотамещё у меня возникла только одна мысль — мамочка роди меня обратно.

Что сложного в управлении пакетами maven? Аналогично указываешь имя пакета (ну и его группу), version constraints там тоже есть — с этой точки всё аналогично npm/yarn, в чём трудности?
Да правильно, нахрена что-то получать из мапы — достаточно добавлять и удалять.
GC — сволочь ленивая. Пока JVM не подберётся к верхнему пределу — GC ничего собирать не будет. Попробуй поставить верхний лимит поменьше.
Используют, но в момент suspend'инга корутина сохраняет весь свой стек в объект и разворачивает его обратно в момент resume. Поэтому корутинам и не важно, в каком потоке они выполняются — всё их состояние хранится в обычном объекте.
Это, конечно, похвально, что вы знаете про IEEE 754. Но модуль (или остаток, называйте как хотите) не применим на эти бесконечности — результат NaN. В любом случае даже IEEE754 не может вместить в себя все возможные числа — с фиксированным числом бит это просто невозможно.
[зануда mode]
Бесконечность не помещается в фиксированное количество бит, так что не бесконечность.
[/зануда mode]

Информация

В рейтинге
2 855-й
Откуда
Красноярск, Красноярский край, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Fullstack Developer
Linux
Java
Kotlin
Android development