株式会社シベスピ 従業員ブログ

シベスピの社員ブログ。技術・想い・経験沢山書いていきます!

路上ライブ、やってますか?

すっかり夏ですね。
今年もそうめんの季節がやってきたな…と思っています。

さて、今回は、少し前の社内のスピーチでもお話した公開SNSの利用について書いていこうと思います。
SNSの利用としてはかなり基本的なお話なので、そんなの分かっていると思われる方ばかりかと思いますが、本当にできているかをいま一度振り返っていただくきっかけになればと思います。

その発言、大丈夫?

システム業界関連の発言を追っていると、上司や部下、チームメンバー、所属会社に対する愚痴なんかを目にすることが度々あります。
疲れて愚痴を言いたくなる気持ちもわからなくないですが、それを公開アカウントで全世界向けに発信するメリットはあるでしょうか?
メリットがあるというならそれもよいですが、もし何も考えずに送信しているならその発言、ちょっと待った方がいいかもしれません。

路上ライブの自覚、ありますか?

社内のセキュリティ講習でも毎度「公共の場で機密性の高い話はしない」というお話があります。
これは主に、飲み会の場や電車の中、エレベーターの中など「人の耳」がある場所をメインに想定されています。
しかし、SNS特に公開アカウントでは飲み会よりももっと広く、もっと多くの「人の目」があります
これは、路上ライブのようなものだなあと思います。

通りかかる大勢は、あなたの発信に興味がないかもしれませんが、何かのきっかけで興味のある人の目に留まると厄介な事件に発展する可能性がある、ということです。

システム業界での事例

システム業界で言えば、某銀行のソースコードの一部が流失していたという話題がありました。
比較的最近の話なので、記憶に残っている方も多いかもしれません。

これは、SNS上での口論が元で、口論の相手が発信者の身元を特定しようと発信者の過去の発言や情報を掘り返したことにより明るみに出た話のようです。
(これに関してはそもそも現場からソースコードを持ち出して公開の場にアップロードしていた、という話でもあるので少し極端な例かもしれませんが。。。)

「いつか」のあなたを守るために

仮に一つ一つは特に問題がないとみなされる情報だとしても、複数を繋げた時に問題が発生することがあります。
また、何らかのはずみでアカウントに興味を持つ誰かが現れた場合、個人情報や、(業務関連で言えば)関わっている案件の特定が可能となる可能性があることは、常に頭の片隅に置いておいたほうが良いでしょう。

個人や所属を特定されたり、過去の発言を掘り返されたりしても問題がない場合も多いかもしれません。
しかし、長く同じメディアを利用していて、個人情報や家の周囲の情報(写真等ですね)、会社の愚痴などを公の場に公開している場合は「今」問題にならなくても、「いつか」問題になる可能性があり、注意が必要です。

その情報は本当に公開する必要があるか、将来的に問題に発展する可能性がないか、いま一度考えてみてはいかがでしょうか。

最後に

以上を心掛けて、引き続き楽しいソーシャルメディアライフを送ってください。
ついでに、弊社のツイッターをフォローしてくれると大変嬉しいです!

twitter.com


それでは。

最近知ったplantUMLを使ってみた

こんにちは。日笠です。

入社をして1年半が過ぎました。入社当初は仕事に精一杯で土日も仕事のことを考えたりしていましたが、最近はようやく生活が自分のものになってきて休みの日は趣味に費やすことができております。

今回のテーマ「plantUML」

f:id:chivsp:20210719090824p:plain
plantUML_参考

さて今回はplantUMLのお話です。
UML自体の説明は、様々なサイトが解説しているので、割愛します。

plantUMLを使おうとした経緯

私はPowerPointで資料を作成するのが結構好き(得意とは言いません(笑))で、満足できる出来になるまでとことん突き詰めます。趣味だったらいくらでも時間をかけていいのですが、仕事となると別です。
PowerPointで一番時間がかかるのが、図の位置調整でしょうか。グループ化したり、図の配置から左右中央ぞろえなどを利用して効率的に位置調整をしても、やっぱり時間がかかります。
プログラムチックに文字だけで図を描けないものか(latex的な)と探していた時に「plantUML」を知りました。

