The shape of things to come.

This is the post that I really wanted to write for some time now. This is the last post on this blog ever.

As everything that has a start, has to come to an end too. The smartwombat blog came to its end today. It served its purpose well. It has been good friend. For more than 4 years. I started it while I was living in the UK and continued when I moved back to Hungary. I wanted this blog to be my online notebook and collect all things that interest me, so I can come back to them later and try them.

But as time goes there are so many things are changing. I am getting serious and older and I seriously would like to create something cool and great. About a year ago I started to write a tool called QiiNinja. It is a launcher that I created out of frustration with the overcrowded start menu on my computer. This little hack became a big project and I keep improving it and adding new features to it.

QiiNinja also took me one step closer to one of my dreams. One day I would like to start my own company. A place, where cool people would create cool products.

All dreams has to start somewhere. With a small step. This first step is for me to close down this blog today and the next one is to start something fresh. The first step to make my dream come true called: Little Big Tomatoes. I see you there... Good Bye!

 

The shape of thins to come is from the Battlestar Galactica Season 1 soundtrack. It is a beautiful track.

Bloxorz, cool game to waste your time

clip_image001

A very nice flash game for relaxing. The aim is to put the bloc in the whole, but to not fall down at the edges. It gets quite challenging on the higher levels...

Play Bloxorz

HALO3 on MSN

halo3

Awesome! Ordered the game!

Suite Dreams (United)

 

Now and then I come across some really nice web sites. Most of the time what really grabs my attention is the illustration and the design and this site has top notch illustrations. It also uses Flash - what I really dislike on any sites - but here Flash is used cleverly ; only to improve the visuals and give life for the illustrations, but it does not  stands in the way of usability.

UnitedDreans

Suite Dreams (United).

Digging Ruby

Ever since the IronRuby Alpha has been released I am trying to get on speed with Ruby. This is the language I choose to learn as my next language. I found some really nice material that will help me to make this journey a breeze:

  • Try Ruby is an interactive ruby command line in your browser. This is especially really nice when you cannot actually install the ruby environment. It has some interactive tutorials as well.
     

    http://tryruby.hobix.com/

  • Following the link at the bottom of the interactive ruby command line I did found Why's (Poignant) Guide to Ruby. This book continues to amaze me, although I did not read it yet completely. It is the most  bizarre Ruby language tutorial I saw in my whole adult life. I did learn programming Basic form an equally bizarre book.

    http://poignantguide.net/ruby/

  • Learn to Program is the next Ruby tutorial I like a lot. This one is aimed to teach the next generation of programmers, so it starts with explanations of a string and integer or a float. This way you can do teach this language to your kids, while you learn along the way. I think this can double the fun!

    http://pine.fm/LearnToProgram/

 

Technorati tags: Ruby, Learning Ruby

 

Simple video playback with Silverlight

The main feature of Silverlight that I am really excited about is the capability playing back videos. It does mean that we do not have to embed WMP controls on the HTML page anymore, but it will be possible to playback Windows Media Videos with Silverlight only, that means that Silverlight does not rely on WMP for video playback and it will be possible to playback Windows Media videos on other platforms as well. I have not tried this capability on the Mac yet, so I do not know how well the video playback works or does not work. But here is a quick way how to do this:

I am reusing the files from my Silverlight scratch project:

Quick sample for starting with Silverlight

The first step is to get a video file and copy to folder, where the .html and .xaml file will be. Right now I am trying to play video only locally. Then you will need to create a new .xaml file (player.xaml), which looks like this:

<Canvas Width="800" Height="800" xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   <Canvas x:Name="VideoLayer">
  <MediaElement x:Name="VideoElement" Canvas.Top="0" Canvas.Left="0" Stretch="Uniform" AutoPlay="True" Source="butterfly.wmv" />
  </Canvas>
 </Canvas>

In the .xaml snippet we have a Canvas and a MediaElement inside the Canvas. The source attribute is set to butterfly.wmv - this is the name of the video I copied to the same folder with the .html and .xaml files - and the autoplay property set to true, so it will start playing right away.

