No Pain, No Gain

プログラミングで日常をちょっとだけ楽にしよう。

【Cron】ネットオウルのミニバードで定期的にPHPスクリプトを実行する方法

月額がやっすいミニバードでCronを実行する方法。 定期的にPHPスクリプトを実行させてみましょう。

続きを読む

【Node.js】JavaScriptをコマンドプロンプトから実行する方法

最近JavaScript を書くことが多い。そうすると何でもかんでもJavaScriptで書きたくなってくる。

普段使ってるPythonで書いたCUIスクリプトJavaScriptで書けないかなぁ、と探してみるとありました。

JavaScriptコマンドラインから利用する方法。

1.Node.jsをインストール

まずはNode.jsをインストールする。

Node.js

Node.jsは、通常クライアント側で実行するJavaScriptを、サーバーサイドで実行可能にするもの。 Chromeに使われているV8 JavaScript エンジンで動作する。

ターミナル(Windowsコマンドプロンプトのこと)から以下を実行してバージョン情報が出て来たらインストールは無事成功している。

$ node -v
v6.11.4

2.スクリプトを書いて実行する

適当なディレクトリを作成して、スクリプトを書いてみよう。

$ mkdir test //ディレクトリの作成
$ cd test //作成したディレクトりへ移動
$ vim test.js //テキストエディタのVIMで新規ファイルを作成

作った「test.js」の中身は簡単にJavaScriptにしてみる。

var values = [1, 2, 3];

values.map(x => {
  console.log(x);
});

やっていることは、「1,2,3」というNumber型のデータが入っているリストから一つずつ要素を取り出してコンソールに出力している。

これを実行するには、ターミナルから以下を実行。

$ node test.js

// 1
// 2
// 3
// が出力される。

以上です。

すごく簡単ですよね。 毎日使ってるPythonスクリプトも書き直したくなってくる。。 効率性を求めるはずのIT技術のはずが、同じスクリプトを違う言語に翻訳するだなんてなんだか非効率ですよね (笑)

まぁ、楽しいからいいや


WorkflowyにURL付きで引用を簡単に張り付けられるブックマークレットを作ってみた

Workflowy で他のサイトの一部をメモしたいときに、「選択部分とURLを一度にコピペ出来たらいいのにな」と思ったのでブックマークレットを作ってみました。

出来ること

  • サイトの選択部分をWorkflowyのノードに貼り付けられます。
  • 選択部分を張り付けるときに「ノート」部分にURLが記入されます。

導入の仕方

f:id:hayeta:20170926182226p:plain

  1. 適当なサイトをブラウザのブックマークバーにお気に入り登録します。
  2. 登録したお気に入りを編集し、URLの部分に以下のコードを貼り付けます。
  3. 適宜名前を変更して保存します。
javascript: var select = document.getSelection();window.prompt('', '<opml version="2.0"><body><outline text="' + select + '" _note="' + location.href + '" /></body></opml>');void(0);

使い方

f:id:hayeta:20170926183647p:plain

  1. コピーしたいサイトを開いて一部を選択します。
  2. 先ほど作ったブックマークをクリックするとウィンドウが開きます。
  3. そのまま「Ctrl + C」を押して(もしくは右クリックからコピーを選択して)クリップボードにコピーします。
  4. Workflowyに戻って新しいノードを作成し、「Ctrl + P」(もしくは右クリックから貼り付けを選択)するとコピーしたものが新規ノードとして張り付き、ノート部分にサイトのURLが記入されます。

f:id:hayeta:20170926183819p:plain

Google Chromeで動作確認しています。

良かったらお使いください。

【Javascript】チェックボックスのonchangeでイベントが発動しないときの解決法【jQuery】

チェックボックスをクリックしてもイベントが発動しない!

jQueryを使用してチェックボックスへの操作をトリガーにイベントを発動させようとしたのだけれどどうしても動かずハマりました。

HTMLの例

<input type="checkbox" name="testbox" id="checkbox">

jQueryの例

$(function(){

    $('#checkbox').on('change', function(){
            window.alert('チェックされたよ!');
    });
    
});

このチェックボックスを押したときにアラートを表示させたいのだけれどどうしても出来ない。

以下解決策です。

jQueryで生成された要素をトリガーにイベントを発動させる方法

対象のHTML要素がjQueryによって動的に追加されたものである場合、上記の記述では発動しません。

記述を以下のように変更すれば発動しました。

※HTMLは先の例と同様ですので省略します。

jQueryの例

$(function(){

    $(document).on('change', '#checkbox', function(){
            window.alert('チェックされたよ!');
    });
    
});

これで無事イベントが発動しました。