website hit counter MediaPortal Steals Images from WebGuide4 Developer (Rips Off Program) - Chris Lanier's Blog

MediaPortal Steals Images from WebGuide4 Developer (Rips Off Program)

Should it be any shock they never released this application?  Your probably right though, nothing to hide on their part and clearly nothing was stolen in this coverup which resulted in no application being released.

Update: MediaPortal Responds!  According to them: “To be clear, these parts are gfx  only and NOT code. The reason this happened is because during development we borrowed the gfx layout of webguide4 with the intention to replace all the gfx with MP's own ones before releasing.”  You can be your own judge based on the code below. 

Update 3: Before commenting, remember that no one from MediaPortal has contacted Doug or replied to his e-mails as of 04/04/2007 at 1 pm CST.

Yesterday I posted about the possibility that MediaPortal might have just ripped off WebGuide4 by Doug Berrett.  Today, thanks to everyone we find out that this looks like it's sadly true.  From the looks of things MediaPortal’s code looks very much like Doug’s from WebGuide4, a non-open source product.

It started out noticing how similar the graphics were, and in fact the exact same UI design is in both products.  Both are said to use the same web server components, Cassini or IIS.  Interesting thing about that is that Cassini does not yet work with MediaPortal’s stolen version, where it is the default with WebGuide4 (according to forum posts).  Not sure what happened there, but Cassini and IIS are pretty major web servers for ASP.NET so it’s hard to claim it was stolen based on that alone.

Attack of the Clones!

image

Then last night, MediaPortal strangely took down there post about “Webinterface for tvserver3” as well as the Wiki docs (Google Cache) on their website.  The post can now be found via Google's Cache, and the original story now says “You are not authorized to view this resource.”

Thanks to Mashman for doing the basic research and finding the SVN link at SourceForge.  Here we can even see that the MediaPortal guys left the WebGuide4 images in the directories!  What better way to get caught then to have images of the original work in your stolen copy.  wg4-logo-silver.png and wg4-logo-silver-big.png are just two of the exact images stolen from WebGuide4 but it doesn’t stop with images.

One of the great things about open source is that you can download the code and take a look at it.  Doug has both copies of the code (his WebGuide4 and MediaPortal’s stolen) and had compared the two.

The results are not good so far.  According to Berrett, the “coincidences in the code… make me suspicious.”

Here are some samples before, in my non-programmer opinion I can still see the similarities very well.

Doug’s WebGuide3/4:*

If pt.Text.Length > len(cell_width) + 3 Then pt.Text = pt.Text.Substring(0, len(cell_width) - 3).Trim & "…"

MediaPortal’s “Version”:

if (length != program.Title.Length) title = program.Title.Substring(0, length - 3) + "...";

Doug’s WebGuide3/4:*

tooltip = Me.Attributes("title") & "  " & start_time.ToLocalTime.ToShortTimeString & " - " & end_time.ToLocalTime.ToShortTimeString & IIf(Me.Attributes("description") <> "", vbCrLf, "") & Me.Attributes("description")

MediaPortal’s “Version”:

cellBase.Attributes.Add("title", String.Format("{0} {1}-{2}\r\n{3}", program.Title, program.StartTime.ToShortTimeString(), program.EndTime.ToShortTimeString(), program.Description));

This is a sad day for MediaPortal.  Such a great project and stealing code directly from other developers without any notice or question.  Taking the same concept and building your own version is fine, using the exact same code as another developer without permission is not.

We get questions all the time at The Green Button on what other products can be used instead of Media Center, so much for ever suggesting MediaPortal again.

On the plus side, it look like the claimed author of the infringing code (“yamp”), is not an official MediaPortal Team Member.  Hopefully this incident will teach the official members to double check code before making public statements on new features and releases.

Hopefully the MediaPortal Team will respond to this issue as soon as possible.

*Code posted with permission of Doug Berrett.

Digg it!

Updates:  They deleted all the images from /trunk/TvEngine3/MPWebGuide/MPGuide/images/.   Click here for an image of what it looked like before they deleted them.  The two noted files are of the WebGuide4 logo.

