2014年2月12日水曜日

MysqlのデータをCSVファイルに出力する

MYSQLのデータをCSVファイルに出力しようとしたとき、オーソドックスなやり方はというと。

mysqlに接続したあとに、以下のコマンドでOKです。

SELECT col1, col2, FROM tbl INTO OUTFILE 'hoge.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

こうすると、hoge.csvは、mysqlのワーキングディレクトリ(?)に出力されます。


/var/lib/mysql/・・・
 …みたいなところ。

自分が神である環境であれば、これでいいのですが、常に/var/libあたりのファイルが扱えるとも限らない。
そんなときは、コマンドラインで…

mysql aa127w0a9d -e "SELECT col1, col2, FROM tbl " | sed -e 's/\t/,/g'  >  hoge.csv

・・・とすれば、切り抜けれそうです。

SELECT ふにゃらら INTO OUTFILE という文そのものが、システム管理者向けということですかね。


2014年2月7日金曜日

やってもうた(1) Mysqlで間違ったカラムに入れてしまったデータを入れ替える。

データベースからデータベースへのデータ移行で、カラムを間違ってデータを入れてしまった。
 テーブルには、companyとpersonがあるのだが・・・。

company:山田太郎
person:山田商事株式会社

…という具合に、間違えてしまった。大量のデータがあり、最初からやり直すことが出来ない状態・・・。

色々と調べてやってみたのが、下のSQLです。

単純に…

UPDATE tbl1 SET company = person, person = company;

…とやってみました。結果は…

company:山田商事株式会社
person:山田商事株式会社

なるほどねー。さらにやっちゃいました。。。
まあ、そりゃそーかという結果ではあります。

こういうときは、こうやるといいみたいです。

SET @swp = '';
UPDATE tbl1 SET company = CONCAT(LEFT((@swp := company),0) , person) ,person = @swp;

値が更新されるときに、一旦変数に蓄えて、その文字列を切り詰めた上で、交換する文字列を設定するということですかね。



2013年12月19日木曜日

先進的ICT利活用教育推進事業なるものの所感


 ちょっと気になる記事があったので、所感を書いてみます。

県立高新入生の学習用端末、負担5万円 高額、強制的と批判も [佐賀県]

佐賀県の高校生がWindowsのタブレットPCを買わされるというお話です。

教材としては、5万円はかなり高いのは、間違いないです。そのことから「高い」という批判的な記事を多く見かけます。記事を読むと…まあ、入札業者が1社とか、「まあ田舎ですから」的に見慣れた感じもあり、批判はごもっともだと思います。

しかし、事の本質はそうではなく…

高校生がタブレットを使うことの価値がどれだけあるか?

…だと思います。

まず、PCの仕様を見てましょう。

平成26年度に県立高校全校で新入生が使用する学習用パソコンを決定しました

 うーん。。。搭載ソフトは、Officeと辞書だけかい・・・。

 そもそも…

タブレットを使うことで、どんだけ素晴らしい人材を育てれるか?

…が伝わってこないよ。


まあ、色々と調べてみると、どういうことに使いたいかは、なんとなく見えてきた気がします。

タブレットだけではない、佐賀県学校IT化の要「教育クラウド」とは

なるほど。SEI-Netとというシステム用の端末として、全生徒が利用するというとらしい。

これは、いい取組だと思う。そして、このシステムを利用するための端末を全生徒がもつことは、大変に意義のあることだし、是非成功してもらたい。


取り組み自体は、非常に素晴らしいのだが、そうなると冒頭の問題点は大いに気になる。
問題だと思うところを挙げてみる。

1.生徒(保護者)が5万円で指定のタブレットを買うというのはいかがなものか?
  しかも、業者は1社で、地元の教材屋(!?)と。
  安く仕入れるなら、メーカーから仕入れたほうが良くないか?

2.金銭感覚がおかしい。
  「市価17万のパソコンが5万で買えます。」とかが必要なワケではない。それよりは、
  「市価7万円のパソコンを支給します」であるべきではないか。
  ノートPCなら十分だし、タブレットである必要性は、公募時の話題性・インパクトくらいしか
  ないじゃないか。