The next step is to modify the .html file, so it loads the right .xaml file (player.xaml) and change the size, so it can display the whole video.

So it will look like this:

 <script type="text/javascript">
  function createMySilverlightControl()
  { 
      Sys.Silverlight.createObject(
          "player.xaml",                  // Source property value.
          parentElement,                  // DOM reference to hosting DIV tag.
          "mySilverlightControl",         // Unique control ID value.
          {                               // Control properties.
              width:'720',                // Width of rectangular region of
                                          // control in pixels.
              height:'480',               // Height of rectangular region of
                                          // control in pixels.
              inplaceInstallPrompt:false, // Determines whether to display
                                          // in-place install prompt if
                                          // invalid version detected.
              background:'#D6D6D6',       // Background color of control.
              isWindowless:'false',       // Determines whether to display control
                                          // in Windowless mode.
              framerate:'24',             // MaxFrameRate property value.
              version:'0.9'               // Control version to use.
          },
          {
              onError:null,               // OnError property value --
                                          // event handler function name.
              onLoad:null                 // OnLoad property value --
                                          // event handler function name.
          },
          null);                          // Context value -- event handler function name.
  }
       
       
        // Retrieve the div element you created in the previous step.
        var parentElement =
            document.getElementById("mySilverlightControlHost");
       
        // This function creates the Silverlight control.
        createMySilverlightControl();
       
 </script>

 

Now the only thing is left to launch the html page and enjoy the video.

Free Expression Design and Expression Blend training from Lynda.com

Lynda.com is offering their Expression Blend and Expression Design trainings for free for everyone. Both trainings are 6 hours long.

Expression Blend

http://movielibrary.lynda.com/html/modPage.asp?ID=384 - Getting started with Expression Blend.

In Getting Started with Expression Blend , Lee Brimelow covers all the basics that every designer and developer of WPF and Silverlight content needs to know. He starts with an overview of how Expression Blend fits into WPF and Silverlight workflows, then guides viewers through the process of creating and manipulating objects, building timeline-based animations, and exporting compositions into XMAL for use in Visual Studio.


http://movielibrary.lynda.com/html/modPage.asp?ID=359  - Expression Blend Beta Preview.

Expression Blend is a new interactive authoring tool from Microsoft that is available for free as a public beta. Instructor Lee Brimelow explores all of the application's features and capabilities, from the user interface panels to creating and importing assets. He also covers integrating 3D content, using WPF text controls, layout controls, and user input controls, and creating animated effects. Expression Blend Beta Preview gives a comprehensive insider look at the new version of Expression Blend before it hits the shelves.

 

Expression Design

 http://movielibrary.lynda.com/html/modPage.asp?ID=339 - Getting Started with Expression Design.

From basic vector-based drawings to professional three-dimensional graphics built with Live Effects, Ted LoCascio covers the full range of possibilities in Getting Started with Expression Design. He starts by explaining Expression Design's interface and how to work with documents, then moves on to cover working with objects and applying fills, strokes, and effects for best results. Exercise files accompany this training.

Quick sample for starting with Silverlight

This is my first try of using Silverlight and it is based on the Silverlight v1.0 Beta and the first of the Silverlight Quickstarts: lesson 01. My aim is to reuse this project and use it as a scratch project for my next articles.

You will need to install the Silverlight v1.0 Beta plugin on your computer.

There are going to be only 3 files in the same folder:

  • An html files that will run in the browser called index.htm.
  • A javascript  file which handles all the plumbing, Silverlight.js
  • A xaml file called myxaml.xaml  containing the content will be displayed inside the silverlight.

 

My Xaml called myxaml.xaml file displaying the content looks like this:

<Canvas Width="800" Height="800" xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   <Canvas x:Name="VideoLayer">
  <MediaElement x:Name="VideoElement" Canvas.Top="0" Canvas.Left="0" Stretch="Uniform" AutoPlay="True" Source="butterfly.wmv" />
  </Canvas>
 </Canvas>

You can play around with the xaml file and changing the different attributes of the ellipse, reload the html file to see the changes.

