Äbblwoi – Hals hie nei – SoundCloud

Listen to Äbblwoi – Hals hie nei by Björn Karpenstein #np on #SoundCloud

Isch kipp mir jetzt den Äbblwoi
einfach in den Halse nei
und wenn er uffgestoße is
hon isch in de Handkäs g’biss
Hey Herr Werd der Kruch is leer
bring mir schnell en neuje her
Ma Fraa is mer jetz fortgeloffe
isch hab nämlich voll g’soffe

N Äbbelsche
N Bembelsche
Äblwoi,
Halse nei,
Im Summer in der größten Hitz
Mim Bembel isch im Schadde sitz

Ihr Leit macht leer des Äblfoss
ihr wuiht doch ohch de saure Sposs
Es fegt de Mage, labt die Schnut,
Es Stöffsche is für alles gut
So laut de ärztlische Befund
des Stöffsche is ja so g’sund
Nur ne eschte Hessenaas
passt hinei ins Schobbeglas

N Äbbelsche
N Bembelsche
Äblwoi,
Halse nei,
Im Summer in der größten Hitz
Mim Bembel isch im Schadde sitz

N Äbbelsche
N Bembelsche
Äblwoi,
Halse nei,
Im Summer in der größten Hitz
Mim Bembel isch im Schadde sitz

Veröffentlicht unter Allgemein | Hinterlasse einen Kommentar

Komplette IDE mit PHP- und Javascript-Debugging unter Windows unter Verwendung von Wampserver [v3.0.0] und „Eclipse for PHP Developers“ (Eclipse PDT) MARS.2 [v4.5.2]

Problem

Für das Debugging von PHP Webanwendungen wird eine PHP Debuggingumgebung benötigt.

Ansatz

Die kostenlose Anwendung WAMPSERVER (hier v.3.0.0) wird mit „Eclipse for PHP Developers“ (MARS.2) konfiguriert, um das Debugging zu ermöglichen.

Vorgehensweise

  • Download von Wampserver unter http://www.wampserver.de
  • Installation als Administrator (rechte Maustaste „als Administrator ausführen“)
    • z.B. in c:\dev\wamp
  • Download von „Eclipse for PHP Developers“ unter http://www.eclipse.org
  • Entpacken von „Eclipse for PHP Developers“ in ein gewünschtes Verzeichnis

Lösung

Nachdem der Wampserver gestartet wurde und unter der URL http://localhost erreichbar ist, kann bereits mit der Konfiguration von Eclipse begonnen werden.

  1. Eclipse starten
  2. Workspace direkt im WWW root auswählen (bspw. bei Installation in c:\dev\wamp)
    workspace
  3. Mit OK bestätigen
  4. Im Menü „Window -> Preferences“ wählen
    menu_window_preferences
  5. PHP Executable hinzufügen
    PHP_Executables
  6. PHP Executable angebenTab_PHP_Executable
  7. Unten auf den Button „Next->“ klicken (nicht im Screenshot da Edit-Dialog)
  8. Debugger angeben -> XDebug auswählen!Tab_Debugger
  9. Mit okay bestätigen
  10. Einstellungen unter Menu->Preferences->Debug überprüfen (ist der angelegte Debugger aktiviert?).einstellungen_debug
  11. Web Browser angeben (ich empfehle Google Chrome)eclipse_preferences_webbrowser
  12. Neues PHP Projekt anlegen
    neues_php_projekt
  13. Folgende Einstellungen tätigen neues_php_projekt_auswahl
  14. Rechtklick auf das neu angelegte Projekt -> New -> PHP Fileneues_php_projekt_datei_hinzufuegen
  15. Die Datei beispielsweise index.php benennen new_phpfile_index_benennen
  16. Test-Sourcecode in index.php einfügen
    <?php
    	$i=0;
    	$i++;
    	$i=$i+1;
    	print $i;
    ?>
    
  17. Breakpoint setzen (Doppelklick links neben die Zeile)
    debug_configuration_index_Debugger2
  18. Debug Configuration für die Website anlegen (rechts neben die Debug Wanze klicken -> Debug Configurations)
    debugger_wanze
  19. Debug Configurations -> PHP Web Application -> index -> Server
    debug_configuration_index_serverDie Startdatei /Bier.de/index.php entspricht auch dem Aufruf über http://localhost/Bier.de/index.php, da wir den Workspace im c:\dev\wamp\www-rootverzeichnis angelegt haben.
  20. Debug Configurations -> PHP Web Application -> index -> Debugger
    debug_configuration_index_Debugger
    Wenn „Break at First Line“ ausgewählt ist, hält der Debugger automatisch bei der ersten Zeile an. Dies ist nicht immer gewünscht!
  21. Debug Button klicken
  22. Bestätigen dass auf die PHP Debug Perspektive gewechselt wird
  23. Für das Javascript-Debugging Empfehle ich dringend den ausgereiften Chrome Javascript Debugger zu verwenden. Dieser lässt sich in Chrome folgendermaßen starten:
    chrome-debugger1
  24. Hier kann man Breakpoints setzen und den Objektbaum jederzeit einsehen:
    chrome-debugger2

 

 

 

 

