
Denis
31.10.2016
17:47:02
Ладно, сюда закину
Есть чо по хаскелю почитать?

guga
31.10.2016
18:00:51
Для домохозяек?

Google

Denis
31.10.2016
18:01:47
Не буду лукавить, сойдет и для домохозяек ?
Для упарывания этот язык вполне сойдет.

guga
31.10.2016
18:03:01
Это я шутки шутил, можешь спросить в tr.im/haskell

Denis
31.10.2016
18:03:27
Пасибо за инфу.
Вот почему у телеги нет общего каталога каналов по тематике

Daniel
31.10.2016
18:04:01
http://learnyouahaskell.com

Виталий
31.10.2016
18:42:08

Bogdan
31.10.2016
18:45:19
где нужно статические методы по конвенции объявлять?
Class (static) variables: First the public class variables, then the protected, then package level (no access modifier), and then the private
Instance variables: First public, then protected, then package level (no access modifier), and then private
Constructors
Methods: These methods should be grouped by functionality rather than by scope or accessibility. For example, a private class method can be in between two public instance methods. The goal is to make reading and understanding the code easier.

James Tiberius Kirk ?
31.10.2016
19:52:38

Sergey
31.10.2016
20:17:51
еба! трансляция хайлоад стоит 17к
охуеть

Almaz
01.11.2016
02:47:35

Google

Stanislav
01.11.2016
07:19:36
третий день пишу на котлине. Такое ощущение, что идиоматически он ближе к ML, чем к джаве
уж не знаю, хорошо это или плохо

Alexey
01.11.2016
07:26:44
Котлин не нужен, дискач

Stanislav
01.11.2016
07:35:07
вот, есть суперский вопрос по котлину (но можно и на джаве отвечать)
есть абстрактный класс MyClass c одном методом merge, который может принимать только такой же класс, что и у объекта, и возвращает новый объект такого же класса
т.е.
class MyClassA extends MyClass { MyClassA merge (MyClassA anotherA) { ... } }
class MyClassB extends MyClass { MyClassB merge (MyClassB anotherB) { ... } }
вопрос, собственно, как написать этот абстракный класс MyClass
можно, конечно, через дженерики
abstract class MyClass<T extends MyClass> {
abstract T merge ( T another );
}
class MyClassA extends MyClass<MyClassA> { ... }
class MyClassB extends MyClass<MyClassB> { ... }
но от такого чот глаза кровоточат

Антон
01.11.2016
07:37:28
ну через генерики

Stanislav
01.11.2016
07:37:53
ну в джаве иначе не решить, да
(хотя может я ошибаюсь)
но в котлине может быть есть решение покрасивше

Ivan
01.11.2016
07:53:23
а зачем T на уровне класс объявлять? если можно на уровне метода это сделать
abstract <T extends MyClass> T merge(T t);

Антон
01.11.2016
08:13:58
MyClassA и MyClassB
а нужно в мерж MyClassA принимать только MyClassA

Stanislav
01.11.2016
08:14:45
MyClassA a = new MyClassA()
MyClassB b = new MyClassB()
a.merge(b) //compile time error

Ivan
01.11.2016
08:15:28
ааа понял ужас
задача

Alex
01.11.2016
08:57:22
эм. абстрактный статик метод не подвезли, я понимаю, но
<T extends MyClass> T merge(T a, T b);

Stanislav
01.11.2016
09:00:16
не так уж и плохо, но хочется специфику мержа держать внутри объекта

Google

Stanislav
01.11.2016
09:01:40
сервис, который джонгирует этими объектами, вообще не может знать, как между собой эти объекты взаимосвязаны

Alex
01.11.2016
09:02:31
because that's the way Java is:
static <T extends MyClass> T merge(T a, T b) {return a.merge(b);}
бугага
вернулись к тому, с чего начали

Stanislav
01.11.2016
09:03:48
ну, можно было бы завести по статическому методу на каждую класс, имплементирующий MyClass

Alex
01.11.2016
09:04:03
неможно, не торт

Stanislav
01.11.2016
09:04:08
но чо-то как-то фу

Bogdan
01.11.2016
09:15:58
я использую два конфига для HttpSecurity как описано здесь
http://docs.spring.io/spring-security/site/docs/4.1.3.RELEASE/reference/htmlsingle/#multiple-httpsecurity
но из второго ничего не работает
кто-то юзает spring security?

