uycep2ed’s blog

IT関連のニュースで思ったこと感じたこと、プログラミングの勉強の備忘録を書いていきたいと思います。

BIツールについてまとめてみた。

はじめに

今回はBIツールについてまとめてみた。

BIとは?

ビジネスインテリジェンス(Business Intelligence)の略。このビジネスインテリジェンスとは、蓄積された膨大なデータを分析し、その分析結果を経営に活用すること。

もう少し深めると、BIは大きく「調査・報告」と「分析」の2つの要素からなり、「データを収集して報告する段階」から「何が起きるかを予測する段階」「ビジネスの実行や意思決定を最適化させる段階」へと高度化していく。

このBIを活用するシステムをBIツールという。

ちなみにこの言葉の生みの親は、Howard Dresnerという人物!

あとで調べてみよっと・・・!

BIツールの目的・役割

膨大なデータから必要な情報を引き出し、経営や売り上げ拡大に活用するために、分析してレポーティングすること

みたいデータをすぐに見る事ができ、業務の効率化、意思決定を素早く行う事ができる。

BIの活用例

経営分析・財務分析・・・迅速な経営判断が可能になる。

営業分析・売上分析・・・いろいろなシステムからの統計、集計が容易になる。

残業分析・・・いろいろなデータやファイルを統合し多方面から分析ができる。

BI導入のデメリット

導入した企業が使い方を明確にしていない場合、作業の手間が省けたとしても本質である意思決定を迅速化し精度をあげる目的という目的が達成できていな場合がある。

BIの仕組み

①基幹系システムとの連携 

基幹系システムとは、会社の業務内容と直接関わるシステムのこと。生産、販売、在庫管理システム、人事給与システム、財務会計システムなどがそれに当たる。

②蓄積されたデータの分析・集計

③ビジュアライズする。

ビジュアライズとは、グラフや表図などでわかりやすくする事。可視化する。

まとめ

ビックデータにも活用でき今後伸びていく業種だと思う!

データスペシャリストの資格もあるようにデータを扱うのはいろいろと大変だと思うが仕事としてやりがいはすごいあると思った。

自分のした事がクライアントの業績に繋がるので達成感もすごいあると思う。

参考にしたサイト

BIツールとは?~BIの役割・3つの仕組みと機能比較|セルフサービスBI-LaKeel BI

クッキーとセッションについて

はじめに

今回は、クッキーとセッションのついて備忘録です。知識として曖昧だったのでまとめることにしました。

Cookie(クッキー)とは?

WebサイトがWebプラウザを通じて訪問してきたパソコンやスマホにユーザーを識別するためのIDや閲覧履歴などの情報を一時的に保存する仕組み

ツイッターとかフェイスブックなどのサイトで利用者のIDなどが保存されると、次にアクセスしたときに自動的に利用者の識別が行われ、前回の続きのようにサービスを受けることができる!!

これは誰もが経験あるんじゃないかなと思います。みんなツイッターに一度ログインしたらまた後からツイッターを開いても再度ログインする必要ないですよね?これはクッキーがあるから成り立っているのです。

クッキーはクライアント側に保存される。しかしクライアント側に保存されてしまうため簡単にかいざんできてしまうのでは?という問題出てくる。それを解消してくれるのがセッションである

Session(セッション)とは?

クライアントとサーバーの通信状態をセッションと呼びます。セッションはIDを割り振って管理しており、保存されたセッションを取り出したいときは、ID指定してあげる。

セッションはサーバー側に保存されているためクライアント側からは操作できません。

まとめ

cookieにsessionのIDを格納し、サーバー側にsessionのIDを送信することが出来る。

クライアント側はsessionの中身はサーバーにあるからデータの改ざんは出来ない。

これで安全な通信が可能になる訳です。

参考にしたサイト

セッションとクッキーの違い -

https://wa3.i-3-i.info/word1791.html

すごいなと思った技術の備忘録

## 初めに

プログラミングを勉強して役4ヶ月ほどが経ちました。勉強していく過程で気になった技術、すごいなと思った技術を備忘録としてまとめてみました。

ディープランニング

人工知能の根本をなす技術です。例えば、人間は犬と猫を判別する能力はありますが、人工知能にはそれを初め方持っていませんその能力をつけるために人工知能に何万通りの犬と猫の画像を見せて覚えさせる事ができます。そのデータから判断してその人工知能は判別できるようになるといった感じです。

