プログラミング

プログラミング

Pythonで動くハッシュ可視化プログラムを作った

Processingのハッシュ可視化プログラム Procesing(Pythonモード)で動くハッシュ可視化プログラムを作りました。 コードはPythonで記述しています。 完成したコード # ハッシュ可視化プログラム # グローバル変数 input_string = 'apple' current_char_index = 0 current_hash = 0 animation_state =...
とりあえずのメモ

ハッシュ化とは?(かんたんな実装から)

「ハッシュ化」とは、単語や文章などを数値に変換する方法です。 ハッシュ値を索引にデータを保存すると、長い情報も短い数字で表せるのでたくさんの情報を小さなスペースで管理できます。 また、元の文字列には戻せない一方通行の変換ですが、同じ文字列からは同じハッシュ値になるので「照合」に使えます。 ハッシュ関数とハッシュ化、ハッシュ値 ハッシュ関数とは、例えば このような関数です。 ハッシュ関数とハッシュ値...
とりあえずのメモ

[Cocoon] ブログカードを2列に並べるCSS

メッセージ動画の一覧を並べるために、Cocoonのブログカードに「thumbnail-only」のCSSクラスを追加しました。 style.cssに以下のコードを追加しました。 ポイントは、「display: flex」と「flex-wrap: wrap」です。 /** 2024-07-01 ブログカードを2列に並べるCSS */ .blogcard-type.thumbnail-only .bl...
とりあえずのメモ

子どもにとってのViscuitの魅力(プログラミング学習)

小学3年生の子どもがプログラミングに興味を示したので、3つの候補(Scratch、Processing、Viscuit)を見せてみました。 子どもが最も興味を示したのは Viscuit。 ルールの小さな変更が大きな変化をもたらすダイナミックさが子どもにとって面白いようで、夢中で遊んでいます。 「自分で作ったルールによって動く世界」。思い通りにならないことも学びにつながるのかも。 YouTube動画...
とりあえずのメモ

【断念】WordPressでタイトルからアイキャッチ画像を自動生成したい(Auto Post Thumbnailプラグイン)

WordPressでタイトルからアイキャッチ画像を自動生成したかったのですが、結局 断念しました。 ざっと調べたものは、$55の有料版限定であったり、日本語の文字化けがあったりしたからです。 この記事のアイキャッチ画像は、結局 Keynoteで作りました。 Auto Post Thumbnailのダウンロード数が最多 はてなブログなど、記事のタイトルがそのままアイキャッチになるサービスが便利そうで...
プログラミング

[CSS]ラベルボックスをスライド画像風にした

ふだんは、説明用の画像スライドを用意しているのですが、WordPress上で簡易版の文字スライドを作れるようにしました。 まず、このようなラベルボックス(Cocoon汎用ブロック)を作ります。 ラベルボックスのスライド化 枠線を半透明のグレーに設定 ラベル背景色を明るいベージュに変更 要素の幅を内容に合わせて自動的に調整 要素の左右の余白を自動的に調整 これをカスタムクラス「slide」に追加しま...
とりあえずのメモ

[CSS] 一行目以外にスタイルを設定するには?(否定擬似クラスには擬似要素を入れられない)

:not(::first-line)は無効になる title-listクラスのリスト要素(li)の各一行目を太字にしています。このCSSセレクタは、 .title-list li::first-line 二行目以降にスタイルを設定したいと思いました。 一見、::first-line 擬似要素を :not() 否定擬似クラスに入れれば、リスト項目の最初の行以外を選択するセレクタになりそうです。 .t...
とりあえずのメモ

リスト内の項目の1行目だけを太字にする(::first-line 疑似要素)

CSSを使って要素内の最初の行だけを太字にできます。 /** title-listクラスのリスト 2024-06-02*/ .title-list li { font-size: 80%; } .title-list li::first-line { font-weight: 900; font-size: 120%; } li セレクターを使って、全ての <li> 要素のフォントウェイトを no...
とりあえずのメモ

