気まぐれメモランダム / でたらめフィードバック

タグ: プログラミング

ブラウザライブコーディングアプリ"live tone(PoC)"公開

公開:
ライブコーディングの情報をすこし収集してみようかとふと思い、『演奏するプログラミング、ライブコーディングの思想と実践』に目を通したりして、これはいまならブラウザでも実現できるのではないかという気がしたのでちょっとプロジェクトを作ってみました。ウェブオーディオAPIのラッパーであるTone.jsを呼び出すコードをブラウザ上で入力・実行できます。
エントリを表示

Spring小ネタ2題

公開:
Java製WebアプリケーションフレームワークのSpringを実務で使っていて気づいた小ネタを2点ほど。 SpringのセッションID発行はコード上でのセッションスコープのBeanの参照と連動します。セッションスコープを指定したBeanを定義してDI等でインスタンスを生成すると発行されるようになります。セッションスコープ指定Beanを定義してもインスタンスを生成しなければ発行されません Spring MVCのテストフレームワークであるMockMvcを使った単体テストでモック化した ServletContextインスタンスが必要になったときは…
エントリを表示

React単体テスト実行時のSVGコンポーネント警告解消方法(vite + vitest編)

公開:
React + vite + vitest(+ Happy DOM)のフロントエンドプロジェクトに初挑戦、SVGの参照にReactコンポーネントとしてのインポートを可能にするvite用プラグインvite-plugin-svgr(実体はSVGR)を利用したところ、vitest実行で次の警告が報告されました。…
エントリを表示

Springセッションスコープの単体テストは要Webアプリケーションコンテキスト

公開:
Java製WebアプリケーションフレームワークのSpringに業務で初挑戦することになりまして、Controllerの単体テスト実装で引っかかったのでメモを残しておきます。 SpringにはControllerの単体テスト方法として次の二種類が用意されています。 Spring Bootの組み込みAPサーバーを使う方法 組み込みAPサーバーを使わず、代わりにSpring MVCのテストフレームワークであるMockMvcを使う方法…
エントリを表示

気づかなかったLinuxシリアル通信プログラミングチェックポイント

公開: / 最終更新日:
2023-12-17(Sun)追記: 「送受信データが変換される」を追加しました。またLinux manページのリンク先をDebianのそれに変更しました(OSDNが安定しないため)。 USB-シリアル変換ケーブルで接続するデバイスからデータを受信するLinuxアプリを業務で作成することになりました。Webエンジニアなのに。そもそもシリアル通信もLinuxアプリもやったことのない人間にそんなタスクをアサインするのはどうかと思うのですが、まあそこはそれ、いろいろ調べてなんとかかたちにするところまで持っていきました。その過程で気づいた、Webにある情報では気づきにくかった、あるいは見当たらなかった情報をいくつかメモとして残しておきます。ちょっとどこまで一般化できるかわからないのですが………
エントリを表示

pytest+motoでセットアップを共有する方法

公開:
Python初心者かつAWS初心者の私がAWS Lambdaの開発をはじめて半年強、ようやくpytestを使って単体テストを本格的に書けるようになってきました。motoというAWSのモックサービスを使うとローカルであることをほぼ意識せずに単体テストが書けることも学習。 ただしmotoのもっとも手軽な使用法であるデコレータでの指定だとせっかくのAWSモックセットアップがテストケース間で共有できません。テストケースをクラスでグループ化
エントリを表示

日時の秒未満精度のプログラミング言語による違い(2023年9月現在)

公開:
プログラミング言語によって日時の秒未満の精度が異なる点を意識しなければならないケースに先日見舞われ、せっかくなので思いあたるプログラミング言語の秒未満精度をざっと追いかけてみました。親しみのないものも多く誤りがあるのではないかと思いますが、取り急ぎの結果は次のとおり。 言語 精度 補足 JavaScript ミリ秒 ナノ秒対応の標準ライブラリ(Temporal)がリリース待ち
エントリを表示

Cognito Authentication Extension Libraryのメソッドはnullを返すことあり(2023年9月現在)

公開:
Amazon CognitoアクセスライブラリとしてAWSが.NET向けに公式に提供するAmazon Cognito Authentication Extension Library。README.mdに掲載されているコード片からだと CognitoUser.StartWithSrpAuthAsync メソッドは null を返すことがないように読めるのですが、実際には確認済みでないCognitoユーザーを指定して呼びだすと null を返すことを確認しました。なんで例外送出でないのかは不明。こういう落とし穴は気づきづらくてこまりますね……。皆様もお気を付けを。…
エントリを表示

ロートルプログラマのC++再訪記

公開:
あんなに親しかったC++と疎遠になって早や十数年。次にネイティブのプログラムを作るならRustを使いたいなあと思っていたところ、何の因果かふたたびC++と相まみえることになりました。疎遠になっていたとはいえ噂話は耳にする間柄、いまどきのC++(いわゆるModern C++)がかつてとは異なる様相を呈していることくらいまでは把握していましたが、細部に目を凝らしたりまでは当然しておらず、何がどうなっているかは浦島太郎状態。しかしC++を舐めてかかると痛い目にあうことは過去の経験で叩き込まれています。これはまずいと必死になってキャッチアップ、なんとか一息付くところまでたどり着いたので、せっかくですからまとめておきます。…
エントリを表示

