先日1,2年生が作業で困っていたので、闘ってみました。 PC起動時に起こる無限ループは今まで何度も困ってきたので、この際解決してしまおうという事です。 そもそも、無限ループが起こってしまう現象は、今までの経験上2つに限られています。
- BIOSを読み込んですぐ後に再起動→無限ループ。
- OSのロゴが出ている間(出た後)に再起動→無限ループ。
好きなことを、好きなようにまとめるブログ。
iPhoneやらVBSやらVista/XPやら。
ちょっとやって飽きてしまうのが難点。
ホーム > アーカイブ > 11月 2009
先日1,2年生が作業で困っていたので、闘ってみました。 PC起動時に起こる無限ループは今まで何度も困ってきたので、この際解決してしまおうという事です。 そもそも、無限ループが起こってしまう現象は、今までの経験上2つに限られています。
思いついて調べるとiPhoneでもブックマークレットっていけるんですね。 よく考えてみれば、JavaScriptを実行するだけだからいけるのか。 ということで、 iPhoneのSafariで表示しているページ内を検索するブックマークレットを作成しました。 iPhoneのSafariには検索がないので、調べ物する時には困るんですよね。 現物は以下から。 iPhone用ブックマークレット ほるめすメモ帳 ソースよりも、利用方法から。 上のページにアクセスし、「ページ内検索ブックマークレット」下のソースをコピーします。 コピーしただけではブックマークに追加されないので、 適当にページをブックマークに追加したのち、コピーしたソースに書き換えます。 ページ内検索したいページに移動し、さっき作ったブックマークを選択すると、 入力ダイアログが表示されるので、検索したい文字列を入力してOK。 検索し存在すると、その文字列が黄色で強調され、件数とともに終了します。 見やすいソースはこちら。javascript: var t=window.prompt('検索する文字列を入力して下さい。',''); if(t!=null&&t!=''){ var re=new RegExp(t,'ig'); var b=document.body.innerHTML; b=b.replace(re,'<span id=\'sebml\' name=\'sebml\' style=\'color:#000;background-color:#FF0;\'>'+t+'</span>'); document.body.innerHTML=b; var sebml=document.getElementsByName('sebml'); if(sebml.length==0){ alert('一致する文字列はありません。'); } else{ alert(sebml.length+'件検索しました。'); } } void(0);あ、ちなみにiPhone以外でも使用出来ます。 ブラウザに標準であるので使わないと思いますが。
Excelはシートが複数枚作れるので、かなりの量のデータを区別して入れておくことが出来ますが、 あまりにもシートが多くなると、スクロールバーに隠れてしまい選択しづらくなります。 そういった場合に、非常な有効な方法が2つあります。 1つは、シートを一覧で表示し選択する方法です。 シートが表示されている左側の「見出しスクロールバー」を右クリックすると、シートの名前が一覧で表示されます。 この状態で表示したいシートを選択すると、そのシートへ移動します。 この方法では、シートを直接指定選択するので、1クリックで開くことが出来ますが、 シート名のみの表示なので、きちんとシート名を決めていないと逆に探しにくい事になります。 もう1つは、キーボードショートカットを使用する方法です。 通常にシートを開いている状態で、 左のシートに移動する場合には「Ctrl + PageUp」を、 右のシートに移動する場合には「Ctrl + PageDown」を入力します。 この方法では、現在選択しているシートから左右に移動するので、 シートの内容を参照しながらシート移動することが出来ますが、 「このシートに切り替えたい」という場合には、要らないシートを表示し時間が無駄になります。 入力後にマウスに手を動かすのが面倒だったりすることもあるので、 要はマウスとショートカットを使い回せれば良いと思います。
最近プログラム系の投稿が出来ないで困ってます。 ただひたすらにすることが詰まっている感じであたふたしてます。 授業の課題やソフトウェアアップロード関係、学校の卒業進級制作、 会社の研修の勉強もしないといけないし、車の免許合宿の用意もぼちぼちと。 さらに先日のスポーツ交流会で筋肉痛、結構ハードですね。 ひとつひとつが片付いたら、何か開発したいなぁ。 まだAnalytics Data Export APIも中途半端にしかしてないですし。 で。 来週に会社の研修があるので、横浜へ行っちゃうのですが、 その前に交通費の内訳を会社へ連絡しました。 その内訳の中には当然新幹線も含まれ、 それは「学割等を用いて出来る限り安く抑える」ものなのです。 数回新幹線に乗って、東京or新横浜まで行ったことがありますが、 実はきちんと「安く抑える」計算をしたことがなかったので、改めて調べることにしました。 学割に関しては、JR西日本のサイトに書かれていました。 JRおでかけネット - きっぷについて - 2.乗車券 ここに書かれている通り、学割を利用した際の料金は「2割引」となります(端数切り捨て)。 これを踏まえて、Googleマップで「新大阪-新横浜」間の料金を調べます。 ここでよく調べていなかった弊害発生。 時間重視で購入していたので、いつも「のぞみ」を乗っていたらしく、 「新大阪-新横浜」間では300円安い「ひかり」の存在を知りませんでした。 なんてこった。 安くするためには「ひかり」を利用することが必須条件のようです。 この時点で13,230円、往復必要なので26,460円。 さらにそこから学割2割を引くと、21,160円(端数切り捨て)となります。 が。 ここからが本題です。 すでに上に挙げた金額を含めた交通費内訳を、会社へ連絡していたものの、 今日窓口で買った金額は「23,180円」だったのです。 なぜ計算した金額よりも高かったのか。 それは、「乗車券」と「特別料金」が関係します。 これは同じ新幹線をYahoo!路線情報で表示した状態です。 元々新幹線の料金は「乗車券」分となり、その場合は自由席のみです。 そこに「特別料金」を上乗せすることで、「指定席」に座ることが出来ます。 難しいことに、その「特別料金」は学割適用外のようなのです。 結果として、今回の場合の計算式はこのようになります。 ( 8,190 * 2 / 0.8 ) + 5,040 * 2 = 23,180 (端数切り捨て) まったく、ややこしいなぁ。 というか、今までをきちんと見返せば分かったはずなんですが・・・。
コンピュータの学校なので、たまには激しく運動した方がいいことと、 同じ学校内に「日本語科」という留学生の専門科あるので、彼らとの交流を図るためにも、 スポーツ交流会という行事が年に1回程度あります。 今日(投稿を書いた時点で昨日?)はそのスポーツ交流会だったわけです。 綱引き用の綱で、死体の後?のようなものを作りました。 どう考えても競技ではないです、いい年して何してんでしょう。 でもまぁ、学生生活ラストの運動になるはずなので、これぐらいのおふざけも良いでしょう。 ちなみに、かなり筋肉がやばいです。 特に、大縄飛びの持ち手をした時の振りの影響で、腰が大変な事になっています。 明日歩ければいいんですが。
このところすることが多く、3日間も部屋にいると気が滅入ってしまうので、 気晴らしも兼ねて友達とIKEA鶴浜へ行くことにしました。 IKEAは家具だけでなく、雑貨や多少の食料品、フードコートなどもある、なんかこう大きいショップです。 IKEA 鶴浜 | ストア情報 IKEAでモノを購入した場合、この20円の紙袋か99円の青色のビニールバッグを購入する必要があります。 商品を自分で袋に入れるので、持参したエコバッグでもいけるような気がします。 本棚を買いに行ったつもりが、いつの間にか枕に変わっていました。 GOSA(枕)のHASSELという形式?スタイル?のものです。 うつぶせ/横向き用の枕であることが、枕をみてすぐ分かるので探しやすいですね。 1,490円で買いましたが、オンラインショップでは3,129円もします。 GOSA HASSEL 枕 横向き/仰向け用 - イケア 通販|IKEA ONLINE 100円のホットドッグがありました。 上に乗ってるピクルスとオニオンフライ、ケチャップとマスタードはかけ放題です。 他にも、70円のドリンクバーや100円のソフトクリームも。 レジを抜けてすぐにあるので、「買って一休み」という感覚をかなり掴めてます。すごい。 ホントはもっとIKEAっぽい画像も撮っていたはずなのですが、保存されておらず。 また来ますね。 店内を2時間半ほども歩き回ってしまいました。 IKEAは、家具好き/雑貨好きには堪らないですね。
iPhone YouTube動画再生テスト この投稿を書いた際には再生できていたのですが、 今日ふと見てみると再生できないようになっていました。 前回のGoogleのCMも、 YouTube動画テストページの動画も無理です。 自前の動画に関しては、動画の「編集と設定」の「シンジケーション」で、 「この動画を携帯電話とテレビで利用できるようにする。」となっているので、再生できるはずなのですが・・・。 iPhone用に変換して再生しているはずなので、 その変換が行えないほどの仕様変更でも行われているのでしょうか?
今日初めて観ました。 テレビでいきなり検索フォームが表示されたので、びっくりしました。 YouTube - Google 検索ストーリー:おとなになったら インターネットを利用する人はすでに知られているはずだし、 利用しない人には何のことか分からないだろうし、誰をターゲットにしてるんでしょう?
たまには趣味の話でも。 最近本屋で偶然見付けて買ってしまったのが、テストするモノ批評誌「MONOQLO」です。 この本の何が楽しいかというと、躊躇無くメーカーをバッサバッサ斬るところですね。 「この商品が売れてる」「今これが人気」という外側視点だけでなく、 実際に商品を使用・検証し、「この商品はこれよりもどこが良い」を、 明確に挙げた上でランク付けされるので、読んでいて気持ちいいです。 そりゃあ、一から十まで全部を信じるわけでは無いですが、 「良いモノを買う」ための一つの指標にはなりますね。 こういった本を参考にすることは、それこそ「調べてから買う」という為の一段階と捉えてます。 だから余計に信じてしまうのですけどね。
横幅が狭いのは、始めた頃から悩んでいたのですが、 昨日先生に「狭くね?」と言われたので、思い切って広げました。 とは言っても、変えること自体は少なく、全体の横幅の値と背景ぐらいです。 値は難なく変更できたのですが、画像について困ったのでメモ。 背景に使われている画像は透過GIFで、 ダウンロードした画像を引き延ばして用意しました。 その画像は、ブログをきちんと表示するために「いつでも問題無く取れる場所」に置く必要があったので、 Picasaに新しくアルバムを作成し入れることに。 ブラウザから普通にアップロードすると、GIFからJPGに変換されてしまいました。 これじゃ背景部分が真っ黒になってしまうので使用出来ません。 どうにかPicasaで出来ないものかと調べてみると、以下の様なサイトで解決法が書かれていました。 つまりBloggerの投稿ページからなら、透過画像(GIT,PNG)はその透過画像のままアップロード出来るという事です。 Picasaにアップロードする際の隙間を突いているような感じですが、利用できるものはしちゃいましよう。 これで横幅が広がりました。投稿の有効範囲は600pxほどです。 画像も文章も大きく取れるようになったので、こう色々とやりやすいです。
iPhoneが愛用機になってから、音楽を聴くのはiTunesになりました。 その影響で再生する時にはいつもByursideというガジェットで操作しています。 iTunesの様に大きくなく、ガジェットバーに配置することでいつでも触れる上、 再生だけでなくループ設定やジャケット表示も出来るので、 全く不満は無いです、凄い便利。 で。 ふと考えてみると、ガジェットは基本XML+HTML+JSのはずなので、 結果iTunesはJSで触れるはずですよね。 ということで調べてみると、やはりJSで触れることが分かりました。 情報は少ないものの、十二分にデータ取得や再生処理が行えるようです。 以下が参考になりそうなサイト様です(Java含む)。JSで触れると書きましたが、「Wscript」オブジェクトからなので、 実質VBScriptで使用することが出来ます。 ただ単に再生/一時停止するだけなら、以下のソースの様になります。Dim iTunes Set iTunes = WScript.CreateObject("iTunes.Application") iTunes.PlayPause()こんなに簡単に出来るんですね。
Googleの認証サーバが返答しないようですでも書いていたので、 事後報告のようなカタチになりましたが、 ひとまず最低限したいことが出来たのでまとめます。 「Analytics Data Export API」とは、Google Code Labsの一つで、 Google AnalyticsというWeb解析サービスから、 自分のサイトの解析情報を引っ張ってくることが出来ます。 「Analytics Data Export API」を利用して、 実際に作成したページはこちら。 Analytics Data Export API でデータ表示 そもそも、Analyticsを利用していない人には関係のないページです。 ページを開くとこんな感じ。 まずは、Googleのアカウントへログインし、 「このページにGoogleアカウントの情報を渡しても良い」というような、 「認証」が必要になります。 そのまま「Google Analyticsへ認証する」を選択。 ログインが済んでいない場合は、ログイン画面が表示されます。 その後に、先ほどの「認証」が表示され、「アクセスを許可」します。 「認証」が終わると、元のページへ戻ります。 Analyticsから情報を取得するには、そのサイトの「テーブルID」が必要です。 色々と表示されますが、「アカウントデータ取得」をクリックし、 Analyticsに登録しているサイトの一覧を表示します。 ここでエラーが発生する場合は、Analyticsからサイト一覧が取得出来ない、 すなわちAnalyticsを利用していないアカウントです。 サイト一覧を取得出来た場合は、テーブルIDをクリックすることで、 上の欄にテーブルIDがコピーされます。 あとは、それぞれの「レポートデータ取得」をクリックすることで、 説明にあるデータを一覧で表示します。 本当は、 「Visualization API」のTableも組み合わせて表示しようと思ったのですが、 Firefoxで表示出来て、それ以外のブラウザではエラーが発生するという、 不思議な現象に陥ったので、一度ロールバックしました。 また、「Visualization API」の色々なチャートを利用すれば、 見やすく表示出来そうなので、触ってみたいですね。 ちなみに、 Data Feed Query Explorer - Google Analytics というモノが存在します。 認証した後、表示したい対象とテーブルIDを入れると、 同じようにデータを表示することが出来ます。 それじゃ、作る意味なくなっちゃうなぁ。
※追記:2009/11/13の朝10時の時点で復活していました。 昨日から「Google Analytics Data Export API」を利用して、 サイトの解析情報を取得しようとしています。 Analytics Data Export API でデータ表示 今日の昼頃も認証を済ませてデータ表示出来ていたのですが、 ついさっき実行してみると、正常に動きませんでした。 ひとまずよく分からないので、Firefoxの「Firebug」を利用して、 接続情報を覗いて見ると、以下のようなエラーが発生していました。 「Could not sign in, invalid response from server. Please try again.」 エラー元はこの行。 「Ye[t].Ps=function(a,d,e) {if(!e||!e[Za]||...][Ja](d,""),h=a[Ja](d,"");return e==h};\n」 エラーを読む分には、どうやらサーバからの返答が無いみたいです。 さっきまでは動いていたのですから、本当にサーバ側の問題だと思いたいですね。
今日初めて知りました。 Googleってどこまで成長したら尽きるんだろうと思います。 Google Code Labs - Google Code というか、使用していたBloggerAPIはLabsの一員なので、 まだまだ成長する可能性を残しているってことなのかー。 って、クーポンフィードってなんなの? デベロッパー ガイド - Google AJAX API - Google Code 「Google.load()」時のオプションが書かれていますね。 なるほど、まとめてロードも出来るみたい。 サイト ディレクトリ - Google Code ここでも一覧で見ることが出来ます。
ついこのあいだ、「Windows Live Messenger」でログインしようとすると、 「最新版へアップデートしないと使えませんよ」と、 ほぼ強制的にアップデートさせられてしまいました。 まぁそりゃ、前からアップデート断ってましたけど、そりゃ無いですよ。 で。 デスクトップ右クリック→新規作成しようとすると、 「Windows Live Call」というのが追加されていました。 こういう新規作成を作られても、ほとんどのユーザは使用しないはずなのに、 どうして勝手に追加するんだろうなぁ。 とにかく不要なので、表示しないようにしておきます。 Vistaで右クリックメニュー操作Vol.1の時と同じように、 レジストリを直接書き換えます。 「Windows Live Call」の場合は以下のキーになります。 「HKEY_CLASSES_ROOT\.wlcshrtctv2\LiveCall\ShellNew」 何かあった時に戻せるように、レジストリをエクスポートしておき、 「ShellNew_old」などにリネームしておきます。 その後新規作成を表示し、 「Windows Live Call」が表示されていなければ完了です。
これもまた、学校の課題の中で使用するソースですが、 本来とはまた違う数値チェックになります。 そもそも「IsNumeric」や「TryParse」という存在を、 昨日に初めて知ったので、当然使用していませんでした。 個人としては、ずっとこのチェックを使ってきたので、 まぁいいかなぁという感じです。' ******************************* ' TextBox1 の中身の数値チェック ' + 4桁まで頭に0を付ける ' ******************************* Try ' TextBox1の中身 Dim sData As String = Me.TextBox1.Text ' Integerへ変換 Dim iData As Integer = Integer.Parse(sData) Dim iLength As Integer = iData.ToString.Length ' 4桁制限 If iLength > 4 Then MsgBox("4文字以内で入力して下さい") Me.TextBox1.Text = "" Me.TextBox1.Focus() Exit Sub End If ' 不足分"0"作成 sData = "" For i As Integer = iLength To 3 sData += "0" Next ' TextBox1へ戻す Me.TextBox1.Text = sData & iData.ToString ' 数値以外 Catch ex As Exception MsgBox("数値以外です") Me.TextBox1.Text = "" Me.TextBox1.Focus() End TryTry内で「Integer.Parse」を行い、 「変換できれば」0詰め処理を行います。 この場合「0002」など、すでに頭に0が付加されているものも数値をして認識し、 全角数字やローマ数字はエラーとなります(Integerへ変換できないため)。 頭に0詰めする理由としては、 データベースを用いてマスタメンテを作成する上で、 0を入力する手間を省くためです。 また、この処理では、 「1,525」などの区切りが行われている場合は、 当然文字として認識するので、使用出来なくなります。 その場合は、カンマの存在をチェックし、あるなら省く必要がありますね。
今日、お友達のJavascript弄りに参加している時に、 偶然の産物的に出来たのでメモ。 いやまぁ、基本的なところは友達が作りました。感謝です。 Javascriptからオブジェクトを弄る際に、 その時に必要となるID or Nameが一目でどこにいるか分かれば便利なので、 ブックマークレットとして登録しておきます。 右クリックから「お気に入りに追加」してください。 ◆ページ内<input>Name一覧表示javascript: // ページ内<input>情報取得 var ele = document.body.getElementsByTagName('input'); var res = '', // <input>の個数からナンバリング桁数取得 len = ele.length.toString().length; for (var i = 0; i < ele.length; i++) { var pz = '', // 現在の連番桁数 ilen = i.toString().length; if (len > ilen) { // 不足分0詰め処理 for (var j = ilen; j < len; j++) { pz = pz + '0'; } } // まとめて格納 res = res + pz + i + ':' + ele[i].name + '\n'; } alert(res); void(0);
あいにく、僕は「絵を描きたいけれど描けない」人種のようで、 子供の頃から美術という時間が苦痛で苦痛で堪りませんでした。 だからといって、文章で何か伝えられるのかというとそうでもなく、 つまりは「表現豊かでない」人間なんですよね。 多分練習すれば少しは改善されるのでしょうけれど、 結局のところは「努力嫌い」なんです。えぇ。 まぁそんなことは置いておいて。 今日偶然に「LogoMaker」というサイトを知ったので、 ひとまずサクッと作ってみました。 当のサイトはこちら。 FREE Logo Maker - FREE Logo Creator - FREE Online Logo Design 「DESIGN IT FOR FREE」からどうぞ。 ロードが終わるなり英単語が羅列されますが、 ロゴを作って保存するのは無料登録が必要となるので、先に行っておきます。 上部メニューの「CREATE NEW ACCOUNT」を選択し、 全項目と了承チェックをし「SAVE」で登録完了。 ここからが作り始めです。 右上「1 CHOOSE」を選択すると先ほどの羅列に戻ります。 ここでは、大量にあるロゴをカテゴリ別に選択します。 が、今回僕が欲しかったのは「メモ帳みたいなもの」だったので、 「note」で検索し選択しました。 次にレイアウト編集。 ロゴだけでなくもちろん文章も打ち込めますが、 日本語は無理なようです(そりゃそうか)。 文章を入力して、フォントを変えて、並び替えて、 サイズを変えてと色々触り、「SAVE LOGO」で保存です。 これだけで完成です。 下にロゴが一覧で表示され、選択し「FREE WEB LOGO」で、 貼り付け用コードが出力されます。 ちなみに、今回作ったのはこんな感じ。 これだけでロゴが作れるのが嬉しいなぁ。 特に、創造力が無い僕にとってはさっくり作れて非常に楽です。
普段使用しているPCのSQLServerをセットアップした後、 課題で利用している販売管理B.mdbをインポートしました。 さらに追加でテーブルが必要だったので、 追加して行も作成して、さぁ「開発するぞ!」とSQLを実行すると、 なんとも列名でエラーなんですね、えぇ。 よくテーブルを見直してみると、表を作成する時に列名を間違えていたので、 ガックリしながら列名を変更しました。 またいつか列名を変更する時が来るだろうと、今の内にメモしておきます。 SQLServerでは、DBのあらゆるものをセットアップするために、 ストアドプロシージャが用意されています。 列名を変更する際には、その中の「sp_rename」を使用します。sp_rename '社員マスタ.社員コード', 'SCODE', 'COLUMN'これは、テーブル「社員マスタ」の列「社員コード」を、 「SCODE」へ変更するSQLになります。 「sp_rename」は、列名変更に限らず、 データベース名やオブジェクト名なども変更可能です。 詳しくは、Microsoftのリファレンスを参照して下さい。 sp_rename (Transact-SQL)sp_rename '社員マスタ', 'SYAIN', 'OBJECT'