SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|07|

2005-04-30(Sat) 白い服の男を返し、ドラクエ捜索

  今日も天気がよい。ポクポクと近所の図書館に本を返しに行く。気づくとナナメ読みしかしていないCodeReadingを抱えて、である。いや、悪い本ではないし、この本にしか書いてない情報は多いとは思うのだが、パラパラとみて衝撃を受けるような内容でなかったのも事実なのである。そもそも、コードの読解テクニックなんていうモノを本から得ようとするコト自体が間違っているのだと思う。どんな本であれ読むことは無駄ではない「ことはない」と思う。とくにその本が高価な場合だ。やっぱり5,000円越えはちょっと高い。高すぎるよ。

  一方で、星新一の「白い服の男」はシッカリと読んだ。以前にオイラが書いたニュースこそ規制すべし、という内容のコラムと主題が近いのではないかと思い、再読したくて借りたモノだ。結果、白い服の男の主題は「軍備や武器を減らしても戦争はなくならない、その概念から抹殺する必要がある、例えその抹殺行為がいかに不正であったとしても」というモノであった。厳密にいうと、最後は「抹殺行為がいかに不正であったとしてもやるべきか?」という読者への問いかけなのかもしれないけれども。

  オイラの「ニュースこそ規制すべし」にその小説を当てはめるとどうなるのだろう。残酷表現のあるゲームソフトの抹殺はもちろん、その類のニュースは如何なる報道操作をしてでも抹殺すべし、というコトになるのだろうか。むしろ、そういった抹殺行為が不正というよりは、限りなく難しいのだというコトを表現しているという見方もできる。ま、なんにせよ、情報の隠蔽というものは難しく、今後さらに難しくなっていくコトが予想される。そしてインターネットが、テレビよりも公平なメディアであるコトに間違いない。なんか、うまくまとまらないが、そーゆーコトなのである。

  と、ここで突然だが、ちょっと前からオイラはドラクエをプレイしたくて仕方がない。以前に携帯電話の新機種にドラクエが搭載されたとか聞いたときは、電話だけ購入したくなったくらいだ。というのも、やっぱりね、アレですわ。エポックメーキングであったと認められた作品については、ひととおり経験しておくコトが必要なんですわ。

  <かきかけ>

  画像の説明


2009-04-30(Thu) のんびり進捗

  なんか、たっぷりと寄り道しつつ、扇風機を作り始める。

  画像の説明

  今回は、ワザとモシャモシャさせてみた。


2011-04-30(Sat) Blu-ray★マギカ

  なんつーか「ライブ」はまだ終わってない、ということに気づかされた。「ライブ」感を重要視して、新横浜まで行ったのに。これは予測できなかった。

  結局、Blu-rayプレーヤ持ってないし、Blu-ray版は買ってないんだが、セリフのミスで交換とか、買ってないと味わえない「ライブ」な出来事が起こっている。あー、買っておけばよかった。

  追加購入するヤツが現れることを見込んで、ワザとやってんじゃねーのか、と思わなくもないが、仮にワザとにしても、ここまでのデキのモノを出してきた実績があれば、悪意に取れない。

  しかし、なんでいまさらセリフのミスが入る余地があるのかと思ったら、カットの修正とかもハンパなく入っているのね。放送版とは異なる「ディスクを買え」というビジネスモデルを、よりハッキリと打ち出してきた、というか。

  6巻の発売まではまだ何ヶ月もある。こーなると、6巻は「全部新作カット」とかになりかねないのではないか。展開も変えてくるのではないか。尺も長くしてくるのではないか。そして、5巻の発売直後に映画版を公開、とかもやるのではないか。

  ぜひとも、この「ライブ」には便乗しておき、一緒に楽しむべきじゃなんじゃないかと、思いつつも……。

  ……DVD版という手もないことないが。


2012-04-30(Mon) 紺ズタ袋と撮影スタジオを自作する


