.NET (299) administrative (42) Ajax (42) AngularJS (2) ASP.NET (146) bicycle (2) books (198) browser (10) C# (135) cars (1) chess (29) CodePlex (10) Coma (8) database (54) deployment (3) Entity Framework (2) essay (118) flash/shockwave (2) flex (1) food (3) friend (2) game (21) idea (5) IIS (8) javascript (85) LInQ (2) Linux (6) management (4) manga (45) misc (709) mobile (1) movies (99) MsAccess (1) murder (2) music (64) mysql (1) news (101) NuGet (1) permanent (1) personal (67) PHP (1) physics (2) picture (334) places (12) politics (15) programming (519) question (2) rant (123) religion (3) science (44) Sharepoint (3) software (59) space (1) T4 (2) technology (13) Test Driven Development (4) translation (2) VB (2) video (104) Visual Studio (45) web design (47) Windows API (8) Windows Forms (3) Windows Server (6) WPF/Silverlight (63) XML (12)

Tuesday, April 28, 2015

Mobile operators transparently change the content you download from the Internet

... and I don't mean something like injecting ads; I mean they modify the images you download and the pages that you read. They do that without telling you, under the umbrella of "improving your browsing experience". Let me give you some examples.

Today I copied two image files on a server: a JPEG and a PNG file. When downloaded via a normal network connection, I was getting the original file, about 50KB in size. When downloaded via 3G the image was different! In the jpeg case the file was smaller by a few hundred bytes and in the case of the PNG the file was actually bigger than the original. What was worse, the metadata information in those photos, like the software used to compress it, for example, was completely lost.

I couldn't believe my eyes. I strongly believe that what you ask for from the Internet you should get. This may not have been obvious for someone downloading the images in order to see them, but I was actually conducting a test that depended on the exact size of the file I was downloading. This practice seems to be widespread, but when Googling for it very few links pop up, showing that people mostly have no idea that it happens. In this operator's case, they seem to only change images, but people on the Internet tell stories of bundling CSS and Javascript files inside HTML files, or removing comments from either of them.

The morality of this is dubious at best, in my view it should be illegal, however things are worse than that: this behavior breaks functionality in existing sites. How can you possibly guarantee that your application works as expected when mobile operators (and I guess any ISP) can change your content arbitrarily and without the possibility to opt out? It's like that joke with the boyscout explaining at camp that little old ladies are hardier than one might think, as they squirm and shout and hit you when you try to cross them the street and the instructor soon finds out that it never occurred to the boy that he should first make sure they want to get to the other side.

Here are some links regarding this, just to make sure people can find them more easily:

Mobile operators altering (and breaking) web content
Should mobile operators be free to modify content they deliver?
Mobile Proxy Cache content modification by O2
O2 UK mobile users - your operator is breaking this site for you.
Prevent mobile website image compression over 3G
Get rid of image compression on O2′s network
ByteMobile Adaptive Traffic Management

From the last link you can see that they are caching and modifying even movies, through practices like giving you a lower rate movie or caching a version with a lower resolution. They do this in the name of delivering you video content compressed with a format and codec that your device can safely open.

A solution for this? Encryption. Using HTTPS prevents access to the content from a third party. HTTPS is becoming more and more used, as the hardware requirements for its implementation become less restrictive and with the many revelations about government scrutiny of Internet communications. However, you might be interested to know that mobile operators are feeling threatened by it. Articles from their point of view decry the "threat" of encryption and the solutions against it! The terrible impact of encryption is seen as an impediment in their rightful "content and delivery optimization techiques".

Things are getting even worse. Remember the concept of network neutrality? It is a very hot topic today and a very important political and economic fight is being fought right now to protect the transparency of the Internet. However, if you look further, you see that nobody considers the practice of "optimization" as something net neutrality should protect. In December 2010, the US Federal Communications Commission set three basic rules for net neutrality:
  • Transparency. Fixed and mobile broadband providers must disclose the network management practices, performance characteristics, and terms and conditions of their broadband services;
  • No blocking. Fixed broadband providers may not block lawful content, applications, services, or non-harmful devices; mobile broadband providers may not block lawful websites, or block applications that compete with their voice or video telephony services; and
  • No unreasonable discrimination. Fixed broadband providers may not unreasonably discriminate in transmitting lawful network traffic.
