Monday, May 31, 2010

A new book in my book stack

Okay I usually don’t post about books. But in this case I have too. A few days ago amazon pointed me to books I might be interested in. And this was one of them. So I read the first few pages on amazon. Indicating nothing new. So I started a little research on the evil search engine. And i found this little link. The author really got me.

So I read almost the hole book until my local bookstore called me and tell me, it has arrived. Yes, that’s so old school. But I like that bookstore. And want them to stay. Nothing against Amazon. And since it was shipped in a amazon packet everything’s fine for me.

It’s hard for me to articulate, but: “Thanks Google”

Yes, I mean I wouldn’t have bought that book without the chance to have a deeper look in it. Most of the time books about agile software development tell you stories about administrivialities. This book don’t. (mostly) Ok to be honest the author already cached me on page 3 telling:

“every cool kid is doing it, Google, Yahoo, Symantec, Microsoft and the list goes on.“

… But most of them don’t get it, or barely deserved the name agile …

Another question this book pointed me too. “Given a company with 10 developers, means almost 1 or 2 and a bunch of googlescripters, could that company be agile?” Think about that. A team of 6 or max. 8 developers is more productive than a team of hundreds of developers. But how many people do you need to be agile. Can one developer be agile in the developing process? Or is it just cool to call yourself agile even if you’re not.

My subjective feeling tells me, even a one man business can be agile. But the development lifecycle is not agile. Due to the fact that one guy, can’t develop more than one thing at the same time. Back to today’s question and that is really the reason for this post.

I've got a email yesterday from a developer which was complaining about a project. Problem here, problem there, problem anywhere and the mail tells: “the technology is bullshit.” – Oh, yes it is! From my point of view and experience. But I knew it wasn’t the technology he was complaining about. So I answered him with the new learned success definitions and offered him an “exit-strategy” turns out, that was the last thing he really wanted. So he had to make a point. “Ok I need a consultant, because learning it the hard way, and find out everything by myself, is less productive.” That’s something I can work with.

A “program manager” has to read between the lines. But even the best can not read minds. So brings me back to communication. When someone tells you: “bla bla bla, bullshit”. Don’t ask the question why! Because with a “WHY” you will get the technical answers you don’t want to hear. Ask for the real problem. And that Ladies and Gentleman is hard to do. Because, you must do it indirectly and in a way the other party is not offended. But if you can figure it out. And if it is a easy solvable one, like this -everything’s fine.

But what if not? The next step is to look closer to that person. If he is becoming angry we really have a problem. Turns out that angry is just a replacement feeling for fear. Because fear is not allowed in our daily business that is the logical response. Because anger is a allowed feeling in some companies. Then you really have to talk about a "exit strategy" and a new position. If you work with gifted minds and cool developers, you better stick to them, and look for a new job. Don't let them go and even more important stop them before they get a burn out or even worse.

Note to myself: “Find a good consultant, today!” Look closer to that project!

Thursday, May 27, 2010

A 3D Desktop and baby cloves

I get an email today from my business partner. One year ago i was promoted to got to the Cebit 2009. And since Nick (business partner) was going with me. We met in Augsburg. I really wanted to implement Microsoft Touchless into AntMe! while we travel to Hanover. Since the German answer to TGV is the ICE it wasn’t that lucky. I bought baby cloves in a shop around Augsburg central station. What? Well you know, in order to use Touchless i need something trace- and trackable. So i had two choices. Paint my fingernails, which is obviously gay. Or be creative. I choose the second one. So sitting in the well cooled, very well cooled ICE i cut of the fingers of the baby cloves. In order to get Markers. People around me look at me there thoughts were so loud that i could here them. But anyway. So i started developing a XNA PlugIn for AntMe! controlled by the baby cloves.

IMAG0018

Nick remembers that story well since it was a little embarrassing for him to sit beside someone how plays with baby cloves. So he write me an email these days.

“Why do i always have to think about baby cloves?”

http://gizmodo.com/5545623/these-technicolor-dream-hands-could-revolutionize-ui

lycra-gloves-computing-mit