Boto3 S3 Client APIのupload_file関数はメタデータ設定可能

公開:
必要に迫られてAWS SDK for Python (Boto3)を使った S3 へのファイルアップロード機能について調べたところ、クライアント API のupload_fileではオブジェクトメタデータは設定できないとする Web ページをいくつか目にしました。たとえば次。…
エントリを表示

シャドウDOMを使わないLitElementでslot要素を使う方法

公開:
Lit、というかウェブコンポーネントには子要素を指定位置に再配置するためのslot 要素という機能があります。これはシャドウ DOM用のため、thisを返すcreateRenderRootメソッドを定義するなどして普通に DOM にレンダリングするようにしたLitElementでは機能しません……そのままでは。…
エントリを表示

Amazon Cognito関連のエラー応答を整理する(2023年7月版)

公開:
AWS 提供サービスのご多分に漏れずAmazon Cognitoも求める情報を膨大な公式ドキュメントの中から得るのに骨が折れます。Cognito はユースケースが幅広いこともありその苦労もひとしお。特に苦労したのはエラー応答に関する情報で、まとまっているのを Web ではあまり見かけないように思うので、自分用の整理も兼ねてメモしておきます。 Cognito のエラーハンドリングが必要になるパターンは典型的には次かと思います。 URL 指定で直接アクセスしたとき API Gateway のオーソライザーに設定したとき
エントリを表示

Amazon CognitoはEメール送信数超過でエラーLimitExceededExceptionを返す(2023年7月現在)

公開:
先日見舞われて愕然としたので共有。 AWS の提供する認証サービスAmazon Cognitoはメール他による通知機能を提供しています。このうち E メールに関してはAmazon SESと関連付けないかぎり 24 時間の送信数が最大 50 件になります(Amazon Cognito のクォータ - Amazon Cognitoより)。実運用に耐える数字とは思えませんが、AWS としては SES との関連付けが前提で、関連付けなしは評価用等の想定なのでしょう。…
エントリを表示

RMWCとminifyの組みあわせでMDCのCSSが失われたときの対応方法

公開:
こんな現象に遭遇するのは私くらいかなあと思いながらメモ。 個人用勤怠記録 Web アプリWorking time aroundは次のサードパーティーライブラリ・ツールを利用しています。 UI キットにRMWC。React で Google 謹製 Web 向け Material Design CSS フレームワークMaterial Components for Web(以下 MDC)を利用可能にするコンポーネントライブラリで、MDC に依存 もともと使っていた Google 謹製の…
エントリを表示

Processing製フォント一覧表示ユーティリティ `ProcessingFontScape` 公開

公開:
自分の中で必要性が高まったので、以前作成した Processing のフォントカタログの機能をすこし強化してあらためて GitHub リポジトリとして公開しました。 DBC-Works/ProcessingFontScape: A small utility that draws a list of fonts available in Processing. ささやかなユーティリティですが、お役に立てば幸いです。
エントリを表示

『リアルタイムグラフィックスの数学』サンプルコードを Processing で動かすハードルは高かった

公開:
巴山竜来『リアルタイムグラフィックスの数学』は数学観点からノイズやレイマーチングを解説する薄いながらも内容の濃い本で、濃い故に私のような数学に馴染みのない者にとっては容易に読み進められる内容ではなく、また掲載されているサンプルコードからの抜粋と書籍用に編集された図版とではうまく擦りあわされていないと感じる点もあり、理解には別途配布されているサンプルコードの入手は必須です。
エントリを表示

Processing 4.0 と Java のあいだ

公開:
2022 年 8 月にリリースされたProcessing 4、二年半ぶりの待望のメジャーバージョンアップはベースとなる Java も 8 から 17 にアップデートされ、Java モードで使える文法が最新の Java により近づきました。過去のエントリ使えない Java の機能を知る / Processing と Java のあいだ(その 2)は更新しましたが、記載しなかった機能についても簡単に確認したのでメモしておきます。
エントリを表示

LitでVue.js 2.xコンポーネントを置き換えた話

公開: / 最終更新日:
Lit + Deno + Packup でお手軽に Web Components 定義で記した通りLitのコンポーネントが開発できるようになったので、前回の更新ではブログ部分のVue.js 2コンポーネントを Lit コンポーネントに置き換えて Vus.js 依存を解消しました。Lit の使いかたがすこしわかってきたので、把握した注意点をメモとして残しておきます。
エントリを表示

Lit + Deno + Packupでお手軽にWeb Components定義

公開: / 最終更新日:
IE サポート終了Web Componentsもいよいよ実用フェーズかと Web Components 開発用ライブラリLitのドキュメントに目を通していて、これはDenoを使えばお手軽なのでは?とひらめき試してみたところあっけなく成功したので共有。
エントリを表示

Gradleを実行するGitHub Actionsワークフローの初心者向けメモ

公開:
先日Processing用動作生成ライブラリFrameRecorderに音声指定機能を追加した際、あわせてGitHubのリポジトリにビルドのワークフローも追加しました。 追加の際はGitHubの提供するWebページ「GradleでのJavaのビルドとテスト - GitHub Docs」を参考にしたのですが、当然のことながら記述内容はGitHub Actions
エントリを表示

HTTP GETリクエストにボディを指定できないのはなぜか?(改稿版)

公開:
本稿はHTTP GETリクエストにボディを指定できないのはなぜか?(初版)の改稿版です。変更点は稿末の「改稿の詳細」をご覧ください。 ブラウザで動くJavaScriptから、GETメソッドを指定したHTTPリクエストでメッセージボディを指定できないのはなぜか?という話題を見かけまして、指定できないのは知っていましたが理由はたしかめてなかったので追いかけてみました。

TL;DR

HTTPの仕様としては規定されず、実装依存で拒否される可能性ありとの記述あり ブラウザのクライアントでは指定不可

HTTPの仕様としては?

エントリを表示

Parcel 2とJestを組みあわせるときはBabelの設定を分離する

公開:
Parcel は便利、でも Jest を使うなら……の続き。 バージョン 2 リリースまで長い停滞期間のあったParcel、最近は開発が活性化しています。 バージョン 2 になって取りあつかいがおおきく変わったのがBabelの設定。 presets での @babel/preset-env や @babel/preset-typescript 、 @babel/preset-react の指定は Babel の設定としては定番ですが、Parcel はこの指定があるとしつこく警告します。…
エントリを表示

Visual Studio CodeでJavaScriptの型チェック機能を網羅的に利用するには?(2022年版)

公開:
Visual Studio Codeには編集しているJavaScriptの型チェック機能があります。TypeScriptの機能の援用ですが、TypeScriptを利用しないプロジェクトでも利用できます。 ……という知識はあったのですが、あらためて使ってみようとしたところなかなかたしかな情報にたどりつけずけっこう手間取ったのでまとめておきます。
エントリを表示

Visual Studio CodeでProcessing(2021年版)

公開:
Visual Studio CodeでProcessing(2018年版)」を公開してから早や数年。ひさしぶりに読みかえしたところ内容がいささか古びていることに気づきましたので、現時点での最新版をあらためて公開します。手順の概要は次のとおり。 ProcessingおよびVisual Studio Codeのインストール processing-java のインストール(Macのみ) 拡張機能のインストール 実行用設定ファイル task.json の作成

ProcessingおよびVisual Studio Codeのインストール

エントリを表示

Processing 3用動画作成サポートライブラリ"FrameRecorder"公開

公開: / 最終更新日:
Processing 3用の簡単な動画作成サポートライブラリ"FrameRecorder"を公開しました。夏季休暇の自由研究です。 FrameRecorder 先日サイトのアナリティクスをGoogle アナリティクス4に移行したのでアナリティクスレポートをいつもよりすこし注意して見ていたところ、ProcessingライブラリVideo Exportを試すのアクセスがけっこうあることを確認、Processingでの動画作成サポートライブラリには需要があるとのことかと思いましたので、OneShotMovieWorkbench
エントリを表示

HTTP GETリクエストにボディを指定できないのはなぜか?(初版)

公開: / 最終更新日:
2022-07-28(Thu)追記: 記述に不足を認めたのであらためて改稿版を公開しました。そちらをご覧いただければ幸いです。 ブラウザで動くJavaScriptから、GETメソッドを指定したHTTPリクエストでメッセージボディを指定できないのはなぜか?という話題を見かけまして、指定できないのは知っていましたが理由はたしかめてなかったので追いかけてみました。

TL;DR

HTTPの仕様としては規定されず、実装依存で拒否される可能性ありとの記述あり ブラウザのクライアントでは指定不可…
エントリを表示

RMWCでMDC Reactを置き換える

公開:
地味に間欠的に開発を続けている個人用勤怠記録 Web アプリWorking time around開発の停止した Material Component for React(MDC React)をいつまでも使い続けるのもなあ、ということでMDC Web on other frameworksで紹介されているRMWC: React Material Web Componentsに置き換えました。RMWC の日本語の情報はほとんど見かけないのでちょっとメモ。…
エントリを表示

Slack incoming webhook URLの作成方法(2019年版)

公開:
こちらではお知らせしていませんでしたが、先日working-time-aroundSlackへの投稿機能を追加しました。外部アプリからの投稿は削除できないのでより強固な証跡が残せます……というのはともかく、実装にあたってちょっととまどったのが投稿に必要な情報の作成方法。Webを検索したところどうも最近になって仕様が変わったようで、古い仕様の解説や新旧の仕様の混在した解説が目につきます。人に伝えるにあたり新仕様の手順を整理したので、せっかくなのでこちらにも記録として残しておきます。次のとおり:
エントリを表示

Parcelは便利、でもJestを使うなら……(追記あり)

公開: / 最終更新日:
working-time-aroundではバンドラーにParcelを採用しました。試してみたかった、設定作業はしないに越したことがない、というのがその理由。実際に試してみるとなんにも準備せずに実行できる手軽さは圧倒的ですね。手放しでほめたくなります……が、ちゃんと開発するにあたってはおおきな落とし穴が。 Jest使いはじめて気がついたのですが、Jest はbabelと協調して動くので、Parcel では不要な babel の設定も Jest 用に用意しないといけないのでした……だったら…
エントリを表示

