Posts Tagged ‘ code

Firefox 2.0.0.7 released

firefox-title.pngDie Mozilla-Foundation hat eine neue Firefox-Version veröffentlicht. Die Version 2.0.0.7 ist ein Sicherheitsupdate – oder wie es die Mozilla-Entwickler ausdrücken “Security firedrill” – und behebt einen in der vergangenen Woche bekannt gewordenen Bug im Quicktime-Plugin, welcher zum Einschleusen von Schadcode verwendet werden konnte.

Der neue Firefox ist ab sofort über das automatische inkrementelle Update verfügbar oder kann von den Servern der Mozilla-Foundation in diversen Sprachversionen heruntergeladen werden. Weitere Informationen zum Update finden sich wie immer in den ReleaseNotes sowie im wiki.

Suchen und Ersetzen in MSSQL

Will man in einer SQL-Tabelle Werte ersetzen, so ist dieses ja eigentlich sehr einfach und lässt sich, sofern nur der Wert selber im entsprechenden Feld steht, über eine simple UPDATE-Query erledigen.

Etwas komplexer wird die ganze Angelegenheit, wenn man, z.B. weil sich z.B. ein Produktname aber nicht die Bezeichnung geändert hat, nur ein Wort in einem Feld austauschen muss.

Lösen lässt sich das über eine kleine SQL Abfrage:

DECLARE @suchen varchar (255)
DECLARE @ersetzen varchar (255)
DECLARE @findus varchar (255)

SELECT @suchen = ‘Altername’
SELECT @ersetzen  = ‘Neuername’
SELECT @findus = ‘%’ + @suchen + ‘%’

UPDATE
    [Tabellenname]
SET
    [Feldname] = STUFF([Feldname], PATINDEX(@findus, [Feldname]), DATALENGTH(@suchen), @ersetzen)
WHERE
    [Feldname] LIKE @findus

Das Beispiel durchsucht nun eine nvarchar-Spalte Feldname in der Tabelle Tabellenname und ersetzt dort das Wort Altername durch das Wort Neuername.

ASP.NET 1. 1 – DefaultButton definieren

In ASP.NET 2.0 gibt es die Methode HtmlForm.DefaultButton, mit der man den DefaultButton eines Formularelements festlegen kann. Sehr nützlich wenn man ein Formular mit mehreren Buttons erstellt hat und der Benutzer durch drücken der ENTER-Taste auf einem Input-Feld eine Aktion auslösen soll wie z.B. verschiedene Suchoptionen. Leider bietet ASP.NET 1.1 keine Funktion dieser Art.

Bei kamp-hansen.dk bin ich auf einen Lösungsansatz gestoßen, der zwar leider in VB und nur für den IE gebaut wurde, aber im Grunde ist der Lösungsweg nicht schlecht. Der “C#-Way” sollte dann in etwas so aussehen:

public void DefaultButton(System.Web.UI.Page Page,
                                  System.Web.UI.WebControls.TextBox objTextControl,
                                  System.Web.UI.WebControls.Button objDefaultButton){

System.Text.StringBuilder sScript = new System.Text.StringBuilder();

sScript.Append("<script language=\"javascript\">");
sScript.Append("function GetKeyCodeIE(btn){");
sScript.Append("    if (event.keyCode == 13)");
sScript.Append("    { ");
sScript.Append("        event.returnValue=false;");
sScript.Append("        event.cancel = true;");
sScript.Append("        btn.click();");
sScript.Append("     } " );
sScript.Append(" } ");

sScript.Append(" function GetKeyCodeRest (Ereignis) { ");
sScript.Append("    if (!Ereignis) ");
sScript.Append("        Ereignis = window.event; ");
sScript.Append("    if (Ereignis.which) { ");
sScript.Append("           Tastencode = Ereignis.which; ");
sScript.Append("    } else if (Ereignis.keyCode) { ");
sScript.Append("           Tastencode = Ereignis.keyCode; ");
sScript.Append("    } ");
sScript.Append("     if (Tastencode == 13)");
sScript.Append("        document.getElementById(‘" + objDefaultButton.ClientID + "’).click();");
sScript.Append("} ");

sScript.Append(" var IE = document.all ? true : false;");
sScript.Append(" if (!IE){");
sScript.Append("   document.onkeydown = GetKeyCodeRest;");
sScript.Append("}");
sScript.Append("</script>");

objTextControl.Attributes.Add("onkeydown",
                                          "GetKeyCodeIE( document.all." + objDefaultButton.ClientID + ")");
Page.RegisterStartupScript("ForceDefaultToScript", sScript.ToString());
}