Well from my perspective it’s not that hard to implement. But to get a clear and smoothie marker. It’s nearly impossible with the first version of Touchless. So the Idea of the cloves is brilliant. But to use the hole clove? I think it looks like the 80ths or worse. Maybe a filter on the Webcam can do that crap to. I have to think about that idea and let you know if it worked out.

Friday, May 14, 2010

Some recently IT Pro stuff i learned

Microsoft Outlook 2010 x64 & Windows Mobile Device Center

Ok, since the Outlook Team is part of the Office Department and the Windows Mobile Device Center Team is part of the Windows Team. It’s no wonder that actually the synchronization of your Smart Phone won’t work when running Outlook 2010 x64.

The Error Message is somewhat confusing telling you:

“There is no default E-Mail Program…”

Well i tried all the nasty tricks. RegEdit, Repair, Even some lines of code. Which finally pointed me to the real Error. Guess what you find a lot of articles at TechNet (very foolish one), (better but still not the right one [By the way there is no repair in Office 2010 from the Office Menus]) on this Issue. But with a configuration: Windows 7 + Office 2010 + Windows Mobile Device Center everything x64 and a HTC Touch Pro 2 you have no chance getting the thing synchronized. So i uninstalled the 64bit Version of Outlook and tried it again with a 32bit Version of Office. Wait is it really that easy. Have you ever uninstalled Office 2010 in order to install Office 2010. Well sounds like a 10 Minute issue right. Yes, but did you know that a lot of people use the Outlook Connector to get their Hotmail stuff. And there are also the Office Lab Plug-in. And since the Office installer don’t like any previous versions of Office installed. You have to kick every Plug-in and Add-on out by hand. Good for you if you know which guys in your Control Panel are Office related. But then … Tada! - Everything's fine now.

So which PM is responsible for that? I really like to know. Perhaps it’s the same guy how did the TFS Installation process once.

A definition of Multitouch

According to Wikipedia a Multitouch Device is:

Multi-touch is an enhancement to touchscreen technology, which provides the user with the ability to apply multiple finger gestures simultaneously onto the electronic visual display to send complex commands to the device.

And since no one defined multiple the most hardware resellers uses two finger support to promote their Hardware as Multitouch. If you are working on a Multitouch Software you should keep that in mind. Otherwise you have frustrated customers and even more frustrated developers dealing with this customers. But MSI said it’s a Multitouch. Yeah, because more than one finger is multi but still just dual. Lesson i learned: Read the Specs and go test that hardware. And tell your customers on your webpage what you mean by Multitouch support. But speaking of Multitouch.

Every Notebook can do Multitouch

A lot of guys looked at me with big eyes when i browse through the web on my notebook. Reactions: “What? Oh you mean that two/three finger gestures i use. Nothing special - found an article recently on some Website with a link to a Synaptics driver.” Yes you can use that. And in most cases even you’re old notebooks can do multitouch. Brings me back to the question: “What is Multitouch?” Pherhaps we’ll find out someday. In the meanwhile: No you can not use the Microsoft Touchpack with the Synaptics driver.

Wednesday, May 5, 2010

Adobe faces Apple

http://blogs.wsj.com/digits/2010/04/29/live-blogging-the-journals-interview-with-adobe-ceo/

Earlier on Thursday, Apple CEO Steve Jobs published an essay in which he took Adobe to task over its Flash software, which Apple does not support on its mobile products, such as the iPhone and iPad. The squabbling between Apple and Adobe has been getting increasingly personal, with Adobe executives and employees angered in particular by Apple’s decision to block Adobe software that would allow developers to produce programs in Flash that would then be converted to work on the iPhone.

The Journal’s Alan Murray had an exclusive interview with Adobe CEO Shantanu Narayen Thursday afternoon, and Digits live-blogged the event. Highlights are below. Excerpts of the video are set to be available on the News Hub live show at 4 p.m., with the full video available on the Journal’s Web site.

Thoughts on Thoughts

>>

Thoughts on Flash