Anton
01.11.2016
09:47:46
у меня все работало по этому примеру, делал месяц назад где-то

Konstantinx
01.11.2016
10:33:56
Я уже писал две недели назад со своим тз . Теперь я его сделал.
Укажите на очевидное говно,если есть , а то боюсь пролететь.
Вот мой проект и друга.
https://github.com/konstantinx/NumberToWords
https://github.com/yuraKorevikov/NumbersToWords
Задание одно.

Vladislav
01.11.2016
11:08:00
Ребята кто-то знает достойный аналог apache http-client?

Alexey
01.11.2016
11:09:50
akka-http

Stanislav
01.11.2016
11:42:45
https://github.com/AsyncHttpClient/async-http-client (бывший нинг)
есть еще ратпаковский, но ты вряд ли будешь тащить с собой весь ратпак ради их клиента

folex
01.11.2016
11:44:16
okhttp еще есть, он норм, если нагрузки не слишком большие, и подключений не оч много. >5k активных подключений или >10k RPS -- могут начаться сложности

Митко Соловец?
01.11.2016
11:47:29

Stanislav
01.11.2016
13:27:06
вот еще вопрос про котлин.
у меня часто есть потребность в конструкции
{
Timer timer = statsd.timer(...)
val result = result()
timer.tag( "result:$result" ).commit()
return result
}
выносить в лямбду обычно смысле нет, а напряжение такая конструция вызывает.
насколько говно в котлине делать такое чере .apply ?
{
Timer timer = statsd.timer(...)
return result()
.apply { timer.tag( "result:$it" ).commit() }
}

Google

Vladislav
01.11.2016
13:29:21
Всем спасибо за ответы

Yan?
01.11.2016
14:22:24
Поцаны, для записи дат, util.date юзать?

Igor
01.11.2016
14:23:07

Yan?
01.11.2016
14:23:24
Ммм, в поле класса

Luger
01.11.2016
14:24:08
java.time.LocalDate\LocalDateTime\etc

Igor
01.11.2016
14:24:13
Ммм, в поле класса
если 8я джава, то вот
http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html

Admin
ERROR: S client not available

Yan?
01.11.2016
14:24:57
Спааасибо

Igor
01.11.2016
14:43:59
> it is in fact possible that it will print zero, or never terminate at all
как такое может выйти?

Maksim
01.11.2016
14:45:38
Ты примеры с JMM читаешь?

Igor
01.11.2016
14:46:23

Maksim
01.11.2016
14:46:23
Компилятор может переставлять порядок команд. Иногда из-за этого получаются весёлые эффекты.

sss3 ?
01.11.2016
14:47:38
в императивном языке переставлять порядок

Igor
01.11.2016
14:47:59

Maksim
01.11.2016
14:50:04
Но это, если не ошибаюсь, только до Java 5 такая проблема была.

Google

Maksim
01.11.2016
14:52:44
Хотя хз, для меня этот JMM - тёмный лес. Там до сих пор куча непонятных мне вещей.

Igor
01.11.2016
14:52:49

Maksim
01.11.2016
15:01:23

Igor
01.11.2016
15:02:01
NoVisibility could loop forever because the value of ready might never become visible to the reader thread. Even more strangely, NoVisibility could print zero because the write to ready might be made visible to the reader thread before the write to number, a phenomenon known as reordering. There is no guarantee that operations in one thread will be performed in the order given by the program, as long as the reordering is not detectable from within that thread—even if the reordering is apparent to other threads
первый кейс непонятен, каким образом такое может быть
то, что при перестановке может напечатать 0 - очевиднее)

Антон
01.11.2016
15:12:28
Hb поставь)
У тебя все чтения через гонки

Igor
01.11.2016
15:14:54

Антон
01.11.2016
15:15:10
Ну в примере
То что тред увидел ready не означает что он увидит number
Поэтому там 3 состояния, инфинит луп, 0 и 42
Потому что запись и чтение никак не связаны, вот был бы волатайл ready 0 уже не мог бы случиться, и инфинит луп тоже
https://shipilev.net/#jmm
вот можно у шипилева посмотреть

sss3 ?
01.11.2016
15:44:32
там был вопрос "почему такое возможно"
а не как избежать