2020-04-30(Thu) テイクアウトに乗りまくれ!!

  自粛、自粛と、あらゆる店を潰しにかかっている政府を無視し、可能な範囲で遊んでいるオイラである。今日も、カラオケ屋で喉の筋肉を鍛えまくってきた。いつもの店が閉まっているので、新たに発掘した店に行っているのだが、そこは2時間以上歌うなら、フリータイムのが安くなってしまう価格設定のせいで、練習時間に際限がなくなるという恐ろしい店である。仕方なく3時間程度で自粛している。

  ちなみにこの店、家族以外はふたりまでしか同室不可、という制限を設けつつ営業している。なんでも一律に営業自粛を迫り、挙げ句の果に店名を晒し上げるなどして、知事は頭の悪さを自慢するのではなく、そういう工夫を求めるべきではないのか。パチンコなんて、台をひとつ空ける程度で、十分に危険度を下げられるように思える。入場前に記名させ、追跡できるようにすれば、実際に感染が起きるのかどうかも把握できる。今後、自粛を長く続けたいなら、そういうデータは必要ではないのかね。

  どうも政府は、自粛したいという世論の言いなりになっているだけのように感じる。どこの店だって、ひと月の固定費は、百万オーダのはず。数十万とかの協力金って、ガキの使いかよ。最大限の対策をしつつ営業を続けることこそ、正しい経営者ではないのか。この騒ぎで、気に入っていたホテルも、近所の温泉もツブれてしまった。なんなんだよ。

  画像の説明

  というわけで、自分はせめて少しでもお気に入りの店の売上に貢献すべく、テイクアウトの利用を増やしている。協力金の名目で生活費を増額し、カミさんの家事の負担を下げつつ、ちょい高級焼肉店の弁当、近所にできたばかりの家系ラーメン屋、そして、今日はちょっと遠いが猛烈にウマいハンバーガを食わすアメリカンダイナーである。持って帰ると間違いなく豚のエサになってしまうので、すぐ近所の公園で食す。ところが、思った以上に景色のいい展望台があり、コロナに感謝したくなるくらい、素敵なピクニックになった。どれもウマすぎて、健康被害が気になるくらいだ。

  しかし、アホな芸能人のツイートで人間の器の小ささが次々と明らかになるものだな。バカ発見器とはよく言ったものだ。なかなかの名言は「10万円を辞退するなどという宣言や書き込みをするな」だ。オマエ、別に金に困ってないだろ。それなのに、自分が10万円欲しくて、人の辞退が眩しく見えるって、どんだけケツの穴が小さいんだよ。たかが10万円じゃねぇか。「手を挙げるだけでもらえる」に文句つけてるヤツもいる。必要ないやつは受け取らない。それで十分によい方法じゃないか。

  そういう自分は、収入減もないし、困ってもいないので、10万は申請しないつもりだった。しかし、自粛、自粛と、あらゆる店を潰しにかかっている政府に利するより、10万もらって、自分が支援したい会社にドンドン無駄遣いするほうが、よい方法に思えてきた。どうせ、あとで税金で取られるのだ。たぶん、自分だと人並み以上に。仕方ない、無駄遣いするわ。うひひひひ。

  だいたい、自粛厨、不謹慎厨、自粛警察の連中のほとんどは、普段からロクに何の活動もしておらず、つまらない人生を送っている連中で、積極的に活動をしないことが推奨されるようになった途端、認められた気になったうえ、周囲が自分たちのレベルまで落ちてきたことが嬉しくなって、それでも活動している人々を大声で非難し始めている、という構図に見える。そもそも、活発に活動している人は、人の活動にケチをつけることなどしないものだ。そんな奴らの言いなりになってんじゃねぇよ。いや、経験上、自分にはそう見える、というだけなので、反論されても困りますがね。


2021-04-30(Fri) ロードスター、カウル・グリル外し、フィルタ交換

  3年後に交換してみた(3年前)。

  画像の説明 画像の説明


2023-04-30(Sun) Ruby on Rails and Factorio

  九四ドライブが楽しすぎたからか、帰ってきてからというもの、どうもやる気が出ない。九四ドライブのまとめも滞っているので、その先のブログも滞っている。

  が、やる気が出ずにダラダラしていると、次第に心が苦しくなってくるタチなので、なにか新しいことを始めなくては、と思って始めたのがRuby on Railsだ。

  我ながらRubyはネイティブ言語のように使いこなせるが、RailsはDBとくっついていて、敷居が高そうというイメージでイマイチ興味がわかなかった。しかし、Rubyでプログラマをしようと思うと、Ruby on Railsが基本らしい。

  つうわけで、まずはコンテナで開発できる環境を整えようと思ったのが4/10。しかし、開発環境が整うまでに10日ほどもかかった。それから、習作のカレンダを作り始めて10日。ようやく形になった。休日と予定の登録ができる。

  カジってみると、DBとくっついているというイメージはそのとおりだった。MVCスタイルを強要されるが、以前にメーラを開発した際、自己流ながら取り入れ、そこそこうまく行った経験があるのでイヤじゃない。

  結局、わかったことは、必要だと思うデータ構造を、全部「rails generatescaffold XXX」して、その雛形に肉付けしていけばいい、ということだ。驚くべきは、今回の習作のカレンダは、コードにして30行くらいで済んでいる。カレンダの描画以外、休日や予定の登録や更新、削除処理は書かずにデフォルト処理で済んでしまっているのが大きい。

  画像の説明

$ rails generate scaffold Calendar
$ rails generate scaffold Holiday day:date:index cause:string
$ rails generate scaffold Schedule day:date:index member:string note:text
diff --git a/config/routes.rb b/config/routes.rb
index c5228e5..880faaf 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,4 +1,5 @@
 Rails.application.routes.draw do
+  root "calendars#index"
   resources :schedules
   resources :holidays
   resources :calendars
diff --git a/app/controllers/calendars_controller.rb b/app/controllers/calendars_controller.rb
index ec6db2e..3c75b0f 100644
--- a/app/controllers/calendars_controller.rb
+++ b/app/controllers/calendars_controller.rb
@@ -4,6 +4,27 @@ class CalendarsController < ApplicationController
   # GET /calendars or /calendars.json
   def index
     @calendars = Calendar.all
