投稿

ASDブログ移転のお知らせ

ASDブログ移転のお知らせ  下記のURLへ移転致しました。   https://www.asd-inc.jp/blog  今後ともよろしくお願いします。

新年度キックオフ会をしました

こんにちは、福岡事務所の荒平です。 8月9日に新年度キックオフ会を行いました。 今年度や10年後の目標など、弊社の目指す先についての意識合わせなどがありました。 会社の目標を認識することで、社員一体となって進んでいけるように思いました。 また、私個人の目標としては実際の業務で扱っているAWSについての資格を取ることです。 その後、全社員でボウリング大会(2ゲーム)を行いました。 合計スコアで順位を決め、1位の人には商品があるということで トップを狙う人や単純にボウリングを楽しむ人などいました。 また、投球補助台(滑り台のようなもの)を使う人や、サウスポー、 ストレート、カーブなど各々様々な投球法で投げていたため、他の人を見ているだけでも楽しめました。 ストライクを取ったり、難しい配置でスペアをとったりすると歓声が上がり、とても盛り上がりました。 最後は懇談会がありましたが、ボウリングが思った以上に早く終わり 予定していた時間まで1時間ほど余裕があったため、それまで各々自由に過ごしていました。 私は他の社員3人と近くのカフェで時間になるまで色々と喋っていました。 最近すっかり世間に定着しているYoutuberについてやソシャゲについてなどの話で盛り上がりました。 他の社員たちはゲームセンターで遊んでいたり、0次会をしているメンバーもいました。 懇談会では各々様々な話で盛り上がり、時間があっという間に過ぎました。 普段は熊本本社と福岡事務所ということで物理的に距離が離れていますが、 今回のようにボウリング大会や懇談会など、全社員で交流することで楽しくコミュニケーションを深めることもできました。

マリンメッセ福岡で開催された福祉用具機器展に弊社製品を出展しました

イメージ
こんにちは。 熊本事業所ヘルスケア事業部の上田です。 先日、7月3日(水)と4日(木)にマリンメッセ福岡で開催された 【CareTEX福岡2019】に睡眠見守りセンサー"まもる~の"を出展しました。 そもそも、"まもる~の"ってなあに?と思われますが、 介護施設向けに販売している睡眠見守りセンサーであり、 入居者様のベッド上の活動状態と居室環境をモニタリング出来ることが特徴です。 今までは介護施設向けの製品ラインナップしかなかったのですが、 介護施設向けから発展させた、在宅介護向けの見守りシステムを紹介すると 多くのお客様から反響がありリリースされたら積極的に検討したい等の声も頂きました。 展示会ではその場で説明をして、その場でフィードバックがもらえるので、 それまで自分が気付かなかった事や知らなかった事など、今後の営業で役立つ情報を得られました。 介護業界の事については勉強中ですが、 皆様の要望に応え、より良い製品にしてお役に立てるよう頑張って参ります。 遅くなりましたが、 会期中は天候が悪い中、弊社ブースに足を運んで頂きありがとうございました。 今後ともASD及び"まもる~の"をよろしくお願いいたします。 次回は、9月3日(火)と4日(水)に仙台国際センターで開催される 【CareTEXOne仙台2019】に出展します。 こちらも来場お待ちしております! まもる~の公式ホームページはこちら。 http://mamoruno.miel.care/

はじめてのITインフラ

こんにちは、熊本事務所の萓嶋です。 先日、熊本事務所で新人向けにITインフラについての勉強会が行われました。 初めは難しそうでとっつきにくいイメージがありましたが、勉強してみると思っていたより 難しくなく、ある程度理解できたように思えます。 今回はその復習も兼ねて、ITインフラについて簡単に説明したいと思います。 ----------------- そもそもインフラとは? インフラストラクチャーの略で、下部構造のことを指します。 例えば社会インフラであれば道路や水道など、社会生活を支える基盤のことを指すので、 イメージしやすいと思います。 それをITに置き換えると、アプリケーションを動作させるための下部構造がITにおけるインフラとなります。 このITインフラはパソコンやサーバなどのハードウェアと、 OS(Windowsなど)やミドルウェア(DB製品など)のソフトウェアに分けることができます。 どちらもアプリケーションの開発には不可欠な基盤となる要素です。 ----------------- 実際のシステムにおけるITインフラの例は? 企業における一般的なシステム構成として、「クライアント・サーバシステム」があります。 この中でも、クライアントがWEBブラウザを使用するシステムを「Webシステム」と呼び、 これは「Web3層構造」というもので構成されます。 Web3層構造は以下の3つから成り立ちます。これらがITインフラ要素です。 ・Webサーバ APサーバからもらった動的コンテンツとともに、画像などの静的コンテンツを表示する。 ・APサーバ 動的コンテンツを提供する。主にアプリケーションを実装する。 ・DBサーバ データを提供する。APサーバからの要求に従ってデータを返す。 紹介したのはごく一部ですが、上記のようなハードウェアやソフトウェアからなるITインフラ があって初めて、アプリケーションを作ることができます。 ------------------- 効率的に使う方法 業務運用する場合、「仮想化」すればこうしたITインフラ要素を効率的に使うことができるようになります。 例えばサーバを仮想化するとすれば、1台の物理サーバに複数の仮想サーバを作成できます。 こう...

