オリンピックに合わせて?サマータイム導入という話が持ち上がりましたが、無事に収束して何よりです。
ところで、もしサマータイムが実施されていたら、時間を扱うプログラムはどのような影響があるのでしょうか?
業務でAjax通信に初めて触れる機会がありました。
今回はWeb開発初心者ひさぽん(htmlもjavascriptもよくわからない)がいきなり挫折しそうになったところを、
同じような初心者のために忘備録として残します。
まず、AjaxとかJSONって何???ってところから始まると思いますが、
それはググってもらうとして、内容を大雑把に理解したところで、
実際に試してみる段階となります。
Hyper-Vを稼働させて便利やんって暫く使っていたのですが、以前に利用していたVirtualBoxの仮想サーバーを使わなければならないことがありました。
そこで、VirtualBoxを稼働させて、仮想サーバを起動しようとすると、
「Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT)」
ってエラーが出て起動できない事象になりました。
そこで、調べてみたところ、Microsoft社によると、どうやらHyper-VとVirtualBoxは同時起動できないようです。
Windows上で仮想サーバを稼働させてLinuxを動かす手段は複数あるが、今回はHyper-Vを使ってみる。
Windows 10 Pro/Enterprise/Education(64bit版のみ)にHyper-Vがサポートされている。
※Homeはサポートしていないのでご注意ください。
Hyper-Vはもともとサーバ向けの仮想化プラットフォームとしてWindows Serverに対して無償で提供されてきたものだが、Windows 8から従来のVirtual PCの代わりとしてクライアントに対しても提供されるようになりました。
Hyper-Vは標準状態では無効化されているため、まず、有効化して、Linuxをインストールしていくことになる。
今回はその手順をご紹介する。
Hyper-Vは仮想化支援機能「Intel VT/AMD-V」に対応している必要がある。
また、メモリは、最低4GBが要件となっているようだ。
仮想化支援機能の有効化は手順の中で記載する。
(お知らせ)このページはブラウザから位置情報を取得する機能を埋め込んでいます。
ブラウザからポップアップで位置情報の取得を許可するかどうかの選択が表示されますが、閲覧のみの方は許可いただく必要はありません。
簡単に言うと、BIGIPだけでWEBサーバーを作ることができるなぁって話です。
DBを使うような難しいことはできませんが、ホームページ等の静的コンテンツのサイトならWEBサーバーを別途用意しなくても実現できちゃいます。
BIGIPってお高いので、小規模なシステムではあまり使われていませんが、大規模なシステムでは利用されることが多いですね。
今回は中規模のシステムで活用されているBIGIPで、余っている資源を有効に使おうって話です。
linuxサーバーに対し、リモートからのrootによるsshを抑止する方式として、pamを用いることにした。
設定自体は簡単に出来たのだが、その後cronの実行時にpamのエラーが発生し、時間が来てもジョブが実行できない。という弊害が発生した。
その際のメッセージは、こんな感じ。
固定ポートを利用するミドルウェアやアプリケーションを起動しようとすると、偶然ポートが他アプリケーションに利用されていて起動に失敗するという事象がたまに発生します。こういう問題は、Ephemeral portの範囲のポートを固定で利用している場合に多いと思います。
実際に発生したときに何のアプリケーションが利用しているのか調べる方法を記載します。
調べることができれば、そのアプリケーションを終了させることで、利用したいアプリケーションを起動させることができます。
そもそも、Ephemeral portを固定で使うことを回避すべきではあるのですが。。
D3.jsとは、JavaScriptでグラフや図などを描画するためのライブラリです。
このライブラリの機能の1つとして、地図を描画することができるため、今回はそれを使って遊んでみようと思います。
テスト業務で、日々パソコンに保存されているデータを
CSV形式のファイルにし、そのファイルをExcelで分析することになりました。
見なければならないファイルが一つや二つという問題ではなく、正直煩雑さを感じるようになってしまったので
ファイルを選択し、カンマ区切りで列を分けるところまでだけでも
マクロを使って短縮できないものか
と思い立ちました。
Excelでマクロを使うために、手始めに
Excelで「開発」タブを出現させる必要がありますが
それは既に当ブログ内で紹介済みなので割愛させていただきます。
早速調べていくと
https://qiita.com/ktyubeshi/items/199fd3efcf48e67645f1
にて、このようなコードを発見してしまいました。
_______________________________
Option Explicit
Sub ReadTabDelimitedTextFile()
'タブ区切りファイルを全て文字列として読み込む
Dim FileName As String
Dim i As Long
Dim Cnt As Long
Dim Buf As Variant
Dim FileNo As Integer
Dim SplitString As Variant
'ファイルダイアログを表示・・・①
FileName = Application.GetOpenFilename("テキストファイル,*.txt")
If FileName <> "False" Then
'全セル選択して書式を文字列にセットする
Cells.Select
Selection.NumberFormatLocal = "@"
Cells(1, 1).Select
'空いているファイル番号を取得
FileNo = FreeFile()
Buf = Space(FileLen(FileName))
'ファイルを開いてbufに1行読み込み
' → タブで配列に分割
' → セルに書き出し
Open FileName For Input As #FileNo
Do Until EOF(FileNo)
Line Input #FileNo, Buf
Cnt = Cnt + 1
‘・・・②
SplitString = Split(Buf, vbTab)
For i = 0 To UBound(SplitString)
Cells(Cnt, i + 1) = SplitString(i)
Next i
Loop
Close #FileNo
'そのままでは数式等が使えなくなるため、書式を標準に戻す
Cells.Select
Selection.NumberFormatLocal = "G/標準"
Cells(1, 1).Select
Else
'ファイルダイアログをキャンセルされた場合何もしない
End If
End Sub
_______________________________
おっ、これを使えば万事解決じゃな!
ありがたくこれを使わせてもらうとしよう!
???「おい、お前は裏取りをしないのか?まだまだ半人前だな、おい!」
そんな天の声が聞こえたような気がしますが
とりあえず、このまま使ってみましょう。
HTMLで、外部のテキストファイルを読み込みたい時…
例えば以前に書いたエントリ(JavaScriptによるDB「AlaSQL」)のように、SQLをJavaScriptで実行する場合など、SQLをテキストファイルで置いておけば取り回しが効きやすいのではないかと考えました。
ファイルを読み込むといってパッと思いつくのは、HTML5で追加されたFILEAPIだと思います。
FILEAPIの使い方を調べると、FILEタグからファイル選択ダイアログを立ち上げ、選択したファイルを読み込む、という手順が紹介されている場合が標準的かと思います。
ただ、このファイル選択を行う方法だと、実行時に操作者が読み込むファイルを適宜指定してやる必要があるため、要件によっては適さない場合があるかと思います。
今回の私の場合などがその例で、画面表示などのイベント発生時にDBから自動でデータを読み込みたいと考えていました。
というところで、今回私が目指したのは、「画面表示時に自動で読み込まれる」「ローカルで実行する」という二つの要件を満たすことでした。
最初はonLoadイベントをこねくり回したり、色々と試していた…のですが、
ところがここで一つ壁に当たってしまいました。セキュリティ上の制約です。
自動で読み込ませるにはファイルの場所を指定してやる必要がありますが、ブラウザのセキュリティ制約により任意のローカルパスのファイルの読み込みを行おうとしてもブロックされてしまうようでした。
たしかに何でもかんでも自動で読み込んでしまえるというのは、非常にマズいというのは想像がつきます。
試行錯誤した結果、読み込む対象のファイルを実行するHTMLと同フォルダ、または下層のフォルダ配下に配置することによって、セキュリティ制約を回避することが出来る、ということが分かりました。(IE11、Edge、FireFox57.0で試した限りは可能でしたが、ブラウザに依存するのではないかと思われます。)
自分が実現したいことは出来るので、この方法を採用することにしました。
そして最終的に、
<object id="sqltext" data="sql.txt" type="text/plain" style="display:none"></object>
<script>
var obj = document.getElementById("sqltext");
obj.onload = function() {
var loadtext = obj.contentDocument.documentElement.textContent;
alert(loadtext);
}
</script>
このように実は読み込むだけならobjectでアクセスできてしまうという事が分かってしまいました。
セキュリティの制限に苦しめられた一方で、またJavaScriptの別種のおおらかさを感じる一件でした。
Excelには便利なオートフィルター機能がついてるが、これって縦方向しかイメージがない。
今回、横方向でフィルターしたいことがあったので、調べてみた。
とりあえず、知らないだけで実はそのような機能があるのかと思い、「エクセル 横 フィルター」でググる。
...
......
なかった。
エクセルには、横方向にフィルターする機能はない。
ではどうするのか。
サンプルを使ってみていく。