<?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/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.windegger.wtf</link>
	<description>Welcome to Freedom</description>
	<lastBuildDate>Tue, 20 Feb 2024 15:40:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.7.11</generator>
	<item>
		<title>Unraveling the Art of C++ Obfuscation: Securing Code in a Cryptic Web</title>
		<link>https://www.windegger.wtf/2024/02/unraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web/?pk_campaign=feed&#038;pk_kwd=unraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web</link>
					<comments>https://www.windegger.wtf/2024/02/unraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web/?pk_campaign=feed&#038;pk_kwd=unraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web#respond</comments>
		
		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Tue, 20 Feb 2024 15:40:01 +0000</pubDate>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Obfuscation]]></category>
		<guid isPermaLink="false">https://www.windegger.wtf/?p=4948</guid>

					<description><![CDATA[<p>In the dynamic landscape of cybersecurity, protecting software code from prying eyes has become paramount. C++ obfuscation emerges as a sophisticated technique employed by developers to obscure their source code, making it challenging for reverse engineers and hackers to understand and tamper with. This cryptographic approach transforms the conventional C++</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/2024/02/unraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web/?pk_campaign=feed&#038;pk_kwd=unraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web">Unraveling the Art of C++ Obfuscation: Securing Code in a Cryptic Web</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf">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%2F2024%2F02%2Funraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dunraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web&amp;action_name=Unraveling+the+Art+of+C%2B%2B+Obfuscation%3A+Securing+Code+in+a+Cryptic+Web&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%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 the dynamic landscape of cybersecurity, protecting software code from prying eyes has become paramount. C++ obfuscation emerges as a sophisticated technique employed by developers to obscure their source code, making it challenging for reverse engineers and hackers to understand and tamper with. This cryptographic approach transforms the conventional C++ code into a cryptic labyrinth, enhancing the overall security of applications.</p>



<p>C++ obfuscation involves the deliberate introduction of complexities and redundancies into the source code without altering its functionality. This practice aims to thwart reverse engineering attempts, making it exceptionally difficult for unauthorized entities to decipher the original logic. Obfuscated code might include convoluted control structures and the strategic insertion of misleading code constructs, creating a convoluted maze for anyone attempting to reverse engineer the software.</p>



<p>One of the primary motivations behind <a href="https://www.antispy.xyz/">C++ obfuscation</a> is to safeguard intellectual property and proprietary algorithms. Companies investing substantial resources in developing innovative solutions often seek ways to prevent competitors or malicious actors from easily understanding and replicating their code. Obfuscation provides an additional layer of defense by making the codebase inscrutable, even for those with significant reverse engineering skills.</p>



<p>Furthermore, obfuscated code can deter unauthorized modifications and protect against vulnerabilities that may be exploited by attackers. By introducing obfuscation, developers can mitigate the risk of code tampering, ensuring that the software behaves as intended and reducing the likelihood of security breaches.</p>



<p>Despite its advantages, C++ obfuscation is not without challenges. Debugging obfuscated code becomes a more intricate task for developers, as conventional tools may struggle to analyze the convoluted structure. Additionally, the performance overhead incurred by obfuscated code may be a consideration, although advancements in obfuscation techniques aim to minimize these impacts.</p>



<p>In conclusion, C++ obfuscation stands as a formidable ally in the ongoing battle for software security. As developers strive to fortify their code against reverse engineering and unauthorized access, the art of obfuscation provides a powerful means of ensuring the integrity and confidentiality of proprietary software. In the ever-evolving realm of cybersecurity, C++ obfuscation emerges as a cryptic shield, shrouding valuable code in a veil of complexity and resilience.</p>
<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2F2024%2F02%2Funraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dunraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web&amp;action_name=Unraveling+the+Art+of+C%2B%2B+Obfuscation%3A+Securing+Code+in+a+Cryptic+Web&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%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/2024/02/unraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web/?pk_campaign=feed&#038;pk_kwd=unraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web">Unraveling the Art of C++ Obfuscation: Securing Code in a Cryptic Web</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/2024/02/unraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web/?pk_campaign=feed&#038;pk_kwd=unraveling-the-art-of-c-obfuscation-securing-code-in-a-cryptic-web/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Release RabbitExpress</title>
		<link>https://www.windegger.wtf/2019/05/release-rabbitexpress/?pk_campaign=feed&#038;pk_kwd=release-rabbitexpress</link>
					<comments>https://www.windegger.wtf/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 Development]]></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/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">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%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%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%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%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/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">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/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/2017/02/ean-13-barcodes-svg/?pk_campaign=feed&#038;pk_kwd=ean-13-barcodes-svg</link>
					<comments>https://www.windegger.wtf/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 Development]]></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/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">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%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%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%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%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/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">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/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/2016/11/3d-printed-cast/?pk_campaign=feed&#038;pk_kwd=3d-printed-cast</link>
					<comments>https://www.windegger.wtf/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[Observations]]></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/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">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%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%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%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%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/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">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/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/2016/10/geekwire-interview-with-joel-spolsky/?pk_campaign=feed&#038;pk_kwd=geekwire-interview-with-joel-spolsky</link>
					<comments>https://www.windegger.wtf/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 Development]]></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/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">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%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%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%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%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/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">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/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>Keep calm and don&#8217;t get intimidated</title>
		<link>https://www.windegger.wtf/2016/10/keep-calm-and-dont-get-intimidated/?pk_campaign=feed&#038;pk_kwd=keep-calm-and-dont-get-intimidated</link>
					<comments>https://www.windegger.wtf/2016/10/keep-calm-and-dont-get-intimidated/?pk_campaign=feed&#038;pk_kwd=keep-calm-and-dont-get-intimidated#comments</comments>
		
		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Fri, 14 Oct 2016 07:00:07 +0000</pubDate>
				<category><![CDATA[Observations]]></category>
		<category><![CDATA[Social Studies]]></category>
		<guid isPermaLink="false">https://www.windegger.wtf/?p=2483</guid>

					<description><![CDATA[<p>Last week I had a great time at a local event. During the preparation time, I&#8217;ve learned that there is no reason to get intimidated. When dealing with stressed out people you have to keep calm. I was standing guard at a checkpoint, I just took over the position from a</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/2016/10/keep-calm-and-dont-get-intimidated/?pk_campaign=feed&#038;pk_kwd=keep-calm-and-dont-get-intimidated">Keep calm and don&#8217;t get intimidated</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf">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%2F2016%2F10%2Fkeep-calm-and-dont-get-intimidated%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dkeep-calm-and-dont-get-intimidated&amp;action_name=Keep+calm+and+don%26%238217%3Bt+get+intimidated&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%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" />Last week I had a great time at a local event. During the preparation time, I&#8217;ve learned that there is no reason to get intimidated.</p>
<p><span id="more-2483"></span></p>
<p>When dealing with stressed out people you have to keep calm. I was standing guard at a checkpoint, I just took over the position from a colleague the day was very quiet up till then, unloading of the trucks went smooth and delivery stop approached fast. There was a small blockage at the way to the venue, so I had to keep people form driving there.</p>
<p>You really might think people are calm, but not when you don&#8217;t have much time left for delivery. So I was standing there when a car approached. The driver slowed down and said something about getting to the venue. He was totally stressed out. I tried to explain what was going on and he would have to wait behind a truck already waiting to do delivery. Instead he just drove right to the venue.</p>
<p>Another car approached, the driver was calm and just did as I said, at least until another car approached. So after a short conversation with the driver, I made clear to park behind the other car. I moved on to the next car and didn&#8217;t even spent another minute thinking about that car. As I&#8217;ve reached the other car, I&#8217;ve turned around and the driver just ignored my clear orders.</p>
<p>That lead to the driver of the first truck, that ignored my orders, came up the hill. He was stressed out and started to shout around. To be honest I wasn&#8217;t really able to follow what he was saying because he was shouting to fast and to loud to really spent attention to the words.</p>
<p>After a few minutes shouting around he ordered the driver, that was waiting for a car to come out, to start his engine and drive in. So, what do you do to don&#8217;t make the situation worse for everyone? Just stand in front of a car without the fear of getting run over. The stressed out guy was still shouting around and tried to intimidate me.</p>
<p>After a while a colleague, showed up and actually was able to calm down the driver of the first car. The said car to get out from the venue arrived after a while and everything was able to go on as required.</p>
<p>During the next days the stressed out driver approached me and told me to get a drink at his booth. You could easily get intimidated by him but he totally changed his behavior.</p>
<h2>So what happened?</h2>
<p>From my observations, I would say he was impressed by my behavior. Many people try to intimidate you, but as long as you keep calm and the person you&#8217;re dealing with is not totally nuts, you can almost bet on being safe. Keep that in mind while dealing with stressed out people. Let them vent off their steam and try to calm them down. After some time they will realize that what they are doing isn&#8217;t helping making anything faster.</p>
<p>After he had done his duty he started to relax. He approached me and my colleague, was really friendly and invited us to visit him at the booth.</p>
<p>During the festival I didn&#8217;t have time to visit him but while starting to clean up the venue he invited me over for a drink and gave me 2 coupons. So I&#8217;m going to check out his place <a href="http://www.claireslanka.at/" target="_blank">Claire’s</a>. I think I&#8217;ll like Sri Lankan Cuisine.<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2F2016%2F10%2Fkeep-calm-and-dont-get-intimidated%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dkeep-calm-and-dont-get-intimidated&amp;action_name=Keep+calm+and+don%26%238217%3Bt+get+intimidated&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%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/2016/10/keep-calm-and-dont-get-intimidated/?pk_campaign=feed&#038;pk_kwd=keep-calm-and-dont-get-intimidated">Keep calm and don&#8217;t get intimidated</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/2016/10/keep-calm-and-dont-get-intimidated/?pk_campaign=feed&#038;pk_kwd=keep-calm-and-dont-get-intimidated/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Multilingual Blog Support</title>
		<link>https://www.windegger.wtf/2016/10/multilingual-blog-support/?pk_campaign=feed&#038;pk_kwd=multilingual-blog-support</link>
					<comments>https://www.windegger.wtf/2016/10/multilingual-blog-support/?pk_campaign=feed&#038;pk_kwd=multilingual-blog-support#respond</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/?p=2474</guid>

					<description><![CDATA[<p>I&#8217;m happy to say, that I finally was able to find the time and setup multilingual support for my site. How was it accomplished? Since this site runs on WordPress setting up a multilingual site requires some work. I&#8217;ve took a look on multiple solutions, but found WPML is the way to</p>
<p>The post <a rel="nofollow" href="https://www.windegger.wtf/2016/10/multilingual-blog-support/?pk_campaign=feed&#038;pk_kwd=multilingual-blog-support">Multilingual Blog Support</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf">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%2F2016%2F10%2Fmultilingual-blog-support%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dmultilingual-blog-support&amp;action_name=Multilingual+Blog+Support&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%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" />I&#8217;m happy to say, that I finally was able to find the time and setup multilingual support for my site.</p>
<h2>How was it accomplished?</h2>
<p>Since this site runs on WordPress setting up a multilingual site requires some work. I&#8217;ve took a look on multiple solutions, but found <a href="https://wpml.org/?aid=160597&amp;affiliate_key=WJZVI24d5KZS">WPML</a> is the way to go.</p>
<p>WPML is a great WordPress Plugin that allows almost everything on your WordPress blog to be translated. Many premium Themes and Plugins support WPML out of the box.</p>
<p>The Process of setting up WPML was straight forward, the UI offers a great way to create your page or post translations. Depending on your theme, the integration to the front-end is easy.</p>
<p>So when you need help, to set up your WordPress installation, to support multiple languages, feel free to contact me I&#8217;m happy to help you.<img src="https://analytics.windegger.wtf/piwik.php?idsite=3&amp;rec=1&amp;url=https%3A%2F%2Fwww.windegger.wtf%2F2016%2F10%2Fmultilingual-blog-support%2F%3Fpk_campaign%3Dfeed%26pk_kwd%3Dmultilingual-blog-support&amp;action_name=Multilingual+Blog+Support&amp;urlref=https%3A%2F%2Fwww.windegger.wtf%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/2016/10/multilingual-blog-support/?pk_campaign=feed&#038;pk_kwd=multilingual-blog-support">Multilingual Blog Support</a> appeared first on <a rel="nofollow" href="https://www.windegger.wtf">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/2016/10/multilingual-blog-support/?pk_campaign=feed&#038;pk_kwd=multilingual-blog-support/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A closer look at the Simple Sabotage Field Manual</title>
		<link>https://www.windegger.wtf/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/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[Observations]]></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/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">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%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%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 &#8220;<em>(11) General Interference with Organizations and Production</em>&#8220;.</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%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%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/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">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/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/2016/10/run-wordpress-php7/?pk_campaign=feed&#038;pk_kwd=run-wordpress-php7</link>
					<comments>https://www.windegger.wtf/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/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">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%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%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 &#8220;./.data/test.windegger.wtf/storage&#8221;. 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 &#8220;docker-compose up&#8221;, 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%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%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/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">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/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/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/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 Development]]></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/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">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%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%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%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%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/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">Rene Windegger</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.windegger.wtf/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>
