1. Do All Things With Love.

    My wife inscribed this on a present for me shortly before we married and to this day, they are the words I live by.

    There is no sense doing anything unless you love it. Even if you don’t love something, find something you love about it.

    2 months ago  /  0 notes

  2. I’m trying a new #API design practice… dunno what it’s officially called

    So I am trying this new API design concept. I know it has been done before but I do not know if it has an official name.

    I need your help!

    When you read this and you recognize it and know the name, let me know because I want to learn what it is really called. For now, I am going to call it, Front-End First API Design Pattern, or FEFADP for short… yea, we need a better name.

    What do I usually do when I am building an API?

    Usually, when I design an API, I am inside the guts of the API, vetting out all the details of what the API parts will be. I define the data each endpoint receives and the data each endpoint returns. I work through a lot of the error handling scenarios, figuring out which HTTP response codes to be used and what type of error messages to return.

    After I have all of that figured out, I usually build a part of the app around that endpoint. Sometimes, I leave out the error handling until later but regardless, it is similar to that flow.

    What am I trying this time when building an API?

    This time, I created a bunch of endpoints I know I will need. These endpoints don’t do much, they only return mock data. They also do not do anything to the data passed to each endpoint.

    var mock_section = {

      content: ‘__Some content__’,

      markup: ‘<p><strong>Some content</strong></p>’,

      _id: 1

    };

    .get(‘^/sections$’, function(handle) {

      env.response.statusCode = 200;

      env.response.body = [mock_section, mock_section];

      next(env)

    })

    .get(‘^/sections/:id$’, function(handle) {

      env.response.statusCode = 200;

      env.response.body = mock_section;

      next(env)

    })

    The way I am designing the API is directly from the implementation of the application I am building. I am literally building the client experience where I am implementing services within my app to hit these endpoints and modifying the mock data returned to what I need in the application. I am also adding new endpoints as I hit certain places within the app… ex. After I create a new section, I will need to edit that section. So I create an edit endpoint for that user experience.

    How is this helping me?

    It is allowing me to rapidly change the API design without a ton of time invested in developing it at first.

    It helps me figure out what I need and how I will use it because I do not have everything figured out from the beginning. This has allowed my app development to be more flexible instead of working inside a rigid API which already exists.

    Doing it this way also helps me find ways to optimize accessing data within the API so that I do not create odd scenarios where I would need to jump through hoops before hitting a specific endpoint.

    What is next?

    My goal is to develop the entire app following this design pattern, helping me shape what my API should look and act like. Instead of me guessing which endpoints I will need before building an app, I will know exactly what I need in my API because the app literally defined what is needed. From this, I will build the actual API which receives and returns for-realz data.

    Boomski!

    I will give an update in a bit about how this is going and I am curious on your thoughts.

    Have you tried this before? If so, how did it go?

    That is all,

    Cal - out

    3 months ago  /  0 notes

  3. #apis and My Love for Them

    It’s official, I am obsessed with APIs!

    Every idea I have about an application and how I would solve a problem goes directly to APIs and how I would design them and how it would be consumed. 

    I think in APIs.

    I dream in APIs.

    I plan in APIs.

    There is just something about them which tickles my fancy.

    NOUNS, VERBS, REST… Ohhh yea, that’s how I talk to you!

    HTTP response codes… uh huh, tell me what happened!

    Authentication headers… oh how you give me access.

    That is all.

    Cal - Out!

    3 months ago  /  0 notes

  4. #DartCodeLabs #AngularDart Complete!

    I just finished the #DartCodeLab #AngularDart tutorial! 

    https://github.com/angular/ng-darrrt-codelab

    Man, is it different than what I am used to with #AngularJS. It is a very different style of programming than I am used to but I would not say it is bad, just different. I am intrigued with how #Dart handles things like types, packages, inheritance, dependency injection and some how it meshes with AngularJS.

    I am planning on recreating a version of http://toflexornottoflex.com using dart to consume the API, building AngularJS services and seeing where it goes.

    Thanks #DartCodeLabs for the tutorial, I sure learned a lot!

    Cal - Out

    3 months ago  /  0 notes

  5. Deadlines will always push out our standards if we let them.

    I thought this was interesting and powerful. The context of this quote was in a discussion with a friend of mine and he took it upon himself to do the right thing and make the code of the application up to par with what we want it to be.

    He felt compelled to push himself to make it great and to be an example by setting the bar high for what we want our code to be. His thought was, we cannot use the launch date as excuse to write bad code and I have to agree, we can write good code with tight delivery dates and we should push ourselves sometimes to get it done right.

    Cal - Out

    3 months ago  /  0 notes

  6. #BeingATechLeader

    The other day I had a one on one with a team member and they said something which really made me feel awesome.

    "I felt like my brain expanded three sizes over the last week."

    To me, that is awesome to hear because I know they are growing and they are sharing that feeling with me.

    #ForTheWin

    Cal - Out!

    3 months ago  /  0 notes

  7. secondverse:

    dpstyles:

    (via This hypnotic visualization of Foursquare check-ins shows the pace of life in NYC and Tokyo - The Next Web)

    This video is the first thing I show when I give talks on Foursquare these days.  I’m still surprised by how many people doubt the power of check-in data or dismiss Foursquare as just “mayors and badges”.  

    When I can show these people NYC and Tokyo lighting up and explain that every city around the world pulses like this every minute of every day, well, that’s when they usually start to get it.  This is the part of the job that’s fun :)

    ps:  
    3,000,000,000 check-ins
    30,000,000 users
    50,000,000 places
    40,000 API developers

    To mangle an old line from El-P, “getting those check-ins fist over fist/FUCK WHAT YOU HEARD”

    (via memos-and-musings)

    1 year ago  /  45 notes  /  Source: thenextweb.com

  8. Start Your Engines!…. But, I Need Some Fuel First.

    I have found that one of the hardest things to do is to restart a project you have not touched in a few months. I sit down, open my laptop and look at the monstrosity I created and I try and figure out where the hell I left off. What were all my amazing ideas and what issue was I trying to solve? It is like when you leave the house and forgot to put the dog away and he decided to have a party while you were gone.

    Dogs had a party.

    A few months back I was in a fantastic groove; building two #nodejs applications with a buddy of mine. We got about 80% done with the MVP of our main application and I thought of a cool new idea from somthing I recognized while building the app… I call that Developer ADD.

    I shifted gears, thinking in depth about a new project instead of finishing my first one. Could I have continued and finished the first one without needing the second? Yes.

    So, where am I at now with these two projects? Well, I am in the middle of buying a house and about to move. My buddy just got engaged and is starting to plan his wedding with his fiancé. We are both working harder than ever at our day jobs and all of our current work is somewhere in GIT land. That didn’t really tell you much about the projects now did it?

    image

    We are about three months removed from doing any programming on these two apps. That is three months of not checking in code, not documenting issues or features and not learning the things we were learning while we were working every day on these two apps. What happened that made us just stop? We were doing so well, focusing on an MVP, learning cool new ways of doing things and having a lot of fun.

    Personally, I got burnt out. When our projects got closer to the end, we started to run into bigger, harder issues that would take hours to figure out and develop solutions for. We both had situations where we needed to rewrite large chunks of the app and I think it was just too easy to choose watching TV and eating Bon Bons over using my brain and powering through these things.

    I even stopped using Twitter and blogging about nodejs. I stopped going to the @DetNode meetups. I basically avoided coding at home after long days at work.

    What was I thinking, right?

    Jackie Chan Meme

    Actually, this is probably my third or fourth wave of experiencing something like this, where I was in an awesome flow of developing applications at home for fun and learning a heck of a lot and then just stopped. I do not think it is a bad thing at all and I think it is a natural process that we sometimes have to go through to reset our minds and find our mojo again but, doing it the way I did, in the middle of developing a project really kills momentum and makes it very hard to get started again.

    What did I learn? My dad always told me, “You have to know how to finish.” We would shoot pool or he would come watch me play soccer growing up and when it was clutch time and I would miss the 8 Ball or a wide open shot in soccer, afterwards, my dad would give me that line, “You have to know how to finish.” That is where I need to leave projects, in a finished state.

    That doesn’t just apply to sports and code, that goes for life projects too. See it through all the way to the end because 80% is not enough.

    Meme

    How many old Memes can I fit in one post?

    How do I make sure I finish something? Lists and goals. I write down what I want to achieve and I break them down into small chunks so that they are easy to digest and accomplishable within a short time scale. They help me create momentum and it gives me a good sense of accomplishment when I look at all the things I got done.

    To turn the tide and start gaining some momentum back towards developing these apps, one line item for me was writing about it all. Start sharing again and work towards my goals one small bit at a time.

    And, focus on finishing what I started… no matter what it is.

    1 year ago  /  1 note

  9. Interviewing People == House Shopping

    Lately, I have been doing two things… interviewing people and house shopping. I have determined that the emotions you go through are very similar for both events, hence the use of double equals (my programmer friends get it).


    Job Interview Cartoon

    When interviewing a person, I am very optimistic. I go into each interview thinking this is the person for our team and I am excited to see what they have to offer. During the interview, I have internal discussions with myself convincing me to look past flaws or characteristics that are red flags and would be detrimental to team chemistry and overall productivity.

    Then, about half way through the
    interview, my gut and my instincts take over. They scream at me to get my attention so they can tell me, “HEY, CALVIN! THIS IS NOT THE PERSON YOU ARE LOOKIN FOR.” And like a Jedi mind trick, I listen to that inner voice and accept the facts for what they are and move on.


    House For Sale

    House shopping has filled me with this same exact struggle. I go into every house thinking this could be the one and I try to envision myself and my wife living there, having family over and entertaining. In doing so, I tend to look past the fact the roof is falling off and there is a natural pond in the basement. No, I am not that blind to look past such structural problems, but you get the point.

    With both events, interviewing and house shopping, I am learning to step back and look at things as objectively as possible. Write down the important things, the red flags and the selling points.

    For interviewing, listening to your team is extremely important. Get their feedback and gut reactions. Ask your team intriguing questions and speak honestly so your team can give you objective information towards making a decision.

    The same goes for house shopping; get someone else’s opinion. For myself, I bring an army of people house shopping with me. My mom, my step dad, my sister, her husband, my realtor, myself and my wife all go look at houses together.

    Why do I bring all these people? Because we are insane. No, I bring all these people because we have a family addiction to looking at houses and we all have something to bring to the table. My wife and I listen to what everyone has to say and we ask our army a lot of questions so we can look at all the facts and make a decision.

    More often than naught, both events have taught me that being patient and sleeping on it is the right thing to do. If you feel the same the next day, maybe you are on to something. Listening to your gut and instincts is very important because they are usually right. Being as objective as possible helps weed out obvious NO’s. Getting other peoples opinions matter, but ultimately, the decision is yours (and your wife’s in the case of house shopping).

    Last but not least, do not get down. Stay positive and keep that optimistic attitude because when you find that candidate or that house, you will know it. Just, try not to talk yourself into finding flaws that might not be there.

    That’s it!

    ~Cal

    1 year ago  /  1 note

  10. jitsu deploy issues with bcrypt and Node v0.6.x

    Yesterday I tried to deploy the first part of an application on nodejitsu using their command line tool jitsu and ran into some problems. I thought I would share what my issues were, what the fix was and my experience with the nodejitsu crew.

    The Issue:

    I have been working locally and went to deploy to nodejitsu and it would not deploy. I kept getting a 500 error from the deploy which did not give me a lot of information. Everything worked great locally, but as soon as I deployed, it would blow up. I narrowed it down to something related to the bcrypt module.

    IRC Channel #nodejitsu

    I hopped on the nodejitsu IRC channel where I posed my issue and was replied to immediately. They asked me to upload a gist gist of the error I was seeing in the jitsu output so they could look at my application and dig into the issue from their end. After some back and forth with some guessing and checking, the team on the nodejitsu IRC channel was awesome and helped me fix my problem very quickly. I have been on their IRC channel a few times regarding my Node.js applications and every time they rock.

    The Fix:

    If you are having a similar issue with bcrypt and nodejitsu, follow these steps.

    • Update jitsu: sudo npm update jitsu -g
    • Update bcrypt: sudo npm update bcrypt -g
    • Make sure your package.json points to the newest version of bcrypt.
    • Make sure your package.json uses Node.js version 0.8.x instead of 0.6.x.

    The last point there, updating the version of node in the package.json file was the fix which worked for me. Make sure it points to 0.8.x instead of the older version of node.

    Moral of the Story:

    I really like nodejitsu and using their IRC channel for help. Also, make sure all the versions of all the things you are using are up to date and you are pointing at them. If something seems like it should be working and it is something dumb, it probably is.

    1 year ago  /  1 note