追記

野良犬日記 2.1

RDF/RSS
この日記の検索

最近のツッコミ:


2018-08-19 (Sun) Google フォームを Google スプレッドシートに反映するときのお節介を回避 [長年日記]

_ 軽く検索しても見つからなかったのでメモ

_ Google フォームに入力があると、スプレッドシート側で手作業が必要になることがある

たとえば、入力が一つだけあるフォームの結果をシート1にリンクしている場合、シート1はこんな感じになってる。

TimestampOK?
19700101000000Yes

これを別のシートから

='シート1'!A2='シート1'!B2
='シート1'!A3='シート1'!B3

というように参照して、次の入力 (A3 / B3) に備えてあるとき、値は

19700101000000Yes
  

となっているはず。 ここでフォームに二つめの入力 (行3) が来ると、そのシートは

='シート1'!A2='シート1'!B2
='シート1'!A4='シート1'!B4

に書き変えられてしまう。自動的に入力を反映して

19700101000000Yes
20180819153000No

になってほしかったのに、

19700101000000Yes
  

のままだということ。

つまり、シート1側の認識としては、それまで A3 / B3 だった行に最新のフォーム入力が入るのではなく、行2 と行3 の間に新しい行を挿入して (A3 / B3 を A4 / B4 に移動して) から、その挿入された新しい A3 / B3 に入力しているらしい。

でも自動で入力を反映したいんです

という場合に、スマートな方法があるのかどうか分からない。

とりあえずは INDIRECT でも使えばいいかな。

='シート1'!A2='シート1'!B2
='シート1'!A3='シート1'!B3

ではなく

=INDIRECT("'シート1'!A2")=INDIRECT("'シート1'!B2")
=INDIRECT("'シート1'!A3")=INDIRECT("'シート1'!B3")

にしてしまうとか。

それはあまりにもアホすぎるというのであれば

=INDIRECT("'シート1'!R" & ROW()+1 & "C" & COLUMN(), FALSE)=INDIRECT("'シート1'!R" & ROW()+1 & "C" & COLUMN(), FALSE)
=INDIRECT("'シート1'!R" & ROW()+1 & "C" & COLUMN(), FALSE)=INDIRECT("'シート1'!R" & ROW()+1 & "C" & COLUMN(), FALSE)

とでも何でも、好きなようにすればいい。(上記の例は実際に試してないので、バグってるかもしれない)

セル指定を文字列にすることによって、アプリ側から認識できないようにしているわけだから、とうぜん副作用として不便になるわけで、できるだけ避けたいことではあるが。


2018-04-08 (Sun) [長年日記]

_ ハンドドライヤって汚いかもしれないんだね

slashdot記事でも「そんなの前から知ってた」っていう意見が多いみたい。でも紙は補充処理しなきゃいけないからな~


2017-07-01 (Sat) [長年日記]

_ [obsd][sec]みんな違って、みんないい - カーネルのランダム化

OpenBSD は kernel relinking により、(ほぼ) すべてのカーネルが別個のアドレス構成を持つようになりました。

この変更の理由は以前 KARL という題で投稿されました。 メモリ割り当てをランダムにしたほうが良いということは既に常識です。 OpenBSD は ASLR に取り組んできました。 しかしカーネルは常に同じです。 OpenBSD は 6か月ごとのリリースなので、stable リリースをインストールする人は基本的に 6か月間、全員が同じカーネルを使い、同じアドレス空間を持っています (カーネルに関しては)。これはイヤですね。*1

その解決策として、毎回インストール or アップグレード or 起動 or 'make install' するたび、世界にひとつだけのカーネルを作ることにしたわけです。

起動に必要な部分は固定ですが、それ以外はランダムなギャップとランダムな順番でリンクし直されます。固定部分も、いったん起動してしまえば不要なので unmap あるいは trash されます。こうして、ひとつリークがあっても他の情報には結びつかないようになりました。

これは重要なセキュリティ機能とはいえ、これだけのために base セットへ cc を入れるのもイヤなので、リンクのためには ld の linkscript 機能を使ったそうです。ここらへん、私は実装を見ていないので何ともわかりません。

