投稿

CiscoAP単体でDS-Lite接続する

 CiscoAP単体でDS-Lite接続できたのでメモ これまでは普通にONU→Ciscoルータ→CiscoAPという構成でネット接続していたのだが、 DS-Liteはトンネル張ってるだけだからルータ要らないんじゃないかと思いやってみたらできた。 環境 ネット: IIJmio光 ひかり電話なし DS-Lite AP: Cisco Aironet1700 ルーティング関連を有効にする ap(config)#ip routing ap(config)#ip cef ap(config)#ipv6 unicast-routing ap(config)#ipv6 cef ap(config)#bridge irb BVI1の設定 ap(config)#interface BVI1 ap(config-if)#ip address 192.168.0.1 255.255.255.0 ap(config-if)#ipv6 address autoconfig default ap(config-if)#ipv6 enable トンネルを張る ap(config)#interface Tunnel1 ap(config-if)#ip address 192.0.0.2 255.255.255.252 ap(config-if)#tunnel source BVI1 ap(config-if)#tunnel mode ipv6 ap(config-if)#tunnel destination 2404:8E00::FEED:101 スタティックルート ap(config)#ip route 0.0.0.0 0.0.0.0 192.0.0.1 DHCPサーバを立てる ap(config)#ip dhcp pool DHCP ap(dhcp-config)#network 192.168.0.0 255.255.255.0 ap(dhcp-config)#default-router 192.168.0.1   ap(dhcp-config)#dns-server 8.8.8.8 8.8.4.4 L2スイッチでもできそうな気がする。 ネットワーク環境がかなり軽量になったのでよかった。

三井住友カード Tile 発行した

イメージ
三井住友カード Tileの抽選に当たったので申込しました。 こんな箱に入ってました。 カード本体。 箱の奥には充電器が Google Pay上でも券面が正しく表示されます。 Tileアプリにも正常に登録できました。

bitFlyerクレカの使い勝手が悪すぎる

イメージ
 bitFlyer Platinum Cardを発行して1ヶ月くらい使ってみたのですが、もう使わないかもしれないです。

VirtualBoxゲストOSのカスタム解像度

 VirtualBoxのゲストOSにカスタム解像度を設定したかった。 ゲストOSはUbuntu。 ホストPCにはSurface Laptop 3を使っており、この解像度が2256x1504というあまり見かけない解像度なのだが、ゲストOSをこの解像度いっぱいにフルスクリーンにしたかった。 もちろんこんな解像度はゲストOSの解像度選択一覧にはない。 ゲストOSにGuest Additionsを入れれば解決するのだが、今回は入れたくない。 調べたところ、よく出てくるのが「GUI/LastGuestSizeHint」の設定と「CustomVideoMode1」の設定。 > vboxmanage setextradata "ゲストOS名" GUI/LastGuestSizeHint 2256,1504 > vboxmanage setextradata "ゲストOS名" CustomVideoMode1 "2256x1504x32" この設定をしてみたのだが効果がない。 さらに調べてみると、「VBoxInternal2/EfiGraphicsResolution」の設定を発見した。 > vboxmanage setextradata "ゲストOS名" VBoxInternal2/EfiGraphicsResolution "2256x1504" この設定で効果が出た。 今回、ゲストOSはBIOSではなくEFIの設定にしていたのだが、それが理由なのかもしれない。

