July 27th, 2010
Setting a default charset using .htaccess is a simple thing to do
However sometimes there is a need to unset default charset as well (for instance if the AddDefaultCharset is set in the apache config and this is causing problems).
This is very easy to do just edit the .htaccess file and add a line that says
Tags: AddDefaultCharset, apache, apache2, charset, encoding
Posted in Apache2 | No Comments »
July 23rd, 2010
Finding the serial number of a hard drive on a Linux console (as root) is simple with the right tool.
The right tool in this case is hdparm (using the -i option).
-i will query the device directly for the details.
Example:
themachine:/proc# hdparm -i /dev/sda
/dev/sda:
Model=ST31500341AS , FwRev=CC1H , SerialNo= 9VS21ZXM
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=0kB, MaxMultSect=16, MultSect=?16?
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=18446744072344861488
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=no WriteCache=enabled
Drive conforms to: unknown: ATA/ATAPI-4,5,6,7
* signifies the current active mode
Using the option -I instead gives even more information:
themachine:/proc# hdparm -I /dev/sda
/dev/sda:
ATA device, with non-removable media
Model Number: ST31500341AS
Serial Number: 9VS21ZXM
Firmware Revision: CC1H
Transport: Serial
Standards:
Used: unknown (minor revision code 0x0029)
Supported: 8 7 6 5
Likely used: 8
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 2930277168
device size with M = 1024*1024: 1430799 MBytes
device size with M = 1000*1000: 1500301 MBytes (1500 GB)
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, no device specific minimum
R/W multiple sector transfer: Max = 16 Current = ?
Recommended acoustic management value: 254, current value: 0
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* SMART feature set
Security Mode feature set
* Power Management feature set
* Write cache
* Look-ahead
* Host Protected Area feature set
* WRITE_BUFFER command
* READ_BUFFER command
* DOWNLOAD_MICROCODE
SET_MAX security extension
* Automatic Acoustic Management feature set
* 48-bit Address feature set
* Device Configuration Overlay feature set
* Mandatory FLUSH_CACHE
* FLUSH_CACHE_EXT
* SMART error logging
* SMART self-test
* General Purpose Logging feature set
* WRITE_{DMA|MULTIPLE}_FUA_EXT
* 64-bit World wide name
Write-Read-Verify feature set
* WRITE_UNCORRECTABLE_EXT command
* {READ,WRITE}_DMA_EXT_GPL commands
* Segmented DOWNLOAD_MICROCODE
* SATA-I signaling speed (1.5Gb/s)
* SATA-II signaling speed (3.0Gb/s)
* Native Command Queueing (NCQ)
* Phy event counters
Device-initiated interface power management
* Software settings preservation
* SMART Command Transport (SCT) feature set
* SCT Long Sector Access (AC1)
* SCT LBA Segment Access (AC2)
* SCT Error Recovery Control (AC3)
* SCT Features Control (AC4)
* SCT Data Tables (AC5)
unknown 206[12] (vendor specific)
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
supported: enhanced erase
240min for SECURITY ERASE UNIT. 240min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 5000c50014ec1f60
NAA : 5
IEEE OUI : c50
Unique ID : 014ec1f60
Checksum: correct
Tags: hd, hdparm, linux, sd
Posted in linux | 1 Comment »
July 14th, 2010
To get a html page to display UTF-8 encoded text correctly (without setting a default charset) simply add the following to the head of the html page.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Tags: charset, html, php, php5, utf-8, xhtml
Posted in HTML, PHP5 | No Comments »
July 14th, 2010
I recently ran into the problem that I had too add two rows to a database that uses a UUID (in this case converted to a binary) as a key.
The problem I had was that running two insert statements after each other (just separated by “;”) then the same id was generated.
A workaround I have found is to sleep for a second between the two statements.
Examples (using SELECT instead of INSERT):
Getting the same id twice
SELECT UNHEX(REPLACE(UUID(),'-','')) AS uuid1, UNHEX(REPLACE(UUID(),'-','')) AS uuid2;
-- Shows: "849392548f1311df91b70019dbd264f1" "849392908f1311df91b70019dbd264f1"
Adding a sleep to get different ids
SELECT UNHEX(REPLACE(UUID(),'-','')) AS uuid1, SLEEP(1), UNHEX(REPLACE(UUID(),'-','')) AS uuid2
-- Shows: "3901c1928f1511df91b70019dbd264f1" "0" "399a5b148f1511df91b70019dbd264f1"
And another one using INSERTS
INSERT INTO testTable (id) VALUES (UNHEX(REPLACE(UUID(),'-','')));
SLEEP(1);
INSERT INTO testTable (id) VALUES (UNHEX(REPLACE(UUID(),'-','')));
Tags: MySQL, uuid
Posted in MySQL | No Comments »
July 12th, 2010
The first idea that comes into mind for doing this is to simply make a typecast of the boolean variable to a string and use that (which works)
$testVar = false;
echo (string)$testVar; //will output a empty string (as that evaluates to false)
$testVar = true;
echo (string)$testVar; //will output 1 (as that evaluates to true)
but what if the requirement is that the string should say true or false
$testVar = false;
echo $testVar ? 'true' : 'false'; //will output false
$testVar = true;
echo $testVar ? 'true' : 'false'; //will output true
(While the above example might seam useless I recently had to do this for a db insert)
Tags: bool, php, php5, typecast
Posted in PHP5 | No Comments »
July 11th, 2010
After installing MLCad the first time the error “Invalid Path (no Parts and/or Pdir Found)” is shown and a directory selector is shown.
The directory that should be selected is the main LDraw directory.


