HANDAI JK Engineering Blog

HANDAI JKの技術ブログです

Mix Leapに行ってGoogle I/OとWWDCのレポートを聞いてきました!!!

こんにちは、HANDAI JKの原口です。 Mix Leap Study #45元代表の石田さんと行ってきました!(イベントから一週間以上経ってます。。。)

f:id:handaijk:20190704111705j:plain
入り口にあった可愛い看板です

Mix Leapについて

Mix Leapは、ヤフー大阪が定期的に開催しているオープンコラボイベントです。

定期的にいろんなテーマで開催されています。

イベント内容について

Google I/OWWDCは、それぞれ、GoogleAppleが主催している開発者向けのイベントです。今回のMix LeapはGoogle I/O 2019とWWDC 2019の報告会で、現地に行かれたYahooの社員さんが情報共有をしてくださりました。 結構ボリュームが多いので、資料が公開されたらそのリンクを貼ることにして、面白かった内容をいくつかピックアップして紹介します!

(WWDCの方は話を聞き込んでメモが残ってませんでした。。。笑)

People + AI Guidebook

「人間中心設計のAIプロダクトを作るためのガイドライン」とのこと、らしいです。機械学習ベースの物体検知の技術を用いて、カメラを撮った写真からそのまま検索したりするサービスをGoogleは展開していますが、その時の応対の方法やレイアウトをガイドライン化しています。フィードバックをユーザからもらう時のメッセージの書き方などもガイドライン化されているそうで、とても興味深い内容でした。

pair.withgoogle.com

次世代Google Assistant

  • サイズが100GB → 0.5GBに!
  • Google Duplexがウェブ上のタスクも実行できるようになった
    • Assistantと会話形式でレンタカーなどを予約できるようになる

他にも、アプリの複数タスクをAssistantでショートカットできたり、色々なプラットフォームでAssistantが登場するみたいです。

行ってみた感想とまとめ

行って良かったです!もちろん知っている情報もありましたが、現地の雰囲気がわかる写真があったり、具体的にコードや実装方法の解説があったりしてとても有意義でした。

また、懇親会もあり、Yahooのエンジニアの方や学生と交流することができました。

是非みなさんも参加してみてください!

おまけ

f:id:handaijk:20190704111736j:plain
帰り際に撮った、少し酔ってテンションが上がっている原口の写真です

フライヤー掲載はじめました!

暑くなったり涼しくなったり、皆さんは気温の変化に振り回されていませんか?

夏風邪がなかなか治らないHANDAI JKの杉森です

7/12(金)の豊中のサイエンススタジオAでLT大会が開催されることをご存知でしょうか?

今回はその開催にあたり、フライヤー掲載を始めてみました!!

新たな試みとしてどのような効果があるのか? 運営メンバーもドキドキです!

掲載場所は全学教育推進機構 A棟の2,3階、B棟の1,2,3階です!

f:id:handaijk:20190625110943j:plain:w250
B棟3階 すごく見やすい位置にあります!
    
f:id:handaijk:20190625110549j:plain:w250
B棟2階 ちょっと高いところです

f:id:handaijk:20190625110652j:plain:w230
B棟1階 存在感があります!
      
f:id:handaijk:20190625105734j:plain:w230
A棟3階 運よくスペースがありました

f:id:handaijk:20190625110750j:plain:w250
A棟2階 かっこよさが映えますね!

友達に紹介しようと思うけど、見せられるものがないときや新しい情報が入ってないかを確認するときに見ていただけると嬉しいです! 新たな情報が入り次第、ツイッターで広告していくのと同時にフライヤーも更新していこうと思います。

参加申し込みの方はこちらのgoogleフォームから、登壇希望の方はこちらのgoogleフォームに入力をお願いします!(登壇される方は参加申し込みのフォームへの記入は不要です)

まだまだ参加者を募集してます。少しでも気になるなと思った方、ぜひイベントに参加してみてください!お待ちしてます!

JKLT Summer 2019 宣伝イメージのメイキング

HANDAI JKの石田です。 7月12日(金)に夏のLT大会が開催されることが告知されました!やった!!

HANDAI JKではイベントごとを行うときに、イベントのポスター的役割を担う宣伝イメージを作成しています。 本記事では宣伝イメージの作り方(メイキング)を紹介したいと思います。

使用ソフト

テキストが多いものや、派手に画像を加工しない場合はAdobe XDFigmaといったプロトタイプツールを使って作っています。 本来これらのソフトはアプリのプロトタイピングに使われるものですが、機能がとてもシンプルでちょっとしたフライヤーのようなものを作るためにも使えると個人的には思っています。

しかし、今回は少し手の込んだことをしたのでPhotoshopを使って作りました。