Povo2.0にMNP転入した

 OCN モバイル ONEからPovo2.0にMNP転入した。 4年ほどOCN モバイル ONEをメイン回線として利用しており特に問題もなかったのだがPovo2.0にしてみた。 3G時代の名残で無意識にドコモ回線以外は絶対にありえないと思っていたのだが、LTE主流の現在では、バンドさえ合えばいいらしい。 ということで、ドコモ以外の回線も視野に入ってきた。 在宅勤務になったことで外に出る機会も少なくなり、電話を発信することもあまりないので、携帯料金にあまり金をかけたくない。 ということで情報を漁っていると、Povoが0円運用できるということを知った。 Povoが発表された際、結構批判が多かったイメージがあり目をつけていなかったのだが、調べてみるとちょっといいかもしれないと感じた。 Povoについて誤解していたのだが、 Povoの説明を読んで音声回線がついたプリペイドSIMだと思っていたのだが、 データ容量を購入しなくても128kbpsで通信ができるらしい。 なので、高速通信を使わないなら0円で音声回線付きのSIMが運用できる。 しかも一応auのMNOなのでMVNOよりは安心だと思う(?) 早速OCNモバイルONEでMNP予約番号を発行し、転入手続きを始めた。 平日の12時頃に申し込みを行い、その日の14時半頃にはもうSIMが発送され、次の日の午前中に届いた。 PovoアプリからSIMを有効化したところ、一瞬で古いSIMが無効になり、PovoのSIMが使えるようになった。 Pixel 3にPovoのSIMを刺したところ、APNも自動で設定されており、すぐ通信できた。 あまりのスピード感にまだ実感が湧かないが、eSIMだったら更に速いんだろうな。 ちなみにPixel 3デフォルトのAPN設定は以下の通り 名前: povo APN: povo.jp プロキシ: ポート: ユーザー名: パスワード: サーバー: MMSC: MMSプロキシ: MMSポート: MCC: 40 MNC: 51 認証タイプ: APNタイプ: default,supl,hipri APNプロトコル: IPv4/IPv6 APNローミングプロトコル: IPv4 APNの有効/無効: true ベアラー: MVNOの種類: GID MVNO値: 26 Povo2.0の注意点としては ・現時点...

DisplayPortをデュアルリンクDVI-Dに変換する

Quadro P2000とDell 3007WFPを接続したかったのでいろいろと調べた。 AmazonでDisplayPort to DVIの変換アダプタが1000円くらいで手に入るのだが、どれも使うことができなかった。 DVI-Dの規格 まず、DVI-Dにはシングルリンクとデュアルリンクの2種類がある。 シングルリンクでの最大解像度は1920x1200@60Hz、 デュアルリンクでの最大解像度は2560x1600@60Hz。 Dell 3007WFPで2560x1600@60Hzで表示するためにはDVI-D(デュアルリンク)で接続する必要がある。 Quadro P2000の出力ポートはDisplayPortしかないため、DisplayPortからDVI-D(デュアルリンク)に変換しないといけない。 Apple Cinema Display 30というディスプレイも同じ規格のようで、このような変換アダプタは結構需要があるらしい。 DisplayPortの規格 DisplayPortの規格には通常のモードとデュアルモード(DP++)がある。 通常のDisplayPort規格ではDisplayPort信号のみ送ることができるのだが、 DP++ではそれに加えてHDMIとDVI-D(シングルリンク)の信号も送ることができる。 DisplayPortからDVI-Dへの変換規格 DisplayPortからDVI-Dに変換するアダプタにはパッシブタイプとアクティブタイプの2種類がある。 パッシブタイプは、DP++に流れているDVI-D(シングルリンク)の信号を取り出すだけのもの。 アクティブタイプはDisplayPortの信号をDVI-D(シングルリンク・デュアルリンク)に変換してくれる。 アクティブタイプの変換アダプタでもシングルリンクのみに対応しているものとデュアルリンクにも対応しているものがあるので注意が必要。 結局のところ、DisplayPortをDVI-D(デュアルリンク)に変換するためには、 アクティブタイプ で デュアルリンク対応 の DP to DVI-D変換アダプタ が必要。 Amazonで探したところ、2つだけ見つかった。 13000円くらいの StarTech.com DP2DVID2 と6000円くらいの Club 3D CAC...

Windows Package Manager v1.0が公開されてた

Windows Package Manager v1.0が公開されていたので使ってみる。 Releases · microsoft_winget-cli  から Microsoft.DesktopAppInstaller_*.msixbundle をダウンロードしてインストールする。 winget list コマンドでインストール済みのパッケージを表示してみる。 PS> winget list 名前 ID バージョン ----------------------------------------------------------------------------------------------------------------- Netflix 4DF9E0F8.Netflix_mcm4njqhnhss8 6.97.752.0 Amazon Alexa 57540AMZNMobileLLC.AmazonAlexa_22t9g3sebte08 3.7.890.0 7-Zip 7zip.7zip 19.00 Amazon Prime Video for Windows AmazonVideo.PrimeVideo_pwbj9vvecjh7j 1.0.69.0 Blender 2.83 LTS BlenderFoundation.Blender2.83LTS_ppwjx1n5r4v9t 2.83.16.0 Brave BraveSoftware Brave-...

