変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

パソコン

外付けUSBハードディスク

BDZ-EW500の内臓HDDは500GBなので、3TBの外付けHDDにムーヴしてたけど、もう一杯。
今では6TBなんてもあるけれど、認識できるのかな?
調べてみると3TBがMaxだったようだ。FAQ
今は一番コスパがいいからいいかな。
ブルーレイディスクレコーダーのUSB端子は、Hi-Speed USB (USB 2.0準拠) らしいのでUSB3である必要もなし。
それに色々制限もあるようだ。

外付けUSBハードディスクについてのご注意

  • 登録、または解除後に再登録すると本機専用に初期化され、外付けUSBハードディスクの内容はすべて削除されます。
    外付けUSBハードディスクは一時的な記録場所としてお使いいただき、大切なタイトルはBD-R/BD-REにコピーすることをおすすめします。
  • 本機に登録した外付けUSBハードディスクは、他機器では使えません
  • 外付けUSBハードディスクに録画/ダビングしたタイトルは、おでかけ・おかえり転送はできません。
    外付けHDDから内蔵HDDにダビング、ムーブすることでいずれも可能となります。
  • 外付けUSBハードディスクでは、以下の録画はできません。
    ・LAN経由のCATV/「スカパー!HD録画」
    ・視聴中の番組や映像の録画
    ・複数番組録画
  • 本機修理に伴い、内蔵ハードディスク同様に外付けUSBハードディスクも初期化が必要になる場合があります。
    その場合、再登録すると初期化され、外付けUSBハードディスクの内容はすべて削除されます。

修理に出したら、外付けHDDを再登録すると中身は全てパーになるようだ。
そろそろBD-Rに取っておくか・・・2.3TB分   orz



499ドルのSurface 3

core iシリーズ搭載のお高いSurface Pro 3しかなかったけど、
Atom x7-Z8700を使って少し安いSurface 3が出るらしい。
モニタは10.8型サイズ(1,920×1,280ドット)。
キックスタンドは無段階ではなく3段階の調節などなど、若干先祖返りしているが、USB-3が付いている。
1年間のOffice 365 Personal利用権付。
なお、最近の風潮どおり、日本での発売は未定となっている。



【JavaScript】 IFRAME

うかつに使うとCSSやコードページが設定できず痛い思いをするIFRAME。
サンプル
urlを打ち込んで【Add IFRAME】ボタンを押すと小窓が開く。
urlが空ならTextAreaが出てくる。
localStrageでurlもTextAreaの中身も覚えるので便利に見えるかもしれない。
かといって、いつまでの残っていると困るので、All IFRAME erase で全部忘れる。



【JavaScript】Selectors API

