Search
Archives
- August 2015 (1)
- September 2014 (1)
- June 2014 (2)
- January 2014 (1)
- September 2012 (1)
- July 2012 (1)
- April 2012 (1)
- January 2012 (2)
- June 2011 (2)
- November 2010 (1)
- October 2010 (1)
- May 2010 (2)
- April 2010 (1)
- December 2009 (1)
- November 2009 (1)
- August 2009 (1)
- June 2009 (1)
- April 2009 (1)
- January 2009 (5)
- December 2008 (1)
- November 2008 (1)
- August 2008 (3)
- July 2008 (3)
- June 2008 (1)
- February 2008 (2)
- January 2008 (1)
- November 2007 (2)
- September 2007 (1)
- July 2007 (1)
- May 2007 (2)
Categories
Meta
Category Archive: Programming
Subcategories: Bash C# Javascript Php
Detecting drive insertion and removal in C#
Here is some C# code to detect when a logical volume (e.g. USB Memory Stick) is inserted or removed via the WM_DEVICECHANGE message with WndProc.
However this doesn’t tell you what has been inserted/removed, you will have to poll the drives manually to find out.
If you need that you will have to register to receive events from windows which involves P/Invoking RegisterDeviceNotification (See Drive Detector at Code Project).
[...] using System.Runtime.InteropServices; using System.Security.Permissions; public class MyForm : Form { const int WM_DEVICECHANGE = 0x0219; const int DBT_DEVICEARRIVAL = 0x8000; // system detected a new device const int DBT_DEVICEREMOVECOMPLETE = 0x8004; //device was removed const int DBT_DEVNODES_CHANGED = 0x0007; //device changed const int DBT_DEVTYP_VOLUME = 0x00000002; // logical volume [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] protected override void WndProc(ref Message m) { if (m.Msg == WM_DEVICECHANGE && m.WParam.ToInt32() == DBT_DEVICEARRIVAL || m.WParam.ToInt32() == DBT_DEVICEREMOVECOMPLETE || m.WParam.ToInt32() == DBT_DEVNODES_CHANGED)) { if (m.WParam.ToInt32() != DBT_DEVNODES_CHANGED) { int devType = Marshal.ReadInt32(m.LParam, 4); if (devType == DBT_DEVTYP_VOLUME) { //Poll drives } } else { //Poll drives } } base.WndProc(ref m); } }
Live Mirror
Here’s a C# program to mirror all changes in one directory with another.
I build it to let me edit a PHP web project on my development PC and have it mirrored to my development server, without any action on my part.
Its all being hosted at Google Code, go on give it a try :)
(more…)
Converting Videos for the Creative Zen
I have a Creative Zen, its a very nice little mp3/video player, and while it plays xVid/DivX/WMV its a bit picky about what it will play.
So ive created this script to convert videos to a format it will play (320×240, xVid, with auto black bars to maintiain aspect ratio & 128KB ABR MP3 audio).
Its a Bash script using Mplayer / Mencoder.
Files
Lambda's and Anonymous functions in C# 3.5
Here’s a lambda function in use with the new extensions for a List object.
personnel.foreach(x => x.DoSomeCoolStuff());
360° Angle Class for C#
Here is a nifty class to handle an angle. it will wrap around increments and decrements that exceed 360 or 0, e.g. adding 20 to 350 will give 10 not 370 and subtracting 10 from 5 will give 355 not -5.
- Implicit conversion to and from double
- ToString and GetHashCode are mapped to the inner angle
- Operators +,-,>,>=,<,<= have been implemented.
- Mixing this class and doubles in statements works seemlessly.
Code sample:
Angle angle = 0; double angle2 = angle + 5; Console.WriteLine("a1:{0) a2:{1}",angle,angle2); //Output: a1:0 a2:5
Files
Multiple Onload Functions
Here’s a quick way not so good way (see update) of getting multiple javascript functions to be called when the page has finished loading.
Add this to the pages Head section:
And then where you need an onload event callback do this:
onload_functions.push(function() {alert('The page loaded...'););
Update:
As pointed out by phihag, this solution isn’t great, instead try using phihag’s code or use jquery and just $(document).ready(function{} {alert('The page loaded...');});
.
SSH Passwordless Login
Here is a script that adds your SSH public key to a remote hosts authorized_keys file. Thus enabling you to login without a password. (more…)
Database (over) usage
(Rant about drupal not django btw)
Since creating this website (in django) ive been interested in how it uses the database, dajango doesnt provide an easy way to show this on a per page basis, so instead i chose to use the log feature in MYSQL.
To enable it add log=/var/log/mysqld.log
to your my.cnf
file in the [mysqld] section and then restart the database.
You may not want to leave this on indefinably, as it spits out every database query (leading to a large logfile)
(more…)
PHP Soap Server, Part 2: PHP Server and Client
This is in conclusion to Part 1
The example soap service that i will build for demonstration purposes will be a simple schedule service, that can be queried to find out what meeting is next and todays meeting schedule.
Sorry for taking so long to put this out, but better late than never, eh?
All the code/wsdl/xml is available here
And the demo client (Source Code) and server (Source Code)
New Website (Software)
Welcome to the new sam.xnet.tk, running on my new blogging sotware using python+django!
Basic but fully functional.
Ill release more info soon
EDIT: when i say fully functional i mean missing trackbacks and rss… ;)
EDIT2: The RSS is now up and working at https://sam.xnet.tk/rss/
EDIT3: Now with a full rss feed for rss readers https://sam.xnet.tk/rss/full/