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);

Friday, February 26, 2010

Password Character usage in TextBox

So you already recognized the new Windows feature for showing the password of a WLAN? A student asked me, how to do that. So here is the tutorial. “How to set and reset a password character in a textbox via C#”

password

So this is the screen hiding the Password by a Password Character. The Picture below shows you the same with unhidden Password.

passwordshow

The question is how did they do that. So let’s start with a quick tutorial.

I created a new Windows Form Project. And put a Textbox named “txtPassword” and a Checkbox with the name “checkPassword”. So the solution should look like this.

pwform

Switch to the Code Window. I like to create a Method to initialize Controls. So this is how this should look like.

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            InitializeControls();
        }

        private void InitializeControls()
        {
            checkPassword.Checked = false;
            txtPassword.PasswordChar = '●';
        }
    }

So how do you get the character for the Textbox? In Windows you can find the Character Map by Windows –> All Programs –> Accessories –> System Tools –> Character Map.

charmap

Select the character you want. Copy it and set the Textbox PasswordChar Property to that character. The next step is to create a new Event Handler for the checkbox CheckedChange event. The code should look like this.

        private void checkPassword_CheckedChanged(object sender, EventArgs e)
        {
            txtPassword.PasswordChar = checkPassword.Checked ? '\0' : '●';
        }

The idea of resetting the character map is to use the empty character symbol which is presented by ‘/0’. You recognized that i like to use the conditional operator instead of the if-else. Immo would say: “Why did you that way, because you can?” The if else way would look like this.

        private void checkPassword_CheckedChanged(object sender, EventArgs e)
        {
            if (checkPassword.Checked)
                txtPassword.PasswordChar = '\0';
            else
                txtPassword.PasswordChar = '●';
        }

The complete code should look like this. Now it’s time to run the our program. Everything should work fine now. Here is the complete code.

using System.Windows.Forms;

namespace Password
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            InitializeControls();
        }

        private void InitializeControls()
        {
            checkPassword.Checked = false;
            txtPassword.PasswordChar = '●';
        }

        private void checkPassword_CheckedChanged(object sender, EventArgs e)
        {
            txtPassword.PasswordChar = checkPassword.Checked ? '\0' : '●';
        }
    }
}
Hope this was helpful.

Thursday, February 25, 2010

Wish Managers would sometimes be more like Developers.

I recently heard a citation somewhere on television. So i remembered a poem i read earlier in my school day’s. The title is “Stopping by Woods on a Snowy Evening” written by Robert Frost in 1922.

Whose woods these are I think I know.

His house is in the village, though;

He will not see me stopping here

To watch his woods fill up with snow.

My little horse must think it queer

To stop without a farmhouse near

Between the woods and frozen lake

The darkest evening of the year.

He gives his harness bells a shake

To ask if there is some mistake.

The only other sound's the sweep

Of easy wind and downy flake.

The woods are lovely, dark, and deep,

But I have promises to keep,

And miles to go before I sleep,

And miles to go before I sleep.

In the past few years i heard so many promises from managers and marketing managers. Wish they first of all would think and then talk. The most time of the year they make promises they are not able to keep. And the only thing they are going to do is talk. A Developer is much more reliable when it comes to promises. First of all developers don’t like to promise something. But if they do, they are committing a 100% to that promise. Sometimes they make lame excuses and tries to explain their situation. But most of the time, they keep promises. That’s why i like scrum. Everyone is committing to a backlog, work item, …. I guess a lot of German Managers are not compatible to scrum. But why?

1st: Germans like to think in hierarchies

That’s so military like. And so German. They only think about how to become one step higher and how and what things will bring them to a higher position or propose in life. My Manager has a Manager which has a Manager somewhere. That’s so not agile because it brings us to the second thing.

2nd: The Plan

Everything is planed, from the 18th – 64th year of life. They plan, and fall in a deep hole if one of their Milestones in life or work life is not coming true. That makes people depressive and the higher their aims the deeper they fall. Happiness is not possible in this scenario. And it’s not planned.

3th: The Talking factor

Most people like to talk. They talk about anything and most of the time they really like to hear themselves talking. So I know the job of a good Manager is talk and motivate people. Problem is, sometimes they talk too much and say too less. And when they make a promise in the talk they can’t remember. I hate that kind of people. I really do. But since this are the people giving me money, what should i do?

