GarageBand

Als angehender Nr. 1 Hit-Produzent habe ich eine gutes Tutorial für Einsteiger gefunden.

Ist zwar für die letzte Version 8 gemacht, aber auch für die 9er Version brauchbar.

Schöne heile Welt

Wenn Sebastien(12) und Noah(13) endlich ihren iPad kaufen konnten und sagen: „Wir konnten vor Aufregung nicht schlafen“ dann bin ich ja froh das es nichts schlimmeres zu berichten gibt.

Allerdings bin ich mir sicher das die Jungs auch nicht schlafen können, wenn die mal einen Marienkäfer auf einer Wiese entdecken…Janu!

vom Kiffen

Einen sehr lustigen „Beitrag“ habe ich von Ray Camden bzw. Andy Jarrett gelesen.

Ich könnte immer noch tränen lachen, wenn ich das lese 😉 Liegt das an meinem Bekanntenkreis?

,

EURO Griihse

Das die EU eine Idee ist die nicht funktioniert zeigt unter anderem das Beispiel Griechenland.

Es ist so wie ich schon seit Jahren sage und unter anderem aus diesem Grund in der Schweiz arbeite und lebe.
Auch die DDR hatte schon die dumme Idee das alle gleich sind, was eben nicht ist. Wie man ja wieder im akt. Fall sieht. Andererseits ist auch diese Krise relativ (siehe Link).

Link verboten II

Eine andere Möglichkeit einen bestimmten Inhalt eines Links zu verbieten ist folgende Funktion.

	function isLinkOK(url) {
		var myValues = "ID=,public";	// Darf nicht vorkommen
		var myValueSplit = myValues.split(',');
		var myResult = true;
		var mySearch = "";
			
	  for(i = 0; i < myValueSplit.length; i++) {
      mySearch = new RegExp(myValueSplit[i],'i');
      if (url.search(mySearch) > -1) {
        myResult = false;
        break;
      }
    } 
    // alert(myResult);
  }

Aufgerufen werden kann die Funktion dann so:

Check the Link

Link verboten

Um nur Links zu erlauben die auf „.cfm“ enden, bin ich über die pop()-Funktion von Javascript gestolpert. im Formular rufe ich sie dann per onsubmit=““ auf und je nach dem kann dann das Formular abgeschickt werden oder nicht.

function isValidURL(url) {
  var isOK = url.split(/[.]+/).pop() == 'cfm';
  if (isOK == false) document.getElementById('msg').innerHTML = 'Ziel-Link ungültig!';
  return isOK;
}

Speed Dial

Als neuer Macianer gefallen mir einige Dinge am Safari. Unter anderem die TopSites. Da ich aber meinen Standardbrowser nciht wechseln möchte, habe ich mit ein entsprechendes PlugIns für meinen FireFox installliert. Das Speed Dial ist sogar noch besser im Anwendung als das org. vom Safari. Absolut genial. Benutze kaum noch meine Favoriten.

,

iClock Pro

Ein sehr praktische Alternative zur normalen kurzen Zeitanzeige in der Menüleiste ist das kostenlose Programm iClock Pro. Ich habe dabei die Zeitleiste ausgeblendet und nur die Datumsleiste in der Anzeige. Dafür dann diese wie folgt custimzed:

%A, %1d. %B %H:%M:%S (%WKW)

paymo on iPhone

Endlich gibt es das paymo auf auf dem iPhone. Ziemlich lässig.

Das Problem ist immer das ich abends, kurz vor Feierabend meine Zeit/en festhalten will. Nur kommt dann die Tram/Zug etc. und ich vergesse es. Ab sofort kann ich im Zug noch (und das in aller Ruhe) festhalten, wann ich gegangen bin oder auch andere Zeiten, die ich noch vergessen hatte, nachtragen.

1-2-3…Buh!

Vor gut 2 Jahren habe ich die cablecom gekündigt, weil ich anfangs 95 Franken für 16.000Kbit/s und als später dann die Preise gesenkt wurden, man als NEUKUNDE nur noch 65CHF zahlte. Als treuer Kunde aber davon gar nicht wusste und nach wie vor 95CHF zahlte. Nach einem Anruf meinte die CallGirl-Tussi am Telefon nur: „Es gibt viele Kunden, die gar keine schnellere Leitung benötigen, besonders Ältere, daher auch keine Aufstockung“. Typische verarsche!

