似非プログラマのうんちく

「似非プログラマの覚え書き」出張版

巳年じゃないけど Python やろうぜ(その 21)

PostgreSQL の利用 Django はデフォルトで SQLite3 を利用しますが、他のデータベースを活用することもできます。今回はその中から PostgreSQL を利用してみようと思います。 PostgreSQL のインストールと設定 Windows の場合は GUI インストーラもあって、…

Memcached をインストールする

Python シリーズ番外編で Memcached のインストール方法を紹介します。 Windows の場合 こちらが参考になります。Windows で Memcached を使う - make worldmemcached-win64-1.4.4-14.zip をダウンロードしてきて適当なフォルダ(例えば C:\memcached) に解凍…

巳年じゃないけど Python やろうぜ(その 20)

Ajax の活用(続き) バリデーションエラーの出力 フォームのバリデーションエラーに関する情報は form.errors に辞書形式で格納されているので、それを利用すれば行けることがわかりました。views.py from django.shortcuts import render from django.http.r…

巳年じゃないけど Python やろうぜ(その 19)

Ajax の活用 以前作成した customer_search アプリケーションを Ajax を活用して作り変えてみましょう。 Ajax 活用のための準備 Ajax 活用のために、いくつかの準備が必要です。1. js.cookie.js をダウンロードするGitHub - js-cookie/js-cookie: A simple, …

巳年じゃないけど Python やろうぜ(その 18)

キャッシュサーバーの活用 これまではセッションの情報をデータベース(SQLite3)で管理してきましたが、別途キャッシュサーバーを用意して、そちらで管理することもできます。キャッシュサーバーとしてよく使われるのが Memcached です。Memcached のインスト…

巳年じゃないけど Python やろうぜ(その 17)

国際化と翻訳 多くのフレームワークがそうであるように、Django にも国際化の仕組みが備わっています。 下準備 あらかじめ settings.py の USE_I18N が True になっていることを確認します(デフォルトでそうなっていると思います)。今回は customer_search …

巳年じゃないけど Python やろうぜ(その 16)

汎用ビューの活用 Django には、用途に応じて使える汎用ビューが多数用意されています。django_test/urls.py from django.conf.urls import url, include from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^hello…

巳年じゃないけど Python やろうぜ(その 15)

初期データの一括投入 今回から、当ブログではすっかりお馴染みの「政令指定都市一覧」を使って、Django の様々な機能を見ていきます。 $ ./manage.py startapp major_city例によってアプリを作成するところからスタート。Model を作ります。 from django.db…

巳年じゃないけど Python やろうぜ(その 14)

エラー表示の話 フォームのバリデーションエラーの表示場所をカスタマイズする方法があっさりとわかったので、次なるお題に移る前にさくっと書いておきます。 {% load static %} <html> <head> <title>顧客検索</title> <link rel="stylesheet" href="{% static 'customer_search/css/search.css' %}"> </head> <body> <h1>顧客検索</h1> <form method="post" action="."> {% csrf_token %} </form></body></html>

巳年じゃないけど Python やろうぜ(その 13)

