サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
www.qoosky.dev
概要 Spring フレームワークにおける @Transactional アノテーションを利用すると DB トランザクション処理が簡単に設定できます。ここでは特に、こちらのページで環境構築した Spring Boot から MyBatis を経由して MySQL を利用する場合を対象としますが、JDBC を利用して他の DB を操作する場合も考え方は同じです。 参考ドキュメント Managing Transactions Spring Framework Reference Documentation / Using @Transactional mybatis-spring / Transactions サンプルプロジェクト 『Spring Boot から MyBatis を利用するための設定』における構成とほぼ同じです。 . |-- build.gradle |-- gradle |
概要 pcap (packet capture) というパケットキャプチャ用APIの実装には、UNIX系のlibpcapとWindowsのWinPcapがあります。これらのライブラリを利用したアプリケーションとしては、UNIX系のtcpdumpとWindowsのWiresharkが有名です。また、スクリプト言語にはlibpcap/WinPcapのラッパーが存在しており、パケットキャプチャアプリケーションの開発時に利用できます。例えばPerlにはNet::Pcapというラッパーがあります。 以下にtcpdumpコマンドを用いたパケットキャプチャのチートシートを記載します。キャプチャしたものの解析に必要となるヘッダ情報の意味自体は「TCPDUMPの出力を見てみよう」などを参照してください。 キャプチャするパケットの絞り込み インターフェースを指定 tcpdumpを実行するPCに複数のネットワー
概要 QT を Python から利用するためのライブラリには PyQt や PySide 等が存在します。PySide は元々 QT4 向けのライブラリでしたが、QT5 に対応するために新たに PySide2 が開発されました。PySide2 は Qt for Python ともよばれています。 Q: PySide? Qt for Python? what is the name? A: The name of the project is Qt for Python and the name of the module is PySide2. Q: Why PySide2 and not just PySide? A: Since PySide was developed for Qt4, when the port was made to support Qt5, the name
概要 jq の基本的な使い方をまとめます。 公式ドキュメント Tutorial jq Manual コマンド例 (公式チュートリアルより) 人間が読めるように整形および色付けして出力。JSON としての文法ミスがないかどうかの確認。 curl -s 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq . 配列の要素を指定 jq '.[0]' 特定の要素をピックアップして別の構造の JSON に整形 jq '.[0] | {message: .commit.message, name: .commit.committer.name}' xargs や map 関数のように全要素に適用 jq '.[] | {message: .commit.message, name: .commit.committer.nam
概要および事前準備 Apache Maven は Java 用のプロジェクト管理ツールです。テスト、ビルド、javadoc ドキュメント生成などを汎用的な手順で実行できるようになります。Apache Ant の後継です。バージョン 3 について簡単に使用方法をまとめます。事前にこちらからバイナリをダウンロードおよび解凍しておいてください。解凍結果の bin ディレクトリに PATH を通すことで mvn コマンドが使用できるようになります。 $ mvn --version Apache Maven 3.3.1 Maven home: c:\Users\username\bin\apache-maven-3.3.1\bin\.. ... なお JAVA SDK が動作のために必要です。Oracle のページから JDK をダウンロードおよびインストールして PATH を通しておく必要がありま
履歴にタグを付与する (git tag) 一覧表示 タグだけを一覧表示 $ git tag ログにタグ情報を付与して表示 $ git log --decorate=full 直近のコミットにタグを付与 コメントあり $ git tag -a v1.0 -m 'コメント' コメントなし $ git tag v1.0 過去のコミットにタグを付与 履歴を調査 $ git log --oneline 9d49dd9 step-1 static phone list 96a9b5b step-0 bootstrap angular app c6ac3f3 chore(bower): update jquery dependency to ~2.1.1 タグを付与 $ git tag -a v1.0 -m 'コメント' 9d49dd9 タグを削除 $ git tag -d v1.0 タグを指定して情報
タミヤのカムプログラムロボット工作セットをraspberry piでラジコン化しました。コントローラーはPS3コントローラ(dualshock3)のbluetoothで操作します。アナログスティックで左右のモーターの正転逆転をさせることが出来ます。おまけで、目の部分にはフルカラーLEDを搭載。
概要 React は、当時のバージョン 1 についてこちらのページ等で利用方法をまとめた Angular と比較されることの多い、UI 構築のための JavaScript ライブラリです。Angular と異なり、ES6 や JSX の構文が利用された JavaScript コードをブラウザが解釈可能な JavaScript にコンパイルする Babel や、ファイル分割された複数のファイルからなる JavaScript コードを Node.js で利用可能な require と同等の構文によって一つのファイルにまとめる Browserify といった周辺ライブラリを併用した開発になります。開発を行うために必要な環境の構築手順についてまとめます。方法は複数存在します。以下に示すのはそのうちの一部です。 create-react-app を利用する方法 create-react-app を利
概要 限られた時間の中で問題を解くために必要となる、競技プログラミングにおける基本的な処理のチートシートです。競プロにおけるメジャー言語 C++ を利用します。その際 C++11 の機能は利用せず C++03 の機能の範囲内で記述します。 頻度高く定期的に開催されるコンテスト AtCoder Codeforces main.cpp #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <string> #include <sstream> #include <complex> #include <vector> #include <list> #include <queue> #include <deque> #include <st
概要 AWS Glue を利用すると Apache Spark をサーバーレスに実行できます。基本的な使い方を把握する目的で、S3 と RDS からデータを Redshift に ETL (Extract, Transform, and Load) してみます。2017/12/22 に東京リージョンでも利用できるようになりました。また、本ページでは Python を利用しますが、新たに Scala サポートされています。 AWS Glue ETL 概略図 AWS Glue を ETL サービスとして利用する場合のシステム概略図は以下のようになります。 Data Source から Data Target に対して ETL します。本ページでは Data Source は S3 と RDS であり、Data Target は Redshift となります。 ETL は Job として実行され
概要 こちらのページで VirtualBox へのインストール方法を把握した VyOS について、DHCP/DNS/NAT/Firewall 等の基本的な設定方法をまとめます。 設定方法を検証するための構成 VirtualBox のゲスト OS として VyOS 用の VM を二つ用意します。手順はこちらです。 ホスト OS の所属するネットワーク <--NAT--> eth0 | ゲスト vyos-0001 (VirtualBox) | eth1 <--内部ネットワーク--> eth0 | ゲスト vyos-0002 (VirtualBox) vyos-0001 は eth0 経由でホスト OS の所属するネットワークから直接 ssh 接続できるようにします。そのための方法は様々ですが、ここでは eth0 に対応するアダプター 1 を VirtualBox の NAT で設定することにし
概要 「Docker CLI チートシート」および「Dockerfile ベストプラクティス (仮)」でコンテナの作成方法および単体での起動方法を把握しました。これらコンテナを複数起動して連携させる、オーケストレーションを実現する方法しては Docker 社が提供する Docker Swarm だけでなく、Amazon EC2 Container Service (ECS) や Google Container Engine (GKE) などが存在します。これらの方法のうち、特に今後優勢とされるのが GKE で採用されている Kubernetes であり、Docker 社はこれを Docker Swarm と同様に公式にサポートすることを発表しました。 そのため、今後は以下にまとめる Docker Compose だけではなく Kubernetes も開発用 PC での環境構築に利用できる
概要 こちらのページで開発環境の構築方法をまとめた Spring Boot における OAuth2 のサンプルコードをまとめます。こちらのページで和訳した Twitter API で利用されている OAuth 1.0A と区別します。こちらのページで簡単なサンプルをまとめた Spring Security プロジェクト配下の Spring Security OAuth を利用することで、OAuth2 プロバイダ (サーバー) および OAuth2 コンシューマ (クライアント) を簡単に構築できます。 Spring Boot OAuth2 チュートリアル Spring Boot ユーザーガイド / OAuth2 Pivotal-Japan / From Zero to Hero with REST and OAuth2 OAuth2 サーバーのサンプル OAuth2 ではアクセストークンの
概要 こちらのページで構築した Spring Boot アプリケーションのテストを記述するためには spring-boot-starter-test を利用します。依存ライブラリとして JUnit や Mockito などが利用されています。以下の公式ドキュメントを参考にしつつ簡単な使用方法をまとめます。 チュートリアル Getting Started / Testing the Web Layer ユーザーガイド Spring Boot Reference Guide Spring Framework Reference / 14. Unit Testing Spring Framework Reference / 15. Integration Testing JUnit 4.12 API (2017/9/10 に GA リリースされた JUnit 5 は ./gradlew depe
概要 こちらのページで使い方を把握した MyBatis を、こちらのページで使い方を把握した Spring Boot で利用するための基本的な設定およびサンプルコードをまとめます。サンプルコードにおいては、特に MySQL を対象とします。 MyBatis Spring-Boot-Starter チュートリアル Spring Boot 連携のための設定 Mapper XML ドキュメント XML における制御構文 公式の解説動画 Spring Tips: MyBatis サンプルプロジェクト構成 基本的な Gradle プロジェクトです。 . |-- build.gradle |-- gradle | `-- wrapper | |-- gradle-wrapper.jar | `-- gradle-wrapper.properties |-- gradlew |-- gradlew.ba
概要 Flyway は DB マイグレーションを実現するためのツールです。主に Java を対象としています。Rails におけるマイグレーション機能のようなものです。基本的な使い方をまとめます。 公式ドキュメント Get Started Download Command-line Maven Gradle Documentation Sql-based migrations Command-line tool Maven Plugin Gradle Plugin インストール Flyway は後述の Spring Boot プラグインや Java API 等によってアプリケーションから利用することもできますが、ここではコマンドラインから単体で Flyway を利用する場合を考えます。コマンドラインから利用する方法は複数提供されていますが、特に以下の三つを対象とします。 flyway コマ
概要 Spring は様々なフレームワークを提供する、Java のプロジェクト群です。Spring Batch、Spring Security、Spring Loaded といったプロジェクトがあります。Spring Boot は、これら Spring フレームワークを内部的に利用するフレームワークです。効率的なアプリケーション開発が可能になります。環境構築の手順を把握できるサンプルコードをまとめます。一通り把握できたら、次回以降は雛形を Spring Initializr で生成して、以下の公式ドキュメントを参考にしつつ開発できます。 チュートリアル Getting Started / Building an Application with Spring Boot その他 ユーザーガイド ページ分割形式 Spring Boot Reference Guide Spring Framew
概要 JDK でインストールされる keytool コマンドの利用方法を、『オレオレ (サーバ/クライアント) 証明書の発行』で利用する openssl コマンドと対比してまとめます。keytool コマンドは、こちらのページで hello world チュートリアルを記載した Android Studio のドキュメントでも使用される、Java における一般的なツールです。 秘密鍵、公開鍵 (、自己署名証明書) の生成 keytool は openssl と異なり、秘密鍵と公開鍵の片方のみを生成することはできず、必ずペアで生成します。例えば、RSA 暗号の秘密鍵だけを生成できないということです。AES 暗号などの共通鍵は生成できます。その際、公開鍵は秘密鍵で署名された自己署名証明書に内包された形式になります。よって、openssl における CSR 相当のものを生成するために必要なコモン
概要 Java SE 5 から導入されたアノテーション機能に関する基本事項をまとめます。アノテーションは @Xxx の形式で、Java の言語機能としては表現できない補足情報を注釈 (annotation) として記述するための仕組みです。クラス、インターフェース、メソッド、メンバ変数、メソッド引数などの定義箇所に記述します。 アノテーションの作成 アノテーションを利用する場面としては、自分で定義することは少なく、主に Java 言語側が定義する、@Override, @Deprecated, @SuppressWarnings といった標準アノテーションや、フレームワークや外部ライブラリが定義するアノテーションを利用することの方が多いかもしれません。外部で定義されたアノテーションを利用する際の理解を深める目的で、簡単なアノテーションを自分で定義してみます。 アノテーションの種類 アノテー
概要 こちらのページでは、特定の LAN に対して各種サービスを提供するための VyOS 設定を把握しました。本ページでは、複数の LAN をつなぐルータとしての設定方法をまとめます。具体的には、スタティックルーティングおよびダイナミックルーティング (RIP/OSPF/BGP) の設定方法を把握します。 設定方法を検証するための構成 ルーティング設定の検証を行うために VirtualBox で 5 台の VM を用意します。設定方法はこちらです。ホスト OS から vyos-0001 へ SSH 接続する部分を除き、「内部ネットワーク」設定のアダプターを追加します。 ホスト OS の所属するネットワーク | vyos-0004 | |eth0 .4 | | |NAT |192.168.4.0/24 | | | 192.168.1.0/24 |eth2 .2 eth0 | vyos-000
I2C とは I2C (Inter Integrated Circuit; アイ スクエア シー) はシリアル通信の方式の一つです。この規格に準拠したデバイス同士は、二本の信号線だけでデータのやりとりを行えます。デバイス同士は対等ではなく、マスターに一つ以上の I2C スレーブを接続します。これらスレーブは同じ種類の IC である必要はありません。各種センサー、LCD、モータードライバ、A/D コンバータなど、様々な IC が I2C に対応しています。 二つの信号線 IC 同士でクロックを同期するための SCL (シリアルクロック) データ通信のための SDA (シリアルデータ) また、似たインターフェースとして Raspberry Pi はシリアル通信の SPI 規格にも対応しています。 初期設定 Raspberry Pi は I2C のマスターとして動作可能なデバイスです。既定では
概要 makeコマンドを使えば、Makefileにあらかじめ記述しておいた手順にしたがって、C/C++などのソースファイルから実行ファイルを自動で生成できます。 具体例 実例1 Makefileの基本的な構造は、 処理名: 依存するファイルあるいは処理名 [タブひとつ]実行されるコマンド となります。以下のサンプルを使用するとき、タブがうまくコピーできなくてエラーになるかもしれません。手元でタブに置換して使用してください。 Makefile Sample: sample.cpp g++ -o sample sample.cpp sample.cpp #include <iostream> using namespace std; int main() { cout << "This is a sample." << endl; return 0; } 実行例 $ make g++ -o s
実行ファイルのビルド add_executable main.cpp #include <iostream> int main() { std::cout << "hi" << std::endl; return 0; } CMakeLists.txt cmake_minimum_required (VERSION 3.10) add_executable(main main.cpp) ビルド例 mkdir build cd build/ cmake .. make ./main hi 静的/動的ライブラリのビルド add_library mylib.cpp #include <iostream> void MyFunc() { std::cout << "hi" << std::endl; } CMakeLists.txt cmake_minimum_required (VERSION
概要 JVM 実行中に java.lang.OutOfMemoryError: Java heap space または java.lang.OutOfMemoryError: GC overhead limit exceeded が出力された場合の対応方法のひとつをまとめます。 jstat コマンドで JVM のメモリ使用状況を把握 「Java ヒープ・メモリの構造」や「Javaのヒープ・メモリ管理の仕組みについて」にまとめられているように、JVM のメモリ管理は以下のようになっています。 | Cヒープ | スレッドスタック | Javaヒープ | Cヒープ → JVM が OS のネイティブライブラリを実行する際に使用 スレッドスタック → スタック領域 Javaヒープ → 変数やオブジェクトなどを格納する領域 (Xms と Xmx でサイズを指定します) 概要に記載した Out Of
概要 grepは 'g'lobal 'r'egular 'e'xpression 'p'rint つまり、全体から正規表現で一致したものを抽出するためのコマンドです。egrepは 'e'xtended grep つまりgrepの機能拡張版です。拡張正規表現とよばれる式が使用できるため、grepと比較して高度な抽出が可能になります。とはいえ、grepに'-E'オプションを付与して実行するとegrepとほぼ同じコマンドとなり、grepでも拡張正規表現の使用は可能です。 サンプル集 sample.txt abc ABC 123 実行例1 $ grep '^1' sample.txt 123 実行例2 $ grep '^(1|a)' sample.txt # 結果なし 実行例3 $ grep -E '^(1|a)' sample.txt abc 123 実行例4 $ egrep '^(1|a)'
このページを作成した意図 「英語上達完全マップを10ヶ月やってみた」の管理者様の学習履歴を主に参考にしつつ、また上記管理者様をはじめとするTwitter英語学習クラスタのつぶやきを日々眺める中で知り得た、7000語程度から始める人向けの英語ボキャビル方法についてまとめました。毎日大量の時間を長期的かつ継続的に投資しなければならないため、この情報を知っていること自体に価値はないと考え、それよりもより多くの英語学習者さんに選択肢の一つとして知ってもらえたらと思い、まとめた次第です。ある方から質問を受けたのをきっかけに。ただ、後述の通りある程度のIT知識が必要です。 Qooskyの趣旨と違います? より多くの英単語を知っていると、英語の技術情報Webページをより有効に活用できますよね。このQooskyというサイトは、趣味の電子工作についての情報置き場として作った経緯がありますので念の為。 開始時
概要 sysstatというパッケージに含まれる "sar" (System Admin Reporter) コマンドを利用すると、PCの各リソースの使用状況を表示することができます。これは、負荷試験などでボトルネックを特定するために役立ちます。 使い方 インストール例 $ yum install sysstat インストールされたrpmパッケージ $ rpm -qa | grep sysstat sysstat-9.0.4-22.el6_5.1.i686 cronが自動設置されたことが確認可能 (rpmについてはこちらをご参照ください) $ rpm -ql sysstat-9.0.4-22.el6_5.1.i686 | grep cron /etc/cron.d/sysstat sarコマンドでは過去のシステムの状況を確認できます。その際に参照するログをcronで取得しているのです。取得間
概要 インターネット上に自分の商品の販売ページを生成する方法は Amazon に出店、BASE、STORES.jp、SPIKE など様々です。そうではなく、ここでは商品ページは自サイトにあり、決済手段だけを導入したい場合を考えます。具体的には、審査が通った一部の法人向けに昨年から日本でも利用できるようになった Amazon ログイン&ペイメントや、開発者向けドキュメントが充実している日本発の WebPay の類の決済手段です。ここでは特に eBay などを含み世界的にも標準の決済手段である PayPal を対象とします。最新のドキュメントが日本語化されておらず、開発時の情報が不足している状況が少しでも改善されればと思い、その使い方をまとめます。ここでは法人または個人事業主としてのビジネスアカウントの開設および本人確認手続きは完了しているものとします。プレミアアカウントでも問題ありません。B
概要 Sass (Syntactically Awesome Stylesheets) のチートシートです。インデントを多用した SASS 記法ではなく、広く普及している SCSS 構文の Sass を対象とします。 継承 (extend) 基本 .class1 { background-color: #f00; } .class2 { @extend .class1; color: #fff; } 継承元を使用しない場合 パーセント記号を用いることで、抽象クラスのような実体のないクラス class1 を定義できます。CSS にコンパイルすると class1 は消失します。 %class1 { background-color: #f00; } .class2 { @extend %class1; color: #fff; } ファイル分割 (import) 基本 main.scss @i
次のページ
このページを最初にブックマークしてみませんか?
『Qoosky [工作] | モノづくり総合プラットフォーム』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く