タグ

ブックマーク / codezine.jp (55)

  • 「形式手法」の“論理の力”による開発効率と品質の向上事例

    社会人エンジニア向けの教育プログラム「トップエスイー」から、エンジニアの皆さんに対して有用な情報をお届けするコーナーです。ところで、形式手法という言葉はご存じでしょうか? 一般には「数理論理学に基づき、効率よく高品質なソフトウェアを開発するための手法の総称」などといわれます。とはいえ「数理論理学」といわれてもなかなか実感ができないと思います。さらに「総称」と述べましたが、セミナーや書籍などで勉強した方も、その中の一つの手法や観点のみに触れたのではないかと思います。記事ではAmazon Web ServiceやFacebook等の具体的な事例にも触れ、形式手法と呼ばれるアプローチのいくつかの方向性・可能性について紹介します。「形式手法」という広すぎる言葉はいったん忘れて、難しい専門用語に振り回されないよう、できるだけ一般的な言葉での説明を補足します。 「網羅的テストが可能な擬似コード」を用

    「形式手法」の“論理の力”による開発効率と品質の向上事例
    kuenishi
    kuenishi 2017/11/08
  • フリーのVM環境を使って、ビッグデータ分析の学習環境をすばやく構築する

    はじめに Hadoopを使って大規模データを蓄積し分析するのは、もはや当たり前になってきた昨今ですが、大規模データ分析の環境を試すのは、なかなか難しいというのが現状です。確かに、Hadoop単体やSQLエンジン単体なら、Amazon EMRやGoogle BigQueryなどを使うことで体験することは可能でしょう。しかし、大規模データの分析基盤では以下のようなことを行っていく必要があります。 RDBMSからデータをHadoopにインポートする SQLを使って、大規模データを高速に分析する アクセスログなどの大量の非構造化データを分析する 大量のデータに対し、リコメンドに利用するための高度な分析処理を行う 大量のデータを全文検索できるようにする これらすべてを試す環境を構築するのは、たとえクラウド環境を使ったとしても困難です。また、(検証環境としては)意外と高額な費用がかかってしまい、永続化

    フリーのVM環境を使って、ビッグデータ分析の学習環境をすばやく構築する
    kuenishi
    kuenishi 2015/04/24
  • 米Basho、分散クラウドストレージソフトウェア「Riak CS 1.5」リリース

    Riak CS (Cloud Storage)は、分散データベースの「Riak」上に構築されたオープンソースソフトウェア。パブリック/プライベートクラウドを支え、アプリケーションやサービス向けの信頼性の高いストレージとして利用されている。 今回のバージョンでの新機能は以下のとおり。 「Amazon S3互換性の拡張」: multi-object delete(一つのコールで複数のオブジェクトを削除すること)、Put object Copy(指定したオブジェクトを任意のバケットにコピーすること)、コンテンツデリバリーネットワーク(CDN)とのより柔軟なインテグレーションを可能にするキャッシュコントロールヘッダなどの新機能が含まれる。 「ガベージコレクションプロセスのパフォーマンス向上」: 特にオブジェクトのアップデートとデリートのレートが高い顧客向けの機能で、ガベージコレクションのためのフラ

    米Basho、分散クラウドストレージソフトウェア「Riak CS 1.5」リリース
    kuenishi
    kuenishi 2014/08/07
  • 実用段階に入ったNoSQLをおさらい 「Cassandra」の概要と導入手順・基本設定

    ビックデータとは はじめに、Cassandraが得意としているビックデータについて解説します。ビックデータという言葉が一般的に使われていますが、実際のところ何を指すのか、これまでとの違いは何かを説明します。 何に使われているのか 「ビックデータ」とは、通常の処理では処理不可能な膨大な蓄積データを指す言葉です。これまでは、処理することをあきらめていた膨大なデータを処理対象とすることで、新しい答えを見出すことを目指しています。しかも短時間で処理することで、タイムリーな活用を目指すのです。 これまでは、ばらばらに発生していたデータが、通信環境の発達でリアルタイムに収集することが可能になりました。個々のデータは小さくても、大量に集まれば膨大なデータです。せっかく集めた膨大データを活用するために時間が掛っては何もなりません。大量に集めたデータを短時間に効率よく処理して、処理結果を得られる必要がありま

    実用段階に入ったNoSQLをおさらい 「Cassandra」の概要と導入手順・基本設定
    kuenishi
    kuenishi 2014/01/10
    ものすごくもにょもにょするけど一番のヒットはこれ「Cassandraは、最大で5次元のデータ構造を取り扱えます 」
  • ファウンダーに訊く、オープンソースのPaaS環境「Cloud Foundry」の魅力と使い方

    1. Cloud Foundryの魅力 従来のPaaSの多くは、特定のOSとミドルウェア、開発フレームワーク、アプリケーションサービスセットなどによって構成され、開発者が利用できる機能は限定的なことが一般的だった。そこに切り込んだのがCloud Foundryである。Cloud Foundryではオープン性を第一の特徴として掲げており、Spring FrameworkやRuby on Rails、node.js、Grailsなどといったオープンソースのプロダクトによって構成される。さらに、Cloud Foundry自身もオープンソースになっており、その成果物を自由にカスタマイズして、自前の環境、例えば自社サーバや他社のIaaSなどに展開して利用することができる。オープンソースプロジェクトとしての成果物はコミュニティサイトで公開されている。 VMware社でSenior Director o

    ファウンダーに訊く、オープンソースのPaaS環境「Cloud Foundry」の魅力と使い方
    kuenishi
    kuenishi 2012/06/25
  • 開発ツールベンダーの老舗が語る C++によるソフトウェア開発の今と将来性

    エンバカデロが提供している「C++Builder」は、C言語およびC++向けの統合開発環境である。同社の代表製品である「Delphi」と同様に、構成部品を配置していくことでビジュアルにユーザインターフェースを構築できるRADツールであり、1997年に最初のバージョンがリリースされて以来、15年にわたってアップデートを繰り返してきた。現行バージョンであるC++Builder XE2ではマルチプラットフォーム対応にも注力されており、Mac OS向けのアプリケーション開発が可能になったほか、「FireMonkey」と呼ばれる新しいグラフィックフレームワークによって高品質な3Dグラフィックを作成できるようになっている。 1. C/C++の需要は依然として高い ──まず、C++の言語そのものについて、現在どのような状況にあるのかを教えていただけますか。 藤井:最近はさまざまな軽量プログラミング言語が

    開発ツールベンダーの老舗が語る C++によるソフトウェア開発の今と将来性
    kuenishi
    kuenishi 2012/06/25
  • ファイル・ディレクトリ名の一括置換/一括作成 業務で楽するためのUNIXテクニック集

    はじめに この連載では、UNIX系OSをコマンドライン上から効率よく利用するために知っておくべきテクニックや、便利な小技を紹介していきます。 今回は、第0回、第1回で紹介したfind/xargsコマンド、シェルの変数展開、制御構造を利用した「ファイル・ディレクトリ名の一括置換」に関するテクニックを紹介します。 また、「ファイルやディレクトリの一括作成方法」「シンボリックリンクの作成方法」に関するテクニックも紹介します。「ファイル名の置換」テクニックを検証する際の、コマンド確認環境構築にご利用ください。 今までの記事 第0回 まずはおさらい、シェル制御構造と正規表現の基礎 第1回 「検索」編 find/grep/xargsコマンドを使いこなす 対象読者 UNIX系OSコマンドを一通り利用したことがある方 正規表現を利用したことがある方 何らかのプログラミング経験がある方 動作確認環境 Lin

    ファイル・ディレクトリ名の一括置換/一括作成 業務で楽するためのUNIXテクニック集
  • あなたはC++の発明者? それとも創造者?~Bjarne Stroustrup氏との対話~

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    あなたはC++の発明者? それとも創造者?~Bjarne Stroustrup氏との対話~
    kuenishi
    kuenishi 2008/08/21
  • 【RubyKaigi'08】詳細レポート : 多様化するRuby:CodeZine

    Ruby会議2008 初日(注1)は、日Rubyの会/東京大学のささだこういち氏による、『現在の、そしてこれからのRubyVM開発』で幕を開けた。 この記事では、日Ruby会議2008から次の5つのセッションを中心に、日Ruby会議2008で示された現在のRuby、将来のRubyについてまとめてみたい。『現在の、そしてこれらからのRubyVM開発』(ささだこういち)『JRuby:Ready for Action』(Charles Nutter)『The Magic of Rubinius』(Evan Phoenix)『Ruby《を》教えてるんじゃない、Ruby《で》教えてるんだってば』(増原英彦)『Rails症候群の研究』(前田修吾)  なお、記事は必ずしもセッションの内容をそのまま書いているわけではない点をお断りしておく。 記事では、セッションの限られた時間では語りつくせな

  • Hadoop、hBaseで構築する大規模分散データ処理システム:CodeZine

    はじめに この連載では、大規模分散計算フレームワーク「Hadoop」と、その上につくられた大規模分散データベース「hBase」の仕組みと簡単なサンプルアプリケーションを紹介します。HadoopとhBaseは、Googleの基盤ソフトウェアのオープンソースクローンです。機能やコンセプトについては、Googleが発表している学術論文に依っています。 これらの学術論文によると、Googleでは大規模分散ファイルシステム「Google File System」、大規模分散計算フレームワーク「MapReduce」、大規模分散データベース「BigTable」、分散ロックサービス「Chubby」という4つのインフラソフトウェアが使われています。 図1にGoogleの基盤技術間の依存関係、そしてそれに対応するOSSの対応関係を示しました。まずは対応するGoogleの基盤技術それぞれの機能や特徴をざっくりと

  • PythonとDjangoでExcelファイルを作成:CodeZine

    はじめに クライアントにデータを操作させる必要がある場合には、Excelのスプレッドシートを用意するのが最も簡単です。スプレッドシートはPythonを使って簡単に作成できますし、スプレッドシートをWebからダウンロードさせることも、DjangoというWebフレームワークを使えば簡単です。この記事ではスプレッドシートの進化の歴史について簡単に触れた後、この2つの操作方法について説明します。スプレッドシートの進化の歴史 サメは何百年もの間、あまり進化していません。その最大の理由は、野生で十分に生きていけるからです。獲物を実に上手く捕らえることができるので、サメは自らを適応させる必要も、変化する必要もなかったのです。これ以上進化させるところはないというほどに、サメは完璧な恐怖のフィッシュハンターです。 サメと同様に、スプレッドシートも数十年の間、あまり進化してきませんでした。サメの例と同じく、ス

  • Javaでレゴロボットを動かしてみよう! 1-おためし編:CodeZine

    はじめに 皆さん、こんにちは! 突然ですが、組込み機器におけるソフトウェア開発(以下、組込みソフト開発)には、どんな開発言語を使用していると思いますか? そうです、一番多いのがC言語です。その他、C++やアセンブリ言語なども使用されています。 ところで、Javaでも組込みソフトの開発ができることをご存知でしょうか? Javaを搭載したデジタル機器・家電製品には、コピーやFAXなどの複合機、携帯電話、カーナビなどがあります。Javaの開発と言うとWebアプリケーションが多いですが、組込みソフトはどのように開発していくのでしょうか……。 ここではレゴロボット「教育用レゴ マインドストームRCX」を使って、組込みソフト開発の入り口を一緒に体験してみましょう!レゴロボットについて 今回はこのレゴロボットを使用します。 RCXには8ビットのマイコンが内蔵されています。メモリは16KbyteのROMと

  • Joelに聞く、「優れた開発者」の要件・心構え・努力すべきこと:CodeZine

    世界的に認知されているソフトウェア開発プロセスのエキスパート。彼のWebサイトJoel on Softwareは、世界中のソフトウェア開発者に人気があり、30以上の言語に翻訳されている。ニューヨークにあるFog Creek Softwareを創業し、ソフトウェアチームのためのプロジェクトマネジメントシステムとして人気のあるFogBugzを作った。JoelはMicrosoftExcelチームのメンバーとしてVBAをデザインし、Juno Online Servicesでは数百万人が使うインターネットクライアントを開発した。 優れた開発者の要件――まず、「優れた開発者にはどのようなことが求められるか」についてお聞かせください ああ、大変だ。それなら12箇条ありますね。(笑) まじめに答えると、見方が二つあって、ひとつは成功するチームを作る上で誰を選ぶかということです。私はそういうとき、頭がよく

  • 日本型ビジネス・インテリジェンス・プラットフォームの重要性:CodeZine

    社内情報システムの構築が一通り終わると、それによってもたらされたデータの活用法というフェーズに移っていきます。そこで注目されているキーワードが「ビジネス・インテリジェンス(BI)」。膨大なデータをハンドリングし、そこから経営に役立つ数値を可視化させ、経営戦略に役立てる。新しいビジネスを作り出すプラットフォームが、BIなのです。このBIを実現化するツールの問題点と重要性について解説していきます。 業務効率を上げるために、ERPやCRMといった情報システムが導入されるのが当たり前の時代になってきました。顧客データや在庫データ、部品データなど膨大な量のデータが吸い上げられるシステムを構築した上で、その活用法が問われる時代になってきたと言えます。ここで注目されているのがBIという概念です。 今、企業にはさまざまなデータが集まっています。例えば、POSデータなどは数千、数億レコードのデータがデータ

  • Web 2.0エフェクトとリッチクライアントアプリケーション:CodeZine

    はじめに 市場には、ユーザーのWebエクスペリエンスを向上させるためのテクノロジが数多く存在します。インターネットが自社のビジネスモデルの不可欠な部分になっている企業の多くは、ユーザーベースを拡大したり、顧客をつなぎとめておくために、そうしたテクノロジを利用しています。たとえばYouTubeやAmazonYahooは最近、ユーザーエクスペリエンスを向上させるために自社のメインWeb資産にAdobe Flashを導入し、動的なコンテンツを含むウィジェットを利用できるようにしました。このようなWebエフェクトはリッチクライアントアプリケーションとも呼ばれます。リッチクライアントアプリケーションの背景にあるアイデアは、クライアント側により多くのロジックを置いて、アプリケーションの応答性と対話性の両方を高めようとするものです。 稿では、Web 2.0ムーブメントと共に現れた種々の新しいWebエ

  • 【デブサミ2008】真のDBエンジニアになるために必要なこと:CodeZine

    デブサミ2008初日の最後のセッションで、CodeZineのSQL連載でもお馴染みのミック氏が、「みんなまとめて面倒見よう~真のDBエンジニアになるために必要なこと~」と題した、CodeZineスペシャルセッションを講演。今月刊行した「達人に学ぶ SQL徹底指南書」の狙いや、SQLの原理の理解、データベースエンジニアとはどんな仕事か、またどんな仕事であるべきかについて語った。 中間層が欠けている日DB界 ミック氏は、現在の日のデータベースエンジニア(以下、DBエンジニア)の構造を、中間層のえぐれた花瓶型と例え(正常であればピラミッド型)、初級者とベテランをつなぐ人材の不足を投げかけた。このままでは近い将来、団塊世代の退職に引き起こされる現象と同様に、ベテランの層がほとんどいなくなってしまうと危惧する。 これは、書籍やWebにおける技術資料についても同様のことが言え、「達人に学ぶ

  • pthreadについて(スケジューリング):CodeZine

    #include <stdio.h> #include <unistd.h> #ifdef _POSIX_PRIORITY_SCHEDULING #error "_POSIX_PRIORITY_SCHEDULING defined" #else #error "_POSIX_PRIORITY_SCHEDULING not defined" #endif #ifdef _POSIX_THREAD_PRIORITY_SCHEDULING #error "_POSIX_THREAD_PRIORITY_SCHEDULING defined" #else #error "_POSIX_THREAD_PRIORITY_SCHEDULING not defined" #endif #ifdef _POSIX_THREAD_PRIO_PROTECT #error "_POSIX_

    kuenishi
    kuenishi 2008/01/30
    いろんな関数が載っていて参考になる
  • NTTドコモがGoogle製品の標準搭載を発表、Googleカラーに染まるドコモ携帯:CodeZine

    今回の業務提携によって、両社は「検索サービスにおける連携強化」「検索連動広告」「各種Googleサービスのiモード対応」「iモードにおける新たなサービスの検討」、「Google提唱のAndroidプラットフォームに関する検討」の5つに取り組むことになる。 まず、2008年春をめどに従来のiモードメニューサイト検索結果に加え、携帯電話向け一般サイト、PCサイトの検索結果を表示するサービス拡充を行い、iモードポータルである「iMenu」のトップ画面に検索BOXを新設する。また、Googleの広告配信プラットフォームである「Google AdWords」によって、検索結果ページに検索ワードと関連する広告表示を行う検索連動広告を開始する。 他にも、Googleマップサービスの専用アプリケーションのiモード端末標準搭載をはじめ、各種Googleサービス(Gmail、YouTube、Picasaなど

  • C++でのスレッドクラスの作成:CodeZine

    はじめに 先日、私の兄弟から、オブジェクト指向のスレッド処理を楽にするC++クラスを簡単に作成する方法はないだろうかという相談を受けました。私はこれまで、さまざまなマルチスレッドライブラリを作成した経験がありますが、いずれもC言語によるものでした。低レベルのプログラミングには私はいつもC言語を使用し、C++はもっぱらGUI開発に使用しています。CodeGuruにはオブジェクト指向でスレッド処理を行うクラスの優れた例が色々と掲載されていますが、彼の要望をすべて満たし、かつ私の好奇心をも満たすクラスは見当たりませんでした。彼が求めていたのは、次のような特徴を備えたスレッドクラスでした。イベントドリブンとインターバル(間隔)ベースの両方の非同期スレッド処理に対応している均一型と細分型の両方のスレッド処理に対応している複数タスクを格納して処理できる、先着順(FCFS:First Come Firs

    kuenishi
    kuenishi 2008/01/08
  • CodeZine:RubyのCursesを使ってコンソールを制御する(コンソールライブラリ)

    対象読者Rubyの入門書を一読した方練習用にRubyのプログラムを作りたいが良い課題が見つからない方 必要なもの Ruby体とお好きなエディタを用意してください。RubyGemsも少し使います。 筆者は以下の環境で執筆しています。 ruby 1.8.6-p111 / SAKURAエディタ / WindowsXP SP2 / gem 0.9.5この連載の目標 作っていく例題としてどんなものがいいかとかなり考えました。今回はRailsを使わないと決めたのでWEBアプリは避けたいし、入門書によくあるようなコマンドライン上で文字がちょっと出るだけというのも面白くないし、GUIアプリも敷居が高そうです。考えた結果、コンソールをいろいろ制御するようなプログラムを作ることにしました。古い人には懐かしく若い人には新鮮かもしれません。見た目は地味ですがなかなか面白いですよ。では始めていきましょう。コンソー