Skip to content

Instantly share code, notes, and snippets.

View anuraaga's full-sized avatar
🐻
Coding

Anuraag (Rag) Agrawal anuraaga

🐻
Coding
View GitHub Profile
@anuraaga
anuraaga / armeriabalancer.java
Last active April 21, 2016 17:21
armeria client-side balancer example
/*
* Copyright 2016 LINE Corporation
*
* LINE Corporation licenses this file to you under the Apache License,
* version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
@anuraaga
anuraaga / caffeinedeadlock.txt
Created April 22, 2016 04:00
Caffeine deadlock
"nioEventLoopGroup-6-6" #38 prio=10 os_prio=0 tid=0x00002abf50cce000 nid=0x1f4bb waiting for monitor
entry [0x00002abf4f150000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.util.concurrent.ConcurrentHashMap.computeIfPresent(ConcurrentHashMap.java:1761)
- waiting to lock <0x00000000d2cce1d0> (a java.util.concurrent.ConcurrentHashMap$Node)
at com.github.benmanes.caffeine.cache.BoundedLocalCache.replace(BoundedLocalCache.java:1739)
at com.github.benmanes.caffeine.cache.LocalAsyncLoadingCache.lambda$get$3(LocalAsyncLoadingCache
.java:141)
at com.github.benmanes.caffeine.cache.LocalAsyncLoadingCache$$Lambda$279/1171707185.accept(Unkno
wn Source)
@anuraaga
anuraaga / caffinedeadlockrepro.java
Last active April 25, 2016 08:16
Caffeine <=2.2.7 deadlock repro test
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertEquals;
import java.util.concurrent.CompletableFuture;
import org.junit.Test;
import com.github.benmanes.caffeine.cache.AsyncLoadingCache;
import com.github.benmanes.caffeine.cache.Caffeine;
@anuraaga
anuraaga / gist:b25cde3f08675ced5f567fe290de5838
Last active August 22, 2016 10:04
Gulp config for serving a static directory with clean URLs.
"use strict";
var gulp = require('gulp')
, modRewrite = require('connect-modrewrite')
, connect = require('gulp-connect');
gulp.task('connect', function () {
connect.server({
name: 'Test',
root: ['dist'],
import com.google.api.client.util.Strings;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Charsets;
import com.linecorp.armeria.common.http.AggregatedHttpMessage;
import com.linecorp.armeria.common.http.DefaultHttpResponse;
import com.linecorp.armeria.common.http.HttpHeaderNames;
import com.linecorp.armeria.common.http.HttpHeaders;
import com.linecorp.armeria.common.http.HttpRequest;
import com.linecorp.armeria.common.http.HttpResponse;
import com.google.common.base.Strings;
import com.google.devtools.cloudtrace.v1.PatchTracesRequest;
import com.google.devtools.cloudtrace.v1.Trace;
import com.google.devtools.cloudtrace.v1.TraceServiceGrpc;
import com.google.devtools.cloudtrace.v1.TraceSpan;
import com.google.devtools.cloudtrace.v1.Traces;
import com.google.protobuf.util.Timestamps;
import com.github.kristofa.brave.EmptySpanCollectorMetricsHandler;
import com.github.kristofa.brave.FlushingSpanCollector;
@anuraaga
anuraaga / gist:40e9f5c35a31c870afe4ee4a8c6f5170
Last active February 13, 2017 04:27
Stream vs iterator
/*
* Copyright 2017 LINE Corporation
*
* LINE Corporation licenses this file to you under the Apache License,
* version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
@anuraaga
anuraaga / gist:782b017d493f2cc20af85cd9eb4634d1
Last active June 13, 2017 10:35
Enable hot reload for react-boilerplate + react router v4
commit 95cd4b55cd54248ca61928920611bc595c2ee5a9
Author: Anuraag Agrawal <anuraaga@gmail.com>
Date: Mon May 8 18:01:36 2017 +0900
Enable hot reload.
diff --git a/service/client/web/app/app.js b/service/client/web/app/app.js
index 1045589..1abd273 100644
--- a/service/client/web/app/app.js
+++ b/service/client/web/app/app.js
@anuraaga
anuraaga / prometheus_patch.txt
Created May 19, 2017 06:02
Array type coercion (arrays are covariant)
diff --git a/core/src/main/java/com/linecorp/armeria/internal/metric/PrometheusMetricRequestDecorator.java b/core/src/main/java/com/linecorp/armeria/internal/metric/PrometheusMetricRequestDecorator.java
index 29a4523d..ce71ae60 100644
--- a/core/src/main/java/com/linecorp/armeria/internal/metric/PrometheusMetricRequestDecorator.java
+++ b/core/src/main/java/com/linecorp/armeria/internal/metric/PrometheusMetricRequestDecorator.java
@@ -24,8 +24,8 @@ import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Stream;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSortedMap;
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.