福野泰介の一日一創 - create every day

開発手法のレクチャーから始まった2020内定者合宿、2日目は成果発表会。

鯖江に来た学生に役立つサービスをテーマに開発された「ALUKO」


寸劇で利用シーンを紹介、鯖江に遊びに来た学生ゲンゾウ君、余裕ある時間をどう使う!?


アプリ立ち上げると表示される3パターンのコース


コンパスに従って歩こう!途中、秘密の寄り道ポイント経由で鯖江のいいところにご案内。到着すると種明かし、ゴールカードをGET!

ビジョン「鯖江に来た学生が遠足気分で鯖江を満喫できるコンパス」
地図がでないので、地図が苦手な学生でも安心。
近づくに連れて間隔が短くなる振動でお知らせするので安全。
たどり着くまでどこに案内されるか分からない、ワクワク感。
データシティ鯖江の5つ星オープンデータをSPARQLで取得、いい感じアルゴリズムで目的地が決まります。


タスクかんばん、最終形!
普段は1週間のスプリントを、約2時間くらいのショートバージョンで駆け抜けた短期決戦版スクラム。
毎スプリント毎に「KPTでふりかえり」をして、改善し続けることこそ肝。


jigカレー&ピザ&LTで懇親会!


内定者へ伝授したjigカレーのつくりかた、本日のトライは、秋の味覚、ブドウ!


辛口ベースを牛乳いれてマイルドにして、完成!

