I code, therefore I am... a software engineer.

Master the Zettelkasten Method in Evernote: A Step-by-Step Guide for Organized Note-Taking

What is the Zettelkasten Method? Imagine having a personal knowledge network at your fingertips, where every idea, insight, and discovery is perfectly linked, allowing you to easily navigate through a labyrinth of thoughts with the click of a button. That’s the power of the Zettelkasten method—a revolutionary approach to note-taking that has transformed the way …

Read more

The Art of Writing Beautiful Programming Code

In the vast landscape of art and design, beauty often dwells in the intersection of form and function. Philosophers and artists alike have long debated the definition of beauty, with many concluding that it’s an amalgamation of unity, proportion, and harmony. But can this classical definition of beauty be applied to the more structured and logical domain of programming? The answer is a resounding ‘yes’.

In programming, “beauty” transcends mere aesthetics. It encompasses the clarity of expression, the simplicity of design, and the elegance of solutions. When code is beautiful, it not only works flawlessly but also communicates its intent clearly to its readers. This duality of purpose—to serve both machines and humans—is what elevates programming to an art. Beautiful code is that which is efficient in execution yet remains accessible and maintainable for fellow developers.

Read more

What is Information? And What are ITs Metaphysical Consequences?

“The I.T. Crowd” is a British sitcom that revolves around the comedic escapades of the socially awkward IT department located in the basement of Reynholm Industries. The series follows the misadventures of tech geeks Moss and Roy, and their computer-illiterate manager, Jen, as they navigate both the technical and social challenges of their daily lives.

In Season 3 Episode 3 (Tramps Like Us), Jen interviews for a new job at another company. During the interview she is asked the meaning of “I.T.” She has no answer so she excuses herself to the “loo” in order to call Moss or Roy for the answer. The following conversation ensues.

Jen: [On the phone] What does IT mean?
Moss: What?
Jen: IT. What does it mean? Someone just asked me.
Moss: You don’t know what it means?
Jen: No, I never thought to ask.
Moss: This must be Jen!

The answer to the question, of course, is “information technology.” That raises an even more interesting question.

Read more

How to Deploy Web Applications to IIS Using Powershell

NASA Shuttle Takeoff w/ Powershell Icon

My development team utilizes the old school zip-and-deploy method for building, packaging, and deploying web applications. Our typical web application runs on the Microsoft .NET Framework on a Windows server running IIS (Internet Information Services).

Our deployment strategy going to production servers is much more complex and involves an IT operations team. However, for our test and development servers, we have liberty on how we deploy. I was formerly pushing across all of the files in the build to the webserver from our build server. As the number of files in our web applications has grown, this became quite time-consuming. I needed a way to push over a ZIP archive of the web application, which we are already building, and then deploy it on the webserver.

Read more

How to Prevent Data Loss in the Subversion Cleanup Cycle

Subversion is an open source version control system. It uses local directories and files as metadata in order to keep track of synchronizing your local copy of a project with the copy that is on the Subversion server. Sometimes these local files get “hosed” (that’s a technical term meaning really messed up). This is usually because there was a connection issue that occurred during the time that you were performing an SVN action with the server.

In such cases, the software will inform you that something went wrong and that you need to perform the Cleanup action. And in some cases, this Cleanup action also fails, leaving you with a project that can no longer commit code changes back to the server. What to do?

Read more

YouTube Banned Me! You Won’t Believe the Reason Why.

YouTube Banned me like the Soup Nazi

I have been rejected, cast off, shunned, and exiled… out of the land of YouTube. YouTube has terminated my account and banned me from ever making another account! What is my crime? Your guess is as good as mine. I have absolutely no idea.

UPDATE: On March 30, 2020 my YouTube account was restored. Read to the end!

Read more

How to Delete Old Emails in MS Exchange Using EWS

Background

I work within a corporate environment that manages its own Microsoft Exchange Server. I am also on a development team and receive thousands of automated email messages per day from various services that run across multiple servers. I started out creating rules for these emails in MS Outlook that sorted them into folders based on the service that generated them. I would go in once a day and clean out the folders. This is a bit tedious. Additionally, I want to keep emails that are within the last day in case something goes wrong with that service and I need to reference an email that was generated. Even more tedious.

Next I thought to myself, “Why don’t I use the built-in Outlook Archive method?” That would be a great option, but my company manages our archive policies, meaning I cannot modify them.

Finally, having all other avenues closed to me, I decided to write my own utility to perform this task. I am, after all, a Software Engineer.

Read more

How To: Create a NetBeans Startup Project

As a user of the NetBeans IDE, I have always had this one complaint. NetBeans has what they call Project Groups. These are used to group projects that should be worked on at the same time, similar to a Solution in Visual Studio. You can define multiple Project Groups and switch between them. Great, right? What’s the problem?

The problem lies in the fact that NetBeans will always open the last Project Group that you had open when it starts up. Some of the projects that I work on are quite large, with Maven repositories that must be scanned and re-indexed upon startup. That’s all fine and good if that is the project I am working on, but if it isn’t then it becomes a big headache. Then I must cancel the operations and try to convince my machine that I really don’t want to go through all of that scanning and indexing… I just want to open up a much smaller project or even create a new one.

My solution: Create a Startup Project Group and have NetBeans always open that when starting. Here’s how to do it.

Read more