Moving forward

Today was a pretty noteworthy day. I was able to sit down with my thesis adviser for the first time in a while to talk about my research direction, and I’m feeling fairly confident that I can wrap this Master’s degree up in a timely manner while still generating a respectable thesis. I’ve been told several times that my biggest issue is that I’m thinking on a PhD level – that the issues that I want to tackle are too big for a mere Master’s degree. Though I’m not quite sure I agree with that statement, I do know that I struggle with knowing where to “draw the line”: knowing when the idea that I’ve been stewing is “good enough” to just dive into and work with. After today’s meeting I feel like I have wind in my sails, juice in my battery, and other metaphors. And that was only the beginning of the day.

I’m getting married next year to the woman of my dreams. In preparation we’ve been saving our money, and though we already have a sizable hoard of cash, I’ve been batting around the idea of moving my Master’s research into part-time status in order to focus on full-time employment. Luckily for my the company that I currently work at part-time has expressed great interest in moving me into a full-time position! I talked it over with my adviser today, and he has given me his approval for my plan, and my plan is to move into part time after my thesis proposal, working toward my defense on evenings and weekends. Furthermore it may also be possible for me to pursue a PhD alongside work, should I choose to go down that path.

So, in one day I’ve not only gotten my science-mojo back, but I’ve also been told that it is indeed possible to finish my Master’s, and even pursue a PhD, while working to save for my wedding, and thereafter a house. I’ve got a bright future ahead of me, and it just got brighter.

Executing a sudo command without a password

I’m posting this here because I always forget the syntax. If you have a command that you would like to be executed by a user via sudo, and you would like to have them not be prompted for their password, add the following to the config file (aka the file you are editing when you run the command visudo):

user ALL=(ALL) NOPASSWD: /path/to/program

For example, to give myself permission to suspend my laptop without a password I would add the following line:

bryan ALL=(ALL) NOPASSWD: /usr/sbin/pm-suspend

 

Some Programming Tips

I spend most of my programming time working in C++, and I’ve collected a few random snippets of advice that I personally follow while programming. If they can be of some help to you — great!

  1. Avoid “object oriented programming.” Inheritance isn’t the solution to every problem. Prefer to keep your objects as standalone entities, not elements in a convoluted hierarchy.
  2. Use constructors as invariant-setters.
  3. Don’t fear exceptions: they have a well-defined semantics and are easy to use for reporting when an exceptional circumstance has occurred. Your definition of “exceptional” may vary from mine. Exceptions are easy to use, and they work great with…
  4. Use RAII. Initialize and acquire your resources in constructors, and free them in destructors. Prefer using objects from the standard library such as unique_ptr over rolling your own.
  5. Use value semantics when you can, and pointer semantics when you must. This works really well if you utilize RAII, as suddenly your code is leak-proof.
  6. If anybody suggests that you should learn C before C++, hit them in the face. C is a completely different language with it’s own set of best-practices and guidelines. Don’t program in C++ like you would in C, and vice versa.

New apartment, new blog

It’s been about two weeks since Chelsey and I moved into our new apartment, and now that things are for the most part settled into their rightful places, I figured it was time to update my blog. Before my move I played around a little bit with the Octopress blogging platform, but I’ve come back to WordPress (again) after realizing that

  1. I don’t want to deal with the hassle of managing my posts, files, etc by hand, and
  2. I enjoyed being able to blog from anywhere, not just from my laptop where my Octopress source files were located.

I understand and can appreciate the power Octopress gives you, but I just want a simple platform to deal with.

Before my move I also shuffled around my domain a bit. This blog is, as you can see, now located under a subdomain of my main website. This way I can leave the main domain open in case I find a use for it later. I also plan on constructing other subdomains in the future for various purposes. I’m always amazed at how much cleaner my online life is than my desk at home!