Der Aufruf erfolgt dann mittels

DefaultButton(Page,txtSearch,btnSearch)

Ok, ganz glücklich bin ich mit dieser Lösung auch nicht – einige werden mir da sicherlich zustimmen – , aber “auf die Schnelle” ein durchaus akzeptabler Ansatz.

Krugle durchsucht nun auch Codeplex

Krugle, die, wie ich immer so schön sage, “das Rad nicht 2mal erfinden Quelltext-Suchmaschine”, durchsucht, dank einer offiziellen Partnerschaft zwischen Krugle und Microsoft, nun auch Shared-Source-Projekte auf Codeplex.

Damit ist die Quelltext-Suchmaschine um 6,5 Millionen Zeilen Code reicher geworden, darunter auch einige Codehäppchen für .NET und ist neben Google Code Search wohl eine der nützlichsten Funktionen für Entwickler in den Weiten des WorldWideWebs.

[via Golem.de]

IFBIN 1.1 – kostenlose Codebeispiele für Flex und Flash

ifbin.gifIFBIN 1.1 ist eine sehr gut dokumentierte Code- Library für Flash & Flex Code in AS 1.0 und 2.0.

Seit dem 1. August ist die formals kostenplichtige Code-Library nun unter der BSD License erhältlich und steht somit für jeden zur freien Verfügung.

IFBIN umfaßt über 500 Beispiele, Code, Tutorials und Klassen die zum Teil von namenhaften Flashgrößen wie Guy Watson, Darron Schall, Lee Brimlow, Mario Klingemann oder Ralf Bokelberg beigesteuert wurden.

Die Code-Library steht als Download für Mac OS X ab Version 10.3 sowie Windows 2000/XP/2003 zur Verfügung.

[via zweigang.de]

RSS-Bug behoben

Kleine Ursache, große Wirkung.

Merke: Nach dem Wechsel auf eine neue WP-Version auch die deutsche Sprachfile updaten, sonst knallt unbemerkt der RSS-Feed weg :) Jetzt sollte aber alles wieder so laufen, wie es soll!

Update
Da war ich wohl zu verschnell. Der RSS-Feed hat zwar wieder funktioniert, zeigte aber nicht nur die Kommentare, nicht die Beiträge an. Grund ist ein kleiner Bug in WP den man wie folgt beheben kann:

In der File wp-includes/classes.php folgendes ändern:

// Comments
$comments_rewrite = $this->generate_rewrite_rules($this->root . $this->comments_base, true, true, true);
$comments_rewrite = apply_filters(‘comments_rewrite_rules’, $comments_rewrite);

wird zu

// Comments
$comments_rewrite = $this->generate_rewrite_rules($this->root . $this->comments_base, true, true, true);
$comments_rewrite = $this->generate_rewrite_rules($this->root . $this->comments_base, true, true, true, false);
$comments_rewrite = apply_filters(‘comments_rewrite_rules’, $comments_rewrite);

Wenn es dann immer noch nicht klappt, einfach mal die Permalinks auf “Standard” stellen, speichern und wieder zu den alten Einstellungen zurückwechseln. Der Bug ist übrigends schon bekannt und sollte in der nächsten WP Version gefixed sein.