ギークなお姉さんは好きですか

恋焦がれる理想の男性・ギークを知るため、プログラミングがわかるお姉さんを目指すブログ

TOPページに新着ギークを表示した!

更新情報

力武さんのプロフィールを大幅アップデートしたよ!
ご自身が書いてくださったので要チェケ・ラブコールヽ( ・∀・)ノ
jj1bdx (りきたけけんじ、本名:力武 健次) - geekDataBase ギークデータベース


TOPページも UPDATE したよ

RSS 読んでくれてる人 or Twitter フォローしてくれる人はご存じかもだけど、
GeeklyNews や geekDB の更新情報を入れてるテーブルに /database の新着ギーク情報も
入れてるので、そこから name_id=database の最新5件を引っ張って表示した。
database の RSS もあるのでそれを表示してもよかったんだが、テーブルの方には自分、
一言コメントを書いたりしてるので、ええと、それも出そうかなーなんて。
DADADATTE!名前だけなんて・・・いささか無愛想で淋しいじゃないですか><

クエリはギークの個別ページに最新ニュースを表示した時と同じ要領で。
参考:各ギークの最新ニュースを3つだけ表示する

select topic from news where name_id = 'database' order by id desc limit 5


はっ。せっかくなので RSSTwitter アカウント宣伝しておきますね!
RSSgeekDataBase - ギークデータベース
TwittergeekDB

Twitterでは毎週月曜に、先週の上位検索キーワードをお知らせしてるよ(・∀・)
かもん follow!レッツ follow!!


それと、TOPの 「geek(ギーク)とは」 の部分。
先日 ZAPA さんから言及いただいたり、メールなどで数人からいろいろなご意見を頂戴したので、

コンピューター系の技術オタクのこと。
Webに関する深い知識を有し、秀でた技術力を持つ。
最先端のWeb技術を駆使し、世界を変える可能性を秘めた”尊敬すべきバカ”。


これを以下に修正した。

コンピューター系の技術オタクのこと。
当サイトでは「プログラミングが好き」という技術者に対する尊敬と憧れの意味を込めてこれを用いる。


うーむ。今ひとつな表現だけど、私が抱いているイメージをシンプルに言うとこんな感じだと思う。
このサイトがきっかけで、魅力的な技術者が憧れの対象になるような文化が花開くといいなあ。
まだまだつぼみだけど、そのうち 「大きくなったらギークになりたい!」 なんて、
目をキラキラさせて将来の夢を語る少年少女が現れたら嬉しい!な!!
うしうし。目指せ・文明開化っ(。・д´・。)ノ
べにぢょの頭を叩いてみれば、文明開化の音が・・・するかなどうかなあるかあな><

TwitterにRSSフィードを自動投稿してくれるアカウント作った!

お知らせとレス

このブログのURLが変更になるらしい。新URLへのリダイレクト処理はしてくれるそうだ。
1月22日より 新しいURLになります - DTIブログお知らせ版
ってことは、h ttp://lovecall.dtiblog.com/ になるのかな?

お手数お掛けしますが、22日以降は新URLの方へアクセスしてくださいませ。
また、当ブログへリンクしてくださってる方は、新しいURLに修正いただけるとありがたいです。
ご迷惑お掛けして申し訳ありません、どうぞ宜しくお願い致します。

新・ギークなお姉さんは好きですか
# 22日0時現在は移行前なので見れません。


@Yappo
デートは ”りなかふぇ” ていうところに行ってみたいです! geekDBより



更新情報

 

Twitter に GeeklyNews や geekDataBase の最新ニュースを自動 POST してくれるアカウント作った!

geekDB / Twitter

私がRSS 対応を決意した理由のひとつが ”Twitter BOT つくりたい願望”。
ボットボット・・・と思ってたけど、すごくいいもの見つけちゃった♪

Twitterにブログの更新情報を通知する方法

すごい!田口さんに導かれるまま設定したらホントにできた!
RSS 化してよかったーーーーー!!
田口さんは今年もアルファだなぁ。コレ去年の記事だけど・。・



Twitterを使ってもっと何かしたい

今は feed.xml を POST してるんだけど、TwitterFeed を使ってほかにも何かできないかなぁ。

