意識低い系プログラマーブログ

意識低い系プログラマーはアウトプットを通して変われるのか。

【GAS・スプレッドシート】コピーしたスプレッドシートに結びついているGASでのSpreadsheetApp.getActive()は何が取得できるのか

スプレッドシートAをコピーした場合(A'とする)、

それに結びついているGAS(Gaとする)は、

  1. A'とも結びつく
  2. GaのコピーGa'が生成される

のどちらかという問題。

これの解は2なのですが、同名でコピーされてしまうため、非常にわかりにくいですよね。

せめて「Gaのコピー」のような名前になるとわかりやすいのですが・・・

従って、タイトルの、

「SpreadsheetApp.getActive()は何が取得できるのか」

という問題の解は、「ちゃんとA'が取得できる」となります。

お粗末様でした。

【Laravel】CPIサーバにおける.htaccessの記述例

自分用メモ

publicフォルダ削除時

publicフォルダを削除し、html/[プロジェクトフォルダ]の構成時。htmlフォルダ直下に下記を記述。

# PHPのバージョン指定
AddHandler x-httpd-php5619a .php
<IfModule mod_rewrite.c>
    # .envファイルに直接アクセスすることを禁ずる
    <Files ~ "\.(env)$">
        deny from all
    </Files>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>
    Options +SymLinksIfOwnerMatch
    RewriteEngine on
    # phpMyAdminにログインできなくなることの回避
    RewriteCond %{REQUEST_URI} !^.*/_phpMyAdmin5/
    # 無限ループの回避
    RewriteCond %{REQUEST_URI} !^/[プロジェクトフォルダ]/
    RewriteRule ^(.*) /[プロジェクトフォルダ]/$1
</IfModule>

【PHP】meyfa/php-svgでSVGをPNGにして保存する(テキスト付き)

環境

github.com

meyfa/phpの導入

composerで導入します。

composer require meyfa/php-svg

テキストを使用する場合は、gd以外にも

--with-freetype-dir=/usr

拡張設定が必要です。

phpenvの場合は、

(MAC)

$HOME/.phpenv/plugins/php-build/share/php-build/default_configure_options

に先ほどの拡張設定を追記して、

phpenv uninstall [PHPバージョン]
phpenv install [PHPバージョン]

としてPHPをインストールしなおすのが簡単で良いかと思います。

利用方法

<?php
use SVG\SVG;
use SVG\Nodes\Texts\SVGText;
use SVG\Nodes\Structures\SVGFont;

//SVGオブジェクトの準備
//文字列から生成の他、ファイルから、空の状態からなどあります。
$svg = '<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" viewBox="0 0 500 500">
    <circle cx="150" cy="200" r="100" fill="#06f"></circle>
    </svg>';
$image = SVG::fromString($svg);

//文字を表示する場合
$font = new SVGFont('IPAex明朝', "font/ipaexm.ttf");
$image->getDocument()->addChild($font);
$image->getDocument()->addChild(
    (new SVGText('こんにちは', 50, 50))
        ->setFont($font)
        ->setSize(30)
        ->setStyle('fill', '#f00')
    );

//イメージのラスタライズ
$rasterImage = $image->toRasterImage(500, 500);

// ブラウザ上に表示する場合
echo $image->toXMLString();

// 保存する場合
imagepng($rasterImage, "my-image.png");

使用フォントについて

フォントは下記サイトより、DLさせていただきました。

ipafont.ipa.go.jp

【Laravel・PHP・うっかり】FileのMax Validateionがうまく動かない件

当たり前なのですが、php.iniなどに

post_max_size = 8M

などと設定されているのに、

<?php
//中略
$this->validate($request, [
    "file" => "required|file|max:8000"
]);

などと最大サイズを指定しても、validation.php

<?php
//中略
'max' => [
    //....
    'file' => 'The :attribute may not be greater than :max kilobytes.',
    //....
],

この部分には引っかかりません。

先にphp.iniの方に引っかかるからですね。

当たり前ですね。お恥ずかしや。

php.iniの方に引っかかった場合は、

<?php
'uploaded' => 'The :attribute failed to upload.',

こちらですね。

【WPF】ImageのSourceを埋め込み画像から埋め込み画像に変更しようとしただけで消えたり散々な目にあった

結論だけですが、

たとえばプロジェクトの直下にImagesってフォルダを作ってその下にtest.jpgとかを入れてたとするとき、

image.Source = new BitmapImage(new Uri(@"Images/test.jpg",UriKind.Relative));

↑こっちはダメで

image.Source = new BitmapImage(new Uri(@"/Images/test.jpg",UriKind.Relative));

こっちが正解。

なんか納得いかない。

情報が色々錯綜していていて、正直なぜこれで動いているのかもよくわからない。

もしかしたら、あなたの環境ではこれでもダメかもしれない。

【レビューではない】ONE PIECE WORLD SEEKER ワンピース ワールドシーカー プレイ感想

今回は、私の通常のレビュー方針から外れて純粋に思ったことを書こうと思います。

エゴサしてきた開発者の方々に見てもらえたらいいと思って書く。そんなことないだろうけど。

なお、通常のレビュー方針はこちら↓

レビューの指針について - 意識低い系プログラマーブログ

今回書くのはこれについて

結論を一言で言うと、

非常に荒削りだが光るものはある。是非2を作ってほしい

となります。以下、ネタバレあり感想。

ストーリー

良くも悪くもいつもの尾田栄一郎大先生監修のストーリー

できるだけ無理のない形でできるだけ多くのキャラクターが登場するようにできている。

ただ、原作の時系列にねじ込もうとするとどうしても無理がでる。そこを気にする人にはお勧めできない。具体的には下記の通り。

  • ルフィの懸賞金が5億(ドレスローザ出航後〜ホールケーキアイランド出航後しばらく)なのに、ジェルマ66と面識がある(明らかにサンジに対するいざこざが終わっている風な会話がある)。

  • ホールケーキアイランド編が終わっている風なのに、ギア4 スネイクマンになれない。

  • 上記タイミングの割に、麦わら海賊団+ローは全員揃っている。

  • クロコダイルがいるのに、Mr.1がいない。

  • 赤犬が出てくるほどの一時大事なのに、緑牛が動かない(赤犬は感情先行型。緑牛はいまいち情報が少ないので矛盾はないのかもしれない)。

一番齟齬が少ないパラレルワールド的解釈をすれば、下記ようになるかもしれない。

  • ホールケーキアイランド出航後、世界政府がルフィの懸賞金を15億に上げる前(もちろんワノ国到着前)になぜか麦わら海賊団全員+ローが揃っている

ゲーム性

オープンワールドについて

ガンバリオン初のオープンワールドゲームだったのかと思う。

そのせいか、オープンワールド系ゲーム開発に不慣れな感じが多々ある。

どうしてもオープンワールドというと洋ゲーが先行してる分、あちらの完成度が基準になってしまう。

なので、ちょっとした斜めの坂で、ズザー...と滑り落ちてしまう様は非常に滑稽に見える。

だが、広大な大地をゴムゴムのロケットで飛び回る様は、まさに自分がルフィになったようで非常に心地が良い。

カメラ

個人的にはもう少し速い方が好きだ。というよりオプションで設定できると良い。

ロード時間

ところで、個人的に致命的だと思うのはロード時間だ。

とにかく長い。

ただ、長いロード時間はオープンワールドには不可欠。それはわかっている。

だが、ボス戦で負けたあとのコンティニューでもファストトラベル時と同じロード時間がかかっている。

あれはどうにかならないか。UXが著しく落ちている。

ターガットロック機能

これは存在理由がわからない。

のような「z注目機能」かと思ったが、

なんとただ、マーキングするだけなのである。

一応、カメラリセットで画面中央に捉えられるが、

この機能を使いたい敵は大抵動きが早いので、

常に画面内に収めようと思えば、カメラリセットボタンを連打する羽目になる。

無理やり使い方をひねり出せば、vsジャンヌ戦で本物のジャンヌにマークを固定しておくぐらいか....

ゴムゴムの死

これは、デバッガーか誰か突っ込まなかったのだろうか、

今作のルフィのメインウエポン

「ゴムゴムの火拳銃(レッドホーク)」

カメラワークや演出も凝っていて、非常にかっこいい技だ。

が、だ。

なんとこの技、無敵時間がないのだ。

なので、体力が少ない時にこの技を発動させ、

「ゴムゴムのぉぉぉぉ」

とかやってるときに、敵に、

「ぽかっ」

ってやられると、

死ぬのだ。

タイトルの通り、

ゴムゴムの死

なのだ。

これにより、レッドホークは1対1のときかつ相手が弱攻撃後の怯んでいる時を見計らって使わなくては逆に反撃をもらうという謎のゲーム性が誕生する。なので、それはそれでありと言えなくもない。いや、やっぱ言えない。

育成システム

育成面は、よくあるスキルポイント配布型システム。

ゲームが進につれ、自分好みに成長させていけるのはやはり良い。

一つ能力アップするだけで、成長を実感できるほど差分があるのは非常に良いと思う。

操作性

移動が少しもっさりしている気がする。が、ここは好みの問題だと思う。

に近いイメージだが、個人的には、

のようにキビキビ動く方が好きだ。

グラフィック

キャラゲーなので、と個人的には納得できる。

ただ、別段綺麗というわけではない、

音声

キャラゲーなのに、フルボイスではない!

正直これはかなりのマイナスポイント。

ムービーシーン(最近の作品は動画ではないけど)はさすがにフルボイスだが、そのほかの全てのイベントシーンは紙芝居のように話が進む。

そして、キャラクターが1テキストにつき1回

「おぅっ」

のように掛け声を喋る。これは非常に残念。

たぶん予算が足りなかったのだと思う。

難易度

普通。難易度は非常に小刻みなので、自分にあったものでプレイすれば快適かと思う。

次回作について

是非、プレイしたい。

個人的な要望としては、

のように、海に出たい。だって海賊だもの