Google AssistantからSesame 3を操作する

イメージ
 Google AssistantからSesame 3を操作できるようにする。 2021/6/23現在、Sesame3は承認待ちのようでGoogle Assistantから操作することができない。 WebAPIは既に公開されているようなので、これをGoogle Assistantから使えるようにする。 具体的にはGoogle Assitant -> IFTTT -> Google Apps Script -> Sesame WebAPIというふうに接続する。

LINQでBufferしたい

Observable.BufferをLINQで実現する var arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; /* GroupByを使う */ IEnumerable<IEnumerable<int>> arr2 = arr.Select((value, index) => (value, index)).GroupBy(a => a.index / 3).Select(a => a.Select(b => b.value)); // [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]] /* Aggregateを使う */ List<List<int>> arr3 = arr.Aggregate(new List<List<byte>>(), (list, next) => { if (!list.Any() || list.Last().Count() >= 3) list.Add(new List<byte>()); list.Last().Add(next); return list; }); // [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]] /* Observable.Bufferを使う */ IList<IList<int>> arr4 = await arr.ToObservable().Buffer(3).ToList().ToTask(); // [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]

C#標準ライブラリでWebSocketクライアントを作る

C#でWebSocketクライアントを作りたい場合、websocket-sharpというライブラリがよく使われているが、標準ライブラリだけで賄いたい。 標準でSystem.Net.WebSockets名前空間にClientWebSocketクラスが用意されており、MSDNに使い方が載っている。 Windows 8 のネットワーク接続 - Windows 8 と WebSocket プロトコル 一応通信はできるのだが、あまりにも原始的なのでラッパークラスを作る。 using System; using System.IO; using System.Net.WebSockets; using System.Threading; using System.Threading.Tasks; public class WebSocketClient { private const int SendBufferSize = 1024; private const int ReceiveBufferSize = 1024; private ClientWebSocket Socket; public event EventHandler OnOpenHandler; public event EventHandler OnCloseHandler; public event EventHandler<string> OnTextHandler; public event EventHandler<byte[]> OnBinaryHandler; public Uri Uri { get; set; } public async Task SendTextAsync(string text) { using var memoryStream = new MemoryStream(); using var streamWriter = new StreamWriter(memoryStream); await streamWriter.WriteAsync(text); await st...

C#でコールバックをTaskにしてawaitしたい

C#でコールバックの値を同期的に取得したい時がある。 Rxを使ってJavascriptのPromise的なことをする。 // コールバックで値を返すメソッド private void Foo(Action<string> arg) { arg("qawsedrf"); } // コールバックの値を取得してTaskにして返すメソッド private Task<string> Bar() { return Observable.Create<string>(observer => { Foo(a => { observer.OnNext(a); observer.OnCompleted(); }); return null; }).ToTask(); } string value = await Bar(); Console.WriteLine(value); // qawsedrf Observable.Createでコールバックからの値を流すObservableを作り、 ToTaskでTaskに変換できる。 これを活用して以下のようなことができる。 string dataPath = await Observable.Create<string>(observer => { return Observable.Return(Unit.Default).ObserveOnMainThread().Subscribe(_ => { observer.OnNext(Application.persistentDataPath); observer.OnCompleted(); }); }).ToTask(); Unityの場合、メインスレッド上でなければUnityAPIを呼び出すことができないが、 こうすることでUnityAPIである Application.persistentDataPath の呼び出しだけメインスレッ...

Taotronics SoundLiberty 97を買った

イメージ
Taotronics SoundLiberty 97という3980円の完全ワイヤレスイヤホンを見つけました。 絶賛してるブログ記事が多く、2020/12/21現在でAmazonレビューは☆4.7。 ちょっと怪しいですが、15%オフクーポンがあったので買ってみました。

指定範囲内のVector2Intの配列を作る