MediaPortal Responds!  According to them: “To be clear, these parts are gfx  only and NOT code. The reason this happened is because during development we borrowed the gfx layout of webguide4 with the intention to replace all the gfx with MP's own ones before releasing.”

You can be your own judge based on the code above. 

Update 3: Before commenting, remember that no one from MediaPortal has contacted Doug or replied to his e-mails as of 04/04/2007 at 1 pm CST.

Note: Original title read “MediaPortal Steals Code from WebGuide4 Developer”.  Changed to reflect known facts and too try and get MediaPortal supporters to answer my questions, instead of avoid and ignore them.  I’ll digress on the code for now.

Should it be any shock they never released this application?  Your probably right though, nothing to hide on their part and clearly nothing was stolen in this coverup which resulted in no application being released.

Published Tue, Apr 3 2007 10:34 by chrisl

Comments

# re: MediaPortal Steals Code from WebGuide4 Developer

I dugg this article.

Looks like MediaPortal is sort of fessing up. From their website today:

"We've made a big mistake with the web-interface for the tvserver.

As some of you might already have heard, it contains some parts of webguide4. To be clear, these parts are gfx only and NOT code. The reason this happened is because during development we borrowed the gfx layout of webguide4 with the intention to replace all the gfx with MP's own ones before releasing.

Sadly.. we forgot to replace some of the gfx and remove gfx we didnt use.

We would like to apologize to the author of WebGuide4 for this mistake.

http://www.team-mediaportal.com/news/global/webinterface_mistake.html

I use BeyondTV and have enjoyed the access to BeyondTV over the internet. Being able to setup recordings over the internet and my web-enabled phone is a great feature. Manage everything over the internet is something all HTPC PVR's should have so I hope MediaPortal eventually brings this feature, but "borrowing" code is certainly not the right way to do it.

[reply]

Tuesday, April 03, 2007 11:48 AM by Brent Evans

# Rakesh Agrawal&#8217;s Blog &raquo; MediaPortal steals WebGuide MCE code?

# re: MediaPortal Steals Code from WebGuide4 Developer

I hadn’t heard of MediaPotral before reading this article, although I am a registered user of WebGuide 4.  However, to be fair they haven’t stolen the code.  As Webguide 4 is not open source, presumably, they wouldn’t be able to get their hands on it.  What they have done is copy the design, which while not ideal, isn’t the big deal you’re making it out to be.  The code is where most of the hard work is done.

Tuesday, April 03, 2007 1:46 PM by Adam

# re: MediaPortal Steals Code from WebGuide4 Developer

There is nothing stopping them from decompiling it.

Tuesday, April 03, 2007 2:07 PM by chrisl

# re: MediaPortal Steals Code from WebGuide4 Developer

The code samples are not representative. If I would have to code something like I would come up with nearly the same code line.

What about publishing a whole class of WebGuide4 so we can see that the code was realy stolen?

Tuesday, April 03, 2007 2:53 PM by Christoph

# re: MediaPortal Steals Code from WebGuide4 Developer

OK.  Here you go.  Just a sampling of the many coincidences.  

WebGuide:

   Private Sub time_forward_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles time_forward.Click

       Session("grid_start") = CDate(Session("grid_start")).AddMinutes(30)

       Session("grid_end") = CDate(Session("grid_end")).AddMinutes(30)

       loadGrid()

   End Sub

Media Portal:

 protected void idForward_Click(object sender, EventArgs e)

 {

   DateTime now;

   if (Session["currentTime"] == null)

   {

     now = DateTime.Now;

     Session["currentTime"] = now;

   }

   now = (DateTime)Session["currentTime"];

   now = now.AddMinutes(30);

   Session["currentTime"] = now;

   UpdateGuide();

 }

______________________________________________________________

WebGuide:

<a class="recording_list_text"  href="BLOCKED SCRIPTloadInfo('<%# DataBinder.Eval(Container.DataItem, "recording_type")%>','<%# server.HtmlEncode(DataBinder.Eval(Container.DataItem, "id"))%>')">

Media Portal:

