My experiments...
Silverlight 3 comes with built-in validation for many of the input controls. Setting them up is fairly easy and they are styled well enough that you could use them right out of the box.
If you would like to know how to set it up and also would like to customize the look and feel of the fields and validation message, this short tutorial will explain how to do just that.
See it here...
Enjoy!
Simple experiment using Silverlight 3 to convert wavelengths in the visible spectrum to RGB colors.
I had worked with lasers of different wavelengths while working for Beckman Coulter several years ago and wrote a simple application to showcase the conversion in a Windows Form. Here I have taken the code and converted it to a Silverlight app.
See it here...
Enjoy!
Simple experiment that attempts to recreate the hands of a very elegant and unique clock.
A single arm, segmented into three parts, representing the hour, minute and seconds arms, spin on eachother, while independently marking the current time.
See it here...
Enjoy!
Simple experiment that attempts to recreate the hands of a rare Vacheron Constantin Mercator Watch.
The hands of the clock represent what is called a chart compass and is used to quickly determine distance on a seafarer's chart.
See it here...
Enjoy!
A very simple Moonlander type of game implemented in Silverlight 2.0. I wanted to do some more complex animation and experiment with colission detection, which proved more difficult and somewhat more
cumbersome that I expected.
Incredibly, there seems to be no such thing as built-in object collision and thus one has to write its own and ended up using an approach first used by Andy BeauLieu and although not efficient with checking many and multiple objects simultaenously, it seems to be the only way of
checking to see if two objects on the screen collide at all.
Again, not a full-fledged game, buth rather a bit more complex experiment...
See it here...
Enjoy!
Another attempt at yet another approach of representing time in an unusual manner. I saw this clock implemented in Flash and wondered what it would take to do this in Silverlight.
Here is my attempt... Again, as with many of these experiments, I thought I could make something work in a matter of a couple of hours and, especially this one, took me a bit more than that. I managed to consolidate a lot of the repetitive looping into one single method that moves all gears...
See it here...
Enjoy!
Simulating falling snow has been attempted in many ways, but I needed to try myself. I have seen only a couple of examples but my approach is a very simple concept: It is a very simple concept: generate programmatically 200 Image objects, populate them and then have one Storyboard, that fires every milliseconds, go through each one of the flakes, and move them a few pixels further down. This needed to be something simple, quick and still look somewhat realistic.
See it here...
Enjoy!
I have done some code samples in Silverlight 2.0, but nothing worth sharing. So over the weekend, I saw an pretty impressive clock written in Flash and had to try to emulate some of its functionality in Silverlight 2.0.
The clock can be seen here and I just love the creativity, attention to detail and the smooth motion of the digits. For my experiment, I am only trying to (somewhat) reproduce the gyration of the numbers cluster, based on their location and rotation.
See it here...
Enjoy!
Let's say you have a SharePoint document library that users upload documents to; unless you subscribe to the library and want to be notified, not much really happens when the document lands in the library.
So, what if you could have SharePoint take action immediately and initiate, let's say a Workflow, or simply store the values somewhere else, or email a user with the details...or anything else that you want?
And not just with the fact that a document was uploaded (that is already built-in), but, even better, with data from the actual document that was just uploaded...
In this article I explain how to write a SharePoint Feature that does just that...
See it here...
Enjoy!
I was working on a SharePoint Feature that I am experimenting with and came across a time consuming issue that I needed to be solved elegantly and out of the way.
The issues is that when developing a SharePoint features (or any other component), you end up writing, compiling and testing your code many times over. The code you are writing is a separate component that, essentially, has to be taken from Visual Studio, registered in the GAC, plugged into SharePoint and then manually activated.
In other words, it requires several manual steps outside of the development environment that could consume a lot of time. Here is a tip to get that all out of the way...
See it here...
Enjoy!
Here is another example of my forgetfulness... I saw a small, addictive Flash game somewhere and I can't find it anymore. It involved an object
that you could drag and then several other objects moving around the screen.
The goal is to avoid touching any objects or the walls.
Here is my attempt at recreating this small game in Silverlight 1.0 (click on the image). As usual, nothing refined, just a functional model.
You may wonder why I am not diving into Silverlight 2.0...? Well, that version is still in beta and although I have experimented with it,
I don't want to post any example yet, as most folks still have the 1.0 version installed and may not want to install a beta version of the player.
See it here...
Enjoy!
With so many technologies emerging, it is hard to pick just one and spend some time on to learn. So many toys and yet so little time. Well, Silverlight is one
of such toys I do not want to pass me by. I can see its tremendous potential and I am already familiar with many of its key components.
Rich Internet Applications is what customers are already demanding and AJAX can only do so much....
Well, here is a modest first attempt at some Silverlight 1.0 with Javascript. A video slidepuzzle (click on the image)...
See it here...
Enjoy!
One of the most important features I look for in an enterprise application is the ability for a developer to
take the products and customize it to fit and fill the business need. In simple words, it needs to be extensible and it needs to be able to integrate
with other existing applications.
SharePoint 2007 has greatly enhanced its capabilies in these two fields with something called SharePoint Features. In essence, "SharePoint Features"
is a plug-in framework, that allows a developer to extend SharePoint in any way that it can imagine.
In this tutorial we will be walking through the entire process from the very beginning in easily explained terms.
See it here...
Enjoy!
There have been several technologies that have come and I have been a bit late in jumping on the bandwagon.
Ajax is one of them. It has been amazing to see the possibilities of this approach (and how it has squashed
any other functionality-competing non-html based approaches....Flash and Java Applets comes to mind.).
I had been experimenting with Ajax a bit and came across a problem when using the updatePanel, updateProgress and MasterPages together.
See it here...
Enjoy!
This experiment shows how take an URL of a regular image and then return a manipulated
image with the looks of a polaroid picture.
In other words, loading the image provided
in the textbox in memory, convert the text provided in the textbox into a graphic, add
a background picture and then putting it all together. Finally, rotate the finished image
and return to the browser. All this on the server and on the fly...
See it here...
Enjoy!
There are many popular types of feeds: RSS 0.91, RSS 0.92, RSS 1.0, RSS 2.0, Atom 0.3 and recently Atom 1.0.
The original feed of the blog of this site is an Atom feed, but I still want to make the feed available
to the public in the other formats.
Since the Atom feed is just plain XML, we can use XSL to transform
the XML into the other popular RSS formats. We can just simply write a ASPX page that loads the XML,
applies the XSL and server the XML back to the client in the RSS format requested.
See it here...
Enjoy!
I wanted to experiment a bit more with web services and also apply the Charting feature
of the Xceed Charts for .NET. So I used a public web service that provides stock quotes to feed and
populate a chart from the Xceed Charting component. Please be patient, it may take a moment to load...
See it here...
Enjoy!
I wanted to experiment a bit more with web services and also apply the Charting feature
of the Xceed Charts for .NET. So I used a public web service that provides data of population from any of
227 countries to feed and populate a chart from the Xceed Charting component.
Please be patient, it may take a moment to load...
See it here...
Enjoy!
I have been planning on creating a little experiment with a .NET webservice, but never had the
time to get around and do it. I wrote this simple .NET webservice showing a round trip request - response.
It will simply convert the entered text into official Morse code...
See it here...
Enjoy!
In previous applications, I have always had to us 3rd party components, such as ASPUpload, to handle a particular
upload feature.
In this ASP.NET experiment I show how to upload any type of file with ASP.NET without using
any third-party or server-side components...
See it here...
Enjoy!
I wanted to send a greeting card and could find many sites that would let me select from
pre-made greetingcards. Of some, I liked the background, other the music, but no way for me to
customize the card itself. Maybe I want to send the card for a special occasion with a specific meaning...
So, I wrote this application called GreetingCardBuilder.com.
It allows anyone to create a fully customizable greeting card.
Update: the site has gone offline long ago, but the app is still up and available for anyone to use.
See it here...
Enjoy!
In this C# experiment I show how to calculate the RGB color for a specific
wavelength and apply the color to an object. Visible wavelength ranges from aproximately 350nm to 720nm.
I needed a quick application that would calculate between these units...
See it here...
Enjoy!
With all the buzz about a the new Flash 7 Player having cross domain restrictions for
the built-in webservices component, it is a good thing that webservice accessibility in
Flash is still available through Flash Remoting. This example show 4 simple webservices in
action with Flash Remoting.
This has got to be one feature I love. With Flash MX 2003 and the new Flash
7 Player, you can now you can convert your movies to Flash Video (.FLV) using
either Flash MX or Sorenson Squeeze and then simply stream (no preloading) it
from your webserver. The code applied is ridiculously simple.
See it here...
Enjoy!
Using GDI+ in C# to trace a line defined by points and redrawn every millisecond with random values.
Ofcourse, instead of the random values one could use values provided by a source and display a correct trace.
See it here...
Enjoy!
This experiment simply tries to use the streaming video capabilities
of Flash with a C# desktop software app shell or, in other words, a good
ol' executable. It also uses Flash Communication Server to stream video
into this desktop application.
See it here...
Enjoy!
Well, this experiment is posted to show the striking similarities between
Actionscript and C#. In this case, it is a more creative example of the animation functions.
A large surface, is divided in four sections. Clicking on any of the colored section moves
that section into the center, applying the selected animation mode.
See it here...
Enjoy!
In this experiment I will attempt to demonstrate the ways of importing XML into Flash with
Flash MX (using actionscript parsing) and with Flash MX2004 (using the new XMLConnector component).
See it here...
Enjoy!
This experiment illustrates the capabilities of Flash remoting with
ColdFusion MX and compares the difference with loading data through an
XML file. The content in the textfield comes from the same source (SQL2000
database) as the content in the weblog. Instead of using ASP to query
a Stored procedure in the database and then feed the data into Flash as
XML, that then needs to be parsed to be understood, I use Macromedia Remoting
in this case. This Flash app queries a Coldfusion page that gets the data
and then returns the data, without the need of any parsing or translation.
Of course, it needs to be cleaned up, but the data is there.......It's
quick and not too complicated.
The posibility that I never have to write an XML parser again simply is
such a relief!
See it here...
Enjoy!
Well, this experiment is posted to show the striking similarities between
Actionscript and C#. In this case, I have created a class that when instantiated
it animates whatever object has been passed as a parameter. In the example, there is
that one class and then every control (checkbox, radiobutton,
combobox, tabcontrol, etc) on te screen, no matter what type, has the
same eventhandler when clicked: call the tween method, passing itself,
then generate some random numbers for X and Y position.
I am again amazed by the striking similarities of C# and Actionscript
and encourage all as developers to take a look at this language. The initial
learning curve is quite flat.
See it here...
Enjoy!
I have this site hosted with a reputable hosting company and have
also my email boxes. The company allowd me to retrieve my email from any
email client, such as Outlook Express or through a browser, with web based
email. I must say that I hate checking my mail through their web based
application. It is all HTML and Javascript and it is slow and hangs often.
So I thought, why not create a web based email client that acts like desktop
software? So, here I started creating a web application that would look
as real to the original 'desktop' application as possible.
It is in progress and not near finished. The
data comes from an XML file, but I am not sure how I am going to display
any other content other that regular text. (i.e. HTML). The HTML support
is extremely limited in Flash textfields and unless I write some sort
of interpreter of HTML to translate it into actionscript textFormat properties,
I do not know how to do this yet.
See it here...
Enjoy!
Simple streaming video experiment from Flash Communication Server. Video is streamed from server to client.
Quality is very poor, but that is intended. As usual it is just feasiblity that is intended...I need to keep my data transfer
down. Actionscript code is included.
See it here...
Enjoy!
The attempt here is to prove the versatility of Flash. With just very
simple (too simple) XML and a few pre-made movie clips you can create,
not just dynamic text, but dynamic everything. Here I provide three XML
files that just contain a few parameters. When you click on the links,
it calls this same page, passing a 1, a 2 or a 3. Depending on that number,
the parser then loads XML1, 2 or 3. In this XML are the parameters that
specify what individual movieclips to load. And there you have it. A dynamic
banner. Imagine creating a banner with many more parameters, with instructions
on how to animate the text (from here to there), etc.
See it here...
Enjoy!
This Flash application allows you to build customized pages. It does
not require you to learn any new skills or install any software. Anyone
can use this online application. You can create a page anyway you want
and then send this page "as is" to anyone with an email address.
The addressee will receive and email with your comments and an URL, that
when clicked on, will display the page as you built it.
This application started as a way of customizing a page by placing objects
with its own properties anywhere on the screen, then store the data and
somehow being able to retrieve that data, interpret it and put the items
where and how they were. This would prove to be very useful for creating
web based "desktop-style" applications.
See it here...
Enjoy!
This application is a spin-off of the above and resulted
when I needed to make some business cards for myself. I could not find
a site where I could easily design online my own business card. I was
limited to a certain design, had to send in separately a logo, if I had
one, and was not able to see how it looked. For this purpose, the following
application would be a perfect fit. I still need to add some more graphic
elements to choose from, but all in all, it has a good concept.
See it here...
Enjoy!
I saw something like this in some application and wondered how it
was done. I tried myself and here it is. Try moving the square in the center of the grid.
Nothing spectacular to see here other than the realtime changes to a shape controlled via several slider controls.
See it here...
Enjoy!
Most of the components in this experiment are original
Macromedia Flash Communication Server components. Here is what I did different:
The whiteboard component, in conjunction with Flash Communication Server,
allows multiple users to see what any of these users are drawing on their
whiteboard. I.e.: Michael can see what Nicole is drawing in real-time.
Now, the reason I believe this component is somewhat useless, is because
all that is allowed is to draw arrows(and some cumbersome writing). If
this tool wants to be a true competitor of Micorsoft's NetMeeting or Webex
it will need a little more juice than that. The reason people share a
whiteboard is because of the need to share and show something like a diagram,
an image, a presentation, a flowchart or other such visual item. Then,
you can use the drawing tools to point out and remark items on the whiteboard.
In this experiment, I allow any user to upload an .jpg image and set that
as the background in the whiteboard component. As soon as the image is
uploaded, all users will see that image as their whiteboard background.
See it here...
Enjoy!
Finally, the browser back-button problem in Flash solved with Actionscript,
Javascript and ASP. In Flash you can simulate pages by assigning frames
to the different pages. So when, you click on a button, this button will
instruct the Flash playhead to go to a different frame and redraw trhe
screen with different content. But....
To the browser, this is still one page that contains a Flash movie. The
browser does not know about the frames in Flash. If the user wants to
go back in the Flash movie, insitinctively they may click on the browser
back button, which will take them to the web page they were before and
not the previous Flash page.
I have seen similar solution somewhere on the net, but here is mine: a
page variable gets set on every page. A setInterval constantly checks
for a change in this variable. Every time you switch pages, a hidden .asp
page gets loaded into a hidden browser frame. This page carries the value
of the page variable that gets then sent back to Flash through Javascript.
Nothing new sofar. Now, the browser keeps a history of every page loaded
in the hidden frame. If you click on the browser back button, it will
load the same asp page, but with the previous variable. The asp page then
calls a javascript function that sets the variable into Flash. Voila,
Flash recognizes the change and forces the playhead to move to the framenumber
just passed.
See it here...
Enjoy!
This application allows the user
to send a note with a pre-defined background to another user. The user
will receive an email, that when clicked on, will display the greeting
with the background and the note. It is fully functional, so try it out.
It a simplified PageMaker experiment where the XML gets stored in a local
text file.
See it here...
Enjoy!
This XML driven navbar parses one XML file (below) and then starts
building the main items and the corresponding sub items. It is intelligent
enough to re-arrange the positions and spacing of all items dynamically
cretaed, according to the amount of items or subitems. I have included
3 sample XML files below. Compare them and see that any XML fed to this
app will work, as long as it is correctly structured. Also the attributes
in the main items specify whether the item is clickable and what to do,
i.e.: getURL or gotoAnStop at a particular frame. This navabr is great
for variable menu items, like when different users receive different options
according to their rights or something. The XML can then be fed by a XML
database stream tied together with their login authentication process.
Also, regarding the animation, there is only one frame
in this application. All animation is scripted in Actionscript.
See it here...
Enjoy!