タグ

ブックマーク / atmarkit.itmedia.co.jp (43)

  • C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに

    Sourcetrailは、開発者が他人の書いたソースコードを理解し、生産的にコーディングを行えるよう支援する。開発者は既存のソースコードを理解することに多大な時間を費やすが、一般的なコードエディタは、こういった作業にはほとんど役に立たない。 Sourcetrailの主要開発者であるEberhard Gräther氏は、「Google Chrome」のグラフィックスチームにインターンシップとして参加した2012年時点の経験を次のように語っている。 「割り当てられた単純に見えるタスクに着手し、具体的なコードの改善に取り組み始めるとすぐに、Chromiumの巨大なアーキテクチャを理解する機会が全くないことに気付いた。ドキュメントはあまり役に立たず、開発チームのメンバーは非常に友好的だったが、コードベースについて質問するインターンに邪魔されることを好まないことも分かった。そこで、ソースコードを読ん

    C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに
  • 「Rust」言語はCよりも遅いのか、研究者がベンチマーク結果を解説

    「C」や「C++」に代わるシステムプログラミング言語として「Rust」が注目を集めている。メモリ安全性が高く、メモリ破壊バグといった脆弱(ぜいじゃく)性を作り込みにくいからだ(関連記事)。 ただし、システムプログラミング言語では、高い処理性能が必須条件であり、これがCやC++が使われ続けている理由となっている。Rustはどの程度「速い」のだろうか。 ドイツのミュンヘン工科大学で博士課程の学生であるポール・エメリク氏は2019年9月9日、Rustで作成したデバイスドライバの性能評価をGitHubで発表した。 同氏のグループはさまざまな言語で同じ機能を備えたデバイスドライバを記述し、性能を比較している。 何が性能低下を引き起こしているのか 性能評価用に作成したのは、Intelのイーサネットコントローラー向けのLinux用デバイスドライバだ(ixgbeタイプ)。 エメリク氏は解説の冒頭で研究に取

    「Rust」言語はCよりも遅いのか、研究者がベンチマーク結果を解説
  • 第1回 OpenCVとは? 最新3.0の新機能概要とモジュール構成

    ご注意:記事は、@IT/Deep Insider編集部(デジタルアドバンテージ社)が「www.buildinsider.net」というサイトから、内容を改変することなく、そのまま「@IT」へと転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。 1. OpenCV 1.1 OpenCVとは OpenCV(正式名称: Open Source Computer Vision Library)は、オープンソースのコンピューター・ビジョン・ライブラリです。コンピューターで画像や動画を処理するのに必要な、さまざま機能が実装されており、BSDライセンスで配布されていることから学術用途だけでなく商用目的でも利用できます。加えて、マルチプラットフォーム対応されているため、幅広い場面で利用されていることが特徴です。 OpenCVは、Intelで開発さ

    第1回 OpenCVとは? 最新3.0の新機能概要とモジュール構成
  • 「Vagrant」って何ぞ?(・o・)

    「Vagrant」って何ぞ?(・o・):Vagrant開発者 Mitchell Hashimoto氏に聞いた 仮想の開発環境作成ツールとして人気が高まっている「Vagrant(ベイグラント)」。その開発者であるMitchell Hashimoto(ミッチェル ハシモト)氏が来日するとの情報を聞き、2013年7月12日、VOYAGE GROUPで行われたミートアップに駆け付けた。 「Vagrant」とは Vagrantとは、違う環境に移行可能な開発環境を簡単に構築・管理し、配布することができる開発環境作成ツール。「ほんの数行書くだけで開発用の仮想マシンを構築できる」という優れものだ。 Vagrantのビジョンは、「開発者とシステム管理者にとって最高の『開発フロー』を提供すること」。Vagrantをダウンロードして「vagrant up」と入力し、実行するだけでそれが可能となる。 システム管理

    「Vagrant」って何ぞ?(・o・)
  • 人とコンピュータの未来 インタラクション2013レポート

    さまざまな分野の研究者が、人と人、人と機械との間のインタラクションを研究しあうために集まる学会「インタラクション」をレポートする。 「コンピュータがこういう動作をしたら、人間はどう感じるか」「人間にxxをサポートしたいとき、コンピュータは何ができるか」などを研究するには、人間とコンピュータの両方を対象にしなければならない。「どう感じるか」についての研究発表は、論文だけでなく、実際に体感できるデモンストレーションがあった方が良い。 年に一度行われている「インタラクション」は、さまざまな分野の研究者が、人と人、人と機械との間のインタラクションを研究するために集まる学会である。通常の学会のような口頭発表だけでなく、開発したプロトタイプを体感できるデモ発表が行われている。インタラクション2013は2月28日~3月2日の3日間にわたり、お台場の科学未来館で行われた。人とコンピュータのかかわりは、どう

    人とコンピュータの未来 インタラクション2013レポート
  • C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?

    ■概要 以前、C#でのデータ処理について解説した。今回は、同様のデータ処理を、C#以外のプログラミング言語ではどうしているのか、(C#も含めて)以下の5つの言語を比較しながら説明していく。 C# Scala Python Ruby F# 結果としてできることは似ているのだが、その内部的な実装方法は言語ごとにさまざまである。 ■データ処理のおさらい 概念的には、「データ処理」というのは、Figure 1に典型例を示すように、条件選択や変換など、小さな処理単位に分けて、それをつないでいく形を取る。

    C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?
  • 第1回 Rは統計解析のブッシュナイフだ - 実践! Rで学ぶ統計解析の基礎 - @IT

    今ほど統計解析が必要とされる時代はありません。オープンソースの統計処理言語・環境の「R」を使って実践的な統計解析のテクニックとリテラシーを習得しましょう! 読者にとってRは、世に溢れるデータの密林を切り開くための“ブッシュナイフ”となることでしょう(編集部) 統計解析の必要性とリテラシー 21世紀になって、経営学者の故ピーター・ドラッカー氏が言うところの知識労働者は、ますます統計解析を必要する局面が増えてきました。この状況は、20世紀後半から21世紀に起きた計算機能力の増大とインターネットの発展を基礎に、3つの大きな潮流が現れたことがキッカケとなっているように思います。その3つの潮流とは、オープンソース、オープンデータ、そしてオープンアイデアです。後ろの2つは今筆者が名付けました。 オープンソースは、皆さんがご存知のように、Linux、Apache、PerlPythonRubyなどのO

    第1回 Rは統計解析のブッシュナイフだ - 実践! Rで学ぶ統計解析の基礎 - @IT
  • グーグル、C/C++に代わる新言語「Go」をOSSで公開 - @IT

    2009/11/11 グーグルは2009年11月10日、Cのようにシステム記述に適したプログラミング言語「Go」をBSDライセンスの下に公開した。C++のようなC言語の拡張ではないが、Cに似た構文が特徴で、ガベージコレクタ(GC)や並列プリミティブ、イテレータ、実行時リフレクションなどを備えた新しい設計が目を引く。Goグーグルの社員7人が「20%の自由時間」を利用して開発した。設計・実装を行っているのが分散OS「Plan 9」の創案者であるロブ・パイク氏や、Unix、Cの生みの親、ケン・トンプソン氏、Google ChromeのV8エンジンを開発したロバート・グリースナー氏など錚々(そうそう)たるメンバーで、こうした点でも注目を集めそうだ。 グーグル社内では、まだGoを使っていないが、今後はWebサーバなどのシステム関連のソフトウェアで実用を検討しているという(Goのオフィシャルサイトは

  • 特集 私がJavaからC#に乗り換えた10の理由(1/4) - @IT

    起きてから寝るまで、息を吸うのも、厠(かわや)での一連のアクションも.NET Frameworkで構築している私だが、実は少し前まで目を閉じるとまぶたの裏でJavaのマスコットである“Duke”がゴーゴー・ダンスを踊っちゃうくらいにJavaな日々を送っていた。そんな私が過去の資産を捨てて.NET Frameworkに転んだ理由は簡単。.NET Framework、特にC#の設計思想が私のし好に合っていると感じたためだ。 稿では、私がJavaからC#に乗り換えた理由を示し、それを基にC#の“正しい”使い方について考察する。C#に興味のあるJavaプログラマや、どう使えばよいのか悩んでいるC#プログラマに読んでいただきたい。そうそう、アーキテクトにも。プログラミングできないアーキテクトなどあり得ないのだから。 C#とJavaは似ていない。確かに表面上は似ているが、C#にはJavaにはない文法

  • Webアプリに使えるAjaxライブラリ8選! ― @IT

    Ajaxライブラリの全体像を把握しよう Ajaxライブラリ(*注1)はすでに数多くのものが出回っていますが、多過ぎて全体像がつかめていないのではないでしょうか。今回は代表的なAjaxライブラリの一部を挙げ、それぞれを比較しながらAjaxライブラリの全体像を把握していきたいと思います。 どうして、Webアプリ開発にAjaxライブラリが必要なのか どのようなプログラミング言語でもライブラリが存在するように、Ajaxにおいてもライブラリが存在します。 初めにAjaxライブラリの必要性について見ていきたいと思いますが、ここではAjax開発ならではのライブラリの必要性を2点取り上げます(ほかの言語のライブラリと共通する必要性はあらためて取り上げません)。 クロスブラウザ対応 Ajaxの利点として、さまざまな環境における一般的なWebブラウザ上で実行できることが挙げられます。しかしWebブラウザの実装

    Webアプリに使えるAjaxライブラリ8選! ― @IT
  • 全文検索を実装したソースコードを読もう (1/4)- @IT

    第6回 全文検索を実装したソースコードを読もう 倉貫 義人 松村 章弘 TIS株式会社 SonicGarden 2009/9/3 優れたプログラマはコードを書くのと同じくらい、コードを読みこなせなくてはならない。優れたコードを読むことで、自身のスキルも上達するのだ(編集部) いよいよオープンソースの社内SNS「SKIP」を使ったコードリーディングも最終回となりました。Railsの基的な構成から、テストコードやRSpecの書き方といった内容に加え、前回はOpenIDをRailsで活用する応用編まで、コードとともに学んできました。 最終回となる今回は、SKIPの目玉機能の1つである全文検索を扱います。最終回にふさわしく、内容も高度なものになっていますが、ここまでおつきあいいただいた読者の皆さまであれば、十分に理解できる内容だと思います。 SKIPにおける全文検索機能では、任意の検索キーワード

  • 本当はすごい、知られざるGoogle Maps APIたち!!

    「商業利用もOK! Google Mapsについて知りたいこと」に続くGoogle Mapsインタビューの後編は、数多く存在するGoogle Maps関連のAPIや機能のうち、あまり知られていないものや新しいものをグーグルのソフトウェアエンジニア、淺川浩紀さんに聞いた。 Code Playgroundでオンライン編集 まずは、即効性のあるものからいこう。 Googleが持つ多くのAPIは、Webブラウザ上からJavaScriptによって呼び出せる。JavaScriptはコンパイルの手順なしに書けば実行できるので手軽である。しかし、だからAPIを試すのも簡単だとは限らない。例えば、Google Maps APIなら正しいGoogle Maps APIキーを用意したり、適切な文書にプログラムを埋め込んだりする作業を行い、それをWebブラウザで開かねばならない。

    本当はすごい、知られざるGoogle Maps APIたち!!
  • 商業利用もOK! Google Mapsについて知りたいこと

    Googleの担当者にサービスについて話を聞くインタビュー特集。前回のAndroidに続き、Google Maps担当者に話を聞いた。問い合わせの多いライセンスの問題と、エンタープライズ向けのサービスに関してGoogleエンタープライズセールスの横山直人さんにお話を伺った。この2つの話題は実は密接に直結しているのである。 利用規約のFAQ Google Maps APIはシンプルで枯れているので、技術関係の質問は多くない。その代わりに多いのは、ライセンス関係だ。つまり、こういう使い方をしていいのか、という皆がグレーだと思っている領域の質問が多い。 最も多い質問は商用利用していいか、というものである。 これは基的には「よい」。 ただし、1つだけ条件がある。誰でもアクセスできることが、許可される条件である。より具体的にいえば、有料会員制サイトや、イントラネットでの使用、独自アプリケーションで

    商業利用もOK! Google Mapsについて知りたいこと
  • Rubyで作るデータベースCGI(1/3)

    発のオブジェクト指向スクリプト言語RubyMySQLは非常に相性がいい。今回はこのRubyを使ってデータベースアプリを作ってみよう。 日発のスクリプト言語、Ruby Rubyは、まつもとゆきひろ氏が開発されたオブジェクト指向スクリプト言語です。Rubyを紹介する際は、このように単なるスクリプト言語ではなく「オブジェクト指向」が枕言葉のように付いてきます。「オブジェクト指向」というとVisual C++の悪夢から敬遠したくなりますが、Ruby当に「楽しくプログラミングできる」言語です。 Perlと同様に変数宣言が不要なのにシンプルな文法が使えることから、可読性の高いソースにすることができます。またメモリ管理も考慮されており、Javaのようなガベージコレクションを備えているため、メモリリークなどにプログラム作業の時間を割かれることも少なくなります。そのため、「RubyPerl

    Rubyで作るデータベースCGI(1/3)
  • Firebugで探索アルゴリズムを見ていこう

    Firebugで探索アルゴリズムを見ていこう:コーディングに役立つ! アルゴリズムの基(6)(1/4 ページ) プログラマたるものアルゴリズムとデータ構造は知っていて当然の知識です。しかし、教科書的な知識しか知らなくて、実践的なプログラミングに役立てることができるでしょうか(編集部) 今回紹介するのは探索のアルゴリズムです。探索もアルゴリズムのテーマとしてはメジャーなもので、とても重要な用語や考え方が出てきます。 あるデータの集合があったとします。それぞれのデータには、個々を識別するためのIDが付いています。このIDをキーと呼びます。このキーに対応するデータを探すのが探索です。 データベースを知っている方なら主キーで検索する動作だと思ってください。例えば、商品のリストがあり、それぞれの商品に商品コードが付いています。商品コード「7100」に対応する商品データ「トマト」を検索するプログラム

    Firebugで探索アルゴリズムを見ていこう
  • ping ~ネットワークの疎通を確認する

    pingは、ネットワーク疎通を確認したいホストに対してIPパケットを発行し、そのパケットが正しく届いて返答が行われるかを確認するためのコマンドだ。この確認にはICMP(ICMPv6)またはUDPを用い、さまざまなエラーに応じたステータスを把握することも可能 目的と用途 pingは、ネットワーク疎通を確認したいホストに対してIPパケットを発行し、そのパケットが正しく届いて返答が行われるかを確認するためのコマンドだ。この確認にはICMP(ICMPv6)またはUDPを用い、さまざまなエラーに応じたステータスを把握することも可能。 pingコマンドが正常に実行できれば、通常はホスト間のネットワークは正常であると判断される。また統計値を表示することで、基的なネットワーク性能を簡易に計測することもできる。 エラーが発生した場合には、何らかのネットワーク障害が発生していると考えられる。ただし、ping

    ping ~ネットワークの疎通を確認する
    so_ra_to
    so_ra_to 2008/12/08
  • Processingの対話式スケッチプログラミングで遊ぼう

    Processingの対話式スケッチプログラミングで遊ぼう:絵心がなくても簡単に絵が描けるProcessing(2)(1/3 ページ) Processing.jsで実際にProcessingを体験してみよう この連載では前回の「芸術の秋にProcessingでスケッチプログラミングを始めてみよう」に引き続き、簡単にグラフィックを扱うプログラミングができるプログラミング環境「Processing」について解説していきます。 なお前回の記事の後、Processingの最新バージョン(0156)がリリースされました。Processingを起動すると新バージョンリリースを通知するダイアログが表示されるので、前回の記事と同様に公式サイトよりダウンロードし、インストールしておきましょう。 また今回は、Processingでのプログラムの実行を分かりやすく体験してもらうために、前回記事で紹介したProc

    Processingの対話式スケッチプログラミングで遊ぼう
  • あなたの知らないJDKの便利ツールたち

    Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部) 標準JDKに含まれる便利なツール 読者の皆さんは、最近のJDK(Java SE)に、開発やデバッグに便利な新しいツールが含まれていることをご存じでしょうか? 古くからのJava開発者は、古い時代のJDKのツールしか知らず、一方で新しいJava開発者はEclipse/NetBeansなどの統合開発環境に慣れてしまい、細かなコマンドツールを直に使う状況が減ってきているかもしれません。 そこで今回は、最近のJava SE 6含めて比較的新しいと思われるツールを以下の5種類に分けて紹介します。 プロファイリング トラブルシューティング/情報取得 監視 配備/補助 スクリプティング 「こんなツー

    あなたの知らないJDKの便利ツールたち
  • Webアプリ開発環境としてのSafariを知ってますか?

    Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部) シェア競争に挑まないWebブラウザ「Safari」の登場 2008年3月、iPhoneの日登場に先駆けて、Windows版Safari 3.1が登場しました(参考「AppleWindowsにも正式対応の「Safari 3.1」リリース」)。 WebブラウザのシェアはFirefoxが健闘しつつも、いまだInternet Explorer(以下、IE)が大半を占め、多くのWebアプリケーションサービスにとって、IEへの対応が必須であると思われてきました。そんなWebブラウザのシェア競争の中へSafariが登場したことは、最初はとても異質なことに感じられました(参考「新しいWebブラウザ

    Webアプリ開発環境としてのSafariを知ってますか?
  • @IT:ログアウトしてもプログラムを実行し続けるには

    ターミナルエミュレータなどでプログラムを実行している場合、そのターミナルエミュレータを終了すると、ハングアップ(HUP)シグナルによってプログラムは強制的に終了される。しかし、実行結果が得られるまでに何時間、何日もかかるようなプログラムを実行する場合、それでは困ってしまう。かといって、ログインしっ放しにしておくのはセキュリティ上問題だ。 このような場合には、nohupコマンドを利用するといい。nohupは、文字通りHUPシグナルを無視してプログラムを実行し続けるコマンドだ。標準出力と標準エラー出力は、nohup.outまたは~/nohup.outに追記されるので、プログラムの実行結果は後で確認できる。 nohupコマンドの使用法は、nohupに続けて実行したいプログラム名を指定すればいい。