最近でいうと将棋のAIとかがそれに当たります。

自身の考えですがディープランニングが成長していった先にはどん未来があるかというと、テレビでみた芸能人がきている服を知りたい時にそれをスマフォで写真を取って調べるとその服がわかったりする事ができるようになります。

ビックデータ

従来のデータベース管理システムなどでは記録や保管、解析が難しいような巨大なデータ群。明確な定義があるわけではなく、企業向け情報システムメーカーのマーケティング用語として多用されている。

今までは管理しきれないため見過ごされてきたそのようなデータ群を記録・保管して即座に解析することで、ビジネスや社会に有用な知見を得たり、これまでにないような新たな仕組みやシステムを産み出す可能性が高まるとされている。

ビッグデータとは - IT用語辞典 e-Words

例でいうとGoogleyou tubeなんかもそのビックデータを活用している。これはyou tubeを使用した人から情報を読み取りそれを解析し、企業にその情報を販売しているらしい。※間違ってたらごめんなさい。。。

だた問題点があり、ビックデータを導入してもすぐには活用できない事。情報を集めるには時間がかかるため長期スパンを見据えなければいけない。

また、個人情報の流出などの問題が起こる可能性もあるためビックデータの活用には注意が必要らしい。

まとめ

いや、その技術もう結構前からあったよっていう指摘がありそですが、恥ずかしながら自分は最近知りました。でもこういう技術でこの先どうなるのかっていうのがすごい楽しみでありそれが面白いところかなと思っています。

あくまで自分の備忘録なので、ネットで調べればもっと有益な情報はいっぱい出てきます!

IT用語の備忘録

最近読んだITmedia NEWS記事の

ITインフラの課題が浮き彫りに 打開策はクラウドが首位

を読んだ時にちゃんと用語がわからなかったのでまとめてみました。

クラウドサービスって?

自分自身のコンピュータで利用していたデータやソフトウェアを、ネットワーク経由で、サービスとして利用者に提供するものです。

利用者側が最低限の環境を用意することで、どの端末からでも、さまざまなサービスを利用することができる。

自分が使っているものだとDropboxとかGoogleドライブがそれに当たる!

クラウドサービスは主に3つある

SaaS(サース、サーズ:Software as a Service)

電子メール、グループウェア、顧客管理、財務会計などのソフトウェア機能の提供を行うサービス。  例:slackなど

PaaS(パース:Platform as a Service)

仮想化されたアプリケーションサーバやデータベースなどアプリケーション実行用のプラットフォーム機能の提供を行うサービス。  例:AWS

IaaS(アイアース、イアース:Infrastructure as a Service)

デスクトップ仮想化や共有ディスクなど、ハードウェアやインフラ機能の提供を行うサービス。自分だけのVMを作ってリソースを間借りできるというもの。 例:AWS

備考 VMとは・・・コンピュータ内に構築された仮想的なコンピュータ。要は仮想デスクトップもそういう事だね

感想

コロナ禍で企業はテレワーク、リモートワークが進んでいるから注目が一気に上がっていることは納得できる。特にSaaSはコロナ禍じゃなくても扱っている企業はほとんどだと思う。しかし何がどういいのかをしっかり把握した上で使えないといけないし、社員のみんなが使いやすくまた使い方も覚えてもわなければいけないので導入するのも結構考えてしまうと思った。

ruby練習問題での備忘録その2

今回のは、バイナリーサーチメソッドを使ってその数値が配列の中の何番目に存在するかを確かめる方法です。

バイナリーサーチとは?

ソートされたリストや配列の中央値を検索し、それを繰り返していく検索アルゴリズム

コード

今回配列は、

array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

とします。

def binary_search(array, number_of_elements, target)
  left = 0  //配列の一番初めは0番目から
  right = number_of_elements - 1  // number_of_elementsは、後ほど定義します。この変数は、array.lengthででた配列の数を表しています。lengthででた数値は最初が1 
  番目から始まるので、-1をしてあげないといけないことに注意が必要。
  While left <= right
    center = (left + right) / 2  //配列の中央の位置を出す
 if array[center] == target
      return center
   elsif array[center] < target //中央の数値より指定した数値が大きい場合
      left = center + 1
   else            //中央の数より指定した数値が小さい場合
      right = center - 1
 end
  end
  return -1                              //何も当てはまらない場合
end

array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

