pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

iPad3のSIMロックに関する考察とSIM下駄による解除の試みはSoftbank版iPad3にiPhone用のSIM下駄を履かせてみるにいろいろ書いてます。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


2017年10月23日からエクスプレス予約でもiPhoneのモバイルSuicaで新幹線に乗車できるようになる

2017年9月に開始した「スマートEX」ではiPhoneモバイルSuicaを新幹線のIC乗車券にすることができるようになりましたが、エクスプレス予約では相変わらず専用のIC乗車カードが必要でした。しかし2017年10月23日以降にiPhoneモバイルSuicaアプリのアップデートすれば、エクスプレス予約でもiPhoneモバイルSuicaをIC乗車券に使えるようになります。

expy.jp

この件については1ヶ月前に書いたこちらの記事でも触れていたのですが、年会費を支払わずともiPhoneSuicaを新幹線のIC乗車券にすることができるスマートEXに対して、年会費を支払っているのに専用ICカードが必要だったエクスプレス予約のアンバランスな部分が解消されるわけで、大変ありがたい話です。

pslabo.hatenablog.com

これで、スマートEXは既存のクレジットカードでとりあえず乗車できれば良い方向け、エクスプレス予約は新幹線利用頻度が高く、利用ポイントでグリーン車へのアップグレードを望む方向けの住み分けがきっちりできて、新幹線乗車については同じサービスレベルが受けられるようになります。

ただし、もしかするとこれはJR東海のクレジットカード、またはビューカード向け限定かもしれません。というのも「J-WESTカード会員・E予約専用会員Wは対象外」という記述があるからです。そうすると、旧ブラスEX会員もダメかも?

ここらへんは実際に新しいアプリが提供開始された時点で改めて確認したい点です。

2chが5chに変わったというので、ドメインの取得日や所有者について調べてみる

2ch.net が 5ch.net に移管されるということで「5ch.net」みたいなドメイン名が良く取れたよね、見たいな話を聞いたけど「いやいや、そんなの、関係者が以前から持っていたはずでしょ」としか思えないわけで、実際に検証してみることにする。

まずは本記事作成時点でのドメイン登録情報を whois で調べてみる。

すると、以下のことがわかる。

  • 1ch.net, 3ch.net, 5ch.net を除き、Jim の所有になっている
  • 5ch.net 〜 9ch.net の登録日はいずれも 2000年3月1日である
ドメイン whois 情報 初回登録日 所有者
1ch.net https://www.whois.com/whois/1ch.net 2003-01-11 Privacy Protect, LLC (PrivacyProtect.org)
2ch.net https://www.whois.com/whois/2ch.net 1999-07-22 Jim Watkins (Race Queen, Inc)
3ch.net https://www.whois.com/whois/3ch.net 2002-03-24 SATOSHI SHIMOSHITA
4ch.net https://www.whois.com/whois/4ch.net 2000-03-01 Jim Watkins(N.T.Technology, inc)
5ch.net https://www.whois.com/whois/5ch.net 2000-03-01 Wilson Orje (Loki Technology, Incorporated)
6ch.net https://www.whois.com/whois/6ch.net 2000-03-01 Jim Watkins(N.T.Technology, inc)
7ch.net https://www.whois.com/whois/7ch.net 2000-03-01 Jim Watkins(N.T.Technology, inc)
8ch.net https://www.whois.com/whois/8ch.net 2000-03-01 Jim Watkins(N.T.Technology, inc)
9ch.net https://www.whois.com/whois/9ch.net 2000-03-01 Jim Watkins(N.T.Technology, inc)

では、5ch.net の過去の登録情報はどうなっていたかというと、インターネットアーカイブ上に 2017年5月16日づけのアーカイブが残っています。

http://web.archive.org/web/20170516051351/https://www.whois.com/whois/5ch.net

これをみると、registrant contact は Jim Watkins、Race Queen, Inc なので、やはり 5ch.net - 9ch.net を一括で取得していたことがわかります。

今回の5ch.netへの移管の実態は全く良くわからないけれど、単にドメイン名が変わっただけであり、なおかつ実質的な管理者も変わっていないんじゃないかなあ、という感じがしますよねえ。

Delphi/C++BuilderのVCLでPageControlをタブ抜きで使う

Delphi/C++BuidlerでVCLでアプリ作るときにPageControlを使うとタブでメニューを切り替えるような設定メニューを提供するのに便利だが、Windows10的なデザインにはそぐわないので、SplitView でメニュー表示しつつ PageContrtol で表示を切り替えることを考えた。

