WTF Next?

Dev ramblings from a master of nothing.

  Home  |   Contact  |   Syndication    |   Login
  95 Posts | 0 Stories | 46 Comments | 0 Trackbacks

News



I'm an MCP, having successfully passed the 070-536

GeeksWithBlogs.net: WTFNext's hosting!

Community Credit: Win stupid prizes by contributing to the community!

View Stacy Vicknair's profile on LinkedIn

My Amazon.com Wish List

Twitter












Tag Cloud


Archives

Post Categories

.NET User Groups

Community Links

Wednesday, July 01, 2009 #

Antonio Chagoury, VB MVP, has constructed a list of Twitter accounts for VB MVPs, VB Team members, and others who are influential in the VB.NET community on his personal blog, CTO v2.0. This list has many great people who are not only talented in VB, but also who have great talents in many aspects of the .NET framework.

I’m listed as a VB MVP, but if you don’t want the full list you can still check me out at http://twitter.com/svickn. However, I’d recommend checking out the rest of these guys too, you might find someone you would never have thought to follow that you mesh with. Besides, it’s never a bad thing when .NET help is just a tweet away ;)

http://www.cto20.com/home/entryid/112/tweeps-list-microsoft-visual-basic-mvp-rsquo-s.aspx

 

Technorati Tags: ,,

Thursday, June 04, 2009 #

cc by-sa Tanzen80 on FlickrSo E3 has come upon us and is about to make its way out again. Anything that peaked your interests? I have to say by far I was happiest with what I can get for my XBox360 over anything coming out for the Wii (I’ve got no PS3).

The games that I’m really looking forward that were shown off this year at E3 are Crackdown 2, Assassin’s Creed 2 and Forza Motorsports 3. I’ve spent many hours playing all three of those titles, and I’m happily awaiting their releases. AC2 and FM3 are both slated later this year, and I haven’t really seen anything about when Crackdown 2 is coming out. Either way, I’m happy to have a couple titles coming my way that’ll undoubtedly rock.

Now, there were a couple new controller / controller addons announced. Although new peripherals are cool, I guess I’m more into the games. I don’t need a sensor reading my thumb and telling me how soon I’ll have a heart attack nor am I really interested in talking to creepy child-like virtual buddies.

So what are you guys looking forward to? If I had to pick a favorite, it would be Assassin’s Creed 2.

 

Technorati Tags: ,,

Wednesday, June 03, 2009 #

On August 1st the Baton Rouge Area SQL Server and .Net user groups are hosting an all day free SQL Server and .Net training event! Attendees will have chances to win great prizes! What more could a SQL Server and .Net Professional ask for? If this sounds good to you then don’t miss your opportunity to attend SQL Saturday! #17, the largest FREE training event dedicated exclusively to SQL Server, .Net, Development and Business Intelligence to hit Baton Rouge.  Registration is required.

For more information and to register visit:

http://sqlsaturday.com/eventhome.aspx?eventid=21

REGISTRATION IS REQUIRED!!!

What:

An all day FREE training event with SQL Server and .Net sessions spread out over three tracks of Business Intelligence, Database Administration, SQL Development, and .Net.

When:

Saturday, August 1, 2009.  Attendee check-in will begin at 8:00am until 8:45am with opening comments from 8:45am to 9:00am and the first sessions beginning at 9:15am. A full list of session tracks and schedule is available.

Where:

Louisiana State University, College of Engineering

3304 Patrick F. Taylor Hall

Baton Rouge, La. 70803

We've posted a Google map on the Location page, but just in case here is the location and text directions!

Link to directions: http://www.eng.lsu.edu/misc/directions.html

 

Technorati Tags: ,

Friday, May 22, 2009 #

Baton Rouge’s first Speaker Idol is going to take place on Wednesday, June 24th!

  • 5 speakers
  • 15 minutes
  • Grueling judges
  • Great prizes!

View the flyer or check out the Google group for more information and how to be a part of the action! If you’re interested, you can shoot me a message and I’ll get you in touch with the right people ;)

 

Technorati Tags: ,

Wednesday, May 06, 2009 #

Creating a plugin architecture in .NET can be achieved in a few steps using the .NET framework. All it takes is a little time, a common interface and reflection. In this blog we’re going to look at how to make a simple plugin that performs basic integer calculations.

The code in this blog is mostly illustrative, and the full code is available on CodePlex at the following link:

http://wtfnext.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27051

Setting up a common interface

Our main console application has to know just basic things about our plugin. It doesn’t need to know any more about it than that it complies to an expected interface. For this example, our plugins must:

  • Expose a class named Plugin
  • The class must implement our common interface: IPlugin.
  • The plugin must end in “Plugin.dll” and be present in the application directory.

If we get all of these done, we can connect to the plugin successfully. The first step is to define the IPlugin interface, which acts as the basic contract between any plugin and the console application. We’ll place this in its own project to compile into a separate DLL, so that we can easily reference it from our plugin projects.

Public Interface IPlugin
    ReadOnly Property Name() As String
    ReadOnly Property ActionName() As String
    Sub Calculate(ByVal value1 As Integer, ByVal value2 As Integer)
End Interface

Consuming the interface according to our rules

So our calculation plugins will expose the name, what their action is and a calculate function that operates on two values. We can create an example plugin that performs addition:

Public Class Plugin
    Implements IPlugin

    ReadOnly Public Property Name() As String Implements IPlugin.Name
        Get
            Return "Addition"
        End Get
    End Property

    ReadOnly Public Property ActionName() As String Implements IPlugin.ActionName
        Get
            Return "Add Values"
        End Get
    End Property

    Public Sub Calculate (ByVal value1 As Integer, ByVal value2 As Integer) Implements IPlugin.Calculate
        Dim result As Integer = value1 + value2
        MessageBox.Show ("The result is " + result.ToString)
    End Sub
End Class

See how we named the class that implements the plugin as just Plugin? This is because this is what the consol application expects. We can have other classes and whatnot in our plugin that do the meat of our work, but the application that consumes the plugin only cares that the possible plugin follow our rules stated earlier.

Checking and consuming the plugin

In our console application, all we’ve got to do is grab our possible plugins, then check their validity. Once we’re sure it is valid, we can consume it via the interface.

Dim asm As Assembly = Assembly.LoadFrom(possiblePlugin)
Dim myType As System.Type = asm.GetType(asm.GetName.Name + ".Plugin")
Dim implementsIPlugin As Boolean = GetType(IPlugin).IsAssignableFrom(myType)
If implementsIPlugin Then
    Console.WriteLine(asm.GetName.Name + " is a valid plugin!")

    Dim plugin As IPlugin = CType(Activator.CreateInstance(myType), IPlugin)
    Console.WriteLine("{0}: {1}", plugin.Name, plugin.ActionName)
    plugin.Calculate(5, 4)
End If

Wrapping things up

Well, this was a quick and dirty look at implementing your own plugin architecture into your application. Please leave feedback or questions. I’d be happy to hear both!

 

Technorati Tags: ,,

Monday, May 04, 2009 #

When we use string so often for its value-like behavior, it is easy to forget that the String class comes with its own constructors, and that there are some tasks you can achieve with the string constructor that you might have overlooked otherwise.

Repeating characters

One of the more useful overrides of the String constructor is the ability to easily repeat any character a number of times. Here’s a brief example:

Dim horizontalRule As New String("-"c, 100)
Console.WriteLine(horizontalRule)

Subsections of Char arrays

If you’ve got a Char array you can grab a subsection by specifying a start point and a length:

Dim catchyPhrase As Char() = CType("Catch for us the foxes.", Char())
Dim phrasePart As New String(catchyPhrase, 0, 12)

Console.WriteLine(phrasePart)

Other pointer based operations

There are a few more useful constructors if you are developing in C# or C++ that make use of arrays, but because Visual Basic doesn’t allow for the use of unsafe types I won’t go over them. You can check out the remaining constructors on the MSDN at the link below.

There are many useful features in .NET that can be easily overlooked, but in the long run you might find something that would have otherwise saved you time.

http://msdn.microsoft.com/en-us/library/system.string.string.aspx

 

Technorati Tags: ,,

Wednesday, April 22, 2009 #

After reading Michael Neel’s article on Devlicio.us about Balsamiq Mockups, I thought that the article must be insincere. Go ahead and check the article, itself even titled “You should be using Mockups”. Back yet? Well I’ll continue anyways…

As I was saying, the article was too good to be true, and this Adobe Air application seemed to be too much of a dream. Well, needless to say, I decided to check the tool out, and I also flaunted my blog and MVP status to get a chance to test out Mockups for myself. The condensed version of this article? Now I understand why I have to have this product.

Design with appropriate tools

As Michael noted, making a prototype with the tools you use for design is inefficient. Sure you think you’re saving time by handling some of the work up front, but what if there are drastic changes, and you’ve got to rethink how you’re feeding mock data to the app you built just for prototyping? You’re basically shooting in the dark with a airsoft gun.

Michael’s experience is actually a bit different from mine. When I started producing my own functional specs, I took the advice of a good friend and used inkscape to make the designs. The time it takes to create a design in inkscape is probably quicker than it would take to make a design in Visual Studio, but I don’t have the controls like I would in VS. I could make my own set of controls in inkscape and use them each time I prototype, but that’s an amount of work that I shouldn’t have to do if I used a tool meant specifically for mocking. My method is like shooting in a dimly lit room with blanks.

