「排他制御」を含む日記 RSS

はてなキーワード: 排他制御とは

2023-08-12

文化祭で某チェーン店再現して失敗した話

https://qiita.com/NaYuA/items/1cda0211ec44fb25d422


みんな大絶賛してるけど、これやばいやつよね

いわゆる「学生チート」ってやつで、社会人が言ったら全力全方位で駄目だしされるやつ

この「手放し称賛」が人を伸ばすんだと言う話をするなら、そのへんの大人も手放し称賛されるべきよね


さておき

POSの時【POSPoint of Saleの略です】と説明してるのに対して

サーバー書き込みなので、当然Promiseを返します。

このPromiseをAwaitして、その後注文を作成します。

みたいなのが、非常に「わかってない感」を出しちゃってるよね

いや多分、脳内ではわかってるんだろうけど

説明口調で書くなら

Promise は非同期処理の結果が格納されるオブジェクトで、awaitはPromiseを待つ演算子です

まりトランザクションで注文番号に排他制御を行い注文は非同期で処理しています

みたいになる

技術用語として「await 演算子プロミス(Promise)を待ち」みたいに直訳でドキュメンが出回ってるし

非同期で行うサーバーサイドの処理ではPromiseを使いましょうみたいなのが

サーバー書き込みなので、当然Promiseを返します、になってるんだろうけど

新人とかの、「わかってないけど書けます」連中が、大体こういう理解の仕方をしてるから

Promiseを返すのはなんでだ?サーバー処理だから(キリッ)

すげぇ、もやもやする説明になってる


もちろん、学生なんだから良いじゃん、良いじゃん、すげぇじゃん

というのもアリなんだけども

このわかってない感満載の文章を、手放しで称賛して、「考えて行動するだけでスゴイ」みたいになってるの

「みんながあんまり誉めたりするから私自分が優秀な人間だって勘違いしちゃったじゃない!!」を思い出させる

まぁ、学校自体はスゴイ進学校らしいから、当人はそんなんならずに大成するんだろうが

このノリで大学とかで、個人情報扱うベンチャーとかやられちゃうと、炎上案件待ったなしって感じ

2023-07-05

powerautomateというローコードツールを使っているけどとある不具合に困っている。

・行の更新をするという処理

・できるときとできないときがある

・実行結果には正しくできている

条件分岐もなく、できるときもあるので、コードには問題はなさそう

過度に重たいとできないときがあるらしいが、数十行程度で原因がわからない

一応思いつくのが実行タイミングメール来た時なので同時操作したとか?

でも、排他制御とか待ち行列かにするんじゃない?

2023-05-12

anond:20230512112105

この分野に詳しくないのですが

アクセスが多数あるシステム排他制御してたら処理が詰まって死ぬ可能性は検討されましたか

ファイル名が重複しないように"yyyyMMddhhmmss"にするぞ ← アホ

せめてミリ秒まで入れろよwww ← 同レベル

事前にチェックしてすでにあったら繰り上げるぞ ← 間抜け

ロックを取って排他制御するぞ ← 正しい

UUIDを使うぞ ← 今風

UUIDでも排他制御しろ! ← 地球の命運がかかったシステムでも設計しているのか?

2022-11-30

ボクの使ったCS(ジジイの思い出話) anond:20221129085814

まぁ、下っ端プログラマには要らないだろうけど、いわゆるシステムエンジニアとかアーキテクトとか言われるレベル仕事するには、なるべく知っとかないといけないよね。

オレの場合は、大学はかろうじて理系一角だったけど、学問的にコンピュータサイエンスを学んだことはなくて、某IT会社でなかば業務上必要に迫られ、なかば趣味的な興味本位もありで、ちょっとずつ勉強した。

で、もう20年くらい前だし、すでに廃止されてる(と思う)ので、守秘義務違反とかの面倒なことにならなそうだと想定してぶっちゃけると、大手携帯会社ショップで各店舗独自プロモーション打ったりするためのWebシステムの開発に関わったことがある。

顧客の(および自分とこの)エライ人なんかにシステム設計根拠(この方式が最善なのか?もっと安く早くやれる方法はないのか?などなど)を常に問いかけられ、説明説得しなきゃならない。そこでコンピュータサイエンスに基づいて理路整然と話をすると、ちゃんと信頼してもらえるし、納得してカネ払ってもらえるw

そこで使ったのが、以下のような各種理論だ:



