htsign's blog

ノンジャンルで書くつもりだけど技術系が多いんじゃないかと思います

Visual Studio Code for Windows の Integrated Terminal に MSYS2 の fish を使う

fish、便利です。 当方は未だにWindows 8.1 UpdateなのでWSL1は使えません。 なので Git for Windows SDK をインストールして簡易的なシェル環境を構築してます。 これが pacman があるのでなかなか快適なんですね。 nodeもこれで入れられるのでchocolateyも…

式途中に null として評価されてしまうケースの回避方法

F#

F# の話題です。 let x = A().B.C.D とあるとき、もしA().B が null だったら? F# で定義した型は AllowNullLiteralAttribute 属性を付与するか Unchecked.defaultof<'a> を使用しない限り、たとえ参照型だろうが null になることはありません。 でもCLRの…

Java5 での開発のつらみをやわらげる tips

仕事で Java5 の案件がきました。 このご時世に Java5 とか負の遺産以外のなにものでもないですが、仕事なので仕方ありません。 拡張for文とか可変長引数とかアノテーションとかジェネリクスとか、それ以前と比べればかなりマシなものの、 現代的なプログラ…

Perl の range operator

これPerlerの皆さまからすれば「何を今更」な話かもしれませんが、個人的に驚いたので書きます。 Perlには範囲演算子というのがあって、他の言語でも度々採用されてる便利な演算子なんですが、 例えば my @nums = (1..5); とすることで 1 から 5 までの連番…

JScript(not JavaScript)のArrayに対するメソッド群を追加する超単純なポリフィル

今さらこんなコードを書くこと自体恥ずべきことだと思うのだけど、勤務先の業務システムがJSPで実装されており、クライアントサイドはレガシーなIEが想定されています(嘆かわしいですが、よくある光景ですね…) そしてこれまたよくある光景なのですが、秘伝…

はてブのコメントにつけたスターを見易くするグリモンスクリプトがはてブリニューアルにつき動かなくなったので修正しました。

表題の通り。 gist.github.com

Partial Active Patterns

F#

引数で受けた正規表現を評価して、ヒットしたら返します。 習作として作りました。 gist.github.com 使い方 アクティブパターンなので、パターンマッチの内部でリストから取り出すイメージですね。 マッチしなければ次のパターン(この例では| _ -> ()の行)…

はてブ見ててどのコメントにスター付けたかよく忘れるので

GreaseMonkeyスクリプトを書きました。 gist.github.com 使うと自分が付けた星は点滅するようになります。 以上。

F#のべき乗計算

現在F#の勉強を始めたところで、基礎的なところをぼちぼち習得している段階です。 演算子の話なんですが、F#にはOCamlの系譜だからなのか**演算子(べき乗)があります。 RubyやPythonなど、関数型の血を引いたいくつかの言語にも備わっている珍しくもない演…

全てのフレームを対象にするには

某大手工業系企業の新規開発プロジェクトに参画しているのですが、非常に悲しいことに社内ポータルが未だにフレームを使用したサイトなのです。 フレームを使うと容易にペインで分けたサイトを構築できるため、実用重視のエンタープライズ界隈で重宝されるの…

最近 Nemerle がマイブームです

私自身は最近知ったのですが、実は以前からある言語っぽいですね。 C#によく似た構文を数多く持ち、関数型言語によく見られる機能(パターンマッチングとかタプルとか)を言語レベルで実装しているのが特徴です。 型を静的にチェックできる強力なマクロもあ…

リンク化スクリプト

かねてからHatena::Let で公開 *1 していて、個人的にもかなり使っているスクリプトをGreaseMonkey用に書き直したのでそれも公開してみます。 https://gist.github.com/htsign/5eed5473a9e75c7c45f3a5571d7d0803/raw/convertTextToLink.user.js GreaseMonkey…

他の人がエントリに書いてた仕分けbatが冗長だったのでvbsにした

www.ken10blog.com 本当はC#とかでパパッと書いてしまうのが楽だけど、元ネタがバッチファイルなのでWindows標準で動くスクリプトという点でWSHを選びました。*1 PowerShellはローカルで気軽に動かすためにポリシーを変更する必要があるので却下。 Option Ex…

個人的によく使うWindowsコマンドまとめ

Twitterで戯れていたら流れで思いついたので唐突にまとめてみます。 「個人的によく使う」というのがミソで、ここに載っていないものは載せ忘れかほとんど使わないか存在を知らないものです。 載せ忘れは思い出し次第追記していきます。 基本 Win+Rで「ファ…

.NET Framework 3.5環境で nameof 演算子っぽいことする