Enter Mockups. Mockups has the convenience of Visual Studio’s drag and drop controls without the hassle of mocking data (we’ll get to that soon). Mockups also has the convenience of using a tool like illustrator or inkscape by allowing for easy export of the mockups. It’s the best of both worlds, it’s a tool meant for the job. To continue with my horrible analogies, Mockups is like rigging a room with the nail bombs from Saw V. Quick and effective; meant to get the job done.

Quick and reusable

So to test out Mockups, I decided to throw together a design that I’m familiar with: the WTFNext.com design (a basic SubText template). The results are below. This mock took me about 10 minutes, which for me is probably good. This includes learning curve and my minutes of tweaking to create the perfect design. To me, this is quick.

image

The other good news is that I can reuse that work I did in 10 minutes. I can group the elements that make up my page and then copy them to a new mockup and build a different page. I could even construct a template for complex controls and use that!

Informal and approachable

The informal look of the wireframe designs are a blessing that you might not recognize. The design effectively conveys that the prototype is just… a prototype! It is meant for criticism, and the pseudo-drawn comic sans feel allows those involved in decisions to realize that the design isn’t set in stone. In fact, it’s still wide open. It’s begging to be changed, and thanks to using a tool meant for mocking applications, it’s easily done.

image

Tiny criticisms

I do mean tiny. There are very few problems that I have with Mockups, and many of them are being actively addressed, and the Balsamiq crew is more than happy to work with customers to improve the application. Here’s my small list:

  • No true way to make your own controls. You can sort of create a control by grouping other controls and setting their functionality, but they still act as separate items. Balsamiq knows about this, and they will work with you if you’ve got a great control suggestion.
  • Things snap in place, but you’re still dealing with “sketchy” shapes. If you try to put a rectangle in a browser object, you’ll get it to snap in place, but not necessarily a clean cut snap because of the sketchy nature to objects.
  • Containers aren’t really containers. This is something I’d love to see Mockups take on. Containers allow for snapping in smart locations, but the containers don’t truly act as containers. Why is it important? I think it could solve my previous problem, where snapping a rectangle into a browser or app window would have a clean line on the snapped edges.

However, these are all minor minor minor issues. Almost non-existent considering the time I save with Mockups to begin with. At $79 a license, this application is a steal.

 

Technorati Tags: ,,

Monday, April 20, 2009 #

April .Net User Group Meeting

location:

At Lamar Advertising

Wednesday, April 22, 2009
5:45 PM - 8:00 PM

Sponsored by: Ultix
Presenter(s): Lance Dunnahoo

Lance Dunnehoo
Lance is a Development Manager at Ultix Technologies. Lance has over 9 years of experience in delivering custom software solutions.


C# 4.0 New Features
Discussion on the new 'dynamic' keyword, contra and co-variance, named and optional parameters and code contracts.


Agenda

5:45 pm - 6:15 pm:
General Introduction/Food and Drinks

6:15 pm - 7:15 pm:
Lance will speak on C# 4.0 New Features

7:20 pm - until:
Open forum for questions

Raffle and Giveaways

  • Windows Vista Ultimate
  • Visual Studio 2008 Standard Edition
  • Several .Net Books

 

Technorati Tags: ,

Saturday, April 04, 2009 #

Buying books can get expensive. If you’re like me, you’ve got a collection surmounting that takes up more room than you should probably afford. So what are your options?

From Flickr by coteYou could use the library, but then you’re fairly limited in readings. Many of the classic timeless books will be around, but the latest and greatest will be a long time from hitting the shelf, if at all. You could do book trading, if you live in the heart of a thriving technical community. But, we don’t all have that sort of availability, and we also don’t all have that passion for social interaction either.

So what about eBooks? I’m not talking about those ones that you got off torrents of FTPs that your mother’s been telling you you’ll go to jail for, I’m talking legal eBooks that you pay for and have the right to use. Well, even eBooks can get expensive, costly a small amount less than buying the hard copy, which if you’re like me you’d rather the hard copy to begin with, if it weren’t threatening to evict you from your home forcefully as your collection grows.

Well, nowadays there are newer options. eBook subscription services! Notably, we’re talking about Safari Books Online this time around. As a member of GeekWithBlogs I was grateful to receive an extended trial and want to give my impressions on the service.

First impressions are lasting ones

Altogether, I have to say I’m genuinely impressed with Safari Books Online. The service is easy to use and provides instant access to so many books, you’ll be busy for years. When I logged on I was welcomed by a well designed home page. Everything was in an understandable location, and I wasn’t overwhelmed by a cluttered Visit SBOnightmare. I immediately had my bearings and went straight for a book to test the whole thing out.

