When upgrading a website you might see source code like this: <span style=”font-family: Arial; color: #0000ff; font-size: small;”>Some text goes here</span> You’re using CSS now and all those <span> tags are ruining it. In gvim, do this search and substitute: %s/<span.\{-}>//g Then to get rid of the </span> tags, do this: :%s/<\/span>//g
Dynamic Font/Image Replacement in Silverstripe
I’ve recently started creating sites with SilverStripe CMS, and I’m loving it. My client wants nicely rendered non-standard font titles that fade in and out, without using javascript. Here’s how I’m going to accomplish it: In Silverstripe’s mysite/code/Page.php I overload the onBeforeWrite() call in my Page class. This intercepts the data before it is written to the database. I can get the title of the updated page from $this->Title I will then use PHP’s GD (graphics) library to create a PNG with a transparent background. I’ll use imagettftext() to load a font from a TTF file and write it to …
1px high DIV in IE6
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.
Minimal sIFR3 demo
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.
Batch reduce resolution of images in Ubuntu Linux
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 …
Strip ^M from file in vim
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.
Fixing Windows File Permissions in Linux
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 {} \;
Unix Time in MySQL and bash
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 …
Assorted Handy vim Commands, Part 1
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
Turn all links in an HTML file into ‘#’
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.