今回苦労したのは、ウェブアプリ上でのコンパスの実装。
どうも現在のJavaScriptでは、うまく方角が取れない模様。(コンパスの謎
仕方ないので、GPSで座標の履歴からまっすぐ歩いたと仮定して方角を算出、目的地との差分をとって表示する形で実装してました。


iOSのネイティブだったらどうなるか?調べてシンプルに8方向で方角を表示するアプリを作ってみました。

Swiftでの実装、CLLocationManagerを使って、startUpdatingHeading のコールバックで magneticHeading として受け取れる角度。
とっても素直に動き、使えます。ブラウザ上の機能、もう少しがんばってほしい。

import UIKit import CoreLocation class ViewController: UIViewController, CLLocationManagerDelegate { let locationManager: CLLocationManager = CLLocationManager() var label : UILabel! override func viewDidLoad() { super.viewDidLoad() locationManager.delegate = self locationManager.startUpdatingHeading() let sw = self.view.frame.width let sh = self.view.frame.height self.label = UILabel() self.label.text = "北" self.label.textAlignment = .center self.label.font = .systemFont(ofSize: 150) self.label.frame = CGRect(x:0, y:0, width:sw, height:sh) self.view.addSubview(self.label) } func locationManager(_ manager: CLLocationManager, didUpdateHeading heading: CLHeading) { print(heading.magneticHeading) let dir = [ "北", "北東", "東", "南東", "南", "南西", "西", "北西" ] let ndir = Int((heading.magneticHeading + 360 / 16) / 360 * 8) % 8 self.label.text = dir[ndir] } }

ネイティブアプリとして実装して、リリース目指す!?

2020年入社予定の内定者合宿 in 鯖江!

Vue x Node のウェブサービース、IoT、チーム開発手法スクラムをギュッと凝縮した1時間半レクチャーからスタート!


早速アイデア会議でも活躍した、Vue x Node でつくるサンプルサービス「チャット」をWebSocketを使ってリアルタイム化!
step6.js で、さまざまな Content-Type に対応させて、もう少しまともなウェブサーバーに改良。
step7.js は、ポート番号 5001 に、WebSocketを使ったリアルタイム中継サービスを準備、chat2.html でリアルタイム版チャットを体験できます。

WebSocketを使う準備

npm i ws --save

WebSocketで受けて、全クライアントに転送するサーバー側のコードはわずかこれだけ!

const WSServer = require('ws').Server const wsserver = new WSServer({ port: 5001 }) wsserver.on('connection', function(ws) { console.log('open') ws.on('message', function(message) { console.log(message) wsserver.clients.forEach(function(client) { client.send(message) }) }) ws.on('close', function() { console.log('close') }) })

vuenodechat src on GitHub


サーボを接続して動かしてみよう!


スマホからもサーボ、動かしてみよう!


スマホからいろいろコントロールし放題!?


デバイスからネットへもコマンドひとつ!


合宿地、ラポーゼ河和田へ移動して、アイデア出しして、スクラム開発の要、チームで合意するゴールである「ビジョン」を決定!


温泉入ってリフレッシュ!ビジョンを掲げ、実現に必要なコトのリストであるプロダクトバックログから、それを実現するためのタスクに分割。 付箋紙に書いたタスクが人別に「TODO」「Doing」「Done」へと遷移していく様子をリアルタイムに共有しながら進める、スクラムのプラクティスのひとつ「タスクかんばん」を使って進める短期開発、できあがりが楽しみです!


Scrum Interaction 2019 ジェフ・サザーランド博士 メッセージ - YouTube
スクラム開発者によるイベント、あるそうです!

高専カンファレンス in 明石3」にて「スクラム」を使った楽しいチーム開発を発表。

「みんなで創ろう チーム開発手法、スクラム」 高専カンファレンス in 明石3 バージョン!


短いサイクルで「分析、設計、実装、テスト」を繰り返すのがアジャイル開発
(出展:デジタルビジネスの潮流とアジャイル開発~ビジネスとエンジニアの協働チームづくり~


ウォーターフォール vs アジャイル
時に年単位の開発期間で作られるウォーターフォール開発。後戻りはできないのでどうしても設計が保守的になり、あれもこれもと盛り込み勝ち。できあがった機能のうち7割は使われないとか・・・!?
とにかくまずは動くもの、必要最小限な機能による出荷可能なプロダクトを短いスパンで開発、デプロイし、利用者の意見や、反応を見つつ、どんどん改善していくのがアジャイル開発。
jig.jpのプロダクトはこのアジャイル開発で作られています。短期間でリリースし、最新技術も取り入れつつ、どんどん改善!


スクラムはアジャイル開発の一種、ビジョンをしっかりチームで握ることが超大事!
利用者価値を優先し、変化に柔軟に対応し、短期リリースを目指し、会話によるチームメンバー全員合意と、技術的卓越を原則とする。問題が発生しても個人対個人ではなく、問題対チーム全員という考え方で!
最終決定権を持つプロダクトオーナーを決め、一定期間(jigインターンでは4日間、1週間や2週間が一般的)でやることをプロダクトバックログとして積み、みんなでタスクとして分解するスプリント計画、タスクかんばんやバーンダウンチャートを使って進捗を関係者全員で共有する。


数時間でできる程度に分解したタスクを貼って、TODO、Doing、Doneと移していく。問題が発生したら小さく赤いプロブレム付箋を貼って、チームからの助けを借りるのも手。問題はみんなのもの、ひとりで悩まない。


朝会ではじまる一日の開発、動くものを目指して1スプリント終えたら、ふりかえり。
ふりかえりの手法として、jigインターンではKPT(Keep Problem Try)に加え、Kansya(感謝)を追加!
良かったことや、問題に対するチャレンジ(Try)をいくつか合意して、次のスプリントへ!
リズム良く気分良く、楽しく仲良くチーム開発!


今回のjigインターンでは3スプリント実施して成果発表会を迎えました。


オタクック 「お料理版AtCoder、毎週金曜日はアニメメシで勝負だ、オタクック! by jigインターン2019 とモダンクライアントVue.jsはじめのいっぽ


めしめーと 「Vue.js x Go x MySQL、外食の好みでつながる「めしめーと」 by jigインターン2019 とモダンなRDB環境構築手順


旬レシピ 「ご当地レシピのオープンデータと応用提案、卸売市場と栄養素データをマッシュアップしたお手軽料理ナビ「旬レシピ」 by jigインターン2019


詳しくは、jigインターンブログGitHubにあるリポジトリをどうぞ!
jigインターン、来年もお楽しみに!(興味がある人、@jiginternをフォローしておこう)


THETAで撮った会場の360度写真、ちょっとHTMLをかけば、VRアプリのできあがり!
VR #kosenconf_138akashi 2
PCでもぐりぐり回せるよ。スマホVRでもそこそこいい感じ。Oculusなどで見るとよりきれい!

<!DOCTYPE html><html><head><meta charset="utf-8"/> <title>VR kosenconf_138akashi</title> <script src="https://aframe.io/releases/0.9.1/aframe.min.js"></script> </head><body> <a-scene id="scene"> <a-sky src="kosenconf_138akashi/akashi1.JPG" rotation="0 -120 0"></a-sky> </a-scene> </body></html>

たった8行のHTMLでOK!
Oculus Questなどを持っている人、このリンクをブラウザで見て、右下のメガネ型VRアイコンをクリック!
超お手軽VR開発、ぜひいろいろ挑戦してみてね!(50行マイクラ風など)


高専カンファレンス in 明石3!


会場は明石高専!


続VRのすゝめ by 鈴鹿高専 @MD_a_To_bl_o
VRチャットでの女性比率は何があると上がるのか?


知ってると得する切符の話 by @S0UL_EXPLOSION
往復割引切符は東京からでも買えるとは、知らなかった。


地域住民が行政を動かしたという話。
みんなのまち、学生だって住民、プログラミングでもデザインでも、いろんな力で貢献できる!
Code for KOSEN は、2013年、この階段教室から!(オープン&チャレンジ、殻を破る高専生! - 明石高専訪問


jigインターンでの毎日! by なべ


集合写真 by THETA撮影、切り出し
VR #kosenconf_138akashi 1
VRで見るならこちら。


懇親会スタート!


懇親会でのVR体験会、Oculus Rift S と Oculus Quest、2台体制


未来の食事、完全食COMPグミエディションも活躍。


高専生発の抵抗カラーコードかるた!


せっかく明石なので、明石焼き〆!
jigインターン番外編~幻の21日目~ - jigintern2019のブログ

links
- 高専カンファレンス
- 高専カンファレンス in 明石3 - 高専カンファレンス Wiki
- デジタルビジネスの潮流とアジャイル開発~ビジネスとエンジニアの協働チームづくり~
- スクラム (ソフトウェア開発) - Wikipedia

一昨日昨日に続き、食がテーマのjigインターン2019、成果発表会紹介3チーム目。
一人では続かない料理づくりのモチベーション。好きなアニメに登場するアニメメシ、時間を合わせて、みんなで作って、対戦すれば楽しくなるかも!?
その名は「オタクック」

チーム「オタクック」
たかげん(一関高専)、ぴ(木更津高専)、なべ(函館高専)、まこってぃー(明石高専)


作ってみたいな「のり塩すごもりチャーハン by 天気の子」
クラシル提供「天気の子」劇中登場レシピ のり塩すごもりチャーハン 作り方・レシピ | kurashiru [クラシル]


競技プロコン、AtCoderでおなじみ、レーティング!エンジニアなオタクは好きですね!
Twitterハッシュタグ #オタクック から、実際はじめても楽しいかも!?


フロントエンドは Vue.js、バックエンドは Flask by Python


Vue.js を使ったモダンなクライアント実装!(当初Golangで作っていたサーバー側ソース跡


Vue.js はじめのいっぽ
Vue.jsを本格的に使おうと決めました。はじめのいっぽから、axiosを使った非同期通信をシンプルに同期的に使って、JSONを読み込むまでの6ステップ。短いソースを見ながらお試しください!


以上、11高専から12名のjigインターン2019の成果発表会でした。
教えてくれないと嘆くのは早く卒業して、自分で学んで楽しむ高専生活!
日々改善される開発環境や手法に合わせ、毎年パワーアップする高専インターン。
来年もお楽しみに!

links
- jigインターン2019 成果物リポジトリ「jigintern - GitHub
- ブログ「jigintern2019のブログ

昨日に続き、食がテーマだったjigインターン2019、成果発表会紹介2チーム目。
今度は外食での悩みをモダンに解決するプロダクト。

チームnpm派「めしめーと」
箒コウモリ(香川高専高松キャンパス)、でみ(舞鶴高専)、watano(茨城高専)、はたはた(津山高専)


せっかくなら美味しいものを開拓したい外食。でも、レビューが当てになるとは限らない。そんな時、自分と味覚が近い人を頼ろう!
食べたものを投稿・チェックインすると、同じ好みな人をリコメンド。フォローすると優先的にタイムラインに並び、使うほどにヒット率上昇。


しゃもじをポインターとして解説する、はたはた。フロントエンドはモダンなフレームワーク Vue.js


GitHubのリポジトリから動かしてみました!(Foodmates-client (fixWholeDesignFinally) / server


幻の第4スプリントで、箒コウモリ(ホウモリ)がマージした、レスポンシブデザインバージョンで、スマホでもタブレットでも見やすい!


バックエンドは、Go言語(golang)で開発、データベースとしてMySQL、環境構築にDockerを使用。

ナウなDBの使い方を確認するため、Foodmatesのサーバー側を抜粋した、GoでMySQLにデータをいれてみるサンプル作成。
料理を、名前、価格、URLの3項目で、登録日時付きで、どんどん登録するシンプルなデータベースです。(src on GitHub)

package main import ( "fmt" "os" "time" "errors" "github.com/jinzhu/gorm" "github.com/joho/godotenv" _ "github.com/go-sql-driver/mysql" ) type Food struct { ID int `gorm:"primary_key" json:"id"` CreatedAt time.Time `json:"created_at"` Name string `gorm:"default:''" json:"name"` Price int `json:"price"` URL string `json:"url"` } var db *gorm.DB func InitDB() { USER := os.Getenv("MYSQL_USER") PASS := os.Getenv("MYSQL_PASSWORD") PROTOCOL := "" DBNAME := os.Getenv("MYSQL_DATABASE") CONNECT := USER + ":" + PASS + "@" + PROTOCOL + "/" + DBNAME + "?charset=utf8mb4&parseTime=True&loc=Local" var err error db, err = gorm.Open("mysql", CONNECT) // github.com/go-sql-driver/mysql if err != nil { panic(err.Error()) } db.LogMode(true) db.AutoMigrate(&Food{}) } func TruncateTables() { rows, err := db.Raw("SHOW TABLES").Rows() if err != nil { panic(err.Error()) } defer rows.Close() for rows.Next() { var table string if err := rows.Scan(&table); err != nil { panic(err.Error()) } db.Exec("TRUNCATE TABLE " + table) } } func GetDB() (*gorm.DB, error) { if db == nil { return nil, errors.New("can't get database") } return db, nil } func Finalize() error { err := db.Close() return err } func ShowAllFoods() { db, err := GetDB() if err != nil { fmt.Println(err) return } var foods []Food db.Table("Foods").Find(&foods) fmt.Println(foods) } func AddFood(name string, price int, url string) error { db, err := GetDB() if err != nil { return err } db.Create(&Food{ Name: name, Price: price, URL: url, CreatedAt: time.Now() }) return nil } func main() { err := godotenv.Load(".env") if err != nil { fmt.Println("Error loading .env file") return } InitDB() TruncateTables() AddFood("サラダ焼", 120, "https://www.sanrokusyoten-316.co.jp/products.html") AddFood("サバエドッグ", 280, "https://www.meat-sasaki.com") AddFood("眼鏡堅麺麭", 864, "http://echizen-yumekobo.com/?pid=52337987") ShowAllFoods() }

GORMを使うと、Go言語の構造体として定義したFoodを、db.AutoMigrate(&Food{})で呼び出せば、いい感じにテーブル生成をやってくれます。*GORM - ORM (Object-relational mapping / オブジェクト・リレーショナル・マッピング) for Go

MySQLのセットアップ、Mac編(参考、Mac へ MySQL を Homebrew でインストールする手順 - Qiita

brew update brew install mysql

MySQLにデータベースを1つ作成

mysql -uroot -p [dbrootpass] create database [dbname] create user '[dbuser]'@'localhost' identified by '[dbpass]'; grant all on *.* to '[dbuser]'@'localhost'; GRANT ALL PRIVILEGES ON [dbname].* TO '[dbuser]]'@'localhost'; exit

Go言語の設定ファイル「.env」にDB設定を記述

cat > .env <<EOF MYSQL_USER=[dbuser] MYSQL_PASSWORD=[dbpass] MYSQL_DATABASE=[dbname] EOF

Go言語のライブラリを取得

go get github.com/go-sql-driver/mysql go get github.com/jinzhu/gorm go get github.com/joho/godotenv

あとは動かすだけ!

go run fooddb.go [{1 2019-09-08 13:24:51 +0900 JST サラダ焼 120 https://www.sanrokusyoten-316.co.jp/products.html} {2 2019-09-08 13:24:51 +0900 JST サバエドッグ 280 https://www.meat-sasaki.com} {3 2019-09-08 13:24:51 +0900 JST 眼鏡堅麺麭 864 http://echizen-yumekobo.com/?pid=52337987}]

MySQLを初めて使ったのはもう20年前くらいかも・・・。
環境構築も、ライブラリも、便利になっていい感じですね!

jigインターン2019、ついに最終成果発表会の日。3チーム、1作品ずつマッシュアップしながら紹介します!
まずは鯖江市特産野菜「吉川ナス」を使ったレシピのオープンデータ化が決まった「旬レシピ」から。

チーム「やばいわよ!!」
たかめろん(長野高専)、ふっけー(北九州高専)、えふ(長岡高専)、Dry(明石高専)の4名チーム!


ターゲットは学生や独身の料理初心者。外食ばかりは栄養的にも金額的にも難があるけど、特に食べたいものがないけど、おいしく安く栄養あるものを食べたい人。


そこで「旬レシピ」
スーパーに入ってスマホを取り出す開くだけのシンプル操作。その時点、その場所での旬を使った安くて簡単なレシピを写真で紹介!


「旬」マークがつきの買い物リストにもなっている食材リスト。自然に自然が身につきそう。
ついでに家の在庫量とも連動させるとより便利かも。


使用したデータとAPI。オープンデータ化の必要性は作るほどに見えてくる。まずは地元を自力でオープンデータ化しよう!


今回からの初企画、展示タイム。実際に作った作品を実際に触りながら(壊しながら?)、より深い質疑応答タイム。

旬レシピは、GitHubでオープンソース!(jigintern/Season-Foods-Navi at develop)
早速気になる、Node.js でスクレイピングして作ったというデータをチェック!3MBのJSONがありました。
スクレイピングしたソースは、こちら"GetFoodsNutrient.js"、データが大きくなりすぎないように栄養素を抜粋したとのこと。

完全食COMPとの比較もしたいので、ビタミンAの分類や、表記方法の違いを調整して栄養素完全版へとリミックス! 「GetFoodsNutrientJSON.js
Node.js をいれ、npm install cheerio-httpcli でスクレイピング用のライブラリをセットアップして、node GetFoodsNutrientJSON.js でテスト実行。

$ node GetFoodsNutrientJSON.js { food: '乳類/(液状乳類)/普通牛乳', info: [ { name: '可食部', value: '100', unit: 'g' }, { name: 'エネルギー', value: '67', unit: 'kcal' }, { name: 'たんぱく質', value: '3.3', unit: 'g' }, { name: '脂質', value: '3.8', unit: 'g' }, { name: '炭水化物', value: '4.8', unit: 'g' }, { name: 'ナトリウム', value: '41', unit: 'mg' }, { name: 'カリウム', value: '150', unit: 'mg' }, { name: 'カルシウム', value: '110', unit: 'mg' }, { name: 'マグネシウム', value: '10', unit: 'mg' }, { name: 'リン', value: '93', unit: 'mg' }, { name: '鉄', value: '0', unit: 'mg' }, { name: '亜鉛', value: '0.4', unit: 'mg' }, { name: '銅', value: '0.01', unit: 'mg' }, { name: 'マンガン', value: '', unit: 'mg' }, { name: 'ヨウ素', value: '16', unit: 'μg' }, { name: 'セレン', value: '3', unit: 'μg' }, { name: 'クロム', value: '0', unit: 'μg' }, { name: 'モリブデン', value: '4', unit: 'μg' }, { name: 'ビタミンA', value: '38', unit: 'μg' }, { name: 'ビタミンD', value: '0.3', unit: 'μg' }, { name: 'ビタミンE', value: '0.1', unit: 'mg' }, { name: 'ビタミンK', value: '2', unit: 'μg' }, { name: 'ビタミンB1', value: '0.04', unit: 'mg' }, { name: 'ビタミンB2', value: '0.15', unit: 'mg' }, { name: 'ナイアシン', value: '0.9', unit: 'mg' }, { name: 'ビタミンB6', value: '0.03', unit: 'mg' }, { name: 'ビタミンB12', value: '0.3', unit: 'μg' }, { name: '葉酸', value: '5', unit: 'μg' }, { name: 'パントテン酸', value: '0.55', unit: 'mg' }, { name: 'ビオチン', value: '1.8', unit: 'μg' }, { name: 'ビタミンC', value: '1', unit: 'mg' }, { name: '飽和脂肪酸', value: '2.33', unit: 'g' }, { name: '多価不飽和脂肪酸', value: '0.12', unit: 'g' }, { name: 'コレステロール', value: '12', unit: 'mg' }, { name: '糖質', value: '4.7', unit: 'g' }, { name: '食物繊維', value: '', unit: 'g' }, { name: '食塩相当量', value: '0.1', unit: 'g' }, { name: 'アルコール', value: '', unit: 'g ' } ] }

牛乳100gの栄養素が取得できました!(乳類/(液状乳類)/普通牛乳 - 一般成分-無機質-ビタミン類-アミノ酸-脂肪酸-炭水化物-有機酸等 - 文部科学省)


人間に必要な栄養素 オープンデータアプリIchigoJam研修@大塚製薬 の記念に作った、ゆるゆる動く栄養素アプリ。
人間に必要な栄養素 CSVオープンデータ」もどうぞ!

そういえば、吉川ナスの栄養素のどのように測定したらいいのだろう?
福井高専、物質工学科に相談してみよう!

links
- 吉川ナス – めがねのまちさばえ 鯖江市

高専インターン、2週間目、最終営業時間後は河和田アートキャンプ、蔵Barで交流会!

食とアートに取り組む、河和田アートキャンプの人と記念撮影 by THETA
VRで味わう、VRアートキャンプ古民家と蔵Barはこちら
VRアートキャンプ2019


Dvorak配列試し打ちwebアプリ
蔵Barでもキーボード配置を変更していた、ぴ。
キーボードにこだわる高専生、キー配列はQWERTY(TYPEWRITER配列)でいいのかい?


疲れが見え隠れする、インターン2週間目のおわり、指力が試されるタイプライターで対抗!
上段1列を使ってTYPEWRITERと打てるのが、QWERTY配列がデファクトになった秘密。


昼はSKこと醤油カツ丼@味見屋


おやつは歩くソースカツ丼、サバエドッグ


2スプリント終わってレビュー、ふりかえりのKPTK(Keep, Problem, Try, Kansya!)


漆器神社へ


今日はここまで!


蔵Bar到着


例の舞台は、蔵Barの拡張座席だった!天気が良ければハンモック付きで外で食事可!


山盛りな大根サラダ!


缶詰をランダムに注文!


アート x VR も楽しい!


蔵で行く宇宙、Oculus Quest対応、国際宇宙ステーションISS体験アプリ、ふわふわします。


アートキャンプ2019の学生さん、ありがとうございます!


アートキャンプの合宿も古民家、進むアート制作、発表会は9/21-22、中道アート2019と同時開催!


食後は、ラポーゼ河和田、温泉!
心身を癒やし、ゆっくり寝たら、フリーな休日、楽しんで!

河和田アートキャンプ2019blog
jigインターン12日目!! 第2スプリント終了! - jigintern2019のブログ

サバエドッグを食べるエンジニア写真集








インターン生に振る舞う、jigカレー!

大事なのはスピード感。速いテンポで踊る、ジグダンスが由来のjig.jp。(写真提供、インターン生)


2スプリント目に突入したインターン開発!ぬいぐるみも参戦!(癒やし担当)


12:00 調理開始。鍋に水を入れ火にかけ、買い物に走る。水量は後で増えるので作る量の半分!


12:20 調理開始。まずは肉、火がすぐ通り、食べごたえある小間切れが基本!


あとは具をどんどん投入。水気は切って入れて時短化!


今回のオープン隠し完全食は、Huel、コップ2杯ぐらいだと影響なし


具、投入完了。


12:25 完成。ルーを混ぜ込んで、出来上がり!


jigカレー ver 20190827


いただきます!


レシート公開!(QRコードを付けて、データ化が簡単になるとうれしいなぁ)
25人前、買い物合計金額7238円(ごはん含まず)一人あたり290円

jigカレー ver 20190827 材料オープンデータ

ルーはすぐ溶ける、粉タイプ
トライ枠で特徴づけると、作る人も楽しめる。入れすぎ注意。
トッピングを省略すれば、一人250円を切る。肉多めな今回、控えれば200円切りも射程内。
おかわりしたい人がちょうどできる感じでいい量だった。味も概ね好評。(ふりかえり)


金額割合、ルー:22%、肉:23%、具:34%、トライ:4%、トッピング17%

速くて、安くて、楽しい、jigカレー、ぜひトライ内容と合わせてTwitterに投稿してね!
ハッシュタグ #jigcurry


福井ラーメンツアー、福井駅前はプチ恐竜博物館、無料!

jigインターン9日目 カレーを作ろう!
links
- スピード優先「jigカレー」 オープンソースなラピッドプロトタイピング料理(2015)
- 鯖江でGO! jigインターン2016成果報告会(2016)
- 完全まちの要素とは?鯖江市長、フリーミアム動物園、創造拠点Hana道場とオープンソースなjigカレー(2018)
- インターン最終日の成果発表会を新たなはじまりに! Nuxt.jsはじめのいっぽの計算機(2018)
- カレーにイチゴはありか? 創立記念にjigカレー&食べられるイチゴジャム(2019)

SDGs未来都市に選ばれた鯖江市。市長、インターン訪問時に決定した、SDGsメガネ「グローカル」のアプリ化!

グローバルに考え、ローカルに動く!iOSアプリによるメガネアプリができました。(Swift src on GitHub)
プログラムでグローカルを再現!ブリッジ部分は鯖江市が中心に掲げる「5 ジェンダー平等」(モデル:たかげん)


グローカル配色な「めがねのまちさばえSDGsピンバッジ」めがね会館1Fでも販売中。

メガネ左フレーム Think gloabally!
1 貧困をなくそう E5243B
2 飢餓をゼロに DDA63A
3 すべての人に健康と福祉を 4C9F38
4 質の高い教育をみんなに C5192D
14 海の豊かさを守ろう 0A97D9
15 陸の豊かさも守ろう 56C02B
16 平和と公正をすべての人に 00689D
17 パートナーシップで目標を達成しよう 19486A

メガネ右フレーム Act locally!
6 安全な水とトイレを世界中に 26BDE2
7 エネルギーをみんなに そしてクリーンに FCC30B
8 働きがいも 経済成長も A21942
9 産業と技術革新の基盤をつくろう FD6925
10 人や国の不平等をなくそう DD1367
11 住み続けられるまちづくりを FD9D24
12 つくる責任 つかう責任 BF8B2E
13 気候変動に具体的な対策を 3F7E44

メガネブリッジ
5 ジェンダー平等を実現しよう FF3A21
(グローカル配置 by 鯖江市、データ:さばえ博・SDGs・ネクタイ - さばえものづくり博覧会2018

スマホVRを使って見ると、メガネをかけていない人はみんなグローカルをかけている世界に行くことができます!


みんなでグローカル!(jigインターン2019 BBQ


グローカルの製造担当した「ボストンクラブ」にて、2020年のさばえIT推進フォーラムに向けてMTG!
テーマは、SDGs x 電脳メガネ。


ボストンクラブ所在地、三六町といえば、軍隊堅麺麭 by ヨーロッパンキムラヤ
堅すぎて食べられない!? 福井県鯖江市の「軍隊堅パン」 | at home VOX(アットホームボックス)


堅パンと開発


4日間を1区切り(1スプリント)として開発中のインターン生をOBが視察


キーボードのご先祖様、タイプライターの打ち心地に感動


エモい!


お昼、ヨーロッパ軒 神明分店


初のビーフカツ丼

テーマは食、jigインターン2019
jigインターン2019 8日目! - jigintern2019のブログ

links
- めがねのまちさばえのSDGsとは – めがねのまちさばえ 鯖江市
- SDGs未来都市・自治体SDGsモデル事業に選ばれました! – めがねのまちさばえ 鯖江市

インターンハッカソンの後は、こちらも恒例BBQ!

やってきました、小次郎の里!


BBQ!


13時ごろ、お腹が膨れたところで、散歩!こちら佐々木小次郎氏と。


一乗滝!


滝があったら入りたい


入るよね


入った!


靴で来ると砂利が痛いと学んだインターン生、なべの足。去年は炎天下だとアスファルトが熱くてやばいことを学んで、サンダルで来た。改善、大事!


目隠しの替わりに、スマホVR。下を向いて5回回って、さぁスイカは割れるか!?
見えている景色は左右反転、しかもラグあり。意外と難しくて、楽しい。
2次元フィルタなどで楽しむ、Swift版「megane」アップデート!Webアプリ「WebMegane」もどうぞ!


悲劇の動画。


(バドミントン+テニス)/2、スピードミントン人気でした。百均のおもちゃや、電子ウクレレなど、いろいろ楽しいグッズ持ち込み歓迎!


みんなで記念撮影!


高専マガジン、共同創設者、OKB、来鯖、ありがとう!
高専生なら時間を無駄にするな!高専卒起業家の「思考術」 – 高専マガジン」(←福野取材記事)


夏休み感ある1日でした。.

jigインターン2019 7日目!BBQ開催! - jigintern2019のブログ

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像