読者です 読者をやめる 読者になる 読者になる

Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

単方向リスト(Singly Linked List)の実装 (C++)

C++ Programming

f:id:fa11enprince:20160518180613j:plain
単方向リストを勉強がてら久々にビールを飲みながらC++で書いてみました。
これをやると、ポインタって何かってよく理解できますね。
しかしビールを飲むと、わけのわからないミスをしでかします…。

ソースコード


イテレーターがねえ!とか
追加するたびnewしてる…とかいろいろ足りないところありますが、
勉強で書くにはこれで十分でしょう。
双方向リストじゃないと微妙に実用性ないですね。
ちょこっと変えると双方向リストになります。

実行結果

$ ./list.exe
2
2 3
2 3 4
1 2 3 4
0 1 2 3 4
0 3 1 2 3 4
---------
0 3 1 2 3
3 1 2 3
3 1 3
3 1
---------
3 1 4

参考リンクなど(だけどその実装が微妙です…)

www.sanfoundry.com

MacにEclipse 4.5 Mars に Pleiades導入

Mac Java

f:id:fa11enprince:20100930152341j:plain

Mac版 Eclipseのダウンロード

Eclipse Downloads
ここからEclipse IDE for Java EE Developersをダウンロードします

Pleiadesをダウンロード

Eclipse 日本語化 | MergeDoc Project
ここからPleiades All in One 4.5.2のJava 64bit Standard Editionをダウンロードします。

Eclipseのインストール

ダウンロードしたeclipse-jee-mars-2-macosx-cocoa-x86_64.tar.gzを解凍します
その後、Eclipse.appを/Applicationsに移動します
なお、任意のフォルダに移動する場合はCommand + Shift + Gです
さらに、pleiades-e4.5-java_20160312.zipを解凍します
/Applications/Eclipse.appを右クリックしてパッケージの内容を表示を選択します。
次のものをごそっと全部Pleiadesからコピーします
Windowsと違ってフォルダごと移動すると中身が上書きされちゃうので注意です。
なのでFinderでやる場合はフォルダに潜ってファイル全選択をしてコピーがいいと思います。

コピー元 コピー先
pleiades/eclipse/dropins/ /Applications/Eclipse.app/Contents/Eclipse/dropins/
pleiades/eclipse/features/ /Applications/Eclipse.app/Contents/Eclipse/features/
pleiades/eclipse/plugins/ /Applications/Eclipse.app/Contents/Eclipse/plugins/

また、/Applications/Eclipse.app/Contents/Eclipse/eclipse.iniを書き換えます
ファイルの末尾に次を追加してください
javaagentの場所は/Applications/Eclipse.app/Contents/MacOSから見たpleiades.jarのPATHです

-Dfile.encoding=UTF-8
-Xverify:none
-javaagent:../Eclipse/dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

Eclipseを起動します

問題が起こりやすいのでコマンドラインから起動します。
そうすると原因を教えてくれます。
私はjavaagentのPATH指定で一度失敗しました

$ /Applications/Eclipse.app/Contents/MacOS/eclipse

なお、起動時に
「eclipse.appは壊れているために開けません。”ゴミ箱”に入れる必要があります」
というイケてないメッセージが出ましたら
システム環境設定 > セキュリティとプライバシー > ダウンロードしたアプリケーションの実行許可
で全てのアプリケーションを許可に変更してみてください。

はてなブログの目次記法の簡単カスタマイズ

はてなブログ

f:id:fa11enprince:20160508125616j:plain
目次記法なるものがあって、これは良い!とおもって使ってみました。
h3, h4などに相当するタグ(はてな記法でいえばアスタリスクですね)が
勝手に目次になってくれるやつですね。

使い方は

[:content]

です。こうすると…
f:id:fa11enprince:20160508125952p:plain

だっさwwwコミュ抜けるわ・・・となるわけです。

CSS改造します

ということでCSSを軽くいじります。
例によってデザインCSSのをいじります。

/* Table Of Content */
.table-of-contents {
    border: 1px solid #e4e4e4;
    padding: 20px 10px 20px 40px;
    list-style-type: none;
    border-radius: 5px;
    font-size: 90%;
    background-color: #eeeeee;
}
.table-of-contents:before {
    content: "目次";
    font-size: 110%;
}
.table-of-contents li,
.table-of-contents ul {
    list-style-type: none;
}
.table-of-contents a:link {
    color: #000000;
    text-decoration: none;
}
.table-of-contents a:hover {
    color: #000000;
    text-decoration: underline;
}

そうすると、多少ましになります。
f:id:fa11enprince:20160508130135p:plain
色が変わっているのはリンク踏んだところです。
ちなみに、マウスオーバーしたときに下線がひかれるようにしています。

