2015年10月23日金曜日

【H.K.WORKS】SoundCloudアカウント開設&新作Remix公開

これまでH.K.WORKSの作成物は、RemixはDroplamp(以下相方)のアカウントで公開したりmixは僕のアカウントで公開したりして、セットリストでまとめたりしていました。

しかし僕も相方も最近サウンドクラウドさんとのやり取りがすったもんだありまして、H.K.WORKSの曲達は一旦削除となりました。

ということでどうせならと新たにH.K.WORKS用のアカウントを開設。
過去曲は全て公開し、DLもFREEでできます。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓
https://soundcloud.com/h-k-works
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 

MIXはないですが、P.A.WORKSオンリーのやつだけ僕のmixcloudにUPしてあります。

で、更に新作のRemixを公開。
シャーロットのOP「Bravely You」 のRemixです。




こちらは後日公開予定の「Charlotte EP」に収録予定なので現在視聴のみです。

今回のRemixはドリルンベースな感じになってます。
シャーロットやこのOPのイメージは「流星群」とか「夜空」とかあると思うんですけど、それでカタイ感じのブレイクビーツでキラキラした感じにしたかったです。まあ元々そうゆうのが好きなので。
日本のアーティストで言うとデデマウスとか。星空感満載ですよね。



【出演情報】
そんなこんなでH.K.WORKSで直近2本出演があります。

■10/24(土) 15:00 -
アニメ山 @おおばキャンプ村
http://tweetvite.com/event/yama


野外です。星空の中DJができる。さっきもデデマウスとか言ったけど星空っぽい感じにエモく仕上げたい。珈琲のみたい。

■10/31(土) 15:00 -
P.A.LOVERS @川崎 月明かり夢てらす 
http://twipla.jp/events/165061



ついにP.A.WORKSを大々的にフィーチャーしたイベントにお呼ばれされました。
とはいえ一年前の前回、相方が先に出演しているのですが。

それも踏まえて僕が加わったことでまた違う感じが出せればなと。

ちなみにP.A.WORKS作品で一番好きなキャラはアルファルドです。

2015年10月18日日曜日

H.K.WORKS Limited Pocket-T

マイメンの何人かが所属してるクリエイティブチーム「THIS IS MY____」にH.K.WORKSでTシャツを作ってもらいました!




ボディはFRUIT OF THE ROOMのポケットTシャツ
胸ポケットにフレームロゴ
でオーダーしました。

オーダーで作ってもらいましたが、言ってもらえればまた作れるそうなので。

THIS IS MY____ は最近公式サイトもOPENしたので是非チェックしてください。
WEBSHOPにはTシャツの他にコーチジャケットやパーカなんかもあります。

HP: http://thisismyunderbar.com/
WEBSHOP: http://www.thisismyunderbar.com/shop





2015年3月18日水曜日

[Hadoop] MapReduceでHBaseにバルクロードする

JavaでHBaseへデータを登録する方法についてのメモ。
一連の流れが具体的に書かれてるようなのが見つからなかったので。
詳しくは馬本を読めとのこと。。

[目的]
HDFSファイルの内容をHBaseに登録すること。
一行ずつ直接HBaseにPutしてもいいけど、ファイルの中身が膨大なんでMapReduceを使いたいのと、登録はバルクロードでやりたい。

[概要]
・MapReduceでHFile(※)を生成する
・HFileのあるディレクトリを指定してHBaseにバルクロードする
※HBase用データファイル

[方法]
全体のソースは丸ごと最後に書くので、部分的に。

まずMapReduceJobの設定。
Inputはファイルの中身のテキストを読み込むので、
job.setInputFormatClass(TextInputFormat.class);


OutputはHBaseへの登録。なのだが、それは最終的な出力であって、MapReduceの出力はあくまで"HFileの生成"。
OutputFormatには以下のように"HFIleOutputFormat"を指定。
job.setOutputFormatClass(HFileOutputFormat.class);

