The First Lines of Scratch

Scratch should be seen as a tricycle and meant to be used as an introduction to programming concepts. You can learn more on Scratch MIT.

It's meant to be fun, safe, and reasonably representative, but it's also designed to be outgrown and if you find your lessons are not being met with the same enthusiasm you can move on to more complicated languages.

Having said that, I ran a Scratch game development contests for some time now with the kids in the family, which has been met with a lot of enjoyment. And I have seen my nieces and nephews make some really great stuff with Scratch.

And I have been able to create a reasonably accurate orbital mechanics simulation with it. But that is the subject of another post.

What is nice is that the language is based on Smalltalk. Think of it as a springboard into Javascript. There are plenty of powerful features including support for arrays, message-passing, and custom blocks that will allow them to stretch their programming muscles and get enjoyment of making something for real. One of the latest feature now allows kids to store data on the cloud. My niece who just turned seven has used it as a way for her to store high score data and she and her friends play against one another.

You can do a lot of neat things with it which even a little bit older children can enjoy.

But since kids like to see what they have made programming can be a challenge to teach. And other languages have a higher upfront cost when it comes to getting things on the screen. That is why Scratch comes with two graphic editors as well as a basic but serviceable audio capture and editing tool.

I taught my 14 yo niece programming with JavaScript and she loved it. She liked that the language was easy to write and read, and it is more forgiving with the syntax than other language. And she was able to go home and continue on with what we learned since you don't need much except a browser and a text editor. Both of which are not hard to come by.


Stepping Into the Boat Shoes

For me salt water runs through my veins, and with that so does the urge to own a boat. So it wasn't too long after I moved out that I bought my own boat. It wasn't anything special, but it was mine. One question that friends often ask me is how they can get into boating, they make suggestions like joining a boating club, etc.

I recently got the question again so I wanted to break it down a little, and see what you think so that you can make an informed decision of your own.

One way is the club, but look at about spending $300 a month (docking a boat is expensive as well) but with a club you can reserve a boat for whatever day you are planning.

When you get into boating there are lots of questions to be considered.

Some of them include:

  1. Honestly, how often are you really going to use the boat?
  2. What does a typical boat rental cost in your area? A one off rental is often more affordable than being in a club!
  3. When you join a club, will you be able to keep the boat out an extra hour, day, etc, can you? Not all of them allow for this so keep an eye out for it when you are doing the paper work.
  4. Cost. Are there any other costs to taking the boat out (gas, etc)? You bet! And you will probably spend about twice on fuel than for a car traveling the same distance.
  5. When you join a club, do they have enough boats? Not all clubs can adequately serves your purposes on popular weekends, some of these include: memorial day, labor day, etc?
  6. What happens when the club boat has a mechanical issue, who pays? Hint, it might be you!
  7. Age plays a role here as well, does the club have new boats, older boats that are well maintained? You will find a mix in most clubs, but this can be an indication that they are worth the price.
  8. Let me just through this out there, how is insurance handled?

That list should get you going and help you make some thoughts on what it means to join, what is essentially a timeshare. Clubs cost a lot, owning a boat costs a lot. And either might be a good fit for you.

But if you decide to buy, there is the added expense of finding a place to store it. And they charge by the foot if you dock it. If you do not have a suitable place to keep it docked, you will need to keep it on a trailer which means that you need to have a suitable tow vehicle.


  • Do you have the money on hand to buy a boat outright? If not you will have to find another way to finance it, and if that is the case the extra expense that come with it might be out of the question.
  • Then, unless you have experience, you will have to find one that fits. Do you know for sure what kind of boat you want?

Getting into boating isn't hard, especially if you have the money, but the reason most people turn away from the idea is because they do not realize how much goes along with it.

Clubs might be a way in to the world if you've never owned a boat before. They allow you to discover if it's right for you. But don't be surprised when you have to sign a big contract. And shell out thousands a year.


Off to CodeCademy

I can't say that I know it, or that I have used it. If I had to, I would say that I poked around CodeCademy to see what all the fuss was about. And that is what I have been hearing, fuss. And that doesn't always translate to quality. While, it seems decent for teaching beginners but In all honesty I prefer just reading up on the documentation and following written tutorials if I am trying to understand a new technology or language.

Yet, CodeCademy was making some waves and I do tend to checkout the source of those waves. What I kept hearing, where people say that it was pretty good and easy to use. What I saw though was that you have to really make it a point to understand what's going on.