参考リンク

www.yutakalog.com

Parallels Desktop 11にアップデートしてWindows10にアップグレードしました

Mac

f:id:fa11enprince:20160508123337j:plain

Parallels Desktop 11 for MacにアップデートしてWindows 8.1からWindows 10にアップデートしました。
はまりポイントが少しあったのでメモ

ハマりポイント

  1. そのままWindowsアップデートではメモリ要件に引っかかりクリアできない
  2. VMを2GB以上に設定してもメモリ制限に引っかかる
  3. 外部メディアのpsf形式のドライブをそのままダブルクリックしてもエラーになる
  4. Windowsの標準機能からマウントしようとするとエラーでできない

手順

Parallelsを11にアップデート

Parallels 10を使っていたので11にアップデートしました。
Parallels 10だとWindows 10に対応してません。
Windows 10をつかえるだけでなくサクサクになるそうです。

仮想環境のメモリを2048MBにする

4GBしか積んでないMacBook Airとかだとデフォルトで1GBなので変更しておく。
その際推奨値を超えてるなんて言われるけれども無視します。
Windows 10インストール後元に戻します。

Daemon Tools Liteを入手

メディアに焼くのも面倒なんでマウントします。
Windows標準機能ではマウントできませんでした。
また、外部メディアをすでに持っている場合でも、
ネットワークドライブのところに表示されているMac側に
マウントされたpsfをクリックしてもエラーになります。
Error Code is [0x7E]とか言われる。

ISOをマウントしてインストール

Deamon Tools Liteを起動してクイックマウントからISOを指定してマウントします。
エクスプローラーからマウントしたドライブを選択してsetup.exeをたたきます。

Windows 10のインストール作業

あとはWindows 10のアップグレードのウィザードのようなものの手順に従えば完了です

事後作業

仮想環境のメモリ等をデフォルトに戻します(必要であれば)

参考リンク

qiita.com

SAStrutsの環境構築とチュートリアルのセットアップ

Java Programming web Seasar2

f:id:fa11enprince:20160424104613j:plain
2016年4月24日時点でのSAStrutsのセットアップの情報です。
今更ですが、SAStrutsのtutorialの環境構築をします。
SAStrutsとはJavaのWebフレームワークStrutsの1系を改造したものです。

公式のチュートリアルのセットアップのページの手順を踏むと
情報が古いのか不親切なのかたぶんうまくいかないでしょう。
下記ではスムーズにいっていますが、実はいろいろ苦戦しました。
たぶんほかの人も同じようなことではまるんじゃないでしょうか?

  • Eclipseの解凍がうまくいかない(実はこれが一番ハマった...)
  • Tomcatのバージョンの指定がうまくできない(7以上を使いたいのに6までしか表示がないなど)→チュートリアル通りにやった場合そうなる。
  • インポートしたプロジェクトが動的プロジェクトになってない
  • http://localhost:8080/sa-struts-tutorialにアクセスすると404 Not Foundになる

今回の環境構成

OS Windows 10(Windowsなら何でもよい)
Eclipse Pleiades all in One 4.5 Mars (Full Edition)
JRE Java8 (Pleiades付属)
Tomcat 8.0.32 (Pleiades付属)

注意事項としてSAStrutsのセットアップに説明のある
Tomcat LauncherとTomcat本体は別途インストールしません(Eclipseに付属のため)。
あと、プロパティエディタも確かもともとついているはずなので無視します。

1.EclipseのPleiades all in oneをダウンロード

https://mergedoc.osdn.jp/
にアクセスして
Eclipse 4.5 Mars Java 64bit Full Editionをダウンロード。
(32bit環境の方は以降32bitに読み替えてください。)
Add Block等を入れている方はOFFにしましょう。
また、Google Chromeの場合、ダウンロード時にURLの横に盾マークがでて
このページは承認されていないソースからスクリプトを読み込もうとしています。
とでるので「安全でないスクリプトを読み込む」を押しましょう。
1GBほどあります。
Chromeを使っているとありがちですが、わりとダウンロードが失敗します。
ダウンロードした後の容量が1GB以上あるか確認しましょう。
解凍したらeclipse.exeがないなんてことがありました。

2.EclipseのPleiadesをインストール

ダウンロードしたファイル(私と同じものを選んだ場合pleiades-e4.5-java-jre_20160312.zip)
を解凍します。
なぜかWindows標準で備わっている解凍ツール以外で解凍するとファイルが壊れます。
解凍した後なぜかeclipse.exeが0バイトになっているなんてことがあります。

公式サイトに下記の記述があります。

