Saturday, March 12, 2016

Immutable Collection Javaライブラリの実装更新

import java.util.*;
/*
* Stone.java
*
* class to support immutable collection handling
*
* @author kei sugano
*
*
*/
public class Stone {
public static <T> List<T> newList(T e){
List<T> list = new ArrayList<T>(){{ add(e); }};
return list;
}
public static <T> List<T> newList(T e, T e2){
return push(newList(e), e2);
}
public static <T> List<T> newList(T e, T e2, T e3){
return push(newList(e, e2), e3);
}
public static <T> List<T> newList(T e, T e2, T e3, T e4){
return push(newList(e, e2, e3), e4);
}
public static <T> List<T> newList(T e, T e2, T e3, T e4, T e5){
return push(newList(e, e2, e3, e4), e5);
}
public static <T> List<T> newList(T e, T e2, T e3, T e4, T e5, T e6){
return push(newList(e, e2, e3, e4, e5), e6);
}
public static <T> List<T> concatList(List<T> list1, List<T> list2){
List<T> _list = new ArrayList<T>();
_list.addAll(list1);
_list.addAll(list2);
return _list;
}
public static <T> List<T> toList(T[] args){
return Arrays.asList(args);
}
public static <T> List<T> push(List<T> list, T elem){
List<T> _list = new ArrayList<T>();
for(T t : list)
_list.add(t);
_list.add(elem);
return _list;
}
public static <T> T get(List<T> list, Integer i){
return list.get(i);
}
public static <T> void puts(T text){
System.out.println(text);
}
public static <T> void puts(List<T> list){
System.out.print("[");
for(T t : list)
System.out.print(t.toString() + ",");
System.out.print("]");
System.out.println("");
}
}
view raw Stone.java hosted with ❤ by GitHub
(スマホでは見れないかも)

俺天才過ぎ(確信)
import java.util.*;
public class Main{
public static void main(String args[]){
Stone.puts(Stone.get(Stone.push(Stone.toList(args), "aaa"), 0));
immutableListTest(args);
concatListTest();
}
private static <T> void immutableListTest(String args[]){
List<String> immutableList = Stone.toList(args);
immutableList = Stone.push(immutableList, "hahaha");
for(String t: immutableList)
Stone.puts(t);
}
public static void concatListTest(){
List<Integer> _list1 = new ArrayList<Integer>(){{add(1); }};
Stone.puts(Stone.concatList(Stone.newList(1, 2), Stone.newList(3)));
Stone.puts(Stone.concatList(Stone.newList(4,5,6), Stone.newList(7)));
Stone.puts(Stone.concatList(Stone.newList("a","b","c","d","e", "f"), Stone.newList("i")));
}
}
view raw Main.java hosted with ❤ by GitHub

呼び出し側 https://github.com/keitaroemotion/Stone

線描 - altered state

暴力教 (再編) - Suganology(旧素人大学生)

Suganology - Beatboxing

my dream and future plan

Nanny Rap Est / Keita Roimo

hentai anime must be admitted

javaのimmutableList実装してた(スマホからだと見えないかも)

import java.util.*;
public class Main{
public static void main(String args[]){
puts(get(push(toList(args), "aaa"), 0));
immutableListTest(args);
}
private static <T> void immutableListTest(String args[]){
List<String> immutableList = toList(args);
immutableList = push(immutableList, "hahaha");
for(String t: immutableList)
puts(t);
}
public static <T> List<T> toList(T[] args){
return Arrays.asList(args);
}
public static <T> List<T> push(List<T> list, T elem){
List<T> _list = new ArrayList<T>();
for(T t : list)
_list.add(t);
return _list;
}
public static <T> T get(List<T> list, Integer i){
return list.get(i);
}
public static <T> void puts(T text){
System.out.println(text);
}
}
view raw Main.java hosted with ❤ by GitHub
mutableとか殺意が湧くんでimmutableをひたすらやってた あとはリスト同士の結合とかやんないとだな

マックのストレージが一杯だったのでストレージ調査のスクリプト作ってみた

Skip to content
This repository
Pull requests
Issues
Gist
@keitaroemotion
1
0
0
keitaroemotion/stan
Code
Issues 0
Pull requests 0
Wiki
Pulse
Graphs
Settings
stan/stan
66eff34 3 minutes ago
@keitaroemotion keitaroemotion anonymous func
executable file 41 lines (29 sloc) 914 Bytes
#!/usr/bin/env python
import os
import sys
def get_size(f):
return os.path.isfile(f) and os.path.getsize(f) or get_dir_size(f)
def ishidden(f):
f.startswith('.')
def get_dir_size(file):
return addup([get_size("%s/%s" % (file,f)) for f in listdir(file)])[0]
def addup(arg):
return (len(arg) == 0) and [0] or [reduce(lambda x,y:x+y, arg)]
def listdir(d):
try:
return os.listdir(d)
except:
return []
def get_directory_input():
return len(sys.argv) == 1 and "." or sys.argv[1]
def getValue(x, denom, box=()):
return denom > 999 and getValue(x%denom,denom/1000, box+(x/denom,)) or box+(x,)
def unitmap(key):
return {
1000000000:"GB",
1000000 :"MB",
1000 :"KB"
}[key]
def b2gb(m):
return (lambda t: "%sG %sM %sK" % (t[0], t[1], t[2]))(getValue(m, 1000000000))
print b2gb(get_dir_size(get_directory_input()))
Status API Training Shop Blog About Pricing
© 2016 GitHub, Inc. Terms Privacy Security Contact Help
view raw stan hosted with ❤ by GitHub
数学的な観点でみるとやっぱり再帰ってこういうところで力発揮すると思う。
ここでG、M、KBの解析を割り算とか でべたべた書いて行くと、汚いプログラムの温床になる。汚いコードってことは、後始末が大変ってことだ。



上と下、やってることはほぼ同じなんだけど、上の作り方は負の遺産になる。
まずエントロピーが高すぎるし、そもそも数学的に美しい作り方ではない。

つまりバグも出やすく、壊れやすく、メンテナンスもしにくい(工数があとあと雪だるま式にふくれあがる)。

再帰関数ってのはもっとも基礎的であって、もっともSEの力量が問われるトピックだと思う。

https://github.com/keitaroemotion/stan/blob/master/stan

Friday, March 11, 2016

Keita Roimo Blog: Raspberry Pi tutorials archives

Keita Roimo Blog: Raspberry Pi tutorials archives: How to connect MacBook with Rasberry Pi as main keyboard and Display provider https://www.raspberrypi.org/blog/use-your-desktop-or-laptop-s...

Saturday, March 5, 2016

イエ君



イエ君が結婚してから連絡あまりとってない

こうやって同期のつきあいも減って行く....


David Waters先生の法律学の授業 で声かけたのがきっかけで仲良くなった

俺の空気読めない駄目人間な感じでも受け入れてくれたからな...

Wednesday, March 2, 2016

絵を描いてみたよ♡



今回のコンセプト
1. なるべく原色
2. 構造を入れない(組み立てない)
3. 各要素の臨界・境界を意識しない

わりと統合失調の人の描き方に近い(粒度はあらいけど)かんじに寄せてみた

これはこれで美しいと個人的には思う

菅野契 aka KeitaRoimo - Schizo...

菅野契 aka KeitaRoimo - Last Solition After School