Veröffentlicht unter Allgemein, PHP | Hinterlasse einen Kommentar

IBM Doors DXL: Set and delete Permissions on objects

Problem

Einem Object obj sollen Permissionrechte gegeben oder genommen werden.

Ansatz – Approach

* unsetAll(obj) – löscht alle User Berechtigungen / clears all user permissions set for the specified argument.
* setImplied(obj, permission) – Vererbt Kindern, die vom Element erzeugt werden, zusätzliche Rechte / sets the extra access control propagated by create for children of the resource.
* set(obj,permission,null) – Berechtigung für Everyone Else vergeben / sets the „Everyone else“ permission

Lösung – Solution

Hier einige Beispiele


// Gib Every Else alle Rechte
Permission allPermissions=read|create|modify|delete|control;
set(obj, allPermissions, null);

// Lösche alle Rechte außer Everyone else
unsetAll(obj); 

// Gib den Gruppen ChangeControlBoard, Admin, RequirementsManager alle Rechte
set(obj, allPermissions, \"ChangeControlBoard\");
set(obj, allPermissions, \"DB_Admin\");
set(obj, allPermissions, \"RequirementsManager\");

// Gib der Gruppe NDS_Team read-Berechtigung 
Permission readCreatePermissions=read|create;
set(obj, readCreatePermissions, \"NDS_Team\");

// Das Objekt soll zusätzlich zu den bestehenden Rechten die Modify Rechte vererben. 
Permission modifyPermission=modify;
string errMess=setImplied(obj, modifyPermission);
if(!null errMess)
{
   ack errMess;
}
		
// Lösche alle Berechtigung von everyone else außer read
Permission readPermission=read;
set(obj, readPermission, null);		
Veröffentlicht unter Allgemein | Hinterlasse einen Kommentar

JIRA SQL: Get Issue count of Issue Types and Issue status of alle JIRA projects / Anzahl der Issues pro Issue Type / Status pro Projekt

Problem

Für alle JIRA Projekte soll die Anzahl der Issues pro Issue Type und Issue Status ermittelt werden.

Ansatz – Approach

SQL Database Query

Lösung – Solution


SELECT project.pname 'Project', issuetype.pname 'Issue Type', issuestatus.pname 'Status', COUNT(project_key.PROJECT_KEY+'-'+CAST(issuenum AS VARCHAR(5))) 'Count'
FROM jiraissue
INNER JOIN project_key ON jiraissue.PROJECT=project_key.PROJECT_ID
INNER JOIN project ON CAST(project.ID as nvarchar)=project_key.PROJECT_ID 
INNER JOIN issuestatus ON issuestatus.ID=jiraissue.issuestatus
INNER JOIN issuetype ON issuetype.ID=jiraissue.issuetype  
GROUP BY project.pname, issuetype.pname, issuestatus.pname 
Veröffentlicht unter Atlassian JIRA | Hinterlasse einen Kommentar

Microsoft IIS 7: Windows Authentication fehlt / missing (Single-Sign-On einstellen)

Problem

Eine Seite soll für Windows Authentication konfiguriert warden, im Bereich IIS unter dem Punkt „Authentication“ soll ein Punkt „Windows Authentication“ sein. Dieser ist nicht vorhanden.

Voraussetzungen

Es wird eine Windows Server Variante verwendet (nicht Windows 7 Home Editions)

Ansatz – Approach

Die Server-Rolle muss nachinstalliert warden.

Lösung – Solution

1.) Den Server Manager starten
server_manager_starten

2.) Einen Rollenservice auf dem IIS-Unterpunkt hinzufügen
Add_Role_Services

3.) Auswahl der Authentifizierungsmethode
select_authmethods

4.) Nun ist unter dem Punkt „Windows Authentication“ im Bereich IIS der Punkt „Windows Authentication“ vorhanden, dieser kann ausgewählt warden und Anonymous Login kann disabled warden.
punkt_vorhanden

