Sunday, January 31, 2010

Geek Literature

Maybe this is one of my most important posts ever. Literature for Geeks and Nerds. Wonderful books (books are those things made out of dead trees in case you forgot) on wonderful geeky topics. This list, of course, doesn't claim to be complete. I am sure I forgot some books, so I encourage the reader to add those books in the comment section (hey, I want some book recommendations as well). The range of the genres, however, will not only involve Sci-Fi stuff, but also some books on SW Engineering, Economics and, oh yes, oh yes, Computer Science with all that nice theory stuff like NP-Completeness and Cellular Automatons.

The books are in no particular order, they are written down in the order they entered my mind, so there's no grouping of books and using prime numbers as accessor keys :-)

Thats the initial draft of my List. PLEASE, if you read my post, add all your favourite geeky-nerdy-favourite books in the comment section.

Cheerio

    Wednesday, January 20, 2010

    HowTo: use a Mac as Wi-Fi Hotspot

    Have you ever worried how to crack your neighbors WPA2 Key to gain access to his Wi-Fi? If you are the owner of an Apple Computer and you have cable Internet or a 3G mobile Internet at home, you have no more need to spend your valuable time in trying to hack a WPA2 Key.

    Note in advance:

    • This tutorial has been tested with a MacBook using Snow Leopard.
    • After setting up the Wi-Fi Network I connected my iPhone and a another Windows XP Notebook to it, what worked fine for both.
    • I am quite sure you can do the same with Windows and Linux, but I didn't try it as it worked so smooth with the Mac.
    Setting up your Mac to act as a Wi-Fi Hotspot is simpler than taking a Screenshot on the very same device. I will guide you Step-by-Step through how to do the necessary Settings, documented with beautiful Screenshots (although I almost broke my fingers while taking Screenshots from my MacBook).

    1. Navigate to the Sharing Tab in your Mac's System Preferences 
    2. Select the Internet Sharing Option (last but one in the list) - don't activate yet - and set the options, "Share your connection from" to "Ethernet" (for both, mobile 3G Internet devices (except it is listed explicitely) and cable) and the option "To computers using" to "AirPort" (marks that the outgoing Signal is Wi-Fi) 
    3. Click the Button "AirPort Options" to define a name and a password (hey, your neighbor isn't sharing his Wi-Fi with you either) 
    4. Now activate the Internet Sharing Option and click "Start" in the upcoming Dialog 
    5. The magic is done, your Mac is now a Wi-Fi Hotspot and you can connect other (Apple) devices to it 
    6. To share the magic with your Windows PC there are some further steps necessary. First Open your Internet Sharing again (Step 3) and set up the  Security to a WEP 128 Bits Key. Important Hint: Enter a password with exactly 13 Alphanumeric characters if you can't establish a connection with your Windows PC. 
    7. Then turn on your Internet Sharing again to transform your Mac into a Hotspot again (Step 4). Now lets set up the Windows side of life. I am still using Windows XP, so this is what the Screenshots are about. In Windows Navigate to the Wireless Network settings and try to connect to your Mac Hotspot which is displayed in the Available Network List. Also note that I changed my Wi-Fi Name from the passive aggressive "NoAccessForYou" to the simple "MacBook" ;-) 
    8. Right-Click on the Wireless Network Entry and select Properties. On the upcoming Dialog choose the Tab Wireless Networks and in the frame Preferred Networks, click add. No it comes down to set up the Wi-Fi according to the Settings with which you set up the Mac Host Network. Enter the Name you have given the Wi-Fi Network on your Mac, select "Shared" for the Network Authentication, "WEP" for Data Encryption and enter the Password you defined on the Mac. De-select the checkbox that the Key is provided automatically. Then press Ok.
    9. Now the "MacBook" Network (the Name I gave the Wi-Fi on my Mac) is set up as a preferred Network, press OK again and navigate back to the Wireless Network Connections. When everything is set up correctly, your Windows Computer should already have started to connect to the "MacBook" Network. 
    10. Finally enjoy your new Home Network :-) 
    11. Things with Linux (Note: This example has been done on openSUSE 11.2) are about the same as with Windows. We'll shortly revise our Mac's Host Settings: Internet Sharing enabled with a 40/128 Bit WEP Security enabled Key (See steps 2 - 4). Important Hint: Again the Password, with 40 Bit must consist of 5, 10 or 13 alphanumeric characters, with 128 Bit I only tested the 13 character variant. The reason for this is restrictions on Windows and Linux are, that you are trying to connect devices running different operating Systems. 
    12. On the openSUSE Tasklist, select the Network Connection, where you should see your Network. Select your Entry where the Authentication Window should pop up. There, select WEP 40/128 Bit Key Security, enter the Key and, important, select "Shared Key" as Authentication. 
    13. Finally the magic is really done, you now have a Mac as Hotspot and Internet Connection and you can connect all your devices like a Windows PC, a Linux Notebook, your iPhone and your iPod Touch to it  
    14. ENJOY

    Monday, January 18, 2010

    The Unix Inheritance

    This Post is about nothing else as the future of Operating Systems. Heavy announcement, I know ;-). But with the rise of the Cloud and the new fashionate term "Software-as-a-Service", we are at the beginning of a fundamental change of technology.

    Further I will discuss the big 3 Players in the Operating System World, Microsoft Windows, Apple Mac OS, Linux and the dawn of Chrome OS, including the advantages of the Cloud itself and probably a small view on what applications are going to be important with the rise of the Cloud (That word already lost all its sense to me...)

    The Big 3 starting with Microsoft, who is in an interesting Position. They are the clear market leader in the Operating System market and will probably stay the leader for quite a while, but they will inevitably lose some of their market share to competitors. Why that? Because the Windows System IS so popular, so wide spread and that for such a long time. The same, by the way, is true for Windows Mobile as well. Windows is carrying such a huge backpack with legacy code and backwards compatibility. The problem for them is, they cannot just start something new. They cannot tear down everything and make a brand new start. Just think if Microsoft announces that their new Operating System Windows 8 will not be backwards compatible with any of the older Versions (not Win 7, not Win Vista and not Win XP). What will happen? Their stock price will drop quite close to 0 overnight if they make such an official announcement. They are bound to their customers, not so much to private users, but to all the Companies that have Windows running (and thats quite a few).

    The development of the Windows Azure Wave will probably bring some fresh wind into Windows (gosh, am I poetic...). Windows Azure Wave seems to be a tackle to Googles Chrome OS, as Microsoft announced that it will be more or less their Cloud OS for which applications can be programmable using the .NET platform. What Microsoft, in my humble opinion, has to do with Azure is, integrating into Windows as soon as possible and as good and smooth as possible. I don't think that it will be a good way to place Azure Wave as an own product next to Windows. The goal must be to merge them into one System within the next, lets say 3, full Windows Releases.

    Due to the fact that more and more applications will take their way to the cloud (with the obvious advantages of being everywhere available and the obvious disadvantage of having your secret data lying on some Serverfarm somewhere nowhere), Windows will inevitably loose market share, unless they are doing the right things with the Azure Wave. They will suffer from the biggest losses on the private consumer side. More and more people will start buying Netbooks with Chrome OS or a Linux Distro. Companies will stay on Windows, what may lead Microsoft to meet the IBM destiny.

    Apple, I think, won't suffer too much from Cloud Operating Systems too much. Macs and Macbooks are the premium-product class and I don't think Apple will do much to participate in lower cost classes with their Desktop - PCs and their Notebooks. Apple also has the advantage that they are more an end-user product, There are hardly any Companies that are using Mac OS as their main Operating System. But Apple also has to be careful with radical changes, as their products are, thanks to iPod and iPhone, quite widespread now and now also technically unsavier Users are now using Apples products.

    Linux, my dear child, Linux, how are we all hoping for your rise and how are we all knowing that your rise, at least on desktop PCs and Notebooks, will never take really place. Their are many reasons for that and I will discuss some of them. I don't know where to start, so all reasons are in no particular order. First some words pro Linux: I like Linux, I have openSUSE running on one partition of my Notebook, and yes I admit, I really, really like it. It's great for Techies like me, you can do almost everything on a Linux System and I simply like using the mighty, mighty Shell.

    Alright now to the dark side of the moon. There are countless different distributions that are offering Linux. Why that? There's only ONE company that is offering Windows and there is only ONE company that is offering Mac OS, but there are 124 that are offering Linux. How will a normal User who only wants to surf the Web, write Mails and do some scribble-scrabble in Spreadsheets and Documents know what to choose? That leads me direct to the next 2 points: There is no real Office Package standard in the Distros. OpenOffice more or less is a standard and also should be the ONE AND ONLY standard, but there is still the old stuff from the 2 different desktop engines on every Distro. Why?? Who needs 3 different Word Processors??

    And wait, did I say 2 desktop engines? You have KDE and Gnome and you can choose between them. Its fun for people like me, weighing up the now not existent differences and then choosing one (I chose Gnome by the way, because it was simply cooler looking and faster at the time I set up my Linux). Hey, most normal Users don't even know what a damn desktop engine is, so why let them choose? That's useless, they are only confused. Next thing marketing. Why would ever any standard User install a different OS from that, that is running? Hey Mr. Shuttleworth and Mr. Novell CEO, if you really want to spread your Linux Distros, make some deals with those guys that build the PC's as Microsoft is doing. It's a really effective way to force Users to their luck.

    The final problem is probably that the slim and fast Linux Kernel is nowadays a huge, ugly and unmaintainable Moloch. There's another problem, too many people who were working on Linux since the 80s are still leading the Development and still working on Linux with the same Tools and the same attitude, but hey, the world changed. Those guys did a fantastic job and Linux wouldn't be Linux without them, but they simply need to let it go. Linux hasn't so many Users, so there is the chance to make a complete new start without causing too many problems.

    Now to Chrome OS. I said it before, and I say it again, announcing an OS is NOT innovative but I think Google will make a fantastic job on Chrome OS. Every day I am more convinced that this is going to be the perfect merging between the Web and the Desktop. Do you know why there is yet no G-Drive Online Storage from Google? Although Microsoft has its 25GB Windows Sky Drive and countless other Companies are offering Online Storage (including some really cool ones like Dropbox). G-Drive will be an essential part of and fully integrated into Chrome OS. Local storage no longer required. Everything else would make no sense.

    I believe that Google is fundamentally changing the way Computers and the Web is used. Google won't take much market share from Apple, as Chrome OS is probably aimed at Netbooks, but they will steal Microsoft a part of their cake. The cool thing is, that every service Google offers is - of course - a potential Chrome OS Application. You are having your Desktop in the Web then, with a nice integration of all the Twitters and Facebooks we all like to use. No more Browser required (sorry Mozilla, but I still like you and will keep you on Mac OS). I know I sound like a cheap advertiser of Chrome OS (which I am not, otherwise I wouldn't write a Blog that no one is reading), but with Chrome OS the Desktop and the Web will be one and the same things, the borders between them are not recognisable any longer.

    So to end this pretty long Post, what cool stuff will we have running in the Cloud? First, when I store my stuff in the Cloud, I want it to be safe, so Crypto Services will be essential (I hope Chrome will have that). The automatically integrated Crypto Service needs obviously be fast and safe. Next, I want to stream my music and my videos direct onto my mobile devices or my other Notebooks and PCs I use. So, there's already a service (currently invitation-only) put.io which seems to be a really hot thing. When you have only Apps on a device that is Online all the time (like the iPhone), there will be many other changes, where (useful) location based (Notebook-)Services will only be the beginning.

    Final word, if you wonder why this Post is named, "The Unix Inheritance", I have to answer that I wanted to write about something entirely different first, but kept the Robert Ludlum like title (the title is still true in a broader sense, though) ;-)

    Saturday, January 16, 2010

    Epic Failure as a recipie for success??!!

    Can Epic Failure really lead to success? I think it can and does. In this Post I will discuss how epic failure can help you being successful in the future and why failing big isn't a bad thing and sometimes just the right thing at the right time.

    Two more reasons why I am writing about failing, going down and getting up again. First, in the current Issue of the Wired Magazine (18.01) are the Cover Stories (eg. The Neuroscience of Screwing up) about failing and success. And second, what is the main reason why I am writing about epic failure: I am just suffering from one myself. It doesn't matter in what I failed, I just say that it was a highly important goal I wanted to reach and I failed - what sucks.

    Failing is something you simply can't avoid in your life. Some people say that life actually is only stumbling from one crisis to another - and they are right. So what should you do when you can't avoid failure?

    First thing is, to include the possibility of failure in your initial plans. Don't ignore failure and never treat it as something entirely bad. Second thing is that when you failed at something, you actually learnt something, be it the thing you failed at or just something about yourself. We tend to learn less from success than we do from failure, thats a simple fact every high-paid Business Consultant will tell you.

    Back to the first step you should take when you want to reach a goal: including failure in your plans and calculations. When I bought my overpriced black Moleskine Notebook, I took a green (such a positive colour) felt pen and wrote 3 big words, which mark the beginning of 3 short paragraphs: Imagine, Create, Learn. These 3 words have become a personal motto to me. These 3 words mark not only the beginning of 3 paragraphs but they mean much more. Imagining new ideas, creating and developing your ideas and learning from errors (there you have it) and successes equally.

    Of course I won't keep the the full 3 paragraphs hidden from you:

    Imagine your success!!
    How does it look like?
    How does it feel like?

    Create an Environment that allows errors,
    failing is ok as long as you

    Learn from your errors.

    Imagining your success is easy. Before you live your dreams you need to dream your dreams! Think positive in what you want to achieve and apply SMART (Specific, Measurable, Attractive, Realistic, Time-based) goals. When you start working for a goal and you think that it is unachievable and it is likely that you fail then you will fail. Imagining your success is essential for your success, it not only motivates you to reach your goal it also reminds you how good you will feel when you finally made it.

    Creating an Environment that allows you to fail might be harder. The way I am doing it (and currently really applying it) is to have a Plan B. That sounds easy but it isn't. It shouldn't be any Plan B that is an unattractive and ugly option. No, it needs to be a Plan, that is almost as attractive as Plan A (if you find out after some time that it is even more attractive, there you go, then you have a new Plan A). Plan B needs also to be thought-through in advance. Not really planned yet, as you still have enough to do with Plan A but carefully thought-through and checked if it meets the SMART requirements. When you are a really careful planner then you might already have 1 or 2 options for a potential Plan C in your sleeve.

    Learning from your errors is probably the hardest part. First thing you need to do when you fail is to make an exhaustive Reflexion of your work. Don't look for cheap excuses like "I was sick" or anything. Failing isn't just because of one reason. When you fail in reaching a goal, then there were several reasons not only one. Try to find the crucial points in your decision and preparation process that ultimately influenced the final outcome. Failing also allows you to reconsider your whole target. After you failed at something and before your get up to try it again, ask yourself the questions: Do I really want this? Is all the work really worth it? If your answer to both questions is a clear "Yes!!", then you should go for a second round.

    When you go for a second round, you have a few advantages over the first round, because you already know the way, you gained more experience in whatever you did and you, yourself, are more mature. You already have a new Plan A (your old Plan B) and you are ready to go for it.

    In order to digest my initial failure from which I still suffer ;-), I decided to develop a proper Plan B a little later. I also built a fallback-solution into my (now) Plan A which can be considered as Plan B. I already started my preparations for achieving my final goal and I found out that I like Plan B actually better than I liked Plan A, because due to the additional time that I now have, I can do a lot more things, for which it was too late when they came into my mind at the Plan A preparations.

    I also see my failing as an epic failure just at the right time. When you had a lot of successes you may think that everything works automatically, which it doesn't (Yes, again a case study of myself) and you might need to do some more work to achieve your goal (What an epiphany).

    Finally I want to remind you that a failure, a disaster or whatever is never a step back, but at least one step forward. Not necessarily into the right direction but obviously it was a step forward. Also keep in mind that not only taste is in the eye of the beholder but also success and failure.

     - "Success is, getting up once more, than you fell down."

    Saturday, January 9, 2010

    A new year and yet again, a new Post

    Alright, alright, due to the load of Mails and Comments I received (exactly 0) and due to the load of People that must have therefore read my Blog, I will try to be not that visionary in my Posts and Insights to attract a few more people to my Blog (Maybe its just because of the Name of the Blog that no one is reading it, but hey, I know its a stupid name, but I like Douglas Adams and I couldn't think of a better Name at the time I created the Blog...).

    What will be new on my Blog is, that I finally found out how to type UPPER Case Letters, finally I know whats that 2 keys with the arrows pointing upwards are good for.

    In that sense I wish my regrular readers (I hope that number exceeds 0) a good new year and will promise to regularly blog about my thoughts and ideas on the Computer Industry, specific Developments and Computer Science in general.