A Geek's Cogitations, Conjectures and other Cortical Experiences

Tag: programming Page 1 of 4

When It’s Not Biting The Hand That Feeds You

Biting The Hand That Feeds YouEveryone knows the old idiom “Don’t Bite the Hand that Feeds You”. It is often used in the context of criticizing someone or some place that helps and/or pays you. It is also often used against me when I’m on one of my Microsoft tirades. Yes, the majority of my job requires me to use Microsoft tools and technology. I think my years of experience, however, gives credence that my rants are not “biting the hand that feeds you“. In my opinion, it’s “biting the hand that’s punching you in the face”. I am going to pick on Microsoft again to illustrate my point because they are the easiest target. However, to be fair, any of the big tech companies can just as easily serve the same purpose.

I have been working in .NET for more than 12 years. I have been developing solutions using a plethora of Microsoft products dating back to Visual Studio 2003. Since I am using Visual Studio as a point of reference to establish a time frame, I will start with that particular tool. In fact Visual Studio is a great way to start on a high note because I love Visual Studio. I don’t think there is a comparable product out there that makes developing any easier. Combining the two database management tools into one tool, i.e. SQL Server Management Studio, was brilliant and again incomparable. I loved Windows 7 and Windows 10 isn’t too bad either. So while I do have a few kind things to say about some of Microsoft’s tools, it hasn’t all been sunshine and rainbows.

The Products That Bludgeon

Yes, for someone who makes a living using Microsoft products I sure do like to pick on them … a lot. I am quite vocal on Facebook, Twitter, at work, in a store about some of the crap Microsoft has created or caused in my life. These are the times when I have had that old proverb quoted at me. After working in the industry for over a decade, I think I have earned the privilege to speak my discontent. I have been on a huge rant about Internet Explorer lately because I think that is Microsoft biggest mistake. If they had followed the same versioning model as younger browsers then perhaps IE wouldn’t be the most hated browser in the industry. The fact that I have to try to code around 8 different versions of IE but only one version of Chrome and Firefox makes me hate my life. Edge was their second biggest mistake; hello re-skinned IE. Obviously Microsoft thinks we’re all a bunch of idiots.

Internet Explorer is the worst offender and the one that lingers. The other asinine business mistakes they have made are already dead or dying. As the joke goes, every even version of Windows was total garbage (Windows 98, Windows ME, Windows Vista, Windows 8) where Windows 8 is probably the worst one to date; not only was it awful functionally but it was aesthetically disgusting. SilverLight was a complete failure. Bing, Zune and Windows Phone are complete jokes. I remember when Windows Phone was announced; I predicted its demise on Day One. What makes Windows Phone especially irksome is it took Nokia with it. Granted Nokia was already struggling but they could have gone a smarter route (like Android) to save their business.

News Flash! Microsoft Doesn’t Walk On Water!

Working with a company’s technology every day doesn’t mean I should be worshiping them like a god. Apple, Google and Microsoft are often referred to as the “Titans of IT” but not everything they make is gold. If a product is total garbage I won’t go around heralding it just because “it’s Microsoft”. If you make a dumb product or a dumb decision then I’m going to call you out on it. Pretending its great is obtuse and not only are you misleading yourself but your clients and customers. I’m not going to try to sell a client/customer/developer lead on a half-baked product when a third-party product is a better fit. For example, I’ll advocate for Slack before Microsoft Teams because its far easier to use and much more well thought out.

Furthermore, I will not advocate for a technology that is going to make my life a living hell. For example I will never suggest SilverLight to anyone! I may be a masochist but SilverLight is a steaming pile of garbage and I’d rather write VB6 for eternity then edit another XAML file. So it’s not “biting the hand that feeds you” you when that “hand” is causing you nothing but daily anguish and regret.

apple_logo-263x300“The people who are crazy enough to think they can change the world, are the ones who do”
– Steve Jobs

 

Tech Talk: Lateral Career Development

Lateral Career DevelopmentThis Tech Talk is going to be a little different than prior posts in this category. I’m not going to talk about a new gadget, technology milestone or the latest news headline. I want to know what it takes to achieve lateral career development. You can advance your career along two axes. The common route is vertical by getting a promotion, perhaps a title change and some underlings. You can also advance your career along the horizontal axis (i.e. laterally). This is most often accomplished via some form of training. When you improve a skill set or acquire new skill sets, you are a better asset.

Depending on your employer, lateral career development will not necessarily render more money. I understand for many that is the motivation behind additional training, but usually its training that isn’t very interesting. I’m talking about the kind of training that not only enhances your career but it’s also fun and interesting. There are a plethora of ways to get the training you want; Pluralsight comes to mind. However, this post isn’t about where to get your training (perhaps that can be a future post).

How Do You Transition Your Career or Integrate Your New Training?

