今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

達人プログラマー第2版

プログラマー必読書と言っても間違いないくらいの名著「達人プログラマー」の第2版が発売されました。 初版が発売された2000年11月30日から20年。 ソフトウェア開発に関する技術は発展しましたが、ソフトウェア開発における活動の原則は変わってませんね。 …

リツイート数ランキングサイト Buztter.com

Laravelの練習がてらにリツイート数・いいね数ランキングサイトを作りました。 TwTimzと同じようなの。 ≫ Buztter.com Twitter APIが制限されたので、動かなくなりました。

モデルの保存で Column not found エラーがでるときの対処方法

モデルを保存しようとしてエラーが発生。 Illuminate\Database\QueryException : SQLSTATE[42S22]: Column not found: 1054 Unknown column 'hoge' in 'field list' テーブルには存在しないメンバ変数を設定していると、このエラーが発生する。モデルにメン…

設定を.envに書いたのに取得できないときの対処方法

Laravelで設定ファイルの内容を読み込みたいので、.envファイルに設定を記述した。 その内容を、config/hoge.php で読み込む。 return array( 'hoge' => env('HOGE', 'default-value'), ); これを読み込む。 $hoge = config('hoge.hoge'); var_dump($hoge); …

Laravel+Vagrantで複数プロジェクトを動かす

まずは新しいプロジェクトを作る。 $ composer create-project --prefer-dist laravel/laravel tamaeHomestead.yaml に追加する。 sites: - map: nozomi.local to: /home/vagrant/code/nozomi/public - map: kanae.local to: /home/vagrant/code/kanae/publi…

変数に格納したタグ付き文字列をエスケープなしで表示する方法

普通に表示するとき。 <div> {{ $hoge }}</div> エスケープなしで表示するとき。 <div> {!! $hoge !!} </div>

ローカルで動かしたLaravelをCentOSにデプロイする方法

前提: ソースがGitリポジトリに存在すること。1. git cloneする。 # cd /var/www # git clone https://hoge.backlog.com/git/HOGE/hoge.git hoge # cd hode # chown -R apache:apache .2. Composerをインストールする。 インストール済みなら不要。 # yum in…

git clone しようとしたら HTTP request failed と怒られたときの解決方法

Git

CentOSのVPSでgit cloneしようとしたら、エラーになった。 # git clone https://hoge.backlog.com/git/HOGE/hoge.git hoge Initialized empty Git repository in /tmp/hoge/.git/ error: The requested URL returned error: 401 Unauthorized while accessin…

Vagrant+Homestead+nginxで502 Bad Gatewayエラー

VagrantのIPアドレスにアクセスしたら、502 Bad Gateway エラーが発生した。 ぐぐったらそれっぽいの発見。≫ https://qiita.com/ragingalpaca/items/6fc645ebfd4604a336b3サービス再起動で動く? $ sudo service php7.2-fpm restartphp7.2-fpm ってサービス…

現場至上主義 Spring Boot2 徹底活用

献本いただきました。ありがとうございます。現場至上主義 Spring Boot2 徹底活用ソシム売上ランキング: 5302generated by affi-linker.com at 2018.12.05専門学校での教科書に使えるのではないかと思いましたが、やはり「現場至上主義」な本は、教科書とし…

Spring Boot で接続してきたクライアントのIPアドレスを取得する方法

コントローラで HttpServletRequest を参照できるようにするために、@Autowiredでインスタンス変数requestを追加する。 request.getRemoteAddr() でIPアドレスを取得できる。HogeController.java @Autowired private HttpServletRequest request; public Str…

Spring BootでPOSTしたときに403エラーとなる問題の解決方法

Spring Bootでフォームを作成してPOSTすると、403エラーとなる場合がある。 <form method="post" action="/hoge/" th:object="${formModel}"> <label for="title">名前</label>: <input type="text" name="name" th:value="*{name}" /> <br/> <label for="description">説明</label>: <input type="text" name="description" th:text="*{description}"> </br/></form>

青空ePub3で作ったepubファイルのエラー修正方法

以前、「こどものトリセツ」という本をKindleで出版した。 これをいまさらながら、楽天Koboにも登録しようと思った。で、楽天Koboに登録してアップロードしたら、いろいろとエラーが発生した。エラーが発生している箇所のファイル名が表示されてるので、epub…

GAE/Javaでローカルデータストアのデータが消えてしまう問題

過去に作ったGAEアプリを触ってたら appengine-web.xml ファイルで警告が表示されるようになってる。appengine-web.xml ファイルのほぼ先頭に以下のような記述の部分。 <application>project-name</application> 現在は次の警告が表示される。 Project ID should be specified at deploy…

Spring Boot でJDBCを使ってユーザー登録・ユーザー認証する方法

まずは公式に従う。≫ https://spring.io/guides/gs/securing-web/pom.xmlにjpaとsecurityを追加。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security<…</artifactid></dependency>

WordPressにXMLRPCで投稿しようとしたら「405 METHOD NOT ALLOWED」エラーになる

XMRPCでWordPressに投稿するプログラム。ローカルで動かしているGAEの開発サーバーからだと正常に投稿できるのに、GAEにデプロイしたシステムから投稿しようとすると、「405 METHOD NOT ALLOWED」エラーになる。どこでエラーになっているのかと、WordPressの…

