月別アーカイブ 11月 2019

著者:ym

SYSTEM_SERVICE_EXCEPTION cldflt.sys Windows10におけるブルースクリーン症状

AccessのODBC問題でアンインストールを行ってますが、その後数日経過して、 2019/11/24 と、11/25 の2日連続と最近連続で発生しました。

以下リンク関連するのだろうか。

原因不明。情報まちです。

・sc query cldflt は STAT 4 RUNNING です。
・私は、夜帰り際に発生します。

【SYSTEM_SERVICE_EXCEPTION】Windows10におけるブルースクリーンの発生原因とその解決方法について【Ver1909】

https://answers.microsoft.com/ja-jp/windows/forum/all/systemserviceexceptionwindows10%E3%81%AB%E3%81%8A/774908ab-1b83-4c95-aeca-b2876e00e1f8?auth=1

KB4517389がインストールされた後、cldflt.sysでブルースクリーン エラーはsystem service exception

https://answers.microsoft.com/ja-jp/windows/forum/all/kb4517389%E3%81%8C%E3%82%A4%E3%83%B3%E3%82%B9/e5ea3b3c-e097-4bf9-b53f-a8b0762a2719
  • この記事いいね! (0)
著者:ym

ドローンの不法侵入防止システム!?

ウィルス対策ソフトで、そこそこ有名なカスペルスキーですが。

「ドローンの不法侵入防止システム」というのを作ってるらしいです。

ロシアのセキュリティ企業Kaspersky Labは、許可なく飛行してきたドローンの強制着陸などが可能な不法侵入防止システム「Kaspersky Antidrone」を開発した。

https://japan.cnet.com/article/35145882/

自由にやりたい。 でも確かにドローンは問題は多い。

そこそこの電波を発信しているのだと思うけど、ここ浜松市には航空自衛隊もあるので、このシステムの導入自体がなかなか難しそうな気配がします。

でも必要でしょうね。

  • この記事いいね! (0)
村上 著者:村上

【Android】ActionBarのタイトルとボタンの色を白色に変更する

前回に引き続き、今回も Android の ActionBar についての記事です。
今回は、ActionBar の戻るボタンやタイトルの色を白色に変更する方法です。
ActionBar を濃い色で指定しているので、戻るボタンの色を白に変えたかったのですが、どこを直すのかがわかりにくかったのでまとめました。

参考にさせていただいた記事はこちらから。

android – Changing ActionBar Text and Button color when using Theme.AppCompat.Light – Stack Overflow
https://stackoverflow.com/questions/30720873/changing-actionbar-text-and-button-color-when-using-theme-appcompat-light

 

修正するのは、プロジェクトの res > values ディレクトリ内にある styles.xml ファイルです。
このファイル内にある AppTheme という名前のタグの parentTheme.AppCompat.Light.DarkActionBar に変更します。
具体的には下記のとおりです。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    ......
</style>

変更はこれだけで、実機で確認したところ、きちんと白色に変更されていました。

他にも、タグ内に下記を追加するという方法もあるようでしたが、私の環境では上手くいきませんでした。

<item name="android:textColorPrimary">#fff</item>

そのため、他に影響が出ないようでしたら、parent を変更する方法をおすすめします。

 

以上、Android の ActionBar のボタン・タイトルの色を白色に変更する方法でした。
ご参考になれば幸いです。

  • この記事いいね! (0)
著者:杉浦

【PHP】namespaceとautoloadの概要と連携

 最近、独自のオートローダを持つPHPプログラムを触ることになったので大雑把にnamespaceとautoloadの概要と連携を紹介します。
 namespace(名前空間)は1ファイルでも有効な変数名、関数名、クラス名等の区分け用の仕組みです。次の画像の様にちょっとしたスクリプトでも機能します。

 大雑把には各定義に接頭辞がついている様なものです。よくIDEのジャンプがnamespaceを元に働きますが、namespaceはファイルの読み込みに直接の関係を持ちません。
 autoloadは大まかには

public function autoload(string $呼び出す対象の名前){
    // なんやかんや処理
    require $呼び出す対象の書かれたファイルのパス;
    // あるいは
    include $呼び出す対象の書かれたファイルのパス;
}

PHP: require – Manual
PHP: include – Manual
をいい感じに動かす機能です。autoloaderによって多数のPHPソースコードファイルの中から必要な分だけPHPソースコードファイルを読み込みます。
 namespaceとautoloadのそれぞれは互いに関係ありません。PSR-4で定められた規約に従ってnamespaceとautoloadは連携します。