などなど... 自分史上最高に残業させられたこ仕事やってた年の年収は、900万円台おしくも1000万には届かなかったねぇw

 --追記--

コンピュータサイエンスがらみの思い出でもう一個面白い(とオレが思う)ネタがあるので、ついでに書いとこうw

これは、上で書いた携帯会社システムよりだいぶ前のことになるが、とあるグループウェアの開発に関わってたときメールFAXに向けて出力するドライバを書いたことがある。昔のことなのでオープンソースあんまり普及してないし、タダでお手軽に使えるライブラリが見つからなかったので、「車輪の再発明」っぽいけど自分でハフマン符号化によるデータ圧縮アルゴリズム勉強して作ったのだ。

Win32APIとか呼び出して、ビットマップテキストを描画させたとこからドットをちまちま数えて、白のドットがいくつ続いてたらこコード、黒がいくつ続いてたらあのコード...って可変長のビットパターンをつなぎ合わせてファイルに書き出す...みたいな。これが理論通りにうまいこと動作して、FAXから文書が出てきた時はとっても楽しかったw

2021-12-30

仮想化時代NAS 選び - やっぱり iSCSI は早い。


仮想システムを構築するにあたり、CIFS しか使えない NASバックアップ用に選定してきた SI 屋さんが居たので、CIFS と iSCSI のどちらが早いのか、試してみました。



テストに使う NAS は QNAP の Turbo NAS TS110

http://www.tekwind.co.jp/products/entry_6719.php

です。もう6年以上愛用して、カビが生えてもおかしく無い程に古いし, Marvell 800Mhz という低スペックな Qnap NASです。 100Mbps 時代のモノです。

昨年、HDDがお亡くなりになったので、3Tb の HDD に交換しました。ファームウェアはこんなに古い機械でも、QNAP シリーズの最新バージョンが利用できます

iSCSI は、今あまり見なくなりましたが SCSI ケーブル規格や、SASケーブル接続ハードディスクを、一般的IPネットワークで規格で仮想化したものです。

マウントするホストシステム側は iSCSI initiator, ディスクストレージ機能提供する側を iSCSI Target と呼びます

ホストからマウントするしない」はイニシエータ側のソフトウェア的な操作で行います。これは便利な機能で、ディスク故障などで、一時的物理的に取り外さなければいけない場合でも、ホストから操作だけで実際のケーブル結線の脱着を行う必要がないので、今時での SAS の外付けディスクドライブの様に、ホストシャットダウンして電源を切り、結線を外して修理、交換する、という必要がないので、ディスクデバイスの修理をホストの電源を止めないで実施できると言う、実に便利な事ができます

という事で、仮想環境では実に使いやすストレージデバイスなのです。

マウントするホストから見ると単純に SCSI/SASハードディスクに過ぎません。iSCSIストレージマウントしてからは、通常の増設ディスクの様にフォーマットして、ホスト側で使う一般的な XFS, ext4, NTFS などのフォーマットフォーマットする必要があります

LinuxiSCSI ターゲットからは、内部にターゲットとして使う「巨大なファイル」が、どん! とあるだけです。この巨大ファイルを、イニシエータ側に仮想ディスクイメージとして提供しています。当然シンプル仮想イメージなので、ファイルのものバックアップコピーすれば、ストレージイメージのものバックアップができます

※ qnap NAS場合iSCSI イメージは、 /share/HDx_DATA/.@iscsi.img の下にドンと作られるようです。

[Solved]How to mount iSCSI file?

https://forum.qnap.com/viewtopic.php?f=180&t=25322

[/share/HDA_DATA/.@iscsi.img] # pwd

/share/HDA_DATA/.@iscsi.img

[/share/HDA_DATA/.@iscsi.img] #

[/share/HDA_DATA/.@iscsi.img] # ls -l

-rw------- 1 admin administ 6442450944 Nov 12 2017 iSCSI-2015ace1-5a078d66.000

-rw------- 1 admin administ 1073741824 Jun 24 09:52 iSCSI-lun4-5d0de534.000

-rw------- 1 admin administ 107374182400 Nov 4 2015 iSCSI-nss01-56399e1a.000

-rw------- 1 admin administ 5368709120 Nov 11 2017 iSCSI-nss2015-5a06cf6d.000

-rw------- 1 admin administ 21474836480 Jun 22 17:11 iSCSI-test-56b3ce90.000

