juan_gandhi: (Default)

Фесбук вдруг признался на твитере, что у них в коде куча NullPointerExceptions в их коде, и они зафигачили тулзу, чтобы с ними бороться.

Кстати, в Гугле была такая ловушка для NPE и прочего, ThirdEye называлась - если у тебя в коде NPE случается в продакшене, то тебе сразу мейл шлют, мол, слышь, инженер... Но это были "нулевые годы".

Вот такие дела. Вы там думаете, что в фесбуке какие-то гении работают. Там работают, по большей части (как и везде) мудаки и долбоебы. Но есть и гении.

java

Mar. 4th, 2021 04:07 pm
juan_gandhi: (Default)
 HttpUrlConnection.java

...

if (respCode == HTTP_OK) {

    checkResponseCredentials (false);
} else {
needToCheck = false;
}

// a flag need to clean
needToCheck = true;
...
juan_gandhi: (Default)
... between java.util.Set and java.util.Collection?

(it was an interview question)
juan_gandhi: (Default)
1) say, you have a symbolic link. Java's file.exists returns false.

2) say, you have a path of a nonexistent file. Java's file.lastModified returns 0. Meaning, the file is from January 1st, 1970.
juan_gandhi: (Default)
Вот тут код, по линку кликайте 

1) рекурсивный

2) Тони Моррис, flip/cons

3) "скальная версия" [personal profile] snowps 

 4) то же самое, но практичная версия, с массивом


Running 70000 elements
Recursively: 9 ms
FlipCons: 25 ms
Snowps: 12894 ms
Snowps with array: 5 ms

Конечно, не особо честно, jvm надо было сначала прогреть как следует.

Это я нашел какую-то хрень неведомой древности.
juan_gandhi: (Default)
Решил я использовать этот тип в качестве индикатора состояния при ответе (примерно имея в виду, что мы тут нынче все притворяемся вебсервисами). Ну как бы сделать вариант Result, назвать WSResult. На скале. Но не хотел зависеть от акки.
Пошел смотреть, че там у джавы. Апачи я брезгую (да там то же самое), а в джаве? А там просто список целых чисел, с названиями. И не все ответы, что перечислены в RFE, в джаве имеются в наличии.

Не, ну я так не играю. Кто там говорил, что "джава улучшается"? Такие же уебки, да еще теперь они все в Оракле, кто не успел убежать.

Придется с аккой. В принципе-то, это отдельная тема, RichResponse[T](httpCode, content: Option[T]).

juan_gandhi: (Default)
Сегодня на работе сюрприз. Пришлось мне в XmlObject  вставлять другие XmlObjects, как children. И вот вдруг обнаружил - коли ты его куда-то вставляешь, то у него имя изменяется! Вставь в два объекта - ну соответственно.

Нет, ну я думал, что эта эпоха идиотов давно прошла, лет 10 назад. Ан нет. Они все там же.
juan_gandhi: (Default)
Читаю, из 2012-го года:

"В недрах java.security.KeyStore внезапно делят на ноль.
Перехватывают это исключение и заворачивают в IOException.
В нашем коде перехватывают это исключение и возвращают null. Исключение идёт в левый лог, который никто не видит. Такая у нас херовая монада.
Получив null, берём его и вызываем на нём какой-то метод. Происходит NPE.
Перехватываем исключение, возвращаем false.
Игнорируем false.
juan_gandhi: (Default)
 So these managers decided to, by default, hide from the public a bunch of rather useful stuff (like some Base64). What they don't hide is Unsafe. I guess because the whole world is widely using Unsafe, and they won't agree to stop using Unsafe. But who cares about sun.misc.Base64.
juan_gandhi: (Default)

Would an Instagram filter be a good example of a 2D array in Java? Why or why not? What else would work?


 
juan_gandhi: (Default)
twice slower than Java on arrays. 

wtf

Sep. 22nd, 2017 02:48 pm
juan_gandhi: (Default)
scala> new java.util.Date(Long.MinValue)
res1: java.util.Date = Sun Dec 02 08:47:04 PST 292269055

scala> new java.util.Date(Long.MaxValue)
res2: java.util.Date = Sat Aug 16 23:12:55 PST 292278994

scala> new java.util.Date(Long.MinValue >> 16)
res14: java.util.Date = Thu Apr 06 13:14:04 PST 2491

juan_gandhi: (Default)
Double.NaN shouldBe Double.NaN



org.scalatest.exceptions.TesetFailedException: NaN was not equal to NaN
juan_gandhi: (Default)
Вычисляю, скажем, норму вектора; а там такой TraversableOnce, и он такой, перед тем как начать суммировать, проверяет, уж не пустая ли коллекция; а народная проверка на пустоту, как это принято на джавных языках, состоит в том, чтобы посчитать длину и удостовериться, что оная больше нуля. Ну казалось бы, нахер тебе длина. Ну и т.д. 

Да даже если просто hasNext() чекать, и то, инстанциируется итератор, а для этого нужно фильтровать базар, например, ну и т.д.

Это я вбрасываю реализма. Написал, например, Foldable на джаве, чтобы "ускорить процесс". В три раза, например, на длинных векторах.

Короче, сильные типы важны, но под покровом типов надо как-то хотя бы от боксинга избавиться.
juan_gandhi: (Default)
...for running linear algebra stuff on gpu?

github.com/deeplearning4j/nd4j - for Java
github.com/deeplearning4j/nd4s - for Scala

Judging by the title, got a feeling that yes.
juan_gandhi: (Default)
  public static <T> T headOrNull(Iterable<T> ts) {
    Iterator<T> it = ts.iterator();
    return it.hasNext() ? it.next() : null;
  }

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

June 2025

S M T W T F S
1 2345 6 7
8 9 10 11 121314
15161718 1920 21
22232425262728
2930     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 26th, 2025 07:05 am
Powered by Dreamwidth Studios