GitWeb で ソースを raw 表示にしたときの 文字化け対策
<If "%{QUERY_STRING} =~ /;a=blob_plain;/i"> Header set Content-Type 'text/plain; charset=utf-8' </If>
<If "%{QUERY_STRING} =~ /;a=blob_plain;/i"> Header set Content-Type 'text/plain; charset=utf-8' </If>
$ rec-radiko.pl [-c|--check] [-n|--no-conversion-to-mp3] <放送局ID> <録音開始日> <録音開始時刻> <録音長(分)> <タイトル>のように実行してください。
-c または --check | 任意 | atコマンドを発行せずに、コマンドの内容を表示します。 |
-n または --no-conversion-to-mp3 | 任意 | 録音後の mp3 形式への変換をしません。 |
<放送局ID> | 必須 | 放送局ID |
<録音開始日> | 必須 | 録音開始する日付を YYYY-MM-DD 形式で指定します。 例: 2024-09-02 |
<録音開始時刻> | 必須 | 録音開始する時刻を24時間制で hhmm または hh:mm 形式で指定します。 例: 305, 0305, 3:05, 03:05 |
<録音長(分)> | 必須 | 録音の長さを分単位で指定します。 例: 61 |
<タイトル> | 必須 | タイトルを指定します。 |
export RADIKO_SAVE_TO=/var/radiko/save/toのように追記すればよいでしょう。
$ radi.sh -l | perl -ne 'print if /radiko/../^$/'を実行すると確認できます。
cd /home/*****/aaaaa/bbbbb || { echo 'Execution directory inaccessible' >&2 exit 1 }のような記述があって、at を読んだときのディレクトリが存在しなくなると失敗させるようになっていました。
Windows 起動時のスタートアップ処理として、ネットワークドライブにドライブレターを割り付けるバッチファイル (中身は net use コマンドなど) を呼び出しているのですが、思いのほかネットワーク接続の確立に時間がかかり、動作に失敗してしまうことがあります。バッチファイルから呼び出す形で、ネットワーク接続が安定するまで次のコマンドの実行を遅延させるプログラムを書きました。
' Copyright 2023 FUKUDA Satomi (https://satomichan.jp/)
'
' Licensed under the Apache License, Version 2.0 (the “License”);
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
' http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an “AS IS” BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
'
' See the License for the specific language governing permissions and
' limitations under the License.
Public Module WaitNet
Public Function Main(args As String()) As Integer
'コマンドライン引数
If args.Length <> 4 Then
Console.WriteLine("USAGE: waitnet <host> <port> <timeout> <retry>")
Console.WriteLine()
Console.WriteLine("ex) waitnet.exe www.nhk.or.jp 80 2 3")
Return 255
End If
Dim host As String = args(0)
Dim port As Integer = Integer.parse(args(1))
Dim timeout As Integer = Integer.parse(args(2))
Dim retry As Integer = Integer.parse(args(3))
Dim tcp As New System.Net.Sockets.TcpClient
' 接続
Dim IsConnectSuccess As Boolean
Do
IsConnectSuccess = true
Try
Dim task = tcp.ConnectAsync(host, port)
If Not task.wait(timeout * 1000) Then
IsConnectSuccess = false
End If
Catch ex As System.Exception
IsConnectSuccess = false
End Try
If IsConnectSuccess Then Exit Do
If retry = 0 Then Exit Do
Console.WriteLine("ReTry: More " & retry & " times To Go.")
retry = retry - 1
System.Threading.Thread.Sleep(5000)
Loop While retry >= 0
' 結果
Console.WriteLine("IsConnectSuccess: " & IsConnectSuccess)
If IsConnectSuccess Then
Return 0
Else
Return 1
End If
End Function
End Module
VB.NET で書かれていて、Windows 附属のコンパイラ (vbc.exe) でコンパイル出来ます。
>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\vbc.exe waitnet.vb
Microsoft (R) Visual Basic Compiler version 14.8.9037
for Visual Basic 2012
Copyright (c) Microsoft Corporation. All rights reserved.
This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to Visual Basic 2012, which is no longer the latest version. For compilers that support newer versions of the Visual Basic programming language, see http://go.microsoft.com/fwlink/?LinkID=533241
>
@echo off
C:\waitnet.exe 192.168.1.1 445 5 10
if ERRORLEVEL 1 goto ERR
net use N: \\192.168.1.1\nas passwwww /user:user2
:ERR
exit
Excel などの表計算ソフト利用時に、数式内で参照しているセルの座標を必要な分だけ上下左右にずらしたいときがあります。一つや二つならばマウスでドラッグすることで容易にずらせますが、対象の数が多いと大変です。そこで、この作業を簡単に行えるツールをつくりました。
Excel などから数式をコピーして次のテキストボックスに貼り付けて、移動する数を指定し「実行」ボタンを押します。そうするとその下のテキストボックスに移動後の数式が現れるので、それを全て選択してコピー、Excel などに戻り先ほどコピーしたのと同じ場所で貼り付けをします。絶対参照のときにもシフトするかどうかはチェックボックスで選択できます。
JavaScript で実装しています。入力された数式などのデータはどこにも送信せず、いまこのページをご覧のコンピュータ内のみで処理しています。
行 増分 下へセル (上へ移動させる場合はマイナス値を入力)
列 増分 右へセル (左へ移動させる場合はマイナス値を入力)
例えば Excel だと、①「数式」メニュー、②「数式の表示」を順にクリックするとセル内に数式が表示されるので、必要な範囲をドラッグで選択して、右クリック・メニューから「コピー」をします。
C:\>echo %date:~0,4%%date:~5,2%%date:~8,2% 20230530
@param { keys %input } = values %input;を使っていたが、別の方法もあったと記憶していたので、簡単に確認した。
use strict; use warnings; use Data::Dumper; my %default = ( a => 100, b => 101, c => 102, d => 103, ); print Dumper \%default; my %param = ( a => 200, c => 201, ); print Dumper \%param; %param = (%default, %param); print Dumper \%param;
$VAR1 = { 'c' => 102, 'd' => 103, 'a' => 100, 'b' => 101 }; $VAR1 = { 'a' => 200, 'c' => 201 }; $VAR1 = { 'b' => 101, 'a' => 200, 'c' => 201, 'd' => 103 };
my %param = (...); ... @param { keys %input } = values %input;と
my %param = (...); ... %param = (%param, %input);は等価であることが確認できた。
java -jar nucalgen.jar -std-food-comp-table 20201225-mxt_kagsei-mext_01110_012.xlsx [-use-processed-table] -columns columns.xml -output output.xlsx -lines 20 -bright-colored-vegetables-list bright-colored-vegetables.xml [-sheets 朝食 昼食 夕食 集計] [-addition addition.xml] [-set-protect]
-std-food-comp-table <filename> | 必須 | 日本食品標準成分表 Excel ファイル |
-use-processed-table | 任意 | 日本食品標準成分表 Excel ファイルの加工をしない |
-columns <filename> | 必須 | 列定義ファイル |
-output <filename> | 必須 | 出力ファイル |
-lines <n> | 必須 | 行数 |
-bright-colored-vegetables-list <filename> | 必須 | 緑黄色野菜定義ファイル |
-sheets <sheet_name_1> <sheet_name_2> ... <sheet_name_n> <sheet_name_sum> | 任意(複数可) | 複数シート(食事区分+集計)を生成する |
-addition <filename> | 任意(複数可) | 付加行構成ファイル |
-set-protect | 任意 | 入力可能セル(「食品番号」「摂取量」)以外のセルをロックする |
・3人で行うゲームがある数え上げ問題なのですが、この問題を整数計画問題として(もともと数え上げ問題だったものを整数計画問題に「擬態」して、それ用のソルバで解けるようにして) GLPK (Gnu Linear Programming Kit) を使って解いてみたので、これで正解なのか自信がありませんが(なんだか A+ の成績はいただけたけど、正解したとは限らないし・・・、コロナ禍のもと対面授業ではなかったので質問の機会がなかったのです)、私なりの解答を披露したいと思います。
・9人が参加する
・各プレイヤーは4回だけプレイできて、さらに他のすべてのプレイヤーとちょうど1回ずつプレイする
・このような条件をみたすゲームの個数(=試合数)は何通りあるか、対戦表は作れるか