f:id:handaijk:20190613202954j:plain
今回用意したコンセプト候補。最終的に左上の「三点透視図法」が選ばれた。

完成した宣伝イメージ

f:id:handaijk:20190613205317p:plain
HANDAI JK LIGHTNING TALKS Summer 2019

今回は今までで一番映画のポスター風の仕上がりになりました。(というのも作った人が映画好きだからです。) 特に世界が上下逆さまになっているシーンは、「インセプション」や「サカサマのパテマ」、「アップサイドダウン 重力の恋人」などたくさんの映画で見たことがあると思います。

www.youtube.com www.youtube.com www.youtube.com

ポイント解説

では、どういう技(というほどのものではないのだが)を使ってこの宣伝イメージを作ったかポイントを絞って解説します。

1. 二値化

f:id:handaijk:20190613133445p:plain
二値化 (Threshold)

二値化というのは、「これより暗い箇所は黒、明るい箇所は白」というように画像を2色に加工することです。これをビル街の画像に対して適用しています。エッジ部分だけが残るので、白黒にするよりもシャープな感じになります。

2. スクリーン(描画モード)

f:id:handaijk:20190613133449p:plain
描画モード: スクリーン

描画モードをスクリーンに設定すると、レイヤーを重ねた時に色も重なっていき白色に近づいていきます。全体が白黒ばかりだと物足りないので、アクセントとして青緑赤の長方形をスクリーンで重ねたものを加えました。

3. ゆらす

f:id:handaijk:20190613133455p:plain
クモの巣をゆらしてみた例

これは特に名前がついているか知らないのですが、レイヤーを複製して片方を少しぼかす&ずらすと3D映像を眼鏡をかけずに見たときのような独特な効果が生まれます。上半分の逆さまになっているビル街に適用しました。

4. フォント

f:id:handaijk:20190613133440p:plain
フォントを使い分けるだけでもがらっと雰囲気が変わります

今回の宣伝イメージには3つのフォントを使いました。HANDAI JK LIGHTNING~部分には Adderss Sans、Summer 2019部分にはLato、下部の日付部分にはRobotoを使用しています。

文字はフォントを変えたり、レタースペース(文字と文字の間隔)やウェイト(太さ)が違うだけでも印象が結構変わるので、いろいろ試してみると面白いです。

おわりに

宣伝イメージのメイキングはいかがでしたか?だいたいこんな感じで宣伝イメージは作られています。もし面白そうだなと思ったら、HANDAI JKではデザインができる運営メンバーを歓迎しているのでTwitter DMなどで声をかけてくださいね~!

LT大会またやります! (7/12金@豊中キャンパス)

最近めちゃくちゃ暑くなってきました。。。 毎日汗だくで登校しているHANDAI JKの原口です。

B1のみなさんは大学生活にも慣れてきましたでしょうか??

さて、4/24日に開催し大盛況となったLT大会を、 7/12(金) 豊中のサイエンススタジオAにて開催します。

f:id:handaijk:20190612100705j:plain
春に開催したLT大会の写真です。たくさんの方が参加してくださり大盛況となりました!

今回のLT大会のテーマは「あなたがこの春学んだこと」です。 新学期が始まってからあなたが学んだ技術・知識を、ぜひこの場で皆さんに共有してください!!!

f:id:handaijk:20190612144903p:plain
HANDAI JK LIGHTNING TALKS Summer 2019

参加申し込みの方はこちらのgoogleフォームから、登壇希望の方はこちらのgoogleフォームに入力をお願いします!(登壇される方は参加申し込みのフォームへの記入は不要です)

また、今回のイベントでは、当日までにイベントの情報がわかるように、タイムテーブルを公開しています。

どんな方が登壇されるかチェックしてくださいね。

イベントへの参加お待ちしております!

GitHubを使おう!

みなさんこんにちは、HANDAI JKの原口です。

今日はプログラマの必需品、GitHubについて語っていきます!

オススメのGit記事

Gitはバージョニングを行う技術GitHubGitを利用したWebサービスになります!

Git、GitHubに関するわかりやすい記事がたくさんあるので、この記事ではGitを使うべき理由をつらつらと書いていきます!

プログラマに必須技術、Gitとは?

Git(ギット[2][3][4])は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。

出典:https://ja.wikipedia.org/wiki/Git

 

ぶんさんがたばーじょんかんりしすてむ・・・結局何ができるんでしょうか?

Gitを使うことでソースコードを過去の状態に戻せる

みなさん、課題などでソースコードを書いていくと思うのですが、どのように管理していますか?僕は昔Gitを使っていないときに、フォルダごと複製して管理していました・・・😭

f:id:handaijk:20190530134322p:plain

こんな感じで。これだとどのタイミングでどんな編集をしたのか分かりづらいですよね・・・

Gitは一つのフォルダを管理対象として、更新履歴を保存していく技術です。