Apple has a long relationship with Adobe. In fact, we met Adobe’s founders when they were in their proverbial garage. Apple was their first big customer, adopting their Postscript language for our new Laserwriter printer. Apple invested in Adobe and owned around 20% of the company for many years. The two companies worked closely together to pioneer desktop publishing and there were many good times. Since that golden era, the companies have grown apart. Apple went through its near death experience, and Adobe was drawn to the corporate market with their Acrobat products. Today the two companies still work together to serve their joint creative customers – Mac users buy around half of Adobe’s Creative Suite products – but beyond that there are few joint interests.

I wanted to jot down some of our thoughts on Adobe’s Flash products so that customers and critics may better understand why we do not allow Flash on iPhones, iPods and iPads. Adobe has characterized our decision as being primarily business driven – they say we want to protect our App Store – but in reality it is based on technology issues. Adobe claims that we are a closed system, and that Flash is open, but in fact the opposite is true. Let me explain.

First, there’s “Open”.

Adobe’s Flash products are 100% proprietary. They are only available from Adobe, and Adobe has sole authority as to their future enhancement, pricing, etc. While Adobe’s Flash products are widely available, this does not mean they are open, since they are controlled entirely by Adobe and available only from Adobe. By almost any definition, Flash is a closed system.

Apple has many proprietary products too. Though the operating system for the iPhone, iPod and iPad is proprietary, we strongly believe that all standards pertaining to the web should be open. Rather than use Flash, Apple has adopted HTML5, CSS and JavaScript – all open standards. Apple’s mobile devices all ship with high performance, low power implementations of these open standards. HTML5, the new web standard that has been adopted by Apple, Google and many others, lets web developers create advanced graphics, typography, animations and transitions without relying on third party browser plug-ins (like Flash). HTML5 is completely open and controlled by a standards committee, of which Apple is a member.

Apple even creates open standards for the web. For example, Apple began with a small open source project and created WebKit, a complete open-source HTML5 rendering engine that is the heart of the Safari web browser used in all our products. WebKit has been widely adopted. Google uses it for Android’s browser, Palm uses it, Nokia uses it, and RIM (Blackberry) has announced they will use it too. Almost every smartphone web browser other than Microsoft’s uses WebKit. By making its WebKit technology open, Apple has set the standard for mobile web browsers.

Second, there’s the “full web”.

Adobe has repeatedly said that Apple mobile devices cannot access “the full web” because 75% of video on the web is in Flash. What they don’t say is that almost all this video is also available in a more modern format, H.264, and viewable on iPhones, iPods and iPads. YouTube, with an estimated 40% of the web’s video, shines in an app bundled on all Apple mobile devices, with the iPad offering perhaps the best YouTube discovery and viewing experience ever. Add to this video from Vimeo, Netflix, Facebook, ABC, CBS, CNN, MSNBC, Fox News, ESPN, NPR, Time, The New York Times, The Wall Street Journal, Sports Illustrated, People, National Geographic, and many, many others. iPhone, iPod and iPad users aren’t missing much video.

Another Adobe claim is that Apple devices cannot play Flash games. This is true. Fortunately, there are over 50,000 games and entertainment titles on the App Store, and many of them are free. There are more games and entertainment titles available for iPhone, iPod and iPad than for any other platform in the world.

Third, there’s reliability, security and performance.

Symantec recently highlighted Flash for having one of the worst security records in 2009. We also know first hand that Flash is the number one reason Macs crash. We have been working with Adobe to fix these problems, but they have persisted for several years now. We don’t want to reduce the reliability and security of our iPhones, iPods and iPads by adding Flash.

In addition, Flash has not performed well on mobile devices. We have routinely asked Adobe to show us Flash performing well on a mobile device, any mobile device, for a few years now. We have never seen it. Adobe publicly said that Flash would ship on a smartphone in early 2009, then the second half of 2009, then the first half of 2010, and now they say the second half of 2010. We think it will eventually ship, but we’re glad we didn’t hold our breath. Who knows how it will perform?

Fourth, there’s battery life.

