プログラマはもう要らない:自動コーディングツールGeneXus(ジェネクサス)

南米発のツールがIT業界に与えるインパクト

http://itpro.nikkeibp.co.jp/article/Watcher/20101001/352528/
「プログラマはもう要らない」。大手物流会社のシステム子会社で新技術の社内展開を進めるマネージャーはこう言い切る。ここでいうプログラマとは、企業情報システムの開発プロジェクトでプログラムを作成する担当者を指す。ある開発ツールを検証したところ、こうした役割の要員は不要との結論に至ったというのだ。



 このマネージャーは記者に対して、ツールを導入した場合の効果をこう語る。「様々な開発言語を知っていて、バグのないソースコードを24時間、延々と高速で書き続ける。そんなスーパープログラマを雇ったのと同じ効果が得られる」。



 同社が検証したのは「GeneXus(ジェネクサス)」という開発ツールである。ご存知の方はまだ多くないかもしれない。一口に言えば、アプリケーションの自動生成ツールである。データ項目や画面、業務ルールといった設計情報をGeneXusの表記法で入力すると、ソースコードとテーブル定義情報を自動生成する機能を備える。



「以前のCASEツールとは違う」



 GeneXusは南米生まれのツールである。ウルグアイのITベンダーであるアルテッチが1989年にバージョン1を開発した。バージョン2で、ソースコードとテーブル定義情報を開発者が一切記述しないという意味での「100%自動生成」を達成。以降、手作業の開発に比べて20倍の生産性となるようにバージョンアップを重ねている。最新バージョンは「X(テン)」だ。



 このGeneXusが今、日本で広まり始めている。導入実績はすでに100社を超えた。2010年7月にドトールコーヒーが店舗向け食材の受発注システムをGeneXusで刷新するなど、基幹系システムでの導入も増えている。



 ここまで読んで、思わず眉をひそめる読者も少なくないだろう。コードを自動生成、ましてやそれが100%となると「本当か?」と疑問に思うのが普通の感覚ではないか。過去にも、その手の効果をうたった製品は多数存在した。



 前職がSEの記者も同じ気持ちだった。CASEツールの自動生成機能を結局、使いこなせなかった経験がよみがえり、「まゆつばではないか」と思っていた。



 そこで、GeneXusを使っているユーザーや検討中のユーザー、GeneXusでシステム開発を受託するITベンダーに直接取材し、素直に疑問をぶつけた。すると、ほとんどの取材先が「最初は信用していなかった」と打ち明けた。一方で各社は「検証してみると、確かにアプリケーションを自動生成できる。今までとは違うと実感した」と口をそろえた。

ひぇぇ~

すげぇ~

対応する言語は「JavaとC#、Rubyの三つ」だそうです。

しかし、当然と言っちゃあ当然ですが、

「GeneXusは開発者一人当たりのライセンスが約250万円で、年間保守料金は約550万円という。」

うへ。

たけぇぇぇ。

「このコストで、GeneXus並みに言語を扱え、影響分析ができるプログラマは雇えない」

とはいえ、分業化がかなり進んでいる開発部隊ならいざ知らず、それ純粋なコーディング&テスト以外の部分にマンパワーを充当できる点を考えると、一概にそうも言えないんじゃないかと思いますけれど。

って考えると、いままで高給をふんだくっていた前時代的な大手SIerのプログラマが一掃されて、それにぶら下がっていた、下請け大手PG会社が食いっぱぐれるのは間違いないですが、それ以下の中小ソフトウェエア企業に発注されていた、細かい仕事だったり、フレキシブルな働き方は残るとおもうんですよね。

たとえば、小振りなWEBアプリをデザイン込みでシコシコ作っているような会社だったり、中小企業の生産管理ツールを御用聞きしながら作って、メンテしているような会社だったりは、この自動コーディングツールの影響はあんまり無いんじゃないかと思うのですよ。そういう会社はGeneXusみたいな高額投資はしないだろうし。