そのため、ファイルの編集に不備があったりしたら過去の履歴を参照して、元の状態に戻したりすることができます。

複数人での共同編集が簡単にできる

ソースコードって複数人で協力して書き上げることが多々あります。こんな時Gitを使わないと大変なことになります。

単純な例ですが、一人一つの機能を実装して、それらができた後に一つに統合する例を考えてみましょう。

f:id:handaijk:20190530134319p:plain

こんな感じで、全員の作業分を一人に集めて、手作業で統合を行うことになります。めちゃくちゃなことになります。一人の実装分に不備があれば、再度統合作業が必要になるからです。

また、上記と同様ですが、誰が何を実装したのか全く追跡できません。

 

Gitを使うと、保存していた履歴を用いて簡単に統合することができます。どのタイミングで誰の作業を取り込んだのかも保存されるので統合も取り消したりできます。

GitHubに登録しよう!

もうGitを使わない理由はないですね。Gitを利用したサービスにGitHubがあります。
Gitを利用して保存した履歴をサーバに保存して、Web上で管理できるサービスです。

最近だと、企業選考の項目にGitHubのアカウントを記入する欄があったりします。

自分がどういう意図で編集したのか、どんなものを作ってきたのかアピールできるように早いうちからGitHubソースコードを管理していきましょう!

GitHubを使ってるならついでにCIを回しちゃおう

HANDAI JKの石田です。

大阪は先日ひさびさの雨でした。傘をもっていなかったのでびしょびしょです。今日は、CI(Continuous Integration)の話をしたいと思います。

こんなことってありませんか

あれ、いつのまにかコードが動かなくなってる!!!

ありますよね。コードを改良していくうちに、動いていたところが動かなくなっている。そんな時は問題が発生したコミットを一生懸命さぐるわけですが... CIを実施していればこのようなことは起こりません。

CIとは

CIとはContinuous Integration(継続的インテグレーション)ということで、具体的には何度も繰り返しコードのテストやビルドといったアクションを実行することを指します。

また、これらのアクションが実行されるタイミングはコミット時が基本です。コードをコミットするタイミングで毎回コードがテストされるので、何か問題があればすぐに気づくことができるというわけです。

CIの設定の仕方

C言語のプロジェクトのCIを設定するという想定で詳細は省略しながら簡単に説明します。CIを行うサービスは複数ありますが、その中でも代表的なCircleCIを使用します。

f:id:handaijk:20190530131118p:plain
CircleCI

1. CI設定ファイルを作成する

CIで何を行うかを定義するファイルを作成します。CircleCIの場合は.circleci/config.ymlに作成します。以下の例では、gccでCのソースファイルをコンパイルし、コンパイルしたものを実行するという流れになっています(8-9行目)。本来はテストコードを実行したりするのですが、今回はコンパイルが通ればOKとしています。

version: 2.0
jobs:
  build:
    docker:
      - image: gcc:6
    steps:
      - checkout
      - run: gcc -o main main.c
      - run: ./main

workflows:
  version: 2
  build:
    jobs:
      - build

2. CircleCIの画面でGitHubリポジトリを登録する

GitHubにコードがpushされたらCIが実行されるようにCircleCIの画面でリポジトリを登録します。CIをしたいリポジトリの「Set Up Project」ボタンを押します。

f:id:handaijk:20190530125405p:plain

3. GitHubにコードをpushしてCIが自動的に開始するか確かめる

うまく設定ができていたらGitHubにpushしてすぐCIが開始します。異常なく終了したら緑色(Pass)に表示が変わります。もしエラーがあれば赤色(Fail)になります。

f:id:handaijk:20190530130023p:plain
Passした時の画面(コンソールの出力も表示されていますね)

ちなみに、GitHubの画面にもCIがPassしたかFailしたか表示されるのでとても便利です。

f:id:handaijk:20190530130345p:plain
GitHubではCI実行中はオレンジ色、Pass時は緑色、Fail時は赤色になります

まとめ

CIを使うことで常時コードにチェックが入るようになるので、より自信を持って開発を進めることができます。CircleCIなど、多くのCIサービスではオープンソース(公開設定がPublicなリポジトリ)の場合無料で使用することができます。CIは本当に便利ですよ~!

今回テストで作成したリポジトリはこちら

富士通研究所でのインターンシップ体験談

f:id:handaijk:20190528113653p:plain

こんにちは、M2の高木です。

インターンの体験談を寄稿してほしいと言われたので、M1の夏休みに参加した富士通研究所でのインターンについて書きたいと思います。

インターンが始まるまで

富士通研究所インターンには、ざっくり言うと指導教員の紹介で行きました。選考方法は、研究内容の資料を送って、希望する部署の方と、研究内容、将来やりたいこと、今持っているスキルなどについて面談するというものです。

