22 January 2013
New Web Languages and Frameworks (and a Brief History of Web Programming): Pt. 1
Software development has changed so much since I first got into the business over a decade ago, and lately, sometimes I feel like I’m becoming that 50 year old dinosaur who sits in the corner mumbling to himself about “the old days” of programming and how all the new technologies are ruining “proper'” software engineering. Ok not literally because unlike those guys (and we’ve ALL worked with folks like that) I love adapting and learning new technologies, but metaphorically…yup. I have my comfort zone which consists of Java and .Net, mainly on the Windows platform, with Windows centric middle-tier/backend plumbing: SQL Server MSMQ WCF Active Directory Sharepoint ad nauseam… If I had to classify myself and what I like to develop, it would definitely be backend/middle-tier stuff. I am by no means the best front-end designer ( WPF or Web stuff), but can get it built if a designer hands me the CSS and HTML framework/storyboards. A little... Read More...
18 January 2013
How To: Compile ISO C ‘99 Code in Visual Studio
This will be short how to on how to get ISO C ‘99 code to compile in Visual Studio 200x (in this case, Visual Studio 2012), since Microsoft only supports ANSI C ‘89 (and barely at that). Microsoft have made it very clear that they will not support C99 , and instead urges users to move to Visual C++ instead. Ok that’s great…unless you need to write straight up C. Background: I’m brushing up on my ISO C for an upcoming interview I have next week. I haven’t written a line of C since the early 00’s, but fortunately it’s coming back fairly quickly (it’s a fairly simple language despite its reputation). Normally I’d fire up my favorite Linux distribution (in this case Ubuntu) and start hammering away in VIM or Emacs, but this is lightweight one off stuff that I’m doing. I have never used Visual Studio to write C (but plenty of C++ of course), but figured it’d be a no brainer. Immediately I started running into strange errors... Read More...
30 December 2012
Singleton Pattern Implementation in C#: One Global Object Instance, One Entry Point
This post is going to explain how to implement the Singleton Pattern in .Net/C#. In most other programming languages/frameworks, global variables are allowed. In modern day programming this is extremely frowned upon, hence where this design pattern comes in handy: It provides a global object with only one point of reference. Once it is instantiated, all references to it are guaranteed to be to a single object instance which is available throughout the lifetime of the application. So, where would this be useful? Keeping an application-wide cache of objects to avoid expensive calls to non-local resources. .Net makes this fairly simple. Here’s the basic UML diagram for a singleton object: We create a static constructor (thus making sure only one object is created in the AppDomain) so the object can’t be created directly, a private backing store called instance of type of the singleton class, and a public accessor property (or method) that returns the private instance type. Your... Read More...
23 September 2012
Template Method Implementation in C#: An Easy Way to Make Your Code Hum Along
A pet project I’ve been working on (on and off, time permitting) has been in need of some serious refactoring, so I finally sat down to eliminate some redundancy, and work on some design pattern work. A common problem in software design is making sure base class implementation is always called from overrides, but also deferring finer grained details to subclasses without changing the base class implementation, without having to always specify base.<implementation> in every single override in subclasses. Enter, the Template Method design pattern, which encompasses the polymorphic aspect of Object Oriented Design (which in my opinion is the most important of the 3 pillars: Encapsulation, Inheritance (aka Specialization) being the other two). The premise is simple, and here’s a very simple UML diagram that outlines the functionality: The base class specifies stubs (abstract methods, or protected virtual method implementations that all subclasses need base functionality for), and a public... Read More...
16 September 2012
Visual Studio 2012/TFS 2012: A Breath of Fresh Air
Visual Studio 2012 hasn’t been released to the general public yet, but a friend of mine was nice enough to lend me his MSDN copy of both VS and Team Foundation Server (I run Sharepoint 2010 on my intranet, which is a requirement for TFS…the integration is incredible). While you’re at it, do yourself a favor and install the new (and free) decompiler from JetBrains: DotPeek , which also integrates into Visual Studio. But, I digress. First off, I swore I would never migrate my source control over to TFS. For the better part of a decade, I’ve been using SourceGear’s Vault solution to house my code, and provide versioning control; the single license version is free. But after watching several webcasts on TFS 2012, I decided to take the plunge (getting it installed is not for the faint of heart by the way, block off half a day to get it up and running). It is leaps and bounds beyond any previous version of TFS, and the Sharepoint integration is nothing short of amazing, especially the reporting... Read More...
05 September 2012
Adding DISQUS to Community Server Sites
DISQUS.com is awesome. Finally, a centralized location for comment conversations to occur. Plus, they manage all the comment spam for you. Here’s how to add it to Community Server blog (I have not done this for the forum section, but I assume it’s just as easy). In your theme folder, in themes\blogs\NAME\ you are using, find the post.aspx file and add the code supplied by disqus. just below the </CSBlog:PostAttachmentData> tag. Also, disqus doesn’t play nice with the default <!DOCTYPE> in Community Server, so change/add a META tag to <meta content='IE=edge' http-equiv='X-UA-Compatible'/> in the themes\NAME\Common\master.Master file. What disqus accomplishes is something I touched on in my last post : Consolidation of information on the web. I look forward to having a better way to keep up with discussions. Read More...
29 August 2012
Are Personal Websites/Blogs Passé?
I have a love/hate relationship with my personal website/blog. When I started this site almost 9 years ago, social networking wasn’t even in the vocabulary of the internet, and personal branding was a must have. Fast forward to 2012, and Twitter, Facebook, and LinkedIn are ubiquitous, and Tumblr is a great turnkey solution. I purposely left out Google+ because like so many other companies, they are way too late to the party. This website is a labor of love, but a little more laborious as of late than loving. Running a personal website is a lot of work: Hosting costs, infrastructure work (DNS entries, SLR’s, dealing with the daily deluge of comment spam, bug fixes, trolls…*sigh*). There are so many options out now, which also creates new problems: Store your content on one site, photos on another, and if you are a coder like myself, do we use CodePlex, GitHub, etc. for our code? How do we integrate all of these into one cohesive entity to brand ourselves now? And what about syncing all of... Read More...
17 August 2010
Windows Live Writer Beta
It took me a couple of tries to get the new Windows Live beta package installed on my machine; the secret fix for me was to enable the Windows Firewall service (I disable it since I’m behind other firewalls), so if your install is failing, turn on the Firewall service. You can turn it off again after you’re done. The previous version of Windows Live Writer hasn’t worked on any of my machines for quite some time now, so it’s nice that the new version actually works again. I might actually start keeping up with my blog again, although in a completely new mode of content since my tech days are long behind me (professionally at least). If you want to test drive the new Windows Live Essentials beta, you can download it from here . The new Windows Live Messenger is worth the download alone in my opinion. Much more polished, and you can plug it into social networks like Facebook, etc. So let’s see if this new version actually works, and if it does look for more updates in this space. I have my... Read More...
09 December 2009
Matriculating Into Columbia University, Moving to New York
I have the proud distinction of being able to say that I have been accepted to Columbia University (yeah, that Columbia...the Ivy League one) and will be finishing up my degree there. I'm still in shock that it's actually happened, that I get to fulfill my lifelong dream of attending an Ivy League institution...and Columbia at that which is IMO the coolest of the Ivies, namely due to its location in Manhattan. I have busted my ass over the past year in my studies, and it's great to see this hard work paying off. So long as all the logistics fall into place, I will be moving to the Morningside Heights neighborhood of Manhattan in early January to begin classes. All of my credits transferred, so I'll be enrolling as a Junior. I'm excited and apprehensive at the same time, but I have no doubt that this was meant to be. I have a philosophy of believing that things happen for a reason, and the more effortlessly they happen, the more they were meant to happen. And it would... Read More...
20 December 2008
I'm Drowning in Paper, So I Bought a Tablet
So another semester has drawn to a close…this semester was my first full one; I did 17 hours and I can say one thing for certain: It’s a lot easier to focus at age 30 than it was at 18, and it wasn’t nearly as bad as I thought it would be. Finals were pretty gruesome, but overall it was a successful semester, and I’ve loaded myself up with 18 hours for Spring. One thing I learned about myself is that at some point, I stopped being able to do consecutive nights of 4 hours of sleep…I paid dearly for it during finals week and it caught up with me at the end. Yet another thing drastically different than being 18. I also learned that a decade of cube life spoiled me in some ways…I haven’t put pen to paper (e.g. taking notes) in many many years having always used a computer for all of my document generation needs. The problem wasn’t with the note taking itself, but rather being able to quickly find information I had written down for later studying. Over the past few months I had gone back and... Read More...
More Posts « Previous page - Next page »