サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
noritan-micon.blog.ss-blog.jp
Python CGI で 掲示板みたいなものを作る~Ajax編~では、Ajaxという仕組みを利用してページ遷移を起こさない掲示板システムを作成しました。 しかし、SQLiteとのインターフェイスは、相変わらず"system"関数によるコマンドを呼び出しで、標準入力を通じてSQLコマンドを送り込み、標準出力から結果を受け取る方式になっていました。 Python CGI で作るアクセスカウンタ~sqlite3モジュール編~でsqlite3モジュールが使えるようになったので、掲示板もsqlite3モジュールを使用するように変更してみました。 データベースの構成 今までの掲示板は、一つのデータベースを使いまわしてきましたが、今回は別のデータベースを作成しました。 その理由は、文字エンコーディングの扱いが異なってきたからです。 カラム名タイプ内容 このテーブルに "visitor" という名前をつけ
Python で日本時間を表示するには,何が必要なんでしょうか. この話題は,ググると,わんさか転がっているので,いまさら書かなくてもいいかな. TZINFOという仕掛け Pythonでは,夏時間などに代表される,どんなに無茶な時間制度にも対応できるように, "datetime.tzinfo" という abstract クラスが用意されています. このクラスを継承したクラスを準備するだけで,どの国の時間にも対応出来ます. ただ,逆に言うと,このクラスを準備しないとローカルな時間には対応出来ないのです. そこで,必要最低限のメソッドを実装したクラスを作成してみました. import datetime class JapanTZ(datetime.tzinfo): def tzname(self, dt): return "JST" def utcoffset(self, dt): retur
某所から「メールが届きません」と問い合わせがきました.ZIPファイルとパスワードを別のメールサーバを経由して送ったために,片方のメールしか届いていない事が判明したのです. レンタルサーバと独自ドメインの不一致 調査してもらったところ,受け取り側メールサーバが「不審なドメイン」からのメールと判断されて,怪しいメールに分類されていたのが原因でした.複数のアカウント間でメールを送り合って確認したところ,メールヘッダに「不確かなドメイン」と判断されたらしい記述がありました. Received-SPF: none (レンタルサーバ名.sakura.ne.jp: domain of メールアカウント@独自ドメイン名 does not designate permitted sender hosts) Authentication-Results: メールサーバ名.yahoo.co.jp from=独自
Twitter で,宇宙エレベータ(軌道エレベータ)の話が出ました.とっさに想像できなかったので,本格的に計算してみました. 静止衛星って,何よ 地球の自転と同じ角速度で衛星を配置すると,赤道から約 36,000km 上空の静止衛星軌道という場所に落ち着きます.地上からこの衛星を見ると,いつも同じ位置に見える,つまり静止して見えることから,静止衛星と呼ばれます. 静止衛星が,地球に近づくことも地球から遠ざかることもないのは,静止衛星に働く力の合計がゼロであるためです.地球に近づく方向に働く力を「引力」と呼びます.反対に地球から遠ざかる方向に働く力を「遠心力」と呼びます.地上から 36,000km の上空でこれらの力がつり合って,静止衛星は,静止して見えます. 宇宙エレベータって,何よ 地球の自転と同じ角速度で回ると,静止衛星軌道よりも地球に近い場所では,「引力」の方が強くなるので,地球に引
ヒマも無いのに, Android SDK に手を出してしまいました. LinearLayout というオブジェクト Android SDK では,画面構成を「リソース」という外部情報で規定しています.「リソース」は,XML形式で記述されます.そのため,プログラム本体を変更することなく,見た目を変更することができます. いくつかの部品を横一列,縦一列に配置するためのコンテナとして, LenarLayout というオブジェクトが用意されています.このコンテナも,「リソース」にちょちょいと書くだけで,簡単に配置できます. weight を指定すると子どもが大きくなる LinearLayout は,子部品を収納するためのコンテナです.収納した結果,場所が余ることもあります.そんな時には,残った場所には空白が残ります.この例では,4個の TextView 部品を縦に並べています. <?xml ver
もう、かれこれ3ヶ月も前になりますが、Python CGI で 掲示板みたいなものを作るで”GET”メソッド使った「掲示板みたいなもの」を作りました。 そして、先日の事です。 某BLOGより私の記事にリンクが張られていることに気が付きました。 そのBLOGのとある記事では、Python CGIで"POST"メソッドを使う方法を探しておられるらしい。 これは、私が以前見つけた方法と違うみたいですね。 FORMの構成 FORMを配置したHTML文書は、こうなりました。 実は、"GET"メソッドを使う場合とほとんどおなじなんです。 タイトルを"VISITOR WORLD 3"から"VISITOR WORLD 4"に変えました。 FORMから呼び出すCGIファイルを"visitor_world3.cgi"から"visitor_world4.cgi"に変えました。 FORMで使用するメソッドを"ge
これまで、 HTML 文書から直接 CGI を呼び出すことで、掲示板みたいなものを実現してきました。 今回は、 JavaScript ファイルを追加して、いわゆる "Ajax" に挑戦してみます。 HTML : visitor_world6.html 今回のメッセージ送信画面は、今までとちょっと違います。 メッセージを記入する "TextBox" と "Submit" "Clear" ボタンが並んでいる所までは同じなのですが、今回は、その下にメッセージのリストが表示されています。 "TextBox" にメッセージを記入して、 "Submit" ボタンが押したら、今までは CGI を直接呼び出していました。 今回は、一旦 "JavaScript" が "Submit" ボタンのクリックを受けとめて、そこから改めて CGI を呼び出して、メッセージの追加とメッセージ一覧の取り寄せを行います。
5年以上前に購入した 「DELL Dimension 8300」 今さらでは、ありますが、ディスクを増設したくなりました。 マルツパーツ仙台上杉店に行ってみたで購入したハードディスクを取り付けます。 ハードウェアをそろえる "Dimension 8300" は、ちょうど Serial ATA 規格が出始めた頃のマシンです。 そのため、異例な事だとは思いますが、マザーボードには、 IDE (ATAPI) のコネクタと Serial ATA (SATA) のコネクタのどちらもが装備されています。 一方、現在手ごろな価格で手に入るハードディスクはというと、すべて SATA 規格になっっています。 そこで、ものは試しにと SATA 規格ディスクを取り付けてみることにしました。 まずは、ハードウェアの調達です。 ハードディスク : HDP725050GLA360 前の記事にも書いたように特売品の 1
前回の記事Python CGI で 掲示板みたいなものを作る~POST編~では、 "cgi.parse_qs()" を使って query を取り出す方法を使いました。 今回は、こんどはPOSTを受ける方法。で紹介されていた "cgi.FieldStorage()" を使用してみます。 もしかして、こっちが、本流なのかな? FORMの構成 HTML文書は、タイトルと呼び出すCGIが変わっただけです。 もう、説明はいらないよね。 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <!-- $Id: visitor_world5.html,v 1.1 2009/06/06 0
設計に時間を要しましたが、ようやく、HIDデバイスができました。 動作中写真は、後日。 HIDのプロトコル このプログラムは、HIDのレポートとして、送信された8バイトのデータの先頭1バイトの文字コードを液晶モジュールに表示するものです。 ただし、デバッグのための文字も一緒に液晶モジュールに表示されるので、まだ、ごちゃごちゃしています。 また、8バイトのデータをホストに返す機能もありますが、今の所、意味のあるデータを載せていないので、データが到着するのを確認することしかできません。 動作の確認は、WindowsアプリケーションにはBASICが良く似合うで紹介した、"hidclass_vs5.zip"を使用しました。 これで、液晶モジュールに文章を出させるには、根気が続きませんでした。 プロジェクト・ファイル え~と、いちおうプロジェクト・アーカイブを作成しましたが、切れ端やら、残骸やらが残
前回のPython CGIでは、決まったHTML文書を表示するだけでした。 今回は、QUERYを介してメッセージを表示させます。 QUERYって何だ? HTML文書を要求する時、文書名の後にパラメータを付けることがあります。 例えば、こんな感じ。 http://noritan.org/cgi/echo_world.cgi?message=GOOD%20MORNING&time=06:00 この疑問符から後の部分をQUERYと呼び、CGIがその構文を解析してパラメータと値を適切に処理します。 「構文解析、めんどうジャン」と、思ったあなた。 そんな方のために、Pythonは、cgiという名のモジュールを用意してくれています。 今日のCGI - ECHO WORLD 今日のCGIは、QUERYから"message"というパラメータを見つけ出して、HTML文書として表示するプログラムです。 #!/
Altera の EPM2210F324 が ここやここで話題になっているので、私も使ってみました。 ただし、ハードウェアは購入していないので、ソフトウェアで遊んだだけです。 DVDが待ちきれなかった ダウンロードすべきファイルが、1Gバイトを超えるあまりにも巨大なものだったので、DVDを請求しました。 ところが、ちょうどソフトウェアのバージョンアップと重なったために、DVDの発送は、11月17日以降になるらしいことが書いてありました。 そのため、苦労して、ここからソフトウェアをダウンロードしてきました。 ダウンロードの方法には、二つあります。 一つは、ブラウザからHTTPで取り寄せる方法。 もう一つは、"Download Manager"という魅惑のダウンロードソフトを使うことです。 できたら、未知のソフトは使いたくなかったので、最初はHTTPを使ってダウンロードを試みました。 ところが
某所より提供された液晶パネル「VIM-503」を使って、電圧計を作ってみました。 基板は、そのまま MC9RS08LA8で作った評価ボードでは、液晶パネル「LCDP81」を搭載した基板を作成しました。 写真をご覧ください。 今回の液晶パネルは、なんと、この基板をそのまま使用しています。 これは、任意のポートをバックプレーンとして使用することができるというMC9RS08LA8のLCDドライバの特徴の成せるわざです。 また、今回使用した、液晶パネル「VIM-503」が15端子一列分しか必要としないという仕様にも助けられています。 ソフトウェアは、多少、苦労しますが、もう一枚基板を作るのに比べたら軽いものです。 電圧を検出する仕組み 電圧計を作るためには、何らかの方法で基準電圧を手に入れる必要があります。 MC9RS08LA8の場合には、マイコン内部にバンドギャップと呼ばれる基準電圧を作成する機
Python CGI で来客記録をつけるでは、Pythonで記述したCGIを利用してテキストファイルに来客記録を付けました。 ただ、排他制御をしていなかったので、かなり確率は低いと思いますが、複数の来客があった場合にはファイルが破壊されてしまう可能性があります。 そこで、データベースを使ってみようと考えました。 さくらのレンタルサーバで使えるデータベースは さくらのレンタルサーバには、いくつかのコースが設定してあります。 私が利用しているのは、一番安い「ライト」プランです。 機能比較ページを見るとわかるのですが、「ライト」プランはかなり制限があります。 それでも、データベースとして「SQLite が使える」と書いてありましたので、どうやって使うものか調べてみました。 まず、SQLiteというのは、他のデータベースと違って、常駐プロセスが存在しないらしいことがわかりました。 つまり、CGIで
前回の記事で、ユーザ・ドライバのためのベクタ・テーブルを書き込みました。 しかし、肝心のプログラム本体を書き込んでいないので、使えるのはヘルプ表示だけです。 どうやったら、楽してユーザ・ドライバが書けるかな? CodeWarriorをインストールするの? MCF52233などの"ColdFire V2"には、Interface誌に付いてきた「CodeWarrior for ColdFire」が使えることは想像に難くないと思います。 でも、あの巨大な"CodeWarrior"をもうひとつインストールするのは、気が引けます。 その理由は、HCS08を使った事があれば、"ColdeFire V1"の開発環境が含まれた「CodeWarrior for Microcontrollers」がインストールされているからです。 こいつが、 "ColdFire V2" のコンパイルぐらいはやってくれないかな
J34 (SPI HEADER) にまとめられると良かったのですが、そのためには基板上の抵抗を取り外さなければなりません。今回は、 SPI-UART 切り替えヘッダの方を使いました。 ブートに使ってみる FX3 に接続された SPI FLASH には、 FX3 のファームウェアを格納してブート時にダウンロードすることができます。 そこで、 FX3 Software Development Kit (SDK) に付属しているユーティリティ Control Center で SPI FLASH と同じ要領でファームウェアを書込んでみます。 テストに使用したのは、FX3 DVK直結カメラキット "FX3DVK-Cam F1"の付属ファームウェアです。 すると、難なくファームウェアを書込むことができました。 何の障害もありません。 FX3 DVK をリセットすると、 F-RAM からブートしてカメ
ようやく、HIDデバイスを扱うためのPC側アプリケーションが書ける様になったので、HIDデバイスを操作するときの定石についてまとめておきます。 テキストは、EDNの記事、 Using the HID class eases the job of writing USB device drivers です。 日本語版が見つけられませんでした。 もしかしたら、日本には上陸しなかったのかな? HIDは、ヒューマン・インターフェースのためにあるわけではない この記事の言わんとするところは、「ヒューマン・インターフェース・デバイス(HID)」という言葉に惑わされること無く、なんにでも使ってしまえというところです。 実際、単純な入出力なら、ボタン入力とLED出力に偽装すれば、どんなものだってHIDで十分に実用になります。 しかも、HIDを使うだけで、プログラム開発が圧倒的に簡単になります。 STEP1
お久しぶりでございます。 休載していた間に JavaScript がずいぶん変わってしまったみたいで。 ためしに JavaScript でリサージュ(リサジュー)を描いてみよう。 貧弱な PSoC 4000S でワンショットパルスを出したい。 こういう要望があったので、 Smart I/O で実現してみました。 与えたクロック数発分のパルスをソフトウェアでトリガします。 このプロジェクトは、 CY8CKIT-145-40XX PSoC 4000S Prototyping Kit で動作させています。 大まかな動作原理 Smart I/O の内部は、このように構成してみました。 ソフトウェアのトリガは、 data4 から LUT5 に入り、立ち上がりが検出されます。 立ち上がりが検出されると LUT4 のステートマシンが動作を始めます。 LUT4 は、 LUT6 を介して、 Data Uni
このページを最初にブックマークしてみませんか?
『新適当マイコン電子工作研究所』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く