Unfortunately this post also will not answer that question. I’m legitimately asking. In some cases integrating your new training can happen fairly naturally. For example if you are a .NET developer and you completed training on Angular development. Those two technologies are so tightly coupled, finding an opportunity to implement your new skill is going to be easy. I know that because I have done it.

On the other hand, what if you are a .NET developer and you completed training on iOS or Android? These two technologies are obviously two completely different worlds. I’m not necessarily suggesting a permanent transition. It might be for some but personally I want to increase my skills beyond .NET (and perhaps even my value to my employer). The challenge is overcoming the pigeon-hole of so much time working in one technology.

This kind of lateral career development can be stymied by various factors. Priority, budget, opportunity or even employee perception can be a factor. Of course the obvious hindrance is experience. The developers with more experience are the first to be selected for the project. It goes back to that age-old conundrum “you need experience to get the job but you need the job to get the experience“. Your expertise is more cost-effective on a project where you can be the most efficient.

How Do You Get on a Relevant Project?

Again I’m legitimately asking! Obviously this is beyond your control. I imagine certain things have to align properly. First you need people who are willing to let someone with little to no experience work on a project. Then, of course, the right opportunity has to come along. It will probably have to be something that is low risk and has a flexible timeline.

I’m curious if anyone has had any recent success expanding into other technological paradigms. Working in the same technology every day for several years starts to feel pretty stale and mundane. I understand that mundane usually means job security but it kills ambition. I found this quote by T.S. Eliot – “If you aren’t in over your head, how do you know how tall you are?” Sometimes you have to push yourself to get to the next level but it does help if there is someone willing to take a chance on you.

Perhaps that’s all it takes to make that lateral move; someone who recognizes your potential and gives you a shot. The greater the risk the greater the reward. I guess, in the meantime, you keep working on those projects at home. It will help keep your skills sharp and you have the free reign to push the envelope a little bit.

/cheers

apple_logo-263x300The people who are crazy enough to think they can change the world, are the ones who do
– Steve Jobs

Tech Talk: Ready For Swift? [UPDATED]

swift-ogA couple of months ago I decided to start diving into Swift. I know Swift is still in its infancy and Apple seems to be breaking it with every XCode/OS/language update. I had watched all of the videos Pluralsight had to offer (though I noticed they recently published new ones). I have dabbled in Objective-C prior to Swift’s announcement and it is as convoluted and cryptic that everyone says it is; but it’s not impossible to learn. Swift, however, would make iOS app development a heck of a lot easier.

It might help that I have a sufficient background in object-oriented development in .NET as well as fluency in JavaScript and HTML5. I’m not sure if the latter would provide any value comprehending Swift, but I’m sure it doesn’t hurt it. I think the concept that provides the most value is understanding the MVC design pattern. I completed a very basic “Hello World” style app back when I first tried out Swift; it appears there have been a couple more updates so I hope to explore those [potential] changes in a few weeks.

Apple has been pretty quiet about Swift since it was introduced. I’m not sure if that’s because they were expecting the Internet to pick up that mantle or if they are planning additional announcements (WWDC perhaps – which, ironically, is occurring on the day that I published this post). If you have been using Swift recently and have something to share (good or bad), I would enjoy your comments below. Perhaps, in a few weeks, after I have dived back into iOS development, I will post an update.

UPDATE: After watching WWDC it looks like Apple is ready to take Swift to the next level with Swift 2 and by making it open source (which was received with raucous applause). This announcement was probably the most exciting thing (for me, at least) to come out of WWDC this year; unfortunately Swift 2 (and the open source library) won’t be available until the end of the year.

/cheers

Tech Talk: JavaScript Frameworks

Web_programmerOver the past year I have had several projects at work (I feel like a real live consultant now) and I have used a few new technologies and tools on those projects. The skills that have really come a long way are my JavaScript skills.

I know what some of you might be thinking, “WTF, JavaScript?!?”

Yes. JavaScript. It’s not as cumbersome and taboo as it was back in the 90s. There are new tools and frameworks out there that have actually made JavaScript not only easier but … dare I say it … fun?! The library that has made JavaScript easier, for me, is jQuery, which I have been using for a couple years now and I won’t write any JavaScript without it. There are two frameworks that I have played around with recently that have really made JavaScript kind of fun: Knockout and AngularJS (I know these are not the only two but they are the only two I have spent any time using).

I think I have gone on before about how much I enjoy the magic behind jQuery. I even saved a few on snipplr which have had a few strangers favorite, although I could probably improve on most of them with the newer versions of jQuery. Using jQuery will definitely make your web page feel very dynamic and that seems to be the paradigm we are going for these days. A “web site” is quickly becoming a legacy term and we are evolving into developing “web apps” – which is essentially a website that functions as if it were something running on your desktop (instead of in your browser). I’m sure the evolution and massive adoptions of tablets and mobile devices has been a major catalyst.