そういう場合に PageControl 自体が描画するタブは不要なので、消す場合のメモ。

  1. PageControl.Pages[].TabVisible をすべて False にする。これでタブ部分と PageControl 内の TabSheets がすべて消える。

  2. 表示したいタブを PageControl..ActivePageIndex に指定すれば、そのタブだけが描画される。

Google Spreadsheet のデータをタブ区切りテキストなどの形式でダウンロードする

自分用のメモ

Google Spreadsheetのデータを他のアプリで取り扱いたい場合の最もスタンダードな方法はGoogleAPI経由で取得する方法だと思います。

しかし、片手間で自分用に作るアプリから参照するデータソースとして GoogleAPI を真面目に実装してデータ取得するのは少々めんどくさい気分になります。

そこで「外部に漏れても構わないデータ」であることを前提として、Google Spreadsheet のデータをタブ区切りテキストなどのフォーマットでアプリケーションにダウンロードすることを試みます。

こんな形式でダウンロードできる

ざっと試してみると、こんな感じにURL変換すればダウンロードできます。文書を「リンクを知っている全員が閲覧可」にしておけば認証無しで取得できます。

形式 URL
元データ https://docs.google.com/spreadsheets/d/DOCUMENT_ID/edit#gid=GID
Excel(xlsx) https://docs.google.com/spreadsheets/d/DOCUMENT_ID/export?format=xlsx&gid=GID
ods https://docs.google.com/spreadsheets/d/DOCUMENT_ID/export?format=ods&gid=GID
PDF https://docs.google.com/spreadsheets/d/DOCUMENT_ID/export?format=pdf&gid=GID
CSV https://docs.google.com/spreadsheets/d/DOCUMENT_ID/export?format=csv&gid=GID
TSV https://docs.google.com/spreadsheets/d/DOCUMENT_ID/export?format=tsv&gid=GID
HTML https://docs.google.com/spreadsheets/d/DOCUMENT_ID/export?format=zip&gid=GID

あるいは、Google にログイン済みのブラウザで開くことでもダウンロードできます。

正規表現でASCII文字の記号にマッチさせる

データの集合からASCII文字の記号を除外する必要が出てきたのでパターンマッチを忘備録として記す。

