Apacheからnginxへ変更してみたら

巷では静的コンテンツは劇的にレスポンスが速いと耳にするサーバーnginxへと乗り換えてみるのもありかなと、実験的にApache環境からの入れ替えを行ってみました。

その忘備録的な感想です。

■たしかに速いかも

なにせApacheしか経験が無かったのでまるっきりわからないところからのスタート。

しかもサイトそのものはいつでも元に戻せるように温存したまま限られた時間での移行という条件だったのです。

そもそもサーバーなんてやること同じなのだから設定も大差ないでしょ、などとタカをくくっていたらえらいギャップに悩まされることになりました。

■単純なHTTML構成のページは効果的

導入そのものはすごく簡単。先人の知恵をたくさん拝借できるので多少いびつな構成であっても困る事なく導入ができました。

そして、単純なWEBページについてはレスポンスが体感できるほど早くなった(そもそものApacheの設定が遅すぎたというのもありますが)

なんだ簡単じゃないか、と一瞬思ったわけなのですよ幸せだったのはそのほんの一瞬

■バーチャルホストは書く場所が違うだけ

Apacheではアクセスされたホスト名にあわせて処理内容を変えることができるようバーチャルホストで運営しているわけですが、通常だと /etc/apache/sites-available/ などに設定を書き溜めますよね。

nginxではどこに書いたら良いのだろう、たいして考え方は変わらないよね?と思っていたらありました。

/etc/nginx/cond.d/ 以下にバーチャルホストごとに分けて書けばおおもとの設定ファイルからすべて読み取ってくれるので問題なし。

極論すればバーチャルホストの設定は書いておく場所が違うだけ、と言えなくもない

■PHPが動かない

今回、管理下の複数のサーバー(Ubuntu数台とCentOS)で同時に実験したわけなのです。

まっさきに外部非公開サーバーで問題が出てきたわけですが、php構成のページが急に消えたと。

そうです。経験のある方はすでに感づいてらっしゃるでしょうがApacheと違ってphp-fpmを導入してあげないと動いてくれないnginxでphpページを表示するならphp-fpmを呼んであげるという考え方にしないといけないわけです。

設定そのものは特段難しくもなく、まずはphp-fpmを追加でインストールして、設定ファイルにどうやって呼び出すか(fastcgi 127.0.0.1:9000とか.sockとかなんとか)を追記してあげることでOKです。Apacheからしたら最初は「なんで機能を有効にするのに外を呼ぶの?」ってな感じでした。有効無効ってな感じとはぜんぜん違ったわけですね。

■Apacheからの乗り換えはパーミッションに注意

導入時点で前提がフラフラしているのがトラブルの原因ですが、nginxへの移行で時間がかかるならApacheへすぐ戻せるようにしておこうというのが一番ネック

既存のページ構造には手を加えない前提なので、なにかサーバーを換えることでトラブルが出るならサーバー側の設定で吸収できるようにしなくちゃいけない

単純な話ですが、サーバーが変わるということはサイトのファイルをアクセスするユーザーが変化するわけで。

たとえばサイトの権限が www-dataとか wwwグループとかいった具合に将来を見据えて最初から汎用的に設定している場合は楽なわけですよ。

ところが、長年の環境を引きずっていると場当たり的に apache:apache なんて権限になっているフォルダやファイルが大量にあったり。

もちろんnginxからはデフォルトでは nginx:nginx という権限でアクセスしますから、権限設定によってはここではじかれてしまいます。

ここでは非常に迷いましたが、本来であれば将来を見据えて apacheと設定されている権限の部分をすべてwww-dataなどと汎用的に書き換えてしまうのがベストかと考えます

あるいは、そこそこ余裕のあるハード構成であればリバースプロクシ設定でnginxの後段でApacheに処理してもらうというサーバー構成にするのもトラブル原因を最小にできて良いかと思います。