Offensichtlich passt sich aber auch die cablecom irgendwann mal an und hat mir heute geschrieben: „Sie surfen neu mit Fiber Poweer internet 100 seit dem 17.05.2010 für 10 Franken weniger pro Monat und das so schnell wie immer!

Natürlich traue ich dem neu gewonnen Kundenservice nicht, aber es ist ein Anfang! Und man soll ja auch mal was nettes schreiben, WENN dem dann mal so ist. merci cablecom!

,

15% auf Alles!

Würde jetzt sicher ein Spruch von MediaMarkt sein. Bei Adobe bekommt man 15% Rabatt, wenn man in einer User Group ist. Für ColdFusion und PhotoShop 5 lohnt sich das auf jeden Fall.

Im Formular muss man nur folgendes angeben:
Association Name: User Group
Validation Number: 72360

Fritz Sennheiser

Ich hab den Dr. zwar nie kennen gelernt, aber in meiner Jugend oft meine Freude an ihm.

Anfangs als ich mir, zusammen mit meinem besten Kollegen Heiko, uns die ersten offenen Kopfhörer kauften und dabei unser gesamtes Taschengeld drauf ging. Aber der Genuss dann jeder seinen eigenen Sennheiser zu haben und diesen dann, verbunden über ein T-Stück, auf der Couch zu chillen (von Classic über Manfred Mann und Lisa Stansfield bis Supertramp). Absolut Genial!

Leider haben sie ihn am Montag abgeholt und den Heiko (Motoradunfall) gibt es auch nicht mehr…Ich glaub ich werd alt 😉

SET DEFAULT II

Hier mal eine einfache Version mit purem T-SQL zum setzen von DEFAUL-Values eines Feldes.

DECLARE
  @sql AS nvarchar(1000)

--- isActive = 1
IF NOT EXISTS (SELECT * FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 'sys_User') AND name = 'isActive')
BEGIN
  print 'create field with defaults';
  SET @sql = 'ALTER TABLE sys_User ADD isActive BIT DEFAULT (1) NULL';
  EXEC sp_executesql @sql;
END ELSE
  BEGIN
    IF (SELECT cdefault FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 'sys_User') AND name = 'isActive') > 0
      BEGIN
        print 'drop contraint';
        SET @sql = 'ALTER TABLE sys_User DROP CONSTRAINT ' +(SELECT name FROM sysobjects WHERE id = (SELECT cdefault FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 'sys_User') AND name = 'isActive'));
        EXEC sp_executesql @sql;
      END
    print 'add contraint'
    SET @sql = 'ALTER TABLE sys_User ADD CONSTRAINT DF_'+(SELECT REPLACE(NEWID(),'-','_')) +' DEFAULT (1) FOR isActive';
    EXEC sp_executesql @sql;
  END

Sometimes it snows in Mai…

…besonders, wenn man morgens, sich übermüdet an seinen Rechner setzt.

Es gibt aber auch sonst mal den einen oder anderen Moment, in dem man gerne die gerade durchgeführte Aktion seines Rechner abbrechen möchte – und zwar sofort. Für die spannende Situation danach bietet Apple 2 Lösungen:

1. SMC SystemManagementController (Hard- und Software) zurücksetzen
– Den Rechner ausschalten (ihn aber am Strom lassen)
– Shift+Ctrl+Alt (mind 5 Sek. lang drücken)
– danach den Rechner normal einschalten (die Tasten gedrückt lassen)
– Nach ein paar Sekunden die Tasten los lassen
Es passiert nichts und das ist gut so
Danach dann den Rechner ganz normal starten.
RÜCKBLICK: Diese Aktion setzt alle internen Messages etc. zurück, die evtl. irgendwo hängen geblieben sind, sodass dieser wieder frisch zur Verfügung steht.

2. PRAM ParameterRam zurücksetzen
– Alt+Cmd+R+P drücken
– den Rechner einschalten
– die Tasten solange halten bis 3* der StartGong ertönt
– Dann die Tasten loslassen und den Rechner starten lassen

