Posted on
Very occasionally I’ll use an empty DIV for decoration, and in CSS use height: 1px.
In IE6 to make this work you need to put comments inside the DIV, otherwise it’ll display at the height of the font you’re using.
<div class=”line”></div>
becomes
<div class=”line”><!– –></div>
You don’t need any line-height fixes in the CSS. Yes, it’ll add to your markup a bit, but you should probably be explaining why you’re using meaningless, empty DIVs anyway.
Posted on
I like sIFR, but it really bugs me that I have to read through an entire tutorial to get something really basic up and running. This is a simple sIFR3 demo, using the basic cochin.swf file and an almost minimal amount of code to see it in action.
Download my minimal sIFR3 demo here.
I believe you’ll need to upload it to a webserver to run it, you won’t just be able to open the index.html file to see it working.
Posted on
Open a terminal window or shell (who needs a GUI!?)
sudo apt-get install imagemagick
cd image_folder
mkdir resized
for f in *jpg
do
convert -resize 30% $f resized/$f
done
Easier than Photoshop, I reckon!
I needed this today for some photos I was uploading. Photos from recent cameras are huge and Australian bandwidth doesn’t cut it. So this really helps.
Obviously you only need to do the first line once. I found this in the Ubuntu forums but it took me a while to find the right combination of keywords in Google. View the original thread.
I needed to change jpg to JPG, because the camera used uppercase and Linux is case-sensitive. 30% was good for me but you may need to change that.
If you don’t understand this, ask me, I’m happy to help!
Posted on
If there are ^M at the end of every line when you view them in vim, you can do this:
:%s/^M//g
To get the “^M” bit, hit ctrl-v and then ctrl-m.
Posted on
Find all files (not directories) and remove the eXecutable bit. I don’t know what the characters on the end do:
find . -type f -exec chmod a-x {} \;
Make all directories executable to user, read/writable to groups others (good for when the web server is in ‘others’):
find . -type d -exec chmod 755 {} \;
Make all files read/write/executable for user, readable for the group and others:
find . -type f -exec chmod 644 {} \;
Posted on
A quick one today. I was working on a mysql database that used unix timestamp produced by PHP’s time() function.
I needed to be able to quickly convert this time to a human-readable format. In bash,
date -d @timestamp
is a quick way to convert.
In a terminal shell eg:
# date -d @1224992980
Sun Oct 26 14:49:40 EST 2008
In a MySQL client, you could also use
select date(from_unixtime(column_name)) from table_name;
Or if you want a little more flexibility in the output, for example outputting 27/02/09, you could do:
select date_format(from_unixtime(column_name), ‘%d/%m/%y’) from table_name;
This post is one of my most popular posts. Did you find the information you were after? Please tell me in the comments!
Posted on
To reverse the order of lines, eg 1-5
: 1,5 g/^/m0
For example,
one
two
three
four
five
becomes
five
four
three
two
one
To remove blank lines
: %g/^$/d
Delete all lines that don’t contain “string”
: %v/string/d
Posted on
Replace all in the current file instances of:
<a href=”link_to_somewhere.html”>link</a>
with:
<a href=”#”>link</a>
:%s/\(a href="\)\(\S\+\)\("\)/\1#\3/g
This is great if you’ve got a big HTML file that you want to demo to a client where you don’t want the links to do anything when clicked.
You could also use javascript to do the same thing – just “return false” for all <a> elements on the page.
Posted on
You’ve got a web form with lots of fields, and you want to POST them to a PHP script. Open vim, and list the INPUT tag’s NAME attributes, one per line.
<?php
firstname
lastname
address1
address2
state
postcode
?>
Now with some search-and-replace magic we can save ourself a lot of boring typing. Hit ‘escape’ to get out of insert mode, type a colon (“:”) and copy-paste this:
%s/^\(\S\+\)/\$\1 = \$_POST\[\'\1\'\];
I won’t bother explaining it unless someone asks. But what you should end up with is this:
<?php
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$address1 = $_POST['address1'];
$address2 = $_POST['address2'];
$state = $_POST['state'];
$postcode = $_POST['postcode'];
?>
Perhaps not worth it when you have 6 variables like this example; but quite handy when you have 60 variables!
Posted on
I generally only need to do this once for each project, which means I don’t do it often enough to remember. Log in to the MySQL server as root, then:
create database newdb;
grant all on newdb.* to 'newuser'@'localhost' identified by 'newuser';
set password for 'newuser'@'localhost' = password('newpass');
And you’re ready to go!
Replace newdb, newuser and newpass with whatever you like.