Navigation


Markus on Development and Publishing

This is Markus Egger's professional blog, which covers topics such as development, publishing, and business in general. As the publisher of CoDe and CoDe Focus magazines, and as the President and Chief Software Architect of EPS Software Corp., Markus shares his insights and opinions on this blog.

Content Area Footer

Saturday, May 30, 2009
Unique Office Sub-Lease Opportunity at EPS/ CODE Magazine

We recently re-signed our office space deal at EPS (Houston). In anticipation of future needs, we signed for a space that is larger than we currently need, which opens up a sub-leasing opportunity that might have some very cool advantages for those with matching needs!

The basic deal is this: We have 2-3 individual office rooms available for sub-lease. They are all different sizes, One fitting 1 person, another fitting 2 people, and the largest probably offering enough room for 4 or more. As all our offices, they are window offices, one even a corner office. Our office space is pretty cool and we are always happy taking people to our offices as I think the setup is professional and cool and modern at the same time.

So far, so good, but what is so cool and unique about this deal? Well, for one, the way the office is set up, we have other facilities you can use as they are available, without having to pay for them. We have 2 sizable conference rooms that can be used when they are available. (To be clear here: We are not going to interrupt a training class when you need the conference room for 30 minutes, but when the room is available, you can have it… it is mostly a scheduling matter). Also, as long as we have capacity (and I don’t see us run out any time soon), you can use our Internet connection and other infrastructure. As long as we have capacity and your needs are reasonable, you can probably even put your web site up at our data center right in our office. So there is lots of little stuff like that that otherwise, you would have to arrange and pay for yourself, that is simply available. Anything from restrooms to power.

Furthermore, this is an opportunity to associate yourself with EPS Software Corp., CODE Magazine, and all the other stuff we do at EPS. You are more than welcome to attend our internal training sessions and our brown-bag meetings and all the like. If you want, you can even try to kick our butt on our xbox 360 ;-). What might be even more interesting is that whoever is most accessible to us is first in line to pick up contract work from EPS (and people that have their offices inside of our offices are pretty accessible). No promises of course, but it just makes sense.

I envision that there might be a range of people who might be interested in this. It is probably not ideal if you are looking to start a 20 person company, but if you have smaller needs, this may be great. In particular, if you do any programming (especially .NET) or graphics design type of work, or maybe even sales stuff, this may be an excellent opportunity for you.

If you are interested in this, ping Ellen@eps-software.com over email. The actual rate is to be arranged on a case by case basis, as is the length of the lease, which we are very flexible with. (Note: We are not looking to make a profit of this. We are simply looking to reduce our own expense until we need the space ourselves).

There you have it. I think it is a cool deal for the right people with some very unusual benefits that don’t come along just any day.

 

Posted @ 1:08 PM by Egger, Markus (markus@code-magazine.com) -
Comments (21)


Monday, May 11, 2009
Tower 48 - Our New Software Escrow Company

Some of you – especially those of you who are either on Facebook or Twitter – may have already seen this: We are launching a new company at TechEd 2009 called “Tower 48”. I would like to give you a quick overview of what we are doing and why I think it is cool and why I am so excited about it :-).

So basically, what we are doing with Tower 48 is Software Escrow. This may sound like boring legal stuff, but read on! It actually gets pretty cool. If you never had to deal with escrow, here is the quick explanation: Has a customer ever asked you “what happens if you get run over by a bus?”. The answer to this is “we put all our stuff into escrow, so if something happens, you get it all”. The customer is protected, and you don’t have to give anything up you don’t want to give up. The trouble with escrow in general is that it is an expensive legal hassle. We are changing that. And not just that, but we are actually turning it into something that can turn into a profit center for you!

For one, we are making things less expensive and going through the whole process takes just a few minutes. While with most escrow companies, you will spend thousands of $ a year and you are charged every time you update the stuff you have in escrow, and so forth. With us, the default deal is that for about 30 bucks a month, you can put up to 5 products into escrow for 5 people, as long as you don’t use up more than 5GB of storage (which is a lot of source code or other digital assets... you can put anything into our escrow system that is a file). Secondly, it is all high tech, and SOA based. No more of this “put a box into a secret underground vault” nonsense. Use our web site, or use our services to integrate into the build process or your ecommerce web site.

