タグ

ブックマーク / gihyo.jp (31)

  • #02 数字のバッドノウハウ | gihyo.jp

    ソフトウェアなどを使いこなすために、ストレスを感じながらもしぶしぶ覚えなければならないようなノウハウ、「⁠バッドノウハウ」(⁠BadKhowhow)がテーマの連載、第2回の今回は数値に関するバッドノウハウ(以下BK)を取り上げたいと思います。 JavaScriptのparseInt関数 JavaScriptには、文字列を整数に変換する組み込みの関数parseIntがあります。この関数は、第1引数に文字列、第2引数に基数を渡して使うのが基です。しかし、基数を省略した場合は、文字列の中身に応じて自動的に基数が選ばれます。 その結果、"08"が8進数として解釈されて0(ゼロ)になる(8は8進数では無効な値⁠)⁠、という厄介な挙動が発生します(リスト1⁠)⁠。 リスト1 JavaScriptのparseInt関数 // Firefox 2、IE 7ともに0が表示される alert(parseI

    #02 数字のバッドノウハウ | gihyo.jp
  • BK通信 ―Bad Knowhow Tsushin―:#03 C++のバッドノウハウ|gihyo.jp … 技術評論社

    ソフトウェアなどを使いこなすために、ストレスを感じながらもしぶしぶ覚えなければならないようなノウハウ、「⁠バッドノウハウ」がテーマの連載、第3回の今回は極めてBKフル(バッドノウハウが多い)言語であるC++を取り上げたいと思います。 C++再考 いまどきのWebアプリケーションはPerlRubyなどのLightweight Languageで作られているものが多く、C++の出番は非常に少ないように見えます。ところが、知人などに話を聞いてみると、基的にPerlで作られているサービスでも、性能に効いてくる要所要所にC++が使われているという話をよく耳にします。 C言語ではなくC++を使うのは、オブジェクト指向言語ということもありますが、標準ライブラリに含まれる便利なコンテナ(string、vector、mapなど)を使いたいという理由も大きいようです。たしかに、一度これらのコンテナを使っ

    BK通信 ―Bad Knowhow Tsushin―:#03 C++のバッドノウハウ|gihyo.jp … 技術評論社
    f99aq
    f99aq 2018/01/04
  • 2014年9月9日 システム管理コマンドシリーズ:sysrc(8)の使い方 | gihyo.jp

    bin How to use sysrc(8) FreeBSDのシステム設定(どのサービスを起動するのか、ホストIPアドレスは何か、デフォルトルータのIPアドレスはなにか、など)は/etc/rc.confに書く仕組みになっています。そのFreeBSDがどんな目的でどういった組み上げ方をされているかは/etc/rc.confファイルを読めばわかります。 システムの設定は/etc/rc.confにまとまっている % head /etc/rc.conf # server defaultrouter="192.168.1.1" hostname="parancell.ongs.co.jp" ifconfig_em0="DHCP" dumpdev="AUTO" zfs_enable="YES" clear_tmp_enable="YES" powerd_enable="YES" # jail %

    2014年9月9日 システム管理コマンドシリーズ:sysrc(8)の使い方 | gihyo.jp
    f99aq
    f99aq 2014/09/10
    rc.conf 参照・編集コマンド
  • Hadoopは基幹業務をどう変えるのか─ソフトバンクモバイルにおけるオープンソース活用 | gihyo.jp

    Hadoopはバッチ処理の課題への解決策となり得るか 企業のあらゆる領域にITが浸透し、それに伴って会計や在庫管理、あるいは販売管理などシステムから出力されるデータ量も拡大し続けています。このデータ量の増大によって、多くの企業において新たな課題となりつつあるのがバッチ処理の遅延です。 たとえば、毎日の売上を集計するために、販売管理システムからデータを吸い上げてバッチ処理を行うといった場合、サーバリソースに余裕がある夜間にバッチを走らせ、翌朝担当者が出社する頃には集計データが出力されているという形が一般的でしょう。しかし、ITが事業のさまざまな領域で活用されるようになったことから、バッチ処理すべきデータ量は増大し続けています。これにより、バッチ処理が時間内に終わらない、「⁠突き抜け」と呼ばれる事態に頭を悩ませる企業が増えているのです。 突き抜けが発生すると、さまざまな領域に大きな影響が及ぶ恐

    Hadoopは基幹業務をどう変えるのか─ソフトバンクモバイルにおけるオープンソース活用 | gihyo.jp
    f99aq
    f99aq 2013/03/30
    楽しそうな職場ですねぇ
  • 第2回 ネットワークアーキテクチャを一変させるOpenFlowのパケット制御技術 | gihyo.jp

    はじめに 前回は、昨今注目されているネットワーク制御技術「OpenFlow」の動向や基動作、仮想化が抱える課題について説明しました。今回は、より進んだOpenFlowの活用方法について説明します。 OpenFlowによるパケット制御方式 OpenFlowはネットワークの動作をプログラムで制御できます。具体的に言えば、OpenFlowを利用すると、パケット[1]の任意の部分を書き換えて、パケットを任意のノードに転送[2]できます。 パケットのどこを書き換え、どこに転送するか(以後「パケットの制御方法」と表記します)は、すべてOpenFlowコントローラが決定します。OpenFlowスイッチはOpenFlowコントローラから指示を受けて動作します。OpenFlowスイッチが独自の判断で動作することは基的にありません。未知のパケットを受信した場合、OpenFlowスイッチはOpenFlowコ

    第2回 ネットワークアーキテクチャを一変させるOpenFlowのパケット制御技術 | gihyo.jp
  • 第1回 OpenFlowって何だ!? | gihyo.jp

    はじめに みなさんは単にネットワークという言葉を聞くと、どのようなイメージを持たれるでしょうか。単純にパケットが通過するだけのケーブル的なイメージでしょうか。それとも、ロードバランスやパケットフィルタリングを行う箱のようなイメージでしょうか。 これまでのネットワーク機器はRFC(RequestFor Comment)などの標準で定義されたプロトコルに沿って動作し、ネットワーク機器を利用するユーザはメーカーが用意した記述ルールに従い設定を行うのが一般的でした。このような状況からネットワークは受け身でしか利用できないイメージが定着していると思いますが、次世代ネットワーク制御技術「OpenFlow[1]⁠」の登場により状況が変化しつつあります。 ネットワークをプログラムするOpenFlow OpenFlowを用いればネットワークの動きをプログラムにより制御することができます。ネットワークの動きを

    第1回 OpenFlowって何だ!? | gihyo.jp
  • 2009年8月17日 ≪Tips≫Linuxバイナリ互換環境linux_base-f10をインストールして使う方法 | gihyo.jp

    FreeBSD Daily Topics 2009年8月17日≪Tips≫Linuxバイナリ互換環境linux_base-f10をインストールして使う方法 tips Fedora Core 10相当の互換プラットフォームlinux_base-f10をインストールして使う方法を説明します。FreeBSD 8.0-BETA2以降のOSを使います。linux_base-f9、linux_base-f8、linux_base-f7、linux_base-fc6、linux_base-fc4など、他のバージョンのLinux互換プラットフォームがインストールされている場合、すべてアンインストールしてください。Linuxアプリケーションも一旦すべてアンインストールします。 〔OVERRIDE_LINUX_BASE_PORT / OVERRIDE_LINUX_NONBASE_PORTS〕 Ports Co

    2009年8月17日 ≪Tips≫Linuxバイナリ互換環境linux_base-f10をインストールして使う方法 | gihyo.jp
    f99aq
    f99aq 2011/09/03
    zfs rootな環境でこれをやる場合はlinprocfsにlateオプションを付ける
  • 第22回 Mojolicious::Lite:本当に簡単なウェブアプリがあればいいときは |gihyo.jp … 技術評論社

    あれから1年 Mojoについては2009年1月1日から4回にわたって特集記事を連載しました。ちょうど執筆を開始した直後に作者リーデル氏が不幸な医療事故にあい、一時はどうなることかと思いましたが、連載を終了する直前に開発続行の宣言が出て、ほっとしたのをよく覚えています。 あれから1年。Mojoを取り巻く環境はずいぶん変わりましたが、いま、Mojoはいったいどうなっているのでしょうか。今回は今年最後の記事として、Mojo界隈の近況をお届けすることにします。 大きく変わったといわれていますが…… 昨年12月にバージョン0.9に到達したMojoは、途中事故の後遺症で開発が停滞した時期はあったものの、この1年でかれこれ30回以上のリリースが行われたことからもわかるように、いまもなお着実に開発が続けられています。この「ベータテスト」期間中にいくつか後方互換性が失われる変更があったため批判を浴びたことも

    第22回 Mojolicious::Lite:本当に簡単なウェブアプリがあればいいときは |gihyo.jp … 技術評論社
  • 第4回 Hook処理を極めて外部からモジュールを拡張する | gihyo.jp

    指定したhook pointを実行し、順番にhook pointのコードを処理し、最初に戻り値があった時点で以降に登録されたコードの実行は行ないません Hook関連のメソッドは少なく、シンプルですね。 register_hookは主にPluginから利用されるメソッドになっており、hook pointとhook poinに対するコードをPlaggerに対して登録します。 Class::Triggerで言う所のadd_triggerになります。 実際のプラグインのコードを引用すると下記のように利用されます。 # Plagger::Plugin::Publish::CHTML sub register { my($self, $context) = @_; $context->register_hook( $self, 'publish.feed' => \&feed, 'publish.fi

    第4回 Hook処理を極めて外部からモジュールを拡張する | gihyo.jp
  • 第10回 Class::Meta::Express:もっと読みやすく、周囲への影響は最小限に | gihyo.jp

    「シュガー関数=モダン」ではありませんが 「モダンPerlがわからない」と言われる大きな原因のひとつが、MooseやJiftyに見られるシュガー関数、ドメイン特化言語(DSL)の氾濫にあることは衆目の一致するところでしょう。 前回紹介したJiftyでは、スキーマとアクション用にそれぞれひとつ、ディスパッチャ用にひとつ、テンプレート用にひとつ、という具合に都合3系統4種類のドメイン特化言語が使われていましたし、Mooseの場合も、アトリビュートや型の定義にメソッドモディファイアと、さまざまなところで独自の記法が用意されています。Catalystも、テストの際には独自のシュガー関数を使っていました。もちろん探せば似たような例はいくらでも見つかることでしょう。 このようなシュガー関数は、1998年にリリースされたPerl 5.5でコアに導入されたTestモジュールなどを見てもわかる通り、来はモ

    第10回 Class::Meta::Express:もっと読みやすく、周囲への影響は最小限に | gihyo.jp
    f99aq
    f99aq 2009/11/16
  • 第14回 Rakudo:実装する方法だってひとつではないのです | gihyo.jp

    2010年4月に出るのは…… 先日、いわゆるPerl 6の実装が2010年4月をめどにRakudo *(Rakudo Star)の名前でリリースされる、という記事が紹介されました。 そのネタ元となった記事を書いたパトリック・ミショー(Patrick Michaud)氏は、2009年4月17日のNordic Perl Workshopを皮切りに、2009年6月22日のYAPC|10(YAPC::NA⁠)⁠、2009年7月22日のOSCON、2009年8月4日のYAPC::EUと、立て続けにRakudoの発表を行い、そのまとめとして当該記事を掲載したのですが(ちなみにRakudo *の公開時期はすでにOSCONの時点で明言されていました⁠)⁠、その3日後にご人によるフォロー記事が出ているように、この短い紹介記事では意図が伝わりにくい面もあったようです。 そこで、今回はRakudoとはどのよう

    第14回 Rakudo:実装する方法だってひとつではないのです | gihyo.jp
    f99aq
    f99aq 2009/11/16
  • 第18回 local::lib:ふだんと違う環境でPerlを使う | gihyo.jp

    いつでも理想の環境を使えるとは限りません 「弘法筆を択ばず」ということわざもありますが、なんであれ手になじむまで使い込んだ道具を持っている人は、環境が変わってその道具が使えなくなるとやはりいらいらするものです。 Perlの場合もそう。日頃から自分の必要や興味に応じてがんがんCPANモジュールをインストールしていると、何らかの事情でまっさらに近いPerlを使わなければならなくなったとき、途方に暮れます。来のコードを書き始める前に、モジュールのインストールだけで一日潰してしまった経験をお持ちの方も少なくないことでしょう。 今回は、そんな「ふだんと違う」環境でもなるべくストレスなくPerlを使えるようにするためのモダンな努力をいくつか紹介してみます。 PERL5LIBという環境変数を活用する Perlはディストリビューションに同梱されているコアモジュールを保護するために、CPANからインストー

    第18回 local::lib:ふだんと違う環境でPerlを使う | gihyo.jp
    f99aq
    f99aq 2009/11/16
  • 第93回 Ubuntu 9.10以降のインプット・メソッド「IBus」を使用する | gihyo.jp

    仕様変更 Ubuntu 9.10でのインプット・メソッドは、これまでのSCIMからIBusに変更になります。そこで今回は、やや先取りではあるものの、IBusの特徴や使い方の紹介と、これまでどおりSCIMを継続して使う方法を紹介します。 IBusとは IBusは、 Red HatのShawn.P.Huangによって開発されているインプット・メソッドです。今のところ標準のインプット・メソッドとして採用しているのは Fedora(そして今回からのUbuntu)程度ですが、現在もっとも活発に開発されているので、採用するLinuxディストリビューションも増えていくことでしょう。日語のブリッジ(IBusの用語でいうとエンジン)はAnthy用のIBus-Anthyしかありませんが[1]⁠、すこし前から日人によって開発されるようになり、実用上問題ないぐらいまでは開発が進みました。 NetbookやMI

    第93回 Ubuntu 9.10以降のインプット・メソッド「IBus」を使用する | gihyo.jp
    f99aq
    f99aq 2009/11/01
    "ibus-skkも欲しいという話は聞きますが,今のところ開発されていないようです。"
  • 第15回 DateTime:APIの標準化をめざして | gihyo.jp

    Cから継承したAPI プログラマにとって、ログの解析や作成などに含まれる日付や時刻の操作は切っても切り離せない分野のひとつです。もちろんPerlにも日付や時刻を操作するための関数は組み込まれています。 ただし、Cから継承してきたlocaltime()やgmtime()の返り値は、お世辞にもわかりやすいとはいえません。リストコンテキストで呼び出せば年月日、時分秒などの値を取り出せるとはいえ、単一の配列で受け取ると、個々の要素を使うときに直感的ではなくなりますし、明示的な名前をつけたスカラー変数を並べて受け取るのはいかにも冗長です。 use strict; use warnings; # 短いけれど非直感的 my @tm = localtime(); $tm[5] += 1900; $tm[4]++; printf "%04d-%02d-%02d %02d:%02d:%02d\n", reve

    第15回 DateTime:APIの標準化をめざして | gihyo.jp
    f99aq
    f99aq 2009/10/04
    DateTime
  • Googleテクノロジーカンファレンス「Google I/O」レポート | gihyo.jp

    サンフランシスコで27日、28日と2日間にわたって開催された、Googleテクノロジーカンファレンス「Google I/O」が大盛況のうちに幕を閉じました。稿では、そのGoogle I/Oに関して私の印象に残ったトピックについてお届けします。 なお、おそらく皆さんご存知のとおりGoogle I/Oで非常に大きな発表が一つあり、今回の記事も半分ほどはそちらについての話になります。また今回触れなかった話題についても非常に役に立つ話題が多くあります。Gooogle I/Oのセッションは後日すべて動画で公開されますので、一通り確認してみることをお勧めします。 参加登録 Google Wave 今回のGoogle I/Oの目玉はなんと言ってもGoogle Waveでした。初日のセッションで何かほのめかしたスピーカーがいたようで、2日目のキーノートで何か大きな発表があるという噂は一部参加者の間で流れ

    Googleテクノロジーカンファレンス「Google I/O」レポート | gihyo.jp
    f99aq
    f99aq 2009/06/12
  • 第2回 「マージ」は怖くない ~ 分散した成果の集約 | gihyo.jp

    前回は、様々な方法で複製したリポジトリにおいて、それぞれ異なる作業成果を"hg commit"し、下図のような状態を構築するところまでを説明しました。 図1 成果の分散 今回は、これら複数の成果を、最終的な成果へと統合する「マージ」について説明します。 成果の集約 成果をマージするためには、マージ作業を行うリポジトリへと成果を集約する必要があります。 成果の集約には"hg pull"を使用します。前回の説明では「リポジトリの複製」に使用した"hg pull"ですが、厳密には「一方の保持していない成果を他方に伝播」する、リポジトリ間連携機能なのです。 myrepo2の成果をmyrepoに取り込む手順を以下に示します。 コマンド1 % cd myrepo % hg pull ../myrepo2 pulling from ../myrepo2 searching for changes add

    第2回 「マージ」は怖くない ~ 分散した成果の集約 | gihyo.jp
  • 第2回 TestLinkとは何か? | gihyo.jp

    前回は、TestLink自体の説明に入る前段階として、そもそも「テスト管理」とは何かということについて説明しました。今回からは、いよいよTestLinkの機能に踏み込んでいきます。まず今回は、TestLinkの機能の全体像を見ていきたいと思います。 TestLinkとは? TestLinkは、Webベースのテスト管理システムです。テスト管理システムという名の通り、前回ご説明した「テスト管理」を補助することを目的としています。Webベースのアプリケーションですので、Webサーバ(Apacheなど)とデータベース(MySQLなど)の環境で動作します。 また、TestLinkはオープンソースで開発/配布されています。オープンソースのライセンスとしてはGNU General Public License(GPL)が採用されており、誰でも自由に使うことができますし、その気になれば各現場に合わせてカス

    第2回 TestLinkとは何か? | gihyo.jp
    f99aq
    f99aq 2008/11/16
  • 「長く使える技術力を自分に蓄えていく」―はてな伊藤直也氏がジュンク堂書店大阪本店トークセッションに登場 | gihyo.jp

    2008年8月23日(土)、ジュンク堂書店大阪店にて、(株)はてなの伊藤直也氏によるトークセッションが開催された。今回のイベントは、『⁠[24時間365日]サーバ/インフラを支える技術』(⁠伊藤直也/勝見祐己/田中慎司/ひろせまさあき/安井真伸/横川和哉著、技術評論社)発刊に関連して、ジュンク堂書店大阪店企画/主催で実現された。 はてな伊藤直也氏 私にとっての技術書読書 今回のテーマは「私と技術書⁠」⁠。トーク中に「プログラミングは世界を変える(※注⁠)⁠」⁠「⁠ハッカーになりたい⁠」⁠、そんな率直な思いを言葉にした伊藤氏にとっての技術書とは、読書とは、いかなるものなのだろうか。 テーマは「私と技術書」 ※注) 伊藤氏は、小学校時代のパソピア7(東芝製パソコン)でのプログラミング体験に始まり、数々のソフトウェア、インターネットで世界が変わったその時期に高校/大学時代を過ごし、ユーザ数

    「長く使える技術力を自分に蓄えていく」―はてな伊藤直也氏がジュンク堂書店大阪本店トークセッションに登場 | gihyo.jp
  • 第4回 memcachedの分散アルゴリズム | gihyo.jp

    株式会社ミクシィの長野です。第2回、第3回と前坂がmemcachedの内部について紹介しました。今回は内部構造から離れて、memcachedの分散についての紹介をいたします。 memcachedの分散 連載の1回目に紹介しましたが、memcachedは「分散」キャッシュサーバと言われていますが、サーバ側には「分散」の機能は備わっていません。サーバ側には当連載の第2回、第3回で前坂が紹介したメモリストレージの機能のみが組み込まれており、非常にシンプルな実装となっています。では、memcachedの分散はどのように実現しているのかと言うと、すべてクライアントライブラリによって実現されます。この分散方法はmemcachedの大きな特徴です。 memcachedの分散とは ここまで数度「分散」という言葉を用いてきましたが、あまり詳しく触れてきませんでした。ここでは各クライアントの実装に共通する大ま

    第4回 memcachedの分散アルゴリズム | gihyo.jp
    f99aq
    f99aq 2008/08/15
    Chord っぽい
  • 小飼弾のアルファギークに逢いたい:#13 シックス・アパート 宮川達彦|gihyo.jp … 技術評論社

    今回の対談相手は、シックス・アパート(⁠株⁠)勤務で、現在サンフランシスコ在住の宮川達彦さん。誌でも連載や特集でこれまで何度もご執筆いただいていますが、渡米して数年、アメリカでの生活はどんな感じなのでしょうか? 左:宮川達彦氏、右:小飼弾氏(撮影:武田康宏) 経歴 弾:お久しぶりです。 宮川(以下、宮⁠)⁠:お久しぶりです、どうも。 弾:最初に、あらためて簡単な経歴を。 宮:東京大学の理学部情報科学科でコンピュータサイエンスの勉強をしていて、2年のときにオライリー・ジャパンでバイトを始めました。そのときはコンピュータというより事務系の仕事で、4年になったときにオン・ザ・エッヂ[1]でアルバイト。それが1999年。上場前で、弾さんが入る…。 弾:前ですよね。そう、先輩なんですよ、オン・ザ・エッヂでは。 宮:僕が2ヵ月くらい前に入って。それから5年くらいライブドアにいて、2005年からシック

    小飼弾のアルファギークに逢いたい:#13 シックス・アパート 宮川達彦|gihyo.jp … 技術評論社
    f99aq
    f99aq 2008/07/27