Skip to main content
 

 

Mark Zuckerberg is TIME Magazine's Person of the Year? Where's the "dislike" button?

Facebook's users are not connecting directly with each other. They are speaking to Mr. Zuckerberg, who first writes down and files away everything said, and then maybe relays it to the intended destination, if it suits him.

Mark Zuckerberg is TIME Magazine's Person of the Year? Where's the "dislike" button?

 

 

Rotate PHP logs

Our php.log was nearing 550MB so I was investigating how to rotate the logs. The easiest solution seems to be using logrotate (ubuntu linux) with a script like follows.

sudo nano /etc/logrotate.d/php5
/var/log/php5/*.log {
   daily
  daily
   14 days
  rotate 14
  missingok
  nocompress
  sharedscripts
  postrotate
  apache2ctl graceful
  endscript
}

You can check the configuration by running logrotate --force /etc/logrotate.d/php5

 

 

When is it SQL Server RAM Upgrade Time?

How do you know you need more RAM?

Take a look at your Buffer Cache Hit Ratio, ideally you want to be at 95% plus.

via Less Than Dot - Blog - The SQL Server Memory Leak Confusion.

 

Subversion repository creation rule

Do not use capitals for repository names!
Because when checking out a working copy you will have to specify the respository url case sensitive. Failing to provide the correct case sensitive name result in things might appear to work but you might get access forbidden messages for certain users in some point, and other mysterious errors, such as the svn commit error below:

access to '/svn/project/!svn/act/c50e0f11-eec3-154a-9695-20ec222ad7f3' forbidden

 

InstaPlay 1.0

As a hobbyist music producer, I have a lot of samples of sounds. As I have decided to start organising these, I needed a quick way to fire off samples in wav and mp3 format through Windows Explorer.

So I created InstaPlay. This is a simple sound player. To install it simply unzip it in a directory that's in the path, and then associate wav and mp3 files (and whatever else you want to use) with it.  It also has a few features:

  1. Just double click or run a soundfile to hear it play.
  2. Nice speaker icon in system tray while a sound is playing. Double click it to quit InstaPlay and stop playback.
  3. Run  another sound file to switch playback to that instead.

This program will help you categorize more efficiently as you can move the sound that's being played without pesky 'file in use' prompts.

Download Info
Download the latest version (v1.0 - updated 14/oct/2010)

 

Quote of the week

I'd post the other two examples, but I wouldn't want to take all the fun out of reading the manual.

Source: stackoverflow.com

 

Resume RSync until finished

I noticed a backup of ours did not finish and that the temporary file rsync uses was still listed. A quick google search indicated that rsync had lost its connection. Thanks to Ian Young's article on the subject rsync now resumes when cut off and hopefully the backup will complete now.

 

Progressing your life

Lesson of life: Instead of wishing you were at a certain point with your life, think about something manageable today that you can do towards that goal.

 

Windows Integration Authentication Scheduled Web Page

This is a problem I have been trying to solve for some time on and off. Under Windows/IIS I need to periodically run a webpage that uses Windows Integrated Authentication. This rules out most of the VBS scripts and WGet solutions. I got it to work today using a batch file like below. Just add it as a scheduled task.

start /min "C:\Program Files\Internet Explorer\iexplore.exe" http://domain.com/webpage
PING 1.1.1.1 -n 60 -w 60000 > NUL
taskkill /F /IM iexplore.exe

The two most important parts is starting the application with the 'start' command (windows 2003 server in this case) so that the batch file will continue while the program is running. We then use a trick by pinging every second for 60 seconds (1 minutes) to wait for the webpage to finish what it's doing. Finally we kill off the original program.

 

[Plugin: WP List Files] Fix: links don't work when blog not installed in root of site

wp-list-filesUpdate: This plugin is no longer available.

We’re using a customized version of WordPress as an electronic portfolio for students and we are using WP List Files to make documents available on the ePortfolio. Unfortunately the WordPress support forums seem to hide my topic (possibly because it's an older version) and the author is no longer supporting the plugin.

Due to time constraints, these plugins are no longer supported and will not be updated, ever! Unless you know what you’re doing, I strongly discourage using these on a production blog since they have not been tested since WordPress 2.5.

The plugin didn't work in version 2.0.3 that we are using because the wp_enqueue_script function does not exist in this version  (the codex page does not say when this function was added). Anyway after manually adding the JavaScript to the theme's head element the plugin almost worked fine - links didn't take our folder structure into account.

works:
joeblogs.com</dir specified in post or page>

doesn't work:
allblogs.com/blogs/joebloggs</dir specified in post of page>

Fix it by replacing line 231 to read:

$files .= '

  • wpurl').$item['link'].'">'.$itemName.''.

 

The hyperlink created for the item didn’t have the complete blog URL in it. It assumed the blog was installed in the root of the domain. After this fix the plugin works fine.

 

Amasan's WordPress Tweak Roundup

Made few tweaks to improve the blog in preperation for several drafts I'm currently working on. Here's a quick rundown for everyone that's interested in the wordpress blog platform.

  • Related Posts should show up to 5 related posts without too many false positives on single article pages. I like how this plugin scores posts on relativity and that I can set it to show nothing when no posts are related, which keeps the interface clutter to a minimum.
  • A single easy recognisable block of Google Adsense adverts has been added to single articles. You won't see it if you have Adblock Plus installed like myself, but it should give helpful suggestions on articles with a single subject and support hosting costs in the process.
  • Template tweak: Moved post-meta-information from under the title to the footer (tag/cat info) so that the header is better connected with the body of the post. There's enough clutter on other sites.
  • I've visually combined  categories and tags underneath articles. Category are used for url purposes and tags  to facilitate cross linking of subjects. No need for two lists.
  • I added a tagcloud to the site so you can browse the site and discover some other articles. I don't think browsing by time and month is useful to many people so that's been removed from the site. The only concern I have at the moment is that the cloud would grow to too big a list, so in the future I might just show the top 7 tags used. For now that's not a problem.
  • PHP Speedy. This is the most important reason why the site is so snippy.

There's more but I'll save them for another time.

 

Wordpress for iPhone Impressions

I'm currently testing the Wordpress iPhone app (WfI). It's great for a free app! However I noticed a few things that need to be polished:

  • It didn't retrieve the blogs categories from my blog and the category I added to this post wasn't saved.
  • The interface is a bit slow on the frontpage when clicking an option it doesn't turn blue immediately
  • There's currently (18th June 2009) no way to edit the blog's details after setting up, or ability to remove it that I have found. I changed my user's password but I cannot change it in WfI! An Edit button on the blog selection screen would definately help in this case. I'll have to remove the application and redownload it - maybe that helps.

Still it's a great way to do some writing while not at a desktop and I appreciate the offline mode for iPod Touch users.

 

Site updates

I had a problem with my site and it has been restored to 4th January. Sorry for any inconvenience.

 

Letter to Ministry of Sound

Dear sir/madam,
I am writing you to complain about the new ministry of sound website and the lack of data protection with regards to your users.

Earlier today I received an email notification about the new MoS website. The email also notified me that a new password was issued to use on the website. These are two characteristics of a phishing mail - in this case launching a new website and sending out new passwords, they could easily have been sent from a malicious source wanting me to login to their MoS-lookalike website and take my credit card details. You shouldn't send out a new password unless someone requests it on your website, because email can be forged. You also sent out my password in plain text email rather than on a secure part of your website. Anyone can read it and login to my account and purchase orders.

Also to my surprise while investigating the source of the mail, several of the links point to a http://www.c-f-1.com/ domain (update: this domain name no longer exists!), the name doesn't help to improve the trust in your email. To my astonishment the link led to a webpage with the html email, again with my password in plain sight. Have a look (link removed), I changed my password already. Let's wait for Google to index it so that anyone can search for my account information. They already found other newsletters.

Finally, I used mosdownload.com to buy my mp3s online. This site no longer works as an error comes up when it tries to redirect, due to a configuration error. My order history is gone, most of my profile is gone.

I'm very disappointed with your lack of security and care for your customers and unfortunately have come to the conclusion that I won't be using your service again, and I will recommend my friends and family to do the same, due to these trust issues.

 

Fixing Trac after upgrading VisualSVN

If you upgraded VisualSVN Server like I have today to 1.61 and have Trac installed as per VisualSvn+Trac then you’ll notice Trac stopped working.

To fix this, follow this part of the instructions:

Add following line at the top of file C:\Program Files\VisualSVN Server\httpd-wrapper.bat:

set PYTHONHOME=%~dp0\Trac\python

Update: Later updates to VisualSvn Server break Trac.

 

My thoughts exactly

Eurogamer writes:

The community has also pointed out that SecuROM does nothing to stop piracy, as Spore was cracked before public release. Instead, they argue, the real target is the pre-owned, trade-in market.

 

TracFogbugzPlugin 0.9u-py2.5 Patch for Trac 0.11

If you use both VisualSvn + Trac (or another flavour of Subversion and Trac), and tried to integrate them with Fogbugz , you will have tried the TracFogbugzPlugin.

Trying to get this to work isn’t straightforward as it’s not compatible with Trac 0.11. You will come across the following error:

Traceback (most recent call last):
File "C:\Python25\Lib\site-packages\trac\web\api.py", line 339, in
send_error
'text/html')
File "C:\Python25\Lib\site-packages\trac\web\chrome.py", line 684, in
render_template
data = self.populate_data(req, data)
File "C:\Python25\Lib\site-packages\trac\web\chrome.py", line 592, in
populate_data
d['chrome'].update(req.chrome)
File "C:\Python25\Lib\site-packages\trac\web\api.py", line 168, in
__getattr__
value = self.callbacks[name](self)
File "C:\Python25\Lib\site-packages\trac\web\chrome.py", line 460, in
prepare_request
for category, name, text in contributor.get_navigation_items(req):
File
"c:\Python25\lib\site-packages\tracfogbugzplugin-0.9u-py2.5.egg\fogbugz\fogb
ugz.py", line 22, in get_navigation_items
yield 'mainnav', 'fogbugz', Markup('<a href="%s">FogBuz</a>',
self.baseurl)
LookupError: unknown encoding: >/">https://<<myurl>>/

To fix this line 22 needs changed, to read:

yield 'mainnav', 'fogbugz', Markup('<a href="%s">FogBuz</a>'%self.baseurl)

Or download the file below and use it as part of the installation instructions (if this is your first Python Egg you want to read about installing Trac plugins. ;)

Now it is loading but the plugin doesn't seem to work, haha.

Download: Patched tracfogbugzplugin-09u-py25

 

Passing and receiving multiple values to VbScript functions

Maintaining code can be a real pain in backside. Especially when you’re using shared code, almost always at a later date you will want to make the code more versatile to accommodate a scenario you hadn’t thought of before.

I’ve had experience this in an ASP / VbScript environment, and therefore I’m going to use the terminology of page and functions as opposed to files and classes:

  1. Rework the code and update all pages. This is obviously a bad idea.
  2. To extend inflexible code: Rename the function and create a wrapper in its place to access the function using default parameters that are compatible with your existing codebase.
  3. Create functions that are extendable.

To use optional parameters, pass them in an Array or dictionary object. This way you can add additional ones. The benefit that Arrays have over Dictionary objects is that they use less resources. This can be important if you are developing for a popular website.

Another advantage of using Arrays is that you’ll use less code calling the function. Using a dictionary object you’ll have to add each parameter separately, then pass the dictionary object as the parameter of the function.

On the other hand, code will be more legible using dictionary objects. Dictionary objects use  key value pairs to tell you that key A has a value B. You’ll not have to bother about the order of parameters, but you’ll have to know the keys of each function. It results in verbose, legible, resource intensive code.