MDC React v0.15の全面採用は時期尚早(追記あり)

公開: / 最終更新日:
2020-01-19(Sun)追記: 昨年 11 月に MDC-React is no longer under active development と宣言されていました。アップデートされないと思ったらそういうことだったのか…… working-time-aroundでは UI ライブラリとしてMaterial Component for React(MDC React)を採用しました。バージョンは v0.15 とまだメジャーバージョンはリリースされていませんが、ベースとなるMaterial Component for the Webが今年二月に v1.0.0 リリース後 v3.2.0 まで順調に版を重ねているので問題なかろうと判断してのこと。しかしこれはちょっと時期尚早で、まだまだ気軽に使うというわけにはいきませんでした。以下覚え書き。…
エントリを表示

個人用勤怠記録Webアプリ"Working time around"公開

公開:
主に個人の勤怠記録を目的とした Web アプリケーション、"Working time around"を GitHub に公開しました。 working-time-around Web アプリケーションといいながらサーバーサイドの処理をまったく行わずデータはブラウザに保存する Single Page Application(SPA)なのでビルドを適当なホスティングサービスに置けばそれだけで動きます。ライブデモを Azure Storage に用意したのでどんなものかはそちらでおたしかめください。
エントリを表示

Processing製GLSLホストプログラム、SoundVisualShaderBase公開

公開:
主にインストの拙作のYouTube公開用動画生成に用いることを想定したProcessingプロジェクト、SoundVisualShaderBaseをGitHubで公開しました。 SoundVisualShaderBase 先のエントリにあるとおり最近GLSLでの映像生成に手を出しはじめたので、SoundPotentialFrameからGLSLのホスティングに必要な機能を抜き出したみたいなプログラムです。コードを読めばわかるとおり、GLSLファイルを読みこんで音声を再生、再生時の各種の値をGLSLに渡して描画、くらいしかしてません。GLSLのホスティングとかいいながらフラグメントシェーダーにだけ対応、バーテックスシェーダーには未対応で、ライブローディングもできないので、何のためのプログラムなのかと思われる方もいらっしゃるかと思いますが、複数フィルターを取りあつかえるようにしたので再生中にそれらを抜き差しするだけでもそれなりに楽しめます。動画生成用の静止画出力も可能です。実用的に使うには強力なマシンスペックが必要ですが………
エントリを表示

あまり知られていない様子のYAMLのあれとかこれとか

公開:
各種設定ファイルのフォーマットとしていまやすっかり定着した感のあるYAMLですが、単なるフォーマットの一種としてしか思われていない節もあり比較的初期から注目していた人間としては残念なかぎり。そこで知っていると役にたつかもしれないトピックをいくつかあげてみます。

YAML⊇JSON

Webでは「JSONではなくYAML」みたいな表現をよく見かけますが、実はJSONはYAMLです(JSON is YAML)……という表現は使われなくなりましたが、YAMLはJSONの自然なスーパーセットで、すべてのJSONファイルは有効なYAMLファイルでもあります。「どこが?」と思われるかもしれませんが、YAMLは書式としてブロックスタイルとフロースタイルという二つのスタイルを仕様で定めていて、フロースタイルだとJSON相当の記述となるのです。ブロックスタイルのほうが可読性が高いので自然とそちらが多用され、フロースタイルのYAMLは見かける機会がないわけですね。「YAMLのフロースタイルではなくブロックスタイル」と表現すると通に見られる、かもしれません(通に見られたからなんだ、というのはなしで)。…
エントリを表示

Processingでフォントカタログを表示する

公開: / 最終更新日:
GIMPのテキストツールフォント選択インターフェースの見づらさ、Windows コントロールパネルのフォントサンプルの見づらさに以前から不満を募らせていたのですが、「Processing ならフォントサンプルの一覧を簡単に表示できるのでは?」と突然ひらめいたのでさくっと作成してみました。 マウスホイールで一覧スクロール、コントロールキーを押しながらのマウスホイールでフォントサイズ変更(16 から 48 まで)です。テキストは適当に変えてください。 私の環境ではスクロールしているとときどきまったく応答しない状態になることがありますが、これはどうやらフォント作成に時間がかかるためのようです。すこしするとまた反応するようになるので、のんびり使ってもらえればと思います。…
エントリを表示

Date, C.J.『標準SQL 改訂第2版 JIS/ANSI/ISO準拠』 - ソフトウェア技術書温故知新(その3)

公開:
ソフトウェア技術書温故知新、第三回は1990年に邦訳が刊行されたC.J.デイト『標準SQL 改訂第2版 JIS/ANSI/ISO準拠』(トッパン)。 https://www.amazon.co.jp/標準SQL―JIS-ANSI-ISO準拠-アジソン-ウェスレイ・トッパン情報科学シリーズ/dp/4810180190
エントリを表示

Alexandrescu, Andrei『Modern C++ Design』 - ソフトウェア技術書温故知新(その2)

エントリを表示

