Wednesday, June 25, 2014

This blog has moved!

Like most things in life, all good things must come to an end.

I have finally graduated to a self-hosted blog. All future content will be posted there.

Check it out! :)

Sunday, June 8, 2014

Fake Web IDE with External Tools in Gedit

Gedit is my favorite text editor. I like that it is fast, reliable, cross platform, and has a ton of useful plugins and features. I am currently using it to work with LaTeX and unless I am working on a huge project, I will typically use gedit for all of my development work, specifically when it comes to web development. I use a lot of the plugins in gedit, but I have never used the External Tools plugin before. External tools is a very useful plugin because it allows you to do pretty much anything. :)

The reason why I wanted to use it in the first place was to find a way to quickly launch HTML files that I was currently working on in a web browser, while also saving all of the changes to other HTML/CSS/JavaScript files that were related and currently opened in gedit. This is essentially what an IDE would do when you hit "Run..."

In the past, I would just save all of my document and find the file in Nautilus to launch it. The problem with this approach is that I have an obsessive need to organize all of my projects into obscure and seemingly endless file paths. This can make it pretty difficult to find the file that I am looking for.

The External Tools plugin solves all of these issues in a very elegant and simple way. So, without further ado, here is how you make a fake Web Development IDE in Gedit using External Tools.

  1. Enable External Tools: Edit --> Preferences --> Plugins
  2. Create a New External Tool: Tools -> Manage External Tools -> Hit the Plus sign
  3. Name the tool whatever you would like
  4. Assign it a shortcut key (optional)
  5. Set the following options on the bottom right
    • Save: All Documents
    • Input: Current Document
    • Output: None
    • Applicability: All Documents
  6. In the script editor, enter the following short script. This script will open the current document in your default web browser.
  7. #!/bin/sh x-www-browser $GEDIT_CURRENT_DOCUMENT_PATH
  8. Close, and you are done!

You should now be able to use whichever shortcut you created to save all documents that you are working on, and open the current document in a web browser. This makes debugging much easier for web applications, and makes gedit a perfect lightweight web IDE.

If you have some handy tips and tricks for gedit custom tools, please share in the comments below!

Friday, May 30, 2014

Free Software Foundation is Hiring a GNU/Linux System Administrator

Just wanted to pass this along, seems like a great opportunity!

FSF seeks full-time senior GNU/Linux systems administrator

The Free Software Foundation (FSF), a Boston-based 501(c)(3) charity with a worldwide mission to protect freedoms critical to the computer-using public, seeks a full-time senior systems administrator.
The ideal candidate will be a well-rounded GNU/Linux systems administrator who thrives on constant broad-based learning and problem-solving. (S)he will be familiar with the free software community and how it works, and will be more interested in making a substantial contribution to software freedom and having employment consistent with ethical ideals than obtaining the highest salary.
This is an opportunity to work for the organization that started the GNU Project, launched the free software movement, and safeguards the GNU General Public License. The position includes frequent contact and collaboration with many of the core GNU developers, and currently reports to the executive director.
Together, the senior systems administrators have a great deal of influence over technology decisions within the FSF, and do crucial work empowering thousands of others to develop free software.
With our small staff of twelve, each person makes a clear contribution. We work hard, but offer a humane and fun work environment.
The FSF is a mature and growing organization that provides great potential for advancement; existing staff are prioritized for any new job openings.

Example systems administration tasks include:

  • Be a lead voice in the Foundation's software system decision-making
  • Install and maintain fully free GNU/Linux systems on servers, desktops, laptops, and embedded devices
  • Support GNU developers and FSF staff in their use of FSF-owned systems
  • Monitor and improve system security and network infrastructure
  • Spec and purchase new equipment
  • Coordinate work of volunteer systems administrators
  • Share in the on-call rotation to deal with core system emergencies
  • Learn about and work with cutting-edge free technologies like Coreboot
  • Blog publicly about the technologies and techniques used at the FSF; inform FSF policy positions in technical areas

Programming is occasionally required, such as:

  • Fix bugs and submit patches upstream for the software used at the FSF
  • Design, write, and release new software when existing software doesn't fit the bill
  • Improve and maintain existing custom software

