Ubuntu 24.10(oracular)の開発 / ベータリリース、Xeon 6シリーズ(Sierra Forest、Granite Rapids)への対応 吉田史 2024-09-27 Ubuntu 24.10(oracular)の開発 / ベータフリーズとArm DesktopのThinkPad X13sサポート、Ubuntu 22.04.5のリリース 吉田史 2024-09-20
この本の概要 最先端の正規表現技術にスポットを当てた,初学者向け技術解説書。プログラマにとって欠かせないツールである正規表現。便利な正規表現の実力を発揮させるには,動作原理から理解するのが近道です。 本書では,パターンマッチの基本から,基本三演算および理論/数学的背景,VM型/DFA型という二大最新エンジン実装まで徹底解説。また,処理系を踏まえた効率的な書き方や落とし穴を避ける技法もしっかり押さえます。狙いどおりのパターンを綴り,高速に文字列を取得したい,そんなエンジニアの方々へ,長く役立つ技術知識を満載してお届けします。 こんな方におすすめ 正規表現をもっと便利に使いこなしたいプログラマの方々 正規表現とは何かを知りたい方 執筆担当一覧
株式会社ミクシィの長野です。第2回、第3回と前坂がmemcachedの内部について紹介しました。今回は内部構造から離れて、memcachedの分散についての紹介をいたします。 memcachedの分散 連載の1回目に紹介しましたが、memcachedは「分散」キャッシュサーバと言われていますが、サーバ側には「分散」の機能は備わっていません。サーバ側には当連載の第2回、第3回で前坂が紹介したメモリストレージの機能のみが組み込まれており、非常にシンプルな実装となっています。では、memcachedの分散はどのように実現しているのかと言うと、すべてクライアントライブラリによって実現されます。この分散方法はmemcachedの大きな特徴です。 memcachedの分散とは ここまで数度「分散」という言葉を用いてきましたが、あまり詳しく触れてきませんでした。ここでは各クライアントの実装に共通する大ま
はじめに GoogleなどのWeb検索エンジンでは、2004年ごろには数10Tバイトの索引を数万台のサーバに分散させていたと言われています。これは、大量のデータを索引化したり大量のクエリを捌く必要がある際に、1台のマシンでは十分な速度が出ないことがあるためです。近年のハードウェアの進化はめまぐるしいですが、それでもハードウェアによるスケールアップには限界があるため、大規模な検索エンジンにおいて検索処理をスケールさせるには複数台のマシンの利用が不可欠となります。今回は、転置索引の複数のサーバへの分散方法について見ていきます。 複数台サーバにおける転置索引 複数のサーバを利用して検索処理を高速化させる方法には、索引のレプリケーション(replication)と索引の分散(distribution)の2つがあります。索引のレプリケーションとは、複数台のマシンに同じ転置索引(のコピー)を配置する方
今回から2回に渡り、Ubuntuで利用可能ないくつかのソフトウェアを組み合わせて、入力テキストを喋る仕組みを作るレシピをお届けします。Mbrola、MeCabを使って音声を合成し、Linuxのサウンドサブシステムを通じて音声を出力します。 MBROLAプロジェクトとは MBROLAとは、汎用音声合成エンジン「mbrola」と、mbrolaで利用可能な音声データベースを開発するプロジェクトです[1]。1995年にベルギーのFaculte Polytechnique de Mons大学のTCTS研究室が開始しました。音声合成エンジンもデータベースもバイナリーの形で提供されているためオープンソースソフトウェアではありませんが、フリーなライセンス[2]のもとで利用できます。 DebianやUbuntuではmbrolaのパッケージが提供されています。Ubuntuソフトウェアセンターでmbrolaを
はじめに SinatraやRamazeといったRubyのWebアプケーションフレームワークに興味をお持ちの方であれば、Rackという名前をしばしば目にしているかもしれません。どうやら様々なフレームワークに使われているらしいのだけど、そいつが一体なんなのかよくわからない、そんなあなたのために今日はそのRackをご紹介したいと思います。 様々なフレームワーク、様々なアプリケーションサーバ しばらく前なら、Ruby on Railsブームの真っ只中、Rubyと言えばRails、Webアプリケーションを作るならRails、といったイメージを持たれていた方も多かったと思います。実際にWebアプリケーションを作ったり、Rubyに触れたりしたきっかけがRailsだったという方も多いでしょう。 しかし最近は、RubyのWebアプケーションフレームワークと一口に言っても、非常に簡単にアプリケーションが書けて
Amazon Elastic MapReduceとは 昨今、バッチ処理にHadoopを活用する事例が話題になっています。その中でも特筆すべきなのは、分散処理技術であるMapReduceです。しかし、MapReduceを実際に使うには、数台から数100台のサーバを用意し、Hadoopのセットアップもしなければなりません。そのようなサーバ構築・管理、セットアップの手間を無くし、すぐ使えるのがAmazon Web Service(AWS)のElastic MapReduce(EMR)です。 図1 Amazon Elastic MapReduce AWS、MapReduceの説明は多くの書籍、ブログなどを参照してください。また、EMRを使用するには、まずAWSのアカウントを作っておく必要がありますが、その手順も割愛させていただきます。本連載ではEMRの使い方、気をつけなければいけない点などを重点的
前回紹介したRedisのLIST型に続き、今回はSET型とSORTED SET型について、その構造とWebアプリケーション開発への応用を紹介します。 SET型の構造 RedisのSET型は、重複のない文字列要素の集合を保持するデータ型です。Javaのコレクションフレームワークをご存知の方には、「HashSet」のようなもの、と想像していただくと分かりやすいかと思います。 LIST型のPUSHやPOPと同様、SET型への追加/削除の時間計算量はO(1)となり、理論上はサイズに関係なく一定時間で操作できることになります。実際、ニコニコ生放送のシステムでは、要素数にして数万規模のSET型に対して、分間数千~数万回の追加操作を行っています。 一見、SET型のデータ構造は単純すぎて、アプリケーションで活用する機会が想像しにくいかもれません。RedisにはHash型という連想配列のように使えるデータ
前回、前々回の記事では、Rackの生まれた背景、Rackとは何か、実際にRackアプリケーションを作る際に使えるものをご紹介しましたが、もう一つまだ説明していない重要な要素がRackにはあります。今回は、そのミドルウェアという仕組みについてご紹介します。 ミドルウェアとは ミドルウェアとは何かを一言で言うと、「別なアプリケーションをラップして、リクエストやレスポンスを加工したり、処理を切り換えたりするRackアプリケーション」です。 この仕組みがあることで一体何ができるのでしょうか。Webアプリケーションを作っていると、リクエストやレスポンスをアプリケーションに行く前やアプリケーションの処理の後に加工したくなることはよくあります。例えば、条件に応じてURLの書き換えをしたり、エンコーディングの変換をしたり、Cookieの処理をしたり…といったことが日常茶飯事です。こういう処理を、サーバと
はじめに 今回はドキュメント指向型データベースの代表としてMongoDBを取り上げます。ドキュメント指向型データベースはRDBMSと違って、スキーマ(テーブル定義)が必要ないことが大きな特徴です。 今回も利用したコードやプログラムはgithubに置いてあるので適宜参照してください。 MongoDBの特徴 前々回、前回と紹介したmemcachedやTokyoTyrantは基本的にRDBMSと組み合わせて、「RDBMSの弱い部分を補う」という使い方でした。しかしMongoDBは少し違っていて、JOINが行えないこととトランザクションをサポートしていないこと以外は、ほぼRDBMSと同じように扱うことができるため、「RDBMSの代替として使う」ことが可能です。 上述したようにMongoDBはRDBMSと違ってJOINはできませんが、代わりに基準となるオブジェクトに別のオブジェクトをあらかじめe
はじめに Cucumberとは受け入れテストのためのテスティングフレームワークです。CucumberはRuby on Railsに依存しているライブラリではないため、例えば同じRuby制のフレームワークであるSinatraはもちろん、PHPなどで書かれたアプリケーションでも使用することができます。 Sinatraやフレームワークを使用していない素のRubyスクリプトなどをベースにCucumberの解説をすることも可能ですが、今回は仕事で使っている人が多く、また筆者自身もRailsを使って開発をしていることもあって、Railsをベースに解説させていただきます。 なぜCucumberなのか 筆者が勤めている株式会社RAWHIDE.では、Railsアプリを作成する場合、原則的にCucumberでテストを書くようにしています。Cucumber採用当時は、社内にナレッジが少ない、不慣れなど、なかなか
はじめに 初めまして。NTTアドバンステクノロジの金城と申します。幸運にも記事を執筆させていただけることになりました。WebSocketという新しいウェブの規格についての連載を、全4回の予定でお届けします。 用語統一について WebSocketは「WebSocket」「WebSockets」、単語を切り離した「Web Socket」等、表記に揺れがあります。2009年12月22日のワーキングドラフトのタイトルは「The Web Sockets API」となっていますが、2010年4月26日のエディターズドラフトでは「The WebSocket API」となっています。この連載では、最新の仕様書に則り、用語を「WebSocket」で統一します。 HTML5とWebSocketの関係 WebSocketは、もともとHTML5の一機能として仕様の策定が進められていました。しかし、Web S
GoogleやMicrosoftの面接試験問題として知られる「世界中にピアノの調律師は何人いるか?」「スーツケースにゴルフボールはいくつ入るか?」といった正確には答えることが困難な問題を、仮定や推定を駆使して短時間で見積もる手法を「フェルミ推定」と呼びます。このブログ記事ではフェルミ推定の問題を掲載したリンクをまとめています。どれも英語のページばかりですが、いくつかのページには回答例も掲載しており、どのようにして回答に導くのかについて知ることができます。 ブログ記事筆者によると、面接においては、正解に近い回答を出すことよりも「回答の道筋が論理的であること」「回答の道筋を選択した理由を、論理的に説明できること」を重要視しているようです。 ちなみに、本連載にて「Microsoft社の入社面接問題『ボートに乗って、手荷物を船外に放り出すと、水位は上がるか、下がるか』」という記事を紹介していま
さて、2回に渡ってHipster PDAの紹介と実践について書いてきました。Hipster PDAは常時携帯していますが、書き込んだメモは必ずノートかザウルス(PDA)に転記しています。そして、こういったメモを保存するには、しっかりとしたノート型のモレスキン[1]が便利です。今回は、このモレスキンについてユビキタス・キャプチャーという習慣とからめて語ってみます。 ユビキタス・キャプチャーという習慣 前回紹介しましたZTDの、10個の習慣の第一番目に、ユビキタス・キャプチャーがあります。それだけ重要でZTDの基本となる習慣です。(※2)。 簡単に説明しますと、ユビキタス・キャプチャーとは、いつでもどこでも小さなノートを携帯し、頭に浮かんだあらゆること(タスク、アイデアなど)を書いていく習慣です。これはGTDでの「収集」のプロセスにあたりますが、まとまった時間を「収集」にあてることはあり
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く