わんくま同盟 勉強会でスピーカーしてきました。

イメージ
こんにちは。 熊本事務所の庄村です。 先日、2019/5/11(土)に熊本で開催された わんくま同盟の勉強会に、スピーカーとして登壇してきました。 私が行ったセッションの内容は「Open XML SDK開発事例」と題して、 MicrosoftのOfficeファイルを操作するための「Open XML SDK」についての紹介や、 開発の進め方の例などを説明してきました。 当日発表した内容の一場面 スピーカーは初めてだったこともあって、 当日はかなり緊張しましたが、無事に終えることができました。 カチカチに緊張している私..。 元々自分は、こういった勉強会のようなコミュニティ活動には、 あまり積極的に関わることが無かったのですが、わんくまの関係者と縁があり参加しました。 自分が調べたこと、やったことを人の前で発表するのは 少しばかり勇気がいりましたが、すごく新鮮な感じでした。 スピーカーとして発表することで、 その場でフィードバックがもらえ、自分の知らないこと、 あるいは自分と同じことを考えている人がいることを知り、大変刺激になりました。 また、他の方のセッションも大変参考になりました。 今回、勉強会への参加、スピーカーをやって非常によかったと思います。 勉強会は、いろいろなテーマで各地にて開催されています。 みなさんも、興味があること知りたいことなどあったら、 勉強会に参加してみてはいかがでしょうか? ※当日にライブ配信された勉強会の模様は、Youtubeで視聴できます。  他の方のセッション内容もためになるので、よかったらご視聴ください。    わんくま同盟 熊本勉強会 #07   https://www.youtube.com/watch?v=ZTaW7L866aU

就活でMOSは役立つのか

こんにちは、熊本事務所の清島です。 今日はタイトルにもあるようにMOSについて就職活動時の目線からお話しようと思います。 私が就活を行ったのは一昨年ですが、この時のことを振り返るきっかけになったのは 今年就活の弟に「MOSの資格について取得したほうがいいのか」と聞かれたからです。 そもそもMOSとは、マイクロソフトオフィススペシャリストの略で、 Officeアプリケーションの操作に関する国際資格のことです。 公式ホームページ https://mos.odyssey-com.co.jp/ 私はワードとエクセルのどちらも上級コースを受験しました。 受験の理由としては ・自動車運転免許しか資格を持っていなかった。 ・学校で講座、試験を受けることができた。 ・恐らくどの業種でもPCは使うことになるのでアピールしやすいのではと思った。 ・既に一般コースを受けていた友達からおススメされた。 試験はPCを使って行い、結果も終了後にその場で表示されます。 結果を見に行く、結果が届くのを待つ、がないのでお手軽だと思います。 また、試験内容も勉強したことを覚えてさえいれば比較的簡単に合格することができます。 おかげで履歴書の資格欄が空欄になることは避けられましたが、今年改めて弟に質問されて あの受験は必要だったのかと思い返しました。 ここから先は私個人の意見になりますが、 私の就活ではこの資格が有利に働くことはなかったと思います。 受けた業種にもよるのでしょうが、面接で資格の有無について尋ねられることは少なく、 また、MOSのことを知らない人事の方もいらっしゃいました。 あくまで私が受けた業種での話なので業種、職種によっては重要度が変わってくるかもしれませんが、 この資格があることをアピールポイントにしたり、自己PRのネタにすることは難しいと思います。 しかし、資格があることで日常で使う程度の知識はあると言うことができますし、 勉強して、試験を受けることが、一通りの機能を覚えるいい教材になると思います。 (試験後忘れてしまったことも多いですが……) 例えばエクセル上級の試験ではグラフ、表の作成や関数を正しく使うことなどが出題されます。 簡単なマクロ作成問題などもあり、これらの知識は事務系の仕事をする人たちは ...