[Cocoon]アイコンリストにステップ箇条書きのカスタムクラスを追加した

これが普通のアイコンリストです。 追加CSSクラスにstep-listを追加する 全体が太字になる2行目はそのまま リストタイトルの文字が大きくなる 項目内の行間と項目間の余白が調整される そこに、追加CSSクラスに「step-list」を入れて、アイコンを変更してみます。 追加CSSクラスにstep-listを追加する 全体が太字になる2行目はそのまま リストタイトルの文字が大きくなる 項目内の...
とりあえずのメモ

[JavaScript]全選択で記事部分だけになるようにした

自分のサイト内の記事全体を選択しやすいように、スクリプトを作りました。 window.getSelection() テーマのjavascript.jsに以下のコードを追加しました。 document.addEventListener('keydown', function(event) { if ((event.ctrlKey || event.metaKey) && event.key === ...
とりあえずのメモ

サイト内タグをハッシュタグ化っぽくした(functions.php)

Google検索結果で、ハッシュタグ(#)を含む投稿が増えてきています。 そのため、自分のサイトでもタグにハッシュマークを追加することにしました。 functions.phpとstyle.cssを編集し、サイト内のタグがハッシュタグの形式で表示されるようにしました。
とりあえずのメモ

なぜかnoindexにしているはずのタグ一覧ページが検索結果に出てきた

noindexにしたはずのタグ一覧ページが検索結果に表示されていました。 原因を調べたところ、タグページ自体ではなく、そのフィードページがインデックスに残っていたことが分かりました。 問題を解決するために、functions.phpにコードを追加し、フィードページをnoindexにしました。 サイト内検索でタグページが出てきた 自分のサイト内検索を行ったところ、タグによる記事一覧ページが検索結果に...
Mac

zshでエラーでbrewの更新が必要だった(compinit)

zshの自動補完機能に関するエラー「zsh compinit: insecure directories, run compaudit for list. 」が発生したため、解決方法を調べました。 compauditコマンドでパーミッションを確認し、chmodコマンドで修正を試みましたが、新たなエラーが発生しました。 Homebrew Caskの再インストールを行ったところ、無事にエラーが解決し、...
とりあえずのメモ

今日の日付カレンダーアプリを作った(Electron)

Electronを使用して、Windows 7のガジェットにあったカレンダーのようなアプリケーションを作成しました。 このアプリケーションは、今日の日付と曜日を表示するだけのシンプルなものです。 macOS風にデザインを変更し、タイトルバーを削除して、ウィンドウ全体をドラッグできるようにしました。 Windows 7のカレンダーのようなアプリを作った Electronで Windows 7の「ガジ...
とりあえずのメモ

Electron, npm, nodeを久々に更新した(nvm)

npm、nodeを久々に更新しようとしたところ、ESMモジュールシステムと古いCommonJSモジュールシステムの競合によるエラーが発生しました。 Node.jsとnpmのバージョンに互換性がない可能性があるため、Node.jsのバージョン管理ツールであるnvmをインストールしました。 nvmを使ってNode.jsの最新LTSバージョンをインストールし、npmを10.7.0にアップデートすることで...
プログラミング

[JavaScript]下にスクロールするとヘッダーメニューを半透明にするようにした

Xのタイムラインを見ていたら、画面のメニューバーの透過度が上下のスクロールに応じて変化していることに気づきました。 少し下にスクロールすると半透明になり、少し上にスクロールすると元に戻っています。 自分のサイトのヘッダーメニュー(mobile-header-menu-buttons)でも、このような処理をするように、JavaScriptを作りたいと思います。 画面内の情報の表示範囲が増えるからです...
とりあえずのメモ

なぜオンライン版ExcelでエクスポートしたPDFが「JavaScriptの機能を使用している」の?(自動印刷処理)

オンライン版Excelからエクスポートした PDFで、JavaScriptの機能が使用されているという警告が表示されました。 これは、PDFを開いたらすぐに印刷できるスクリプトが埋め込まれているためです。 しかし、PDF内のJavaScriptにはセキュリティ上の懸念もあり、なるべくならオフにしておきたいです。 ローカルのExcelからPDFにエクスポートすれば、JavaScriptは含まれません...
プログラミング

WordPressカスタムプラグインに日毎のPVを表示する機能を追加した

WordPressプラグインに日毎のPVを表示する機能を追加しました。 add_menuを追加 自作のカスタムプラグインを使っています。今回は、そのプラグインに機能を追加します。 ※以前にプラグインを作成したのは、こちら。 まず、新しいサブメニューページを chiilabo_stats_admin_menu関数内のadd_menu_page関数の引数に追加しました。 add_submenu_pag...
トラブルと対処

QRコード生成APIをGoogleからqrserver.comに変更した

ついに GoogleAPIsのQRコード生成APIが終了していたので、QR code generator(goqr.me)のAPIに変更しました。 変更前: ' . $url 変更後: ' . urlencode($url) 前提: $url = get_the_permalink(); URLをURLエンコードするのがポイントです。 QRコードが表示されていない? このサイトの記事を印刷すると、...
とりあえずのメモ

[Cocoon] Amazonリンクに個別にPR表記をつける[CSS]

ちょっと商品紹介をしたいとき 記事の中にちょっとAmazonの商品紹介を入れたいときがあります。記事全体がPRでもないので、記事先頭にPR表記を入れるのにも抵抗があります。 そういうときのために、Amazonリンクに個別にPR表記をつけるようにCSSを変更しました。 テーマのstyle.cssに以下のコードを追加しました。 /** Amazonリンクに個別にPR表記をつける 2024-05-01*...
とりあえずのメモ

詐欺サイトはスマホを狙う(ユーザーエージェント)

クレジットカードなどの利用照会を装うメールから偽サイトに誘導する詐欺が横行しています。 ところが、パソコンからアクセスすると適当な大手サイトにリダイレクトされました。 スマートフォンからアクセスしたときだけ偽のログインページを表示するように、「ユーザーエージェント」という情報を使っていました。 詐欺メールがスマートフォンを狙うのは、コンピュータ関係に詳しくない利用者が多い、と考えられているからでし...
とりあえずのメモ

[WordPress] モバイル版の記事一覧の間隔を狭くした

モバイル版の記事一覧の間隔が狭くなるように、スタイルを調整しました。 一度に 5記事から 8記事見えるようになりました。 /** 記事一覧の密度を高くする 2024-04-26*/ @media screen and (max-width: 480px) { .list { row-gap: 0; } .list.ecb-entry-border .entry-card-wrap { margin...
とりあえずのメモ

モバイルヘッダーロゴが中央になっていたので左に直した(Cocoon 2.7.3.1)

スマホで自サイトを表示したら、ロゴの左端から中央に変わっていました。 サイトロゴはもともとは中央で、自サイトでは以前にカスタマイズしていたところです。 style.cssのロゴクラス(.mobile-menu-buttons .menu-button.logo-menu-button)に「justify-content: flex-start」を追加して戻しました。 ちょうどCocoonテーマの更...
とりあえずのメモ

[Cocoon] サイトロゴのリンク先をページ種類で変えた(WordPress)

Cocoonテーマでサイトロゴのリンク先を変更したいと思って、 functions.phpをカスタマイズしました。 add_filterで「'mobile_header_site_logo_url'」の処理で条件分岐するようにして、記事ページとトップページではブログ一覧に移動するように変更しました。 ロゴのリンク先を分岐させたい サイト上のロゴを押したとき、通常はトップページに移行します。しかし、...
AIの話題

ChatGPTがS式を解釈する?(自然言語処理と構文解析)

「S式風のプロンプトの書き方が使えるかも?」という説を目にして、実験してみました。 結果は、全く異なる構造のプロンプトを与えても、ほとんど同じ結果になってしまいました(GPT-4, Claude 3 Opus)。 カッコをほとんど省いて「うまいこと」解釈しているようで、現状は修飾関係を明示するような用途では使えなさそうでした。 生成AIは、もっともらしく動作します。だからこそ、うまくいくケースだけ...
とりあえずのメモ

[Cocoon]タグ一覧から1記事しかないタグを除外した(WordPress)

WordPressのCocoonテーマのタグ一覧で、1記事しかないタグを非表示にするように、functions.phpのショートコードを修正しました。 記事数が2以上のタグを降順で表示するようにしたら、タグ一覧がスッキリして関連記事を探しやすくなりました。 生成AIでコードの修正案を生成したので、数分でできました。 環境 WordPress, Cocoonテーマ さらにタグ一覧をカスタマイズした ...
とりあえずのメモ

どうして偽サイトに自分のロゴが使われていたのか?(ウェブAPI)

詐欺メールのリンク先の偽サイトを調べてみたら、自分のSNS用のアイコンが出てきて、ちょっとびっくりしました。 ソースを読むと、Clearbit社のAPIを利用して、メールアドレスからロゴを動的に表示していたのです。 また、最初の2回のログインを意図的に失敗させ、3回目に別のフォームサイトに誘導する、などの仕掛けもありました。 フィッシング詐欺は年々手口が洗練されてきています。安全のためにも、普段か...
クラウド

Google Apps Script で値を変更したのに反映されない?(SpreadsheetApp.flush())

Google SpreadSheetのセルの値を変更したのに、関数などに反映されていないことがあります。 関数の再計算をさせるには、その処理を追加する必要があります。 SpreadsheetApp.flush(); これは、スクリプト実行時は処理の効率化のために、関数の再計算が抑制されているからです。 Googleスプレッドシートで、入力フォームからデータ表に追記するスクリプトを作成したのですが、...
とりあえずのメモ

WordPress 6.5にアップデートしたらブログカード内のURLに改行が追加されるようになった[Cocoon]

昨日、WordPress6.5にアップデートしたところ、ブログカードを再編集したときに、URLの間に空行が追加されることに気づきました。 どうも、ブロックエディタのブログカード内での改行の仕様が変更になっているようです。 Cocoon バージョン:2.7.2.5で修正されました。 環境 Cocoonバージョン: 2.7.2.3 WordPress: 6.5 ブログカードが妙に縦に伸びている ブログ...
ちいラボエッセイ

プログラミングを経験すると不具合に対処しやすくなる(プログラミング教育のメリット)

コンピューターと付き合う上で、プログラミングの経験は役に立ちます。 プログラムを作ってみると、バグなしで完璧に動くコードを書くのは非常に難しいことがわかるからです。 プログラムの不完全さを理解していれば、コンピューターやアプリが思い通りに動かなくても、少なくとも落ち着いて対処できます。 ちょっとした見過ごしで「大惨事」だったりします。 これは、プログラミング教育のもたらす重要なメリットだと思います...
Windows

[Windows] ログインできないPCのデータを丸ごとコピーした(xcopy src dest /s /e /h /i /c)

データ復旧などでコマンドプロンプトからフォルダを丸ごとコピーしたいときは、「xcopy」というコマンドを使います。 例えば、「xcopy c:\Users\username e:\data /s /e /h /i /c」と入力すれば、c:\Users\username を e:\data として丸ごとコピーできます。 「/s」や「/e」などのオプションで、サブフォルダや隠しファイル、システムファイ...
とりあえずのメモ

サイトを複製されたくないのでRSSフィードを非公開にした[WordPress]

複製サイトが情報源として「RSSフィード」を使っている事例に遭遇しました。 そこで、WordPressサイトのRSSフィードを無効にすることにしました。 functions.phpでRSSフィードを生成する処理をフックで置き換えます。 WordPressサイトのRSSフィードを置き換えるコード 公開されているコードを参考に、RSSフィードを無効化することにしました。 function disabl...
トラブルと対処

「サイトで重大なエラーが発生しました」(ゼロ除算の2つの結果)

PHPのバージョンを7.4から8.0に上げたら、カスタムプラグインがエラーになるようになりました。 エラーをみると「ゼロ除算(DivisionByZeroError)」。 これまでは除算後に NaN のチェックをしていたのですが、除算前に 0 のチェックが必要になったみたいです。 どうも、除算演算子で fdiv でなく intdiv が使われるようになっていたのが原因ようです。 カスタムプラグイン...
プログラミング

WordPressカスタムプラグインのタイムアウトを避ける(mixhost)

カスタムプラグインでサイトの統計情報を分析しているのですが、時々タイムアウトで動かなくなってしまうんです。 そこで、cPanelのMultiPHP INIエディタを使って、max_execution_timeの設定を変更してみました。 これで、プラグインが途中で止まらずに済むようになりました。 カスタムプラグインの動作が安定しない カスタムプラグインでサイト統計情報を分析しています。 ところが、最...
とりあえずのメモ

[Cocoon] 「SNSシェア」ボタンをショートコードで表示できるようにした

記事内で、以下のショートコードを入力することで、好きな位置にSNSシェアボタンを出せるようにしたいと思います。 [sns_share_buttons] できたコード(functions.php)はこちら。 /** CocoonのSNSシェアボタンを表示するショートコード 2024-02-18 */ add_shortcode( 'sns_share_buttons', 'wrap_get_temp...
ちいラボエッセイ

九九表に含まれないものの素数ではない奇数(pythonの集合演算)

81までの九九表外の素数ではない奇数は全部で 9個あって、51と57に気をつければ、あとは素数ではないとすぐ見分けがつく数ばかりだということがわかりました。 ちなみに、81までの素数は、{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79}の22個で、はじめの4つ以外の18個はすべて九...
Mac

[macOS] ファイル名を一括変更するターミナルコマンド(sedでループ)

作業フォルダ内のファイル名にある「@」を「#」まとめて変更する必要がありました。 一個ずつファイル名を変更するのは大変なので、シェルスクリプトを作りました。 正規表現で作業フォルダ内のファイル名を一括変更する #!/bin/bash cd {作業するフォルダパスを入れます} IFS=$'\n' for f in *; do newname=$(echo "$f" | sed 's/@/#/g') ...
Windows

ExcelのクリップボードエラーとCutCopyMode(2つのクリップボード領域)

Excelマクロを実行したら、「クリップボードに問題がありますが、このブックにコンテンツを貼り付けることができます」というエラーメッセージが出てきました。 VBAコードの不要なコピー処理を削除することで解決しました。 クリップボードエラーが出てきた Excelでマクロ作業を使っていたら、「クリップボードに問題がありますが、このブックにコンテンツを貼り付けることができます」というエラーメッセージが表...
とりあえずのメモ

[WordPress] アイキャッチ画像にリンクを挿入した(ショートコード)

サイトのヒートマップなどを分析すると、けっこうアイキャッチ画像がタップされているようです。 そこで、アイキャッチ画像にリンクを付けられるショートコードを作ってみました。 eyecatch_link ショートコードを作った 記事中に以下のようなショートコードを入力します。 [eyecatch_link href=""] functions.phpにコードを追加する このコードを解釈できるように、fu...
とりあえずのメモ

[WordPress] 印刷時に管理者バー分の余白があるのが気になる(admin-bar)

管理者としてログインしているときに印刷モードでレンダリングを表示すると、上部に余白がついているのがきになりました。 この余白は、html タグについているようです。どうも、管理者バーの分だけ画面全体を下にずらすのが目的のようです。 WordPressのソースコードを検索すると、この余白が _admin_bar_bump_cb で設定されていることがわかりました。 function _admin_b...