PSR-4 autoloader (日本語訳) – Qiita
PSR-4: Autoloader – PHP-FIG
 PSR-4はnamespaceとファイルの配置を定義づける規約です。大雑把にいえばnamespaceの名前、階層をディレクトリ構造と一致させなさい、という規約です。
 新しめのフレームワーク(laravelなど)やオートローダ(composerなど)はこのPSR-4に従っているためnamespaceによってファイル読み込みをしているとも言えます。ファイルを読み込めない時はコーディングをしている人が謎namespaceを定義してしまった時が大半です。逆にPSR-4に従っていない古いオートローダはnamespaceが通じているといってソースコードが読み込めているとは限りません。そういった場合、使われているオートローダのドキュメントなりソースコードなりを読み込む必要があります。
 

  • この記事いいね! (0)
asaba 著者:asaba

【webpack】webpack3でUglifyjsWebpackPluginを使う方法

UglifyjsWebpackPluginとは、webpackに自動でjavascriptを圧縮させるプラグインです。

公式によるとbundleでまとめたjavascriptを、更に改行や不要なコード削除を行うことで

読み込み速度を改善させることができるみたいですね。

webpack4ではwebpack.config.jsで以下のようにして使うことが出来ます。

 

c

//webpack.config.js
<pre>const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); 
  module.exports = {
   optimization: { minimizer: [new UglifyJsPlugin()],
  },
}</pre>

 

webpack3の場合はoptimizationで書くことが出来ないので

npmで必要なプラグインをダウンロードした後に以下のように

定義をします。

 


//webpack.config.js

const webpack = require("webpack");

plugins: [new webpack.optimize.UglifyJsPlugin(),],

  • この記事いいね! (0)
takahashi 著者:takahashi

DNS over HTTPS、近いうちにWindowsに実装される!?

先日、MicrosoftがDoHをWindowsに搭載することを発表しました。

Firefox/Google Chromeに続き、Windowsでも“DNS over HTTPS”をサポートへ – 窓の杜

DoH(DNS over HTTPS)は、DNSへのIPアドレスの問い合わせリクエストをHTTPSプロトコルを経由(カプセル化)することでDNS通信を暗号化する方法です。

DNSプロトコルそのものを暗号化するのではなく、既存のHTTPSの仕組みを使うため扱いやすいうえ、HTTPSポートをブロックしている環境はかなり限られてくるので、ファイアーウォールが置かれている環境でも設定の変更なく通信が通りやすいのが特徴です。

現時点ではまだDoHを正式に実装しているのはFirefox/Chromeの2ブラウザのみで、OSレベルでの対応は現状Androidのみですが、先日、MicrosoftがWindows OSの標準機能としてDoH対応を行う予定であることを明かした、というのが今回のニュースです。

ブラウザレベルでの対応では、あくまでDoH対応ブラウザを使用した通信でしかDoHが利用されませんが、OSレベルで対応されれば、そのマシンで行われる(OS上で動作する全アプリの)全通信のDNSリクエストをDoH経由で行わせることが可能になります。

DoHはユーザーのDNS要求を意図しない第三者に見せないようにすることでユーザーのプライバシーを保つ仕組みなので、OS全体で適用されるようになればより信頼性も向上することになります。

インターネットの自由性と安全性の担保の一つとして、DoHは重要になってくると個人的には考えているので、Windowsでの標準サポートはありがたい話だと思います。

今後。他のOSも追従してくるのか、今後の動きにも注目したいですね。

  • この記事いいね! (0)
著者:ym

近所の無線Wi-Fi

隣の家のWi-Fiの電波が届いていたので使ったのだと思いますが、えらい被害になっている情報を発見しました。

勝手に燐家の無線LANを使った親子、それが原因で殺される

https://it.srad.jp/story/19/11/22/1552231/

最近の無線ルータはセキュリティの強度もよくなっているのだとは思いますが・・。

暗号化の認証をかけていなかったのでしょうかね。

利用する場合は、提供元がはっきりしていて暗号化キーのあるWiFiを使いましょう。

  • この記事いいね! (0)
asaba 著者:asaba

【react】Loading chunk failedでdynamic importができなくなったときの対処法

コードを分割して初回読み込みをチューニングする手段の中の一つに

dynamic importというものがあります。

こちらは、あらかじめ読み込みたいファイルのみを読み込み、ボタンを押したときや

render時などの特定のタイミングで別のファイルを読み込ませるテクニックの一つです。

先に主要部分のファイルだけ読み込んでおけばユーザーを待たせることなく

、後でボタンをタップなどのアクションに合わせてコンポーネント

を出せばいいだけなのでかなりお手軽だなと思い実装。

ところが関数を作ってビルドをするとLoading chunk 0 failedで読み込みエラー発生。

原因は、app.jsのRouteで作成漏れでした。

Dynamic Importをするときは、必ず

</pre>
import Test from './test';

<HashRouter>
<Switch>