社内歓迎会がありました

4月12日は熊本事務所社員での歓迎会でした。 社内では社員同士の親睦を深めるため、不定期で交流会を開いています。 今回は新入社員が入社したため、歓迎会(交流会)として皆で鍋を食べに行きました。 お店では鍋をつつきながら皆様々な話題に花を咲かせておりました。 新入社員が平成2桁生まれということに、僅かながら世代差を感じて平成生まれ一同がショックを受け、時代の流れを感じてしまう一幕もありましたが、そんな中でもあれは知っている、これは知らないと共通の話題を探して盛り上がりました。 会は終始和気あいあいとした雰囲気で、新入社員も周りと打ち解けていたようでした。 自分が新人で、会社に馴染めるか不安だった頃を思い出しましたが、 新入社員の姿を見て安心した限りでした。 今後もこうした機会を設けて、親睦を深められたらなぁと感じた次第です。

AWS WAFを導入する理由

こんにちは。AWS初心者のASD堤です。 サーバに不正アクセスされクレジットカードの情報漏洩や会社職員の個人情報が流出したりと、何かとセキュリティに関連するニュースが立て続けに起きているこの頃。 不正アクセスの手口は様々ありますが、主に使われるケースは次の2つになります。 ・不正ログイン ・脆弱性等の悪用 不正ログインは利用者側がログインIDやパスワードを適切に管理していれば、被害にあう確率は下がるでしょう。 しかし、脆弱性については日々変化しており対応するのも一苦労・・・。 SQLインジェクションやクロスサイトスクリプティング、ディレクトリトラバーサル等、技術者にとっては悩みのタネの一つ。 そのような脆弱性対策を簡単に実現してくれるAWS WAFなるものが2015年からサービスインされています。 そもそも、WAFとは一体なんなのか? Web Application Firewallの略で、正常な入り口から入ってくる悪意のあるデータを排除してくれる機能です。 よく耳にするFirewallは、IPアドレスとポートを入り口として、「この入り口には〜のIPアドレスは入っちゃダメ」とか 「この入り口は常に閉じておかないとダメ」と言った、不正な通信経路からの侵入を防ぐものでした。 しかし、正しい通信経路からくる不正なデータに対しては無力な訳です。 そこでWAFでは、通過するデータの中身を解析し、あらかじめ設定しておいたデータパターンと入力データを突き合わせ、 マッチしたデータを遮断・排除してくれます。 ただし、すべての不正データを防げるわけではなく、データパターンをガチガチに設定してしまうと 正常なデータも予期せぬ形で遮断してしまう可能性があります。 誤検知や誤遮断が発生するリスクを踏まえて、使う事をお勧めします。 データパターンを自分でカスタマイズし設定できるのですが、 現在はサードパーティのベンダーが様々なユースケースに対応するルールを提供してくれています。 マーケットプレイスから購入し、ALBやCloudFront等にアタッチする事で簡単に導入できるようになっています。 デメリットとして、サードパーティのルールはチューニングができないことに注意してください。 以下にWAFの要素と価格について簡単に紹介して...

フレッツ光を新方式(IPoE方式)に乗り換えましょう

こんにちは。福岡事務所の石橋です。 光回線による一般向けインターネット接続サービスの登場から15年以上が経過し、今ではほとんどの地域で利用可能となっています。 NTTのフレッツ網を利用した最大1Gbpsプランが主流ですが、夜間など利用者が多い時間帯に、動画が頻繁に止まるくらい遅い場合があります。 何故遅くなるのか?その原因と改善方法について説明します。 2015年ごろまでに光回線を契約した場合、ほぼ間違いなくPPPoE方式でインターネットに接続しています。 2016年以降でも、申し込んだISP(インターネットサービスプロバイダー)次第ではこの方式での接続になってしまいます。 PPPoE方式では、県ごとに存在するNTTの施設内で、網終端装置によりフレッツ光網とISP網とが接続されています。 ISPの県ごとの利用者数や通信量に対してこの部分の設備数が不足すると、通信速度が低下してしまいます。 また、設備の増設はNTT側が行っているため、ISP側が希望しても増設できない場合があります。 近年では、スマートフォンの普及と動画視聴などでの利用から、著しく混雑することが増えてきました。 この問題を抜本的に改善できるのが、IPoE方式によるインターネット接続です。 IPoE方式では、東京または大阪の接続点(2018年時点)まではフレッツ網を通り、そこからはゲートウェイルータを通してISP網に接続しています(両者の間をVNE事業者が仲介しています)。 PPPoEと違い、接続事業者側が自由に設備を増設することができるため、接続点がボトルネックとならず、混雑することがありません。 本来、IPoE方式はIPv6のみのサービスで、これだとGoogleやYoutube、Facebookなどごく一部のサイトしか閲覧できません。 しかし、IPoE方式と、PPPoEなしでIPv4接続を提供する方法を組み合わせることで、PPPoEとほぼ同じようにインターネット接続を行うことができます。 ISPによって異なりますが、v6プラスやIPv6オプション、IPv6 IPoE+IPv4 over IPv6方式などの名前で提供されています。 注意点として、これらの方式では対応ルーターへの買い替えが必要です。従来のルーターは利用できません。 大手ISPのほか、携帯各社の光コ...

