MNMLはシンプルでミニマルな設計のCSSフレームワークです。SASS、レスポンシブWebデザイン対応で2kbほどの軽量なものとなっています。悪く言えば特徴が有りませんが、特徴は自分の手で付加していきたい、という方には重宝されるかも。この手のフレームワークは数え切れないほど出ていますが、個人的には結局シンプルなものが一番実用的で使いやすい印象です。とはいえシンプルなものも数多に有るのでお好みで。 MNML
アプリケーションエンジニアの人には「なんか重い」という状況に遭遇したらインフラの人にタスクを投げる、という人もいるかも知れません。けど、その重さのどこに原因があるのか。CPUか、ネットワークか、IOかくらいの診断はできた方がアプリ開発においても有益です。 「せっかくつくったシステムがなんか重い」 そんな時にアプリケーションエンジニアとしてできることを書きます。 本職のインフラの人にはぬるい内容だと思います。何を隠そう僕自身がアプリ寄りの人間なので、突っ込んだ話はできないのです。あしからずご了承ください。 なんかサーバが重いなー まずはロードアベレージを調べる サーバが重いと思ったら、まず真っ先にすべきことは対象ホストにSSH接続してロードアベレージを調べることでしょう。ロードアベレージとは 実行されずに待たされているプロセスの数 のことで、多すぎるとやばいと認識しておきましょう。ロードアベ
Spanish Newspaper Publishers' Association Now Asks Government To Help Stop Google News Closure | The Spain Report スペインでは、Webサイトが報道機関のWebサイトをわずかでも引用する場合、報道機関に対し対価を支払わなければならないという法律を、報道機関のロビー活動により成立した。それを受けて、Googleは、Google Newsはそれ自体が金を生み出してはいないので、スペイン版を廃止すると宣言した。 どうやら報道機関のロビー団体はスペイン政府にGoogle Newsを廃止しないように何か行動をせよと言っているらしい。不思議なことだ。 ちなみに、ドイツでも同等の法律ができている。そのときもGoogle Newsは廃止を宣言した。その結果、Webトラフィックが激減したため、報道
WebRTCは、音声映像メディアやデータをP2Pで通信する能力をブラウザに提供します。しかし、既存のインターネットの世界ではNATが広く用いられており、容易にP2Pを利用することはできません。この記事では、NATに対してどのような課題がWebRTCに存在し、どのようなアプローチで解決を試みているかについて解説します。 インターネットの世界におけるNATの存在 今日のインターネットにおいて、エンドユーザが用いるホストのほとんどは何らかのNATデバイスの配下に設置されています。これはWebに携わるエンジニアの間では広く知られている事実でしょう。全世界に広がった広大なインターネットの世界に対応するためにIPv6が新たなインターネットプロトコルとして発案されてかなりの時刻が経過しました。にもかかわらず、古いインターネットプロトコルであるIPv4が一般的に用いられており、しかもそのアドレスは既にとっ
連載目次 前回の「RubyのFile/IOクラスで入力と出力、ファイルの読み取りと書き込み、フィルター作成」では、データの入出力について解説しました。連載第11回に当たる今回は、スレッド、ファイバー、プロセスといったトピックについて解説します。 ThreadクラスやFiberクラスを使うことで、Rubyでも並列処理を記述することが可能です。また、前回紹介したIOクラスを使うことで、Rubyプログラムからプロセスを生成して入出力を行えます。 さまざまなプログラミング言語では並列処理のための仕組みが使えるようになっています。もちろんRubyも例外ではなく、ThreadクラスやFiberクラスを使って並列プログラムを書くことができます。 また、RubyからOS固有のコマンドを別のプロセスとして実行したり、自分自身をfork(フォーク)して別プロセスとしてRubyプログラムを実行したりすることがで
プログラミング初心者向けのTypeScript入門連載。第8回は配列の使い方について詳しく解説する。TypeScriptでプログラミングへの理解を一歩深めよう。 連載目次 前回は、TypeScriptの繰り返し処理のうちfor文とfor ... in文について説明した。今回は配列の使い方を取り扱う。特に、配列とfor文は相性がいいので、組み合わせて使うことが多い。 配列とは 同じような目的の変数を数多く使いたいときに、それらを全て個別の変数として宣言するのはとても面倒である。例えば、そういった変数を100個使いたいときに、100個の変数を宣言しないといけない……といった状況を想像すると絶望するしかないだろう。 そのような場合に、簡単に多数の変数を利用できるようにする仕組みが配列である。配列を宣言するには、全ての要素を代表するような変数名を一つ付けておけばよい。配列の個々の要素はインデックス
プログラマのためのユーザインタフェースデザイン 第 1 章 第 2 章 第 3 章 第 4 章 第 5 章 第 6 章 第 7 章 第 8 章 第 9 章 ストラテジーレターV 2002年6月12日 ミクロ経済学の補完財の原理について考えていて、私はオープンソースソフトウェアに関する興味深いあることに気がついた。それが何かというと、オープンソースソフトウェア開発に多額の資金を使っている企業の多くは、それが彼らにとって良いビジネス戦略だからそうしているのであって、突然資本主義を信じるのをやめて、「言論の自由と言うときの自由」に浮かれるようになったわけではないということだ。ストラテジーレターⅤ 5つの世界 2002年5月6日 5つの世界:すべてのソフトウェア開発が同じではない。 追記:インターナルシステム、コンサルウェア、パッケージソフトの間には大きなグレーゾーンがあり、この3つの世界はしばし
ドキュメントは最強のコミュニケーションツールである――Joelの機能仕様書入門:プロジェクト成功確率向上の近道とは?(1)(1/2 ページ) ITシステム開発の問題点の一つであるコミュニケーションの失敗。本連載では、これを防ぐ方法としてお勧めしたい3つのドキュメントを紹介していく。今回は「Joelの機能仕様書」のポイントを解説する。 連載目次 はじめに 本連載では、ITシステム開発がビジネスに貢献していくために必要な、最も基本的な条件である“システム開発の成功”につながるいくつかのポイントを紹介します。 筆者は、さまざまなコンピューターシステム開発に長年携わってきたソフトウェア技術者ですが、この連載では、あえて技術的ではない話題を中心に述べます。というのも、技術論だけではシステム開発が成功する条件としては不十分ですし、すでにたくさんの優れた技術論が各方面で展開されています。あらためてそこ
オウンドメディアの価値を向上するうえでは、「ユーザーにとって有益な情報や機能が提供されているか?」というユーザー視点が大切になります。受け取ってくれる人がいてこそ価値が生まれるのは、オウンドメディアにおいても同様です。つまり、ユーザーを中心としたUXを向上するアプローチが重要になります。そして前編で改めて整理したように、UXはとても幅広い概念であり、製品やサービスとユーザーの間に接点を生むチャネルやタッチポイントのすべてが関わります。オウンドメディアはその部分を構成するチャネルになります。 後編では上記を踏まえたうえで、オウンドメディアの価値を向上するUXのアプローチ例を紹介するために、Web技術を用いたオウンドメディアに対象をあえて絞ります。またその前提として、オウンドメディアやWeb戦略の視点と考え方を整理しながら、具体的な話をすすめていきます。 オウンドメディアを含む3つのメディアオ
Frontrend Advent Calendar 2014の15日目の記事です。 近年NYLONを始めとするファッション雑誌でit girlと呼ばれるキーワードを目にします。NYLON JAPANではit girlを募集していたりします。しかし実際のところ何をもってit girlと呼ぶのか定義は難しいです。ここではitをもう少し具体的にJavaScriptのデキる女 JavaScript Girlとして、it girlになるための第一歩紹介します。JavaScript Girlsは俗に、JS Girlsと呼ばれ、今ではLINE スタンプになるほどの人気です。it girl憧れる女子のためのJS Girl入門方法を紹介します。 必要なもの 必要なものはすくない。 Macintosh インターネット 本 Macintosh パソコンじゃないですMacです。Mac OS X以降、Unixのパワ
先を歩むエンジニアへのインタビューを通してエンジニアのキャリアについて考える本連載、今回は古くからPerlコミュニティで活躍し、最近ではWebテクノロジ情報発信のポッドキャスト「Rebuild」が話題の宮川達彦さんにお話を伺いました。宮川さんは、筆者のクックパッドの同僚でもあります。 [撮影:平野正樹] プログラミングに興味を持ったきっかけ ──最初にプログラミングやエンジニアリングに興味を持ったのはいつでしょうか? 宮川:父親がプログラマだったので、コンピュータは小さいころから家にあったんですけど、プログラミングはしておらず、純粋にPCユーザとしてゲームとかで遊んでいました。プログラミングのきっかけは、東京大学に通い始めて、趣味でホームページや掲示板を作っておもしろいと思ったことですね。そのあと3年次に、理学部情報科学科を選択し学びました。それと前後して、大学の友達から「オライリー・ジ
同品質のJPEG画像と比較するとファイルサイズを約半分以下に縮小できる新しい画像形式が「BPG」で、FFmpegやJavaScriptだけで動くLinux「JSLinux」などを開発したFabrice Bellard氏が開発した画像形式です。ただサイズが軽いというだけではなく、グレイスケール・YCbCr=4:2:0・4:2:2・4:4:4・RGB・YCgCo・CMYKなどの色空間をサポートし、アルファチャンネルや可逆圧縮にも対応しています。 BPG Image format http://bellard.org/bpg/ BPGが他の画像形式と比べてどれくらい優れているのかを比較できるのが以下のページ。2種類の画像形式で同程度のファイルサイズの画像を表示させており、「mozjpeg」とBPGとで同じ画像を比較すると、BPG画像の鮮明さが際立ちます。 BPG Image Comparison
IT インフラエンジニアに Web アプリエンジニア養成読本をオススメする 6 個ぐらいの理由 Dec 13, 2014 Web アプリエンジニア養成読本 Advent Calendar 2014 の 13 日目の記事です。 ここまで著者の方で連続しているので僕が普通の書評記事のようなものを書いていいのかな、と思わなくもないですが、 登録してしまったので書こうと思います (それに、本当にオススメなのです)。 あなただれ 書評を書く前に、僕の自己紹介をさせて頂きます。 著者の @koemu さんと同じ会社で働いていて、半分同じ部署です。 会社、MSP を専業としていて主にお客様のサーバ・インフラをお預かりしています。 僕とこえむさんは、そんな会社の中で主にプログラムを書いて自動化・解析・便利ツールの作成や、 重た目の検証作業などを行ったりして、他の同僚の皆さんの業務効率化や業務改善を目的とし
※2014-12-18 追記※ はてブとかtwitterがついててちょっとビックリしてます. そしてtwitterで貴重なご意見をいただきました. 1024以下でもう少し増やすとどうなるかなぁ。workerに偏りがあってエラー出てるのかも。例えば8*768とか。 / “nginx の worker_connections は worker 当たりの同時接続数だと思ってたけどど…” http://t.co/5aLNa0VeOy— MATSUMOTO, Ryosuke (@matsumotory) 2014, 12月 16 なるほどー. ということでworker_processes 8, worker_connections 768でざっくりですが早速試してみました. 結果,worker_connections are not enoughエラーは見られなくなったように思います. # というの
クックパッド 広告事業部の大野晋一です。責任範囲は広告事業の純広告およびネットワーク広告の商品開発担当で、事業部にはそれぞれの売上でコミットしています。 この記事では、動画変換の仕組みにおけるDockerの活用について紹介します。 クックパッドは8月8日、iOS/Androidのブラウザにおいて動画クリエイティブを掲出する広告商品を公開しました。広告商品としての詳細はプレスリリースやスライドを見ていただくのがわかりやすいのですが、本稿に関係する特徴としてスマートフォンのブラウザで自動的に再生が開始されるというものがあります。 スマートフォンのブラウザにおいては、現在のところ、動画を自動再生させることは出来ません。これはAppleやGoogleといったブラウザベンダが課している制約です。そこで、クックパッドでは、janiというライブラリを使い、特定の規則に基づいて作られた画像を、JavaSc
本記事は,Git Advent Calendar 2014の13日目に投稿させて頂いた記事です. モチベーション 自分を成長させながらいかに効率的に技術を伝承するかが自分の中で課題になっており模索中なこの頃.試しに,社内でGitを使ったことのないエンジニアに1週間(合計7時間)で開発に必要なGitの知識を講義したので,その時に使用した教材や効率的な学習方法を初心者向けに共有する. 背景 一昔前はイケてるエンジニアはGitを使ってプログラムを管理してるみたいな感じだったが,今となってはGitはエンジニアにとって必要不可欠なツールになった.Gitがあるからコードの2重管理はなくなり,Gitがあるから継続的インテグレーションや継続的デリバリーが活きる,Gitがあるから変更に対してコメントを残せる.Gitが無いと開発が成り立たなくなって来ているのだ.特に,Githubのヒット以降,その流れは加速し
この記事は Go Advent Calendar 2014、16日目の記事です。 はじめに Matz さんが streem という、ストリーム指向言語の開発を始めるらしいです。 まだ文法の設計段階ではあるけど、それなのにかなりの量の pull-req がバンバンと来てて凄いなーと思いつつも「この pull-req 量だと僕には出番無いなー」と思ったので、README.md に書かれているサンプルだけを頼りに streem を golang で実装してみました。 先日はネタで streem のマネをして yacc 定義部分だけ公開していましたが、本日ネタが無い中にTLがヒートアップして焦りに焦って勢いで実装してみました。いやはや異様な追い込みを感じます。。。 まずは streem を知る streem は README.md に書かれている通り並列実行を行いつつストリームを処理する言語です。
2014.12.16 こんにちわ。山王です。 最近話題になってるフロントエンドタスクランナーGulp.jsをインストールしたお話です。 以前Grunt.jsを使用した際はCompassのコンパイルが遅くて断念したんですが やはりナウでヤングでモダンなやり方でやりたいなぁと思いGulp.jsの噂を聞きつけインストールした次第です。 Gruntとの違い Gruntfile.jsに比べgulpfile.jsの方が書きやすい 実行速度が速い プラグインが少ない まだできて日が浅いので今後プラグインも増えてくるのではないでしょうか。 フロントエンドツールのトレンドの流れが早いので新しくもっといいツールが出る可能性もありますが。 目次 Node.jsインストール Gulp.jsインストール gulpfile.js作成 CompassでSASSのコンパイルをする CSSを圧縮する Javascriptを
はじめに これはG* Advent Calendarの12日目の記事です。今日はミューテーションテストについて書きます。明日はid:nobusue さんです。 概要 PITというツールの紹介です。「Javaプロダクトコードを機械的に変更してからテストを実行したときに、テストはそれを検知できるのか?」ということを調べてくれるツールで、SpockのテストやGradleからの実行に対応しています。 ミューテーションテスト ミューテーションテストとはざっくりと言えば「プロダクトコードを変更したなら、その振る舞いも変わるはず。テストはその変更された振る舞いを網羅できているかを調べる」というテストです。 対象規模が小さければ手動で毎回やってもいいわけですけど、ツール化されていると楽なことこの上ないです。ということで、今回はJavaプロダクトコードをミューテートするライブラリであるPITについて紹介しま
Swift で使えるオープンソースライブラリ 2014年は新言語 Swift が登場し、iOS アプリ開発者にとってはかなり印象深い年になったのではないでしょうか。Swift の登場以後、さまざまな取り組みが iOS アプリ開発者の中で行われ、その結果の1つとしてオープンソースライブラリもかなり増えました。 Swift で一から書かれたものもあれば、既存のものを Swift でも使えるようにアップデートしてくれているものもあります。ある意味、混沌としている現状では「じゃあいまから Swift で iOS アプリ開発するときに何を使えば良いの!?」といったことになりかねません。ということで、現在までに公開されている Swift で使えるオープンソースライブラリを目的別にまとめてみました。 Swift アドベントカレンダーのために書いた記事なので、タイトルには「Swift 時代の」としています
HeartRails Tech Blog ハートレイルズのエンジニア、デザイナーによるブログです。 ウェブサービス、スマホアプリ、IoT デバイスの開発に関連する技術的な情報を発信していきます。 この記事は、そろそろ一般向けにサービスリリースしてみようかなと考えているエンジニア向けに書きました。 説明に Rails を用いていますが、考え方自体は Web アプリ一般に応用可能です。 結論 「cache publicに設計しよう」 出来るだけ多くのページを cache public にしましょう。 砲撃の来るページは cache public に出来るはずです。 この説明だけで意味の分かった方には以下の記事は読む価値はありません。時間を有意義につかってください。ごきげんよう。 砲撃に耐えよう サービスリリースして、バグもなく順調に事が運び、運が良ければバズったり、どこぞの大手メディアに取り上
弊社で開発している情報共有サービス DocBase のオープンβバージョンを公開いたしました。 https://docbase.io 上記URLから登録していただければ、すぐ使い始めることができます。 DocBaseとは DocBaseは、一人の知識がチーム全員の知識となり、チームが力を最大限発揮できるようにするための情報共有サービスです。 エンジニアだけでなく、デザイナーやマネージャーなどチーム全員が自然と情報を共有し、チームが活性化することを目指しています。 5つの特徴 DocBaseには情報共有を活発にする5つの特徴があります。 すごく簡単にメモを投稿できる 小さなメモをチーム全員で育て、情報の価値を上げられる 複数のメモをまとめて情報を見やすく整理・保存できる 組織の枠を越えて情報を共有できる 強固な暗号化 なぜ開発したのか? チームにはたくさんの暗黙知があります。 もしその暗黙知
@JUNP_Nです。「OS X YosemiteにしたらMacが重い!」と感じている人が多いようです。僕もそのうちの1人なのですが、いくつか設定を変更したり、とっとしたメンテナンスをしたらだいぶ快適になりました。僕が行ったことは以下の6つ。 「Macが重い!Yosemiteにしたら重くなった!」とりあえずこの6つをやってみれば少し軽くなりますよ!OS X YosemiteにしてからMacが重くなったような気がします。普通に使っているだけなのになんでこんなに重いんだろうと困っている人は、以下の6つのことを試してみるといいかもしれません。 基本的なメンテナンスに加えて、システム環境設定から少し設定を変更するだけで動作が軽くなるのでお試しください。 1. 不要なファイルは削除!デスクトップも綺麗に!基本的なことですが、デスクトップには不要なファイルなどは置いておかないように。ゴミ箱の中身もちゃん
MacのセカンドディスプレイとしてiPadなどiOSデバイスを活用する新しいソリューションが登場しました。 「Duet Display」は、iOSデバイスをMacの外部ディスプレイとして使うことできます。 すでに同様のアプリはいくつも存在していますが、「Duet Display」はそれらにない利点があるようです。 「Duet Display」は元Appleのエンジニア、Rahul Dewan氏によって開発されました。 Duet Display Duet, Inc.仕事効率化¥1,840 有線接続でマルチディスプレイ 「Duet Display」は、MacとiOSデバイスをLightningケーブルで接続します。 つまり、ワイヤレスではなく有線接続です。 そのことで遅延がなく(ゼロ・ラグと表現されています)、Air Displayのようなワイヤレスで接続する場合よりもストレスが少ないようです
更新日: 2017年3月23日公開日: 2014年12月12日テキストエディタ選びに迷ったらコレ!SublimeTextがすごい プログラミング初心者にオススメ!OS別テキストエディタ10選でもご紹介していましたが、HTML&CSSは数あるプログラミング言語の中でも、テキストエディタがあればすぐに開発できるお手軽さが魅力ですよね?しかし、種類が色々ありすぎてどれを選んでいいかわからない!とお悩みではありませんか?もしテキストエディタ選びにお悩みなら、オススメなのがSublimeText。こちらのSublimeTextは「恋に落ちるエディタ」の異名を持つほど人気のあるテキストエディタなのです。そこで今回は、そんなSublimeTextの特徴や使い方をご紹介します! SublimeTextは何ができるの? ”恋に落ちるエディタ”の異名を持つSublimeTextは、初心者からコアユーザーまでた
こんにちは!ウェブ開発担当の木戸です。 「Fenrir Advent Calendar 2014」も、もう 15 日目となりました。 テーマは「2014 年にグッときたコレ!」です。私が今年グッときたものは、あの GitHub が作ったエディタ Atom です! Atom とは エンジニアにはおなじみの GitHub が開発、提供している無料のテキストエディタで、キャッチコピーは「21 世紀の Hackable エディタ」です。Mac 版が先行リリースし Windows 版も今年夏にアルファ版がリリースされました。 ベースはなんと Chromium と node.js でできており、HTML、css、javascript で動作しています。開発者ツールでコードも見られるので、HTML などの知識があれば簡単に Hack 可能で、まさに Hackable エディタですね! 特にウェブ系の開発
# -*- coding: utf-8 -*- # easy_install python_twitter import twitter import sys import codecs import dateutil.parser import datetime import time from peewee import * db = SqliteDatabase('twitter_stream.sqlite') class Twitte(Model): createAt = DateTimeField(index=True) idStr = CharField(index=True) contents = CharField() class Meta: database = db # easy_install の最新版でGetStreamFilterがなければ下記のコード追加 # h
「俺はチャンスをピンチに変える男だ…」「責任を取るためにお前ら部下がいるんだろう?」「なるへそ」が口癖で、在職時はその激しい言動で僕ら部下の心を熱くかき乱し、誰からも惜しまれずに2年前に自称寿退職された部長が人知れず亡くなっていた。 部長の死去に地球上で最も落胆しているのは僕だろう。なぜならクレーム処理に出向いた部長が「ミスの原因は…強いて言えば人間の業…ですかね…」「腹を切って話をしましょうや…」と言って新たなトラブルを起こすたびに僕が火消しを任されるなど、仕事の上で散々お世話をしたこともさることながら、結婚パーティーで締めのスピーチをしていただいたように公私共に大変に世話をしたからだ。 あのスピーチは今も語り草だ。「え〜最後になりましたが、長年連れ添った女房との協議離婚が先日成立したことを皆様にご報告させていただき新郎新婦へのお祝いの言葉にかえさせていただきます…」その後の僕ら夫婦の妊
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く