年の瀬だし、卒業だし、ITCreate部でのこれまでの活動を振り返る。
この記事はITC Advent Calendar(2) 25日目の記事です
その一 https://adventar.org/calendars/2563
その二 https://adventar.org/calendars/2640
初めまして、がっちゃんです 本年度のITC( https://itc.moe )の部長やってます
今回は25日目の記事なので、今年1年間部長としてやってきたことと、ITCでの3年間について振り返って行きたいと思います。
ITC部長としての1年間
部長になった経緯
入部してから2年間部活動をしてきて、気持ちとしては元々部長をやりたかったのですが、ちょうど今年1年間が就活年度であったために立候補には二の足を踏んでいました。
しかし、当時の次期3年生を集めた会議で前部長の @44x1carbon 先輩が今年度は部長2名にする事を決めてくださったおかげで、自分と @yuuiro_1552 の2名が部長となりました。
部長になってから一発目のお仕事
初めてのお仕事は、新入生勧誘のためのオリエンテーションでの部活紹介でした。
スライド作りから発表まで協力して行い、無事に16名(オリエンテーション時点)の新入生が入部してくれることになりました。
ただ、今となっては当時はまだまだ未熟で、もっといい説明できたなぁ…という後悔はあります。
しかし、いくらそう思っていても過去には戻れないので、今は今の部活をどういい部活にするかを考えるようにしています。
現在の部員数は新規入部や退部などがあり、15人の一年生が所属しています。
ITCreateclub Conference(ITCC) 開催
今年の4月に、新入生と学生・講師陣にITCreate部の部員が普段何をやっていて、部活を通してどんなことを学んでいるのかをスライドを使った発表を行う初のカンファレンスイベント、ITCreateclub Conferenceを開催しました。
在学生13名が発表し、告知が遅れて、ぎりぎりになってしまったにも関わらず、30名ほどの学生・講師・学校職員の方々が参加してくださりました。
自分が発端で開催したイベントだったので、発表者が集まったことも、参加者が集まったこともすごく嬉しかった記憶があります。
色々迷惑をかけてしまった夏合宿
我が部活では毎年、夏に系列大学の施設をお借りして0泊3日(非推奨)のハッカソンを行っています。
今年度も夏合宿を開催することとなり、タイムスケジュールの作成や食料の手配、スポンサーとなってくださる企業の方との連絡などなどを行っていました。
今年は
- 株式会社 Aiming 様
- 株式会社 アジャイルウェア 様
- さくらインターネット 株式会社 様
- GEEKS 株式会社 様 (順不同)
過去最大の4社ものスポンサー企業様に協力していただいただくことができ、ITCreate部の成長を感じました👍
しかし、アジャイルウェア様との連絡ミスを自分がしでかしてしまい、協賛品のレッドブルを当日に用意できないというピンチを招いてしまいました。
その時は顧問とアジャイルウェアの担当者様の柔軟な対応のお陰で、当日にレッドブルを用意することはできたのですが、お二方に対して多大な迷惑をおかけしてしまったのは反省だらけですし、お二方には感謝してもしきれない程のことでした。
KOFでの発表
今年はITCがセッション枠を一枠お借りし、出張活動報告会という形で部員それぞれが前の一ヶ月ほどでやってきたこと、次の1ヶ月でやる予定のことを発表させていただきました。
自分も発表をさせていただいたのですが、それよりも1年生2名がKOFのセッションで発表している姿を見て、能動的な1年生が増えて嬉しいと同時に、そういった子が外の環境で発表ができているところに感慨深いものがあったのを記憶しています。
これからもITCのエンジニアには、エンジニアとしての開発能力はもちろん、アウトプットをすることができるエンジニアになっていって欲しいなーなんて思っています。
ITC部員としての3年間
これまではITC部長としての1年間の話を書いてきましたが、自分は今年で卒業のため、ついでにここで部員としての3年間を振り返りたいと思います。
入部まで
もともと、自分はエンジニアではなく、漫画関係の仕事に就くつもりで高校生活を過ごしていました。(漫画家→原作者→漫画担当編集)
しかし、高校生の間に漫画関係の仕事につくためには難しいと感じていたため、進路を決める時に専門学校からはIT系の分野(Webデザイナー)を勉強し、そこで働こうと考えて、(右も左もわからず) JavaとHTML/CSSを勉強していました。
当時はJavaとJavaScriptの違いをわかってませんでしたw
その時にお世話になったサイト(懐かしい)
入部後、@t_kusakabe74との出会い
入学後、自分の一番大きな変化のきっかけはITCに入部して彼と出会ったことです。
自分は完全にWeb系のデザイナーとして働こうとしか考えていなかった(他の道が見えていなかった)状態だったのですが、
とあるプログラミング教室のメンターをやっていた彼に出会って、Webデザイナー以外にもフロントエンジニア、バックエンドエンジニアなど、たくさんの道があるということを知りました。
そして、KOF2015でITCのブースに展示するために一緒にブラウザゲーム( http://ahaha0807.github.io/num_banda/port_ver/html/Start.html )を作った際に、彼がロジックを組んでいるのを見て、自分ももっとやりたい!と感じるようになっていきました。
1,2年生の間はがむしゃらに勉強会に参加
1年生の後期〜2年生の中頃まではひたすら色んな勉強会に参加したり、カンファレンスのスタッフをさせていただいたりしていました。
当時の自分は、圧倒的にインプットが足りていないと感じていたところがあった + 勉強会の雰囲気とか懇親会とかがめっちゃ楽しいと感じていたので、分野をほぼ絞ること無く勉強会に参加していました。
フロントエンド界隈、Java界隈、GDG界隈、AR/VR界隈、AWS界隈、PHP(Laravel, Wordpress)界隈、kintone界隈、スタートアップ界隈などなど、、、
先輩から紹介してもらった勉強会やconnpassで見つけた勉強会で興味があるものには片っ端から参加していました。
お陰で幾つかの界隈で仲良くしてくださる方と知り合ったり、その関係でまた別の勉強会のことを教えていただいたり。
自分がインプットするのが好きだったのもあって、めっちゃ楽しい時期でした。
外部の学校のスーパーエンジニア @konojunya との出会い
勉強会に参加しまくってた頃、先輩の紹介でついていったVRの勉強会で一緒にスタッフをした HAL大阪の @konojunya くんに出会いました。
当時、色んな勉強会に参加して色んなインプットをしていたことで、自分の力がついていると勘違いしていた自分の前にあちこちの勉強会で運営側として参加していた彼が現れて、さらにそこの勉強会で自分の作ったプロダクトを使って運営のお手伝いをしているのを見て、
「あ。こんなんで満足してるのやばいわ。作らな。」という大きな危機感を感じ、ものづくりをガンガンやりまくる!そしてアウトプットとして発表しまくる!という方向にだんだんとシフトしていきました。
ITC部員として、二度目のMF出展
@konojunya くんとの出会いでものづくりをする方向にシフトしてから数カ月後に、学内の作品展(MF)が開催されました。
自分は焦りから、そのMF出展作品の5作品もの作品に名前を連ねてしまい、内2作品に見事に迷惑をかけてしまいました…。
その時の後悔と反省は今でも忘れずに持っています。
ご利用は計画的に。
アウトプットが楽しくなってきた3年生
自分自身がアウトプットが楽しくなってきたのと同時に、ITCの部長として様々なイベントを開催することができるようになり、それをきっかけに前記の ITCCや言語のいいところ話そう会(通称: 言語LT)の開催を行っていきました。
それと同時に、自分は外部勉強会でもLTをさせて頂くようになり、LTや記事を書くという形でアウトプットをするようになり、現在の活動にいたります。
まとめ
長々とこれまでの部長生活の振り返りとITC部員生活(学生生活)の振り返りを書いてきましたが、3年間の生活の中で感じたのは、やっぱり人との出会いは大事だなということです。
外部のスーパーエンジニアと知り合うことはモチベーションアップにもつながりますし、自分の知らない知識を得ることができたりもして、一石二鳥、三鳥どころでは済まないほどにたくさんの得るものがあります。
なので、自分の中での部・部員に対しての考えは、人脈を広げてたくさんの力を吸収する土台を作って欲しいということにつきます。
例え人脈クリエイト部と揶揄されることがあったとしても、残り2,3ヶ月の部長生活ではそういったことができる環境づくりを進めていくつもりです。
人脈とモチベーションがあれば色んなInnovativeなThingsをCreateしやすかったりするので、ITCreateClub(Innovation Things Create Club)の発展のために頑張っていきます👍
そしてそれと同時に来年度からの部長の作業を多少でも助けることができるようなたくさんのドキュメントを残しておくことも頑張るつもりです👍
残りの部長生活がんばるぞー!社会人になってからも頑張るぞー!
仮想通貨について調べた。マイニングとは?なんで価格変動するの?
この記事はITC Advent Calendar(1) 8日目の記事です
その一
https://adventar.org/calendars/2563
その二
https://adventar.org/calendars/2640
初めまして、がっちゃんです。
本年度のITCの部長やってます。
今回は最近ハマってる仮想通貨について書きます。
ブロックチェーンとか、マイニングとか、なんで価値が上下するのかとか書きます。
そもそも仮想通貨とは?
Bitcoinに代表される、 ブロックチェーン技術を使った決済システム のこと。
そのシステムの上で扱われる通貨の単位もBTC(ビットコイン)と呼ばれるため、混同されることが多いのですが、(Bitcoinにおいては)実は技術的には決済システムが存在するだけなのです。
記事の中では、システムや総称を Bitcoin システム内の仮想通貨の単位を BTC と表記します。
ブロックチェーンとは?
決済記録を(DB)をみんなで鎖型に繋いで管理しましょうっていう考え方です。
みんなが決済記録を持っていて、みんなの取引を見れるようにしておくことで、
不正を行った場合、多数決の要領で「この取引は不正だ!」と見抜くことができるようになっています。
↓ 不正な取引記録がある台帳を連結しようとすると…
↓ 不正であることがすぐにわかるため、チェーンから除外することができる
このような形のシステムのため、 送金(の反映)にある程度の時間がかかってしまう のです。
伝言ゲームのように送金情報が伝搬し、それが不正ではないかを確認します(合意を取る)。
ブロックとは
ブロックチェーンとはその名の通り、鎖のように繋げて管理すると先に書きましたが、
チェインするもの、ブロックとは何なのかを書いていきます。
まず、ブロックとは以下の3つをまとめた概念で、 マイニングによって生成 されます
- 前のブロックのハッシュ値
- 取引の情報
- Nonce(ノンス)
ブロックの中に前のブロックのハッシュ値が入っていることから、ブロックチェーンしている状態と扱われるようになりました。
引用: http://www.nttdata.com/jp/ja/services/sp/blockchain/mechanism/
ブロックの中の取引の情報
取引の情報はブロックに挿入してブロックチェーンのネットワークに上げないと、取引が成立したと言えず、また、そのブロック自体は平均10分に一度しか作成(発掘)されないために送金処理に時間がかかってしまうのです。
Nonce(ノンス)
後述のマイニングで変動させる数値で、変動させた結果。マイニングの項で解説を行います。
前のブロックのハッシュ値
ハッシュ値はブロックの中にある3つの情報をまとめてハッシュ関数にかけて求めます。
このため、 もしも前の取引の情報の一つが改ざんされていた場合、全く違うハッシュ値が出てくるため次のブロックが本来のハッシュ値と違う!と気づく ことができます。
ブロックチェーンではこの機構を分散型で行うことによって、信頼性が担保され、通貨として担保できるという仕組みです。
マイニングとは?
先に記述した、ブロックを作ることです。
しかし、ただデータをひとまとめにしてハッシュ値を求めてブロックを作るだけでは誰でもすぐにできてしまうので、ルールが決められています。
Bitcoinをはじめとした仮想通貨ではそのルールによって 難易度調整 が行われます。
最も汎用的なルール
出力されるハッシュ値の最初のn文字分が0であること
これが最もよく使われるルールで、それ以外のハッシュ値が出るブロックはブロックチェーンのブロックとして認められません。
どうやってルール通りのハッシュ値を出す?
先の文章の Nonce(ノンス) を使用します。
ブロックチェーンのブロックの仕組みとして、
- 前のブロックのハッシュ値
- 取引情報
は与えられたものを使うしかありません。(改変したりしたらブロックチェーンの原則が崩壊する)
その為、ブロックの中にある、唯一の可変な値 Nonce(ノンス) を調整(という名の総当り)して、出力されるハッシュ値をルールに則る形に調整します。
この、狙い通りのハッシュ値が出るまでNonce(ノンス)をガチャる行為を マイニング と呼びます。
基本的にノンスガチャには莫大なCPU・GPUリソースがかかる(毎回ハッシュ化の計算をする)ため、ルールに則ったブロックを見つけた人には、報酬が支払われます(一定量のBTCの権利をもらえる)
(めちゃめちゃ運が良ければ、数回の計算でブロックを発掘できて12.5BTC(1600万円)が転がり込むことも?※ほぼ不可能です)
なんで価格が上下するの?
これに関しては現実世界の需要と供給による値動きと理由は一緒で、
金の価値が上下したり、株価が上下したり、日本円が上下するのと一緒です。
要するに、 需要が高まれば(沢山の人がほしいと思って買えば)値が上がるし、供給のほうが多くなれば(ほしいと思う人が減って売りが進めば)値が下がる のです。
Bitcoinにおいては、
BTCはマイニングでしか手に入らない
= 電気とCPU/GPUリソースを消費してBTCを得る形(ソロマイニングの場合は等価交換にはなりにくい)
です。
そのため、ブロックが発掘されるたびにBTCが市場に増えていきます。
しかしながら、マイニングの難易度調整機能によってブロック生成の時間が調整され、一気に市場に出回らないようにしているので、Bitcoin側のインフレにはなりにくいと言われています。
代わりに、ここ最近(2017/12/08)では、需要が恐ろしく高まってマイニングで生まれる報酬ビットコインの量の増加よりもほしいと思う人・額の増加が高まっていることによってビットコインの価格が急上昇しているということです。(もちろん、多分に個人的見解が含まれています。)
まとめ
いかがだったでしょうか?
自分も勉強不足でこの記事を書くにあたって勘違いに気づいたりしたのですが、この技術おもしろいです。
そして、技術的に面白いし実用性が見いだせることによって、沢山の人が興味を持っていて、それによって価値が上がり、その波に乗って利益を得たりもできるのです。
まだまだ自分も勉強不足ですが、めっちゃ面白い領域なので、これからも調べていこうと思います。
直近ではこのホワイトペーパー読むところから始めようかな。
- http://kogarashi.net/pitchblende/wp-content/uploads/2014/03/BitcoinWhitepaperJapanese.pdf
では、長々と書きましたが、読んでいただきありがとうございました!
もし、間違いや何か疑問に思うことがありましたらご連絡くださいませ…!
まだまだ自分も勉強中のため、勘違いしているところがあるかもしれませんので、よろしくお願いします!
ここから仮想通貨を一緒にはじめましょう!
bitFlyerは(手数料が比較的が高いですが)免許証とかなしで学生証とかでも登録できて、新規参入しやすいです!
coincheckはBitcoin以外の銘柄が色々おいていたり、比較的手数料が安いです!
このURLから飛んでもらえるとアフェリエイトが入ったりするので…始めるならぜひここからはいってくれると…嬉しいなぁ…(/ω・\)チラッ
そして、ためになったのであれば…
BTC: 3MdLmRkXorA1yHqecJy2HToHyVLLE5PJjy
BCH: 3MdLmRkXorA1yHqecJy2HToHyVLLE5PJjy
MONA: MSdhAey4fUEoZEAvfnQBkCaPHHLttkx4Gk
モナゲリンク:
と使い方 => http://dhpkww12.hatenablog.com/entry/2017/06/14/123425
Minecraftおもろい
この記事はITC Advent Calendar(2) 2日目の記事です
その一
https://adventar.org/calendars/2563
その二
https://adventar.org/calendars/2640
初めまして、がっちゃんです。
本年度のITCの部長やってます。
第二までできてしまってるのに途中で途切れるのも面白くないので技術全く関係ない記事ですが書きます。
皆さんはMinecraftを知ってますか?
割と有名なゲームなので、きっと皆さん知ってると思いますが、私は体の半分が優しさでできているので知らない人のためにURLだけは貼っておきますね。
https://minecraft.net/ja-jp/?ref=m
ちなみに、PC版のMinecraftはJavaで出来てます。
そして、PE(モバイル)版はC++で書かれてたらしいです(今は知らん)
https://twitter.com/jeb_/status/122350670648066049
あとは、Windows10版とかVRで遊べるバージョンとかRasPiで遊べるバージョンもあります。
MS傘下に入ってから色々出て来たイメージありますね。
楽しい
そして、ここからが言いたかったことなんですが、MinecraftにはMOD(Modification: 改変、変更)と呼ばれる、改造データを組み込む機構がありまして、それを突っ込んで遊ぶのもまた楽しいんですよ。
https://www.pcgamesn.com/minecraft/twenty-best-minecraft-mods
銃火器を追加するものや、ダンジョンを追加するもの、新しい鉱石や敵を追加するものなどなど、、、色々あるので、やりたくなった人は探してみるといいです。
また、Minecraftのmodの面白いところは、modをつくる環境が長年かけて整備されているところです。
Minecraft Forge( https://files.minecraftforge.net/ )さえ入れておけば、modを入れるのに苦労しない。と言えるほどのものです。
これは俗に言う前提modと言うものなのですが、前提modを入れておけばいろんな種類のmodを入れていても、コンフリクトとかを起きないように忖度してくれます。
また、これを使ってmod開発をすれば、本体との連携周りとかややこしいところをラップしてくれてるみたいです。
あ。開発言語は基本的にJavaです。悪しからず。
(でもJVM言語なんやし、KotlinとかScalaで書いたりできひんのかな…
あと、コーディングスタイル的には スペース2つのインデント 派らしいので、お気をつけください。
https://mcforge.readthedocs.io/en/latest/styleguide/#formatting
自分もそのうちテレポートできるmodとか作って遊ぼうと思ってるので、一緒に作ってくれるプログラマ友達探してます。
よろしくお願いします。
本題
で、別に開発関係の話をしたかったわけではなく、2年ぐらい前にめっちゃハマってたmodが知らない間に最新バージョンに対応するようになってて、
それを入れて遊んだのがめっちゃ楽しかったので紹介したかっただけです。
自分が大好きなmodは
- Industrial Craft2 (IC2)
- Build Craft(BC)
と言う、俗に言う電気・工業系modです。
めちゃ楽しいです。
Inderstrial Craft2とは
電気modと言われるmodで、Minecraftに電気の概念を持ち込むmodです。
これ使って効率のいい環境作るのめっちゃ楽しいです。
https://www.industrial-craft.net/
電気で動く道具や機械を用意し、Minecraftの生活を効率よく快適にするのも楽しいですし、炭やマグマを燃やす火力発電から、水力、太陽光、風力発電に発展し、もっと発展すると原子力発電をすることもできます。
楽しい。
Build Craftとは
工業modと言われるmodで、自動建築や自動採掘、アイテム移動用のパイプなどなどが追加されて、工場を作ることができます。
楽しい。
http://www.9minecraft.net/buildcraft-mod/
自動で採掘して、それをパイプで移動させて、IC2の機械にぶっこんでたくさんのアイテムを作り出す。
それを使ってさらに快適な生活を手に入れる。
たのしぃぃぃぃぃ!!
ので、是非とも一緒にMinecraftしましょう。
できれば、modを入れて一緒に遊んでくれる人募集してるので遊びましょう。よろしくお願いします。
技術的な知見とか発見とかは一切ありませんが、最後まで読んでくださってありがとうございました。
もしかしたらまたこんな記事書くかもです。
あと Twitter フォローお願いします❤️ => https://twitter.com/ahaha0807_alg
KanJavaParty に参加してきました!(初投稿)
ご挨拶
初めまして、がっちゃん(Twitter: @ahaha0807_alg)です!
初投稿は今日(2017/06/24)、参加した KanJavaPartyに参加した記録を書こうと思います!
これまでQiitaだったり、Twitterだったり、GitHubだったり、FaceBookだったりをやってきているので、まだこのはてブロの使い道に関しては定まってないのですが、とりあえず勉強会の参加記録とかに使おうかなぁとかは考えております!
ちなみに、なんで突然使おうかと思ったのかと言いますと、このイベントではてなさんのエンジニアの方の発表を聞いたり、懇親会中のエンジニアの方とのお話の中でインターンの話題があって、思い出したからであったります←
参加したセッションの感想とかとか!
※朝思いっきり寝坊してお昼からの参加だったので、午前中のセッションは1つも見れてないです…←
1つめ : 「Introduction to JShell: Official REPL Tool for Java Platform」
Java9で追加される待望のJavaのREPLツール「JShell」のお話でした!
備忘録
- JShellではfinal・publicが無視される!(そもそもJShellの使い道とは異なってるから)
- 宣言したメソッドとかを更新しながら試行錯誤するためのツール!
- Java9からは _ (アンダースコア)1文字では変数名・関数名とかの識別子には使えない!
- JShell は最新の Java の構文をサポートする
- コマンドが使えて、/list -all を使うと、これまでに書いてきたコード全体が見れる!
- デフォルトのプリセットが有り、 PRINTINGを使えば System.out.println が println だけで使えるようになる!
- JShell のタブ補完めっちゃ優秀。ドキュメントとかも見れる!
- /debug on を使うと中でどう実行されてるのかも表示できる
- 前方参照っていうやつがあるらしい。メソッドとかを先に宣言しておいて、あとから処理部分を書くことで使えるようにする機能!(いまいちわかってない)
- Java勉強会開くときとかに使いたいから早くJava9来い来い
「Microservicesアーキテクチャに取り組んでみえたこと」
マイクロサービスでやるときに使った手法や注意点などについてのお話でした!
備忘録
- モノシリック(一枚岩)なシステムだと影響調査が辛い
- DDDは最初っから完璧を目指さない!コアドメインに着目する!
- 認識がずれると困るところはきちんとユビキタス言語として定義しておく!
- ムービングモチベーターズのワークショップでモチベーションを可視化するの良さげ
- ブランチの運用はチームにお任せする方があれこれ言うよりも良さそう
- Conwayの法則。設計はチームに似る!設計が変われば合うチームも変わるし、チームが変われば合う設計も異なる
- 下記のコメントすっごいなるほどって思った
コンウェイの法則は逆の方が実は重要なんだと思う。既存の組織構造が今時のアーキテクチャに向かないの状況で今時のアーキテクチャを導入したいアーキテクトは組織構造に口出す覚悟を持てってことじゃないかなと #KanJavaParty #KanJavaPartyB4
— Eiji YAMANE (@e_yamane) 2017年6月24日
- マイクロサービスではリアクティブ宣言が重要(らしいので今度ちゃんと調べる)
- akkaはいいぞ
- LambdaはJVM言語で書くとウェイクアップに時間がかかるので、継続的に使われるところでやるように!それかどーーーしても必要ならCloudWatchでcron使って叩き起こす
公開されたスライド!
https://speakerdeck.com/yoshiyoshifujii/microservices-architectureniqu-rizu-ndemietakoto
「関西Java女子部ショートセッション大会」
きの子さんからの関西Java女子部の紹介
非エンジニアの人に向けて勉強会を開いた話
- 非エンジニアでも知りたがってる人も結構いる!
- ターゲットを絞って勉強会をしたほうが難しくない
リファクタリングの話
- 人生のリファクタリング(名言)
- エビ(ネスト深すぎ)
- 君の名は(変数名わけわからん)
- マトリョーシカ(ごめんなさい覚えてないです…)
- 詰め放題セール(1メソッドに5000行はアカン)
- 名家の家系図(あなたの親(クラス)誰…)
- 覚えられない呪文(長過ぎるメソッド名)
ハンズオンの話(こっちの印象がすごい強い)
- 長めのハンズオンだと完成させることを目標に、資料とかを準備して持って帰ってまた触ってもらえるように!
- 短めのハンズオンだと体験版にするのを目標に、ツールとかを使って詰まりどころを減らす形に!
『はてなブックマークAndroidアプリへのKotlinの導入について』
Javaで出来たAndroidアプリをどうKotlinに載せ替えるか?とKotlinがどんなものなのかってお話でした!
- KotlinはSwiftライクな記法
- JavaをKotlinの文法に一気に変換できる
- でもKotlinの文法になるだけでモダンな書き方になるわけではない!
- Kotlinの後ろに型を書く書き方、初期化の時に違和感感じる…w
- data class 使うといろいろ便利なメソッドデフォで用意されるよ!便利!
各セッションの参加記録はこんな感じです!
あとは、懇親会に参加したのですが、Twitterでよく見る人と実際にお話出来たり、寺田さんのアツいお話聞けたり実り多い懇親会でした…(*´∀`*)
まとめ
めっちゃ楽しかった!!
Javaはいいぞ!
ITCreate部でもJavaの勉強会せねばね(*´∀`*)