HTC hero camcorder audio 3gp

The HTC Hero ships with a camcorder that records audio and video in 3gp mode using an audio encoder called “samr” (according to VLC)

VLC Errors: “VLC does not support the audio or video format “samr”. Unfortunately there is no way for you to fix this.” When you try to play the file and windows media player also plays no audio although doesn’t throw up any errors.

If the file is bigger than 3MB you cannot upload it to You tube so you are left with a video file you can only play the video from and not audio. Not great.
To watch these files download quicktime (The audio will work)
OR
Upload the file to Youtube from your PC and let them handle the conversion for you 🙂
(To do this mount the device using a USB cable and browse to the video folder)

WPMU plugin – All site feeds

I am in the process of feeding primary blogger to twitter. I wanted all new posts posted to primary blogger to the twitter account.

This will allow people to follow @PrimaryBlogger on twitter and get a good idea of what Primary Schools are blogging about.

There is already a Blog roll available on http://primaryblogger.co.uk but this is not available through twitter or any other aggregation service.

I will be using this plugin: http://1uthavi.adadaa.com/ada-wpmu-sitewide-feed-plugin/

This only took 5 mintues or so and is available to see here – http://primaryblogger.co.uk/full-feed/posts

Enjoy 🙂

Add to my calendar script

I needed a simple one click method to create a calendar event that people could put straight into google calendars and outlook, this function supports outlook, google calendars is done w/ a simple google api function/call that should be treated separately.
I need to create these calendar events dynamically when a page is requested, I was looking for a free downloadable javascript or something that would have this bundled in but I couldn’t find anything for free that did what I wanted so here it is..
You have to pass it startdate, enddate & name in the right format, it’s not that complex to figure out..
In this example I’m getting the values from mysql and creating the code from that, a loto f this code is borrowed from http://sgowtham.net/blog/2008/05/26/php-mysql-ical-ics/ – he is mostly to thank.
You will need to modify the 1203 part too to create a unique file name but that should be easy with a little bit of php knowledge. Writing to the file system then reading it back was the only way I knew to do this, feel free to enlighten me of another way.
Here goes:

<?php
$id=$_GET[‘id’];
// MODIFY THIS LINE — I get $id as a param

include ‘mysql_connect.php’;
// MODIFY THIS LINE — include any files you need for mysql to query
?>

<?php
$ics_contents = “BEGIN:VCALENDAR\n”;
$ics_contents .= “VERSION:2.0\n”;
$ics_contents .= “PRODID:PHP\n”;
$ics_contents .= “METHOD:PUBLISH\n”;
$name = “Awesome”;
$ics_contents .= “X-WR-CALNAME:$name Holiday Dates\n”;

# Change the timezone as well daylight settings if need be
$ics_contents .= “X-WR-TIMEZONE:America/New_York\n”;
$ics_contents .= “BEGIN:VTIMEZONE\n”;
$ics_contents .= “TZID:America/New_York\n”;
$ics_contents .= “BEGIN:DAYLIGHT\n”;
$ics_contents .= “TZOFFSETFROM:-0500\n”;
$ics_contents .= “TZOFFSETTO:-0400\n”;
$ics_contents .= “DTSTART:20070311T020000\n”;
$ics_contents .= “RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\n”;
$ics_contents .= “TZNAME:EDT\n”;
$ics_contents .= “END:DAYLIGHT\n”;
$ics_contents .= “BEGIN:STANDARD\n”;
$ics_contents .= “TZOFFSETFROM:-0400\n”;
$ics_contents .= “TZOFFSETTO:-0500\n”;
$ics_contents .= “DTSTART:20071104T020000\n”;
$ics_contents .= “RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\n”;
$ics_contents .= “TZNAME:EST\n”;
$ics_contents .= “END:STANDARD\n”;
$ics_contents .= “END:VTIMEZONE\n”;

$sql=”select * from sh_dates where id = ‘$id'”;
// MODIFY THIS LINE — obvious.

