Links on Must watch talks
-
A Year living Freely - Chris Myers
-
Programs as Values Pure Composable Database Access in Scala. In general each talk from Rob Norris is very useful for learning.
"armeria-common-worker-nio-2-1@4812" daemon prio=5 tid=0x17 nid=NA runnable | |
java.lang.Thread.State: RUNNABLE | |
at com.linecorp.armeria.internal.Http2ObjectEncoder.doWriteData(Http2ObjectEncoder.java:93) | |
at com.linecorp.armeria.internal.HttpObjectEncoder.writeData(HttpObjectEncoder.java:85) | |
at com.linecorp.armeria.server.HttpResponseSubscriber.write(HttpResponseSubscriber.java:298) | |
at com.linecorp.armeria.server.HttpResponseSubscriber.onNext(HttpResponseSubscriber.java:227) | |
at com.linecorp.armeria.server.HttpResponseSubscriber.onNext(HttpResponseSubscriber.java:58) | |
at com.linecorp.armeria.common.stream.DefaultStreamMessage.notifySubscriberWithElements(DefaultStreamMessage.java:341) | |
at com.linecorp.armeria.common.stream.DefaultStreamMessage.notifySubscriber0(DefaultStreamMessage.java:319) | |
at com.linecorp.armeria.common.stream.DefaultStreamMessage.doRequest(DefaultStreamMessage.java:188) |
Links on Must watch talks
A Year living Freely - Chris Myers
Programs as Values Pure Composable Database Access in Scala. In general each talk from Rob Norris is very useful for learning.
java.lang.RuntimeException: null | |
at com.linecorp.armeria.internal.client.grpc.ArmeriaClientCall.close(ArmeriaClientCall.java:441) | |
at com.linecorp.armeria.internal.client.grpc.ArmeriaClientCall.transportReportStatus(ArmeriaClientCall.java:398) | |
at com.linecorp.armeria.internal.common.grpc.GrpcStatus.reportStatus(GrpcStatus.java:259) | |
at com.linecorp.armeria.internal.common.grpc.HttpStreamReader.onNext(HttpStreamReader.java:128) | |
at com.linecorp.armeria.internal.common.grpc.HttpStreamReader.onNext(HttpStreamReader.java:44) | |
at com.linecorp.armeria.common.stream.DefaultStreamMessage.notifySubscriberWithElements(DefaultStreamMessage.java:404) | |
at com.linecorp.armeria.common.stream.DefaultStreamMessage.notifySubscriber0(DefaultStreamMessage.java:382) | |
at com.linecorp.armeria.common.stream.DefaultStreamMessage.doRequest(DefaultStreamMessage.java:239) | |
at com.linecorp.armeria.common.stream.DefaultStreamMessage.request(DefaultStreamMessage.java:224) |
class FixedStreamMessageTest { | |
@ArgumentsSource(IntsProvider.class) | |
@ParameterizedTest | |
void spec_306_requestAfterCancel(List<Integer> nums) throws InterruptedException { | |
final Integer[] array = nums.stream().toArray(Integer[]::new); | |
final StreamMessage<Integer> message = StreamMessage.of(array); | |
final CompletableFuture<Subscription> subscriptionFuture = new CompletableFuture<>(); | |
message.subscribe(new Subscriber<Integer>() { | |
@Override |
## Templates for guava ## | |
.toList : convert to ImmutableList | |
java.util.stream.Stream -> $expr$.collect(com.google.common.collect.ImmutableList.toImmutableList()) |
package example.armeria; | |
import java.nio.charset.StandardCharsets; | |
import java.time.Duration; | |
import java.util.ArrayList; | |
import java.util.List; | |
import org.junit.jupiter.api.Test; | |
import org.junit.jupiter.api.extension.RegisterExtension; | |
import org.reactivestreams.Publisher; |
Unit
타입에 반환하는 함수의 반환값을 확인하지 않으면 컴파일러 워닝이 발생함
-Xfatal-warnings
옵션이 활성화 되면 컴파일도 실패됨Function<? super HttpService, ? HttpService>
형태의 일 경우에 Scala Function에서 바로 형변환이 되지 않기 때문에 delegate => new MyHttpService(delegate)
를 해줘야 함
{ | |
// comments | |
unquoted: 'and you can quote me on that', | |
singleQuotes: 'I can use "double quotes" here', | |
lineBreaks: "Look, Mom! \ | |
No \\n's!", | |
hexadecimal: 0xdecaf, | |
leadingDecimalPoint: .8675309, andTrailing: 8675309., | |
positiveSign: +1, | |
trailingComma: 'in objects', andIn: ['arrays',], |
// https://twitter.github.io/scala_school/type-basics.html | |
// 트위터 스칼라 스쿨에 나오는 자료구조를 활용해보겠다. | |
class Animal { val sound = "rustle" } | |
class Bird extends Animal { override val sound = "call" } | |
class Chicken extends Bird { override val sound = "cluck" } | |
class Duck extends Bird { override val sound = "duck" } | |
def foo(tweet: Bird => String) = { | |
tweet(new Bird) |
#!/bin/bash | |
# zsh | |
echo "Installing zsh..." | |
chsh -s `which zsh` | |
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh | |
# homebrew, pip | |
echo "Installing homebrew, pip..." | |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |