Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

思考のサルベージ(その14)

各工程で心がけたい思想を掘り起こしてみる 処理性能を求められるシステムでは、CPUを最大限有効に稼働させなければなりません。「空いた時間の上手な使い方」について考えてみます。 HWサポート 複数個のデータを元に複雑な演算をする必要があるとします。…

Easy-RSA による公開鍵基盤(PKI)

OSS

はじめに いわゆるオレオレ的な証明書の発行のためにプライベートな認証局(CA)を構築する、なんて経験は誰もがあるはず。自分も今までは CA スクリプトなど使いながらわりと苦労して構築してたんですが Easy-RSA なるシェルで簡単に構築できることが分かっ…

Fedora34でデフォルトIMEがAnthyになるですって!?? 〜OSSかな漢字変換再考〜

え、Anthy・・・!?!? 昨年末、LinuxディストリビューションのFedora界隈でこんなディスカッションなるものがあったそうです。。。 fedoraproject.org 中身はタイトルのとおりなのですが、、、 Fedora次期バージョン(=Fedora34)からデフォルトIMEがIBu…

FIRフィルタのフレーム処理

信号処理ではそのアルゴリズムによってフレーム単位で処理している場合が多いです。 フーリエ変換を行う場合は、そのサイズ(点数)でフレーム化されたりします。 このようなケースを考えたとき、フィルタもそのフレームサイズに適した形が都合が良く、高速…

思考のサルベージ(その13)

各工程で心がけたい思想を掘り起こしてみる 年末ですね。ということで開発の最後に片づける「ドキュメント整理」について考えてみます。 ドキュメント整理とは? ドキュメント整理とは、要求仕様書とそれに対する上流工程から下流工程の設計書、試験仕様書な…

GPG キーのエクスポート/インポート

はじめに 過去の投稿「GitHub の Verified マーク」の中で GPG を使用しました。マシンの買い替えにあたり、手っ取り早く GPG キーを移行することにしたので備忘のためこの手順を残しておきます。 移行は、 古いマシンで GPG キー、GPG 署名キーのエクスポー…

Audacity『ノイズ除去』の周波数特性

「Audacityのノイズ除去を検証してみる」では、AudacityのNoise Reductionが周波数を分析しているのならば、特定の周波数をノイズとした時、その周波数が消えるか?という観点で調べてみました。周波数特性についてもう少し検証してみます。 周波数特性を調…

The Continuing Story of Error Correction Code 6

行列 はじめに ここまでの記事で4ビットの送信語、、、、から単一パリティ符号やハミング符号を生成する、ということを考えてきました。 今回からはこれらの符号生成などを行列を使って表現する、ということをやってみたいと思います。 ところで行列、やった…

SAS備忘録

はじめに SASについて本人の備忘録もかねてまとめていきます。 はじめに SASとは 基礎 SASデータセット SASプログラムの構成 DATAステップ リスト入力によるデータセット作成 setステートメントによるデータセットの読み込み setステートメントによる縦結合 …

思考のサルベージ(その12)

各工程で心がけたい思想を掘り起こしてみる 今回は開発中の製品で見つけた不具合の過去製品への「フィードバック」について考えてみます。 ここでは、現在開発中の商品をPRODUCT-2、過去製品をPRODUCT-1と呼びましょう。PRODUCT-1はすでに客先リリース済みで…

Singularityでお手軽コンテナ運用! 〜CUDAも使えます〜

Singularityってなに!? 今回はSingularityを使って、コンテナ運用する方法を紹介します。 singularity.lbl.gov って、そもそもそれは一体何!?と思われる方も多いかと思いますが、一言で言うとDockerのようなコンテナフレームワークです。 Singularityに…

Node.js のインストール

はじめに node のバージョン管理に n を使っています。今までは n を npm で導入していて、そのためには先ず node/npm をシステムにインストールする必要があったのですが、これ無しに、直接 n をインストール方法を知ったので備忘のために記します。 直接イ…

Audacityの「ノイズ除去」を検証してみる

「Audacityでノイズ除去」では AudacityのNoise Reductionを紹介しましたが、はたしてどんなアルゴリズムなのでしょうか。気になったので少し検証してみます。 Audacityのソースコード 特定の周波数をノイズとして消してみる 1kHzの正弦波を生成 2kHzの正弦…

The Continuing Story of Error Correction Code 5

ハミング符号再訪 ハミング符号は誤り訂正の基礎 The Continuing Story of Error Correction Code 2 - Smile Engineering Blog で7ビットハミング符号を構成してみました。 このハミング符号はSECDED、CRC符号、BCH符号、リードソロモン符号などの基礎となっ…

curl 備忘録

はじめに 近ごろは Postman を使うことが多くなりましたが、サーバからのリクエストなどではコマンドラインが必要です。検索キーワード上位ランクイン確実な curl コマンドのオプションについてまとめました。