-rw------- 1 admin administ 5368709120 Jun 22 17:11 iSCSI-test-56b3ce90.001

[/share/HDA_DATA/.@iscsi.img] #

※ とても重要

CIFS/NFSファイル共有NAS と違い、iSCSIマウントして一つのターゲット制御できるのは、一つのホスト、一つのイニシエータだけです。複数ホストからイニシエータでマウントする(できちゃいます)と、ファイル排他制御は行われないので、ファイルシステム自体の不整合が起こります

まりファイル共有という目的には向いていない、という事です。あくまでも iSCSI ターゲットネットワーク上の仮想ディスクです。

もっとも、一つのホストからマウントしてファイルを保存して、いったんオフラインにして、ターゲットを別なホストからマウントする、という事はできます。また、ターゲットは一つの iSCSI デバイス複数作れるので、1台の iSCSI 装置複数ターゲット実装して、複数ホストから別々のターゲットイメージマウントする事は問題ありません。

極端な話、ホストハイパーバイザーは USB メモリSANブートさせて、後はマウントした iSCSI仮想イメージ上で、仮想マシンを動かす、HDDレスハイパーバイザー運用もできます

物理的な転送速度は、ネットワークの速度とディスクデバイスの性能に依存します。当然 10Gb baseネットワークカードHUB、高規格なケーブルを使えば、論理的な性能は 10Gbps です。大抵は NAS の性能がそこまで出ないのですけどね。ヨドバシカメラあたりで売っている 4,000 円程度の 1G HUB でも、そこそこの性能が出てしまます

距離は、IPがつながればどこでもなので、ホストコンピュータとメインのストレージを自社のサーバールームに置き、イニシエータを動かし、バックアップ用の iSCSI ターゲットデータセンターに置く、なんてこともできます