Spring Boot で javax.persistence パッケージでコンパイルエラーになる

専門学校で教えてて、数人が同じエラーを出していたのでメモ。import javax.persistence.XXX; のところで「見つかりません」のエラーが発生。ぐぐってみたら、ここがヒット。≫ java - Spring Boot - javax Import statements not working correctly - Stack …

Matomo(アクセス解析ツール)にログインできない問題を解決した

Web

Matomoというアクセス解析ツールを使ってるんだが、Chromeがパスワードを忘れてしまって、Matomoをアップデートした影響でログインできなくなってしまった。パスワードをリセットしたのはいいが、「リンクを送信しました」とメッセージが出て、そのリンクを…

xmlrpc.phpで投稿するときに「parse error. not well formed」が出るときの対策

XMLRPCでWordPressに記事を投稿したときに、こんなエラーが出た。 うまくいくときもあれば、エラーになるときもある。 警告: main::Post 記事投稿で失敗, status=parse error. not well formed org.apache.xmlrpc.XmlRpcException: 構文解析エラー。not well…

XMLRPCでカテゴリとタグ付きでブログ記事を投稿する方法

ブログに記事を投稿するのに、カテゴリとタグを指定して投稿しようとしたんだけど、なかなかうまくいかなくて試行錯誤して、やっとうまくいったのでまとめとく。カテゴリとタグをString配列にしてMapに格納するのがポイントだったらしい。 XmlRpcClientConfi…

mysqldが起動しなくなったときの対処方法

クラウド上で動かしているmysqlでcreate databaseとdrop database の操作を繰り返してたら、mysqlが無応答になってしまった。 CentOSをリブートしてみたけど、やはりmysqldが起動しない。ぐぐってみたら、こちらがヒット。≫[手順] MySQL データベースでの I…

Bad configurationエラーでGAEにデプロイできなかった原因と対策

GAEにデプロイしようとしたら、こんなエラー。 Bad configuration: Received SAXException parsing the input stream. Caused by: 途中でファイルの末尾に達しました。 ログを見ろって書いてあるので確認したら、WEB-INF/appengine-generated/datastore-inde…

SQLSTATE[HY000]: General error: 1813 Tablespace for table '`hoge`.`hoge`'; exists. Please DISCARD the tablespace before IMPORT.

サイトにアクセスするとエラー。 httpdのエラーログを見ると、タイトルのようなメッセージ。 SQLSTATE[HY000]: General error: 1813 Tablespace for table '`hoge`.`hoge`'; exists. Please DISCARD the tablespace before IMPORT.ぐぐってみると、こちらが…

slim3のsortInMemory()の挙動が変?

データストアからエンティティを取得して、sortInMemory()でcreateDate.descでソートしたら、なぜか最新のいくつかのエンティティが結果に出てこない。 なぜ?自作 Comparatorでソートしたらちゃんと最新のエンティティもでてくるんだけど。 なぜ? List<Hoge> lis</hoge>…

App Engineローカル開発サーバーのデータの場所

GAE

ローカル開発サーバーのデータが消えてしまったので、TimeMachineで過去からコピーしてくることに。データの場所はどこかというと、Googleの公式ドキュメント≫ Java 開発サーバー | Java の App Engine スタンダード環境 | Google Cloudによると、(project-d…

Google Cloud Storageに保存した画像をリサイズして応答する方法

最近はスマートフォンで撮影できる画像の解像度が巨大化してるので、そのままを表示すると遅くなってしまう。 そこで、リクエストパラメータにwidthを追加して、任意のサイズで表示できるようにした。ここではblobKeyを元にBlobInfoを求めてるけど、ファイル…

Googleからアカウント確認メールを出す方法

Web

GAEで「承認済みのメール送信者」に設定できるのは、かなり制限されている。 現在ログインしているユーザーの Gmail または Google Apps アカウント anything@[APP_NAME].appspotmail.com または anything@[APP_ALIAS].appspotmail.com の形式のメールアドレ…

enctype="multipart/form-data"にするとreqeust.getParameter()がnullを返す問題の対策

というか、slim3だとgetParameter()は取れるけど、getParameterValues()がnullになって困った。JSPはこんなん。 <form id="form" action="/hoge" enctype="multipart/form-data" method="post" > <input type="text" name="name" /> <input type="file" name="image" accept="image/*" /> <c:forEach var="o" items="${checks}"> <span></span></c:foreach></form>

Amazon の Cloud9 にGAE開発環境を作る手順

AWSアカウントでログインして「Cloud9」で検索すると出てくるので、そこクリック。 Cloud9のダッシュボードが開くので、オレンジ色の「Create environment」をクリック。 適当に名前をつけて、「Next step」→「Next step」→「Create environment」で環境が作…

GCSにファイルをアップロードできなくて試行錯誤した話

GAE

GAEでファイルをアップロードすると60秒問題があるので、GCSにダイレクトにアップロードする方法を実装しようとして、なかなかできなくてかなり試行錯誤した。最初、ここに書いてあるやり方で実装してみた。≫GAE/jでファイルを扱う Part2 - Qiitaそうすると…