たとえば・・・
ギークの個別ページに 「このギークに話しかける!」 っていうメッセージフォームを設置して、
そこにメッセージを入力して送信ボタンを押すと、geekDB アカウントが@hogehoge でそのギークの Twitter に @私信を POST するとか?
そこまでいかなくても、TOP ページに「 geekDB に話しかけてみる!」というメッセージフォームを置いて、
@geekDB をデフォでテキストボックスに入れておくとか。
そうだ。その前にまず、やたらギークに @私信を飛ばして良いのかという問題がある。
やはり手始めは @geekDB がいいだろうなぁ。ハタからみたら自己レスになるが。


うーん。うーん。
でもこれは、どういうことだ。
いったん post.php などで受け取って、そのファイルを xml 化すればいいのか?
しかし、RSS は title、link、description の3つの要素が必須だと前回どこかで読んだ記憶。
となると、どうすればよいのだ。
$_POST を配列にして、3項目入れてもらう?待て、それは本末転倒ではないか。

それとも、$_POST で送られたデータをデータベースに挿入して、前回と同じやり方で DB から引っ張る?でもユーザ入力を直接 DB に入れるのって危なくないか??

はたまた、自分で xml を書いて、そのファイルで $_POST を受け取る?
や、それだとメッセージ送信後の画面が xml だからカッコ悪そうだ。
いやいや、その問題は大丈夫だ。確か CSS が使えたし、XSLT という便利な変形装置があったはず。
それより $_POST をxml で、という部分があやしい。
あるいは、うわさでよく聞く API なるものを使うのだろうか。


ヒントになりそうなページをいくつか見つけたが・・・

PHPでフォームからデータDBに書き込むサンプル

MySQLに値を挿入するときについての質問です。

この方法は本意じゃないんだよなぁ・・・。別にデータベースに保存したいわけではないのだ。


PHPでXMLを出すプログラムを作ってみましたで、ロリポップで実行すると。。

ここがかなりいい感じだったんだけど、どうもうまくいかん。属性を755に変えてみたが、それでもエラー。
私の場合、もっと根本的な間違いを犯している気がする・・・



ダメだダメだ。そもそも xml のことをちゃんと分かっていないからこういうことになるのだ。
出直してくる(`・3・)



とても参考になったリンクに感謝!

XMLへの誘い:第2回 XMLの正体

XML基礎知識

XML

XML ファイルの基本

RSS -- サイト情報の要約と公開

RSS 2.0 Notes

geekDataBaseをRSSリーダーで購読したいのです

祝電

amachang、お誕生日おめでとう(・∀・)



挨拶

年末から正月にかけて体調崩してました><
遅ればせながら、あけましておめでとうございますそして!今年もよろしくお願いします。



データベースの更新をRSSで配信したい!

ぎーくでーたべーすRSS を そうび した!

すばやさ +5
かしこさ +3
こうげき力 +1

このくらい上がったかな!どうだろう><
geek DataBase -ギークデータベース-(xml)


今回、何よりも一番参考になったのが下記リンク。
ソースコードからサーバ上のファイルの置き場所まで、まるっと世話になりまくり。
PHP(FeedCreator.class.php)を使ったRSSの生成
この方には足を向けて寝れない。
RSS対応を考えている人はぜったい読んだ方がいいよ!人生損してるよ!
いろんな記事を読んだけど、私が理解できたのはココだけだった。オススメだ(・∀・)ニョ


で。で。
対応したのはいいんだけど、私はいつもRSSリーダーに追加する際に、
SleipnirBookmarklet を使ってるのね。
でも、この状態だと 「RSS リンクが見つかりません」 と言われてしまう(´・ω・`)
そんなわけないのに!もっとよく探して><

どうやらこのままじゃ RSS 対応してることに気付かれないらしい。
そこでどうするか。どうすればよいか。