To achieve long battery life when playing video, mobile devices must decode the video in hardware; decoding it in software uses too much power. Many of the chips used in modern mobile devices contain a decoder called H.264 – an industry standard that is used in every Blu-ray DVD player and has been adopted by Apple, Google (YouTube), Vimeo, Netflix and many other companies.

Although Flash has recently added support for H.264, the video on almost all Flash websites currently requires an older generation decoder that is not implemented in mobile chips and must be run in software. The difference is striking: on an iPhone, for example, H.264 videos play for up to 10 hours, while videos decoded in software play for less than 5 hours before the battery is fully drained.

When websites re-encode their videos using H.264, they can offer them without using Flash at all. They play perfectly in browsers like Apple’s Safari and Google’s Chrome without any plugins whatsoever, and look great on iPhones, iPods and iPads.

Fifth, there’s Touch.

Flash was designed for PCs using mice, not for touch screens using fingers. For example, many Flash websites rely on “rollovers”, which pop up menus or other elements when the mouse arrow hovers over a specific spot. Apple’s revolutionary multi-touch interface doesn’t use a mouse, and there is no concept of a rollover. Most Flash websites will need to be rewritten to support touch-based devices. If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?

Even if iPhones, iPods and iPads ran Flash, it would not solve the problem that most Flash websites need to be rewritten to support touch-based devices.

Sixth, the most important reason.

Besides the fact that Flash is closed and proprietary, has major technical drawbacks, and doesn’t support touch based devices, there is an even more important reason we do not allow Flash on iPhones, iPods and iPads. We have discussed the downsides of using Flash to play video and interactive content from websites, but Adobe also wants developers to adopt Flash to create apps that run on our mobile devices.

We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform. If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features. We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers.

This becomes even worse if the third party is supplying a cross platform development tool. The third party may not adopt enhancements from one platform unless they are available on all of their supported platforms. Hence developers only have access to the lowest common denominator set of features. Again, we cannot accept an outcome where developers are blocked from using our innovations and enhancements because they are not available on our competitor’s platforms.

Flash is a cross platform development tool. It is not Adobe’s goal to help developers write the best iPhone, iPod and iPad apps. It is their goal to help developers write cross platform apps. And Adobe has been painfully slow to adopt enhancements to Apple’s platforms. For example, although Mac OS X has been shipping for almost 10 years now, Adobe just adopted it fully (Cocoa) two weeks ago when they shipped CS5. Adobe was the last major third party developer to fully adopt Mac OS X.

Our motivation is simple – we want to provide the most advanced and innovative platform to our developers, and we want them to stand directly on the shoulders of this platform and create the best apps the world has ever seen. We want to continually enhance the platform so developers can create even more amazing, powerful, fun and useful applications. Everyone wins – we sell more devices because we have the best apps, developers reach a wider and wider audience and customer base, and users are continually delighted by the best and broadest selection of apps on any platform.

Conclusions.

Flash was created during the PC era – for PCs and mice. Flash is a successful business for Adobe, and we can understand why they want to push it beyond PCs. But the mobile era is about low power devices, touch interfaces and open web standards – all areas where Flash falls short.

The avalanche of media outlets offering their content for Apple’s mobile devices demonstrates that Flash is no longer necessary to watch video or consume any kind of web content. And the 200,000 apps on Apple’s App Store proves that Flash isn’t necessary for tens of thousands of developers to create graphically rich applications, including games.

New open standards created in the mobile era, such as HTML5, will win on mobile devices (and PCs too). Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind.

Steve Jobs

http://www.apple.com/hotnews/thoughts-on-flash/

<<

Interesting? No comment!

Wednesday, March 10, 2010

A useful post for Telerik Users?

Well I found out, that these Telerik WinControls are boon and bane. I like theme because I do a lot of great design stuff via XML and Themes. And if you know what you’re doing these controls really perform. But I ran into a System.StackoverflowException and I found the documentation on that specific error very helpful. So thx anyway Microsoft. If I wouldn’t knew it anyway - what caused that error - I guess I would be lost. Take a moment, before they change the documentation on this error, I make a screenshot.

image

I like the explanation part.

image

Saying: A StackOverflowException occurs when the Stack overflows. Yes, who’d a thunk? Or WTF? So guys what happened here?

