Monday, October 13, 2014

Who are you? What do you do?

You're at a cocktail party.  The COO for a large company approaches you to make idle chat.  With a firm handshake, he looks you in the eye and say, "So what do you do?"

"Uhhh....... ".  What do you say?  "I'm a developer."  Yawn.  Certainly not something that's going to make him want to send you his business or even talk to you for much longer. 

What is your professional identity?  How can you portray excellence with even the most mundane title?

Michael Hyatt talked about an interesting approach in one of his podcasts.  He discussed using the following approach.  To create your professional identity, use the following formula:

Your professional identity plus the target audience plus your unique solution equals your specific transformation.


I AM....
I HELP...
DO OR UNDERSTAND....
... SO....

Question:  What do you do?

My answer:  "I'm a web developer.  I develop custom web applications for mid to large scale businesses so that they can gain and maintain a competitive edge in their marketplace."

Give it a try.  Use the above formula to come up with your professional identity.  Then.... Try it out!  At the next social gathering, practice it.  It may seem forced and uncomfortable at first, but with time and practice, you'll soon be saying it with confidence.  Happy networking!


Thursday, September 4, 2014

listen, Listen, LISTEN

Often times when I'm in a meeting or talking with someone important, I find myself doing a few things that I wasn't aware of until recently. 



When we are 'listening' to someone talk, often times we aren't really listening to what they say.  See if you are guilty of any of the following:

When a person is talking, I _________________
  1. formulate in my head what I'm going to say next.
  2. wait for a pause so I can interject my own story.
  3. get distracted by my surroundings easily.
  4. interrupt them to tell my own story/thought that theirs had reminded me of.
  5. nod frequently and agree with them when they haven't even finished their thought.
  6. interrupt them to finish their sentence, portraying to them I've already heard what they have to say and it's not important to me.
  7. wait impatiently for an opportunity to arise where I can change the subject or leave.
  8. fiddle with my keys or become anxious.
  9. make plans in my head for things I want to do after this discussion is over. 
  10. go on my cell phone and start multi-tasking.

Number 10 is probably the worst offense you can do during a conversation and it should probably be #1 because everyone does it.

The next time you find yourself in a conversation with someone, try to keep the focus on them and genuinely listen to what they have to say.

Thursday, August 14, 2014

How does the world see you?

How does the world see you?  Interesting question.  I for one always catch myself trying to please other people.  I'm a people-pleaser.  But how do people see me?  If only there was a test I could take that would help me figure out some of my strengths that others might see in me.  Luckily, there is.  While listening to the latest episode of the EntreLeadership podcast ( highly recommend ), that was just such a topic.  How does the world see you.  At the end of the podcast, they give you a link to take a test.  The test/assessment is free!

Here's the link for you to try:

url:   http://howtheworldseesyou.com/you

code:    entreleadership

Answer 28 questions and find out how the world sees you.  Here's what I learned about me:



Combine your two advantages and you get what they call an Archetype.  Here's my Archetype:



Try it for yourself!

Friday, July 25, 2014

Treat your career like a Grape Vine

In terms of a Grape Vine, in order to increase the quality of the product, you have to prune the foliage, buds, shoots and spurs.  Up to 85% of the foliage is usually pruned from the previous season.

Your career, in this respect, should be pruned as well.  Are you spending too much time in areas that are watering down your career i.e. product?  To hone our skills and become really great ( not just good ) at something, you have to focus a majority of your energy in that area.  You can't become an expert at Web Development, Graphic Design or even Sales if your focus is scattered.  Spend some time each year to prune areas of your career that aren't allowing you to be great.

Friday, June 27, 2014

If it ain't broke... BREAK IT!

I was listening to a pod cast by Michael Hyatt, who was celebrating his 100th podcast episode { congratulations }, and he said "I kind of believe if it ain’t broke, break it."  I'm writing this week to say that I believe the same thing.

Often times, as programmers or someone in any profession, we tend to air to the side of caution when approaching the task of trying something new.  After all, what we've done has worked good so far.  Why change it?  I certainly was a firm believer in this theory.  I remember one time as a programmer in my earlier days I was asked what I thought about a certain up-and-coming technology.  I said without thinking that I didn't care for it.  That what I was doing was working just fine.  In this instance, the up-and-coming technology was Linq.  For those non-technical people, Linq provides a way for programmers to look through data directly in their own language, such as C# or Visual Basic.  For programmers like me, it opened a whole new realm of possibilities.  Now eventually I did learn to use Linq, which led me to it's more attractive kissing-cousin { maybe a bad analogy but it sounds good } the Lambda Expression.  This new technology allowed me to select, filter, join and compare any collection of objects very easily and quickly.  Something I would have never been able to do using my old methods.