But here is the real kicker: With Tower 48, you can add escrow automatically to your sales process and actually make a profit of it! For instance, if you are selling a $199 product, you could add a little checkbox to your web site that says “for an extra $X, we will put the source code into escrow”. Make X whatever it needs to be to sell. 99 bucks? No problem. $9.95? Sure! $5,000? No problem either. We will work out a deal with you where you can charge an appropriate and reasonable amount, regardless of whether you are selling a $1.99 iPhone app, or a product with a $500,000 license fee. (And keep in mind that there are other things that can be put into escrow. Whether that's additional documentation and information, or whether it is DRM free versions of digital content you sell, and so forth...). We want you to keep most of that fee as pure profit, and we are taking a cut of it to perform the service. Doing it is very simple, and in times like these, it sure doesn’t hurt to add a potential profit stream with no cost associated if nobody ever buys it, does it?

You can check it out at www.Tower48.com. We also have a video that explains the system on that site at www.Tower48.com/videos.aspx. For those of you who can get videos in their RSS feeds are are reading this online, here it is:

Anyway: If you are at TechEd, stop by one of our booths. I will be either at the CODE (isle 100) or Tower 48 (isle 600) booths a good amount of time.

 



Posted @ 12:23 PM by Egger, Markus (markus@code-magazine.com) -
Comments (28)


Saturday, May 02, 2009
A Preview of my TechEd 2009 Samples

I will be presenting a session about Expression Blend for Developers at TechEd 2009. You can now download a preview version of 2 different sample apps (one for Silverlight and one for WPF) that I will be using at the conference. Here are the download links:

Both examples show a real world middle tier accessed from both WPF and Silverlight clients. The example presented here however has a fake middle tier, so it can easily be used without the need to set up the whole systems (not to mention the licenses needed).

Also, I recently uploaded a video of the result of something very similar to the Silverlight example I will be using.

I recently blogged about it, but here it is again, just in case:

The external download link for the video is this:
http://www.youtube.com/watch?v=BD8OPqtHYdg



Posted @ 10:12 PM by Egger, Markus (markus@code-magazine.com) -
Comments (29)


Saturday, May 02, 2009
Downloading Files from a Silverlight Application

It seems that recently, I have been doing a lot of Silverlight development that includes uploading and downloading files of some sorts. File uploading of course is always a touchy subject in web applications (and I may blog about how we do that separately), but it may come as a bit of a surprise that even file downloading has it's problems in Silverlight.

Normally, when you offer a file download on a web site, you simply upload the file to its location, and then provide a link to it. When the user clicks that link, the browser starts a navigation away from the current page and to the linked URL, but then it realizes that the new address is a file download and not an HTML page, and it thus stops navigation (the current page remains visible) and a file-save dialog is displayed, usually allowing the user to either save or open the file.

In Silverlight, things are fundamentally similar. The main difference is that in Silverlight applications, one usually doesn’t navigate around in the browser as much. Instead, Silverlight code runs on the client, and instead of clicking on a link, Silverlight may offer up a button-click that initiates the download. The trick here is to programmatically initiate browser navigation from within that click event.

The following is a hypothetical click handler that initiates a file download:

HtmlPage.Window.Navigate(new Uri(“http://…”));

Note: Very often you may want to download from a location relative to where the current Silverlight application is launched from. For instance, if the app is on www.MarkusEgger.com, you may want to download from www.MarkusEgger.com/Downloads/File.zip. You can relatively easily find out a relative path to that file like so:

var uri = new Uri(Application.Current.Host.Source, "../Downloads/File.zip”);

Note: The root of the app is usually one folder up, since the Silverlight control is deployed to the /ClientBin folder.

Now, while this fundamentally works fine, there is a problem here. If the browser that runs the Silverlight application is Internet Explorer, one has the additional issue that Internet Explorer may intercept the download and show a special security message. The user can then dismiss this message, but that can cause IE to re-load the current page. Theoretically, the download can then be re-initiated. This works kind of OK, in HTML pages where the same page is simply loaded again. It can be a problem with AJAX-heavy pages that may have drastically changed the page state since navigation. And it is a real problem with Silverlight, since that means that the page hosting the Silverlight control is re-loaded and put into its initial state.

This is unacceptable for Silverlight apps, because it is the equivalent of re-launching a windows app, and it may put the user at a completely different place from where they were before. Worse, it may even cause loss of application state and associated data. A nightmare!

The only solution I can offer to this problem is to open a new window programmatically when IE is the host, and perform the navigation within that window. IE will notice that the URL of the new window is a file and it will then close the window and instead show the save-file dialog. It all looks slightly odd, but it isn’t too bad, and it avoids the data loss issue. Here is a code example:

if (HtmlPage.BrowserInformation.Name == "Microsoft Internet Explorer")
{
    HtmlPage.Window.Navigate(uri, "BlaBla");
}
else
{
    HtmlPage.Window.Navigate(uri);
}

This still isn't the entire story though. In many instances, IE will still block this, so what we resorted to is first navigating to another ASPX page instead of the actual file URL, and then redirecting to the real file URL.

There you go. Not the most elegant thing I have ever done, but it solves the fundamental problem…

 

Posted @ 10:03 PM by Egger, Markus (markus@code-magazine.com) -
Comments (201)


 

 

 

 

 

 

 

Syndication RSS 2.0 RSS 2.0

All My Blogs:
My personal blogs:
Dev and Publishing Dev and Publishing
Travel and Internat. Living Travel and Internat. Living
Other blogs I contribute to:
Milos Blog (US) Milos Blog (US)
VFPConv. Dev Blog (US) VFPConv. Dev Blog (US)
VFPConv. Dev Blog (DE) VFPConv. Dev Blog (DE)

 

Blog Archives
All Blog Posts

2015
    September (1)
2012
    September (1)
    April (1)
    March (1)
2011
    October (1)
    June (3)
    May (1)
    March (2)
    February (2)
    January (2)
2010
    December (3)
    November (2)
    October (2)
    September (1)
    August (2)
    July (1)
    June (1)
    April (3)
    March (1)
    February (5)
    January (1)
2009
    October (4)
    September (2)
    August (1)
    July (1)
    May (4)
    April (6)
    February (1)
    January (1)
2008
    December (3)
    November (11)
    October (8)
    September (1)
    July (1)
    June (3)
    May (3)
    April (6)
    March (6)
    February (4)
2007
    December (1)
    November (1)
    October (5)
    September (1)
    August (1)
    July (6)
    June (3)
    May (3)
    April (1)
    March (2)
    January (2)
2006
    December (3)
    November (4)
    October (1)
    September (2)
    August (2)
    July (4)
    June (1)
    May (2)
    April (10)
    March (2)
    February (3)
    January (1)
2005
    December (6)
    November (7)
    October (6)
    September (8)
    August (10)
    July (6)
    June (9)

 

 

 

This Blog is powered by MilosTM Collaboration Components.