Useful specific experience includes:

  • 4+ years experience as a GNU/Linux systems administrator
  • 3+ years experience with at least two programming languages
  • 2+ years experience with an apt-based GNU/Linux distribution
  • 1+ years experience with SQL (preferably PostgreSQL or MySQL)
  • Undergraduate college degree, or in lieu of degree, substantially more experience than that listed above
  • A portfolio of contributions to free software projects or their development infrastructure

Expected technical skills are:

  • Expert knowledge of systems administration for GNU/Linux with apt-based distributions
  • In-depth understanding of key network protocols such as TCP/IP, BGP, DNS, SMTP, HTTP, FTP, NFS, DHCP, etc.
  • In-depth understanding of key system components such as virtualization, automated systems management, software RAID, MTAs, etc.
  • In-depth knowledge of Drupal and Nginx
  • Familiarity with at least two of Perl, PHP, Python or Ruby. High proficiency (expert preferred) in at least one of these languages
  • Thorough knowledge of network and system security, especially as related to the kernel Linux and common Internet services
  • Knowledge of network routing and related services in GNU/Linux, such as iptables and stateful firewalls
  • Ability to design SQL databases
  • Ability to spec, purchase, assemble, and debug components for custom-build server systems

We will prefer candidates with additional skills, such as:

  • In-depth knowledge of CiviCRM, Xen, Puppet, Exim, Spamassassin, Mailman, Quagga, Apache, RT, Coreboot, Squid, Zope, Plone, Semantic Mediawiki, CAS, Django, SQL Ledger
  • Knowledge of version control systems: Git, Subversion, CVS, RCS
  • Soldering, making your own Ethernet cable, extremely high Nethack scores

We also require:

  • A willingness to learn and understand how the political and philosophical positions of an organization impact computing requirements
  • An ability to work as part of a team and to handle and coordinate contributions from a volunteer core
  • Being open-minded and tolerant of others

Benefits and salary

The job must be worked on-site at FSF's downtown Boston offices, because it involves caring for equipment that is physically located there.
It is a union position. The salary is fixed at $61,651 and is non-negotiable. Other benefits include:
  • reimbursement for some relocation expenses,
  • full family health coverage through Blue Cross/Blue Shield's HMO Blue program,
  • subsidized dental plan,
  • four weeks of paid vacation annually,
  • seventeen paid holidays annually,
  • public transit commuting cost reimbursement,
  • 403(b) program through TIAA-CREF,
  • yearly cost-of-living pay increases, and
  • potential for an annual performance bonus.

Application instructions

The position is available immediately, and we will be accepting applications until it is filled. To ensure consideration, please submit your application by 10am EDT (15:00 UTC), Monday, June 16th, 2014.
Applications must be submitted via email to The email must contain the subject line, "Senior Systems Administrator." A complete application should include:
  • cover letter,
  • resume,
  • contact information for three references, and
  • links to any published free software work.
All materials must be in a free format (such as plain text, PDF, or OpenDocument, and not Microsoft Word). Email submissions that do not follow these instructions will be overlooked. No phone calls, please.
An on-site interview will be required with the executive director and the technology team.
We are an equal opportunity employer, committed to promoting a diverse workplace, and do not discriminate based on gender, sex, race, color, religion, national origin, age, disability, marital status, or sexual orientation.

Monday, May 26, 2014

New Intro to Linux EdX Course

I was excited to see a new course on EdX called "Introduction to Linux". Although I have been using Linux for nearly 10 years now, I my check it out just to see if I can learn something that I did not know before. This course is being sponsored by the Linux Foundation, I hope to see more Linux-Focused courses in the future on EdX.

LaTex Cheat Sheet

I spent all day yesterday fumbling through an assignment that had a ton of eqeuations in it using the equation editor in LibreOffice. By the end of it, I was so annoyed that I committed myself to learning LaTex for all future documents. This is something that I have always wanted to do, but it is quite overwhelming. The power that you get for equations is great, but it has a very steep learning curve for everything else.

I am using TexLive in Ubuntu, gedit for editing the documents, and the gedit-latex-plugin to provide some handy tricks.

There are a ton of great resources out there for LaTeX, including this amazing WikiBook, but the best thing I have found so far is this LaTex Cheat Sheet that is full of great information geared toward scientific papers.

I am also using gnuplot to plot our various functions and graphs, it works great and I have been using it for a long time. I was excited to see how easy it was to incorporate my plots into LaTex documents.

I am sure that this is a good investment of my time, and will help me produce high quality documents with low stress and no more clicking around an equation editor.