オブジェクト指向とは
アラン・ケイ博士は
1970年、ゼロックス社のパロアルト研究所(現在、ゼロックスの完全子会社)の設立に参加し、
1970年代に史上初の本格的GUIを備えた暫定的ハードウエアである「Alto」と、エンドユーザーが自在にプログラミング可能で、それを全方面からサポートする機能を有する暫定的環境「Smalltalk」の開発において指導的立場をとった。
このSmalltalk環境の動作するAlto(暫定ダイナブック)を見学する機会を得たスティーブ・ジョブズが、そのアイデアを大いに取り入れてLisa、続くMacintoshを開発した、というのは有名な話である。
ケイとパロアルト研究所の同僚は、オブジェクト指向プログラミングというアイデアの生みの親で、オブジェクト指向と言う言葉は、Smalltalkのプログラミングスタイルを説明するために作られた。
⇒「クラス」と「オブジェクト」を備えた言語機能と自らのアイデアである「メッセージング」と組み合わせて「オブジェクト指向」と称した。後にビャーン・ストラウストラップにより「カプセル化・継承・ポリモーフィズム」として再定義されている。
上記のことから、オブジェクト(=モノ)指向とは現実世界の事象をコンピューター上で表現する事で抽象化された分かりやすいプログラムを作る技術ではなく、
クラスをメモリ上に展開したインスタンス(≒オブジェクト)中心のプログラムを作る考え方である。
クラスにはデータ、データに対する手続き(メソッド)が定義されており、オブジェクト指向では、クラス内メソッドを実行する事=メッセージをやり取りする(=メッセージパッシング)。
また、クラスにはカプセル化、継承等の仕組みがプログラム言語の仕様として用意されている、これにより保守性、拡張性が高まる。
プログラマになりたいあなたへの手紙
プログラマになりたいあなたへの手紙
「プログラマに必要なたった一つの力」
上記はプログラマとしての心構えなどについて語っている“読み物”です。
プログラミングを始めてまだ間が無い人にとって、先人たちが語るプログラマとしての心構えや考え方はそのまま役に立つと思います。また、ある程度以上の経験がある人にも自分の“立ち位置”を確認するうえで参考になると思います。
JMeterとは
Apache JMeter(アパッチ ジェイメーター)は、Apacheソフトウェア財団にて開発されている、パフォーマンス測定および負荷テストを行うJavaアプリケーションです。
HTTPレスポンスの内容の妥当性を判定することもできるため、パフォーマンステストのみならず、機能テストに使用することも可能です。
オープンソースかつ多数の機能を備えていることから、WebアプリケーションおよびWebサーバの性能測定に広く利用されているようです。
[Java] Tomcatとは
- Tomcatとは
サーブレットコンテナ(Java Serveletを動かすソフト)
→サーバ上で動くJavaプログラム 。動的なページが生成可能。
(JSPはコンパイルするとServletになる。)
1 2 3 4 5 6 7 8 9 10 11 | public class HelloWorld extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World!</title>"); //~HTMLを出力~ out.close(); } } |
正式名称は「Apache Tomcat」。
初版は1999年。
簡易的なWebサーバとしての機能も持つ。
- Tomcatの意味
- 雄猫
- 女の尻を追い回す男,女たらし.
- 〔軍事〕 トムキャット:米海軍艦上戦闘機 F-14の愛称.
平成30年度健歩大会(東京ディズニーランド®・東京ディズニーシー®)
関東ITソフトウェア健康保険組合 の
「平成30年度健歩大会(東京ディズニーランド®・東京ディズニーシー®)実施要領」
- 詳細のURL
http://www.its-kenpo.or.jp/NEWS/event_shisetsu/dk.html - 開催期間
→平成30年6月1日(金)~6月30日(土) - 開催場所
→東京ディズニーランド® (最寄り駅 JR京葉線 舞浜駅下車徒歩5分)
→東京ディズニーシー®(最寄り駅 ディズニーリゾートライン 東京ディズニーシー・ステーション下車すぐ) - 申し込み締め切りは、3月9日(金)24時まで
平成30年度春季ITSウォーキング大会実施要領
関東ITソフトウェア健康保険組合 の
「平成30年度春季ITSウォーキング大会実施要領」
- 詳細のURL
http://www.its-kenpo.or.jp/NEWS/event_shisetsu/walking.html - 開催日、場所、コース
第1回 平成30年4月7日(土)
「外堀通り桜並木散策」コース
第2回 平成30年4月8日(日)
「中野・哲学堂~神田川桜並木散策」コース
- 申し込み締め切りは、3月2日(金)24時まで
一泊二日金沢の旅 – 2007年社員旅行
2007年に社員旅行にいきました。
概要は次の通りです。
<一泊二日金沢の旅>
1日目(2007/11/10)
- 羽田空港に集合
- 羽田空港==>小松空港==連絡バス==>武蔵が辻–徒歩–>近江町市場
- 鯨屋にて昼食
- 近江町市場でお買い物
- 長町の武家屋敷跡経由で、ホテル(徒歩)
- エクセルホテル東急 にチェックイン
- ホテル・ロビー 集合
- 送迎バスにてボーリング場へ移動
- ボーリング大会
- 送迎バスにて杉の井に移動
- 杉の井(https://r.gnavi.co.jp/gjxbufg10000/)にて宴会
- 片町へ移動
- 自由行動
2日目(2007/11/11)
- 朝食(ホテル内のレストラン)
- ホテル・ロビー 集合
- 徒歩にて兼六園に移動
- 兼六園の見学
- 金沢城公園経由、徒歩でホテル
- チェックアウト
- 大和で、お土産購入
- 香林坊==連絡バス==>小松空港==>羽田空港
- 解散
[Java] JavaでZip圧縮
JavaでZip圧縮
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | private void createZip() { File[] files = {/* 圧縮したいファイル配列 */}; ZipOutputStream zos = null; try { zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(new File("hoge.zip")))); createZip(zos, files); } catch (IOException e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(zos); } } private void createZip(ZipOutputStream zos, File[] files) throws IOException { byte[] buf = new byte[1024]; InputStream is = null; try { for (File file : files) { ZipEntry entry = new ZipEntry(file.getName()); zos.putNextEntry(entry); is = new BufferedInputStream(new FileInputStream(file)); int len = 0; while ((len = is.read(buf)) != -1) { zos.write(buf, 0, len); } } } finally { IOUtils.closeQuietly(is); } } |
[Java] プロキシ経由でのFTP接続とFTPFileFilterの実装について
プロキシ経由で接続
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // FTPクライアント作成 FTPClient ftpClient = new FTPClient(); try { // プロキシ経由で接続 if (proxyHost != null && !proxyHost.equals("")) { ftpClient = new FTPHTTPClient(proxyHost, proxyPort); ftpClient.connect(ftpHost); ftpClient.login(user, passwd); } else { ftpClient.connect(ftpHost); ftpClient.login(user, passwd); } ・・・ |
FTPサーバに接続後 取得するファイルのフィルタをかける
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // ファイルフィルタ FTPFileFilter filter = new FTPFileFilter() { @Override public boolean accept(FTPFile ftpFile) { // 正規表現でマッチさせたファイルを取得 Pattern pattern; pattern = Pattern.compile("^[0-9a-zA-Z].txt$"); return (ftpFile.isFile() && pattern.matcher(ftpFile.getName()).find()); } }; ftpClient.enterLocalPassiveMode(); ftpClient.setFileType(FTP.BINARY_FILE_TYPE); FTPFile[] result; if (filter != null && !filter.equals("")) { result = ftpClient.listFiles(targetDir, filter); } else { result = ftpClient.listFiles(targetDir); } |