So you may suggest but you’re a Program Manager so why do you talk like this about yourself? Well i always try to keep my commitments. Sometimes I can’t and I hate myself for this. But I cant keep them because anyone else I trusted didn’t kept it’s promise to me. So I can’t keep my promises. So this is a “if-else” relation.

And that brings me to risk management in Projects and when you plan a business or just have a meeting. You are as aware as i that the sentence - “Trust nobody!” - maybe right or not, but think about the consequences. Since quitting is out of the question. What if a promises isn’t kept. In your hole plan or backlog or concept. Always think about the else. I know the most of you’re time you are thinking about the if and how to get there, and what you must do. But also think about the “else”. Make at least one fallback plan. Just the idea of a sleepless guy lost in meetings and C#.

Go for gold Kathy!

Since I'm a big fan of alpine skiing i watched the ladies giant slalom competition yesterday. Well the weather was bad, and the start position of the german team was not the best. 42832-hoelzlAnd the Austrian ski team rocked the challenge. So what can i do to support the German Ski team, especially Kathrin Hölzel the World Champion of Giant Slalom. I really keep my fingers crossed for them and wish them all the best for the things to come in the second run today. Which was rescheduled due to bad weather. Lindsey Vonn was injured by a accident in the first run, so i wish her all the best and get well soon. But how can i sent the team a message? Well i guess i found a solution.

On the Webpage Vectorial Elavation you can design the sky over Vancouver. A grid of sky beamers makes this possible. You can design 20 Syncrolite SX10K, a new generation 10kW xenon robotic fixtures that produce a very collimated light beam showing your design for almost 12 seconds. The Webpage is done by bunch of JavaScript's and a implementation of Google’s Maps and Google World. So the designing process is very easy. Even if not any design you can imagine is possible. But with enough time, you can draw very cool pictures in the nightlight of Vancouver. So start the Design:

goforgold

After you finished the design, you can leave a Message and your contact information, so the system can inform you about you’re design. Go-for-Fold

The Laser Show in Vancouver is cool. The best thing is the feed where you get information about the Skyimages and the Message to each image. The Application coordinates some webcams which takes picture of it, and render them to a site you can reach via a feed or directly via a url. Go for Gold Kathy! The question remaining is how the searchlights are coordinated. A 3D DMX application brings the 20 sky beamers in the position you want. Here is a full picture of the architecture.

dataflow You can find more information about the PHP Website the 3D DMX application and the Webcams here.

Here is the result of my Design!

16741-E 16741-A1

16741-F

16741-B1

16741-G

16741-C1

16741-H

16741-D1

So i designed the sky over Vancouver on 25th of February 2010 at 4:55.

Security at it’s best!

Ok, so I am not one of this security gurus. But since i develop software and also work a lot with the Microsoft dotnet Code Access Security (CAS) I’m always interested in funny security stuff. A friend of mine sent me an email. Of a University of Applied Science somewhere in Germany. They did a new Network Tutorial for students to connect with the Mail and Intranet. On page 7 you can read the following:

servercert

So what that means is, that the Browser can’t evaluate the Certificate. The solution for this problem is to continue anyway, or look closer to the certificate because the signing authority is the university it self. Therefore it’s trusted. So this is a daily WTF for me. It’s almost 2 Lines of code to create that certificate. What is the idea of this? Safe money for a trustworthy certificate? Safe time to create a free trustworthy certificate? The result is a secure communication which is as safe as writing down the pin of your credit card on it’s back. Yes, they really know what they're doing. NOT! Best thing about this story is, they offer courses like Bachelor of Computer Science and Business as well as Bachelor of Art in Computer Communications. Since we all know that Art is a very subjective thing, i agree with there decision.     

Sunday, February 21, 2010

Joshua? Are you out there?

Ok, safety is something really subjective. I already backbite about the new Windows Mobile Operating System and the iPhone as well. Both are very restrictive. So you may think your little cute mobile computer is safe. That's just not true. Since they are little communication wonders. They are communicating with anyone and anything. So the U.S. Government did this great and wonderful show last week called: cyber.shockwave

