Programming
Archived Posts from this Category
Archived Posts from this Category
Use this script to monitor VNC connections with Vine Server:
nice -n 100 tail -n 0 -f /Users/jordan/Library/Logs/VineServer.log | php -r 'while ($m = fgets(STDIN)) shell_exec("growlnotify -p 0 Vine Server -m ". escapeshellarg($m));'
Change “jordan” to your username (home directory), or the whole path of the log if you’re monitoring something else. “Vine Server” is the alert title, which could be anything (“Hello World”).
Save this as a file such as vncnotify.sh. Run
chmod 755 vncnotify.sh
and then you can run the command by typing ./vinenotify.sh.
Duplicate this file and name it vinenotify.command.
Finally, in System Preferences > Accounts > Start up items, add vinenotify.command, and make it hidden, and it will run when you log in.
Things I’m still working on: preventing a string of notifications when you launch VNC; hiding the terminal window when you log in; and grepping for only connect/disconnect/login failures.
Thanks to drewish.com for the growl tail code.
0 comments Thursday 28 Jan 2010 | jordan314 | Computers, OS X, PHP, Programming, apple, leopard, solved
Use this command to find the log you’re looking for:
lsof | grep -i log
On OS X, typical directories I look in are /var/log/, $HOME/Library/Logs/, and /private/var/log/.
0 comments Thursday 28 Jan 2010 | jordan314 | OS X, Programming, apple, leopard, security, solved
One of the most exciting features about Firefox 3.5 is its geo-location capabilities. But when I installed 3.5 and went to google maps, it didn’t automatically geo-locate me nor was there any option to.
This blog has a bookmarklet you can place on your toolbar to click to geo-locate you in google maps. Create a new toolbar bookmark, edit it, rename it “locate me” and paste in this code for the address:
javascript:function sv(s){document.querySelector("#q_d").value=s};sv("Checking...");navigator.geolocation.getCurrentPosition(function(a){c=a.coords;sv(c.latitude+"%20"+c.longitude);document.forms.q_form.submit();},function(){sv("Rejected!")});
Then when you go to google maps and click “locate me”, you can search for businesses near you wherever you are.
Thanks, John Ath!
0 comments Friday 03 Jul 2009 | jordan314 | Computers, Firefox, Programming, solved, web
I wrote this for my class, which needed to have a randomized order of presentations:
php -r '$order = array("person1","person2","person3","person4","person5","person6","person7","person8","person9","person10");shuffle($order);foreach($order as $number=>$name){echo $number+1 . " $name\n";}'
To run it, open up terminal (in OS X) and paste it in.
I’ve also had to choose a random winner for gift certificates before:
php -r '$order = array("person1","person2","person3","person4","person5","person6","person7","person8","person9","person10");shuffle($order);echo "$order[0]\n";'
0 comments Tuesday 13 Jan 2009 | jordan314 | Computers, OS X, PHP, Programming, leopard, linux, solved
Based on this URL hack to sort google results by date, I made a bookmarklet:
javascript:location.href =location.href + '&as_qdr=d';
Now if you google search and then click this button, it will sort your results by the newest date. Works in FF and Safari.

