はじめてのISUCON

こんばんは!

先日開催されたISUCON8に初めて参加してきました!!

結果は238位の予選落ちでした。

 

なんというか,,,,本当に何もできなかった。。。

 

まずh2oってなんやねん!!!!!(webサーバーらしい)

から始まってnginxで来ると思って勉強していたので

しょっぱなから詰むというね。

 

やったことは

・DBのindex確認,必要そうであれば貼った

・htopでメモリとかcpuとか何が重そうとか確認

くらい・・・・・・しょぼ過ぎ。w

 

やりたかったこと

・h2oとpumaのworker数を変えてみたかった

・get_eventメソッドが厄介そうだから直したかった

 

mysqlにアクセスするのに時間とメモリ食ってるな〜

http2に変えたらいいの?とか思ったけど

脳内リソース足りず断念でした。

 

ん〜悔しいので来年も参加したい!

 

本家リポジトリを自分のリポジトリに反映させるまで

お久しぶりになりました(ブログの存在忘れてた)

さ!て!と!

GithubのForkについて作業したので,忘れた時のための忘備録をかいておこ。

やったこととしては,とあるリポジトリをForkしたあと,作業するときに本家リポジトリを自分のリポジトリに反映するまでの内容になります。

前提として本家リポジトリはoriginal/sampleです。

Fork

まず, Forkというのは自分のGithubアカウント内に既存のリポジトリの複製を作る操作のことです。 絵で描くとこんな感じ。 f:id:boiled_egg:20180818001014j:plain

つまり自分のリポジトリとして色々と弄れるってわけです。

clone

Github上にあるリポジトリをローカルに持ってくることをcloneといいます。 f:id:boiled_egg:20180818001019j:plain

cloneしてくるのはforkした自分のリポジトリになります。

$ git clone git@github.com:your/sample.git

ローカルに落として作業していきます。

cloneし終わったあとは,remoteの情報(本家リポジトリ)をupstreamという名前で追加します。

$ git remote add upstream git@github.com:original/sample.git

Fetch と Merge

ローカルで作業していきますが,作業している間に本家リポジトリ(original/sample)に変更があった場合,コンフリクトが発生してしまいます。

この時,本家リポジトリの変更は自分のリポジトリ(your/sample)には自動的に変更は行われません。(自動的にしてくれるのあるのかな)

つまり,自分で更新する必要があるっていうこと。

そこでfetchとmergeを使って自分のリポジトリも更新していきます。

$ git fetch upstream

f:id:boiled_egg:20180818013103j:plain

fetchで行なっていることはoriginのorigin/master(upstream)をyourのorigin/masterに最新状態を更新しているだけになります。

「だけ」というのも,ファイルの更新は行われていないということです。

そのあとは,yourのorigin/master(要はupstream/master)の情報を元にローカルのmasterにmergeします。

これでファイルの更新が行われ,ローカルが本家と同じ最新状態になります。

コマンドの流れとしては以下のように実行しました! forkはgithub上からできます。

$ git clone git@github.com:your/sample.git

$ git remote add upstream git@github.com:original/sample.git

$ git fetch upstream

$ git merge upstream/master

これで無事に本家リポジトリを自分のリポジトリに追従することができました!

ちなみにmergeする際,この追従作業を行わなかったためにコンフリクトが発生してしまったので,困惑しましたw

何かしら作業して本家に反映させたい場合は,追従作業を行なってからpull requestの流れに持っていきましょう(戒め)

ISUCON8に向けて

こんにちは。ざーなかです。
今日は天気が良くて朝からとってもいい気持ち!
12時前まで寝てたんですけどねw
洗濯物も干したし出掛けるか〜!と思いきや部屋で読書しています。

そうなんです。ざーなかの次なる挑戦は「ISUCON」なんです。
通っていたプログラミング教室でISUCONの話があって
そこに通っていた仲間とその知人とチームを組んで予選に向けてって感じです。

初めて3/28(水)にチームで集まって,とりあえず今後の方向性と進め方を軽く決めて
ISUCON書籍リストにある本を図書館で借りて読もう!となり早速読み始めています。

今日読んでいたのは「たのしいRuby 第5版」
https://www.amazon.co.jp/%E3%81%9F%E3%81%AE%E3%81%97%E3%81%84Ruby-%E7%AC%AC5%E7%89%88-%E9%AB%98%E6%A9%8B-%E5%BE%81%E7%BE%A9/dp/4797386290/ref=sr_1_1?ie=UTF8&qid=1522399202&sr=8-1&keywords=%E3%81%9F%E3%81%AE%E3%81%97%E3%81%84Ruby


オブジェクト指向について書いてたりプログラミングの基礎や数値,文字列クラスを使ってみるの内容だったり。
ProgateやドットインストールでRubyを先にやっていたけど,本だと細かいところまで書いてあるかな。
メソッドの使い方とか,知らないのがたくさんあった。

