Hier ist eine Javascript-Implementierung der 2D Color Graphs von Timo Krotzky.
Aufbau und Betrieb eines Informationssicherheitsmanagementsystems (ISMS) für KRITIS-Betreiber
Problem
Alle KRITIS-Betreiber müssen seit 30.6.2019 laut IT-Sicherheitsgesetz alle 2 Jahren dem „Bundesamt für Sicherheit in der Informationstechnik“ die Unbedenklichkeit Ihrer IT Infrastruktur nachweisen. Im Zuge dessen können diese eine prüfende Stelle (interne Revision / externe Beratungsgesellschaft) beauftragen, welche die Maßnahmen des bspw. ISMS auditiert.
Ansatz
Um den Aufbau eines ISMS zu erleichtern bietet sich die folgende Vorgehensweise an:

Meine Aufgabe heute: Erklären Sie das Arrangement von Bohemian Rhapsody am Beispiel des Bieres
Aufgabenstellung
Ein Bekannter von mir gab mir die Aufgabe das Arrangements von Bohemian Rhapsody exemplarisch anhand des Bieres zu erklären.
Ansatz – Approach
- Analyse des Originals
- Bestimmung des Zielkanals –> YouTube
- Heraushören des Arrangements des Originals
- Intro
- Ballade
- Solo
- Opernteil
- Hardrockteil
- Outro
- Heraushören der einzelnen Instrumentenspuren
- Einrichten der DAW in Form eines Cubase-Projektes
- Programmierung der MIDI Instrumente
- Klavier
- Schlagzeug
- Festlegung der Tempospur
- 72 bpm
- 137 bpm
- 90 – 60 bpm
- Aufnahme der Audiospuren
- Bass
- Solo-Gitarren
- Riff-Gitarren
- Gesangsspuren
- Home-Mixing und -Mastering der Spuren
- Ausleitung als WAV-Datei
- Programmierung der MIDI Instrumente
- Einrichtung eines Video-Editor-Projektes
- Aufnahme von Handy-Videospuren vor einer Greenwall (Galaxy S9)
- Schnitt und Arrangement der Videospuren
- Produzieren des Videos
- Upload zu YouTube
Lösung – Solution
Intro ===== Ist es ein Bierchen in meiner Fantasie Und macht mich sehr breit König der Hydrologie Führ es zum Hals Fühl das Gerstenmalz und zieeeeeeeeeeh Ich brauch nur Bierchen ich brauch keine Sympathie Weils wie Wasser läuft sich gut säuft bisschen viel schönes Spiel Doch dort wo das Bier fließt ist mir das egal - ich wills ich wills Papa killte ein Pils setztes an und trank es leer und nun hab ich keines mehr Balladenteil ============ Papa ich hatt' so nen Durst doch scheinbar war dir der jetz völlig Wurst Papa uhuuuhuuuu Ich wollte ein Bier doch du vernichtest es zu schnell was soll das lass es doch - lass es doch ich will doch nur auch eins1 Zu spät schon alles leer ich geh schiffen in das Meer völlig durstig es ist schwer Machts gut Saufkumpanen ich muss jetzt gehen lass euch hinter mir zurück denn die Pflicht die ruft Papa uhuuhuuuuu ich such noch ein Bier Manchmal wünscht ich ich wär nie geboren Soloteil ======== (Solo) Opernteil ========= Ich sah die Silhouette einer Flasche geh schnell hin trink sie aus bevor sie bald weg ist denn wenn sie dann weg ist hast du keines mehr - oje Ich bin schneller, Ich bin schneller, Ich bin schneller, Ich bin schneller, Ich bin als du - gib mir das Pils Ich bin ein armer Mann ständig such ich Bier Er ist ein armer Mann ständig sucht er Bier doch keiner gibt ihm mal ein Bierchen schnelll her Helles Pils - dunkles Pils ich trink es was solls Er trinkt was solls und darauf ist er stolz lass ihn ruhig Er trinkt was solls und darauf ist er stolz lass ihn ruhig und darauf ist er stolz lass ihn ruhig Bier, Bier, Bier, Bier, Bier, Bier, Bier Die Pizzaria Mama Mia Pizzaria hat schon zu Der Belzebub, macht Heißhunger auf das Bier Das Bier Das Bier Das Bier Hardrockteil ============ So du denkst du lässt mich trocken sitzen und gehst So du denkst dass ich dass schon irgendwie versteh' Oh Baby - tu mir das nicht an baby - Geh einfach raus - geh einfach raus du sollst gehn Outro ===== Ich trink auch mal Schnäppes - ich trink auch mal SChnäppes - ich trink auch mal Schnappes - und Bier
QWare Risk Manager SQL Statements / Query
The following statements can be used to get the Risk Measure Tree from the Bayoonet QWare Risk Manager
First you should create the view QWareSegment:
SELECT QwareRiskmanager.dbo.Project.ProjectNo, QwareRiskmanager.dbo.Project.ProjectTitle, QwareRiskmanager.dbo.Version.VersionId AS ProjectVersion,
QwareRiskmanager.dbo.Version.ProductVersion, QwareRiskmanager.dbo.FunctionSet.Type, QwareRiskmanager.dbo.FunctionSetFunction.FunctionNo,
QwareRiskmanager.dbo.[Function].Description AS FunctionDescription, QwareRiskmanager.dbo.FunctionHazard.HazardNo,
QwareRiskmanager.dbo.Hazard.Description AS HazardDescription, QwareRiskmanager.dbo.FunctionHazardCause.CauseNo,
QwareRiskmanager.dbo.Cause.Description AS CauseDescription, QwareRiskmanager.dbo.Measure.Description AS MeasureDescription,
QwareRiskmanager.dbo.FunctionHazardCauseMeasure.MeasureNo, QwareRiskmanager.dbo.Measure.NewMeasureNo,
QwareRiskmanager.dbo.FunctionSetFunction.FunctionId, QwareRiskmanager.dbo.FunctionHazard.HazardId, QwareRiskmanager.dbo.FunctionHazardCause.CauseId,
QwareRiskmanager.dbo.FunctionHazardCauseMeasure.MeasureId, seva.Abbreviation AS AfterSeverityAbbreviation,
sevb.Abbreviation AS BeforeSeverityAbbreviation, propa.Abbreviation AS AfterProbabilityAbbreviation, propb.Abbreviation AS BeforeProbabilityAbbreviation,
QwareRiskmanager.dbo.FunctionHazardCause.CommentAfter, QwareRiskmanager.dbo.FunctionHazardCause.CommentBefore
FROM QwareRiskmanager.dbo.Project LEFT OUTER JOIN
QwareRiskmanager.dbo.Version ON QwareRiskmanager.dbo.Project.ProjectId = QwareRiskmanager.dbo.Version.ProjectId LEFT OUTER JOIN
QwareRiskmanager.dbo.FunctionSet ON QwareRiskmanager.dbo.Version.VersionId = QwareRiskmanager.dbo.FunctionSet.VersionId LEFT OUTER JOIN
QwareRiskmanager.dbo.FunctionSetFunction ON
QwareRiskmanager.dbo.FunctionSet.FunctionSetId = QwareRiskmanager.dbo.FunctionSetFunction.FunctionSetId LEFT OUTER JOIN
QwareRiskmanager.dbo.[Function] ON QwareRiskmanager.dbo.FunctionSetFunction.FunctionId = QwareRiskmanager.dbo.[Function].FunctionId LEFT OUTER JOIN
QwareRiskmanager.dbo.FunctionHazard ON
QwareRiskmanager.dbo.FunctionSetFunction.FunctionSetFunctionId = QwareRiskmanager.dbo.FunctionHazard.FunctionSetFunctionId LEFT OUTER JOIN
QwareRiskmanager.dbo.FunctionHazardCause ON
QwareRiskmanager.dbo.FunctionHazard.FunctionHazardId = QwareRiskmanager.dbo.FunctionHazardCause.FunctionHazardId LEFT OUTER JOIN
QwareRiskmanager.dbo.FunctionHazardCauseMeasure ON
QwareRiskmanager.dbo.FunctionHazardCause.FunctionHazardCauseId = QwareRiskmanager.dbo.FunctionHazardCauseMeasure.FunctionHazardCauseId LEFT OUTER
JOIN
QwareRiskmanager.dbo.Measure ON
QwareRiskmanager.dbo.FunctionHazardCauseMeasure.MeasureId = QwareRiskmanager.dbo.Measure.MeasureId LEFT OUTER JOIN
QwareRiskmanager.dbo.Hazard ON QwareRiskmanager.dbo.FunctionHazard.HazardId = QwareRiskmanager.dbo.Hazard.HazardId LEFT OUTER JOIN
QwareRiskmanager.dbo.Cause ON QwareRiskmanager.dbo.FunctionHazardCause.CauseId = QwareRiskmanager.dbo.Cause.CauseId LEFT OUTER JOIN
QwareRiskmanager.dbo.Severity AS seva ON QwareRiskmanager.dbo.FunctionHazardCause.SeverityAfterId = seva.SeverityId AND
QwareRiskmanager.dbo.Version.VersionId = seva.VersionId LEFT OUTER JOIN
QwareRiskmanager.dbo.Severity AS sevb ON QwareRiskmanager.dbo.FunctionHazardCause.SeverityBeforeId = sevb.SeverityId AND
QwareRiskmanager.dbo.Version.VersionId = sevb.VersionId LEFT OUTER JOIN
QwareRiskmanager.dbo.Probability AS propa ON QwareRiskmanager.dbo.FunctionHazardCause.ProbabilityAfterId = propa.ProbabilityId AND
QwareRiskmanager.dbo.Version.VersionId = propa.VersionId LEFT OUTER JOIN
QwareRiskmanager.dbo.Probability AS propb ON QwareRiskmanager.dbo.FunctionHazardCause.ProbabilityBeforeId = propb.ProbabilityId AND
QwareRiskmanager.dbo.Version.VersionId = propb.VersionId
After that you should create the view QWareImport that gives us the Risk Measure Tree:
CREATE VIEW [dbo].[QWareImport]
AS
SELECT CAST(REPLACE(RTRIM(REPLACE((ISNULL(FunctionNo, '') + '+' + ISNULL(HazardNo, '') + '+' + ISNULL(CauseNo, '') + '+' + ISNULL(MeasureNo, '')), '+', ' ')), ' ', '+')
AS varchar(255)) AS BB_ItemID, CAST(ProjectNo AS varchar(255)) AS ProjectNo, CAST(ProjectVersion AS varchar(255)) AS ProjectVersion,
CAST(ProductVersion AS varchar(255)) AS ProductVersion, ISNULL(CAST(FunctionId AS varchar(255)), '') AS FunctionId, ISNULL(CAST(FunctionNo AS varchar(255)), '')
AS BB_FID, ISNULL(CAST(FunctionDescription AS varchar(2048)), '') AS BB_FText, ISNULL(CAST(HazardId AS varchar(255)), '') AS HazardId,
ISNULL(CAST(HazardNo AS varchar(255)), '') AS BB_HID, ISNULL(CAST(HazardDescription AS varchar(2048)), '') AS BB_HText, ISNULL(CAST(CauseId AS varchar(255)),
'') AS CauseId, ISNULL(CAST(CauseNo AS varchar(255)), '') AS BB_CID, ISNULL(CAST(CauseDescription AS varchar(2048)), '') AS BB_CText,
ISNULL(CAST(MeasureId AS varchar(255)), '') AS MeasureId, ISNULL(CAST(MeasureNo AS varchar(255)), '') AS BB_MID,
ISNULL(CAST(MeasureDescription AS varchar(2048)), '') AS BB_MText, ISNULL(CAST(AfterSeverityAbbreviation AS varchar(255)), '') AS BB_EAM_Severity,
ISNULL(CAST(BeforeSeverityAbbreviation AS varchar(255)), '') AS BB_EBM_Severity, ISNULL(CAST(AfterProbabilityAbbreviation AS varchar(255)), '')
AS BB_EAM_Probability, ISNULL(CAST(BeforeProbabilityAbbreviation AS varchar(255)), '') AS BB_EBM_Probability, ISNULL(CAST(CommentAfter AS varchar(2048)), '')
AS BB_CCommentAM, ISNULL(CAST(CommentBefore AS varchar(2048)), '') AS BB_CCommentBM, ISNULL(CAST(NewMeasureNo AS varchar(2048)), '')
AS BB_MNr
FROM DT_Qware.dbo.QWareSegment
UNION
SELECT CAST(REPLACE(RTRIM(REPLACE((ISNULL(FunctionNo, '') + '+' + ISNULL(HazardNo, '') + '+' + ISNULL(CauseNo, '')), '+', ' ')), ' ', '+') AS varchar(255)) AS BB_ItemID,
CAST(ProjectNo AS varchar(255)) AS ProjectNo, CAST(ProjectVersion AS varchar(255)) AS ProjectVersion, CAST(ProductVersion AS varchar(255)) AS ProductVersion,
ISNULL(CAST(FunctionId AS varchar(255)), '') AS FunctionId, ISNULL(CAST(FunctionNo AS varchar(255)), '') AS BB_FID,
ISNULL(CAST(FunctionDescription AS varchar(2048)), '') AS BB_FText, ISNULL(CAST(HazardId AS varchar(255)), '') AS HazardId,
ISNULL(CAST(HazardNo AS varchar(255)), '') AS BB_HID, ISNULL(CAST(HazardDescription AS varchar(2048)), '') AS BB_HText, ISNULL(CAST(CauseId AS varchar(255)),
'') AS CauseId, ISNULL(CAST(CauseNo AS varchar(255)), '') AS BB_CID, ISNULL(CAST(CauseDescription AS varchar(2048)), '') AS BB_CText, '' AS MeasureId,
'' AS BB_MID, '' AS BB_MText, '' AS BB_EAM_Severity, '' AS BB_EBM_Severity, '' AS BB_EAM_Probability, '' AS BB_EBM_Probability, '' AS BB_CCommentAM,
'' AS BB_CCommentBM, '' AS BB_MNr
FROM DT_Qware.dbo.QWareSegment
UNION
SELECT CAST(REPLACE(RTRIM(REPLACE((ISNULL(FunctionNo, '') + '+' + ISNULL(HazardNo, '')), '+', ' ')), ' ', '+') AS varchar(255)) AS BB_ItemID, CAST(ProjectNo AS varchar(255))
AS ProjectNo, CAST(ProjectVersion AS varchar(255)) AS ProjectVersion, CAST(ProductVersion AS varchar(255)) AS ProductVersion,
ISNULL(CAST(FunctionId AS varchar(255)), '') AS FunctionId, ISNULL(CAST(FunctionNo AS varchar(255)), '') AS BB_FID,
ISNULL(CAST(FunctionDescription AS varchar(2048)), '') AS BB_FText, ISNULL(CAST(HazardId AS varchar(255)), '') AS HazardId,
ISNULL(CAST(HazardNo AS varchar(255)), '') AS BB_HID, ISNULL(CAST(HazardDescription AS varchar(2048)), '') AS BB_HText, '' AS CauseId, '' AS BB_CID,
'' AS BB_CText, '' AS MeasureId, '' AS BB_MID, '' AS BB_MText, '' AS BB_EAM_Severity, '' AS BB_EBM_Severity, '' AS BB_EAM_Probability,
'' AS BB_EBM_Probability, '' AS BB_CCommentAM, '' AS BB_CCommentBM, '' AS BB_MNr
FROM DT_Qware.dbo.QWareSegment
UNION
SELECT CAST(REPLACE(RTRIM(REPLACE((ISNULL(FunctionNo, '')), '+', ' ')), ' ', '+') AS varchar(255)) AS BB_ItemID, CAST(ProjectNo AS varchar(255)) AS ProjectNo,
CAST(ProjectVersion AS varchar(255)) AS ProjectVersion, CAST(ProductVersion AS varchar(255)) AS ProductVersion, ISNULL(CAST(FunctionId AS varchar(255)), '')
AS FunctionId, ISNULL(CAST(FunctionNo AS varchar(255)), '') AS BB_FID, ISNULL(CAST(FunctionDescription AS varchar(2048)), '') AS BB_FText, '' AS HazardId,
'' AS BB_HID, '' AS BB_HText, '' AS CauseId, '' AS BB_CID, '' AS BB_CText, '' AS MeasureId, '' AS BB_MID, '' AS BB_MText, '' AS BB_EAM_Severity,
'' AS BB_EBM_Severity, '' AS BB_EAM_Probability, '' AS BB_EBM_Probability, '' AS BB_CCommentAM, '' AS BB_CCommentBM, '' AS BB_MNr
FROM DT_Qware.dbo.QWareSegment
To query a unique Risk Project in the appropriate version you have to perform the following selection
SELECT BB_ItemID,
ProjectVersion,
ProductVersion,
FunctionId,
BB_FID,
BB_FText,
HazardId,
BB_HID,
BB_HText,
CauseId,
BB_CID,
BB_CText,
MeasureId,
BB_MID,
BB_MText,
BB_EAM_Severity,
BB_EBM_Severity,
BB_EAM_Probability,
BB_EBM_Probability,
BB_CCommentAM,
BB_CCommentBM,
BB_MNr
FROM DP_Qware.dbo.QWareImport
WHERE ProjectNo='**ProjectNo**' AND ProductVersion='**ProductVersion**'
ORDER BY 1
Atlassian JIRA mit MS SQL : Select the text, date or string value from a custom field of an issue
Problem
A string, date or a text-value of an custom field shall be retrieved from an issue
Solution
SELECT pk.PROJECT_KEY+'-'+CAST(ji.issuenum AS varchar(max)) as issue,
cfv.STRINGVALUE,
cfv.TEXTVALUE,
cfv.DATEVALUE
FROM jiraissue ji
INNER JOIN customfieldvalue cfv ON ji.id=cfv.issue
INNER JOIN project_key pk ON ji.PROJECT=pk.PROJECT_ID
WHERE pk.PROJECT_KEY+'-'+CAST(ji.issuenum AS varchar(max))='AT-15'
AND cfv.CUSTOMFIELD=(SELECT TOP 1 id FROM customfield WHERE cfname='Requested document')
Atlassian JIRA MS SQL Server: Get Affects version or fixed version from the Database by query
Problem
To fetch the values „Affects version“ or „Fixed Version“ from the JIRA Database via SQL, the use of different relations/tables is necessary
Solution – Lösung
You can use the ASSOCIATION_TYPE=’IssueVersion‘ for Affects version and ASSOCIATION_TYPE=’IssueFixVersion‘ to get the Fixed version
The next example shows how to retrieve Affects Version for Issue-ID AT-15:
SELECT projectversion.id, vname, project_key.PROJECT_KEY+'-'+CAST(jiraissue.issuenum AS varchar(max)) as pkey, ASSOCIATION_TYPE
FROM projectversion, nodeassociation, jiraissue, project_key
WHERE SINK_NODE_ID = projectversion.id
AND SOURCE_NODE_ID = jiraissue.id
AND project_key.PROJECT_ID=jiraissue.PROJECT
AND ASSOCIATION_TYPE='IssueVersion'
AND project_key.PROJECT_KEY+'-'+CAST(jiraissue.issuenum AS varchar(max))='AT-15'
My Halloween-Musikvideo: Let’s break the law tonight (The Purge)
Oh nein – ich hab schon wieder ein Heim-Musikvideo verbrochen, dass die Welt nicht braucht 😀 … Aber wie soll man sonst auch die Social Funktionen von YouTube testen können? Die scheinen sich ja darauf zu beschränken, das man nur über Videos interagieren und Likes/Dislikes/Kommentare dort hinterlassen kann.
Da es ja scheinbar für YouTube-Neueinsteiger schwierig ist mit dem Suchalgorithmus ein entsprechendes Ranking zu erhalten, habe ich mal die Tipps befolgt und ein auffälliges Thumbnail, in dem ich eine Pseudo-Bierwerbung für ein Fuldaer Lokalbier mache (Frauenberger Frohnatur), erstellt . Ob sich die Leute / der Algorithmus davon überzeugen lässt ist allerdings noch fragwürdig ;-).
Wie gut dass das Internet voll von Verrückten ist, da fällt man doch selber gar nicht mehr auf:
Gitarre: Ich
Bass: Ich
Schlagzeug: Ich
Gesang: Ich
IBM Doors DXL: Layout DXL where the traceability wizard fails
Problem
In some cases you will run into trouble when you want to use the standard function of Doors to create a traceability for a depth of 2 that is not going into the same direction. To solve this problem the implementation of an own Layout DXL is necessary.
The example below shows the situation with depth 2 and the same Linkmodule in which you can use the standard function to create a Layout DXL column:
The next situation, which is not possible to master with the standard doors function, shows the problem where depth two with two different direction and link module types gives the needed traceability information for the report.
Approach – Ansatz
To get the needed traceability information within a module, you can add a layout dxl column by clicking on the column header of the current selected view in the module and add a layout DXL column. This layout DXL column can iterate through the outgoing modules of the current object, catch all objects that are linked and look for incoming links on it.
Solution – Lösung
//
/*******************************************************************************
* Author: Björn Karpenstein
* Stakeholder: Björn Karpenstein
*
* Subversion
* ===================================================
* $Rev:: $: Revision of last commit
* $Author:: $: Author of last commit
* $Date:: $: Date of last commit
*
* Change Control
* ==============
* n/a
*
* Description
* ===========
* This script gives the traceability over 2 modules with two different diection
* and module types
*******************************************************************************/
string firstLinkModule = "/Product Lifecycle Management/10 Administration/Create";
string secondLinkModule = "/Product Lifecycle Management/10 Administration/Triggers";
Skip dublettenRaus=createString;
pragma encoding,"UTF-8";
pragma runLim, 0;
//Object obj=current;
Link lnk;
Link inLnk;
LinkRef lnkRef;
ModName_ otherMod = null;
for lnk in obj->firstLinkModule do
{
string tmn=fullName target(lnk);
if(!open module tmn)
{
read(tmn,false);
}
Object keypoint = target(lnk);
//display identifier(keypoint) "\n";
if(null keypoint)
{
//display "no link to keypoint";
}
else
{
//display "keypoint : " identifier(keypoint) "";
for lnkRef in keypoint<-secondLinkModule do
{
//display "drin";
otherMod = module (sourceVersion lnkRef);
if (!null otherMod)
{
if ((!isDeleted otherMod) && (null data(sourceVersion lnkRef)))
{
load((sourceVersion lnkRef),false);
}
}
}
for inLnk in keypoint<-secondLinkModule do
{
// Get In-Link Object
Object phase = source inLnk;
if ( isDeleted(phase) || null(phase) ) continue;
string dummy="";
if(!find(dublettenRaus, phase."Object Text" "", dummy))
{
put(dublettenRaus, phase."Object Text" "", phase."Object Text" "");
}
}
}
}
int phaseCounter=0;
// Iteration through the SkipList
for myIterator in dublettenRaus do
{
string keyValue = (string key(dublettenRaus));
string currentObject = null;
if(find(dublettenRaus, keyValue, currentObject))
{
display keyValue;
}
}
delete dublettenRaus;
IBM Doors DXL: Check if (current) module is in edit
// Stores the current opened module in m
Module m = current;
// Auf EDIT umschalten
if(!isEdit(m))
{
m= edit(fullName(m),true);
}
IBM Doors DXL: Object creation
Create first object of module
// Get the current selected module
Module m = current;
// Create first object of module
Object firstObjectInModule = create(m);
Create hierarchically objects
// Create child object of firstObj
Object childObjOfFirst = create below(firstObj);
// Create last Object (this will generate an error
// if the object has no children present
Object lastChildObjOfFirst = create last(firstObj);
// Creates a new object on the same level as firstObj
Object newObjectOnSameLevel = create after(firstObj);