はてなキーワード: .NET Frameworkとは
スケジュールタスクに登録させて実行したら、実行結果に (0xE0434F4D)と表示された。
原因ぐぐったら、kernel32.dll がおかしくなっているとか、.NET Framework のモジュールの問題だとか出てきた。
ファイルサーバ共有フォルダ内のファイル一覧を得るところで、指定した検索フォルダ名(フォルダパス)を間違えていたことが判明。修正したらすんなり動いた。
(System.IO.Directory.GetFiles() という処理)
要するに、OS がおかしくなっているとか、DLL や .NET Framework が不足している・おかしいではなくて、単にメソッドで失敗して例外が発生している場合にもこのエラーコードになるということだ。
あ、まず前提として、
はたして貴女を幸福にするかどうか、それはまた別問題だけれど。
IT系の超かしこい男なども多く、
多くっつーかIT系でないのにプログラミング大好き男っていうのは超かしこい学生(まぁこれは有望株)か研究者系なんか、
あとはまったくかしこくもないクセに頭いいつもりして「Lispやってます(キリッ ハローワールドくらいですが」とか言っちゃうアホしかいないわけで、
したがって、釣り師たる女たちにとっては、
なかなかあなどれない釣り場です。
では、プログラミング大好き男に「どの言語が好き?」と訊ねられたとき、
まず最初に、その男がCOBOLのようなタイプのレガシーコードと
あとはC/C++、そして(TechEdに参加するほどではないけれど)VisualBasicが大好きな、
貴女はかれの目を見て、微笑みとともに質問など無視して、こう言いましょう、
「わたしが、仕様書を作ってあげる♪」
これこそまさに必殺の答えです。
そこでプログラミング大好き男が、えへへ、とやにさがったならば、
貴女は、ひそかに、「コピペ量産しやすい技術的ポイントを抑えた仕様書」あたりを
ひそかに練習しておきましょう。これで成功まちがいなしです。
しかし、ここでは、もう少しハイブロウな(?)いわゆるプログラミング好きの男の
落とし方をお伝えしましょう。
「わたしは、JVM上のScalaが好き。
型推論もあるしラムダ式やクロージャもスクリプト言語みたいに書けるの、豊富な組み込みのコレクションメソッドはいつも便利だし、
XMLリテラルもCaseクラスによるパターンマッチもTraitベースのMixi-inも、大好き♪」
もしも貴女がそう答えたならば、
かれの貴女への恋心は、
20%増量になるでしょう。
なぜって、Scalaは、
コンパイルは遅いながらも、そこがまた
ちょっぴりメモリを多く積めばいい富豪プログラミングみたいなふんいきをかもしだしていて。
質高くふるまっていて、なおかつ、
JVM上で動くくせにJavaが「やるやる」と言ったまま実装してなかったラムダ式と仮想拡張メソッド、型推論を実装した功績もあって。
したがってScalaこそは、
本来なんの接点もないまったく縁もゆかりもない別々の世界に生きている、
インタプリタ言語大好きな綺麗系OLと、玉もあれば石も混じっている、そんなプログラミング大好き男たちが、
この世界で唯一(いいえ、JVM系列のJRuby、Clojure と並んで唯三)遭遇しうる場所です。
●
では、参考までに、危険な回答を挙げておきましょう。
プログラミング大好き男に「どの言語が好き?」と訊ねられたとき、
「MicrosoftのVisual Basic for Applicationが好き♪ 週3回は Excelでコーディングするの。」
特にOfficeは平凡ながら、ま、無難にまとめてあるものの、
しかし、「新UIのリボンUI!」「メトロUI対応!」とかなんとか無意味な自慢を吹聴し、
VBAはさらにプログラミングについての謬見を撒き散らした罪がありますから、プログラミング大好き男にとっては天敵なんです。
ティーガー戦車乗りのオットー・カリウスは「ティーガー乗りなら誰でも片側の履帯がはずれ僚車に牽引されて帰ってきた経験を持つはずだ」 って言ったけど
社内SEかSIerなら誰でもクソみたいな前任者が書いたクソみたいなExcel-VBAコードを直した経験があるはずなんです。
また、もしも貴女が「PHPが大好き♪ あたしが書いたPHPのWebサイトが、さくらサーバに7件あるよ♪」
と答えたとしても、同様の効果をもたらすでしょう、
なぜって、PHPは、1990年代にはWeb系を目指す人にとっては簡単で要件を満たすWebサイトが簡単に作れる輝きの道だったものの、
しかし2000年代そうそうから、セキュリティ関係の問題で転落し、
いまや、あの貧弱な言語能力では、Rubyの魅力に遥かに及びません。
(注1)
「わたし、.NET FrameworkのC#が好き、フォームアプリでも書くけど、
最高に好きなのはASP.net♪ SQLServer連携も、ajax control toolkitもすっごくおいしいの。」
と、答えたとしたらどうでしょう?
なるほど、貴女の趣味は高く、
たしかに.NET Frameworkは、C# が cool であるのみならず、
.NET Framework上で動く F# や IronPythonやIronRuby、マネージJScriptも最高においしいんですけれど、
しかし、貴女の答えを聞いて、プログラミング大好き男はきっとおもうでしょう、
(なんだよ、MS信者な女だな、カネかかりそう)って。
(注2)
貴女が、プログラミングが大好きで、言語の名を挙げるにしても、
たとえば、JavaScript(node.js)ならば安心でしょう、
なぜならば、JavaScriptは、かけだしのプログラミング初心者にもマニアにもともに愛されるめずらしい言語で、
貴女がその名前を挙げても必ずしも、(jQueryがやっとの初心者と思われることはあっても)あなたがプログラミング言語おた宣言をしているとは受け取られないでしょう。
むしろ「へぇ。ちゃんとprototypeは使ってる?」と聞かれたら「当たり前じゃない。むしろnode.jsでいいMVCフレームワークが分からないんだけど…」と話を振ってみましょう。
男は嬉々として、30個くらいのnode.jsのフレームワークを教えてくれることでしょう。(まぁどれもどれで帯に短し襷に長しなんですが)
あるいはRighno上で動かしたコードをnodeへ移植する話とか、CoffeeScript、甚だしきはClojureScriptを振ってみてもいいかもしれません。
しかし、たとえば、世界が(つーか竹内先生とポール・グレアムが)誇る超絶関数型言語の名作、Common Lispにせよ、
selfと書きまくることと海外で使われてることに定評のあるPythonにせよ、
バージョンアップごとに言語仕様が変わり、かなり素敵なものではあるもののobsolatedな罠にはまりやすいRubyにせよ、
まったく読めない$_だらけで頭悪い仕様をリセットしてPerl6にする(そしてまた全く読めない)Perlにせよ、
気さくなクジラ飛行机さんがふるまう素敵においしい日本語プログラミング言語のひまわり・なでしこにせよ、
基地外トリッキー言語の代表BrainFxck・Glass・Missa・WhiteSpaceにせよ、
ましてや貴女が、「Haskellが大好き♪ わたし、プロジェクト・オイラーの問題もうほとんどHaskellで、解いちゃった♪」
と答えたならば、どうでしょう?
これはかなり博打な答え方で、
なるほど、Haskellは、純粋関数型でありつつも副作用のある操作が行える超絶名言語ゆえ、
あなたがそう答えた瞬間、プログラミング大好き男がいきなり超笑顔になって、
「へぇ、やっぱりHaskellなら大抵の問題は4行以内くらいで解いちゃった?」とか言いながら
鼻の下がだら~んと伸びちゃう可能性もあるにはありますが、
しかし、逆に、(なんだよ、この女、プログラミングおたくかよ)とおもわれて、どん引きされる可能性もまた大です、
なぜって、必ずしもプログラミング大好き男がプログラミング大好き女を好きになるとは、限らないですから。
男たちは、女を導き高みへ引き上げてあげることが大好きゆえ、
もしも貴女が、「Haskellが大好き♪」なんて言ってしまうと、
そこにはもはや、男が貴女に圏論のモナドを教育する余地がまったく残されていません、
したがって貴女のその答えは、
プログラミング大好き男の貴女への夢を潰してしまうことに他なりません。
ま、ざっとそんな感じです、貴女の目にはプログラマーたちはバカでスケベで鈍感に見えるでしょうが、
しかし、ああ見せて、プログラマーはプログラマーで繊細で、おざなりに扱われると傷つきやすく、ローカル変数の名前一つにも気を使い、女と自分の将来に夢を持っています、
貴女の答え方ひとつで、プログラマーの貴女への夢は大きくふくらみもすれば、
一瞬で、しぼんでしまいもするでしょう。
●
では、スキットを繰り返しましょう。
「わたしは、JVM上のScalaが好き。
型推論もあるしラムダ式やクロージャもスクリプト言語みたいに書けるの、豊富な組み込みのコレクションメソッドはいつも便利だし、
XMLリテラルもCaseクラスによるパターンマッチもTraitベースのMixi-inも、大好き♪」
そして、その瞬間、プログラミング大好き男の目がらんらんと輝いたなら、
貴女はこう重ねましょう、
「それからね、いま、わたしが使ってみたいWebアーキテクチャは、
Play Framework、素敵なリアルタイム嗜好のアーキテクチャって噂を聞いたから。
あなたのお暇なときがあったら、わたしをPlayへ連れてって♪」
これでもう完璧です。
PlayFrameworkと、Play(遊ぶ・じゃれる)のダブルミーニングでかれの股間も刺激しちゃえます。
そうなったらこっちのもの、
デートの日には、ペアプロ用に Happy Hacking Keyboard をばっちり決めて、かわいい下着をつけて(注3)、
github.comの通販で売ってるoctcatのTシャツか、facebookの「いいね!」ボタンがムネのところにあるTシャツ、 あるいは初音ミク(ないし彼のお気に入りのアニメキャラ。北米ならMyLittlePonyで鉄板なんだけど)のコスプレを着てゆきましょう。
その日から、プログラミング大好き男は貴女の虜になるでしょう。
注1:
(と、書いたもののPHPの現状をよく知りません。グローバル変数だらけになるのとか旧ASPみたいなもんなのかなぁ。count($array); とか書くのアホと思うがpythonも同じだった)
(あと、マジで単機能とかTwitter連携とか診断メーカー的なのでもPHPで7つも作ってる女子居たら付き合いたい)
注2:
もっとも。objective-Cなんていう言語をやることに比べれば個人で行う程度なら金のかからない手法もなくはないのですが。
注3:
プログラマーにとっての「かわいい下着」と、女性にとっての「かわいい下着」の定義にずれがあるので注意。
半数くらいのプログラマーはしましまぱんつが可愛いと思ってる気がするので、妙齢の女性が着用するには抵抗あると思うが、ボーダー柄のコットンショーツ(ただしキャラ絵のは除く)とか、
過度でないていどにフリルがついたものがオススメ。また、色は、レッドだとプログラミング大好き男は引いてしまう(だってそれはコンパイルエラーのときの色だ)ので、薄ピンクかホワイト、薄ブルー、せめて黒(に差し色でピンクとか)あたりに留めたい。
補記:
元ネタ: http://tabelog.com/tokyo/A1301/A130101/13002457/dtlrvwlst/3464106/
補記2:
「プログラマー」か「プログラマ」かの問題については、特に意味は無いが前者を採用した。
補記3:
言うまでも無いけど、ネタです。
建前としては2つのOSを併用しての慣れ、移行を意識したもの。デュアルブートをしてみること自体にDIY的な興味もありました。
対象は、Windows XP Home 32bitがインストールされたデスクトップPCです。
1台目のハードディスク(ディスク0)はパーティションが2分割されており、CドライブにWindowsXPがインストールされ、Dドライブはその他のデータ用です。未割当の領域は無いのでパーティション操作ツールを使ってDドライブを縮めて空きを作るつもりです。
そこにもう一つのOS/Windows7 Home Premium 64bit DSP版をインストールし、XPとのデュアルブートにします。以下、覚書です。
まずは、情報収集です。「Windows XP 7 デュアルブート」などで検索しました。
やはり公式ということでMicrosoftのウェブサイトの説明をはじめによく確認しました。http://windows.microsoft.com/ja-JP/windows7/Install-more-than-one-operating-system-multiboot
説明としては割とシンプルなもので、要はOSは古い順にインストールせよ、新しいOSを空きパーティションにインストールせよというだけのものです。
次いで移行wikiやmynavi、DOSVレポート、ITAYA氏のサイト等各所詳しい方々の記事も参考にしました。
http://news.mynavi.jp/special/2009/windows7/023.html
http://www.dosv.jp/other/0907/16.htm
http://www.geocities.jp/itaya_ys/TIPS/DualBoot/index.html
基本的に先にXPがインストールされていれば、さほど難しいこともなく7もインストールでき、起動時にブートメニューが示され「以前のバージョンのwindows」か「windows 7」のどちらを起動するか選べるようになるとのことでした。このときの既定のOSや待ち時間はWindows7のシステムのプロパティから設定できるようです。
ブートマネージャーをコマンドプロンプトで編集する方法や、EasyBCDで編集する方法も紹介されていました。
Windows7 64bitに必要なドライバをダウンロードしておきます。
マザーボードメーカーのサイトから、チップセット、LAN、サウンド、グラフィックの各ドライバをダウンロード。
Easeus to do Backup
インストール先のハードディスク(ディスク0)を丸ごとイメージバックアップします。
Easeus to do Backup 5.5でディスク0を外付けハードディスクにディスクコピー。
Mini Tool Partition Wizard 7.7でDドライブのサイズを縮める。
特に異常なさそうなことを確認。
はじめXPを起動したままインストールしようとしたが、「このインストールディスクは、お使いのバージョンのWindowsと互換性がありません。詳細については、コンピューターのシステム情報を参照してください。Windowsを新しくインストールするには、インストールディスクを使ってコンピューターを再起動(ブート)し、[新規インストール(カスタム)]を選択してください。」などとメッセージが出てきた。問答無用に上書きしようとするらしいが、32bitと64bitだし、DSP版だし、でアップグレードインストールできないのは当然。
Win7のインストールDVDを入れたままPC再起動。BIOSポスト画面でキーを押してDVDドライブからの起動を優先させる。
インストーラが起動し、インストールを進めていく。インストール先に未割当の領域を選ぶ。
その後普通にインストールを進める…はずが、うっかりインストール途中の再起動時「Press any key to boot from CD or DVD」と表示されているときにキーに触ってしまい、初めからインストールやり直しになってしまった。無駄にWindows.oldを作ることになった。
再起動やシャットダウン後の起動を行い、XP・7いずれもブートメニューから選んで問題なく起動することを確認。
チップセットドライバ、LANドライバ、サウンドドライバをインストール再起動。
.NET Framework 4.5をインストール(Radeon の新しいCatalystには4か4.5が必要。なぜドライバのユーティリティにこんな大きなランタイムめいたものが必要なのか…)
Windows 7の標準機能でシステムイメージバックアップ。起動に必要なファイルが含まれるのでXPのパーティションも一緒にバックアップされる。
XPから、Windows7のパーティションへのアクセスを不能にする。
http://www.geocities.jp/itaya_ys/TIPS/Vista/Vista05.html
XPからは容量0・空き容量0・未フォーマットのローカルディスクとして見えるようになる。(アクセス不可)
Cドライブ(XP)、Dドライブがあるので、なんとなくEドライブがWin7のシステムドライブになると思っていたが、Win7を起動したらインストールされたドライブはCに、XPのドライブはDに、DドライブだったものはEに、以下他のドライブレターも順にずれていた。
当然XPを起動したときはもとのドライブレターのまま。(Win7はE)
ディスクの先頭に約100MBのシステムパーティションが作られる、と聞いていたが今回は作られなかった。
WindowsXPのあるCドライブのbootフォルダの中に関係ファイルがあるようだ。
『「以前のバージョンのWindows」を選択実行した場合は、NTLDRが読み込まれ、BOOT.INIに複数のOSが設定されていれば、そのメニューを表示し、BOOT.INIに1つのOSしか設定されていない場合は、すぐにそのOSが起動します。』(http://www.geocities.jp/itaya_ys/TIPS/DualBoot/index.html)
なるほど。たとえば、XPと2000がインストールされている場合、以前のバージョンの...を選んだら、XPと2000のどちらを起動するかメニューが表示される、と。
プログラムはclassに記述します。たとえばSampleという名前のclassを作る場合、Sample.csファイル内に次のように書きます。(C#の場合、ファイル名とクラス名は同一でなくても良い。複数のクラスを書いても良い)
public class Sample { }
プログラムはclass内のMainメソッドの先頭から実行されます。Mainメソッドは次のように書きます。
public class Sample { public static void Main( String[] args ) { // 処理を書く } }
Console.WriteLine( "Hello world" );
コメントです。
// 一行コメント /* 複数行コメント */
// 変数 int num;
データ型です。C#のデータ型には値型と参照型とがあります。以下は値型のデータ型です。
// int(整数)型 int num; // char(文字)型 char c; // float(単精度浮動小数点)型 float val; // double(倍精度浮動小数点)型 double val; // bool(論理)型 bool flag; // DateTime(日付)型 DateTime date;
以下は参照型のデータ型です。
// String型 String s; // 配列型 String[] array;
プログラムをコンパイルするには、コマンドラインで以下のようにします。
csc Sample.cs
プログラムを実行するには、コマンドラインで以下のようにします。
Sample.exe
mono ./Sample.exe
int、float、double型の変数に数値を代入できます。int型には整数だけ代入できます。float、double型には整数でも小数でも代入できます。
int i = 2; int i = 100000000; float num = 1.234f; double num = 1.234;
四則演算です。
num = 1 + 1; num = 1 - 1; num = 1 * 2; num = 1 / 2;
商の求め方です。割る数と割られる数が両方とも整数の場合、計算結果の小数点以下が切り捨てられます。
num = 1 / 2; // 0
割る数と割られる数のどちらかが小数の場合、計算結果の小数点以下が切り捨てられません。
num = 1.0 / 2; // 0.5 num = 1 / 2.0; // 0.5 num = 1.0 / 2.0; // 0.5
余りの求め方です。
// 余り mod = 4 % 2
インクリメントとデクリメントです。
// インクリメント ++i; // デクリメント --i;
String str = "abc";
// 結合 String join = "aaa" + "bbb"; // 分割 String[] record = "aaa,bbb,ccc".Split( "," ); // 長さ int length = "abcdef".Length(); // 切り出し "abcd".Substring( 0, 2 ) // abc // 検索 int result = "abcd".IndexOf( "cd" ) // 見つかった場合はその位置、見つからなかった場合は-1が返る
配列です。
// 配列の宣言 int[] array;
配列の生成です。配列の生成時には要素数を指定するか、初期データを指定します。
int[] array; // 要素数を指定して配列を生成 array = new int[5]; // 初期データを指定して配列を生成 array = new int[] { 1, 2, 3 }; // 宣言と同時に配列を生成 int[] array2 = new int[5];
配列の要素の参照と代入です。
// 要素の参照 array[0] array[1] // 要素の代入 array[0] = 1; array[1] = 2;
array_num = array.Length;
int[] from = new int[] { 1, 2, 3 }; int[] to = new int[5]; from.CopyTo(to, 0);
if文です。
if ( 条件 ) { }
if ~ else文です。
if ( 条件 ) { } else { }
if ~ else if文です。
if ( 条件 ) { } else if ( 条件 ) { }
while文です。
int i = 0; while ( i < 5 ) { // 処理 ++i; }
for文です。
for ( int i = 0; i < 5; ++i ) { // 処理 }
int[] fields = new int[] { 1, 2, 3 }; foreach (int field in fields) { // 処理 }
C#では関数をメソッドと言います。メソッドを作るには次のようにします。戻り値を返却するにはreturn文を使います。
static int sum( int num1, int num2 ) { int total; total = num1 + num2; return total; }
ファイル入出力です。ファイル入出力を行うには、プログラムの先頭に以下を記述します。
using System.IO;
以下がファイル入力の雛形になります。ファイルのオープンや読み込みに失敗した場合、catch節に処理が移ります。
String filename = "text.txt"; StreamReader reader = null; try { reader = new StreamReader(filename); String line; while ((line = reader.ReadLine()) != null) { } } catch (IOException e) { // エラー処理: } finally { if (reader != null) { try { reader.Close(); } catch (IOException e) { } } }
またはC#ではusing ステートメントと言うものがあり、この様にも書ける
String filename = "text.txt"; using (StreamReader reader = new StreamReader(filename)) { try { String line; while ((line = reader.ReadLine()) != null) { // 読み込んだ行を処理 } } catch (IOException e) { // エラー処理: } }
usingをつかうとCloseがなくなったことからわかるようにusing(){}を抜けるときに自動的にDisposeメソッドを呼び出し、オブジェクトを廃棄する。その分コードがスッキリするが、使いにくい場面もあるので考えて使うこと。
以下がファイル出力の雛形になります。ファイルのオープンや書き込みに失敗した場合、catch節に処理が移ります。
String filename = "text.txt"; StreamWriter writer = null; try { writer = new StreamWriter(filename)); writer.WriteLine("abc"); writer.WriteLine("def"); writer.WriteLine("fgh"); } catch (IOException e) { // エラー処理: } finally { if (writer != null) { writer.Close(); } }
こちらもusingを使って書ける。が、割愛する。
C#でよく出てくる知っておいたほうがよい文法の一覧です。
繰り返し文の途中で抜けるにはbreak文を使用します。
for ( i = 0; i < 5; ++i ) { if ( 条件 ) { break; // 条件を満たす場合、for文を抜ける。 } }
残りの部分処理をスキップし、次の繰り返しに進むにはcontinue文を使用します。
for ( i = 0; i < 5; ++i ) { if ( 条件 ) { continue; // 条件を満たす場合、残りの部分処理をスキップし、次の繰り返しに進む。 } }
例外を投げるにはthrow文を使用します。
throw new Exception( "Error messsage" );
try { // 例外が発生する可能性のある処理 } catch ( Exception e ) { // 例外発生時の処理 }
DBってこんなもんか...と思ってたけど、インストーラのヘコさにあきれまくる。
その後 Microsoft SQL Server 2000 の手軽さを知って、こちらにどっぷり。
で、ずっとSQL Server。
そこそこの使い方ならどっちのDBも十分使える上に、Oracleは「くだらない」お作法が大杉。(Oracle Master の為?)
クエリー実行計画が図解でわかりやすい、バックアップやアタッチが超楽。
サポート(修正パッチなど)も料金込みのMSのほうがトータルで安価だし、CubeやReporting Serviceなどもコミコミで使える。
多言語関係もMS SQL Server のほうが良くできてる。
SQL Server のStandard Editionだけでなく、無償版であるExpress Edition も使っているが、
残念ながらこれは外部のPCから接続できない制限がある(はず)。
同じく無償版のOracle DB 11g Expressがあるが、こっちでは他のPCから接続できた。
Universal Installer は相変わらずjavaでできてるからかUIヘコいけど、
「くだならい」設定項目がだいぶ減って楽ちんでインストール完了。時代は進化した。
.NET Framework(OLE DB)で外部からのPC接続もホスト名、ユーザー名、パスワードを接続文字列で指定するだけで、あっさりOK。
tnsnames.oraとかいじることはもう無くてよいのだろう。
俺が知らないだけなのかもしれないが
.Net Framework 3.5や4をインストールしようとすると
必ずネットから最新版をダウンロードor最新版の確認をしようとする。
もしくはとても不安定。経験上、たまたまではなくていつもそう。
まるでマイクロソフトは.NET Frameworkを使ってほしくないみたい。
こいつ1つセットアップするために、もう30分待っている。
ちなみに
仕事も進まんし、段どりがくずれて萎えさせられるし、個人的にも腹立たしいわ。
わりとすぐにインストール完了できた。
今だに2MB/73MB。
「転送速度は0kB/秒です」「500kB/秒です」「接続を初期化しています」を繰り返す。
なので、2.0のFull版に切り替えることにする。
.NET Framework 4で標準搭載になったの?
日本人と食事する機会があって、話してたら英語圏への愚痴がおおくて苦笑いした
たしかになぁと思う部分をここに書く
要約すると
英語圏の開発者は、とにかく私的で内輪ネタを好む。そして後先を考えない。
というお話なんだけど
この前、Unix特有の言葉の語源のことをその人も知ってたんだけど
元ネタはウィーザードリーっていう海外発のゲームだと知って苦笑いしてた。
幼稚だなって言ってた。個人ならともかく企業やまとまな開発者がやる事じゃないと。
そのひとが渡米したのは、もともとはソフトウェア開発のためなんだけど
アメリカでの開発で一番困ったのは、その場のことしか考えない開発体制と方針だそうだ
とくに怒ってたのは、ファイル名を入れたり選択したり表示する画面があるんだが
日本の人からすれば、マルチバイト文字の名前もあたりまえのようにあるから、考慮してくれればいいのに
アメリカの開発者達は当たり前のようにASCIIだけにしようとしている
「ローカライズするときにかえればいいよ」と返してきて困ったそうだ
「後でかえるくらいなら、今かえればいいじゃないか」といってもアメリカの開発者は聞かないそうだ。
将来は海外でも発表するソフトなのにマルチバイト圏の分かる人の指示を聞こうとしない
俺に一言聞けばいいのに・・って言ってた。
当然、世界で発売するときにはかなり根っこのプログラムから変えなければいけない事になる。
こんな事が何十回もあったそうだ
web向けフレームワークや Windows なら.NET Frameworkの普及で、UNICODEを意識するようになってこういう事例は少しは減ったらしいが、
企業やグループのイメージに関わるのに、なんでこんな事を平気でするんだって不思議がってた。
欧米人はとくに家庭や身内にたいしてはギチギチにルールを強制するけど
ちょっと外に出たら、こんなにゆるい国はないという
googleストリートビューの問題で、プライバシーの問題が起こったけど
アメリカでは外で平気でキスやセックスしてるくせにプライバシーの侵害とかいうのはおかしいと怒ってた
(日本だからといわず外で性行為は下品だからと禁止だったりするのが普通らしい。
自分のための覚え書き。知ってる人からすれば全然当たり前のことかも…
IIS上で、Visual Studio 2008で開発したASP.NETなWebサイトを動かす時に、SQLiteを使う方法
IISの動作しているマシンに「SQLite for ADO.NET 2.0」をインストール。
それだけで良いと思ったけれど、以下のエラーが発生。
ArgumentException: 要求された .Net Framework データ プロバイダが見つかりません。これは、インストールされていない可能性があります。
いろいろ調べたら、手動でmachine.configを書き換える必要があるみたい。
<system.data> <DbProviderFactories> <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.61.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> </DbProviderFactories> </system.data>
無事に動くようになりました。