Dave Cutler, PRISM, Mica, Emerald, etc.

Tolle Seite zum Thema VMS, Dave Cutler, Windows NT

 

  • In May 1985, DEC (Digital Equipment Corporation) started the Prism project to develop RISC technology which would eventually replace their CISC-based VAX. Why would they do this? In the words of DEC’s Gordon Bell, there is a major revolution in computer technology every then years and VAX first appeared between 1977-1978
  • Dave Cutler (working at DEC West in Seattle, a few miles away from Microsoft) headed Prism as well as software sub-projects named Mica, and Emerald

Hier gibts mehr: http://neilrieck.net/docs/dave_cutler-prism-mica-emerald-etc.html

 

Wechsel des Webhosters

Viele Jahre-, ich würde sagen es waren jetzt ca. 15! Jahre habe ich DomainFactory als Webhoster verwendet. Zum Einsatz kam zum Schluss das „ManagedHosting Pro 2-Sterne-Performance“- und das „VirtualServer BestSelect“ Paket. Letzeres wurde nie offiziel verkauft-, stattdessen wurde es bestehenden Kunden zum 5 Jährigen Jubiläum von DF angeboten. Das war damals ein tolles Angebot mit viel Leistung zum kleinen Preis!

Warum nun der Wechsel? All die Jahre hat DF sein RZ nähe München betrieben, dann wurde vieles ins EU Ausland verlagert. Vermtulich durch durch div. Aufkäufe. Als Kunde hatte man die Möglichkeit weiterhin in einem RZ in DE zu bleiben, was aber mit einem Aufpreis verbunden gewesen wäre. Ich habe diese Möglichkeit nicht genutzt. Einen Nachteil habe ich durch diesen Umzug nicht direkt bemerkt. Lediglich die Performance hat in den vergangen Jahren (gefühlt) nachgelassen. Bemerkt habe ich das z.b. beim arbeiten mit WordPress. Die Ursache war sicher nicht Umzug, evtl. wurden mehr Kunden auf die Server gepackt?!

Es wurde Zeit für eine Veränderung. Gesagt getan! Mein „neuer“ Hoster ist nun: 1&1. Diese Seite auf der Du das hier liest wird nun auf einem „1&1 Webhosting UNLIMITED PLUS“ Paket betrieben.

Der Umzug hat direkt eine Verbesserung gebracht (links vorher, rechts nachher):

Getestet mit: https://testmysite.withgoogle.com/intl/de-de

 

 

Using InterSystems Caché and Apache Zeppelin

I’ve posted this Text here

I‘ have done some tests with Caché and Apache Zeppelin. I want to share my experince to use both systems together. I’ll try to describe all steps that are required to config Zeppelin to connect to Caché.

What is  Apache Zeppelin?