デバッグなどのために、この機能を無効にしたい場合は、カーネルを make install ではなく cp で持ってくることで、勝手に再リンクされなくなるそうです。

いやぁ、Theo が 5年近くも (誰かに押しつけようとして) 着手できなかったというだけあって、なんとも危険な香りのする仕組みですが、どうなんでしょうか。スクリプトと ld を使っているということから、今後のリグレッションも心配です。これだけ苦労しても、普通のユーザには一切、目に見える違いがないというのもすごいです。 でも、本当に OpenBSD のカーネルを攻撃しようとする人にとって面倒なことになりそうだというのもわかります。

7/7 追記: Slashdot に記事が来てた。 https://tech.slashdot.org/story/17/07/05/2327234/openbsd-will-get-unique-kernels-on-each-reboot

*1 ちなみに KASLR については grsecurity による批判 (日本語訳?) がありますが、そこで提示されている問題点も今回の relinking によってかなり対処されるように見えますね


2017-05-16 (Tue) [長年日記]

_ Windows 10 にして画面の明るさが変更できなくなってた

image これもレジストリで FeatureTestControl のビットを立てて 0xffff にしろとか書いてあるのを見つけたけど意味なかった。

モニタとかグラフィック関係のドライバを入れ直したりしても意味なかった。 もしかすると勝手にアップデートされるせいかもしれないけど、知らない。

輝度だけ変えた電源プランを用意して、 powercfg -l で GUID を確認し、 ワンクリックで powercfg -setactive するようにした。 これで十分。

ショートカットキーというのが何かは知らないけど、今のところ効いてないみたい。


2017-05-14 (Sun) [長年日記]

_ 東芝PC 内蔵の Pioneer BDR-TD04 が Windows 10 アップグレード後に動いていなかった

どうでもいいから放置していたけど、解決したのでメモ。

TL;DR

サービスで Toshiba Optical Disc Drive Serviceを停止してハードウェアスキャンする

kwsk

現象

Windows 7 で問題なく使用していた DVD/BD/CDドライブが、 Windows 10 へのアップグレード後に動作していない。 デバイスマネージャでは「⚠」になっている。エクスプローラでも表示されていない。

デバイスマネージャで詳細を表示すると、 「レジストリ内の構成情報が不完全であるか、または壊れているためこのハードウェア デバイスを開始できません。 (コード 19)」 となっている。

調査

検索したら

  • 「レジストリの upperfilters / lowerfilters を消せ」というのがあるが、そもそも(どだい)存在しない。
  • 「レジストリの enumdevice1 を増やせ」とあるが、そもそも 1 だし、2にしても関係なかった。
  • 「atapi の errorcontrol と startoverride で、0 を 0 にしろ(哲学)」というのもあったが、意味なかった。最初から AHCI になってるみたいだし。

一所懸命に BDR-TD04 とか Pioneer とかいうキーワードで検索していたのが失敗だった。なぜなら原因は「TOSHIBA Recovery Media Creator」だったので、「東芝」で検索しなければ解決策が上位に出てこないのだ。

というわけで、やっと「おもに自分用特価情報: Windows10へのアップグレードで光学ドライブが見えなくなる」というページを見つけて解決した。

握っているサービスを停止して、デバイスを停止、アンインストール、スキャンしたら、しれっとアイコンが出てきた。

これ microsoft とか知恵袋とかの回答に情報を追加したほうがいいのかな。

本日のツッコミ(全1件) [ツッコミを入れる]

_ tamo [windows 8 で検索したほうが良かったのか… http://dynabook.com/assistpc/os..]


2002|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|08|09|10|11|12|
2004|01|02|03|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|10|11|12|
2011|02|04|05|06|07|08|09|10|11|12|
2012|01|03|04|05|06|09|11|12|
2013|02|03|09|10|11|
2014|02|03|04|06|09|
2015|11|
2016|01|04|09|10|
2017|04|05|07|
2018|04|08|