TechCraft – エンジニアのためのスキルアップメモ

エンジニアのスキルアップを少しでも加速する技術ブログ

雑記

スケーラビリティを考える:アーキテクチャの変化に対応する設計思考

アーキテクチャの流儀:変化に強い設計の思考法 ソフトウェア開発の世界では、時代と共に求められるスピードや品質、スケーラビリティが大きく変化してきました。そしてそれに応じて、ソフトウェアの「設計」に求められる姿も進化しています。 本記事では、…

Pythonで株価を見える化!日経平均をグラフで読み解く基本テクニック

Pythonで株価データを可視化!日経平均株価の推移を分析してみよう 株式市場の動向を把握するためには、データの可視化が非常に有効です。特にPythonを使えば、手軽に株価データを取得し、グラフ化することができます。本記事では、日経平均株価の過去データ…

Pythonで学ぶポリモーフィズム

Pythonで学ぶポリモーフィズム:オブジェクト指向の基礎を楽しく理解しよう オブジェクト指向プログラミング(OOP)の三大要素といえば、「カプセル化」「継承」「ポリモーフィズム」です。その中でもポリモーフィズム(多態性)は、柔軟で再利用性の高いコ…

AI活用の未来を拓く:Model Context Protocol(MCP)

Model Context Protocol(MCP):AIと外部データソースをつなぐ新たな標準 近年、AIアシスタントや大規模言語モデル(LLM)の進化が著しい一方で、これらのモデルが外部のデータソースやツールと効果的に連携するための仕組みは、依然として課題の多い分野で…

2025年度版:新生活にピッタリなコスパ最強キーボード

2025年度版:新生活にピッタリなコスパ最強キーボード特集【画像付きレビュー】 新年度・新生活を迎えるにあたり、自宅や職場での作業効率を左右する「キーボード選び」は意外と重要なポイントです。特に在宅ワークやオンライン授業が定着した今、使いやすく…

静音クリックで快適作業!2025年のワイヤレスマウス特集

2025年4月版:高コストパフォーマンスのおすすめマウス5選 1. はじめに 日々の作業効率を向上させるためには、高性能でコストパフォーマンスに優れたマウスの選択が重要です。この記事では、2025年4月時点でおすすめの高コスパマウスを5つ厳選し、それぞれの…

PLCメーカーのST記述方法を比較

各PLCメーカーにおけるStructured Text(ST)の比較徹底ガイド ― Siemens、Mitsubishi、Omron、Rockwell ― 1. はじめに 製造現場や産業制御の自動化において、PLC(Programmable Logic Controller)は不可欠な存在です。 その中でも、IEC 61131-3で定義され…

Keychronの魅力と未来

【2025年最新版】Keychronのおすすめロープロファイルキーボード4選 – 軽快な打鍵感と機能美を両立 1. 導入:ロープロファイルキーボードの魅力とは? メカニカルキーボードといえば「分厚くて重たい」といったイメージを持つ方も多いかもしれません。しかし…

スキルと将来像を考える初心者向けプログラミング入門

初心者はどのプログラミングから始めるべきか?──将来のキャリアと今の自分から選ぶ最適言語ガイド 1. はじめに 「どのプログラミング言語から勉強すればいいの?」 これは、すべての初心者が最初にぶつかる疑問です。 結論から言えば、“正解は人によって違…

WSLとは? WindowsとLinuxの同時使用にはこれ!

WSLとは?Windows上でLinuxを動かす最強ツールの基本と活用法 1. はじめに WSL(Windows Subsystem for Linux)とは、Windows上でLinuxをネイティブに動作させる仕組みです。Microsoftが公式に提供しており、Linux開発環境をWindowsに統合する強力なツールで…

ScalaでHello World

ScalaでHello Worldを出力する方法 1. はじめに Scalaは、オブジェクト指向と関数型プログラミングの両方をサポートする強力なプログラミング言語です。 JVM(Java Virtual Machine)上で動作し、Javaとの互換性が高いのが特徴です。 本記事では、Scalaで基…

YOLOとは? 高速な物体建検出

YOLO(You Only Look Once)とは? – 高速物体検出アルゴリズムの解説 1. はじめに YOLO(You Only Look Once)は、物体検出(Object Detection)を行うための深層学習アルゴリズムの一つであり、リアルタイムでの物体検出に適しています。 通常の物体検出ア…

Ethernet(イーサネット)とは? 最新規格まで解説!

Ethernetとは?仕組みから最新規格まで徹底解説! 1. はじめに Ethernet(イーサネット)は、コンピュータネットワークで広く使用されている通信規格です。 企業のLAN(ローカルエリアネットワーク)から家庭用ネットワーク、データセンターまで、有線ネット…

Wi-Fiの規格一覧! 分かり易くWi-fiを理解する