解凍ツールは Windows 標準の展開ウィザードまたは WinRAR を推奨します。
この2つのツールは解凍時に MAX_PATH (最大パスを示す Windows 定数 = 260 文字) を超えていた場合、
適切なエラーを返します。その場合は c:\pleiades のような短いパスに解凍してください。
Windows XP 展開ウィザード、Lhaz、Explzh は MAX_PATH を超えている場合、
書庫が壊れているかのようなエラーが出ますが、
これも短いパスに解凍することで対応可能です。
7-Zip、Lhaplus、Lhaca は使用しないでください。MAX_PATH を超えていても警告やエラーが表示されず、
正常に解凍できたか判断できません。 

なので次の手順を行います。
pleiades-e4.5-java-jre_20160312.zipをC:\直下に置きます。
右クリック→プログラムから開く→エクスプローラー
で開き、Exploer上に出ているすべて展開ボタンを押します。
展開先の選択とファイルの展開ダイアログで、
C:\pleiades-4.5
としておきましょう。
※私の環境にはpleiades-4.4もあるため。
そうするとC:\pleiades-4.5\pleiadesとなっているので
1階層あげて
C:\pleiades-4.5としておきましょう。
これでこうなるはずです。
C:\pleiades-4.5の下には

.metadata.default
eclipse
java
tomcat

の4フォルダがあるはずです。

C:\pleiades-4.5\eclipse
を開いてeclipse.exeを右クリックしてタスクバーにピン止めかショートカットを作成しておきましょう。

3.チュートリアル本体のダウンロード

http://sastruts.seasar.org/download.html
にアクセスして、
Super Agile Strutsチュートリアル
sa-struts-tutorial-1.0.4-sp9.zip
をダウンロードしましょう

4.SAStrutsでの開発を便利にするPluginをEclipseにインストール

Eclipseを起動します。
ヘルプ > 新規ソフトウェアのインストールで追加ボタンを押します。
名前: Seasar Plugin3.3
ロケーション: http://eclipse.seasar.org/updates/3.3/
でOKを押します。
しばらくすると一覧が表示されるので
Dolteng
EMecha
Kijimuna
matatabi
ResourceSynchronizer
S2Junit4 Plugin
SAStrutsPlugin
を選び次へを押します。
Ymir以外を選びます。
あとはウィザードに従い完了を押します。

5.チュートリアルをインポートします。

Eclipseからファイル > インポートで
一般 > 既存プロジェクトをワークスペースへ
次へを押します。
アーカイブファイルの選択でsa-struts-tutorial-1.0.4-sp9.zipを選択します。
完了を押します。
たぶん、このあとエラーが出ますが気にしないでください。
エラー例:ビルドパスのエラーが解決されるまで、プロジェクトをビルドできません。

6.チュートリアルを動的プロジェクトに変換します。

ここの作業が重要です。ここのセクションのことを実施しないと
たぶん404 Not Foundを見続けることになります。
プロジェクトを右クリック > プロパティー
Tomcatを選択します。
全般タブでTomcatプロジェクトにチェック
コンテキスト名をsa-struts-tutorial
にしてOKを押します。

また、プロジェクトを右クリック > 構成で
プロジェクト・ファセットの変換を選びます。
一度選ぶとプロパティーのほうに出てきます。
動的Webモジュールにチェックを入れます。
ランタイムタブを選んで、
Tomcat8を選択

また、プロジェクトを右クリック > プロパティーで
デプロイメント・アセンブリーを選択します。
/WebContent /というのがあるので除去します。

追加ボタンよりフォルダーを選択します。
/src/main/webappを選択します。

この辺はここを参考にしました。
http://knightsheep.blogspot.jp/2014/01/web-eclipseweb.html

7.Eclipse付属のTomcat8の設定をします。

ウィンドウ > 設定でTomcatを選びます。
Tomcatホーム C:\pleiades-4.5\tomcat\8
コンテキスト・ファイルを選んで
コンテキスト・ディレクトリー C:\pleiades-4.5\tomcat\8\conf\Catalina\localhost
とします。
するとエラーが消えるかと思います。

8.コンテキスト定義を更新します。

プロジェクトを右クリック > Tomcatプロジェクト
コンテキスト定義を更新を実行します。

9.実行します。

プロジェクトを右クリック > 実行 > サーバーで実行を押します。
Tomcat v8.0サーバを選択します。
サーバのホスト名はlocalhostのままでよいです。
毎回コレで実行のチェックをしておいたほうが便利です。
完了を押します。
しばらくするとTomcatが起動し、
Eclipse上のブラウザが起動し、画面が表示されるはずです。
f:id:fa11enprince:20160424105047p:plain
パースペクティブを開くからJavaEEを追加してそれに切り替えたほうが見やすいと思います…。