<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rene Windegger</title>
	<atom:link href="https://www.windegger.wtf/de/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.windegger.wtf/de/</link>
	<description>Welcome to Freedom</description>
	<lastBuildDate>Tue, 20 Feb 2024 15:40:32 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.7.11</generator>
	<item>
		<title>Die Entwirrung der Kunst der C++ Verschleierung: Code-Sicherung in einem kryptischen Web</title>
		<link>https://www.windegger.wtf/de/2024/02/die-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web/?pk_campaign=feed&#038;pk_kwd=die-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web</link>
					<comments>https://www.windegger.wtf/de/2024/02/die-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web/?pk_campaign=feed&#038;pk_kwd=die-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web#respond</comments>
		
		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Tue, 20 Feb 2024 15:40:28 +0000</pubDate>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Obfuscation]]></category>
		<guid isPermaLink="false">https://www.windegger.wtf/?p=4952</guid>

					<description><![CDATA[<p>In der dynamischen Landschaft der Cybersicherheit hat der Schutz von Softwarecode vor neugierigen Blicken höchste Priorität. Die C++ Verschleierung tritt als raffinierte Technik auf, die von Entwicklern verwendet wird, um ihren Quellcode zu verschleiern und es Hackern sowie Reverse-Engineering-Spezialisten zu erschweren, diesen zu verstehen und zu manipulieren. Dieser kryptografische Ansatz</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2024/02/die-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web/?pk_campaign=feed&#038;pk_kwd=die-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web">Die Entwirrung der Kunst der C++ Verschleierung: Code-Sicherung in einem kryptischen Web</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2024%2F02%2Fdie-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Ddie-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web&amp;action_name=Die+Entwirrung+der+Kunst+der+C%2B%2B+Verschleierung%3A+Code-Sicherung+in+einem+kryptischen+Web&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[<img src="" style="float:right;" align="right" />
<p>In der dynamischen Landschaft der Cybersicherheit hat der Schutz von Softwarecode vor neugierigen Blicken höchste Priorität. Die <a href="https://www.antispy.xyz/">C++ Verschleierung</a> tritt als raffinierte Technik auf, die von Entwicklern verwendet wird, um ihren Quellcode zu verschleiern und es Hackern sowie Reverse-Engineering-Spezialisten zu erschweren, diesen zu verstehen und zu manipulieren. Dieser kryptografische Ansatz verwandelt den herkömmlichen C++-Code in ein undurchsichtiges Labyrinth und erhöht so die Gesamtsicherheit von Anwendungen.</p>



<p>Die C++ Verschleierung beinhaltet die gezielte Einführung von Komplexitäten und Redundanzen in den Quellcode, ohne dabei dessen Funktionalität zu beeinträchtigen. Dieser Ansatz zielt darauf ab, Reverse-Engineering-Versuche zu vereiteln und es unbefugten Entitäten außerordentlich schwer zu machen, die ursprüngliche Logik zu entschlüsseln. Verschleierter Code kann verworrene Kontrollstrukturen und die strategische Einfügung irreführender Code-Konstrukte enthalten, wodurch ein komplexes Labyrinth für jeden entsteht, der versucht, die Software zu analysieren.</p>



<p>Eines der Hauptmotive für die C++ Verschleierung besteht darin, geistiges Eigentum und proprietäre Algorithmen zu schützen. Unternehmen, die erhebliche Ressourcen in die Entwicklung innovativer Lösungen investieren, suchen oft nach Möglichkeiten, zu verhindern, dass Konkurrenten oder bösartige Akteure ihren Code leicht verstehen und replizieren können. Die Verschleierung bietet eine zusätzliche Schutzschicht, indem sie den Code für selbst erfahrene Reverse-Engineering-Experten undurchschaubar macht.</p>



<p>Darüber hinaus kann verschleierter Code nicht autorisierte Änderungen abschrecken und vor Schwachstellen schützen, die von Angreifern ausgenutzt werden könnten. Durch die Einführung der Verschleierung können Entwickler das Risiko von Code-Manipulationen verringern, sicherstellen, dass die Software wie beabsichtigt funktioniert, und die Wahrscheinlichkeit von Sicherheitsverstößen reduzieren.</p>



<p>Trotz ihrer Vorteile ist die C++ Verschleierung nicht ohne Herausforderungen. Das Debuggen von verschleiertem Code wird für Entwickler zu einer komplexeren Aufgabe, da herkömmliche Tools Schwierigkeiten bei der Analyse der verworrenen Struktur haben können. Darüber hinaus kann die Leistungseinbuße, die durch verschleierten Code entsteht, ein zu berücksichtigender Faktor sein, obwohl Fortschritte in den Verschleierungstechniken darauf abzielen, diese Auswirkungen zu minimieren. Zusammenfassend steht die C++ Verschleierung als mächtiger Verbündeter im fortlaufenden Kampf um die Sicherheit von Software. Während Entwickler bestrebt sind, ihren Code vor Reverse Engineering und unbefugtem Zugriff zu schützen, bietet die Kunst der Verschleierung ein effektives Mittel, um die Integrität und Vertraulichkeit von proprietärer Software zu gewährleisten. In der sich ständig weiterentwickelnden Welt der Cybersicherheit erweist sich die C++ Verschleierung als kryptischer Schild, der wertvollen Code in einem Schleier aus Komplexität und Widerstandsfähigkeit verbirgt.</p>
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2024%2F02%2Fdie-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Ddie-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web&amp;action_name=Die+Entwirrung+der+Kunst+der+C%2B%2B+Verschleierung%3A+Code-Sicherung+in+einem+kryptischen+Web&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" /><p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2024/02/die-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web/?pk_campaign=feed&#038;pk_kwd=die-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web">Die Entwirrung der Kunst der C++ Verschleierung: Code-Sicherung in einem kryptischen Web</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/de/2024/02/die-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web/?pk_campaign=feed&#038;pk_kwd=die-entwirrung-der-kunst-der-c-verschleierung-code-sicherung-in-einem-kryptischen-web/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Release RabbitExpress</title>
		<link>https://www.windegger.wtf/de/2019/05/release-rabbitexpress/?pk_campaign=feed&#038;pk_kwd=release-rabbitexpress</link>
					<comments>https://www.windegger.wtf/de/2019/05/release-rabbitexpress/?pk_campaign=feed&#038;pk_kwd=release-rabbitexpress#respond</comments>
		
		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Thu, 02 May 2019 10:34:41 +0000</pubDate>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C# How To]]></category>
		<category><![CDATA[RabbitMQ]]></category>
		<guid isPermaLink="false">https://www.windegger.wtf/?p=2880</guid>

					<description><![CDATA[<p>Welcome back everyone. You didn&#8217;t hear from me in a long time. But now I have something to share with you. It&#8217;s time to unveil RabbitExpress. During the last years I was working on different projects, most of them involving non disclosure agreements. That&#8217;s why it took some time for me</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2019/05/release-rabbitexpress/?pk_campaign=feed&#038;pk_kwd=release-rabbitexpress">Release RabbitExpress</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2019%2F05%2Frelease-rabbitexpress%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Drelease-rabbitexpress&amp;action_name=Release+RabbitExpress&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[<p><img src="" style="float:right;" align="right" />Welcome back everyone. You didn&#8217;t hear from me in a long time. But now I have something to share with you. It&#8217;s time to unveil <strong>RabbitExpress</strong>.</p>
<p>During the last years I was working on different projects, most of them involving non disclosure agreements.</p>
<p>That&#8217;s why it took some time for me to reappear. During that time I did some side development that got obsoleted by the European parliament when accepting the <a href="https://en.wikipedia.org/wiki/Directive_on_Copyright_in_the_Digital_Single_Market" target="_blank" rel="noopener noreferrer">Directive on Copyright in the Digital Single Market</a>.</p>
<p>When looking over the accumulated repositories a small little class caught my attention. It was not much but a neat little thing.</p>
<p>I started to ask around if it&#8217;s ok to LGPL the code. The feedback was good. So I started to extract the code into a fresh repository. The <a href="https://github.com/rwindegger/RabbitExpress" target="_blank" rel="noopener noreferrer">GitHub repository</a> was born.<span id="more-2880"></span></p>
<h2>Starting an Open Source project</h2>
<p>Starting an open source project is very straight forward. GitHub offers great support to get you started. And even offers you help to select the right license for your requirements.</p>
<p>The next thing after setting up the repository is getting a build setup. One of the easier ways to get going for your .Net project is using a service <a href="https://ci.appveyor.com/project/rwindegger/rabbitexpress" target="_blank" rel="noopener noreferrer">like appveyor.com</a>. Setting up the build is very straight forward and happens in a nice integrate user interface. You select a repository from your linked GitHub account adjust some settings and the build is working.</p>
<p>After being able to build you need to be able to deploy the library. When using the .Net ecosystem there is only one good solution for dependency management and publishing.</p>
<p>Let me <a href="https://www.nuget.org/packages/RabbitExpress/" target="_blank" rel="noopener noreferrer">introduce nuget</a>. Just create an account and you&#8217;re good to go. For the integration with appveyor add an API Key on nuget.org and use it during your build. After a short validation your new package will show up in the package feed.</p>
<h2>Great it&#8217;s there let&#8217;s use it</h2>
<figure id="attachment_2881" aria-describedby="caption-attachment-2881" style="width: 300px" class="wp-caption alignright"><a href="https://www.windegger.wtf/wp-content/uploads/2019/05/RabbitExpress-nuget-result.png"><img loading="lazy" class="size-medium wp-image-2881" src="https://www.windegger.wtf/wp-content/uploads/2019/05/RabbitExpress-nuget-result-300x132.png" alt="RabbitExpress in the Package feed" width="300" height="132" srcset="https://www.windegger.wtf/wp-content/uploads/2019/05/RabbitExpress-nuget-result-300x132.png 300w, https://www.windegger.wtf/wp-content/uploads/2019/05/RabbitExpress-nuget-result-200x88.png 200w, https://www.windegger.wtf/wp-content/uploads/2019/05/RabbitExpress-nuget-result-400x176.png 400w, https://www.windegger.wtf/wp-content/uploads/2019/05/RabbitExpress-nuget-result.png 704w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-2881" class="wp-caption-text">The result when searching for RabbitExpress on the NuGet Package feed.</figcaption></figure>
<p>After all that setup is done you figure out that you need to setup some documentation. GitHub even offers a quick solution for that. Activating GitHub pages on the repository will create a public facing website using Jekyll. There is a set of ready to use themes defined. And your <a href="https://rwindegger.github.io/RabbitExpress/" target="_blank" rel="noopener noreferrer">README.md</a> file will be automatically available.</p>
<p>So with the documentation in place let&#8217;s take a look at how to a reference can be added to RabbitExpress now. Using Visual Studio you can just use the Manage NuGet Packages menu entry. Searching for RabbitExpress will yield the result on the right.</p>
<p>When you use the Visual Studio window simply add the reference to RabbitExpress.JsonSerializer to your project. This will take care of all the dependencies required by RabbitExpress and allows you to use the QueueClient in your project.</p>
<h2>Using RabbitExpress to talk with RabbitMQ</h2>
<p>Integration is very easy. The Examples offer a great start for your use. All you need is an instance of <a href="https://www.rabbitmq.com/" target="_blank" rel="noopener noreferrer">RabbitMQ</a> ready.</p>
<h3>Using the RabbitExpress publisher</h3>
<p>The Publisher just makes use of the Publish method.</p>
<p>View the code on <a href="https://gist.github.com/rwindegger/d33c0ebde64d103c1258a70bafab425a">Gist</a>.</p>
<p>As you can see the code is pretty straight forward. Observe the call to Publish in Line 60. The object that is passed is just a plain object. The queue name is specified using the Queues enumeration and prevents typos.</p>
<h3>Implementing a worker using RabbitExpress</h3>
<p>A worker is a simple program that only has one concrete task. In our example the task of the worker is to output messages that it receives from the queue. The example randomly fails and adds the message back into the queue, so another worker can try to process the message or after some time the error is recovered and the current worker receives the message again. When the worker receives an empty message it just rejects the message without adding it to the queue again. Let&#8217;s take a look at the example.</p>
<p>View the code on <a href="https://gist.github.com/rwindegger/9f46c7451ebfdde37e8ffe420a2aac25">Gist</a>.</p>
<p>This example requires a little more knowledge. It is using the Methods of the QueuedMessage to signal failure or success. And when it receives the exit message, the loop will end.</p>
<p>You can see the different forms of rejection used in Line 63 and Line 82. In Line 73 you can see the call to Acknowledge.</p>
<h2>What is next</h2>
<p>The next thing to do is adding more serializers to the project. Serializers allow to pass data around in messages. At the moment you will only find a JSON serializer.</p>
<p>Implementing your own serializer is very easy. Just implement the IExpressSerializer interface. Only two methods need your attention to implement the interface.</p>
<p>View the code on <a href="https://gist.github.com/rwindegger/f3c8c6b68225c2b53026b4757aea03e6">Gist</a>.</p>
<p>Over the next couple of weeks there will show up different serializers. A Protobuf serializer is already in development and development on a msgpack serializer will begin shortly. Do you have other ideas, let me know in the comments below. When multiple serializers are available adoption rate increases and with higher adoption rate new ideas spring up on it&#8217;s own.</p>
<h2>Conclusion</h2>
<p>Starting an open source project is quite easy. There is a lot of infrastructure already in place and starting the usage is free of charge. After the initial setup there are multiple channels your open source project gets listed. nuget became the predominant channel for package distribution in .Net. No the library is out in the wild. I&#8217;m looking forward to feedback. The project the class was extracted from is already using the new NuGet package. When you use the library and end up here drop a line in the comments.  When encounter an issues, make sure to create an issue on GitHub, also when you think you can contribute. Feel free to create Pull Requests on GitHub.</p>
<p>With all that said. I hope you enjoyed the post. Maybe I have another post sooner than the last time.<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2019%2F05%2Frelease-rabbitexpress%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Drelease-rabbitexpress&amp;action_name=Release+RabbitExpress&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" /></p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2019/05/release-rabbitexpress/?pk_campaign=feed&#038;pk_kwd=release-rabbitexpress">Release RabbitExpress</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/de/2019/05/release-rabbitexpress/?pk_campaign=feed&#038;pk_kwd=release-rabbitexpress/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Generateing EAN-13 barcodes with Javascript and SVG</title>
		<link>https://www.windegger.wtf/de/2017/02/ean-13-barcodes-svg/?pk_campaign=feed&#038;pk_kwd=ean-13-barcodes-svg</link>
					<comments>https://www.windegger.wtf/de/2017/02/ean-13-barcodes-svg/?pk_campaign=feed&#038;pk_kwd=ean-13-barcodes-svg#respond</comments>
		
		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Thu, 02 Feb 2017 08:00:22 +0000</pubDate>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[barcode]]></category>
		<category><![CDATA[bootstrap.js]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[tools]]></category>
		<guid isPermaLink="false">https://www.windegger.wtf/?p=2550/</guid>

					<description><![CDATA[<p>Everybody knows EAN-13 barcodes, they cover almost every product you will ever hold in your hand. Barcodes play an important role in retail overall. Generally the numbers encoded with EAN-13 are GTINs and help to uniquely identify products. So whenever a store worker scanned an item you most likely have dealt</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2017/02/ean-13-barcodes-svg/?pk_campaign=feed&#038;pk_kwd=ean-13-barcodes-svg">Generateing EAN-13 barcodes with Javascript and SVG</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2017%2F02%2Fean-13-barcodes-svg%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dean-13-barcodes-svg&amp;action_name=Generateing+EAN-13+barcodes+with+Javascript+and+SVG&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[<p><img src="" style="float:right;" align="right" />Everybody knows EAN-13 barcodes, they cover almost every product you will ever hold in your hand. Barcodes play an important role in retail overall. Generally the numbers encoded with EAN-13 are <a href="https://en.wikipedia.org/wiki/Global_Trade_Item_Number" target="_blank">GTINs</a> and help to uniquely identify products. So whenever a store worker scanned an item you most likely have dealt with an EAN-13 barcode.<span id="more-2550"></span></p>
<h2>What are barcodes?</h2>
<figure id="attachment_2545" aria-describedby="caption-attachment-2545" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.windegger.wtf/wp-content/uploads/2017/01/barcode.png"><img loading="lazy" class="size-medium wp-image-2545" src="https://www.windegger.wtf/wp-content/uploads/2017/01/barcode-300x131.png" alt="Screenshot of a barcode.windegger.wtf generated barcode." width="300" height="131" srcset="https://www.windegger.wtf/wp-content/uploads/2017/01/barcode-300x131.png 300w, https://www.windegger.wtf/wp-content/uploads/2017/01/barcode-768x336.png 768w, https://www.windegger.wtf/wp-content/uploads/2017/01/barcode-1024x448.png 1024w, https://www.windegger.wtf/wp-content/uploads/2017/01/barcode-200x88.png 200w, https://www.windegger.wtf/wp-content/uploads/2017/01/barcode-400x175.png 400w, https://www.windegger.wtf/wp-content/uploads/2017/01/barcode.png 1343w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-2545" class="wp-caption-text">Screenshot of a barcode.windegger.wtf generated barcode.</figcaption></figure>
<p>When you like to transfer information in an analogue fashion you have to deal with encoding and decoding the information in an efficient manner. Optical Character Recognition (OCR) could be an efficient way to process human readable data, on the other hand it is very prone to error. Transporting information in a nonhuman readable way is more efficient than dealing with OCR. Barcodes use lines to represent information. The representation of a datum is called encoding. There are many different encodings on the market. Lately QR code became public. QR code is a different form of barcode. The <a href="https://barcode.windegger.wtf/" target="_blank">EAN-13 barcode</a> is classified as 1D barcode. That means that only one dimension of the analogue label contains information. QR code is a encoding that is called 2D barcode. 2D barcodes contain information on both dimensions on the label.</p>
<h2>Why ECMA Script and SVG?</h2>
<p>Scalable Vector Graphics in short SVG is a XML dialect that is able to describe graphics. Those graphics can be scaled to any size and thus are perfect to create printable labels. Every printed barcode needs to be crisp clear otherwise the reader can&#8217;t process the information. Some encodings are capable of error correction but still having the option to scale it up as large as you like makes SVG a great tool for creating a barcode.</p>
<p>Creating the generator in JavaScript ensured that the process is not relaying on server side infrastructure. On the other hand you can integrate it into a server side solution as well using node.js. It might even become possible to integrate it directly into different desktop publishing software.<br />
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2017%2F02%2Fean-13-barcodes-svg%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dean-13-barcodes-svg&amp;action_name=Generateing+EAN-13+barcodes+with+Javascript+and+SVG&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" /></p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2017/02/ean-13-barcodes-svg/?pk_campaign=feed&#038;pk_kwd=ean-13-barcodes-svg">Generateing EAN-13 barcodes with Javascript and SVG</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/de/2017/02/ean-13-barcodes-svg/?pk_campaign=feed&#038;pk_kwd=ean-13-barcodes-svg/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>NovaCast a 3D printed cast by MediPrint</title>
		<link>https://www.windegger.wtf/de/2016/11/3d-printed-cast/?pk_campaign=feed&#038;pk_kwd=3d-printed-cast</link>
					<comments>https://www.windegger.wtf/de/2016/11/3d-printed-cast/?pk_campaign=feed&#038;pk_kwd=3d-printed-cast#respond</comments>
		
		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Wed, 09 Nov 2016 08:00:17 +0000</pubDate>
				<category><![CDATA[Beobachtungen]]></category>
		<category><![CDATA[3D printing]]></category>
		<category><![CDATA[Healthcare]]></category>
		<category><![CDATA[Investment]]></category>
		<guid isPermaLink="false">https://www.windegger.wtf/?p=2523</guid>

					<description><![CDATA[<p>Ever had a broken bone? Great you&#8217;re right at the target audience of MediPrint. MediPrint is currently looking for investors. They provide their patented novacast technology to customers in the healthcare sector. Novacast is a 3D printed cast that removes the need for traditional plaster casts. The cast offers a</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/11/3d-printed-cast/?pk_campaign=feed&#038;pk_kwd=3d-printed-cast">NovaCast a 3D printed cast by MediPrint</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F11%2F3d-printed-cast%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3D3d-printed-cast&amp;action_name=NovaCast+a+3D+printed+cast+by+MediPrint&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[<p><img src="" style="float:right;" align="right" />Ever had a broken bone? Great you&#8217;re right at the target audience of <a href="http://mediprint3d.com.mx/" rel="nofollow">MediPrint</a>. MediPrint is currently looking for investors. They provide their patented <a href="http://mediprint3d.com.mx/servicios/novacast-de-mediprint/">novacast</a> technology to customers in the healthcare sector. Novacast is a 3D printed cast that removes the need for traditional plaster casts. The cast offers a lightweight build and can be used during showers or bathing. This makes the cast a great new addition to the medical toolkit. MediPrint is a Mexican startup found by a group of <a href="https://www.unam.mx/" rel="nofollow">UNAM University</a> graduates. There was some buzz about the cast in the media lately. Other than that not much can be found about the startup.</p>
<h2>Another Startup</h2>
<p>During my research, I found another company that will be interesting. The Canadian company, also named MediPrint, is providing <a href="https://www.mediprintbiomedical.com/">3D printed replacement bones</a>. They even offer 48 hours turnaround time for your custom ordered replacement bones.</p>
<h2>Conclusion</h2>
<p>When you&#8217;re looking for some sectors to invest, you will find a lot of potential in HealthTech companies. There still is a lot of space for improvement. I can&#8217;t say if one of the two mentioned companies is a good investment. So make your decision to invest based on your own due diligence. And get someone with better Spanish knowledge than me.<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F11%2F3d-printed-cast%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3D3d-printed-cast&amp;action_name=NovaCast+a+3D+printed+cast+by+MediPrint&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" /></p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/11/3d-printed-cast/?pk_campaign=feed&#038;pk_kwd=3d-printed-cast">NovaCast a 3D printed cast by MediPrint</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/de/2016/11/3d-printed-cast/?pk_campaign=feed&#038;pk_kwd=3d-printed-cast/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GeekWire Interview with Joel Spolsky</title>
		<link>https://www.windegger.wtf/de/2016/10/geekwire-interview-with-joel-spolsky/?pk_campaign=feed&#038;pk_kwd=geekwire-interview-with-joel-spolsky</link>
					<comments>https://www.windegger.wtf/de/2016/10/geekwire-interview-with-joel-spolsky/?pk_campaign=feed&#038;pk_kwd=geekwire-interview-with-joel-spolsky#respond</comments>
		
		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Tue, 18 Oct 2016 07:00:13 +0000</pubDate>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Office Design]]></category>
		<category><![CDATA[Recruiting]]></category>
		<category><![CDATA[Social Studies]]></category>
		<guid isPermaLink="false">https://www.windegger.wtf/?p=2499</guid>

					<description><![CDATA[<p>Joel Spolsky, CEO at the Stack Exchange Network, CEO at Fog Creek Software and co-founder of Trello, talks about a few topics in this interview. He explains why developer don&#8217;t like open floor offices, talks a little about the favorite languages and explains the Joel Test. I totally agree with him about the</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/10/geekwire-interview-with-joel-spolsky/?pk_campaign=feed&#038;pk_kwd=geekwire-interview-with-joel-spolsky">GeekWire Interview with Joel Spolsky</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F10%2Fgeekwire-interview-with-joel-spolsky%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dgeekwire-interview-with-joel-spolsky&amp;action_name=GeekWire+Interview+with+Joel+Spolsky&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[<p><img src="" style="float:right;" align="right" /><a href="http://www.joelonsoftware.com/" target="_blank">Joel Spolsky</a>, CEO at the <a href="http://stackexchange.com/" target="_blank" rel="nofollow">Stack Exchange Network</a>, CEO at Fog Creek Software and co-founder of <a href="https://trello.com/" target="_blank" rel="nofollow">Trello</a>, talks about a few topics in this interview. He explains why developer don&#8217;t like open floor offices, talks a little about the favorite languages and explains the Joel Test.</p>
<p><span id="more-2499"></span></p>
<p>I totally agree with him about the open floor office. It&#8217;s horrible, you can&#8217;t focus on your work and get a flow going. It&#8217;s important to get in the state of mind where you can let the creativity flow, imaging software development as writing book, without the right state of mind you won&#8217;t be productive.</p>
<p>When it comes to office designs, distractions are a big nuisance when trying to get into the flow. When you get interrupted during the flow, it takes some minutes to get back into the flow again. Open offices tend to create interruptions.</p>
<p>I was once working in a small scale open floor office. It was a pain to teach the sales force to not simply come into the room and interrupt everyone. Sales persons tend to need input and they need their input now. Teaching them to prepare their questions in an ordered way and inviting the technician to a meeting does wonders in that regard.</p>
<p>That behavior is understand able, but could break a good flow of code. Joel notes that developers get 2 hours of uninterrupted coding time. During that time, I think the team I&#8217;m working with didn&#8217;t get that time at all.</p>
<h2>How can you help your developers?</h2>
<p>It should be easy to get your developers the uninterrupted daily flow time. The first step is to plan your office time well. Introduce a stand up meeting and enforce the a time constrain. Next start to use your meeting planing tools, block a fixed time slot every day. Figure out the most productive time for every of your developers and let them block that time in their calendar.</p>
<p>So when you see some issues in your current workforce, look at the environment they are working in. It might actually be that your workforce simply needs some flow time to get back on track. When you think your team lacks other issues as well feel free to contact me. It might be easy to get you back on track and make your team deliver great software in time. When you currently not able to answer 12 of 12 questions of <a href="http://www.joelonsoftware.com/articles/fog0000000043.html" target="_blank">the Joel Test</a> with yes, contact me as well and we will figure out how to proceed.<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F10%2Fgeekwire-interview-with-joel-spolsky%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dgeekwire-interview-with-joel-spolsky&amp;action_name=GeekWire+Interview+with+Joel+Spolsky&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" /></p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/10/geekwire-interview-with-joel-spolsky/?pk_campaign=feed&#038;pk_kwd=geekwire-interview-with-joel-spolsky">GeekWire Interview with Joel Spolsky</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/de/2016/10/geekwire-interview-with-joel-spolsky/?pk_campaign=feed&#038;pk_kwd=geekwire-interview-with-joel-spolsky/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ruhe bewahren und nicht Einschüchtern lassen</title>
		<link>https://www.windegger.wtf/de/2016/10/ruhe-bewahren-und-nicht-einschuechtern-lassen/?pk_campaign=feed&#038;pk_kwd=ruhe-bewahren-und-nicht-einschuechtern-lassen</link>
					<comments>https://www.windegger.wtf/de/2016/10/ruhe-bewahren-und-nicht-einschuechtern-lassen/?pk_campaign=feed&#038;pk_kwd=ruhe-bewahren-und-nicht-einschuechtern-lassen#respond</comments>
		
		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Fri, 14 Oct 2016 07:00:36 +0000</pubDate>
				<category><![CDATA[Beobachtungen]]></category>
		<guid isPermaLink="false">https://www.windegger.wtf/de/?p=2489</guid>

					<description><![CDATA[<p>Letzte Woche hatte ich eine tolle Zeit auf einer Veranstaltung. Während der Vorarbeiten, habe ich gelernt, dass es keinen Grund gibt sich Einschüchtern zu lassen. Immer wenn man es mit gestressten Menschen zu tun hat, sollte die erste Regel lauten Ruhe zu bewahren. Ich war an der Zufahrt positioniert und hatte</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/10/ruhe-bewahren-und-nicht-einschuechtern-lassen/?pk_campaign=feed&#038;pk_kwd=ruhe-bewahren-und-nicht-einschuechtern-lassen">Ruhe bewahren und nicht Einschüchtern lassen</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F10%2Fruhe-bewahren-und-nicht-einschuechtern-lassen%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Druhe-bewahren-und-nicht-einschuechtern-lassen&amp;action_name=Ruhe+bewahren+und+nicht+Einsch%C3%BCchtern+lassen&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[<p><img src="" style="float:right;" align="right" />Letzte Woche hatte ich eine tolle Zeit auf einer Veranstaltung. Während der Vorarbeiten, habe ich gelernt, dass es keinen Grund gibt sich Einschüchtern zu lassen.</p>
<p><span id="more-2489"></span></p>
<p>Immer wenn man es mit gestressten Menschen zu tun hat, sollte die erste Regel lauten Ruhe zu bewahren. Ich war an der Zufahrt positioniert und hatte den Posten gerade erst Übernommen. Bis zu diesem Zeitpunkt war an der Schleuse wenig Betrieb, das Entladen der Lastkraftwagen ging gut voran und der Annahme-stopp rückte immer näher. Es gab eine kleine Blockade am weg zur Ausstellungshalle und ich sollte die Fahrzeuge entsprechend einweisen.</p>
<p>Man könnte denken das Menschen ruhig sind, aber nicht wenn nur wenig Zeit für die Lieferung verbleibt. Als ich nun an der Schleuse stand kam ein Fahrzeug näher, der Fahrer wurde Langsamer und sagte etwas darüber das er zur Messehalle müsse. Er war sehr gestresst und nicht zu beruhigen. Ich versuchte ihm die Situation zu erklären und ihm zu vermitteln das er sich doch bitte hinter dem bereits wartenden Truck einreihen solle. Stattdessen hat er die Situation genutzt und ist direkt zur Halle weiter gefahren.</p>
<p>Im nächsten Auto war ein ruhiger Fahrer der sich ohne zu Zögern hinter dem wartenden einreihte, zumindest bis zum nächsten Auto. Nach einer kurzen Unterhaltung mit dem Fahrer des nächsten Fahrzeugs, habe ich ihm vermittelt er solle sich auch Einreihen und warten. Als ich zum nächsten Fahrzeug weiter ging und unmittelbar keinen Gedanken mehr an dieses Fahrzeug verlor. Als ich beim bereits wartenden Fahrzeug angekommen war, drehte ich mich um und sah, dass der Fahrer meine klaren Anweisungen ignoriert hat.</p>
<p>Dies hatte zur Folge, dass der Fahrer des ersten Fahrzeugs, den Hügel rauf gerannt kam. Er war noch immer sehr geladen und fing an herum zu schreien. Um ehrlich zu sein, war ich nicht wirklich im Stande seinen Ausführungen zu folgen, er war zu schnell und zu laut.</p>
<p>Nach einigen Minuten Geschrei sagte er zum Fahrer, welcher noch immer brav wartete das ein Fahrzeug den Weg zurück kam, er solle los fahren. Also was tun um die Situation nicht für alle beteiligen schlimmer zu machen? Man stellt sich mitten auf die Straße ohne angst Überrollt zu werden. Der gestresste Fahrer schrie noch immer und versuchte mich einzuschüchtern.</p>
<p>Wenige Minuten später kam ein Kollege zur Hilfe, und war tatsächlich in der Lage den Fahrer zu beruhigen. Das Fahrzeug welches den weg zur Halle blockiert hatte war dabei das Gelände zu verlassen und alles konnte seinen geordneten Lauf nehmen.</p>
<p>Währen der nächsten Tage kam der Fahrer auf mich zu und hat mich auf ein Getränk bei sich am Stand eingeladen. Für viele Menschen ist er bestimmt Einschüchternd aber sein Verhalten war wie Ausgewechselt.</p>
<h2>Also was ist geschehen?</h2>
<p>Nach meinen Beobachtungen, würde ich sagen ich habe ihn mit meinen Verhalten beeindruckt. Viele Menschen versuchen jemanden einzuschüchtern, aber solange man selbst ruhig bleibt und der Mensch mit dem man es zu tun hat nicht besser in einer Anstalt aufgehoben wäre, kann man davon ausgehen sicher zu sein. Behaltet das im Hinterkopf wenn ihr mit gestressten Menschen interagiert. Gib ihnen ein Ventil an dem sie den Druck ablassen können und versuche sie zu beruhigen. Nach einiger Zeit werden sie realisieren, dass ihr Verhalten nichts zum schnelleren verändern der Situation beiträgt.</p>
<p>Nachdem seine Aufgabe erledigt war fing der Fahrer an sich zu Entspannen. Er kam auf mich und meinen Kollegen zu, war freundlich und hat uns an seinen Stand eingeladen.</p>
<p>Währen der Messe hatte ich leider nicht die Zeit ihn zu Besuchen, aber als wir bereits mit dem Abbau der Veranstaltung angefangen hatten, kam er auf mich zu ich solle mir ein Getränk bei ihm holen. Als ich das tat gab er mir noch 2 Coupons für sein Restaurant. Also werde ich demnächst mal <a href="http://www.claireslanka.at/" target="_blank">Claire’s</a> besuchen. Ich denke ich mag sri-lankische Küche.<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F10%2Fruhe-bewahren-und-nicht-einschuechtern-lassen%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Druhe-bewahren-und-nicht-einschuechtern-lassen&amp;action_name=Ruhe+bewahren+und+nicht+Einsch%C3%BCchtern+lassen&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" /></p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/10/ruhe-bewahren-und-nicht-einschuechtern-lassen/?pk_campaign=feed&#038;pk_kwd=ruhe-bewahren-und-nicht-einschuechtern-lassen">Ruhe bewahren und nicht Einschüchtern lassen</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/de/2016/10/ruhe-bewahren-und-nicht-einschuechtern-lassen/?pk_campaign=feed&#038;pk_kwd=ruhe-bewahren-und-nicht-einschuechtern-lassen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mehrsprachiger Blog</title>
		<link>https://www.windegger.wtf/de/2016/10/multilingual-blog-support/?pk_campaign=feed&#038;pk_kwd=multilingual-blog-support</link>
					<comments>https://www.windegger.wtf/de/2016/10/multilingual-blog-support/?pk_campaign=feed&#038;pk_kwd=multilingual-blog-support#comments</comments>
		
		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Tue, 11 Oct 2016 06:30:48 +0000</pubDate>
				<category><![CDATA[Webhosting]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.windegger.wtf/de/?p=2479</guid>

					<description><![CDATA[<p>Es freut mich sehr, dass ich endlich die Zeit gefunden habe, meinen Blog mehrsprachig zu machen. Wie wurde es gemacht? Da diese Seite WordPress verwendet benötigt eine Mehrsprachige Seite etwas arbeit. Ich habe mehrere mögliche Lösungen evaluiert und bin zur Erkenntnis gekommen, das WPML die richtige Wahl darstellt. WPML ist ein tolles</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/10/multilingual-blog-support/?pk_campaign=feed&#038;pk_kwd=multilingual-blog-support">Mehrsprachiger Blog</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F10%2Fmultilingual-blog-support%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dmultilingual-blog-support&amp;action_name=Mehrsprachiger+Blog&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[<p><img src="" style="float:right;" align="right" />Es freut mich sehr, dass ich endlich die Zeit gefunden habe, meinen Blog mehrsprachig zu machen.</p>
<h2>Wie wurde es gemacht?</h2>
<p>Da diese Seite WordPress verwendet benötigt eine Mehrsprachige Seite etwas arbeit. Ich habe mehrere mögliche Lösungen evaluiert und bin zur Erkenntnis gekommen, das <a href="https://wpml.org/?aid=160597&amp;affiliate_key=WJZVI24d5KZS">WPML</a> die richtige Wahl darstellt.</p>
<p>WPML ist ein tolles WordPress Plugin welches das Übersetzen von fast allen Seitenelementen erlaubt. Viele Premium Themes und Plugins haben WPML Unterstützung im Lieferumfang.</p>
<p>Die Installation von WPML ist sehr geradlinig und einfach, die Verwaltungsoberfläche bietet ausgezeichnete Wege um Seiten und Posts zu übersetzen. Abhängig von Ihrem Theme, ist die Integration in das Frontend einfach gestaltet.</p>
<p>Wenn Sie Unterstützung beim Konfigurieren und installieren von WPML in ihrer WordPress Umgebung benötigen, zögern Sie nicht Kontakt mit mir aufzunehmen. Ich werde Sie gerne Unterstützen.<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F10%2Fmultilingual-blog-support%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dmultilingual-blog-support&amp;action_name=Mehrsprachiger+Blog&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" /></p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/10/multilingual-blog-support/?pk_campaign=feed&#038;pk_kwd=multilingual-blog-support">Mehrsprachiger Blog</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/de/2016/10/multilingual-blog-support/?pk_campaign=feed&#038;pk_kwd=multilingual-blog-support/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>A closer look at the Simple Sabotage Field Manual</title>
		<link>https://www.windegger.wtf/de/2016/10/close-look-simple-sabotage-field-manual/?pk_campaign=feed&#038;pk_kwd=close-look-simple-sabotage-field-manual</link>
					<comments>https://www.windegger.wtf/de/2016/10/close-look-simple-sabotage-field-manual/?pk_campaign=feed&#038;pk_kwd=close-look-simple-sabotage-field-manual#respond</comments>
		
		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Thu, 06 Oct 2016 06:30:34 +0000</pubDate>
				<category><![CDATA[Beobachtungen]]></category>
		<category><![CDATA[Literature]]></category>
		<category><![CDATA[Simple Sabotage Field Manual]]></category>
		<guid isPermaLink="false">https://www.windegger.wtf/?p=2436</guid>

					<description><![CDATA[<p>During my daily routine internet surfing, I&#8217;ve found an interesting article at Motherboard. It covers the Simple Sabotage Field Manual, the small booklet, that was created by the Office of Strategic Service (OSS a predecessor of the CIA), was released in the year 1944. It&#8217;s goal is to lower the morale</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/10/close-look-simple-sabotage-field-manual/?pk_campaign=feed&#038;pk_kwd=close-look-simple-sabotage-field-manual">A closer look at the Simple Sabotage Field Manual</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F10%2Fclose-look-simple-sabotage-field-manual%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dclose-look-simple-sabotage-field-manual&amp;action_name=A+closer+look+at+the+Simple+Sabotage+Field+Manual&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[<p><img src="" style="float:right;" align="right" />During my daily routine internet surfing, I&#8217;ve found an interesting <a href="http://motherboard.vice.com/de/read/-quatsch-machen-streit-anfangen-auch-mal-ein-feuer-legen">article at Motherboard</a>. It covers the Simple Sabotage Field Manual, the small booklet, that was created by the Office of Strategic Service (OSS a predecessor of the CIA), was released in the year 1944. It&#8217;s goal is to lower the morale of the enemy. The <a href="https://www.cia.gov/news-information/featured-story-archive/2012-featured-story-archive/simple-sabotage.html">CIA</a> released the Simple Sabotage Field Manual in Jul 2012 to the general public. At <a href="http://www.gutenberg.org/ebooks/26184">Project Gutenberg</a> you can find plain text versions of the manual for better reading ease.<span id="more-2436"></span></p>
<h2>Why do I tell you about the Simple Sabotage Field Manual?</h2>
<p>It&#8217;s not that easy to answer. Actually I can somewhat relate to the manual and I&#8217;ve done some observations during my work life. There was a time in my work life, during that I faced some very strange feelings, that some of the stuff you get thought in business school, can kill all innovation and progress in a company.</p>
<p>After my study of the Simple Sabotage Field Manual, I knew that my feeling was on the right track.</p>
<p>I&#8217;m going to take a look at the section I found most interesting while reading the manual. Everything I&#8217;m going to talk about can be found in the chapter &#8222;<em>(11) General Interference with Organizations and Production</em>&#8222;.</p>
<p>The first section in that chapter lays the further rule set for the saboteur regarding corporations. Some of the stuff I could observe in multiple companies I&#8217;ve worked for and with. I would even say that some of that behavior can be found in almost every corporation. One of the examples I&#8217;ve actively noticed multiple times is about building committees.</p>
<h3>A word about committees</h3>
<p>What I&#8217;ve learned about committees is that as soon as you need a committee to solve a problem you&#8217;re doomed and have to deal with immense time scales. Nowadays most committees meet at defined times, once a month or even once a quarter year. During their meeting they need to have all the information available to make decisions. Since no one wants to be blamed for wrong decisions, in many cased that decisions get postponed. You can imaging what that means for a project.</p>
<h3>About written orders</h3>
<p>Another thing I&#8217;ve actually seen is the demand for written orders. Without written orders you&#8217;re doomed, when you have written order you might still be doomed. So there is not to much difference to having a written order or not. The only thing about a written order is you don&#8217;t have to discuss afterwards about what was included in the offer.</p>
<h3>Little impact large issue</h3>
<p>There is another thing managers tend to do unintentionally. Refer to point 7 in the manager section. It&#8217;s hard to believe that stuff like that really happens, but I&#8217;ve seen stuff like that happen. When dealing with data in large quantities from an unstructured source and import it in a structured manner, you almost always happen to have to deal with data issues. So let&#8217;s say we have a set of multiple millions of entities and then we have 4 to 5 errors. How would you approach that issues? I would say let&#8217;s have a look at that specific entries and see if we can solve the issue or if they simply don&#8217;t fit with the new data structure. You won&#8217;t handle that 5 corner cases in an automated way. You&#8217;re wrong, I&#8217;ve seen multiple project go way over time because of issues like that.</p>
<h3>Multiply paperwork</h3>
<p>Another thing I&#8217;ve noticed is point 12. In every company, there was some sort of time tracking. So you have to do time tracking for your attendance and about what you did during that time. That&#8217;s something that should be easily handle able by a single system. Everywhere I&#8217;ve worked there were at least 2 systems to solve this issue. The worst I saw, was a written paper form, that was signed by the customer, to be transferred into a digital system by the consultant. It&#8217;s all OK you would say but in that case there where 3 places to keep track of. Another example is filling out a form for one € 4,&#8211; USB Cable (even that&#8217;s something I was able to observe).</p>
<h3>Conclusion</h3>
<p>So why did I write this post. I always thought there must be a reason behind such behavior. Now that I&#8217;ve learned about the Simple Sabotage Field Manual i know better. I really wonder where and how the middle management get&#8217;s educated in that direction. Maybe there is a textbook out there, I don&#8217;t know about, that sheds a different light on behavior like that.</p>
<p>Feel free to discuss your thoughts or your stories you can recall that could come directly from the inside of the Simple Sabotage Field Manual.<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F10%2Fclose-look-simple-sabotage-field-manual%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dclose-look-simple-sabotage-field-manual&amp;action_name=A+closer+look+at+the+Simple+Sabotage+Field+Manual&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" /></p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/10/close-look-simple-sabotage-field-manual/?pk_campaign=feed&#038;pk_kwd=close-look-simple-sabotage-field-manual">A closer look at the Simple Sabotage Field Manual</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/de/2016/10/close-look-simple-sabotage-field-manual/?pk_campaign=feed&#038;pk_kwd=close-look-simple-sabotage-field-manual/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress running on PHP 7 made easy</title>
		<link>https://www.windegger.wtf/de/2016/10/run-wordpress-php7/?pk_campaign=feed&#038;pk_kwd=run-wordpress-php7</link>
					<comments>https://www.windegger.wtf/de/2016/10/run-wordpress-php7/?pk_campaign=feed&#038;pk_kwd=run-wordpress-php7#comments</comments>
		
		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Mon, 03 Oct 2016 08:30:47 +0000</pubDate>
				<category><![CDATA[Webhosting]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[mariadb]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php7]]></category>
		<category><![CDATA[varnish]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.windegger.wtf/?p=2362</guid>

					<description><![CDATA[<p>During the process of setting up this site, I came to the conclusion that all the available hosting solutions don&#8217;t fit my needs. Setting up WordPress and getting it right the first time, is out of reach for many among us. So what do you do? Looking for Solutions! Over</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/10/run-wordpress-php7/?pk_campaign=feed&#038;pk_kwd=run-wordpress-php7">WordPress running on PHP 7 made easy</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F10%2Frun-wordpress-php7%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Drun-wordpress-php7&amp;action_name=WordPress+running+on+PHP+7+made+easy&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[<p><img src="" style="float:right;" align="right" />During the process of setting up this site, I came to the conclusion that all the available hosting solutions don&#8217;t fit my needs. Setting up WordPress and getting it right the first time, is out of reach for many among us. So what do you do?<span id="more-2362"></span></p>
<h2>Looking for Solutions!</h2>
<p>Over the years I was hosting multiple sites with different demands in traffic and size. During that process I came to the conclusion that the setup, of each of those sites, was a pain and maintenance more or less impossible. Since I came in contact with hosting the first time, I&#8217;ve moved from apache1 to apache2 to IIS to <a href="http://nginx.org/" rel="nofollow">nginx</a> as web daemon. The php execution engine has been updated since then <a href="https://en.wikipedia.org/wiki/PHP" rel="nofollow">multiple times</a>.</p>
<p>Every time a component needed an upgrade you faced almost a new setup. The process of backup and restore was always tricky and using your own scripts to setup new vhosts where required. After some research I&#8217;ve discovered <a href="http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/">Automated Nginx Reverse Proxy for Docker</a> by Jason Wilder and that led to some research and to the setup you can find in this post.</p>
<h3>What else do we have to consider?</h3>
<p>The preferred solution needs to be scale-able and distribute-able. Eventually a new player appeared on the software market that allows exactly to solve this.</p>
<p>Lets say hello to docker! Whale, whale!</p>
<h2>What is docker?</h2>
<p>Docker is an application container system and allows to prepare and configure applications for different environments. To cover docker is a complete different topic and will not be part of this post. But to get you started, just follow one of the <a href="https://docs.docker.com/engine/installation/" rel="nofollow">guides at the docker site</a>. When you want to scale and distribute have a look at docker swarm.</p>
<h3>Get docker-compose ready!</h3>
<p>docker-compose is required to start the different containers and setup networks in automated ways. So <a href="https://docs.docker.com/compose/install/" rel="nofollow">install docker-compose according to this guide</a> and read on when you&#8217;re ready.</p>
<h2>What are we going to do now?</h2>
<p>Lets think about our infrastructure for a moment. To host our website in a scale able way we need to have multiple components up and running. For now, we settle with one nginx front end server to be easily able to create new vhosts. We employ one <a href="https://www.varnish-cache.org/" rel="nofollow">Varnish</a> daemon in front of 2 nginx back end servers. Since nginx is only able to serve static content, we need to add a way to integrate PHP into our setup. To get us started we set up two fpm hosts. Since setting up a SQL cluster is out of scope for the moment, we use a single <a href="https://mariadb.org/" rel="nofollow">MariaDB</a> host. Memcached1 is a memcached instance that can be utilized by the WordPress installation.</p>
<figure id="attachment_2390" aria-describedby="caption-attachment-2390" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.windegger.wtf/wp-content/uploads/2016/10/TargetArchitecture.png"><img loading="lazy" class="wp-image-2390 size-medium" src="https://www.windegger.wtf/wp-content/uploads/2016/10/TargetArchitecture-300x84.png" alt="WordPress target architecture" width="300" height="84" srcset="https://www.windegger.wtf/wp-content/uploads/2016/10/TargetArchitecture-300x84.png 300w, https://www.windegger.wtf/wp-content/uploads/2016/10/TargetArchitecture-200x56.png 200w, https://www.windegger.wtf/wp-content/uploads/2016/10/TargetArchitecture.png 553w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-2390" class="wp-caption-text">Network diagram of the target architecture for the WordPress hosting scenario.</figcaption></figure>
<p>Now that we have our target architecture ready, we can think about how to handle the setup and how we&#8217;re still able to scale the instance out.</p>
<h3>Let&#8217;s create a compose file!</h3>
<p>To make it easy to run our site and start the whole environment with ease, we make use of docker-compose. Take a look at the source code of our docker-compose file. We have a closer look at the different things in a bit.</p>
<p>View the code on <a href="https://gist.github.com/rwindegger/e7857d1eba6c6925a3e9ac9dfc5627ae">Gist</a>.</p>
<p>As you can see, we create multiple nodes of different types. For more details on the different images look at my <a href="https://hub.docker.com/u/rwindegger/">docker-hub</a> profile. The nodes map their required volumes, for example the root volume for our site is mapped to &#8222;./.data/test.windegger.wtf/storage&#8220;. Depending on your docker setup you might need to adjust some volumes, drivers or networks.</p>
<h2>The WordPress container!</h2>
<p>The WordPress container is the heart of the installation, it is based on the official WordPress Dockerfile, but modified to use PHP 7. Since it&#8217;s using PHP 7 as base, it required some minor adjustments to the original file. For more information about the container take a look at the <a href="https://hub.docker.com/r/rwindegger/wordpress/">Hubpage</a>.</p>
<p>After you start the composed environment using &#8222;docker-compose up&#8220;, you have your new and fresh WordPress installation up and running.</p>
<h2>What comes next?</h2>
<p>I continue to do research on different topics and cover my findings in my blog. I cover the different topics I&#8217;m faced with in my daily life. Prepare for some devops and other development updates.</p>
<p>You&#8217;re still reading, so you&#8217;ve not found what you came for. You need a trusted professional to handle your site in a managed manner? Don&#8217;t hesitate, use the contact form or leave a comment. You will receive a reply shortly.<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F10%2Frun-wordpress-php7%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Drun-wordpress-php7&amp;action_name=WordPress+running+on+PHP+7+made+easy&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" /></p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/10/run-wordpress-php7/?pk_campaign=feed&#038;pk_kwd=run-wordpress-php7">WordPress running on PHP 7 made easy</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/de/2016/10/run-wordpress-php7/?pk_campaign=feed&#038;pk_kwd=run-wordpress-php7/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Capture command line output in C#</title>
		<link>https://www.windegger.wtf/de/2016/02/capture-command-line-output-in-c/?pk_campaign=feed&#038;pk_kwd=capture-command-line-output-in-c</link>
					<comments>https://www.windegger.wtf/de/2016/02/capture-command-line-output-in-c/?pk_campaign=feed&#038;pk_kwd=capture-command-line-output-in-c#comments</comments>
		
		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Sat, 27 Feb 2016 09:40:43 +0000</pubDate>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[async]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C# How To]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[TAP]]></category>
		<category><![CDATA[Task-based Asynchronous Pattern]]></category>
		<guid isPermaLink="false">https://www.windegger.wtf/?p=2287</guid>

					<description><![CDATA[<p>Did you ever execute a console application in C# and wanted to capture the command line output? You&#8217;re here to find the answer. The Scenario You have a long running console application and want to create an UI for it. You don&#8217;t have the oppurtunity to integrate the console application</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/02/capture-command-line-output-in-c/?pk_campaign=feed&#038;pk_kwd=capture-command-line-output-in-c">Capture command line output in C#</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F02%2Fcapture-command-line-output-in-c%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dcapture-command-line-output-in-c&amp;action_name=Capture+command+line+output+in+C%23&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[<p><img src="" style="float:right;" align="right" />Did you ever execute a console application in C# and wanted to capture the command line output?</p>
<p>You&#8217;re here to find the answer.<span id="more-2287"></span></p>
<h2>The Scenario</h2>
<p>You have a long running console application and want to create an UI for it. You don&#8217;t have the oppurtunity to integrate the console application as a library so you&#8217;re bound to run the executeable. You want to be able to spawn multiple processes at the same time and be able to limit the concurrent execution of the processes. You need to be able to set EnvironmentVariables for the process environment. You need to be able to respond to new lines on the StandardError and StandardInput. You might need to respond to the console application with input.</p>
<h2>The Basics</h2>
<p>The .Net Framework offers a handy class that allows most of the requirements the scenario holds. The class is called System.Diagnostics.Process. After I&#8217;m finished you will have a nice wrapper around the Process class that can be used in many different scenarios. How is the process class helping us? It&#8217;s pretty simple, the Process class is used to start a new process. You need to specify some information in the form of a ProcessStartInfo object and call the Start method on the Process.</p>
<h3>Why do we need a wraper?</h3>
<p>Since .Net Framework 4.5 we can use the <a href="https://msdn.microsoft.com/de-de/library/hh873175(v=vs.110).aspx" target="_blank">TAP</a> (Task-based Asynchronous Pattern) and that&#8217;s what I&#8217;m gonna faciliate to get a class that can be inherited for your own needs and allows you to run multiple instances of the application.</p>
<h3>Getting Started</h3>
<p>First we need the <a href="https://www.windegger.wtf/2016/02/limit-parallel-execution-in-tap/">LimitedConcurrencyTaskScheduler</a> I&#8217;ve provided in an earlier post. If you didn&#8217;t read that post yet go there now and atleast get the code set up in your project. While you do so leave a comment about your expirience.</p>
<p>Since we need a clean way to interact with the process we define an interface. This interface defines a set of properties that allow you to react to updates from the application. It also defines a set of methods that are used to generate the input for the application.</p>
<p>View the code on <a href="https://gist.github.com/rwindegger/cb216df08874c3a767e06581ebb3aa15">Gist</a>.</p>
<p>Now that we have sepcified our Environment Builder Interface we are ready to implement our BaseProcess class.</p>
<h2>The BaseProcess Class</h2>
<p>The BaseProcess class specifies some static properties and a set of static methods. Since it is an abstract generic class those static properties and methods will be initialized per implementation. The static members are used for parallelization, we define our LimitedConcurrencyTaskScheduler used for scheduling our child processes and a <a href="https://msdn.microsoft.com/de-de/library/he2s3bh7(v=vs.110).aspx">LinkedList</a> that will hold our processes. The static Start methods provide a way to enqueue a new process to the queue. The argument for that methods will be our environment builders. Our class defines two properties, the command line of the process to run and the environment that will be used during execution. The two fields are used to generate the console output, one for locking the StringBuilder and one to generate the output. The constructor of the class sets the command line so make sure to specify it in your implementation class. The protected Execute method does the actual work of spawning the new child process. The private methods are handlers for some of the events triggered by the System.Diagnostics.Process class. Those memebers will call the abstract members defined in the class.</p>
<p>View the code on <a href="https://gist.github.com/rwindegger/f07c38fb4e0d1827e66f454b9098ca13">Gist</a>.</p>
<p>So Now that we have the Base Process class ready we can start to make use of it in one of our projects.<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2Fde%2F2016%2F02%2Fcapture-command-line-output-in-c%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dcapture-command-line-output-in-c&amp;action_name=Capture+command+line+output+in+C%23&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%2Fde%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" /></p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/de/2016/02/capture-command-line-output-in-c/?pk_campaign=feed&#038;pk_kwd=capture-command-line-output-in-c">Capture command line output in C#</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf/de/">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/de/2016/02/capture-command-line-output-in-c/?pk_campaign=feed&#038;pk_kwd=capture-command-line-output-in-c/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
