<?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>Jeroen Heijster</title>
	<atom:link href="https://jeroenheijster.nl/feed/" rel="self" type="application/rss+xml" />
	<link>https://jeroenheijster.nl</link>
	<description>Blogging</description>
	<lastBuildDate>Sun, 30 Jun 2024 14:00:16 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Man, I miss Windows Phone&#8230;</title>
		<link>https://jeroenheijster.nl/man-i-miss-windows-phone/</link>
					<comments>https://jeroenheijster.nl/man-i-miss-windows-phone/#respond</comments>
		
		<dc:creator><![CDATA[mjheijster]]></dc:creator>
		<pubDate>Sun, 30 Jun 2024 14:00:16 +0000</pubDate>
				<category><![CDATA[Blogs]]></category>
		<guid isPermaLink="false">https://jeroenheijster.com/?p=12647</guid>

					<description><![CDATA[Going through my old posts, I noticed a screenshot of Windows Phone. It made me realize that I actually really miss the platform.]]></description>
										<content:encoded><![CDATA[
<p>Going through my old posts, I noticed a screenshot of Windows Phone. It made me realize that I actually really miss the platform.</p>



<p><sub>This is not financial advice.</sub></p>


<div class="wp-block-image">
<figure class="alignleft size-full is-resized"><img decoding="async" src="/wp-content/uploads/2012/05/WindowsPhone7seriesUI.jpg" alt="" class="wp-image-206" style="width:413px;height:auto"/></figure>
</div>


<h2 class="wp-block-heading">Underpowered but buttery smooth</h2>



<p>The hardware of the Windows Phones were never really <em>that </em>good. Android phones and iPhones used better SoCs, yet despite that, Windows Phone always had a buttery smooth experience. Certainly better than the Android phones of that era. Part of this is the way it used resources and forced best practices to developers.</p>



<p>One of those things was Tombstoning. A way for apps to save their state when they&#8217;re closed by the OS and restoring that state when it is opened again, allowing it to resume seamlessly when the user returns to it. The user will not notice that the app itself was closed, but the phone conserves its resources.</p>



<h2 class="wp-block-heading">Project my screen</h2>



<p>Ironically, Project My Screen was what nudged my memory on Windows Phone. A nice tool to control Windows Phone 8.1 devices from your computer. You could see what was on your phone, either wirelessly or through USB and even control the apps you had on your phone. I had <a href="https://jeroenheijster.com/project-screen-working/" data-type="post" data-id="1815">some issues with it way back when, which required me to delete the drivers and reinstall them</a>. A feature that I still really miss on my Android phone.</p>



<h2 class="wp-block-heading">The app problem</h2>



<p>One of the biggest issues with Windows Phone, was obviously the lack of apps. Even though they paid developers to create apps, it sadly was not enough. Google, famously, sabotaged Microsoft where they could. Google refused to work on an YouTube client, so eventually Microsoft made one. Google blocked it because it did not implement ads. The problem here was that there was no way for Microsoft to implement that, because Google never gave them an option to. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>“Despite government scrutiny, Google continues to block Microsoft from offering its customers proper access to YouTube. This is an important issue because consumers value YouTube access on their phone: YouTube apps on the Android and Apple platforms were two of the most downloaded mobile applications in 2012, according to recent news reports. Yet Google still refuses to allow Windows Phone users to have the same access to YouTube that Android and Apple customers enjoy. Microsoft has continued to engage with YouTube personnel over the past two years to remedy this problem for consumers. As you might expect, it appears that YouTube itself would like all customers – on Windows Phone as on any other device – to have a great YouTube experience. But just last month we learned from YouTube that senior executives at Google told them not to enable a first-class YouTube experience on Windows Phones.” &#8211; Dave Heiner then Vice President &amp; Deputy General Counsel, Microsoft</p>
</blockquote>



<p>And even the app that they released shortly, was regularly broken by the changes in Google&#8217;s APIs that they didn&#8217;t communicate.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>When it comes to ads, Howard claimed that Microsoft&#8217;s app served Google ads based on metadata made available to the Redmond, Wash. company. Though Microsoft asked Google to provide the same information given to iPhone and Android so it could mirror how ads appear on these platforms, &#8220;Google has refused to give this information to us.&#8221;</p>
<cite><a href="https://www.techradar.com/news/software/applications/microsoft-google-s-reasons-for-blocking-youtube-app-manufactured-1173448">https://www.techradar.com/news/software/applications/microsoft-google-s-reasons-for-blocking-youtube-app-manufactured-1173448</a></cite></blockquote>



<h2 class="wp-block-heading">Continuum</h2>



<p>And then there was the thing that obviously wasn&#8217;t ready for prime time back then. The promise to have someone connect their phone to a monitor, keyboard and mouse and turn the phone into a makeshift PC. When docked, the phone would switch to a tailored desktop-like experience on the external display, while still maintaining its regular functionality on the phone screen. It didn&#8217;t get widespread adoption and Microsoft discontinued it. </p>



<p>With programs being compiled for ARM more readily now, and the performance of phones, having desktop apps running off of phones could&#8217;ve been a possibility now. Especially with Surface devices running on ARM properly and Apple using ARM for their devices.</p>



<h2 class="wp-block-heading">It&#8217;s a shame</h2>



<p>I really liked the platform. I do think it released too late. If it released a couple of years earlier, they might&#8217;ve had a much larger market share. Even with the release date they had, I wish they wouldn&#8217;t have given up. <a href="https://www.theverge.com/2023/10/24/23930478/microsoft-ceo-satya-nadella-mobile-windows-phone" data-type="link" data-id="https://www.theverge.com/2023/10/24/23930478/microsoft-ceo-satya-nadella-mobile-windows-phone">Something even CEO Satya Nadella says he regrets</a>. </p>



<p>I guess they could still relaunch it. If they offer a superior experience in every way, hey, I might switch. But it&#8217;s hard to get people out of their habits. Still, if they do it, I&#8217;ll be first in line as a developer.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jeroenheijster.nl/man-i-miss-windows-phone/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>New job</title>
		<link>https://jeroenheijster.nl/new-job/</link>
					<comments>https://jeroenheijster.nl/new-job/#respond</comments>
		
		<dc:creator><![CDATA[mjheijster]]></dc:creator>
		<pubDate>Sat, 22 Jun 2024 13:36:18 +0000</pubDate>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[devoteam]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[work]]></category>
		<guid isPermaLink="false">https://jeroenheijster.com/?p=12615</guid>

					<description><![CDATA[Transitioning from working directly for a company, I moved on to working with customers at my job’s location and occasionally being on-site. Now, I’ve transitioned into consultancy.]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="alignleft size-medium"><img decoding="async" src="/wp-content/uploads/2024/06/devodoor-232x300.jpg" alt="" class="wp-image-12630"/></figure>
</div>


<p>Transitioning from working directly for a company, I moved on to working with customers at my job’s location and occasionally being on-site. Now, I’ve transitioned into consultancy. As of last month, I am a Senior Consultant at Devoteam’s M Cloud. I’m still building in C#, still using .NET, and still aiming for full-stack. Obviously, consultancy will mean that I will work on a variety of different projects, some short, some long, and the technology I use may vary.</p>



<h2 class="wp-block-heading">Starting days</h2>



<p>Still, no matter how many times you change jobs, it&#8217;s still a weird experience. You show up, have an internal training first day and then you get to work, right? Well, with consultancy, you first need to get a project. Which might take a couple of weeks.. Or in my case, I had a client next day. Not just any client, a breeder and researcher into vegetable seeds, operating in more than 30 countries with over 2200 employees. It took a while for me to actually get started. Getting through documentation, going through the flowcharts, getting permissions, etc. But eventually I got to work on their integrations, helping their internal development team, refactoring and also building new Azure Functions. The challenge with integrations always is the dependency on the other systems. </p>



<h2 class="wp-block-heading">Obviously, we have some issues</h2>



<p>Close to testing day, we discovered that if a new item was added but not published, the system would send out a new event. This new event would trigger a function to get the data so it could be pushed to the target system. The problem here is that the item is not published, so it can’t be fetched yet. When the item was published, it would send out an update event, which meant we would get the item (which now succeeded), and try to update the record in the target system, which failed since it didn’t have the item. So, changes have to be made in the source system.</p>



<h2 class="wp-block-heading">Next assignment</h2>



<p>What was supposed to be a job for about a month got extended to 2 months, then 2.5 months, but now it seems like it might be coming to a close sooner than that.</p>



<p>This means that we&#8217;re already looking for another assignment. So I&#8217;ve applied to 1 assignment, which also would mean going to the client wouldn&#8217;t take close to 2.5 hours of travel, but instead would be close to me. Sadly, I didn&#8217;t get that assignment, we&#8217;ll see what happens next.</p>



<h2 class="wp-block-heading">Perks of the job</h2>



<p>In the meantime, we do have some good perks. Like many offices, there’s fresh fruit, but there often are snacks, like Indonesian Bakwan Jagung, Moroccan sweets, or Vietnamese spring rolls. The coffee here is also better than at any office I’ve worked at so far!</p>



<p>It seems like I joined at the right time. If I had joined a month later, I would’ve missed the great Korean BBQ we went to. Ironically, it was organized by the person who was, at the time, in Korea for a holiday. He was missed, but we had great food and even better colleagues there.</p>



<p>Outside of the team outing, we also have department bonding days. Last month’s bonding day was cancelled, but I do look forward to the knowledge sessions (and free food). Young Devoteam also organizes their own events, like a padel evening (ironically during the Korean BBQ).</p>



<h2 class="wp-block-heading">Learning</h2>



<p>At Devoteam there&#8217;s an emphasis on growth and learning. This was clear since even before I worked here, as in my third interview round it was made clear I&#8217;d have to get certified and keep up to date with relevant knowledge. In the first weeks, it was clear what my objectives would be in my first year and what was available to reach that. Since I also have a bit of fear of failure when it comes to exams, that was also talked about and reassured.</p>



<h2 class="wp-block-heading">So what now?</h2>



<p>While I have left previous jobs for various reasons, including feeling like the company didn&#8217;t care about me, being bored because I was on the same assignment for too long, I feel like this may not be the case in this consultancy role. So, onward we go!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jeroenheijster.nl/new-job/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Logging hit line number and method</title>
		<link>https://jeroenheijster.nl/logging-hit-line-number-and-method/</link>
					<comments>https://jeroenheijster.nl/logging-hit-line-number-and-method/#respond</comments>
		
		<dc:creator><![CDATA[mjheijster]]></dc:creator>
		<pubDate>Thu, 20 Jun 2019 09:15:20 +0000</pubDate>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[hit]]></category>
		<category><![CDATA[line]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[method]]></category>
		<category><![CDATA[number]]></category>
		<guid isPermaLink="false">http://www.jeroenheijster.nl/?p=12090</guid>

					<description><![CDATA[During debugging I had issues figuring out where my code just stopped. Since I had no debugging methods on that server, I wanted to create a better way of logging than int count=0;Console.WriteLine(count++); While looking for a way of logging the line number I found the CompilerServices namespace which has a CallerLineNumber and CallerMemberName. Using [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>During debugging I had issues figuring out where my code just stopped. Since I had no debugging methods on that server, I wanted to create a better way of logging than int count=0;Console.WriteLine(count++);</p>



<p>While looking for a way of logging the line number I found the <a href="https://docs.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices?view=netframework-4.8">CompilerServices </a>namespace which has a <a href="https://docs.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.callerlinenumberattribute?view=netframework-4.8">CallerLineNumber</a> and <a href="https://docs.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.callermembernameattribute?view=netframework-4.8">CallerMemberName</a>.</p>



<p>Using that, I made this small method to log the method and line number:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#22272e"><span style="background:#9eadbd;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#22272e">C#</span></span><span role="button" tabindex="0" data-code="private void LogLineNumber([System.Runtime.CompilerServices.CallerLineNumber] int lineNumber = 0, [System.Runtime.CompilerServices.CallerMemberName] string caller = null)
{
Console.WriteLine($&quot;Hit line number {lineNumber} for {caller}.&quot;);
}" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F47067">private</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">void</span><span style="color: #ADBAC7"> </span><span style="color: #DCBDFB">LogLineNumber</span><span style="color: #ADBAC7">([</span><span style="color: #F69D50">System</span><span style="color: #ADBAC7">.</span><span style="color: #F69D50">Runtime</span><span style="color: #ADBAC7">.</span><span style="color: #F69D50">CompilerServices</span><span style="color: #ADBAC7">.</span><span style="color: #F69D50">CallerLineNumber</span><span style="color: #ADBAC7">] </span><span style="color: #F47067">int</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">lineNumber</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">0</span><span style="color: #ADBAC7">, [</span><span style="color: #F69D50">System</span><span style="color: #ADBAC7">.</span><span style="color: #F69D50">Runtime</span><span style="color: #ADBAC7">.</span><span style="color: #F69D50">CompilerServices</span><span style="color: #ADBAC7">.</span><span style="color: #F69D50">CallerMemberName</span><span style="color: #ADBAC7">] </span><span style="color: #F47067">string</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">caller</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">null</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">{</span></span>
<span class="line"><span style="color: #ADBAC7">Console.</span><span style="color: #DCBDFB">WriteLine</span><span style="color: #ADBAC7">(</span><span style="color: #96D0FF">$&quot;Hit line number {</span><span style="color: #ADBAC7">lineNumber</span><span style="color: #96D0FF">} for {</span><span style="color: #ADBAC7">caller</span><span style="color: #96D0FF">}.&quot;</span><span style="color: #ADBAC7">);</span></span>
<span class="line"><span style="color: #ADBAC7">}</span></span></code></pre></div>
]]></content:encoded>
					
					<wfw:commentRss>https://jeroenheijster.nl/logging-hit-line-number-and-method/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The problem with &#8220;lifetime&#8221; updates for software</title>
		<link>https://jeroenheijster.nl/the-problem-with-lifetime-updates-for-software/</link>
					<comments>https://jeroenheijster.nl/the-problem-with-lifetime-updates-for-software/#respond</comments>
		
		<dc:creator><![CDATA[mjheijster]]></dc:creator>
		<pubDate>Fri, 15 Sep 2017 12:08:45 +0000</pubDate>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[lifetime]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Symless]]></category>
		<category><![CDATA[Synergy]]></category>
		<category><![CDATA[updates]]></category>
		<guid isPermaLink="false">http://www.jeroenheijster.nl/?p=12052</guid>

					<description><![CDATA[While I love the thought of lifetime access to software, it always poses a bit of a problem. Long-term development. I love the idea of lifetime access to software. From Malwarebytes to Bandicam and Synergy by Symless. You pay once and get all updates for free. The problem comes when the company runs out of [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><em>While I love the thought of lifetime access to software, it always poses a bit of a problem. Long-term development.</em></p>
<p><span id="more-12052"></span></p>
<p>I love the idea of lifetime access to software. From Malwarebytes to Bandicam and Synergy by Symless. You pay once and get all updates for free. The problem comes when the company runs out of money or is close to that.</p>
<p>Yesterday I woke up to find out software I use, Synergy, has an upgrade offer:</p>
<p><figure id="attachment_12058" aria-describedby="caption-attachment-12058" style="width: 871px" class="wp-caption alignnone"><img fetchpriority="high" decoding="async" class="wp-image-12058 size-full" src="/wp-content/uploads/2017/09/2017-09-14_13h45_44.png" alt="" width="871" height="352" /><figcaption id="caption-attachment-12058" class="wp-caption-text">PAY US for a FREE update</figcaption></figure></p>
<p>Basically, they&#8217;re saying <em>pay now and get a free update later</em>. While this may sound nice when you glance over it, the moment you think about it, you realize that you&#8217;re just pre-ordering at a discount.</p>
<p>The problem was though, that I know it was listed as lifetime before, I went to their site and indeed, it now lists purchases for v1.x only. Just to make sure I wasn&#8217;t crazy, I set the <a href="https://web.archive.org/web/20151205154613/https://synergy-project.org/pricing">wayback machine to 2015</a>, the year I purchased it. I was not completely surprised that it did say <strong>lifetime</strong> access there and that it was a <strong>one time payment</strong>.</p>
<p><figure id="attachment_12053" aria-describedby="caption-attachment-12053" style="width: 566px" class="wp-caption alignnone"><img decoding="async" class="wp-image-12053 size-full" src="/wp-content/uploads/2017/09/2017-09-14_13h08_56.png" alt="" width="566" height="272" /><figcaption id="caption-attachment-12053" class="wp-caption-text">Old pricing</figcaption></figure></p>
<p><figure id="attachment_12054" aria-describedby="caption-attachment-12054" style="width: 398px" class="wp-caption alignnone"><img decoding="async" class="wp-image-12054 size-full" src="/wp-content/uploads/2017/09/2017-09-14_13h08_13.png" alt="" width="398" height="184" /><figcaption id="caption-attachment-12054" class="wp-caption-text">New pricing</figcaption></figure></p>
<p style="text-align: left;">I also went digging into the site through the wayback machine and could not find any hints that this was only for v1.x.</p>
<p>So I searched on Twitter if people have reported this before. Someone else had also reported this. After tweeting them the following and getting a reply:</p>
<p>&nbsp;</p>
<blockquote class="twitter-tweet" data-lang="en">
<p dir="ltr" lang="en">Hey Jeroen, we&#8217;ve sent you an email!</p>
<p>— Symless (@Symless) <a href="https://twitter.com/Symless/status/908275070795120640">September 14, 2017</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>After searching my mail accounts, since it was sent to the wrong e-mail account (I have a pro license and a basic license on different accounts, they sent it to the one I have the basic on), it took me a while to find the mail. What I received in the mail was an apology because they &#8220;didn&#8217;t make it clear from the start&#8221;. They gave my access to their &#8220;new&#8221; Synergy 2 Pro product for free. While this initially seem like a good offer, the same issue will happen with version 3 and onwards.</p>
<p>The problem with changing it from lifetime to &#8220;lifetime&#8221; for this major version is that they did it without informing us and NOT grandfathering us into a real lifetime option. I understand that they also need to make money, but this is NEVER a good idea.</p>
<p>It&#8217;s almost like selling me a lifetime supply of donuts, that I come back after a year and the vendor saying &#8220;oh sorry, that&#8217;s no longer valid, we added sprinkles on the donuts so it&#8217;s a totally different product now&#8221;.</p>
<p>We&#8217;ve seen the backlash that, for example, Roboform got when they no longer honored their lifetime licenses, same with Cerberus (although those lifetime licenses were given out as a promotion, they offered a paid upgrade to keep it as a lifetime license). Malwarebytes on the other hand actually honored the old licenses and simply stopped selling them.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jeroenheijster.nl/the-problem-with-lifetime-updates-for-software/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Support is sometimes the worst.</title>
		<link>https://jeroenheijster.nl/support-is-sometimes-the-worst/</link>
					<comments>https://jeroenheijster.nl/support-is-sometimes-the-worst/#respond</comments>
		
		<dc:creator><![CDATA[mjheijster]]></dc:creator>
		<pubDate>Fri, 23 Jun 2017 08:19:37 +0000</pubDate>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[worst]]></category>
		<guid isPermaLink="false">http://www.jeroenheijster.nl/?p=12044</guid>

					<description><![CDATA[While companies usually want to help, sometimes you just hit a brick wall. The first-line support agent is helpful, but when it goes further than that, well... ]]></description>
										<content:encoded><![CDATA[<p>While companies usually want to help, sometimes you just hit a brick wall. In my case the first-line support agent is helpful, but when it goes further than that, well&#8230;</p>
<p>Almost a month ago, I tried to contact Pokémon support for the game Magikarp Jump. While it&#8217;s a silly game, I can&#8217;t open the in-game store page. It just gets stuck with the following message:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-12045" src="/wp-content/uploads/2017/06/Screenshot_20170623-093854-169x300.png" alt="" width="169" height="300" /></p>
<p>Thanks to the helpful &#8220;Support&#8221; button on the launch screen, I knew I needed to provide the Support ID and create a ticket. So I provided the following:</p>
<blockquote><p>Hello,<br />
Support ID &lt;redacted&gt;<br />
I&#8217;ve been trying for a couple of days to access the store again. I could the first time, but didn&#8217;t purchase anything. Now I just get the message &#8220;now transmitting&#8221; and it won&#8217;t load. I&#8217;ve tried to backup, uninstall, reinstall and restore my data, but I have had no luck. Any idea what it can be?<br />
Regards,<br />
Jeroen Heijster</p></blockquote>
<p>After 3 days, I received a reply asking for more info:</p>
<blockquote><p>Hello Trainer,<br />
Thank you for contacting Pokémon Support! We understand you are having some issues with Magikarp Jump. Please provide us the following information so we may look into this further:<br />
Support ID:<br />
Device (Please include Model Number):<br />
Android or iOS?<br />
What OS version?<br />
What time did the issue occur? (Please include time zone):<br />
Details regarding your issues (Please give as much detail as possible, the more details, the better.):<br />
<strong>If you are able to take any screenshots, please include them as they can be very helpful.<br />
</strong>Thank you for playing Pokémon!<br />
Sincerely,<br />
The Pokémon Company International Support Team</p></blockquote>
<p>Now, I&#8217;ll admit that I missed some of those details (none were actually asked when opening the ticket), some actually were, like the details regarding the issue and the Support ID.</p>
<p>Since I provided the Support ID, I assumed that they&#8217;d at least have the device model, OS and OS version. According to their <a href="http://www.apppokemon.com/koiking/webview/kiyaku/kiyaku002/policy.html">privacy policy</a> they log device hardware and software data, so it&#8217;s a bit odd, but oh well. After I supplied them with 3 screenshots of the same screen with the animation just a bit different (and a clock showing it goes on for over 15 minutes) and the screenshot listed below, I had to wait again.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-12046" src="/wp-content/uploads/2017/06/received_1484075364949304-225x300.jpeg" alt="" width="225" height="300" /></p>
<p>The same day it got escalated to a &#8220;dedicated&#8221; team. Due to high ticket volumes, a resolution may take longer than normal. The weird thing is, that they don&#8217;t express what the normal resolution time is.</p>
<p>After just a week, I got the following &#8220;solution&#8221;:</p>
<blockquote><p>Hello Trainer,<br />
Thank you for contacting Pokémon Support! We understand you are receiving an error when trying to connect to the store. The development teams recommends the following:</p>
<p>&#8211; Please confirm that your game was downloaded from the correct Google Play/Apple account.<br />
&#8211; Check with Google/Apple to make sure previous purchases are completed<br />
&#8211; If your OS is not the latest, please update the OS on your device.</p>
<p>At this time, there is no other method to help solve this issue. We apologize for the inconvenience.</p>
<p>Thank you for playing Pokémon!<br />
Sincerely,<br />
The Pokémon Company International Support Team</p></blockquote>
<p>I always use the same Google Account for downloads, so that&#8217;s not it and no previous purchases are listed in my Google Play Account for Magikarp jump. No pending OS updates either, so I went back to them again..</p>
<blockquote><p>This is obviously not a solution.</p>
<p>The game is downloaded from Google play, the latest version is installed.</p>
<p>No purchases are pending in Google Play.</p>
<p>My OS is the latest available.</p>
<p>I have uninstalled and tried with a new player and I could open the screen. The moment I restored my data, I couldn&#8217;t open the store screen anymore. It&#8217;s like it&#8217;s trying to check for something on your backend.</p>
<p>I&#8217;ve checked logcat and nothing relevant showed up. If needed I can provide the backup details so you can try to debug it locally.</p></blockquote>
<p>Since I&#8217;m a developer, I tried to check it out as much as I could, but even in logcat, I couldn&#8217;t see anything useful. Hell, I even tried to give them the details required to debug it on their end. But even that didn&#8217;t help&#8230;</p>
<blockquote><p>Hello Trainer,<br />
The development team stated that they do not take backup information and there are no other steps to fix this error other than what we have already provided.<br />
Thank you for playing Pokémon!<br />
Sincerely,<br />
The Pokémon Company International Support Team</p></blockquote>
<p>My only conclusion is that they don&#8217;t want my money. I also guess they don&#8217;t want other people&#8217;s money, since issues like these rarely happen for just one person. It&#8217;s just that a lot of people won&#8217;t even bother contacting support, they just give up.</p>
<p>I tried for almost a month and my issue is still not resolved. The only way to &#8220;fix&#8221; this is to start all over again, but since I&#8217;d have to start over, that&#8217;s not an option. This is something related to my savegame/profile and the ones who CAN solve this, won&#8217;t. Well done Pokémon Company, well done.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jeroenheijster.nl/support-is-sometimes-the-worst/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Windows 10 N Anniversary Update Media Feature Pack</title>
		<link>https://jeroenheijster.nl/windows-10-n-anniversary-update-media-feature-pack/</link>
					<comments>https://jeroenheijster.nl/windows-10-n-anniversary-update-media-feature-pack/#respond</comments>
		
		<dc:creator><![CDATA[mjheijster]]></dc:creator>
		<pubDate>Fri, 05 Aug 2016 20:58:33 +0000</pubDate>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[10]]></category>
		<category><![CDATA[anniversary]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[pack]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://www.jeroenheijster.nl/?p=12011</guid>

					<description><![CDATA[Over the last hour, I&#8217;ve been looking for the correct update for the Anniversary Update. Since Microsoft does not give you the option to, either let it detect which update you need or select on which version you are, I was stuck looking it up. Eventually I found it. You can download it here (KB3133719).]]></description>
										<content:encoded><![CDATA[<p>Over the last hour, I&#8217;ve been looking for the correct update for the Anniversary Update. Since Microsoft does not give you the option to, either let it detect which update you need or select on which version you are, I was stuck looking it up.</p>
<p>Eventually I found it. <a href="https://www.microsoft.com/en-us/download/details.aspx?id=53356">You can download it here (KB3133719).</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jeroenheijster.nl/windows-10-n-anniversary-update-media-feature-pack/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>On the topic of service</title>
		<link>https://jeroenheijster.nl/service/</link>
					<comments>https://jeroenheijster.nl/service/#respond</comments>
		
		<dc:creator><![CDATA[mjheijster]]></dc:creator>
		<pubDate>Mon, 27 Jun 2016 14:38:55 +0000</pubDate>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[logitech]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[service]]></category>
		<guid isPermaLink="false">https://www.jeroenheijster.nl/?p=12001</guid>

					<description><![CDATA[I use a lot of hardware. Since I use my products a lot, things break. Usually I try to get support to see if an issue falls under warranty. What I've noticed is that some companies try to avoid replacing things that broke. ]]></description>
										<content:encoded><![CDATA[<p><strong>Hardware</strong></p>
<p>I use a lot of hardware. From my LG G3 to my Surface Pro 2 and even my ASUS ROG G750. Hell, I even have an Intel NUC as a mediaserver. My peripherals tend to vary a lot as well. I have a Roccat Tyon mouse for my laptop, a Logitech G35 headset for my laptop, an LG G Watch connected to my phone, a Microsoft All-in-One mediakeyboard for my mediaserver/mediacenter and a Microsoft Designer bluetooth-mouse for my surface. In the past I&#8217;ve used a lot of different mice. A Razer Copperhead, a Logitech G500, a Microsoft Sidewinder X8 and so much more&#8230;</p>
<p><strong>The bad</strong></p>
<p>Since I use my products a lot, things break. Usually I try to get support to see if an issue falls under warranty. What I&#8217;ve noticed is that some companies try to avoid replacing things that broke. Logitech, for example, didn&#8217;t service me, claiming that I should just return to the shop after I explained why I couldn&#8217;t. To be fair, that is within their rights.</p>
<p><strong>The way it should be</strong></p>
<p>Luckily, other companies are a lot better when it comes to service. I&#8217;ve had a HDD fail in an ASROCK ION 330 mediaserver after a year. The HDD was replaced without any issues after contacting ASROCK.</p>
<p>Still, Microsoft  seems to be king when it comes to warranty claims. My Microsoft Sidewinder X8 had a &#8220;puck&#8221; which was the wireless receiver. Since this had to be connected by USB, it involved a cable. I noticed that the cable&#8217;s plastic wrapping was ripping apart, exposing the wires inside. After registering my product and contacting Microsoft, they sent me a brand new product. I told them that my old one still worked, so I asked where I should send the old one to and they said I could keep it. I didn&#8217;t even have to show any proof. You can imagine that I was a really happy customer at that point.</p>
<p>This year, I&#8217;ve had a couple of issues with Microsoft products. At the beginning of this year, my Kinect for the Xbox One failed. It required me to unplug and re-plug the Kinect into my Xbox One to work again every day. I contacted Microsoft Support after seeing my warranty expired a week before. This wasn&#8217;t a problem and they shipped me a new one. They provided me with a shipping label to return the defective one and all was good.</p>
<p>Last week, when travelling abroad, I noticed that my Surface Pro 2 charger no longer worked. Since I didn&#8217;t have a receipt any more and officially the charger no longer have warranty (it comes with 1 year warranty and my tablet is almost 2 years old). Still, I called Microsoft Support since I couldn&#8217;t find a way to purchase a new official charger in my country. After explaining that my charger no longer functioned (and the charging light no longer goes on), they sent me a new charger free of charge under warranty! I really didn&#8217;t expect my charger to be replaced since it appears to be a cable inside seemed to have broken.</p>
<p>I really think that Microsoft gives great support on their hardware. I have recommended their hardware in the past because of it and I will continue to do so. They seem to get how they should do it and in the process create happy customers that come back for more in the future.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jeroenheijster.nl/service/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Checking for MSDeploy in Inno Setup</title>
		<link>https://jeroenheijster.nl/checking-for-msdeploy-in-inno-setup/</link>
					<comments>https://jeroenheijster.nl/checking-for-msdeploy-in-inno-setup/#respond</comments>
		
		<dc:creator><![CDATA[mjheijster]]></dc:creator>
		<pubDate>Wed, 09 Mar 2016 12:24:52 +0000</pubDate>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[inno]]></category>
		<category><![CDATA[msdeploy]]></category>
		<category><![CDATA[setup]]></category>
		<guid isPermaLink="false">https://www.jeroenheijster.nl/?p=11981</guid>

					<description><![CDATA[At my work, we use Inno Setup to deploy ASP.NET web packages. With PowerShell we set various parameters and call MSDeploy to deploy the package to IIS. A problem we faced recently was that MSDeploy was not installed on the server. We needed to check before running the wizard if MSDeploy was installed. Since the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>At my work, we use Inno Setup to deploy ASP.NET web packages. With PowerShell we set various parameters and call MSDeploy to deploy the package to IIS. A problem we faced recently was that MSDeploy was not installed on the server. We needed to check before running the wizard if MSDeploy was installed.</p>
<p><span id="more-11981"></span></p>
<p>Since the normal deploy.cmd from Microsoft already has a detection mechanism, I used that as a basis to create the procedure in Pascal. Since I rarely use Pascal, it took a while to get the proper commands.</p>
<p>In deploy.cmd the registry is checked for the install path of MSDeploy. The cmd file takes into account that there can be multiple entries for MSDeploy. In my case I have &#8220;C:\Program Files\IIS\Microsoft Web Deploy\&#8221; and &#8220;C:\Program Files\IIS\Microsoft Web Deploy V3\&#8221;. When MSDeploy.exe is found in one or both of those folders, the deployer continues.</p>
<p>In Pascal, I wrote the following procedure to do the same:</p>
<pre class="lang:delphi decode:true ">procedure CheckMsDeploy();
var
  Names: TArrayOfString;
  I: Integer;
  installPath: String;
  ErrCode: integer;
  begin
   MSDeployInstalled := False;
  if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\IIS Extensions\MSDeploy', Names) then
  begin
    for I := 0 to GetArrayLength(Names)-1 do
		begin
			if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\IIS Extensions\MSDeploy\' + Names[I], 'InstallPath', installPath) then
			  begin
				if FileOrDirExists(installPath + 'MSDeploy.exe') = True then
				MSDeployInstalled := True;
			end
		end  
	end;
	if MSDeployInstalled &lt;&gt; True then
		if MsgBox('MSDeploy was not found on this machine. This is required for the setup. Would you like to go to knowledgebase article http://go.microsoft.com/?linkid=9278654 ?', mbConfirmation, MB_YESNO) = IDYES
		  then begin
			ShellExec('open', 'http://go.microsoft.com/?linkid=9278654',
			  '', '', SW_SHOW, ewNoWait, ErrCode);
       Abort();
    end;
end;</pre>
<p>&nbsp;</p>
<p>This procedure is called in InitializeWizard through CheckMsDeploy();. If MSDeploy is not found, it will show a message dialog with the question if you want to go to the knowledgebase article. If they click yes, the URL will open in their default browser. No matter what the user selects, the installer will exit due to the Abort(); call.</p>
<p>With this procedure, we can enforce that the user already has MSDeploy installed, which will save us with help requests.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jeroenheijster.nl/checking-for-msdeploy-in-inno-setup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GOG, a praise.</title>
		<link>https://jeroenheijster.nl/gog-a-praise/</link>
					<comments>https://jeroenheijster.nl/gog-a-praise/#respond</comments>
		
		<dc:creator><![CDATA[mjheijster]]></dc:creator>
		<pubDate>Sun, 20 Jul 2014 12:25:46 +0000</pubDate>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[DRM]]></category>
		<category><![CDATA[gog]]></category>
		<category><![CDATA[praise]]></category>
		<category><![CDATA[Steam]]></category>
		<guid isPermaLink="false">http://www.jeroenheijster.com/?p=11838</guid>

					<description><![CDATA[GOG is a digital game distribution site. It is comparable to Steam, but it doesn&#8217;t have a DRM like Steam does and offers a better price. GOG and Steam The fact that GOG doesn&#8217;t have a DRM is, in my eyes, one of the biggest pluses. When the service goes down, temporarily or forever, you [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><em>GOG is a digital game distribution site. It is comparable to Steam, but it doesn&#8217;t have a DRM like Steam does and offers a better price.</em></p>
<h2>GOG and Steam</h2>
<p>The fact that GOG doesn&#8217;t have a DRM is, in my eyes, one of the biggest pluses. When the service goes down, temporarily or forever, you still have your local copy. Even when your account gets banned, you still have the local copies.</p>
<p>The biggest downside is that you currently miss some of the convenience Steam offers. One of those conveniences is auto-updating. This is something I currently miss, but it will be addressed soon with <a href="http://www.gog.com/galaxy">GOG Galaxy</a>, an OPTIONAL client.</p>
<p><span id="more-11838"></span></p>
<h2>DRM</h2>
<p>GOG has gained a lot of fans since it has launched. As mentioned before, the games are DRM free. In my eyes, this shows that they trust their consumers. The reason I say that is because more often than not, the DRM&#8217;s in place to protect from pirates, hurt the consumers, while the pirates just use a crack, circumventing the DRM entirely. By not using a DRM, the pirates don&#8217;t have to crack it, but the consumers won&#8217;t have a DRM system which may bother them.</p>
<p>As Tommy Refenes, developer of Super Meat Boy, once said, <em>you cannot stop piracy</em>.</p>
<blockquote><p><em>The reality is the fight against piracy equates to spending time and money combating a loss that cannot be quantified. Everyone needs to accept that piracy cannot be stopped and loss prevention is not a concept that can be applied to the digital world. Developers should focus on their paying customers and stop wasting time and money on non-paying customers. Respect your customers and they may in turn respect your efforts enough to purchase your game instead of pirating it.</em></p>
<p>&nbsp;</p>
<p><em>As a result of piracy developers feel their hand is forced to implement measures to stop piracy. Often, these efforts to combat piracy only result in frustration for paying customers. I challenge a developer to show evidence that accurately shows implementation of DRM is a return on investment and that losses due to piracy can be calculated. I do not believe this is possible.</em></p>
<p>&nbsp;</p>
<address>source: <a href="http://tommyrefenes.tumblr.com/post/45684087997/apathy-and-refunds-are-more-dangerous-than-piracy">http://tommyrefenes.tumblr.com/post/45684087997/apathy-and-refunds-are-more-dangerous-than-piracy</a></address>
</blockquote>
<p>This was also stated in a 2011 paper, Music Downloads and the Flip Side of Digital Rights Management Protection. But not only that, DRM seems to also make pirates from people who would&#8217;ve otherwise bought it.</p>
<blockquote><p><em>Because a DRM-restricted product will only be purchased by a legal user, …&#8221;only the legal users pay the price and suffer from the restrictions,&#8221; the study said. &#8220;Illegal users are not affected because the pirated product does not have DRM restrictions.&#8221;</em></p>
<p>&nbsp;</p>
<p><em> &#8220;In many cases, DRM restrictions prevent legal users from doing something as normal as making backup copies of their music,&#8221; Vernik said. &#8220;Because of these inconveniences, some consumers choose to pirate.&#8221;</em></p>
<p>&nbsp;</p>
<p><em> The research challenges conventional wisdom that removal of DRM restrictions increases piracy levels; the study shows that piracy can actually decrease when a company allows restriction-free downloads.</em></p>
<p>&nbsp;</p>
<p><em> &#8220;Removal of these restrictions makes the product more convenient to use and intensifies competition with the traditional format (CD&#8217;s), which has no DRM restrictions,&#8221; Vernik said. &#8220;This increased competition results in decreased prices for both downloadable and CD music and makes it more likely that consumers will move from stealing music to buying legal downloads.&#8221; </em></p>
<p>&nbsp;</p>
<p><em> &#8220;Unlike in earlier literature, we examine consumers&#8217; choices among all the major sources of music,&#8221; Desai said. &#8220;By analyzing the competition among the traditional retailer, the digital retailer and pirated music, we get a better understanding of the competitive forces in the market.&#8221;</em></p>
<p>&nbsp;</p>
<p><em> The research also revealed that copyright owners don&#8217;t necessarily benefit from a lower amount of piracy. &#8220;Decreased piracy doesn&#8217;t guarantee increased profits,&#8221; Purohit said. &#8220;In fact, our analysis demonstrates that under some conditions, one can observe lower levels of piracy and lower profits.&#8221;</em></p>
<p>&nbsp;</p>
<p><em> &#8220;[The late] Steve Jobs said it best: &#8216;Why would the big four music companies agree to let Apple and others distribute their music without using DRM systems to protect it? The simplest answer is because DRMs haven&#8217;t worked, and may never work, to halt music piracy.'&#8221; Vernik said. &#8220;And our research presented a counter-intuitive conclusion that in fact, removing the DRM can be more effective in decreasing music piracy than making the DRM more stringent.&#8221;</em></p>
<p>&nbsp;</p>
<address>source: <a href="http://business.rice.edu/jgsb2011_2column.aspx?id=4294967941">http://business.rice.edu/jgsb2011_2column.aspx?id=4294967941</a></address>
</blockquote>
<p>So yes, I&#8217;m not a fan of DRM systems. Not only for what the quotations say, but also because they hurt me.  Who can forget the <a href="http://www.pcworld.com/article/2030197/simcity-launch-debacle-drags-on-as-ea-disables-features.html">SimCity launch debacle</a>&#8230; Or even a Steam offline mode which did not want to work, resulting in my not being able to play the games I bought. Or when Steam&#8217;s servers are unavailable again&#8230;</p>
<h2>Price</h2>
<p>Still, the DRM is not all. GOG also offers fair pricing. Usually this means games are in dollars in all regions. Steam has been using local currencies since 2008 (<a href="http://store.steampowered.com/news/2110/">source</a>). This, sometimes, creates huge differences in prices. At the moment of writing, 1 euro = 1,36081 US dollar. This means a 60 euro release is nearly 82 dollars.</p>
<p>Lately publishers asked to have pricing in the local currency for GOG as well. This is now an option for publishers/developers when they want to publish a game. Since a lot of users felt betrayed and GOG saw that, they told their users how they would fix it. Now they offer coupons to consumers when regional pricing is used to compensate for it. (<a href="http://www.gog.com/news/getting_back_to_our_roots">source</a>) While they didn&#8217;t HAVE to do this, they did.</p>
<blockquote><p><em>The bottom line is simple: there may be companies that won&#8217;t work with us (although we will work hard to convince the most stubborn ones ;). Yes, it means we might miss out on some games, but at the same time GOG.com will remain true to its values and will keep on offering you the best of DRM-free gaming with Fair Prices.</em></p>
<p>&nbsp;</p>
<address>source: <a href="http://www.gog.com/news/getting_back_to_our_roots">http://www.gog.com/news/getting_back_to_our_roots</a></address>
</blockquote>
<h2>Bottom line</h2>
<p>GOG offers a great deal for gamers. While not all games are on there, the games are DRM-free and prices are fair for everyone. Moreover automatic updates, achievements and more are coming to GOG soon with GOG Galaxy.</p>
<p>So seriously, I love GOG. No DRM, better prices and the service is in most cases better than Steam. While we do not have everything, we soon will have what we need.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jeroenheijster.nl/gog-a-praise/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Why I think Firefox SHOULD implement EME</title>
		<link>https://jeroenheijster.nl/firefox-implement-eme/</link>
					<comments>https://jeroenheijster.nl/firefox-implement-eme/#respond</comments>
		
		<dc:creator><![CDATA[mjheijster]]></dc:creator>
		<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Firefox]]></category>
		<guid isPermaLink="false">http://www.jeroenheijster.com/?p=1827</guid>

					<description><![CDATA[As you might&#8217;ve read on the internet before now, Firefox will implement EME(Encrypted Media Extensions). While the internet is in uproar about this, I think they do not have a choice. What is EME EME is a JavaScript API to play encrypted media. This would mainly include videos. You can think about encrypting Netflix and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><em>As you might&#8217;ve read on the internet before now, Firefox will implement EME(<strong>Encrypted Media Extensions</strong>). While the internet is in uproar about this, I think they do not have a choice.</em></p>
<h3>What is EME</h3>
<p>EME is a JavaScript API to play encrypted media. This would mainly include videos. You can think about encrypting Netflix and Youtube video&#8217;s. With this, they should be able to protect copyrighted materials.  For this, the browser needs an extension to communicate with a license server to get keys to enable decryption of the media.</p>
<p>When talking about Netflix, a usage could be that EME would authenticate you as a user, determine your identity and permissions and decide if you&#8217;re able to decrypt the file and play it.</p>
<p>The decryption is done by the Content Decryption Module. This is a client side or hardware module. It receives a license from the License (Key) Server and eventually decrypt and decode it.</p>
<p><span id="more-1827"></span></p>
<h3>Other browsers</h3>
<p>Firefox will not be the first to include EME. Internet Explorer 11, Chrome, Safari, Opera and probably some other browsers have already implemented it. Not everyone liked it, but sadly, they have to.</p>
<h3>Why they need to</h3>
<p>While most people don&#8217;t want EME, Mozilla can&#8217;t just ignore it. When they would, users will eventually not be able to view some media. Other sites may even block Firefox from their sites just to protect themselves. Most users won&#8217;t temporarily switch to another browser to view one site. If one browser supports most, excluding a few sites the user wants to visit and the other supports them all, the user will switch.</p>
<p>There are some users who will stick to a browser, I&#8217;ve seen that with Opera in earlier versions of the browser. Some sites just blocked Opera by showing them a message that the user cannot view the site with Opera and that they should switch to a &#8220;decent&#8221; browser like Firefox.</p>
<p>This means, for me, that I&#8217;m not mad. I won&#8217;t stop using Firefox. Firefox has resisted it as long as they could, but what are the alternatives? Do you protest by switching to another browser? Well, you&#8217;re out of luck then. The other mayor browsers have already implemented it before&#8230; EME is here and it seems like it&#8217;s here to stay.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jeroenheijster.nl/firefox-implement-eme/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