My HTML file (index.htm) looks like this:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title>SilverLight - First Try</title>
    <script type="text/javascript" src="Silverlight.js"></script>
  </head>
  <body>
   <!-- Where the Silverlight control will go-->
 <div id="mySilverlightControlHost">
 </div>
 <script type="text/javascript">
  function createMySilverlightControl()
  { 
      Sys.Silverlight.createObject(
          "myxaml.xaml",                  // Source property value.
          parentElement,                  // DOM reference to hosting DIV tag.
          "mySilverlightControl",         // Unique control ID value.
          {                               // Control properties.
              width:'300',                // Width of rectangular region of
                                          // control in pixels.
              height:'300',               // Height of rectangular region of
                                          // control in pixels.
              inplaceInstallPrompt:false, // Determines whether to display
                                          // in-place install prompt if
                                          // invalid version detected.
              background:'#D6D6D6',       // Background color of control.
              isWindowless:'false',       // Determines whether to display control
                                          // in Windowless mode.
              framerate:'24',             // MaxFrameRate property value.
              version:'0.9'               // Control version to use.
          },
          {
              onError:null,               // OnError property value --
                                          // event handler function name.
              onLoad:null                 // OnLoad property value --
                                          // event handler function name.
          },
          null);                          // Context value -- event handler function name.
  }
       
       
        // Retrieve the div element you created in the previous step.
        var parentElement =
            document.getElementById("mySilverlightControlHost");
       
        // This function creates the Silverlight control.
        createMySilverlightControl();
       
 </script>
  </body>
</html>

Once you have these files in the same folder, then launch the index.htm and if everything works ok then you should see a nice big blue circle on the page displayed.

bad day for apple stuff

I had my iPod Nano crashing as well! It just silently restarted, while I was going to the next song. I am starting to think the problem must be with me. I guess I developed Reliability Distortion Field syndrome and Apple products are more sensitive for this then their Windows counterparts, hence the crashes.

The black screen of death

I guess I just lost another great illusion last evening. OS X - the world's most advanced operating system - just crashed on me. I was working using my beloved iMac and playing with Quartz Composer and suddenly the screen went black and the machine restarted as if the power disappeared and appeared. When OS X rebooted there were no dialogs telling me that it crashed and the reason of the crash and if I want to let know Apple about this accident. Strange. I can see this as a feature actually, let's just not stress the user further with dialogs that he will not understand or do not care to understand either. He is stressed enough already, let's just try to get back to work as soon as possible.

Disclaimer, I do not expect any software written by humans to be completely free from errors. Ever! I just heard so much about the greatest OS that I started to question even this basic axiom. :) 

How to build/link multiple DLLs and an EXE C# projects into one EXE assembly

This is something what I wanted to figure out for quite some time now, but my friend dszabo at microsoft just did solve the problem for me :)

How to build/link multiple DLLs and an EXE C# projects into one EXE assembly.

CAPICOM error with ClickOnce

Technorati tags: .NET, CAPICOM, ClickOnce

I have a project using ClickOnce for deployment and from time to time, when I want to publish a new version of my application I receive the following error:

SignTool Error: Signtool requires CAPICOM version 2.1.0.1 or higher. Please copy the latest version of CAPICOM.dll into the directory that contains SignTool.exe. If CAPICOM.dll exists, you may not have proper permissions to install CAPICOM.

This problem is happening, because the CAPICOM.dll is not registered correctly and the solution for this is the following:

Copy CAPICOM.dll from Program Files\Common\Microsoft Shared\CAPICOM to the SignTool.exe directory.

I successfully resolved this issue by copying the .dll to this location, but this time no matter what I did I received this error, when I tried to publish. I was pulling my hair, so I decided to check out the deployment option, then after not finding annything there I went to the Signing. I noticed there that I was using a test certificate, what was expired already. Creating a new test certificate solved my problem.

Test Post is here...

Just playing... just testing!

Ethereal Packet sniffing tutorials...

While browsing the net I found a nice set of tutorials called Packet School 101 on Chris Sander's blog. A developer type like me, who needs to take a look at packet sniffs from time to time this is a very usefull set of articles.