C#で配列操作の可読性を高めるには

こんにちは。福岡事務所の荒平です。 私は前回LINQを使用し、ソースコードの可読性を高める記事を書きました。 今回も可読性に注意しながら「配列などの複数要素から特定の条件に一致する先頭要素」を取得する方法について説明していきたいと思います。 さて、いきなり質問ですが、皆さんは配列から特定の条件に一致する先頭要素を取得したいときどのようにして取得しますか? ・配列の中をfor文などのループで回して条件に合う要素が見つかればそれを取得してbreakする… 条件に合った要素を取得することはできますが、可読性の視点から見るともう少しスマートに書きたい… そこで登場するのがLINQメソッドの「First」です。 ■Firstとは  配列などの複数要素のうち、先頭の要素(条件を指定した場合は条件に一致する最初の要素)を返すメソッド  ◆基本的な書き方①   value = 配列.First(条件);   このように書くだけで配列の中から条件に合った最初の要素をvalueに入れることができます。   しかし、条件に一致する要素が1つもない場合System.InvalidOperationExceptionの例外が発生してしまいますので、   実際にはより汎用的な「FirstOrDefault」というメソッドを使います。  ◆基本的な書き方②   value = 配列.FirstOrDefault(条件);   こちらは条件に一致する要素が1つもない場合は型のデフォルト値(0やnullなどデータ型ごとにdefault構文で取得できる値)を返します。     ここまで配列から要素を取得することについて書きましたが、もちろん配列だけではなく「List」などのコレクションにも使えます。 ■「Last」、「Single」メソッド  ちなみに類似機能として「Last」、「Single」があります。  (それぞれにXxxOrDefaultがあります)  Firstが最初の要素を返すのに対し、Lastは最後の要素を返します。  Singleは条件を満たす唯一の要素を返します。  しかし、Singleについては唯一の情報を取得する目的に使われるメソッドなので、条件に一致する要素が複数あった場合、  System.Inv...

Windows 10に.NET Framework 3.5が入らない?

イメージ
こんにちは。 熊本事務所の庄村です。 今回は、実際の業務中に遭遇したトラブルとその解決法についてご紹介したいと思います。 弊社で開発し、お客様に納品しているアプリケーションについて、 最近、Windows 10上で動作するか検証する機会がありました。 対象のアプリケーションは.NET Framework 3.5を使用しており、 現在はWindows 7上で運用していますが、近日中にOSをWindows 10に移行する予定のため、 OS移行前に動作検証しておく必要がありました。 事前の調べでは、Windows 10では追加のインストールが必要なものの、 .NET Framework 3.5はサポート対象となっているため、特に問題は発生しないはずでした...。 しかし、業務アプリケーションのインストール時に、 自動で.NET Framework 3.5のダウンロードインストールが実行された際、途中でエラーが発生。 改めて、Microsoftのサポートサイトを確認すると、Windows 8以降で発生する現象の様でした。 しかし、今回発生したエラーコード:0x800F0954とそれに対応する直接の対策手順は確認できませんでした。 エラーが発生するタイミングから、ダウンロードの時点で失敗しているようなので、 その後の調査で判明した、コンポーネントのダウンロード元を変更するグループポリシーを設定することで、 何とか.NET Framework 3.5のインストールに成功しました。 以下にその際の対応手順を記します。 1. グループポリシーエディタを起動する。 Winキー+Rキー押下で表示される、「ファイル名を指定して実行」に"gpedit.msc"を入力し、 [OK]ボタンを押して「グループ ポリシー エディター」を起動します。 2. オプションコンポーネントのインストール設定画面を開く。 上記選択行をダブルクリックします。 3. オプションコンポーネントのインストール設定を有効にする。 上記青枠を選択し、[OK]ボタンを押下します。 4. .NET Framework 3.5を有効化する。 上記1~3までの手順実施後に、コントロールパネルの...