ざっと読んだ感じ,必要な時に必要な箇所をみて調べる方が効率的な本でした。
個人的に,実装していかないとすぐ忘れちゃうので練習問題みたいなのがたくさんある方が良さそう。
あと{ }よりdo endが好きと思ったw

去年の10月にRailsからRubyに入っていたので全然まだまだの知識だな・・・・
時間をかけるしかないのでIikanjini Speed Up Concentrateしていきます。w


あ,今日の朝ごはんにゆでたまごを食べました^^
やっぱり美味しい^^

プログラミング教室を終えて

こんばんは!ざーなかです。
寝る前にブログを書きたくなったので今のうちに٩( 'ω' )و

1月16日(火)〜3月15(木)までの2ヶ月間
宜野湾にあるCODEBASEで開催されていた
プログラミング教室に参加していました。

ざっとまとめていきます。

参加のきっかけ

まずなんで参加しようと思ったのか。
12月にenPiTでのチーム開発が終わったり,講義も終盤で落ち着いたりで
時間に余裕ができて,次何していこうかな〜って考えていた時に
twitterでこの教室の存在を知って申し込みをしたって感じ。
エンジニアって楽しい!って思い始めて,web系の技術をもっともっと磨いていきたかったし
いろんな刺激を受けたい!外にもっと出るべきだっ!て思っていたので迷いはなかった。

講義の流れ

全体のスケジュールは以下の通りでした。最終発表まで含めて全部で18回。

第1,2回 オリエンテーション/Webの仕組み
第3,4回 HTML,CSS,Bootstrap
第5,6回 オリジナルサイト制作
第7,8回 JavaScriptjQuery
第9,10回 PHP入門
第11,12回 Slim入門
第13,14回 DB設計,アプリケーション設計,セキュリティ
第15,16回 自作アプリケーション開発
第17,18回 Git入門/最終発表会

制作物

私のバイト先の沖繩そば屋が紙で注文を取っているので
これをタブレットスマホで出来ないのかなって思って今回私が開発したのは注文サイト。

実際できたのはしょぼい注文サイトなんだけど,TOPにお店を紹介するページを置いて
注文画面で数量を押すと注文されてDBに格納後,詳細画面でそれが見れたり削除できたりの機能を追加した。

BootstrapのJSのmodal,navbar,buttonを使ったりしてフロント側に時間をかけたかな。
注文サイトだからサーバー側が大事なんだけどねw
発表会の時は東京にいたのでリモートでやりました。
何喋ったら正解なのか分からなくて中身も発表もグダグダだったけど見せることはできたかな٩( 'ω' )و

講義の中でオススメされた本

  • プロになるためのWeb技術入門
  • 達人に学ぶDB設計 徹底指南書
  • Webを支える技術
  • PHP7
  • 体系的に学ぶ安全なアプリケーションの作り方

などなど
2冊は読んだので残りは図書館から借りて読むぞい(╹◡╹)

全体を通しての感想

技術的な面ももちろん,どうやって学習して行くか精神的な面も学べて幅広くかつ奥深い内容で,本当に参加して良かったなって思う。
自分自身の脳をハックするという考え方は印象強くて,どういう風に環境を整えて,どれだけ自身を落とし込めるか的な。
あと,すごい良かったと思うのは,Slackで個人twitterみたいにtime_xxxxのchannelを作って受講生が気軽に呟けるようにしていたこと。
これの何がいいかって,お互いがどんな感じで進めているのか見れるし,受講生の間で会話が生まれて,勉強するモチベに繋がっていたっていうこと。
チーム開発とかする時に参考にしていきたいなって思った!

反省点

webについて全体的に学べる講座だったので,習得に時間が必要と言われていて
面接した時の自分は,よし!やってやるぜ!の感じでモチベ高かったんだけど
思ったより時間取れなくて,学びたいことを学びに行ってたのに
そこに時間を割けなかった自分に苛立ちしたし,後悔してる_(┐「ε:)_

これから

反省は次に生かす!
Railsでwebアプリを作る目標は前々からあったけど,まずはProgateやドットインストール
参考書からRubyを学習して,SinatraやってからRailsチュートリアル->自作アプリ開発
っていう流れにしようって決めました。自作アプリのアイディアは決定してる。

そのためには時間をかけるしかないので,バイトを減らして借金をすることにしました。
借金といっても,奨学金を気にせず使うっていう意味なんだけどね。
うん,今はお金より時間だなって。
環境は整え始めているので,あとは上記の内容をやっていく感じです。
3月15(木)に教室が終わってからは,ProgateのRubyを二週目クリアして,ドットインストールを半分までやったところ。

あとはISUCON出ます!女子でチーム組んだので楽しみです。

それでは
おやすみなさい(╹◡╹)

Web×IoTメイカーズチャレンジのハッカソンに行ってきました!

ざーなかです。おはようございます。

そういえば・・・・・
2/24-25の二日間に開催されたハッカソンに出場してきました(๑╹ω╹๑ )

参加までの経緯

boiled-egg.hatenablog.jp