I watched somebody use the Python course, and they were pleased at their pace and with everything that they "learned". When I talked to them later they were about halfway through the course, yet they hadn't grasped everything leading up to that point. This only became obvious when they tried moving on to the next exercise and they were completely lost.

The basic foundation was simply not there.

From my exposure I would say that CodeCademy is really only good to give people a taste of programming.

It will be hard to build anything past a simple static website after completing most of it. In the end I feel like it is a great way to get my feet wet in new technologies and may ignite a few peoples interest in programming.

As far as I can tell, the exercises are short and simple, yet that is rarely how programming works.


If (Web Developer == Software Engineer)

What's In A Title?

Seriously, is there really that much of a difference between these two titles anymore? I mean it's pretty much up to somebody in HR, and how they decide isn't very in tune with what is what in the tech world. I assume that is the same for the other office chairs they fill, but that isn't my part of the office. Still it can get annoying, especially when they reclassify titles, usually with a huge salary difference.

And trust me, they do!

If you have been interviewed by them you will have noticed that they rarely know anything, yet they use the terms interchangeable and try and speak as if they have more knowledge about the subjects than you do. If they really did, they would be debugging the application, not sitting their hiring you to do it.

I will be fair. This is not true for all companies. In some companies, Web Developer and Software Engineer are two different positions.

In companies like that, WD will be focusing on front-end technology, SE will focus on back-end and system level programs.

In other companies, they are exactly the same thing and they will expect you to be a Jack of All Trades (and if it is a startup, master of them all as well). Some of the the companies I have worked with didn't even use one or the other.

I've been called an analyst, programmer, programmer analyst, engineer, developer all in the same job (partially by the same person). What did it mean in the end? That I was expected to fix things and add new features to a staggering behemoth that was in dire need of refactoring.

Did it happen?

Not all of it, but you can always pull a few levers and still look golden. But that is beside the point.

There's also another view which I should mention. The idea of a Software Engineer is sometimes more flexible. They think that you are in a hire position, meaning that you should be able to do web development as well. That is to say that you can build a billion dollar mobile app, write a complex desktop application and then jump in and write some low level C code. Whereas they see a Web Developer as somebody that is only expected to handle web/http applications.

You know; the holy trinity of HTML/Javascrit/CSS.

Still there is nothing keeping them in that category.

Anyone can call themselves a "software engineer" here in the US and you will encounter many software companies that call their employees software engineers because it is more in style right now than other titles. (It makes the company look bigger and more important.) The term "engineer" is not "protected" in that sense.

That is not true for other countries.

In some countries you can call yourself a Software Engineer only if you have the degree (e.g. Germany) and if they have the degree they will take offense when you use the term "without earning it." At least the import did at my last job. It was fun teasing him about it.

The truth is though, that today's Web Developer are able to do more and more. The web is also getting to be more like a real application so the difference is becoming blurred.

Many modern websites are more than just that — they are full web applications.

One that I had a lot to do with lately is Magento. nd to call that anything less than a complex eCommerce platform would be doing it a disservice.

It requires an understanding of an array of programming design patterns and paradigms in order to be able to use it. Yet due to the nature of the beast you would be called a Web Developer if names actually had meaning. So you could say that my appropriate title was Web Developer since it is after all a web application.

Which leads us to the question of the day; What's with the ->

Software Engineer/Software Developer/Software Programmer

These days the titles are used completely interchangeably and the terms are interchangeable, regardless of their historical meanings. Which I felt like I knew at one time. But then I realized that I didn't know anything.

And yet I am going to share my informal rule with you.

But in all seriousness, if you are concerned about what happens at the machine level or regard garbage collectors as a nice to have, you're probably a programmer.

That isn't true about a developer, there is a good chance that they are not going to even care about these aspects. What they are going to be concerned about is finding and leveraging tools to deliver rapid prototypes as well as new features to production. This will typically be in a business setting with end users who are not overly technical.

Then we have the engineer who focuses on building the tools that your developers focus on being extremely adept at using.

The engineer will focus more on delivering robust, quality solutions and providing guarantees of backwards compatibility, for users who are technically savvy.

Today well all see things less strict, though those differences are there they don't have different meanings, to recruiters/HR which are about as technical as a shaved monkey and think there should be a difference.

Oh well, throw them a banana for trying.


Took to the Surface Like A Pro