ロギングの話 デフォルトでもある程度のログは出力されるのですが、データベースとの連携においては、少なくとも開発の段階では SQL の発行状況などを確認したいと思うはずです。これは settings.py に設定を記述することで可能になります。 LOGGING = { 've…

巳年じゃないけど Python やろうぜ(その 12)

フォームとビューの作成 まずはビューの作成に必要なフォームから作ります。既に Django バリバリ使ってる人なら「ModelForm 使えば楽やろ」って言うと思いますが、実は ModelForm には「(自動生成される id などの)AutoField はフォーム部品化の対象外」だ…

巳年じゃないけど Python やろうぜ(その 11)

管理画面を使う 管理者ユーザーの作成 管理画面を使うにはまず管理者ユーザーを作成しなければなりません。 $ ./manage.py createsuperuser Username (leave blank to use '(snip)'): admin Email address: admin@example.com Password: Password (again): T…

巳年じゃないけど Python やろうぜ(その 10)

だいぶシリーズが長期化してきました(苦笑) Model で遊ぶ 今回使用するデータは「現場で使えるSQL 第2版」のものを使用することにします。現場で使えるSQL 第2版 (DB Magazine SELECTION)作者: 小野哲,藤本亮出版社/メーカー: 翔泳社発売日: 2006/11/16メデ…

巳年じゃないけど Python やろうぜ(その 9)

Model を扱う いよいよ今回から Model を扱います。…の前に。 Atom で Django アプリの開発を快適に行うために すっかり忘れていましたが、Atom で Django アプリの開発を行う際に入れておくと良いパッケージを二つ紹介しておきます。 atom-django django-te…

巳年じゃないけど Python やろうぜ(その 8)

3 週間ほど空いてしまいました。この間こっそりと開発環境を Linux に移行させていたのは秘密です*1。 hello ページを作る(続き) 静的ファイル(CSS, JavaScript, etc...)の配置 今回は CSS を配置してみます。django_test\hello\static\hello というフォルダ…

巳年じゃないけど Python やろうぜ(その 7)

もうちょっとだけ hello ページをいじるよ。 hello ページを作る(続き) テンプレートを使い回す Django には共通のテンプレートを用意してそれを使い回す方法が用意されています。extends と include です。前者はベースとなるテンプレートに個別のテンプレ…

巳年じゃないけど Python やろうぜ(その 6)

Hello ページを作る(続き) 前回までで、テンプレートを利用して Web ページを表示させることができましたが、まだ Web アプリっぽくないですよね。もう少しそれっぽくするにはフォームとかあったらいいんじゃないでしょうかね。 フォームを作成する 今回はフ…

巳年じゃないけど Python やろうぜ(その 5)

前回からの続きです。 Hello ページを作る(続き) HttpResponse に HTML を渡すための方法として、テンプレートを用いることにします。 まず django_test\hello の下に templates というフォルダを作り、さらにその中に hello というフォルダを作ります(この…

巳年じゃないけど Python やろうぜ(その 4)

ちょっと前回の補足。もし Python 3.6.0 しか入れていないか、もしくは Python 2.7.x の後に Python 3.6.0 をインストールしていて、なおかつ Python Launcher をインストールしていたなら、開発用サーバの起動は >manage.py runserverで行えます。その他の …

巳年じゃないけど Python やろうぜ(その 3)

似非プログラマです。本日、御年 41 になりました。また一つ、おっさんの階段を上りました。まぁそんなことは置いといて、Django です。 そもそも Django って何よ ? Django is a high-level Python Web framework that encourages rapid development and cl…

巳年じゃないけど Python やろうぜ(その 2)

前回からの続きです。 開発環境を整える PyCharm は割とおすすめらしいんだけど、無料版だと Web 開発にはやや機能不足っぽい。ということで、無料で整えられる環境としては以下のパターンがあるかと思います。 Eclipse + PyDev Eclipse - The Eclipse Found…

巳年じゃないけど Python やろうぜ(その 1)

どうもすっかりとご無沙汰しておりました。忙しかったり体調崩したり、なかなかブログに本腰が入れられない状態がずっと続いていましたが、暇になったのでまた再開しようかと思います。今後も相変わらず不定期ですが、なにとぞよろしくお願いいたします。 き…

Apache Maven を使ってみよう(その 3)

Maven のプラグインについて Maven のプラグインは主に以下のサイトで用意されている。 Maven – Available Plugins Mojo – MojoHaus Maven Plugins Project Exec Maven Plugin 前回の課題になっていた、Maven のビルドの実行の際に main を実行するためには…

Apache Maven を使ってみよう(その 2)

Maven のビルドライフサイクル Maven のビルドライフサイクルには多数のゴールが設定されている。ちなみにデフォルトのライフサイクルには何と validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, …

Apache Maven を使ってみよう(その 1)

当ブログではこれまで Apache Maven (以下、Maven) の話題は極力避けてきたが、昨今の開発事情を鑑みるに、最早 Maven なしでは開発がままならない状況になりつつある。Spring MVC では標準のビルドツールとして採用されるなど、Maven は避けては通れないも…

Ruby で FizzBuzz を満喫する

Scala にだいぶSAN値を削られたのでここいらで Ruby に日和ろう(苦笑)。 その 1 : Object#tap を利用する to_fizzbuzz = -> n { "".tap do |_| _ << "Fizz" if n % 3 == 0 _ << "Buzz" if n % 5 == 0 break n if _.empty? end } puts 1.upto(100).map(&to_fi…

Scala でとことん FizzBuzz する(その 4)

最初にお詫び。前回の記事にかなり大幅な修正を加えています。再度確認をしていただけるとありがたいです。追記 : 今回作ったソースファイル群(+ テストコード)を GitHub で公開しました。 akaneko3/FizzBuzzScala · GitHub

Scala でとことん FizzBuzz する(その 3)

さぁ、改造を続けよう。 FizzBuzz アルゴリズム再考 ちょっとひねって、次のような写像を考える。何も書いていないところは空文字列を対応させていると考える。これを利用して、FizzBuzz のアルゴリズムを少し変更する。 何らかの方法で "", "", "Fizz", "",…

Scala でとことん FizzBuzz する(その 2)

前回のプログラムは無事動いたかな ? では改造を始める。でもその前に…。 SBT で作ったプロジェクトを Scala IDE for Eclipse で扱えるようにする 前回までの手順で、プロジェクト直下に project フォルダが出来ていると思う。そこに plugins.sbt というファ…

Scala でとことん FizzBuzz する(その 1)

プログラミングをこよなく愛する皆さん、今日も元気に FizzBuzz してますか !「FizzBuzz って何 ?」という人から「FizzBuzz が何の役に立つんだよ」という人まで、今回は存分に FizzBuzz を楽しめる(?)連載を始めますよ ! 「FizzBuzz」とは何か FizzBuzz。そ…

お詫びと補足

お詫び 昨日の記事ですが、IntStream の状態で一度 count をかますと、コメントに残していた一覧表示(forEach の部分)が不可能になります。お詫びして修正します。今回は個数だけを求めるプログラムに特化する形にさせていただきました。一覧も表示させる場…

エラトステネスの篩はもう古い !?

タイトルは親父ギャグじゃねーです !ゆっちさんがこんな記事を書いていたようで。 ゆっちのBlog » Java8 時代の素数の求め方最初はそのままパクらせていただいて動かしていました(それでもなかなかに早い)が、地味に無駄な処理があることに気がつきました。b…

エイプリルフールを満喫できる休日はいつ訪れるか

今日は 4 月 1 日です。新年度の始まり、そしてエイプリルフールですね。いろんな人がよってこぞってエイプリルフールネタを投下してくるので、どれが本当の記事かわかりません(苦笑)。しかし今日はあいにくの平日とあって、エイプリルフールを満喫している…

やっぱり Rails を選択しない 3 つの理由

それでもRailsを選択する3つの理由 - pblog を読んで、敢えて反論を書いてみたくなった天の邪鬼の戯言と思ってください。 まず反論 業務レベルで Rails の導入を検討した場合、概ね以下のような感じになるんじゃなかろうか。 「規約縛りの哲学」への反論 言…

JPA + EJB + JSF による Web アプリケーション(その 6)

∧,,∧ (;`・ω・) 。・゚・⌒) View 作るよ!! / o━ヽニニフ)) しー-JFacelets 群 + α。 MajorCityJavaEE/list.xhtml at master · akaneko3/MajorCityJavaEE · GitHub MajorCityJavaEE/detail.xhtml at master · akaneko3/MajorCityJavaEE · GitHub MajorCity…

JPA + EJB + JSF による Web アプリケーション(その 5)

長らくお待たせいたしました。今回は Java のソースコードを書いていきます。 下準備 前回作った JSF のプロジェクトのビルド・パスに、以前に作った EJB のプロジェクトを含めること。これをしないと EJB 側のパッケージを参照できずエラーになります。 管…

JPA + EJB + JSF による Web アプリケーション(その 4)

今回は JSF 側のプロジェクトを作っていきます。まずは JSF のプロジェクトを作ります。ファイル構成はこんな感じ。 WebContent/WEB-INF/faces-config.xml や WebContent/lib 内に初期に配置される各種 jar は必要ないので削除します。代わりに WebContent/l…

JPA + EJB + JSF による Web アプリケーション(その 3)

そろそろ現実に帰って Java EE の記事を書きます(汗)。Model の Entity を JPA で、Business logic を EJB で実装します。JPA は前にも説明した通り永続化と O/R マッピングですが、EJB をことさらに使う理由としては、WildFly (やその他 Java EE アプリケー…

jQuery と Sass で FizzBuzz を作ったよ(改良)

前回の記事で作ったものは FizzBuzz をやっているのは実質 jQuery 側、ということで、全部 Sass にやらせるバージョンを作ってみた。akaneko3/FizzBuzz · GitHubmixin にデフォルト値付きの引数を持たせている。mixin を呼び出すときに引数を適当に引数を与…

jQuery と Sass で FizzBuzz を作ったよ

いろんな人がやってるから何番煎じかわからんけど HTML はベタ打ちせずに jQuery を利用した DOM で生成する Sass を利用してスタイル(文字色の変更)を適用する 3 と 5 はリテラルとして使って良いが、 15 (= 3 * 5)*1 はリテラルとして直に使ってはいけない…

JPA + EJB + JSF による Web アプリケーション(その 2)

前回の続きで下準備編。 PostgreSQL の下準備 PostgreSQL のインストールとデータベースの作成 ごっそりと割愛。他の人が解説してくれてるよ、きっと(丸投げ)。 データの投入 SQL をぶん投げる。長くなるので折りたたみ。

JPA + EJB + JSF による Web アプリケーション(その 1)

そろそろ本腰入れて Java EE 7 について書こうか。うん、そうしよう。随分と長いこと WildFly には嫌われてきた*1が、ようやく動かせる状態になったので、簡単なサンプルを元に解説なんぞできればよろしいかと。Java EE に含まれているいくつかの API のうち…

独自のカウンタースタイルを定義する

まだ CSS3 の草案の段階ではあるが、独自のカウンタースタイルを定義することができる。そのサンプルがこちら。 全角数字カウンタスタイル通常の decimal だと半角数字になるが、この em-decimal では全角数字になる。それに意味があるかと言われると微妙*1…

Rust 始めました

Rust という 変態 プログラミング言語を始めてみますた。とりあえずさくっと階乗でも書いてみるかー、で作ったもの。 Factorial with Rustもうちょっとスマートに書きたい。 fold(1, |a, b| a * b) の第二引数は Haskell っぽく演算子をそのまま関数っぽくし…

MyBatis + Guice でカンタン DAO 実装(その 4)

View の作成 Velocity で作る。list.vm <html> <head> <title>日本の政令指定都市一覧</title> <link rel="stylesheet" href="css/list.css" type="text/css"> </head> <body> <table> <caption>日本の政令指定都市一覧</caption> <colgroup> <col id="no"> <col id="pref"> <col id="name"> <col id="button"> </colgroup> <thead> <tr>…</tr></thead></table></body></html>

MyBatis + Guice でカンタン DAO 実装(その 3)

Servlet の作成 DAO の使い方の例として。 package jp.mydns.akanekodou; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servl…

MyBatis + Guice でカンタン DAO 実装(その 2)

前回の続き。 DAO 層の実装(続き) まずは DAO クラスであることを明示するためのインターフェースを用意*1する。 package jp.mydns.akanekodou.dao.util; import java.util.List; /** * DAO クラス共通インターフェース * * @author Red cat * @param <T> DAO </t>…

MyBatis + Guice でカンタン DAO 実装(その 1)

O/R マッパーである MyBatis と軽量 DI コンテナ Guice による DAO 実装について、今回から数回に分けて書きます。 MyBatis とは MyBatis は iBatis の後継となる O/R マッパー。マッピングファイルに SQL を記述し、インターフェースを用意することで、マッ…

JUnit4 による例外発生時のメッセージのテスト

JUnit 4.7 からの機能で、例外が throw されたときのメッセージ(getMessage で取得できる文字列)をチェックすることが出来るようになったらしい。具体的には、同じ例外クラスを throw するが、ケースによってメッセージが変わるような場合に、@Test(expected…

JUnit による単体テストの自動化

JUnit は Java における単体テストの自動化をサポートするサードパーティー製のライブラリ(フレームワーク)である。が、これだけの説明では何のことかわからないと思うので、もう少し詳しく説明する。 単体テストの定義と意義 単体テストとは ? 単体テストと…