All streams
Search
Write a publication
Pull to refresh
40
0
Сергей Шатунов @Prototik

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

Send message
Штрафуют воздух за несанкционированную передачу звука.
Вообще да, странно, на арче 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]
В новой версии архива будет и новая версия лицензии. Не принято изменять архивы уже релизнутого кода.
Они уже это поправили (и значительно сократили саму лицензию с ~300 строк до 21 строчки)
List (как и все коллекции в котлине) не immutable, а read-only, не стоит их путать.
Вот уж что-что, а статью «смотрите, в идее есть дебаггер, прямо как во всех IDE!» я не ожидал увидеть.
Не можем (точнее не всегда) — IP может менятся даже в рамках одной сессии.
LE выдаёт сертификаты не только посредством HTTP запроса, он может опрашивать DNS и HTTP сервер в этом случае вообще не нужен (да даже машины могут быть разные, выписывать сертификат в одном месте, а использовать в другом). Гуглите ACME DNS-01
Ну либо просите автора переделать вывод в одну строчку в записи, а не в три, либо ищите правосланый dig под винду. Больше ничем не могу помочь :D

Information

Rating
6,330-th
Location
Красноярск, Красноярский край, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Fullstack Developer
Linux
Java
Kotlin
Android development