ただし今回は一時的な試行でなおかつ既存サイトに手を入れないという前提を守るために本来は禁じ手であろうnginx側の動作権限をuser apache;と書き換えることでしのぐことにしました(変更先:/etc/nginx/nginx.conf

上記にあわせてphp-fpm側の設定も listen.owner = apache、 listen.group = apacheと変更しておく必要もあるでしょう(変更先/etc/php-fpm.d/www.conf

あくまでもApacheと同時には動かさないという前提であるがゆえにできる手抜きかなと思いますが、こういう手抜きをすると後々トラブルシュートしないといけなくなったときに原因が特定できずに大変だろうなと思います。

でも楽に動いてくれます。手抜き効果はすごい!

■WordPressがめちゃくちゃ遅い

さて、nginxへの切り替えから2日、やたらとレスポンスが遅くなったものがありました

もともとチープなサーバーで近々リプレースを予定しているハード構成で動かしているものなのでApache運用でももっさりしていたWordPressなわけですが、nginxに切り替えてから劇的に遅くなり単純にダッシュボードを見ているだけでもjetpackから「サーバーがダウンしています」なんて通知が頻繁にくるように。

ダウンと言ってもそのまま固まってしまうような重症ではないので単純にリソース不足なのでしょう。

もともとMySQLがネックになっていることは自覚していましたのでまずは /etc/my.cnf を見つめて設定を切り詰めていきます。

が、しかしあまり改善するべき点が見つからず改善効果もみられない。そもそもが切り詰めたあとだったのでむしろ動作が窮屈だったのではなかろうかという設定具合。

どうやらその他のところにもなにやら問題がありそうな気配です。
もう一度 /etc/php-fpm.d/www.conf の設定をじっくり見ながら、

pm = dynamic
pm.max_children = 30
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 50

あわせて、/etc/nginx.conf の側でも

sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
keepalive_requests 100;
keepalive_timeout 10;

fastcgi_buffers 8 64k;
fastcgi_buffer_size 64k;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 60;
fastcgi_read_timeout 300;
client_max_body_size 200m;

といった具合に追記修正して少しは軽くなったかな?と淡い期待を込めてphp-fpmとnginxを再起動すると、おお!素晴らしい、ちゃんと軽くなった

■変更した甲斐があり軽くなりました!

少なくとも重すぎてダウンしているという通知が来ることはなくなり、Apache上よりもはるかに軽く作業ができるようになりました。さすがnginxというところか。

これで一時的にはなんとか運用継続できるようになったわけですが、近いうちにどうせサーバーのリプレース作業があるわけでその時にはもう少し実用的な構成を要求したいなあ。得意な戦術はなに?と問われたら迷わず「物量戦」と答えたい派なので。


消えちゃった動画や写真データの復元は
安心安全な『株式会社パソコントラブル救助隊』へ。
https://hqsecure.net/

スマートレターとレターパックの違い

だけじゃなく、郵便サービスには他にもいろんな(似たような)サービスがありますね。

しかも郵便以外のサービス、たとえばヤマト運輸のサービスなんかも含めるとさらに使い分けるのが大変になってしまいます。

なので今回は郵便局の提供しているサービスに絞り込んでその違いを書いてみたいとおもいます。

■まず、どのくらいある?

ハガキ、封書以外の荷物を送れるサービスがどのくらいあるかという全貌がわからないと比べようがないですね。

ざっと思い浮かべるだけでも「レターパックプラス」「レターパックライト」「スマートレター」「ミニレター(郵便書簡)」「クリックポスト」「ゆうパケット」「ゆうメール」「ゆうパック」「第三種郵便物」「第四種郵便物」「特定記録郵便」「書留郵便」「簡易書留郵便」「現金書留郵便」「速達郵便」と混沌としてきましたね。

余談ですが、いまどき募集されているのかどうか知らないですが私のような世代だと高校生時分には地元郵便局で年末年始の繁忙期のアルバイトってのがありまして、従事中は準公務員という身分でもありバイト禁止の高校でも案外スルーされていました(いまは民営化されているので扱いが違うみたいですけれど)ものですが。

で、郵便局で内勤や外勤のアルバイトなんて経験すると自然と”普通郵便”とか”通常”ってのがどこまでの郵便サービスを指す言葉なのか刷り込まれてしまうわけなのですが、いまどきそういった言葉も通じないような気がします。

ちょっと脱線しましたがもとに戻します。

うえに挙げたもののうち「第三種」と「最四種」は扱いが限定的なのでこの話からは除外するとして、「特定記録」「速達」「書留」「簡易書留」については実はそれ単独のサービスではなく普通郵便などに付加するオプション扱いになります。

オプションということはベースになるものが必要になるのですが、そのベースが”普通郵便”いわゆる封書です。特にオプションを付加しなければ封書は84円や94円(=定型郵便)あるいは120円〜(=定形外郵便)の料金分の切手を貼って郵便ポストに投函するだけで良いのですが、それだとポストに入れてから相手先に到着するまで1週間くらいかかるようになりました追跡や到着確認もできません

もし封書でも翌日や翌々日に到着して欲しい場合や、相手先に到着したかどうか追跡したい場合には「特定記録」「速達」「書留」「簡易書留」といったオプションをつける必要があり、これは郵便局の窓口で料金を支払い、追跡番号などが書かれた控えをもらうことになります。ちょっと手間がかかりますよね。(都市部では「速達」は青色のポストに投函することもできますが私もいままで地元では一箇所でしか青ポストを見たことがありません)

また「現金書留」はその名の通りお金(紙幣や硬貨)を送るためのものですので少し別格です。封筒も専用のものが窓口で販売されています。しかし昨今ではわざわざ現金を送らなくても送金手段はいくつもあるのであまり積極的に使用する機会はないでしょう(現金書留以外の郵便物に現金を入れて送ると法律に触れることになりますので絶対にしないように

荷物を送るために使う場合は「定形外郵便」や「定形郵便」に「特定記録オプション」や「簡易書留オプション」を郵便局窓口で付けて差し出すというイメージの使い方になります(郵便窓口で封筒を出し「簡易書留でおねがいします」といった言い方で通じます)

※ちなみに「簡易書留」と「速達」の両方を付けて出されるお客様もいらっしゃいますが、ある程度都市部へ発送する場合にはどちらか一方だけで充分であり両方付ける意味はあまりありません

■いまの主流はレターパック

さて前置きがとても長くなってしまいましたが、いまやちょっとした荷物を送るための郵便サービスの主流はすっかり「レターパックプラス」と「レターパックライト」になりました。

大きさはどちらも同じでA4のクリアファイルがまるごと封入できるようなサイズです。プラスが赤色、ライトが青色をベースにした印刷になっています。

なぜこれが主流かというと以下のようなダントツの使い勝手の良さです。

「ポスト投函ができる」で差し出せる。
・専用封筒は「郵便局窓口」や「コンビニ」などで購入できます

実質24時間いつでも購入できて発送もできるという手軽さはありがたいですよね。

■似てて間違えやすいスマートレターとミニレター

ただ、これと名前などが似ていて混同しやすいのが「スマートレター(180円)」「ミニレター(63円)」

サイズ感としてはスマートレターがA5サイズなのでレターパックの半分ほど、ミニレターに関してはさらに小さくハガキサイズになります。

なんとなくどちらも似たような名前で、なおかつ小さいものを封入できてしまうために安価な「レターパック」なのではないかと勘違いされやすいのですが、まったく別物と考えてもらったほうが良いでしょう。

まずどちらも「追跡番号」が発行されませんし、「土日祝に配達されない」のでいわゆる普通郵便と同じように3日以上、場合によっては翌週到着と日数がかかるサービスになってしまいましたので、料金的には非常に安価なのですが大切な荷物を送る選択肢としてはあまりおすすめできないものとなります。

■レターパックプラスとライトの違いは?

さて主題のレターパックプラスとレターパックライトですが、違いがいくつかあります。

まずはその見た目。専用封筒の大きさや材質はどちらも共通ですが、赤色ベースで印刷されているのが「レターパックプラス」これは全国一律で520円です。

青色ベースで印刷されているのは「レターパックライト」こちらは全国一律で370円です。

封筒の外形そのものは同一ですが閉じた時の厚みが3cmを超えるものはライトでは送れませんが、それ以外の条件はほぼ同じと考えてもよいでしょう。

受け取る側としてはプラスとライトの差は対面受け取りか郵便受けに入るかの違いで、実質的にライトのほうが半日ほど遅れる傾向がある程度。

ただ郵便受けがいっぱいの時には折れ曲がりが少し気になるので、中身が心配になるような梱包しかしていない場合にはプラス側が安心ですが、ちゃんと折れ曲がり対策した梱包で封入しているならばライト側で充分と考えます。

それにしても本当に便利です。まだ弊社が創業したころにはエクスパック500(サービス内容は重量制限以外はほぼ同じ)という名前だったのですが、それがレターパックシリーズに変わって認知度が爆上がりし、まさかこんなに利用者さんが増えるだなんて思ってもいませんでした。

おかげで・・・昔から、到着した案件は1件ずつ受け入れトレイに入れて管理しているのですが、そのトレイに素直に入らないサイズなんですよね、折り畳まないといけないので一手間かかりますが、到着案件数が多くなったおかげで場所的に大きなトレイに入れ替えるタイミングを逃しいまだに1件1件折りたたんで収容しているのが悩みのタネ。ぼやいてしまいました。

■クリックポストってなあに?

もうひとつ忘れていました。ネット利用に長けた方には便利な「クリックポスト」

全国一律185円で、梱包厚みは3cm以内(レターパックライトと同じ厚み制限)、ポスト投函OK、追跡番号あり、運賃はネット決済、となかなか魅力的なサービスです。

ただしレターパックのように専用封筒は無いので自分で準備する必要があり(長さ14〜34cm、幅9〜25cm)、専用ラベルを自分で印刷して貼り付けるという一手間があります。

事前に利用者登録が必要なのですが、ふだんからネットでフリマやオークションを使いこなされている方にはとても便利なサービスかと思います。後納郵便扱いにできたらウチでも使いたいくらい。

さて、たくさん存在する「小さな荷物を送るサービス」を書き連ねてみましたが、ほかにもヤマト運輸さんのサービスも何種類かあって一緒に並べてしまうと余計に解りにくくなってしまうので今回は郵便局のサービスにフォーカスを当ててみました。ぜひ活用ください。


消えちゃった動画や写真データの復元は
安心安全な『株式会社パソコントラブル救助隊』へ。
https://hqsecure.net/

ラジコ授業が廃止とは

誰にも聞かれていませんが、一応、現役の大学生やっています私

世の中リスキリングとか学びなおしとかなんとか言ってるようですが、そんな流れに関係なく、前々から気になってはいたんですよね「放送大学」

いつか状況が落ち着いたら学ぼう、いつか・・・なんて思い続けているうちにずいぶんと年月が経ってしまっていたわけなのですが。

昨年暮れにようやく勢いづいて手続きを進め、無事に春から学生をやっております。

そんな近況報告はどうでも良いわけですが

放送大学と言えばラジオでの授業もあるわけで、ご存じの方も多いとは思いますがBS放送の他にradikoでも配信されていて視聴することができます

なので、私としては講義を聴き漏らさないように録音しておこうと張り切って自前のサーバーでスケジュール通りに録音できるようにしたわけですよ。しかも著作権上の問題が出てくるので自分しか使わないというのにわざわざ番組表まで取り込んで簡単に選択できるようにWEBサイトを組み上げて。

さすがに体裁の作り込みまではしていないものの基本的に欲しい機能をすべて実装できたなーと思ったらなんと今年度(2023年度)でradikoでの授業配信は終了とか(笑)

いやぁーあっという間にお役御免となってしまうとは。経費削減の一環ということなのでラジコでの配信というのもそれなりにコストがかかってしまうのだろうなあ、と納得。

とりあえず2学期は使いますけれども。稼働してからたったの2期で使えなくなってしまうなんてなあ、とぼやきたくなったわけで(とはいえ本業で作ったサイトの仕組みをまんま流用してますから工数としてはたいしたことはないわけですが)。

来春からはシステムも拡充されてもっと便利に授業を視聴できるようになるらしいですから、そもそも録音しておく必要なんて無くなるらしいですが(^^)


消えちゃった動画や写真データの復元は
安心安全な『株式会社パソコントラブル救助隊』へ。
https://hqsecure.net/

まもなくデータ復元料金を改訂いたします

物価高騰のあおりを受けつづけてもなお、可能な限り従前の料金体系を維持しつづけるようにあれこれと努力を惜しまず対応してきたのですが、恥ずかしながら元から利幅の少ない設定だったことがアダとなりコスト増を吸収しきれなくなっております。

もちろん毎年のように原価計算見直しはしているわけなのですが、特に昨年からの急激な高騰で資材の調達価格は総上がりですし、電気料金も上がるいっぽうというのが辛いところ

現状ではすでに大半のサービスメニューで間接経費を考慮しない状態ですでに粗利マイナスという惨憺たる状態。税率アップの際に実質的にサービス料金を低く抑えた影響がここにきて目立ってきてます。

さらにカードの大容量化にともなって検査時間が長時間化傾向にあることなど楽観視できる情報がまだまだ無いこのままでは短期間で立ち行かなくなってしまう恐れすら出てくるわと算出した数字どもに脅されています私(笑)、いや笑っていられない。

■本当に検査料金をいただいていない

弊社では検査料金は一部のコースを除き設定しておりません(ドラレココースのみ検査工程が異なるため検査料金が発生しますが、それでも実は検査料金だけになった場合は完全に赤字水準です)。

慎重なお客様のなかには「本当に料金表の通りの請求しかないのはとても良心的なお値段ですね」と、実は他社ではもっと後付けの請求が多かったのでもっと上乗せの請求が来ると思っていたというお話しいただくこともあるわけなのですが、ウチの会社にそんなお客様を騙すような度胸なんてありませんから公表している料金表の内容以外にいただくことはありません。おかげさまでリピート率業界ナンバー1(自称)じゃないかと思うくらいです。

ただ、そのため大容量のカードになればなるほどマイナスになる要素も大きくなるわけなのです。

たとえば同じように成功報酬制をうたっている同業他社さんのように「重度不良なので復元できなくても分解検査料金が10万円かかります」といったよく耳にするような後出しの検査料金を設定してしまえば粗利を割るなんてことも無くなるわけですが、満足いただける結果が出せないことに対して料金をいただくことを恥じるという創業以来のこだわりをもっています。

検査料金をいただいていないという事は、1件1件ほんとに必死になって成果を出さないと直接経費が増し増しになっていくという縛りにもなっています。

さて、お客様の中には電子機器の扱いに詳しいかたもいらっしゃいますが、どちらかと言えばそうでない方のほうが圧倒的多数です。そのためか明らかに真っ二つに折れ曲がっているようなものでも依頼品として到着するのですが、もちろん喜んで受付させていただいております。(これが大抵の場合には指先を火傷するという労災の基なのですけれどね)

同業他社さんでは利益の上がらないであろう仕事(いわゆる成功率の低そうな依頼)は門前払いという姿勢が増えていると伺っています。ですが弊社としてはできるだけ現物を見ずに門前払いするようなことはしたくない、コストとして足を引っ張っているとしても可能な限り間口の広さを継続し気軽に相談してもらいたいという思いです。

■純粋に物価高騰を吸収できる水準に抑えます

ただでさえ復元業者って怪しい存在ですし、世間から暴利を貪っていると思われたって仕方ないとは思っていますし。私だって自前でFDのディスクイメージをダンプして素人ながら対処できていた頃はそう思っていましたし

ですので、とにかく物価高騰分を吸収できるようにという水準に抑えて試算を繰り返しています。もとが粗利割れなんて水準に至っていましたからなかなか難しいところなのですけれども連日頑張って試算しています。

■ただ値上げだけじゃつまらない

ただ、ひねくれものの私としては「ただの値上げ」に留まるのは楽しくない。

適性利益を確保しなくちゃならないのは大前提としても、なかなかさらっと信頼してもらいにくい業界に身を置いている以上、なにか利用してもらいやすい策は残しておきたいと模索を続けております。

その1つが「学割」みたいなもの。

もちろん個人情報保護になにかと気をつかわねばならないこのご時世に学割対象であるという情報すら本当は欲しくない(管理の手間が増えるだけなので)し、じゃあデータの中身を閲覧して判断するかというとそんな検査時間が爆増するだけの無駄なコストをかけてまで割り引くなんて論理的におかしい話

自己申告制というのがもっとも楽だけれど、では言った者勝ちなんて状況になるのは勘弁してもらいたいところで。

ではどうするか、というところなのですが妙案がありません。

修学旅行と思わしき内容に関してのみ自己申告制で、なおかつ部分的な閲覧許可としていただいて学割を適用するなんてことくらいしか思い至らないのですが、そのほか広くご意見をいただきたいところです(ご相談時に提案いただくのもアリですね)

■料金改訂は8月お盆前後の見込みです

方針決定しだい公式サイト側でもちろんアナウンスしますが、公表前から相談などいただいているお客様には当然ながら従来料金での対応を継続しますのでご安心ください

新料金についてもさほど余裕があるわけではないのですが、さすがに2倍なんてわけにもいかず(適正料金シミュレーションでは2倍が最低条件だったのですが)可能なかぎり抑え込んでいます。たぶん1TBくらいの容量のものが一般に広まるまでは耐えられる・・・という期待をこめて。

なんとか7月中に結論を出し8月あたまには公表したいと準備を急いでおります。

■こまった事がただ1つ

できるだけ間口を広く保ち、ダメ元でもまあいいやと預けてもらえるようになれば上等と可能な限り柔軟な対応を心がけておりますおかげか、お客様にも恵まれ、応援いただき、なんとか生かされているなと感謝するばかりです。

ですが、ごくまれに困ったことが起こります。

年間に数件ほどではあるのですが、検査結果をご報告させていただいたり作業指示をいただいたのち、連絡が取れなくなってしまうお客様の依頼品が長期間保管されたままになります。

まったく連絡が取れない場合でも規定により最長6か月間はいつでも納品可能な状態で保管しておりますが、その保管している間も管理はしなくてはいけませんし、物理的に場所も圧迫されます。その管理コストは間接経費に乗るわけですが実は馬鹿になりません

可能な限り連絡が取れるように弊社からもアプローチし続けるのですが、多様なご依頼があるなかでお客様から連絡いただけない限りは勝手に返却するわけにもいかずとても困ってしまいます。

返却不要であれば即座に廃棄させていただくことも対応しておりますし、納品保留のまま保管が必要ということであれば長期保管サービスをご案内させていただくこともできますでご相談いただければ嬉しいのになと頭を悩ませるところです。


消えちゃった動画や写真データの復元は
安心安全な『株式会社パソコントラブル救助隊』へ。
https://hqsecure.net/

共通テスト手順記述標準言語(DNCL)ってなに?

DNCLの説明ドキュメント

もう何年も前から小学校や中学校でも「情報」という時間があるとか「プログラミング」があるのだとかいう話しを耳にすることが増え、なんとなく漠然としててどんなことをしているのか雲をつかむような印象を持っているわけなのですが。

入門用の学習教材などをながめていると現物のブロックを並べ替えながら流れを作っていくようなものだと未就学児用として準備されていたり、小学生では画面上でスクラッチを並べてプログラムを組んでいたり、中学生になるともうコーディングをしていたりと、思ったよりもちゃんと組ませているじゃないかとヘンに感心してしまうわけです。

■大学入試にも関わってくるとは!

いまや高校生でも当たり前のように「情報」の時間があってプログラミングを学ぶようで、大学入試にもプログラミングの知識が問われるようになってくるのですね。

「プログラミングの知識」とか「ロジカル思考」とか表現していますけれど、結局のところプログラミングそのものの知識を問う問題になってくるようで、そうなると数あまたあるプログラミング言語のどれを標準知識として定義できるのか?という壁が当然ながら出てきます。

なので、いっそのこと世の中に無い 試験のためだけに特化したプログラミング言語(DNCL)で出題してしまおう、というのが大学入試センターのたどり着いた答えのようです。

■私は大昔にCASLを選択しましたが

試験用に特化した言語という共通点だけで思い浮かべてみるとCASLなんてのがあったなあと懐かしく思ってしまう世代なのですが。

あ、個人的に情報処理試験(1種とか2種とか特種とかシステム監査とか呼んでいた頃なのでかなり大昔です)を受けるときにプログラム言語を選択できたのですが、たしか選択肢がFORTRAN,COBOL,CASLあたりの世代で、その当時は「仕様をあらかじめ覚えなくても問題用紙に言語仕様が掲載されるから」という理由だけで仮想の機械語CASLで受けた覚えがあります。

今に比べればとても広く浅く知識を問われる試験だったのでその程度の気持ちで充分だったわけですが、いまや一言で情報処理と言っても領域が細分化されて問われる知識も深くなっていますからなかなか難しいのかもしれません。

■DNCLって何の略?

一説には「Daigaku Nyushi Center Language(大学入試センター言語)」の略称ではないかとの事ですが公表はされていないようですね。DNCL自体は20年ほど前に作られており工業系の生徒を対象とした試験で使われていたようです。

そのDNCLの仕様説明はココで配布されています。(その後より一般的なプログラム言語に近づけるような形で修正が入っているようなのですが、DNCL2で探してもなかなか見つからず今後の出題例の記述とは相入れない記述方法の部分がけっこうありますね)

試験では令和7年度から出題されることとなるようです。ざっくりとした印象ではIPAのITパスポート試験か基本情報処理試験かな?というような広範囲の基礎的な知識を問われるような問題文が例示されていました。

そのなかで、実際に問題文に即した動作ができるようにDNCLで作成されたプログラムコードを見て穴埋めをする、という形で出題されるような問題の作りになっていました。

さて、DNCLの仕様説明をパラパラとめくっているとなにやらなじみのない記述があるなあと思ったわけなのですが(私が不勉強なだけかもしれませんが)命令文が日本語なのはさておき、たとえば以下のような点は押さえておいたほうが良いかもしれません。

共通テスト用の例題
  • 小文字で始まるものは「変数」、大文字で始まるものは「配列」

tensu や goukei みたいに書けば変数とみなされるのはプログラミングではだいたいの言語でお馴染みですが、Tensu や Goukei みたいに先頭を大文字で書くと配列とみなされるというのはなかなか見ない体系かと思います。
配列なのでTensu[0] や Goukei[1,2 ]などのような表現になります。プログラム慣れした方だとうっかり小文字で配列を書いてしまいそうなので注意が必要ですね。

  • すべて大文字の変数は「実行中に変化しない値を保持する」

変化しない値と言えば javaの final だったり swiftの let だったりといった印象でしょうか。「すべて大文字」の「変数」ということなのでなんとなく配列の定義と被っているのが気持ち悪い印象ですが、なかなか普段のプログラミングでも全て大文字というのは通常は使いたくないもの(シフトキーを押しながら入力するのはめんどくさいという理由)なので間違えることはないかと。

  • 文字列はダブルクォーテーション(”)かカッコ(「」)で囲む:修正あり

一般的にシングルクォーテーション(’)かダブルクォーテーション(”)で文字列を囲むものと刷り込まれていますが、カッコ(「」)を使うというのは経験がないですね。ちょっと問題文を読むのに誤解してしまいそうで心が落ち着かない仕様です。

ただしカッコ(「」)で囲む側については今後の例題では使用されていないので廃止された仕様かもしれません。

  • 代入分は左矢印(←)を使う:修正あり

うっかりイコール(=)で代入したくなるのが一般的なプログラミング言語に慣れた方だとおもいますが、DNCLでは左矢印(←)で表現するようです。=で書くよりも直感的な表現ですし動作も見た目通りですね。でもうっかり=と書いてしまいそうですが。

すると右矢印(→)は代入文にはならないのだろうかとふと意地悪心が湧きましたが、残念ながら仕様説明には右矢印は含まれていませんでした。(もし含まれていたらややこしいことこの上ない仕様になりましたね)

ここの部分もすでに今後の例題には矢印(←)の記述がなく、一般的なプログラミング言語で用いられるイコール(=)がさらっと記載されているので仕様変更があったのでしょう。

ちなみに x += 1、とか x++ という感じでよく表現されるようなインクリメント(およびデクリメント)については 『x を増やす(xを減らす)』と言う書き方と記載されていますが、この部分についても廃止になったのかもしれませんし積極的に使う理由がないですね。

  • 比較演算子に「≠」がある:修正あり

not equalについてはよく x != 0 とか x <> 0 (たまに x -ne 0 など)といった具合に記述しますが、DNCLだとそのまんまノットイコール記号(≠)を使うことになります、すげえ。

キーボードで入力することを考えたら『≠』って打ちにくいと思うのだけれどな、手書きだったらむしろ良いという判断なのか。

こちらもさすがに入力のしにくさという問題があったのか、今後の例題ではごくごく一般的な(!=)に差し代わっているようです。

  • 論理演算子は日本語:修正あり

あと、もちろん論理演算子はand, or, not ではなく『かつ』『または』『でない』の日本語化していますので注意しておかないとうっかり間違えそうですね。

なんて懸念していたのですが、やはりこちらも一般的な and, or, not に差し代わっているようで一安心です。

■上述以外はさほど違和感ないかな

変数・配列・文字列・代入文や演算子などの表現では慣れている人ほどうっかりミスを記述してしまいそうですが、それ以外の部分ではさほど心配ないように個人的には思いました。

ただ、制御の範囲が縦線で結ぶような表現をするので、どちらかといえばCやjavaよりもPythonの字下げ構造での記述方法に慣れているほうが違和感ないと思います。

そういえばここにもひとつ、DNCLの説明にはこの字下げ構造が縦線(|)だけで表されていたのに対して、例題では範囲の下端はL字(∟)で表すように記述されていましたのでより直感的にわかりやすい記述へと修正されている様子が見て取れます。

「DNCLだけを使えるようになること」を目指すような教え方はされないと思いますが、やはりこの言語を学ぶだけでは現実には使えない、と、いうか楽しさが見当たらないです。

あくまでもプログラミングってこんな感じの流れなんですよ、ということを体験するという点までがこの言語に与えられた役割だと思いますので、徹底して記憶する必要はまったく無いけれど一般的なものとどこが違うのかというのだけは間違わないようにしておかないと点数は取れないのだろうなと強く思ったしだいです。


消えちゃった動画や写真データの復元は
安心安全な『株式会社パソコントラブル救助隊』へ。
https://hqsecure.net/