インターン開始前にして、このインターン最大のありがたい出来事がありました。

受け入れ先チームのメンターさんが、実習内容の詳細な希望を聞いてくださり、私のやってみたいことを取り入れた計画を作ってくれました。当時の私は、「こんなん同じチームの全インターン生にやってたら大変なんじゃないの?」と思ったわけですが、「同時期のインターン生が私しかいない」というのが実態でした。

実習内容

インターン中にやっていたことは、大きく分けて以下の通りです。

  • 研究業務の一部(これがメイン)
  • 他の部署のインターン生と展示室の見学
  • 最終日に、部署内で成果報告

ちなみに、待遇等は

  • 期間は3週間、9時前から17半過ぎ(忘れた)まで
  • 服装自由(最高!!!!!)
  • 交通費、宿泊先(職場から徒歩数分)提供
  • 日当1000円(昼食代補助)

で、よくある大企業のインターンの待遇だと思います。

研究業務

詳細を書き始めると非常に長くなる上、これを読んでいる皆さんが同じことをすることはまずないと思うので、簡単に書きます。詳しく聞きたい人がいれば聞いてください。

私がやらせてもらっていたのは、エッジコンピューティング環境(分散環境)におけるメッセージングシステムの負荷テスト用のツールの作成です。これだけ聞いてもなんじゃそりゃって思うと思います。

DockerとかKubernetesとか(仮想化技術の一つ)を使った分散環境でメッセージングシステムを構築して、限界までメッセージを送りまくるスクリプトを書いたり、どのメトリクスが最初に限界になるのか観察したりしていました。

環境構築に割と苦労してしまい、最後の方が駆け足になりましたが、一応それらしいものを作るところまではできました。私がいなくなった後もそのスクリプトを使うと言われましたが、果たしてどれだけ役に立っているのか…。

他にも、文献調査をちょっと手伝ったり、特許に関する打ち合わせに出たりしていました。この辺は社外秘なのでこれぐらいで。

日々の打ち合わせの他に、部署内で集まって近況報告をするミーティングもありました。そのミーティングにも出て、大学での研究内容を紹介したり、個人的な近況(土日にどこに観光に行ったとか)を報告したりしていました。

展示室の見学

他の部署のインターン生(8人ぐらいだったと思います)と一緒に研究所内の展示室の見学をする時間がありました。自分の研究に近い内容のものもあれば、当然まったく知らない内容のものもあり、普通に楽しみました。

インターンが終わった後に、展示室で見たものがテレビやニュースサイトで紹介されていて、少し興奮したのを覚えています。

成果報告

インターンの最終日には、成果報告を行いました。どこの企業のインターンでもやっていると思いますが、私の場合、部署内のインターン生は私のみで、当然インターンの成果報告をするのも私のみなので、たっぷり時間をもらい、私の発表を聞くためだけにお集まりいただいた重役の皆様に、成果を報告しました。

一応、オーディエンスの皆様には、「未経験でここまでできたのは素晴らしい」と言ってもらえました。よかったです。

得られたもの

もちろん、初めて扱うDockerやKubernetesに関する知識や経験も得られましたが、なにより、企業研究所の雰囲気を味わえました。

例えば、やっぱり企業は特許とかビジネスとかが第一に来るんだなあ、とか、思っていたよりも自由に議論しているなあ、とかです。前者は予想通りといえば予想通りでしたが、後者は個人的にとてもよかったです。上司と部下、先輩後輩の関係はありますが、一方的な指示が通っているのではなく、皆でオープンに議論している様子が感じられました。

所感

情報科学研究科では、2週間以上のインターンに参加すると、単位が取得できます。なので、2週間行きたいなあと思っていましたが、3週間は絶対長いと思っていました。しかし、終わってみると3週間はあっという間でした。充実していたのは間違いないと思います。

インターンのいいところは、ズバリ、褒めてもらえるところです。本当にびっくりするぐらい褒められました。大学というか、研究室での生活で一応自分は成長しているんだろうなあ、ということを感じられるいい機会だと思います。

前述の通り、私がインターンに参加したときは、周りにインターン生がおらず、インターン生のために使用されるリソースを100%注いでもらうことができました。最初にも書きましたが、実習内容の希望を聞いてもらえるし、わからないことがあったらいつでも聞けるし、よく構ってもらえます。

インターン生同士でグループワークをするタイプのインターンもたくさんあると思いますが、少人数で社員の中に放り込まれるタイプのインターンも得られるものはかなりあると思います。

終わりに

以上の体験が参考になれば幸いですが、私の体験は、かなり私の希望に寄せてもらったもので、一般的なインターンとは異なる部分があるかもしれません。 とりあえず、研究インターンも楽しいですよ!ということだけお伝えしたいです。