タグ

2014年8月17日のブックマーク (25件)

  • まずコードの可読性を最適化しよう | POSTD

    最近では 最適化 という言葉を使う場合、GPUメモリ消費やネットワークトラフィックの最適化、などと明示的に言わない限りは、 実行時間の最適化 という意味で使われるケースがほとんどです。 自分が何を最適化しようとしているかを知ろう 私がプログラムを始めた頃、プロセッサの処理能力は遅く、メモリサイズもとても限られていて、キロバイト単位で計算されていました。ですからメモリ容量をよく考え、メモリ消費を上手に最適化しなくてはなりませんでした。大学では最適化について2つの極論を教わりました。 メモリを犠牲にして実行スピードを最適化する。 または何度も計算を繰り返して、メモリ消費を最適化する。 最近では誰もメモリについては大して気にしていません(デモシーン製作者、組み込みシステムのエンジニア、一部の携帯電話ゲームのディベロッパなどは別です)。RAMだけでなく、ハードディスクの容量についても同様です。 W

    まずコードの可読性を最適化しよう | POSTD
  • CakePHP 2.x のカスタムエラーページ作成 « Hello My World

    Cakephp のカスタムエラーページを作成したいと思います。 手段が多すぎるためか悩んでしまった。公式ドキュメントが分かりづらいので、ググってしまうとハマる気がする。 また、このページにたどり着いた方が、さらに迷わないように現在のバージョンは明記しておきたいと思います。cakephp v2.2.5 です。 ちなみに、私が腑に落ちるやり方なので、あくまでご参考程度に考えて頂ければと思う。 大きく分けて3パターン在ると思います。コントローラ、メソッドがない場合、DBにコンテンツが見つからない場合、異常系です。 では、さっそくやってみます。 1.コントローラー、メソッドが無い。 Config/core.php に追加する必要も、新たなクラスも必要ありません。 app/View/Errors/error_400.ctp を弄ればいいだけです。 ただ、これだけだと、layout に app

  • CSS "position: sticky" - Introduction and Polyfills — SitePoint

    If you’ve read the article Obvious Design always wins by Annarita Tranfici, you might agree with her statement: People expect to see common patterns: find the main menu in the top of the page, a search box at the top-right corner, a footer at the bottom, and so on. I agree that people expect certain components of a website to be placed in a particular location and, in my opinion, this is even more

    CSS "position: sticky" - Introduction and Polyfills — SitePoint
    o_hiroyuki
    o_hiroyuki 2014/08/17
    postion:sticky
  • Grav - A Modern Flat-File CMS | Grav CMS

    You are cordially invited to join the Grav Community on our new Discord Chat Server

    Grav - A Modern Flat-File CMS | Grav CMS
  • GitHub - qvacua/vimr: VimR — Neovim GUI for macOS in Swift

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - qvacua/vimr: VimR — Neovim GUI for macOS in Swift
  • スタートアップの資金調達をまとめたインフォグラフィックが素晴らしいーどうやって投資家とパイを分けていくか。

    スタートアップの資金調達をまとめたインフォグラフィックが素晴らしいーどうやって投資家とパイを分けていくか。 資金調達が関係者にどういった影響を与えるのかを1枚にまとめたインフォフィックがFunders and Foundersに載っていて、とても分かりやすかったので日語バージョンを作ってみました。 資金調達に関する説明の方もとても分かりやすかったので、翻訳してみました。数字や前提はアメリカの話なので少し日と違う部分もあるかもしれませんが(あと、インフォグラフィックの方と数字も合ってませんが)、質的な部分を理解するには問題無いと思います。(内容については責任持てませんので自己責任かつ弁護士の方にちゃんとご相談して行われるようお願いします。) まず、何で資金調達について、あなたがやる必要がある事の1つとして話す必要があるのか、ということを理解してみましょう。資金調達は命題ではありません。

    スタートアップの資金調達をまとめたインフォグラフィックが素晴らしいーどうやって投資家とパイを分けていくか。
  • Linux で huge page を使っているプロセスを調べる方法 - ablog

    調べ方 /proc/[pid]/smaps で KernelPageSize がデフォルトの 4kB 以外のプロセスを探す。 調べ方の例 /proc/[pid]/smaps で KernelPageSize が 4 kB 以外のプロセスを探す。 [root@yazekats-linux ~]# perl -lane '/KernelPageSize/ and $F[1]!=4 and print qq/$ARGV\t$_/' /proc/*/smaps /proc/3834/smaps KernelPageSize: 2048 kB PID:3834 のプロセス名を調べる。 [root@yazekats-linux ~]# ps -fp 3834 UID PID PPID C STIME TTY TIME CMD root 3834 3832 0 13:44 pts/0 00:00:01

    Linux で huge page を使っているプロセスを調べる方法 - ablog
  • 毎朝、頭に浮かんだことを手書きする「モーニングページ」の絶大なる効果とは? | ライフハッカー・ジャパン

    生産性を向上させるものを探し回っているビジネスパーソンは、一般的に些細な違いだと思っていたことが、実は仕事における当に大事なものを生み出していることに気付きます。つまり、ほんの小さなコツや技術というものが、仕事をスピードアップさせるのです。しかし、仕事を終わらせるのを最も早くしたい場合は、最初はゆっくりと始めなければならないというのは、当なのでしょうか? 一見逆じゃないかと思うかもしれませんが、これはジュリア・キャメロンさんが著書『ずっとやりたかったことを、やりなさい。』(原題:The Artist's Way)の中で紹介している、「モーニングページ」という練習の元になっている考え方です。名前だけではどんな練習なのか分からないと思いますが、毎朝1日のはじめに、立ち止まって何か書くというものです。どれくらいの量を書くか聞いたら驚くかもしれません。キャメロンさんは、3ページ分手書きで書くの

    毎朝、頭に浮かんだことを手書きする「モーニングページ」の絶大なる効果とは? | ライフハッカー・ジャパン
  • BigQuery と Google の Big Data Stack 2.0 - naoyaのはてなダイアリー

    先日、有志で集まって「BigQuery Analytics」という書籍の読書会をやった。その名の通り Google BigQuery について書かれた洋書。 BigQuery を最近仕事で使い始めたのだが、BigQuery が開発された背景とかアーキテクチャーとかあまり調べもせずに使い始めたので今更ながらその辺のインプットを増やして以降と思った次第。 それで、読書会の第1回目は書籍の中でも Overview に相当するところを中心に読み合わせていった。それだけでもなかなかに面白かったので少しブログにでも書いてみようかなと思う。 BigQuery の話そのものも面白いが、個人的には Google のインフラが書籍『Google を支える技術』で解説されたものが "Big Data Stack 1.0" だとして、BigQuery は Big Data Stack 2.0 の上に構築されており

    BigQuery と Google の Big Data Stack 2.0 - naoyaのはてなダイアリー
    o_hiroyuki
    o_hiroyuki 2014/08/17
    big data
  • 車買取一括査定を依頼してこんな交渉には注意?

    少しでも高く車を売りたい。そして申込みをスムーズに行うためにも 車買取の一括査定サービスはとても便利です。 複数の業者へ一斉に中古車査定を依頼するのですが、交渉には少し注意が必要です。 一括査定からの申込みなので、業者も始めから競争相手がいることは知っています。 業者としては少しでも低い査定額で早く決めてしまいたいもの。 他の業者が来る前に、決断させるような交渉を進めます。 「今決めるなら、プラス10万円上げます」というような上乗せした査定額を 提示することもあります。思わず決めたくなりますが、冷静に考えてみると 最初からプラス10万円の提示ができたはずです。このやり方に誠意を感じますか? それでも決めてしまうか、他の業者を待つかはご自身次第になりますが、 このような交渉術はよくあることです。頭に入れておくと良いですね。 高額な査定額を探すためには、査定を依頼した車買取業者の金額がすべて

    車買取一括査定を依頼してこんな交渉には注意?
  • railsコマンドを追う - 旧gaaamiiのブログ

    Ruby on Railsというフレームワークを使うとrails new Hogeとかでアプリケーションのひな形ができちゃって、rails serverでサーバーが立ち上げられたりするわけですが、これは一体どうなってるんだというのを追っていけたらなと思います。誰にでもわかるように書きたいです。今回こそはくじけずに書ききりたい。 railsとbin/railsの違い railsはシステムにインストールされたrailsコマンドを呼ぶ(/Users/ユーザー名/.rbenv/shims/railsみたいな)。 bin/railsはそのプロジェクト下のbin/railsのコマンドを呼ぶ。 bin/rails Railsプロジェクトを作ると、binというディレクトリの中にrailsというファイルがある。これをエディタで開いてみる。 $ vim bin/rails 中身はこんな感じ。 #!/usr/b

    railsコマンドを追う - 旧gaaamiiのブログ
  • Google認証なリバースプロクシ&静的コンテンツ配信サーバー「gate」 - unknownplace.org

    Kibana や Grafana を使う時に、これらはjsのツールなので、 Erasticsearch や InfluxDB といったバックエンドサービスにjsからアクセスできるようにする必要がある。 そのためには、 普通にバックエンドサービスのportを開放 nginxとかでリバースプロクシ とかする必要があり、めんどくさい。 さらにセキュリティのことを考えると、2の方法のうえに、nginxでSSL+Basic認証なんかにする必要があってよりめんどくさい。 さらに、僕はBasic認証が嫌いだ。 昔は Firefox + 1Password で良い感じにBasic認証の入力が行えたが、いまはだめになってしまったし、 Basic認証だとアカウントの管理もめんどくさい。 なので、Google認証なhttpdでリバースプロクシもできる、gateというツールを作った。 https://github

  • 個人アプリの爆速開発を支えてくれたiOSの便利ライブラリを紹介する - Think Big Act Local

    先日 Go MemoというiOSアプリをリリースしました。 「あとで行く」ためのアプリ、Go Memoをリリースしました Go Memoは週末4日間くらいで作ってリリースしたアプリなのですが、こうしてスピードを出せたのは便利なライブラリのおかげです。 この記事ではGo Memoで使ったライブラリを紹介しようと思います。 便利なiOSライブラリ AFNetworking 言わずとしれた定番ライブラリ。作者の mattt さんも非常に有名です。サーバーとのHTTP通信はほとんどこれに頼っていて、NSURLSession とか自分で書いてないです。 Go Memoでは foursquare API をたたく所で利用しています。 NSDictionary *params = ...; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOp

    個人アプリの爆速開発を支えてくれたiOSの便利ライブラリを紹介する - Think Big Act Local
  • 「今このときからプログラミングを始めたい」と思った方へのgoogle apps scriptのススメその1 | Project name

    先日ドットインストールへ遊びにいってみた。を書いてみたら、なんとドットインストールさんのメルマガにご紹介して頂き、寝ている間に実質開設してから3日とは思えないアクセスがあった。 ありがたしありがたし。 このチャンスを逃すものかと(貧乏根性発揮して)初心者向けにおすすめのgoogle apps scriptの魅力と実際の作成過程を説明するブログを書いてみたい。 ちなみに私もようやく入門したといえる程度の初心者レベルですので、他により効率よい方法があるとは思います。 が、初心者が目にするリアルな工程や面白さをご紹介して、ぜひ4月の自分のような知識まっさらだけど興味があってどうしようと悩んでいる方のためになる記事にできればと思っております。 GASは文系必須スキル。 さて、まずはGASがオススメである理由をその便利さ・気軽さ・習得しやすさの3つの側面から説明してみる。 便利:下手なライフハック

  • 標準コマンドから乗り換えよう!より良いLinuxコマンドラインユーティリティー11選 | 俺的備忘録 〜なんかいろいろ〜

    Linuxの標準コマンドは強力なものではあるが、実際に人間が使う際にわかりやすいか、というと十分ではない。 そこで、今回はLinuxの標準コマンドから乗り換える事が可能なコマンドラインユーティリティーを調査、整理してまとめてみることにした。 1.df → dfc まずはこれ。以前にこちらでも記述している。 dfコマンドをより分かりやすくしたコマンドで、バーで利用率を認識することが出来る。 インストールは以下のコマンドで行える。 sudo apt-get install dfc (Debian or Ubuntu) 2.vmstat → dstat パフォーマンスのモニタリングでよく用いられるvmstatを、更に拡張したコマンドであるdstatにする。 dstatには、vmstatにはないネットワークに関するパフォーマンスが追加されており、見た目も見やすくなっている。 インストールは以下のコ

  • プログラミング・レスで5分でサックリWebスクレイピング「kimonolabs」 - プログラマでありたい

    Rubyによるクローラー開発技法」で付録か何かで書こうか悩んだ末に書かなかったのが、kimonolabsの話です。kimonolabsは、クローラー/スクレイピングをオンラインで実行できるWebサービス(SaaS)です。クローラーを書いておいて何ですが、9割の人は自分でクローラーを作らずに、この手のサービスを利用すれば事足りると思います。(書かなかった理由は、Ruby縛りサービスの継続性とスケジュールの問題です。主に最後) kimonolabsとは? kimonolabsは、先述のとおりWebスクレイピングをしてくれるSaaSです。会員登録してChromeの拡張をいれれば、すぐに使えるようになります。一般的に、Webスクレイピングする場合は、次のような手順が必要です。 対象ページのダウンロード ダウンロードしたページから、特定の箇所を抜き出す 抜き出したデータの保存 対象ページのダウン

    プログラミング・レスで5分でサックリWebスクレイピング「kimonolabs」 - プログラマでありたい
    o_hiroyuki
    o_hiroyuki 2014/08/17
    スクレイピング
  • フロント作業の効率化

    下記勉強会の発表資料です。 --------------------------------------------------------- JSLOVE 〜JavaScriptを愛する人の話を聞いてみよう〜 http://devlove.doorkeeper.jp/events/5811 ---------------------------------------------------------

    フロント作業の効率化
    o_hiroyuki
    o_hiroyuki 2014/08/17
    front end
  • 開発者(個人)のためのJenkins - Git Plugin編 - Qiita

    はじめに 「開発者(個人)のための」としているのは、別に自分でやっても良いんだけど Jenkins に任せられるなら任せたい、くらいのモチベーションを表現したつもりです。 環境 Ubuntu 14.04 LTS Jenkins 1.573 Bootstrap になって雰囲気が変わりましたね 初期設定 Jenkins 初期設定 Plugin のインストール Git Plugin 依存しているPluginも自動的にインストールされます。 Git Parameter Plugin は、ビルド時に Extended Choice Parameter plugin の Single Select ようなパラメータ形式で、リビジョンやタグを選択できるプラグインです。 Git 初期設定 Git Install Git がインストールされていないなら、apt や yum でインストールしておいて良いでしょ

    開発者(個人)のためのJenkins - Git Plugin編 - Qiita
  • switch文を使ってはいけない

    昔Qiitaで書いた内容なんですが、PHPswitch文は悪名高い「==」演算子で比較を行います。 <?php switch (true) { case 0: echo '数字の0'; break; case '0': echo '文字列の0'; break; case '0.0': echo '文字列の0.0'; break; case true: echo '真偽値のtrue'; break; } このコードは「文字列の0.0」を出力します。大変分かりにくいですね。 この点はif ... elseif ...を使えば解決するんですが、switchで書きたくなるようなコードをelseifにするとおそらく読みにくくなるでしょう。 ではどうするか。 正解はオブジェクトのポリモーフィズム(多態性)機能を使うことです。 といっても、多態性で調べて出てくる記事とか書籍に関しては抽象的な説明が多い

    switch文を使ってはいけない
  • シングルページアプリづくりのJavaScriptフレームワーク比較 - ワザノバ | wazanova

    http://blog.andyet.com/2014/08/13/opinionated-rundown-of-js-frameworks 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 開発言語やフレームワークの比較は、参考になるところはありつつも、その結果、不愉快な気分になる人がいるわけですが、それを懸念して、「(これを読んだ人は、他人の)意見を読んでいるだけだと思い返してほしい。貴方にどうすべきだと言ってるのではなく、自分にもしくはチームのために何がよいかは自分で判断すべきこと。」と前置きして、Henrik Joretegが、JavaScriptフレームワークについて私見をシェアしています。 反対意見も併記しようと思ったのですが、TwitterやHNでの反応がまだないようなので、注目すべきコメ

  • 今日から始めるNode.jsコードリーディング - libuv / V8 JavaScriptエンジン / Node.jsによるスクリプトの実行 | Tokyo Otaku Mode Blog

    ソフトウェアを正しく理解する唯一の方法はコードを読むことです。 ドキュメントを読めばそのソフトウェアが何を実装しているか分かりますが、どのように実装されているかまでは分かりません。 開発中に何らかのトラブルに悩まされたときや、効率的なコーディングをしたいと思ったとき、下位レイヤのソフトウェアを理解しておけば素早く対処できるシーンが多くあります。 ただ、コードを読むことは簡単なタスクではありません。 現代的なソフトウェアはそれなりの規模のコードを含んでいることがほとんどです。アーキテクチャ間の差異を吸収するためのコードなど、質的な機能を理解する上ではあまり重要ではないコードも含まれています。 何らかの問題が発生してからコードを読もうと思っても、準備なしでは関連する箇所を探すだけでかなりの労力が必要な作業となります。 従って、普段からコードを読んでおくことが重要です。 また、コードを読むにあ

    今日から始めるNode.jsコードリーディング - libuv / V8 JavaScriptエンジン / Node.jsによるスクリプトの実行 | Tokyo Otaku Mode Blog
  • 新しいNTPクライアント&サーバ、chrony - Qiita

    はじめに CentOS 7で"最小限のインストール"以外を選んだ場合にインストールされるchronyはntpdに代わり標準となったNTPクライアント兼サーバである。 とはいえ、CentOS 7でも相変わらずntpdは使用できるし、ntpdateの代わりではないのでntpdateコマンドを打ちたければntpdateを使用する。 以下、初期稿ではchronyの、ntpdとの違いを中心に記述する。注目点があればそれも書くが、まともに追っていくと深いので、後で気になる点が増えたら追記する形を取る。 あと、この記事でネタにするのはchronyであってcronieではないので悪しからず。 chronyのインストールと起動 CentOS 7ではOSインストール時にインストールされていなければyum install chronyでインストールすることができる(CentOS 6でも6.8からOS標準のリポジ

    新しいNTPクライアント&サーバ、chrony - Qiita
  • Amazon EC2(Linux)のネットワーク設定でハマったときに見るメモ | DevelopersIO

    ども、大瀧です。 LinuxのEC2インスタンスでちょっと変わったネットワーク設定をしようとすると、思う通りに動かなかったり設定が見えなかったりと、オンプレミスとは雰囲気の異なる振る舞いをすることがあります(質的にはオンプレミスとなんら変わらないのですが)。自身で経験したケースをメモ書きとして残しておきます。 想定するLinux OS : Amazon Linux, CentOS 6.x, RHEL 6.xなどRed Hat系ディストリビューション /etc/resolv.confを変更したのになぜか元に戻ってしまう DHCPクライアントによるものです。DHCPクライアントは定期的にIPアドレス更新の問い合わせをDHCPサーバーに行いますが、そのときに付随するDNSの情報を元にデフォルトで/etc/resolv.confファイルを上書きします。これを無効にするためにNICの設定ファイル/

    Amazon EC2(Linux)のネットワーク設定でハマったときに見るメモ | DevelopersIO
  • Docker管理を容易に、オープンソースの管理ツール「Panamax」が登場 | OSDN Magazine

    データセンター事業を行っている米Centurylinkは8月12日、Docker環境の管理ツール「Panamax」をオープンソースソフトウェアとして公開した。複雑なコンテナのデプロイをテンプレートを利用して容易に行えるという。 Panamaxはコンテナを使ってクラウドインフラストラクチャを構築するツール。Dockerを利用しているという同社の開発チームが、9か月の開発作業を経て公開した。Dockerを使って複数のコンテナやサーバーを組み合わせた環境を構築する場合、開発者はさまざまな新しい技術を学んで選択したうえ、さらにDocker専用の知識やベストプラクティスを習得する必要があった。PanamaxはDockerコンテナの構築や設定とベストプラクティスを組み合わせることで、このプロセスを不要とするという。なお開発チームによると、PanamaxはあくまでDocker管理ツールであってPaaS環

    Docker管理を容易に、オープンソースの管理ツール「Panamax」が登場 | OSDN Magazine
  • Creating color palettes with adjustment layers

    I’ve had some success using Photoshop’s adjustment layers to create large color palettes from a few base colors, so I thought I’d share the technique. Recently, it came in handy for iStat Menus 5, where we have 14 base colors with 4 variations on each. The 56 resulting colors form iStat Menus’ colors and themes. Base colors # To get started, choose some base colors and draw large blocks as shape l

    Creating color palettes with adjustment layers