タグ

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

  • Javaの標準機能だけで実現する帳票印刷の基本

    Javaで好みの用紙に自由に文字や線を印刷したいと思ったことはありませんか。Java SEの機能だけを使った帳票印刷の方法を解説します。筆者は教員として学校の成績一覧表、通知表、宛名印刷などのプログラムを書いてきました。もちろん罫線を含めて印刷できますが、すでに印刷された罫線に合わせて文字を入れることもできます。データの量に合わせて表の行数を変えたり、行の高さを変えることもできます。文字列の均等割付や右寄せ、枠に入り切らない時のフォントのサイズ調整や自動改行をさせることもできます。請求書や伝票なども思い通りにレイアウトでき、後の仕様変更にもすぐに対応できます。 はじめに やっていることは極めて単純で印字位置をmmで指示して文字列を描き、線を引くだけです。複雑なレイアウトでも実現できるという見通しを持つことができます。 最近はライブラリやツールが出てきているようですが、筆者はよく知りません。

    Javaの標準機能だけで実現する帳票印刷の基本
    nharuki
    nharuki 2019/05/13
    FOP使った方がよっぽど楽(なお日本語表示という壁がry)
  • <numeric>がらみの数値演算に触発されて、「巨大整数のかけ算」を行う方法

    #include <vector> #include <string> #include <algorithm> using namespace std; string onpaper_multiplies(const string& sa, const string& sb) { int digits = (int)(sa.size() + sb.size()); vector<int> a(sa.size(),0); vector<int> b(sb.size(),0); vector<int> c(digits,0); // 下位の桁から順にセット auto char2int = [](char ch) { return ch - '0';}; transform(sa.rbegin(), sa.rend(), a.begin(), char2int); transform(sb.r

    &lt;numeric&gt;がらみの数値演算に触発されて、「巨大整数のかけ算」を行う方法
    nharuki
    nharuki 2015/08/27
    FFTWライブラリを用いたショーンハーゲ・ストラッセン法による多倍長整数乗算
  • 構成管理ツール「Chef」の概要とインストール手順

    自動化ツールの必要性 昨今、仮想化およびクラウドの普及に伴い、サーバを短時間で増設することが容易になってきました。例えばユーザアクセスが増えてシステムの負荷が高くなった場合、サーバそのものは即座に準備できるようになりました。しかし、システムの設定は別途実施しなければいけないという状況も多々見受けられています。 サーバの台数が少なければ一台一台構築や設定を行えますが、何百台ものサーバを扱うとなると時間がかかって迅速性は失われてしまいますし、多くの人手が必要となれば設定の間違いが起こる可能性も高くなるでしょう。そして管理するサーバが増えたとしても、それらを管理する人は増えていないのが現状です。 そのため、サーバ構築とともにアプリケーションやミドルウェアの設定をも実施する自動化ツールが注目されています。 Chefとは Chef(シェフ)は、米Opscode社が提供するクラウドコンピューティングを

    構成管理ツール「Chef」の概要とインストール手順
    nharuki
    nharuki 2013/11/20
    これを機にちょっとお勉強・・・
  • 普及目前! 10Gigabit Ethernetの世界を知る

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

    普及目前! 10Gigabit Ethernetの世界を知る
    nharuki
    nharuki 2013/05/24
    ハイパフォーマンスネットワーク向けスループット測定方法
  • HAVING句の力

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

    HAVING句の力
    nharuki
    nharuki 2012/06/27
  • PHPでの「ORMライブラリ」機能比較

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

    PHPでの「ORMライブラリ」機能比較
    nharuki
    nharuki 2011/05/20
  • StateパターンでCSVを読む

    こんなのを読み込んで適当な処理を施して欲しい、と。Excelのシートから各セルの値を拾い出すのはさほどに難しくはないのですが、いかんせん時間がなかったのでいったんはお断りしたところ、「Excelシートを直接読むのが面倒ならCSVからでもかまわん」とのこと。CSVならフツーにテキストファイルを読めばいいから小一時間で作れそう、昼メシ奢ってもらうのを報酬に引き受けることにしました。 CSVのフォーマット CSV(Comma Separated Values)はMS-DOSあるいはその以前からスプレッドシートのデータ・フォーマットとして使われています。CSVの規格/標準としてはRFC4180がありますが、こいつは2005年に作られたものでそれ以前のアプリケーションがRFC4180に準拠していることは期待できるはずもありません。とはいえ、まずはRFC4180に従って作られたCSVなら正しく読めるこ

    StateパターンでCSVを読む
  • PHPUnitでできる単体テスト

    はじめに 単体テストとは、システムの構成要素であるクラスやメソッド単位での動作を確認する作業のことを言います。 Webシステムは基的に不特定多数に公開するものであり、公開前にはきちんとテストを行っておくことが重要です。 PHPにはテストツールとしてPHPUnitという単体テストのツールがあり、PHPUnitを利用するとクラス内のメソッドに対してテスト用のクラスを自動で生成し、効率よくテストすることができます。 PHPUnitを利用して単体テストする場合のプロセスは テスト対象となるクラス、PHPプログラムの作成 1.で作成したクラスからPHPUnit内のクラスを用いてテスト用のクラスを作成 2.で作成したテスト用のクラスに目的に応じてテストメソッドの実体を記述 テスト実行、結果の確認 となります。 記事では、連載第4回『GPS携帯を使った口コミサイト構築』の逆ジオコーディング処理をテ

    PHPUnitでできる単体テスト
  • Zend Framework入門(17): ウィジェットDijitをPHPアプリで利用する - Zend_Dojo(中編)-

    はじめに 連載では、PHP上で動作するアプリケーションフレームワークであるZend Frameworkについて紹介していきます。今回はZend Framework 1.6から追加されたモジュールの一つであるZend_Dojoの紹介の中編で、高機能ウィジットのDijitをZend Frameworkから利用する方法について説明します。 「Dijit」はDojo Widgitの略で、静的なHTMLだけでは実現できないような「動きのある」部品をいくつか提供しています。Zend_DojoにはこのDijitのうち、レイアウトに関するものとウェブフォームに関するものを作成するための機能が付属しています。今回はZend_DojoからDijitを利用する基的な方法について説明します。 対象読者 PHPの基構文は一通り理解しているが、フレームワークを利用したことはないという方を対象としています。 必要

    Zend Framework入門(17): ウィジェットDijitをPHPアプリで利用する - Zend_Dojo(中編)-
  • 今からでも遅くない これから始めるScala(前編)

    なぜ、いまScalaなのか? TwitterScalaを利用しているのは有名ですが、他にも位置情報を利用したfoursquareはScalaで構築されたLiftというWebフレームワークを利用していますし、GTDツールとして有名なRemember The MilkもScalaの利用を検討しているようです。 Scalaは、Java Virtual Machine(以下JVM)上で動くオブジェクト指向+関数型言語です。簡潔で柔軟な記述が可能であり、マルチコアを意識したライブラリがあり、JVMでのスケールメリットを享受できることが、これらの企業で採用に踏み切った理由であると考えられます。 Scalaは、非常にバランスの取れたプログラミング言語です。連載では、Scalaの基的な文法を解説しながら、オブジェクト指向と関数型言語を組み合わせたプログラミングスタイルについて、解説したいと思います。

    今からでも遅くない これから始めるScala(前編)
  • shared_ptrによるObserverパターンの実装

    WindowsをはじめとするGUIの普及によるものか、Observerパターンは数あるデザインパターンの中でも適用頻度の高いものの一つです。GUIアプリケーションではキー入力やボタンクリックといったイベントを受理したときの処理(イベントハンドラ)を定義し、イベントとイベントハンドラとの対応付けを行っておきます。そうすることでイベントに応じた処理、すなわち「イベントに反応する」ことができます。イベントとイベントハンドラとの対応付けに用いられているのがObserverパターンというわけ。 step-1: SubjectとObserver Observerパターンでは2つのクラス、SubjectとObserverが関与します。Subjectはイベントの発行元、Observerがイベントに反応するハンドラの基底クラスとなります。Observerにはあらかじめ、イベントに反応して呼び出されるメソッド

    shared_ptrによるObserverパターンの実装
    nharuki
    nharuki 2010/08/30
    わんくまの復習も兼ねて
  • 翻訳書「レガシーコード改善ガイド」の注目トピック一覧

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

    翻訳書「レガシーコード改善ガイド」の注目トピック一覧
  • WEBシステムの様々な機能をSmartyを使って実装する

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

    WEBシステムの様々な機能をSmartyを使って実装する
  • 今からでも遅くない JPAを学ぼう!(後編) オブジェクト間の関連を理解し、JPQLを使用する

    Java Persistence API(JPA)を使ってオブジェクトの世界とリレーショナルの世界を結び付ける方法を一緒に学んでいきたいと考えています。前編では1つのテーブルに対してCRUD操作を行いました。後編となる今回は、複数のテーブル間の関連をEntityモデルで表現する方法と、それらを扱うためのJPQLについて説明します。 はじめに JPA(Java Persistence API)とは、オブジェクトの世界からリレーショナルの世界へ、あるいはその逆への変換を行うためのAPIです。 前編では、JPAを使用した1テーブルに対するCRUD操作を行うための実装方法を説明しました。後編となる今回は、複数のテーブルに対するCRUD操作について解説していきます。 ディレクションとカーディナリティのトラウマ オブジェクトモデルの世界でEntity間の関連は、ディレクションとカーディナリティという2

    今からでも遅くない JPAを学ぼう!(後編) オブジェクト間の関連を理解し、JPQLを使用する
  • 今からでも遅くない JPAを学ぼう!(前編) O/Rマッピングフレームワークへの招待

    JPAとは JPA(Java Persistence API)とはオブジェクトの世界からリレーショナルの世界へ、あるいはその逆への変換を行うためのAPIです。 それでは何もJPAを使わずともHibernateやiBatisを既に使っているから必要ないのではと考えられた方も多いかと思います。確かに既にそれらのO/Rマッピングフレームワーク(以降、O/Rマッパー)を利用されているのであれば特に必要ないのかもしれません。 そう思った方も少し待ってください。データベース製品の多様性を隠ぺいするためにJDBCが考えられたように、あるいはMOM製品の多様性を隠ぺいするためにJMSというAPIが考えられました。ところがO/Rマッパーの違いを隠ぺいするためのAPIは存在しなかったのです。iBatisを使用されている方にはあまり嬉しくないかもしれませんが、JPAの仕様作成の中心人物こそHibernateプロ

    今からでも遅くない JPAを学ぼう!(前編) O/Rマッピングフレームワークへの招待
  • PHPで行う動画変換(前編)

    はじめに オープンソースの動画変換ソフトフェアの一つにffmpegがあります。ffmpegはさまざまな形式の動画、音声データの変換に対応していて、コマンドラインから操作でき、PHPJavaなどで作成したアプリケーション内から呼び出すこともできます。 ffmpegの機能の一部をPHPで使えるようにしたエクステンションにphp-ffmpegがあります。php-ffmpegを利用するとPHP内でffmpegの機能を容易に呼び出せます。またphp-ffmpegとは別にPHPのみでffmpegの機能を使えるライブラリ FFMPEG-PHP Classが公開されています。 記事ではphp-ffmpegFFMPEG-PHP Classを使用して動画のプロパティ取得、flv(注1)への動画変換、Youtubeから動画をダウンロードして3gp(注2)への動画変換を実装する方法を2回にわたって説明します

    PHPで行う動画変換(前編)
  • 400万行のコードを15分で見える化! プログラム解析ツール『Understand』で開発効率アップ

    システムの多機能化により、プログラムの内容が複雑化している。テクマトリックスの『Understand』は、プログラムの構造を可視化することで、ソースコードの解析時間を大幅に削減できる開発支援ツール。今回は同社の福永一寛氏に、Understandの機能や特徴について聞いた。 システムの多機能化により、プログラムの内容は複雑化している。既存コードの改修や多人数での開発における情報共有のためには、プログラム構造の理解が必須だが、ドキュメントと実装内容とが乖離している場合も多く、解析自体に工数がかかることもある。テクマトリックスの『Understand』は、プログラムの構造を可視化することで効率的なソフトウェア開発をサポートするソフトウェア開発環境。「組込みシステム開発技術展(ESEC)」にて、同社の福永一寛氏にその特徴を聞いた。 ソースコードの解析作業時間を大幅に削減する『Understand』

    400万行のコードを15分で見える化! プログラム解析ツール『Understand』で開発効率アップ
    nharuki
    nharuki 2010/06/02
    現時点ではC++テンプレートには対応していない…だと???
  • Google App Engine/JavaによるScala/Liftアプリケーション開発(前編)

    はじめに Google App Engine(GAE)/Javaでは、Java仮想マシン上で動作する言語を利用することができます。例えば、JRubyやGroovyなどです。 Scalaも、コンパイルすることによりJava仮想マシン上で動作するクラスファイルを生成する言語ですので、当然、GAE/Java上で動作させることができます。 Scalaが動作するということは、ScalaでできているWebアプリケーションフレームワークであるLiftを元に作成されたアプリケーションを、GAE/Javaに載せることができるということです。 前後編で構成される連載では、ScalaおよびLiftをGAE/Java上で動作させる方法を解説した後、サンプルアプリケーションでGoogleが提供するさまざまなAPIを利用した、GAEならではのアプリケーションを作成して、GAEでのアプリケーション作成のイメージをつか

    Google App Engine/JavaによるScala/Liftアプリケーション開発(前編)
  • PHPアプリでのナビゲーションUIの応用 - Zend_Navigation -

    連載では、PHP上で動作するアプリケーションフレームワークであるZend Frameworkについて紹介していきます。今回は、ウェブページへのリンクを管理するためのモジュールであるZend_Navigationについての紹介の2回目です。今回は設定ファイルからのリンク集の作成や、Zend_Aclとの組合せなど、少し高度な利用法について見ていきます。 はじめに 連載では、PHP上で動作するアプリケーションフレームワークであるZend Frameworkについて紹介していきます。今回は、ウェブページへのリンクを管理するためのモジュールであるZend_Navigationについての紹介の2回目です。今回は設定ファイルからのリンク集の作成や、Zend_Aclとの組合せなど、少し高度な利用法について見ていきます。 対象読者 PHPの基構文は一通り理解しているが、フレームワークを利用したことはな

    PHPアプリでのナビゲーションUIの応用 - Zend_Navigation -
  • SEXYHOOKで始めるテスト とある関数の接合部(1)

    はじめに テストを書いていると、一時的に関数の挙動を書き換えたいときがあります。 time()がハードコードされている関数をデバッグしたい時や、稀にしか失敗しないAPIの失敗をエミュレーションしたい時などです。これらはテストの自動化の妨げになっていました。 拙作のSEXYHOOKを利用すると、一時的に関数の挙動を書き換え、失敗を返すことが可能になります。 稿では、SEXYHOOKの使い方について説明します。 対象読者 C++でソフトの開発を行い、テストを書きたいエンジニア SEXYHOOKはC++で使うことを想定しています。 必要な環境 Windows Microsoft Visual C++ 6/2003/2005/2008 Linux GCC 4.x(推奨) / 3.x 現状では32bitバージョンのみのサポートになります。SEXYHOOKはデバッグビルドのみで利用できます。 SEX

    SEXYHOOKで始めるテスト とある関数の接合部(1)
    nharuki
    nharuki 2010/04/27
    アスペクト指向っぽい??