JupyterNotebook拡張機能「nbextensions」について

はじめに Jupyter Notebookをより使い勝手をよくするjupyter_contrib_nbextensionsがあります。 Notebook上でいろいろな拡張機能が使えるようになるものですが使用してみて個人的に便利だったものについて紹介します。

思考のサルベージ(その11)

各工程で心がけたい思想を掘り起こしてみる 前回は、開発メンバの「増員」をテーマとして、増員メンバを迎える立場で考えてみました。せっかくなので、増員メンバとして、新規にプロジェクト参入する立場についても考えてみます。 状況把握 プロジェクトへの…

Linux Mint 20 Ulyana 開発環境用初期設定

6月27日に「Linux Mint」の最新メジャーリリースとなるバージョン20(開発コード「Ulyana」)がリリースされました。 「Linux Mint」はUbuntuベースのデスクトップ型Linuxディストリビューションのひとつです。 当記事では、64bitのWindows上にVMware Workst…

Audacityでノイズ除去

Audacityのノイズ除去(Noise Reduction)は、はじめにノイズの範囲を指定してノイズプロファイルを取得する(ステップ1)、そしてノイズを除去したい範囲を選択してフィルタリングする(ステップ2)という2段階の手順になっています。Audacityについては…

The Continuing Story of Error Correction Code 4

誤り検出と誤り訂正 誤りを検出できる、そして誤りを訂正できる、というのはどういうことでしょうか? 今回はこれについて考えてみましょう。 The Continuing Story of Error Correction Code 2 - Smile Engineering Blogの最初に書きましたが、言葉の定義を…

思考のサルベージ(その10)

各工程で心がけたい思想を掘り起こしてみる 開発メンバの「増員」について考えてみましょう。今回は、プロジェクトの既存メンバとして増員メンバを迎える場合について考えてみましょう。 何故増員? はっきり言って、既存のメンバでうまいこと回せればメンバ…

Amazon Honeycodeを使ってみた(その2)

Amazon Honeycodeを使ってみた(その1) の続きで今回はアプリ作成画面を見ていきます。

PyTorchモデルをバイナリストリーム化してモデル解剖もしてみよう

PyTorchのモデルをバイナリストリームで保存できる!? 最近PyTorchのドキュメントを眺めていたら、PyTorchのモデルがio.BytesIOで保存できることを知りました。 (以前からこんな記載あったかな? あまり記憶にない……) # Save to io.BytesIO buffer buffer…

GitHub の Verified マーク

はじめに GitHub にて、Web ブラウザ上でプルリクエストをマージした際に Verified マークが付いていることに気づきました。自分のコミットも Verified されたい!という事で、備忘のため手順を残しておきます。

PCMにWAVヘッダを付ける

WAVヘッダを付けると便利 WAVヘッダのテンプレート リニアPCM16ビット、サンプリング周波数16kHz(モノラル)のWAVヘッダ WAVヘッダを取得するAPI 使い方 ファイルサイズを求めるAPI サンプルコード Audacityでファイル読み込み 最後に WAVヘッダを付けると…

思考のサルベージ(その9)

各工程で心がけたい思想を掘り起こしてみる 以前「ハードウェアインターフェース」について考えてみました。今回も詳細設計・実装におけるHWの利用方法について考えてみます。 事前実験 2BYETデータA[可変]、4BYTEデータB[可変]を連結する。 2BYTEのチェック…

Linux Mint 20 Ulyana 初期セットアップ手順

6月27日に「Linux Mint」の最新メジャーリリースとなるバージョン20(開発コード「Ulyana」)がリリースされました。 「Linux Mint」はUbuntuベースのデスクトップ型Linuxディストリビューションのひとつです。 私はVMware上に「Linux Mint」をセットアップ…

Amazon Honeycodeを使ってみた(その1)

はじめに コードをまったく書かずにウェブ・モバイルアプリを構築することができるという「Amazon Honeycode」のベータ版が公開されました。 どんなものなのか興味があり、無料で試せるということで少し触ってみようと思います。

PyTorchで学ぶ『平均』と『分散』と『BatchNormalization』

ところでBatchNormalizationってなんだっけ? 深層学習でモデル構築をしていると、よくお見かけするのがBatchNormalizationと呼ばれるもの。 ・・・はい。よく見かけますよね? ・・・・・・・・・。 ところで、結局それってなんでしたっけ? 「平均を0、分…

GitHub Wiki でのファイル添付

はじめに みんな大好き GitHub。issue や PR に補足資料としてパワポやエクセルのファイル、イメージを張り付けるなんてことは良くやります。この場合、Edit 欄にファイルを Drag & Drop するだけで自動的にアップロードしてリンク作成されるのですが、同じ…