Well looks like the beloved Telerik.RadComboBox had a little event handling problem calling the Data Source. Since it's a bindingproblem within the RadControl there is no way for me changing that. Since the Data comes from a Service i also had no chance to edit that. Anyway debugging that is not easy. Found a cool article on this topic. Where? Yes, at stackoverflow.com! Since I have a modular software and want to fill the items of the comboBox by a public data Method and some parts at the control itself, it turns out the question: “How can I do that?”

So first I make sure evrything works fine when the controls are called. And check if the data source is null. In my example I want to bind the German tax authorities to that Combobox.

  private void InitMyComboBox()
 {
   ...
   if (comboBoxTaxAuthority.DataSource == null)
       comboBoxTaxAuthority.DataSource =
                            Logic.GetTaxAuthorities();
   ...
 }

“Logic” is a Mapper which points me as you might think to a static implementation of a Singleton which loads that data from a service.

Next step is to implement the ItemDataBound event.

private void ComboBoxTaxAuthorityItemDataBound(object sender, ItemDataBoundEventArgs e)
{
   var item = e.DataBoundItem as RadComboBoxItem;
   if (item != null)
   {
     var x = e.DataItem as TaxAuthority;
     if (x!=null)
     {
       item.Value = x;
       item.Text = x.Name;
       item.DescriptionText = "Finanzamt " + x.Name;
       item.Image = Properties.Resources.authorities;
       item.TextImageRelation =
                     TextImageRelation.ImageBeforeText;
      }
    }
}

So what this does, it casts the DataBoundItem which I get from the method to a RadComboBoxItem so that I can manipulate it at design time and set the things how they should be displayed. in the next step I set the properties. For example I want to set the Text and Value of the new item to it’s inner DataBoundItem properties. And then I can set the Image from the Resource file to appear in the ComboBox. The last thing to do is to set the Image Text relation of the object. So this is the way how I solved the problem with the databinding and image from a resource file. Doing it by hand however is not the fastest way but i get rid of that stupid exception. It would take much longer to show the code which caused that error. Because the hole class is about 150.000 Lines of code. To cut the edges I just wanna mention 2 things. First: Don’t program Event Driven. The idea of event driven development is totally wrong when you interact with nearly any sort of communication or data interaction. Think about the latency between “Event is fired” and “the whole Data is loaded and send to the control”. You can call that Message Driven. So thinking "message driven" instead of "event driven" helps you understanding how the system works. Get rid of the PEBKAC (problem exist between keyboard and chair) So disable your controls while waiting for the Message! The result looks like that:

image

So i just have to do the Error Providers and the localization stuff, and yes the Description Text should be reviewed.

Jen, this is the Internet!

image

So i wrote earlier about the Browser Issue. A Browser I've never recognized, is Safari. So i recently did a project for Mac Users. And guess what i had to develop that app for the Mac. Since my Objective C couldn’t be better i used Quartz Composer. OMG what a hell of a hack. This is like drawing with numbers. I couldn’t think of a easier and at the same time … way of developing. I learned what marketing drew really means. Yes it runs anyway. But i had to use the Safari Browser. And guess what i installed him on my Windows Clients as well. OMG why is this browser so fast. Since I already have bunch of browsers running on my system i guess it's time to add another one. But what i wanted to say is: Browsing is fun, and fast. I like that. What, why did i mentioned that? i learned another thing today. Kids aren’t small people, they are only stupid. That's all they are. And since i listen to a Canadian Internet radio station I'm really getting childish. Did you heard that news? Don't listen to that shit!

Anyway as my new favorite internet radio station discusses that issue, I found it killingly funny. I really get a new picture of Canadians due to the Olympic games. And just wanted to mention that it’s funny to laugh together about ... Hell of hack, oh lords how should I lead or point over to the it-crowd header of that posting?  I have no clue maybe because I'm so childish or is it the new browser. If I will ever come up with a conclusion, i let you know. In the meanwhile I for myself will continue listen to The Beat and keep on coding. Just needed a break; cw(thx);