信頼はずっと、挑戦はもっと。

お問い合わせ
TEL:03-3496-3888

BLOG コアテックの社員ブログ (毎週月曜~金曜更新中)

LIST OF ARTICLES

記事一覧

  • テクログ

    PC不良の原因とは?

    先日久しぶりに厄介なPCの修理が入りました。症状としては電源は入るが画面に何も映らない。まずはグラボを外しマザーボードから出力してみるが改善されず。今回のグラボは外部電源を必要とするので750Wの物を組んであり電源ユニットからの出力が足りない事が現象の可能性が高いと思い真っ先に疑い出力は低いがマザーボード単体でならいけそうな電源ユニットを組んでみたが変わらず。それなら原因は別の部分にあるので各パーツを取り外しては確認の作業に移る。各コネクタを取り外してつけて、メモリの破損を考えて1本づつ交換など目に見える部分のチェックは全て終えても何も変わらず。以前同じような現象で前面パネルの電源スイッチ・USBなどの不良の可能性も考え取り外してみても変わらず。いよいよマザーボードかCPUの可能性が出たところでCPUの交換をしようとしたら在庫がない。交換できる変わりの物がなかったのです。しょうがないので一度組みなおしサポートセンターへ修理額の見積もりので連絡をいれて一応起動確認をしてみるとさっきまで変化がなかったキーボードのnumlockランプが光っていました。もしやと思っていたら復元の画面がでていてしばらく放置の後正常起動を確認できました。これにより原因はCPUの接触不良ではないかとの結論になりました。処理から1週間程度たっていますがその後エラー報告はまだ来ていません。ですがもう少し様子を見る必要がありそうです。通常使用でCPUがずれるとは考えにくい事なので疑問が残る作業でした。
  • 画像:ブログサムネイル

    テクログ

    最近知った便利WEBツールについて

    初めまして、だいじんです。今回が初めての投稿なので、題材に悩みましたが…ずばり!「evernote」というメモツールについて、熱い思いを語ります。このメモツールに出会うきっかけは、「入社して覚えることたくさんある!メモろう!」と思い、macのメモ機能に書き込みまくっておりましたら・・・案の定ぐちゃぐちゃになってしまった事です(=゚ω゚)ノこのevernoteには使いやすいと思える点がいくつかあり、今回はそのうちの2点をPICK UP!1、ノート機能このツールではメモを作成する前に「ノートブック」を作成します。例えば、php言語でまとめたノートブックを作成し、「でばっく!」とか「配列操作!」とかメモを作るととても整理されるのです!!個人的にこの機能のUXがとても受けがよく、きれいにできていると謎の達成感が…!!(`・ω・´)左から、新規ノートブックを作成してー、メモ作成してー、書き込む!!!基本的にマークアップ記法なのですが、code用の記述や、リンクの編集など、直感的に書き込むことができるので苦手な方でも安心!!2、タグ機能ここ最近では、他のメモツールでも見かけるようになった、「ハッシュタグ機能」がこちらにもあります!先ほどのメモページ下部にある、2つの項目が正しくタグです!!登録も簡単ですし、既存のタグを予測変換みたいに出してくれるので、すごく助かってます(`・ω・´)タグがあることにより、調べたいものがある時や情報をまとめたいときなどに便利です〜※検索機能も結構いい感じなので、関数名など入れてすぐ出てくるのはえらいです!!このツールを使う際は、ぜひ二段階認証しましょう!
  • テクログ

    経験が浅い方にお勧めの本

    お久しぶりです。JSです。4月に新入社員が入りましたので、経験が浅い方にお勧めの本を紹介したいと思います。ここで紹介する本は基本的に、私が就職してから1~3年以内に読んだ本になります。有名な本が多いので、既に読んだことがある方もいらしゃっるかもしれません。・Webを支える技術 -HTTP、URI、HTML、そしてRESThttps://www.amazon.co.jp/Web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93-HTTP%E3%80%81URI%E3%80%81HTML%E3%80%81%E3%81%9D%E3%81%97%E3%81%A6REST-WEB-PRESS-plus/dp/4774142042URIとHTTPの基本について書かれており、ステータスコードについても詳細に書かれており、業務に大変役立つと思います。読みやすい本なので、経験が浅い方でも充分理解できると思います。・プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AF%E3%81%AA%E3%81%9C%E5%8B%95%E3%81%8F%E3%81%AE%E3%81%8B-%E7%AC%AC%EF%BC%92%E7%89%88-%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E7%9F%A2%E6%B2%A2%E4%B9%85%E9%9B%84/dp/4822283151私は学生時代プログラミング未経験の状態で、新卒の受託開発会社に入社しました。入社前にこの本を渡され、読んでほしいと言われた本なので紹介します。内容は基本情報技術者試験にでそうな内容が中心なので、既に資格を取得済みの方や学生時代に専門の方は読む必要はないと思います。・リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニックhttps://www.amazon.co.jp/%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89-%E2%80%95%E3%82%88%E3%82%8A%E8%89%AF%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F%E3%81%9F%E3%82%81%E3%81%AE%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%A7%E5%AE%9F%E8%B7%B5%E7%9A%84%E3%81%AA%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF-Theory-practice-Boswell/dp/4873115655読みやすいソースの書き方が書いてあります。自分がソースを書く際に参考になり、ソースレビューする際に役立ちます。・良いコードを書く技術 -読みやすく保守しやすいプログラミング作法https://www.amazon.co.jp/%E8%89%AF%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F%E6%8A%80%E8%A1%93-%EF%BC%8D%E8%AA%AD%E3%81%BF%E3%82%84%E3%81%99%E3%81%8F%E4%BF%9D%E5%AE%88%E3%81%97%E3%82%84%E3%81%99%E3%81%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E4%BD%9C%E6%B3%95-WEB-DB-PRESS-plus/dp/4774145963こちらも基本的にリーダブルコードと同じで、読みやすいソースの書き方が書いてあります。リーダブルコードも分かりやすいと思いますが、こちらはそれより更に分かりやすいです。・体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践https://www.amazon.co.jp/%E4%BD%93%E7%B3%BB%E7%9A%84%E3%81%AB%E5%AD%A6%E3%81%B6-%E5%AE%89%E5%85%A8%E3%81%AAWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9-%E7%AC%AC2%E7%89%88-%E8%84%86%E5%BC%B1%E6%80%A7%E3%81%8C%E7%94%9F%E3%81%BE%E3%82%8C%E3%82%8B%E5%8E%9F%E7%90%86%E3%81%A8%E5%AF%BE%E7%AD%96%E3%81%AE%E5%AE%9F%E8%B7%B5-%E5%BE%B3%E4%B8%B8/dp/4797393165私は第1版しか持っておりませんが、webの脆弱性の紹介とその対策が書かれています。対策は様々な種類のプログラミング言語で書かれているので、役立つと思います。経験が浅い方には少し難しい内容もありますが、分かりやすい本だと思います。・新装版 達人プログラマー 職人から名匠への道https://www.amazon.co.jp/%E6%96%B0%E8%A3%85%E7%89%88-%E9%81%94%E4%BA%BA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC-%E8%81%B7%E4%BA%BA%E3%81%8B%E3%82%89%E5%90%8D%E5%8C%A0%E3%81%B8%E3%81%AE%E9%81%93-Andrew-Hunt/dp/427421933Xこちらも新卒の会社で入社前に渡され、読んでほしいと言われた本なので紹介します。プログラマ必読の本らしいですが、新装版ではないのを初めて読んだ時には全く理解できない内容も結構ありました。そこは飛ばして、数年後に読むと良いと思います。以上になります。興味がある方は是非読んでみて下さい。
  • テクログ

    素敵だら! Linux コマンド ~ファイル内容の表示 その1~

    こんにちはうなぎです。IT開発者にとって避けては通れない数ある Linux コマンドのうちから、厳選してご紹介する不定期コーナー“素敵だら! Linux コマンド”。今回はファイル内容を表示する、読み取るコマンドをいくつかご紹介します。ぱっと思いつくだけでも、cat, less, tail, head, more などのコマンドがあり、また vi (vim) や emacs などのエディタを使用することもあります。コマンドごとに強みがあるので、用途に応じて使い分けられるようにしたいですね。■less, more引数にファイルを指定するか、標準出力に対してパイプを通すことで表示することができます。※less も more も基本操作性は変わらないので、機能が多い less を使うことをお勧めしますless, more いずれも一度にすべて読み込むわけでなく、一部だけを読み取って表示させるので、高速に動きます。表示中、`q` を押すことで終了します。less text.txt cat text.txt | less また、これは結構大事なことですが、これらのコマンドは読み取り専用なので、誤ってファイルを変更してしまったり、タイムスタンプを変えてしまったりすることがありません。less, more は開いたファイル中から特定の文字を検索することも可能です。※いずれもファイルを開いた状態で `/` に続いてキーワードを打ち込む※次の検索結果に移動するときは `n`ただ、ログのような巨大なファイルだと検索に時間がかかるので、そういう時には grep コマンドを使った方がよいです。grep による検索結果が多いようであれば上記のようにパイプを通せば、検索結果が流れることなく確認でき、かつその検索結果のなかからさらに検索することも可能です。
  • 画像:ブログサムネイル

    テクログ

    最近の積読の読み方

     七夕ですね。実際に笹にお願いを書いたのは幼稚園の頃が最初で最後だったと思います。何をお願いしたかも覚えていません。七夕のお願いって神頼み的なことだと思うのですが、大人になった私は「神様にお願いするレベルの内容って実現不可能だと思うので切り替えたほうが良いのでは?」という価値観になりました。  タイトルの「最近の積読の読み方」の話になりますが、積読になっている本を手が届く範囲に置いておき、ふとした瞬間に何気なく本を手に取ってパラパラ見ると欲しかった情報があったりします。なので積読は近くに置いてパラパラするのがベストプラクティスです。
  • 画像:ブログサムネイル

    テクログ

    オブジェクト指向は因数分解だ!!

    どうも!先月に入社二年目を迎え、とうとうパイセンと化したわいです。自粛期間中ということで、かなり暇なので長編に挑みます。暇な人はぜひ最後まで読んでみてください。「うわあ、暇だあ…」ってより実感すると思います。今回、またもやプログラミングを他の概念にこじつけるシリーズです。この一年間、新人プログラマーとしていろいろ苦戦しました。その中のひとつが、『オブジェクト指向とは』の理解です。オブジェクト指向に関する記事はたくさんあります。それこそ、「オブジェクト指向はもう古い」とされていたりします。ただ温故知新という言葉があるように、オブジェクト指向について学ぶことは決して意味のないことではないと思います。むしろ、プログラミングをする上での基本的な考え方が詰まっているように思えます。詳しく、そして正確に知りたい場合は、他の記事をおすすめします。https://www.google.com/search?q=%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A8%E3%81%AF今回はオブジェクト指向のイメージを掴むために少しでもお役に立てればと思い、あえて変な角度からアプローチしてみます。その名も、「オブジェクト指向は因数分解だ!!」です。因数分解とは、「足し算・引き算で表されている数式をかけ算の形に変形する」ことです。例えば、cx^2+acx+bcx+abc = (x+a)(x+b)c となります。(中学数学でやりましたね?)ここで、下図のようなWebページについて考えてみましょう。(私自身、最初に車の例えを見たときピンとこなかったので…)犬の情報は、売られている犬がリストで表示されているとします。猫も同様です。店舗の情報は、住所、電話番号などが表示されているとしましょう。(ちなみに、私はペットショップに行くと悲しい気持ちになるので、基本的に中には入りません)かなり簡略化しているのでわかりやすいと思いますが、ペットショップのWebサイト = 犬の情報 × 猫の情報 × 店舗の情報という式が成り立つはずです。複雑なWebサイトでもこのように各パーツの組み合わせで成り立っています。これを先ほどの因数分解と合わせて考えてみます。ペットショップのWebサイト= cx^2+acx+bcx+abc (一見複雑だが…)=  (x+a)  ×  (x+b)  ×  c = 犬の情報 × 猫の情報 × 店舗の情報このようにWebサイトを因数分解することができました。「だから、なんだ?」という話なのですが、ここでオブジェクト指向について考えたいと思います。なぜわざわざ小難しいオブジェクト指向で書くかというと、それは変更に対して柔軟に対応するためです。どういうことかというと、「爬虫類も売ることにしたから、サイトに爬虫類の情報も表示したい」や、「犬を売るのをやめて、鳥を売ることにしたから変えてくれ」などという要望に、瞬時にそしてバグを出すことなく対応することがオブジェクト指向を用いると容易になるということです。適切にオブジェクト指向を使えば、似たような機能の追加が容易になり(再利用性)、たった一か所の変更のために他のパーツにバグが出ていないかページ全体をテストし直す必要がありません(疎結合性)。しかし、このオブジェクト指向の難しいところはどのように機能(クラス)を分割するかというところにあると思います。大雑把に分割しても効力は発揮しないし、かといって細かすぎても保守が大変になります。ここで、今回私が提案するのは「因数分解のように考えてみたら意外と上手くいくんじゃね?w」ってやつです。まず、「犬の情報」を「鳥の情報」に変えるということを因数分解で見てみましょう。これは、仮に a → d とすることで実現するとします。そうすると、ペットショップのWebサイト=  (x+d)  ×  (x+b)  ×  c = 鳥の情報 × 猫の情報 × 店舗の情報となり、(x+b)やc の値に何ら影響を与えることなく変更することが出来ました。ここで勘のいい人は、「おめえさん、x を変えたら『猫の情報 (x+b)』に影響を与えるだら?」と思うかもしれません。そうです。そして、この x がオブジェクト指向の要です。「犬の情報」も「猫の情報」も、『売られている動物がリストで表示される』という共通点があります。この共通点を規格として、インターフェースや抽象クラスにまとめ上げることで再利用性が高まり、さらに各々のクラスの役割がはっきりします。そして、ここで注意しないといけないのがなんでもかんでもこの x にまとめてしまうことです。各ペットの情報欄に年齢や性別のほかに、仮に「1日に〇回散歩に行かないといけない」という項目があったとします。これを x にまとめてしまうと『犬の情報 (x+a)』ではいいんですが、関係のない『猫の情報 (x+b)』に影響を与えてしまいます。だから、この場合は各ペットの情報欄の項目までは共通化せず、『売られている動物がリストで表示される』という根本機能だけを共通化することがいいように思えます。(犬と猫だけだと差異がわかりにくいですが、変わった動物を追加するとなると変な項目も増えそうです)かといって、ペットショップのWebサイトということなので、『売られている動物がリストで表示される』という機能の共通化を疑う必要はないでしょう。それだと、オブジェクト指向の意味がなくなります。次に、f(a) = x+a とすると、ペットショップのWebサイト=  f(a)  ×  f(b)  ×  c = 犬の情報 × 猫の情報 × 店舗の情報となり、 犬(a)  や  猫(b)  を f に与えるだけで欲しい情報が得られるということです。この f こそが、『売られている動物をリストで表示する』という機能であり、インターフェースです。この『動物』という抽象に対してプログラミングしていくことが、ポリモーフィズムです。最後に、カプセル化について考えます。f はインターフェースや抽象クラスで、 f(a) は『売られている犬をリストで表示する』という具象クラスです。実際にペットショップのWebサイトを構築する際は、この f(a) を使います。そして、この f(a) を利用するとき、『売られている犬をリストで表示する』という具象クラスであるということだけを知っていればよくて、f(a) = x+a だという具体的な中身を知っている必要は全くありません。実は、『売られている犬を「人気順に」リストで表示する』ということをやっていて、中身が f(a) = 3x+1+a と多少複雑になっているかもしれません。ただ、このように具体的な中身を知らずとも、 f(a) を使えばWebサイトは構築できます。クラスを外部から利用するとき、 f(a) のような簡素な見た目で提供し、影響範囲をクラス内にとどめておくことをカプセル化といいます。いかがでしたか?「オブジェクト指向は因数分解だ!!」理論は。あなたのソース、c(x^2+ax+bx+ab) や x^2(1+a/x)(1+b/x)c になっていないでしょうか?「うわあ、暇だあ…」最後まで読んでくださり、私としてはうれしい限りですが、相当お暇なんですね。なにか自粛期間にできる趣味をお探しになることをお勧めします。以上、わいでした。健闘を祈る!!