unassert - Encourage Design by Contract (DbC) by writing assertions in production code, and compiling them away from release. Takuto Wada 2015/11/07 @nodefest Tokkyo 2015Read less
リサイズとか減色とかも自動でやりたい人向け このご時世のフロントエンドエンジニアという肩書きを持ってる方々におかれましては、画像の減色とか最適化はタスクのうちの1つだと思いますが、 それって自身の管理下にある静的な画像リソースに限られてしまいますよね(背景画像とか、CSSスプライト用の画像とか)。 例えばユーザーの投稿した画像は管理外になってしまうし(VCS管理下に置かれない)、リサイズするスクリプト書いたりするのも面倒でした。 (そもそもユーザ画像を減色するのはどうなのってこともありますが、必要なケースもままあるかと) ということで、AWS Lambdaを使って、S3に上がった画像を自動的にリサイズ、最適化して戻してくれるスクリプト書きました。 ysugimoto/aws-lambda-image 動作としては、 S3に上げる →Lambdaでイベント検知、処理実行 →S3に戻す という
というわけで、10倍の差がでた。 当然、配列の長さやソートする長さ、また実装の方法によって性能差は変わってくるが 今回の方法は有効であるということは確認できた。 既存の記事(2015/11/09 20:22 追記) コメント欄でUnordered partial sorting にそれらしきことが書いてあると教えていただいた。 そちらでは、「上位k個を取り出す(ソートは不要)」という問題を考えている。 同様に分割統治法を用いてソートしていきながら、上位k個以内の小区間になったらその区間はソートせずに全て選択して良いとしている。 早い話が、QuickSelectによりk+1番目の要素を探してそれより上位の要素をごそっと抜き出している。 分割統治法で大雑把にソートしていきながら、不要なソートを行わないようにする という同様のアプローチである。 C++のSTLの場合(2015/11/09 22:
私が好むと好まざるとに関わらず、誰もが私のWebアプリをiOS9の搭載されたiPhone 6SやNexus 6Pで、超高速Wifiに接続して使っているわけではありません。 現実は甘くありません。3Gでの接続や、古いハードウェアも珍しくありません。Googleのレポートによれば、 Androidのアクティブユーザは14億人 だそうです。彼らの多くは間違いなく、最先端ではないハードウェアを使っていることでしょう。 Androidのパフォーマンスについての Jeff Atwood氏の最近の記事 などを読んだことがあるなら、モバイルWebには希望がないように感じるかもしれませんね。 その記事からいくつか注目すべき文を引用します。 端的に言えば、今日最も高速なAndroidデバイスとして知られているものでも、新しいiPhone 6Sよりも5倍遅く、2012年代のiPhone 5上のEmberに比べて
TOP > Tool > アプリアイコンを手軽かつハイクオリティに仕上げることができるジェネレーター「App Icon Generator」 スマートフォンアプリなどのアイコンは、UIの中で目に留まる・またデザイン的に魅力的で分かりやすくすることがとても重要。いつもデザインに苦戦されているというデザイナーの方は少なくないのではないでしょうか?そんな中今回紹介するのは、アプリアイコンを手軽かつハイクオリティに仕上げることができるジェネレーター「App Icon Generator」です。 用意されたベースを組み合わせていくことで、簡単にデザイン性のあるアプリアイコンを作り上げることができます。 詳しくは以下 ベースとなるフレームワークは、立体タイプとフラットタイプが用意されており、さらにデザインの背景テクスチャ16種ラインナップ。組み合わせの仕方によっていろいろなイメージを作り上げる
【開催概要】 日時: 11月20日 (金) 18:30~ 受付開始 場所: DeNA セミナールーム (東京都渋谷区渋谷2-21-1 渋谷ヒカリエ) 参加費: 無料 (当日はLTのタイミングからお飲み物と軽食のご用意がございます。愛のある一口1,000円のカンパをお待ちしております!) 【スケジュール】 18:30 受付開始 19:00-19:05 挨拶 19:05-19:20「ECSアップデート情報 (仮)」 AWSJ 岩永亮介さん (@riywo) 19:20-20:00「Next FRESH! Applications with Amazon ECS (仮)」 株式会社サイバーエージェント @stormcat24 さん 20:00-20:10 休憩 20:10- スーパーLTタイム (お一人5分程度でお願いします!) ・「毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕
会員事業部の三木(@giginet)です。 この記事では、業務改善のために開発者向けのツールをSwiftで開発してみたため、その知見についてお伝えしたいと思います。 なお、この記事はXcode7.1上でSwift2.1を使った開発を前提としています。 作ったもの クックパッドiOSアプリでは開発の際に、新しい機能を実装したり、インターフェイスを改善したあとにiOSシミュレーターの動画を撮影しPull Requestに貼り付けています。 動画を撮影する際には、汎用的にスクリーンキャストを撮影する社内ツールを使っていたのですが、使いづらい面も多かったため、 簡単にiOSシミュレーターの操作をアニメーションgifとして記録したいという需要がありました。 そのため、空き時間を使って、簡単なユーティリティを実装しました。 なぜSwiftで作るのか 今回は、OS Xの開発用SDKであるCocoaを使い
この記事は Let’s talk about logging の翻訳です。 Nate Finch による Go Forum への投稿で始まったスレッド を見てこの記事を書くことにしました。 この記事は Go を対象にしていますが、あなたのいままでのやり方を振り返ってみたら、同じ考え方がより広く適用できると思います。 なんでこんなに足りないの? 訳注: "Why no Love?" を、「(愛されてないから)機能が足りない」というニュアンスで解釈しましたが、自信が無いです。 Go の log パッケージ はレベル付きのロギングを提供していません。なので手動で debug, info, warn, error のようなプレフィックスを書く必要があります。 また、 Go はパッケージごとにログの出力レベルを制御する方法も提供していません。 比較対象としてサードパーティーのロギングライブラリを見て
Norikra でクエリした結果を Mackerel に投げたい場合、これまでは fluent-plugin-norikra で取得して fluent-plugin-mackerel で送信する、という作りにしていたと思います。 Norikra 1.2以降では Listener plugin が使えるようになったので、クエリ結果を直接 Norikra 上で扱うことが可能になりました。 ということで、norikra-listener-mackerel (rubygems) を書きました。Norikra 単体で、クエリ結果を Mackerel のサービスメトリクスとして送信できます。 使い方 $ gem install norikra-listener-mackerel norikra が動作する ruby でインストールすれば、norikra start 時に自動的に読み込まれます。 クエリ
前々から書こうと思ってて, すっかり忘れてたので, 書きます! Mackerelの監視 Mackerelでは, ホストの状態(CPU, メモリ, ファイルシステムの利用率とか, Mackerelと繋がっているかとか...)やURLの死活などを監視することが出来るのですが, 8月末に監視設定APIがリリースされ, これらのパラメータをAPI経由で実施出来るようになりました. というわけでReactioの開発チームでも, 早速このAPIを利用して, 以下のような仕組みを作ることで, Mackerelの監視パラメータを"コード"で管理するようにしました. 仕組み Reactioには, 開発者支援ツールが詰め込まれた「Reactio-HQ」というリポジトリがあるのですが, そこにMackerelの監視設定ファイルを用意しました. ちなみにReactioの開発者支援ツールは, Reactioそのもの
ついカッとなって書いた。 タイトルにもある通り、ngx_bumpylifeはnginxでApache HTTP ServerのMaxRequestsPerChildに相当する挙動を実現するための拡張モジュールです。 さらに言うとap-mod_bumpy_lifeがやってるようなMaxRequestsPerChildの値を一定範囲内でランダムにする機能も合わせて提供します。bumpylifeという名前はこちらのモジュールから来ています。 使い方と動作解説 こんな感じで設定します。 ngx_bumpylifeは以下の3つのディレクティブを提供します。 bumpylife -> ngx_bumpylifeを有効/無効にする bumpylife_min -> nginxの各ワーカプロセスが終了するまでに処理するリクエスト数の下限値 bumpylife_max -> nginxの各ワーカプロセスが終
ランニングをはじめたいと思っている人、はじめたけど続かない人のために、ランニングを続けるためのポイントをまとめる。 1. ハードルを低く設定する いきなり「毎日走る」とか高い目標を設定すると挫折するのでやめておこう。 最初は「週に1回、1回あたり15分走る」など、達成しやすい頻度、時間、距離を決めて続けることを最優先にしよう。 「×曜日に走る」というのもできれば決めておいたほうがいい。 走るタイミングについては、食後だと1時間は空けたほうがいい。 食前だと「痩せやすい」という効果があるようだが、エネルギーが足りずバテやすいので個人的には初心者向けではないと思う。自分の体質に合ったタイミングを見つけるといい。 気分が乗らない日が絶対にあると思うが、「走れなかったら歩いてもいい」「調子が悪かったらすぐに帰ってくればいい」とハードルを下げて、とにかく着替えて外に出ることを大事にするといい。 走る
はじめに deselectRowAtIndexPath(indexPath: NSIndexPath, animated: Bool) UITableView上にあるセルの選択状態を解除するときに使うメソッドですが、 呼び場所を替えるだけでUXを大幅に改善することが出来ます。 経緯 アプリによってはセル押下後に画面遷移するにもかかわらず、 押下直後にdeselectRowAtIndexPathを呼ぶような挙動になっていたりします。 これは悪いことではないですが、画面遷移から戻ってきた時に セルの選択状態を解除してあげたほうがどのセルを押したのか ユーザーに視覚的に伝えることが出来るのでUX的に良いと思ったからです。 例 セル押下直後に解除 この方法だとどのセルを押したのかをユーザーは思い出さなければいけません。 遷移から戻ってきた時に解除 こちらはどのセルを押したのか視覚からはっきりと分か
Rubyにおける定数は意図せず書き換えられることがある 以下のような場合、警告すら出ずに定数が書き換えられてしまう。 PERMIT_ID = ['0001', '0002', '1234'] PERMIT_ID.reject! { |id| id == '1234' } p PERMIT_ID # => ["0001", "0002"] Rubyにおける定数は不変の値というより、グローバル変数に近い。 また、Rubyでは先頭が大文字になっている識別子のことを定数としていることから、クラス名であるStringやArrayなども定数として扱っている。 そう考えると、クラスはメソッドを追加したり等いつでも書き換えられるミュータブルなオブジェクトなので、定数が参照するオブジェクトもミュータブルにする必要がある。 よって上記のコードはRuby的に正しい挙動なので警告は出されない。 とはいえ、定数を定
こんばんは、最近次男が反抗的でイヤイヤ期っぽい感じで、気に入らないこと言われると、叩きに来ます。kjunichiです。 午後から参加 nodefest会場にもうちの息子たちより一回り上くらいのお子さんを連れて参加されている方もいた。youthをパスしやすくするには、子連れでの参加もありか?とも思えった。のちのスポンサートークでKAIZEN PLATFORMのCTOの方で父親業も兼ねてのお子様連れでの参加と知ったが。 Mac率高いなぁ、自分はWindows 10の2 wayタブレットをキーボードつきで持参。MacBook AirよりProの方が圧倒的に多い印象。 英語がんばろうと思いきや、同時通訳がついてくださり理解しやすかった。感謝。 いつもはEnglishのドキュメントは読んではいるものの、聞く機会は皆無なので、良い機会だった。英語の発表者の方にも、片言でも何か会話を交わす事が次回の目標
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く