SambaがWindowsサーバーの代わりになる理由

こんにちは。熊本事務所の上田です。 今回はSambaについてお話ししようと思います。 まずSambaとは何か? 一言で言うと、LinuxをWindowsファイルサーバーとして利用出来るソフトウェアです。 近年では、本家のWindowsサーバーに代わって多くの企業や官公庁などで基幹サーバーとして活躍の場が広がっています。 何故Windowsサーバーの代わりになるのか?そのポイントは3点あります。 まず、導入時の初期コストが抑えられます。 クライアントマシンになると一般的にWindowsになると思いますが、 WindowsOSをファイルサーバーとした場合、接続にCAL( = Client Access License)というライセンス料が必要なのです。 LinuxでSambaを利用する場合はCALの支払いが必要ありません。 次にランニングコストが抑えられます。 Windowsサーバー系のOSだと高性能なスペックを要求に対して、Linuxを動作させる場合は低スペックな性能でも十分です。 例えばWindowsXPやWindowsVista世代のPCでも問題なく動いてくれます。 また、OSのサポートが切れてしまった際新しいOSへ入れ替える必要が出てきます。 Windowsはライセンスの購入が必要なので有料ですが、Linuxなら無料。 古いPCを再利用することでハード面でもソフト面でも費用を大きく抑えることが出来ます。 最後はセキュリティです。 セキュリティ対策はWindowsもLinuxも大きな違いはありません。 ただ、セキュリティホールなどの問題が見つかった場合、問題が解決されるまでセキュリティが無防備となってしまいます。 WindowsはMicrosoftから修正プログラムが提供されるまで時間が掛かりますが、 オープンソースであるLinuxだと、世界中のプログラマーによって修正が行われる為比較的早く提供出来ます。 但し、Linuxの有料セキュリティソフトは法人向けが殆どなので、個人で使用する場合は注意が必要です。 私もファイルのバックアップ用途として運用を始めましたが、 自宅で使う分なら特に難しい設定を必要としませんので、Linux初心者でも手軽に利用できる点は素晴らしいと思いました。 使わなくなったPCやサーバ...

GO言語のgofmtの-tabオプションは、v1.2以降使えない

イメージ
こんにちは、ASD熊本の菊池です。 最近業務でGO言語を触る機会があったのですが、 インデントは必ずタブでそろえるという慣習に少し苦戦していました。 GO標準フォーマッタであるgofmtは、スペースをタブに変換してくれるのですが、 既にスペースインデントでGitに上げてしまっていた場合は比較が多少面倒...といった具合です。 gofmtにタブを使わないオプションがないか調べたところ、 「gofmtは、-tab=falseオプションを使えばスペースでインデントしてくれる」 という記事を見かけました。しかし... そんなオプションは知らんとGOに突き返されます。 まさかバグじゃないだろうなと本家のGitHubを覗いてみたところ、 バージョン1.3を境に-tabオプションが削除されていることを確認できました。 更にgofmtのコミットも確認したところ、理由とおぼしき記述が見られました。 私訳:  これらのフラグを持つことは「gofmtされたはず」のコードとして容認してもいい、と誤解させます。  組織がgofmtを内部的に異なる設定で使用したい場合、gofmtを簡単に変更することができますが、  オープンソースのコミュニティが使用する "gofmt"では、この古いスイッチをサポートすべきではありません。  -commentsフラグも削除します。  "cmd/gofmt: remove -tabwidth and -tabs flags・golang/go@014f3dc・GitHub"より引用   https://github.com/golang/go/commit/014f3dcc837cb6789076cff4fccaa3bd221f823e この修正の経緯としては、Git上で"gofmtの-tabs、-tabwidthフラグは削除されるべき" という旨のIssueが挙げられていたことから始まっていたようです。 意見のいくつかを要約すると... ・-tab,-tabwidthはGO言語の初学者を混乱させる可能性がある。 ・-tab,-tabwidthされたコードは、gofmtを通したGO標準のコードとは言い難い。 ・この機能を削除したと...

LINEBOTはなぜ自動で返信できるのか?