+
+	@today = Date.today
+	@first_day = @today.beginning_of_month
+	@start_day = @first_day - @first_day.wday
+
+	@days = []; day = @start_day
+	loop {
+		7.times {
+			@days << {
+				day:			day,
+				holidays:		Holiday.where(day: day),
+				schedules:		Schedule.where(day: day),
+				attrs:			{},
+			}
+			@days.last[:attrs][:color] = day.strftime('%a').downcase
+			@days.last[:attrs][:color] = 'holiday' if(@days.last[:holidays].size > 0)
+			@days.last[:attrs][:size] = 'small' if(day.mon != @today.mon)
+			day += 1
+		}
+		break if(day.mon != @today.mon)
+	}
   end
 
   # GET /calendars/1 or /calendars/1.json
diff --git a/app/views/calendars/index.html.erb b/app/views/calendars/index.html.erb
index 069f2ce..5c44f22 100644
--- a/app/views/calendars/index.html.erb
+++ b/app/views/calendars/index.html.erb
@@ -1,5 +1,29 @@
 <p style="color: green"><%= notice %></p>
 
+<H1>Calendar</H1>
+	<H3><%= @today.year %>/<%= @today.mon %></H3>
+		<TABLE border='1' cellspacing='0' cellpadding='4'>
+			<TR align='center'><TD>
+<%				@days[0, 7].each {|day| %>
+					<TD><IMG src='/rd.png' width='128' height='1'><BR><SPAN class='<%= day[:attrs][:color] %>'><%= day[:attrs][:color].upcase %></SPAN>
+<%				}
+				@days.each {|day|
+					if(day[:day].wday == 0) %>
+						<TR valign='top'><TD><IMG src='/rd.png' width='1' height='64'>
+<%					end %>
+							<TD><SPAN class='<%= [day[:attrs][:color], day[:attrs][:size]].join(' ').strip %>'><%= link_to(day[:day].day, new_schedule_path(day: day[:day])) %></SPAN>
+<%							day[:holidays].each {|holiday| %>
+								<SPAN class='cause'><%= holiday.cause %></SPAN>
+<%							}
+							day[:schedules].each {|schedule| %>
+								<BR><SPAN class='member'><%= schedule.member %></SPAN>:
+								<SPAN class='note'><%= link_to(schedule.note, schedule) %></SPAN>
+<%							}
+				} %>
+		</TABLE>
+
+<%= link_to "Manage Holidays", holidays_path %>
+
 <h1>Calendars</h1>
 
 <div id="calendars">
diff --git a/app/views/schedules/_form.html.erb b/app/views/schedules/_form.html.erb
index 29f58c0..3662bbd 100644
--- a/app/views/schedules/_form.html.erb
+++ b/app/views/schedules/_form.html.erb
@@ -13,7 +13,7 @@
 
   <div>
     <%= form.label :day, style: "display: block" %>
-    <%= form.date_field :day %>
+    <%= form.date_field(:day, value: params[:day]) %>
   </div>
 
   <div>
diff --git a/app/assets/stylesheets/base.css b/app/assets/stylesheets/base.css
index e69de29..08a0148 100644
--- a/app/assets/stylesheets/base.css
+++ b/app/assets/stylesheets/base.css
@@ -0,0 +1,25 @@
+a {
+	color: inherit;
+}
+span.sun {
+	color: red;
+}
+span.sat {
+	color: blue;
+}
+span.holiday {
+	color: red;
+}
+span.small {
+	font-size: 60%;
+}
+span.cause {
+	font-size: 80%;
+}
+span.member {
+	font-size: 80%;
+}
+span.note {
+	font-size: 80%;
+}
+

  まだ、月間の移動機能がなかったり、曜日表示にバグがあったりするが、習作のカレンダを完成させるより、何か実用的なものを作ってみたくなったな。

  と、もうひとつ。始めてしまったのがFactorioだ。

  以前に任天堂スイッチのデモでチラッと見たデモが面白そうだったのだが、体験版をダウンロードしたら、いきなり病みつきになってしまった。恐ろしいことに、Linux版が手元の環境で快適に動いてしまった。これはアブない。

  体験版は5つのキャンペーンの形を採っているが、十数時間は遊べるボリュームで、かつ、目的達成後もご自由にお続けください、と、まったくケチなところがない。

  目的は手動でも達成できないことはないが、自動化して楽をするため、目的を達成するための工場を作り、次の目的を達成するための工場を作り……と、延々と遊べてしまう。これは、一種のプログラミングだよな。楽しいわけだ。

  ただし、行き当たりばったりで作っていると、ラインが詰まったりして、頻繁に手作業が生じてストレスが溜まる。結局、体験版を2度もクリアしてしまったが、どうにも納得できない。

  画像の説明

  あー、一番最初のサラ地から遊びたいが製品版を買いたくないなぁ。いや、このゲームのデキなので、金が惜しいという思いはまったくないが、製品版を買ったら最後、どれくらいの時間を吸い取られてしまうのか考えると、怖すぎるのだ……。