たまにjQueryを使うようになると、画面の中の必要なデータをJSON形式にまとめて送信するのが一番楽で、初期表示もJSON形式にまとまったデータを展開する方が簡単だ。こうなると、servletとJavBeanとJSPとタグライブラリィを使って器用にHTMLをでっち上げるMVPなんて「手間がかかる無駄飯食い(GUI)」でしかない。
MVPってホスト全盛だった前世期の『構造化プログラミング』であって、今風のアジャイルな思い付きの「変更後しか画面に出てなかったけど、変更前と変更後の内容を併記する」という様な、ネストの差替えが伴う仕様変更には滅法弱い。
Beanは丸ごと下位のクラスに押し出して、元のクラスのメンバーにし、servletは丸ごとリファクタリングしてループすればいいけど
画面に直結するJSPはサクっと直すとダラダラと長いコードにしかならないので書き直すしかないのは、ホスト全盛だった前世期と同じだ。
jQueryは、IEを使うと、JavaScriptでデータを展開した結果のHTMLを見るのは難しいけど、FireFoxでCtrl+Aで全画面を選択し右クリックで「選択した部分のソースを表示(E)」すれば見れる。
しかし、JUnit系のテストツールでは、HttpRequestが送ったHTMLコードを保存する様で、画面に展開した後のHTMLはファイルとして残らない。
ところが、jQueryを使えば、「classごとにイベントをまとめて登録することが常識」と云うことで押し切れる世の中であるが、何でもかんでも「classごとにイベントをまとめて登録すること」になってしまうところが『常識』の恐ろしい処でもある。(笑
そのjQueryを使わなくても、ブラウザのSelectors APIで十分になったらしい。
既存のAPIとの違いと云えば、 APIに渡すパラメータに疑似クラス名が使え、API で返される内容がリストからイテレータになっている様で、~. style.bold = true;  参照すれば、要素の分だけ、勝手にループしてくれるので、簡単なことは簡単に書ける。
但し、boldもitalicもunderscoreもfontのポイントも変えたいとか色々変える場合は不向きな感じがするから、cssを絡めクラス名を差し替える様な「短いコード」にした方がいいだろう。
「短いコード」で十分なら、jQueryも特に使わなくても良さそうだ。※非同期通信は使用しない条件付きで…
そうすることで、FireFoxでオブジェクトを選択してソースを見れば、classの内容で、仕様通りのクラス名に変わっているハズなので、デバッグが捗るというものだ。
振り返ってみると、Java系WEB Serverの仕様って、本当に「黒歴史」ばかりなのには・・・驚きを隠せない。



【SQL Server】ストアード プロシージャを作る時と変える時

VS Express for Desktop 2013 のデータベースエクスプローラーやSQL Server エクスプローラーでは
ストアードプロシージャをダブルクリックするとストアードプロシージャのエディタには、中身だけ表示されるので、中身だけ書けばよい。
SQL Server エクスプローラーでストアードプロシージャの【スクリプト化】【CREATE】や【ALTER】でクエリウインドウにコードを吐き出させると
簡単なストアードプロシージャの作成や変更のコードが出る。
データベースエクスプローラーで、ストアードプロシージャのコード画面の【実行】を押し【スクリプトの作成】させてみてと、
まだ作成していない場合は

CREATE PROCEDURE [dbo].[Procedure]

作成済みなら

ALTER  PROCEDURE [dbo].[作ったプロシージャ名]

の違いしかない。
何も変更してない時に無駄に【実行】ボタンを押すと、「何もしない」スクリプトを実行するのは良いけど、「スクリプト」の方を押せば、『ALTER PROCEDUREのスクリプトだと思い、そのままALTER PROCEDUREのスクリプトであったファイルを上書きしてしまう』とかなり痛い仕組みになっている。
しかし、古いSQL Server 200XのManagerに至っては、
ストアードプロシージャを右クリックし「スクリプトの変更」で吐き出されるコードは、【スクリプト化】と同じ様に見えるし、 CREATE もALTER 以外に違いはなさそうに見える。
しかし、保存しておいたALTER PROCEDUREのスクリプトを読み込み、CREATEに変えると、アチコチにエラーの下線が出る。
仕方がないので、他のCREATEで保存したものに BEGINからENDまでを差し替えることになる。
作った奴の悪意を感じるけど、
右も左も【こっそりストアードプロシージャが書き換える奴】ばかりだったのなら・・・
苦労がしのばれると云うものだ。
ちゃんと動作する製品を作り上げることが一番大事であることは確かだ
しかし、何かにつけて、インストールから設定・運用まで、ヘマしやすいSQL Serverは、『素人お断り』と云う点では立派な『プロ仕様』の製品であることは間違いない。



【SQL Server】ストアードプロシージャの中身

ストアードプロシージャはデータベースの中。
今は何が入っているのやら(笑
気になったら・・・

SELECT
     specific_name                AS プロシージャ名
    ,routine_definition           AS コード
    ,len(routine_definition)      AS 長さ
FROM information_schema.routines
ORDER BY specific_name

但し、コードは最初の4,000 文字だけ
コード全文を見るのは

SELECT
   OBJECT_NAME(M.object_id) AS プロシージャ名
  ,M.definition             AS コード
  ,len(M.definition)     AS 長さ
FROM
  sys.sql_modules M inner join  sys.objects O
  on M.object_id=O.object_id and O.type='P'
ORDER BY
  OBJECT_NAME(M.object_id)


【SQL Server】レコード数

Select coun(*) From テーブル
は実装の問題なのか結構時間がかかる。
sys.dm_db_partition_stats のrow_countを使うと速いらしい。
※適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)、Windows Azure SQL データベース (初回のリリースから現在のバージョンまで)
ついでに sys.tables を使えば、ユーザー テーブルだけデータを返すらしい。

use データベース名
SELECT t.name, p.row_count
FROM sys.tables t WITH(NOLOCK)
INNER JOIN sys.dm_db_partition_stats p WITH(NOLOCK)
ON t.object_id = p.object_id
ORDER BY t.name

 
 
 



【SQL Server】 フィールドの一覧

sys.sysobjects と sys.columns を使う場合。

use データベース名
select O.xtype, O.name, C.name
from sys.columns C inner join sys.sysobjects O
on C.object_id = O.id and O.xtype in('U', 'V')
order by O.xtype, O.name, C.name

sys.objects と sys.columns を使う場合。

use データベース名
select O.type, O.name, C.name
from sys.columns C inner join sys.objects O
on C.object_id = O.object_id and O. in('U', 'V')
inner join sys.types T
on C.user_type_id=T.user_type_id
order by O.type, O.name, C.name

※sysobjects にはxtype,type,id があるがobject_idが無い。
sys.objects と sys.columns と sys.types を使ってフィールド定義も見る場合。

use データベース名
select O.type, O.name, C.name, /*C.user_type_id,*/
T.name + CASE
 WHEN T.name in ('BINARY','char') THEN T.name + '(' + RTRIM(CAST(C.max_length AS char)) + ')'
 WHEN T.name in ('datetime2','datetimeoffset','time') THEN T.name+'('+RTRIM(CAST(C.scale AS char)) + ')'
 WHEN T.name in ('decimal','numeric') THEN T.name + '(' + RTRIM(CAST(C.precision AS char)) + ',' + RTRIM(CAST(C.scale AS char)) + ')'
 WHEN T.name in ('nchar','nvarchar') THEN T.name + '(' + CASE WHEN C.max_length = -1 THEN 'MAX' ELSE RTRIM(CONVERT(nchar,C.max_length/2)) END + ')'
 WHEN T.name in ('varbinary','varchar') THEN T.name + '(' + CASE WHEN C.max_length = -1 THEN 'MAX' ELSE RTRIM(CONVERT(nchar,C.max_length)) END + ')'
 ELSE ''
END AS フィールド型
from sys.columns C inner join sys.objects O
on C.object_id = O.object_id and O.type in('U', 'V')
inner join sys.types T
on C.user_type_id=T.user_type_id
order by O.type, O.name, C.name

 



【SQL Server】 テーブルの一覧(その2)

sys.objectsを使う場合 適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)
use データベース名