Oh my good, i need a TrendMicro Firewall on my Cellphone, now! It was a great event dealing with good old cold war fears. Does this people really think the next generation war which they mentioned is cyber-war is coming from the well known enemies. I have the hunch that this is just not true. Since they are already part of the system. Any country, and i really mean any, can force a crash down of the systems with a few people. All you need are a handful very good people knowing what they are doing. Guess what, i don’t think a Antivirus or Firewall for your Smartphone can stop this. Firewalls and Antivirus can just stop script kiddies, Spyware and Hoax. Real Hackers are still the genius guys doing social engineering, rootkits and so on. The real thing about this story is: “We are just not prepared.” I have the subjective feeling that if a cyber.shockwave hits us by tomorrow, we are in serious trouble. Problem is to identify the bad guys. Which leads me to another point. Did you know that there are maps about almost any country with any possible WLAN. And did you know that it just takes 7 sec. with Backtrack on a floppy, USB Stick or CD-ROM to get a WEP WLAN-Key. And guess what this maps have a detailed GPS coordinate and the WLAN keys. Because guys drive with there car through the streets an checking for active WLANs and hacking them while they are passing by. So where is Joshua? War Games – is telling us that story since the mid 80’s. The only difference is, that the enemy is the computer itself. Other countries are more prepared for a cyber.shokwave to hit the ground. China and Taiwan are battling against each other for a few years now. In a total cyber war. Our countries are telling us to take control over our personal information to protect us. And to stop terrorism. What? The more information they have, the easier it is for a potential aggressors to get the things they need to start the wave. I’m seeing a bright feature.

Can you imagine a cell of 24 hackers having enough time to do that. I can imagine many scenarios.

Friday, February 19, 2010

Visual Studio 2010 RC1, Windows 7 – I’m so happy now! – Part One Windows 7

Preface

Ok, a lot of you guys asked me in my talks and sessions, you said VS 2010 is slow and bad. Looks like somebody is reading my Blog. And the “Missing Features” is well known i guess. So first of all. I have a lot of Microsoft products i really don’t like. Outlook for example is hate-love relation. It’s slow, the UI is ok, the features even more. But guys the sorting is a mess. And the best thing is the error handling. Well Windows 7 says i have no internet connection right now, but i’m outlook i bet i can find one! No you’re not. But hey why not suspending and slowing down the system. This is just one of the problems you have if you work with outlook on a daily basis.

And once up on a time there was this browser. What was his name? Internet Explorer. Why does people don’t like him. I like him! Yes for sure as a user it’s not as friendly as you might expect. But as a developer. It’s the best Browser in the market. Mozilla for a Developer is a mess. Sorry guy, I’m not able to render your CSS even if it is standard why should i as freeware care about it. Chrome is reading my profile and safari is Netscape 1.0. So i choose a mix of browsers. IE for the work. Since they releasing security Updates fast, and i can debug webservices and applications. And yes Fiddler is the best. And i use Mozilla for downloading stuff and browsing on sites no one should browse after all. Why do i use Mozilla for that sites. Best thing on Mozilla is. Even if you activate the Javascript and Flash and … shit. The most webdeveloperkids are making mistakes. While IE is running it, and try to fix the errors. Mozilla is not running the scripts. I deactivated all the scripts. So i have a robust Browser. And only the Scripts i really care about are allowed to run. That makes Mozilla my number one browser for bad or evil sites. I suggest you guys try that way. Work with IE, browse with Mozilla. Oh, and then we have this new Windows Mobile. I’m so glad I'm not a Windows Mobile Developer! Ha, ha! And i thought the Apple iPhone Objective C is the most restricted and most stupid solution you can find on the market. Microsoft reacted on it and say: “We can do this crap, too!”. Looks like both want to clear the way up for Google.     

169657118_934780c2df

There are many people out there which hates Windows Vista. I can understand them. But as a developer i was so glad to get it. The Error Handling and reporting, the UAC, …. I know a lot of guys blame Microsoft for reasons like: “it’s to slow”, “the Hardware prerequisites” – and the list goes on and on. But i really used to like Vista.

Part One – Windows

