サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
labs.s-cubism.com
html5boilerplate(日本語サイト)は、HTML、CSS、JSのベストプラクティスを詰め込んだテンプレートを提供するサイトです。ここでは、そこで使用されているプラクティスの幾つかを紹介します。 modernizr.jsによるHTML5/CSS3の対応調査 Modernizrは、ブラウザがHTML5/CSS3の新機能に対応しているか否かを判別するjavascriptです。このスクリプトを置くと、htmlのトップ要素に新機能の対応結果を示すclassがページロード時に付与されます。CSSではその付与されたclassを利用して、新機能が使える場合とそうでない場合に分けてスタイルを書くことができます(参考サイト)。 例えば、boxshadow機能がブラウザで使えない場合、 <html class=”no-boxshadow …”> のように、classがページロード時に付与されます。h
ご存知の方も多いと思いますが、 node.jsというのは、サーバ側で実行するjavascriptのフレームワークの一つです。 個人的には下記の理由によりサーバサイドjavascriptは熱いと思っています。 javascriptはweb開発では必須の技術 (ブラウザ側でjavascriptの使用量は増えていく傾向にあり、javascriptなしではwebの開発はありえない) イベント駆動との相性がよい ブラウザ側もonClickイベントなど、イベント単位で記述していている。その延長でサーバ側も記述できる 今回はnode.jsでmongoDBを使う方法を簡単に説明します。 mongoDBのORMとして、mongooseというものがあるので今回は、mongooseを利用します。 mongooseはnpm(node.jsのパッケージ管理ツール)に登録されていますので、 下記コマンドでイ
みなさん、Mercurialってものを御存知ですか? 少し前に結構話題に上ったりしていたので、知っている方も多いと思いますが、Mercurialとは分散バージョン管理システムのひとつです。似たようなとこで有名なものには、gitなんかがあります。 「分散」ってとこはひとまず置いておいて、とりあえずSubversionとかCVSとかの仲間だと思っていただければよいと思います。 ただ、仕組み的には、対局となるものとして紹介されることが多く、Mercurialの「分散バージョン管理」に対して、SubversionやCVSは「中央集権型バージョン管理」と呼ばれています。分散バージョン管理のことやその仕組みを知りたい方は、gihyoさんのほうにシリーズで記事が上がっているので、こちらをご一読されると幸せになれるかもしれません。 要はリポジトリ1つで管理するのか、複数のリポジトリで連携させながら管理して
最近、世の中では仮想化だの、クラウドだのと騒がれていますが、 今日はエスキュービズムの開発環境について、ちょっとご紹介したいと思います。 エスキュービズムでは、かなり早い段階、具体的にはまだエンジニアが3~4人しかいなかった頃から開発環境に対して仮想化技術を導入し、原則としてエンジニアひとりひとりに開発サーバを割り当てています。 まだ世の中では「クラウド」という言葉も普及しておらず、「Saas」や「Paas」などの言葉がはやり始めたころの話でしょうか。 当時は2コアのOpteron、2GBメモリぐらいのサーバに対して、1仮想サーバあたりに256MBぐらいのメモリを割り当てて、仮想サーバを作っていました。 仮想サーバを使う理由 こんなお話は敢えてここで述べなくても、いろいろなところで言われているお話なので、あまり細かくは書きません。 一元管理ができる、とかリソースを有効に使える、とかいろい
screen とは、1つのターミナル内に、 複数の擬似ウィンドウを開くことが出来るようにするソフトウェアです。 歴史ある技術ですので、ほぼどのLinux環境にも使えて、動作も安定、 設定・操作も手軽で済むため、多くのエンジニアに重宝されています。 ターミナル用のソフトですが、サーバへインストールするものです。 今更の内容ですが、復習も兼ねてまとめてみることにしました。 ちなみに、タイトルに「初心者入門編」と書いていますが、 少なくとも自分は2年間、この内容だけで便利に使えています。 (まー、自分はかなり開発環境に無神経な方ですが) screenの特徴・長所 擬似ウィンドウ(スクリーン)を開いて、複数SSHセッションを平行して操作できる。 サーバへインストールすれば、どのターミナルからも使える。 インストール・設定は超簡単。 ターミナルソフトを落としても、SSHセッションを維持して
今回は、Google App Engine (GAE) でTwitter上のデータを集約するRSSリーダーのようなアプリを作りたいと思います。 解説する内容は以下になります。 Google App Engine (GAE) の利用方法 Twitter API の利用方法 ツイートの集積と簡単な未読・既読処理 1. Google App Engine (GAE) の利用方法 GAEの利用 GAEはGoogleが提供するクラウドインフラです。 制約はありますが、ウェブサービスを作ることができます。URL フェッチやクーロンタスク も可能です。 なんといっても、無料で始めることができます。規模の原理が効いているので、通常のサーバーよりもコストが低くなります。 GAEを始めるには、http://code.google.com/intl/ja/appengine/docs/python/gettin
最近巷でよく聞くNoSQL(Not Only SQL) 試してみたくてPHPから簡単に使えるものはないものか・・・と色々探した結果たどり着いたのがMongoDBでした。 今回はインストールから、簡単に使ってみるところまで紹介します [MongoDBとは?] http://ja.wikipedia.org/wiki/MongoDB [インストール方法] 1.yumにリポジトリを追加する $ vim /etc/yum.repos.d/10gen.repo 下記を記入 [10gen] name=10gen Repository baseurl=http://downloads.mongodb.org/distros/centos/5.4/os/$basearch/ gpgcheck=0 enabled=1 2.MongoDBのインストール リポジトリを追加したのでinstallするだけ $ yu
★命名ルール 一意の要素にはidを、汎用的な要素にはclassを使う ○ class="important" ○ id="company_detail" 全て半角英数小文字とし、日本語のローマ字表記は極力避ける × taitoru ○ title 単語の連結には _ を使う × companyList ○ company_list 修飾語は英文とは違い、後置する × left_menu, right_menu ○ menu_left, menu_right レイアウトに使用する「枠組み」は、接頭に wrap_ を付ける 例 wrap_header wrap_main wrap_navi_left wrap_navi_right wrap_menu wrap_footer id、class名に属性や値を表す表記は使わない 例えば、class名を "red" のようにすると、後で色の変更をしづ
エンジニアなら誰しも一度は、 DBのバックアップを定期的に取って、特定のストレージに保存したい 特定のフォルダに生成される一時ファイルを定期的に消したい ユーザ追加の際の諸々の作業を自動化したい なんてことを考えたことがあるのではないでしょうか。 こんなときに役立つのが【シェルスクリプト】なわけですが、その他のプログラミング言語とは書き方が若干異なるため、少しとっつきにくさを感じる方もいらっしゃるのではないでしょうか。 そんなわけで、シェルスクリプトの基本の基本を書いてみました。 事前準備 シェルスクリプトを書く際に、まず必要なのは次の2つです。 ファイルの1行目に使用するシェルを指定する #!/bin/sh という、よくある「あまじない」ですね。/bin/bash でも、/bin/zsh とかでもOKですが、そのシェルがインストールされている必要があります。 ファイルに実行権限を与える
他言語をメインでやっている方が、 PHPで正規表現を扱う際に気を付けたいことをまとめました。 1. preg系で日本語を扱うにはu修飾子 2. preg_match_all の戻り値 3. preg_match_all の検索結果 4. “/” で括る必要は無い 5. 後方参照は $1 で取る 1. preg系で日本語を扱うにはu修飾子 preg系は、そのままだと日本語を正確に扱えないので、u修飾子の指定が必要 # 非マッチ $result = preg_match('/は.ほ/', 'いろはにほへと'); var_dump($result); // -> 0 # マッチ # u修飾子が「文字列をUTF-8として扱う」フラグ $result = preg_match('/は.ほ/u', 'いろはにほへと'); var_dump($result); // -> 1 # これはマッ
「つぶやくボタンを設置したいけど、どうしたらいいんだろう?」というつぶやきをTwitterで見かけたので調べてみました。 仕様はいたって簡単 http://twitter.com/home?status=URLエンコードしたつぶやいてもらいたい内容 こういうリンクを作るだけでOKです。 ではこれをEC-CUBEの商品詳細画面に組み込んでみます。 data/Smarty/templates/default/detail.tpl 221行目辺り <p><a href=”<!–{$twitter|escape}–>”><img alt=”Twitterでつぶやくボタン” src=”ボタンの画像のパス” border=”0″ /></a></p> data/class/pages/products/LC_Page_Products_Detail 277行目辺り $tw =
先週あたりに現在開発中のGoogleのOSである、”Chrome OS”が”Chromium OS”というプロジェクト名でオープンソース化され、ソースコードが入手可能になったので、早速試してみることにしました。 今回の目次 ChromeOSって何? ビルド環境の準備 ビルド 使ってみる ChromeOSって何? Googleが開発中のオープンソースのOSです。Linuxカーネルの上に、独自のウィンドウシステムを備えています。webの閲覧とwebアプリの実行に特化したOSということで、非常に軽量なOSとなっています。 詳しいアーキテクチャについては本家のサイトを参照してください。 http://www.chromium.org/chromium-os/chromiumos-design-docs/software-architecture ビルド環境の準備 上記のサイトに詳しい説明がありま
Closure Library (クロージャー・ライブラリ) は先日Google から出されたオープンソースのJavaScriptライブラリです。GmailやGoogle Docsなど様々なGoogleのAjaxサービスで使われてるそうです。もともとJavaScript自体は、異なるブラウザで挙動が違ったり、標準のモジュール化方法が提供されなかったりと、素で使うには厄介でした。そのために、これまで幾つものJavaScriptのライブラリ(prototype.js、jQuery、dojo、Ext JS、YUI、MooToolsなど)が登場してきました。今回のClosure LibraryはそれらライブラリにGoogleが本格的に対抗するものと捉えられます。 筆者はこれまでjQueryを好んで使っていました。一番メジャーであり、軽量かつ覚えるのも簡単で、プラグインも豊富にあるからです。ただ、と
筆者は最近PHPを使い始めました。 PHPは型キャストをしなくとも文字列と整数などを勝手にキャストしてくれるなど、型をあまり気にせずにプログラムを書いても、なんとなく動いてくれます。 もちろん変数の型宣言もなし、です。 こういった動的な、弱い型付けを持つ言語では、キャストなどに必要なコードの量を減らすことができる反面、プログラマの意図しない変換が行われてしまうことがあり、原因のわかりづらいバグを生み出しがちです。 静的であれ、動的であれ、コンパイラのチェック(と制約)が弱いとき、バグを減らすために重要なのは、プログラムを小さな単位に分解し、それぞれの動作を検証することができるようにすることです。 そうすると、プログラムが動かないとき、テストを使ったバグの原因推定を行いやすくなるからです。 というわけでユニットテストのツールを導入してみました。 今回は、ググってみて有名そうだったPHPUni
Nginx + PHP(FastCGIモード)で最速なwebサーバを構築します。 大体の内容は中国の張宴ブログ を参照して翻訳したものです。 Nginx(エンジンエックス)とは 軽量高性能なWebサーバ/リバースプロキシであり、同時に電子メール(IMAP/POP3)プロキシであります。 nginx は当初、Ramblerが運営する各種ウェブサイトのニーズを満たすために開発された。2009年5月のネットクラフトの調査によれば、nginx は6,342,250のドメインで使われており、Webサーバとしてのシェアは第5位であります。 中国とアメリカで、すでに一般的に使われています。 張宴さんのテストよりパフォーマンス的にapacheの10倍です。 筆者もwebbenchを使ってテストしました、張宴さんと似ている結果を得ました。 Nginxはepoll(Linux Kernel2.6)と
次々と新しい技術が生まれては消えてゆくこのご時世ですが、 基本に立ち返り黒い画面を見つめ直そう、ということで、 python cursesによるTUI(Text User Interface)プログラミングを練習してみました。 curses とは まずは、軽く curses とは何ぞや?という話をいたしますと、 Unix や Linux に備わっている端末の出力を動的に制御できるAPIをcursesといいます。 CUIプログラミングをした場合、普通は 「出力をすると」 いえば、 標準出力を使って上から下にだーーーーっと出力を流すものですが、 cursesを使うことで、例えば vi のような、アプリケーションっぽい出力を行うことができます。 参考) Wikipedia - Curses どんなことが出来る? 黒い画面だからとナメちゃいけません。 座標は、細かくても (
Python界では有名なWEBアプリケーションフレームワークであるDjango いろいろと高機能なんですが、ひとつだけ困ったことが。 それは「セッションがクッキーベース」なこと。 確かにこの方がセキュアですし、おススメなんですが、 携帯向けにECサイトを作成しようとすると必ずネックになるのが クッキーが使えない!ということ。(一部の端末では対応していますが) そこでDjangoでセッションキー(セッションID)をURL(またはPOST/GET)に 埋め込む方法を考えてみました。 まずDjangoでクッキーが使えないとどうなるでしょうか? クッキーが使えない ↓ クッキーでセッションキーを読み書きできない ↓ セッションキーをキーとしてサーバに保存されているセッション情報を読み書きできない ↓ セッション情報に保存されている認証情報を利用できない ↓ 認証が行えず、会
大学の研究では、よくmatlabなどの科学計算ツールを利用して、データ解析などを行っています。ただ、そのようなツールは、プログラミング言語としては貧弱なので、本格的な実装には向いていません。そんなとき、お薦めなのがPythonでnumpyモジュールを利用するやり方です。行列演算などmatlabにあるような基本的な数値計算メソッドを、matlabライクな書き方で利用することができます(参考)。筆者もPythonを利用した最初の理由はこのnumpyがあったからです。 ここでは、それがどういうものか簡単に紹介します。 === numpyではまず、Pythonのリストオブジェクトを、numpy固有の固定長配列に変換します。 from numpy as np lst = [1,2,3] arr = np.array(lst) このような配列に対して様々な数値計算が可能になります。下は、簡単なベク
Androidを使うと、Javaによる携帯電話プログラミングが数段パワフルになった感じがします。 Androidのドキュメントを読んでいると、どうやらリフレクションも使えるご様子。 リフレクションとは反響、反映のことです。転じて、Javaにおいてはプログラムが自分自身(プログラム要素)へアクセスするための手段を意味しています。名前だけではちょっとイメージしづらいですね。 簡単に言うと、Javaクラスのフィールドやメソッドの情報を取得するためのAPIです。 ・・こんなクラスのこんなメソッドを呼び出したい・・・ ・・が、そのメソッドやクラスの名前がプログラムを書いている時点では未知である (たとえば、開発者ではなく、利用者が指定する) そんなときに使います。 テストや分散処理などのフレームワークづくりをしたいときや、APIを提供したいときに便利です。 今回は以前、JavaCCを使って作
コレは使える!Arduinoで部屋の状況を自動つぶやき君@Twitter(前編)に引き続き、後編では、実際に Arduino を使って楽しいガジェット制作をやってみよう。 作ってみたのは、センサーで「室温」と「部屋の明るさ」を取得して Twitter に自動ポストする【つぶやき君】である。 こんな感じで、ArduinoからTwiiterに自動ポストされる 仕様は、 基本的に15分間隔で「室温」と「部屋の明るさ」をつぶやく 設定温度を超えたら「暑いよ、暑いよ」とつぶやき続ける 明るさが変わったら、その時点でつぶやく という感じ。パソコンなしで、LANケーブルと電源を挿しただけで動かすのもポイント。 必要なのは、 Arduino Duemilanove 328(Arduino本体) Arduinoイーサネット・シールド(ネット接続用) CdSセンサ 5mmタイプ 温度センサ LM35DZ ブ
よくMYSQLとPostgreSQLについて、どうなの? と疑問を持たれる方がいると思います。 下記を見ながらふぅ~んと思いながらお読みください。 MYSQLは ■マルチスレッド構成で動作する MySQL は、まず mysqld と呼ばれるプロセスの中にいくつかの スレッドを起動します。 その中の1つのスレッドにてクライアントからの接続要求を 待ち受ける形になります。 ■テーブルごとにストレージエンジンを選択できる MySQL のストレージエンジンと言えば、 InnoDB や MyISAM が有名ですが、 その他にも多くのエンジンをサポートしています。 現状は、トランザクションと行レベルロックをサポートしている InnoDB が主流そうです。 ※InnoDBとは「いのでーびー」 コミット、ロールバック、クラッシュリカバリの 各機能を備えたトランザクションセーフ(ACI
『Arduinoとはハードウェア設計もソフトウェア設計もオープンソースでなんちゃらかんちゃら』という説明がよくされているけど、それよりは何ができるのかを知ってもらった方が Arduino の面白さが伝わるだろう。 今日の勉強会でウケたのは、 各種センサーから読み取った値をパソコン無しで Twitter につぶやきまくる! こと。 (画像:標準的な Arduinoボード) 試しに「室温」と「部屋の明るさ」を Twitter に自動ポストするガジェット【つぶやき君】を制作してみた。 サーバ周辺に置いておけば異常に暑くなった時に「あち~」とつぶやいたり、みんな帰宅して真っ暗になったタイミングで「お疲れ!」とねぎらってくれたりする。 人体感知センサーを組み合わせれば侵入者を通知してくれるなんてことも可能だ。 けど、「つぶやく」だけで、怪しい人を捕まえることはしてくれないので要注意(笑 これを制作
数字Numは0か、先頭が0でない0から9の文字列です。 これで文法を定義できました。 実際に動くプログラムにするため、コンパイラコンパイラとよばれる、言語処理系の開発に特化したコンパイラを使用してみましょう。この記事では、Javaによるコンパイラコンパイラ実装であるJavaCCを使います。 JavaCC:https://javacc.dev.java.net/ Downloadsからを取得して適当なフォルダに展開してください。 展開したフォルダのbinフォルダにパスを通せばjavaccコマンドを利用できるようになります。 ところで、上記のEBNF表記上は特に区別されていませんが、一般に、言語処理系は字句解析と構文解析とよばれる処理ににわけてソースコードを解析します。 字句解析は構文解析の準備処理です。まず入力された文字列を空白文字や特定の記号などで区切っていきます。区切られたそれぞれの文字
Recent Entries セキュアなサーバを作るために最低限やっておくこと Yahooキーワード抽出APIライブラリ テスト駆動開発 (test driven development: TDD) のすすめ GoogleAnalyticsAPI on EC-CUBE 土日で作るコンパイラ OPEN ERPに挑戦3 OPEN ERPに挑戦2 OPEN ERPに挑戦 ERPはたくさんあれど・・・ OpenGLで3D、やってみよう Recent Comments No Responses. Recent Trackbacks テスト駆動開発 (test driven development: TDD) のすすめ 06/11 » Yahooキーワード抽出... みなさんはサーバを管理するときに、何を一番気にしますか? 人によって程度の差はあるのでしょうが、誰もが気になるのが「セキュリティ」でしょ
Recent Entries テスト駆動開発 (test driven development: TDD) のすすめ GoogleAnalyticsAPI on EC-CUBE 土日で作るコンパイラ OPEN ERPに挑戦3 OPEN ERPに挑戦2 OPEN ERPに挑戦 ERPはたくさんあれど・・・ OpenGLで3D、やってみよう ライセンスなどのおさらい IPアドレスの基礎知識 Recent Comments No Responses. Recent Trackbacks No Responses. テスト駆動開発 (TDD)とは、「プログラム開発手法の一種で、プログラム本体よりも先にテストケースを書くスタイル」(wikipediaより)のことです。テストケースとは作ったメソッドがどのように使われて、どのような振る舞いが想定されるかが分かるような検証用のコードです。TDDでは、多数
タイトルがアレなのは、さて置いて。 先月、4/22に「GoogleAnalyticsAPI」が公開されました。 要は、御馴染み「GoogleAnalytics」で収集したデータを、外部から参照,閲覧できるようするGoogleが用意してくれたインターフェース…といったトコです。 一方、弊社で扱うことの多いEC-CUBEですが「素の状態」ではアクセス収集機能はついておらず、 仮に実装するとなると別サーバなり同サーバなりに何らかのアプリを入れたりもするんですが、 またEC-CUBEの主なターゲットである「お手軽店舗展開」感覚で用意されるサーバだと、 アクセスログ収集機能自体がサイト全体への負荷に繋がったりするケースもあるワケで。 また、ASPサービスを使うにしても有料だったり、バナー表示が義務付けられてたり…と。 そんな中、無料でかつバナーも表示させなくてよいってことで、 結構便利な
階層クラスタリングは、データマイニング手法の一つです。 今回はこの手法を、はてなブックマークのタグ付けデータに対して適用しました。 まずは、結果から紹介します: より大規模なデータセットを用いて解析した結果はこちら: ツリー表現 タグクラウド表現 === 解説 === 階層クラスタリングは、 「類似する要素をグループ化し、 徐々にそのグループもグループ化していき、 最終的に一つのグループにして、 階層的に要素およびグループを表現する」手法です。 上の例では、 “レシピ”と”料理”がまずグループ化されて、次に、そのグループと”食”がグループ化されています。 そのグループはさらに、音楽やアニメ、ゲーム関連の要素 (”音楽”、”music”、”アニメ”、”ニコニコ動画”、”著作権、”game”、”ゲーム”) からなる階層的なグループと統合されています。 このようなグル
Read more >> をクリックすると、次のページでgoogle ドキュメントが読み込まれます === 参考文献 === Scalable Semantic Web Data Management Using Vertical Partitioning; DJ. Abadi et al. === キーワード === セマンティックウェブ Resource Description Framework: RDF ヴァーティカル・パーティショニング (vertical partitioning) コラム指向データベース (column-oriented database) === クラウド データベース === Google App Engine BigTable Amazon Simple DB === スキーマフリー データベース === Persevere perseve
参考リンク: Mate (Flex フレームワーク) Mate sample source (サンプルのソースコード) Dependency Injection (DI) (依存性注入の説明) springpython (pythonのDIコンテナなど) snake-guice (pythonのDIライブラリ) PyDispatcher (pythonのイベントディスパッチャー) twisted (pythonのイベントライブラリセット)
次のページ
このページを最初にブックマークしてみませんか?
『S-cubism LABS』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く