use データベース名
select name from sys.objects where Type in( 'U', 'V', 'P') order by name

で大体判る。
※使用ツールにより、use や sys.が不要
※Typeの一覧

use データベース名
select '[' + Type + ']' from sys.objects group by type
  • AF = 集計関数 (CLR)
  • C = CHECK 制約
  • D = DEFAULT (制約またはスタンドアロン)
  • F = FOREIGN KEY 制約
  • FN = SQL スカラー関数
  • FS = アセンブリ (CLR) スカラー関数
  • FT = アセンブリ (CLR) テーブル値関数
  • IF = SQL インライン テーブル値関数
  • IT = 内部テーブル
  • P = SQL ストアド プロシージャ
  • PC = アセンブリ (CLR) ストアド プロシージャ
  • PG = プラン ガイド
  • PK = PRIMARY KEY 制約
  • R = ルール (旧形式、スタンドアロン)
  • RF = レプリケーション フィルター プロシージャ
  • S = システム ベース テーブル
  • SN = シノニム
  • SO = シーケンス オブジェクト

適用対象: SQL Server 2012 ~ 2014。

  • SQ = サービス キュー
  • TA = アセンブリ (CLR) DML トリガー
  • TF = SQL テーブル値関数
  • TR = SQL DML トリガー
  • TT = テーブルの種類
  • U = テーブル (ユーザー定義)
  • UQ = UNIQUE 制約
  • V = ビュー
  • X = 拡張ストアド プロシージャ



top