ただ、SEの端くれとしてこのツール触ってみたいわ。

どこまでプログラム書いてくれるんやろ?

「今までとは違うと実感した」と言わしめたその実力を見せてもらおうか!!



【追記】

前ブログのコメントで以下の通りご指摘いただきました。

感謝っす。

当転載ですが、日経BPさんの当初記事の誤植がそのままになっています。

年間保守料金が一桁間違っています。



(誤)~年間保守料金は約550万円という。

(正)~年間保守料金は約55万円という。

なるほど、保守料金は現実的な金額なわけだ。

でも1ライセンス(開発者一人)あたり250万円ってのはそのままのわけね。

まぁGISソフトウェアで一本1000万とかいう基地外じみた価格ではないけど、

お高いことに変わりないなぁ・・・




RUNASコマンドでパスワードを自動入力するVBScript(WSH)

VISTAとかWindows7とかで管理者権限でインストーラなどのEXEを実行しなきゃいけないとき、RUNASコマンドを使うのが一般的だが、このコマンドはパスワードを手入力する仕様になっている。これを自動化してパスワードを自動入力させたい。そのためのVBScript(WSH)サンプルだ。

仕組みは、SendKeysメソッドを使って、コマンドプロンプト画面にパスワードを挿入している。したがって、スクリプト実行直後にコマンドプロンプト画面を消されたりすると、処理に失敗する可能性がある。あしからず。

なお、VISTAとかWindows7とかでは、管理者権限でEXE実行してもUACには引っかかるからそのつもりで。

SQL Server 2005からSQL Server 2000へのDB移設

SQL Server 2005のDBをバックアップして、SQL Server 2000に復元しようとすると以下のようなエラーがでます。

—————————

Microsoft SQL-DMO (ODBC SQLState: 42000)

—————————

エラー 3241: デバイス ‘D:\********.bak’ のメディア ファミリが正しい形式ではありません。SQL Server はこのメディア ファミリを処理できません。RESTORE FILELIST が異常終了しました。

—————————

どうやらこれを解消する方法(バックアップファイルを何とかしてSQL Server 2000で読み込む方法)はないっぽい。

すなおにSQL Server 2005に復元して、“Microsoft SQL Server Database Publishing Wizard”でSQL Server 2000形式に吐きなおすしかないらしい。

方法は↓を参照。

SQL Server 2005 の DB を 2000 にエクスポートする方法

http://d.hatena.ne.jp/fyts/20070724/downgrade

しかしだ、バックアップファイルの容量が500MBくらいのDBを“Microsoft SQL Server Database Publishing Wizard”でパブリッシュしたところ、1.3GBって・・・・

CentOS で chkconfig が使えない。

Linux の chkconfig コマンドを使うと

bash: chkconfig: command not found

というエラーが出てしまう場合。

http://fedorasrv.com/bbshtml/webpatio/1200.shtml

Re: chkconfigが使えない。。(№4)

日時: 2005/06/24 07:32

名前: 43歳おやじ



一般ユーザーからのRootのなり方に問題ありませんか?

以前、間違っている方がおりまして

[zman@linux] su –

ではなく

[zman@linux] su

としてコマンドが有りませんと困っていた方がおりましたが

それと関係ないでしょうか?

あくまでも、憶測です。

が有効です。「su -」ってなんじゃらほい?という場合は
↓↓↓の通りですよ。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1313297558

su コマンド実行前のユーザーアカウントの操作環境(シェルの種類や環境変数、ホームディレクトリ等)をそのまま “root” に引き継ぐか、それとも “root” に設定されている操作環境を用いるか、という違いがあります。



例)

■”su”の場合

[user@localhost user]$ su

Password: ”root”のパスワードを入力

[root@localhost user]#



※ホームディレクトリが user のまま → 操作環境を引き継ぐ



■”su-“の場合 → 引き継がない

[user@localhost user]$ su