こんにちは、熊本事業所の清島と萓嶋です。私たちはLINEBOTについて説明したいと思います。 BOTとは人間の代わりに作業を行ってくれる自動化プログラムの総称です。 BOTにも様々な種類がありますが、LINEBOTはLINE上でユーザーの発言に対して自動返信を行う、チャットボットに分類されます。 皆さんはLINEBOTと聞いて何を思い浮かべましたか? 企業が定期的にプロモーションを行うBOTや、発言を他の言語に素早く変換してくれる翻訳BOT、AIを用いて自然な会話を行えるBOTなど、一度は利用したことがあるのではないでしょうか? 今回はLINEBOTの自動返信の仕組みについて解説していきたいと思います。 まず、ユーザーがLINEBOTへメッセージを送信します。 送信されたメッセージはLINEサーバを通り、BOTはそれをイベントとして取得します。 イベントにはユーザーの名前やID、リプライトークンが含まれており、 それを取得したBOTは返信プログラムを実行します。 リプライトークンは、特定のユーザーに返信するために使用されます。 取得したユーザーの名前を使うと、BOTが名前で呼びかけるような返信もできますね。 更に、BOTはメッセージだけでなく、 ユーザーが起こした動き(BOTと友達になる、グループに招待する、など)もイベントとして受け取ることができます。 皆さんも公式アカウントを友達登録した際、「登録ありがとうございます」という内容のメッセージを受け取ったことがあると思います。 これは、友達登録イベントを受け取ったBOTが、返信プログラムを実行しているからです。 ここまでBOTがイベントを取得する、と説明してきましたが、そのために必要なのがAPIです。 APIとはApplication Programming Interfaceの略で、プログラムを構築するために必要な機能を呼び出すものです。 また、APIはwebhookを用いてBOTへ中継しており、メッセージのリアルタイム受信を可能にしています。 APIを使うことで、テキスト形式での返信はもちろん、ユーザーに選択してもらうボタンを出現させたり、 画像とテキストを同時に表示したりできます。 また、最近のバージョンアップにより、クイックリプライ機能という、画...

SQLServerのインデックスを使用したパフォーマンスチューニングについて

こんにちは。福岡事務所の大迫です。 ソフトウェア開発においてデータベースは非常に重要な役割を果たします。 多くのソフトウェア、アプリケーションには何らかの形でデータベースが使用されており、データベースに対する実行命令であるSQLがプログラムに組み込まれています。 作成したアプリケーションの動作速度に問題が生じた際にSQLが原因となる場合も多く、データベースの設計、SQLの記述には細心の注意が必要です。 データベースの種類(Oracle,SQLServer,MySQL等)によって考え方が若干異なることがあり、幅広い知識が必要とされます。 実際にSQLの実行速度に問題があった場合、どのように対処するのが効率的かを普段業務で使用しているSQLServerの例を簡単に説明したいと思います。 SQLのチューニングには様々な手法がありますが、最も影響が大きいのはインデックスを使用する方法です。 インデックスとはその名の通りデータがどの場所にあるかを示す索引です。 辞書の索引をイメージするとわかりやすいと思います。 例えば辞書で「パフォーマンス」の意味を調べる場合は「索引を開く」→「ハ行を探す」→「目的のページを開く」という手順を踏むと思います。 索引が適切に掲載されていれば辞書の厚さ(データ量)がどれほど多くても検索に掛かる手間(処理時間)は変わりません。 インデックスを適切に設定、利用することはSQLのパフォーマンスを向上させる上で欠かせません。 SQLServerのインデックスには「クラスター化インデックス」と「非クラスター化インデックス」があります。 クラスター化インデックスはテーブルに対して1つしか設定できませんがデータが並び替えられて格納されるため高速に検索することができます。 特に指定していなければプライマリーキーはクラスター化インデックスで作成されます。 非クラスター化インデックスはテーブルに対して複数設定できますが、並び替えは行われない為、クラスター化インデックスに対して検索速度が遅くなります。 特に指定していなければユニークキーは非クラスター化インデックスで作成されます。 作成したインデックスの使用状況を知るためには、SQLServerで管理ツールの実行計画を使用します。 実行計画に表示される情報で特に注意すべ...

DNSフェイルオーバー

