カスタマイズ制の高いWEBブラウザ「Vivaldi」の紹介

  • POST
カスタマイズ制の高いWEBブラウザ「Vivaldi」の紹介 Vivaldiとは Vivaldiは、Vivaldi Technologies社が開発したChromiumベースのWEBブラウザ。 Opera Sofwareの元CEOが開発に携わっており、Operaのコンセプトを引き継いでいる。 また、開発には共同創設者としての日本人の冨田龍起氏も関わっている。 まだシェアは少ないが、利用者数は少しづつ増加しており、 2019年9月にはスマートフォン版のβ版が公開され、近年、注目を浴びているブラウザの一つである。 https://news.mynavi.jp/article/20181102-717456/ Vivaldiの特徴 以下の点が特徴である。 動作が軽快 宇宙一高速なWEBブラウザを目指すというスローガンを掲げており、動作が軽快。 多機能 Operaで好評だったスピードダイヤルなどの多様な機能がデフォルトで備わっている カスタマイズ性が高い ボタンやタブなどの位置変更が行えるなどカスタマイズ性が高い また、Chromiumベースなので、 Google Chromeと同様にChrome拡張機能の利用が可能 開発のコンセプト 以下に窓の杜の冨田龍起氏へのインタビュー動画があるので、視聴を推奨。 https://forest.watch.impress.co.jp/docs/special/1038849.html 所感 近年の主要なブラウザでは不要な機能を削ぎ落とされ、誰にでも仕えるGUIや軽量化という点に力がそそがれ、サードパーティ製のアドオンにより、機能拡張する形式を提供する形式を取るケースが多く、差異がなくなって来ている。 対して、Vivaldiはデフォルトでも様久な機能を有しており、ボタンやタブの位置の変更が行えるなどカスタマイズ製が高い。 Vivalidのように多機能なツールは一見、使いどころがないように思える機能でも、人によっては重宝するものであったり、新しい使い方が発見をユーザに提供している。 こうした設計指針は主要な流れとは異なるのかもしれないが、コモディティ化を避けるための教訓として知っておいたほうがいいと思った。

HUGOでURLを相対パスから絶対パスにする

  • POST
はじめに HUGOでWEBサイトを作成した場合に、各ページのURLは、config.tomlのbaseurlからの相対パスで設定される模様。 相対パスでWEBサイトを作成していたところ、config.tomlのbaseurlにhttps://example.com/blogという設定をすると、 NextやPrevのアンカーの参照先のURLが、本来であれば、 http://localhost:1313/blog/page/2/としたいのに、http://localhost:1313/blog/blog/page/2/のようになってしまう事象が発生した。 本記事では、HUGOでURLを相対パスから絶対パスに変更する手順を記載する。 実行環境 下記のテーマを利用。 https://github.com/dim0627/hugo_theme_robust URLの正規化オプションを設定 下記のようにconfig.tomlにcanonifyurls = trueを設定すると、 baseURLを起点とした相対パスから、絶対パスになる模様。 ※ canonifyは正規化という意味の英単語。 https://gohugo.io/content-management/urls/ baseurl = "https://example.com/blog" title = "SiteTitle" theme = "hugo_theme_robust" canonifyurls = true googleAnalytics = "UA-XXXXXXXX-XX" # Optional disqusShortname = "XYW" [params] description = "This is site description" dateformat = "Jan 2, 2006" # Optional # Fonts settings. googlefonts = "https://fonts.googleapis.com/css?family=Lobster|Lato:400,700" # Optional, Include google fonts. fontfamily = "Lato,YuGothic,'Hiragino Kaku Gothic Pro',Meiryo,sans-serif" # Optional, Override body font family.

ECL2.0 (EnterPrise Cloud2.0)の紹介

  • POST