Tags: LDraw, LEGO, MLCad
Posted in LDraw, MLCad | No Comments »
July 10th, 2010
When you open a folder in Windows Explorer a click sound is played. To disable this there are two ways to do it:
- Turn it off using the control panel:
- Open “Start”->”Settings”->”Control Panel”
- Open up “Sounds and Audio Devices”
- Open the tab that says “Sounds”
- Scroll down until you find “Windows Explorer”->”Start Navigation”
- When you mark this line at the bottom there is a drop down that is labeled “Sounds:” Here you should be able to change to anther sound or “none” if you do not wish a click.
- The second option is a bit more direct and rude – but if the above does not work for you (for me something kept resetting the old sound); just remove the file that contains the click sound.
- Open up a Windows Explorer and go to “%windir%\Media” and find the file that is named “Windows XP Start.wav”
- Either remove it (permanently) or rename it to something that windows won’t recognize (but you can – so you later can reverse this if you would like to)
Tags: click, windows
Posted in Windows 2003, Windows Vista, Windows XP | 1 Comment »
July 7th, 2010
Windows, Linux/Unix and Mac have different line-endings on text files.
A quick overview on the endings are:
- Windows-style line endings are CRLF ( \r\n or hex 0D0A )
- Mac-style line endings are CR ( \r or hex 0D )
- Unix-style line endings are LF ( \n or hex 0A )
A HEX editor can be used to double check that the correct endings are written.
Tags: line-ending
Posted in Development | No Comments »
June 23rd, 2010
To mark a message as unread in pine this can be done using flags.
First flags have to be turned on in setup
[M]ain [S]etup [C]onfig
Then find “enable-flag-cmd” and turn it on.
After this marking a message as unread is done by “* N” in the list view or when looking at the message.
All the flags are:
- [N]New
- [D]Deleted
- [*] Important
- [A] Answered
[^T] Can be used to see all the flags and set/unset them one by one (or all).
Tags: pine
Posted in linux, unix | No Comments »
June 18th, 2010
Static functions can be used without instantiating the object.
A quick example of a static function is shown below as well as a comparison with a non static function.
A quick example of this (in PHP5):
class TestClass{
static function staticFunction(){
echo "static function called";
}
function nonStaticFunction(){
echo "nonstatic function was called";
}
}
TestClass::staticFunction(); //will echo static function called
$testClass = new TestClass();
$testClass.nonStaticFunction(); //will echo nonstatic function was called
unset($testClass);
Tags: class, static
Posted in PHP5 | No Comments »