イメージ
Markdown to HTML 初めまして、ASD堤です。 今回はAWSの DNSフェイルオーバー機能 を利用して、サーバレスなSorryページの構築を紹介したいと思います。 Sorryページとは、Webサイトなどが障害やメンテナンスなどで停止している際に、アクセスしてきた利用者にその旨を告げるページのことです。 DNSフェイルオーバーとは? そもそも、 DNSフェイルオーバー とは何なのかを軽く説明します。 DNSは、たとえば example.com = XXX.XXX.XXX.XXX (IPアドレス) のように、「ドメイン名」と「サーバのIPアドレス等」を紐付けています。 この時に、XXX.XXX.XXX.XXX(Webサーバ)に何らかの障害が発生し、 サービスを継続できない状態に陥った場合に、 example.com = ZZZ.ZZZ.ZZZ.ZZZ (別のIPアドレス) に自動で変更する仕組みを DNSフェイルオーバー といいます。 つまり、あるドメインへのリクエストを受けたサーバに何らかの障害が発生していた場合に、ドメイン名を変更せずにそのドメインへのリクエストの受け先を変更する仕組みのことです。 ※ Route53が返却するIPアドレス 正常時: Primary ServerのIPアドレス 異常時: Secondary ServerのIPアドレス サーバレスなSorryページの構築 以下のような構成で構築していきましょう。 Route53がELBのヘルスチェックのステータスを確認し、ELBがhealthy(正常)ならばELB側のレコードを、ELBがunhealthy(異常)ならばCloudFront側のレコードをアクセス元に返すようになっています。 構築手順 ELB または EC2 ELBやEC2インスタンス等の特別な設定はありません。 S3 S3では以下の対応を行います。 Sorryページ用のBucketの作成 (Bucket名はドメイン名と同様) SorryページのHTMLをBucket直下に配置してアクセス権限をパブリックに変更 CloudFront CloudFrontでは以...

ソフトウェア長期保守のための仮想化環境について

こんにちは。福岡事務所の石橋です。 ソフトウェア開発では、OSのサポート期限が切れても長期保守が求められる場合があります。 (業務用ソフトウェアが想定よりはるかに長い期間使われるのは、よくある事です) このような場合、例えばWindows XPやWindows 7(2020年1月にサポート期限が切れます)の開発環境を残しておく必要が出てきますが、サポート期限の切れたOSはセキュリティパッチが提供されなくなるため、インターネットに接続するのは危険です。また、古いPCを開発環境として残しておいても、故障などでそれが失われてしまうリスクがあります。 そこで重宝するのが、仮想化環境です。 仮想化環境とは、簡単に説明すると「ホストOS上で(仮想的な)別のゲストOSを動作させる」ものです。 例えば、Windows 10(ホストOS)上でWindows 7やWindows XP(ゲストOS)を動かすことができます。 Windows 7(Professional版以上のみ)では、「Windows XP Mode」という仮想化環境が無償で提供されていました。これはWindows XPのライセンスを含んでいて、初めからXPインストール済みの状態で利用できます。 一方、Windows 8/8.1/10(Pro版以上のみ)については、「Hyper-V」という仮想化環境が無償で提供されていますが、ゲストOS及びそのライセンスは同梱されていません。ゲストOSのライセンスと、OSインストール作業が別途必要です。 また、PCに付属のWindows(OEMライセンス)は他のPCで使うことができません。 古いWindowsは入手が難しくなるため、あらかじめ確保しておくことが大切です。 ソフトウェア開発は、リリースや検収までで完了ではなく、その後には保守があります。 保守契約が有効な間は開発環境も残っているものですが、お客様の要望により、保守期間満了後も改修や不具合対応が必要になるパターンが意外と発生します。 あらかじめ仮想化環境を活用して備えておくことで、こういった場合に困らない体制を作ることが可能です。 皆さまもこの機会に、仮想化環境の構築を試してみてはいかがでしょうか?

Raspberry PiでIoTをはじめてみませんか?

こんにちは。 熊本事務所の庄村です。 さて、このブログをご覧の皆さん、IoTという言葉はご存知でしょうか? ネットやテレビなどのメディアを通じて、一度は見聞きしたことがあるかもしれません。 昨年2017年はIoT元年ともいわれており、 IT系界隈ではこの分野での動きが大変盛んになっています。 今回は、このIoTについて簡単にご紹介した上で、 IoTの自作がしやすいと注目されている超小型のコンピュータ 「Raspberry Pi」について、特にご紹介したいと思います。 <IoTとは?> IoTは「Internet of Things」の略で、「モノのインターネット」とも呼ばれています。 "アイオーティ"と読みます。 IoTの一例を挙げますと、 外出先から部屋の状況(温度、湿度)などを確認出来るIoT温度計などがあります。 上記の場合、センサーが検出した情報をサーバーに送信・蓄積、 サーバーデータを利用者の端末上で表示しています。 尚、上記の例は、IoTのほんのごく一部であり、実際にはもっと多種多様な活用例があります。 興味をお持ちの方は、IoT 活用 事例などのキーワードでWeb検索してみてください。 <Raspberry Piとは?> 前述のIoT説明では、センサーが検出した情報をサーバーに送信~、としておりましたが、 そこで、センサーとサーバー間の仲立ちの役割を果たすのがRaspberry Piになります。 Raspberry Piは、ラズベリーパイと読み、 英国のRaspberry Pi財団が開発したシングルボードコンピュータのことです。 日本では、ラズパイの愛称で親しまれています。 大きな特徴として超小型で低価格、標準でLANも搭載しており、 各種センサーなどを直接繋ぐことが出来る汎用I/Oポート(GPIO)を搭載している点があります。 このため、Raspberry PiはIoTの自作がしやすいとされています。 尚、Raspberry Piについては、少しWeb検索してみただけでもたくさんの使用例・活用例が出てきます。 また、Raspberry Piはその汎用性の高さから、IoTに限らずホビー目的で利用されている方もたくさんおられます。 ...

