ODDBRAIN.JP | The splash Ideas

ピン留めされた投稿

gerol's avatar

ようこそ

とあるサイトからとにかくしんどいサイト開発やら運営やらをやらされた、早く隠居したい2人組のサイトです。印籠会という団体名で活動しています。今は、ウェブ上で蔵書を管理することのできるアプリケーションを開発中です。遅々として開発は進まないけどがんばるぞい!

最近の投稿

gerol's avatar

類似サービスの問題を(遠巻きに)眺めて

国立国会図書館HP

国会図書館検索でスマホ現在地漏えいの恐れ |読売オンライン

要約:
・国立国会図書館の検索の一機能を利用するとき、自分の位置情報がパラメータとしてURLに残る
・現在地から近い所蔵館を検索できる機能があり、その機能の正常な動作である
(・現在は当該機能は削除された:2016.10.19現在)

関連する国立国会図書館の声明:
2016年10月6日 国立国会図書館サーチのスマートフォン等から位置情報を取得する機能の一時停止について

似たようなシステムを開発中のgerolにとってとても気になるニュースがあったようです(この情報感度の低さよ)
このシステムでは現在地情報をGETで取得していたのでしょうか。中身の処理が分からないので何とも言い難いですが、書籍の情報の出力の仕方と比べてなんだか不思議な仕様だなと思いました。

わたし達のシステムでは現在地を取得して近隣の図書館に蔵書があるか調べる機能を搭載する予定はないのですが、気になる機能なので余力があれば実装してみたいですね。と言っても、似たようなウェブサービスが既にありますので、そちらを使ってもらった方が高機能でいいのかと思います。やはり企業が作っているものは質的にも量的にも勝負にならぬと(アイデア勝負なら勝てるのかもしれませんが…)そちらに関しては近いうちレビュー的なポストをしようかと思います。

(そんなに遠くない昔の)話しをしよう。そもそもBrokenBookshelfの前に、ほぼ同様のシステムを作ったことがあるのです。その際はキーワードなどをまとめて処理できるようPOSTだったかと思います。なんでそのシステムをそのまま公開しないのかは想像できるかと思いますが、サーバの知識もないそれこそLinux?なにそれ?という頃にそれはもう頭を悩ませながら作ったシステムで、とても自分でも使える代物ではないからです。エラー上等! …というか、自分でもどれだけシステムバグが残っているのか、わかってないです。ついでに言うと要件定義とか未だに謎に包まれた存在です(そんな人間が今開発してるとか、本職が聞いたら卒倒するでしょうね)
また、基礎の基礎から作るのはとても能力的にかなわなかったので、ミドルシステムとしてWordPressを使い、検索機能だけを開発すればいいようにしていました。結局ほとんどテンプレートに書いてしまったのでWPの意味がなかったんですけどね…
そんなこともあり、今回は9mangに協力してもらいすべて自分たちで作ることとしました。

近年のセキュリティの考えからするとURLに個人情報などの重要な(秘匿されるべき)情報が載ってはいけないそうですね。開発中のシステムで個人情報といえばメールアドレスくらいなので、とりあえずGET使わなければ問題無いような気もしていますがどうなんでしょうか。というかGET自体がそもそもセキュアじゃないので、使うべきではないのでしょうか。POSTだからといって安全かといえばもちろん違いますけどね。
ちょっと前に、Googleの検索ワードで複数回検索を掛けると前の検索ワードがURLに残っていて共有するとき知られてしまう!とかいうトピックも見たことあります。あれと似た雰囲気を感じます。もう仕様が変わっているようなので過去の話かと思います。いつのまにかq=xxxだけで検索ができるようになっていますし。前はいろんな情報が後ろにくっついていたのにすっきりしたなぁと思った記憶があります(lang=jaとかie=utf-8とか)

実はパラメータがたくさんついているだけで重要な情報は一つしかないっていうのはAmazonにも言えますよね。あそこは/dp/10桁の英数字(ASIN)だけで本当は商品情報にたどり着けます。色とかサイズとかの情報がくっついていてデフォルトでそれが表示できるようになったりするみたいです。こういう情報知っているかどうかだけでシステム組むのが楽になったりもするから面白いものです。

この話題について、今日時点で1700ツイート位されてましたが、おそらくほとんどの人が国会図書館の検索なんかしたことないんだろうなぁとツイート内容の薄さから思うgerolでした。

gerol's avatar

BrokenBookshelfの紹介動画を作成しました

特設ページにて紹介はしているのですが、訴求方法を多様化させてみようという試みから、動画を作成してみました。
出来上がっている部分がまだ少ないのでどうしても文字ばかりになってしまい…あと、デザインセンスも皆無だなぁと改めて感じさせられました。
特設ページでもまだ紹介していない実装予定機能など、現状考えていることを一通りまとめて動画にしましたので興味がある方は是非確認していただければと思います。
最後の方で開発者が2人と出したとき、誰かほかに開発者を募った方がいいのではないかと思ったりもしましたが、すでにお互い考えていた仕様に齟齬があるくらいなのでやめておこうと考えなおしました(爆)

このサイトでも行っていることですが、広告を載せて収益化も図ってみる実験的なことをYoutubeでも行ってみました。何でも試してみるものだろうなあという考えと、少しでもサーバ代の足しにならないと開発の足かせになるんですよね… 現状でも印籠会の際に使用するPCがなく、どうしたものかと思案中です。