For all who think: What the heck is Apache Zeppelin?, here some details what the project site (http://zeppelin.apache.org) says:

„A web-based notebook that enables interactive data analytics. You can make beautiful data-driven, interactive and collaborative documents with SQL, Scala and more. Apache Zeppelin interpreter concept allows any language/data-processing-backend to be plugged into Zeppelin. Currently Apache Zeppelin supports many interpreters such as Apache Spark, Python, JDBC, Markdown and Shell“

Install Apache Zeppelin

The next 5 steps describe how to get Apache Zeppelin up and running:

  1. You need a Java Runtime Environment. I you haven’t download and install from here
  2. Download Zeppelin from here
  3. Extract the entire Zeppelin Zip-File into a folder like d:\zeppelin
  4. Open a shell (cmd on windows) and navigate into the folder \zeppelin\bin
  5. Execute zeppelin.bat on Windows to start ZeppelinOpen up a browser and use this url http://localhost:8080 to open the main page of zeppelin. You should see something like this:

     

 

Well done! Zeppelin is now up and running!

Connect to Caché

Now let us introduce Caché. The next steps describe how to create a jdbc connection to a Caché Namespace.

  1. Navigate to the menu item „anonymouse“ -> „Interpreter“ and scroll down to the „jdbc“ section.
  2. Now press edit and go to the end of the jdbc section and enter your Caché JDBC connection string

     

    cache.driver    = com.intersys.jdbc.CacheDriver
    cache.password   = ???
    cache.url        = jdbc:Cache://<server\ip>:<port>/<namespace>
    cache.user       = _SYSTEM

  3. Add the path to the Caché JDBC driver in the „Dependencies“. This is located at the end of jdbc section.

     

  4. Press SAVE

Great! All preparations are done, now let us use Zepplin and Caché.

Query Caché

Follow these steps to create a first Notebook to query and visualize some Caché data.

 

 

Press create new note and name it like „HELLO WORLD“ …

By typing %jdbc(cache) you inform zeppelin what data source you want to query.
In detail: The %jdbc keyword lets zeppelin call the jdbc interpreter and the cache routes the query to the Caché connection. If you want to use more connections to Caché e.g. another namespace you have to create more entries in the jdbc section you’ve done before. The prefix of the entries are the connection name.
Ok now place a sql statement in the next line. After that press execute and you will immediately  see the result:

 

Happy testing!

LightSwitch–Visual Studio 2013–ein paar Hightlights (Teil1)

Vor kurzem habe ich das Upgrade eines LightSwitch Projektes auf Visual Studio 2013 gewagt. Eins vorweg: Es hat sich gelohnt!  Bei diesem Projekt handelt es sich um einen Silverlight Client der eine externe SQL Server Datenbank anbindet. Das LightSwitch Projekt dient hier der GUI Gestaltung und verwendet keine “_intrinsic-Database”. Zu den Verbesserungen die lt. Doku im Bereich HTML Client hinzugekommen sein sollen, kann ich daher nichts sagen.

Das Highlight für mich ist das nun endlich mehrere Designer gleichzeitig öffen sein können.

In den vorherigen Versionen war immer nur eine Instanz eines Screens- oder Table-Designer möglich. Ein flüssiges arbeiten und schnelles umschalten zwischen mehreren Screens\Tables war nicht möglich. Öffnet man in VS 2013 ein Screen\Table erhält dieser ein eigenes Register und man kann beliebig viele davon gleichzeitig offen halten, das wechseln zwischen den Registern geht entsprechend schnell. Vermutlich auch weil nun für jede Tabelle ein eigenes *.isml File erzeugt wird. Weiter so!

Leider leider funktioniert immer noch nicht die mehrfach Selektion zur Änderung einer gemeinsamen Eigenschaft. Also mal schnell die Text Ausrichtung von links auf rechts ändern ist nicht Trauriges Smiley 

SNAGHTML77efe14

VS 2012 LightSwitch: Updating datasource change FK from NOT NULL to NULL

Oft nutze ich Visual Studio LightSwitch 2012 um externe Datasources einzubinden. Also bereits bestehende Datenbanken bekommen mit LightSwitch ein GUI spendiert. Änderungen am Datenmodell sind in solchen Fällen nur eingeschränkt möglich.

Wenn dann nach dem erstmaligen einlesen der Metadaten einer Datenquelle dennoch ein Update erfolgt, also Änderungen in der DB durchgeführt- und diese nun VS LightSwitch bekannt gemacht werden, kann es zu unerwarteten Fehlern kommen.

In einem konkreten Fall konnte ich LightSwitch nicht dazu bewegen die Änderung einer FK-Beziehung zu erkennen.

In meinem Datenbank Modell hatte ich eine 1-n Beziehung in eine 0-n Beziehung geändert. Dazu wurde die foreign key column von “not NULL” auf “allow NULL” gerändert. Danach kam es dann beim speichern zu folgender Meldung:

Multiplicity conflicts with the referential constraint

in Role ‚XXX‘ in relationship ‚FK_Table2_XXX‘.

Because all of the properties in the Dependent Role

are non-nullable, multiplicity of the Principal Role

must be ‚1‘.

Der Fehler ist auch anderen widerfahren und wird in dein einschlägigen Foren diskutiert. Es gibt wohl derzeit nicht allzu viele Lösungswege, einer wäre die Datasource zu löschen und neu hinzuzufügen. Das ist aber ein no go wenn das Projekt viele Screens enthält. Die würden dann in Mitleidenschaft gezogen.

Ein User gab den Tipp die Common.lsml direkt zu verändern. Und das habe ich dann auch gemacht. Wie in diesem Screenshot dargestellt:

image

Microsoft.LightSwitch.SecurityAdmin.exe

Wer nach der Installation einer 3-Tier LightSwitch App noch einen Admin hinzufügen möchte benötigt das Tool Microsoft.LightSwitch.SecurityAdmin.exe, jedenfalls sofern er nicht direkt in der DB fummeln möchte.

Doch wo findet man das Tool?

Auf einem frisch installierten Server der die “LightSwitch für Visual Studio 2012 – Serverkonfiguration ohne lokales SQL Express“ (das ist der offizielle sperrige Name) erhalten hat, konnte ich es nicht finden.

Erst eine Suche auf meiner lokalen Entwicklungsmaschine hatte Erfolg. Und zwar hier: C:\Program Files (x86)\Microsoft Visual Studio 10.0\LightSwitch\1.0\Tools

Es reicht aber nicht aus das exe-File zu kopieren. Am einfachsten den ganzen Tools Order zippen und auf die Zielmaschine kopieren um die Microsoft.LightSwitch.SecurityAdmin.exe nutzen zu können.

Aufgerufen wird Microsoft.LightSwitch.SecurityAdmin.exe mit diesen Parametern:

Administrative utility to perform security operations

for a LightSwitch application. /? Display this help text. /createadmin Creates an administrator user. Options: /user:<username> UserName of the user. /password:<password> Password of the user. Required for

Forms authentication mode. /fullname:<full name> Full name of the person represented by the user.

Required for Forms authentication. /config:<config path> Absolute path to the web.config file

of the LightSwitch application.

Wie ich später feststellte war die gefundene Microsoft.LightSwitch.SecurityAdmin.exe von Visual Studio 2010 (LightSwitch 2011) und funktioniert nicht mit VS 2012 LightSwitch Apps. In Visual Studio 2012 ist dieses Programm nach meinen Recherchen nicht mehr enthalten. Stattdessen wird es laut Doku nun mit der “LightSwitch für Visual Studio 2012 – Serverkonfiguration ohne lokales SQL Express“ auf dem Hosting Server installiert… leider nicht immer. In meinem Fall konnte ich jedenfalls keine AdminSecurity.exe auf dem Server finden. Neu installieren war leider auch nicht möglich (Details dazu hier).

Um nun endlich weiter zu kommen und das deployment abschliessen zu können, habe ich dann den Weg über die StoredProcedure gewählt. Glücklicherweise war in meiner DB bereits ein Admin enthalten. Mit der folgenden SP kann das Passwort in der DB nach eigenem gusto angepasst werden:

declare @cd datetime set @cd=getdate() exec [dbo].[aspnet_Membership_SetPassword]

‚appname‘,‚<domain>\<user>‘,‚<plainpassword>‘,’salt‘,@cd,0

Der letzte Parameter identifiziert das Passwort Format: (0=Plaintext, 1=Hashed, 2=Encrypted). Hier ist insbesondere die Möglichheit 0=Plaintext hilfreich.

Diese spannende Geschichte ;-) soll mir in erster Linie als Gedankenstütze dienen… mal schauen ob es hilft.