LINQを使用し、ソースコードの可読性を高める

こんにちは。福岡事務所の荒平です。 今回はソースコードの可読性を高める方法について説明していきたいと思います。 例えばC#で二つのDataTableを比べ、片方のTableにだけ存在するデータを取得したい、 というとき、皆さんはどのようにして処理を書きますか? ------------------------------------------------------- TableA TableB  果物  在庫数 果物  在庫数 リンゴ    100 リンゴ  130 ミカン  120 バナナ  120 バナナ  140 ブドウ  150 ブドウ  150 このTableAとTableBを比べ、TableAにしか存在しない果物(ミカン)のデータのみを取得したい ------------------------------------------------------- いくつか方法はありますが、このように考えた方もいるのではないのでしょうか? ・for文やforeach文などを二重にループさせ、  if文などで果物が両方に存在するかどうかを判定する しかし、この方法だと以下のようなデメリットがあります。 1. ネスト構造になるため、他の人が見た場合、可読性が低くなる 2. if文が必要になったり、あらかじめTableのレコードの並び順が決まっていないといけないなど、余計なコードが増えたり、前提条件が必要になる そこで、こういった問題を解決するために最近のC#ではLINQを使用します。 ちなみにLINQとはLanguage INtegrated Query(統合言語クエリ)の略で、 データの集合から特定のデータのみを取得したり、検索や集計などをしてくれる機能です。 ということでさっそくLINQを使用してみましょう。 -------------------------------------------------------  var Record = (from rowA in TableA.AsEnumerable()        where !((from rowB in Tab...

CentOSとUbuntuの違い

こんにちは。熊本事業所ヘルスケア事業部の上田です。 今回は、"CentOS"と"Ubuntu"について簡単に紹介したいと思います。 そもそもこの2つはLinuxのディストリビューションと呼ばれる種類を指しています。 Linuxのディストリビューションは似ているようでも全くの別物なので、 どういった特徴があるか?どういった用途向けなのか?と気になる方もいらっしゃるのではないかと思います。 その中でも知名度が高く、昔から使われているCentOSとUbuntuをメリットデメリットに分けて解説したいと思います。 【CentOS】 CentOSはRHEL(Red Hat EnterPrise Linux)と完全互換を目指したオープンソースのLinuxディストリビューションです。 RHELは商用サポート(有償)のあるLinuxディストリビューションです。 シェアはLinux全体の約2割で、用途はRHELと同様企業のサーバーとして利用されていることが多いです。 メリットはサポート期間が最大で10年間と長い為、構築が古くなった環境でも安定して使用出来る点と、 日本語の情報量が多いのでわからない部分があっても調べやすい点です。 デメリットはコマンドによる操作がメインとなるため、知識がないと操作がしにくい点です。 【Ubuntu】 初心者向けに人気が高いLinuxディストリビューションです。 名称は南アフリカのズールー語で"他者への思いやり"を意味しています。 シェアはLinux全体の約4割で、こちらはデスクトップ用途で使われるケースが多いです。 メリットはコマンド操作がほぼ不要で、WindowsやMacと同じ感覚で使用出来る点と、 半年ごとのバージョンアップが行える為、常に最新の状態で利用出来る点です。 デメリットはCentOSと比べてサポート期間が最大でも5年間と短い為、 セキュリティ面を考慮するとバージョンアップを早めに検討しなければいけない点です。 今回紹介したLinuxは2つとも無償で提供されていますので、手軽に使用できるのも利点です。 他にも紹介していないLinuxがありますが、自分の用途に合ったLinuxを使って新しい世界へ飛び込んでみましょう。