Feb 26 2010
New Improved Development Environment!
I finally got my home development server completely updated, including a freshly compiled Gentoo hardened kernel! Now that I’ve got my server setup and working smoothly again, I started looking into the IDE side of the equation so I could do PHP web development on my laptop.
So after looking around a bit, I stumbled upon the idea of using Eclipse to do PHP development. In the past I have disliked Eclipse due to it’s tendency to have problems with it’s workspace “.metadata” files over time, along with it’s slowdowns and/or freezing. However, after seeing a presentation about Mylyn I reconsidered. After looking up some other plugins, I was convinced that Eclipse is definitely worthy of a second look. What’s Mylyn you ask? In a nutshell: Mylyn is a task oriented plugin to Eclipse, giving you the benefit of saving what files & tabs you have open in Eclipse for a specific task. A task can be anything, a bug report in Bugzilla that you’re working on, or simply a powerpoint presentation (An example given in the presentation with Tasktop Pro, the fully featured task oriented desktop app from Tasktop Technologies).
Why am I reconsidering Eclipse? Well for starters:
- It’s built on Java, so I won’t be tied to using Windows for my laptop forever (Eventually I’m looking into getting a Mac)
- Mylyn allows integration with Bugzilla, along with a solution to my constant “too many tasks with too many tabs” problem.
- It includes built-in task scheduling features, perfect to start training myself to do better time management.
- Allows for developers to share “contexts” for each task (or bug) with one another, allowing for easy views on what parts of the code a bug/feature affects. Collaboration is made that much easier!
- The PHP Development Tools (PDT) project gives PHP code completion, PHP debugging (once you install an apache server library), and all the other nice standard features of Eclipse. For the Apache module, you’ve got the choice of either the free & open source XDebug or the binary blob Zend Debugger.
- The Subclipse plugin (Modern Git Repo) allows for nice integration with SVN (although I prefer git, I am forced to use for a couple projects). I was also familiar with using this plugin in my college’s Software Development class, where we used Eclipse & SVN to do Agile Java programming with many different teams over the course.
- The Ajax Tools Framework (ATF) gives many of the features that the FireBug plugin for Firefox supports including: DOM Inspector, JavaScript Debugging, live CSS style editor, and all that good stuff. It does this by embedding Mozilla into Eclipse!
I’m really excited to start debugging PHP code on the server. Previously I’d been using jEdit, an SSH terminal, and Firefox to develop. This upgrade should improve my productivity a lot.
Jul 2 2010
My Yubikeys Three, OpenID, and Productivity
I just received a couple of brand new version 2 yubikeys! Previously, I had been one of the first round of people to purchase the version 1 yubikey. Originally back when I had first received my version 1 key, I had high hopes of playing around with it as a home project. However, things in real life managed to pull me away from getting very far with it. I had planned to help with the yubico-pam module for linux, or perhaps mess around in PHP or Ruby to implement my own authentication server. This reminded me about my current struggle with Getting Things Done (GTD). Along the way, I’ve learned a couple of productivity tips that I’d like to share.
With college coming to a close, I ended up having too much to handle between my Security & Privacy, Java/Datastructures, and Senior Design courses. (That’s not to mention the internet radio show and DJ-ing.) However, I did learn a thing or two about SSL, Java programming, and RFID last year. Knowledge is always good!
Being Productive with Projects
Lately, I’ve been really wanting to pick up some of my old abandoned projects so I can try to break my old habits of procrastination that I learned too well in college. There are mainly three things that I’ve been battling with to do this:
Time Management
The first thing I started learning was to try and figure out how to schedule the various things that I need to get done each day. It’s a lot harder than it sounds. The first bad habit I had to break here was the nocturnal sleep schedule that college had ingrained in me. Getting a job helped with that, because it started forcing me to get up early. I’ve always been somewhat of an insomniac anyway, and have learned that if I don’t get enough sleep one night, then the next I’ll definitely be really tired and want to get to bed early. The first few weeks were painful, but I think most of it is out of my system.
Learn to break the inertia
The next obstacle to combat procrastination is to create a small goal for yourself and then just start working towards it. I’ve found that the longer I work with a specific goal in mind, the easier it is to keep going. This works even after stopping for the day. Once you start your wheels turning, it’s definitely easier to motivate yourself.
Don’t get distracted
Here’s the one I’m currently fighting. I’ve always been able to multitask, but there’s a point where this gets really distracting. I’ve found that my first problem here is surfing the web to research one thing, and then the next thing I know I’m looking up why cats lick themselves so much. I’m not sure if it’s ADD/ADHD related. The other problem with getting distracted has to do with subtasks. I usually start task A, and then realize that I need to get subtask B done first. This can go on forever until I forget which task I started out on, or which order I needed to get them done in. (Perhaps a stack could help here).
To combat this, luckily I’ve found a couple tools that can help.
Mylyn
The first is a plugin for Eclipse called Mylyn. I first talked about it in my post titled “New Improved Development Environment“. It’s made managing tasks in programming much easier. The main idea here is that for any given programming “task”, you’ve got a set of files that are related to it. For example, your task could be “fix CSS bugs”, so you would have a bunch of CSS files open that you’re editing. Mylyn takes care of this problem by keeping track of which open file tabs are associated with what task. It calls this a “context”. The other thing Mylyn does is integrate with various bug trackers, so you’ll see all your current bugs as tasks in Eclipse. There’s also a professional version of Mylyn called “Tasktop” that takes this idea of task-oriented tab management to other applications, including Firefox! Sadly, you’ve gotta pay for it, and it’s kinda pricey ($99).
The next tool I found was inspired by my desire to have something like Tasktop.
Managing Tabs in Firefox
We’ve all probably had the problem of too many tabs in Firefox. Even if the tab overload doesn’t bring the browser to a crawl, it sure does slow down my productivity! That’s where the TabMix Plus plugin comes in handy.
TabMix is a session manager plugin for Firefox. Firefox has it’s own built-in session manager, but it’s mainly limited to one session which it restores on the occasion of a crash. TabMix lets you manage multiple sessions, which can be composed of window(s) that contain multiple tabs. Before I had this plugin, I would generally have a bunch of subtasks (or even completely different tasks) going at once, all in a single Firefox window! Now, I organize my FF windows by separate subtasks, and save each session with some description of the main task that I was doing. It’s a bit more overhead to manage and organize tabs, but it definitely keeps me much more focused and clear headed. The other nice thing is that I can set new tabs to open and load Google. Now a web search is only a Ctrl+t away!
(Tip: Google desktop also has a nice shortcut Ctrl+Ctrl that will let you type in a query and search either your desktop or the web fast too)
It’s also got nice features like: make new tabs to open next to the current one, window and session histories, control what the mouse buttons do on each tab, and a bunch of other great configuration options that I won’t mention here. Sadly the organizational features of TabMix are a bit lacking when compared to Tasktop, but overall it’s definitely a good thing to have.
By DJPhasik • Life, Projects, Software • Tags: authentication, eclipse, GTD, java, linux, OpenID, RFID, ruby, Yubikey