Password: ”root”のパスワードを入力

[root@localhost root]#



※ホームディレクトリが root に変更された → rootの操作環境を用いる





ここにもっと詳しいことが書いてあります。

http://www.obenri.com/_command/su01.html



「どういうときに su – を使うのか?」と聞かれると、上述した内容や、上記サイトに書いてあるような時としか答えようがないのですが、使い分けについてはあまり気にしなくていいと思います。ちなみに私は “su ‐”使いません。。。

だそうです。

おれは「su -」で解決しましたよ。

それでも動かなければ

#/sbin/chkconfig



と、フルパスを指定して打ってみてはどうでしょうか。

これでもだめなら何らかの理由で chkconfigコマンドが無くなってしまった

ように見えます。

で解決できるとおもいますよ。

MySQLの自動バックアップ(Windowsのタスクで自動バックアップ)

MySQLの自動バックアップ(Windowsのタスクで自動バックアップ)の覚書。

ちなみにWindowsでの話ね。

以下のようにバッチを書く。

パス部分は環境に合わせて適宜修正のこと。

として、タスクで自動実行させる。
っとすると、こんな感じにバックアップされる。

MySQL_BackUP




Request オブジェクト エラー ‘ASP 0104 : 80004005’ 操作は許可されません

レガシーASPで作った掲示板アプリを WindowsServer2003+IIS6.0 で駆動させていたら、こんなエラーがでた。
どうやら、ちょっと大きめのファイルを添付すると起きる模様。

Request オブジェクト エラー ‘ASP 0104 : 80004005’
操作は許可されません
/******/******.asp, 行 67

ソースはこんなところでエラーってる。

RBytes=Request.TotalBytes
RBR=Request.BinaryRead(RBytes)

さっそく、ぐーぐる先生に質問してみた。

■[IIS]「Request オブジェクト エラー ‘ASP 0104 : 80004005’ 操作は許可されません」って何者?
http://d.hatena.ne.jp/babydaemons/20080617/1213697100

WindowsServer2003+IIS6.0 の組合せの場合はデフォルトではファイルのアップロードは 200KB が上限となっており、上限を超えた場合、
Request オブジェクト エラー ‘ASP 0104 : 80004005’ 操作は許可されません 」
というエラーが発生してしまう。

だとさ。

先のページではMetaBase.xmlを書き換えるように書いてあるが、IISが動いている最中では書き換えが出来なかった。どうもIISがMetaBase.xmlをオープンしっぱなしらしい。Unixだとvi /etc/hogehoged.confしてkill -HUP `cat /var/run/hogehoged.pid`なのでサービス停止はほんの一瞬なのに。orz

fmfm
MetaBase.xml なるものを書き換えりゃいいわけだ。

↑の人は adsutil.vbs なる管理スクリプトを使用しているが、こちとらIIS止めるのに何の躊躇もねぇ。はい停止。おつかれさん。んで MetaBase.xml はどこにあるってぇ~っと、

C:\WINDOWS\system32\inetsrv

ここだ。開くと・・・・
えれぇたくさんパラメータがあるが、

AspMaxRequestEntityAllowed=”204800″

ここを書き換えろとさ。
さすがに204KBは少なすぎるので、20MBぐらいは許可したろ。
イントラのシステムだから問題ないやろ(うわ、てきと~)。
はい書き換え完了。

テストしたら無事動きましたとさ。
めでたしめでたし。
 
 

ちなみにこういう記事もありました。
Windows2003+IIS6のアップロードの最大値は200KB・・・

Windows 2003+IIS6のデフォルト設定では、アップロードの最大値は 200KBに制限されています。
これを変更するには:
%windir%\system32\inetsrv\MeataBase.xml ファイルのAspMaxRequestEntityAllowedパラメータを変更します。
AspMaxRequestEntityAllowed=”204800″ … デフォルト値は、200KB

