PHPカンファレンス 2023に参加しました

個別にちゃんとまとめたほうがいいけど、思った以上に「静的解析」や「型安全」、保守性を考えた設計といった取り組みへの需要が多いなと感じた。 あまり求人情報としてみないけど、「まずは頑張って作った」の次のフェーズとして必要で困っているチームとか…

Webアプリケーションを設計するときに考えておくことメモ

個人的なチラ裏メモ。 システム構成 Webサーバ Appサーバ DBサーバ メールサーバ 認証サーバ ストレージ 環境に関すること 開発/テスト/本番の環境切り替えする仕組み 複数環境設定の管理方式 開発言語のバージョン管理方式(複数バージョン) 開発言語で…

dockerコンテナのtomcatにEclipseからリモートデバッグする

タイトルの通りです。 複数プロジェクト、複数システム開発してるとtomcatもいろんなバージョンが必要になります。 ローカルマシンのJREバージョンとかに依存せず、さくっとtomcatを動作させられるといいですよね。 Eclipseからは「リモートデバッグ」を利用…

shfsでsshを使ってサーバのディスクをマウントする

「shfs」ってのがあるんですね。 sshが使える環境であれば、サーバのディスクをマウント出来るみたいです。 smbとかなくても、sshのみでサーバのディスクが使えるのは嬉しい!! 環境 macOS 10.13.4 Homebrew 1.6.7 手順 まずは homebrewにてshfsをインスト…

phpunitのインストール

laravelの学習に伴い、ユニットテストの手法も勉強を始めました。 今までJavaで何度か開発プロセスへの導入を検討していましたが、プロジェクトへの適用を考えるとルール整備、教育、運用といった点で何度も挫折しています。 ユニットテスト導入に関して良さ…

laradockを使ってmysqlのデータベースを作成しても、なぜか作成されない

laradockを使い始めることにしました。使い方はまた別記事で書きます。 その中で、微妙なハマり方をしたので、備忘として記事にしておきます。 現象 mysqlのデータベースを設定してdocker-compose up -d mysqlしても、データベースが作成されない。 まず手順…

macでのEclipse日本語化

久しぶりにJava開発をすることになり、ローカルに開発環境を構築。 macだと、Eclipseの日本語化が少しめんどくさいんだよなーと思いながら最新版のPleiadesをダウンロードしようと思ったらビックリ。mac用のパッケージが提供されているじゃないですかー!!…

cocos2d-jsをGenyMotionで実行する

標準のエミュレータだと激重なので、軽量なAndroidエミュレータ(GenyMotion)を導入。確かに軽くていいんだけど、cocos2d-xのサンプルすらエラーで動かない。。。 そろそろ本腰入れて調べます。 環境 cocos2d-x(v3.15) エラーメッセージと対応 INSTALL_FAILED…

apacheのmod_rewriteがSSL通信時に動作しない

SSL通信時にmod_rewriteが動作しない。 同じ記述でも、HTTP通信なら正常に動作する。 rewriteログを出力するようにしても、SSL -> ログが出ない、HTTP -> ログが出る。 なぜ??? はい、単純に仕組みが分かっていませんでした。 ssl.confにあるvirtualhost…

apacheのmod_rewriteでアプリケーションサーバへproxyする

一見なんのことやらのタイトルですが、最近調べて「へぇ〜」ってなったこと。 mod_rewriteでのリライトやmod_proxyでのプロキシ(tomcatやglassfishへのajpプロキシ)は個別にやったことはありました。 今回はリライトした後、ajpプロキシする要件だったのです…

Visual Studio Code(vscode)のショートカット