My worst complaint about reading books online is that I hate html based books. I think you lose readability in the generic formatting that applies to every book, instead of the intended formatting the print version has. That’s a nonissue with Safari Books because of the ability to view at “Print Fidelity”, which is the same as viewing the PDF version of a book. At work I was experiencing a slight delay in the loading of pages (which load in square segments, and important squares were taking their sweet time) but this was quashed when I looked from home.

Searching for the right book

When I searched for the book I wanted in Safari Books, I found it. In particular, my searches were for the Head First series from O’Reilly and also Don’t Make Me Think search suggestions, woo! from Steve Krug. Had I looked for the Gang of Four instead, that’d be another story, but understandably the Safari Books archive is huge but can’t have everything.

The search has optional suggestions for searches. As you can see here, I get the book I want easily by searching. There are quirks however, if I put an apostrophe in don’t then I won’t get any suggestions. The suggestions can really help steer a general search as well. Putting in “web” will list suggestions of web design, web services, web 2.0, and even websphere. I could see it being helpful in a time when I know a genre I’m interested in, but not sure exactly what about it I currently want to read through.

And what about when you find that perfect book? You then can easily make notes in it, save it as a favorite (depending on membership), or even save out chapters or the entire book (by a paid token system). By far, virtual notes is my favorite of these features. It makes reviewing a book a snap, and helps you remember where you were and what you liked without a torrential amount of post-its.

Let’s make a deal

So what about pricing? This is where I’m iffy about the service.

I’m a poor and cheap man. I can justify purchasing a book every once and a while, but I’m not 100% sure I’m willing to pay for an eBook service for a collection that is easily fleeting depending on my income. And these days income can be fleeting. Starting at just $10, you can have limited access to the book collection, where you are forced to shelve books you want, in which those books must remain shelved for 30 days. Five books per month is what you get. For an arm more, you get 10 books at a time. Then, for over $400 a year, you get unlimited read access, and some free tokens per month for download.

Conclusion

My first impressions of Safari Books online are very positive, the service is great, and caters to how you want to read your content (unless of course you want to read it in a real book, but you can still make purchases through the service). The site is intuitive, and helps you easily get to the information you want. However, since I’m cheap and would rather buy certain books and have them forever over buying a subscription that I can’t ever truly call my own, I’m not certain if I’ll bite the bullet and pay for the service after my trial is up.

Some good news!

For a limited time, Safari Books Online is offering GeekswithBlogs readers a 15 day free trial, plus a 15% discount on a monthly subscription for a full year. Learn more and start your free trial at: http://www.safaribooksonline.com/geeks/mobile/?cid=200904-my-geeks-blog

 

Technorati Tags: ,

Wednesday, April 01, 2009 #

I’ll tell you, I never imagined it would happen this quickly, but I was nominated for the first time this quarter and also received the MVP Award for my contributions online and offline to the VB.NET community. I’m very honored and very thankful to everyone involved in getting me mobilized within the community, including Zain Naboulsi, J Sawyer and PJ Forgione (who nominated me). Also, I’d like to give some thanks for other great individuals I’ve met through becoming active in a great community: Jeff Julian, Andrew Duthie and David Silverlight.

Now, the award is for what I’ve done over the past year and my involvement in the community for that period. I’ll have to say I’m just getting started here, and I hope that I can bring some more to the table, enough to make them wonder why they gave it to me already when I earn it doubly so next time around *wink*.

So, I want to talk about my motivations (once again) and talk a little about this coming year as an MVP. Here are my goals:

  • Keep giving VB.NET the love it deserves.
  • Energize online communities for the coming of F# to Visual Studio 2010.
  • Promote the creation of groups, both online and offline, and help develop resources for those who are looking to do so.

I’ll be honest, if you read through my blog, you’ll notice I’m not a developer who’s been working for years. I’m a lowly junior dev, a self proclaimed master of nothing with a passion for what I do. If I had to ask myself why I was nominated and why I was selected, I’d have to reply that it is because I’m passionate about development and I believe in VB.NET as a language. I’m a mover with my own goals and my own schedule of what I want to learn. I’m not a master of anything in particular, but I’m an energizer, a catalyst. I want to learn, and I want to share what I’ve learned in a collaborative way.

So, if we cross paths, let’s learn together. Maybe I can give you a fresh perspective on something, and most likely I’ll walk away having learned something as well. The real result is that by us crossing paths, by us blogging and telling others, we create a network of shared information. We aren’t giving out trade secrets and we shouldn’t feel like we’re shooting ourselves in the foot by sharing the info instead we should feel as if we are furthering our field for the better, through increased awareness and shared practices.

Thanks for listening, and I’ll see you guys around!

 

Technorati Tags: ,