タグ

ブックマーク / kaneshin.hateblo.jp (13)

  • The Go Playgroundのちょっとした機能 - at kaneshin

    The Go Playground この記事は Go Advent Calendar 2018 8日目の記事です。 はじめに Goで簡単にコードを書いて共有するときはThe Go Playgroundを利用することが多いと思いますが、実は隠れ機能みたいなものがあるので今回はそれを紹介します。 The Go Playground テストコードの実行 https://play.golang.org/ のページを開くと、下記のようにmain関数が用意されたPlaygroundが開きます。これだけだとmain関数をメイン処理として記述しなければならないと思いますが、全くこれ通りでなくても動くことが About に記述されています。 If the program contains tests or examples and no main function, the service runs the

    The Go Playgroundのちょっとした機能 - at kaneshin
    laplus-knsn
    laplus-knsn 2018/12/09
    書いた
  • sortパッケージから学ぶ汎用的なパッケージ作成 - at kaneshin

    Goでソートを行うときにsortパッケージを活用すると思います。Goを使っている人はこのsortパッケージの実装を熟知してから、自分で新規パッケージを作成すると、汎用的に利用できるパッケージを作ることができるはずです。 モチベーション コーディングインタビューの話ではないが自分が人のコードを読むとしたら「どういうレイヤー/パッケージ構成」にしているか、というのは設計力を測る一つの観点にしています。 coding interviewは好きじゃないけど、やるならこういうの出してみるかな〜ってのを仮で作ってみた。 https://t.co/gP7MkBCkd0 純粋に言語の習熟度とアルゴリズムの実装経験を測れる具合にしている。— kaneshin (@kaneshin0120) September 15, 2018 shuffle package sortパッケージを模倣するのに作成するのは要素

    sortパッケージから学ぶ汎用的なパッケージ作成 - at kaneshin
    laplus-knsn
    laplus-knsn 2018/09/17
    書いた
  • Clojure と Leiningen と時々 Container 〜そしてデプロイへ〜 - at kaneshin

    この記事は Clojure Advent Calendar 2016 の19日目の記事です。 Clojure を一度も使ったことが無かったのですが、少しは触ってみようと思い、今回 Clojure Advent Calendar 2016 に参加させてもらいました。 書くにあたり、凝ったことなんて全くできるはずもないので、自分らしい記事を書こうと思います。プログラミングには熟れており、これから初めて Clojure 触ってみる人の足がかりになるような記事になればと思います。 環境整備〜開発 とにかく、開発するなら Clojure を実行できなければダメだろうということで、Docker コンテナのイメージを使って楽に環境整備することに決めました。 Docker container https://hub.docker.com/r/library/clojure/ ここにあるコンテナイメージを

    Clojure と Leiningen と時々 Container 〜そしてデプロイへ〜 - at kaneshin
  • GKE を使って golang アプリケーションコンテナを稼働させる - at kaneshin

    この記事は Google Cloud Platform(1) Advent Calendar 2016 の15日目の記事です。 普段は golang をやってるアプリケーションの人っぽい感じになっていますが、他にも色々とやっています。(と、いうアピールをたまにしておかないと) さて、今回は GKE + golang のデプロイ話でもしましょう。結局、golang が絡んでいますね。 準備 Docker をインストールしておき、使用できるようにしましょう。 コンテナイメージの作成・プッシュ プロジェクト構成は下記のようにし、docker ビルドしたイメージを Container Registry にプッシュするようにします。 helloworld/ ├── deployment.yaml ├── Dockerfile ├── main.go └── service.yaml main.go

    GKE を使って golang アプリケーションコンテナを稼働させる - at kaneshin
  • 今年の写真 #TYPAC2016 - at kaneshin

    この記事は 今年の写真 #TYPAC2016 Advent Calendar 2016 の14日目の記事です。 今年も去年と同じCanonの一眼レフのボディはEOS 6DでレンズはEF24-70mm F2.8L II USMで変わらずです。 Canon デジタル一眼レフカメラ EOS 6Dボディ EOS6D 出版社/メーカー: キヤノン発売日: 2012/11/30メディア: Camera クリック: 8回この商品を含むブログ (10件) を見る Canon 標準ズームレンズ EF24-70mm F2.8L II USM フルサイズ対応 出版社/メーカー: キヤノン発売日: 2012/09/06メディア: Camera クリック: 3回この商品を含むブログを見る 新しい望遠レンズが欲しいと思いつつも、そこまでズームをしないので事足りているのですが、今以上のズームができたら世界が広がるんだろ

    今年の写真 #TYPAC2016 - at kaneshin
  • 【Git】コミットメッセージのスペルチェック - at kaneshin

    この記事は Git Advent Calendar 2016 - Qiita の8日目の記事です。 スペルチェッカー - aspell スペルチェックをするために aspell というスペルチェッカーを使用します。 インストール on macOS macOS では Homebrew 🍺 を使ってインストールします。 # To install aspell $ brew install aspell # make sure that the aspell has been installed. $ which aspell /usr/local/bin/aspell インストール on Debian Debian しか使っていないものでして… # To install apell $ apt-get install aspell -y # make sure that the aspell

    【Git】コミットメッセージのスペルチェック - at kaneshin
  • golang で始める Slack bot 開発 - at kaneshin

    この記事は Slack Advent Calendar 2016 - Qiita の3日目の記事です。 昨日は Kinoppyd さんの「今そこにあるSlack」でした。 さて、今回、この記事では golangSlack bot を実装する方法を紹介しようと思います。 世に蔓延る Slack bot これから bot を世に放とうとしている人は、是非、1日目と2日目の記事を読み、事前知識を頭に叩き込んでおくと良いと思います。 Slackで業務チャンネルの平穏を維持するbot、そして人間のトークンをbotに与える話 - Qiita 今そこにあるSlack的に、自身で作成した bot はもちろん好きになると思いますが、人によっては理解不能な bot や、意味不明な場面で反応したりと、「邪魔だな」と思われてしまうことがあります。そのため、bot を開発する人は「謙虚・尊敬・信頼」(T

    golang で始める Slack bot 開発 - at kaneshin
    laplus-knsn
    laplus-knsn 2016/12/03
    書きました!
  • golang の httptest パッケージを使う - at kaneshin

    この記事は Go Advent Calendar 2016 - Qiita の2日目の記事です。 Golang については書きたいことがたくさんあるので、Go Advent Calendar 2016 その4が出てきても良いのではと思っている次第です。(空いていればいつでも書きます) さて、今回、この記事では Golang で書かれた Web アプリケーションのリクエストのユニットテストについて解説しようと思います。 github.com 1. Testing HTTP Handler 検証のために、ただ単に "pong" を返却する pingHandler と、URLクエリから値を取得してそのまま返却する echoHandler の2つを定義します。 ー pingHandler // pingHandler returns just "pong" string. func pingHan

    golang の httptest パッケージを使う - at kaneshin
    laplus-knsn
    laplus-knsn 2016/12/02
    書きました!
  • golang で regexp パッケージを使うときに気をつけること - at kaneshin

    golang の Regexp は初期化の Compile コストがそこそこありますが、実は正規表現のパターンと対象となる文字列によって、初期化コストが無視できる(パターンと文字列に支配される)くらい遅くなります。よく言われる regexp の初期化コスト問題が無視できると言われても、正直、全く嬉しくないですね。 ただ、コーディング中に regexp パッケージを使わなければいけない場面は出てくるため、なるべくコストの掛からない実装を心がけています。 Compile/MustCompile 初期化コストはなくすため、グローバルに保持するようにします。 定義 var re = regexp.MustCompile("[a-z]{3}") func main() { fmt.Println(re.FindAllString("foobarbazqux", -1)) // => [foo bar

    golang で regexp パッケージを使うときに気をつけること - at kaneshin
    laplus-knsn
    laplus-knsn 2016/10/15
    Goオールスターズ2で話した regexp について書きました
  • golang の channel を使って Dispatcher-Worker を作り goroutine 爆発させないようにする - at kaneshin

    golang で処理の高速化をするために goroutine/channel を使って並行処理にし、待ち時間を無駄にしないようにするのは言葉で表すのは簡単ですが、実際にパターンとして落としこむためには経験が必要だなと思うので、今回 Dispatcher-Worker として Job Queue を golang で実装する方法を紹介したいと思います。 この記事は mattn さんの Big Sky :: golang の channel を使ったテクニックあれこれ の次のステップとして読むことをオススメします。 mattn.kaoriya.net golang で作成したアプリケーションで多くのリクエストをアプリケーションが送受信する必要がある場合、高速に捌くために並行処理にして非同期化を図る場合を想定しています。 今回は get という関数でHTTPリクエストを実行して取得したデータのサ

    golang の channel を使って Dispatcher-Worker を作り goroutine 爆発させないようにする - at kaneshin
  • 今年の写真 #TYPAC2015 - at kaneshin

    今年 ことしは4年振りにCanonの一眼レフを新調しました。 ボディはEOS 6D、レンズはEF24-70mm F2.8L II USMです。 まだあまり使用していないですが、しっくりきています。 今年の写真 おわりに 来年はたくさん撮影します。

    今年の写真 #TYPAC2015 - at kaneshin
  • Gyazo をDropbox経由かつ、Twitterに投稿できるようにした。 - at kaneshin

    kaneshin/DropperGyazo · GitHub 家サーバーだと、削除に時間がかかるので、前に Dropbox をホストにしたものを作ったのですが、それに Twitter に即時 Tweet する機能をつけました。 両方とも、各自でトークンを取得し、適当な場所に記しておくだけです (readmeファイルに書いてある) 最近は、Objective-C で自分で作ったものを使ったりもしてます。 こっちも、時間があったら github にアップする予定です。

    Gyazo をDropbox経由かつ、Twitterに投稿できるようにした。 - at kaneshin
  • Slice text and add trails with jQuery. - at kaneshin

    jQueryで文字列を特定の文字数でカットして末尾に「…」などを追加する方法 | BlackFlag このエントリーのコード、もう少し可読性を上げた方が良いと思ったので、書き直してみた。 jQueryって、 $foo.html(something).css(something).animate(something)... ; とできるので、処理分けしているところで同じ関数を書いたりしてると、コードが見難くなる。 最終的に同じ後処理をするなら、if文を抜けてから書くべきと思ってる。 // css() が2つある if(cutFigure < textLength) { $(this).html(textTrim + afterTxt).css({visibility:'visible'}); } else if(cutFigure >= textLength) { $(this).css({

    Slice text and add trails with jQuery. - at kaneshin
  • 1