※ 画像引用先 https://www.ntt.com/business/services/cloud/iaas/enterprise-cloud.html ECL2.0 (EnterPrise Cloud 2.0)の紹介 はじめに NTTコミュニケーションズが、パブリッククラウドサービス「Cloudn」を2020年12月31日に終了すると報道された。 報道によると、今後は、同社のもう一つのパブリッククラウドサービス「Enterprise Cloud」に統合されるとのこと。 https://www.itmedia.co.jp/news/articles/1910/25/news080.html 本記事では、CloudNに変わる新たなサービス「ECL2.0」について記載する。 ECL2.0とは NTTコミュニケーションズが提供しているCloudNに変わるパブリッククラウドサービス。 国産クラウドの代表格の一つ。 以前は、BHEC(Biz Enterprise Cloud)というサービス名として提供され、 ECL1.0を経て、ECL2.0というサービス名になった。 ECL2.0の特徴 個人でも利用可能 ※ 展示会などに行くとトライアル用の無料クーポンなどが配布されていることがあるらしい ベアメタルサーバと仮想サーバの2種類を提供 AWSなどは、CPUとメモリ容量から組み合わせからリソースを選択する ※ 以前はリソースプールが形式だったが、ECL2.0から変更された AWS S3互換APIに対応したオブジェクトストレージが提供されている ※ Wasabi社(米国)のWasabi hot cloud storageの使用している ※ Wasabi社(米国)が提供する米国リージョン・欧州リージョンのみ(2019/12/26時点) 他社クラウドに比べて、ストレージ(データディスク)の料金が安い クラウド外部へのデータ転送量が無料 同社が提供するArchstar Universal Oneとの接続が100Mbpsベストエフォートまでが無料 国内の拠点数が豊富 ※ 現状は、国内リージョンではJP1~JP5まである(2019/12/26現在)

pgpool-Ⅱ入門

  • POST
pgpool-Ⅱ入門 pgpool-Ⅱとは アプリケーションと複数のPostgreSQLの間に介在し、 負荷分散や冗長化の機能を提供するOSSのプロキシソフトウェア。 複数のPostgreSQLノードに対して、参照クエリを振り分けなどが可能。 下記の機能を提供する。 コネクションプール 参照負荷分散 オンメモリクエリキャッシュ 自動フェイルオーバー オンラインリカバリ レプリケーション レプリケーション レプリケーションには、PostgreSQLがもともと提供しているレプリケーション機能と、 pgpoolが提供しているレプリケーションの2種類がある。 PostgreSQLのレプリケーション ストリーミングレプリケーション プライマリノードのWALを、リアルタイムでスタンバイノードに転送することで、 プライマリとスタンバイのDBの同期を取ることができる。 WAFの転送と、WAFからの複製処理に時間がかかると同期が遅延する https://www.fujitsu.com/jp/products/software/resources/feature-stories/streaming-replication1/?postgresql-inside pgpool-Ⅱのレプリケーション ネイティブレプリケーション 更新クエリを全てのサーバに送信してレプリケーションを行う。 同期遅延なし 更新性能が50%に落ちる フェイルオーバー pgpool-ⅡがPostgreSQLを定期的に監視し、ダウンしたノードは自動的に切り離される ノードがダウンした場合の処理はshell script形式で記述する。 オンラインリカバリ サービスを止めずに停止したノードを復帰させる機能。 マスタのバックアップから、リカバリする。 https://www.pgpool.net/docs/latest/ja/html/example-cluster.html https://www.sraoss.co.jp/prod_serv/support/cluster_option.php https://www.obci.jp/wp-content/uploads/2016/08/TIS_PostgreSQL.pdf 用語 データベースクラスタ DBサーバ内のにあるDBの集合体、およびDBのディスク上の保存領域を示す。 データベースクラスタのスナップショットは「ベースバックアップ」と言われる。 WAL(Write Ahead Log) DBに対して更新を実施する前に、作成される更新内容を記録したトランザクションログ。 WALのログを利用することで、DBの複製が可能。 WALログは、postgresのデータディレクトリ以下のpg_xlogディレクトリに、000000010000000000000000から始まるファイルとして配置される。 https://www.postgresql.jp/document/9.4/html/continuous-archiving.html アーカイブログ WALのバックアップファイルを示す。 PostgreSQLの設定ファイルで指定した特定の条件を満たすと、WALファイルはログの切り替え(ログローテーション)を行う。 切り替え後の古いログはアーカイブログとして別ファイルに保存される。 アーカイブログの保存先は設定パラメータarchive_commandに指定する。 PITR(Point In Time Recovery) 特定の時点のDBをリストアする機能。