So they are primarily focusing on blocking and throttling, but not on preserving the integrity of the transmitted data!

The Death of the EZTV site

EZTV.it was a site that listed in a very simple interface the latest TV shows in the English language, together with links to their torrent or magnet links. It was very easy to use and, as opposed to other similar sites, was selective in bringing you the best link for a TV show. You didn't get a billion different torrents for an episode of a TV show, you just got the low resolution and high resolution versions and sometimes the repacked or fixed versions when the first upload was defective. It was almost ad free, as well.

Well, lately some strange things have happened and it seems to me that there is more than meets the eye in the entire story. It started with the eztv.it domain being abandoned after the intervention of the Italian authorities. EZTV were planning to change the domain to a more amenable country, like Switzerland. That happened in January.

It didn't take long until someone bid for the domain name in auction and in March the eztv.it site was back, but under a different management. For a while they were content to proxy the new EZTV site (eztv.ch), in a site that looked exactly as the old one. As you can see from the link above, the new guys actually wanted to "manage" EZTV, getting money from the torrent link business, while doing nothing than own the domain. Novaking, the guy who fronts the EZTV group, refused any deal and so, after a while, torrent links started redirecting to ad sites.

It gets even more interesting, as somehow - and I admit domain name auctioning is not something I am an expert in - the eztv.ch domain was also captured by the same people who got the .it domain. As of now, there are no official EZTV sites anymore, both eztv.it and eztv.ch are impostor sites and with a horrible quality of service.

We have to consider several factors here. First of all, Novaking is the nickname of a person that, as far as I know, desired to remain anonymous. Probably that is why it is easier for someone to seize domains like that if they are willing to pay money and even name themselves. Then there is the actual intervention of the Italian authorities. They seemed to be angry about a site that provided torrent links, but don't seem to have anything against an exact copy of that site bought money down and that intents to make a lot of money out of ads. What happened in Switzerland is less clear. Did Novaking just abandon the fight and ditched that domain as well because he thought the entire thing was too big a hassle or was there some kind of hostile takeover, just like with the Italian domain? And finally, you have the new registrar of the two domains listing a Dominguez Emmanuel Hernandez, with an address in the United Kingdom. As several cases in the past showed, UK is really against file sharing sites, even if they are just linking to illegal content.

As far as I can gather, it should have been more difficult, not easier, for an entity as Hernandez to do the kind of work that Novaking did. It could all be foul play from the authorities and/or the legal and commercial entities dedicated to fight piracy. Certainly they would not be shy to use the vague laws that govern the Internet to their advantage to hurt their adversaries who do the same thing. However, if that would be true, they would lose the moral ground for their supposed reason to fight against file sharing.

Of course, it may also be some sort of internal split and subsequent power struggle inside the EZTV distribution group. Maybe this Hernandez guy was an inside man all along and he decided he wanted more money from his work. However that doesn't sound all true either, as the quality of the work on the fake eztv sites is terrible compared to what it was before and the functionality of the site is not all there, like someone has copied the old EZTV site from the web and not having access to the source code. There are some tweets that mention the site having reverted to "ancient passwords", though, so maybe there was access to the database of the site, somewhere in the past.

The last speculation I have is that after losing the .it domain EZTV voluntarily sold the .ch domain. An IRC message on the EfNet #eztv channel announced the end of the Novaking EZTV era:

[2015.04.25 20:24 PDT] <@NovaKing_> it was fun running eztv. Hope you guys had enjoyed it. site has new owners now. farewell.

As you can see he uses the term "owners", which might suggest a sell.

Well, I am curious of what actually happened in this very interesting story, but as things are right now, I am not sure I will ever find out. One thing is certain, however: you should not use the eztv.it and eztv.ch sites anymore. In the best case scenario, you would be supporting an immoral act of web site theft and impersonation, and in the worst you would be using a web site handled by antipiracy organizations.

Friday, April 24, 2015

The Gift of Fear, by Gavin de Becker