1 comment Tuesday 18 Nov 2008 | jordan314 | Computers, Firefox, Programming, solved, web
If you’re as obsessed as I am about tracking some packages, you’ll get sick of typing in your tracking number and submitting the form over and over. But if you go to:
http://trkcnfrm1.smi.usps.com/PTSInternetWeb/InterLabelInquiry.do
it doesn’t work because the form used a POST method.
Well, on the previous page, the form input field was called strOrigTrackNum. Some sites let you post a form via the GET method, so let’s see if this works:
http://trkcnfrm1.smi.usps.com/PTSInternetWeb/InterLabelInquiry.do?strOrigTrackNum=[your tracking number]
Yup! Worked fine. Now you have a URL that you can bookmark to quickly track your shipment.
0 comments Thursday 30 Oct 2008 | jordan314 | Computers, Firefox, Programming, web
On most machines that I use PHPEclipse, I can control click on a method, function or include and open it immediately. F3 does the same thing. On my Eclipse installation in parallels, this doesn’t work. I’m not sure why – I followed the instructions here:
http://www.phpeclipse.de/tiki-index.php?page=ParserBuilder
and it still doesn’t work. I thought it was parallels acting up initially but now I think my Maven configuration is misconfigured and interfering with it, because I get errors building the workspace when I save files.
-edit
Yay, I fixed it by updating eclipse, maven, ajdt, and phpeclipse. FYI PHPeclipse’s new automatic site update URL seems to be here: http://phpeclipse.sourceforge.net/update/stable/1.2.x/
0 comments Friday 06 Jun 2008 | jordan314 | Computers, Eclipse, Programming
In my last post, I kept getting this error when I clicked Publish in wordpress:
Error 406, Not Acceptable. An appropriate representation of the requested resource /wp-admin/post.php could not be found on this server.
It turned out my host was running mod_security and there are certain phrases it won’t let you publish. It’s censorship, but I understand why they do it. I was talking about the most dangerous command you can run in unix:
sudo rm -rf
That’s what triggered it. I had to obfuscate the text in that entry and this one just to be able to post it. (View the source of this page to see what I mean).
If you’ve been able to post normally and suddenly you can’t and are getting this error, check for weird linux commands or files in your post that could be triggering this.
0 comments Tuesday 08 Jan 2008 | jordan314 | Computers, Programming, linux, security, solved, wordpress
I’m beginning to work with comet (an ajax-like technology that uses a single connection with multiple server pushes) and found this tutorial extremely helpful:
http://www.zeitoun.net/index.php?2007/06/22/46-how-to-implement-comet-with-php
However, I had to modify the code slightly to work with PHP 4, which doesn’t support json_encode. Instead I just returned the json array manually:
// return a json array
//$response = array();
//$response['msg'] = file_get_contents($filename);
//$response['timestamp'] = $currentmodif;
//echo json_encode($response);
echo "{&92;"msg&92;":&92;"" . file_get_contents($filename) . "&92;",&92;"timestamp&92;":" . $currentmodif . "}";
flush();
I don’t know enough french to navigate or comment on Zeitoun’s site so I thought I’d at least publish this here.
-edit-
Hmm, my code markup plugin seems to be deleting backslashes. I tried replacing them with &92; but they just look like &92;. So replace all &92;s above with \.
0 comments Monday 13 Aug 2007 | jordan314 | Computers, PHP, Programming, ajax, comet, solved, web
Hey, I have some questions that would help me work faster.
In SQLyog, or MYSQL in general, is there any way to quickly view the last, say, hundred rows of a table automatically? You know, without having to select count(*) from the table (which gives me 2469207), then make a select * … LIMIT 2469107, 100; ?
Also, in PHP Eclipse, I like how I can paste in an SQL statement into a string, then hit enter and have Eclipse add end and start quotes and an append operator (.) at the end of the line automatically, to make my SQL statement pretty.
My question is, when I’m debugging, a lot of times I have to put that statement back into SQLyog (or MySQL Query Browser, or whatever). Is there a way to have one of these programs *remove* those quotes for you?
edit
Note: One trick I’ve been seeing programmers do lately is open double quotes, paste in the SQL as a paragraph on a new line, make another line break, and then close the quotes with a semicolon to make the code block easily copy and pastable. The problem is that I’ve seen the SQL query blow up in PHP every once in a while when the SQL query starts with a new line. It happens erratically so I’m still trying to replicate it. Meanwhile this sqlyog product enhancement would be sweet.
end edit
To make this post worth reading, here are two eclipse tricks I recently found out about:
If you’re using CVS, and you go to Team > Show Annotation, and use QuickDiff, you can see line by line who last edited that line. This would be great for project managers or for getting help from fellow coders!
And to indent a bunch of code, you can highlight it all and hit tab to indent it more, or shift-tab to indent it less.
0 comments Tuesday 30 Jan 2007 | jordan314 | Computers, Eclipse, Programming, unsolved