td1.InnerHtml = string.Format("<a class=\"recording_list_text\" href=\"BLOCKED SCRIPTloadInfo('recorded','1397')\">\"{0} - \"{1}</a>&nbsp;", rec.Title, rec.Description);

_______________________________________________________________

WebGuide:

Dim list As New ArrayList()

           For Each item As ScheduleItem In items

               If Not recorded Then

                   If item.EndTime.ToLocalTime > Now Then

                       list.Add(New ScheduleEntry(Application, ScheduleEntry.recording_types.scheduled, item, rec, ScheduleEntry.sort_methods.date_asc))

                   End If

               Else

                   list.Add(New ScheduleEntry(Application, ScheduleEntry.recording_types.recorded, item, rec, ScheduleEntry.sort_methods.date_desc))

               End If

           Next

           list.Sort() '(New recordingDateCompareClass(ascending))

Media Portal:

   List<Schedule> allSchedules = new List<Schedule>();

   foreach (Schedule rec in schedules)

   {

     List<Schedule> series = layer.GetRecordingTimes(rec, 14);

     for (int i = 0; i < series.Count; i++)

     {

       allSchedules.Add(seriesIdea);

     }

   }

   allSchedules.Sort(new SortScheduleOnDateTime(true));

_______________________________________________________________

WebGuide:

<td width="30px">

                   <asp:Label ID="channel_number_label" runat="server" CssClass="grid_channel_num">##</asp:Label></td>

               <td align="left">

                   <nobr><asp:hyperlink id="callsign" runat="server" cssclass="grid_channel" style="cursor:pointer" >Callsign</asp:hyperlink></nobr>

               </td>

Media Portal:

     subTable.InnerHtml = String.Format("<span class=\"grid_channel_num\"  style=\"cursor: pointer\">{0}</span>", nr);

     subTable.InnerHtml += String.Format("<nobr><A class=grid_channel style=\"CURSOR: pointer\" href=\"ShowChannel.aspx?id={0}\">{1}</A></nobr>", channel.IdChannel, channel.Name);

__________________________________________________________________

WebGuide:

           If end_time > grid_end Then

               right_continue.Visible = True

           Else

               right_continue.Visible = False

           End If

Media Portal:

     if (program.EndTime > end)

     {

       addRightContinue = true;

     }

Tuesday, April 03, 2007 3:54 PM by Doug Berrett

# re: MediaPortal Steals Code from WebGuide4 Developer

I agree with Christoph, publish the complete class for comparisons as the code is not comparative to a large web based application- the tone and language used in this piece over plays their mistake.

I get the impression from the punctuations that you have enjoyed reporting on this.

Tuesday, April 03, 2007 4:50 PM by Ian

# re: MediaPortal Steals Code from WebGuide4 Developer

you are so cheap ...

Tuesday, April 03, 2007 4:51 PM by damn

# re: MediaPortal Steals Code from WebGuide4 Developer

More code from Doug above.  It was moderated so it took a bit for me to approve.

Tuesday, April 03, 2007 4:52 PM by chrisl

# Chris Lanier's Blog : Update on Stolen Code from WebGuide4 Used In MediaPortal

# re: MediaPortal Steals Code from WebGuide4 Developer

Im just a dumb user...but can someone explain what is here the stolen 'code'? The examples look everything to me but definately not the same. The css-classes sound familiar but thats all? The whole Internet would be closed in this case.

Really strange topic...

Tuesday, April 03, 2007 5:13 PM by Jamie

# re: MediaPortal Steals Code from WebGuide4 Developer

Among the first thing stole is over 100 images.  If a professional was involved in creating these images, it could have cost Doug several hundred dollar to them.  If not, it cost his several hours of time.  Time equals money.

While the code might not be "exact," it is sure similar.  You might not be able to prove in a court that the code was "Stolen," but considering MediaPortal is published under a GPL which says that you can't publish someone elses work without citing them (assuming it's also GPL) this is pretty damn sad.

If I were to steal the MediaPortal code and not credit them, they would be pissed, and so would the whole open source community.  It's a crime to steal open source code, and it's more of a crime to steal someone else's work as MediaPortal has been here.  Doesn't matter if it's a single image, single line of code, etc.