book cover The Gift of Fear has popped up repeatedly in my field of view, recommended by multiple sources. I started reading it and at the beginning I thought it had a nice concept: the systematic study of violence perpetrated by people, written for reasons of protecting ourselves. However, Gavin de Becker has a writing style that got to me really fast. He sounds like he is the lecturer in a police conference, and half of everything he says is just marketing for the bits that are going to come next. You know the type: "I will reveal to you the secrets of the universe, but before I do that in one of the next chapters, let me tell you a little story". I mean, what he is saying makes sense, but he oversells it so brutally that I could not continue reading past the half of the book. You know, he sounds a lot like Walter O'Brien, the guy who's life is supposedly the basis of the TV show Scorpion. He doesn't sound like the O'Brien on TV, but like the actual guy, always overselling and overstating everything he allegedly did. Also the little anecdotes are useful in the book, but his explanations are so over the top. Man!

Anyway, the things that I chose to take from the book is the JACA system for assessing threats and the fact that when your intuition is telling you something, it either means it has access to some data that you are not conscious of or that it malfunctions and in either case you need to pay attention. The JACA system is about someone being more of a credible threat if they pass four tests. J: they feel Justified to harm you. A: they feel that they have no Alternative to violence. C: they believe the Consequences of violent action will be manageable. A: they believe they are Able to do you harm. Of course, that immediately makes someone believe that the first step of counteracting such a person is to convince them they are not justified, which fails on so many levels, especially with an antagonist.

The book covers all kind of violence: rape, murder, stalking, assassination, road rage, office vengeance, domestic violence, even violent children (I haven't gotten to that part). I can imagine how this book would be very useful to young people, scared women, maybe even children, but with the language being so pretentious and the guy making it all sound like a marketing pitch, I doubt it would be accessible to any of them. Let me reiterate: I believe the subject of the book is a good one and it should be addressed. I also don't criticize the conclusions that Becker reaches or doubt his professional experience. What I am saying is that the way the book is written stylistically made it unreadable for me. So instead of reading a few pages every week, I've decided to stop reading it. Sorry, Gavin! I only wish someone would make a short summary of it, since a lot of the stuff there is at least interesting, if not downright useful.

Thursday, April 23, 2015

Star Trek: Odyssey, another fan made Star Trek series

the starship Oddysey and its crew The same people that did Star Trek: Hidden Frontier created the three season Star Trek: Odyssey. The first season was pretty good, beginning a story that was a combination of Voyager, Deep Space Nine and even Enterprise, the second season had fewer resources and the third season was decent, but the story was a complete mess that was very hard to grasp. Luckily enough, the superfluous homosexual stories in Hidden Frontier were almost not existent in Odyssey. Instead we were treated to intergalactic invasions, religious empires, slipstream drives, artificial wormholes, omega particles, anti-omega particles, Romulan first officer played by lovely Michelle Laurent and some decent (not good) screenplay. The technical effects, acting and directing varied from OK to really bad. They clearly learned a lot from Hidden Frontier, but the green screen continues to be their greatest enemy.

Even better, it is a crowdfunded show and you can watch it all online, for free, on YouTube. Here are the links for all three seasons:

Season 1
Season 2
Season 3


Monday, April 20, 2015

The correct log4Net RollingFileAppender configuration

I was trying to do a simple thing: configure a daily rolling log for log4net, meaning that I wanted that log files would be created daily and the name of the files would contain the date. The log was already configured and working with a normal FileAppender, so all I had to do was find the correct configuration. There are several answers on the Internet regarding this. I immediately went to the trusty StackOverflow and read the first answers, copy pasted lazily, and it seemed to work. But it did not. So warning, the first answer on StackOverflow about this is wrong.

So, my logs had to be named something like Application_20150420.log. That means several things:
  • The name of the appender class has to be set to log4net.Appender.RollingFileAppender
  • The name of the log files need to start with Application_ and end in .log
  • The name of the log files need to contain the date in the correct format
  • The logger needs to know that the files need to be created daily

This is the working configuration:
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
     <filter type="log4net.Filter.LevelRangeFilter">
         <acceptOnMatch value="true" />
         <levelMin value="DEBUG" />

  <file type="log4net.Util.PatternString" value="c:\logfiles\Application_.log" />
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <datePattern value="yyyyMMdd" />
  <preserveLogFileNameExtension value="true"/>
  <staticLogFileName value="false" />

  <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %-5level %logger - %message%newline"/>

As you can see, it is a little counter-intuitive. You do not need to specify the date in the file name, it will be added automatically, and you absolutely need to use preserveLogFileNameExtension, otherwise your files would look like Application_.log20140420