そして、HFileOutputFormat.configureIncrementalLoad() というメソッドを使って設定をしておく。これをやっとけば勝手に指定HTbaleのHFile生成用Reducerを作ってくれる。
HFileOutputFormat.configureIncrementalLoad(job, hTable);

ちなみに、MapReduceではJobの結果ファイルを出力するが、その時指定した出力先ディレクトリがHFileの出力先になる。指定ディレクトリ配下に、HBaseへPutするファミリーの名前で階層が自動で作られ、そこにHFileができる。
FileOutputFormat.setOutputPath(job, outputDir); 

Mapper側では、InputはTextでOutputは以下のキー・バリューを使用する。
job.setMapOutputKeyClass(ImmutableBytesWritable.class);
job.setMapOutputValueClass(Put.class);

ImmutableBytesWritableはHBaseに登録するRowKeyになる。
そして、そのキーに対して登録する内容をPutクラスで作ってバリューにセットする。
ここで出力をPutにしたことで、HFileOutputFormatは自動で"PutSortReducer"というReducerを自動で使ってくれる。あとはKeyValueクラスも使えるが、他の形式には対応していない。
正直、Incrementにも対応していて欲しかった。拡張もできねーし。。

話戻りますと、↑のような感じなのでReducerはナシ。作るのはMapperのみ。

で、Jobを実行。無事Jobが終わったら、HFileが出来ているので、ディレクトリを指定してバルクロード。"LoadIncrementalHFiles"というAPIを使う。(JavaのAPIがあることに中々気づけなくて苦労した。。)
以下のように実行。
LoadIncrementalHFiles loadTool = new LoadIncrementalHFiles(conf);
loadTool.doBulkLoad(outputDir, hTable);

これでバルクロードしてくれる。超早いです。
Jobが終わってからファイルでロードするので、Jobが途中でこけたりしても問題なし。
中途半端にデータが入ったりせず、簡単に再実行できる。


