2013/09/27
2013/09/23
のっとられたかもつれっしゃ
はれた日、かもつれっしゃをとめていたら、かぎをぬすまれて、かもつれっしゃがかってに動きだしました。そのかもつれっしゃは、かんせいしたばかりなので、まだ、さいしゅうチェックはしていませんでした。
なので、かもつれしゃは、どんどんスピードがはやくなっていきました。かもつれっしゃは、ほかのかもつれっしゃに、ぶつかってしまいました。どちらのかもつれっしゃにも、ガソリンのはいったタンクがいっぱいあったので、だいばくはつになりました。
その近くには、町があったので、さらに火事が広がりました。だいばくはつをした、ふたつのかもつれっしゃのうんてんしゅと、のっとった人は死んでしまいました。
その火事で1000人以上が死にました。
なので、かもつれしゃは、どんどんスピードがはやくなっていきました。かもつれっしゃは、ほかのかもつれっしゃに、ぶつかってしまいました。どちらのかもつれっしゃにも、ガソリンのはいったタンクがいっぱいあったので、だいばくはつになりました。
その近くには、町があったので、さらに火事が広がりました。だいばくはつをした、ふたつのかもつれっしゃのうんてんしゅと、のっとった人は死んでしまいました。
その火事で1000人以上が死にました。
ラベル:
智哉
2013/09/22
2013/09/21
下の子も一緒にブログを書き始めました。
上の子(お兄ちゃん)が、ブログ100アクセスで得たAmazonギフト券利用を我慢できず、ゲームを購入しました。それを見ていた下の子が、「ぼくもブログを書く!」ということになりました。ミッションとしては、お兄ちゃんと同様の100アクセスです。
下の子は、まだまだキーボードは打てないので、ブログに書きたい内容を紙に書き、その内容を、そのままブログにアップしています。
その記事が、「かもつを止めた!」 と 「プラレールのかもつれっしゃがだっせんした。 」 です。
好きなことを書けばいい と言うと、「おはなしを作る」と行って物語を考え出しました。イラストも自分で描くのが楽しいらしく、ソフトの操作方法を教えると、喜々として描いていました。
下の子は、まだまだキーボードは打てないので、ブログに書きたい内容を紙に書き、その内容を、そのままブログにアップしています。
その記事が、「かもつを止めた!」 と 「プラレールのかもつれっしゃがだっせんした。 」 です。
好きなことを書けばいい と言うと、「おはなしを作る」と行って物語を考え出しました。イラストも自分で描くのが楽しいらしく、ソフトの操作方法を教えると、喜々として描いていました。
CentOS6のZope2.10.9にpsycopg、ZPsycopgDAのインストールした際の備忘録
ZopeとPostgreSQLをつなぐ必要があり、psycopgを使って接続した際の備忘録です。
PostgreSQLのインストール状況の確認
psycopg-1.1.6.tar.gz をダウンロード、解凍して、インストール。
/zope_instance_path/Products に ZPsycopgDA をコピーして、Zopeを再起動
ZopeからPostgreSQLに正常に接続、データを取得できることを確認できました。
PostgreSQLのインストール状況の確認
$ sudo rpm -qa | grep postgres postgresql-odbc-08.04.0200-1.el6.i686 postgresql-libs-8.4.13-1.el6_3.i686 postgresql-server-8.4.13-1.el6_3.i686 postgresql-devel-8.4.13-1.el6_3.i686 postgresql-8.4.13-1.el6_3.i686 postgresqlが、サービスに登録されていることを確認 $ ls /etc/init.d/ abrt-ccpp functions postgresql spice-vdagentd ... OS起動時のPostgreSQL起動を設定 $ sudo chkconfig postgresql on $ sudo chkconfig --list postgresql postgresql 0:off 1:off 2:on 3:on 4:on 5:on 6:off PostgreSQLの起動 $ sudo service postgresql initdb データベースを初期化中: [ OK ] $ sudo service postgresql start postgresql サービスを開始中: [ OK ]PostgreSQLで操作用のユーザーを作成しておきます。
$ sudo su - postgres -bash-4.1$ createuser test_user 新しいロールをスーパーユーザとしますか? (y/n)n 新しいロールにデータベース作成権限を与えますか? (y/n)y 新しいロールにロールを作成する権限を与えますか? (y/n)n $ exit logout 操作用のユーザーに切り替えて、データベースを作成して、そのデータベースに接続できることを確認しておきます。 $ su - test_user $ createdb sampledb $ psql sampledbpsycopg-1.1.6のインストール
psycopg-1.1.6.tar.gz をダウンロード、解凍して、インストール。
$ wget http://old.zope.org/Members/fog/psycopg/1.1.6/psycopg-1.1.6.tar.gz $ tar vxzf psycopg-1.1.6.tar.gz $ cd psycopg-1.1.6 $ ./configure --with-python=/opt/python2.4.6/bin/python --with-postgres-libraries=/usr/lib/pgsql --with-postgres-includes=/usr/include/pgsql/server --with-mxdatetime-includes=/opt/python2.4.6/lib/python2.4/site-packages/mx/DateTime/mxDateTime $ make $ sudo make install Installing shared modules... install -m 555 ./psycopgmodule.so /opt/python2.4.6/lib/python2.4/site-packages 下記のオプションを付けないと --with-postgres-libraries=/usr/lib/pgsql --with-postgres-includes=/usr/include/pgsql/server checking PostgreSQL version... configure: error: missing PostgreSQL headers というエラーが表示されます。 下記のオプションを付けないと --with-mxdatetime-includes=/opt/python2.4.6/lib/python2.4/site-packages/mx/DateTime/mxDateTime checking for mxDateTime.h... configure: error: can't build without mx headers というエラーが表示されます。 その解消のために,egenix-mx-base 3.2.6のインストールが必要 https://pypi.python.org/pypi/egenix-mx-base/ $ wget https://downloads.egenix.com/python/index/ucs2/egenix-mx-base/3.2.6/egenix-mx-base-3.2.6.tar.gz $ tar vxzf egenix-mx-base-3.2.6.tar.gz $ cd egenix-mx-base-3.2.6 $ sudo /opt/python2.4.6/bin/python setup.py build $ sudo /opt/python2.4.6/bin/python setup.py installZPsycopgDAのインストール
/zope_instance_path/Products に ZPsycopgDA をコピーして、Zopeを再起動
ZopeからPostgreSQLに正常に接続、データを取得できることを確認できました。
ラベル:
PostgreSQL,
Python
2013/09/16
「Area61 ビデオミキサ」を使ったレゴアニメーションの作り方
昨日の息子の記事 「スターウォーズのキャラクターでレゴアニメをつくってみました」 の撮影は、息子がしたのですが、アニメーションの作成までは難しいので、私が作業しました。
「Area61 ビデオミキサ」というソフトを使って静止画を動画に変換しました。
Area61 ビデオミキサ
http://www.vector.co.jp/magazine/softnews/070106/n0701062.html
「Area61 ビデオミキサ」を起動した画面
撮影した静止画は、連番で保存されている必要があります。光線は静止画上で加工しておきます。
「Area61 ビデオミキサ」の操作画面の下のエリアに撮影をした静止画をドラッグ&ドロップで持っていきます。
「プレビュー」ボタンを押して、動画の確認をします。各静止画の表示時間については、「長さ(ms)」の値を変更することで制御できます。
プレビューで問題なければ、「WMV作成」ボタンを押して、動画データを作成します。
後は、YouTubeにアップをすれば、下記の動画が公開できました。
「Area61 ビデオミキサ」というソフトを使って静止画を動画に変換しました。
Area61 ビデオミキサ
http://www.vector.co.jp/magazine/softnews/070106/n0701062.html
「Area61 ビデオミキサ」を起動した画面
撮影した静止画は、連番で保存されている必要があります。光線は静止画上で加工しておきます。
「Area61 ビデオミキサ」の操作画面の下のエリアに撮影をした静止画をドラッグ&ドロップで持っていきます。
「プレビュー」ボタンを押して、動画の確認をします。各静止画の表示時間については、「長さ(ms)」の値を変更することで制御できます。
プレビューで問題なければ、「WMV作成」ボタンを押して、動画データを作成します。
後は、YouTubeにアップをすれば、下記の動画が公開できました。
ラベル:
レゴ
2013/09/15
【書評】「レイヤー化する世界 [Kindle版]」(佐々木俊尚)を読んだ感想
佐々木俊尚さんの「レイヤー化する世界」をKindle版で読みました。これからの世の中は、おそらく、このように変わっていくのだろうと思いました。
この本の中で語られているのは、現在の「国民国家」と「民主主義」で成り立っている世の中の仕組み自体が変わっていく、ということ。「国民国家」と「民主主義」に取って代わっていくものが、Apple、Google、Facebookなどの超国籍企業が作り出す<場>というものになります。<場>という言葉は、佐々木俊尚さんが考え出したものですが、その内容をよく表している言葉だと思います。
<場>による仕組みの変革
<場>による仕組みの変革が始まったのは、音楽業界からです。Appleが、iTunes、iPodを使って、配信、売買できる仕組みを作りました。iTunes、iPodが、<場>になります。それまでの音楽業界では、音楽制作会社に意向に沿った音楽が採算を計算の上で制作され、CD販売店で販売がされていました。その仕組みは、iTunes、iPodという<場>に取って替わられました。音楽を作りたい人が作った音楽を、その<場>を使って、自由に配信、売買することができます。
音楽業界に起きたことが、出版業界でも起こり、今後、すべての業界で起きて行くことになります。本書の中では、行政サービスも、その<場>に置き換わっていく業界の事例として説明されています。例えば、道路や橋、公共施設の保守管理は、行政サービスとして管理されています。保守のためには、何かしらの人が、定期的に道路や橋、公共施設の状況を見てまわる必要があります。
そういった保守が必要な箇所については、保守管理のスマホアプリを作成・配布して、各市民が、自分の見つけた保守が必要な箇所を、そのアプリを通して、位置情報・写真を行政に報告をします。その保守が必要な箇所の情報は、そのアプリによって共有され、保守作業のフローへ繋がって行きます。
保守管理のスマホアプリ自体も行政が用意する必要はなく、行政の業務フローを運営する<場>(何かしらの会社が提供するオープンな場所)さえ提供されていれば、そこで便利なアプリが生まれてきます。行政はそのアプリ群の中から、有用なものを選びさえすれば良いのです。
世界の富は均一化されていく
<場>による仕組みは、世界の富の不均衡を均一なものにしていきます。先進国は、今よりは貧しくなります。発展途上国は、今より豊かになっていきます。例えば、サイト制作を発注する場面で考えてみます。今では、全世界のクリエイター、プログラマーに仕事を発注することが可能です。先進国のクリエイターと、発展途上国のクリエイターでは、同じスキルの方であれば、発展途上国の方の方が制作費用は安いと考えられます。そうであれば、発展途上国のクリエイターに仕事が流れるのは自然な流れです。こういった内容が、分かりやすく説明されています。
この話を読んで、「エントロピー増大の法則」を思い出しました。
エントロピーとは何か?
http://homepage3.nifty.com/rikei-index01/kagakuneturiki/entorotoha.html
人間社会の仕組みも、物理学と通じるようなところがあると感じ、とても興味深かったです。
佐々木俊尚さんについては、かなり以前ですが、講演を拝聴したことがあります。その時から、的確な現状分析、今後の予測、その話術に惹きつけられました。
<場>による仕組みで運営されていく世の中に、どのように向き合っていけば良いのかも説明されています。その内容は、是非ご自分で「レイヤー化する世界」をご覧いただくことを奨めます。
私が同感できた他の方の「レイヤー化する世界」に対する書評
この本の中で語られているのは、現在の「国民国家」と「民主主義」で成り立っている世の中の仕組み自体が変わっていく、ということ。「国民国家」と「民主主義」に取って代わっていくものが、Apple、Google、Facebookなどの超国籍企業が作り出す<場>というものになります。<場>という言葉は、佐々木俊尚さんが考え出したものですが、その内容をよく表している言葉だと思います。
<場>による仕組みの変革
<場>による仕組みの変革が始まったのは、音楽業界からです。Appleが、iTunes、iPodを使って、配信、売買できる仕組みを作りました。iTunes、iPodが、<場>になります。それまでの音楽業界では、音楽制作会社に意向に沿った音楽が採算を計算の上で制作され、CD販売店で販売がされていました。その仕組みは、iTunes、iPodという<場>に取って替わられました。音楽を作りたい人が作った音楽を、その<場>を使って、自由に配信、売買することができます。
音楽業界に起きたことが、出版業界でも起こり、今後、すべての業界で起きて行くことになります。本書の中では、行政サービスも、その<場>に置き換わっていく業界の事例として説明されています。例えば、道路や橋、公共施設の保守管理は、行政サービスとして管理されています。保守のためには、何かしらの人が、定期的に道路や橋、公共施設の状況を見てまわる必要があります。
そういった保守が必要な箇所については、保守管理のスマホアプリを作成・配布して、各市民が、自分の見つけた保守が必要な箇所を、そのアプリを通して、位置情報・写真を行政に報告をします。その保守が必要な箇所の情報は、そのアプリによって共有され、保守作業のフローへ繋がって行きます。
保守管理のスマホアプリ自体も行政が用意する必要はなく、行政の業務フローを運営する<場>(何かしらの会社が提供するオープンな場所)さえ提供されていれば、そこで便利なアプリが生まれてきます。行政はそのアプリ群の中から、有用なものを選びさえすれば良いのです。
世界の富は均一化されていく
<場>による仕組みは、世界の富の不均衡を均一なものにしていきます。先進国は、今よりは貧しくなります。発展途上国は、今より豊かになっていきます。例えば、サイト制作を発注する場面で考えてみます。今では、全世界のクリエイター、プログラマーに仕事を発注することが可能です。先進国のクリエイターと、発展途上国のクリエイターでは、同じスキルの方であれば、発展途上国の方の方が制作費用は安いと考えられます。そうであれば、発展途上国のクリエイターに仕事が流れるのは自然な流れです。こういった内容が、分かりやすく説明されています。
この話を読んで、「エントロピー増大の法則」を思い出しました。
エントロピーとは何か?
http://homepage3.nifty.com/rikei-index01/kagakuneturiki/entorotoha.html
人間社会の仕組みも、物理学と通じるようなところがあると感じ、とても興味深かったです。
佐々木俊尚さんについては、かなり以前ですが、講演を拝聴したことがあります。その時から、的確な現状分析、今後の予測、その話術に惹きつけられました。
<場>による仕組みで運営されていく世の中に、どのように向き合っていけば良いのかも説明されています。その内容は、是非ご自分で「レイヤー化する世界」をご覧いただくことを奨めます。
私が同感できた他の方の「レイヤー化する世界」に対する書評
書籍の中で、参考資料として挙げられていた情報の一つ
エリック・ブリニョルフソン「成長のための鍵は何?機械との競争」
2013/09/11
2013/09/09
2013/09/07
「集合知プログラミング」del.icio.usのリンクを推薦するシステムを作るのサンプルコードを試してみました。
「集合知プログラミング」では、インターネットを通じて集合知のモトとなるデータを集め、取り扱う方法が説明されています。
その2章「推薦を行う」にて「del.icio.usのリンクを推薦するシステム」の説明があります。delicious(デリーシャス)とは、ソーシャルブックマークサイトです。簡単に言えば、お気に入りのサイトを公開して共有するサービスです。
del.icio.us
https://delicious.com/
沢山の人が、お気に入りのブックマークを登録しています。登録されているブックマークを分析して、ある人と同じ嗜好を持つ人を探しだすプログラムを作ります。さらに、その人が好みそうなリンクを推薦するシステムを作ります。
「集合知プログラミング」では、Pythonのコードでの説明がされています。この「del.icio.usのリンクを推薦するシステム」では、Pythonのモジュール「pydelicious」を使います。
検証は、Mac OS X 10.7.5のPython 2.7.1で行います。
「pydelicious」のバージョンは、「pydelicious-0.6」を使用します。
下記のソースは、del.icio.usのデータセットを作る処理本体の deliciousrec.py の内容です。
書籍の記載のままでは、動作しない箇所があります。1行目「import time」の記載不足、8行目「for p2 in get_urlposts(p1['href']):」24行目「url=post['href']」は、del.icio.usのAPIの仕様変更により、「for p2 in get_urlposts(p1['url']):」「url=post['url']」への修正が必要です。
その2章「推薦を行う」にて「del.icio.usのリンクを推薦するシステム」の説明があります。delicious(デリーシャス)とは、ソーシャルブックマークサイトです。簡単に言えば、お気に入りのサイトを公開して共有するサービスです。
del.icio.us
https://delicious.com/
沢山の人が、お気に入りのブックマークを登録しています。登録されているブックマークを分析して、ある人と同じ嗜好を持つ人を探しだすプログラムを作ります。さらに、その人が好みそうなリンクを推薦するシステムを作ります。
「集合知プログラミング」では、Pythonのコードでの説明がされています。この「del.icio.usのリンクを推薦するシステム」では、Pythonのモジュール「pydelicious」を使います。
検証は、Mac OS X 10.7.5のPython 2.7.1で行います。
「pydelicious」のバージョンは、「pydelicious-0.6」を使用します。
下記のソースは、del.icio.usのデータセットを作る処理本体の deliciousrec.py の内容です。
書籍の記載のままでは、動作しない箇所があります。1行目「import time」の記載不足、8行目「for p2 in get_urlposts(p1['href']):」24行目「url=post['href']」は、del.icio.usのAPIの仕様変更により、「for p2 in get_urlposts(p1['url']):」「url=post['url']」への修正が必要です。
import time from pydelicious import get_popular,get_userposts,get_urlposts def initializeUserDict(tag,count=5): user_dict={} for p1 in get_popular(tag=tag)[0:count]: for p2 in get_urlposts(p1['url']): user=p2['user'] user_dict[user]={} return user_dict def fillItems(user_dict): all_items={} for user in user_dict: for i in range(3): try: posts=get_userposts(user) break except: print "Failed user "+user+", retrying" time.sleep(4) for post in posts: url=post['url'] user_dict[user][url]=1.0 all_items[url]=1 for ratings in user_dict.values(): for item in all_items: if item not in ratings: ratings[item]=0.0あと、推薦をするプログラム recommendations.py が必要です。
from math import sqrt # Returns a distance-based similarity score for person1 and person2 def sim_distance(prefs,person1,person2): # Get the list of shared_items si={} for item in prefs[person1]: if item in prefs[person2]: si[item]=1 # if they have no ratings in common, return 0 if len(si)==0: return 0 # Add up the squares of all the differences sum_of_squares=sum([pow(prefs[person1][item]-prefs[person2][item],2) for item in prefs[person1] if item in prefs[person2]]) return 1/(1+sum_of_squares) # Returns the Pearson correlation coefficient for p1 and p2 def sim_pearson(prefs,p1,p2): # Get the list of mutually rated items si={} for item in prefs[p1]: if item in prefs[p2]: si[item]=1 # if they are no ratings in common, return 0 if len(si)==0: return 0 # Sum calculations n=len(si) # Sums of all the preferences sum1=sum([prefs[p1][it] for it in si]) sum2=sum([prefs[p2][it] for it in si]) # Sums of the squares sum1Sq=sum([pow(prefs[p1][it],2) for it in si]) sum2Sq=sum([pow(prefs[p2][it],2) for it in si]) # Sum of the products pSum=sum([prefs[p1][it]*prefs[p2][it] for it in si]) # Calculate r (Pearson score) num=pSum-(sum1*sum2/n) den=sqrt((sum1Sq-pow(sum1,2)/n)*(sum2Sq-pow(sum2,2)/n)) if den==0: return 0 r=num/den return r # Returns the best matches for person from the prefs dictionary. # Number of results and similarity function are optional params. def topMatches(prefs,person,n=5,similarity=sim_pearson): scores=[(similarity(prefs,person,other),other) for other in prefs if other!=person] scores.sort() scores.reverse() return scores[0:n] # Gets recommendations for a person by using a weighted average # of every other user's rankings def getRecommendations(prefs,person,similarity=sim_pearson): totals={} simSums={} for other in prefs: # don't compare me to myself if other==person: continue sim=similarity(prefs,person,other) # ignore scores of zero or lower if sim<=0: continue for item in prefs[other]: # only score movies I haven't seen yet if item not in prefs[person] or prefs[person][item]==0: # Similarity * Score totals.setdefault(item,0) totals[item]+=prefs[other][item]*sim # Sum of similarities simSums.setdefault(item,0) simSums[item]+=sim # Create the normalized list rankings=[(total/simSums[item],item) for item,total in totals.items()] # Return the sorted list rankings.sort() rankings.reverse() return rankings def transformPrefs(prefs): result={} for person in prefs: for item in prefs[person]: result.setdefault(item,{}) # Flip item and person result[item][person]=prefs[person][item] return result def calculateSimilarItems(prefs,n=10): # Create a dictionary of items showing which other items they # are most similar to. result={} # Invert the preference matrix to be item-centric itemPrefs=transformPrefs(prefs) c=0 for item in itemPrefs: # Status updates for large datasets c+=1 if c%100==0: print "%d / %d" % (c,len(itemPrefs)) # Find the most similar items to this one scores=topMatches(itemPrefs,item,n=n,similarity=sim_distance) result[item]=scores return result def getRecommendedItems(prefs,itemMatch,user): userRatings=prefs[user] scores={} totalSim={} # Loop over items rated by this user for (item,rating) in userRatings.items( ): # Loop over items similar to this one for (similarity,item2) in itemMatch[item]: # Ignore if this user has already rated this item if item2 in userRatings: continue # Weighted sum of rating times similarity scores.setdefault(item2,0) scores[item2]+=similarity*rating # Sum of all the similarities totalSim.setdefault(item2,0) totalSim[item2]+=similarity # Divide each total score by total weighting to get an average rankings=[(score/totalSim[item],item) for item,score in scores.items( )] # Return the rankings from highest to lowest rankings.sort( ) rankings.reverse( ) return rankings def loadMovieLens(path='/data/movielens'): # Get movie titles movies={} for line in open(path+'/u.item'): (id,title)=line.split('|')[0:2] movies[id]=title # Load data prefs={} for line in open(path+'/u.data'): (user,movieid,rating,ts)=line.split('\t') prefs.setdefault(user,{}) prefs[user][movies[movieid]]=float(rating) return prefs用意ができたので、Pythonのインタラクティブシェルで動作を確認します。
#必要なモジュールの読み込み >>> import recommendations >>> from deliciousrec import * >>> import random # 「design」というタグを付けているユーザーの取得 >>> delusers=initializeUserDict('design') # 取得した各ユーザーのリンクを取得 >>> fillItems(delusers) # 取得したユーザー達の中からランダムに1人を取得 >>> user=delusers.keys()[random.randint(0,len(delusers)-1)] # このユーザーに似ているユーザーをリストアップ >>> recommendations.topMatches(delusers,user) [ (0.5344262295081967, u'thehrisworld'), (-0.16393442622950818, u'yaax'), (-0.16393442622950818, u'tchiule'), (-0.16393442622950818, u'sneurgaonkar'), (-0.16393442622950818, u'sethkontny') ] # このユーザーが好みそうなリンクを推薦 >>> recommendations.getRecommendations(delusers,user)[0:10] [ (1.0, u'http://www.youtube.com/watch?v=C5tOEBmBAHg'), (1.0, u'http://www.lifeisstory.com/'), (1.0, u'http://techcrunch.com/2013/09/06/what-to-do-if-you-get-a-troll-demand/'), (1.0, u'http://on.mash.to/1dJDvYC'), (0.0, u'https://www.facebook.com/sethkontny/posts/10201536626993865'), (0.0, u'https://communities.vmware.com/community/vmtn/vcloud-automation-center'), (0.0, u'http://www.yorkdispatch.com/breaking/ci_24031648/more-sleep-better-kids-but-too-much-trouble'), (0.0, u'http://www.wpcentral.com/geophoto-windows-phone-8-helping-you-remember-where-you-took-photo'), (0.0, u'http://www.wired.com/wiredscience/2013/09/wired-space-photo-of-the-day-saturn-storm-circles-planet/'), (0.0, u'http://www.wired.com/wiredscience/2013/09/what-exactly-is-astrovirology/') ]
ラベル:
Python
登録:
投稿 (Atom)
人気の投稿 (過去 30 日間)
-
昨日申し込みをしていた Evernote API Keyが送られてきていました。 早速、Pythonのサンプルコードに「consumer key」「consumer secret」を設定して試してみました。evernote-api-1.17/lib/python の階層...
-
MacBook Airを仕事でプロジェクターに接続ことがあり、どのようにすれば、切り替えが出来るのかを調べました。忘れやすいので、備忘録として記録。 Windowsノートパソコンにプロジェクターを繋げて、プロジェクターに出力を切り替える時には、ファンクションキ...
-
本日 2010/11/07 山陽新幹線ふれあいデーに行ってきました。岡山新幹線車両基地が一般公開されました。岡山新幹線車両基地は、博多総合車両所 岡山支所というのが正式な名称のようです。いつも外から新幹線を眺めていましたが、車両基地に入るのは初めてでした。 朝、大安寺駅に...
-
MacBook Airでプロジェクターに接続をして、出力を切り替える方法 に続いて、iPad miniをプロジェクターに接続する方法を記録しておきます。 iPad miniでは、外部機器との接続は、Lightningコネクタで行います。Lightningコネクタに接続で...
-
Google Map API helper app for Djangoを利用してみたかったのですが、helperの使い方が良く分かっていないようです。Djangoの仕組みの細部まで理解するには、「Djangoドキュメント」が大変分かりやすいのですが、それでも、何かアプリを...
-
前回の 『「放射線で遺伝子が傷つく理由」を子どもに分かりやすく説明するには その1』 の続き 遺伝子(DNA)の詳細をみていきます。遺伝子を拡大して確認すると、下記の図のような構造になっています。 遺伝子(DNA)とは、生物の遺伝情報を持っています。人の細...
-
2015/08/25に、備北オートビレッジにキャンプに行ってきました。備北オートビレッジには、岡山市から、高速道路の岡山道、中国縦貫道を通って、ゆっくり休憩を取りながらも、2時間ちょっとで到着します。 備北オートビレッジ http://www.bihoku-park.go...
-
前回の投稿の流れで、android-scripting「SL4A」をインストールしてみました。 android-scripting SL4A のサイトに表示されているQRコードをHT-03Aのバーコードスキャナーで読み込んで、「sl4a_r3.apk」をインストー...
-
App Inventor for Android のチュートリアルをやってみました。「Quiz Me (クイズのアプリ)」 Quiz Me 大リーグに関するトリビアに答えるクイズアプリを作成するチュートリアルです。答えを入力して、「Submit」を押すと、「corre...
-
Bloggerでブログを書いてきましたが、主に書くブログを静的サイトジャネレーターでの運用に変更をします。 Bloggerも使いやすいブログなのですが、管理画面にアクセスして、一記事ごと書く運用が、億劫になってきました。静的サイトジャネレーターで運用をすれば、すべてのページ...