When you make something for a living, whether it's wood carvings, SQL reports, digital art, software, or anything else, you get better every day you do it, even if you don't know it. Have you ever looked at someone else's work and rolled your eyes at a simple mistake they made, or how they did something useless or, worse, counterproductive in part of their work?
Well, that's you today. You can pick mistakes that less experienced people can make. Well you used to be less experienced, so why don't you look over some of your own code from six months ago, a year ago, or longer? You can use all those months and years of experience to make that older code better, more efficient, and smoother. Just try not to pick on yourself too much for making those terrible mistakes.
Friday, March 28, 2014
Thursday, March 27, 2014
You are your own worst tester...
Today's a quick thought is rather simple. You wrote some amazing code and you test it over and over and over, and you're confident it's great. Guess what, unless you're the 1%, you missed something. I don't know what it is, and you certainly don't know what it is, but go find someone else, either a friend, or a coworker or boss, or Alpha/Beta testers.
If you didn't think of something in your code and in your design, then you're not going to think of it in your testing so get someone with fresh eyes to look at it and find all those use cases you never thought of.
You're the first and last tester, but probably not the most important one, so get that other pair of eyes looking!
If you didn't think of something in your code and in your design, then you're not going to think of it in your testing so get someone with fresh eyes to look at it and find all those use cases you never thought of.
You're the first and last tester, but probably not the most important one, so get that other pair of eyes looking!
Wednesday, March 26, 2014
Crowdsourcing...
Kickstarter is one of the most popular sites for a major internet sensation called Crowdfunding, but I'm more personally interested in crowdsourcing. What's the difference you might ask? Well crowdfunding is a concept where you have multiple people donating money to a cause or project. This can include donations because of generosity, preorders, or other vested interest in the project that is being done.
Crowdsourcing is where one person has a project or product but rather than asking for funds, they're asking for support in the way of advice, suggestions, testing, and things like that. This concept here is that it's a sharing of ideas and the hope is that if you don't know how to tackle a certain problem, someone else will.
Then you have some that are really the best of both worlds. Most Kickstarter campaigns employ an aspect of both. First they ask for funds, but then they take the users that have donated funding, which means they have a vested interest, and invite them to forums, play/beta testing, and more. This lets the first customers also assist in the development of the project and makes them deeply involved in it, and thus they are more likely to release a better product.
So check out kickstarter, find something you like, and get involved even if it's just for one dollar. You might be surprised at what you find, and the right projects means you didn't just buy something, you got involved in a community and you're building something pretty amazing!
Crowdsourcing is where one person has a project or product but rather than asking for funds, they're asking for support in the way of advice, suggestions, testing, and things like that. This concept here is that it's a sharing of ideas and the hope is that if you don't know how to tackle a certain problem, someone else will.
Then you have some that are really the best of both worlds. Most Kickstarter campaigns employ an aspect of both. First they ask for funds, but then they take the users that have donated funding, which means they have a vested interest, and invite them to forums, play/beta testing, and more. This lets the first customers also assist in the development of the project and makes them deeply involved in it, and thus they are more likely to release a better product.
So check out kickstarter, find something you like, and get involved even if it's just for one dollar. You might be surprised at what you find, and the right projects means you didn't just buy something, you got involved in a community and you're building something pretty amazing!
Tuesday, March 25, 2014
Networking, not just a wire anymore
Just a quick something to think about. For years Networking meant one thing to an IT person and something completely different to the rest of the world. Well here's the problem, IT professionals need Networking as much as everyone else, and I don't mean the electronic kind.
Meet people, go to events, both business social and conventions or expos when you can. Hand out your card, and make contacts. Those people could save your job in a pinch if you need resources you don't have, or, worst case scenario, they can get you a new one if you're in the market.
So be friendly, practice your handshake, and get out there! It's like dating, only less emotional and easier on the wallet.
Meet people, go to events, both business social and conventions or expos when you can. Hand out your card, and make contacts. Those people could save your job in a pinch if you need resources you don't have, or, worst case scenario, they can get you a new one if you're in the market.
So be friendly, practice your handshake, and get out there! It's like dating, only less emotional and easier on the wallet.
Monday, March 24, 2014
There is such a thing as too much of a good thing.
Sometimes a simple product is loved because it does something simple quickly and efficiently. Very few features, not a lot of variations, and basic tools that are wrapped around one or a few simple use cases.
As a developer, it's hard to not say "but it could also..." and start building more onto it, and more functions, and a prettier interface, and so on. The problem is that more features means more complex. More complex means more load times and more options, and more options means more clicks and menus just to get back to what I used to do fine before.
Evernote is a perfect example of this. I used to just take notes in text documents and save them to my desktop. This worked fine for a while but before long I had way too many notes and most of them were called "note" or something useless because I was in a rush while saving.
Evernote was a simple program to take notes, organize them, put them in folders, and open/edit/save as quick if not quicker than my usual text editor. Well Evernote went through an overhaul and now takes 30+ seconds to load. When I'm just jotting down a phone number, I don't want to wait 40 seconds to type for 5, so now I'm looking for another software package that does what I want without the extra features.
The point I'm making is that you should consider what the primary use of your software is, and keep that in the forefront of your development efforts. If you want lightweight, then stop adding features, for one.
I'm not saying Evernote is a bad software now, but it's not what it was, and that means it's no longer for me.
As a developer, it's hard to not say "but it could also..." and start building more onto it, and more functions, and a prettier interface, and so on. The problem is that more features means more complex. More complex means more load times and more options, and more options means more clicks and menus just to get back to what I used to do fine before.
Evernote is a perfect example of this. I used to just take notes in text documents and save them to my desktop. This worked fine for a while but before long I had way too many notes and most of them were called "note" or something useless because I was in a rush while saving.
Evernote was a simple program to take notes, organize them, put them in folders, and open/edit/save as quick if not quicker than my usual text editor. Well Evernote went through an overhaul and now takes 30+ seconds to load. When I'm just jotting down a phone number, I don't want to wait 40 seconds to type for 5, so now I'm looking for another software package that does what I want without the extra features.
The point I'm making is that you should consider what the primary use of your software is, and keep that in the forefront of your development efforts. If you want lightweight, then stop adding features, for one.
I'm not saying Evernote is a bad software now, but it's not what it was, and that means it's no longer for me.
Friday, March 21, 2014
NoSleep - Close your macbook lid if you wanna
It may be a simple thing, but I've had issues with the idea that windows based laptops have an option to close the lid and not go into standby, but OSX clearly doesn't. What does this mean? Well if you're doing a long download, or running a vent server, or doing anything that doesn't require your attention to be on your laptop, you still can't close the lid and put it away somewhere.
No, this doesn't mean to close your laptop while it's 3d rendering some amazing animation while it's buried under a pile of blankets, but it is useful to take off the desk, put next to you, or just generally get it out of the way.
Enter NoSleep, a wonderful, free OSX app that adds a cute little icon to the bar at the top of your screen. Click it to turn it on or off, on, and your lid will darken when closed but not go into standby/sleep mode. Turn it off, and then lid closing is just like it used to be.
My review for this app is that it's lightweight, and works. There aren't a lot of features, but there don't have to be. It's easy to toggle, it's free, and in everything except OSX Lion it worked perfectly.
If you miss the windows ability to close your laptop, then hurry up over to NoSleep and catch your ZZs!
No, this doesn't mean to close your laptop while it's 3d rendering some amazing animation while it's buried under a pile of blankets, but it is useful to take off the desk, put next to you, or just generally get it out of the way.
Enter NoSleep, a wonderful, free OSX app that adds a cute little icon to the bar at the top of your screen. Click it to turn it on or off, on, and your lid will darken when closed but not go into standby/sleep mode. Turn it off, and then lid closing is just like it used to be.
My review for this app is that it's lightweight, and works. There aren't a lot of features, but there don't have to be. It's easy to toggle, it's free, and in everything except OSX Lion it worked perfectly.
If you miss the windows ability to close your laptop, then hurry up over to NoSleep and catch your ZZs!
Thursday, March 20, 2014
Don't Forget the R!
In many companies, the development team is referred to as the R&D team, Research and Development. Sometimes as a developer I feel bad when I end up either starting, or debugging, a project and get caught up in "Research" mode.
Here's the key, don't feel bad. If you're a trained, skilled developer then you're likely researching faster about your chosen field than someone else could, so you're still doing your job, and still "earning your keep" even though the research time doesn't usually bear visible results.
So don't mess around, but if don't undervalue the importance of Research in trying to solve a problem or create a solution where there wasn't one before...
Here's the key, don't feel bad. If you're a trained, skilled developer then you're likely researching faster about your chosen field than someone else could, so you're still doing your job, and still "earning your keep" even though the research time doesn't usually bear visible results.
So don't mess around, but if don't undervalue the importance of Research in trying to solve a problem or create a solution where there wasn't one before...
Wednesday, March 19, 2014
The Value of Walking Away
I can't tell you the number of times I've solved a problem by ignoring it, briefly.
No I don't mean you need to pretend it's not there until it goes away, that doesn't work, and if you're at your place of employment, usually you'll go away before it does. What I mean is that in most cases staring at a problem for endless hours won't help anything either.
On a multi-person team, if you've stared at an issue for more than an hour, and you're not making any progress and there are no leads left to follow, then run it past someone else. Sometimes you can use the rubber duck debugging I mentioned before, other times just ask someone for help, but sometimes the answer is to stop thinking about it.
Walk away, get lunch. If it's late, call it a night and start fresh in the morning. If you're missing a minor detail, then staring at it for hours on end will just reinforce the fact that you're not seeing it, it won't help you find it. You need a fresh perspective, or at least a break to think about something else then start over again.
I promise a well timed break can save hours of work sometimes!
No I don't mean you need to pretend it's not there until it goes away, that doesn't work, and if you're at your place of employment, usually you'll go away before it does. What I mean is that in most cases staring at a problem for endless hours won't help anything either.
On a multi-person team, if you've stared at an issue for more than an hour, and you're not making any progress and there are no leads left to follow, then run it past someone else. Sometimes you can use the rubber duck debugging I mentioned before, other times just ask someone for help, but sometimes the answer is to stop thinking about it.
Walk away, get lunch. If it's late, call it a night and start fresh in the morning. If you're missing a minor detail, then staring at it for hours on end will just reinforce the fact that you're not seeing it, it won't help you find it. You need a fresh perspective, or at least a break to think about something else then start over again.
I promise a well timed break can save hours of work sometimes!
Tuesday, March 18, 2014
PC part picker
This is just a note for all of you PC builders out there. Last week I discussed the build vs buy debate, so I thought I'd make a short note today and just share a site I recently started using.
PC Part Picker is an amazing resource (www.pcpartpicker.com) that is an ideal starting point if you want to go the build route. You can start with any part you like, though I'd suggest picking your CPU first, and then it will show you motherboards that fit that chipset. Then you can progress through the process, comparing prices, brands, and reviews as it narrows down what parts will work together automagically. It also shows you a historical graph of the cost of the pieces you've picked, bundles that include them at various online vendors, and more.
If you're looking to build something economical, outrageous, or just for fun this is a great site for you. If you have a login, which is free, you can even save your builds and share them with friends (or G+) for advice or comments.
So go check out www.pcPartPicker.com today and build your perfect machine, whether it's the under $300 special or the $10,000 monster machine! Have fun!
PC Part Picker is an amazing resource (www.pcpartpicker.com) that is an ideal starting point if you want to go the build route. You can start with any part you like, though I'd suggest picking your CPU first, and then it will show you motherboards that fit that chipset. Then you can progress through the process, comparing prices, brands, and reviews as it narrows down what parts will work together automagically. It also shows you a historical graph of the cost of the pieces you've picked, bundles that include them at various online vendors, and more.
If you're looking to build something economical, outrageous, or just for fun this is a great site for you. If you have a login, which is free, you can even save your builds and share them with friends (or G+) for advice or comments.
So go check out www.pcPartPicker.com today and build your perfect machine, whether it's the under $300 special or the $10,000 monster machine! Have fun!
Monday, March 17, 2014
Rubber Ducky, You're the One...
Rubber duck debugging is honestly one of the most useful and, at the same time, easy to do debugging methods I've ever used. The name is inspired by a story from a book, The Pragmatic Programmer, in which a developer is mentioned to carry around a rubber duck. He would explain his code, line by line, to the duck whenever he was stuck solving a problem.
In my life I don't carry a duck but I do have my boss, a highly organized non-programmer who politely nods his head as I explain my code and more often than not during the process of telling him where I'm stuck, I tell myself what I've been missing.
Just remember, you're not dumber than the problem you're trying to solve, you most likely keep overlooking it, and when you go line by line to yourself, you skip it again and again. If you have a patient boss or coworker, run it past him, if not, go to a private room and tell the pencil you're holding everything about the code, line by line. Will it always solve your problems? No, of course not. Will you look absolutely ridiculous? Of course! But if it works even some of the time, isn't that the start to not making the same mistake again next time?
In my life I don't carry a duck but I do have my boss, a highly organized non-programmer who politely nods his head as I explain my code and more often than not during the process of telling him where I'm stuck, I tell myself what I've been missing.
Just remember, you're not dumber than the problem you're trying to solve, you most likely keep overlooking it, and when you go line by line to yourself, you skip it again and again. If you have a patient boss or coworker, run it past him, if not, go to a private room and tell the pencil you're holding everything about the code, line by line. Will it always solve your problems? No, of course not. Will you look absolutely ridiculous? Of course! But if it works even some of the time, isn't that the start to not making the same mistake again next time?
Friday, March 14, 2014
Don't be afraid to ask why
As a developer I'm often brought solutions, rather than problems. What I mean is that someone will come to me and ask how to do something, often times something that's not simple or even recommended. For an extreme example, one might ask me how to make a car drive over water.
This is when, as a developer, it's ok to ask that person, even if it's your boss, why he wants to do that. The answer often times offers a much better solution. Bosses are excellent at coming up with the big picture, but sometimes forget to leave the solution finders the chance to find the best solutions. In my earlier example, the problem was simply that they wanted to leave New Jersey, and the answer they really needed was just to use a bridge.
So next time you're brought a really odd question, don't just answer it, ask them what they're going to do with that solution, ask them why they needed it in the first place, and you might just make everyone happier in the process.
This is when, as a developer, it's ok to ask that person, even if it's your boss, why he wants to do that. The answer often times offers a much better solution. Bosses are excellent at coming up with the big picture, but sometimes forget to leave the solution finders the chance to find the best solutions. In my earlier example, the problem was simply that they wanted to leave New Jersey, and the answer they really needed was just to use a bridge.
So next time you're brought a really odd question, don't just answer it, ask them what they're going to do with that solution, ask them why they needed it in the first place, and you might just make everyone happier in the process.
Thursday, March 13, 2014
Hire people smarter than you!
This is a message for you bosses out there. Hire people smarter than you!
Now I don't mean to give everyone an IQ test and only hire those over your number, that's just silly and rather arbitrary anyway. What I'm getting at is that people have chosen careers for a reason. I'm pretty sure that I'm a better coder than my boss is. That said, I know he's much better at prioritizing resources, organizing personnel, risk assessment, and a host of other things that I'm just practiced at.
I was hired because I can code. If you're hiring someone who sculpts ice, more than likely you're hiring someone better at sculpting ice than you are. That should apply to every aspect of employment. Find the best person for the job and hire him. Odds are he's better at that job than you would be and that's exactly why you want him doing it: so you can have time to focus more on your own job and get a better product than you could have made on your own at the same time.
Last thought: Remember why you hired that person. Don't micromanage him. If you got the right guy (or girl), then let them go, just point them in the right direction and get out of their way. Sometimes they might need a reminder not to stray a bit, but in general the more freedom you give a good employee, the better the results.
Now I don't mean to give everyone an IQ test and only hire those over your number, that's just silly and rather arbitrary anyway. What I'm getting at is that people have chosen careers for a reason. I'm pretty sure that I'm a better coder than my boss is. That said, I know he's much better at prioritizing resources, organizing personnel, risk assessment, and a host of other things that I'm just practiced at.
I was hired because I can code. If you're hiring someone who sculpts ice, more than likely you're hiring someone better at sculpting ice than you are. That should apply to every aspect of employment. Find the best person for the job and hire him. Odds are he's better at that job than you would be and that's exactly why you want him doing it: so you can have time to focus more on your own job and get a better product than you could have made on your own at the same time.
Last thought: Remember why you hired that person. Don't micromanage him. If you got the right guy (or girl), then let them go, just point them in the right direction and get out of their way. Sometimes they might need a reminder not to stray a bit, but in general the more freedom you give a good employee, the better the results.
Wednesday, March 12, 2014
Build or Buy - The Epic New PC Problem
There are many arguments for both camps, whether it's more cost effective to piecemeal buy and assemble your new PC yourself, or to have a manufacturer do it for you. I'll offer my thoughts here, but for you really impatient readers, jump down after the bullets and just read what I say there, it's really the important part.
Some Build Pros:
Some Build Pros:
- Most home built machines are easier to upgrade later, and there's no pesky warranty to break by cutting a little strip of plastic over the case
- With research, you can determine your exact needs, plus a little future-proofing, and then assemble exactly what you need rather than getting the one closest to your requirements
- For higher end machines the sums of the costs of the pieces are not usually as high as the prebuilt total would cost
- You can buy pieces one at a time as you have money or see them on sale for an even steeper improvement on cost
- Most techie geeks like me actually think it's FUN to build these things
Some Buy Pros:
- No chance of forgetting a key part you needed, like a wireless card
- No chance of buying the wrong motherboard/chip/ram/etc
- No chance of one bad piece shorting out several others and causing a cascade of warranty phone calls
- One Warranty covers everything, just buy it, plug it in, and go
- All the pieces work together, no worries about surprise hardware conflicts, things fitting in the case together right, etc
- OS is usually included
Final Thoughts:
First I want to remind everyone that I'm a hobbyist, my real job is software, but I enjoy building machines when I have the time or funds to build one. That said, I'm sure there are lots of points I'm not mentioning, so feel free to leave them in the comments below, but these are my hit-list of points that I wanted to make sure I mentioned. That said, the most common rule of thumb to keep in mind is that the more specialized the computer use (Gaming, Cad design, etc) the larger the gap in price between build and buy. If you're looking for a top of the line gaming machine, then the prebuilt ones are nice, and powerful, but tend to cost a lot more than the sum of the parts. If you're looking for a generic work machine, to use office, maybe an editor or two, Quicken, and basic programs like that then the difference in price you'd save buy building it likely wouldn't be worth your time.
To put the finest nail on the topic, if you need a high end machine, most likely you'll save money building it yourself. If you just want a basic machine to use facebook, youtube, and email, then you'll probably do better buying it.
Oh, and if you don't know how to build one yourself, don't ASSUME your techie friend wants to do it for you... for free... at 2 AM... on a weeknight...
Really people, come on! Techies are people too, have a heart!
Tuesday, March 11, 2014
One smart-ass launcher!
So anyone who knows me knows that I am always trying out new launchers, especially trying to make my phone do things I could never do when I owned an iPhone. Well I'm getting past that urge, now I want only a few things out of my launcher:
- Easy to use
- Quick to use
- Lightweight
So I tried "Smart Launcher." I really would suggest this to anyone who's tired of all the unnecessary frills that just slow your phone down. This launcher installs quickly, asks you which apps you want behind the standard icons, and lets you go.
I used the free version for at least a few weeks, maybe a month before buying the pay version. I'll make my personal pros/cons list and you decide which you want. (It's by no means all-inclusive)
Pros:
- Simple to configure the standard icons to the apps you want, so the huge collection of themes will look perfect out-of-the-box
- Lightweight and doesn't seem to tax the phone as much as some more "flashy" launchers do
- Operates in Landscape or Portrait mode
- Easy to configure little extras that I like, like hiding the status bar
- Optional plugin that shows "unread" counter on icons (calls, txts, etc)
- Supports adding folders, icons, or shortcuts to the display
Cons:
- Widgits can only be used in the Pay version
- Changing from free to pay versions basically restarts your setup
- Layout is pretty much pre-set: Circular or rows beneath a clock
Final Thoughts:
If you're looking for a minimalistic launcher that's reliable, stable, and easy to setup and use with the ability to change your theme on whim without needing hours of photo editing or tinkering with layouts, this is an excellent choice for you. If you want the nuance of making icons the exact width hand position you want down to the half pixel, then you should stay with a gridless like Lightning Launcher.
Either way, don't be afraid to give this one a shot, it's free and surprisingly durable and functional.
Monday, March 10, 2014
How about some common curtesy please?
With the advent of the internet's plethora of chat mediums, from IRC, to AIM, Yahoo Messenger, ICQ (remember that one?), and all kinds of other texting communications I think we're starting to lose touch with our manners. Let me give you an example.
A coworker of mine whom I have quite a bit of respect for always starts his IMs with a "hi".. usually followed by "how are you" before he even starts talking about work, or his question, or reason for making the contact.
It's worse than just chat though, remember a long time ago, people used to say hello on the phone, ask how the other person was, what was going on, THEN get to the reason that you called? It was called proper manners. Now it's "Hi, I need..." and I'm as guilty of it as anyone else is.
Here's the thought... next time you IM someone, say hello first. Ask how they are, and let them answer too! Instant gratification and massive increases in communication speed might just have a bigger cost than we realize at first...
A coworker of mine whom I have quite a bit of respect for always starts his IMs with a "hi".. usually followed by "how are you" before he even starts talking about work, or his question, or reason for making the contact.
It's worse than just chat though, remember a long time ago, people used to say hello on the phone, ask how the other person was, what was going on, THEN get to the reason that you called? It was called proper manners. Now it's "Hi, I need..." and I'm as guilty of it as anyone else is.
Here's the thought... next time you IM someone, say hello first. Ask how they are, and let them answer too! Instant gratification and massive increases in communication speed might just have a bigger cost than we realize at first...
Subscribe to:
Posts (Atom)