Sunday, February 28, 2010

1,000 Downloads for eComic

eComic Download countThe latest version of eComic has been downloaded 1,000 times.   I'm all sorts of stoked about that!

Even cooler is that when I checked the counts this morning, I managed to grab a screen-grab where it clearly states that there has been 1,000 downloads.

Glee.

Monday, February 22, 2010

Gaming For Gamers

Or, why I hate UbiSoft....

I'm a gamer. I like video games. Much in the same way that I like cartoons, anime, comic books and all forms of speculative fiction in general. I've been a gamer since we purchased our first gaming console back when I was around five years old. Fundamentally that means that I've been a gamer for nearly as long as my little brother has been alive.

My wife puts up with it with her usual loving patience. I don't generally play games while my kids are awake, but once they're down for the count, I can often be found shooting up zombies, flying through space or ruling my galactic empire with an iron fist.

Frankly, I never really thought that I would ever stop being a gamer.

Yet, UbiSoft is trying their best to make it that way.

They have a new DRM scheme (and I'm amused that we always talk about DRM in the same way we discuss PONZI, as "schemes") in which the system is required to be ALWAYS online, or else you can't play the game. At all. Even though the game in question is a single player game.

Think about that. This is UbiSoft saying that they will control your gaming experience and if you don't have the internet? Oh well, you shouldn't have purchased our game.

Worse is the idiocy inherent in the "benefits" that UbiSoft is proclaiming far and wide in regards to the customer-hate which this DRM fundamentally is.

Their first benefit is the fact that you can install this game on as many PCs as you desire. Which is funny, as I was always under the impression that that was always the case. Of course, there are some DRM schemes which breaks this, and only allow a limited number of installs per copy (see Spore) but that's anti-customer as well. The truth of the matter is, that I should be allowed to install any game I purchase on as many of my own devices as I desire. Once I purchase a copy of the software, where and how I install it is no longer any of the developer's, much less the distributor's, concern.

The second benefit is the fact that you will no longer need the disc in the tray in order to play the game. Which is something that Steam has conquered quite well, and users do not need to be online all the time in order to play a Steam game. What's sad is that we shouldn't need to be slaved to an internet connection in order to do something which is just logical in the first place. I'd be pissed as anything if I had to keep a disc in the tray to use Microsoft Word or Visual Studio. Frankly, I installed the game, the entire game, onto my PC. There's no reason I shouldn't be able to place said disc back into storage so it would not get damage.

The third benefit that UbiSoft is touting is the concept of saves in the cloud. Which is insane and pointless drivel. If I want my game save data to be shared between computers, I can easily tell the game to save data to the shared drive on my network, or I could even move the files manually.

Of course, the thing that truly angers me is the fact that this system, basically violates the Right of First Sale. For those concerned, it is the Copyright Act of 1976, 17 U.S.C § 109. This doctrine is the legal right to sell or give away a lawfully made copy of a copyrighted work without permission. This DRM scheme breaks that law. It is DESGINED in such a way that I would be unable to give away or sale my legally purchased copy of the game. And regardless of what EULA's claim, the Courts have ruled that the Right of First Sale do apply to software that is purchased as opposed to licensed. I.e. if I go to GameStop, Walmart, Amazon or any retail outlet, then I am purchasing a copy of the work, as opposed to a company licensing 30 instances of Word for the PCs in the company. Bauer & Cie v. O'Donnell and Bobbs-Merrill Co. v. Straus were both U.S. Supreme Court cases regarding this, and the 2008 ruling in Washington in Timothy S. Vernor v. Autodesk Inc. upholds this right in regards to software purchases.

Remember, I'm a developer as well here. I make my living building software, so these issues are of great importance to me.

And I think this is bad customer service as well as a losing strategy for a software company.


The thing is that this is not going to stop piracy. It's not. Consider, Winzip, a shareware program whose trail never expires, so users can effectively use it for free (once one gets past the "nag" screen) forever, is pirated software on zero-day sites. Pirates have all the time and energy in the world to crack the DRM, while the publishing company has limited resources to create it in the first place.

This is not going to stop piracy. Worse, the only people who will enjoy the ability to play an offline game will be those who do pirate the game. Think about that; the only way to get an enjoyable play experience if you have any type of spotty internet connection (and who of us doesn't?) will be to pirate this software.

And that's even before we get into issues of latency, DDoS attacks against the authentication servers as well as just pure unadulterated too many requests for the server to handle. Then there's the issues involving people with dial-in modems (sub-(a)DSL speeds which are the lowest that they will support) or that are not on an "unlimited" connection to their provider (which frankly, the internet providers dream that we will go that way). That's even before we get into their "promise" that they will release a patch to bypass the DRM if they ever do away with the authentication servers (my question is, if they do not have the revenue to power the servers, how will they have the funds to pay the developer to build the patch?).

So, here's my stance: I will not buy another UbiSoft title.

Period.

They have lost a customer for life, and there is nothing they can do to change that now. Even if they send me a game free, I will merely melt the disk enough so that is unusable, send it through my CD/DVD shredder, and then mix the remains in the detritus I scope from my cat's litter box.

That is what their games deserve.

They have shown that not only do they dislike their customers, but they are hostile towards them, and actively desire to insult them.

Why do I say that? Well outside of the whole breaking of the Copyright Act of 1976 and the Doctrine of First Sale, when one looks at the FAQ for this abomination, one sees this:
Why the need for a permanent Internet connection? Why no “offline” mode?
The online services platform authenticates with a Ubisoft account and a permanent online connection allows us to verify that no one else uses the account at the same time. We know that services such as Steam offer an offline mode but this option is not as efficient in its protection against piracy.
There at the bottom, where they talk about Steam, it states: "this option is not as efficient in its protection against piracy."

The stance UbiSoft is STARTING from, is that its customers, the ones that purchase the game, are going to steal it. That is what they are saying, they are calling everyone who plays their game a thief.

Frankly, I get peeved when the "Greeters" at Walmart attempt to stop me (and I do mean attempt, because I always ignore their requests to stop, and can't wait for one of them to actually touch me in an attempt to get me to stop), as I see it as the company believes that I'm stealing. I see it as an accusation of theft and defamation of my character (while it may not be enough to be upheld in court as defamation, I still feel it to be a defamation).

And there's no difference here. This is UbiSoft accusing me of wanting to steal their video game. This is UbiSoft accusing everyone out there of wanting to steal their video game.

So, my solution to that is simple: their software will never again be installed on my hardware.

Friday, February 12, 2010

Why A Free Kindle Is Still Too Expensive…

TechCrunch is reporting that Amazon is considering the possibilities of giving a free Kindle to every Amazon Prime subscriber. kindle They're even going so far as to consider the implications of multi-year deprecation on the loss which handing out the hardware at no cost would create.

Now, I love eBooks. Especially ever since I got a droid. I love the convenience of carrying around a library in my pocket. And in truth, I was excited about the Kindle when I first heard about it, just like I was excited about the Nook when I first heard about it.

But there are things about both of these devices that make them no-go, in my opinion. What I don't like here is DRM and closed file format standards.

Let's look at some of the fun things that DRM and closed file format have done for us:

And those are just the things I found with five minutes of searching.

But it gets worse. See, the Kindle uses the Kindle Format for its eBooks. These file formats are DRM'd up the wazoo, and the only device that they can be read upon are those that Amazon thinks are worth developing software for.

Basically, this means that the books that you "buy" (read rent) from Amazon for the Kindle will only remain usable as long as Amazon remains a viable company, and willing to allow you to view them.

Of course, this gets even worse when you consider that thanks to the insane laws in this country regarding DRM one cannot media shift these files.

For an example of this, let's look at DVDs and Linux. If you run a Linux desktop or laptop, then there is not a legal way for you to view a movie that you have purchased. Sure, it's a minor issue to circumnavigate the CSS DRM system utilized by DVDs, but doing so, brings you into conflict with the copyright law, despite the fact that

  1. It is easily broken, and therefore no true protection
  2. Should be considered fair use (i.e. attempting to view your copy of the movie)

Think on that, and apply it to these Kindle books.

I use my Droid as an eBook reader, and the software I use for it supports ePub format (an open standard). Now, if I purchased an eBook through the Amazon Kindle eBook store, I would be unable to read it on my preferred eBook reader hardware/software combination. 

Additionally, because the Kindle does not support ePub, then I would be unable to actually read those eBooks I do own.

At no point do I want the content I purchased to be locked to a piece of hardware. I don't want to have to purchase the same reader every time just in order to retain the "right" to read the books that I purchased. The fact that I purchased the book should be enough to prove that I have the right to read them on any device I own.

And that's why, even if it is free, an Amazon Kindle is still too expensive.

Friday, January 22, 2010

Android Development

I'm a geek, and I enjoy programming. In fact, I enjoy it so much that despite doing it all day, I will often come home and actually do it more in the evening for the sheer enjoyment of it.

This is most noticeable in my Codeplex project: eComic.

That's something that I wrote and maintain and update fundamentally for the sheer enjoyment of it.

Likewise, every time I get a new toy, I want to expand its capabilities, and make it do more. Since I'm about to get a new toy, I decided to preemptively set up my ability to play upon it.

In other words, since I'm getting a DROID, I decided to set up my home PC to allow ANDROID development.

Now, not to sound egotistical or anything, but I'm a smart guy; I work with computers day in and day out, and in fact it is my primary job description to make computers jump through the hoops I (or my customers) want them to. It's what I do.

Which is why setting up that Android DEV environment saddens me so much.

First off, the recommended environment includes the following elements:

  • Eclipse IDE
  • Android SDK
  • Android ADT
Now, that's not the bad thing, the bad thing is getting all those parts working together in a cohesive hole which allows you to actually create programs for the device you're aiming for.

Microsoft gets a lot of bad rep by geeks. It's big, it's massive, but despite all of the negativity from my peers, I LIKE Microsoft tools--especially the development ones.

When I went to install Microsoft's IDE on my machine, I downloaded the ISO, loaded it up, and ran the SETUP.EXE file and followed the prompts, making relevant changes as needed/desired to customize my environment.

Fundamentally, it worked. No hassles. No headaches, just thirty minutes of watching progress bars and then I was kicking and coding.

Sadly, the Eclipse/Android SDK install was anything but that easy.

Worse, because there was no installer (and consequently, the application was never identified to Windows) the whole thing flags UAC every time I launch it.

But, I get the Eclipse IDE downloaded, and shortcuts added to my DOCK tool, and then I have to install the SDK.

Which is a much Vista-Friendlier experience than installing the Eclipse IDE.

Then I run into integrating the two. This involves telling the Eclipse IDE where it can download the Android ADT package, and then allowing it access.

Now, I make this sound easy in this post. The thing is, it took me two tries to get it working. My first try was two weeks ago, and after three hours of trying to get everything installed, I gave up. Last night, I was successful, only because I followed the instructions in this article. Which despite being out-of-date, was much more informative and detailed than anything available on Google's Android Developer's website.

Now maybe I'm lazy, and just haven't utilized enough of those "free" IDEs to realize the "proper" way to go about utilizing the things. Maybe having Visual Studio's installation be hassle free has made me dumber.

Yet, in the end I think I'd rather be stupid that fight through setting up that Android Dev environment again...

Friday, January 8, 2010

Another New Version of eComic

Well, I've finally gotten off my lazy backside and implemented a new version of eComic.  It's been up for less than 6 hours and it has already been downloaded 6 times.  Not bad for such a specialized application.

eComicOf course the primary reason I work on eComic is to ensure that my skills stay nifty and sharp, as well as a place to learn new tricks and technologies for my particular field. 

Which is why that as soon as I get both the SDK and my new phone I'll try working on an ANDROID version of eComic.

But that's neither here nor there. If you compare this to the previous version you'll notice a few things, including that the navigation box is once again on the side. I felt that it just consumed too much of the reader's screen real estate at the bottom, especially with the thought that wide-screen monitors are becoming more prevalent.

Secondly, if you look to the left side of things, then you'll see that there's a ZOOM control. In addition to the slider that will allow precise (in a manner of speaking) control of the zoom, there are also a 1:1 button which makes the image to be its "true" size and a FILL button which makes the control perform a "Uniform" fill of the image currently displayed.

I considered those necessary with the things like the new Microsoft tablets and netbooks that are out there, and just anyone that doesn't have the 19+ inch monitors.

At the bottom, there now resides a STATUS bar, which provides little things such as the current page being viewed, as well as the name of the file. I plan on having it also provide other details that can be found in the XML objects that can be associated with a CBR file.

So, for my next trick, this is my current plan of attack in regards to functionality for this:

  • Work on display XML data in status bar
  • Provide way to view NOTES text (either from a Notes.txt file or appropriate field from XML file
  • Provide keyboard short-cuts for Menu Items found in the Ribbon bar
  • Work on CBR (well, actually CBZ as creating RAR files requires the purchase of a library while creating ZIP files is free) editor
  • Work on the GNZ editor
  • Implement the 7z decompression function (cb7)

As always, content for eComic can be found in many locations, or even built yourself by scanning in your newly purchased comics.

But two sites that provide free (and typically public domain) content for eComic are:

Wednesday, December 23, 2009

Dynamics SL....

I'm currently stretched between two projects for work. One a rather long-term system to improve the efficiency of document creation for a local loan company and the other is to assist with the customizations inherent in a Microsoft Dynamics SL (Solomon) migration from version 6.5SP1 to 7.0FP1.

Now, it's that second one that I need to talk about right now, because there's something about this that I'm floored by. The fact that there seems to be absolutely no one talking about the problems/processes/and what not that they've stumbled across while dealing with Solomon.

For example, the system is very easy to customize via Visual Basic for Applications (VBA) and is in fact designed from the ground up for that purpose. You're able to move controls, add new ones, and even go so far as to add entirely new data structures to the database and gaining read/write operations against it.

But, then you have to wonder, where on earth these changes are stored, and the answered to that is within a database field.

Now, they shove the operations as binary data into a binary field, so looking just at the data structures one would think that there was 1 entry in this table per modification. One would think wrong, as the system would have no way of knowing what modifications would be applicable when or why or how. In fact that would be a nightmare. No, what's happening, and why there will multiple entries per screen into the customization table is that the system only stores a maximum of 30KB per record. So basically all the VBA is changed into a binary-encrypted string, and then chunked up and stored that way.

Also, there's no EASY way to identify which controls were added to the form, as it's up to the user to define the naming convention. This can lead to things being named in the same pattern as Microsoft uses to name its controls as well as things being called "Button1."

But, if you export the customization for that screen, then you'll see a list of changes that have been made against all the controls on the screen, and from that, one is able to look and find those controls that have the "Created=True" property. It is those controls that are created by the end-user via the customization screens.

That knowledge would have saved me days (as I was having search and compare the non-customized version of the screen to the customized version in order to document all the various customizations so that we could ensure they successfully made the migration), but it was no where to be found. At least out in the open where one can find it.

In fact, I gained the "Tumbleweed" badge at StackOverflow because a question I asked (which the above knowledge would have answered for me) received low views and no responses for a decent amount of time.

But hey, I'm here to spread the cheer I guess....

Wednesday, November 18, 2009

IIS7 and the Case of the Reserved Reports

I had fun this morning at work hunting down something highly interesting in regards to IIS7.

What was happening, is that a client had kind of.... deleted the virtual server on which a web application resided. So, it was getting redeployed to a Windows 2008 box that also performed as a SQL SERVER 2008 box.

Well, my boss deployed the application, and when he went to test, it all worked, but the reports. Every time he attempted to run a report, the only thing that came back was a "Service Unavailable" message.

He upgraded the application from .NET 1.1 to 3.5, he played with the configuration values, and a host of other things up to and including special logging just for the 503 error hiding behidn the "Service Unavailable" message.

Nothing worked. Every other piece of the application was happy, but any of the reports.

So, we get together and start trouble shooting.

First thing we do, is create a blank ASPX file that just implements a report viewer, and it still comes back as "Service Unavailable."

Well, we add another new blank ASPX file, thsi time with out even the report viewer, and it still comes back as "Service Unavailable."

Then we drop in a old-fashioned HTML file, and get... the exact same results.

One is starting to get frustrated at this point.

So, we create a new folder, and try the HTML file in it. And we get served the HTML file.

So, we copy one of the existing reports into the new folder... and it works.

Confused, we discuss things, and I had the brilliant idea that maybe, the system was expecting the RDLC files to be located in a different folder than the ASPX files that display them. After all, copying over the one report caused it to work, and that ASPX file points to the path of the RDLC file which it is designed to load.

So, we create a new RDLC folder, move the RDLC files over to it, update all the aspx files to point to the new RDLC folder, publish, test and....

get "Service Unavailable."

So, we back out of all of those changes, republish, and are still getting "Service Unavailable."

I have him rename the folder in Visual Studio and republish and...

it works.

So, we're wondering if it was just a bad compile or something. So we rename the folder back to REPORTS and republish, and upon testing get...

"Service Unavailable."

One can imagine the head banging upon wood desks that began at this moment.

Then a horrible, horrible idea came upon me: what if "reports" was a reserved word in IIS7.

Almost fearful of the results, we just change the folder name on the server from "reports" to "reporting" and it works.

One is flabbergasted.

So, we rename the folder in Visual Studio and then update all the links to the reports and republish, and it's happy as a lark. It works, spits out the report and as far as it is concerned, life is good.

Of course, neither myself nor my boss could believe that Microsoft would make the word REPORTS a reserved keyword for IIS.

The very thought is insane, but that appeared to be what was happening.

So, of course, this demanded some Google time.

Ultimately, this link was found, and it explained the reason why the REPORTS folder was giving us a 503 error.

It seems that when SQL SERVER 2008 is installed with REPORTING SERVICES, the system registered the REPORTS name with the HTTP.SYS process, which means that the request for the REPORTS folder was never actually making it to IIS.

Which explained why the ASPX page wasn't being served, and why the standard HTML file wasn't being served, in fact it explained just about everything.

The only thing it didn't explain is why on earth Microsoft would make this decision!

Blog Widget by LinkWithin