And Windows 7, it was love from the early Alpha. It’s fast, performing and even faster. Yes there are some issues with drivers of people how really thought they can install a Windows XP 32 Bit driver on a Windows 7 64 Bit Version. But this is a PEBKAC problem. And yes sometimes in companies you have problems with file handling if you run Windows 7 and a Windows 2003 Server. But there are Updates for Server 2003. Using Windows Server 2008 R2, i had no problems with the network stack in the past years working with Windows 7 since the early preview bits. So i love Windows 7. Please do not make a Windows 8. Leave us alone with 7 :-). Yes, from a computer scientist perspective there are a lot of things to burden about 7. In a perfect world i would still prefer SOLARIS in a Terminal – Client manner “Ray 1”. But hey, we’re just not living in a perfect world. So Windows it is.

You have to know how to handle the cute Windows. BSG Admiral Cain: A philosopher once said:

When faced with untenable alternatives, you should consider your imperative.”

So here is how i use Windows 7.

Keyboard Shortcuts

imageWindows + P
I have a lot of presentations to make. So the Presentation mode of Windows Seven is for me is one of the coolest Features. It’s a faster way then handling it via Windows + X for the mobile settings. And thanks to Windows + and Windows – i don’t have to use ZoomIt any more.

imageOk a lot of you guys use the Windows + E to get to the Explorer. But there are still a few things how you can get the best out of it. Here are some features you should turn on if you are a Pro on working with Windows.

Goto –> Explorer –> Organize –> Folder and search options –> View. Uncheck the:  “Hide extensions for known file types” and  check the “Use check boxes to select items”. These two options allows you to first display the file extensions. The second option you just activated allows you to easily select files by checking and unchecking them. In combination with STRG + A for select all, or SHIF + Mouse selection this is a very useful tip.

image  Since i don’t want to wait until the explorer shows me all the files, i really like the Windows + R

image

I prefer that way of running some Applications and navigate to Folders, since i think the Windows Search is to slow for me. I often tend to browse through special folders via Command Shell which i also start via the Windows + R.

Ok when it comes to the Windows you all be familiar with Windows + Left and Right Keys to dock the Windows to the Left or right corner on Notebooks or sending them to different monitors on a multi monitor environment. The docking thing is cool stuff. And shaking the Windows is also a good tip for users with multitouch or touch screens. But how can you get rid of the Windows on your Desktop. Ok you can click on the Button on the very right corner of the Taskbar. Or you can press Windows + D to Minimize all Windows. If you want to simply undock a Window you can do that by clicking on STRG + double-click. 

image

And i just want to mention the Windows + UP and Windows + Down Shortcuts where you can maximize or minimize Windows and Dock them on the hole active screen. Another create Shortcut is the Windows + T, with this you can cycle through the apps and Windows + Shift + T you can cycle back in your Taskbar. And With Windows + Number you can start the Applications. In my Setting Windows + 1 will start IE and Windows + 2 Will start Explorer and so on. And there are two more keyboard shortcut i use often. Windows + Pause to get the properties information about a computer. And the last one is Windows + L to lock a computer.

More Keyboard Shortcuts….

Ok since i don’t care much about Gadgets and all that Design stuff i just want to point at the new Themes you can download or create for yourself. Here you go …

So i use currently a lot of Microsoft Tools to optimize my Windows behavior. Two tools i really suggest to all of you are Autoruns and ProcessExplorer.

Autoruns – optimize startup

With this little app by Mark Russinovich you can detect software which runs when you start your computer.     

image

Since you can harm your computer you should just use Logon Tab and IE Tab when you’re not familiar with Windows. You can deactivate a program or delete it from the startup. Especially helpful for applications like Skype and browser toolbars.

Process Explorer the better Task Manager

image There is so much i can tell you about Process Explorer and why it is the better Task manager. So i would suggest you read the articles about it or watch the webcasts.

This is just a sneak peak overview of Windows 7 focusing on users interaction. I could tell you more about the sensor kit or the new managed code wrapper in the windows 7 SDK. And the multitouch support.

Part Two will be about Visual Studio 2010  

creative coding or generative design

tree

In the past few years, with all the cgi trends it turns out that computer graphics are just becoming started. ICE Age, Madagascar and Avatar shows what super computers can render if you have enough processors and time. But there is another trend. It’s called creative coding or generative design. There are just a few implementations yet. But the results are pretty cool. My tree is just a few lines of code and represents a binary tree. And yes it’s not that amazing graphic work. The IDE called Processing, and the Language is Java. The application by the MIT is a simple to use IDE and rendering engine. I couldn’t find any C# implementation yet. But maybe in the future there will also be a C# app rendering in WPF available. You may ask, why is this so cool. So i just wanted to show you a few graphics done with that software.