plantUMLとは

wikipediaを見ると、「オープンソースUMLダイアグラム作成用のテキストベースの言語」とのことです。

plantUMLに必要な環境

肝心のplantUMLが入ってないけど!っとなるかと思いますが、Visual Studio Codeからインストールが可能です。
環境構築は全く難しくありませんでした。検索すれば詳しい環境構築方法がありますので、そちらを参考にしてください。

実際に使ってみる

シーケンス図

plantUMLでの記載


   @startuml
      title ログイン画面

      actor ユーザ
      ユーザ -> "ログイン画面" : ログイン
      "ログイン画面" -> "ユーザ情報" : 権限チェック

      ref over ユーザ情報, 権限 : 権限チェック
      "ユーザ情報" --> "ログイン画面" : 権限結果

   @enduml

結果
f:id:chivsp:20210717234100p:plain
ログイン画面_シーケンス図
Visual Studio Codeの画面

実際の編集画面です。

f:id:chivsp:20210717235024p:plain
Visual Studio Code_編集画面

コードを編集するとリアルタイムで図も更新されます。コードにエラーがある場合は、図は更新されず、ビックリマークが出ます。

ER図

plantUMLでの記載


@startuml
    entity "顧客マスタ" as costomerMaster {
        *顧客ID
        --
        顧客名
        郵便番号
        住所
        電話番号
        FAX番号
    }


    entity "注文" as order {
        *注文ID
        --
        *顧客ID:<>
        注文日時
        配送希望日
        配送方法
        お届け先名
        お届け先住所
        決済方法
        合計金額
        消費金額
    }


    entity "注文明細" as orderDetail {
        *注文ID
        *明細番号
        --
        SKU
        注文数
        税抜価格
        税込価格
    }

    entity "SKUマスタ" as SKUMaster{
        *SKU
        --
        商品ID:<>
        カラー
        サイズ
        重量
        販売単価
        仕入単価
    }

    entity "商品マスタ" as productMaster{
        *商品ID
       --
        商品名
        原産国
        仕入れ先ID:<>
        商品カテゴリ
        配送必要日数
    }

    entity "仕入先マスタ" as SupplierMaster{
        *仕入先ID
        --
        仕入先名
        郵便番号
        住所
        電話番号
        FAX番号
    }

    ' ------- IE記法 ------- '
    '' 「|」は1
    '' 「o」は0
    '' 「{」「}」は多
    ' ------- リレーション------- '
    '' 「r」は右
    '' 「l」は左
    '' 「d」は下
    '' 「u」は上
    costomerMaster |o-r-o{ order
    order||-r-|{orderDetail
    orderDetail}-d-||SKUMaster
    SKUMaster}|-l-||productMaster
    productMaster||-l-o{SupplierMaster


@enduml

結果
f:id:chivsp:20210718003355p:plain
ER図

最後に

今回は、シーケンス図とER図をサクッと作成してみましたが、公式サイトには下記のような図も作成することができるそうです。

  • シーケンス図
  • ユースケース
  • クラス図
  • オブジェクト図
  • アクティビティ図
  • コンポーネント
  • 配置図
  • 状態遷移図(ステートマシン図)
  • タイミング図

いかがだったでしょうか。
plantUMLを使うことで、テキストベースでそれなりの図を描くことができました。
記法もなんとなくで記載できそうなわかりやすい書き方となっていると思います。(特にER図の「|」「o」「{」とか)
さっと、図を作るときに覚えておいて損はないでしょう。

ありがとうございました。

目標について

山田です。今回は「目標」に関する記事を書こうと思います。
書こうと思ったきっかけは、私も30歳を超え、今後の人生をどうしていくのかについて、色々考えたからです。(いまも考えています)
今回は、仕事を軸に話をしますが、他の事でもポイントは同じだと考えています。

目標を立てる

どういう人になりたい、こんな仕事をしたい、こういう生活をしたい、老後はこんな趣味をしたいなど、考えるポイントは多く、それを掘り下げていくことで目標が具体的になります。その目標を達成するには、どのくらいの年収が必要なのか、どんなスキルを持っている必要があるのか、どんな役職になっている必要があるのかがわかってくるので、それを目標にします。
具体的になっていないと、何をしたらよいかが決まらないので、出来る限り具体的になるよう考えてください。また、合わせていつまでにも考えてください。期限を設けることで、次の「実現方法を考える」際に役立ちます。

実現方法を考える

目標が見つかったら、それを実現するために必要なことをまとめましょう。
例えば、先ほど書いた「どんな役職になっている必要があるのか」は、その役職に上がるために、必要な条件や経験などを確認してみて、それを満たすためにやるべきことを掘り下げると、やるべきことの全量が見えてきます。そのやるべきことを、目標の際に考えた「いつまで」に収まるように計画を立てます。その計画が現実味を帯びていない場合は、何が原因で実現に不安を感じているのかを、分析して、対策をする、もしくは、目標の再設定をしましょう。

実際に動く

実現方法を考えたら、あとは動くだけです。
なかなか計画通りには行かないと思います。問題が起きるたびに計画を修正して、目標達成に向けて頑張っていきましょう。

相談する

「目標を立てる」「実現方法を考える」「実際に動く」の3つの工程でまとめましたが、どの工程も、初めから100点で実施するのは難しいと思います。
もし周りに信頼できる人がいるのであれば、相談するとよいと考えています。自分では気づけなかった視点で意見をもらえたり、人生の先輩であれば、経験した結果を教えてくれるかもしれません。

まとめ

私も、漠然と動くよりは目標を持って動く方が、有意義で効率も良いと感じて、日々を過ごしています。
なかなか、すぐに目標を立てて動くのは難しいと思いますので、まずは考えてみると良いと思います。将来の話をするのは少し恥ずかしい感じもしますが、いろいろな人と話して、意見を交換したり、アドバイスをもらうことで、今後の人生が今より良くなるかもしれません。

動的に条件を切り替えるSQL

今回は前回同様、SQLを備忘録がてら紹介します。
Oracleにて動的に条件を切り替えるSQLです。

テーブルはこんな感じ
在庫テーブル

区分 商品 在庫
食物 リンゴ 20
食物 バナナ 10
その他 ドライバー 10
その他 タオル 5

在庫に関して、食物は10以下、その他の場合は5以下の時に発注をしたいです。
なので、今回の場合は以下を抽出します。

区分 商品 在庫
食物 バナナ 10
その他 タオル 5


最初考えたときはこんな感じのSQLを想定していました。

SELECT * FROM 在庫テーブル
WHERE CASE WHEN 区分 = 食物 THEN 在庫 <= 10
           WHEN 区分 = その他 THEN 在庫 <= 5


が結果は、ORA-00905 キーワードがありませんとエラーが出ました。
調べた感じMySQLでは使えるようですが、Oracleでは使えませんでした。
SQL単体ではCASE句のみの対応のため、使える箇所は項目として使用する箇所のみのようです。
上記の記述だとCASE文になるためその場合はPL/SQLが必要になってくるとのこと。

なので今回の例だとCASE句に書き換えた以下のSQLで抽出できます。

SELECT * FROM 在庫テーブル
WHERE CASE WHEN 区分 = 食物 THEN 10
           WHEN 区分 = その他 THEN 5
           END >= 在庫 


ただ、もっと複雑な条件になってくると煩雑になってくるので、基本的にはこう書くのが一番簡潔でよいのかなと思います。

SELECT * FROM 在庫テーブル
WHERE (区分 = 食物 AND 在庫 <= 10)
   OR (区分 = その他 AND 在庫 <= 5)

以上、備忘録がてらのSQL紹介でした。

エンジニアの資格について

お久しぶりです、大畠です。
最近引っ越しまして、念願だったダイニングテーブルを購入しました。

それまで自宅で仕事する時には座椅子&座卓だったのですが、床に近い状態で仕事をするのがどうも落ち着きませんでした。
特に不便とかはなかったのですが、パソコンで作業する時は椅子に座ると集中できる気がします。
ですが、椅子に座っても結局あぐらをかいているので、座椅子の時と姿勢は変わっていません。
床からの高さと集中力は関係ないとは思いますが……以上、単純な好みの話でした。

資格制度の興味

最近ではIPAが主催する基本情報技術者試験がありました。
弊社では基本情報の資格取得は必須となるので、私も入社してから勉強し取得した次第です。
資格取得するまでは、それを目標にスキルアップのモチベーションとしていたのですが、資格取得してからは、なにを目標にすればよいか迷っていました。
今は、現場で活躍できるようその分野のスキルアップを目指していますが、そういえば基本情報を取得してからさらに上の資格にはなにがあるのか気になり、今回調べてみました。

国家資格

IPAが主催している情報処理技術者試験は、経済産業省が認定している国家資格です。
ひとえに国家資格と言っても、細分化されており、以下のようにランク分けされています。
www.jitec.ipa.go.jp

基本情報技術者試験(FE)

エンジニアの登竜門的な存在。
出題する分野が幅広く、ITエンジニアのキャリアを築いていく上でも、こんな技術があるのかと知ることもできるので有用な資格だと思います。
下記の統計情報を見る限り、合格率は毎年25~30%程度だそうです。
IPA 独立行政法人 情報処理推進機構:情報処理技術者試験・情報処理安全確保支援士試験:統計情報
難しい試験と思われがちですが、一方で過去には9歳の子が合格したこともあるそうです。
当試験については、他の社員が記事に取り上げていますので、気になる方は見てみてください。
chivsp.hatenablog.com
chivsp.hatenablog.com

応用情報技術者試験(AP)

基本情報で得た知識と現場経験から、さらなる応用を利かせたエンジニアスキルが求められた資格です。
分野は基本情報技術者試験と変わりありませんが、総じて難易度は上がっています。
午後試験も記述式となるので、鉛筆を転がして運で受かるような試験ではありません。
個人的には応用情報を持つと、世間からもエンジニアとしてスキルがあるな、とアピールできると思っています。
次にIPAを受けるならば、私もこの試験からになると思います。

高度情報処理技術者試験

基本情報、応用情報ではITに関する幅広い分野に精通するゼネラリスト的な知識を求められましたが、高度情報処理の資格取得には各分野に特化したスペシャリスト的な知識が求められます。

ITストラテジスト試験(ST)

ITを活用した経営戦略や事業提案など、情報技術の他に経営戦略についての知識が要求されます。
ITコンサルタントや幹部候補など、経営を踏まえたシステム構築ができることを目的としています。

システムアーキテクト試験(SA)

要求された品質で、対象のシステム化計画の構想、立案、ソフトウェアの設計、開発、テスト、運用及び保守についての知識が求められます。
高度試験の中で歴史も古く、システムエンジニアの王道ともいわれる資格です。

プロジェクトマネージャ試験(PM)

システム開発の管理、プロジェクトを円滑に進めるマネジメントについての資格です。
各チーム間の連携やステークホルダへの報告や相談など、細かい調整を求められ、試験内容も論文形式と高度試験の中で難易度の高い試験と分類とされています。

ネットワークスペシャリスト試験(NW)

ネットワーク分野に特化した資格です。
企画から要件定義、開発、運用、保守の業務に従事し、セキュリティの観点からも堅牢なネットワークシステムが構築できることが求められます。
合格に求められる知識量も他の試験より多いとされています。

データベーススペシャリスト試験(DB)

データベースを使用するシステムの企画~運用・保守までの技術支援、効率性や安全性といったユーザの要求に従った品質のあるデータベースを構築できるスキルが求められます。
後に出てくるベンダー資格など、特定の製品でしか使えない技術は出題されず、標準SQLが出題対象となります。

エンベデッドシステムスペシャリスト試験(ES)

組み込みシステム系についての資格です。
ハードウェアとソフトウェアを組み合わせたシステム構築ができ、電子回路やモータ関連の知識が要求されます。
場合によっては物理の教科書に出てくる知識も必要となるそうです。
昨今では、IoT系エンジニアを目指す方に取得してほしい資格となります。

ITサービスマネージャ試験(SM)

試験は主にITIL(Information Technology Infrastructure Library)に関する問題が多く、リスク管理やコスト管理といった知識も求められ、ある程度の経営知識やビジネススキルが必要とされています。

システム監査技術者試験(AU

三者的立場として、該当システムを総合的に点検・評価・検証し、改善などの助言をあたえる監査人としての技量が求められます。

情報処理安全確保支援士試験(SC)

サイバーセキュリティに関する専門的な知識や技能についての資格です。
進化の著しいサイバー攻撃マルウェアの対策や、脆弱性を持たないシステム構築に関する知識が求められ、最近でも注目度の高い資格です。

民間資格

エンジニアが取得できる資格には公的組織から認定される資格の他、IT関連製品を製造・販売するベンダーから、自社製品の操作や管理技術を満たしていることを認定する民間資格などもあります。
IT技術の発展に伴い、その数は膨大で全部取得することは難しいでしょう。
以下はその一例です。
自分のスキルやキャリアを踏まえて、どの資格を取得すればよいのか(あるのか)、調べてみてはいかがでしょうか。

Microsoft認定資格プログラム(MCP

Microsoft製品に対する知識と技能をレベル別に判定します。
製品ごとにバージョンの違いなどがあるので、漠然とMicrosoftを使っているからといって受験するのは難しいと思います。
Microsoft Certifications | Microsoft Docs

ORACLE MASTER

日本ORACLE社が公式に運営するデータベースの理解力を認定する資格です。データベースの構築・運用の他、SQLに関する問題も出題されます。
ORACLE MASTER Portal - be an ORACLE MASTER - | オラクル認定資格制度 | Oracle University

AWS認定資格

クラウドサーバにおいて、トップシェアを誇るAWSの公式認定資格です。
AWSはサービスが100種類以上あり、その中でシステム要件に沿った適切なサービスを利用するには専門的な知識が必要です。
AWSを使用する企業が増える中、保守・運用できる人材は重宝されるので注目度の高い資格です。
AWS 認定 – AWS クラウドコンピューティング認定プログラム | AWS

CCNA 認定

Cisco社が実施するネットワークエンジニアの技能を認定する資格です。
基礎的なネットワーク知識の他、Cisco社製品の知識を求められます。
資格取得後も3年後には失効してしまうので、日々技術のアップデートをし、再度受験をする必要があります。
CCNA 認定とトレーニングプログラム - Cisco

Linux技術者認定試験(LPIC

カナダに本部を置くNPO法人「LPI」によって運営されています。
世界でも通用する公正なLinuxスキルを求められます。
LPIC | 世界標準のIT資格 | LPI日本支部 | Linux Professional Institute Japan

最後に

エンジニア間の会話で、資格取得には興味がない(資格に意味はない)という意見を持つ人をたまに見かけます。
僕は自分に自信がないので、自身のエンジニアとしての立場を理解するために資格を持つのはいいことだと思います。
また、資格勉強を通じて知らなかった知識に触れることは楽しいですし、思わぬ興味の発見にもつながるので、安くはない受験料を払って受験する価値はあると思います。

宅配弁当のすすめ。

こんにちは。
在宅勤務の日のお昼休みは、もっぱら洗濯をしている松本です。
週末に一気に洗濯を回さなくていい生活、とてもいいですね。
状況が落ち着いても、在宅が世の中に定着したままでいてくれると嬉しいです。洗濯物のために。

飲食店が早く閉まっちゃう……。

私は自炊がまったく得意ではないので、食事に関してはどうしても「買う」という方向に走ってしまいがちなのですが……。
残業してしまった、電車が遅れてしまった等々の理由により、最寄り駅に着く頃には20時を回っていることもしばしばある中、緊急事態宣言やまん延防止重点措置により、店内で飲食ができるお店は閉まっていることが多いです。
こうなると選択肢は、コンビニまたはテイクアウトをしているお店に限られてくるわけですが、そろそろマンネリが来てしまいました。

そんな中で目に入ったのが、今回お話する宅配弁当のサブスクリプションです。
今まで、あまり「サブスク」そのものに興味を持っていなかったのですが、せっかくの機会だと思って、ちょっと見てみることにしました。

予想以上にいっぱいある!

いや多いな!
というのが、最初にざっと調べてみた感想でした。

ですが、ただ同じようなサービスが並んでいるわけではありません。
食材が届いて調理は自分でするもの、とにかくコスパがいいもの、おまかせでメニューを選んでくれるもの……などなど。
各社に特徴があって、私の理想に合ったサービスを探すのはそれほど苦労しませんでした。
逆にこれだけ多種多様な内容が揃っていれば、自分がなぜ宅配弁当を利用したいのかを突き詰めたら、きっとそれぞれの理由に合うサービスが見つかりそうだなあと思います。

利用してみて

これまでは帰宅前にコンビニに寄っては、栄養を気にしてサラダを買ってみたり、カロリーを確認してみたりと、いろいろと気にしながら、陳列棚を右往左往してその日の夕食を購入していました。
しかし今回「栄養バランスを重視したサービス」を選んだおかげで、帰宅後レンジでチンするだけのストレスのない食事ができて、大変助かっています。
また、常に自宅にお弁当があるようなものなので、とにかく在宅勤務をしている時のお昼にちょうどいいです。
今の生活様式にピッタリなのがうれしい!
これからも利用していこうと思っています。

おわり

本当に色んなサービスがあって、見ているだけでも楽しかったです。
普段お弁当などを購入していらっしゃる方はもちろん、自炊が得意な方でも、試しに検索してみてはいかがでしょうか。

ポジティブに考えることのメリット

お久しぶりです、黒田です。
相変わらずの内向き発信ネタです。

ポジティブの反対はネガティブ

何を当たり前のことを言ってるんだと言われそうですが、大事なことなので書きました。
何が言いたいのかというと、ポジティブな考えから行った行動とネガティブな考えから行った行動は真逆の結果につながるということです。
また、その結果は自分だけでなく周りに対しても同様です。
どちらも周囲を巻き込んだ効果を発生させやすいと考えておくことは重要だと思います。

ネガティブであることを自覚することが大切

私は働き始めた頃はネガティブでした。
これは今だから言えることで、当時は自分で自分をネガティブとは思っていません。
当時は業界全体で高稼働が当たり前だったこともあり、上司はプロジェクトがトラブっていようが人がどんどん辞めていこうが手を打ちません。
何で誰も改善しないんだとか、何で何もしない人間が役職に就いて高い給料もらってるんだとブーブー言いながら働いていました。

そんな働き方をしていた頃のとある社内での飲み会で、プロジェクトの愚痴を言っていたらある先輩社員から言われました。
 
 「黒田くん、愚痴ばっかりでもったいないよね」

場の空気を壊さないように笑顔ながらも相手に確実に刺さることを重要視した強めの神発言だったことも大きいですが、自分の心にぶっ刺さると同時に強く気付かされました。

 「そうか、俺は周りの人間を不快な気持ちにしていたのか」

ということはポジティブは周りをポジティブにする

会社で一緒に働く仲間を不快な気持ちにしていいことなど何もありません。
自分にとっても会社にとっても不利益しか生まないので、自分だけでなく周りもポジティブになるような行動を実行するようにしました。
大事なのは視点を変えることです。
 
 仕事が忙しい
 →生産性を上げるための実戦訓練機会に恵まれている、人を増やすチャンスがある、会社にアピールするチャンスに恵まれている
 周りの人のやる気がない
 →リーダーシップを発揮するチャンス、自分の仕事の範囲を拡大するチャンス
 お客さんが何も決めてくれない
 →自分たちに都合のいい方向に進めるチャンス、主体的に提案してお客さんにアピールするチャンス
 上司から指摘を受けた
 →自分の短所や改善すべき点を(タダで)教えてもらえた、一つ賢くなった

ビジネスマンにとって一番の不幸は仕事がないことであり、会社の利益に貢献=自分の評価になるという原則さえ忘れなければ大体のことはポジティブに捉えられます。

最後に

誰しもポジティブな人に自分の気持ちを牽引されたり、ネガティブな人にため息をつきたくなったことはあると思います。
周りの人とはポジティブな方向に引っ張り合った方が得することが多いので、1人でも多くの人が意識することが大事かなと思います。
自分の気持ちをコロコロと左右されるのは嫌だと思うかもしれませんが、前向きな方向にはチョロい方が得することが多いというのが持論です。
レッツポジティブループ!!