久野靖『入門JavaScript(My UNIX Series)』 - ソフトウェア技術書温故知新(その1)

公開: / 最終更新日:
諸般の事情により業務の学習で購入した書籍を整理することになり、けっこうな量をチャリポン経由で処分しました。しかし中には内容が out of date になっていても愛着があって手放せないものもあります。またそれらを見ていたら以前処分した本のことなどもいろいろ思いだしたりしました。そこでせっかくなのでいくつかを何回かに分けて紹介したいと思います。題してソフトウェア技術書温故知新、第一回はこちら、2001 年に出版された久野靖『入門 JavaScript(My UNIX Series)』(株式会社アスキー)。…
エントリを表示

Visual Studio CodeでProcessing(2018年版)

公開: / 最終更新日:
2021-09-26(Sun)追記: 本稿の記載内容がいささか古びたため、内容を更新したVisual Studio CodeでProcessing(2021年版)を別途公開しました。設定方法につきましてはそちらをご覧いただければ幸いです。 SoundPotentialFrame開発でjsonやらGLSLやらPDEでは取りあつかえない形式のファイルをプロジェクトで利用するようになったので、Visual Studio CodeでのProcessing開発を試してみました。各所で紹介されているとおり、手順は次のとおり:…
エントリを表示

ProcessingでOpenGLシェーダーを使う(2018年版)

公開:
SoundPotentialFrameの開発で簡単にできそうだったのでOpenGLシェーダーのフィルター利用機能実装を試みてみました。しかし Web で簡単に入手できる情報には古いものも多く、見よう見まねで適用するだけでは使えなかったりで動くようになるまで四苦八苦。Processing で OpenGL シェーダーが利用可能になったのはバージョン 2.0 で、その後 Processing も OpenGL も(シェーダ記述言語GLSLも)バージョンアップを重ねているため、いろいろ情報に齟齬が生じている模様です。いや、Processing 公式の説明をちゃんと読めって話なわけですが。 具体的には次のあたりで引っかかっりました:…
エントリを表示

サウンドビジュアライザープログラム、SoundPotentialFrame公開

公開:
主にインストの拙作のYouTube公開用動画生成に用いているProcessingプロジェクト、SoundPotentialFrameをGitHubで公開しました。 SoundPotentialFrame 自作のサウンドビジュアライザーとしては三代目。初代はProcessing 1.5.x用で、当時標準で存在していたMovieMakerクラスで動画を生成していました。おそらくはQuickTimeのWindowsサポート終了の影響でProcessing 2.0ではMovieMakerクラスが削除されたので(PDEの「ツール」メニューにある「ムービーメーカー」はその代替で別の機能)、それではとリアルタイム操作への対応を試みたのが…
エントリを表示

Azure App Service認証下のSPAでGraph APIと連携する際はアクセストークンに注意

公開:
業務で拾ったネタをまたひとつ。 Azure Active Directory ログインを使用するよう App Service アプリを構成するで解説されているとおり、Azure App ServiceはAzure Active Directory(AAD)を利用した認証機構が簡単に実現できます(Easy Authと言うらしい)。サーバー側でWebページを生成するタイプのWebアプリケーションでもシングルページアプリケーション(SPA)でも、なんなら静的なHTMLでも分け隔てなく手軽に利用できるのが便利なところ。また、これはさすがに静的なHTMLでは無理ですが、Microsoft Graphとの連携も可能になります。…
エントリを表示

Microsoft Edge Legacyのfetch API実装は2018年10月の時点では問題あり

公開: / 最終更新日:
2022-10-17(Mon)追記: 2018 年公開の本エントリの指摘対象はいわゆる Edge Legacy で Chromium ベースの 2022 年現在の Edge にはあてはまらないため、タイトルを「Microsoft Edge の fetch API 実装は現在のところ問題あり」から変更しました。 ここのところ業務ではしばらく Single Page Application(SPA)と Web API で構成された Web アプリケーションを開発しています。担当は主に SPA 側。最近は SPA も Internet Explorer のようなレガシーブラウザを相手にしなければ特に課題となるようなことはありません……とは残念ながらいかないのがつらいところ。問題になりがちなのはまたしてもマイクロソフト謹製のモダン(なはずの)ブラウザ、Edge です。…
エントリを表示

治具あるいは型枠としてのユニットテスト――ベック『テスト駆動開発』雑感

公開: / 最終更新日:
昨年秋に発売されたベック『テスト駆動開発』新訳版の存在に今年7月になってようやく気づき、購入・再読して以来、ユニットテストについてぼんやりと考えています。 初版発売時はその存在に気づかず、しばらくしてから図書館で見つけたのがこの本との最初の出会い。借りて読んで大事なことが書かれていると思いつつ再読もせず、その後偶然入手する機会もあったのですがそのときも再読までは至りませんでした。今回あらためて読みかえす気になったのは、訳が新しくなったということもありますが、なんといっても訳者によって付け加えられた付録C「訳者解説: テスト駆動開発の現在」の存在。原著初版出版(2003年)後のテスト駆動開発にまつわるトピックが手際よくまとめられていて、経過した時間を補って余りあります。…
エントリを表示