このパターンマッチは [!-/:-@[-`{-~] と書ける。

これは以下の4つの範囲指定から成る。

範囲 対象文字 パターンマッチ指定
0x21 - 0x2F !“#$%&‘()*+,-./ !-/
0x3A - 0x40 :;<=>?@ :-@
0x5B - 0x60 [¥]^_` [-`
0x7B - 0x7E { }~ | {-~

ただし正規表現に慣れてない方向けには [!-/]|[:-@]|[[-`]|[{-~] と書いてあるほうが読みやすいかもしれない。

WindowsでProxy利用のon/offを切り替える処理をPowerShellで書く

……というタイトルの記事ですが、オリジナルの実装を自力で書くのではなく、以下のページの内容をありがたく使わせていただきます。

http://www.hsyntt.com/changing-proxy-server-settings-for-internet-explorer-using-powershell/

しかし上記のサイトはこの記事の時点では停止している(どうやら、DNSにレコードがない?)ようなので、やむを得ず、Wayback machine からサルベージを試みたのが以下のコードです。

自分の環境では、これを enable_disable_proxy_to_localhost_8080.ps1 という名前で保存して使っています。

このコードは実行するごとに自ホスト上の 8080 を proxy として使ったり、設定を無効にしたりできるので大変便利に使えます。

接続先の情報は NewProxy に記述しておけばOKです。

$regKey="HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
 
 
#Change Ip:Port to your Proxy Address:
$NewProxy = "127.0.0.1:8080"
 
#Gets the actual value of the proxy setting
$ActualProxy = Get-ItemProperty -path $regKey ProxyServer -ErrorAction SilentlyContinue
 
 
#Thanks to Aymeric Mouillé from blog.msdn.microsoft.com for those lines of code, I did some modifications on them
#Enables Proxy and changes Value, if Proxy is disabled
if([string]::IsNullOrEmpty($ActualProxy))
{
    Set-ItemProperty -path $regKey ProxyEnable -value 1
    Set-ItemProperty -path $regKey ProxyServer -value $NewProxy
 
    Write-Host Proxy is now enabled
    Write-Host New Value: $NewProxy
}
#Disables Proxy and deletes Value, if Proxy is enabled
else
{
    Set-ItemProperty -path $regKey ProxyEnable -value 0
    Remove-ItemProperty -path $regKey -name ProxyServer
 
    Write-Host Proxy is now disabled
    Write-Host Value has been deleted
}
 
 
 
 
#The following lines of Code prevents you from restarting I.E.. Otherwise you had to restart I.E. in order to take the registry changes
#Thanks to jvdp81 from blog.msdn.microsoft.com for those lines of code
$source=@"
[DllImport("wininet.dll")]
public static extern bool InternetSetOption(int hInternet, int dwOption, int lpBuffer, int dwBufferLength);
"@
 
#Create type from source
$wininet = Add-Type -memberDefinition $source -passthru -name InternetSettings
 
#INTERNET_OPTION_PROXY_SETTINGS_CHANGED
$wininet::InternetSetOption([IntPtr]::Zero, 95, [IntPtr]::Zero, 0)|out-null
 
#INTERNET_OPTION_REFRESH
$wininet::InternetSetOption([IntPtr]::Zero, 37, [IntPtr]::Zero, 0)|out-null
 
 
Read-Host Press Enter to close

iPhone7のモバイルSuciaで2017年9月末から新幹線にチケットレス乗車できる(ただしエクスプレス予約を除く?)

今月末(2017年9月)からは、SuicaPASMOなどの交通系ICカードを使って東海道山陽新幹線チケットレス乗車できるスマートEXが始まります。

このサービスは専用のサイトで会員登録することで東京-博多間の新幹線をオンラインでチケット予約できるようになり、なおかつ手持ちのSuica, PASMO等を登録するとチケットレス乗車もできる、というサービスです。しかもスマートEXの利用に年会費は不要です。

そして乗車直前(正確には乗車券受け取り前またはチケットレスで改札を通過する前)までは予約変更がインターネット経由で行えます。今まではみどりの窓口や券売機で切符を買っていた方は今後はスマートEXに移行したほうが利便性が上がりますね。

さて、このサービスについて調べているときに、興味深い情報を見つけました。それは iPhone7 や Apple WatchSuica がスマートEXのチケットレス乗車に利用できる、というものです。

appsuica.okbiz.okwave.jp

これがなぜ興味深いかといいますと、スマートEXの上位サービスであるエクスプレス予約では、現時点(2017年9月初旬)では iPhone, Apple WatchモバイルSuica東海道山陽新幹線チケットレス乗車に利用することはできないからです。

expy.jp

現状でモバイルSuica東海道山陽新幹線チケットレス乗車するには、以下の条件を満たすことが必要です。

expy.jp

なんだかわかりづらい話になるので表にまとめてみました。

クレジットカード 利用可能なチケットレス乗車サービス 乗車方法 iPhone/Apple WatchSuica対応 通常の乗車料金
一般のクレジットカード スマートEX(年会費不要) 手持ちのSuica, PASMO 利用できる 通常の片道運賃より200円安い
一般のクレジットカード エクスプレス予約(旧プラスEXからの統合、年会費 1,080円) 専用のICカード 利用できない 最大で1,480円安い
JR東海エクスプレスカードまたはJ-WESTカード エクスプレス予約(クレジットカードに付帯、年会費不要) 専用のICカード 利用できない 最大で1,480円安い
ビューカード エクスプレス予約(年会費 1,080円、ビューエクスプレス特約) モバイルSuica 利用できない(AndroidフィーチャーフォンモバイルSuica は利用可能) 最大で1,480円安い

ビューカードや一般のクレジットカードでエクスプレス予約を利用する方は年会費を負担しているにもかかわらず、年会費無料のスマートEXよりも低いサービスレベルのように見えてしまいます。料金面ではエクスプレス予約の方が割引が大きいのですけど、東海道新幹線の利用客のうち業務(出張)利用は多いでしょうから、そういう方はスマートEXにしたほうがモバイルSuicaで乗車できて便利そうです。

このあたり、なんとかならないものですかねえ。そもそも専用のICカードが必要というのが今の時代にはそぐわないので、エクスプレス予約でも手持ちのICカードで乗車できるようになってほしいものですが。


※2017年10月13日追記:2017年10月23日のSuicaアプリケーションのアップデートにより、エクスプレス予約でもiPhoneモバイルSuicaをIC乗車券として利用できるようになるそうです。

expy.jp