われわれ、一生懸命探しました。そしたらね・・・お母さん 見つかりましたよ・・・!(古いw

PHP と RSS: その仕組みを理解する

これの中段 「データを抽出する」 内の 「みんなに知らせる」 という欄に学生ー注目っ!
というか、冒頭の記事にもサラリと記載があったね。答えを知ってから気付いた・。・

自分のホーム・ページの先頭に次のタグを追加することで、
Mozilla Firefox、Microsoft Internet Explorer、そして
他のリーダーに、作成したフィードについて知らせることができます。

<link rel="alternate" type="application/rss+xml"
href="URL_FOR_YOUR_FEED" title="FEED_TITLE" />


やった!これを入れたら RSS リーダー気付いてくれたよ!
あとは・・・前回も書いたけど、更新日時をどうにかせねば(’A`)
個別のリンク先はフィールドを追加しないとダメっぽい予感で萎えている。ううむ。


いまは GeeklyNews と ギークの追加情報、私の独り言などを配信してるけど、
ギークの歴史や個人プロフィールの更新も対応しよかなーと考え中。


各ギークの最新ニュースを3つだけ表示する

日記

Hey! Say! JUMPに萌えたら負けかなと思っている。



任意の id の最新ニュースを n 個取り出す

GeeklyNews が蓄積するにつれて募る、いわれのない焦燥感。
エントリに羅列してるだけじゃ、もったいない気がする。
せっかくなので、データベースと関連付けたい。

そうだ!個別ページで各ギークさんの最新ニュースを表示させればイイネ!
これはたぶん・・・どうにかすればできるはず・・・。

何も考えず浅はかに geekDB(テーブル)に news というフィールドを追加してみる。
んんん。違う。ここに毎回ニュースを手動で入力して更新するようじゃダメだ。
そんなんじゃなくて、勝手に各自の最新ニュースがうまいこと表示されるような、
データベースらしいラクちんな方法がぜったいにあるはず><

最低でもニュースの内容と name_id、日付も必要だから・・・ってことは、
あ。テーブルを別に作ればいいんじゃないだろか?

news というテーブルを作って、name_id=yusukebe のニュースを新しい順に並べて、
そこから最新3件くらいを表示するように指定すればいいんじゃ?
そうだ、確かSQL構文でそんなことはできた気がする。できたということはできるということだ。



select topic from news where name_id = ? order by id desc limit 3

ニュース内容のフィールド名は topic にした。idAUTOINCREMENT(オートインクリメント)。

AUTOINCREMENTを指定すると、自動的に整数を順次増加させてくれて値を格納します。

参考:AUTOINCREMENT - テーブルの作成 - SQL入門


いま掲載してるニュースを古い順にどんどん入れていくと、自動で id が振られる。
それを逆順に並びかえれば新しい順になるね(・∀・)


order by id desc

SELECT ... ORDER BYを使用して問い合わせすると、
データを列ごとに昇順または降順でソートすることができます。

参考:SQL入門その11 - SELECT ... ORDER BY文によるデータの並べ替え - データベース入門


limit 3

この並べ替えのクエリの最後にLIMIT n を追記することで、
その数だけ(つまりベストn)のリストになります。

参考:MySQL入門以前


このSQL文を prepare して、execute

空いてるスペースに強引に入れてしまったのでデザイン的にはイケてないけど、そこはカンニンな><
美術の成績はいつも2だった。私の絵心のなさは超ド級。

最新ニュースと直筆サイン出した!

更新報告

GeeklyNewsに掲載した各ギークさんの最新ニュース3件と
直筆サイン入りネット大好きメッセージ(謎)を表示するようにした!

例)TAKESAKO

ふふふ・・・いいなこれ・・・ヨダレでそう・・・
ギークの他愛ない日常の記録がデータベースに・・・・・・・・うふ!えへ!ほげ!!


ネット大好きメッセージが出るのは、今のところ akiyanamachangTAKESAKO さんだけなんだ。
画像をクリックするとネット大好きサイトに飛びます飛びます⊂二二(古ィ^ω^)二⊃


取り急ぎ、ご報告まで!

PDO と prepared statement に関するメモ

日記

JJUGクロスコミュニティカンファレンスで講演デビューしてきました!
以下のアジェンダで、purprinさんと一緒にお話させていただきました。

・「べにぢょ」ってなに?それおいしいの?
・「ギーク」ってなに?
・どうして今ここで発表しているの?
・「geekDataBase」というサイトの紹介
・初心者プログラマがデザイナーさんにデザインを依頼する際のポイント

緊張しすぎてマジで死ボンヌ5秒前でしたが、とても良い経験になりました。
本当に本当に、ありがとうございました。
参考:人生初の - べにぢょの日記




PDOとprepared statement

参考:$_GETを安易に受け入れちゃダメ!

走り書きで失礼><

extract($_GET, EXTR_SKIP);

$dbh = new PDO('mysql:host=localhost;dbname=データベース名', 'ユーザ名', 'パスワード');
$dbh->query("set names utf8;");

$name_id = $_GET["name_id"];
$stmt = $dbh->prepare("select name from geekDB where name_id = ?");
$stmt->bindParam(1, $_GET["name_id"]);
$stmt->execute();

if ($stmt->execute(array($_GET['name_id']))) {

while ($item = $stmt->fetch()) { //以下略



最初 Call to a member function prepare() on a non-object in... と言われる。
phpでmysqli構文が上手く動きません - Yahoo!知恵袋

根本的な設定をいじらなきゃいけないことに今さら気付く。(死に値する遅さ)
PDOでサクサクDB開発 - CodeZine

コアサーバーにphp.iniが設置できるかどうか。
# 「コアサーバーでphp.iniってどうやって使うんだよ!!」←イイネ!してきたw
PHPをCGIとして動かす方法について - CORESERVER.JP

PDOについて
PDO 関数 - PHPプロ!マニュアル
第11回 データベースへのアクセス[PDO編] - gihyo.jp


説明は後日。ほか参考リンク
prepareメソッド - PDOの利用 - PHPを使ったデータベース接続
prepareとexecuteでDB操作 - phpspot
プリペアドステートメント - データベース接続(PEAR::DB) - PEAR入門


PHPとは全く関係ないけど、今日はgitをインストールしてコマンドプロンプトでごにょごにょやった。
私はひそかにコマンドプロンプト萌えなので、打ちながらにやにやしてしまったw

$_GETを安易に受け入れちゃダメ!

私信
ゆーすけべー社長、2周年おめでとうございます♪
ワディット2周年にあたって feat. ESPer2008講演 「いつのまにか社長になっていた」



セキュアなコードを目指して

<title>をクールにしてみた!で公開したコードの件。ちょっと混乱してるのでいったん整理する。

安易にextract($_GET); を使うとどうなるかというのは、言及してくださった方が
分かりやすい例を用いて解説してくれたので、そちらを直接見てくれた方が良いと思う。

なぜ入力値に extract を使用すると危険なのか の部分 - まちゅダイアリー
すでに誰かが突っ込んでいるが、extract($_GET); はまずい。 の部分 - Web屋のネタ帳


文字コード指定は mysql_set_charset を使うべし

× mysql_query("set names utf8");
○ mysql_set_charset("utf8");
mysql_set_charset - PHP Manual

この機能はSQLコンソールからは使ってよい機能ですが、アプリケーションからは
使ってはならない機能です。SQLインジェクションに脆弱になる場合があります。

SET NAMESは禁止 - yohgaki's blog
#いま気付いたがコメント欄で議論が!

関連でちょっと気になるエントリもあったが・・・
SET NAMESは禁止? - CakePHP のおいしい食べ方


prepared statementを使うべし

プリペアドステートメントってなんだ!
mysql-ja: Prepared Statement (訳) - MySQL Lists

”アドホックなクエリのストリング”というあたりで危うく引き返しそうになった。
私は、日常的に使用しないカタカナ語が3つ続くとバグる。要・成長。
泣きながら「ていうか腹減った!」と生姜焼き弁当を買いに走ったことはさておき、
ピコーンと来た部分を上記記事より一部引用。

Prepared statementはSQL のロジックとデータを分離することで
セキュリティを増加します。ロジックとデータを分離することで、
SQLインジェクション攻撃を回避することができます。

通常のクエリを扱っている場合、ユーザから受け取ったデータを
処理するには注意が必要です。
これはシングル・クオート、ダブル・クオート、バックスラッシュなどの
文字をエスケープする関数を使用することに関係します。
こういったことはprepared statementを使用する際には不必要です。


どうやら私が使いまくっていたMySQL関数は古いらしく、prepared statementの実装が無いという。
よく考えたらそうか。言語も人も世界も進化しているのだから、数年前の参考書に頼るのはイクナイ。

Web屋のネタ帳さんのサンプルコードを見た際、
「$himituという変数の存在に気づかれる可能性は低いから大丈夫だっぺ!」
と思ったら光速でイエローカード出されたwww
そうか・・・どこで尻尾を出しちゃうか分からないしなあ・・・・。


安全性確保のため mysql_real_escape_string を使うべし

以前、SQLインジェクションについて書いた際、下記TBをいただいた。

mysql_query関数は複合クエリに対応していない為、
SQL文中にセミコロンが入っている時点でエラーになります。

re:キケンなSQLインジェクション - to-R

すっかりセフセフな気分でいたが、それ以外にも方法があるからやっぱりダメらしい><
そこで mysql_real_escape_string

SQL 文中で用いる文字列の特殊文字をエスケープし、
mysql_query() で安全に利用できる形式に変換します。
データの安全性を確保するため、MySQL へクエリを送信する場合には
(わずかな例外を除いて)常にこの関数を用いなければなりません。

mysql_real_escape_string - PHP Manual



以上を踏まえて書き直す。うーっ。レディー・GO!!
べにぢょが頑張りますように!(phaさんのついったー発言の真似)