udevでデバイスファイルのシンボリックを作成

  • POST
udevでデバイスファイルのシンボリックを作成 はじめに Linux環境において、デバイスファイルのファイル名は機種により異なるが、 RXTXライブラリのようにライブラリ側で、デバイスファイル名が固定されているケースがある。 この場合は、デバイスファイルを参照するシンボリックリンクをライブラリが指定しているデバイスファイル名で作成することで、ミスマッチを回避できる。 Linux環境でデバイスファイルのシンボリックを作成する手順を記載する。 udevとは udevは、Linuxにおいての/dev配下のデバイスファイルの管理を行う仕組みである。 USBフラッシュメモリなどのデバイスの差し込みを行うと、/dev配下にデバイスファイルが作成され、デバイスを取り外しすると、/dev配下のデバイスファイルが作成される。 シンボリックリンクを作成 RaspberryPi環境での実行する。 USBフラッシュメモリを装着すると、デバイスファイル(/dev/sda)が作成される。 以下のコマンドを実行すると、デバイスファイルの情報が表示される。 $ udevadm info -a -n /dev/sda # SUBSYSTEMSの項目を確認する looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2': KERNELS=="1-1.2" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{bDeviceClass}=="00" ATTRS{manufacturer}=="UFD 2.0" ATTRS{bmAttributes}=="80" ATTRS{bConfigurationValue}=="1" ATTRS{version}==" 2.00" ATTRS{devnum}=="9" ATTRS{bMaxPower}=="200mA" ATTRS{idProduct}=="3600" ATTRS{avoid_reset_quirk}=="0" ATTRS{urbnum}=="1558" ATTRS{bDeviceSubClass}=="00" ATTRS{maxchild}=="0" ATTRS{bcdDevice}=="0100" ATTRS{bMaxPacketSize0}=="64" ATTRS{idVendor}=="13fe" ATTRS{product}=="Silicon-Power32G" ATTRS{speed}=="480" ATTRS{removable}=="removable" ATTRS{ltm_capable}=="no" ATTRS{serial}=="201108SP001507B80507CD4F175B" ATTRS{bNumConfigurations}=="1" ATTRS{busnum}=="1" ATTRS{authorized}=="1" ATTRS{quirks}=="0x0" ATTRS{configuration}=="" ATTRS{devpath}=="1.

atom-sourcetrailでソース解析

  • POST
atom-sourcetrailでソース解析 はじめに Sourcetrailとは オーストラリアのCoati Software社が開発したOSSのコード可視化ツール。 ソースコードを解析し、コード間の依存関係をグラフィックに表示する。 対応言語は、Java、Python、C等。 https://www.sourcetrail.com/documentation/#Installation Atomとは アメリカのGithub社が開発したOSSのテキストエディタ。 様々なプラグインが開発されており、プラグインのインストールにより、拡張が可能なことが特色。 https://atom.io atom-sourcetrailとは Atomで開いたソースコードをSourcetrailで表示したり、 Sourcetrailで開いたソースコードをAtomで編集したりすることができるAtom用のプラグイン。 https://atom.io/packages/atom-sourcetrail インストール Atomのインストール https://atom.io からインストーラーをDLして起動すると、インストールされる。 atom-sourcetrail 下記のように「Settings」→ 「Install」からatom-sourcetrailを選択し、インストールする。 Sourcetrailのインストール 下記のリポジトリから自分のPC環境に合ったZipファイブをDLして、解凍する。 https://github.com/CoatiSoftware/Sourcetrail/releases Sourcetrailを起動 Zipを解凍したフォルダ配下の「Sourcetrail.exe」を実行すると、Sourcetrailが起動するので下記の手順でプロジェクトを作成する。 atom-sourcetrailによるAtomとSourcetrailの連携 SourcetrailからAtomへの切り替え Sourcetrail上で、右クリックして、「Show in IDE」を選択すると、 Atom上に該当のソースコードが表示される。 AtomからSourcetrailの切り替え Atomで「Package」 → 「Coati」 → 「Start server」を実行する Atomでソースコード上で、右クリックして、[Send location to Coati] を実行 参考サイト http://www.cloudsquare.jp/kumonosu/program/java/post-2253/