target = gets.to_i  //知りたい数値を聞く
number_of_elements = array.length //arrayの配列の数を出す

result = binary_search(array, number_of_elements, target)

if result == -1
 puts "存在しません"
else
 puts "#{target}は配列の#{result}番目に存在します "
end

解説として

今回は、While文を使う事で、繰り返し文を使っています。条件式がTrueの間ずっと行われるのでこれにより答えを導いています。探したい数値が見つかった時に、 returnを使ってWhile文を止めています。 理解に苦しみました...汗

Ruby練習問題での備忘録

今回はrubyの問題をやってみたということでその備忘録

問題内容

任意の3つの数値の合計を出力するメソッドを作りましょう。 ただし、同じ数が含まれている場合は 合計にカウントされません。

自分が出した答え

def lone_sum([a, b, c])
 if a == b == c
  puts 0
 elsif a == b
  puts c
 elsif a == c
  puts b
 elsif b == c
  puts a
 else
  puts a + b + c
 end
end

解説

なんだ簡単じゃないか!と思いつつ考えられる条件の分岐を洗い出して終わり...笑 ドヤ顔で答え見てみると、全然違うじゃん。 俺の書いたコードださってなりました。

答え

def lone_sum(ary)
  uniq_nums = []
  ary.each do |num|
    count = 0
    ary.each do |i|
      if num == i
        count += 1
      end
    end
    if count < 2
      uniq_nums << num
    end
  end

  sum = 0
  uniq_nums.each do |unique_num|
    sum += unique_num
  end

  puts sum

end

解説

理解するのに少し時間かかりました...汗 まずはeach.doを使って配列の要素を一つずつだす作業。さらにその中にもう一度同じ作業を繰り返すことで、 配列の0番目に対して、

0番目==0番目

0番目==1番目

0番目==2番目 同じかどうかの確認しています。

でさらに同じの場合は、countに1足してあげています。

例えば、ary = [2, 1 ,2]だった場合、二回同じという結果が出るのでcount = 2になります。

そして、if count < 2

     uniq_nums << num   

    end のところで、countが2より小さい場合つまり重複がない場合は、その値をuniq_numsに付け加えています。

あとはこれの繰り返しです。

これで重複してない数字がuniq_numsに入っています。

それをまたeach.doを使って変数sumに足していって完了!!

理解後はめちゃくちゃスマートじゃんって思いました。さらに回答のコードなら別に3つじゃなくてもできますね。

理解できてよかったです!!!

Javascript初歩中の初歩

javascriptで学んだことの備忘録

 

 

jsでオブジェクトを生成する場合は、

let human = {name: 'uycep2ed'}

変数humanはnameというプロパティ持っているという意味になる。

プロパティは属性名である"プロパティ名"とデータである"値"をセットである。

rubyでいうハッシュのような形である。

 

※ letとconstの違い

letは再代入可能

constは再代入不可

 

変数humanにプロパティを追加したい場合

性別を追加

let human = { name: 'uycep2ed' }
console.log(human)

human.sex = man
//もしくは human['sex'] = 'man' console.log(human)
//結果
{name: "uycep2ed", sex: "man"}

 

値を変更したい場合

let human = {
  name: "uycep2ed",
  sex: "man"
}

human.sex = "woman"

console.log(human)
//結果
{name: "uycep2ed", sex: "woman"}

 

オブジェクトのメソッドの操作

let human = {
  name: "Tsukamon",
  sex: man,
  age: 22,

  talk: function(){
console.log(`私は${human.name}です。年齢は${human.age}歳です`)
},

human.talk
// 結果
私の名前はTukamonmです。年齢は22歳です

 

HTMLの習得方法

idで習得する方法

document.getElementById("id名")

classで習得する方法

document.getElementsByClassName("class名")

※ classは複数使用している場合があるのでElementsと複数形になることに注意!

 

document.querySelectorAll("セレクタ名")

document.querySelectorもあり、こちらは最初のに見つかったセレクタの一つだけ

セレクタ名とは、CSSでスタイルを適用するために指定している要素のこと

class名は(”.class名”)

id名は(#id名)

HTMLタグは("タグ名")

と表記します。

 

getElementsByClassNameと

querySelectorAllの違いについて

getElementByClassName→HTMLCollectionで返す

querySelectorAll→NodeListで返す

それぞれによって使えるメソッドに違いがあります。

違いは戻り値に違いがあります。