Javaの機能の利用を控える / ProcessingとJavaのあいだ(その3)

公開: / 最終更新日:
前回はProcessingで利用できないJavaの機能の話でした。最後はProcessingでも使えなくはないけど無理して使うことのない機能の話で締めましょう。

Java Stream API

Java SE 8の目玉機能のひとつ、Java Stream APIはProcessingでもクラスライブラリとしては使えます。使えますが、ラムダ式の使えないProcessingでは述語を匿名クラスで記述しなければならず、実用に耐えるとはとても言えません。 関数 / メソッドがFirst class objectではない言語の悲哀です。ラムダ式が使えるようになるまでは無理して使うこともないでしょう。…
エントリを表示

使えないJavaの機能を知る / ProcessingとJavaのあいだ(その2)

公開: / 最終更新日:
前回は Processing で利用できる便利な Java の機能を紹介しました。他にも利用できるとうれしい Java の機能はあるのですが、残念ながらさまざまな事情で利用できない機能もあります。今回はそのうちのいくつかをご紹介。

static キーワード

Java は static というキーワードの指定でインスタンスに関連づかないメソッドやフィールドを定義できます。適切に利用すれば便利な機能ですが、Processing では利用できません。この制限は Processing の実現方法と密接に関連しているのでおそらく将来も解消されないでしょう。
エントリを表示

便利なJavaの機能を使う / ProcessingとJavaのあいだ(その1)

公開: / 最終更新日:
ProcessingのベースがJavaというプログラミング言語だということは多くの方がご存知でしょうが、その具体的な関係についてはよく知らない方も多いのではないでしょうか。 Javaの機能の多くはProcessingでも利用可能で、有効に活用すればクリエイティブ・コーディングを強力にサポートします。一方残念ながらProcessingでは使えないJavaの機能もあります。そのあたりの事情について触れている記事はあまりないようなので、今回から何回かに分けて関連するトピックを取りあげてみます。
エントリを表示

cebe/markdownのHTMLフラグメント解析不具合

公開: / 最終更新日:
BoothCMSではMarkdownのパーサーにcebe/markdownを採用していましたが、本ブログの移行作業の過程で空要素を含む HTML フラグメントの解析に問題を確認しました。確認したのはバージョン 1.2.1 です。 問題になるのは、たとえばこんな感じ(マークアップは現象確認用に編集したものです)。
エントリを表示

Processingリアルタイム動画生成の妥協点を探る

公開: / 最終更新日:
ProcessingライブラリVideo Exportを試すの続き。リアルタイム動画生成目的ではライブラリには頼れそうにないので、あらためて処理を検証してみました。 Processingで保存可能な静止画の形式はリファレンスによれば次になります: TIFF(.tif) TGA(.tga) JPEG(.jpg) PNG(.png) JPEGだけ非可逆圧縮、他は可逆圧縮ですね。 このうちTIFFはサイズがおおきくなりすぎて大量画像の取りあつかいには向きません。PNGは保存に時間がかかりすぎてリアルタイム動画生成目的には不向き。JPEGは非可逆圧縮の上にPNGほどではないにせよ時間がかかるのでできれば避けたいところ。となると残るはTGAのみ………
エントリを表示

ProcessingライブラリVideo Exportを試す

公開: / 最終更新日:
ひさしぶりにProcessingネタ。“Between breeze and calm”制作でパフォーマンスの低さに悲しくなったので、最近アップデートされた動画生成ライブラリVideo Exportを試してみました。 Video Export Video ExportはFFmpegのラッパーなので別途FFmpegの準備が必要ですが、それさえできていれば利用は簡単です。こんな感じ:…
エントリを表示

フラットファイルCMS"BoothCMS"公開

公開: / 最終更新日:
PHPで作成したフラットファイルCMS"BoothCMS"の初回プレビューリリースをGitHubで公開しました。 https://github.com/DBC-Works/BoothCMS BoothCMSはPico(特に初期バージョン)の強い影響下にあります。管理機能はなく、コンテンツはファイルとして作成してWebサーバーに反映させることで公開します。標準状態のPicoにない特徴は次になります: テンプレートをコンテンツごとに指定可能
エントリを表示

Processingで坂本龍一"async"ジャケット風画像を生成する

公開: / 最終更新日:
8 年ぶりということで話題になっている坂本龍一氏のアルバム"async"、いまとなってはファンというわけでもないので私は聴いていませんが、ジャケット風の画像は作れそうな気がしたのでちょっと試してみました。コードは次: 結果はこんな感じ:
エントリを表示

[保留] Vue.jsコンポーネントは文字列"PathFragment"を含むプロパティ名を使えない

公開: / 最終更新日:
Vue.jsのコンポーネント機能は構文の冗長ささえ我慢すれば現在の標準 JavaScript でも使えて本サイトでも重宝していますが、内部処理とバッティングするのか、プロパティ名に文字列'PathFragment'を含む名前が使えません。値は単に undefined になり、コンソール等にも情報は出力されません。昨日この現象に遭遇して解決に頭を悩ませたので、メモとして記録を残しておきます。 2017-05-08(Mon)追記: 私の実装が誤っていた可能性も高いので保留にしておきます。
エントリを表示