最近仕事でこんな感じのメソッドを定義して使っています。 public static class Utility { private static Dictionary<string, string> exprCache = new Dictionary<string, string>(); public static string NameOf<T>(Expression<Func<T>> expr) { string exprString = expr.ToString(); string name; </func<t></t></string,></string,>…

Windows 10 Mobileでのユーザー辞書クリア手順

W10M端末におけるユーザー辞書(英語キーボード用)及び予測変換情報の初期化方法が思った以上に分かりにくかったのでメモがてらに。 画面上端から下へスワイプし、アクションセンターを表示します。 クイックアクション右下の「展開」をタップしてすべての…

以後は特に指定のない限りJSはES6記法で書いていこうと思います。

Intlオブジェクトというものを知りました。 国際化表記における各種変換を取りまとめるそこそこ大規模なオブジェクトらしい。 Collator DateTimeFormat NumberFormatの3つのサブオブジェクトを持つ模様。 それぞれインスタンス化して使用するっぽい。 (() =>…

グローバルIPアドレスを得る

今まではipifyを使っていました。 > Invoke-WebRequest api.ipify.org | Write-Host 125.203.***.*** 非常にシンプルで使用制限もなく応答速度も問題なくて重宝していました。 これで終わりでいいんですが、みんな大好きStackOverflowのとあるスレッドで有用…

OSXのバージョンを確認する方法

OSX

ただ単に今駆動しているOSXのバージョンを確認するだけなら $ sw_vers ProductName: Mac OS X ProductVersion: 10.10.5 BuildVersion: 14F1605 で終わりです。今回はとあるパーティションにインストールされているOSXのバージョンを外部から確認する方法です…

久しぶりにPC周りのお買い物

ついに買いました。TLCのSSD nttxstore.jp思えばSLCで容量40GBしかないのを買って、MLCだけど容量60GBしかないのを買って、MLCで容量120GBのを買って、MLCで256GBのを買って、今度のやつで5枚目です。 SandForce製とかいう0Fill, 1Fill以外まるで速度の出な…

Microsoft Edge (Windows 10 Mobile) のUser-Agent

なかなかすごいことになっています。 どこかの記事(確かスラド辺り)で読んだことありますが、WebKitと同じ挙動を示すようにしたとかなんとか。Lumia 950で確認しました。 Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWeb…

POH7の問題でSwiftを初めて書いた

Paizaさんは相変わらず変態ですね(褒め言葉) 今回のPOHも例に漏れずぶっ飛んだ設定になっています。さて、縞ニーソの問題(この文だけですでに病気だ…)ですが、始めは無難にRubyで書いていたのですが、POH7からはSwiftコンパイラも採用されたということで…

月末ギリギリでのmineoへのMNPはやめた方がいい

mineoではMNP転入の手続きは、消費者自身がmineoマイページの所定のフォームにSIMの製造番号の下4桁を入力して完了となります。 その為、必然的にSIMが届くまではMNPを完了させることができません。 mineoで申し込みをしてから受理されるまで1~2日、さらにS…

BookLiveで今まで使ってきた金額を出すスクリプト書いた

いやー久しぶりにJavaScript書いたわー。 (function(d){var s=d.createElement("script");s.src="//dl.dropboxusercontent.com/u/414379/www/BookLivePaid/script.js";d.body.appendChild(s)})(document) 一時期Amazon.co.jpで使った額を調べるスクリプトが…

iPadのリファビッシュ品のリスト取ってくるだけのexe作った

単に自分が欲しかったので。 手元のiPad miniがストレージもメモリもカツカツで、使い物にならなくなりつつあるからです。 TouchIDなんか必要ないので、iPad mini Retinaが安く手に入ればいいかなと。Dropbox - iPadRefubished.exe 何も特別なことはしていな…

Paizaのオンラインハッカソンやってみた

土日特にすることもなく暇なので遊んでた。マンガ版「俺の許嫁と幼なじみが修羅場すぎる」|paizaオンラインハッカソン5paiza.jp 1問目 与えられた文字列の基数番目のみを取り出せという問題。 使用言語: Ruby input_lines = gets chars = input_lines.each_…

Visual Studioに頼らないコーディング

で簡単なテキストエディタを作ってみました。メモ帳(notepad.exe)だけでどこまで作れるか、みたいな自己満足のチャレンジです。 静的エラーはコンパイラが吐いてくれるから簡単に修正できるけど、実行時エラーの解決はなかなかしんどかったです。 STAThreadA…

Configクラスの実装サンプル

C#

前回のエントリでちょっと載せたコードについて。 Configクラスを毎回書くのがだるかったので基底クラスを作ってそれを継承するようにしました。 初期値を読み込みなおすLoadDefaultメソッド XMLとして自身を保存するSaveメソッド XMLを読み込んでデータを復…

MusicBeeのプラグイン開発

最近、MusicBeeというWindows向けのオーディオプレイヤーのプラグイン開発ばかりやってます。 本体がVer2.0辺りから.NET化したのもあって、プラグインも.NET(C#、VB.NET、C++/CLI)で非常に手軽に開発することができます。 コントロールはWinFormsです。 ビル…

.NET Framework における System.String について

今年に入って初めて .NET Framework にまともに触れるようになってきたのでまだまだ勉強中です。 趣味で触るのはC#、仕事で触るのはVB.NETって感じです。さて、だいたいどの解説サイトを見ても「C#もVB.NETもできることは同じ」というような解釈になってます…