<Route exact path="/test" component={Test} />

</Switch>
</HashRouter>
<pre>

と定義する必要がありました。

 

後は主要ファイルの中で切り離したいコンポーネントを

以下のように組み立ててコンポーネントとして差し込めば

完成です。

 

</pre>
main.js

render() {

const SubConponent = Loadable({
loader: () => import('./subcomponent'),
loading: Loading,
});

return(

<SubConponent/>

);

}
<pre>
  • この記事いいね! (0)
村上 著者:村上

【Android】setTitle()で指定したActionBarのTitleが表示されない時の対処法

凄く初歩的ですが、今後も同じミスをやらかしそうな予感がしたので、未来の自分のためにまとめ。
タイトル通り、.setTitle() を使って ActionBar の Title を指定したのに表示されなかった時の対処法です。

今回参考にさせていただいた記事はこちらから。

Android getActionBar().setTitle does not work – Stack Overflow
https://stackoverflow.com/questions/26045431/android-getactionbar-settitle-does-not-work

ちなみに5年前の投稿でしたので、結構古いです。
が、私の環境ではこちらの方法で解決可能でした。

 

対処法ですが、getSupportActionBar().setDisplayShowTitleEnabled(true); を追加するだけでした。
具体的には下記のとおりです。

getSupportActionBar().setDisplayShowTitleEnabled(true);  // この行を追加
getSupportActionBar().setTitle("[タイトル]");

実際に実機(Android 7.0 と 8.0)で試したところ、問題なくタイトルが表示されていました!
念のため、他の端末でも確認する予定ですが、多分問題はないはずです。

 

以上、Android の ActionBar のタイトルが表示されない時の対処法でした。
ご参考になれば幸いです。

  • この記事いいね! (0)
takahashi 著者:takahashi

楽天カードに大規模障害が発生した件で思うこと

先日、 楽天カードでなかなかヤバい障害が発生していましたね…

【一部復旧】当社サービスの一時利用停止のお詫びとお知らせ
(株式会社QTnetの電源設備更新作業に伴う不具合)- Rakuten Card

上記記事によると、2019年11月23日(土)6時ごろから、楽天カードや楽天ペイ、およびこれらサービスの利用明細確認などの機能が障害により停止し、なんとカード決済までも止まってしまう障害が発生していました。

カード決済機能と楽天Payは当日中に復旧しましたが、明細確認機能などはこの記事作成時点においてもまだ復旧していません。

原因は楽天カードの決済サーバーが置かれているQTnet社のデータセンターで、電源設備入れ替え時に電源障害が発生し電源が一瞬落ちたそうで、それが原因で同データセンターで稼働していたサービスが影響を受けてしまったようです。

この関係で、楽天以外にも、同データセンターにサーバーを置いていた官公庁や電力会社のHPにも障害が発生していたようです。

楽天カードなど260社・自治体に影響 九電系で障害 – 日本経済新聞

入れ替え中とはいえ、データセンターで電源を一瞬でも落としてしまうというのはあってはならない障害ですが、AWSですら電源ではないですが設備設定の入れ替えで障害を起こしたこともあるぐらいで、残念ながらデータセンターであっても障害が起きるときは起きてしまうものです。

個人的に、今回一番に問題に感じたのは楽天側のシステム構成の問題。

費用の問題もありますし、ダウンタイムが許容されるようなサービスであれば単一データセンターで動かしていたとしても理解はできます。

しかし、楽天カードはクレジットカードという超重要な社会インフラですし、たとえそれなりのコストがかかったとしても、決済機能だけでも絶対に止めてはいけないシステムであったはずです。

最近ではクレジットカードをメインに使用し、現金を持ち歩かない人も増えているようですが、もし食事やサービスを利用した際に現金をもっていない状況で(利用者側の落ち度なく)カードの利用ができなくなってしまっていたら、利用者がどのような状況に陥るのかは想像に難くありません。

生活費をカードで決済している場合もあります。

また楽天カードはETCも発行しています。

実際に起きていたかどうかはわかりませんが、決済ができないということはETCなどでの利用でも問題が発生した可能性もあると思います。

もし出場時に問題が発生して出られなければ、利用者はパニックに陥りかねないとおもいます。

停止すれば日常生活に実害をもたらしてしまう可能性のあるサービスが、単一のデータセンターが障害されただけで止まってしまうという状況は、楽天カード側の障害対策が甘すぎると感じました。

今回は電源断でしたが、万が一そのデータセンターが災害などに巻き込まれて完全に破壊されてしまったら、どう復旧するつもりなのでしょうか。

もう少し、耐障害性のことを考えたシステム設計にすべきなのではないかと個人的には感じました。

今後の対策に注目したいと思います。

  • この記事いいね! (0)