Was ein Mac alles so gerade macht, muss er sich merken, damit er nicht durcheinander kommt, vor allem wenn es mehr wird. Ist er aber einmal durch o.g. Situation durcheinander gekommen, so kann man hierdurch den Speicher leeren und er hat alles vergessen – was in diesem Fall gewollt ist.

,

Mit dem Apfel lebt es sich gesünder

Einen Apfel pro Tag hält die Franchise niedrig, oder so? Das stimmt sogar auch wenn er angebissen wurde.

Der Support von Apple ist an sich schon ein Wechsel weg von Microsoft bzw. Windows wert.

Von den hauseigenen freundlichen Türsteher in AppleStores mal abgesehen. (Aber auch bei denen ist es wie mit dem Zahnarzt, ist man mal im Laden sind die Schmerzen schon verflogen.) Schnell und Kompetent und das an der Genius-Bar, per Telefon oder eMail. Sowas nenn ich stressfreien Wohlfühl-Support. Merci, du kernige Frucht, Du!

, , , , ,

cAseS

Das Programmierer sehr wohl fantasievoll sind, zeigt deren Schreibeweise. Ich selbst achte darauf das ich zb. Firmennamen immer so schreibe wie sie sich selbst schreiben.

Beim programmieren ist das leider nicht immer so einfach. Da kommt man dann schnell auf Begriffe wie SCREAMING CASES, was so viel wie GROSSBUCHSTABEN bedeutet. Den meisten Programmierer ist es aber gar nicht bewusst wie sehr eine GrossKleinschreibung den Lesefluss beeinflusst. Mann muss nicht mal die weRksTabeN VeRbuCHseLn um unleserlich zu wirken.

Unter Winddows ist man PascalCase gewohnt, also das schreiben des ersten Buchstabens als Grossbuchstabe und in der javaWelt eher das camelCase, also das Schreiben des ersten Buchstabens in kleinbuchstaben. Schwieriger finde ich dann das Schreiben dann in WIKICASE, was bedeutet das man mind 1 Wortkombination haben muss.

Persönlich finde ich es allerdings wichtiger das man als Programmierer sprechende Variablen schreibt und eben kein i oder so zum loopen nimmt, sondern myCategory oder so und myCategories wenn mehrere Elemente enthalten sind. Allerdings sollte man auch nicht übertreiben und alle Datenbanktabellen mit einem tbl-Prefix versehen oder alle Variabelen mit str als String zu deklarieren etc.

Manchmal praktisch finde ich die zusätzliche Trennung_derWorte_mit_Unterstrich, so kann ich mit ListFunktionen einfach auf bestimmte Teile der Variable zugreifen. Nur kann man solche Variablen in einer URL oft nicht so gut erkennen.

Eigentlich ziemlich hässlich finde ich die benennungvonvariableninreinen Kleinbuchstaben, hat allerdings den Vorteil das sie auch unter Linux immer funktionieren und auch in vielen Frameworks benutzt werden.

,

SET DEFAULT

Auch im MS-SQL Server kann man alle Meta-Daten einer Tabelle abfragen – bis auf die DefaultValues.

Hier mein Script, was prüft, ob es die benötigten Felder einer Tabelle gibt und diese auch den gewünschten DefaultValue haben.


  
  
  

  
  SELECT * FROM #local.db.table#



  

      
        
        SELECT name FROM SYSOBJECTS
          WHERE id = (SELECT cdefault FROM SYSCOLUMNS
            WHERE id = (SELECT id FROM SYSOBJECTS WHERE name = '#local.db.table#')
        AND name = '#listFirst(local.myField,'=')#')
      
        
        ALTER TABLE #local.db.table# DROP CONSTRAINT #local.getDefaultName.name#
      
    
      
      ALTER TABLE #local.db.table#
        ADD CONSTRAINT DF_#replace(createUUID(),'-','_','all')#
          DEFAULT (#listLast(local.myField,'=')#) FOR #listFirst(local.myField,'=')#
    

  
  
    ALTER TABLE #local.db.table#
      ADD #listFirst(local.myField,'=')# BIT NULL
        CONSTRAINT DF_#replace(createUUID(),'-','_','all')#
          DEFAULT (#listLast(local.myField,'=')#)
  


Sicherheitshalber noch als Download-Link, weil die Anzeige des Quelltexten leider Müll formatiert.