タグ

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

  • 第23回 Module::Build:MakeMakerの後継者を目指して | gihyo.jp

    今年もよしなにお願いいたします 連載第18回ではlocal::libの話題を取り上げましたが、今回はそのときにもちらと紹介した、モジュールをインストールするときに利用するいくつかのモジュールについて簡単にまとめてみます。 ExtUtils::MakeMakerが生まれるまで Perlがバージョン3でコンパイル時にユーザ独自のライブラリを組み込んで体機能を拡張できるようになったとき(1990年⁠)⁠、おそらくもっとも喜んだのがデータベースを使っていたユーザでした。彼らはいそいそと自分の使っていたデータベースのライブラリをPerlに組み込み、それとわかる名前をつけて公開しました。当時の記録によれば、Oracleに対応したOraperlやPostgreSQLに対応したPgperlなど、データベース関連だけで8つないし9つの専用Perlがあったようです[1]⁠。 でも、このアプローチには問題もあ

    第23回 Module::Build:MakeMakerの後継者を目指して | gihyo.jp
  • 第672回 UTMを使ってM1 Mac上でUbuntuを動かす | gihyo.jp

    ARMといえば、その電力効率のよさからスマートフォンをはじめ、様々な用途で利用されているCPUですよね。連載でも、ARMプロセッサ搭載のデバイスであるRaspberry PiにUbuntuをインストールする方法を紹介してます。 モバイル市場においては支配的なARMアーキテクチャですが、一般的なデスクトップ/ノートPCの分野においては、まだまだx86_64が主流です。そんな中でARMアーキテクチャのApple M1チップを搭載したMac miniやMacBook Proの登場は、一時期話題になりました。 最近は筆者も、M1を搭載したMac miniを使用して、日常の業務を行っています。このように普段のデスクトップ環境としてはMacを使い、Linux環境は仮想マシン内に作るという運用をしている方は、筆者を含めて多いと思います。しかし現在のM1 Macでは、VirtualBoxの仮想マシンが動

    第672回 UTMを使ってM1 Mac上でUbuntuを動かす | gihyo.jp
  • 第11回 ディスタンスベクターとリンクステート | gihyo.jp

    「ディスタンスベクターとは、噂話が好きな奥様たちによる伝言ゲームである」 「リンクステートとは、同じカーナビをつけた走り屋の集団である」 (私の先輩の格言より) ルーティングプロトコルの仕組みには、大別して「ディスタンスベクター型」と「リンクステート型」の2種類がある、というようなことが、ネットワークの教科書には必ず書いてあると思います。 コラムでは今回から4話連続でOSPFに関連したテーマを予定しており、初回となる今回は、ディスタンスベクターとリンクステートの違いの質を暴いてしまいます。 ディスタンスベクター ディスタンスベクターはRIPやBGPなどで使われている方式であり、以下のような特徴があります。 経路表そのものを交換 局所的に情報を交換 経路表を比較して選択 出展: WIDE University, School of Internetネットワークアーキテクチャ 第06回(2

    第11回 ディスタンスベクターとリンクステート | gihyo.jp
  • 第3回 宮川達彦―最先端のWebエンジニアのキャリア | gihyo.jp

    先を歩むエンジニアへのインタビューを通してエンジニアのキャリアについて考える連載、今回は古くからPerlコミュニティで活躍し、最近ではWebテクノロジ情報発信のポッドキャスト「Rebuild」が話題の宮川達彦さんにお話を伺いました。宮川さんは、筆者のクックパッドの同僚でもあります。 [撮影:平野正樹] プログラミングに興味を持ったきっかけ ─⁠─最初にプログラミングやエンジニアリングに興味を持ったのはいつでしょうか? 宮川:父親がプログラマだったので、コンピュータは小さいころから家にあったんですけど、プログラミングはしておらず、純粋にPCユーザとしてゲームとかで遊んでいました。プログラミングのきっかけは、東京大学に通い始めて、趣味でホームページや掲示板を作っておもしろいと思ったことですね。そのあと3年次に、理学部情報科学科を選択し学びました。それと前後して、大学の友達から「オライリー・ジ

    第3回 宮川達彦―最先端のWebエンジニアのキャリア | gihyo.jp
  • 第25回 cron周りのベストプラクティス(3) | gihyo.jp

    (1)はこちら、(⁠2)はこちらから。 App::RunCron (3)では、前回(2)に出てきたcron実行結果の通知処理やエラーハンドリングを統一的に行うことができる拙作のフレームワークApp::RunCronを紹介します。 App::RunCronとは? cronにおけるログとエラーハンドリングの問題点 cronで実行したコマンドのエラー処理は悩ましいところです。パイプで出力を後続のコマンドに渡したところで、コマンドの成否自体は後続のコマンドからは知るすべはなく、出力結果から推測するしかありません。ログ処理とも共通することですが、コマンド終了コードがわからないまま、成功時も失敗時の別なく出力が流れてくることから、ログが埋もれてしまうというジレンマをcronは抱えています。 かといって、ジョブごとにエラー処理を書くのは、正しく書くのも難しく、書けたところで各ジョブ内に同じようなコードが

    第25回 cron周りのベストプラクティス(3) | gihyo.jp
    tzccinct
    tzccinct 2014/06/20
    timeout, setlock, softlimit.
  • 第25回 cron周りのベストプラクティス(2) | gihyo.jp

    前回の(1)はこちらから。 プロジェクトcronを利用する 筆者は普段ゲーム開発のサーバサイドを担当していますが、プロジェクトによってはバッチサーバのcrontabが100行を超えることもあります。イベント、ランキング処理、監視、集計、バックアップ、リカバリ処理などをしっかりやろうとすると、どうしてもそれくらいになってしまいます。 100行とはいかなくても、プロジェクトで使うcrontabの行数が膨らんでくると、サーバで直接crontabを編集することは管理上現実的ではありません。 crontabの記述とリポジトリ管理 では実際のプロジェクトcrontabをどのように管理していけばよいのでしょうか。筆者は次の方針を立てています。 crontabの記述にゆるやかな規約を設け、リポジトリ管理する crontabの自動テストを行う crontabの反映方法をなるべく自動化する crontab

    第25回 cron周りのベストプラクティス(2) | gihyo.jp
    tzccinct
    tzccinct 2014/06/20
    % diff -u <(crontab -l) data/crontab.txt
  • 第25回 cron周りのベストプラクティス(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはsongmuさんこと松木雅幸さんで、テーマはcronです。 なお稿のサンプルコードは、誌サポートサイトから入手できます。 cronとは? cronは指定日時にジョブの自動実行を行うジョブスケジューラです。UNIX系のOSであれば実装の違いこそあれ、ほぼ標準でインストールされています。 作業自動化や、タスクを自動実行したいなどといった場合にcronは避けては通れません。Perlでバッチ処理を書く際などに多くの人が活用していると思いますが、ベストプラクティスがわからず恐る恐る使っている人も多いのではないでしょうか。 稿では、cron活用におけるベストプラクティスについてお話します。 cronの使いどころ cronの使い途は、主に次の3つが考えられます。 a.アプリケーションのジョブの実行 b.システムに関わる

    第25回 cron周りのベストプラクティス(1) | gihyo.jp
    tzccinct
    tzccinct 2014/06/20
    crontab 指定のハマりどころ:環境変数、% のエスケープ、曜日指定の罠。
  • 第16回 Perl内部構造の深遠に迫る(2) | gihyo.jp

    前回の(1)はこちらから。 文字化け問題 ─⁠─ Perlの文字列の実装に迫る 次のテーマは文字列です。文字化けは、プログラマの意図したエンコーディングと実際のエンコーディングが異なるときに起きる現象で、どんなプログラミング言語でも問題になります。ただPerlではv5.8.0以降、さらにテキスト文字列という概念ができたため、プログラマの意図をコードに落とす際に少し工夫が必要です。この概念を正しく理解していないと、エンコーディングが正しく見えるときでも文字化けが起きることがあるのです。そこで節では、文字化けをデバッグするという目的のもと、perlの文字列の実装に迫ります。 まず、よくある文字化けを再現するコードがリスト7です。CPANモジュールのEncode::Locale[6]をインストールしておいてください。また、ファイルはUTF-8で保存してください。 リスト7 hello-moji

    第16回 Perl内部構造の深遠に迫る(2) | gihyo.jp
  • 第16回 Perl内部構造の深遠に迫る(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回はgfxこと藤吾郎さんで、テーマはPerlの内部構造です。 内部構造を覗く Perlで開発をしていると、ときどきわかりにくい現象に遭遇することがあります。たとえば、あるデータをJSON(JavaScript Object Notation)にシリアライズするとき、数値としてシリアライズしてほしい値が文字列としてシリアライズされてしまう。あるいは、エンコーディングが正しいはずなのに文字化けが起きる。こんなときは、思いきってPerlの内部構造を覗くことで、何が起きているかを突き止めることができます。 稿では、Perlの内部構造について解説します。言及するperlはバージョン5.16.0(2012年5月21日リリース)です。また、ターミナルのエンコーディングはUTF-8を想定しています。なお、Perl処理系はC言語で書かれてい

    第16回 Perl内部構造の深遠に迫る(1) | gihyo.jp
  • 第14回 最新Perl使いこなし術―リファレンスの引き方、5.10以降の新機能(2) | gihyo.jp

    最近のPerlの機能 リファレンスの引き方がわかったところで、最近のPerlに追加された機能を紹介します。Perlは枯れた言語というイメージがある人もいると思いますが、まだまだ活発に開発が続けられており、バージョンが上がるたびに便利な機能が増えています。 Perlの安定バージョンについて perlの安定版はバージョン番号X.Y.ZのマイナーバージョンYが偶数のものです。最近の安定版は5.8(2002年7 月リリース⁠)⁠、5.10(2007 年12 月リリース⁠)⁠、5.12(2010 年4 月リリース⁠)⁠、5.14(2011 年5 月リリース)です。稿ではperl 5.10以降に実装された機能を「最近のPerlの機能」として紹介します。 perlの公式安定版として一番新しいのは5.14ですが、多くの人はまだ5.8系を使っているでしょう(非常に安定しているため⁠)⁠。しかし5.8系の最

    第14回 最新Perl使いこなし術―リファレンスの引き方、5.10以降の新機能(2) | gihyo.jp
    tzccinct
    tzccinct 2012/08/03
    named capture. 「どれがキャプチャの括弧なのかを見極めながら括弧の数を数える生活から解放されます」。use encoding::warnings 'FATAL' 。
  • 第40回 Text::MicroTemplate:得意分野なんだからPerlを使えばいいじゃない、という方に | gihyo.jp

    モダンPerlの世界へようこそ 第40回Text::MicroTemplate:得意分野なんだからPerlを使えばいいじゃない、という方に テキストの整形はPerlの基 Perlは「Practical Extraction and Report Language」とも呼ばれるくらいで、正規表現などによる情報抽出機能と並んで、レポートの形を整えて出力する機能はPerlの根幹をなす部分といえます。もちろんそのもっとも原始的な形は二重引用符でくくられた文字列のなかにそのまま変数を埋め込むものです。 print "This report is created by $author."; もう少しこったことをしたければ、Cから受け継いだprintf系の構文を使えばよいでしょう。 printf "This report is created on %04d/%02d/%02d.", $year, $

    第40回 Text::MicroTemplate:得意分野なんだからPerlを使えばいいじゃない、という方に | gihyo.jp
    tzccinct
    tzccinct 2011/04/02
    「ヒアドキュメントの@{[...]}の中にはふつうセミコロンを含む文は入れられませんが,ここではdo { } でくくることで対応しています。」
  • Perl Hackers Hub:第5回 Xslate 次世代テンプレートエンジン(1)|gihyo.jp … 技術評論社

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回は藤吾郎さんで、テーマはXslateです。 はじめに PerlとWebアプリケーションとの相性の良さは周知のとおりです。そして、Web開発にはテンプレートエンジンが欠かせません。テンプレートエンジンは、プレゼンテーションとロジックを分離し、デザイナとプログラマの分業を可能にし、MVC(Model-View-Controller)のV(View)を担う重要な要素です。 今回は、そんなテンプレートエンジンンの一つであり、筆者が開発しているXslateを紹介します。Xslateは2010年4月に開発を始めた新しいモジュールですが、速度・安定性・機能ともに高い水準になってきました。また、牧大輔氏や松野徳大氏をはじめとしたShibuya.pmの面々に多くのアドバイスをいただき、既存のテンプレートエンジンを置き換えられるくらい実用的に

    Perl Hackers Hub:第5回 Xslate 次世代テンプレートエンジン(1)|gihyo.jp … 技術評論社
  • 2日目レポート[随時更新] | gihyo.jp

    10月15日、16日、東京工業大学大岡山キャンパス (東京都目黒区) でYAPC::Asia 2010 Tokyoが開催されます。ページでは、2日目のレポートを随時掲載していきます。 電車遅延のため、日のプログラム開始を10分遅らせるとのことです(なお、休憩時間を利用して、すでに来予定しているタイムテーブルに修正されています⁠)⁠。 ※今回のレポートは全セッションを回れておりません。ご了承ください。 gfxさん「How Xslate Works - The next generation's template engine⁠」⁠ Text::Xslateの作者であるgfxさんによるXslateの内部構造を中心としたトークでした。 XslateはXSで書かれているテンプレートエンジンです。非常に高速に動作するように設計されていて、HTMLエスケープは自動で行ってくれる機能により安全性に

    2日目レポート[随時更新] | gihyo.jp
    tzccinct
    tzccinct 2010/12/06
    Tatsuhiko Miyagawaさん 「Keynote - The Tale of Plack」
  • 1