Skip to content

Instantly share code, notes, and snippets.

View Arakaki's full-sized avatar
:octocat:
Focusing

Arakaki Arakaki

:octocat:
Focusing
  • Japan
View GitHub Profile
@Arakaki
Arakaki / loanPattern.scala
Created November 21, 2013 10:24
ScalaでSFTP経由でファイル取得(LoanPatternバージョン)
import com.jcraft.jsch.{Session, ChannelSftp, JSch}
object App {
def using[A,B]( resource:A )( func: A => B )( endAction: A => Unit ){
try {
func(resource)
}catch{
case e:Exception => e.printStackTrace()
} finally {
endAction(resource)
@Arakaki
Arakaki / loanPattern.scala
Last active December 28, 2015 23:29
ScalaでSFTP経由でファイル取得(Loan Patternバージョン)
import com.jcraft.jsch.{Session, ChannelSftp, JSch}
object App {
def using(s: Session)(f: Session => Any){
try {
f(s)
}catch{
case e:Exception => e.printStackTrace
} finally {
s.disconnect()
@Arakaki
Arakaki / join.md
Last active December 28, 2015 02:48
MySQLだと上手くJoinできない

##環境 MySQL 5.5.20

##SQL //NG select m.id as i_on_m, m.name as n_on_m, m.company_id as ci_on_m , cnt.id as i_on_cnt, cnt.name as n_on_cnt , cmp.id as i_on_cmp, cmp.name as n_on_cmp, cmp.country_id as ci_on_cmp from members m inner join countries cnt on cmp.country_id = cnt.id left join companies cmp on m.company_id = cmp.id order by m.id //OK select m.id as i_on_m, m.name as n_on_m, m.company_id as ci_on_m , cnt.id as i_on_cnt, cnt.name as n_on_cnt , cmp.id as i_on_cmp, cmp.name as n_on_cmp, cmp.country_id as ci_on_cmp from members m left join companies cmp on m.company_id = cmp.id inner join countries cnt on cmp.country_id = cnt.id order by m.id

@Arakaki
Arakaki / debug.md
Last active December 27, 2015 15:59
Eclipse(ScalaIDE)でSkinnyをDebug

##前提 Windows上でskinny-blank-appから起動するこを前提としています。 他の方法から起動されるかたは置き換えて見て下さい。

##SBTにデバッグオプションを追加 sbt.batに下記のオプションを追加します。 ※address(ポート番号)は任意です。 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

デフォルトであれば下記の様になっているかと思います。

select *
from db1.book as x,
db2.author as y
where x.id=y.book_id
@Arakaki
Arakaki / ScalaProject.scala
Created October 21, 2013 13:13
Duck Typing
object Main {
def main(args:Array[String]) {
//Duck typing
def quackTheDuck( quackable: {def quack:String }) = {
"What does a duck say? " + quackable.quack
}
class RealDuck { def quack = "Quack!" }
class ImposterDuck { def quack = "Qwaack!" }
quackTheDuck(new RealDuck)
quackTheDuck(new ImposterDuck)
object Main {
def main(args:Array[String]) {
//Pimp my library
implicit class SuperInt(val i:Int) {
def square = i * i
def sqrt = math.sqrt(i)
}
println(7.square,49.sqrt)
}
object Main {
def main(args:Array[String]) {
//easy interfaces / mixins
trait Namable { val name:String; def greet:String = s"Hi $name!"}
//lazy evaluation
trait Randomable { lazy val rand:Int = (math.random * 100).toInt }
//easy class definition, support for mixins using traits
case class Person(name:String, favoriteLanguage:String) extends Namable with Randomable
@Arakaki
Arakaki / ScalaProject.scala
Created October 21, 2013 13:04
pertial function
object Main {
def main(args:Array[String]) {
def addNumbers(x:Int)(y:Int)= x + y
val addNumber = addNumbers(2)_
val value = addNumber(2)
}
}
@Arakaki
Arakaki / App.scala
Created October 18, 2013 08:12
Scalaでサマリ
object App {
def main(args : Array[String]) {
case class Structure(campaign:String,creative:String,imp:Int,click:Int,conv:Int,cost:Int)
val structures = List(
Structure("testcampaign001","testcreative001",1,1,1,1),
Structure("testcampaign002","testcreative004",1,1,1,1),
Structure("testcampaign003","testcreative005",1,1,1,1),
Structure("testcampaign004","testcreative003",1,1,1,1),
Structure("testcampaign004","testcreative001",1,1,1,1),