Or How the Surface Pro Became My Main Machine

I've been using my Surface Pro for a while now, and while I wasn't expecting it to it has become my main development machine. I thought that it was going to be small, and in truth it is, but if you need to you can always connect it to an external monitor so size wasn't as big of an issue as I had first imagined.

Technically speaking the Surface wasn't really a down grade from my machine (my desktop did everything I needed and more, even though it was older), aside from the 4GB RAM limitation (my old desktop had 8GB), it is a pretty much comparable machine. And I have replaced my previous dev machine on the go, my Macbook Air 11" with it.

And I know that people say that they "develope" but really just means that they use it to write some simple scripts. I will give you a sense of what I'm using it for:

  • PHP/HTML/JS/CSS development in Sublime Text
  • Visual Studio
  • Server management in Powershell and cygwin


Overall, I'm super happy I got the Surface Pro, even though I didn't think that that would ever be something I would say.

And it might be partially because I didn't reallize how much I was not actually using. And if I had the chance to add to it I couldn't think of anything. Since I don't ever feel like it's lacking, and in fact I am gaining more from it since it also has the convenience of being a tablet when not being used for serious work.

As I said I ditched my Macbook Air 11", and it gets more use than my Macbook Pro 13" even though I have set it up to dual booting Mountain Lion and Windows 8.

One benefit I had not really anticipated when I bought the Surface was the remote debugging in Visual Studio. What a great feautre that has turned out to be.

Since I have the chane to hook it up to a monitor I get the added benefit of working on an app on the desktop which can be quickly deployed and debuged on the Surface. This also allows me to test all of the touch screen capabilities But since it goes back and forth so easily I can do the same in reverse from the Surface to the desktop and test things there as well.

It is extremely convenient and flexible. But flexibility is a thing that can get in the was, especially if you are using it on a soft surface. What I mean is that the keyboard sometimes flexes down just enough to not register a bunch of keystrokes which is a pain in the neck because you basically need to redo the last sequence and this breaks your concentration.

That said, it has so many features that have become very useful to me. And having a Surface Pro with an external monitor, keyboard, and mouse is pretty nice.

You can easily put your IDE on the big screen, and keep mail or docs up on the small screen.

And having the ability to debug a touch app on the small screen has saved me some time which has made it a great investment. Who would have known?


My Fort Lauderdale Commute

It is unpleasant going from Miami to Fort Lauderdale in the morning, but not nearly as much as Fort Lauderdale to Miami.

One reason is because the main bottleneck is Golden Glades Interchange. That is where I-95, 826, 441 and Turnpike all converge and you get congestion. It's not too bad once you get used to it but 95 is just terrible in general and there are accidents almost daily, so if you can take the turnpike you will be much better off. Once you are clear of that you will quickly see things open up until you reach Oakland Park Blvd.

Since my job is more flexible I can shift my time in the office. If you can do the same, shift your time and say, start at 10 and then stay until 6 you may be better off and actually save some time your commute.

There is even the options of the Metro / TriRail and then bike it the rest of the way to work. I have a friend that does this everyday during the summer. Either way, if you will probably ended up with 60 minutes one way if you use either of those options. Now, if your employer is less flexible on timeliness, expect to make that 75 to 90 minutes. This does not account for accidents. In that case call or send them a text.


Beach Talk

If you aren't from here, you probably won't get the context of the next post so I thought I would clarify first. Around here (Florida) people love talking about beaches. And so I figured I would share my experience from this weekend with you today.

I drove up to Boca Raton to hit the inlet beach yesterday. Such a wonderful place. They've got the inlet where boats come in and out all day. There's also some really strong tides going in and out. One side of the inlet is bordered by a long rock outcropping. It's great for fishing and for snorkeling. I was blown away by the diversity of fish you could see just a few feet offshore.

The water was beautiful, the beach was pretty clean (and has bathrooms) and the waves were perfect for bodysurfing.

On top of all this, the seashelling was surprisingly good. I found a few conchs along with murexes and cones which were always prize finds when I was younger. Can't wait to go back and try out the fishing.

But if you don't make it out to Boca you can try John U. Lloyd, there is a jetty and bigger ships going in and out which is so-so but gives you some of the same aesthetic.

And we use the jetty to fish from.

Like most beaches, it depends on when you go. You can find crystal clear water by the Dania Pier where most people walk right out to go diving.

We saw a giant ray and a manatee there last month.