Veröffentlicht unter .NET, Microsoft IIS Server, Windows Server | Hinterlasse einen Kommentar

MS SQL Server: The database principal owns a schema in the database, and cannot be dropped

Problem

Ein Microsoft SQL Server User kann nicht gelöscht werden. Es erscheint die Fehlermeldung

„The database principal owns a schema in the database, and cannot be dropped“

Ansatz – Approach

Nutzung des Systemkatalogs zum finden der betroffenen Schemas
Änderung der Berechtigungen mit ALTER AUTHORIZATION
Löschen des Benutzers

Lösung – Solution


SELECT name FROM sys.schemas WHERE principal_id = USER_ID('benutzer')

Gefundene Principals (z.B. db_owner…) in Alter Authorization eintragen:


ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo
ALTER AUTHORIZATION ON SCHEMA::db_datareader TO dbo

DROP USER benutzer
Veröffentlicht unter Datenbanken, MS SQL Server | Hinterlasse einen Kommentar

Excel VBA: Kommandozeile / Command Line / DOS Parameter an Excel übergeben

Problem

An eine Excel-Datei soll ein Kommandozeilenparameter übergeben werden, der in VBA weitergenutzt werden kann.

Ansatz – Approach

  • Nutzung der Kernel32.dll-Bibliothek
  • Deklaration von Kernel32-Funktionen
    • GetCommandLineW
    • lpString
    • RtlMoveMemory
  • Erstellung einer Funktion für die Verwendeung
  • Beispielaufruf

Lösung – Solution

Im Modulkopf von Modul1.bas (oder auch in der Arbeitsmappe) werden Funktionen deklariert:

Modulkopf

1.) Modulkopf (Modul1.bas): Deklaration der Kernel Funktionen für die Ausführung von Kommandozeilenparametern:


' Used at module level to declare the default 
' lower bound for array subscripts (Array starts with 0)
Option Base 0

' Erzwingt die explizite Deklaration aller 
' Variablen in einer Datei 
Option Explicit

' Deklariert die Funktionen aus kernel32.dll 
Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineW" () As Long
Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (MyDest As Any, MySource As Any, ByVal MySize As Long)

2.) Erstellen einer einfachen Funktion, die die Ausführung von Kommandos anhand der kernel32.dll-Funktionen erlaubt.


Function CmdToSTr(Cmd As Long) As String
Dim Buffer() As Byte
Dim StrLen As Long
   If Cmd Then
      StrLen = lstrlenW(Cmd) * 2
      If StrLen Then
         ReDim Buffer(0 To (StrLen - 1)) As Byte
         CopyMemory Buffer(0), ByVal Cmd, StrLen
         CmdToSTr = Buffer
      End If
   End If
End Function

3.) Wenn das Workbook (die Arbeitsmappe) geöffnet wird, soll der Parameter (hier /cs:irgendwas ) zur Weiterverwendung genutzt werden können


Private Sub Workbook_Open()
    Dim CmdRaw As Long

    Dim CmdLine As String
    Dim start As Integer
    'The return value is a pointer to the command-line string for the current process.
    CmdRaw = GetCommandLine
    CmdLine = CmdToSTr(CmdRaw)
    
    start = InStr(CmdLine, "/cs:")
    ende = Len(CmdLine) - start - 3
    Tabelle1.Cells(1, 1) = Right(CmdLine, ende)

    mainForm.Show
End Sub

4.) Aufruf der Datei

C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.exe C:\tracematrix.xlsm /cs:meinParameter

Veröffentlicht unter Programmierung, VBA | Hinterlasse einen Kommentar

.NET C#: Execute command line batch file and process the output line by line (line break treatment)

Problem

A Batch File should be executed and the output processed line by line. This is especially useful when you want to generate line break treatments.

Ansatz – Approach

The usage of a stream reader helps to process the output line by line.

Solution – Lösung


Process p = new Process();

