SyntaxHighlighter2.0

| コメント(0)

2.0になって使い方が変わってます。

サイトもGoogle Codeから変わってます。

 

最新版はこちらからダウンロードできます。
http://alexgorbatchev.com/wiki/SyntaxHighlighter

大きな変更点は、

configおよびdefault

の設定が追加されたこと。

textareaもしくはpreで記述可能でしたが、configにてタグの指定を行います。ちなみに、preがデフォルト。

また、表示スタイルはテーマから選びます。

以下、対応コード表です。(http://alexgorbatchev.com/wiki/SyntaxHighlighter:Brushes

Brush nameBrush aliasesFile name
ActionScript3as3, actionscript3shBrushAS3.js
Bash/shellbash, shellshBrushBash.js
C#c-sharp, csharpshBrushCSharp.js
C++cpp, cshBrushCpp.js
CSScssshBrushCss.js
Delphidelphi, pas, pascalshBrushDelphi.js
Diffdiff, patchshBrushDiff.js
GroovygroovyshBrushGroovy.js
JavaScriptjs, jscript, javascriptshBrushJScript.js
JavajavashBrushJava.js
JavaFXjfx, javafxshBrushJavaFX.js
Perlperl, plshBrushPerl.js
PHPphpshBrushPhp.js
Plain Textplain, textshBrushPlain.js
PowerShellps, powershellshBrushPowerShell.js
Pythonpy, pythonshBrushPython.js
Rubyrails, ror, rubyshBrushRuby.js
ScalascalashBrushScala.js
SQLsqlshBrushSql.js
Visual Basicvb, vbnetshBrushVb.js
XMLxml, xhtml, xslt, html, xhtmlshBrushXml.js

マクロメディア、現在のadobeの Dreamweaverでビエイビアでウィンドウオープンを作ると以下の通りになります。

function MM_openBrWindow(theURL,winName,features) { 
    //v2.0
    window.open(theURL,winName,features);}

これだと2回目のオープン時に、同じwinNameだとウィンドウが前面に出てきません。そのため、すでに開いているか確認して、開いていたならば、オープン、そうでなければ、そのwindowをアクティブにすればいいと思って調べていましたが、そんなことしなくてもいいんですね。ごく簡単に解決しました。以下のコード。単純にフォーカスすればいいだけですね。

function MM_openBrWindow(theURL,winName,features) { 
    //v2.0
    var win = window.open(theURL,winName,features);
    win.focus();
}

 

そもそもExcelでhtmlを出力するのに文字コードが指定できるとは思っていなかったわけで。。。

Excel 2007ですが、名前を付けて保存でWebページで保存をするときにはチェックしておくとよいです。

Excel 2007 「名前を付けて保存」画面の左下「ツール」から「Web オプション」を選択します。

excelWebpotion2.png

Microsoft SQL Server 2005からだったか、INSERTED.(フィールド名)というのが使えるようになっています。

IDENTITYの項目名がidとします。 下記のSQLを実行します。

                        INSERT INTO table_name(hogehoge) 
                        OUTPUT INSERTED.id 
                        VALUE ('hogehoge')

INSERT文によって生成されたidが取得できます。

C#(.NET)でMSSQL Serverを使うときは、SELECTと同じように扱って、値idを取得できます。

MSSQLでも2000までは、以下のIDENT_CURRENT@@IDENTITYSCOPE_IDENTITYというものを知らないといけなかったんですが、新しいバージョンだと不要です。


Transact-SQL リファレンス IDENT_CURRENT

  • IDENT_CURRENT は、任意のセッションと有効範囲内の特定のテーブルに対して生成された最後の ID 値を返します。 
  • @@IDENTITY は、すべての有効範囲を対象に、現在のセッション内の任意のテーブルに対して生成された最後の ID 値を返します。
  • SCOPE_IDENTITY は、現在のセッションと現在の有効範囲内の任意のテーブルに対して生成された最後の ID 値を返します。

 

Microsoft SQL Server 2005にて。

自動でインクリメントする項目は、IDENTITYで設定できるが、1テーブルには1つしかありません。

そこで、そのほかに自動でインクリメントする項目がほしかった場合は、どのようにするのか、調べてみました。

 わりと簡単にMAX+1とかでいいじゃん、って思ったりもしましたが、レコードが0件の時は、成立しません。

0件の時は、初期値がほしいわけです。

それを解決するのが「COALESCE」。

取得した値がnullだったら、○を返す、というようなもの。

すばらしいです。これで、IDENTITYなんか怖くない。ちなみに、COALESCEは、MySQLにもあります。そのほかのDBにもあるとおもいます。

INSERT INTO table_name(id)
SELECT COALESCE(MAX(id)+1,1)
FROM table_name

MSSQL Serverで.NET2.0の場合

ちょっとだけ簡単になってます。

command.Parameters.Add(new SqlParameter("@data",data));

これが、

command.Parameters.AddWithValue("@data", data);
 

こう書けます。

addWithValue()

ちょこっと便利。

真偽(true/false)の定義

| コメント(0)

C言語、アセンブラあたりから学んだコンピュータ言語なんですが、

今更ながら、当たり前だと思っていた、「真」「偽」の定義が、昨今の高級言語の登場で、異なった定義もでてきたようです。

そこで、調べていたのですが、ちゃっかりと、しかも、ほぼ、同時期に同じ思いをした人がいたようで、まとめページがありましたのでそちらを紹介します。

http://d.hatena.ne.jp/mirakui/20090604/truefalse
(mirakuiさんのブログ「床のトルストイ、ゲイとするとのこと」より)

  1. C言語
    1. C言語には bool 型が無い。0 (int)だけが偽となり、それ以外はすべて真となる。

  2. C++

    1. C++になると bool 型が出てくる。C と同様に、 0 が偽でそれ以外が真となるが、bool 型リテラル false は 0 として評価されるため、偽となる。0 (int) false が偽となり、それ以外が真となる。
       

  3. Java

    1. false のみが偽となり、true のみが真となる。Javaではこれら以外の値が真偽値に暗黙的に変換されたりはしない。

  4. JavaScript (ECMA-262)

    1. false(偽)になるものは下記のみ。

      1. false

      2. undefined

      3. null

      4. +0,

      5. -0,

      6. NaN

      7. "" (空文字)

    2. これら以外は真として扱われる。Objectは全部真になる。なので空配列なども真。

  5. Ruby

    1. Ruby はシンプル。false nil の二つ以外はすべて真として扱われる。
      Ruby の面白いのは、Boolean というクラスは無く、 true と false はそれぞれ TrueClass と FalseClass というクラスのインスタンスである。
       

  6. PHP

    1. PHP は複雑。以下のものが偽となり、これら以外はすべて真となる。(PHP: 論理型 (boolean) - Manualから抜粋)

      1. boolean の FALSE

      2. integer の 0 (ゼロ)

      3. float の 0.0 (ゼロ)

      4. 空の文字列、 および文字列の "0"

      5. 要素の数がゼロである 配列

      6. メンバ変数の数がゼロである オブジェクト (PHP 4のみ)

      7. 特別な値 NULL (値がセットされていない変数を含む)

      8. 空のタグから作成された SimpleXML オブジェクト
         

 

「silverlightが動きません!」

silverlightをwebサーバ(IIS)に配置して、ブラウザで確認。

すると、エラー。「Unhandled Error in Silverlight 2 Application」とメッセージ。

そのままその文字でGoogle検索すると、すぐに参考になるサイトがありました。

しげのメモ帳Silverlightのサイト構築時の注意点とありました。

MIMEタイプが設定されていないってことでした。そういえば、silverlightのファイル拡張子が「.xap」とお初でしたので、そういわれるとそうだなと思いました。

 

で、IISで

「.xap    application/octet-stream」とMIME TYPEを設定したところ、動作しました。

MIME-TYPEで解決した、ということは、きっとapache上でもMIME-TYPE追加で使えるのかなとおもいつつも、試してません(^^ゞ

 

DatesliderとPrototype.js

| コメント(0)

Datasliderという日付をドラッグで選択可能なフルjavascriptライブラリがあります。
http://www.ajaxorized.com/

datasliderプロジェクトのページはこちら
http://code.google.com/p/dateslider/

いまのところだれもコメントはありませんが、IE7において、スクリプトエラーがでまくることがあります。

左のスライドを右、もしくは、右のスライドを左に移動させた時に、両方のスライドバーが重なったときにエラーが表示されます。これは、どうやら、スタイルシートにたいして、width:-1pxといったように、マイナスの数字をあたえているのが原因のようです。これは、エラーとなりますが、prototype.jsでは、これを感知してません。

そのため、dataslider.jsでマイナスがセットされないように修正して対応しました。

dateslider.jsの210行あたりから139行目あたり(_rightDragと_leftDrag) 

_rightDrag : function () {
l_panelLength = $('righthandle').offsetLeft - $('lefthandle').offsetLeft - 5;
/*$('shiftpanel').setStyle({width : (l_panelLength+2*sliderReference.sliderBarMargin)+'px'});*/
if((l_panelLength+2*sliderReference.sliderBarMargin) >= 0){
$('shiftpanel').setStyle({width : (l_panelLength+2*sliderReference.sliderBarMargin)+'px'});
}else{
$('shiftpanel').setStyle({width : '0px'});
}
sliderReference._setDates();
},
_leftDrag : function() {
l_panelLength = $('righthandle').offsetLeft - $('lefthandle').offsetLeft - 4;
/*$('shiftpanel').setStyle({left: ($('lefthandle').offsetLeft+4)+'px', width : l_panelLength+'px'});*/
if(($('lefthandle').offsetLeft+4) >= 0 ){
$('shiftpanel').setStyle({left: ($('lefthandle').offsetLeft+4)+'px', width : l_panelLength+'px'});
}else{
$('shiftpanel').setStyle({left: '0px', width : l_panelLength+'px'});
}
sliderReference._setDates();
},

JavascriptのデバッグはFirefoxでやってましたが、IEでのみ発生する現象でありかつ、利用しているライブラリ内らしい、ということで、デバッグがかなり困難になってました。そこで、検索すると、意外とありますね。下記サイトがベストアンサーでした。ちなみに、「Prototype」(javascriptライブラリ)のIEにおいての動作不良によるものでした。最新のPrototypeでも解消されてません。

http://labs.gmo.jp/blog/ku/2007/03/iejavascript.html

ScriptEditorでの例ですが、私の場合は、VisualStudioで行いました。

ポイントは、IEのインターネットオプションでの設定部分と、VisualStudioにおいて、プロセスにアタッチです。

プロセスにアタッチを初めて使いました

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

アイテム

  • excelWebpotion2.png

ウェブページ

Powered by Movable Type 5.01

にほんブログ村

にほんブログ村 IT技術ブログへ
にほんブログ村