以下サンプル。

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.mapreduce.HFileOutputFormat;
import org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class TestBulkLoadJob {

 /**
  * 
 
  * args[0]:InputPath
  * args[1]:OutputDir
  * args[2]:HTableName
  * 
* @param args */ public static void main(String[] args) throws Exception { Configuration conf = HBaseConfiguration.create(); String inputPath = args[0]; Path outputDir = new Path(args[1]); HTable hTable = new HTable(conf, args[2]); Job job = new Job(conf, "hbase bulk load job"); job.setJarByClass(TestBulkLoadJob.class); job.setMapOutputKeyClass(ImmutableBytesWritable.class); job.setMapOutputValueClass(Put.class); job.setMapperClass(TestMapper.class); job.setNumReduceTasks(0); // Reduceは勝手にPutSortReducerでやってくれる job.setInputFormatClass(TextInputFormat.class); // ファイルから入力 job.setOutputFormatClass(HFileOutputFormat.class); // HBaseへ出力 // Input設定 FileInputFormat.setInputPaths(job, inputPath); // Output設定 FileOutputFormat.setOutputPath(job, outputDir); // 結果ファイル(HFileを含む)出力先 HFileOutputFormat.configureIncrementalLoad(job, hTable); // HFileのOutput設定 // Job実行 boolean success = job.waitForCompletion(true); if (success) { // Jobが成功したらHFileのあるディレクトリを指定してバルクロード LoadIncrementalHFiles loadTool = new LoadIncrementalHFiles(conf); loadTool.doBulkLoad(outputDir, hTable); } System.exit(success ? 0 : 1); } public static class TestMapper extends Mapper { @Override protected void map(Writable key, Text value, Context context) throws IOException, InterruptedException { String line = value.toString(); // HBaseのRowKey(とりあえずlineをそのままkeyとしておく) byte[] rowKey = Bytes.toBytes(line); // 登録用Putオブジェクト作成(とりあえずカウント(1)をセットしておく) Put put = new Put(rowKey); put.add(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), Bytes.toBytes(1L)); // MapのOutputKeyはRowKeyで作成 ImmutableBytesWritable imKey = new ImmutableBytesWritable(rowKey); // contextにkeyとvalue(Put)をセット context.write(imKey, put); } } }

2014年8月25日月曜日

AKIHABARA MOGRA 5th ANNIVERSARY

AKIHABARA MOGRA 5th ANNIVERSARY!!


ということで、今週末はMOGRAの5周年アニバーサリーに出演します。

去年の4周年も出演させて頂いたのですが、今年も出演者としてお祝いができてとても嬉しいです。


各日程と詳細はコチラから

DAY1 
http://club-mogra.jp/2014/08/29/2051/
DAY2
http://club-mogra.jp/2014/08/30/2052/
DAY3
http://club-mogra.jp/2014/08/31/2053/


なんと今回はアニバーサリー限定グッズとしてオリジナルスナップバックが販売されるようです。
2種類で各日限定15個ずつ(合計30)とのことなので、欲しい方は是非お早めに!
店長の妹さん可愛い。



私は8/29(金)23:00オープンのDAY1に出演します!
以下DAY1の詳細

2014.8.29.fri
23:00~5:00
Door ¥2,500(1Drink)

▼DJ
DJ Gyaran(ANISON INDEX!!/声クラ。/Anilab.)
DJ kaw*kaw(Xi-lium / A-HOL!C)
お父ちゃん。(こす☆ボウル / discloud / Anilab.)
まじなる(Anilab./A-HOL!C/声クラ。)
祖師谷太郎(A-HOL!C)
HokBoy(合法ロリパーティー/ANISON MATRIX!!/VOCALOID-ManiaX)
プリーム a.k.a. ホウリンスタイル 2ND(いい感じのイベント)
GuySaaaaaN!!(AniCrush!!!/ Anilab./ Nine Musez)
yusuke3rd(GAME SONG DJ BAR / Gamezon / スーパーギルガメッシュナイト)

▼VJ
KITUNE
くなはら



DAY1は普段アニソン原曲メインの現場で活躍されている諸先輩方が多く、例外は僕とゆーすけさんぐらいでしょうか。
原曲中心のイベントならコンセプトに合わせて自分も原曲中心にやるところですが、今回はアニバーサリーなので精一杯自分の好きな感じで思いっきりやれればなと思います。マトリクスレギュラーとしてやりたいです。

2014年8月22日金曜日

JSONとJavaオブジェクトのマッピング

前はXMLとJavaオブジェクトのマッピングをやってたけど、今回はJSONとJavaのマッピングです。
JSONのマッピングなんて初歩の初歩だけどやるのは初めてだった。

JSON⇔JavaではGsonを使ってみた。

【Gson】GSONは、Googleが提供するJSONデータとJavaオブジェクトを相互に変換するためのライブラリ。

使いたい場合はPOMに書いて


    com.google.code.gson
    gson
    2.3



JSONデータのサンプルはこれで めちゃ簡単にした

{
    "user_id": 1,
    "name": "hokboy",
    "mail": {
        "pc": "XXX@gmail.com",
        "mobile": "XXX@softbank.ne.jp"
    }
}


マッピングするJavaのオブジェクトは

public class User {
 private int id;
 private String name;
 private Mail mail;
 
 public int getId() {
  return id;
 }
 
 public void setId(int id) {
  this.id = id;
 }
 
 public String getName() {
  return name;
 }
 
 public void setName(String name) {
  this.name = name;
 }
 
 public Mail getMail() {
  return mail;
 }
 
 public void setMail(Mail mail) {
  this.mail = mail;
 }
}

public class Mail {
 private String pc;
 private String phone;
 
 public String getPc() {
  return pc;
 }
 
 public void setPc(String pc) {
  this.pc = pc;
 }
 
 public String getPhone() {
  return phone;
 }
 
 public void setPhone(String phone) {
  this.phone = phone;
 }
}


で、シリアライズ(Jsonに変換)する場合は

String jsonData = "{\"user_id\":1,\"name\":\"hokboy\",\"mail\":{\"pc\":\"XXX@gmail.com\",\"mobile\":\"XXX@softbank.ne.jp\"}}"
Gson gson = new Gson();
User user = gson.fromJson(jsonData, User.class)


デシリアライズ(Javaオブジェクトに変換)する場合は

Mail mail = new Mail();
mail.setPc("XXX@gmail.com");
mail.setMobile("XXX@softbank.ne.jp");

User user = new User();
user.setId(1);
user.setName("hokboy");
user.setMail(mail);

Gson gson = new Gson();
String jsonData = gson.toJson(user)


てな感じ


今悩んでるのは

{
    "1": [
        {
            "1": [
             {
              "1": [
                  {
                     "hoge": "fuga"
                  }
              ]
          }
            ]
        }
    ]
}


このJSON形式だと、オブジェクト化すんのむずくね… キーがなくてバリューしかないっていう…

2014年8月8日金曜日

RIDを始めた頃やDJを始めた頃

~回想~


大学に入ったときは、意気揚々と「なんか楽しいことやりたい!」って思ってた。
それで色んなサークルを見て回ったりしたけど、しっくりくるものがなかったり、溶け込める気がしなかったりで中々決まらなかった。
新歓にもいくつか行ってみたけど、何しろお酒が苦手だし初対面の人と話すのも疲れるし、つらい思い出しかなかった。

それで、結局俺には陸上しかないんだな。と思って、体育会陸上部に入った。
同好会もあったけど、同好会のノリでやりたくはなかった。あと高校のインハイ予選での悔しさが残ってたり、陸上を諦められなかったのもある。

だけどやっぱ甘くなくて、ブランクもあったしとにかく結果を出せなかった。
練習は勿論頑張ったけど、でも高校と大学じゃ全然環境が違った。
みんな時間が合わないから一人で練習することも多かったし、大学に競技場もなかったし。(高校はあった)

それで、すごく悩んだけど、一年のシーズン終わりで部活を辞めた。
話を聞いてくれた当時のチームメイトには本当に感謝しかない。


それで二年からはキャンパスが渋谷に移るってのもあり、今更大学のサークルには溶け込めそうにないし、原宿で活動できないかと考えた。
服が好きだったから。
当時はストリートスナップ全盛期で、高校三年~大学一年ぐらいは暇さえあればDROPやRIDのスナップを見ていた。

ほんでそのRIDがスタッフを募集してたので参加した。

スタッフの中には美容学生や服飾学生が多かったし、人脈の全くない俺は最初はどうしたらよいかと困った。
服は好きだったけど、注目されるようなセンスなんてなかったし。
だからとにかくスタッフの仕事をがむしゃらに頑張ることにした。
原宿に集まってわいわいやってって友達増やしてって感じの人も多かったけど、
その中で俺はハントもスチール(撮影)も事務所作業(写真加工・HP更新)も全部やってみた。

それが功を奏してか、仕事を任されるようになってディレクターにもなったし、写真とかフォトショとかHTMLとか詳しくなれたのは大きかったかなと今は思う。
でもなによりディレクターになってとにかく人脈が広がった。それが後にイベント運営やDJ活動に繋がったと思う。

その中でRIDはパーティー撮影もやってるので勿論それもやった。初めてのクラブ。
とにかくがむしゃらにパーティー撮影に入りまくった。
一番しんどかったのはAtomでの撮影。やっぱりギャルやギャル男は苦手。(嫌いではない。良い人もたくさんいる。)

そこでクラブって、DJって面白いと思った。
で高校の同級生がDJやってたってのもあり、同じく高校の同級生と一緒にDJを教えてもらってた。
後にその一緒に練習した同級生と三茶に住むことになって、2人でCDJとミキサーをお金出しあって買った。
その同級生と一緒に住んで、お互い頑張ろう!って共同生活してたのは色んな意味ですごくいい経験になった。
一番身近であり、一番尊敬できる人で、引っ越すときはお互い別れ際に泣いたりした。

DJ始めた頃の話に戻ると、いきなり現場に出れるわけでもなく、でもDJの知り合いはそれなりにいたので、自分でイベントをやった。それが最初のDJ。
最初にイベントをやったこともあり、そのおかげで声をかけてもらえることも増えていった。
そこからは武者修行。AsiaのラウンジやeverのラウンジやsolfaのラウンジやAirのラウンジや、とにかくやってみた。
基本ミニマルやテックハウス系が多かったかな。しんどい現場もあったけど、とにかく場数を踏みたくて頑張った。

そのうちアニメネタもいけるイベントの出演も出てきた。
その辺は斉藤兄弟のおかげだ。今じゃアニソンのイベントは全くやらない2人だが当時はアニソン要素を入れたイベントもやってて誘ってくれた。

そこから今に至るって感じかな。。


時系列は変わるけど、ネットレーベルやアニソンDJに興味を持ったのはDJ始める前からだった。
今でも仲良いけど、RIDの友達にMOGRAの存在を教えてもらって一緒に遊びに行ったり。
ちなみにそのときに会ったのがお父ちゃん。お父ちゃんもスナップのスタッフやってた時期があったので意気投合。

日本のネットレーベルとかもその辺りで友達に教えてもらったりしてよく聴いていた。

で、さらに言えばRIDはever時代の電刃で撮影してたし、電刃自体ファッション色も強かったので知ってはいた。
アクシスでの電刃行ったときは今でもよく覚えてるし色々衝撃だった。

ネットレーベルではないけど、化物語コンピはめっちゃ聴いてた。だからsHimaUさんとかも知ってて電刃出るから楽しみにしてて、
それで生でsHimaUさん聴いたときから完全にブレイクコアやナードコアにはまった。
衝撃すぎて自分で撮った映像。我ながらFujiyama Gangsta Breaksの時に撮ったのはGJ。
これが後の他のイベントでのsHimaUさん紹介で使われてたのはめっちゃ嬉しかった。



それでテクノとかのDJをやりつつも(誘われる現場的に)、隙あらばネットレーベルの国産曲をかけてたしなんならアニソンのブートかけたりしてた。
目標はMOGRAのアニソンマトリクス出演だった。

だからマトリに初めて出るとき、斉藤兄弟のIVO-Zさんと一緒だったのは本当に嬉しかったし心強かった。



~回想終わり~

2014年8月7日木曜日

2014夏。近況。

ここ最近の近況をつらつらと書いてみる。内容はごちゃごちゃ。


とりあえず先週のDJ3連チャン


1.アザマンショー
http://ravesamurai.otherman-records.com/

アーメンブレイクが大好きな人にとっては夢のような一日。
やっぱりブレイクコアは楽しい。だって音数が多いんだもの。

でもその楽しさを更に楽しくするのは、このイベントの雰囲気やお客さん。
主催の邪神さんをはじめ、とにかく会場がブレイクコア愛で溢れていた。

BE-WAVEでも2フロア人パンパンで、もっと大きいところでもよかったのではと思うくらい。

Wan武士は勿論、全ての演者が最高でした。

僕はラウンジのトリでjungle、drill'nBass辺りをメインに。トリだし後半はWispやμ-ZiqやEmotional Joystickなど有名どころの美メロドリルンでいったら、凄い反響良くて嬉しかった。今でもこの辺の曲は聴くと涙が出そうになる。


2.アニソンマトリクス
http://club-mogra.jp/2014/08/02/2046/

今回はレギュラーのみの開催。
なんとズームインサタデーの取材が入っていました。
といってもMOGRAというより店長の取材だったのですが、
もし、かしたら、ちょこっと映像に入り込んでたりするかも。(出番店長の次だったし)

放送は8/9です。

ゲストなしでもたくさんのお客さんが来て下さり、とても盛況でした。
地の強いイベントであることを証明できたのでは。僕は一番の下っ端だけど、本当に先輩方は凄いんだよ。

もともとゲームネタはよく使うけど、今回は外人が多くてゲームネタの反響が凄かった。なので、かなり連発していった。


余談だけど店長がよく虫食べるというので、長野県伊那市のお土産で「蚕のサナギの田舎煮」をあげました。おいしく召し上がってくれたのでよかったです。


3.ETA(リアニブース)
http://etassa.jp/

とにかく暑かった。
正直ここまでろくな休憩もできてなかったので、油断すると倒れそうだった。

ボカマニのターンは実はETAアリーナの開演前の時間帯だったので、
外にも凄いたくさんのお客さんがいてボカマニにとってかなり好条件だった。

マメさんがメジャーな4つ打ちをどんどこ刺して釣りまくっていき、流石だった。
その後僕だったんだけど、自分なりにメジャーで刺さりそうなネタにしつつボカマニらしさを出すために音としては重い曲を使っていくようにした。
本当はもっといつも通り曲の知名度をあまり気にせずやろうと思ったんだけど、お客さん多くて雰囲気にひよった。正解だったとは思うけど。

それでも序盤ATOLSのプリセット(DUBSTEP ver)をぶっこんだりした。これはこれでよかったと思う。
なんかATOLSの曲2曲使ったんだけど、めちゃくちゃ反響があったらしくご本人にまで届いてたらしい。嬉しいことです。

ATOLSかける人いるの!?みたいな反応もそうだけど、スタッフのみなさんがフライヤー配りまくってくれたりで、ボカマニに新規のお客さんたくさん来てくれたら嬉しいなと思います。でも手ごたえはある。


とにかく暑くて死ぬかと思ったけど、野外DJはめちゃくちゃ気持ちいい!!
あ、前に初野外って言ってたけど、agehaのWaterでDJしたのが初野外だった。。

なんにせよまた野外でやれる機会があるといいなー。




8月のDJは、盆の日曜にボカマニがあったり、月末にはMOGRAの5周年アニバーサリーがあったりする。アニバーサリーはDAY1に出演。それについてはまだ出演者全員発表されてないしまた今度。


夏休み的には、盆の前後に休みをとったので、名古屋のAnthemに行く。なんだかんだ行けてないし、今回でAnthemは最後ということで今度こそ行く。
めちゃくちゃ楽しみ。国士無双ステッカー欲しい。



最近ハマってるのはもっぱらハイキュー。
連載読んでたけど、読めてないとこあったり連載だとどうしても頭にあまり残ってなかったりであれだったんだけど、アニメをちゃんと観たら観るたびに号泣でもう大変。
それでちゃんとコミックスも全巻買った。

ハマった理由は、キャラがいいとか話がいいとかってのは勿論あるけど、バレーボールってのが大きい。

僕は基本的に陸上競技を大学までずっとやってきたんだけど、中学は兼部が認められていたので、陸上部とバレー部に入っていた。
平日の週2バレーで週3陸上とスケジュールがちょうど重なってなかったので。でもそれプラス土日は少年野球もやってたんで、中学生の活動力ってやばいなーと今なら信じられん。

陸上部がメインで、そっちの部長をやってたから、バレー部の部長にはなれなかったけど、一応主将だった。

中学バレーと高校バレーじゃ全然違うけど、やっぱり練習の感じとか練習試合の感じとか、大会の感じとか、凄い当時を思い出せて懐かしい。
そんときはセッターやらされて、本当はスパイク打ちたかったとダダこねたりもしてた。

バレー好きだったけど、やっぱり自分は陸上が大好きだったんで高校以降は完全に陸上に専念した。

陸上の漫画だと、「涼風」があるけど、あれはダメだ。いや、涼風自体は好きだけど(実家に全巻ある)あれはラブコメだし題材が陸上というだけで全然陸上漫画ではない。

小説では「一瞬の風になれ」がある。これはちょうど高校の時に出た小説で、陸上(トラック種目ね)界隈では知らない人はいないと思うくらい話題になったし、描写がリアルですごくよかった。
漫画版も出たけど、アニメ化はしてない。あ、ドラマ化はしたんだった、あれはだめだった。

っていうのもあるけど、陸上漫画とかまた出たりしないかな。ハイキューみたいなノリの感じで。



話が近況じゃなくなってきたのでこのへんで。