Wi-Fiの規格とは?最新規格から過去の規格まで徹底解説! 1. はじめに Wi-Fi(無線LAN)は、スマートフォンやパソコン、IoTデバイスなど、現代の通信インフラに欠かせない技術です。 Wi-Fiの規格は、IEEE(Institute of Electrical and Electronics Engineer…

Brainfuckコンパイラ自作シリーズ 第5回

Brainfuckコンパイラ自作シリーズ 第5回:最適化とエラー処理 はじめに 前回までに Brainfuck のコードを C 言語に変換し、コンパイルして実行する仕組み を実装しました。 しかし、現時点の実装では 非効率なコードが生成される ことや エラー処理が不十分 …

デザインパターン 第3回 (Adapter, Decorator, Facade)

GoF(Gang of Four)のデザインパターン:構造パターン(Adapter, Decorator, Facade)を徹底解説 1. はじめに オブジェクト指向プログラミングにおいて、「異なるクラスをどのように組み合わせるか?」 は重要な課題です。 特に、クラス間の結合度を最小限…

ST言語の応用 多軸位置決め・ジョグ

ST言語での位置決め制御:多軸制御・ジョグ機能の追加とさらなる応用 1. はじめに 前回の記事では、ST言語を使用して、PLCopen Motion Control Function Blocks(MCFB)を活用した位置決め制御の基本 を解説しました。 今回はさらに発展させ、多軸制御、ジョ…

ST言語応用 MCFBを利用した基本的な位置決めまで

ST言語での位置決め制御:PLCopen準拠のMCFBを活用した状態遷移設計 1. はじめに PLC(プログラマブル・ロジック・コントローラ)では、モーション制御の標準規格であるPLCopen Motion Control Function Blocks(MCFB) を使用することで、異なるメーカーのP…

コンパイル型言語とは?

コンパイル型言語とは?仕組みと特徴、代表的な言語を解説 1. はじめに コンパイル型言語 とは、プログラムを実行する前に、ソースコードを機械語に変換(コンパイル)する言語 のことです。 C言語やGo言語などがこれに該当し、実行速度が速く、パフォーマン…

reStructuredTextとは? 管理しやすいマークアップ言語

reStructuredTextとは?マークアップ言語の特徴と活用方法 1. はじめに reStructuredText(reST) は、Pythonの公式ドキュメントやSphinxで使用される軽量マークアップ言語です。 Markdownと似た構造を持ちながら、より高度な文書構造をサポート しているの…

APIとは? 仕組みを分かり易く

APIとは?仕組み・種類・活用方法をわかりやすく解説 1. はじめに API(Application Programming Interface) とは、異なるソフトウェアやシステム同士が通信するための仕組み です。 例えば、天気予報アプリが気象データを取得する際や、SNSのログイン機能…

AI駆動開発 最新の開発支援ツールについて

AI開発支援ツールの進化:Clineとその競合ツールの比較 1. はじめに 近年、AIを活用した開発支援ツールが急速に進化し、エンジニアの生産性向上に貢献しています。 特に、Clineは、VS Code向けのAIエージェント型の拡張機能として注目を集めており、コード生…

PLCプログラミング完全ガイド:Structured Textで未来の自動化を学ぶ

【PLCプログラミング入門】Structured Textを使った最新の自動化技術ガイド 近年、スマートファクトリーの台頭や産業自動化の進化に伴い、PLC(プログラマブルロジックコントローラ)プログラミングの重要性がますます高まっています。 特に、従来のラダー言…

PLC制御の最適解?ST言語のスキャンタイム・インターロック・割り込み処理の実態

ST言語とC、Java、Pythonの技術的な違い 1. ST言語の動作特性 (1) メインループがデフォルト ST言語には main 関数のようなエントリポイントがなく、PLCのスキャンサイクルによってループ動作を繰り返す。 入力 → 処理 → 出力 の順に処理され、次のサイクル…

SDC(Software defined controller) 産業制御システムにおけるSD

産業制御システムにおけるソフトウェア定義コントローラ(SDC)とは? 1. はじめに 近年、産業制御システム(ICS)において、柔軟性と効率性を高めるための新しいアプローチが求められています。その中で注目されているのが、ソフトウェア定義コントローラ(…

AIを活用した自動テスト 2025-02

2025年最新!AIを活用した自動テストの最新動向と未来展望 (注記:本記事は2025年2月時点の情報に基づいています。) 近年、ソフトウェア開発のスピードが加速する中で、品質保証の重要性がますます高まっています。特に、AI技術の進化により、自動テストの…

OSSとは?

OSS(オープンソースソフトウェア)とは? 1. はじめに OSS(Open Source Software)とは、ソースコードが公開され、誰でも自由に利用・改変・再配布できるソフトウェアのことです。近年では、企業や個人を問わず、OSSを活用することで開発の効率化やコスト…

エンジニアの呼び名あれこれ

プログラミング言語別に見るカジュアルな表現 はじめに エンジニアの世界では、特定のプログラミング言語を使う人をカジュアルに表現する呼び名が存在します。 「Pythonista」や「Rubyist」など、一部は公式にも使われていますが、その他にもコミュニティ内…

Rust vs Go どっちを学ぶべき?用途別に徹底比較

Rust vs Go どっちを学ぶべき?用途別に徹底比較 1. はじめに プログラミング言語の選択は、開発の効率やプロジェクトの成功に直結します。特に、Rust と Go は近年注目を集めるモダンな言語であり、それぞれの強みがあります。 本記事では、Rust と Go の特…

Brainfuck コンパイラの自作 第1回

Brainfuck コンパイラの自作 第1回 - 基本設計と環境構築 1. はじめに Brainfuck は、極端にシンプルな命令セットを持つ難解プログラミング言語(esolang)です。本記事では、Brainfuck のコンパイラを自作する方法を解説します。 なぜ Brainfuck コンパイラ…