前回ブログで書いたのは講習会でそれがハッカソン出場の前提条件だった。
参加者が多かったので,くじ引き抽選で当選したのでチーム組んで参加!

今回のハッカソンのテーマ

テーマは前回発表された
「東村のパイナップル畑を鳥獣から守るシステム」
ということで,,,

んで今回私たちが考えたアイディアは
センサーを置いてイノシシが通ると畑の中のカカシが起き上がって
くるくるしたり変な音出せたらいいよねー的な感じでした。

ハッカソンまで集まれる人で準備して機材揃えて
いざ参加!

ハッカソン当日の流れ

二日間形式のハッカソンだったので
24日の朝から夕方まで,25日は朝から発表する時間(15:00くらいだったかな)まで
限られた時間の中でチームで力合わせてプロダクト作るって感じだった!

そして完成したプロダクト

絵だけどこんな感じ。笑
f:id:boiled_egg:20180308090354j:plain

使用した技術・機材は
Node.js
Johnny-five
Arduino
JavaScript
Golang
Rails
MySQL
赤外線センサー
サーボモータ
DCモータ

PC間のネットワークはGoにお任かせ
Arduinoの制御はJohnny-fiveでJSでやって
センサーで値を取得したものをDBに格納して
それをRailsで見せたって感じ。

結果発表

優勝したチームは副賞として東京往復チケットと
IoT国際シンポジウム2018参加が貰えるという内容でした。
そして結果発表!
なんと優勝しましたあああああああああああああああああああ

ハッカソンを通して

今回のハッカソン,実は初めてハッカソンでどんな感じか掴めてなかったんだけど
終えて思うことは,めっちゃ楽しかった・・・・( ͡° ͜ʖ ͡°)

アイディア考えたけど当日まで出来るか分からなくて不安で
でもみんなの得意をそれぞれ生かして役割分担して
時間に追われつつも何とか思い描いていたプロダクトができて
なんか嬉しかったな〜。これぞチーム開発って感じがした!


ってことで東京に行ってきます٩(๑❛ᴗ❛๑)۶
実は今,空港にいてこのブログ書いてるっていうw

IoT国際シンポジウム2018の内容は
また帰って落ち着いた時にでも!

では!

YAPC::Okinawa 2018 ONNASON

どうも。ざーなかです。

先日YAPC::Okinawaに参加して来たので,まあ感想でも残そうかなって感じ。
友人が2017 Hakataに参加してたのでYAPCの存在自体は去年から知っていて,
今年はOkinawaでやるってことで,どんな感じのカンファレンスなのか気になって行って来ました٩(๑❛ᴗ❛๑)۶

Perl入学式に行ったことがあるだけで全然触ったことないけどね。w

会場に行く時,すごい大雨&高速で運転めっちゃ怖かった。道にも迷うし。w
あれはマジで全神経使う!

4つくらいお話聞けたんだけど
内容を把握できたのは1つだけだった・・・
触ってないんです・・Perlさん・・・すみません・・・・・。

大きく分けて感想3つ
ノベルティ豪華すぎません?
・昼食の弁当豪華すぎません?
・うん,話の内容難しかった。

そうそうそう,驚いたのがノベルティの充実さ!
ワイヤレス充電器,Tシャツ,いろんな会社のステッカーなどなど
貰っちゃっていいの!?ってなった。

弁当も豪華だったし学生無料強い・・・ありがとうございます。

参加して見て,Perlってあまり聞かないしどう動いてるんだろうって思ってたけど
結構サービスやシステムの裏側の一部で動いていて,技術は組み合わせだなって感じた。
あとは,登壇する人の話している内容がわかるようになりたいのが理想。
エンジニアとしてね。普段触っていなくてもああなるほどそのアプローチか!
ってなるわけで。知識は多いことに越したことはないからね。

初参加でしたが,行ってよかった٩(๑❛ᴗ❛๑)۶

rails newからbootstrap4適用まで

railsでアプリを作成してからbootstrap4を導入したところまでやったことの忘備録。

railsアプリを作成

プロジェクトを管理するフォルダで
$ rails new app名

とりあえずtopページを先に作っておくか〜って感じで
$rails g controller home top

サーバ立ち上げて
$rails s

localhostでブラウザから確認
localhost:3000/home/top

topページはlocalhost:3000/で表示されるようにroutes.rbを変更
get '/' => 'home#top'

bootstrap4を適用

qiita.com
上記リンクを参考にしました。

Gemfileに以下2行を追加
gem 'bootstrap', '~> 4.0.0.beta2.1'
gem 'jquery-rails'

gemファイルに変更があったので
$bundle install

application.cssをrename
$mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss

application.scssでbootstrapをimport
@import "bootstrap";

importするときに,*= require_treeを削除した

app/assets/javascripts/application.jsに以下3行を追加
//= require jquery3
//= require popper
//= require bootstrap-sprockets


ブラウザから確認すると少し見た目が良くなって適用された感じだった。