Tuesday, April 03, 2007 5:39 PM by chrisl

# re: MediaPortal Steals Code from WebGuide4 Developer

so they steal code but not really steal cause it cant be proved but somehow they steal cause you think they do but your not a coder?

Thats not only strange, thats confusing...

Somehow Im with Ian, sounds like someone is enjoying his 15 minutes atm

Tuesday, April 03, 2007 5:55 PM by Jamie

# re: MediaPortal Steals Code from WebGuide4 Developer

I steal your car, but I change the license plate and make sure you can't read the VIN.  I change the wheels and put a window tint on.  You still want your car back, don't you?  But wait, it's not yours though, because the license doesn't match and either does the VIN.  It doesn't look like the car you described to the cops either, but you "know" it is.

And yes, I do enjoy reporting on this as I do many other things.  I've been doing this for nearly three years.  I'm not sure you know me if you think this is going to be my "15 minutes."  I've been on Digg, I've been Engadget, I've been a lot of places.  I've had millions of hits here, somehow I doubt this is going to be the one thing that gives me "15 minutes"

What I do know is that they stolen images.  Got proof of that.  I also know that bits of the code look very very similar.  If they stole the images, why not steal some code too?

Back to your car, I stole the keys that were sitting in the front seat.  If I was going to do that, why not just take the car too?

=)

Tuesday, April 03, 2007 6:07 PM by chrisl

# re: MediaPortal Steals Code from WebGuide4 Developer

"If they stole the images, why not steal some code too?"

Thats the dumbest explanation ive heard for a long time. Ok, right behind your strange car example.  

Maybe Im too dumb here too but WebGuide is still fully working, if you have my car...I havnt it. Thats not a small difference, its completly nonsense.

Tuesday, April 03, 2007 6:17 PM by Jamie

# re: MediaPortal Steals Code from WebGuide4 Developer

No, WebGuide stops "working" when people steal it and publish the same (or basically the same) program on the web for "free."  Once someone does that, what reason would Doug have to keep putting his hours of work into a program?  If you notice on his website, there is a "pay for" part of this program.

Tuesday, April 03, 2007 6:22 PM by chrisl

# re: MediaPortal Steals Code from WebGuide4 Developer

This whole idea of "open-source" licensing and programming needs to come to an end. Why can't these people just take credit for the work they do and admit wrote it and that they own it? These people hide from personal liability behing this GPL stamp, and then claim they arent stealing because they allow all to use it. Write something, prove it is yours, and then if you feel like giving it away, add it to the public domain.

Tuesday, April 03, 2007 6:28 PM by Alex

# re: MediaPortal Steals Code from WebGuide4 Developer

$5 says Jamie is a part of the MP staff.  

Tuesday, April 03, 2007 6:38 PM by John Stars

# re: MediaPortal Steals Code from WebGuide4 Developer

How can it stop working when both guides do NOT work on the same system? WebGuide for MCE and Webguide2 for Mediaportal?

Chris, you are argueing like a 5 years old boy.

Why dont you let both teams clear up whats going on instead of posting on and on things you do not even know about? Its obvious that you have no knowledge about coding or what exactly happend.

The way you put yourself into focus here is not better than stealing someones images. Both is lousy.

Tuesday, April 03, 2007 6:40 PM by Jamie

# re: MediaPortal Steals Code from WebGuide4 Developer

Looks like a human translation from VB.Net to C#, with some few changes, like changing a bit of logic, variable and control names or using generics.

Tuesday, April 03, 2007 6:47 PM by Axle Munshine

# re: MediaPortal Steals Code from WebGuide4 Developer

Yeah, once you have the code do you not think it could be made to work with anything?

It's common to say that someone is arguing like a 5 year old when they can't prove their point, isn't it?

Speaking of no knowledge about coding, here's a direct quote from.  "Im just a dumb user...but can someone explain what is here the stolen 'code'?"

So, I assume you do know something about coding and are trying to play dumb?  Watch your words now.  John, you might be right.

Tuesday, April 03, 2007 6:47 PM by chrisl