public class TestClass { public void TestMethod() { var countX = 3; var countY = 4; var aaa = Enumerable.Range(0, countY) .SelectMany(y => Enumerable.Range(0, countX) .Select(x => new Vector2Int(x, y))); // (x:0, y:0), (x:1, y:0), (x:2, y:0), // (x:0, y:1), (x:1, y:1), (x:2, y:1), // (x:0, y:2), (x:1, y:2), (x:2, y:2), // (x:0, y:3), (x:1, y:2), (x:2, y:3) } }

プロパティ以外からのバッキングフィールドへのアクセスに警告を出す

プロパティ以外からバッキングフィールドにアクセスさせたくない時が結構あります。 本来の用途ではありませんが、Obsoleteを使ってコンパイラ警告を出します。 public class TestClass { [Obsolete] private string _foo; // Obsolete属性を付ける public string Foo { // コンパイラ警告を無効化 #pragma warning disable 612 get { return _foo; } set { _foo = value; } // コンパイラ警告を有効化 #pragma warning restore 612 } public void TestMethod() { _foo = "aaaaaa"; // CS0612: Use of obsolete symbol (without message) } }

Google Payが三井住友カードのiDに対応した

Google Payが三井住友カードのiDに対応した。 これまでも専用アプリを利用することでAndroidからiDを利用できたが、申し込みや審査等が面倒くさくて使っていなかった。 Google PayではSMS認証だけでiDを有効化できた。

日本版Pixel3にAndroid10のOTAが来た

イメージ
Android 10が2019/9/3(米国時間)にリリースされるという噂があったが、本当にリリースされた。 同時に日本版Pixel 3向けにもOTAが来た。

Kyashを使い始めた

今話題のKyashを使い始めました。 Kyashは簡単に説明するとVisaプリペイドカードです。 なぜこのKyashが話題になっているのかというと、還元率の高さにあります。 Kyashで支払った額の2%がキャッシュバックされます。 ですが私はこの還元率にそれほどメリットがあるとは思えません。 2%キャッシ...

Google製品をいろいろ買った

イメージ
Google製品をいろいろ買った。 Google Pixel 3とファブリックケース Blackberry Key2 LEを割ってしまい、SIMフリーの適当な携帯を使ってたがそろそろ厳しくなってきたので買い替えを決意。 Androidを動かすなら開発元のGoogleが携わってる端末がいいという考えで、昔からNexusシリーズを利用してきた。 Pixel 3が日本で発売されたが、日本だけ独自仕様というとこで購入を踏みとどまっていたのだが結局買ってしまった。 ケースはGoogle純正のファブリックケースを買った。 布製でGoogle Homeのような感じ。手汗が染み込んで臭くなりそうとか考えたり気を使う。寿司を食ってるとき醤油をこぼしてしまい、ずっと気になっている。 Google Wifi 自宅の通信機器が増え、ルータの動作が不安定になった。 動作の安定性を考えるとCisco等の業務用ルータが欲しいのだが、高いしうるさい。 そこで見つけたのがGoogle Wifi。 Google WifiにはクアッドコアのARMが入っていて動作が安定しているということだった。 導入後1ヶ月ほど運用しているが、ゲームをしても抜群に安定している。 Google HomeとNature Remo Mini 寒くて布団から出たくないのでGoogle Homeを購入した。 Nature Remo MiniはGoogle HomeからGoogle Home非対応の機器を操るためのもの。 一番活用してる機能は外出先からのエアコン操作。帰宅1時間前とかにエアコンをオンにしておくと最高。 Googleに家を支配されました。

Blackberry Key2 LEを割ってしまった

イメージ
Blackberry Key2 LEを割ってしまいました… 使い始めてまだ2週間です。 今はどの端末もクソダサいノッチがついてて乗り換えたくないです。 Blackberry Key2 LEは最高の端末でした。新しいKey2 LEが欲しい。

Blackberry Key2 LEを買った

イメージ
Blackberry Key2 LEを買った。 Unlocked Mobilesで購入。 本体が£290.83+送料£16.00+関税¥2800。 サイトには型番が明記されていなかったがEMEA/APAC版のBBE100-1が届いた。 対応バンドは FD-LTE 1, 2, 3, 4, 5, 7, 8, 12, 17, 19, 20, 26, 28, 32 TD-LTE 30, 38, 41 HSPA 1, 2, 4, 5/6, 8 ドコモ回線でデータ・音声通信は問題なし。 VoLTEは利用できなかった。 Androidバージョンは8.1.0。9へのバージョンアップも予定されている。