tsun0のブックマーク (60)

  • RubyKaigi 2019 レポート & 所感 - Note

    はじめに RubyKaigi 2019 に参加してきました。自分の聞いた発表のレポートや所感を書いていきます。(現時点で Twitter でスライドが公開されているものは載せておきます) 自分の理解・関心の度合いによって、文量に差が出ていますがご容赦ください。 間違っているところなどあればご指摘いただけると幸いです。 各発表のスライドはドリコムさんの以下の記事がよくまとまっていると思うので貼っておきます(全て揃っているわけではありませんが) [RubyKaigi 2019] Day 1 の発表資料をまとめました [RubyKaigi 2019] Day 2 の発表資料をまとめました [RubyKaigi 2019] Day 3 の発表資料をまとめました 先にまとめ Ruby 自体に関する発表は型の話とパフォーマンス改善(並行・並列処理、 JIT コンパイラなど)の話が主だった Ruby

    RubyKaigi 2019 レポート & 所感 - Note
    tsun0
    tsun0 2019/04/29
  • 技術面接を受ける前に確認しておくといいこと | Wantedly Engineer Blog

    ここで書くのは基的なことなので、実際の面接ではもう少し複雑な問題になるかもしれません。 逆にいうと、このあたりの問題は一度は解いておいた方がいいので列挙しました。 普段ウェブの開発をしているだけでは考えたことがない場合もあるので、一度確認するといいかもしれないです。 アルゴリズムチェックポイント計算量, ハッシュと二分木, ソート, 再帰 計算量計算量の話 http://qiita.com/cotrpepe/items/1f4c38cc9d3e3a5f5e9c 二分探索とは https://ja.wikipedia.org/wiki/%E4%BA%8C%E5%88%86%E6%8E%A2%E7%B4%A2 ハッシュテーブルとは https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E3%83%86%E3%83

    技術面接を受ける前に確認しておくといいこと | Wantedly Engineer Blog
    tsun0
    tsun0 2019/02/21
  • 「こわくない Git」というスライドを発表しました - kotas.tech

    社内向けに「こわくない Git」というタイトルのスライドを作って発表しました。 対象者は「マージがなんとなく怖い」「エラーが怖い」「リベース使うなって言われて怖い」と、Git が怖いと思っている人です! こわくない Git from Kota Saito 発表中に出た質問など 補足も兼ねて、上のスライドを発表した際に出た質疑応答などをここに書いておきます。 Q: 常に Non Fast-Forward (--no-ff) でいいのでは、と思えるけど git merge がデフォルトだと Fast-Foward or Non Fast-Forward (--ff) なのはなぜ? A1: Non Fast-Forward だと、確かにメリットが多いのですが、1点だけデメリットがあります。特に差分が無い状態で git merge --no-ff すると、空のマージコミットが作られてしまうのです。

    「こわくない Git」というスライドを発表しました - kotas.tech
    tsun0
    tsun0 2018/11/07
  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
  • 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) - Glamenv-Septzen.net

    ホーム 検索 - ログイン | |  ヘルプ 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) [ Prev ] [ Next ] [ 技術 ] 何をいまさら当たり前の事を・・・と思われるだろう。 $ nohup long_run_batch.sh & SSHからログアウト後も実行を続けたいバッチジョブを、"&"を付けてバックグラウンドジョブとしてnohupから起動するのは定番中の定番である。 しかし、「nohupを使わなくても実行を続けることが出来る」やり方があったり、さらには「nohupを付けてもログアウト時に終了してしまう」パターンがあるとしたらどうだろう? そして、ある日あなたの後輩や同僚がこれらについてあなたに質問してきたら、あなたはどう答えるだろうか? 「Web上で検索したら見つか

    tsun0
    tsun0 2018/02/15
    , [UNIX]
  • httpd.confについて調べたのでまとめたよ - とある技術の備忘録

    最近学科の友人3人とサーバ/セキュリティについての勉強会を週1で行っていて、毎回何か調べてくることになっており、今回は apache の設定について少し調べてきました。初心者がまとめたので間違っている部分があるかもしれませんが、勉強の役に立てて頂ければ幸いです。 httpd.confはどこにある? 最小限のhttpd.conf 3つのセクション セクション1: GlobalEnvironment セクション2: MainServerConfiguration セクション3: VirtualHosts モジュールの追加 外部設定ファイルの読込み サーバリソースの監視方法 httpd.confはどこにある? OSによって異なりますが、以下の階層に置いてある可能性が高いです。 CentOS、FedoraなどRed Hat系 /etc/httpd/conf/ SUSE系、MacOSX /etc/a

    httpd.confについて調べたのでまとめたよ - とある技術の備忘録
  • AWS EC2 Linux開発環境 構築メモ - Qiita

    RHEL6.5 Apache2.2.15(Unix) PHP5.4.33 MySQL5.6 OS基設定 rootパスワード設定 rootパスワードを設定 ec2-userでログイン sudo su - passwd 新パスワードを設定 「all authentication tokens updated successfully.」と表示されたらOK 作業用ユーザーを作成 デフォルトのec2-user以外のユーザーを作成 su - useadd user1 passwd user1 「all authentication tokens updated successfully.」と表示されたらOK 作成ユーザーにsudo権限を与える usermod -G wheel user1 visudo 以下コメントアウトを外す #%wheel ALL=(ALL) ALL → %wheel ALL=

    AWS EC2 Linux開発環境 構築メモ - Qiita
  • Mac初心者が知っておくべき突然Macが暴走したときの対処法 - iTea3.0

    @torizoです。 以前、旧MacBookAir(Mid 2011)でブログを書いていると、時々急にファンが全開に回転し始め、MacBookAirの筐体に熱を帯びることが時々ありました。 今では比較的容易に原因を突き止め、解決できるようになりましたが、Macを使い始めたユーザーの方は、自分のMacが思わぬ暴走をした時にどのように対処していいのかわからない場面も出てくると思います。 今回はMacが突然暴走したときの対処法を備忘録として残しておきたいと思います。 チェック方法はカンタンです。 Macが暴走する時、その典型的な例として筐体が熱くなったり、ファンがフル回転するなどの症状がみられます。 そんな症状が見られたときは【アプリケーション】→【ユーティリティ】→【アクティビティモニタ】を起動しましょう!これで大半の原因を特定することができますよ! アクティビティモニタ内の【%CPU】のタブ

    Mac初心者が知っておくべき突然Macが暴走したときの対処法 - iTea3.0
  • Go言語での構造体実装パターン

    Go言語での構造体実装は、埋込や独自コンセプトのインターフェースといったGo言語独自の機能を理解して行う必要があります。 今年からGo言語を始めましたが理解が曖昧なままだと実装に迷うことが何度かありました。今回よい機会なので、Go言語での構造体実装パターンとしてまとめてみることにしました。 構造体実装パターン 実装パターンの洗い出しとして、GoFデザインパターンをGo言語で実装する手法をとりました。 その中で繰り返し現れる実装をGo言語での構造体実装パターンとしてまとめてみました。 コンストラクタ関数 エクスポートによるアクセス許可 インターフェースによるポリモフィズム 構造体によるポリモフィズム 構造体によるサブクラス・レスポンシビリティ 構造体による移譲 関数による移譲 以下、それぞれのパターンを解説していきます。 コンストラクタ関数 Go言語には構造体のコンストラクタがないため、構造

    Go言語での構造体実装パターン
  • oh-my-zsh の環境で、peco-select-history が動かない - Qiita

    oh-my-zsh の設定で history コマンドが fc コマンドに alias 設定されているらしい。 https://github.com/robbyrussell/oh-my-zsh/issues/739 以下のように、historyの前にバックスラッシュを追記した。 (@syohexさんと@hisaichi5518さんにこの方法を教えていただきました。ありがとうございます!) function peco-select-history() { local tac if which tac > /dev/null; then tac="tac" else tac="tail -r" fi BUFFER=$(\history -n 1 | \ eval $tac | \ peco --query "$LBUFFER") CURSOR=$#BUFFER zle clear-scree

    oh-my-zsh の環境で、peco-select-history が動かない - Qiita
  • pecoでzshのコマンド履歴検索を超快適にする! - Qiita

    Macで brew を導入している方は、 brewを使ってpecoをインストール。 詳細は http://github.com/peco/peco を参照 .zshrcに以下の内容を追加 function peco-history-selection() { BUFFER=`history -n 1 | tail -r | awk '!a[$0]++' | peco` CURSOR=$#BUFFER zle reset-prompt } zle -N peco-history-selection bindkey '^R' peco-history-selection peco-history-selection関数を記述 exec zsh -l でzshを再ログインすると良い 準備完了!! 使い方 zsh上で Ctrl + R を押せば以下の感じで出てくる。 後は、インクリメンタルサーチで

    pecoでzshのコマンド履歴検索を超快適にする! - Qiita
    tsun0
    tsun0 2017/04/27
  • net/httpで安全に静的ファイルを返す

    net/httpで静的ファイルを返すで、 http.ServeFileを使っていてアレ?と思ったのでちょっと詳しく調べてみました。 (http.FileServerを使うものだと思ってたため) 結論だけ先に書いておくと やはり、特に理由がなければhttp.FileServerを使ったほうが良さそう どうしてもhttp.ServeFileを使う場合は定数でパス指定をする 「自作パスルータを使っている」かつ「Go 1.6.1 未満を使っている」場合はとくに要注意 ディレクトリトラバーサル脆弱性 紹介されているのは以下のコードです。 http.HandleFunc("/static/", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, r.URL.Path[1:]) }) しかし、参照先の「Go Golang

  • Go で実行中の行数、ファイル名の取得 - Qiita

    Go では FILE や LINE はありません。 これは、プリプロセッサを省いてコンパイルスピードを早めたいかららしいです。 しかし、 Go 標準の log モジュールは 以下のようにフラグでこれらを出力できます。 package main import "log" func main() { // どちらかを指定 log.setFlags(log.Llongfile) // full file name and line number: /a/b/c/d.go:23 log.setFlags(log.Lshortfile) // final file name element and line number: d.go:23. overrides Llongfile log.Println("debug log") }

    Go で実行中の行数、ファイル名の取得 - Qiita
  • Big Sky :: golang では変数の宣言位置が大事

    今日こんなツイートをした。 @mattn_jp よろしければベターな理由をm(_ _)m 名前空間を短くする作法なのはわかるのですがメモリやGCやコンパイラなど、どの辺に優しい感じですか? — Ryuji IWATA (@qt_luigi) April 5, 2017 qt_luigi さんからどうしてかを聞かれたので説明したいと思います。 golang では宣言した位置で初めて自動変数としてメモリが確保され、ゼロクリアされます。 for i := 0; i < b.N; i++ { var foo Foo bar, err := doSomething() if err != nil { continue } foo.v = bar fmt.Fprintln(ioutil.Discard, foo) } なので例えばこの様なコードで doSomething() が err を返した場合、

    Big Sky :: golang では変数の宣言位置が大事
    tsun0
    tsun0 2017/04/24
  • シェルスクリプト入門 書き方のまとめ | Memo on the Web

    シェルスクリプト入門として, 基的な書き方をまとめました. 長いですが, 1ページにまとめてみました. 良かったら目次も参考にしてご覧になって下さい. 目次 シェルスクリプトとは 作り方, 実行の仕方 コメント ユーザーからのキーボード入力を受け付ける 変数 通常の変数 特別な変数 演算子 数値計算演算子 比較演算子 コマンドを繋げる演算子 条件文に使える比較演算子 条件文 制御構文(分岐) if文 case文 制御構文(ループ) for文 while文 until文 select文 文字列処理 文字列置換 削除 複数行のテキストの出力(ヒアドキュメント) 関数 シェルスクリプトとは シェルスクリプトとは, シェルの動作をまとめて記述したスクリプトのことです. 決められた文法にしたがって処理を記述することによって, シェルでの処理をまとめて行ったり, 作業を自動化できたりします(例 複数

  • 【apache】コマンドラインからapacheを起動/停止/再起動する

    はじめに このページでは、apacheの基中の基、コマンドラインからの起動/再起動/停止の方法を説明します。 コマンドラインからのapacheの起動 コマンドラインからのapacheの起動/再起動/停止には「apachectl」コマンドを利用します。 尚、apachectlはOSやディストリビューションによっては「apache2ctl」という名前になっていますので、apachectlが見つからない場合は、「apache2ctl」で試してみてください。

    tsun0
    tsun0 2017/04/20
  • Bundler概要 - Qiita

    bundlerについて分かってる風になっていたので、一度整理します。 特徴 ・Gemパッケージの種類やバージョンの管理 ・複数PCで必要なGemパッケージをインストールする仕組みを提供 ->チーム間で同一の開発環境を簡単に構築することが可能に。 運用方針 基的に、gemコマンドでインストールするのはBundlerのみで、その他のgemパッケージは、Bundler経由でインストールするという方針。

    Bundler概要 - Qiita
  • 初めて Mac で zsh を使う人のためのチュートリアル - mollifier delta blog

    俺聞け4というイベントで zsh について発表しました (その時の発表資料)。「普段シェルを使っていない人でも zsh を使うと便利だよ」という内容で発表したので、それを聞いて使ってみようと思った人もいたようです。 でもググってみても色々分かってる人向けの記事はありますが、「どうやって起動するんですか?」という当の初心者のための記事はあんまりありません。 そういう初めての人にも zsh を使って欲しいと思ったので、初心者向けの入門記事を書きました。Mac を使えば簡単に zsh を始めれるので、使い方が分からないという人は参考にしてみてください。 ターミナルを起動する zsh は「ターミナル」というアプリを起動して使います。 「アプリケーション」 -> 「ユーティリティ」の中に「ターミナル」があるので起動してみましょう。 次回起動するときのために Doc に追加しておくと便利です。 zs

    初めて Mac で zsh を使う人のためのチュートリアル - mollifier delta blog
  • rails sで起動したサーバにブラウザからアクセスできない - Qiita

    対象:Rails4.2 Railsのバージョンを4.2に上げてブラウザからアクセスしようとしたら繋がらない。 $ ./bin/rails s => Booting WEBrick => Rails 4.2.0 application starting in development on http://localhost:3000 => Run `rails server -h` for more startup options => Ctrl-C to shutdown server

    rails sで起動したサーバにブラウザからアクセスできない - Qiita
  • 〜Go初学者に贈る〜僕がお世話になった活躍しているGoエンジニアまとめ - Qiita

    はじめに お気づきの方も多いかと思いますが、記事はiOS新人プログラマーさんに贈るiOSで活躍しているエンジニア を参考に書かれました。 今回は、Goを始めた方がよりよい情報を得ることができるよう、GithubでのOSS活動やQiita、Blog の記事、Twitter、登壇、執筆などアウトプットされている方を中心にGopherを集めてみました。 僕自身、いろんな方のブログやスライド、OSSのコードを見て勉強してきて非常にお世話になりました。この場を借りてお礼申し上げます。 自分の知っている範囲での紹介となってしまうため、活躍されているエンジニアさんをすべて網羅しきれないですがすみません。。 今後もどんどん追記していく予定です! おすすめの方がいらっしゃいましたら、コメントや編集リクエストで教えていただけると嬉しいです。 この記事がGo初学者の助けとなれば幸いです。 紹介順はアルファベッ

    〜Go初学者に贈る〜僕がお世話になった活躍しているGoエンジニアまとめ - Qiita