// Redirect the output stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;

p.StartInfo.FileName = "D:\\doors_stats\\whatschanged.bat";
p.Start();

StreamReader sr = p.StandardOutput;
string output = "";
while (!sr.EndOfStream)
{
	// Do s.th. with the received line (i.e. concate)
	output += sr.ReadLine() + "\n\n
"; }
Veröffentlicht unter .NET, C#, Programmierung | Hinterlasse einen Kommentar

.NET C# : Verzeichnis rekursiv kopieren / Copy folder with subfolders (recursive)

Problem

A directory folder with subfolders should be copied. Ein Verzeichnis mit allen Unterverzeichnissen soll rekursiv kopiert warden.

Approach

Usage of DirectoryInfo Class: getDirectories(); in combination with „foreach (DirectoryInfo subdir in dirs)“-Loop
Usage of FileInfo Class: getFiles() in combination with „foreach (FileInfo file in files)“-Loop and Object-Method „file.CopyTo(DESTINATION_FOLDER, true);“

Solution – Lösung


public void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs)
{
    // Get the subdirectories for the specified directory.
    DirectoryInfo dir = new DirectoryInfo(sourceDirName);
    DirectoryInfo[] dirs = dir.GetDirectories();

    if (!dir.Exists)
    {
        throw new DirectoryNotFoundException(
            "Source directory does not exist or could not be found: "
            + sourceDirName);
    }

    // If the destination directory doesn't exist, create it.
    if (!Directory.Exists(destDirName))
    {
        Directory.CreateDirectory(destDirName);
    }

    // Get the files in the directory and copy them to the new location.
    FileInfo[] files = dir.GetFiles();
    foreach (FileInfo file in files)
    {
        string temppath = Path.Combine(destDirName, file.Name);
        file.CopyTo(temppath, true);
    }

    // If copying subdirectories, copy them and their contents to new location.
    if (copySubDirs)
    {
        foreach (DirectoryInfo subdir in dirs)
        {
            string temppath = Path.Combine(destDirName, subdir.Name);
            DirectoryCopy(subdir.FullName, temppath, copySubDirs);
        }
    }
}
Veröffentlicht unter .NET, C#, Programmierung | Hinterlasse einen Kommentar

Projektvorstellung: HTML5+Javascript+Canvas: Guitartabs.de/Tabulaturen.de – Anwendung zum Zeichnen von Tabulaturen (Gitarrennoten)

Intention

Im Proberaum mit Internetzugang ergab sich oft die Situation, in der man schnell ein paar Tabulaturen aufschreiben musste.
Tabulaturen.de soll einfach die nötigsten Werkzeuge liefern um eine druckfähige Tabulatur ohne großen Aufwand zu generieren.

Zielgruppenanalyse

Ranking für Tabulaturen und Guitartabs bei Google

Es ist ein stark rückläufiger Trend für die Suche nach Tabulaturen und Guitartabs zu verzeichnen. Ich vermute dass das Ventil der Suchenden nun vorwiegend YouTube-Videos sind, da man hier auch ein breites Spektrum an Tutorials für Lieder vorfindet.

Was in den meisten Fällen fehlt, wäre das Anreichern von den YouTube Videos mit Tabulaturen. Nun ist natürlich die Frage ob die Video irgendeine Legalitätslücke ausnutzen, da sie regelrecht sprießen. Darf jeder irgendein Lehrvideo machen wenn er keine Tabulaturen zeigt?

Weitere denkbare Projekte auf der Basis

Kapital vorhanden:
– Brainstorming Tool
– Projektmanagement (GANTT)
– UML
– Programmablaufpläne
– ER Diagramme (die normalen)
– Web Visio

Ohne Kapital
– Puzzle

To Do

  • Löschen von Tabs und Texten
  • Editieren von Texten
  • Taktstriche
  • Properties wie bei Objektinspektor für Tab (Tempo / Takt … )
  • Menü wie Online Word
  • MIDI Tonausgabe
  • Noten
  • Mehrere Seiten
  • Facebook login / Registrieren
  • Daten speichern
  • Druckqualität untersuchentabsymbols_ttf

 

Veröffentlicht unter Gitarre, Grafik, HTML/CSS, Javascript, Musik, Programmierung, Song Ideen, Spaß und Spiel | Hinterlasse einen Kommentar