見出し画像

【ハードウェアハッカソン】ハッカソンをしてみた感想

ハッカソン(英語: hackathon、別名:hack day, hackfest, codefest)って何からというよりはこれはハッカソンを知るというところまでの記録のようなもの。これは2018年の記録。2018年の夏から秋にかけての日記。

ハッカソンとは

ハッカソン(英語: hackathon、別名:hack day, hackfest, codefest)とは、ソフトウェア開発分野のプログラマやグラフィックデザイナー、ユーザインタフェース設計者、プロジェクトマネージャらが集中的に作業をするソフトウェア関連プロジェクトのイベントである[1]。個人ごとに作業する場合、班ごとに作業する場合、全体で一つの目標に作業する場合などがある。時にはハードウェアコンポーネントを扱うこともある。ハッカソンは1日から一週間の期間で開催することがある。いくつかのハッカソンは単に教育や社会的な目的を意図に開催する。使用に耐えるソフトウェアの開発や既存のソフトウェアを改善することを目標としている場合もある。また、使用プログラミング言語、オペレーティングシステム、アプリケーション、API、主題や参加プログラマーの人数を定める場合がある。

ハッカソンという言葉はハック(hack)とマラソン(marathon)を合わせた混成語である。この言葉はOpenBSDの開発者やサン・マイクロシステムズのマーケティングチームによってそれぞれ自主的に考えだされたと思われ、1999年から使われ始めたと言われている。OpenBSDによって最初に使用されたことがはっきりとしているのが1999年6月4日にカルガリーで行われた暗号開発イベントであり、アメリカ合衆国から10人の開発者が暗号ソフトウェアの輸出規制によって発生する法的問題を回避するために参加した。サン・マイクロシステムズがこの言葉を使用し始めたのは1999年6月15日から19日まで開催されたJavaOneカンファレンス(英語版)である。ここではジョン・ゲージ(英語版)が出席者に新製品のPalm Vを使って他のPalmユーザーと赤外線通信やインターネットへ登録するためのプログラムをJavaで記述することに挑戦させた。このイベントは「ザ・ハッカソン」("the Hackathon")と称された。2000年代半ばから後半にかけてハッカソンは著しく普及し、企業やベンチャーキャピタルが新たなソフトウェア技術の迅速な開発や技術革新、投資の新たな場と注目するようになっていった。いくつかの主要企業がハッカソンから誕生するようになり、2010年のTechCrunch Disrupt NYCで開催されたハッカソンのプロジェクトから誕生したGroupMeは2011年にSkypeから8500万ドルの出資を受けた。

ハッカソンは一般的に(もしある場合だが)イベントに関する主題に関する1つもしくは複数のプレゼンテーションで始まる。その後、参加者達は個々の関心ごとや技能に基づきアイデアを出したりチームを結成したりする。そしてハッカソンの主作業は始まってから数時間から数日間続くことになる。24時間を超えたり、競争が激しかったりした場合、参加者はしばしばピザや栄養ドリンクでくだけた食事をする。また寝る時も寝袋などで雑魚寝する。終わりには通常チームごとの結果を示したデモンストレーションが行われる。コンテスト要素も時々あり審査員が優勝チームを選出し賞を授与する。多くのハッカソンでは審査員は団体やスポンサーによって構成されている。BarCampスタイルのハッカソンではiOSDevCampのような開発コミュニティによる運営で行われており、審査は通常その分野の同僚によって行われる。ハッカソンでは時々高額賞金が授与されることがあり、TechCrunch Disruptのソーシャルゲームハッカソンでは優勝者に25万ドルの賞金が贈られた。他のハッカソンではコンテスト要素は無いものの、むしろ既存ソフトウェアの改善に主眼が置かれたものもある。この場合度々ハッカソンはコード上の作業で開発者が直接顔を合わせる数少ない機会の1つを与えるためにオープンソースソフトウェア (en) の一部分を参加者に委ねている。このようなイベントのことを「スプリント(英語版)」もしくは「コードスプリント」と呼ばれることもある。

記録|前日譚①

ハッカソン(英語: hackathon、別名:hack day, hackfest, codefest)って何からというよりはこれはハッカソンを知るというところまでの記録のようなもの。これは2018年の記録。2018年の夏から秋にかけての日記。

2018年の夏、いつものように鶴舞公園まで散歩をしお弁当をコンビニで買べる日課があったのだが上記のコンビニエンスストアで買ったお弁当の写真をSNSにアップロードするために写真を撮るときに話しかけられたのが最初だった。

謎の同期:自分の中のあだ名はJoker