【送料無料】QNAP TS-431P2(ホワイトNAS 4ベイモデル クアッドコア CPULAN 2ポート搭載 (TS431P2)

価格:56,145円

(2019/7/27 12:05時点)

感想(0件)

  • LUN -

iSCSI の耳慣れない言葉に LUN (論理ユニット番号 : Logical Unit Number)というのがあります

昔の SCSI は、 SCSI バスアダプタに7番のIDを振り、残りの 0 ~ 6 のディスクCD, Tape などに ID を振り分ける物理的な3ビットディップスイッチやジャンパ端子が付いていました。これが SCSI アドレスです。

まり初期のSCSI 規格では8つ分。

これが実に難物でした。特に複数SCSI バスアダプタカードをデュプレクス設定する場合割り込み番号も別々にするので、手が滑ってジャンパピンを飛ばして床を這いまわって探したり、難解なディップスイッチを前に数日悩んだものです。

まりつのSCSIバスには 0~7の合計8台(うち大抵7番はSCSI バスカード)の物理ユニットデバイスがつながって別々に見えたという仕組みだったわけです。

ところが SCSI バスを使った Raid コントローラが出てくると、ディスクの鈴なりが、一つの物理デバイスに見えてしまうわけです。これを「論理的仮想番号」に分割して、システムからは、単一の鈴なり Raid ディスク複数論理番号に分割したわけですね。

これが LUN というヤツです。

iSCSI 機器ターゲットも、内部のソフトウェア的に複数論理デバイスに分割して、複数ホストコンピュータから複数物理デバイスのように見せかけるわけです。

別々な LUN は一つ、あるいは複数iSCSI 機器によって、複数ホストに別々のディスクデバイスとして見せかけるンです。

まぁ、いい加減な説明なので、他所で調べてください。

https://en.wikipedia.org/wiki/Logical_unit_number

Qnap NAS場合iSCSI ターゲットウィザード形式簡単作成できますEXT4 ファイルシステム上で、オンラインでも簡単サイズの拡大ができるので、 Windows の Storage Server のように NTFSVHD 形式ではないので、そこそこ性能が出ますが、いかんせん古さと遅さは否めません。

Qnap NASiSCSI ターゲットの設定は、偉そうな Linuxサイトに書いてある程、面倒なことはありません。ストレージマネージャから iSCSI タブにあるウィザードに従って iSCSI ターゲット名に任意名前を付けると IQN にその文字列が追加されるだけです。わざわざ vi エディタに「正確に」綴りを間違えずに設定する必要もありません。ここでは Chap 認証は付けませんでした。

仮想時代NAS 選び - やっぱり iSCSI は早い。_a0056607_16405779.jpg

機械は古いのですが、逆に言うと、「古くて遅い」ため、サーバーNASとの接続プロトコルの性能差が、如実に現れる事になります

QNAP TVS-951X 10GBASE-T/NBASE-Tポート内蔵

10GbE接続対応 NAS

Windows10 の MicrosoftiSCSI イニシエータは「コントロールパネル」>「システムセキュリティ」>「管理ツール」の中にあるので、ここで、設定済の iSCSIターゲットを」 「検索」して選んで「接続します。Chap 認証を付けておいた場合ターゲットで設定したパスワード必要でしょう。

仮想時代NAS 選び - やっぱり iSCSI は早い。_a0056607_16412132.jpg

新規作成して、接続した後は、フォーマットされていないため、ディスクマネージャからフォーマットして使います。ちなみに、フォーマットして利用した iSCSI ターゲット仮想ディスクは、他のマシンマウントすることもできます。つまりHDDを取り外して、他のPCに繋げる事と同じことですね。

PR

ちなみに opeSUSE で使うにはこんな感じになりました。

open SUSE Leap 15.1 で iSCSI NASを使ってハマった

https://islandcnt.exblog.jp/239328437/

  • CIFS の性能を見てみる -

一番イラつくのは、巨大なファイル転送でしょう。という事で 3G 程ある SUSE LinuxインストールDVDISO ファイルを CIFS でコピーしてみます

仮想時代NAS 選び - やっぱり iSCSI は早い。_a0056607_16414334.jpg

3分11秒かかりました。1Gビットネットワーク12~3% 程度の帯域を使って通信しています。明らかに古いNAS の性能が足を引っ張っているようです。

スループットは 150Mbps 程度で全体の最大15%程度でしょうか。

仮想時代NAS 選び - やっぱり iSCSI は早い。_a0056607_16415832.jpg

次に iSCSI マウントしたディスクコピーしてみます

仮想時代NAS 選び - やっぱり iSCSI は早い。_a0056607_16422170.jpg

初速は出るのですが、その後は、ボロイ TS-110 の性能がモロに出ます。それでも 20 MB/s から 25 MB/s 程度は出ています

仮想時代NAS 選び - やっぱり iSCSI は早い。_a0056607_16423835.jpg

2分25秒でした。 大体20%程度のスループットです。





--

数字に弱い私の脳みそですが、 iSCSI は CIFS より 1.5倍くらい早い、という事が言えます

Zabbix で QNAP TS-110 の I/O を見てみると、前半の CIFS アクセスより後半の iSCSI アクセスの山が高い事がよくわかります

仮想時代NAS 選び - やっぱり iSCSI は早い。_a0056607_16425860.jpg

CIFS を使ったリモートディスクマウントは、他のPCからアクセスができる、というメリットがありますが、iSCSI単一ホストからアクセスしかできません。<--- これ重要.... -- もっとも、ターゲットストレージ複数作って複数サーバーから異なるデータ領域アクセスはできますが -- バックアップ用途や、サーバー増設ストレージとして考えれば、良い選択であると言えます

もっとも、iSCSI デバイスのものは、ターゲット単位で別々なホストから接続できますしかし同じターゲットで別々のホストからイニシエータから繋ぐと、とても笑いごとにならない事態になるので、普通やりません。

ハイパーバイザー同士で一つのターゲットを共有してライブマイグレーションしたことはあります

こうした性能のわずかな違いが、仮想システムハイエンド領域で違いとなって出てきます。なお Qnap でも openiSCSI でも Windows Storage Server でも取った領域そのままのサイズのでかいファイル作成されるようです。

国産 NAS の「ハイエンド」と称する「LANxxxx」などのモデルでは Windows Storage Server を使って NTFS フォーマットしていますWindows Storage Server は見た目 Windows サーバーのものなのですが、ところどころちゃんデチューンされているようで、SOHOけが限度です。

こういった国産 NAS メーカー製品カタログでは、「ハイエンド」は Windows Storage Server を搭載して、低価格NASUnix 系のシステムで「低価格」を謳っていますが、そもそも、上位モデルは、CPUメモリの性能が高いものが使われています。性能が違うのは当たり前なのですが、あまり性能が出ないだろうと思います

Windows Storage Server じゃなくて、ちゃんとした Windows Server と CAL 買えよな、という事なのですね。

このあたりは独自OSNAS としてチューニングした Qnap や Synology, asuster などの iSCSI 機能付きの NAS を中規模ネットワークのミドルレンジNAS として利用したほうが良いと思います

仮想環境でのネットワークタッチストレージ(NAS)は、本回線(構内LAN)とは切り離し、ストレージ専用のネットワークとして独立して運用させるのが基本です。サーバーNAS間で凄まじい通信が発生します。サーバーNICが2ポート以上のものが推奨されます

  •  誤解していけないのは --

iSCSIあくまでもネットワーク上のストレージのみの機能提供するものであり、ファイル共有の手段ではない、という事です。

NAS をCIFSで使うと NAS が持つ独自アクセス権限を設定しなければなりません。セキュリティも当然 NAS 独自機能で設定します。

iSCSIあくまでも「外付け SCSI デバイス」のネットワーク版なので、マウントする側のOSのものファイルシステムセキュリティ機能アクセス制限ホスト側の機能をそのまま利用できますセキュリティ的には、マウントする際のパスワード制限しかないので、独自ストレージネットワーク内に配置すべきで、ユーザが使う構内ネットワークに配置すべきではありません。

2021-12-26

anond:20211226110315

あれは月額1480円のファミリープランへの誘導が書いてあるのが心底腹立つ

お前の排他制御とか再生環境記録とかがへぼいだけだろというね

2020-12-30

排他制御と排泄制御ちょっと似てる

一般の人は排泄制御の方が身近だろうな

2019-01-01

AとBが共存できないってことを

何て言ったのでしょうか・・・

排外処理とかそんな名前だった筈なのですが・・・


追記:(2019/1/1 14:00)

排他的論理和

排他制御

このあたりが正解だったのかな、と考えています

新年早々、色々とアドバイスありがとうございます

今年が皆さんにとって良い年となりますように。

2016-12-12

荒らし依頼サイトがあった昔のインターネット

かつて、個人サイトBBSは、基本荒らされているものだった。

なにせ多くの掲示板スクリプトが、ろくな荒らし対策をしていなかった。

排他制御flockだった。過負荷がかかると掲示板データが壊れていた。

HTMLタグエスケープには漏れがあった。JavaScriptだろうがCSSだろうが埋め込み放題だった。

タグが使えればもう後はブラクラを貼るなりグロ画像を貼るなり文字を全て巨大にするなり好き放題だった

そうやって荒らされた掲示板は見るも無残だった。

昔のインターネットはよかったなどと言う人は、荒らし依頼サイトを見たことがないに違いない。

あの悪意だけで、何の正義感もなく、単に依頼されたからというだけで荒らしに行く連中を。

「ここの管理人がこのサイト馬鹿にしてました!」と一言書かれるだけで報復にいく連中を。

単にツールを流すだけなので、荒らす方にもなんの労力もない。掲示板機能不全にすることはたやすかった。

そうやって荒らされた掲示板の末路を見たこともないに違いない。

数日そうやって荒らされただけで、掲示板にあったコミュニティ簡単破綻する。

管理人だって対応する余裕はない。なにせインターネットは従量課金だし、Googleがないからググれない。

よくある管理人が半隠居状態で、常連だけで回していた掲示板だったらなおのことだ。

そんな災害のようなできごとだけで雲散霧消するコミュニティだらけだった。

個人サイトだってちょっとでもアングラに関わればそういう災害に巻き込まれることがあった。

それが昔のインターネットの一面だった。

正義感燃えている今とは違う、また別のディスコミュニケーションによる恐怖があった。

昔のインターネットはよかったなんて、俺にはとても言えない。

2016-12-03

老害プログラマだが。最近若いもんが書いたコードを読んだ。

例外ってあるじゃろ。tryしてる間にthrowされたのをcatchするアレじゃ。あれは、たしか有用な仕組みじゃ。何かの関数に失敗したとき本来の値のかわりに特定の値を返すのもダサいし、参照型の引数成功たか否かを返すのもダサい場面、というのは確実にある。そもそもプログラマ怠惰で忘れっぽい生き物なので、例外という仕組みがなければ、関数で失敗したことにすら気づかないかもしれない。

だがな。例外魔物じゃぞ。昔は、gotoというものがあってだな。好きなところに処理を飛ばすことができる。あまりに、いろんなところに飛ばせるので、邪悪だと言い出した奴がおって、今ではあまり使われなくなった。なぜgoto邪悪と呼ばれたかgotoというのは、順接、分岐、反復という、プログラムを組む上で最低限必要制御構造から逸脱した、どっかからどっかに飛んでいく、という行為が容易にでき、それを多用したコードはまともな人間には読めなくなるからであった。そして、例外は、まさにその「どっかからどっかに飛んでいく」を容易にするための仕組みなのじゃ。

例外は、順接、分岐、反復による基本的制御構造があった上で、あくま対処を要するアブノーマルな状況に使われるべきものであり、例外というのは、制御機構として使ってはいけない。値を返す目的例外を使ってはいけない。一体どこから来て、どこへ行くのか分からない、そんな、流れ星のような例外の使い方をしてはいけないのじゃ。例外を使うなと言うつもりはまったくない。じゃが、例外制御構造を壊しうるものだと認識し、例外悪用していないか、それによってコードが追えなくなることはないか、と、考えてから、使ってほしいのじゃ。

イベント悪用も見た。イベントは非常に有用な仕組みだし、GUIなんかだと、もはや必須とも言える。なので、イベントを使うことは有用なことだ。けれど、イベントは、いつどこで発生するか予想が付きづらいものが多く、また、スレッドなどを使って非同期でイベントが処理される場合(今時は、多くがそうだろう)は、マルチスレッドと同じく、リソース排他制御を行う必要があるかもしれない。複数の処理が同時に動くというのは、恐ろしいことなのじゃ。いつの間にか、変わってないと思ってた変数が途中で変わるやもしれない。「まー、滅多に起こらないし、ええじゃろ」って判断の上、何も対策しない、という手もあるが、ええじゃろで済むのか済まないのか検討するくらいは必要じゃわな。C# なんかだと、言語レベルイベント実装されておる。じゃからイベント必要ないじゃろと言いたくなるような場面で、イベントが使われていたコードを見た。

便利な仕組みがどんどん出てきて、新しいものがどんどん古くなる今のコンピュータ業界。新しいものを追いかけるのもいいが、基本は基本として、しっかり押さえて欲しいのじゃ。今更、アセンブラゲームを作れるようになる必要なぞ、微塵もないが、自分コードがどのように動くのか、興味をもってほしいのじゃ。わしのような新しいもの不勉強老害は、最近若いもの基本的なことを不勉強からこそ、居場所があるのじゃ。じゃが、わしももう長くない。若いもんは、新しい仕組みの表面だけでなく深い部分に触れて、学んで、わしら老害を追い出せるくらいになってほしい。わしからは以上じゃ。

2015-09-28

http://anond.hatelabo.jp/20150928025201

カメラ画面をスクショさせないようにだよって言うけど、わかってんなら簡単に排他制御できるだろっていつも思う

カメラが動いてれば音出す、動いてなければ音出さないでいいじゃんって

2015-06-06

http://anond.hatelabo.jp/20150606102201

データ更新が値動き取得ぐらいしかないなら、とりあえず排他制御無視できそうだけど。

ミッションクリティカルシステムじゃなきゃ、インデックスはってりゃ取得に時間からなそうだし、存在チェック→insert or update だけの簡素な自前 upsert ならそんな実装時間からないんじゃないかな。

どういう仕組みにするかはどれだけでかい案件なのかによるなあ。

2013-10-12

電車で隣りに座った女性二人が「セマフォ使ってるとストレスたまってさー」などと話しているのが聞こえて、今どきセマフォ排他制御とは感心なアラサー女子だなぁなどと思ったが、よく聴いたらスマホの話だった

2013-03-19

2人(1対1)だと普通に喋れるのに3人以上だと急に話せなくなる現象

・・・に誰か名前を付けて下さい。

あと、解決方法を教えて下さい。

何なんだろうねあれ。

たぶん会話の制御が3人以上だと急激に複雑化するからではないかな?

大学教授が、↓みたいなことを言っていたのを思い出した。

コンピュータにおいて、制御を行う要素の数が1個の場合、2個の場合に比べて3個以上の場合で複雑さは段違いに異なる。

1個のときは、自分自身を制御すればよいから簡単だ。

2個のときは、「自分でなければ相手である」「相手であれば自分でない」「協調動作、排他制御したいなら、唯一の相手の様子さえ見ればよい」から、1個の時に比べて複雑さは増えるが、まあ簡単だ。

3個以上のときは、「自分でなければ、BかCかだが、どうやって判別する?問い合わせするか?それともまとめ役の要素をもう一つ作るか?」「協調動作、排他制御したいなら、自分以外の全員に伺いを立てなければ。どういう順番で?他の誰かが既に使ってたら、もう一人より先に使いたい場合どうする?」と急に難しくなる。

2人だったら、対面式の会話のキャッチボールから、投げてきた相手に投げ返せばいい。

だが、3人以上だったら、次はボールをどっちに返したらいいのか?

現実キャッチボールなら、三角形になってA→B→C→A→と回せばいいが、会話のキャッチボールってそんな単純じゃない。

A「○○だよな?」

質問した場合、まずBとCどちらが先に答える?

仮にBが答えるにしても、Bはその後Cに質問の回答権を譲るべきか?それともAの場合はどうかと聞き返すべきか?

別のシチュエーション、AとBのみが分かる話題で会話が盛り上がった時、

AやBはどのタイミングでCにも分かる話題にシフトすべき?また、そのシフト方法は?

もしくは、Cはどのタイミングで割り込むべき?また、その方法は?

・・・

とまあ、こんな風にあれこれ考えてしまうから、話せなくなるんじゃないか

2013-01-21

意思疎通

A「**のファイル編集中?」

B「編集中です」

Aさんはファイル編集権排他制御意味ファイルを開いて編集しているかを聞いています

Bさんはファイルは今の時点でファイルを開いては居ないのですが、まだ編集途中であとでやろうと思ってまだだと答えました

編集中」の意味を確認すれば齟齬はなくなりそうですが、口頭で厳密に確認ってあまりしないですよね?

Aさんが意味を伝えていれば、もしくはBさんがAさんの質問意図をくめていたら齟齬はおきなかったかもしれません

意味を厳密に聞く人もよくいませんか?(うちの職場には居たりします)

「あれ」「それ」を使うと 「あれ」て何?とかいちいち聞く人

相手の想像を推測して合っているか聞けばいいのに、直接的に聞かれると

言葉を直接的にしか理解できない発達障害な人なんじゃないかと思ってしまます

意思疎通って互いに「考えていること」を伝え、認識・理解されないといけない

齟齬をなくすためにはいろいろ発言や受け取りを考えなくてはいけないですな

2007-12-02

ここで勝手言語論争ごっこ

一番使い勝手の良いプログラミング言語Perlどぅわ!

C/C++/C#なんて気軽に文字列処理できないし、

Windowsでしか使えないVisualほにゃらら

メモリの確保、解放なんてしたくない

だいたい、セグメンテーションフォルトを起こすような言語は嫌い

DirectXOpenGLとお友達になりたくない

Haskelわけわかんないし

Java重苦しいし、いちいちclass Hogehoge { public static void main() { ... } }書くのがめんどくさいし、API多すぎ

オブジェクト指向したくなるような複雑なプログラムは最初から考えない(作れない)

GUI作りたくなるような言語はめんどくさい

言語が提供するGUIのツールはOSとは別に独自のレイヤー世界感を持っててとっつきにくい

マルチスレッド、排他処理を扱うようなプログラム脳味噌がついて行かないので書かない

CGIにしか使えないようなPHP

Ruby、、、そもそもLL言語で大規模でオブジェクト指向プログラム書きたくない。小規模ならオブジェクト指向要らない。

俺のマシンで実行できないAda/Basic/Fortran/Pascal その他いろいろ

VHDLVerilogFPGAやゲートアレイなんて持ってない、持ちたくない(苦手だもん)

データベースなんかいじってたまる

HTMLXML日本語タグが入り乱れるので、そのつど日本語入力の切替えが死ぬほど嫌になった。

だから、HTMLXMLは全部手入力なんて真似は絶対してやらねえ。

Flex(Action Script)はコンパイラJavaで実装されてて重すぎる。(シェルを使えばまし)

JavaScriptブラウザごとの挙動の違いを吸収しきれる自身が無いので使わない。

1プログラムにつき、(コメント含めて)250行以上書きたくない

複雑なプログラムを最後まで書ける連中が羨ましい。

排他制御にとちって、デスロックしてしまえ。

(本文には触ったこともない言語を思い込みで罵倒しているなど、嘘、おおげさ、紛らわしいが多数混入しています。それが全部わかった貴方プログラミング言語マスターです。)

 
ログイン ユーザー登録
ようこそ ゲスト さん