Smile Engineering Blog

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

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 するだけで自動的にアップロードしてリンク作成されるのですが、同じ…

FIRフィルタを作って周波数特性を検証

適応フィルタを作ってみる では、サンプルコードを紹介しましたが、実際に動かしてみたいと思います。そこで適応フィルタの前に、まずはシンプルに固定フィルタを検証してみます。 FIRフィルタ サンプルコード 検証用のコード サンプルコード フィルタスルー…

The Continuing Story of Error Correction Code 3

ハミング距離 カルノー図 カルノー図は論理式を簡略化するためなどに使用する図です。 このような論理式の簡略化を図から容易に行うことができます。 が、ここでは論理式は扱いません。ハミング距離の理解のためだけにカルノー図を使います。 ハミング距離の…

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

各工程で心がけたい思想を掘り起こしてみる 今回は、設計工程における「過剰設計」について考えてみます。対向装置の挙動が不透明な状態で設計をすすめると、「過剰設計」になることがあります。「過剰設計」とその弊害とは一体何でしょうか。 準正常系の設…

PySpark環境構築メモ

はじめに ローカル(Windows10)上でApache Spark(PySpark)を試してみたかったので、環境構築手順を備忘録として記載します。

GoでGoな非同期処理を試してみよう!

非同期処理、皆さんどうコードを書いてますか? 少し前のこと。弊社の若手(?)の方が、『非同期処理めんどくさい!』みたいなことを騒いでいたのですが、そもそも皆さんどうやって非同期処理のソースコードを書いているのだろう?とふと思ったわけです。そ…

Rustで設定ファイルを複数読み込む

Rustでの標準的・簡易的な設定ファイルの実装方法と問題点 開発したソフトの実行環境が変わるたびにコーディング・コンパイルをしなおすことのないよう、設定情報をソースコードとは別ファイルにしたり、実行時のOSの環境変数から取得したりする設計は常套手…

PlantUML の Illegal reflective access 問題

はじめに 近ごろ [PlantUML] で記述されたテキストに遭遇することが増えてきました。メインのテキストエディタとなりつつある VSCode に [PlantUML extension] をインストールしてみたところ、、

The Continuing Story of Error Correction Code 2

単一パリティ符号とハミング符号 お約束 これからエラー検出・訂正について考えていく訳ですがエラー検出・訂正をするからには何か入力があって、それをどこかに送るなり保存するなりして、受け取った、あるいは読みだしたら間違えているかもしれないからエ…

適応フィルタを作ってみる

信号処理の分野では、適応フィルタが色々な目的で使用されています。ちょっとした理由で適応フィルタのプログラムを作ってみました。 ADF【Adaptive Filter】 適応フィルタの構成 適応アルゴリズム サンプルコード:NLMSで作ってみる FIRフィルタ サンプルコ…

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

各工程で心がけたい思想を掘り起こしてみる システムテスト工程末期、客先リリース直前での不具合修正と性能変化ついて考えます。 ちょっとした判定ミス SWの動作としてはよくあるやつで、メインループで、実行命令を受信し、命令内容に従いHWを設定して後は…

PyTorchで京大BERT日本語Pretrainedモデルを使ってみよう

自然言語処理で注目を集めるBERT Googleによって提案されたBERTは、自然言語処理のあらゆる分野へ流用が可能で、ますます注目を集めています。自然言語処理を学んでる方でしたら、一度は触ってみたいですよね! 今日は京大から公開されている、 PyTorch & BE…

Cannot set LC_XXX to default locale: No such file or directory

はじめに ことあるたびに目にする、 Cannot set LC_ALL to default locale: No such file or directory のメッセージ。検索率の高いエラーメッセージなので、回避策?をここに記す。

MIPSとMCPS(?)、100MIPSは100MHzで動くか?

信号処理とMISP(前編・後編)では、ソフトウェアのベンチマークとしてMIPS【Million Instructions Per Second 】が使われることについて書いてきました。 前編(信号処理とMIPS - Smile Engineering Blog) 後編(信号処理とMIPS・後編 - Smile Engineering…

The Continuing Story of Error Correction Code

はじめに 最近、思うところがありエラー検出・訂正を勉強しています。 ネットの情報や書籍を頼りにやっていますが本格的なところは、行列だ、ベクトルだ、線形代数だ、巡回符号がどうのこうので多項式がなんとかで、挙句の果てはガロアなんとかだ、ときて心…

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

各工程で心がけたい思想を掘り起こしてみる 「単体テスト」について考えてみましょう。各工程のなかでは割と地味な作業ですが、この作業に割り当てられる時間は全体スケジュールに大きく響いてきます。 いつやるの? V字モデルに従えば、 機能設計 詳細設計 …

Dask備忘録

はじめに 今回は、Daskを触ってみたので使い方を備忘録もかねてまとめてみます。 Daskとは Pythonでデータ分析や機械学習をする際によく利用するライブラリがPandasですが、 Pandasで大容量データを処理すると、 データがメモリに収まらない 基本的に単一ス…

PyTorch超入門!

PyTorchを始めてみよう! 普段、TensorFlowで深層学習のソースを書いてた私……のはずなのですが、いろいろあってPyTorchを勉強する羽目(?)になってしまいました。が、 そもそもPyTorchなんてこれまでまったく触ったことないよ〜!! これではあかん!!と…