タグ

ブックマーク / qiita.com (588)

  • GoとDockerとMicroservices 最初の一歩 - Qiita

    この記事は Go その2 Advent Calendar 2015 10日目の記事です。 今回はgodockerを使ってMicroserviceっぽく、ウェブアプリケーションを作っていく時のさわりの部分を書いてみました。 Microservice Hello World macdocker toolboxインストールして、docker-machine start devとdocker-machineを立ち上げた後から。 Hello Worldを返すウェブサーバーのdockerイメージを用意してみます。 package main import "net/http" func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello World"))

    GoとDockerとMicroservices 最初の一歩 - Qiita
  • Web APIにはJSONベースのフォーマットを使おう - Qiita

    { "response": { "id": 3342124, "message": "Hi!", "user": { "id": 3456, "name": "Taro Yamada", "image_url": "/images/taro.png" } } } など、どの構造がいいでしょうか? もっと違う構造も考えられます。 JSONはシンプルですが、構造に制約がなさすぎます。適切な設計を行うには適切な制約が必要です。 そこで、plain JSONに少し制約を加えたJSONベースのフォーマットを使うことをおすすめします。 もしあなたが、JSONレスポンスをどのようなフォーマットにするかをチームで議論したことがあるなら、JSON APIは『自転車置き場の議論』に対抗する武器となる。 共有された規約に従うことで、生産性が向上し、汎用的なツールを利用でき、アプリケーションという重要なものに集中

    Web APIにはJSONベースのフォーマットを使おう - Qiita
  • セキュリティ監査で文句を言われないHTTPステータスコードの使い分け - Qiita

    最近はハンドリングしくてもいいや的な、入力改ざんで発生するバリデーションエラーをそのまま500のHTTPステータスで返すと、攻撃者が「なんか攻撃成功しちゃいそう」って思っちゃうとかなんとかで、監査的なところから「500はやめろ」って言われることがあります。 一理ある ということで、安易に500を返さない方法を考えてみます。 HTTPステータスコードにあまり馴染みのない方は、こちら…ではなく、こちらをまず読んでください。 HTTPステータスコードの使い分け基礎 400 まず、ユーザの入力値、データの状態によってエラーになるケースは 400 Bad Request とします。エラーメッセージを表示して再入力を促すHTMLページを返す、一般的な入力エラー系の遷移は200 OKを返しても、実用上問題はないかと思います。 ユーザの操作が原因で、サーバ処理がエラーになった場合も400で扱うのはおかしい

    セキュリティ監査で文句を言われないHTTPステータスコードの使い分け - Qiita
  • そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) - Qiita

    Shell Script Advent Calendar 2015 4日目 の投稿です。 以前から自分用にメモしていたものを文字起こししました。 はじめに 仕事でシェルを使い始めて3年くらい経ちました。 途中、pythonruby でスクリプト作ったり、ちょっと zsh に浮気したりしましたが、なんだかんだで今も Bash を使うことが多いです。 この3年間、スーパーシェル芸人(@ebanさん)にご教授頂いたり、Golfしたり(@ebanの影響)、シェル芸勉強会に参加したり(@ebanの影響)してきました。 そんな3年間のまとめとして、シェルスクリプト初めましてだった3年前の私に向けたTips集を書いてみました。 趣旨 各項目ごとに、まず初心者(過去の私がやってた)あるある実装を例示して、その次に、より良さげな実装を例示する構成としています。 実行環境 OS Mac OS X Yos

    そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) - Qiita
  • 【大規模スマホゲー】Python未経験エンジニアとの最初の1ヶ月OJTメモ - Qiita

    3. Python環境構築 Python の環境構築方法は複数存在しますが、便利なvirtualenv + PyCharm + bpython で構築する手順に沿って作業してもらいました。 virtualenv + virtualenvwrapper virtualenv を導入すると、複数のPython環境を簡単に構築・切り換えできるようになります。たとえばコマンド1つで Python2.7 + Django1.5環境と Python3.5 + Django1.7環境をworkon コマンド1つで切り替えられます。 # install sudo easy_install pip sudo easy_install virtualenv sudo easy_install virtualenvwrapper pip install pbr sudo easy_install virtual

    【大規模スマホゲー】Python未経験エンジニアとの最初の1ヶ月OJTメモ - Qiita
  • Tour of Go (Go言語基礎文法最速マスター)日本語版を更新しました - Qiita

    Go Advent Calendar 2015 その3 2日目です。 今年は3つも並行してAdvent Calendarが走っていてすごいですね。 Go その1 Go その2 Go その3 その3も頑張っていきましょう! Tour of Go語版を更新しました さて、昨今翻訳についていろいろとありますが、それはさておきTour of Go語版を更新しました。 主な更新内容は以下のとおりです: 翻訳を見直し、わかりにくい表現の日語を修正 2014,2015年に行われた更新を取り込み。これに伴い、以下のページが増えています: Zero values Type conversions Type inference Defer Arrays Stringers Exercise: Stringers Readers Exercise: Readers はてブ等で途中のページをブックマ

    Tour of Go (Go言語基礎文法最速マスター)日本語版を更新しました - Qiita
  • GoのChannelを使いこなせるようになるための手引 - Qiita

    Go使いたくなる理由の一つに、マルチスレッドプログラミング的なものを高速な言語で安全に実装したいというのがある。Goにおいてそれを支えるのが、自前で実装した軽量スレッドといえるgoルーチンと、mutexなどのロックの代わりに使えるChannelという概念だ。 実際に実装するときに、Goルーチンは難しくないが、Channelを使うのは割と知識と経験が必要なのでここでは、Channelについてすこし詳しく書いてみる。 Message Passing まずは理論から。 Goのチャネルなどのロックを使わない方法の並行処理はMessage Passingと呼ばれている。 以下の英語Wikipediaにあるように数学的な理論にもなっているしっかりした枠組み。 ErlangのActor Modelなどもこの仲間。GoのチャネルとActor Modelは、実は、同等の概念で表現方法が違うだけらしい。 (

    GoのChannelを使いこなせるようになるための手引 - Qiita
  • Slackであまり知られていない便利機能一覧 - Qiita

    国内でも随分使われるようになってきたSlack、みなさん随分使いこなしていると思うのですが、Slackも日々目まぐるしく進化してます。リリースを眺めたりするのが好きな筆者が「よく使う機能」や「これは便利だぞ」という機能を厳選して紹介します。 ※) 紹介しているのは、MacのクライアントAppを前提としています。 Slash Commands編 参照:Using slash commands – Slack Help Center みなさん、スラッシュコマンド使ってますか? Slackでは殆どのことがスラッシュコマンドでできるといっても過言ではないくらい沢山のスラッシュコマンドがあります。ちょっと工夫すればオリジナルのスラッシュコマンドも作れるので楽しいですよ。 では、イチオシから紹介します1 リマインダー機能 たぶん、slackにリマインダー機能があることに気づいている人は少ないはず…

    Slackであまり知られていない便利機能一覧 - Qiita
  • RubyとAWSでつくるメディアストレージ基盤 - Qiita

    概要 基盤の果たす役割としては、「利用者が基盤に向けてファイルをアップロードし、なんらかの(変換を含む)処理を行って利用サービス側に通知する」というものになる。 そこで、想定する利用イメージを大まかにでも理解してもらうため、抽象的なイメージを図示する。 ファイルをアップロードしたいユーザーは、まず基盤の利用サービスに対してアップロード権限の発行を依頼する。 図では省略したものの、利用サービス側はその依頼を受けて、基盤に対してアップロードチケットの発行を依頼し、取得した情報をアップロードしたいユーザーに対して返す。 アップロードユーザーはそれを受けて、基盤に対してファイルのアップロードを行い、アップロード・バリデーション・変換が済んだものについては基盤が利用サービスに結果を通知するというのが大まかな流れとなる。 次に、基盤の持つ責務について簡単に解説したい。 基盤は、メディア

    RubyとAWSでつくるメディアストレージ基盤 - Qiita
  • JSのグラフライブラリを今選ぶならHighchartsで決まり(2020年版) - Qiita

    トレンド(世界):すべての国/過去12か月/基準としたキーワードを外さずに数値を取得 トレンド(日):日/過去12か月/基準としたキーワードを外さずに数値を取得 公式サイト:Interactive JavaScript charts for your webpage | Highcharts デモサイト:Demos / Stock Demos / Maps Demos / Gantt Demos GitHub:https://github.com/highcharts/highcharts npm:https://www.npmjs.com/package/highcharts CDN:https://code.highcharts.com/highcharts.js ライセンス:商用利用は有償、非営利向け無料ライセンスあり(詳細後述) 推薦しておきながら入門記事も少なくてとっつきにく

    JSのグラフライブラリを今選ぶならHighchartsで決まり(2020年版) - Qiita
  • Linuxディスク関連コマンドまとめ

    情報表示:lsblk, blkid パーティション作成:fdisk, cfdisk, gdisk, cgdisk, sgdisk, parted マウント:mount, umount ファイルシステム:mkfs, fsck ファイルシステム(ext2/3/4)用: resize2fs, dumpe2fs, tune2fs スワップ:mkswap, swapon, swapoff SMART情報表示:smartctl LVM:lvmdiskscan, pvdisplay, pvscan, lvdisplay, lvscan 不良セクタ対処:badblocks, ddrescue どのディレクトリが容量をっているか調べる:ncdu 太字のコマンドはutil-linuxに含まれており、整合性が取れていることが期待できる(と思う)。 ディスク、パーティションの情報を調べる fdisk -l でほ

    Linuxディスク関連コマンドまとめ
  • Wikipedia からスクレイピングして… とか言ってる人におすすめしたい,DBPedia からの情報抽出 - Qiita

    Wikipedia からスクレイピングして… とか言ってる人におすすめしたい,DBPedia からの情報抽出rdfスクレイピングWikipediaSPARQLdbpedia みなさん DBPedia をご存知でしょうか.DBPedia とは,Wikipedia から構造化データ (RDF) として情報を抽出するものです.DBPedia では Linked Data として情報が体系化されているので,Wikipedia 内の必要な情報を,非常に簡単に抽出することができます. 「◯◯ の情報を Wikipedia からスクレイピングして取ってきて…」みたいな話をよく耳にし,そんなのスクレイピングしなくても DBPedia 使えば一瞬なのに… と感じることが最近多々あるので,DBPedia の普及もかねて簡単にまとめてみることにしました.DBPedia なんて初めて聞いたという方は,ぜひチェック

    Wikipedia からスクレイピングして… とか言ってる人におすすめしたい,DBPedia からの情報抽出 - Qiita
  • Androidアプリの開発を爆速化させるInstant Runを今日から使おう - Qiita

    TL;DR Android Studio 2.0 Preview で登場した Instant Run はとにかくアプリ開発を 5 倍ぐらい高速化できるので可及的速やかに導入すべき (20秒でわかる動画 ) Instant Run とは Instant Run は、 Android アプリ開発中に動いているアプリを インストールし直すことなく 実行中に動的に修正することができる仕組みです。エミュレータだけでなく実機でも動きます。 Java だと Hot Code Replace とか、 Visual Studio だと Edit and Continue とか呼ばれるやつです。 今までモバイルアプリ開発で公式にこれができるプラットフォームはなかったと思うので結構革新的。 (非公式だと JRebel for Android とかありました) 2015/11/22 (現地時間) の Androi

    Androidアプリの開発を爆速化させるInstant Runを今日から使おう - Qiita
  • Electronでデスクトップウィジェットを作るまで - Qiita

    はじめに HTML/CSS/JSを使ってデスクトップアプリケーションが作成できるElectron。 記事ではデスクトップウィジェット作成するまでの流れを、簡単な時計アプリを題材として解説します。 ※ この時計アプリのソースコードとパッケージは、GitHubにて公開しています。 GitHub: SallyAcolyte/tutorial_clock 対象読者 - HTML/CSS/JSで簡単なアプリは作れるが、Electronは初心者な方 - Electronで透過ウィンドウ/フレームレスウィンドウを扱う際のポイントが知りたい方 - 自分好みなデザイン/機能を持つウィジェットを作成したい方 ※ Windows環境を前提としていますが、基的な流れは他環境でも同様です。 チュートリアル Electronの入手 Electronの体は、以下からダウンロードできます。 Releases · a

    Electronでデスクトップウィジェットを作るまで - Qiita
  • 初心者エンジニアにおすすめしたい「進捗どうなった?」と言われないための仕事の進め方 - Qiita

    はじめに 初心者エンジニアのあなたは、 **先輩エンジニアに「進捗どうなった?」や「なんでこの作業にこんな時間かかってるの?」**といったことを言われたことはありませんか? また、 作業見積もりやタスク分解をちゃんと行なわないで、いきなりコードを書き始めているということはありませんか? 勝手にコードを書き始めて、ほとんど手戻りになって1からコードを書き直しになるという経験もあるかと思います。 僕は徹底的に仕事のやり方を叩きこまれましたが、周りの話を聞いていると、こういったことができていない人もいるのかなと思い書こうと思った次第です。 またエンジニア向けには書いていますが、どんな仕事にも普遍的に使える考え方だと思っているので参考になれば幸いです。 アジェンダ 以下のとおりです。どこから読んでもらっても大丈夫ですが、上から読んでいったほうが流れが分かりやすいと思います。 ツールはGithub,

    初心者エンジニアにおすすめしたい「進捗どうなった?」と言われないための仕事の進め方 - Qiita
  • 【レコメンド】内容ベースと協調フィルタリングの長所と短所・実装方法まとめ - Qiita

    ※この表は神嶌 敏弘先生が人工知能学会誌に連載した解説記事『推薦システムのアルゴリズム』から転載したものです。 アルゴリズムの説明 ■ 協調フィルタリングとは アイテム利用者の行動履歴を元にレコメンドする方法です。Amazonの『この商品を買った人は、こんな商品も』機能が有名です。協調フィルタリングによるレコメンドはユーザの行動を元にレコメンドする方法です。 ■ 内容ベース(コンテンツベース)フィルタリングとは アイテムの特徴ベクトルで類似度ソートしてレコメンドする方法です。 グルメサイトでユーザが入力した『新宿・エスニック料理』というキーワードに関連付けられたお店が表示される場合が該当します。内容ベースによるレコメンドはアイテムの特徴を元にレコメンドする方法です。 特性の詳細について ■ 多様性 協調: o 内容ベース: x 内容ベースでは商品内容に記載されていない情報はレコメンドされま

    【レコメンド】内容ベースと協調フィルタリングの長所と短所・実装方法まとめ - Qiita
  • ElasticSearch, Redis, nginx, Djangoでエロサイトを作った時のTips[ElasticSearch 検索編その2 あいまい検索とkuromojiと正規表現] - Qiita

    ジャポルノレディーズであいまい検索が最も役だったのが名寄せでした。 ジャポルノレディーズでは基的に動画は全て他のエロサイトへのリンクで提供しているので明日花キララさんの動画を探す上で他のエロサイトから明日花キララさんの動画を探す作業が必須です。 しかし問題は ・エロサイト毎に明日花キララさんのアルファベット表記がバラバラ という事でした。 エロサイトAではasuka_kirara エロサイトBではasuka_kilala エロサイトCではashitaka_kirara ・ ・ ・ という感じ。うちではasuka_kiraraでデータを持っているので、当然asuka_kilalaと名前のついている動画もasuka_kiraraの動画としてデータを保存したい!という訳です。 そこであいまい検索が役立ちます。 まずは普通のmatchクエリでasuka_kilalaを検索します。 # codin

    ElasticSearch, Redis, nginx, Djangoでエロサイトを作った時のTips[ElasticSearch 検索編その2 あいまい検索とkuromojiと正規表現] - Qiita
  • まだAWSのみに頼って生きてるの?複数のクラウド利用で、大幅コストダウンした話 - Qiita

    by @mixiappwchr 一人でがっつりAWSでサービス開始しましたが、運用を始めると多くの問題が起きえます。 今回はコストに対する問題を,AWSだけでなく、他のクラウドを活用することで大きく削減できたという事例を共有したいと思います。 例えばNetflixNetflix、マルチクラウド対応の継続的デリバリを実現する「Spinnaker」をオープンソースで公開 といったオープンソースを公開していることを鑑みるに、すでにマルチクラウドでの運用は行われていることでしょうし、今後はこういった事例も多くなっていくことでしょう。 クラウドを複数使うにあたった経緯 前回 goからiOSまで一人でアプリ開発をしてたらいつの間にかマインクラフトエンジニアになった話 といった記事でリリースしたおしゃべりマルチというサービスですが、おかげさまでユーザー数も順調に増え、利用者に楽しく使っていただいてお

    まだAWSのみに頼って生きてるの?複数のクラウド利用で、大幅コストダウンした話 - Qiita
  • Pythonを書き始める前に見るべきTips - Qiita

    Pythonを使ってこの方さまざまな点につまずいたが、ここではそんなトラップを回避して快適なPython Lifeを送っていただくべく、書き始める前に知っておけばよかったというTipsをまとめておく。 Python2系と3系について Pythonには2系と3系があり、3系では後方互換性に影響のある変更が入れられている。つまり、Python3のコードはPython2では動かないことがある(逆もしかり)。 Python3ではPython2における様々な点が改善されており、今から使うなら最新版のPython3で行うのが基だ(下記でも、Python3で改善されるものは明記するようにした)。何より、Python2は2020年1月1日をもってサポートが終了した。よって今からPython2を使う理由はない。未だにPython2を使う者は、小学生にもディスられる。 しかし、世の中にはまだPython3に

    Pythonを書き始める前に見るべきTips - Qiita
  • 【統計学】尤度って何?をグラフィカルに説明してみる。 - Qiita

    統計学や機械学習をを勉強していると「尤度」という概念に出会います。まず読めないというコメントをいくつかいただきましたが、「尤度(ゆうど)」です。「尤もらしい(もっともらしい)」の「尤」ですね。犬 じゃありませんw 確率関数や確率密度関数を理解していれば数式的にはこの尤度を処理できると思うのですが、少し直感的な理解のためにグラフィカルに解説を試みたいと思います。 コードの全文はGithub( https://github.com/matsuken92/Qiita_Contents/blob/master/General/Likelihood.ipynb )にも置いてあります。 正規分布を例にとって 正規分布の確率密度関数は f(x)={1 \over \sqrt{2\pi\sigma^{2}}} \exp \left(-{1 \over 2}{(x-\mu)^2 \over \sigma^2

    【統計学】尤度って何?をグラフィカルに説明してみる。 - Qiita