だれやろなあ?と思って話をしてついていったけど、自分の中ではこの子をJokerと呼んでいる。写真は一応マスク取ったら顔は似ていなかったので載せる。自分自身の中でJokerは普通の方なのかもしれない。Jokerはこういうことをする。

冷やし中華ラーメンにソフトクリームを入れてしまうのがJoker流

あまり言えないが僕は初めて人と話したのがJokerだったと言っても過言ではない。体調がもともと弱っており寝込んでいるのが多くJokerが初めての友達と言っても過言ではなかった。

プログラミングの勉強記録

C言語(英: C programming language)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発した汎用プログラミング言語である。英語圏では「C language」または単に「C」と呼ばれることが多い。日本でも文書や文脈によっては同様に「C」と呼ぶことがある。制御構文などに高水準言語の特徴を持ちながら、ハードウェア寄りの記述も可能な低水準言語の特徴も併せ持つ。基幹系システムや、動作環境の資源制約が厳しい、あるいは実行速度性能が要求されるソフトウェアの開発に用いられることが多い。後発のC++やJava、C#など、「C系」と呼ばれる派生言語の始祖でもある。

C言語の特徴

・構造化プログラミングのパラダイムに対応した高水準の手続き型言語である。ハードウェアの直接的な制御ができる機能を備えつつ、機械語やアセンブリ言語(アセンブラ)のような低水準言語と比較して、ソースコードの再利用性やメンテナンス性に優れており、目的に応じたプログラムの変更や拡張が容易である。

・汎用性およびプログラムの自由度が高く、リソースや性能要求の厳しい用途にも耐えうるため、アプリケーションソフトウェアの開発だけでなく、オペレーティングシステム(OS)やデバイスドライバー、ファームウェアの記述、マイコン制御・機械制御など、上位層・下位層を問わず、あらゆる分野で利用されている。

・対応する機器の範囲が広い。パーソナルコンピュータやワークステーションはもちろん、自動車や家電の組み込み用マイコンからスーパーコンピュータまで、C言語を使用できるハードウェアは多様である。そのため、C言語のコード資産が蓄積されている環境・分野は多岐に渡る。

・商用・非商用を問わず、採用ソフトウェア分野が広い。プログラム作成やデバッグのための補助的なソフトウェア(プログラミングツール)が豊富である。

・ソースコードを機械語に変換するソフトウェア(コンパイラ)などの開発環境がCPUやOSに付属していたり無償だったりするものもあるため、ライセンス料の支払いをしなくても使用が始められる。

自分の中でのC言語の特徴を要約すると汎用性が高い、プログラミングの実行速度が速い、OSやプロセッサに依存しない、フレームワークが豊富、ライブラリも多い。

OSとプロセッサとは枠組みの外のハードウェアのようなものであり、デバイスがなにであれ、あまり依存性が高くないものであるということもである。C言語におけるUnityは、組み込みシステムを含む、ユニットテスティングフレームワークのことを指します。プログラムの単体テストを行うためのフレームワークである「xUnit」の名前が名称の由来になっています。Unityは、C言語用に作られた軽量なテスト用フレームワークで、実践的なテストにおいて必要とされる各種機能を搭載しています。また、標準で自動テストディスカバリ機能がついています。

ゲーム機がOS、プロセッサとすると、ゲームソフトがC言語や他の言語のプログラミングやあとはライブラリにデータを入れるなどをしたものである。ゲームのソフト自体はグラフィックデータ、サウンドデータ、プログラムがざっくりだと入っている。プログラムはデータ自体を紐づけて画面や音としてつなぐためのものや画面内でのアクションをするためのものである。

まとめ

ハードウェアハッカソン自体は体験できてよかった。どちらかというとJokerとのタッグ戦でのコミュニケーションが寝込んでいた自分自身にとってよいものであった。プログラミング自体にJokerは興味があったらしく、プログラミング自体は汎用性は高いけど、デバイスが限られてはいるからなあとは思ってはいる。デバイスと言えばノートパソコン、スマートフォン、携帯型ゲーム機一般的に触れられるものと言えばそのくらいしかないのでプログラミング自体の概念を広げるためにはデバイスが変わったものが加わるとプログラミングもよくなるんではないかなと感じた。プログラミング自体はいろいろなものにソフトウェアとして入っており、ハードウェアにソフトウェアが入り世界の中の一部として稼働しているというイメージが自分自身にはある。Jokerにとっての「世界の醍醐味」は楽しいとは思う。そう感じた。デバイスがいっぱいあると世の中楽しいだろうなとは思った。これは2018年の記録。

この記事が気に入ったらサポートをしてみませんか?