So the outcome of this story is simple.  I tried something different and it worked.  Now maybe at first it didn't seem like a good choice, as I would have been able to knock out any task quickly with what I already had pre-written.  But by learning something new, I allowed myself to expand in my knowledge and understanding of how certain things worked.  By forcing myself to step out of my comfort zone, I was able to grow.

Working is not necessarily moving forward.  If a clock is working, it's really just spinning in circles.  Try something different.  Break away from the path of 'working' and break stuff.  You'll be glad you did... no matter what walk of life you're on.

Thursday, June 19, 2014

Five-pointer in the NBA?

We received an email today at work regarding leadership and the NBA.  Obviously with one of the most successful and influential companies, it's no surprise that you can find excellent examples of leadership all around. 

Here are 5 take-aways from that email I got:  { it's easy to identify because they were numbered! }
  1.  Leadership is about team progress, not personal statistics. The cliché is true: It’s about the name on the front of the jersey, not the back of it.
  2. Leadership is about doing the right thing when no one is watching, not just during a game or performance. Good leaders have pure motives.
  3. Leaders lose the right to be selfish. They see the bigger picture and focus on the whole. Their measuring gauge: Did I make my teammates better?
  4. Leadership begins with an attitude of service, sacrifice and passion. It is more caught than taught to others.
  5. Healthy leadership always adds value and is never toxic. It works like the tide on the ocean: As it rises, all the boats go up. Leaders improve team culture.

I especially believe that #4 is important.  If you're in a leadership position, know that your team members are watching you.  Every time you gripe about a customer, every time you complain about another meeting, every time you skip a meeting... it will be noticed.  But the good news is every time you give praise, every time you accept responsibility, every time you lead by example... it will be noticed!  Get noticed for the right things.

Wednesday, June 11, 2014

Haters gonna hate

Often I come across an article or a blog post and become inspired.  Then I just want to share.  Well this post is no exception.  I came across a blog post by Seth Godin that said,

"Do your work, your best work, the work that matters to you. For some people, you can say, "hey, it's not for you." That's okay. If you try to delight the undelightable, you've made yourself miserable for no reason."

I often find myself questioning my work all the time.  I try to do work that I think everyone will love.  And if I think someone might not agree with what I'm doing or won't like it, I'll discard the idea and move on.  This is a mistake... and I know it is.  But why risk putting yourself out there?  Why risk being shot down... having your idea discarded. 

The reason why it's worth it is the reward always outweighs the risk and we always learn from the experience, whether good or bad.

So the next time you have an idea, don't let doubters hold you back.  Often times, you may find that the biggest critic to your idea is actually the person in the mirror!

Friday, June 6, 2014

Mobile App Dev - Native vs Hybrid

I attended a GR Dev Night last night with a few of my colleagues.  The event featured a panel of experts in their respective area of expertise on mobile app development.  Specifically app development using cross-platform tools. 

Mobile applications can be written natively, meaning using the language and tools intended for that operating system { iOS, Android, Microsoft, Blackberry, etc. } or using a cross-platform tool that allows you to write for multiple operating systems, in the language you are more comfortable in.

Here are a few of the cross-platform tools the panel discussed last night:

 
Xamarin:   https://xamarin.com/

 
Appcelerator:   http://www.appcelerator.com/


PhoneGap:   http://phonegap.com/


I personally would prefer to just write my mobile applications natively.  While it has it's challenges and learning curve, the performance and operability are not sacrificed to appease the masses.  If you're an Apple guy, write for iOS.  If you're a fan of Google, write for Android. 

But if you're writing an app for a client and they want to have their app exposed to everyone, then one of the cross-platform tools listed above is probably a better alternative.

Wednesday, May 28, 2014

Pass it on

I've been writing this blog for a few months now.  While it hasn't gotten quite the following I'd hoped, it seems a few people view it.  Thank you. 

While this blog will contain principals on computer programming, it will primarily cover important principals on business in general.  Things like accountability, integrity, trust, honesty, leadership, team-building and integrity.  Yes I said integrity twice.  It's important in everything we do.  I define integrity as simply doing what you say. 

So if you like this blog, tell a friend.  Share it with your colleagues.  Also, I'd love to hear back from you.  Send me your feedback or comment on a post.  After all... you're why I write my blog.

In closing, read my recommended reading books.  I truly believe these books will change your professional career and outlook on life in general.  They're quick reads, and I promise you'll read it again and again.  Click on the affiliate links to get these books today!

Thanks for following this blog!

~ Anthony

Thursday, May 22, 2014

Anxiety

Anxiety.  What is Anxiety?  Wikipedia defines it as: "Anxiety is an unpleasant state of inner turmoil, often accompanied by nervous behavior, such as pacing back and forth... It is the subjectively unpleasant feelings of dread over something unlikely to happen..."

While that definition is accurate, it doesn't really 'feel' right.  It's just a definition.  Try this definition on for size.  Seth Godin, in his adult-picture-book 'V is for Vulnerable', says that "Anxiety is experiencing failure in advance."  From a professional standpoint, I think that is dead-on.  Anxiety over something, whether an upcoming talk or a new project, is just us internalizing an outcome we see in a situation before it happens.  And a majority of the time, that outcome is the worst-case-scenario. 

While imagining worst-case-scenarios is not healthy, I do think that Anxiety is a good indicator that you're on the right track.  That you're doing something right.  That you're moving forward!  You just need to see it as that and NOT dwell on any perceived negative outcomes.  We're much harder on ourselves than any person or situation will be.  So take a deep breath.... and forward you go!

Friday, May 16, 2014

Loved the book.... now what?

Often times we turn to books to solve a problem or to learn more about a subject.  Then, if the book engages us, we get inspired.  We get hungry for more knowledge and eager to progress to the next step.  Read the next book.  Read books recommended by the one we just read.  Read read read... absorb all we can.  But when do we stop and actually apply what we've read. 

The next time you read a book, I would recommend the following tactic:

  1. Don't read the book all in one sitting.  Read a chapter or two at a time.  Then stop and allow yourself time to absorb what you've just read. 
  2. Apply principals you've learned immediately.  Try them out.  Often times books build you up to more complex topics as you go along.  Having a good grasp of earlier topics will help you better understand the book going forward.  Otherwise you may burn out and only make it through a few chapters before losing interest.
  3. When you finish the book, if it's not too long, reread it.  You'll almost always find something that you missed the first time around.
  4. The next step after reading the book is NOTHING.  There is no other books to read or steps to take that you haven't read in that book.  Start applying what you've learned right away and don't wait for more information to become available.  You've read the book.  Now apply what you've learned.
  5. Lastly, if it's a good book, share your thoughts with a friend or colleague.  Recommend the book and sit down with them after to discuss it.  It's always nice to get a fresh perspective on a book.

Now, I'm going to apply step 5 and recommend some books to you.  They're not computer programming books, but I promise you they are applicable for all walks of life.  Click on the recommended reading books listed on the right.  QBQ and Who Moved My Cheese should be on EVERYONES library.  If you don't have these books, get them today.  Read them and share them with others! 

Monday, May 12, 2014

Save the date!

As a professional, our time is often consumed by tasks and people that we don't plan for.  So when we 'want' to work on something or give a talk-presentation, we often find that we just don't have the time.  Our days come and go, and all we're left with is a soft 'maybe'  Maybe next month I can work on that project.  Maybe next week I can sit down and chat with my coworker.  Maybe after this project I can give a talk on what new things I've learned.  Maybe?  Maybe! 

It's time we all tell our time what we're doing and stop wondering where it went.  The next time you want to give a talk, start a project or just get some 'me-time' to setup some goals, set a date.  Set a date far enough in the future to prepare and strategize, but not too far out where we know we're stalling.

And when that date is set, don't miss it!

Wednesday, May 7, 2014

Work on your strengths, not your weaknesses

We're told throughout our years in school to spend extra time and work on the areas that need improvement.  But is that really sound advice?  Does an artist who is gifted really need to work on their algebra?  Does a programmer really need to spend time having a better understanding on the affects of music in society?  Of course not.  Now I'm not saying these areas aren't important... they are.  To some people. 

Each person is unique and has a unique set of interests and talents.  Why are we not spending more time honing in those skills and making them better?  Why do we bother making something mediocre less mediocre?  Why not make something good great!

If you're a programmer that loves working in the front-end UI but dreads writing complex database queries or obscure APIs, then just do front-end UI stuff and get better at that.  Don't spend time crafting something you're not good at or don't like when you could be getting better at something you do like.

"Well I have to do SOME database work" you might say.  Probably, yes.  But how much is up to you.  Each of us in our roles at work have a certain freedom to craft our profession how we see fit.  If you don't like writing in TSQL, speak up!  If your job requires you to spend 90% of your day in something you don't want to do, then you are what is known as "being on the wrong seat in the bus".  Maybe you're even on the wrong "bus".  Take time each week to change something about your job, no matter how little, to craft your profession to what you want it to be.  For example, if I want to only do front-end work, then a good plan for me would be to study a topic and give a talk on it.  Speak to leaders and other developers about what you've learned and show that your passionate about it.  Pretty soon you'll be know around the office as the go-to guy for everything frontend. 

The happiest people in their professions don't have magical, perfect jobs.  They have jobs that they have spent time cultivating and creating.  What are you doing to create your perfect job???

Monday, April 28, 2014

I swallowed a rock... and it was good.

I often overanalyzed everything.  I pine and worry and fret over how people behaved or think of me.  I use to think that this wasn't a normal behavior or response to adversity.  It occurred to me recently that I wasn't alone.

I follow a few blogs and listen to a couple of choice podcasts... and I learned something.  I learned that other people feel this way as well.

As an example, a few months ago a coworker of mine who I admire and look up to got a phone call while in my presence.  After terminating the call, they were obviously frustrated.  This coworker then very briefly vented about another coworker.  In was only 1 or 2 quick sentences about said employees' competence, but it stuck with me.  I remembered it because it was out of character.  I remembered wondering if that person would do the same to me.  I remembered it from that point until last Friday.  I had done something that drew an observing eye from said person and it was brought to my attention via a short email.  And I WAS RIGHT back to that moment where they vented some months ago.  I couldn't help but wonder if that person was venting right now about me to the person next to them.  In fact I'd go so far as to say I knew they were.  I could see it play out in my head.  It hurt to even think about.  And the result... my productivity went down!  Dare I do something else that might draw more attention?  Dare I even respond?

Obviously this is a slippery slope, but we all do it!  At some point or another, we all experience the thought that someone might be talking about us.

If I were to go back in time I would say to that coworker STOP!  Do not say anything.  If I am not in a leadership position or a position to fix your problem, then I don't want to hear it.  It will only be gossip... and it will forever tarnish the way I look and think of you. 

It's better, no matter how tough, to swallow those harsh words and move on.  Your relationships, your productivity, your team's productivity, your company's success will be better because of it. 

Tuesday, April 22, 2014

Be Affraid Of Programming

Routine is nice.  It's predictable.  It's comfortable.  But it's also stagnant.  It doesn't move us forward... it just kind of leaves us in a hover state.  We're content to just do what we're use to, day in and day out.  But that's the wrong mentality for a programmer.

Like all walks of life, change is scary.  We avoid it because of our fear for the unknown.  But that's really the only way that we will grow in our respective fields is by stepping out of our comfort zone.

So as a programmer, I say step out of that comfort zone and take risks.  Make mistakes.  Grow in your field.  Try something new.  Take on a project that challenges you.  In doing this, you will grow as a person and become an invaluable asset to your team and your company. 

Thursday, April 10, 2014

The 'Bleeding' edge of security!

Over the past few weeks, we've learned about a serious security issue known as the 'Heartbleed Bug'.  Rather than go into detail about this, I am just going to point out a few references:

Heartbleed Bug Details

Heartbleed Bug Test

Stay informed about these kind of vulnerabilities.  They affect everyone and they're popping up every day.  I would warn though to not conform to the 'sky-is-falling' mentality.  This particular vulnerability is not new... it's just recently been brought into the light.  You're no more at risk now then you were a year ago... you're just aware of one more risk out there. 

Safe surfing!

Tuesday, April 8, 2014

We've all been given a new Identity!

By Identity, I'm referring to the new ASP.NET Identity authentication.  It's a bit different than what I'm use to doing.  For one, it's based on a fluent code-first data model.  So in order to extend Identity classes, such as User, you need to modify and extend the ApplicationUser model and persist the changes via migrations to the database. 

I must say, it's a bit of a disappointment in terms functionality.  You get a basic auth system right out of the box, but the system itself lacks basic fundamental security.  For instance... you don't get a feature to lock a user account.  I also would have expected to see some question/answer functionality for retrieving forgotten passwords.  Although these are easy enough to implement by extending the model, I would have like to have seen a more thorough framework.

I will be posting a document in the near future explaining in detail how to extend the user models and make a more secure authentication system.

Wednesday, April 2, 2014

I'm an expert... I can do anything!

Have people assumed you can do something just because you're an "expert" in a particular field?  I saw this video posted on a blog I follow by Seth Godin.  Have a look:


Friday, March 28, 2014

Strong Passwords

I was talking to a co-worker the other day about strong passwords.  It was a big focus on my pervious talk at SoftwareGR and I wanted to get his thoughts on the issue.  He recommended YubiKey by Yubico.  It's a small hardware stick that plugs into your usb.  After you type your typical password, such as 'qwerty', you push the button on the stick and it inserts a series of characters assigned to that chip.  So your password will now look like:  'qwertyE&5%J9*3~!aFfT'.  You can then rely on your memorable weak password and the strength of the YubiKey to create a strong password.  It looked very simple and extremely secure.  I am going to get this chip and try it out for myself.

Wednesday, March 26, 2014

Treasure Hunt


So I mentioned to a few people last night about a hidden treasure.  This treasures whereabouts is hidden in a series of encrypted documents. 
 
I've encoded a message below that describes what this treasure is and how to find out more about it.  As I discussed last night in my talk, Frequency Analysis is an aid used in cracking classic ciphers.  Below is a message created using a classic cipher.  See if you can crack it.
 
FTQ NQMXQ OUBTQDE OAZEUEFE AR FTDQQ QZOAPQP YQEEMSQE. AZQ AR FTQ OUBTQDE EBQOURUQE FTQ XAOMFUAZ AR M NGDUQP FDQMEGDQ AR SAXP MZP EUXHQD QEFUYMFQP FA NQ IADFT YADQ FTMZ FTUDFK YUXXUAZ PAXXMDE. FTQ AFTQD FIA OAPQE MXXQSQPXK PQEODUNQ FTQ OAZFQZFE AR FTQ FDQMEGDQ, MZP M XUEF AR ZMYQE AR FTQ FDQMEGDQE' AIZQDE MZP FTQUD ZQJF AR WUZ ITA IQDQ FA DQOQUHQ FTQ FDQMEGDQ UZ OMEQ AR MOOUPQZF. FTQ OAPQ PQEODUNUZS FTQ OAZFQZFE AR FTQ FDQMEGDQ IME PQOAPQP GEUZS FTQ PQOXMDMFUAZ AR UZPQBQZPQZOQ. FTUE IME MOOAYBXUETQP NK OAZEQOGFUHQXK ZGYNQDUZS FTQ IADPE UZ FTQ PQOXMDMFUAZ AR UZPQBQZPQZOQ. QMOT ZGYNQD UZ FTQ OAPQ IME FTQZ DQBXMOQP NK FTQ RUDEF XQFFQD AR FTQ OADDQEBAZPUZS ZGYNQDQP IADP UZ FTQ PQOXMDMFUAZ AR UZPQBQZPQZOQ.  FTQ NQMXQ OUBTQD OMZ NQ RAGZP AZ FTQ IQN.  FTQ ZMYQ AR FTQ YMZ ITA TUP FTQ FDQMEGDQ UE FTAYME VQRRQDEAZ NQMXQ.  FTQDQ UE OGDDQZFXK ZA WZAIZ EAXGFUAZ FA FTQ AFTQD FIA OUBTQDE. 

SoftwareGR

Awesome talk last night.  Thank you to all who attended.  Here are some of the resources I recommended last night:

  • QBQ - The Question Behind the Question    By:  John G. Miller
    • This book is about personal accountability
  • Who Moved My Cheese     By:  Spencer Johnson
    • This book is about change!  Change in the workplace and your life
As a bonus, I'd like to also recommend this book:

  • The Go-Getter      By:  Peter B. Kyne
    • This book is also a quick read with a powerful message.  It's about not quitting and going the extra mile.
The book that the stories were from last night is a really good read.  It's as follows:

  • The Code Book:  The Science of Secrecy from Ancient Egypt to Quantum Cryptography   by Simon Singh

Again, thanks to all who attended last night.

Wednesday, March 19, 2014

A new way to validate email

Gone are the days of ugly, gaudy RegEx email validation.  Here is an example of a nice clean way to validate email with AngularJS:


@using (Html.BeginForm(null, null, FormMethod.Get, new { name = "recoverForm" }))
 {
       <fieldset>
              <div class="editor-label">
                     Email Address
              </div>

              <div class="input-group" ng-class="{'has-error': IsValid(recoverForm.email.$error)}">
                     <span class="input-group-addon">&#64;</span>
                     <input type="email" ng-model="email" name="email" class="form-control" placeholder="Enter Email Address" maxlength="255" required />
              </div>
              <br /><br />
              <p>
                     <a href="javascript:void(0);" class="btn btn-primary" ng-click="RecoverPassword()">Recover Password</a>
              </p>
       </fieldset>

 }

 <script>
 ....

 $scope.IsValid = function (input) {
        if (input.required) {
            return true;
        }

        if (input.email) {
            return true;
        }
        return false;
    }

 ....
 </script>



Tuesday, March 18, 2014

The Go-Getter

I just read a very good book yesterday.  It was less than 100 pages, so I blew right through it in a couple hours.  Definitely worth reading.  I found myself laughing out loud in the doctors office over some of the issues this poor guy was having.  He was searching for a blue vase and the deck was stacked against him.  An excellent book to have on anyone's bookshelf.  I got it for $0.99 on the Nook.  Best dollar I ever spent.  Sorry McDonalds. :)

Monday, March 17, 2014

Proof of Concept

Last week a fellow developer and I presented a Proof of Concept to a client on a program they wanted developed.  At the start of the meeting, I reiterated the purpose of this demonstration.  The proof of concept was to flush out anything we missed... and questions we might of forgot to ask. 

After the demonstration was over, we actually did come out with some good insight.  But that's not always how it happens.  Often times, non-technical people get caught up in the flash { not Flash } of the product instead of looking at the details.  Questions that need answering but don't are:
  1. Are we capturing the right information? 
  2. Is this the report you want your customers to see? 
  3. Can you think of any other graphs you'd like to have on this page that I haven't included.
  4. What levels of users will be accessing this site?  Admins, guests, etc.
  5. What kind of security does this site need?  SSL Cert.?  Should data be encrypted?
These questions help the developer get a better understanding of what the project needs to do and how it needs to function.  Don't settle for a pat on the back and a good job.  It's not a good job.  It's throw-away code that you shouldn't have spent much time on.  Your client should look beyond the UI and get into the guts of it.  If this project is not a true agile project, then this may be your last real insight you get from the client before you go down those scenic rabbit holes we all as programmers love.  Before your journey, make sure your suitcase is packed with lots of customer insight!

Thursday, March 6, 2014

Bitcoins

Very interesting concept.  Apparently it's very popular, though I don't know much about it.  I'll talk on it a little in my upcoming talk, but only to the extent of incidents where bitcoins have been hacked.
 
If you too are new to bitcoins, read all about them here.

Upcoming talk

I'm getting excited for my upcoming talk on the 25th of this month, March.  It seems that there is a plethora of information out there for me to talk on.  Each day I see new stories about security breaches, data stolen, and lives lost.  Reaffirms to me just how important this talk is.

I also have a few surprises in mind for the audience of the talk.  Stay tuned to find out more! 

Friday, February 28, 2014

Size does matter with Bootstrap

So I figured out this cool way to dynamically change the size of a column in Bootstrap with angular.  It's pretty slick.  Check it out:
 
<span ng-class="{true: 'col-lg-2', false: 'col-lg-3'}[TypeID == 1]">...</span>
 
That's it!
 
Okay, so what it does:  It's using AngularJS, as you probably noticed by the 'ng-class' tag.  So the TypeID is a model.  This code is actually inside an ng-repeat.  So if the TypeID is equal to 1, then make the column only 2 big in Bootstrap.  If you're unfamiliar with this, click here for Bootstrap Knowledge.  So, if it's not 1, it's 3 big.  This TypeID is set dynamically in my code not show by a dropdown list selection. 
 
If you have trouble with this, post a comment and I'll give a more thorough example, perhaps on jsfiddle.
 

Wednesday, February 26, 2014

Sweet Select2's in Angular!

So I had this awesome idea to make my Select2 dropdown much nicer by adding group names to the dropdown.  { Yes, I know, novel idea! }  The problem is... it's Select2.  Which I guess wouldn't be such a big deal, but I'm also binding my dropdown with Angular.  If you're not technical, let me help you out by saying stop reading and move on.

So, this is how I { with the help of a colleague } did it:

<select ui-select2="{allowClear:true}" data-placeholder="Product" class="input-max ProductDropdown" ng-model="ProductID">

<optgroup label="Ranged">

<option ng-repeat="p in Products | filter: { IsRanged: 'true'}" value="{{p.ProductID}}">{{p.ProductName}}</option>

</optgroup>

<optgroup label="No Range">

<option ng-repeat="p in Products | filter: { IsRanged: 'false'}" value="{{p.ProductID}}">{{p.ProductName}}</option>

</optgroup>

</select>
 
 


Well, first it's not perfect.  I could have done this in javascript when I was instantiating the select2, but I chose this route since the form is way more complex.  This select lives in 'n' number of rows, repeated with an Angular directive template.  SO... while the SAME list is getting filtered twice { once for Ranged, once for NonRanged }, it is very fast and very nice looking. 

I'm happy with the result.  It's not the most efficient code written, but it works and enhances the user's experience.  Win-win!

Why not now?

In programming, much like life, everyone has that moment when we really want to work on a project or we really want that promotion/job, and for whatever reason it just doesn't happen.  This can take its toll on our ego and make us question our role.  I'd ask you to steal yourself from moments like these and continue to look forward.  Don't let missed opportunities get you down.  There will be other projects, other jobs, other opportunities.  Just keep coding!

Friday, February 21, 2014

What's wrong with MY code?

Never miss the opportunity to have someone review your code. 

I use to play chess in high school.  During some of my more competitive matches, I always had an audience watching.  When the match was late and moves were crucial, people would always gasp and grunt in frustration.  What did they see that I didn't?  What did I miss?  Coding is a lot like that.  Sometimes you just stare at code so long that you don't see what it's doing... you see what you think it's suppose to do.  Code reviews can help flush out things you may have missed.

Just the other day, I had a review done on my code.  The reviewer found some slow spots in my code.  I was pulling a list of 500+ records, iterating through said list and then paging the results.  What I should have done was pull the list, page it and THEN iterate through it.  This step shaved at least 30 seconds.  HUGE impact!  Did it chip at my ego... sure.  I'm only human.  But it helps me be a better programmer and now my project is more efficient.  Win-win situation.  If I just learn to check my ego at the door, then we as a team will learn, grow and win!

Thursday, February 20, 2014

Username and Password Please

Our websites ask us this question probably a dozen times a day. Each of our sites requires us to prove we are who we say we are by entering our username and password. But what's that username again? Is it the one where my first two initials are capitalized? Was this the site where I had to put weird characters and numbers in my password? Has my 90 days been up? Do I need to think of a new password? How can I remember my password if I don't write it down? The questions go on and on. What a broken, flawed system we have. Each website has their own policy on what a password should look like. Some don't even care and let you make your password... password.

As a programmer and an avid web user, this drives me crazy. I prefer social media authentication. It's such a smooth process, and I've yet to run into any issues with it. My Facebook account has never been hacked { knock on wood }, so this is by far my preferred choice for logging into websites. But is it secure? Maybe. But I find myself asking the question... "Should I trust my information and access to all my sites { that have this functionality } to a social networking site? To me, it's like going to a seafood restaurant and asking for a chicken sandwich. It's not their specialty... it's not what they do... so I probably shouldn't get too mad if it's bad or I get sick. Is the same true for social media authentication? It's not their specialty? In fact, it appears selling information is their specialty, which should raise even more red flags.

Google authentication seems to be catching on with popularity. But if you believe the ads and gossip, they're selling information too! I do feel that Google may be our best bet for getting out of this awful credentials authentication mess. They seem to be on the cutting edge of most things technology related, and the certainly have the capital to back such a movement, should they find it profitable. But until that day comes... Click here to recover password..... sigh!

Wednesday, February 12, 2014

In the Beginning there was Angular

In the beginning there was Angular. In the beginning of this blog, that is. I use AngularJS for current projects. It serves as a Front-End framework for my applications. It allows me to communicate with the server and manipulate the DOM { webpage elements } in real-time, without those annoying page refreshes that have to reload everything just because you add one single row to a table.

Libraries such as AngularJS help a programmer do their job more efficiently. It eliminates the 'reinvent-the-wheel' phase. It also gives you a base of where to start. There are tools out there to help you even setup your base application for a new project... but we'll talk about those in another post. For now, check out AngularJS. Add some Angular to your page, mess things up, try something new. And when you do, try out ng-cloak. You'll love it!