Bei MS SQL Server 2012 Express und 2014 Express darf die maximale Datenbankgröße nur 10 GB betragen.
Problem
Wie findet man die Datenbankgröße heraus?
Ansatz
SQL Server Server Statement
Lösung – Solution
SELECT
database_name = DB_NAME(database_id)
, log_size_mb = CAST(SUM(CASE WHEN type_desc = 'LOG' THEN size END) * 8. / 1024 AS DECIMAL(8,2))
, row_size_mb = CAST(SUM(CASE WHEN type_desc = 'ROWS' THEN size END) * 8. / 1024 AS DECIMAL(8,2))
, total_size_mb = CAST(SUM(size) * 8. / 1024 AS DECIMAL(8,2))
FROM sys.master_files WITH(NOWAIT)
WHERE database_id = DB_ID() -- for current db
GROUP BY database_id
In der Vergangenheit habe ich viel über die Vorteile von Kondensatormikrofonen bei Aufnahmen von Gesang gelesen.
Im Internet sah ich einige positive Rezensionen über die Kondensatormikrofone RODE NT1-A, RODE NT2-A, RODE NT-1000 und RODE NT-2000. In Forenbeiträgen wurde das RODE NT-2000 mit besseren Klangeigenschaften anstelle des NT1-A oder NT2-A gepriesen, wobei das NT1-A angeblich bei der Aufnahme von Akkustikgitarren gute charakteristische Eigenschaften aufweisen soll.
Im Special der Zeitschrift KEYS 02/2015 wurde es in einer Übersicht der zehn bezahlbaren Alround-Studio-Arbeitstiere folgendermaßen beschrieben:
„Preisgünstig und im Klang auf eine positive Art und Weise so durchschnittlich, dass man es vor fast jedes Instrument hängen kann. Auch in der Nachberabeitung verhalten sich die Signale gutmütig. Als Sprechermikrofon bietet es einen angenehm steuerbaren Nahbesprechungseffekt und ausreichend Brillanz. Viel Mikro für wenig Geld, dazu kommt die für den Preis gute Verarbeitung.“
Nahbesprechungseffekt: Bei jedem Mikrofon, das über eine Richtwirkung verfügt, kommt es zum so genannten Nahbesprechungseffekt. Je näher die Schallquelle, etwa ein Sprecher, an die Membran des Mikrofons tritt, desto stärker werden die tiefen Frequenzen wiedergegeben – je nach Mikrofontyp und Abstand um bis zu 15 dB. Dies führt besonders bei Sprechern und Sängern zu einem allgemein als wärmer und dichter empfundenen Klang. Diese Form der Klangfärbung funktioniert aber auch bei anderen Signalen, wie etwa Gitarrenlautsprechern
Das RODE NT1-A verfügt also laut KEYS über gute Eigenschaften zur Aufnahme von Sprache und Instrumenten. In einigen Foren las ich, dass es auch für Gesang super geeignet sei, was allerdings auch von der Individualität der Stimme abhängt. Durch die Richtcharakteristik (goldener Punkt ist die Membranrichtung) existiert hier auch der Nahbesprechungseffekt.
Ich stand also letzte Woche im Musikhaus „Mollenhauer“ in Fulda, welches sich bei mir gleich um die Ecke befindet und das NT1-A als einziges RODE Mikro im Angebot hatte. Allerdings hat mich der Preis und die mangelende Professionalität meinerselbst beim Singen davon abgehalten, ein besseres Aufnahmemikro zu besorgen.
Da ich eigentlich nicht unbedingt zu den Niedrigverdienern gehöre, gerne mal etwas ausprobiere und gleichzeitig ungern Geld zum Fenster rausschmeisse, entschied ich mich also das gute Stück für 185 EUR zu kaufen. Im Internet gab es noch eine weitere Version der NT1-A Box, in der ein Ständer enthalten war. In Forenbeiträgen wurde über diesen Ständer negativ berichtet. Er würde leicht umkippen und instabil auf den Füßen stehen. Nun stellte sich für mich als erstes die Frage…
Lässt sich das Mikrofon an einem normalen Gesangsmikroständer montieren?
… also kaufen oder nicht kaufen….? Leider hatte ich keine Wahl, ich musste das Mikrofon kaufen! Also zack – Geld rausgehauen und ab nach Hause…
Als ich daheim ankam, konnte ich gleich meine erste positive Erfahrung machen:
Das Mikrofon passt mit der Nuss in einen Standardgesangsmikroständer!
Montiert sieht das gute Stück mit dem Puffschutz und der Spinne also so aus:
Als nächstes suchte ich auf meinem Line 6 KB37 also den Schalter, der die Phantomspeisung aktiviert. Dieser befindet sich in Form eines Schiebeschalters auf der Rückseite des Gerätes (neben dem Schiebeschalter für aktive/passive Speisung).
Die Phantomspeisung von 48 Volt wird über das Mikrofonkabel zum Kondensator geführt und ermöglicht das „Aufladen“ des Konsensators. Der Kondensator besteht aus 2 Platten, dessen „Kapazität“ sich bei Vergrößerung und Verkleinerung des Abstandes ändert. Eine Platte ist beweglich, ähnlich wie die Membrane bei einem dynamischen Gesangsmikrofon, nur das diese Beschaffenheit wesentlich natur- und detailgetreuer Aufnahmen mit brillianten Höhen ermöglichen soll.
Mein erster Aufnahmeversuch war allerdings sehr ernüchternd. Obwohl ich mich in einem kleinem Raum befinde, hallen die mit Rauhfasertapete bekleisterten Wände relativ stark. Das ist eine Detailtreue, die jede Aufnahme mit einem dynmaischen Gesangsmikro besser klingen lässt. Im nächsten Schritt nahm ich bei meiner Line 6 Software, die zusätzliche Charaktereigenschaften v0n Gesangsverstärkern und Mikros nachbilden soll alle Einstellungen dahingehend, das fast keine Effekte mehr vorhanden waren – Nachbearbeitung ist hier scheinbar besser. Also: Alle Effekte aus POD-Farm rausgenommen und ein bischen Gain mit Verstärker drauf hört sich hier am Besten an. Allerdings war der Raumhall immer noch detailiert auf den Aufnahmen zu hören. Ein dynamisches Mikro hat so etwas nie aufgezeichnet. Ich umschlung mich mit einer Decke, und deckte mich und das Mikrofon zu. Diese Aufnahme klang schon besser. Allerdings ist das sehr umbequem. Die Stelllampe in meinem Räumchen sollte nun als Bettdeckenhalter dienen – also fehlte mir noch eine weitere Bettdecke die ich dann von meiner Frau klaute. Ich hing sie über die Lampe und ging in eine Ecke, in der ich direkt gegen Büroordner singen konnte. Das war schon besser. So… was jetzt? So kann das nicht bleiben!
Ich studierte nun die beigelegte CD „Studio Secrets“, in der ein Tontechniker aus Detroit mit dem NT1-A und 2 Musikern klangliche Veränderungen demontriert, anhand der folgenden Parameter:
Raumanteil
Natürlicher Equalizer
Reduktion von Gesangsgeräuschen
Hohe Distanz zum Mikrofon
Niedrige Distanz zum Mikrofon
Frontales Einsingen (mit dem goldenen Punkt in Sichtrichtung Sänger)
Seitliches Einsingen (durch seitliches Drehen -> der goldene Punkt ragt zur Seite)
Mit Puffschutz
Ohne Puffschutz
Nun bestellte ich 3 mm dicke 2000mm x 1000mm-Noppenschaummatten im Musikhaus Mollenhauer, die ja bekanntlich eine gute Schallisolierung bieten sollen. Die erste Matte nagelte ich mit kleinen Reiszwecken an die Wand, die zweite Matte wollte ich an einer Stellwand festkleben, so dass ich den Raum künstlich verkleinern und trotzdem gegen eine Akkustikwand singen kann. Dafür ließ ich mir im OBI eine 2m x 1m Meter Sperrholzrückwand (wie sie z.B. in einem typischen IKEA-Schrank verwendet wird ) zuschneiden. Mit 3 2-Meter Latten, von denen ich mir eine zwecks Querverstrebung halibieren ließ, verstärkte ich die dir Rückwand. Hierdurch erhielt ich eine transportable, leichtgewichtige 2m x 1m Wand.
Das Ergebnis sieht so aus:
Die Kosten hierfür betrugen:
Ort
Artikel
Anzahl
Gesamtpreis
OBI
Sperrholzrückwand inklusive Zuschnitt auf 1m x 1m
2
7,50 EUR
OBI
2m Latte
3
5,10 EUR
OBI
Kleine Spak’s Schrauben
100
2,50 EUR
Musikhaus
2m x 1m Noppenschaum
2
42 EUR
Total:
57,10 EUR
Hier noch ein kleines, effektives Update mit 2 St. 1mx1m-Schaumstoffmatten, welches zusätzlich den Hall von Boden und Decke reduziert. Das Ergebnis lässt sich hören.
Man kann die Wand sowie die Decke ohne Befestigung aneinanderstellen.
Zusätzlich benutze ich jetzt noch eine Stelllampe, mit der ich auf einem Brett meine Bettdecke hinter mich hänge. Der Raum sollte übrigens nicht völlig absorbieren, sondern den störenden Nachhall reduzieren, der von glatten Wänden reflektiert wird. In einem interessanten Videobeitrag von Musotalk „Stimme zu Hause aufnehmen“ wird darüber gesprochen, dass es aber nicht das Ziel ist 100 Prozent des Raumes zu absorbieren, nachdem der Vorschlag eines Rekordinghelms mit Noppenschaum gemacht wurde.
Das Video befindet sich hier:
Als Kommentar unter einem Musotalk Video gab es auch: Ich benutze 3 alte Mikrofonständer und behänge diese mit Decken (nochmal als Alternative falls alte Decken und Mikroständer da sind).
Der SQL Server erlaubt keine Zugriffe über einen Connectionstring.
Microsoft SQL Server does not allow
Analyse
Also Standardauthentifizierungsmethode ist „Windows Authentication“ ausgewählt. Man benötigt „SQL Authentication„, was als „mixed mode“ im Microsoft SQL Server Kontext genannt wird.
Vorgehensweise
1.) Öffnen Sie Microsoft SQL Server Management Studio Express und klicken Sie mit der rechten Maustaste auf den Server Knoten.
2.) Im Navigationsmenü auf der linken Seite wählen Sie den Punkt „Security“ aus und sehen die folgenden Einstellungen, in denen Sie „mixed mode“ aktivieren können, um Zugriffe per Connectionstring grundsätzlich zu erlauben.
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
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.
Eclipse starten
Workspace direkt im WWW root auswählen (bspw. bei Installation in c:\dev\wamp)
Mit OK bestätigen
Im Menü „Window -> Preferences“ wählen
PHP Executable hinzufügen
PHP Executable angeben
Unten auf den Button „Next->“ klicken (nicht im Screenshot da Edit-Dialog)
Debugger angeben -> XDebug auswählen!
Mit okay bestätigen
Einstellungen unter Menu->Preferences->Debug überprüfen (ist der angelegte Debugger aktiviert?).
Web Browser angeben (ich empfehle Google Chrome)
Neues PHP Projekt anlegen
Folgende Einstellungen tätigen
Rechtklick auf das neu angelegte Projekt -> New -> PHP File
Die Datei beispielsweise index.php benennen
Test-Sourcecode in index.php einfügen
<?php
$i=0;
$i++;
$i=$i+1;
print $i;
?>
Breakpoint setzen (Doppelklick links neben die Zeile)
Debug Configuration für die Website anlegen (rechts neben die Debug Wanze klicken -> Debug Configurations)
Debug Configurations -> PHP Web Application -> index -> Server Die 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.
Debug Configurations -> PHP Web Application -> 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!
Debug Button klicken
Bestätigen dass auf die PHP Debug Perspektive gewechselt wird
Für das Javascript-Debugging Empfehle ich dringend den ausgereiften Chrome Javascript Debugger zu verwenden. Dieser lässt sich in Chrome folgendermaßen starten:
Hier kann man Breakpoints setzen und den Objektbaum jederzeit einsehen:
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);
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
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
2.) Einen Rollenservice auf dem IIS-Unterpunkt hinzufügen
3.) Auswahl der Authentifizierungsmethode
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.
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:
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