Archive for March, 2009
Client just went live
by Joseph on Mar.19, 2009, under Consulting
Hey guys, just had a client go live. Interested in buying a diamond or engagement ring for your lady? Check out http://www.edwardjamesandco.com. Edward not only sells a large arrangement of engagement rings, but he has a huge selection of loose diamonds.
On a personal note, I’ve been working with Edward for the past 6 or so months, and he’s a really great guy. The next time I buy my wife something of this caliber I’m definitely going to be going to him.
Even if you’re not in the market right now, go check out the site anyway. He has a wealth of knowledge about diamonds and rings: what to look for in a diamond or setting, and other information about how the entire certification process works. He’ll be updating his site regularly to keep people informed of his industry, so if you’re into diamonds you might want to consider registering on his site just for informational reasons.
Anyway, that’s my two cents, take care guys!
Look what my kid did at Target yesterday
by Joseph on Mar.15, 2009, under Family
Apparently Chuchi was having a field day at Target the other day, check out these pictures…
That’s where you see the shots of him with his mouth wide open. What you can’t see is his hand gestures. Yes, he’s actually doing poses. Kind of freaks me out a little bit. At first he was just playing around with my wife with the hat and the glasses, but then he saw me taking picture and he actually started posing.
The SRP Swiss Army Knife
by Joseph on Mar.07, 2009, under Programming
I read this blog a few weeks back, and while the principles that the author was trying to convey I don’t disagree with, I did have a hard time stomaching the idea that Swiss army knives made for bad OOP design. Why? Because I really like Swiss army knives! I mean come on, what other device lets you have 100+ different kinds of knives, a compass, a light, a magnifying glass, and a USB drive all in one “disappears in your pocket” size container???
Ok so I know what most of you are thinking… I’m just PROVING that they violate SRP right? Not actually. In case you’re not familiar with the principle of SRP, check out this wiki. The reason why I believe the Swiss army knife does NOT violate SRP is because my general rule of them is, if I can state the responsibility of the object in question in one single statement, then I have identified it’s SINGLE responsibility. So I have to ask myself, what is the SINGLE thing that a Swiss army knife does?
Responsibility statement: A Swiss army knife is responsible for allowing it’s user to be able to use any tool that has been installed into it.
Short, simple, and to the point. Now, that sounds all fine and dandy, but if I don’t implement the code the way I’ve dictated in my statement, then I will violate SRP, so how is it that I build a Swiss army knife while preserving my responsibility statement? Enter code.
1: public interface SwissArmyKnife
2: {
3: ITool PullOutTool(ITool tool);
4: void PutAwayTool(ITool tool);
5:
6: IList Tools { get; }
7:
8: ITool ToolBeingUsed { get; set; }
9: }
My interface defines any type of Swiss army knife I ever wish to make. It’s only responsibility is to be able to use a tool that it has. So then how do you use the Tool? Well here’s how an ITool might look like:
1: public interface ITool
2: {
3: void Use();
4: }
Now you can get any tool from the Swiss army knife and then use it. Notice that it’s NOT the responsibility of the Swiss army knife to know HOW to USE the tool, only to get it out or put it away.
So what would violate SRP then? Why did the author choose this particular product to harp on? I think it was a matter of perspective really. The article I read had numerous pictures of knives all decked out such as this one. Here is where I believe the real trickery is. The author shows the pictures of all the swiss army knives with all the tools exposed. If you really tried to use the knife like this, you would probably really screw up your hand! That’s my point. The knife is not of any use to anyone unless you’re using ONE tool at a time. This is why SRP is not being violated.
You might take this a step further and say that you have a Swiss army Factory that would actually build the Swiss army knives, but that would be a discussion for another day.
Anyway, I hope everyone has found this interesting, till next time!
Hurricanes among us
by Joseph on Mar.07, 2009, under Technology
In case you weren’t aware of this already, I’m located at the tip end of Florida in a city called Homestead. So needless to say I’m very concerned about Hurricane forecasts! I usually use the National Hurricane Center’s information when tracking hurricanes, but I recently came across this other tool that does a really good job of visually presenting you the data. The tool is called Storm Pulse and it gives a Flash representation of the Atlantic Basin. You can look at historical tracks, weather models, wind models, etc.
Really cool Stuff. Check it out if you get some time.
Light up the world in Silverlight!
by Joseph on Mar.07, 2009, under Programming
I just finished watching a variety of videos from Mike Taulty about learning Silverlight. These are exceptionally good videos and I would suggest anyone that is trying to learn Silverlight OR Windows Presentation Foundation (WPF) to take a look at them.
Here are links to all the videos.
- Silverlight – Hello World
- Silverlight – Anatomy of an Application
- Silverlight – The VS Environment
- Silverlight – Content Controls
- Silverlight – Built-In Controls
- Silverlight – Width, Height, Margins, Padding, Alignment
- Silverlight – Using a GridSplitter
- Silverlight – Grid Layout
- Silverlight – StackPanel Layout
- Silverlight – Canvas Layout
- Silverlight – Databinding UI to .NET Classes
- Silverlight – Simple Styles
- Silverlight – Custom Types in XAML
- Silverlight – Binding with Conversion
- Silverlight – List Based Data Binding
- Silverlight – Simple User Control
- Silverlight – Templating a Button
- Silverlight – Resources from XAP/DLL/Site Of Origin
- Silverlight – Animations & Storyboards
- Silverlight – Uploads with WebClient
- Silverlight – Downloads with WebClient
- Silverlight – Calling HTTPS Web Services
- Silverlight – Calling Web Services
- Silverlight – Making Cross Domain Requests
- Silverlight – Using HttpWebRequest
- Silverlight – File Dialogs and User Files
- Silverlight – Using Sockets
- Silverlight – Using Isolated Storage
- Silverlight – .NET Code Modifying HTML
- Silverlight – Using Isolated Storage Quotas
- Silverlight – Calling JavaScript from .NET
- Silverlight – Evaluating JavaScript from .NET Code
- Silverlight – Handling HTML Events in .NET Code
- Silverlight – Handling .NET Events in JavaScript
- Silverlight – Calling .NET from JavaScript
- Silverlight – Displaying a Custom Splash Screen
- Silverlight – Passing Parameters from your Web Page
- Silverlight – Loading Media at Runtime
- Silverlight – Dynamically Loading Assemblies/Code
- Silverlight – Reading/Writing XML
- Silverlight – Multiple Threads with BackgroundWorker
- Silverlight – Insert/Update/Delete with the DataGrid
- Silverlight – Getting Started with the DataGrid
- Silverlight – Embedding Custom Fonts