Material Design Liteのiframe処理をecho.jsで最適化する

公開: / 最終更新日:
Material Design Lite(MDL)は画像その他のリソースの有無をチェックし、存在しないときは非参照の表示が表に出ないよう調整します。そもそもこの機能がありがたいかは議論の分かれるところだと思うのですが(指定ミスに気づかない可能性が高まりますし)、対象のひとつである iframe 要素では別の問題も生じます。読みこみが二回発生してしまうのです。iframe 要素の参照先は比較的重いコンテンツになるので、これはありがたくない動作です。本来なら MDL が解決の方策を用意すべきだと思うのですが、残念ながら v1.3.0 の時点ではそうなっていません。
エントリを表示

Pico Tags Pluginでタグクラウド用の情報を生成する

公開: / 最終更新日:
なんかいろいろやりはじめてサイト更新が止まらなくなりましたが、たぶんこれで打ち止め。Pico Tagsに手を加えてタグクラウド用の情報を生成させてみます。やりかたはかんたん。ただ事前に「Pico Tags Pluginを効率化する」で説明した効率化対応を行っておいてください。 まず集計を保持するメンバー変数を定義します: (…) 次に、get_pagesメンバー関数の末尾に次のコードを追加します:
エントリを表示

Pico Tags Pluginを効率化する

公開: / 最終更新日:
このブログで採用した軽量CMSPicoソースを眺めていたら、タグ付けに使用しているプラグイン、Pico Tagsの処理を大幅に効率化できることに気づきました。プラグイン側でファイルを読みこんでヘッダーを解析していますが、わざわざそんなことをする必要はないのです。ただしPico側に少々手を加えなければなりません。以下その作業内容。…
エントリを表示

Pico移行にまつわるあれこれ

公開: / 最終更新日:
正規表現による置換と使い捨てPowerShellスクリプトと手作業による力技でデータの移行を済ませました。コメントもサルベージして、旧ブログへのリンクも新リンクへのそれに更新。iOSからのアクセスが意外にあるのでなんちゃってレスポンシブ対応も行いました。旧ブログへのアクセスの新ブログへのリダイレクト設定が残っていますが、まあこちはぼちぼちと。 メモとして、移行に際して気づいた点を以下に。

excerptの簡易日本語対応

Picoは一覧表示用にexcerpt(抄録、抜粋)を作成する機能を実装していて、$config['excerpt_length']の設定値で長さを調整できますが、これは空白(U+0020)で区切って数えた要素数の上限の設定なので、そのままでは日本語には向きません(空白が含まれないと全文出てしまう)。処理自体はlib/pico.phpのlimit_words関数で行っているので、対応するにはこの関数を変更します。私は手抜きで空白で分割する(explode関数を呼びだす)前に句読点のうしろに空白を挿入するようにしました。…
エントリを表示

ジェネラティブ・アート手習い(その3)

公開: / 最終更新日:
いちいち書いたりはしていませんが、けっこうひんぱんにProcessingでいろいろ試したりしています。しかし基礎のない人間の悲しさ、イメージどおりいかないことも多く、イメージどおりいったと思ってもぜんぜんだめだったりということがほとんどだったりします。とほほ。 そんな中でこれはなかなかうまくいったほうではないかと。

Echo under the ground(Processing Study)

はじめは箸にも棒にもかからない感じだったのですが、なんとなくあきらめがつかず粘っていたらここまできました。三角関数で周期性を与えるやりかたについてはすこしつかめてきたような気がします。しかし三次元までは遠いなあ………
エントリを表示

jQuery Mobileでページ読みこみ時にアンカー指定を復元する応急処置