Can’t uninstall Lightswitch for Visual Studio 2012 – Server Configuration without local SQL-Express

Kaum zu glauben, aber das installieren einer LigthSwitch Application kann ganz schön nerven aufreibend werden!

Auf einem frischen Windows Server 2008 R2 Enterprise SP1 habe ich die “Lightswitch for Visual Studio 2012 – Server Configuration without local SQL-Express” per Web Platform Installer zur Installation ausgewählt.

Danach lief alles autom. und fehlerfrei, auch wenn nun der Web Platform Installer anzeigt das “Lightswitch for Visual Studio 2012 – Server Configuration with local SQL-Express” ungefragt auf den Server kopiert wurden:

image

Als ich danach diverse Probleme während des deploments einer LightSwitch Application hatte wollte ich die “Lightswitch for Visual Studio 2012 – Server Configuration” entfernen und erneut installieren… die Vergangenheit zeigt das dann plötzlich Oh-Wunder! das ein oder andere Problem gelöst werden warZwinkerndes Smiley

Leider nicht hier! Denn seht selbst:

image

Da sind keine “Lightswitch for Visual Studio 2012 – Server Configuration” unter Progamme eingetragen?!?!? Was nun? Wie ist hier eine „Neuinstallation“ möglich?

Einfache Active Directory Validierung

Wer schon mit der eingebauten Userverwaltung von VS LightSwitch gearbeitet hat, kennt die bequeme Funktion das der eingegeben Name gegen das AD validiert-, und wenn erfolgreich, der Full Name komplettiert wird:

image

Der Screenshot zeigt die Userverwaltung von VS LightSwitch 2012, die Funktionalität gibt es aber auch in der “alten” Version.

Ich war auf der Suche nach der gleichen Funktionalität, sträubte mich aber davor für diesen Anwendungsfall extra einen RIA Service zu bauen. Nach ein wenig stöbern bin ich glücklicherweise auf folgende Methode gestoßen:

try
{
  Microsoft.LightSwitch.Security.WindowsUserInfo info = 
        this.DataWorkspace.SecurityData.GetWindowsUserInfo(Property1);
  YourNameColumn = info.FullName;
}
catch (Exception e)
{
  // handle exception
}

GetWindowsUserInfo macht hier das gewünschte Smiley Wer eine simple Active Directory Validierung benötigt und dafür nicht einen RIA Service anlegen möchte, sollte diese Methode versuchen.

Noch ein Hinweis: Der Anwender muss in der Gruppe “SecurityAdministration” sein! Ansonsten kommt es beim Aufruf zu einer Exception.

Visual Studio 2012

Den Test und das experimentieren mit einer Visual Studio 2012 Beta habe ich mir geschenkt. Umso gespannter war ich nun selbst die ersten Versuche mit dem Final Release zu machen. Und der erste Eindruck? Angenehm überrascht!

Als erstes bemerkte ich die gefühlt wesentlich bessere Startgeschwindigkeit. Zum vergleich startete ich mehrmals VS 2010 und VS 2012 nacheinander. VS 2012 war auf meinem Rechner nach ca. 3 sec. bereit! VS2010 benötigte ca. 4 sec bis die IDE sichtbar war und weitere ca. 4 sec. bis der Waitcursor endlich verschwand. Beachtlich!!

Danach musste ich schnell das Color theme auf Dark umstellen:

image

Danach war die IDE richtig ansehnlich Zwinkerndes Smiley

image

Bei VS LightSwitch 2012 bemerkte ich ebenfalls eine deutlich bessere Reaktionsgeschwindigkeit der IDE. Besonders der Wechsel zwischen dem Table Designer und dem Screen Designer geht nun flugs von statten, was noch in LightSwitch 2011 eine sehr träge Angelegenheit war.

Details folgen…