Being a scientist in a highly mathematical field, virtually all of my document preparation is done using LaTeX which makes typesetting mathematical expression quite simple, as well as effortless inclusion of tables and figures (graphs) with captions. These tasks can take herculean efforts in a what you see is what you get (WYSIWYG) word processor, e.g. the universally loathed Microsoft Word. Sure, you can insert pictures and tables, but slightly change the wording in one place and suddenly the objects that you had painstakingly placed in particular locations jump to different pages and like Sisyphus, you find yourself at the bottom of the hill having to push that boulder up again. So, why doesn’t everyone use LaTeX?
When I started this blog, to which I make very irregularly scheduled posts, I never really expected to get much if any traffic. In fact, I was surprised when someone read one of my posts and liked it. Since then, I occasionally look at the site stats out of curiosity, and I’ve noticed something. The posts that tend to get views all have a bit of a negative connotation to them, while posts that are meant to be informational or just positive go unread.
Today, I’m in the process of starting a new research project, and so far things are going very well. I’m hopeful that this trend will continue, and that the project can be completed, written up and submitted to a journal in just a few weeks. Now, the point of this post is not to simply boast about how well things are going (though I don’t think it’s important to celebrate life’s little victories). The point I would like to make is about why things are going well, kind of building on yesterday’s post about things I’ve learned about programming.
I may have previously mentioned how my days typically consist of programming. I have problems that I have to solve, I then have to think about how to solve them, then write some code to do just that. In my last post I mentioned how I was working on writing some MCMC code, and was finding it difficult to keep it very general so that it is highly reusable. Yesterday I got that code working and began doing so more intensive testing which revealed that there is another feature that I need to add, but it should only take a few minutes to do that thanks to the parameter file parsing library I’ve created. This got me thinking this morning about the things I’ve learned since I began programming, and I thought I’d share some of those as they may be useful to others. Continue reading “Things I’ve Learned About Programming”
I’m sitting at my desk trying to write some very general Markov Chain Monte Carlo (MCMC) code. I’m aware that there are libraries out there which could be used, but when I investigated them they were all so difficult to use that it just made sense to write my own code. At that time, I just wrote some code that was very specific to one problem. Now, I’m trying to generalize that code to be applicable to any problem. That is where things get hard. Continue reading “It’s hard to write good code…”
Many of you may be aware that Microsoft came under fire not too long ago for violating its own guidelines for what the little x in the top right hand corner of a dialog box or window should do, close the window and cancel any process associated with that window. Instead, they decided that in a last ditch effort to force people to upgrade to Windows 10, clicking the x on the notification that your Windows 10 update was ready (after it had downloaded itself onto your computer without your permission or by disguising itself as a different update) would essentially be you consenting to the update. I could link a bunch of articles about this, but it would probably be easier for you to just google “Is Windows 10 malware?” and you can see for yourself. After the outcry, Microsoft said they would adjust their update policy, but that’s not what this post is about. This is about Windows 10 intentionally harming peoples computers who dual boot with a Linux distribution. Continue reading “Microsoft Windows 10 is Malware”
Since becoming a post-doc, most of my days are spent writing code. I do the majority of my programming in C++, because as a compiled language, the compiler is able to make many optimizations to ensure that even my poorly written scientist code is reasonably fast. As is often the case, there are times I would like to change some values then re-run some code, and it is nice to not have to recompile each time you want to make a small change to some number, or change an input or output file name. Because of this, you want to have your code use parameter files which are read and parsed every time you start the code. Continue reading “HARPPI: A HumAn Readable Parameter-file ParsIng library”