公開: / 最終更新日:
ネイティブアプリケーション風の処理を実現するためにjQuery Mobileがいろいろと世話を焼いていることは興味のある方はご承知かと存じます。中でもページ内アンカーの処理がそのままだと行われないことにとまどいを覚える方は少なくないに違いありません。 幸い一般的な処理に関しては値“external”を指定したrel属性を指定したり値“false”を指定したdata-ajaxを指定するノウハウが周知されつつありますが、残念なことに初回のページロード時にURLに付加されたアンカー指定(#以降の指定、フラグメントやハッシュとも言いますね)を生かす方法は知られていません。それもそのはず、アンカー指定が生きないのはjQuery Mobileが親切にもページ初期表示時にページトップにスクロールしてくれるからです……「小さな親切大きなお世話」という言葉が脳裡をよぎるのはこんなときでしょうか。…
エントリを表示

Easy Image Slide: イメージスライドjQuery plugin for jQuery Mobile

公開: / 最終更新日:
2023-08-08(Tue)追記: 役目を終えたので配布を終了しました。 リニューアル前の「はりぼてミュージアム」ではアルバムジャケットの拡大表示にThickBoxを使っていたのですが、これはjQuery Mobileとの共存が考慮されておらず組みこんでみたところ使えませんでした。かなり古いライブラリなのでしかたがありません。 Webを検索して「jQuery Mobileを使った、タップで拡大するシンプルなイメージギャラリーを構築する際のサンプルコード」などを参考にして自作しましたが、せっかくだからとjQueryプラグイン化したので公開することにします。次のURLからZIPファイルをダウンロードできます。…
エントリを表示

ジェネラティブ・アート手習い(その2)

公開: / 最終更新日:
パーリンノイズと三角関数をこねくりまわしてたらなんとなく見られるものになったので動画にしてみました。

If you find a seed of emotion(Processing Study #8)

彩度とアルファチャンネルでごまかしているような気もしますが、まあそれはそれということで。なんと言いますか、はてしなくいじっているとそのうち偶然作品っぽいものに到達するという感じでまだまだ効率が悪くてしかたがありません。ある程度不自由なく操れるようになるまでどれだけかかることやら。…
エントリを表示

はじめてのジェネラティブ・アー……ト?

公開: / 最終更新日:
function getProcessingSketchId () { return 'Processing-Triangle'; } この年末年始は『ジェネラティブ・アート - Processingによる実践ガイド』という本を読んでました。なかなか興味深い内容だったので、早速腕試しをひとつ。 Your browser does not support the canvas tag. JavaScript is required to view the contents of this page.
エントリを表示

Processing Study #6: Pajamas Party

公開: / 最終更新日:
ちょっと思いついたのでぱっと作ってみました。楽しげな雰囲気が出せていたならおなぐさみ。

Pajamas Party(Processing Study #6)

偶然性なし、入力変換なし、ということで言えばSwaying Heartsに近いものと言えます。

Swaying Hearts(Processing Study #2)

この手のものはアイディア勝負なので思いついたらまたなにかやるかもしれません。…
エントリを表示

初挑戦その二

公開: / 最終更新日:
009 RE:CYBORG』公開記念(<-適当なことを言ってみる)。Processingで3Dグラフィックスを取りあつかってみました。

Little Dramatic Corner(Processing Study #5)

座標系だけでライトとか反射とかぜんぜん触れてないので世間のイメージするところの3Dグラフィックスには遠く及びませんが、なんとなくCGぽくなったと言えなくもないのではないかと……そんなことないか。
エントリを表示

Create movie using Processing on 64bit Windows 7

公開: / 最終更新日:
「遠い傷痕」のムービークリップ、クリップそのものは思いついてしまえば比較的スムーズに作成できましたが、64ビット版Windows 7に切り替えてからはじめての作業だったので思わぬところでトラブルに巻きこまれました。MovieMakerクラスでムービーを作成しようとすると例外が発生するのです。 NoClassDefFoundErrorだのUnsatisfiedLinkErrorだのが乱れ飛ぶ中、いろいろ調べてなんとか解決。要するにこういうことでした。…
エントリを表示

Processing Study #4: Accelarated City Wanderer

公開: / 最終更新日:
ちょっと思いついたのでぱっと作ってみました。

Accelarated City Wanderer(Processing Study #4)

描画フレーム時点の音の波形を高速フーリエ変換で周波数スペクトラムに変換し、その中の22.5Hz(A1)から1320Hz(A7)までを取りだして、常用対数スケールにした値をHSV色空間の彩度にマッピングした色で矩形を描画しています……何のことかわからないかもしれませんが、大丈夫、書いている本人もよくわかっているわけではありません(<-おい)。…
エントリを表示

Processing Study #3: In Closed Blue Room

公開: / 最終更新日:
ひさしぶりにProcessingをいじってたらちょっと簡単にできそうなネタを思いついたのでさくっと試してみました。

In Closed Blue Room(Processing Study #3)

元の曲は「部屋向けの音楽……か? 」で公開したものです。 ネタを明かせばフレーム描画時の再生音声の波を縦軸分だけ表示するだけの単純な処理ですが、色のつけかたと履歴の取りあつかいでちょっとかたちになっているかな、と。しかしやっぱり試してみるもので、最後は予期せぬ展開になって自分でも楽しめました。入力や偶然を生かした方向もおもしろそうだと認識した次第。…
エントリを表示

Process Processing with Eclipse

公開: / 最終更新日:
Processingの標準開発環境(sketchbookと言うそうな)はコンパクトながら構文の色分け表示など必要最小限の機能は備えていてそんなに悪くはないのですが、いかんせん近頃の至れり尽くせりの統合開発環境になれた身にはちょっと厳しいものがあります。またコードの共有が原則的には考慮されていない点もオブジェクト指向屋としてはマイナスポイント。というわけでEclipseでの開発環境を整備して前作のコードを整理しながらもう一本習作を作ってみました。
エントリを表示

Talk about Processing's MovieMaker class

公開: / 最終更新日:
グラフィックプログラミング環境としてはお手軽なProcessingですが、リファレンスはお世辞にも充実しているとは言えません。MovieMakerクラスのリファレンスを参照して途方に暮れた人は少なからずいるのではないでしょうか。 Parametersのtypeとqualityに定数が列挙してあるだけというのはいまどき信じられない手抜きっぷりです。こういうところこそ普段プログラミングに縁のない人向けに充実させたほうがいいのに…… ことに日本語の情報が不足しているようなので、わかる範囲でコメントを。…
エントリを表示

Pick up work

最近のエントリ

アーカイブ

ブログ情報