タグ

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

  • 第79回 最近Perlに追加された実験的機能 try文、defer文、class文(1) | gihyo.jp

    Perl Hackers Hub 第79回最近Perlに追加された実験的機能 try文⁠⁠、defer文⁠⁠、class文(1) 連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはcharsbarこと石垣憲一さんで、テーマは「最近Perlに追加された実験的機能」です。 もとになるモジュールが存在している新機能 最近Perlに追加された新機能の中には、開発サイクルを速く回すためにCPANモジュールとしてプロトタイピングを行ったうえで、Perl体に実験的な機能として移植し、正式な機能への昇格を待っているものがいくつかあります。稿ではそのような実験的機能を紹介していきます。 なお、稿のサンプルコードは基的に執筆時の最新開発版であるPerl 5.37.11(2023年5月)で動作確認をしています。 try~catch文 ─⁠─正しいエラー処理 Perlで例外を

    第79回 最近Perlに追加された実験的機能 try文、defer文、class文(1) | gihyo.jp
  • 第78回 Perl Webアプリケーションのリプレイスで大事なこと ~Stranglerパターンで段階的に移行する(2) | gihyo.jp

    Perl Hackers Hub 第78回Perl Webアプリケーションのリプレイスで大事なこと ~Stranglerパターンで段階的に移行する(2) 連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーは須藤将史さんで、テーマは「Perl Webアプリケーションのリプレイス」です。 <前回(1)はこちら。> 新規のコードで既存のコードを包む リプレイス先のアプリケーションで既存のコードをどれだけ活かすかは、リプレイスで解決したい課題しだいです。稿では開発効率の改善のため、クライアントとサーバを疎結合にしてREST APIで開発したいとします。この場合、データベースと接続するコードはひとまずそのまま活かします。 データベースと接続するコードはサーバの内側に位置するコードです。ここを起点にクライアント側へと向かってどこまで既存のコードを活かせるか、解決したい課題

    第78回 Perl Webアプリケーションのリプレイスで大事なこと ~Stranglerパターンで段階的に移行する(2) | gihyo.jp
  • 第68回 他言語のライブラリをPerlに移植する(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはうたがわききさんで、テーマは「他言語のライブラリをPerlに移植する」です。 稿は、執筆時点2021年5月の最新版であるPerl 5.34.0を用いました。稿のサンプルコードは、WEB+DB PRESS Vol.123のサポートサイトから入手できます。 なぜ他言語のライブラリをPerlに移植するのか 筆者は、Twitterに投稿する文章を整形・検証するためのtwitter-textライブラリをPerl に移植した、Twitter::Textを実装・公開しました。稿では、Perl以外のプログラミング言語で実装されているライブラリをPerlに移植する際の考え方や気を付けるべきことについて、Twitter::Textを例に解説します。 はじめに、他言語で実装されたライブラリをPerlに移植する理由を述べます。

    第68回 他言語のライブラリをPerlに移植する(1) | gihyo.jp
  • 第2回 実務における機械学習の解釈手法と因果推論の位置づけ | gihyo.jp

    2021年8月に発売された『機械学習を解釈する技術』の著者である森下光之助氏と『施策デザインのための機械学習入門』を共著した齋藤優太氏、安井翔太氏の3人が集まり、執筆の経緯や書籍への想いについて3回にわたって語る第2回。第1回では書籍執筆の動機から書籍執筆の裏側に話がおよびました。 執筆の裏側をもう少し掘り下げる 安井:森下さんの執筆の裏話は何かありますか? 森下:裏話ですか。執筆に1年半もかかってしまって申し訳ないというところですね。 安井:やっぱり1年半ぐらいかかりましたか。 森下:最初に依頼を受けたのが2019年の12月で、それから1年半かかったんですが、最初は半年ぐらいで終わるんじゃないかと思ってたんですけど、まったくそんなことなくて(笑⁠)⁠。実際に執筆している時間だけ考えるとそんなに長くないような気もするんですが、業務をしながら執筆するってすごく難しいことなんだと感じました。

    第2回 実務における機械学習の解釈手法と因果推論の位置づけ | gihyo.jp
    kujoo
    kujoo 2021/08/19
  • 第679回 LXD上にWindowsをインストールする | gihyo.jp

    システムコンテナの管理ソフトウェアであるLXDは3.19から仮想マシンインスタンスもサポートするようになりました。つまりホストのカーネルと共有するコンテナだけでなく、QEMUを利用した仮想マシンも起動できるようになったのです。 この機能により、Linux以外のイメージであってもLXDのインターフェースを利用して管理できるようになりました。 今回はLXDを使って「Windowsインスタンス」を起動してみましょう。 WindowsをQEMUで動かすと言うこと 第609回の「LXDからコンテナではなく仮想マシンを起動する」でも紹介したように、LXD 3.19から仮想マシンインスタンスのサポートも開始しました[1]⁠。 とはいえ直後のLTSリリースであるLXD 4.0では「仮想マシンも使える」程度で「コンテナ版でしか使えない」機能も多くありました。 しかしながらフィーチャーリリースである4.x系で

    第679回 LXD上にWindowsをインストールする | gihyo.jp
  • LINEのインフラ基盤「Verda」のビジョンとSREが果たすべき役割とは | gihyo.jp

    インタビュイー Verda SREチーム マネージャー 萬治渉 昨今、ソフトウェアエンジニアリングを活用し、サービスの運用効率化や信頼性向上に取り組む考え方や方法論である「SRE」(⁠Site Reliability Engineering)が広まりつつあります。LINEでも2019年にSREに取り組む専門チームが発足しており、同社のプラットフォームである「Verda」で提供するサービスの運用業務の効率化などに取り組んでいます。そのSREチームを率いるマネージャーである 萬治渉氏に、SREチームが発足した背景や現状の取り組みなどについてお話を伺いました。 LINEの多数のサービスを支える「Verda」 ――まずVerdaの概要について教えてください。 萬治:LINEでは一般的なパブリッククラウドを使う方針は基的には採らず、大部分のインフラを自社で保有し運用しています。このインフラのプラッ

    LINEのインフラ基盤「Verda」のビジョンとSREが果たすべき役割とは | gihyo.jp
  • 2021年のウェブ標準とブラウザ | gihyo.jp

    2021年になりましたね。 矢倉眞隆(myakura)です。ウェブ標準やブラウザに興味のあるウェブ開発者です。gihyo.jpでは2009年に「Web標準とその周辺技術の学び方」という連載をしていました。 今回は昨年の泉水さんに代わり、2021年のウェブ標準やブラウザの動向を占おうと思います。2020年は世界もブラウザもそれなりに大きな出来事がありましたので、2020年の動きをまずおさえ、そのうえで2021年はどうなるのかを考えてみました。 W3Cのプロセス改訂でLiving Standardライクな仕様の改訂が増えていく W3Cは2020年9月に、新しいプロセス文書と特許ポリシーを公開しました。 新しい文書プロセスはW3Cの組織の定義や標準化の流れ、意思決定などについて定めた文書です。ここ数年は毎年更新されていますが、2020年はこれまでと比べて最大級とプレスリリースでもうたわれています

    2021年のウェブ標準とブラウザ | gihyo.jp
  • 第643回 Raspberry Pi 4でデスクトップ版Ubuntu 20.10を使用する | gihyo.jp

    今回はRaspberry Pi 4の8GBモデルでUbuntu 20.10から提供されるようになったデスクトップイメージを使用する方法を紹介します。 第624回の再読を 記事を読み始める前に、まずは『第624回 Raspberry Pi 4にデスクトップ版Ubuntuをインストール』を再読してください。重要なことはだいたいそちらに記述しています。 Raspberry Pi 4用のUbuntu(デスクトップ)イメージ 第624回の予言どおり、あるいは第640回で少し紹介したように、Ubuntu 20.10からRaspberry Pi向けのUbuntu(デスクトップ)イメージがリリースされました。 このイメージはRaspberry Pi向けとはいいながら、メモリーが4GB以上のモデルに対応ということで、現状実質Raspberry Pi 4専用です。またメモリーが少ないモデルを所有している場合

    第643回 Raspberry Pi 4でデスクトップ版Ubuntu 20.10を使用する | gihyo.jp
    kujoo
    kujoo 2020/11/25
  • 第62回 Perl歴史散策 ―インタプリタの実装と、構文の進化をたどる(2) | gihyo.jp

    前回の(1)はこちらから。 Perl 2.0─⁠─ より「らしく」なったレガシーPerl 1988年6月に、Perl 2.0がリリースされました。タグはperl-2.0です。Perl 2.0での変更点は、Larryによるコミットメッセージに簡潔にまとまっています。主には次の変更がありました。 拡張正規表現*+、(foo|bar)、文字クラス\s、\dなどの追加 local変数の追加 foreachの追加 Perlスクリプトの拡張子がplとして定義され、do foo. plでスクリプト中にロードが可能に いくつかのPerl製のモジュールの初期実装が登場 Perl 5では変数宣言の際にmy、our、localの3種類のキーワードを利用しますが、この中ではlocalが最初に登場しました。 リポジトリの構成 Perl 2.0のリポジトリでは、正規表現周りの処理を担うregexp.(c|h)の追加や

    第62回 Perl歴史散策 ―インタプリタの実装と、構文の進化をたどる(2) | gihyo.jp
  • 第63回 PPIとPerl::Tidyを組み合わせて作るコード整形ツール(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーPerlで長年Webサービス開発に携わっているマコピーこと谷脇真琴さんで、テーマは「PPIとPerl::Tidyを組み合わせて作るコード整形ツール」です。 稿のサンプルコードは、WEB+DB PRESS Vol.118のサポートサイトから入手できます。 日常化するプログラムの静的解析 昨今のプログラミング現場では、プログラミング作業を手助けする、さまざまなツールが用いられています。開発チーム内で独自のツールを作成して用いる事例も多く見られます。昔と違う点としては、格的な静的解析が広く使われていることが挙げられます。 静的解析とは、ソースコードをプログラムとして実行せずに、プログラムの構造や記述を解析する手法です。一方で、プログラムとして実行したうえで解析する手法を動的解析と言います。動的解析に比べて、静的解

    第63回 PPIとPerl::Tidyを組み合わせて作るコード整形ツール(1) | gihyo.jp
  • 第62回 Perl歴史散策 ―インタプリタの実装と、構文の進化をたどる(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーは清水隆博さんで、テーマは「Perl歴史散策」です。Perl 1.0から現在までのバージョンを、実装と構文の両面から追っていきます。 Perlのバージョン Perlは、最初のリリースである1.0から現在に至るまで、数々のバージョンの遍歴を経ています。みなさんが現在利用しているのは、ほとんどがPerl 5のいずれかのバージョンでしょう。Perlはバージョンが上がるにつれて、構文はもちろんのこと、C言語によるインタプリタの実装もさまざまな改良や変更が行われてきました。そこで稿では、最初のリリースから現在までの代表的なPerlのバージョンについて、Perlの構文とC言語による実装の両方の側面から追っていきます。 Perlインタプリタのソースコード Perlの最初のリリース時にはGitは存在していませんでした。当時のP

    第62回 Perl歴史散策 ―インタプリタの実装と、構文の進化をたどる(1) | gihyo.jp
  • 第63回 PPIとPerl::Tidyを組み合わせて作るコード整形ツール(2) | gihyo.jp

    前回の(1)はこちらから。 静的解析ライブラリを組み合わせて部分的にコード整形を行う (2)では、PPIとPerl::Tidyを組み合わせて独自のコード整形ツールを作成します。 例として、開発の初期にはPerl::Tidyが導入されていなかったプロジェクトについて考えます。あとからPerl::Tidyを導入する場合、それまでに書かれたコードが一度に整形されます。そうすると、あとになって該当部分のコードが書かれた意図を履歴から調べる際に、コード整形のコミットログが出てきて、来知りたかったコミットまでたどり着けません。 この問題を解決するために、新しく追加や編集した行に限定してコード整形を行うツールを作成します。 Git::Repositoryで変更した箇所を検知する Gitを導入しているプロジェクトであれば、編集した差分はgit diffで知ることができます。この情報を解析して、整形すべき

    第63回 PPIとPerl::Tidyを組み合わせて作るコード整形ツール(2) | gihyo.jp
  • 揚げて炙ってわかるコンピュータのしくみ

    このの概要 技術が進むにしたがって,コンピュータの中身が見えなくなってきています。コンピュータの頭脳としてCPUがあって,OSがあってプログラムが動く…。漠然とわかっていても,実際にどういうしくみで意図したとおりに動作しているのかとなると,なかなかイメージできないものです。書はこのように,ブラックボックスになっているコンピュータのしくみを,「炙る」「揚げる」などの過激な手法も用いつつ,半導体レベルから実際に目に見える形でひもといていきます。 こんな方におすすめ コンピュータの仕組みを知りたい人 Maker(『ハードウェアハッカー』の読者層) 第1章 ソフトウェアとハードウェアの世界の境界 1.1 コンピュータが「見えなく」なってきている むかしはパソコンと電子回路は一体 コンピュータを理解する上での抽象化・ブラックボックス化 1.2 ブラックボックスの中身を見るといいことが? ブラック

    揚げて炙ってわかるコンピュータのしくみ
  • 2020年5月第4週 6月11日にAndroid 11の発表イベントを開催 | gihyo.jp

    6月11日にAndroid 11の発表イベントを開催 次世代のモバイルOS「Android 11」のベータ版を発表するためのオンラインイベントが6月3日に開催されます。日時間では6月4日の0時から開催です。 Android 11 Beta Launch Show  |  Android デベロッパー  |  Android Developers 新型コロナウィルスの感染拡大防止のために、大規模イベントは中止やオンラインイベントに切り替わりました。例年であれば、Google I/Oは終了している時期ですが、今年は中止となり、これから切り出されたイベントが1ヵ月遅れでの開催となりました。 今後のリリーススケジュールは、発表会と同時にBeta 1が公開されます。 その後、7月には安定性を向上したBeta 2の公開が予定されています。8月には、リリース候補となるBeta 3の公開が予定されていま

    2020年5月第4週 6月11日にAndroid 11の発表イベントを開催 | gihyo.jp
    kujoo
    kujoo 2020/05/23
  • 第42回 Template Toolkit:Perl製テンプレートエンジンのデファクトスタンダード | gihyo.jp

    組み合わせ自由なツールキット Template Toolkit、通称TTは、その名前からもわかるように、もともとは単なるテンプレートエンジンではなく、テンプレートエンジンをつくるためのツール群をまとめたものです。そのツール群を組み合わせた標準のエンジン、標準のフロントエンドと呼べるものもありますが、これはあくまでもTTのよくある利用法のひとつであって、そのすべてではありません。 たとえば、CPANにはApache::Templateという、TTのエンジン部分をmod_perl用にカスタマイズしたうえでmod_perl用のフロントエンドをかぶせるモジュールがありますが、これを使えば、最初に多少の設定は必要になるものの、あとはTTのテンプレートを適切なパスに置くだけで、パラメータの取得からルーティング、レンダリングまでよしなに計らってくれるようになります(TTの文法をサポートしたPHPのような

    第42回 Template Toolkit:Perl製テンプレートエンジンのデファクトスタンダード | gihyo.jp
    kujoo
    kujoo 2019/11/21
  • 第2回 ネットワーク遅延と高速化 | gihyo.jp

    皆さんこんにちは。今回は、前回の話の続きです。 まず前回のおさらいをすると、以下のようになるということでしたね。 ●TCPを用いるアプリケーションの最大スループットは、往復の遅延時間(RTT:Round Trip Time)の影響をうける ●ウィンドウサイズが64Kバイトの場合のTCP最大スループットの理論値は以下のとおり RTT 1msec のとき 512Mbps RTT 5msec のとき 102.4Mbps RTT 10msec のとき 51.2Mbps RTT 15msec のとき 34.1Mbps RTT 20msec のとき 25.6Mbps RTT 50msec のとき 10.24Mbps RTT 100msec のとき 5.12Mbps RTT 200msec のとき 2.56Mbps では、現実のネットワークではどのくらいの遅延が発生するのでしょうか? ネットワークにかか

    第2回 ネットワーク遅延と高速化 | gihyo.jp
    kujoo
    kujoo 2019/10/06
  • 第1回 DBサーバの構造を知ろう! | gihyo.jp

    記事は、『Software Design 2019年8月号』の第2特集「ゲームを題材に学ぶ 内部構造から理解するMySQL」をWeb掲載用に再編集したものです。 記事のテーマを、より基的なところから丁寧に解説した『SQLの苦手を克服する データの操作がイメージできれば誰でもできる』が2019年8月26日に発売予定です。記事と併せてご活用ください。 ゲーム開発におけるRDBMSの役割 RDBMS(Relational DataBase Management System)は業務システム(以下、業務系)で多くの実績を作ってきました。一方でゲーム分野(以下、ゲーム系)では、RDBMSはほとんど使われていませんでした。ネットゲームではなく、スタンドアローンのゲームが中心だったので、プレーンなテキストやバイナリ形式でデータを保存していたからです(スタンドアローン環境向けのSQLiteもまだ

    第1回 DBサーバの構造を知ろう! | gihyo.jp
  • 2018年6月29日 Gentoo、GitHubリポジトリを不正ハックされる | gihyo.jp

    Gentoo Linuxは6月28日(世界標準時⁠)⁠、同日20時20分に正体不明の何者かによってGitHubのページ(GitHub Gentoo)のコントロールが奪われたことを明らかにした。不正アクセス者は複数で、リポジトリ内のいくつかのコンテンツやページに手を入れたとみられる。 Github Gentoo organization hacked - Gentoo Linux その後の情報によれば、翌29日の4時26分にはGentoo側がコントロールを取り戻し、GitHubとともに修復作業と調査を続けているという。Gentooはユーザに対し、GitHub Gentooの利用を控えるように訴えており、現時点で一般からアクセスすることはできなくなっている。 Gentoo側は「GitHub Gentooは単なるミラーであり、マスターのリポジトリは我々自身が所有するインフラ上でホストされている。

    2018年6月29日 Gentoo、GitHubリポジトリを不正ハックされる | gihyo.jp
  • 2017年3月16日 「Windowsへの復帰は技術的な問題ではなく政治的な問題」―ミュンヘンのIT担当者が発言 | gihyo.jp

    Linux Daily Topics 2017年3月16日「Windowsへの復帰は技術的な問題ではなく政治的な問題」―ミュンヘンのIT担当者が発言 「LinuxとLibreOfficeはミュンヘンのシステムをずっと順調に支えてきている。技術的な問題は何も存在しない。もしWindowsに移行するなら、それは政治的な問題でしかない」―独ミュンヘンのITサービス部門「IT@M」で統括責任者を務めるKarl-Heinz Schneider氏は3月上旬、LinuxからWindowsへの再移行が取り沙汰されている問題に対し、独メディアのインタビューに関してこうコメントしている。 当初、ミュンヘン市長のDieter Reiter氏および同市長の所属するSPD(社会民主党)はWindowsへの再移行案を市議会に提出した後、2月中の同案可決を予定していた。しかし野党やFree Software Found

    2017年3月16日 「Windowsへの復帰は技術的な問題ではなく政治的な問題」―ミュンヘンのIT担当者が発言 | gihyo.jp
  • 第5回 Java VMの情報を取得する(前編) | gihyo.jp

    Java VMで監視すべき4つのポイント 前回は、システム運用者がJava VM(JVM⁠)⁠、アプリケーションサーバ、Javaアプリケーションから、ログ、JMXとMBean、ダンプを使用して情報を取得する方法を紹介しました。今回と次回では、JVMからどのような情報を最低限取得するべきか、詳細を紹介します。 システム運用者は、JVMが滞りなくアプリケーションを支援できているか、アプリケーションが動いているかを確認する必要があります。JVMは内部で管理しているさまざまなリソースに関する情報を持っていますが、システム運用者がそれらをすべてを監視することは不可能です。そこで、たくさんある情報の中から、次の4つのポイントに絞ってJVMの動きを監視します。 JVMがアプリケーションを中断することなく実行できているか JVMがアプリケーションのリソースを奪っていないか OSのリソースが十分に割り当てら

    第5回 Java VMの情報を取得する(前編) | gihyo.jp