One of the nice things about it is if you want less busy, you can go to any of the side streets north of Sheridan St. at any time and you get a nice relaxed and pleasant atmosphere.

If you want food, drink and people watching, the boardwalk on Hollywood Beach is nice.

They also have nice sandbars.

But the best beach "near" Miami is technically the one that also is the 2nd best rated beach here in the United States.

We really like Barefoot Beach in Bonita Springs. We don't get out there much since it is probably about 1.5 hour drive west on 75 depending on the traffic. The sand is so soft, almost like powder, and you will find a lot of shells there. The water is surprisingly clear for how big the waves were.

And they keep everything nice and clean.

It is our favorite "vacation" spot here in the area.


Watch the Sunrise

The sunrise is beautiful here. I usually end up somewhere the vicinity of 8th and 14th. But it really doesn't matter, no matter where you land you will see a spectacular sunrise.

I will say that March in Miami is a joy weather-wise. And as long as you are luky enough to have some clouds, and there almost always clouds, you will get a truly breath taking sunrise.

Depending on the morning, it could get cold/breezy since even though it isn't too cold. It can still be cold if you know what I mean. As a counter to that you will also some mosquito repellant just in case the bugs decide to come out for a bite. They usually get hungry around dawn.

As for sunsets, they can be a whole lot tricker and are more dependent on where you are. One place, The Flamingo on the beach has some really nice sunsets. While a sunrise is almost a sure thing sunsets are really iffy. By the way, if you happen to be feel like a good samaritan, pick up some trash, people can get careless with their trash on the beach sometimes. While there are often organized community trash sweepings initiaives they aren't enough and it always helps if we make an extra effort when we can.

Enjoy Miami!


For A Spin

Oh, you may tell me that I am old fashioned, but I like to keep my exercise routines simple. That is why I am intrigued when a college of mine started talking about Spin today over lunch. It isn't so much an exercise as a concept. And while I was familiar with HIIT, Spin was new to me.

Basically, when you Spin you select a single activity which you will alternate between periods of maximum exertion through to periods of low exertion. In other words you are spinning up and down, exerting yourself for short spells.

I think that it is easier to see what I mean if I use an example.

One I've been doing lately is that I will cycle in sprints. What that means is that I will tend to ride the bike at a leisurely pace, say for increments of 60 seconds, then I will ramp it up to max for 30 seconds. I try and measure this by maintaining RPM's. It doesn't matter if you have a track or a stationary bike in my experience. You can walk/jog the curves and sprint the straightaways.

This will be repeated for 10 to 15 minutes.

Sprint is a relative term because after a few sprints you'll look like a flailing llama rather than an athlete.

All of this really doesn't layout a program. There isn't a HIIT/Spin program to follow. It is more a conceptual idea more than anything else. There studies showing that high intensity training provides similar cardiovascular benefits as more endurance programs with much less time commitment.

But, for things like actually loosing the fat you need to maximize calorie burn, for which longer routines are probably better.

I have been enjoying myself, which makes things, well enjoyable. And I have seen some improvements. But, anecdotal evidence isin't evidence and I don't want to get hopes up.

My best tool has just been to eat less. Though it is simple, it has been one of the hardest things about the whole experience.

simple != easy

A Day at the Desk

Jobs can be strange. Well, they can have moments that are strange, but usually they are just jobs. But anyway I got this job about ten years ago.

In the first week on the job I was blown away at the technical ineptitude of the whole team. It really felt like they had no clue what they were doing. Even though their stats on paper looked good. Our job required a lot of code review. Out team had one of the worst ratings in the company. And I am not saying that I turned everything around. I did my job, the rest stayed the same. And performance improved slightly. When that happened I moved on to a better team. And the cycle continued. How they were able to maintain their jobs blows my mind to this day.

One example is this one coworker I had on the team. He would literally print out his code any time that he wanted me to look at it. He would seriously come to me with twenty pages of printout from the different parts of his program he felt were causing the problem.

It was strange, but it could have been worse.

When it first happened I teased him in good humor. I hoped that he would stop, unfortunately he didn't, not until I refused to help him if he didn't start using SVN for what it was made for.

It didn't stop there. If I would email him a solution he would print out the email and then type it back into his code manually from the printout. As you can imagine the man had an insane number of typos in his code that I had to make him fix after he "copied" it from my example.

Work can be enlightening.

I speak from experience.