3291287830_287591aace_b

This is a image rendering the most famous organizations and people from the year 1985 – 2009. The code is done by Jer Thorp via the New York Times API and JSON. So i guess you get an good idea of what is possible with that software. I found another two projects you should have a closer look at.

img_6   telekom_4b

Isn’t that great stuff? If only i have more time, and somebody would pay me for that. That would be cool. :-)
Guess what i think there will be more posts on this topic here.

Wednesday, February 10, 2010

Language Integrated Query (Linq) Session @ HM

Ok, seems like i always get the talks nobody else want to have. Mh, what can i say about Linq? Well i tend to tell the people how things work. But explaining how they build Linq is a hell of hack. Yes i can tell them about “computable functions” or let’s define better “higher-order functions”. WTF? So where to start? Functional Programming? Or maybe the Lambda calculus? Well i don’t think so. And reading the the Paper? “Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs” written by John Backus at the IBM Research Laboratory, San Jose. Is this the start for my Session?

I often come to the conclusion people don’t want to know anything. Like in the movie “The Island” where McCord says: “Just cause people wanna eat the burger doesn't mean they wanna meet the cow.” And talking to students @ University of Applied Sciences Munich is always a pleasure. Give them a ball, and let them run with it. You’ll be amazed by the things they will come back with.

So, decided - i show the Technology and explain it step by step. Perhaps they will surprise me again.

So showing how to work with Linq, you can find so many solutions …

  • Perhaps you start with reading?

Linq start Webpage @ Microsoft
Thank you Charlie, again!

  • Or maybe you want to check out some Webcasts?

MSDN Webcast: Introduction to Microsoft .NET Language Integrated Query
and even more Linq Webcasts …

  • i for myself prefer the code:

So one step could be Open Visual Studio –> Help –> Samples –> local Sample folder –> CSahrpSamples.zip –> Linq Samples
or direct via C:\Program Files\Microsoft Visual Studio 10.0\Samples\1033

another way of learning by code start here … CodeProject … or look closer to Charlie’s Blog.

And yes, there are Books to:

Introducing Microsoft LINQ
byPaolo Pialorsi and Marco Russo
Microsoft Press 2007 (240 pages)
ISBN:9780735623910

Save the money, give it to me. :-) The book is not as good as his title promises. Since it’s the only one i read about this topic, i can’t tell much about others.

So i finally mixed up this things with an early preview of Anders Hejlsberg and came to this solution.

The Presentation stuff:

Luca Bolognese introduces Linq always by saying developers != plumper's. What that means is, like any other O/R Mapper Linq to SQL is doing the Mapping of SQL data - Types to you’re development data – Types. Well i prefer to introduce Linq by first of all telling the folks about Duck typing.

duck     

What you can do with Duck typing is you can use a shorter way to define your variables. Instead of using something like

   1:  int i = 10;

you can do the same thing by typing

   1:  var i = 10;

Ok, that however doesn’t means that it is a non strictly typed variable. Since the compiler understands that 10 is a integer value. Where is the duck? Well the duck means – it smells like a duck, it looks like a duck, it even acts like a duck ==> so it must be a duck.

Sine 10 is obviously a integer value C# knows that and using the best fitting data type which is int. Well you may argue: “Where is the benefit?”. There are 2 profits of Duck typing. The first one is easy to explain. Think of declaring a variable of a class or .net Type like 

System.Security.Cryptography.ManifestSignatureInformationCollection collection = new ManifestSignatureInformationCollection();

ok, don’t you think that this is a very long way telling the compiler what you mean. A shorter way would be:

var collection = new ManifestSignatureInformationCollection();

I personally like that profit. Using the var when you declare a string, int, … i personally don’t like that way. It makes the code a little bit harder to understand. Because i don’t see it on the first look, what the code is trying to tell me. I have to think a second about it. Ok it’s just a second but it’s still a second.

The other benefit is by using Linq. You really don’t have to think about the result you get back from your query. Telling about queries it’s time to talk about Linq in general.

