タグ

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

  • 本物の golang を... 本物の Gopher を、お見せしますよ。 - Qiita

    事の始まり それはD言語くんへの嫉妬から始まった。 D言語くんの繁殖についての仮説 lsを間違えてdlと入力してしまったときに、D言語くんが通り過ぎるコマンド くっ悔しい... そしてショボいAAで2番煎じ。 lsを間違えてgolと入力してしまったときに、Gopherが通り過ぎるコマンド書いた。 こんなはずじゃない! 僕らの Gopher 君はこんなチープじゃない! 明日来てください。物の Gopher をお見せしますよ。 — mattn (@mattn_jp) December 15, 2015 (当はもうちょっと前から作ってましたが) 物のGopher君とは そして今回、これを公開するに至った。 まずはこれをご覧頂きたい。 !!!!!!!!!!!!1 こいつ・・・ 動くぞ・・・ golang で書いたデスクトップマスコットです。起動すると画面のタスクバーの上をウロウロします。たま

    本物の golang を... 本物の Gopher を、お見せしますよ。 - Qiita
  • BigQueryで150万円溶かした人の顔 - Qiita

    ※ かなり前の記事ですが、未だに引用されるので一応追記しておきます。タイトルと画像がキャッチーなのはちょっと反省していますが、これを見てBigQuery使うのを躊躇している人は多分あまり内容を読んでいないので気にする必要はないです。自分は当時の会社でも今の会社でも個人でも普通にBigQuery使っていて解析用データなどはBigQueryに入れる設計をよくしています。また、アドベントカレンダーだったのでネタっぽく書きましたが事前に想定できる金額です。 ※ 代役:プロ生ちゃん(暮井 慧) 巷のBigQueryの噂と言えば「とにかく安い」「数億行フルスキャンしても早い」などなど。とりわけ料金に関しては保存しておくだけであれば無視できるほど安く、SQLに不慣れなプロデューサーがクエリを実行しても月数ドルで済むなど、賞賛すべき事例は枚挙に暇がありません。 しかし、使い方によってはかなり大きな金額を使

    BigQueryで150万円溶かした人の顔 - Qiita
  • Swiftで重い処理の処理時間を測定する - Qiita

    概要 Swiftでも、rubyのBenchmarkのように簡単に処理時間を計算するメソッドを書いた。 このメソッドを使うと、アプリの速度改善に役立つ。 Benchmarkクラス import Foundation class Benchmark { // 開始時刻を保存する変数 var startTime: NSDate var key: String // 処理開始 init(key: String) { self.startTime = NSDate() self.key = key } // 処理終了 func finish() { let elapsed = NSDate().timeIntervalSinceDate(self.startTime) as Double let formatedElapsed = String(format: "%.3f", elapsed) pr

    Swiftで重い処理の処理時間を測定する - Qiita
  • dylib がいなくなった、tbd ってなんだ? - Qiita

    tbd ? 昔のプロジェクトを iOS 9 SDK でビルドをしようとしたら libz.dylib が見つからないと怒られてしまいました。調べてみると、どうも dylib は基的に直接参照することはなくなり、その代わりとして libz.tbd なるファイルを参照するようになったようです。 これを開いてみると単なるテキストファイルだということがわかりました。tbd = Text Based Dynamic Library といったところでしょうか。 install-name: /usr/lib/libz.1.dylib という記述があるので、どうやら実体として dylib が SDK の外側に別にあり、tbd はそれらをロードするための設定を記述したテキストファイルのようです。SDK の容量を減らす目的で Mac 側のライブラリを参照する仕組みにしたということでしょうか?(詳しい資料が見つ

    dylib がいなくなった、tbd ってなんだ? - Qiita
  • Norikra等JavaアプリケーションのGCをチューニングしたい - Qiita

    Javaアプリケーションを運用していると必ず突き当たるのがGCの問題である。JVMの上で生きている限りこの問題を避けて通ることはできない(し、この問題に手をつけたら終わりだとも聞いたことがある)。NorikraはJRubyで記述されているJavaアプリケーションであり、用途からして大量のオブジェクトを作って破棄していることが容易に想像できるので、GCのチューニングは重要であることが考えられる。 GCのログをとりたい チューニングしたいのであれば、まずはともあれロギングである。ログなくしてチューニングすることなどできない。ということでまずはGCのログをとる。 $ norikra start -Xmx4g -Xms4g -Xloggc:/var/log/norikra/gc.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails

    Norikra等JavaアプリケーションのGCをチューニングしたい - Qiita
  • ぜんぶTIME_WAITのせいだ! - Qiita

    課題 突然キャンペーンとかの高トラフィックが来る!とか言われると色々困ることはあるものの、今のご時世クラウドだからスペック上げときゃなんとかなるでしょ。ってとりあえずCPUとかメモリあげて見たものの、キャンペーンが始まったら意外と早くブラウザからつながらない!!とか言われたりする。 CPUもメモリもそんなに負荷は特に高くもない。調べてみたらTIME_WAITが大量にあった。 とりあえず何とかしたい TIME_WAIT数をコマンドで確認 $ netstat -anp|grep TIME_WAIT __(snip)__ tcp 0 0 192.168.1.1:80 192.97.67.192:56305 TIME_WAIT - tcp 0 0 192.168.1.1:80 192.63.64.145:65274 TIME_WAIT - tcp 0 0 192.168.1.1:80 192.39

    ぜんぶTIME_WAITのせいだ! - Qiita
  • AWS インスタンス別ネットワーク帯域・InstanceStore IOPS測定 - Qiita

    #!/bin/sh INSTANCE_TYPE=$(curl -s http://169.254.169.254/2014-11-05/meta-data/instance-type) yum install fio -y umount /media/ephemeral0 time dd if=/dev/zero of=/dev/xvdb bs=1M sudo mkfs.ext4 /dev/xvdb mount /media/ephemeral0 for i in `seq 0 3`;do time fio -name=random-write \ --output=/home/ec2-user/${INSTANCE_TYPE}-${i}.txt \ -ioengine=libaio \ -rw=randrw \ -rwmixread=0 \ -bs=16k \ -numjobs=16 \

    AWS インスタンス別ネットワーク帯域・InstanceStore IOPS測定 - Qiita
  • 本当は怖いMemcached - Qiita

    はじめに データアクセスの高速化、セッションの保持などに非常に重要なポジションを占めているMemcached 特徴をあげると、速い安い美味いで、AWS上のサービス化などされており、非常に扱いやすいプロダクトなのですが、Memcachedそのものが単一障害点とならないように冗長化を測った時に深刻な問題が発生する可能性があることをご存知でしょうか。 システムに心あたりがある方は今すぐ代替手段を検討しなければなりません。 どうしてもMemcachedを使いたいという方はこちらへ それでもMemcachedを使いたいあなたへ 前提条件 そもそも冗長化をしなければ問題ないという運用はその時点で怖いのでNG cache機構という性質上、データが飛ぶのは問題ない(”正”となるデータを他から読み出すだけ)が、誤ったデータが読み出されるのをNGとする Memcachedを利用した時に利用ノードを決定するのは

    本当は怖いMemcached - Qiita
  • AWS Elastic Beanstalkで環境構築自動化 - Qiita

    Elastic Beanstalkでサービスのサーバ環境を自動でセットアップ、指定条件でオートスケーリングを設定します。 まだ情報が少ない印象がある中、実運用で使用するために設定しているのでたぶん他のどの日語記事より細かい、はず。 というか凄い手探り感があった。 Can & Can't 読み進めて絶望しないように先に書いておく。 Yes we can!! サーバの応答が遅くなったり、CPU負荷が上がったりした時に自動でEC2インスタンスをロードバランサ下に紐づけて登録済みファイルを配置してくれる 自動でデプロイされたサーバには指定したユーザを作成して、RSAログインできるようにして、yumで指定したサービスをインストールして、各種設定ファイルも独自のものに置き換えて再起動させちゃう アップデート時にはダウンタイムが発生しないようAct-Sby構成を自動で作って切り替え No we can

    AWS Elastic Beanstalkで環境構築自動化 - Qiita
  • CakePHP3(Phinx)のMigration記述例 - Qiita

    CakePHP3はDBスキーマの更新管理にPhinxを採用していますが、ドキュメントが少ない…。 ということで、Migrationファイルの例を書こうと思います。 一応参考: Cookbook 3.x - Migrations Phinx - Writing Migrations テーブルの追加 change()に書ける $table = $this->table('table_name'); $table->addColumn('name', 'string') ->addColumn('description', 'text') ->addColumn('created', 'datetime') ->addColumn('modified', 'datetime') ->create();

    CakePHP3(Phinx)のMigration記述例 - Qiita
  • sidekiqの使い方 - Qiita

    sidekiqはresqueやdelayed_jobのような非同期実行を実現するgemです。 使い方はgithubのwikiかRAILSCASTSあたりを見れば分かりますが、Railsで使う場合について簡単に要約してみます。 準備 バックエンドにredisが必要です。 とりあえず試すのであれば、Macならbrew install redisでインストールされます。 番ではwebサーバと別にredisサーバを用意するべきでしょう。 インストール 通常通りGemfileに書いてbundle installするだけです。

    sidekiqの使い方 - Qiita
  • AmazonLinuxのcloud-initについての調査メモ - Qiita

    EC2の起動処理で色々やりたいのでUserDataにシェルスクリプトかcloud-configを書いてやってみようと思ったのですが、そもそもどうやって動いているのか起動タイミングや初回起動のみ実行されるのかなど分からなかったので調べてみたり、動作確認してみたメモ 参考 Linux インスタンスでの起動時のコマンドの実行 Amazon Linuxのcloud-initの動きについて調べてみた Amazon Linuxのcloud-initの実行順番を確認する cloud-init を None データソースで動作確認する cloud-initでスクリプトが実行されるタイミングを調べてみた AWS EC2インスタンス起動時 cloud-initによりホスト名をNameタグ_インスタンスID_IPアドレスに設定する cloud-initのper-xxxまとめ 結論 色々確認しましたが、結論として

    AmazonLinuxのcloud-initについての調査メモ - Qiita
  • シェルスクリプトを書く時に気をつけている事など - Qiita

    あくまでも個人的な意見であって、自分がシェルスクリプトを書く時に気をつけている事を備忘録的に列挙しているだけです。 「こうするべきだ」と押しつけている訳ではありません。 勿論「私はこうしている」とか「こうすると良いよ」という意見や議論は大歓迎です。 export (1) しないシェル変数は全て小文字で書く。 PATH や HOME などは環境変数なので大文字で。 スクリプト内で使っているのは単なるシェル変数なので小文字で。 使い方をちゃんと区別する事は重要だと思う。 シェルの変数展開を活用しよう

    シェルスクリプトを書く時に気をつけている事など - Qiita
  • シェルスクリプトのコーディングルール2014 - Qiita

    以前、シェルスクリプトを書くときに気をつける9箇条という記事を公開しましたが、あれから整理され洗練されてきたのでまとめてみました。今回は「気をつける」というよりも書くときに守っている/意識していることです。 1. 成功した時には何も返さない 簡単なコマンド mkdir を例に説明します。 ディレクトリをつくるときにこのコマンドを使用しますが、タイトル通り、正常にディレクトリの作成が行われれば、ターミナル画面上には何も表示されません。

    シェルスクリプトのコーディングルール2014 - Qiita
  • RHL7/CentOS7の時代なのでcoreutils 8.22まで追いかけてみた - Qiita

    はじめに <余談> 2017年末現在、Amazon Linux 2 LTS Candidate AMI 2017.12.0、並びに Amazon Linux AMI 2017.09.1 は coreutils 8.22です。まだまだいける。</余談> 2014年はついにRHLやCentOSが7系に移りました。古い環境が CentOS 6.x だったもので、いろいろ変わっていて戸惑うところです。ホットなのは systemd とか mariaDB とか OpenLMI とか net-tools 周りでしょうか。 ここではあまり注目されていない気がする、 coreutils のリリースノートを読んだメモを公開します。翻訳ではありません。メモです。 なお、私はSELinuxやSMACK周りは改めて勉強中の身なので、そこら辺の改善点については特に触れません。dd とかファイルシステムとの連携周りも改

    RHL7/CentOS7の時代なのでcoreutils 8.22まで追いかけてみた - Qiita
    karahiyo
    karahiyo 2015/10/28
    すばらしいまとめありがたや🙏🙏🙏
  • 複雑な条件分岐にサヨウナラ。PHPのルールエンジンRulerを使って複雑な条件をシンプルにしてみた - Qiita

    普通にifを使って書いてみる 単純化してますが、Kekkonクラスに、男性のステータスとかを持ったMenくらすのインスタンスを渡して、 canMarrige で結婚可能かどうかを返すと考えてください。 (ここのロジックはもう少し単純化出来ますが、条件を増やして複雑さを表現するのは大変だったので、あえて複雑なままにしてます) class Kekkon { private $men = null; public function __construct(Men $men) { $this->men = $men; } public function canMarriage() { // 年収が高ければ、身長か学歴のどちらかが高ければ結婚可能 if ($this->men->isHighIncome()) { if ($this->men->isHighHiehgt()) { return tr

    複雑な条件分岐にサヨウナラ。PHPのルールエンジンRulerを使って複雑な条件をシンプルにしてみた - Qiita
  • [blackbird-rds] Monitoring AWS RDS - Qiita

    blackbird RDS plugin ソースコードはこちら このプラグインはCloudWatchからRDSのMetricをいい感じに取得します。正直MySQL プラグインとかぶってる感は否めないんですが、それをSummaryしたような内容が取得できます。 You Can Get Following Metrics では早速このプラグインで取得できるものから。 CloudWatch Metric Statistics Detail

    [blackbird-rds] Monitoring AWS RDS - Qiita
  • よく使うmysqldumpのオプションと使用例 - Qiita

    mysqldumpのオプションはすぐ忘れてしまうので、よく使うものをここに書いておきます。 大抵の場合ここに書いたものだけで十分事足りると思います。 よく使うmysqldumpコマンドの例 細かい解説は後回しにして、まずは使用例をどうぞ。 InnoDBテーブルしかないDBを1つダンプする場合 mysqldump --quote-names --skip-lock-tables --single-transaction --flush-logs --master-data=2 <database> > dump.sql

    よく使うmysqldumpのオプションと使用例 - Qiita
  • Karabiner の private.xml 設定方法 - Qiita

    Realforce 86U を mac に接続して使う際、キーマップを Karabiner で自分好みに変更したので、そのときの手順をまとめました。 1. デフォルトのキーマッピングを調べる Realforce 86U はこんな感じのキーボード。 Realforce 86Uの画像 US配列で、かつ Windows 用キーボードなので、まず mac に接続した時に、デフォルトでどのキーがどういう挙動をするのかを調べる必要があります。 Karabiner デバッグモードを起動する $ sudo sysctl -w karabiner.debug=1 $ sudo tail -f /var/log/system.log # OS X 10.8+ Dec 29 15:18:38 hodaka kernel[0]: org.pqrs.Karabiner --Debug-- KeyboardEvent

    Karabiner の private.xml 設定方法 - Qiita
  • Using MySQL/InnoDB/行レベルロック: デッドロックを回避するために、実用上最低限必須の知識 - Qiita

    デフォルトの isolation level (トランザクション分離レベル) はREAD COMMITTEDに変更するべき 内部が不透明な既存アプリケーションを変更する場合等、クリティカルな場合を除いて、InnoDBを利用する場合はデフォルトのisolation levelをREAD COMMITTEDに変更するべきである。 根拠は MySQL (InnoDB) でデッドロック検知される条件について - QA@IT ここに解説がある。 Railsでは、 以下のページに書いてあるようなモンキーパッチでデフォルト設定の変更が可能である。 Rails 4では、トランザクションにオプションを渡すことでも変更が可能である。或いは、my.cnfで設定することも可能である。しかし、これはDBレベルの話ではなくアプリケーションレイヤーの話なので、アプリケーション側で修正するのが望ましいと僕は思う。 参照:

    Using MySQL/InnoDB/行レベルロック: デッドロックを回避するために、実用上最低限必須の知識 - Qiita