Vimium is a Chrome extension that makes your browser keyboard friendly. It’s actually very cool and lets you navigate a lot quicker around a web page than you would otherwise.
After you install it, the following shortcuts are particularly useful (note you need to be focused in the general page and not inside certain items for it to work).
- shift + ? for help
- shift + F (capital F) to open things in new windows
- o to open things from browser history (esc to close this).
- / for find
- r to reload
- esc to close modes
Should you use frameworks?
One of the best things about the CodeIgniter PHP framework is the wide range of classes and helpers available, everything you need to simplify working with URLs, forms, database connections, email, strings, XML, sessions and security among many, many others.
But should you use such frameworks? I believe you should, and my reasoning is this:
"I’ll never write code that is as bug-free, secure and efficient as a community of developers in a framework."
Many programmers fall into the trap that they think they can write code better than all those that have come before them …
Luckily these days most new programmers now learn a language and then a framework almost immediately helping to mitigate this syndrome and promote good code use.
It all comes down to how honest you are about your skills. Remember, for every few lines of code you write, you have more than likely introduced a new bug.
Combine anchor and img in CodeIgniter
CodeIgniter has a number of cool URL helper functions, two of them are anchor and img which generate the anchor and img HTML tags for you.
What’s even better though is you can combine these like so:
echo anchor('http://www.praj.com.au', img('http://content.praj.com.au/blog/favicon.gif'));
Which produces the combined image with a link anchor around it.
“Left wing? Right wing? I’m staying in the plane.”
Heed the warnings and advice.
How do you get your information?
Do you request it (pull) or is it forced upon you (pushed) through things like TV, mass-media, advertising and other ways you have no control over? Fact is, if you don’t control how you get your information (and can selectively filter it), then chances are it is going to be very biased and altering your behaviour in ways you probably don’t realise.
Such companies are not stupid, in fact they spend millions of dollars learning exactly how to manipulate you and the best way to do it. You can’t beat this (much of it is based on human psychology). So instead, what you need to control is how that information is getting to you. If you are requesting (pulling) information, you have more of a say on what it is and how you get it. However, if like most of the masses, it is pushed upon you (think TV) then you’ve already lost.
If you think this post seems a bit over the top and paranoid, then, surprise, you’ve already lost. If you don’t care, you don’t care. But the question is, do you really not care, or have you simply been programmed to think that you don’t care, when really you do?
Use one system for capturing notes
Regardless of how you do it, email archive, text files, word documents, Evernote, sticky notes that put around your monitor, it doesn’t matter, as long as you use that one system primarily for capturing and tracking your information.
Why? Because there’s nothing worse than having to search multiple systems to find something because you have been chopping and changing systems. So pick one that works for you and keep using it.
TextMate Tasks Bundle
I came across a pretty cool “Tasks Bundle" for Textmate the other day, which I’ve started using for development and work and really like.
Here’s a screenshot (it has a layout that is similar to what TaskPaper does):
A few things you may want to change through the TextMate bundle editor (Bundles > Bundle Editor) are the key assigned to completing the task (I changed this to CTRL + X) and perhaps them theme colors to your liking.
Find in files with grep
Of all the terminal commands, the one I find myself using the most (several times a day) as a developer is this:
$ grep -lr “<search text>” .
It performs a recursive search (-r) from the current location (.) looking for the search text provided and returning a listing of matching files (-l).
Basically it does a “find in files” from the command line. Very useful for quickly finding things, and super-fast (no need to wait for a GUI to load and sluggishly do the search).
Settings when developing in Moodle
Here some settings to change when you are developing in Moodle to save time purging caches:
Language Strings Caching:
Site Administration > Language > Language Settings
Cache all language strings (langstringcache)
Themes Caching (for CSS changes):
Site Administration > Appearance > Themes
Theme Designer Mode (themedesignermode)
You could also update the mdl_config table and change these values accordingly (matching name field on the name provided in brackets):
update mdl_config set value = 0 where name = 'cachejs';
update mdl_config set value = 0 where name = 'langstringcache';
update mdl_config set value = 1 where name = 'themedesignermode';
A lot of people guard their ideas, thinking that the idea is the differentiator between success and failure. The idea is just a stepping stone to building something, and the real key lies in making that idea successful through great execution. Turns out even if you have a “weak idea” but execute it extremely well, it will still be worth a lot.
So I say, focus on executing. On actually doing something with the idea (not trying to come up with the most brillant one), and see what happens. You’ll be on step closer to success each time you do this. In fact, what’s rare in the world is not brillant ideas, but people willing to execute on their ideas.
If you work with and develop web services then you can ‘t really go past soapUI. It’s multiplatform (Java based) and has a range of functional testing features.
Pareto Principle (80-20 rule)
Most people have heard of the Pareto Principle and its applications to productivity.
80% of the value comes from 20% of the effort.
The principle is a mindset. It is about optimising and making sure you are sticking to that 20% of the effort that creates the majority of the value.
I think it helps if you also consider the inverse when working:
The other 80% of the effort only results in the remaining 20% of the value
This is where “busywork” comes into the picture. You know those days where it feels like you were busy the whole time and did a lot, but when you reflect the next day you can hardly see any progress? That was a day spent on the wrong side of the equation. You were only adding a few extra percent of value, and yet spending a large percentage of effort getting there.
So make sure, 80% of your time is going to that 20% of effort which will result in 80% of the value - its a simple formula :)
As you might have noticed, I’m not much for documentation, especially stuff that sits outside of the application code base. For one thing, no one reads the documentation anyway (as the code is the source of truth), and for another, most projects follow the design-and-document-fully-only-to-build-something different approach.
However, one thing I do like are UI mockups. You can start with an intended UI and adjust as people “see” what is going to be built. Problem is, they have traditionally been painful to create (and take a lot of time). Balsamiq mockups addresses that problem by letting you create quick and simple wireframes that are easy to edit. It’s not free, but worth the money. Give it a try :)
Winning carrot from the garden :)
(Winning as in it was the biggest one I’ve grown so far)