$result=mysql_query($sql);
while ($row=mysql_fetch_array($result))
{
$id=$row[“id”];
// MODIFY THIS LINE —

$term=$row[“term”];
// MODIFY THIS LINE —

$start_date=$row[“startdate”];
// MODIFY THIS LINE —

$end_date=$row[“enddate”];
// MODIFY THIS LINE —

$name = “Event at Awesome”;
// MODIFY THIS LINE —

// $id = $schedule_details[‘ID’];
// $start_date = $schedule_details[‘StartDate’];
// $start_time = $schedule_details[‘StartTime’];
// $end_date = $schedule_details[‘EndDate’];
// $end_time = $schedule_details[‘EndTime’];
// $category = $schedule_details[‘Category’];

// $location = $schedule_details[‘Location’];
// $description = $schedule_details[‘Description’];

# Remove ‘-‘ in $start_date and $end_date
$estart_date = str_replace(“-“, “”, $start_date);
$eend_date = str_replace(“-“, “”, $end_date);

# Remove ‘:’ in $start_time and $end_time
$estart_time = str_replace(“:”, “”, $start_time);
$eend_time = str_replace(“:”, “”, $end_time);

# Replace some HTML tags
$name = str_replace(“<br>”, “\\n”, $name);
$name = str_replace(“&”, “&”, $name);
$name = str_replace(“→”, “–>”, $name);
$name = str_replace(“←”, “<–“, $name);
$name = str_replace(“,”, “\\,”, $name);
$name = str_replace(“;”, “\\;”, $name);

$location = str_replace(“<br>”, “\\n”, $location);
$location = str_replace(“&”, “&”, $location);
$location = str_replace(“→”, “–>”, $location);
$location = str_replace(“←”, “<–“, $location);
$location = str_replace(“,”, “\\,”, $location);
$location = str_replace(“;”, “\\;”, $location);

$description = str_replace(“<br>”, “\\n”, $description);
$description = str_replace(“&”, “&”, $description);
$description = str_replace(“→”, “–>”, $description);
$description = str_replace(“←”, “<–“, $description);
$description = str_replace(“<em>”, “”, $description);
$description = str_replace(“</em>”, “”, $description);

# Change TZID if need be
$ics_contents .= “BEGIN:VEVENT\n”;
$ics_contents .= “DTSTART;TZID=America/New_York” . $estart_date . “T”. $estart_time . “\n”;
$ics_contents .= “DTEND:” . $eend_date . “T”. $eend_time . “\n”;
$ics_contents .= “DTSTAMP:” . date(‘Ymd’) . “T”. date(‘His’) . “Z\n”;
$ics_contents .= “LOCATION:” . $location . “\n”;
$ics_contents .= “DESCRIPTION:” . $description . “\n”;
$ics_contents .= “SUMMARY:” . $name . “\n”;
$ics_contents .= “UID:” . $id . “\n”;
$ics_contents .= “SEQUENCE:0\n”;
$ics_contents .= “END:VEVENT\n”;
}

$ics_contents .= “END:VCALENDAR\n”;

# File to write the contents
$ics_file = ‘/var/www/ics/1203.ics’;
// MODIFY THIS LINE —

if (is_writable($ics_file)) {
if (!$handle = fopen($ics_file, ‘w’)) {
echo “Cannot open file ($ics_file)\n\n”;
exit;
}

# Write $ics_contents to opened file
if (fwrite($handle, $ics_contents) === FALSE) {
echo “Cannot write to file ($ics_file)\n\n”;
exit;
}

# echo “Success, wrote to <b>1203.ics</b><br>\n\n”;
// MODIFY THIS LINE —

fclose($handle);

} else {
echo “The file <b>$ics_file</b> is not writable\n\n”;
}
?>

<?php
//header( ‘Location: http://mywebsite.com/ics/1203.ics’ ) ;
// MODIFY THIS LINE —

echo $ics_contents;
?>

By clicking this php page a user will be presented with a downloable/clickable .ics file which can be imoprted into an outlook calendar.