タグ

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

  • あなたはどこまで解き進められる? 「FizzBuzzダンジョン」でコードパズル

    はじめに いつもは「マンガで分かるプログラミング用語辞典」を描いている、クロノス・クラウンの柳井です。JavaScript大好きで、「マンガで分かる JavaScriptプログラミング講座」を書いたりもしています。そして最近は「CodeIQ」というサイトで、さまざまなプログラミングの問題を出題しています。 今回は、その「CodeIQ」で出題して人気のあった「FizzBuzzダンジョン」という問題のさまざまな解法を紹介しようと思います。私自身も勉強になり、コードを読むことを楽しめましたので、プログラマーの方々はきっと楽しめると思います。 「FizzBuzz問題」とは、3の倍数のときは「"fizz"」、5の倍数のときは「"buzz"」、共通の倍数のときは「"fizzbuzz"」、その他は「数値」を戻すという単純な処理です。ループ処理と分岐処理を理解していればコードを書けます。 「FizzBuz

    あなたはどこまで解き進められる? 「FizzBuzzダンジョン」でコードパズル
    thrakt
    thrakt 2013/12/26
    ,禁止で配列使えないのでは。文字列とcharAtとかjoin使うのは思いつかなかった・・・!
  • Javaで軽快に使える「軽量フレームワーク」特集 ~本格的なRoRスタイルフレームワーク「Play!」(1)

    はじめに 今やWebのフレームワークと言えば、そのほとんどが「RoRタイプ」です。RoR(Ruby on Rails)がWebの開発に与えた影響は非常に大きく、その後生まれたフレームワークの多くがその影響を受けています。 しかし、Javaの世界に関しては、RoRはなぜか素通りしてしまいました。既にStrutsというデファクトスタンダードがあったために新しいMVCフレームワークが割り込む余地があまりなかったのか、あるいはLL(ライトウェイト)言語でないとRoRなスタイルは作りにくかったのか。ともあれ、その後、長い間、Javaでは「いわゆるRoRタイプ」と言えるフレームワークは登場しませんでした。 その流れを変えたのは、Groovyです。Groovyの登場により、JavaでもLL言語のような小回りの聞くコーディングが可能となりました。そのおかげで、ようやくJavaの世界にも遅まきながら新しい世

    Javaで軽快に使える「軽量フレームワーク」特集 ~本格的なRoRスタイルフレームワーク「Play!」(1)
  • HTML4から変化したHTML5のマークアップ ここが違う!サンプルで見るHTML5(2)

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

    HTML4から変化したHTML5のマークアップ ここが違う!サンプルで見るHTML5(2)
    thrakt
    thrakt 2010/12/06
  • Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編

    Scalaとは Scalaは、2003年にJavac(コンパイラ)やJavaのGenericsの設計/開発貢献者であるMartin Odersky氏(スイス・ローザンヌ工科大学教授)によって、開発が開始された比較的新しいプログラミング言語です。Javaは実用言語として幅広いシステムで使用されてきましたが、下位互換性を保つという要請の中、言語としての機能強化がなかなか進まないといった限界も見えてきています。そのような現状もあることから、ScalaJavaの後継として実用的な言語を目指して開発されています。 Scala最大の特徴は、Javaの良さを最大限継承しつつ、スクリプト言語や関数型言語の良いところも吸収し、先進的な機能/文法を取り入れている点です。また、今後のハードウェアのマルチコア化を見据え、簡易に並列処理プログラミングを行うことができるライブラリが付属しています。 Scalaのメリ

    Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編
  • HttpUnitを利用したWeb画面テストの自動化

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

    HttpUnitを利用したWeb画面テストの自動化
  • はじめて使うProject Zero

    記事では、IBM発の次世代Webアプリケーションプラットフォーム「Project Zero」の概要と、AppBuilderによるRESTサービスの開発およびFlowの開発について紹介します。Project ZeroはJavaで構築されており、「シンプルで軽量」「アジャイルな開発スタイル」「Web2.0との親和性」「マッシュアップ」「ワンストップ」「Java資産の有効活用」といった特徴があります。 Project Zeroとは? ここ数年で、Webアプリケーション開発の分野は大きく様変わりしました。Web2.0というキーワードで代表されるような、高機能で使い勝手のよいWebアプリケーションが当たり前のように求められるようになり、AjaxやREST、マッシュアップをいかに使いこなすかということが重要になってきています。また、従来に比べ開発期間が短縮される傾向にあることも、最近のWebアプリケ

    はじめて使うProject Zero
    thrakt
    thrakt 2009/03/11
    導入方法がわからなかったのでありがたい / 紹介を聞いた感じだとすごい面白そうだったけど、はたして
  • 「膨大なデータを分析して見えてくること」ニコニコ動画データ分析研究発表会

    最大の動画投稿サービス「ニコニコ動画」は、動画上を流れるコメントや、自由に編集できるタグ機能といった特徴を持ち、単なる動画共有サービスにとどまらず、コミュニティサイトとしての側面も持つ。多くの人がアクセスする中で「アイドルマスター」「初音ミク(VOCALOID)」「東方プロジェクト」など、いろいろなムーブメントが生まれてきた。 今も毎日多くの動画が投稿されており、各動画は「再生数」「コメント数」「マイリスト数」などの情報がわかるようになっている。すでに投稿動画数は200万を超えるが、これら膨大なデータを分析することで、どんな現象やコミュニケーションが起きているのかを明らかにしようとするのが今回の発表会の目的である。 分析する際の2つの障壁 独自にデータ収集が必要であること しかし、そもそもニコニコ動画自体はデータを分析しやすいように広く提供しているわけではない。1つ1つの動画の再生数

    「膨大なデータを分析して見えてくること」ニコニコ動画データ分析研究発表会
  • 【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症候群の研究』(前田修吾)  なお、記事は必ずしもセッションの内容をそのまま書いているわけではない点をお断りしておく。 記事では、セッションの限られた時間では語りつくせな

    thrakt
    thrakt 2008/06/26
  • 私がScalaを選んだ理由:CodeZine

    はじめに 最近自分の中でScalaという言語が熱い。RubyPython等のスクリプト言語や、JavaやC#等現在のエンタープライズ領域を支える言語、HaskellやErlangといった関数型言語もある。そんなにいっぱいいい言語がある中で、なぜ今Scalaなんだろう? そんな理由を解説してみたいと思います。Rubyの生産性 ここ数年LLブームで、とりわけ日でのRuby人気は目覚ましいものがあります。実は筆者もRubyはとてもお気に入りです。最初に触り始めた頃は、「Rubyはいいよ」という話だったので勉強がてら小さなサンプルを作って遊んでいたのですが、その頃は「楽しいな」「気持ちいい言語だな」という程度であまり熱心にやっていませんでした。なぜなら私は「仕事で使える」ということを非常に重視するタイプだからです。 その認識が一変したのがRubyによるWebアプリケーション開発のプラットフォー

  • JavaScriptとPHPでつくるAjaxインクリメンタル検索:CodeZine

    はじめに Ajax(エイジャックス:Asynchronous JavaScript+XMLの略称)はウェブ上のサービスを中心に普及してきました。 皆さんの開発現場でAjaxは活用されているでしょうか? 最近はいろいろなJavaScriptフレームワークが出てきているため、Ajaxのサンプルもウェブ上に多く掲載されています。しかし、特定のJavaScriptフレームワークやWebアプリケーションフレームワークに依存したサンプルは制約も多いため、活用を躊躇しているITエンジニアも多いのではないでしょうか? この記事では、特定のフレームワークを利用せずにAjaxによるインクリメンタル検索を実装してみることで、Webアプリケーションの基礎を振り返ってみたいと思います。 今回作成するインクリメンタル検索アプリは、蔵書の検索です。完成イメージを以下に示します。 記事は、以下の順序で進みます。 全体の

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

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

  • ActionScriptによるWebの3Dグラフィックス再入門:CodeZine

    Flashで3D? 数年前まで、Flashと言えばデザイナが絵やアニメーションを作り、そこにちょっとしたインタラクティビティを持たせるためのツールという見方が一般的でした。しかし、昨年あたりから急激に「えっ!?こんなことがFlashでできるの?」というようなコンテンツが増えてきています。このようなコンテンツが現れはじめた原因は、言語仕様が一新されたActionScript 3による高いパフォーマンスにあります。 連載では、ActionScript 3のパフォーマンスを活かした一例として、Web上での3D表現を取り上げます。Webで3Dというと、VRMLやJava3Dなどの方法が存在はしたものの、なかなか広まることがありませんでした。これは実行環境の普及率が原因していると言えるのではないでしょうか。その点について、Flashは恵まれた環境にあると言えます。Adobeの資料によれば、日国内

  • Judeのクラス図からActiveScaffoldのコードを自動生成する:CodeZine

    はじめに このジェネレータはJudeで作成したクラス図の情報を取得し、それを元に、ActiveScaffoldで必要なコーディングのソースを自動生成することにより、ActiveScaffoldの環境構築を行えば、クラス図を書くだけでActiveScaffoldのアプリケーションを作成できるというツールです。 早い話がクラス図を描いたら、とりあえずアプリケーションができますという話です。もちろん限定されたところにしか使えないと思いますが、JudeとRubyを活用してこんなに簡単にジェネレータが作れるというのを感じていただければ嬉しいです。ジェネレータを使用するための環境設定 最初にジェネレータを使用するに当たって、JRubyとLuRuJuというライブラリ、およびUMLツールのJudeのセットアップを行いましょう。JRubyのセットアップ JRubyはRubyJavaでの実装です。通常のRu

  • MySQLのシステムアーキテクチャ:CodeZine

    SQLを使う業務では分析関数を使いこなすと、生産性とSQLの可読性とパフォーマンスを、大きく向上させることができます。分析関数を使う際の考え方と、処理のイメージを解説します。今回は総集編として、前編、中編、後編、完結編に関連した内容を扱います。

  • 10分でできる初めてのRubyプログラム:CodeZine

    Scaffoldで生成したアプリケーションは出発点にすぎず、自立した完成品のアプリケーションではありません。このため、開発者がプロジェクトに適した形になるように手を加える必要があります。しかし、毎回似たような修正を行うのであれば、生成した時点でその修正が反映されている方が、より生産性も向上します。そこで稿では、Scaffoldをカスタマイズする方法を紹介します。

  • CodeZine:MS、フリーのパケット解析ツール「Microsoft Network Monitor 3.1」リリース(チートツール, ネットワーク, マイクロソフト)

    Microsoftはネットワーク上のパケット情報を解析できるツールの新バージョン、「Microsoft Network Monitor 3.1」をリリースした。Microsoftダウンロードセンターより無償でダウンロードすることができる。 このツールを使うと、ネットワーク上に流れるパケットをキャプチャ/解析することができる。リアルタイムでの監視も可能なほか、複数のネットワークを同時にキャプチャすることもできる。 今回のバージョンアップでは、Windows Vistaにおけるワイヤレス環境およびRAS使用時のキャプチャに対応。ユーザーインターフェイスの改良や、右クリックでフィルタ条件を設定できる機能などが追加された。その他、Microsoftアップデートにも対応している。 Microsoftダウンロードセンター:Microsoft Network Monitor 3.1 Network

  • Java開発者のためのRubyガイド:CodeZine

    Builderパターンは、Template Methodパターンによく似ています。Template Methodパターンとの大きな違いは、その目的がオブジェクトを生成することであり、アルゴリズムを実行することではないという点です。Builderパターンは、役割分担を明確にするだけでなく、インターフェイスと実装の分離を実現する代表的な事例であり、パターンを使用しない場合に起こりうる重複をかなりの程度防ぐことができます。

  • CodeZine:OpenIDを使ってみよう(openid, 認証方法, Perl)

    はじめに OpenIDは最近非常に注目が高まっている認証技術の一つです。ここでは、OpenIDを利用したPerlのサンプルを通じてOpenIDのメカニズムに触れていきたいと思います。必要な環境 Perl 5.8以上が動作する環境が良いと思います。基動作の確認はMac OS Xを利用しましたサンプルの紹介 早速サンプルコードの「openid-test.cgi」を見ることにしましょう。このサンプルはOpenIDを利用した簡易ログインページです。 #!/usr/bin/perl use strict; use warnings; use CGI; use Net::OpenID::Consumer; #use LWPx::ParanoidAgent; use LWP::UserAgent; my $query = CGI->new; $query->charset('utf-8

  • REXML:RubyによるXML処理

    Scaffoldで生成したアプリケーションは出発点にすぎず、自立した完成品のアプリケーションではありません。このため、開発者がプロジェクトに適した形になるように手を加える必要があります。しかし、毎回似たような修正を行うのであれば、生成した時点でその修正が反映されている方が、より生産性も向上します。そこで稿では、Scaffoldをカスタマイズする方法を紹介します。

  • 「ちょっと待て」 真・MySQLのクエリを最適化する10のTips:CodeZine

    Jaslabs: High performance phpで紹介された「MySQLのクエリを最適化する10のTips」に対して、反論している人がいる。ブログ「20bits」のJesse氏だ。彼は「10 Tips for Optimizing MySQL Queries (That don’t suck)」というエントリーで、Jaslabs氏の記事は適切でないとしている。 Jesse氏の経験によれば、SQL最適化で最も重要なことはSQLDBの基をしっかりと理解することであり、60%がこれで解決するという。残り35%はDBやクエリの特殊な性質に対する対処であり、最後の5%で発想の転換などを求められる。Jaslabs氏はここにばかり力を入れており、それはまったくもって時間の無駄だと述べている(Jesse氏は「SQL_SMALL_RESULTなんて、生まれてこの方使ったことすらない」とまで言