音楽はフリー素材として有名でありますMusMus様の曲を使用させていただきました。この場を借りて御礼申し上げます。やはり音楽があると文字だけのそっけないものでもなんだかいいものを作っている気にさせてくれるので面白いですね。

gerol's avatar

WPマルチサイト化の罠

WPのサブディレクトリでマルチサイト化した際、同名のディレクトリがあるとそちらが優先して表示されるだけでなく、ダッシュボードへのアクセスができずに404になってしまうのですね。初めて知りました。この問題を解決するのに30分かかりましたよ(憤怒)。みんな.htaccessとかで躓いてるからなかなか同じ問題にあたっている人を見かけなくて焦りました。一旦静的ページ作ってからマルチサイト化するのはセオリーではないのでしょうか…

gerol's avatar

?author=1のみ404リダイレクトを掛ける

WPのセキュリティを考えるとauthorのリンクはすべてホームか404にリダイレクトしてしまえばいいように思うのですが、今回は2人で運営していますし、ログインページを変更したこともあるので特権管理者だけを404へリダイレクトすることにしました。

html

add_filter( 'author_rewrite_rules', '__return_empty_array' );
function disable_author_archive() {
  if( (string)filter_input(INPUT_GET, 'author') == "1" ){
    wp_redirect( home_url( '/404.php' ) );
    exit;
  }
}
add_action('init', 'disable_author_archive');

以下のページを参考にしました

投稿者アーカイブを無効化してWordPressのユーザ名を隠す方法(http://blog.webcontent.jp/entry/no-author-archive)

gerol's avatar

多分これが一番小さいメールフォームだと思います

とにかく名前とメルアドと本文さえメールで送れればいいんだ!(集中線)というミニマムなメールフォームのシステムを探したんですけどごてごてとしたものしか見つからなかったし、このくらい自分で作った方が早かったっていうね。でも、セキュリティ的にこれどうなんでしょう… 一応POSTはフィルター掛けてありますけど

html

<form  method="post" action="./sendmail.php">
	<fieldset>

		<label for="name">名前(必須)</label>
		<input id="name" name="name" type="text" placeholder="Your Name" required>

		<label for="email">メールアドレス(必須)</label>
		<input id="email" name="email" type="email" placeholder="Your Email" required>

		<label for="content">お問い合わせ(必須)</label>
		<textarea id="content" name="content" rows="4" required></textarea>

		<button type="submit">送信</button>
	</fieldset>
</form>

sendmail.php

<?php
$name    = (string)filter_input(INPUT_POST, 'name');
$mailaddr= (string)filter_input(INPUT_POST, 'email');
$content = (string)filter_input(INPUT_POST, 'content');

mb_language("Japanese");
mb_internal_encoding("UTF-8");

$to      = 'mail@example.com';
$subject = 'WebForm inqury';
$message = '【名前】'.$name."\r\n【メールアドレス】".$mailaddr."\r\n【問い合わせ内容】\r\n".$content;
$headers = 'From: mail@example.jp' . "\r\n";

mb_send_mail($to, $subject, $message, $headers);
echo "お問い合わせありがとうございます。";
echo "<a href='/'>元のページへ戻る</a>";

2016.10.30.Sun 追記
$messageの中にメールアドレスが含まれていない実装漏れがありましたので修正いたしました。

gerol's avatar

技術情報はこちらでも公開しています

本来ならこちらで紹介した方がよいのですがどうにもMarkdownで書けた方が書きやすいし読みやすいので、Qiitaでも、紹介しています。このサーバについての内容以外も書いているので関係ないものは話半分に見ていただければと思います。サイト内をMarkdownで記述できるjQueryとかあるんですかね。

Qiitaの方で書いていく内容は、oddbrainに関係ないことがほとんどです。gerol個人が勉強用に(こちらも言ってみれば勉強用なんですが)動かしているサーバで”やってみた”内容を記録するのに使っています。oddbrainではいまだにメールサーバすら立ててませんからね。正直リスクが高いのであまり利用価値が出てこなければ立てないでおこうかと考えています。

ちなみに、gerolはサーバなどの低レイヤーの方がわりかし出来たりします。というか、そっちばっかり勉強してますからね。もうひとり9mangの方はお仕事でJavaとかを使っているので、上にのっける物は9mangを中心に動いています。とはいえ、プログラムを手続型でしか書いたことないgerolにとってMVCの概念とかさっぱりなことも多く、ついていくのに精いっぱいなところもあります。

gerol's avatar

製品特設サイトを公開しました

AmazonAPIを使って蔵書情報を検索したいだけなのですが、どうにもウェブサイト自体がかなりしっかりと作り込まれていなければ利用させてもらうことができないことが判明しました。ということで、いまさらながらサイトを作り、製品の概要を載せた特設ページを公開することにしました。こちらからご確認いただけますので続報をつらつらと書き綴っていきたいと思います!

…しかし、API使うためにウェブサイトがしっかり作り込まなければならないのは公開した際の利用者も同じと考えると、国立国会図書館(NDL)版も作らないとダメなのだろうと、感じているところです。そちらは一度使ったことがありますので何とかなるかなぁと思いますが…さてはて

BrokenBookshelf
蔵書管理システム:ウェブ上で自分の本棚を管理し、複数冊間違えて購入してしまうなどのミスを防ぐことのできるもの。貸出機能を備えることにより、小規模な蔵書を備えた場所(研究室等)の本棚の状況を一目することができるようにすることが目的。…という建前。コメント共有機能により、本の内容を利用者同士で意見しあうことができます。この機能はAmazonに似たUXを目指しています。