すぐ忘れるのでメモ。 ⌘+shift+pから探せるけど、めんどくさいもので。 随時追加予定。 アクション ショートカット 単語のマルチ選択 ⌘D 全て折りたたむ ⌘k, ⌘0 全て展開する ⌘k, ⌘j はじめてのVisual Studio Code (I・O BOOKS)新品価格¥2,484から(2017/2/16…

mac+xcodeでopencvを試す

顔認識に興味が出てきました。アプリ開発で使えたら楽しそうだなぁ、と。 ちょっと調べたところ、顔認識(画像処理)と言えば、やっぱりopencv。過去にちょっとだけ業務で触ったことあったけど、c++ということで敬遠していました。 でも、顔認識とかできると…

cocos2d-jsでタッチイベント等イベント処理を削除する

ゲームクリア時に、ゲーム画面のタッチイベントを削除する時とか。 これで削除できるみたいです。js-testsの中のソースを参考にしました。 // タッチイベント削除 cc.eventManager.removeListeners(cc.EventListener.TOUCH_ONE_BY_ONE); 公式のJsDocを読むと…

Visual Studio Codeでcocos2d-js, typescriptの環境を構築する

sublime textでcocos2d-jsでの開発をしているのですが、Javaをメインでやっていたので静的な型付けがしたいです。あと、綺麗なJavascriptってどう書くんだ?的な疑問も出てきたので、サンプルになるソースが読んでみたい。 そこで、ずっと見て見ぬ振りしてい…

cocos2d-jsの公式サンプルを動かす

いつも忘れるので、メモ。 どんな機能があって、どうやって実装するのか見てみるのに一番です。 // [cocos2d-x]はcocos2d-xをインストールしたディレクトリ $ cd cocos2d-x/tests/js-tests $ cocos run -p web パズルRPGの作り方新品価格¥3,110から(2016/8/…

cocos2d-jsでextensions(ccui)を利用する

cocos2d-jsでccui(ccui.Buttonなど)を利用しようとするとエラーが出る。 titleLayer.js:29 Uncaught ReferenceError: ccui is not defined extensionsを利用するには準備が必要なんですね。 知りませんでした。 project.jsonのmodulesに利用するモジュールを…

cocos2d-jsで衝突判定を行う

対象同士のrectをもとに「cc.rectIntersectsRect()」で判定するのがいいみたい。 こんな感じ。 var rect1 = cc.rect({x: 50, y: 50, width: 100, height: 100}); var rect2 = cc.rect({x: 100, y: 100, width: 100, height: 100}); if (true == cc.rectInter…

Ozarkがやってくる

Seasar2からの乗り換え先としてJavaEE7を勉強してシステム構築したけど、JSFがしっくりきたりこなかったりでした。 JSF2.xになって相当使いやすくなったようなんですが、アクションベースに慣れすぎたせいですかね。 そんな中、「Ozark」というキーワードが…

lombokでDTOやEntityをサクッと作ろう!

前から使ってはいるのですが、きちんと使い方を整理してなかったんで整理してみます。 概要 DTOやEntityを簡単に生成、修正できるライブラリ(?)。 コンパイル時に自動生成が行われるようなのでIDE側への導入も必要です。 こんなことができます。 getter/s…

yum upgrade後にvboxの起動でmountエラーが発生する

vboxをupgradeした後、vagrant halt > vagrant upしたら以下のエラーメッセージが出てvboxが起動しなくなっちゃった。 Failed to mount folders in Linux guest. This is usually because the "vboxsf" file system is not available. Please verify that th…

PHPのタイムゾーンを設定する

久々にvagrantでfuelphpのインストールをしようとしてハマりました。 毎回やっていることなんで、メモメモ。 エラーメッセージ Error - date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use…

Oracle Instant Client のSQLPlus実行時、共有ライブラリ(libsqlplus.so)がないよって怒られる

CentOS7にOracle Client Instantをインストールしました。 tnsnames.ora作って、sqlplusを実行したらエラーが出てsqlplusが起動できない。 /usr/lib/oracle/12.1/client64/bin/sqlplus: error while loading shared libraries: libsqlplus.so: cannot open s…

vagrantの共有フォルダマウントがエラーでコケる

vagrant halt -> vagrant up したら、なんか知らないけどエラーになった。 どういうこっちゃ。 Failed to mount folders in Linux guest. This is usually because the "vboxsf" file system is not available. Please verify that the guest additions are …

シンボリックリンクを作成する

リリースアプリケーションのバージョニングとか、検証用の切り替えとか、シンボリックリンクを使っていると切り替えが簡単で良いですね。 いつもコマンドの使い方を忘れてしまうのでメモ。 メモするとさらに覚える気がなくなるけど。。。 環境 OS : CentOS7 …

アプリケーションサーバ起動時にServletを起動するよう指定する

通常、Servletは初回アクセスがあった際にインスタンス化されるそうです。 外部リソース(設定ファイルとか)の読み込み等の初期化処理がある場合、 アプリケーションサーバ起動時にインスタンス化してしまいたいですねぇ。 これはweb.xmlに「load-on-startu…

JSFファイル(xhtml)をWEB-INF配下に隠す

JavaEE7でWebアプリケーションを作っているのですが、 JSFファイルをどこに配置するのがベストなのか悩んでます。 Javaフレームワークとして本格的に触ったのがSeasar2だったので、 SAStrutsみたいにViewはWEB-INF配下に隠して直アクセスさせないようにした…

EclipseでGlassFishのログが文字化けするのを直す

本当はNetbeansで開発したほうがしやすそう、ってのは分かっています。 Web上での情報量も多いです。 プロジェクトの作成もNetbeans+Mavenでやっています。 でも、いきなりNetbeansに乗り換えるには時間が必要なんです。。。 ってことでEclipseでJavaEE7の開…

JPAのキャッシュでハマる

JPAのキャッシュでハマりました。 仕組みをちゃんと理解していないからだね。 現象 Webアプリケーションでデータ参照 別処理で該当データ削除 Webアプリケーションで再度同一データ参照 データがないはずなのに参照できる キャッシュと考えれば、当たり前で…

getSingleResultで javax.ejb.EJBTransactionRolledbackException(更新)

環境 Glassfish 4.1 Netbeans 8.0.2 JDK8 問題点 EntityManagerでNamedQueryを使ってデータ取得してるんだけど、結果がNullとなる場合だけ「javax.ejb.EJBTransactionRolledbackException」が発生しちゃう。 取得後にNull判定しようと思っていたのに。 em.cr…

MDwikiでローカルにオレオレWikiを作成する

最近、メモとかをmarkdownで作っています。 ベストってトコまでは使いこなせていませんが、テキストベースなので中々使いやすいです。 OS依存(ソフト依存)がないので。 でもテキスト単体だと複数ファイルの参照性とかには不便さを感じていました。 そこで…