The jQuery syntax and plethora of plugins really makes developing web apps much easier and adds a level of enjoyment to it. In fact writing your own jQuery plugin doesn’t require any additional software or new syntax, they are still js files that just use existing jQuery syntax. I have yet to write one myself, but I really want to, someday … if I can think of a worthwhile plugin to write. I have noticed a drawback about jQuery lately; the more complex you make your page the more JavaScript you have to write. I have a couple of sites where there is more JavaScript code then actual markup and trying to find a specific function to modify can be an exercise in perseverance. When JavaScript code becomes increasingly verbose, that’s when frameworks like Knockout and AngularJS come in handy.

I’d like to go on about Knockout and compare it to AngularJS but I haven’t spent a lot of time recently enough with Knockout and I have spent quite a bit of time the past couple of weeks with Angular. I mostly started looking into Angular because its one of those terms that has been mentioned quite a bit around the office. Many folks have talked a lot about using it and it has been implemented at my next assignment. I wanted to go beyond just watching the Pluralsight videos and reading the tutorial on the website. I wanted to see if I can get it working on a website. Therefore I made one of my websites the guinea pig 🙂

Angular uses “directives”, which are essentially special attributes added to HTML tags that only mean something to Angular which tell Angular where it will be applying changes or reacting to events. While you can still use jQuery to handle some of your pages events, in Angular the controller will contain the majority of the code that needs to be executed. It does add a bit of brevity to your html pages.

If you have done any development using the MVC pattern your attention may have latched onto the word “controller”. In Angular you are essentially using an MVC pattern (although you will often see it referred to as MV* when folks speak of Angular). Your controllers are still written in JavaScript but I often create a controllers.js file and keep all my controller code there. Therefore, if you need to make a change to some logic and you know its going to be in a controller, it will be easier to find the bit of code you are looking for to make your change. No more scrolling through lines of JavaScript code, or hitting Ctrl-F to find a specific function (unless you are using several controllers, in which case I would encourage you to create multiple controller files).

I’ve only really just begun to dive into Angular and I’m already enjoying its power and brevity. As I continue to witness and invoke its prowess I’m sure to be inspired to write some more, however I’ve run on enough for now but I encourage you to check out all of the things I talked about (if you haven’t already).

minion_keboard_smI could get so much more accomplished if I only had minions!

Biggs On: Gunnars

gunnarsSince the first time I saw Gunnars at Micro Center I had wanted to try them out. Granted at the time I was wearing glasses so unless I was willing to pay the ridiculous price for prescription Gunnars, they would remain on the store shelves instead of beside my gaming peripherals. A few years later I had LASIK and it was worth every penny, of course the Gunnars would still have to wait since I just paid for the surgery.

So now we fast-forward to present day and I find some on sale on Amazon and it became time to try them out. They are supposed to help with eye strain and fatigue as well as help with dry eyes. A side effect of LASIK is dry eyes and I had chronic dry eyes prior to LASIK so anything to reduce how dry my eyes get is worth a try.

I’ve been using my Gunnars for about 3 weeks and so far they have been worth the investment. My eyes do seem less stressed and I do notice that they seem to dry out less through the day. I even think everything looks more crisp on the computer monitors. In fact not only have I been wearing them when I’m using my computer at home for video games, but I have brought them to work as well. Granted I have been called everything from “the biggest nerd in the office” to Bono from U2 but considering how much its been helping my eyes it doesn’t bother me in the slightest. Besides, why would I flinch when I’m called a nerd, isn’t it better just to embrace what I am?

You can get Gunnar’s without the yellow tint and still receive the benefit but they will cost more so if you don’t mind the yellow lenses, I’d recommend the cheaper pair. So if you have the means, keep an eye on Amazon because that’s where I found them at a discount and I would definitely recommend getting a pair especially if you are feeling any kind of eye fatigue or dryness after staring at the computer for long hours.

Biggs On: HTML5 and CCS3

Web_programmerBack in the day, around 1997 – 1998, I picked up a book called “Teach Yourself HTML4 in 24 Hours”. It was my first glimpse into the world of web development. Thanks to SamsNet Publishing, I read that book cover to cover and referenced is so much the cover literally came off. CSS was still in its early stages and JavaScript was hated by everyone. Creating dynamic content was a test in perseverance and willpower. If I wanted a cool menu system, and I didn’t want to write it myself, I had to find something I liked on places like http://www.dynamicdrive.com or research how to do it using DHTML (which I don’t think even exists anymore).

This was the world I lived in for my early, static, web site development. It not only proved how difficult it was to make a website dynamic, but it also revealed just how terrible of a graphics designer I am.

After I finished college, word started going around about HTML5. It was boasted as the greatest enhancement in HTML development when combined with CSS3 ( and jQuery). They weren’t wrong. I have completed a certification in HTML5, JavaScript and CSS3 and I find myself enjoying web development immensely. Despite my complete lack of graphics design skills, I can now make buttons and fancy headers and never launch a graphics studio. It’s amazing what can now be accomplished with just a few tags and styles.

Page 1 of 4

Powered by WordPress & Theme by Anders Norén