タグ

ブックマーク / blog.livedoor.jp/sasata299 (16)

  • 今さらだけどMySQLのパーティショニング機能を試してみた - (゚∀゚)o彡 sasata299's blog

    2013年03月21日18:11 MySQL 今さらだけどMySQLのパーティショニング機能を試してみた 最近は花粉が飛んでて辛い季節ですがみなさまいかがお過ごしでしょうか。でももうちょっと我慢すればサクラの季節ですよ〜。花見良いですよね、飲みたいだけですが。 ・・さて、今回はちょっと必要になったので、MySQLのパーティショニング機能なるものを試してみました。存在は知ってたけど、実際に試してみたことは無かった…。 パーティショニングとは? これはどういうものかと言うと、MySQL5.1から使えるようになった機能で、ひとつのテーブルのデータを条件によって複数の領域(パーティション)に振り分けて管理することができる、というものです。例えば日別にデータを別々のパーティションに振り分けたり。 パーティショニングするとデータの削除が高速だったり(通常は削除ってものすっごい遅いけど、特定のパーティシ

  • MySQLでDateTime型のカラムをDate型で検索するときに気をつけること - (゚∀゚)o彡 sasata299's blog

    2012年12月03日16:20 MySQL MySQLでDateTime型のカラムをDate型で検索するときに気をつけること 例えばこんなテーブルがあったとして、 DESC products; +---------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | MUL | NULL | | | created_at

  • MySQLで "SQL_AUTO_IS_NULL = 0" じゃないと、IS NULLで検索されたときにエライ目に遭うという話 - (゚∀゚)o彡 sasata299's blog

    2009年06月09日23:48 MySQL Perl MySQLで "SQL_AUTO_IS_NULL = 0" じゃないと、IS NULLで検索されたときにエライ目に遭うという話 先日、Catalystアプリを作っていたとき、データの新規作成と編集を同じメソッドで処理していて、このようなコードを書きました。 my $rs = $c->model('DBIC::Hoge'); $rs->update_or_create( { id => $id, # primary key name => $name, }, {}, ); hogeテーブルはこんな感じ。 +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----

    peketamin
    peketamin 2015/03/25
  • Ansibleを使って誰でも簡単安全にサーバ構築できる仕組みを作る - (゚∀゚)o彡 sasata299's blog

    2014年08月04日11:11 インフラ Ansibleを使って誰でも簡単安全にサーバ構築できる仕組みを作る Ansible って何なの? サーバに対してミドルウェアのインストールや設定等の環境構築を行うことをプロビジョニングと言いますが、その作業を自動化させるためのツールです。プロビジョニングを手動で行うと、手間も掛かるし、どうしてもミスが起こりえます。 その点、Ansible のようなツールを使えば、コマンド一発でプロビジョニングが走り、さらに冪等性(何度実行しても同じ結果になる)も確保されるため、誰でも簡単安全にサーバ構築が出来るのです。 同様のことを行うツールとして、Chef や Puppet がありますが、Ansible はそれらの中でもシンプルなことが特徴です。Chef は以前使ってみようと思い触ってみたのですが、覚えることが多かったりして挫折してしまった。。Ansible

    Ansibleを使って誰でも簡単安全にサーバ構築できる仕組みを作る - (゚∀゚)o彡 sasata299's blog
    peketamin
    peketamin 2014/08/04
  • 株式会社Lang-8を退職しました - (゚∀゚)o彡 sasata299's blog

    2014年06月14日11:05 その他 株式会社Lang-8を退職しました 報告が遅くなってしまいましたが、5月末でLang-8を退職しました。細かい話は省略しますが、気になる方は飲みの席ででも聞いてください :) ドベンチャーな環境もそうだし、添削率を改善することが出来たり、iOSアプリを開発することが出来たりといろいろな経験ができたのでほんとに良かったです!! iOSアプリに関してはいろいろとハマったこととか書きたいけどいつになることやら。。 次はまだ未定ですが、今後ともどうぞよろしくお願いします! ツイート 「その他」カテゴリの最新記事

    株式会社Lang-8を退職しました - (゚∀゚)o彡 sasata299's blog
    peketamin
    peketamin 2014/06/14
  • gitの歴史上からpasswordを完全に削除したい - (゚∀゚)o彡 sasata299's blog

    2014年05月19日10:17 Git git歴史上からpasswordを完全に削除したい git で管理しているプロジェクトで「あっ、しまったパスワードが紛れ込んでしまった…!」みたいなことがあって「どうしたらいいんやー><」と思っていたんですが、git filter-branch という最強のコマンドを使えばなんとかなるんですね。 今回は PASSWORD という文字列を含む行を git歴史上から完全に削除するというのをやってみました。sed -e '/xxx/d' が xxx という文字列を含む行を削除 (delete) するコマンドです。 git filter-branch --tree-filter "find . -type f -exec sed -i '' -e '/PASSWORD/d' {} \;" そうすると PASSWORD という文字列を含む行の痕跡が奇麗

    gitの歴史上からpasswordを完全に削除したい - (゚∀゚)o彡 sasata299's blog
    peketamin
    peketamin 2014/05/19
  • MySQLでカラムやインデックスの追加、削除をするときのロックの話など - (゚∀゚)o彡 sasata299's blog

    2013年12月12日14:03 MySQL MySQLでカラムやインデックスの追加、削除をするときのロックの話など すっかり2013年も終わりに近づいてきましたね。さて、今回はMySQLでカラムやインデックスの追加、削除をするときに知っておいた方がいいかなーと思った注意点の話です。 カラムやインデックスの追加、削除を行う際にはテーブルが共有ロックされる まず、カラムやインデックスの追加、削除といったいわゆる ALTER TABLE に相当する処理を行うとテーブルが共有ロック(読み込みのみ受け付け、更新処理は受け付けないというロック)されるという話です。 この辺の話は @nippondanji さんが詳しく書かれています。 漢(オトコ)のコンピュータ道: ALTER TABLEを上手に使いこなそう。 1. テーブルをTL_WRITE_ALLOW_READロックする。このロックは特殊なロック

    peketamin
    peketamin 2013/12/12
  • 今、AngularJSというフレームワークがヤバい - (゚∀゚)o彡 sasata299's blog

    2013年11月05日10:36 JavaScript 勉強会 今、AngularJSというフレームワークがヤバい 先週の土曜日、ランサーズさんで行われた 第3弾 週末ランサーズ に参加して個人的に今アツい AngularJS について話してきました。 AngularJS は ng-repeat が便利だったり、コードの見通しが良くなるなどいろいろなメリットがあると思うのでうまく使えば大変メリットがあると思います。特に、データの状態(要素の追加・削除や、状態のon/off など)を制御すればそれに合わせて view の表示はすべて AngularJS がやってくれるというのは素晴らしいですね。 ちなみに、以下の資料の中で ng-app とか ng-repeat とか出てきますが(これは directive と呼ばれます)、この ng というのは AngularJS の2文字目と3文字目を表

    peketamin
    peketamin 2013/11/06
  • turbolinksを使うときに気をつけるべきたった一つのこと - (゚∀゚)o彡 sasata299's blog

    2013年10月10日14:48 JavaScript Ruby turbolinksを使うときに気をつけるべきたった一つのこと さて、今更ですが、turbolinks とは pjax(Ajaxで要素を動的に変えつつ、pushStateでURLも変更しちゃう)をRailsで簡単に利用出来るようにしたものです。 pjaxを使えば、Ajaxと違ってURLもちゃんと変わるし、ブラウザの戻るだって普通に使えるからとても便利です。毎回ページ全部を評価してまるっと書き換えるんじゃなくて、必要と部分だけを入れ替えるので、レスポンスだって高速になります。 このturbolinksに関してはいろんな人が記事を書いてくれているので詳細はそちらを見ていただくとして、 Rails 4のturbolinksについて最低でも知っておきたい事 | KRAY Inc Rails4でturbolinksを謳歌するためのまと

    peketamin
    peketamin 2013/10/11
  • 迷ったら難しい方を選ぶということ - (゚∀゚)o彡 sasata299's blog

    2013年10月02日11:39 意識高い 迷ったら難しい方を選ぶということ 最近考えていることなのですがちょっと書いてみます。意識高い系です。 例えば、「どう使うんだろ??」とユーザが迷うようなページがあったときにどう解決するか。説明を追加したり、チュートリアルを入れたりといった方法もあれば、UIUXといった見せ方を工夫することで解決するような方法もあると思います。 こういうときに最近考えているのが、複数の方法があって迷う場合、まず難しい方法にチャレンジする ということ。もちろん面倒なので楽な方がいいんですが、より難しい方法で問題が解決できると余計な情報を追加する必要も無いし、サイト全体が驚くほどすっきりして「どうして今までこうじゃなかったんだ」と腹落ちすることが多いです。また、難しい方法は質的な解決策であることも多いように感じます。実装などの困難さを考えずにどちらがユーザにとって良

    peketamin
    peketamin 2013/10/02
  • Railsならbetter_errorsを入れるとデバッグがはかどるなぁ - (゚∀゚)o彡 sasata299's blog

    2013年09月02日18:22 Ruby Railsならbetter_errorsを入れるとデバッグがはかどるなぁ 今までなんで入れてなかったんだろ、、って思いました。 better_errors はRailsのエラー画面を素敵にしてくれるgemです。これだけでRailsのエラー画面がすごく便利になるんです。こんな感じ。 注目すべきは右上のエリア!なんとその場でデバッグすることが可能です…!有難いっ! ででーん(クリックして拡大できます)。 インストールも簡単でGemfileに追加してbundle installするだけっ!!と簡単ですが セキュリティ のところは一度ちゃんと読んでくださいね。 group :development do gem 'better_errors' gem 'binding_of_caller' # その場でデバッグするには必要 end ツイート 「Ruby

    peketamin
    peketamin 2013/09/02
  • 実際のサイト上で動作するチュートリアルが簡単に作れるIntro.jsが便利すぎる件 - (゚∀゚)o彡 sasata299's blog

    2013年05月08日18:21 JavaScript 実際のサイト上で動作するチュートリアルが簡単に作れるIntro.jsが便利すぎる件 さて、先日簡単なチュートリアル作ろうと思ったんですが、どうやるのが良いのかなーと思って悩んでました。キャプチャ取ってそこに説明文を書いて…ってしてもいいんですけど、キャプチャだと一部分なのでサイト上のどの辺なのかわかりにくかったり、サイト側は変更したのにキャプチャが古いままとかになったりしちゃいますよね>< とか思って探してみたらこちらの Intro.js が便利だったので紹介してみます。 さて、この Intro.js を使うとですね、サイト上で動作するチュートリアルを簡単に作れるんですよ。使い方も簡単で、動作させたい要素に対して data-intro (表示する説明文) と data-step (チュートリアルの何番目に表示するか) を指定します。チ

    peketamin
    peketamin 2013/05/09
  • Redisでランキング機能を実装してみる - (゚∀゚)o彡 sasata299's blog

    2013年04月24日13:26 NoSQL Ruby Redisでランキング機能を実装してみる Redis を触ってると楽しくてニヤニヤしてしまう今日この頃です、こんにちは。 読み書きのパフォーマンス的には memcached とよく似てる感じかなーと思いますが、データが消えない(永続化)、さまざまなデータ型を持っていて用途によって使い分けられる、データ操作がアトミック、など、Redis には魅力的な特徴があります。 今回は Redis を使ってちょっとしたランキング機能を実装してみる話でも書いてみます。 Redisの環境準備 まずは Redis をインストールします。Mac だったら homebrew を使うと良いでしょう。 $ brew update $ brew install redis Redis の起動自体は非常に簡単で、このコマンドを実行するだけです。 redis-serv

    peketamin
    peketamin 2013/04/24
  • Railsで大量のデータをまとめて更新するならfind_each使うよね - (゚∀゚)o彡 sasata299's blog

    2013年03月22日16:17 Ruby Railsで大量のデータをまとめて更新するならfind_each使うよね ということでメモ程度ですが書いときます。 Railsには find_each というメソッドが用意されています。通常の each メソッドを使用すると、全データをまとめてメモリに展開してから処理を開始します。そのため、十分にメモリに載るデータ量であれば何も問題ないですが、数百万、数千万というデータ量になってくるとメモリに載りきらずに溢れてしまって大変なことになります。 find: 全データをメモリに展開してから処理 find_each: 少しずつデータをメモリに展開しつつ処理 そういうときには find_each メソッドを使いましょう。これは少しずつデータをメモリに展開して処理を行います(デフォルトでは1,000件ずつ)。全部まとめてではなくちょっとずつメモリに展開してく

    peketamin
    peketamin 2013/03/22
  • クックパッド株式会社を卒業します - (゚∀゚)o彡 sasata299's blog

    2013年01月31日18:37 その他 クックパッド株式会社を卒業します 私事ですが、このたびクックパッド株式会社を退職することになりました。 有給消化の関係でまだしばらく所属はしていますが、日1/31が最終出社日です。2009年の8月に入社したので、約3年半お世話になったことになります。ついこの間JOINした気がするのに早いものですね。 短い間でしたが、クックパッドの素晴らしい環境と素晴らしい仲間に恵まれて当に幸運でした。美味しいご飯もべられるし。僕の人生の中で、クックパッドJOINすることに決めたのはかなり上位にい込む素晴らしい決断だったと思います! やってきたこと せっかくなので振り返ってみます。クックパッドでは以下のようなことをやってきました。 ・HadoopやEMRを利用した大規模データ分析クックパッドという巨大なサイトへの機能追加、改善 ・新規事業へのチャレンジ

  • グラフ描くならMorris.jsがお手軽で良いかも - (゚∀゚)o彡 sasata299's blog

    2012年11月16日13:55 JavaScript Ruby グラフ描くならMorris.jsがお手軽で良いかも こんにちわ。寒くなってきましたがみなさまお元気ですか? さて、先日ちょっとしたグラフを描画したかったんですよ。それでなにか使いやすいライブラリ無いかなーと思っていたら railscast (revisedなので有料です) で Morris.js ってjQueryプラグインが紹介されてて良さげだったので使ってみました。google analytics みたいなツールチップも出してくれます。 使い方はとっても簡単です。 まず、jQuery (>=1.7) と Raphael (>=2.0) が必要です。あとは Morris.js があれば動作します。 これらを app/assets/javascripts/application.js に設定してください。この記事執筆時点での

    peketamin
    peketamin 2012/11/17
  • 1