3. 選択の自由がない。
  自腹で5万払うなら、ほかの選択肢があるように思える。
  Officeはマクロが不要だとすれば、Windows RTでも問題ないだろうし、辞書が「いくらする 」
  とか言い訳がましく書いてあるが、SEI-Net自体がネットワーク接続を前提としているのだから、
  無料のオンライン辞書で良くないかい?



全体的に、やろうとしていることは、間違っていないと思う。けどね・・・。

子供をダシに金儲けしてないかい!?

まあ、高校時代から、こういう大人を間近で見ると、「大人の世界」の耐性が強い子が育つかもしれませんね。



2013年12月5日木曜日

Windows RTの世間的な評価は妥当なのか?


Surface RTなどのWindows RTが発売されてから約1年。
Windows RTは最早終焉のときを迎えているかのような発言が多く見受けられる。どうやら、世間での評価は、極めて低いようだ。

 そもそも、「Windows」 = 「Windowsのタブレット版」…というような間違った認識が蔓延しているように見受けれるので、WindowsRTには罪はないような気がしている。

世間の評価は、金額に反映され、ついに2万円台でWindowsRT機が買えるようになったので、この価格なら「買い!?」と思い、購入を決意。予算的には、1世代前がお買い頃…ということで、色々な選択肢(!?)から考え、ASUS VivoTab RT TF600T(キーボードドック付)を選択した。

【選んだポイント】  
  • キーボードつけると1kgあるけど気にしない(今使っているmini9もそのくらいだが不自由したことがない) 
  • (Surfaceを作っている)サムスンはなんとなく嫌い
  • NFCがついている 
  • 電池が16時間ももつらしい
…で早速使ってみました。

はっきり言って・・・

良い出来です!


私のイメージでは、「WindowsCEのタブレット版」だったのですが、完璧に「Windowsのタブレット版」と言っても良いでしょう。そして、アプリの表現力は、他のタブレットを凌駕しているような気がします。メールソフトなんかは、Outlookが動いていますよ(WindowsRT8.1になっていますが)。これは、iPadやらAndroidやらではちょっと出来ない芸当でしょう。

#まあ、Outlookが良いかといえば微妙というかアレですが…。

そしてIEがちゃんと動きます!

#まあ、これも微妙…。私的には、ChromeかFirefoxが使いたい…。

これだけ出来きが良いからこそ、「Windowsのソフトが動かないものなんて要らない!」と非難されるんだろうな。ほんとに見た目変わらない。

Windowsのソフトを使いたい方は、黙ってRTのつかない「Winodws」を使いましょう。
WindowsRTのことをネガティブに言わないでください。。。

2013年9月29日日曜日

Amazon Web Serviceのお祭り JAWS Festa Kansaiに行ってきた

9月28(土) 京セラドーム@大阪で行われたJAWS Festaへ行ってきました。
ブログを書くまでがJAWS Festaです
…って、説明会の資料に書いてあったので、ブログ書いときます(笑)

会場は、京セラドームの「通路」でした。なんの間仕切もなく、通路にスクリーンと椅子がならんで降りました。
会場の様子はこんな感じでした

タイムテーブルですが、非常に盛りだくさん。どれをチョイスするのか最後の最後まで悩みましたよ。
こちらがタイムテーブル

…で、チョイスしたのが、以下の3つです。

  • CDP道場「入門編」
  • CDP道場「中級編」
  • スペシャルパネルディスカッション AWS、cloudpack、Microsoftt、SAP。各社の最強エバンジェAリスト集結!異論!激論!エバンジェリストからみたIT・クラウドの実態と歴史、そして未来へ
1.CDP道場入門編 & CDP道場中級編
CDPは、Cloud Design Patternの略です。色々なサービスを構築するときの定石をまとめたものみたいです。
CDPの説明はこちらで。

今回は、道場ということで、あらかじめ準備されたストーリに合わせて、CDPを適用して、サイトを構築していくハンズオンをしました。
AWSのサービスを眺めていても、未経験な人にはわかりづらいので、ハンズオンというのはすごく良かったです。AWSの勉強をしたい方は、こういったハンズオンのイベントを探して行くってのは、かなりいい体験だと思います。そんなに都合良く開催されるものなのかは分かりませんが。