With Linq you be able to query against anything which implements IEnumerable. Since any Object and data type in dotnet is using this Interface you be able to query against it.

Another aspect on Linq is that you can query against wrappers for databases, XML files and a lot of other implantations.

Now comes the part to explain Lambda expressions and the query style. 1st against Objects, 2nd against the O/R Mapper and 3rd against XML.

Since this blog post already a bit long and i don’t want to bore you any further here are coming the links. Tada…

So here you can find the empty Demo Project.

And here you can find the solved Demo Project.

Last but at always not least, the presentation.

So one good suggestion i can give you, think twice before you use “Linq to SQL”. Don’t think twice if you use Datasets. I have the hunch that Datasets are the hypocrite of death (memory). RAM Footprints, Race conditions, bad performance … are just a view results of using Datasets. “Linq to SQL” instead is a O/R Mapper. It helps a lot and brings performance to your design time. But performance and persistence problems at runtime could occur. If you have a performance critic solution, don’t touch “Linq to SQL”. And using the Entity Framework which means ADO.net makes it worse. Do it by hand - is the only way. Use stored procedures and let the databases do the things they are made for. Yes you can use stored procedures and that stuff in Linq too. But how do you get rid of the caching, the overcharged objects and the heavy memory usage of “Linq to SQL”?         

Visual Studio – Tips & Tricks 2010 @ HM

Ok, i had this Session on 11th February 2010 @ University of Applied Sciences Munich. Since i do that session for many years now, it’s a bit freaky that every time i tell new things. But Visual Studio offers a bunch of tools and features you can use to improve and customize you’re environment the way you like.

Here are some links to other tracks and and a few other tips & tricks i didn’t show at all.

Karen Liu, Lead Program Manager Visual Studio IDE

Dirk Primps, Developer Evangelist

You can download my Presentation right here.

And also the full Demo’s i showed could be found here.

Last but not least the Poster.

Thanks to the speakers above.

Saturday, February 6, 2010

Windows 7 – God mode

A few days ago i get an email containing the following text:

  • Create a new folder anywhere
  • Name it: GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
  • Open it

Ok, i did it. And wow! That’s a very useful tip. Try it out!

Godmode

Joshua W.O.P.R. rules!

Ok, since i’m a really big Fan of the good old day’s where you need nothing but a telephone and a computer, to shock the world. Here comes how you can modify your Windows x.x even Vista and 7 to be more Joshua like.

Question? How to make the cmd look like joshua in wargames the movie? – Greetings Prof. Falken …

So first of all Type [WIN] + R and goto the C:\Windows\System32 folder. Yes you can do that via the Windows Explorer too. If you don’t like the fast way. 

Congratulations the hardest thing is done.

Now search for cmd.exe. If you found it just simple start it. No, you can not do that via bubble cmd start.

So now that we come so far open the context menu by clicking on the top window border and go to Properties –> Colors.

It should like this:

joshua

Notice that you set the color background color to black and the screen text to R: 148 G: 170 B: 214. Close and try you’re new color from Windows bubble –> type: cmd –> hit enter

Ok we are almost done. Again [WIN]+R or now you can use the Windows bubble and type: “regedit” hit Enter.

Yes we are in the Windows Registry, no fear there is nothing you can harm if you follow the next Steps. Or you create a Backup!

Creating a Backup:

  1. Locate and then click the root subkey that contains all the child subkeys and values that you want to back up.
  2. On the File menu, click Export.
  3. In the Save in box, select a location where you want to save the Registration Entries (.reg) file, type a file name in the File name box, and then click Save.

We continue by browsing to:

HKEY_LOCAL_MACHINE –> SYSTEM –> Current_Control_Set –> Control –> Session Manager –> Environment

Ok, guys hope you’re all still with me. Now that we are in the Environment Settings right click to open the contect Menu and say New –> String Value –> rename that new instance to Prompt.

Now you doubleclick the new created String Value Prompt and set it to:

textjosuha  $_Greetings Prof. Falken$_

say ok to save that value. After the next restart of your computer it should look like this:

image

Ok, i know it would be perfect if we could get commodore64 font, but since ttf is not supported by the windows shell, i’m sorry i found no way to that. But hey, doesn’t it looks really back then?

Here is a link about a post i found for customizing the command shell.

Have fun :-)