# re: MediaPortal Steals Code from WebGuide4 Developer

Doug (and Chris to an extent) are right here.  Media Portal copied Doug's software.  As someone who writes code for a living (although not on Windows), I find this very sickening.

Media Portal used parts of Web Guide, modeled their version after it and forget to remove the parts they used.

Pick whatever word you want, used, borrowed, stole, whatever.  It all means the same in this picutre.

-js

Tuesday, April 03, 2007 7:52 PM by jasons

# re: MediaPortal Steals Code from WebGuide4 Developer

"Why dont you let both teams clear up whats going on instead of posting on and on things you do not even know about?"

Wow.  By teams, I assume you mean Media Portal and me.  Wouldn't it be great if even 1 person from Media Portal contacted me personally (or responded to my emails) to explain, apologize, or just say oops.

Tuesday, April 03, 2007 7:53 PM by Doug Berrett

# re: MediaPortal Steals Code from WebGuide4 Developer

"This whole idea of "open-source" licensing and programming needs to come to an end. Why can't these people just take credit for the work they do and admit wrote it and that they own it? These people hide from personal liability behing this GPL stamp, and then claim they arent stealing because they allow all to use it. Write something, prove it is yours, and then if you feel like giving it away, add it to the public domain." - Alex

It is clear to me you know little or nothing about FOSS or the rationale behind it.  Don't go spouting off about things you don't understand, it makes you look dumb.

I agree the posting of someone else's original images in an open source project is stupid if you don't have the rights to them.  Looking at the code though, from what I've seen posted it is at worst a functional copy, but definitely not close enough to get flagged in a source code comparison program.

If you are looking at pursuing this further than is my suggestion, download a source code comparison tool and run both sets through it and see if it spits anything out.  Looking at the size of the project on SF I'm inclined to say the truth probably lies somewhere between some dumb developer not being able to design his own images/ui and someone just not knowing better.  The source code of the only way to know just how far it goes.

At the end of the day at least they aren't trying to sell it.  I'd be pissed if they were trying to sell it.  I'd say work out an arrangement to get some publicity or something out of it, because I really can't see you getting any money out of it.

Tuesday, April 03, 2007 7:59 PM by david

# re: MediaPortal Steals Code from WebGuide4 Developer

I think I've about seen enough of the MP supporters saying "What's the big deal?", or "you can't prove it!".

It was blatant theft - Webguides image files were in MP's repository for pete's sake!

And anyone with any coding experience can see that all MP did was port Webguide for MP.

Anyone that thinks - "this is no big deal", well maybe it's not at first. MP is no MCE, they don't have that many users - the danger is the fact that it's OPEN SOURCE!  After MP has it's 'Webinterface' working - what's to keep some enterprising individual from coming along and using the open source Webinterface to create a new product for MCE - which directly competes with Webguide.

I'm ready to suggest we setup a legal fund so that Doug can pursue legal avenues.

Tuesday, April 03, 2007 9:11 PM by Mashman

# re: MediaPortal Steals Code from WebGuide4 Developer

****Before commenting, remember that no one from MediaPortal has contacted Doug or replied to his e-mails as of 04/04/2007 at 1 pm CST.****

So, before you say they have done everything they can do, they have never contacted Doug about the issue personally.

Wednesday, April 04, 2007 2:13 PM by chrisl

# re: MediaPortal Steals Code from WebGuide4 Developer

Im sick of the MP guys saying "its fine".  It is one thing to stick up for someone, but stop being ignorant.  They took something, doesn't matter what.  They have no talked to the guy they took it from.

Is that really hard to understand?  Maybe we all need to go back to first grade and hear the lesson on saying sorry to someone for taking their toy away from them.  My kids got the lesson a few weeks ago, maybe you guys need the same.

Wednesday, April 04, 2007 2:42 PM by me2

# re: MediaPortal Steals Code from WebGuide4 Developer

