Skip to content

Instantly share code, notes, and snippets.

@msbaek
msbaek / mapFlatMap.scala
Created June 5, 2015 05:51
Map FlatMap
/**
* map, flatMap
*/
val l = List(1, 2, 3, 4, 5)
l map (_ * 2)
//option can be considered a sequence that is either empty or has 1 item
def f(x: Int) = if (x > 2) Some(x) else None
l map (f(_))
l flatMap (f(_))
def g(v: Int) = List(v - 1, v, v + 1)
/** ******************* 기초 *********************/
/** **********************************
* Partial Application
*
* 인자의 일부만 사용해 호출하기(부분 적용, Partial Application)
* **********************************/
// 인자의 일부만 사용해 호출하기(부분 적용, Partial Application)
def adder(m: Int, n: Int) = m + n
val add2 = adder(2, _: Int)
add2(3)
@msbaek
msbaek / query.py
Last active August 29, 2015 14:22
python-selenium
#-*- coding: utf-8 -*-
import os, time
from selenium import webdriver
# in order to use unicode
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
# Set up chromedriver path
chromedriver = "/usr/local/bin/chromedriver"
@msbaek
msbaek / TwitterUrlAnalyzer.scala
Last active October 14, 2015 11:02
TwitterUrlAnalyzer.scala
class TwitterAnalyzer(val topCount:Int = 20, val fileName:String = "20151003") {
def reduceToTop(urls:org.apache.spark.rdd.RDD[(String, Int)]) {
urls.reduceByKey((a, b) => a + b).map(_.swap).top(topCount).map(_.swap).foreach(println(_))
}
def analyze() {
val textFile = sc.textFile(fileName + ".tag")
val linesThatHasUrl = textFile.filter(line => line.split("\t")(1) == "add")
val linesThatHasCafeUrl = linesThatHasUrl.map(line => line.split("\t")(23).split(" ")(0)).filter(url => url.startsWith("http://cafe.daum.net"))
val fullUrl = linesThatHasCafeUrl.map(url => (url, 1))
@msbaek
msbaek / ConvertFromOneObjectToAnotherTest.java
Created November 14, 2015 09:01
convert one object to another object by using Function in guava
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import com.google.common.primitives.Ints;
import lombok.Data;
import org.junit.Test;
import java.math.BigDecimal;
import java.util.List;
@Data
@msbaek
msbaek / build.gradle
Created November 20, 2015 05:01
gradle build file
buildscript {
ext {
springBootVersion = '1.3.0.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath('io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE')
@msbaek
msbaek / ParameterizedTest.java
Created January 22, 2016 08:52
parameter, result의 array를 가지고 자동으로 테스트 수행
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import java.util.Arrays;
import java.util.Collection;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
#!/bin/sh
servers="was1 was2"
for i in $(seq -w 1 11); do
for server in `echo $servers`; do
target_date="201602$i"
echo "count from $server for $target_date"
ssh ssh_id@$server "grep \"Data too long for column 'title' at row 1\] with root cause\" /logdir/logfile.log.$target_date | wc -l"
done
done
public enum CardDataType {
TYPE_SIMPLE(1, "simple"),
TYPE_IMAGE(2, "image"),
TYPE_LIST(3, "list");
public int cardType;
private String name;
CardDataType(int cardType, String name) {
this.cardType = cardType;
this.name = name;
@msbaek
msbaek / Stream1.java
Last active March 11, 2016 23:02
여러 원소에 대해서 필터링, 매핑하는 예제
private List<String> getRequestInfo(LoggingEvent event) {
List<String> result = Lists.newArrayList();
appendIfExists(result, event, IP);
appendIfExists(result, event, ID);
appendIfExists(result, event, DEVICE);
return result;
}
private void appendIfExists(List<String> result, LoggingEvent event, String key) {
String value = (String) event.getValue(key);