ちなみに入門編では、S3をWebサイトにして、Cloud Frontで高速にコンテンツを配信するやり方をやりました。使ったパターンは、以下の2つです。

  • Direct Hostingパターン
  • Cache Distributionパターン
中級編では、WordPressサイトを最小構成で立ち上げ→サーバをスケールアップ→サーバを増設→データーベースを複製するという流れ。使ったパターンは、以下の3つです。
  • Scale  Upパターン
  • Clone  Serverパターン
  • Read  Replicaパターン

実際には、Read  Replicaパターンには辿り着きませんでしたけどね。

3.スペシャルパネルディスカッション
パネルディスカッションは、Amazon, Microsoft, SAP, 電通国際情報サービス, Cloudpackからエバンジェリストが参戦して行われました。今までクラウドを育てて来られた方々のトークは、聴き応えがありました。印象に残ったのは、Microsoftの西脇さんの洗練された話ぶりですかね。あと、SAPの常盤木さんのモデレータも良かったです。あれだけのメンバーをキレイにまとめて、時間ぴったりで終えるとか…素晴らしいです。

録画はこちら










2013年7月11日木曜日

Windows2012のディスク重複除去を使ってみた。

最近、PCの中には、拡張子VHDで幅を利かせて、善良なファイルが肩身の狭い思いをしている。
ここ1年くらい、ディスクを使っては、空けてを繰り返して、もうさすがに疲れたよ。
先日、使っているOSをWin2008からWin2012へアップグレードしたことだし、
「データ重複除去」を使ってみました。














まあ、これは極端な例かもしれませんが、約1TB戻ってきました。
データ重複除去を有効にしても、あまり、重くなった印象はないですし、
今のところ不都合もありません。
Windows2012、素敵ですね。

2013年6月18日火曜日

PDFファイルにパスワードを設定したり、暗号化したりしてみる。

既に存在しているpdfファイルにパスワードをかけたい。暗号化をしたい。
そんなことを自作のプログラムからやりたいよ。と考えた。

軽くググって、iTextの存在を知る。JavaやC#で作られたライブラリのようです。
早速、ダウンロード。

ダウンロードしたファイルの中には、たくさんのZIPファイルがありました。
とりあえず、dll-coreのみ解凍します。

今回は、Visual Studio 2008 から使ってみました。
書いたコードは、こちらになります(いろいろ端折ってますけどね)。

 //  まずはpdfを読み込み
  iTextSharp.text.pdf.PdfReader pr =
    new iTextSharp.text.pdf.PdfReader(@"c:\work\doc.pdf");
  //  pdf のドキュメントを生成
  iTextSharp.text.Document doc =
    new iTextSharp.text.Document(pr.GetPageSize(1));
  // pdfのライターを作成・オープンし、セキュリティの設定をします。
  iTextSharp.text.pdf.PdfWriter pw =
    iTextSharp.text.pdf.PdfWriter.GetInstance(
      doc, new System.IO.FileStream(
        @"c:\\work\doc.enc.pdf",
        FileMode.OpenOrCreate));
    pw.Open();
    pw.SetEncryption(iTextSharp.text.pdf.PdfWriter.STRENGTH128BITS,
      "readpass",
      "writepass",
      iTextSharp.text.pdf.PdfWriter.ALLOW_COPY |
      iTextSharp.text.pdf.PdfWriter.ALLOW_PRINTING);
    doc.Open();
    iTextSharp.text.pdf.PdfContentByte pcb = pw.DirectContent;
    for (int i = 1; i < pr.NumberOfPages; i++)
    {
      doc.NewPage();
      iTextSharp.text.pdf.PdfImportedPage pip = pw.GetImportedPage(pr, i);
      pcb.AddTemplate(pip, 0, 0);
    }
     (後片付けも必要ですよ)
意外とお手軽に出来ました。iText使えば、それなりにpdfファイルをいじって楽しめそうです。
ちなみにiTextフリー版のライセンスは、AGPLv3です。

本内容は、以下のページを参考にさせていただきました。
http://niyodiary.cocolog-nifty.com/blog/2009/01/aspnetpdf-f0f5.html