As a programmer for 7 years, the code looks different to me. Show a full class (not a method) and I'm sure we'll see differences. Also, don't cherry pick a section of code that is bound to be similar. I mean a function that adds a ... at the end, I have a function I wrote long before WebGuide existed that is 99% the same code, doesn't mean Doug stole it from me, it is just such a simple task everyone will do it the same way! Show a full class and then we'll know for sure.

Wednesday, April 04, 2007 3:27 PM by codemastr

# re: MediaPortal Steals Code from WebGuide4 Developer

How about having MP respond.  If they really didn't steal it why have they not?  Someone please answer this.

Wednesday, April 04, 2007 5:03 PM by Jack

# re: MediaPortal Steals Code from WebGuide4 Developer

First, I am a systems architect, I have been programming for nearly 20 years, and in my current position I develop middle tier thin/fat clients to mainframe backends.

I have a LOT of experience in designing/developing thin client applications, and have ported applications to various architectures many times.  And I'm 100% certain that what happened is that Webguide4 has been ported.  

I'll explain why.

When you port a system, you go thru the code and rewrite it to the new architecture.  While you're going thru, you remove (temporarily, or permanently) code that contains functionality that is unneeded or you may what to address later.  

But the first objective is to get it running.  Things like additional functionality, and changes to the UI wait till later.  So, the first initial version would always be a subset of the initial system, you never (or shouldn't) try to add functionality during the initial port, but removing functionality is very common.

This is why I'm certain what I've seen is a port - if you compare the screens (and please don't comment that the screens are gfx, it's ASP, it's dynamic, the "code" is what creates the screens), there is a lot of functionality that's not been included in the port, but this is what's important - WHAT IS THERE IS IDENTICAL.  

One think that is a global constant with programmers, is that they have ego's and love to prove how good they are by improving upon others work.  Why are there no improvements?  Show me one element on MP's version that improves upon Webguide4.  There are none - the first rule of porting, until you have the port working, don't add any functionality.

The comments about seeing whole classes, I don't think that's necessary, after a port from one language to another the code won't look identical.  What you should see after a port is similar, or identical functional organization - so a comparison of functional diagrams would be helpfull.

Mash

Wednesday, April 04, 2007 10:27 PM by Mashman

# re: MediaPortal Steals Images from WebGuide4 Developer (Rips Off Program)

Mashman,

Yes the gfx are generated by the code, that doesn't mean they stold the code though. It's like saying the screwdriver you stole is manufactured by a fabricating machine, therefore, you stole the fabricating machine, not a screwdriver.

They *may* have stolen the code, but the fact that they GUI looks the same (the output) does not mean the process used to generate that GUI is the same. THey may have gone to a webguide4 site and copyed all the HTML, it doesn't mean they copied the ASP.NET code (it's ASP.NET, not ASP, by the way).

Also Mashman, since you say MP's webinterface had no improvements, I assume you mean you have run it right? Meaning you're not just basing it on the few screenshots posted here, right? THe functionality I've seen is the basics. It's the "guide" and "record" features. Of course they'd do that first! If you're starting a new car company, do you come up with a design for your new sound system first? Or for an engine and brake system? You have to get the essential features working before adding bells and whistles. Had some of WebGuide's "extra" features been included (e.g. streaming video, etc.) they I would agree. But what we see here is a program that is a "web interface for a EPG" is it so strange that it includes a "view EPG" and an "add new recording" feature? MSN Remote Record has the same features too. Did Doug steal it from them, then add all the fancy features? Of course not. It's the basic functionality of the application!

Btw, remember one thing. When you port an app, I'm assuming you do it legally (i.e. making your company's product work under a new vendor system, etc.). This would (if true) be a case of illegal porting. I doubt they would have made it so blatantly obvious if that were the case. Any idiot could see it looked like WebGuide4. If they wanted to hide a crime, they would have done it better. I can't imagine the MP team is that dumb...

Thursday, April 05, 2007 9:50 AM by codemastr

# re: MediaPortal Steals Images from WebGuide4 Developer (Rips Off Program)

Comments closed until MediaPortal decides to contact Doug and explain their side of the issue.  This is the only way for closure on the issue.

Comments will reopen once I hear from Doug that he was contacted.

Thursday, April 05, 2007 10:28 AM by chrisl