タグ

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

  • プログラミングもクラウドへ―― 学習&開発環境Webサービス23選まとめ

    プログラミングもクラウドへ―― 学習&開発環境Webサービス23選まとめ:安藤幸央のランダウン(67)(1/3 ページ) オンラインのプログラミング環境や、オンラインでコードを書いて学べる学習サイト9選、ビジュアル(子ども向け)プログミラングWeb環境5選を紹介する。 道具としての開発環境 今となっては昔のことですが、机の上でノートに鉛筆でソースコードを書いてプログラミングしていた時代がありました。現在のプログラミング環境から振り返ると、そういう作業はアルゴリズムを考え、頭で想像したコードを書き下ろしており、脳内エミュレーターのようなものだったのかもしれません。 最近のプログラミング環境は、規模も複雑さも肥大化しつつ、プログラミングに関する情報もツールも大変充実したものです(マイナーな環境の情報が少ないことや、新古の情報が混在している問題はありますが)。 Web上の情報も書籍も豊富で、自分

    プログラミングもクラウドへ―― 学習&開発環境Webサービス23選まとめ
  • 初心者のためのJavaラムダ式入門とJDKのインストール、IDEの環境構築

    2014年3月18日に一般公開予定のJava SE 8へのバージョンアップでは、新たな表記法として「ラムダ式」が追加されます。このラムダ式を使うことによって効果を発揮する数々のAPIも追加されることになり、今回のバージョンアップはJavaを使う人にとって無視できないバージョンアップとなります。 しかしラムダ式は今までJavaプログラミングをやってきた人でも前提知識なしにソースだけを見て理解するのは難しい内容となっています。この連載では、今までJavaの経験はあっても「ラムダ式は、まだ知らない」という人を対象にラムダ式について解説していきます。 JDK 8は2013年9月10日に開発者向けプレビュー版が公開され、2014年2月18日現在、Early Access版がリリースされています。 コラム「ややこしいJavaのバージョン番号」 Javaのバージョン番号について、ところどころで1.8のよ

    初心者のためのJavaラムダ式入門とJDKのインストール、IDEの環境構築
    nobusue
    nobusue 2014/02/19
  • あんなコアいいな、吐けたらいいな(1/2) ― @IT

    10月版 あんなコアいいな、吐けたらいいな 上川純一 日ヒューレット・パッカード株式会社 コンサルティング・インテグレーション統括部 2007/10/31 linux-kernelかいわいで起きるイベントを毎月お伝えする、Linux Kernel Watch。2007年9月のLinuxカーネルメーリングリストでどんなことが起きたのか見てみましょう。同時公開のLinux Kernel Watch番外編「セキュリティをやってるやつらは狂っている?!」もあわせてお読みください。 2.6.23のリリースは遠かった 結局、9月中に2.6.23はリリースできないまま10月に入りました。致命的なバグがいくつか見つかったことが直接的な要因ですが、Kernel Summitの影響があったのでしょうか。過去の実績ではrc6かrc7でリリースされているのですが、今回はrc8まで出ています。 Linusが9月

    nobusue
    nobusue 2014/01/28
    /proc/PID/coredump_filterで取得するメモリの種類を設定可能
  • 試すのが難しい―機械学習の常識はMahoutで変わる

    ビッグデータ時代―なぜ、いま機械学習なのか Apache Hadoop(以下、Hadoop)の登場で、今まで捨てていたデータ、貯めるだけで処理しきれなかったデータを活用できるようになりました。 活用手段として最近とみに注目されている技術が「機械学習」であり、Hadoopの強みを生かし簡単に機械学習を行うためのライブラリが、「Apache Mahout」(以下、Mahout)です。 稿ではMahoutを動かしてみることで、機械学習の常識を身に付けます。 そもそも、機械学習とは? 機械学習とは、一定のデータをコンピュータ・プログラムに「学習」させ(すなわち、そのデータに潜むパターンや規則性を表す「モデル」を自動的に構築させ)、他のデータにそのモデルを適用すれば、あたかも人間のように複雑で柔軟な判断が行えるようにするという試みです。 機械学習をビジネスに活用した例は、レコメンド(ユーザーや商品

    試すのが難しい―機械学習の常識はMahoutで変わる
  • Hadoopの現実解「バッチ処理」の常識をAsakusaで体得

    Hadoopの現実解「バッチ処理」の常識をAsakusaで体得:ビッグデータ処理の常識をJavaで身につける(7)(1/4 ページ) Hadoopをはじめ、Java言語を使って構築されることが多い「ビッグデータ」処理のためのフレームワーク/ライブラリを紹介しながら、大量データを活用するための技術の常識を身に付けていく連載 “ビッグデータ”時代の「バッチ処理」 アプリケーション開発というと、システム利用者に一番近い画面系の開発が花形ですね。一方「バッチ処理」というと、何となく地味な感じがしますが、「バッチ処理」は縁の下の力持ち、これがないと、大概のシステムは稼働できません。 絶対に必要だけど、影の薄い「バッチ処理」でしたが、“ビッグデータ”への注目度が高まり、大量データを短時間に処理する「並列分散処理バッチ」が活躍する場面も増えてきました。 稿では、並列分散で「バッチ処理」を行う方法につい

    Hadoopの現実解「バッチ処理」の常識をAsakusaで体得
  • 管理が困難―分散処理の常識はZooKeeperで変わる

    管理が困難―分散処理の常識はZooKeeperで変わる:ビッグデータ処理の常識をJavaで身につける(8)(1/3 ページ) Hadoopをはじめ、Java言語を使って構築されることが多い「ビッグデータ」処理のためのフレームワーク/ライブラリを紹介しながら、大量データを活用するための技術の常識を身に付けていく連載 分散処理の課題が「管理」なのは常識 複数の計算機上で動作(分散)するアプリケーション、ソフトウェアが多く存在します。分散ソフトウェアは複数の計算機で動作することで大量のデータを扱えたり、高負荷な状況に対処します。稿では、複数の計算機(クラスタ)で動作する各サーバを「インスタンス」と呼びます。 連載で紹介した分散Key-Valueデータベースである「HBase」は複数の計算機で動作する代表的なソフトウェアです。両ソフトウェアはともに「Apache ZooKeeper」(以下、Z

    管理が困難―分散処理の常識はZooKeeperで変わる
  • PlayアプリをPostgreSQL対応してHerokuにデプロイ&自動テスト

    PlayアプリをPostgreSQL対応してHerokuにデプロイ&自動テスト:Javaの常識を変えるPlay framework入門(終)(1/4 ページ) サーブレット/JSPを基にする重厚長大なJavaのWeb開発のイメージを変える軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。最終回は、作成したアプリを簡単にWeb上に公開する方法とPostgreSQL対応、テスト環境の構築と自動テストの実行の仕方を解説します。 前回の記事「Playの充実したテスト環境で行う5種のテスト」では、Play frameworkを使ったアプリのテストを紹介しました。今回はJavaを使ったPlay framework開発の入門連載の最終回として、作成したアプリを簡単にWeb上に公開する方法を紹介します。 アプリの公開には、「Heroku」というサービスを利用します。 フ

    PlayアプリをPostgreSQL対応してHerokuにデプロイ&自動テスト
  • SystemTapで真犯人を捕まえろ!

    図2はリブートする少し前の/proc/meminfoについて、前項の観点に基づいて積み上げグラフを作ったものです。 ほぼすべてのメモリがActiveとなっており、MemFreeやInactiveはわずかです。これは確かにメモリ不足といえそうです。カーネルの物理メモリが怪しいと考えていたのですが、肝心のPageTablesやSlab、VmallocUsedなどはあまり増えていません。これは一体どういうことでしょうか? ……と、ここまできて、1つ不審な点に気が付きませんか? そう。すべてを足したメモリの総量が約12Gbytesしかありません。確かこのサーバはメモリを50Gbytes搭載していましたよね? それがいつの間にか12Gbytesになっている……何やら大変なことが起きていそうです。 確認のために、リブート時前後のメモリ使用量のグラフを見てみましょう(図3)。リブート前は10Gbytes

    SystemTapで真犯人を捕まえろ!
    nobusue
    nobusue 2014/01/10
    JavaでいうAOPみたいなことができるツール SystemTap
  • 減り続けるメモリ残量! 果たしてその原因は!?

    物理メモリ使用状況の把握には何を使う? では、ストレージとの同期情報まで加味したメモリの使用状況監視を行うには、どうすればよいのでしょうか? 実は現在(注2)のところ、「これで完ぺき」という方法はありません。ただ、それでは困るので、ここでは次善の策としてActiveとInactiveを監視する方法を挙げます。 ActiveとInactiveはvmstat -aやcat /proc/meminfoなどと入力することで取得できます(図5)。 Activeはページキャッシュや無名ページ(注3)のうち、最近利用したり、まだストレージとの同期が取れていない「捨てられない」ページです。Inactiveは、同じくページキャッシュや無名ページのうち、最後にアクセスされてからある程度時間がたち、ストレージとの同期も完了していて、すぐに捨てられるページです。よって、/proc/meminfoの出力でいうところ

    減り続けるメモリ残量! 果たしてその原因は!?
  • 意外と知らないファイル圧縮技術の常識

    連載は、Java言語やその文法は一通り理解しているが、「プログラマー」としては初心者、という方を対象とします。Javaコアパッケージを掘り下げることにより「プログラマーの常識」を身に付けられるように話を進めていきます。今回はアーカイブと圧縮の違いなどの基礎知識とともに、Java APIJava定番のファイル圧縮形式jarやgzipzip形式を扱う方法も紹介。 今回はデータの圧縮技術を学んでいきます。データの圧縮技術はさまざまなコンピュータ関連用途において利用されていますが、この記事では「ファイル圧縮」の話題に絞って話を進めていきます。 意外と知らない、「圧縮」って何? 私たちが普通にOSを利用していると、ファイルの拡張子が「.zip」「.lzh」「.cab」などとなっているファイルを扱うことがあります。これらの拡張子を持つファイルは、複数のファイルやディレクトリを1つのファイルにまと

    意外と知らないファイル圧縮技術の常識
  • Play2+nginx/Akka/WebSocketで高速双方向通信

    前回の記事「Play2(+JavaScript)アプリを高速化、最適化する4つのテクニック」では、キャッシュの利用方法や非同期通信を行う手法、クライアントサイドでJavaScriptをうまく扱うテクニックについて紹介しました。 今回はPlay framework 2.x(以下、Play2)を既存のWebサーバーと連携させる方法、並列処理や双方向通信を行う方法を紹介します。 WebサーバーとPlay2の連携 Webサーバーと連携する必要性 連載第2回記事「Play 2.0のアーキテクチャとディレクトリ構成の基礎知識」で解説をしましたが、Play2では「Netty」というHTTPサーバーを内包しており、それを使用してリクエストを処理します。そのため、Play2の起動ポートを80番に設定すれば通常のWebサーバーと同じようにアクセス可能です。 単純なWebアプリケーションの場合はこれで問題はない

    Play2+nginx/Akka/WebSocketで高速双方向通信
  • 継続的デリバリ/デプロイを実現する手法・ツールまとめ

    継続的デリバリ/デプロイを実現する手法・ツールまとめ:DevOps時代の開発者のための構成管理入門(終)(1/2 ページ) バージョン管理や継続的インテグレーションとも密接に関わる継続的デリバリ/デプロイメントの概要や主なツール、経緯、実践事例を紹介。実践手法として「ブルーグリーン・デプロイメント」「Immutable Infrastructure」が注目だ。 完全に自動化されたリリースプロセスが必要となる「継続的デリバリ」とは いよいよ連載「DevOps時代の開発者のための構成管理入門」も最終回となりました。今回のトピックは「継続的デリバリ」です。 継続的デリバリは、連載で扱ってきたバージョン管理や継続的インテグレーションなどの単一のプラクティスではなく、それら一連のプラクティスを包含した、ソフトウェアデリバリ全体に対しての「考え方」「アプローチ」といえるものです。 「継続的デリバリ

    継続的デリバリ/デプロイを実現する手法・ツールまとめ
  • git-flowのインストールとブランチ運用前のリポジトリ準備

    git-flowのインストールとブランチ運用前のリポジトリ準備:Gitランチを使いこなすgit-flowGitHub Flow入門(2)(1/2 ページ) 数回にわたってgit-flowGitHub Flowを使ったGitの活用テクニックを紹介します。今回は、git-flowWindowsMacLinux別でのインストール手順、利用の仕方の流れ、ブランチ運用前のリポジトリ準備の流れを紹介。 前回の「いまさら聞けない、成功するブランチモデルとgit-flowの基礎知識」では、git-flowで利用するブランチモデルの概要について解説しました。今回は、git-flowのインストールとgit-flowを利用し始める前のリポジトリの準備について解説します。 git-flowをコマンドベースで利用 git-flowを利用するには、コマンドラインから利用するCUIgit-flowを利用す

    git-flowのインストールとブランチ運用前のリポジトリ準備
  • DevOps時代の開発者のためのOSSクラウド運用管理ツール5選まとめ

    DevOps時代の開発者のためのOSSクラウド運用管理ツール5選まとめ:ユカイ、ツーカイ、カイハツ環境!(30)(1/3 ページ) DevOpsという観点で、クラウドに使えるオープンソースの運用管理ツールとして、Zabbix、Hinemos、Hyperic HQ、Scalr、Aeolusの特徴をまとめて紹介します。 開発者も“運用”管理の時代 アジャイル開発の注目とともにクラウドによるインフラ構築の効率化、さらにはDevOpsといった開発・運用の継続的な改善とリリースの自動化による短期リリースの実現が注目を浴びています。 クラウドを利用した場合、クラウド体の運用・管理機能を利用して環境構築やシステムの監視、負荷状況に合わせたスケールアウトができます。 しかしながら、各クラウド固有の機能を利用してしまうと、そのクラウドにロックインされてしまい、将来、より安いクラウドが登場したときの乗り換え

    DevOps時代の開発者のためのOSSクラウド運用管理ツール5選まとめ
  • JobSchedulerの機能と設定~基礎編

    JobSchedulerの機能と設定~基礎編:OSS「JobScheduler」で実現するこれからの運用自動化(1)(1/2 ページ) 連載では運用管理の一要素である「バッチジョブ管理」に着目し、より効率よいバッチジョブ管理を実現するためのツールであるオープンソースの「JobScheduler」について解説します。 はじめに サーバ仮想化やクラウドの浸透により、システム環境はますます複雑化しています。このような中、近年ではDevOpsに代表されるとおり、迅速にサービス提供を実施するために効率よい開発や運用を実施することが求められています。 連載では運用管理の一要素である「バッチジョブ管理」に着目し、効率よいバッチジョブ管理を実現するためのツールであるオープンソースのソフトウェア「JobScheduler」について解説します。 ※以降、編の中で記載する「ジョブ」は「バッチ形式で実行する

    JobSchedulerの機能と設定~基礎編
    nobusue
    nobusue 2013/12/17
    APIがあるのはいいね
  • Java 8&Java EE 7に対応した「Spring Framework 4.0」正式版リリース

    Java 8&Java EE 7に対応した「Spring Framework 4.0」正式版リリース:WebSocketやREST APIのサポート強化 米Pivotalは2013年12月12日、オープンソースのJavaアプリケーションフレームワーク「Spring Framework 4.0」の正式版をリリースした。 米Pivotalは2013年12月12日、オープンソースのJavaアプリケーションフレームワーク「Spring Framework 4.0」の正式版リリースを発表した。Java 8とJava EE 7に対応し、WebSocket、REST APIHTML5、Webメッセージングのサポートなどの機能強化を盛り込んでいる。 Java 8のサポートはプレリリース版をベースとして実装され、2014年3月にOpenJDK 8が正式リリースされた時点で直ちにプロダクション対応を可能にし

    Java 8&Java EE 7に対応した「Spring Framework 4.0」正式版リリース
    nobusue
    nobusue 2013/12/17
    Spring BootとかDropwizardとか、コンテナレスがはやりそうな気配
  • リリース/デプロイをめぐる刺激的な議論

    ソフトウェアの開発と提供を行うほとんどの企業・組織が、ソフトウェアのデプロイ/リリースで何らかの課題を抱えている。それでも、「スクリプトを使えばいい」「スーパープログラマには自分のやりかたがある」「運用担当者の仕事がなくなるようなことはしたくない」「うちは頻繁にリリースをしないから考えなくていい」といった声が聞こえてくる。当にそうなのか。UrbanCodeの共同創設者でCEOであり、2013年IBMに買収されたことで、現在はIBMのデプロイ/リリース製品ライン・ディレクターを務めているマチェイ・ザワツキー(Maciej Zawadzki)氏に、これらの疑問を直接ぶつけてみた。 ザワツキー氏の経験は豊富だ。UrbanCodeの活動を通じ、1996年以来、顧客組織におけるソフトウェアのビルドにかかわる問題を解決し、その後さらにリリース/デプロイの改善に取り組んできた。UrbanCodeがリリ

    リリース/デプロイをめぐる刺激的な議論
  • 「Vagrant」って何ぞ?(・o・)

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

    「Vagrant」って何ぞ?(・o・)
  • @IT:Linux起動の仕組みを理解しよう[rcスクリプト編]

    今回は、前回紹介し切れなかったrcスクリプトについて解説する。rcスクリプトも、理屈を理解してしまえば容易に管理できる。管理方法のついでに、rcスクリプトの書き方もマスターしてしまおう。 前回のLinux起動の仕組みを理解しよう[init/inittab編]では、カーネルがinitプロセスを起動して、さまざまな処理を行うことを説明しました。今回は、各種サービスの起動を行うrcスクリプトについて見ていきましょう。 rcスクリプトの管理の仕組み rcスクリプトは、Windowsのautoexec.batに相当すると考えればいいでしょう。もちろん、rcスクリプトとautoexec.batでは異なる点があります。rcスクリプトは、対応する作業ごとに1つずつ、複数のファイルで構成されています。また、ランレベルごとに実行するrcスクリプトを変えることができます。 rcスクリプトの実体は、/etc/in

    @IT:Linux起動の仕組みを理解しよう[rcスクリプト編]
  • antcallやantでプロパティをまとめて指定する

    プログラムでは、同一の処理を複数個所に記述してしまうと、可読性やメンテナンス性が低くなってしまいます。そのため、複数個所で同一の処理を利用する場合は、同一の処理を1つのサブルーチンとして記述しておき、必要な個所でそのサブルーチンを呼び出すのが一般的です。同様に、Antスクリプトでも、サブルーチンをtargetとして記述し、antcallタスクやantタスクを使用して呼び出すことが可能です。 しかし、Antでサブルーチンを呼び出すときには注意が必要です。antcallやantのinheritAll属性値を“true”(デフォルト値)にしてtargetを呼び出すと、呼び出し元で参照可能な全プロパティが呼び出し先からも参照できてしまうからです。通常、一度設定されたプロパティは再設定することができないため、呼び出し先で定義しようとしているプロパティが呼び出し元ですでに定義されていた場合、予期しない

    antcallやantでプロパティをまとめて指定する
    nobusue
    nobusue 2013/11/14
    antcallでパラメータにネームスペースっぽいprefixを付ける方法