しかし、ここで問題が・・・
現在動いているサイトを停止しないといけない・・・
そうしないとIISがこのXMLファイルを握って変更できない・・・

どうにか、止めてもらって、対応はできた・・・
最大値は1073741824Byteらしい・・・

Windows + IIS + PHP をFastCGIで動かしたくなっちゃう件

世の中では Linux + Apache + MySQL + PHP が主流なんですってね。
知りませんでしたわ、オホホホホ。

Linuxってさぁ、メンドクサイんだよね。
Apacheってさぁ、メンドクサイんだよね。
ってことで、Windows + IIS にするわ。
よろしくね。

んでだ、

PHPを駆動させる時、ISAPIをつかうよりFastCGIで駆動したほうが高速とのこと。
理屈は勝手にググレカス。
ほんならFastCGIの導入逝きます。

■STEP1)
FastCGIを↓からDL

 ・ FastCGI for IIS7
 ・ FastCGI for IIS6

■STEP2)
インストーラからインストール

※いまキャプってるからまっとれ

■STEP3)
「C:\WINDOWS\system32\inetsrv\fcgiext.ini」 の
最下部に以下の設定を追加

※赤字部分は適宜変更のこと

[Types]
php=App01
[App01]
ExePath=C:\PHP\php-cgi.exe
QUEUELength=1001
MaxInstances=20
IdleTimeout=200
ActivityTimeout=20
RequestTimeout=600
InstanceMaxRequests=1000
IgnoreExistingDirectories=n


■STEP4)
IISの設定

・PHP拡張子のマッピングの設定
FastCGI_INSTALL_01

・WEBサービス拡張の設定
FastCGI_INSTALL_02

■STEP5)
確認してみる。

適当にPHPファイルを読み込んでみて、無事に表示されればOK。

■参考サイト&その他)

http://labs.progfast.jp/index.php/arts/wordpress-by-fastcgi-for-iis/

※ちなみに、ISAPIでPHPを駆動させる場合はIISマップ設定で「php5isapi.dll」を呼んでやればOK。これもメンドクサイから詳しく知りたいやつは勝手にググレカス。
 
 

MySQL 再インストール時のエラー「Could not start the service MySQL」

MySQL 5.1.34 をインストールしていて、
インストール一番最後のサービス起動の部分でコケて、
再インストールを何回かしてハマッタのでうp。

MySQL-ERROR
↑この画面で

「Could not start the service MySQL」となってインストールが完了しなかった。

結論。

これしたら直った。

  • コマンドプロンプトからサービスの削除(”C:Program Files\MySQL\MySQL Server5.1\bin\”mysqld -remove [サービス名])
  • プログラムの追加と削除(アンインストール)
  • my.iniの検索(あれば削除)
  • 環境変数(MySQL)の削除
  • Cドライブのクリーンアップ
  • C:WINDOWS\Prefetch\の中のMYSQLD.EXE-15857137.pfとMYSQLINSTANCECONFIG.EXE-2EBFA1E3.pfを手動で削除
  • Cドライブの隠しファイルの中の(C:Document and Settings/AllUsers/Application Data/MySQL)を削除
  • 再起動

ん~どうやら、はじめはサービス名が重複していて、コケた。
つぎは「C:Document and Settings/AllUsers/Application Data/MySQL」にインストールのごみが残っていて、認証でコケタ様子。

なんとも・・・・アンニュイなアプリだこと・・・・

追記(2009/8/13):

上記に加えて↓もやったほうが良いとコメントをもらいました。

stranger 氏 感謝でございます。

  • アンチウイルスソフトを一旦オフ&XPのファイアウォールをオフしておく。
  • 改めてインストールするときに DATA files の場所を任意の場所に指定してインストールする。

(c:/documents and settings/all users/application data~じゃなくて、C:\MySQL\FileDATAなどに) これはDATA filesのところをクリックするとパスが変えられます。

元ネタ(英語):http://forums.mysql.com/read.php?11,75104,255118#msg-255118