QiitaとKobitoで画像アップロードができるようになりました。 その後ろ側をちょっぴり公開します。 件名からも分かるように、背後ではAWSのS3を画像ストレージに採用しています。 画像アップロード機能をリリースしました - The Official Qiita Blog Kobito v1.6.1リリース: ドラッグ&ドロップやスクリーンショット撮影で簡単に画像を添付できるようになりました! - The Official Qiita Blog 用語統一 サーバ はQiitaのサーバのことを指すことにします。(つまり、S3ではない、ということ) また クライアント は各ユーザのブラウザのことを指します。 要件 画像アップロード機能を実装するにあたっていくつかの要求がありました。 成りすましを防げる アップロードされたファイルを管理できる 自分達のサーバに負荷をかけたくない 変な画像のア
HW障害か何かでノードがぶっ壊れて、置き換え用の新しいノードを故障したノードと同じIP/同じname(vm.argsの-name)で構築するようなケース。 新しいノードにRiakインストール 新しいノードに、バックアップからデータ、リング、コンフィグ(/var/lib/riak/bitcask(lebeldb), /etc/riak/*, /var/lib/riak/ring)を戻す。 新しいノードのRiak起動。 で、おk。 2.2 別のノードにデータを移す場合 別に用意したサーバにデータを移したいケース。もしくはぶっこわれたノードを置き換えるときに、事情があって同じIPにすることができないようなケース(DHCPでIP振ってるときとか)。 新しいノードにRiakインストール 新しいノードに、バックアップからデータ、リング、コンフィグ(/var/lib/riak/bitcask(lebel
YAPC::Asia 2013 スピーカー応募登録&個人スポンサー募集開始! | YAPC::Asia 2013 Call For Papers (English follows Japanese) -- 櫛井です。暑くなってきましたね。 今日は2つお知らせです。 スピーカー応募登録を開始しました 本日よりYAPC::Asia Tokyo 2013のスピーカー募集を開始しました。 ▼新しいトークを登録する - YAPC::Asia Tokyo 2013 上記のフォームより必要情報を入力の上ご応募ください。 今年は、Facebook,Twitter,Githubのいずれかでログインを していただいての応募となります。 20分/40分のプレゼンテーション登録の締め切りは、2013/07/12を 予定しておりますが、早めの応募をおすすめいたします。 ライトニングトークは20/40分トークが一通り
菊地成孔氏のサイトを見ていたら、「ゼロ円ファン」という概念を提唱していて面白かったのでメモ。 当欄最終回/ビュロー菊地チャンネルのご案内 - naruyoshi kikuchi INTERNET TROISIEME (4) ゼロ円ファン層の発生 (?〜現在) ちゅう、非常に面白い事が起こり始めまして(笑)、「ゼロ円ファン」というのは、言うまでもなくワタシの造語で、アーティストのブログと動画サイトのみで、熱烈なファン活動を続けられる人々の事です。 こっれがねえ、この新しい現象が、本当の事言うと、一番面白く、そして一番難しくて、厄介なんですね。 音楽界も些か広うござんす。ですから、各セクション、様々な方法でこの現象にアゲインストしていると思うんですよ。極端な話、動画サイトに対して、徹底的に制限かけてしまえば、少なくとも音楽ソフトのゼロ円化はブロック出来そうじゃ無いですか? でもね、ワタシの予想
Popular Tech StacksThe open source tools and SaaS behind popular tech companies A tech stack is defined as the set of technologies an organization uses to build a web or mobile application. It is a combination of programming languages, frameworks, libraries, patterns, servers, UI/UX solutions, software, and tools used by its developers.
部屋のゴミを自動で吸い込んでキレイにしてくれるお掃除ロボット「Roomba(ルンバ)」。その新モデルが発売されたので、実機を借りて実際に使用して使い勝手をいろいろと調べてみることにしました。 ルンバ600シリーズ | iRobot ロボット掃除機ルンバ 公式サイト http://www.irobot-jp.com/storeproduct/600series ▼フォトレビュー パッケージはこんな感じ。今回使用したのは「Roomba 630(税込4万5800円)」です。 内容物は本体の他にルンバの進入を防ぐ仮想の壁をつくる「バーチャルウォール」×2に充電用のドック、電池、リモコン、掃除用のクシ、交換用フィルター、取り扱い説明書など。 本体サイズは直径約34cm。バッテリー込みの重量は約3.7kgで片手でも負担無く持ち運ぶことが可能。 ハンドル付きなので、サッと移動させたい時に便利。 本体にあ
<?php $db = pg_connect('dbname=test'); $sql = " CREATE TABLE artist ( artist_id serial primary key, name text not null ) "; pg_query($sql); $sql = " CREATE TABLE music ( music_id serial primary key, artist_id integer not null, title text not null ) "; pg_query($sql); for ($i = 0; $i < 10000; $i++) { $a_name = serialize(time() + $i); $sql = "INSERT INTO artist(name) VALUES('{$a_name}')"; $res = pg_
Sec ScanのないSQLをどうやって高速化するのか 本当に難しいのはここから。 例えば、Explain Analyzeの結果が下記のようなものだったら、どうしますか? どこにボトルネックがあるか、わかりますか? QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Sort (cost=1568.27..1568.51 rows=96 width=260) (actual time=822.175..822.259 rows=
Explain Explainはプランナによって決定された「最良の」実行計画を表示する。 クエリを実行するための個々のステップを表示する。 DMLコマンドに対してのみ使用できる。 レコードセットのカラム数、行数およびコストを表示する。 数値は推測されたものであり、実際のコストをみるにはEXPLAIN ANARYZEを使う必要がある。 Explain Planの実行例 =# EXPLAIN ANALYZE SELECT oid FROM pg_proc; QUERY PLAN ------------------------------------------ Seq Scan on pg_proc (cost=0.00..87.47 rows=1747 width=4) (actual time=0.077..17.082 rows=1747 loops=1) Total runtime:
研究でSQLiteを使ってる。ファイル1つでポータブル、受け渡しも楽だしバージョン管理もできるし割りと気に入ってる。 日付のデータを大量に扱うのが遅くて困ったので速くする方法を調べた。ちゃんとインデックスが効くようにしたい。 SQLite3 には、SQL99 の DATE や DATETIME に対応する日時を表す型は存在しません。SQLite3 で日時を扱う場合、Date And Time Functions で説明されている日付処理関数を使用し、TEXT 型や NUMERIC 型の列に日付データを作成します。 http://www.tamandua-webtools.net/sqlite3-date.html TEXTを使う場合では、YYYY-MM-DD HH:MM:SSみたいな書式の文字列を日付とみなす。 NUMERIC(INTEGER or REAL)はよくあるUnixエポックから
Fixing the postgresql initdb fatal shared memory error on Leopard When doing the post-install setup of postgresql default database using initdb, you may hit this error: FATAL: could not create shared memory segment: Cannot allocate memory DETAIL: Failed system call was shmget(key=1, size=1646592, 03600).You can either change the postgresql configuration to use less shared memory, or increase the s
DOM 処理や Ajax など、JavaScript が外の世界とやり取りする部分というのは、一般的に待ち時間を多く必要とします。 パフォーマンスを改善しようと思った時に、ロジック部分でコツコツと節約するより、まずコストが高い処理を行わないようにするということで、驚くほどの効果を経験をされたことはありませんか? 今までパフォーマンス測定をされた方であればピンとくる部分があることと思います。 そんな時に役に立つのが、今回ご紹介する backburner.js です。 ebryn/backburner.js - GitHub backburner.js って? backburner.js とは Ember.js の run loop モジュールから切りだされたとても小さなライブラリで、短時間に集中的に発生するメソッド呼び出しの回数を制限したい場合などに利用することができます。 backburn
2012年11月5日から12月26日までフジテレビで不定期に放送されていた薄気味悪い番組『EVEの全て』。 例えば1~3話は以下の様なスケジュール。 2012年11月5日 月曜日 深夜1時10分から5分。 2012年11月13日 火曜日 深夜3時45分から7分。 2012年11月16日 金曜日 深夜2時5分から9分。 まるで時間はバラバラ。それでいて新聞のテレビ欄にすら掲載されていないため、全てを見るのはまさに不可能とまで呼ばれた番組がある。既に半年も前の事ですが、この番組、非常に現在のインターネットによる恐怖をきっちり表現していて面白かったのでご紹介したい。 番組は全16話だが、時間は全部で75分。お時間のあるときにでもどうぞ。 それはもっとも身近な恐怖 まず、最初に流れた放送がこれだ。完全な盗撮動画。 これだけ唐突に流れれば、誰もがこれは一体何なのか? 番組欄にものってないけど、大丈夫
Sass で関数を書く方法は 2 つあります。ひとつは Sass の @function ディレクティブ を使って Sass ファイル内に定義する方法。 $grid-width: 40px; $gutter-width: 10px; @function grid-width ($n) { @return $n * $grid-width + ($n - 1) * $gutter-width; } 簡単かつカジュアルに書ける反面、当然ながら Sass のネイティブ関数やディレクティブの制限を受けるので、できないことも多いです。とくに Sass は文字列系の関数があまり用意されておらず、不満を感じることも少なくありません。 もうひとつの方法は、Ruby でカスタム関数を書いて Sass を拡張する という方法です。Ruby の知識が必要で、かつ Sass ファイルに直接定義するのとは違って別フ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く