Saturday, December 31, 2011

CSV list for phplist mailing list

H wanted a new mailing list, for which he supplied email addresses in an excel sheet. The easiest way to import these into phplist, since he did not want any customization, was as a simple list of emails, one per line - phplist can import such a list with minimum of fuss. Unfortunately, even that took a while - the list had many typos, so phplist was barfing it up. After H did cleanup using some tool, tried the 18,000 email list at once, phplist did not respond. Then cut it up into smaller pieces - upto 6000 emails per file was imported without any problem.

Thursday, December 29, 2011

More CDNs

A follow-up to my CDN roundup.

Akamai offered minimum commit of Rs. 1.5 lakhs per month.
$2000 for 2000 GB, around $1 per GB till 10 TB.

Internap offered a free unlimited streaming account till Dec 30th, but pricing was minimum commit $1000 with traffic charged at $2 per GB. Also, using their test account, found:
  • the sample flash player provided by internap was crashing in Safari
  • the sample flash player also did not allow the hiding of controls - controls were always visible onscreen
  • we were unsuccessful in getting jwplayer to work with the internap stream, even after the suggested setting of rtmp.subscribe flashvar to true.

Wednesday, December 28, 2011

converting stereo wav files to mono

A wanted some advice on converting interview audio files recorded in stereo to mono.

In Sound Forge: To mute only one channel, move the cursor to the top quarter (or bottom quarter) of the screen. The cursor will get a small subscript of L or R (for left or right channel). Select the area you want to mute - only the L (or R) side will get selected. Now if you choose Process -> Mute, only that channel will get muted.

After going through this process of muting out unnecessary parts in L and R channels separately, you can bring the whole wav back to mono using Process -> Channel Convertor. You should use the built-in preset
Stereo to Mono use both channels 50% (no faders)
in the Channel convertor drop-down list for this.

Tuesday, December 13, 2011

shutting down a Windows server remotely

H & N wanted a method of shutting down their server from the client machine at the counter. Client running Windows XP, server running Win2003 server. From Microsoft documentation, an example batch file (contents shown below), which can be put on the desktop, and double-clicked to shutdown the server. You will need to change the servername in the batchfile for this to work, and of course rename it as something.bat .
type "Are you sure you want to shut down the server? Press any key to continue"

shutdown -m \\servername -t 10 -c "Shutting down server in 10 seconds"

To start up the server, I mentioned Wake up On Lan to them, but their BIOS had another option for timed startup, so that is what they are using - starts up at a particular time.

Monday, December 12, 2011

counting number of files in folder

While doing server migration, needed a method for counting number of files in folder from the Linux command-line. Found this post, where in the comments this method was listed:
ls -lR | grep ^- | wc -l

Saturday, December 10, 2011

capturing DV on old PowerMac G5

Resurrected a retired PowerMac G5 (1.9 Ghz, 3 GB RAM) for playback of Planetarium video. It was not fast enough to play full HD movies at 30 fps - coming to only 15 fps for a 12 Mbps HD video. So, relegated it to DV capturing duties for archive work - Hi8 to DV using a Sony TRV330E Digital8 camera.

iMovie for MacOS X 10.4 Tiger - iMovie HD (obtained with a torrent) seemed to be the last working version - iMovie 8 did not run on this machine.

iMovie was capturing the video as .dv files, and the files were being hidden inside the project "file" which was actually a "Package" - so in Finder you right-click and "Show Package Contents" to see the Media folder inside. To convert .dv to .mov without re-encoding, used MPEG Streamclip.

Edit: Finally this solution was abandoned - the .mov produced in this manner still needed rendering on FCP at the Studio. Then tried capturing in an old version of FCP, that worked without rendering.

Thursday, December 01, 2011

stream not working with jplayer

After doing some tests for changing the default player on our website to jplayer, AfriStream stopped working with the jplayer based player, all over the site! But only from my work computer. So, guessed it was some cache problem. Cleared the cache, and it started playing again.

Wednesday, November 30, 2011

changing the default player on

On the home page of the links to the streams use a flash player from Trying to substitute it seamlessly using jplayer, found that modifying the size of the player skin requires more CSS skills than I have at the moment. Will think of something later.

Edit: Most problems have a brute-force solution! Resized the images by a factor of half, halved all the pixel values in the css, et voila - a half-sized player! That was too small, so multiplied again by 1.4 to get the size we want.

Wednesday, November 23, 2011

setting up live video streaming - resource usage

This will be a series of posts about setting up video streaming on our new dedicated server from Voxel.

When the Wowza streaming server was serving at around 600 Mbps, that is around a 1000 clients, top reported the following usage of memory and cpu:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
18825 root    20   0 2009m 1.3g 7892 S  113 17.1   1064:58 java  

Since this is a quad-core machine, probably top reports 100% as maxing out a single core. So, we have plenty of cpu to spare, and could easily max-out the 1 Gbps port. (And that's what we did .... running video at 800 kbps per instance.)

disk full on saiwaves

While uploading files to saiwaves reported disk full - unable to write to disk etc. As given at this post, removed some 3 GB from Trash by doing
rm -Rf ~/.local/share/Trash/*

Later, P removed around 70 GB (!) of old database backups.

Sunday, November 20, 2011

mysql database error

Our schedule page and audio search page stopped working - sometimes the pages would respond with "Could not connect to database" and sometimes they would show 0 records returned. Trying to connect with the phpMyAdmin using Plesk gave the error message
MySQL said: Documentation
#1 - Can\'t create/write to file \'#sql_abc_0.MYD\' (Errcode: 17)

Reported it to nettigritty support, they restarted the service, everything became fine.

Saturday, November 19, 2011

setting up live video streaming - aspect ratio and timezone

This will be a series of posts about setting up video streaming on our new dedicated server from Voxel.

 P wanted the timezone on the server to be set to IST, for ease of recognizing recorded files etc. Did it with dpkg-reconfigure tzdata
which is the Ubuntu way of doing it at present.

Then: the flv video which we saved on the server seemed to have an NTSC flag set somewhere. Probably originating from the Adobe FMLE (Flash Media Live Encoder). So, the video was being seen with a skewed aspect ratio even though it was square pixels 400x224 25 fps. Finally solved it at the client side using stretching:"exactfit" as a parameter for the jwplayer.

setting up live video streaming - recording on the server

This will be a series of posts about setting up video streaming on our new dedicated server from Voxel.

There are different ways of recording.
1. using live-record as stream type in Wowza. This does not give us control over when recording starts - recording starts as soon as the source gets connected.
2. using the LiveStreamRecord addon module, we can choose when to start recording and when to stop.

So, we used the latter, set up a password protected page on our website for the record enable form which is included with the module. We set it up not to overwrite (so it would create a new file like myStream.sdp_2.flv etc increasing the number to _3, _4 etc.) Also set it to start on keyframe and record data. (Metadata, I suppose.)

First we tried setting up http pseudo-streaming with mp4 on Apache. After setting up the module for streaming video the seeking was not working properly for parts of the video which had not yet been downloaded - jwplayer was playing the beginning of the video after the seek.

Then the audio and video were coming out of sync on the recorded mp4 file. It looks like many people have faced this issue.

So we tried recording as flv files instead. With that, the audio-video sync problems were solved. But since the module for flv seek over http uses Lighttpd - setting it up was a bit of a pain - we fell back to providing the video over rtmp using Wowza's vod application. That, of course, worked perfectly.

Friday, November 18, 2011

Argument list too long

Doing ls or mv invariably leads to Argument list too long errors. A nice discussion about ways to get around this:

setting up live video streaming - download links

This will be a series of posts about setting up video streaming on our new dedicated server from Voxel.

Setting up a download link - I tried to do this by adding the .htaccess file like in with the lines

  ForceType application/octet-stream
  Header set Content-Disposition attachment

But this did not work, even when I modified the config file again, as in
adding the line
AllowOverride All
So, did it by editing the config file:

                Options FollowSymLinks
                AllowOverride All
                    ForceType application/octet-stream
                    Header set Content-Disposition attachment

Then, files can be either copied or linked into the download directory, and accessing them automatically gets the "Save as" dialog box for the user.

Wednesday, November 16, 2011

setting up live video streaming - iPad and iPhone

This will be a series of posts about setting up video streaming on our new dedicated server from Voxel.

After setting up Wowza server as per my earlier post, tried to get the live stream to work on iOS devices - iPad, iPhone, iPod touch etc.

To make the stream work with iphone, the encoder settings have to be tweaked. Format has to be H.264 and AAC audio. Otherwise the device gives the message, "This video cannot be played."

AAC settings should be low complexity - I found 22050 Hz, mono, 32 Kbps to work OK.
H.264 settings have to be Baseline 3.0
(set by clicking on the spanner icon next to Format: H.264 in Adobe Flash Media Live Encoder)

When this is done, the following url works for iOS devices, when entered into Safari on iPhone, for eg.:
(entering this URL on a normal computer does not work).

In order to make this work with the jwplayer, which we can embed in a page which will work for desktop browsers as well as iOS devices, the player had to be updated to the latest version - 5.8. Then the sample code for embedding worked fine.

local recording along with live streaming

S was looking for solutions for local recording along with live streaming, for upload to vimeo later. He wanted to explore Quicktime broadcaster for this.

There are several possible solutions, which we can try out.

1. Use a DV hub, record DV on another computer, encode offline after the event, then upload. This will result in best quality.

2. Record on DV tape on the DV VCR which you are using as source, capture and encode after the event. The tape has to start before the stream starts, and the tape has to last for the entire event, because stopping the tape causes the stream to restart.

3. Recording on the same machine which is doing the broadcasting - seems to require some funky workaround like
but may be possible. To open multiple instances of FMLE you have to use this technique:

4. Using Quicktime broadcaster instead of FMLE is also probably possible, wowza server supports QT broadcaster also as a source. But broadcaster also seems to have the same limitations - setting up the entire chain for it separately seems to be a waste of effort.

(Finally the solution chosen was 1.)

Tuesday, November 15, 2011

setting up live video streaming - C++ RTMP server

This will be a series of posts about setting up video streaming on our new dedicated server from Voxel.

First attempt was to replicate my earlier test, and set up the C++ RTMP server. That involved re-compiling from source, since the binary did not seem to run on the Ubuntu machine.

1. Checking cpu type:
cat /proc/cpuinfo shows it is
Intel(R) Xeon(R) CPU X3330 @ 2.66GHz
2. so trying crtmpserver-690-Ubuntu-10.10-i386.tar.gz
3. Procedure as in my earlier test
4. Gave error "no such file or directory" when tried to run the executable.
ia32-libs recommeded by this launchpad post.
5. apt-get install ia32-libs and then tried. Then the executable runs, but seems to have some error, since the console doesn't come up. Tried with the 64 bit binary also, still no go. So, tried the sources from

6. For that, while following the instructions to install at the rtmpd site.... had to install lots of stuff.

set CMAKE_CXX_COMPILER to a valid compiler path or name -> apt-get install gcc


apt-get install g++

OPENSSL_INCLUDE_PATH-NOTFOUND -> as per this forum post,
apt-cache search libssl
grep SSL

Then I installed apt-get install libssl-dev

Finally worked. Binary is in /root/crtmpserver-690/builders/cmake/crtmpserver folder.

C++ RTMP server does not have the nifty features of Wowza, does not automatically make the http  pseudo-streaming chunks for streaming to iPad etc. So, decided to go for Wowza server after all.

Monday, November 14, 2011

google analytics code

Upgrading to the new template on blogger had removed the GA code. Added it back today, going to Edit HTML in the template editing section, and adding the code just above the /body end tag.

Actually a related topic, checking if the analytics code is working:
this method uses  Firebug, with the Net panel enabled. We should be able to see requests starting with _utm.gif? - and the params tab gives the info being sent to Google.

streaming video and quality

Just a small study I did about streaming video and quality.

Ted talk quality, for eg.

- wireshark clocked it at 0.415 Mbps - let's say 400 kbps.

(Ted uses variable bit rate streaming - bitrate changes with scene as well as with bandwidth availability)

Youtube video at 360p -

21.6 MB for 8 minutes 45 sec
21.6 MB/525 seconds
= 0.0411 MB/s
= 0.329 Mbps, close to 300 kbps.

But these are all offline encoded videos. For live encoder, quality will be somewhat lower for the same bitrates.

Saturday, November 12, 2011

TFD internal error

The Thought for the Day page was giving an Internal Server error if the particular day's entry had not been made. And interestingly enough, putting an if statement to check if the record exists was preventing the TFD from being displayed at all, even if it exists. Nz solved the mystery: the text only version, which showed the TFD even though it had the if statement, had some extra type information when the recordset was being declared. Did the same for the former page, and got it to work. The
rsObject.Open strQuery,objConn,adOpenKeyset,adLockOptimistic
The last two, adOpenKeyset,adLockOptimistic were the ones added to the line.

Friday, November 11, 2011

gimp batch process gui

This makeuseof page links to David's Batch Processor.

Allows operations on the entire image, like blur etc. Quite fast, even for large images. Is perhaps faster than doing it in Irfanview - though I did not try a comparison. But not really a replacement for Actions on Photoshop. For that, scripting is required, I suppose. Perl, anyone?

Thursday, November 10, 2011

iPhone 3G jailbreak and unlock

PB got an iPhone 3G for unlocking.

Version : 4.2.1 (8C148)
Modem Firmware:  05.15.04
Carrier : AT&T 9.0
Model : MB702LL does not work with 3G - only with 3GS and above, I think. I gave him a link to pwnagetool, but he did it with redsn0w instead. He noted the following:

1. Could not download - redsn0w 0.9.6b6 managed with redsn0w_win_0.9.6rc16
2. gave the link to this version of the restore, which was
from apple's site.
3. redsn0w_win_0.9.6rc16 kept crashing. This forum post  helped with the following suggestion, which made it work.

After couple of minutes Redsnow just shuts down (disappears)
what cause this problem ?
first install only cydia. don't tick the update baseband

after jailbreaking then you can fetch baseband tick only update baseband.
4. Could not add source to cydia
followed the alternate repository given at

Tuesday, November 08, 2011

finding the first played date and displaying it

A small gotcha in implementing the "First broadcast on ...." feature on the radiosai schedule page - our local database has the first played values per bcid. So, the first of all those values has to be selected. After some trial and error with group by - which would fail -

finally used this technique,
SELECT firstplayed FROM play_history_tablename WHERE filename = NameofFile.mp3 order by firstplayed  limit 1

This query conveniently gets the single result which we want, which is the first played date on any stream. Then incorporated this into our csv export script, added an extra field on the web-server's database, and added code to the schedule and search pages over the course of a week. On the search page, sorting by first played adds more functionality. So, added the code for that, and made the table clickable to enable sort by Description field also, using the sorrtable javascript library from kryogenix.

Monday, November 07, 2011

Made search results sortable

Added first played info to our audio search results page.
Changed default to show newest files instead of oldest results.

Made search results sortable using javascript, by using the sorttable javascript library from

Tuesday, November 01, 2011

email not reaching Google apps mailbox

Our German program producers reported bouncing email from

A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: 

SMTP error from remote mail server after RCPT TO:: host []: 550-4.2.1 The user you are trying to contact is receiving mail at a rate that 450-4.2.1 prevents additional messages from being delivered. Please resend your 450-4.2.1 message at a later time. 

If the user is able to receive mail at that 450-4.2.1 time, your message will be delivered. For more information, please 450 4.2.1 visit q11si2325486fah.22

Replied as follows:

Checking the GA help center as suggested in that page, this page seems to indicate that signing out of the account instead of remaining signed in all the time solves the issue. We'll try doing that.

This could also be an issue with - because the other complaints listed on Google's forums are also from customers. So if you get a bounce message like that, you could try sending the email from another email id instead of the id.

Saturday, October 22, 2011

exporting mobile contacts and upgrading .NET

I wanted to export the contacts from my Windows Mobile 5 phone. At first I looked at TBexport as given here. But TBexport needed a newer version of .NET Compact Framework. Checked out the procedure given here. That is, basically install it, restart phone, and then go to HKLM\Software\Microsoft\.NETCompactFramework and change the value of the 3.5 version from 0 to 1 and changing the old one's value from 1 to 0. And then a restart of the phone. That worked, but was not needed - PPCPIMbackup itself could do the job. The pib file is in zip format, so 7-zip etc can unzip it and extract the csc file from it, which is actually a csv file.

Tuesday, October 18, 2011

adding a background image for fulldome images in Blender

This turns out to be not so simple. My first try was using a texture for the World in Blender. Using either Global or AngMap Co-ordinates, and making sure the Influence -> Horizon is checked. Result is not too bad, except that the background image is a bit zoomed in.

This was the background image, and after using it, the result was like this:

Well, not too bad. Perhaps if I fiddled around with the background image, making it bigger, it might improve things? Anyway, the method of using the Alpha channel as given in the tutorial here doesn't work too well because of the fisheye camera rig. When rendered with the fisheye camera, the alpha channel includes the whole circle - since that is what is being reflected on the fisheye rig's mirror. So, the scene when rendered will not include the background image inside the circle at all - only in the corners, which is not useful at all.

One of the comments in the above tutorial mentioned simply using a paper sky in World settings, and then enable Horizon in Influence settings. That works well with normal cameras, but had a problem with the reflection from the fisheye rig - with a ring around the horizon of the fulldome - it looked like this:

Anyway, going through the Blendercookie/CGcookie tutorial was a good learning experience, especially since it took me to his previous tutorial, and I learnt the reason for the scale - dimension problem I noted earlier. Apparently if you change the dimensions of an object in Object mode, the scale goes out of whack. To correct it, he does Ctrl A, and chooses Scale. Then - et voila - the scale goes back to 1.0 and the dimensions are preserved.

Monday, October 17, 2011

blurry background for video on fulldome using Blender

As mentioned in my last post, tried to get a blurry background effect for the video. Putting a video texture in the Blender World seemed to be the easiest option. As given in this tutorial, the way to do it is to click on World, then on Texture, and then set it to the file which you need. The crucial step is to check all the boxes under Influence:

And to get a blurred effect, the simplest way seemed to be to use the same video, but sampled down to 32x24 pixels, as the World texture.

HD video file on fulldome with fisheye camera in Blender

Tried out the HD flat version of "The Known Universe"  rendering it to the dome using Ron Proctor's fisheye camera. Brought up the flat video real close to the camera, and tilted it so that the video can cover more of the dome, as below.
The co-ordinates of the plane were
Rotation - X = 125, Y = 0, Z = 0
Location - X = 0, Y = 0, Z = 1.3

This gave an effect similar to the video part in the TSPOG show - probably I need to add some blurring on the blank black area outside the video window like in that show. Rendering took around 1 minute per frame with two threads, and 2 minutes per frame with a single thread. Sample fulldome frame was like below.

Saturday, October 15, 2011

tried out firessh

FireSSH and FireFTP - Firefox plugins for SSH and FTP/SFTP right inside firefox. May be useful sometime, when installation is too much of a bother. FireSSH has support for key-based auth as well.

ebook using instapaper

Instapaper provides a read-later bookmarklet, and using that, a series of web-pages can be made into an ebook fairly easily. Instapaper gives download options in epub, mobi and "printable" (from which one can print to pdf). The thing to note is that the page you want as the first page of your ebook should be the last you click "Read later" on. That is to say, last in first out. So, you have to click "Read later" on the last page of your ebook first, and go on to the beginning, and then export from instapaper.

rudimentary planet in Blender, also video texture

Today I made my first Planet. Instead of creating three spheres etc as given here, (which seems to be the same tutorial as given in Issue 9 of BlenderArt magazine) I made a single sphere, just to see how it comes out. With the default 32 segment 32 ring UV sphere, the aliasing was obvious. I bumped it up to 128 x 128 and then used the Earth texture from here, and the result was not bad for what I want to do, which is a flyby.

Things to remember:
  • UV mapping means wrapping the texture around the object - U and V are used to describe the 2D mesh since X and Y are already taken!
  • For the planet, the mapping used was Co-ordinates = Object, Object = Sphere, Projection = Sphere. (Not Co-ordinates = UV!)
  • Smooth shading: as given in Ron Proctor's tip here, using smooth shading makes the sphere look much better. Accessed from Object tools - T after selecting the object.
Also animated a plane with a video texture. For this,
  • The plane could be of the same dimensions as the movie, so for a 4:3 movie, a plane of dimensions x=4 and y=3 is good.
  • In such a case, the texture mapping to use is Co-ordinates = Generated, Projection = Flat, and Extension = Clip.
  • For ease of placement of camera(s) and the plane, the N key which brings up the properties allows numerical entry of values.
  • As mentioned before, Emit=1 and Specular=0 are good for video textures.
  • In some tutorials like this one, the rotation animation is done by entering a value like 3600 degrees for 10 turns. But when I tried entering a value of 360 for rotating the camera a full circle, it did nothing. When I tried 340 or 370, the camera moved only by 20 or 10 degrees respectively. So I settled for 180 degrees in my test.

Friday, October 14, 2011

NASA models and more in Blender

Ron Proctor of the Ott Planetarium very helpfully pointed me to the NASA 3D repository. Checking out the Hubble Space telescope model from there, learnt the following:
  • Textures need to be in UV mapping mode for them to be displayed properly in this model - Mapping -> Co-ordinates -> UV - and I had to manually map the texture bitmaps to the relevant materials in the model.
  • Blender's Textured Viewport shading only works if object has a UV mapped texture (in general).
  • Imported model was extremely large as seen in default Blender view. Scaling it down was easier than moving the camera and lights out.
  • Ctrl Alt Numpad 0 puts Camera to current view.

Wednesday, October 12, 2011

getting started with Blender

A few days ago I had done a trial with the Starball file from Weber U's Ott Planetarium. Rendering a single frame at 2k, 2048x2048, took around 2-3 minutes on my machine, running AMD X2 Dual core at 1.9 Mhz with Win XP 32 bit. When that was warped and projected on our dome, it looked pretty good.

Today, I dove a bit deeper, to take the first baby steps towards making our own fulldome show. Printed out the cheat sheet from qubodup and went through the first few getting started tutorials again to refresh my memory.
  • Right-click to select an object.
  • Middle-click and drag to move around in the view-port, with Shift and Ctrl as modifiers for pan and zoom respectively.
  • Shift+A to add an object
  • N to numerically adjust location and size
  • S R and G for Scale, Rotate and Grab, with X Y Z for constrained motion along those axes.
  • TAB to toggle Edit mode and Object mode
  • Shift+F10 Image Editor (where rendered output is seen)
  • Shift+F5 3D viewport
  • Numpad 7 1 3 for Top Front Right views, 4 6 8 2 for rotate, 5 for toggling perspective and orthogonal views.
  • Numpad . for Zoom to object.  
Also learnt from this video texture guide to use Emit=1 and Specular = 0 for a video texture. And from this tutorial, learnt to use Projection = Cube instead of Flat - or else the rendered surface may be only on the Z axis, and you may not see it! Rendering with a video texture to 1080p HD - 1920x1080 - went at around 10 seconds per frame.

Problems faced:
  • Extrude tool seems to Extrude only along the natural face of the object - some sort of constraint somewhere.
  • When I change dimensions of an object using N and then render using F12, it is going back to its original dimensions!

Next steps:

Would probably want to make a set of stills or videos move around the dome as in the IBEX show.

Tuesday, October 11, 2011

using Digital Universe to create fulldome content

The first step might be to export frames from Digital Universe - this seems to be clunky, and seems to need linux async as given at this page which has a perl script, which links to this more manual method.

But maybe instead I can use the video they give for download.

Monday, October 10, 2011

Zalip internet radio and TeluguStream

The TeluguStream guys wanted to give an internet radio - aka wifi radio - to the local cablewala so that he can easily stream it to his customers. But the Zalip Internet radio seems to be defective. According to this page, the Aluratek AIRMM02F is a similar product, and according to the user-guide of this product, the Favourites saved on the website should automatically come on the radio when it is switched off and switched on. This is not happening. Also tried as wired client, wireless client also, just in case the MAC address is only for one of the modes. Hence I conclude that it is not working as advertised. So, currently only the five streams other than TeluguStream are available with this radio. As and when vtuner adds TeluguStream, that will also be available. But we can't say when they will add. I have sent a request to them at the stream add page. I also tried updating the firmware using Aluratek's firmware update - did not recognize as a valid firmware file.

Sunday, October 02, 2011

iphone 3GS update restore saga

One of my colleagues had a jailbroken & unlocked iphone 3GS, and he made the mistake of updating it in iTunes. The phone was stuck in recovery mode when it came to me.

Googling various terms, the first thing I tried was to use TinyUmbrella to kick the phone out of recovery mode, as given here. That did not work. TinyUmbrella was not able to see any info on the phone, not even ECID.

Gathered info including ECID using USBview as given here.

This particular forum post seemed promising - Did I ruin my 3GS . As suggested there, tried the untethered jailbreak with sn0wbreeze, with the tutorial given at this page. Making a bulleted list of the many trials I did - the last two are the successful ones:
  • I tried first with the later version of sn0wbreeze, using OS version 4.3.2 instead of 4.2.1. After creating the custom IPSW with sn0wbreeze, iTunes did not allow the update - I thought it was because TinyUmbrella's TSS server was not running. Making a custom IPSW was taking around 5 minutes on my phone.
  • At this point, TinyUmbrella was not able to save any blobs - it was not seeing any blobs on the phone. Running iTunes with the TSS server also did not work, it ended with error 1602. The update process in iTunes was taking around 5 minutes.
  • The solution for that was to run sn0wbreeze till the end - I thought the phone was already in DFU mode, black screen - but it needed to put the phone in a pwned DFU mode.
  • Running sn0wbreeze till the end where it uses iReb to avoid the 16-- errors, the update went till the very end, but then error 37 in iTunes.
  • In the above trials, I had chosen New Boot Rom within sn0wbreeze. Perhaps that was the culprit. So made another IPSW with sn0wbreeze, chosing Old Boot Rom.
  • This time it went through, iTunes declared it successful, but phone did not boot. It remained in DFU mode even after reboot.
  • TinyUmbrella was able to save some blobs now, and it showed 4.1 and 5.0 beta blobs. So tried the same update, with the TSS server running this time. Same result - iTunes success, but phone doesn't boot.
  • Tried New Boot Rom IPSW with TSS server - again error 37.
  • Tried New Boot Rom IPSW without TSS server - error 3194 this time. "This device is not eligible for the requested build" - so probably I should go with Old Boot Rom  and not New.
  • Back to making an Old Bootrom IPSW, on a different usb port, without TSS. Stuck at preparing iphone for restore.
  • Tried a different tack - since 4.1 blobs are seen in TinyUmbrella, why not try with that one. For this, downloaded sn0wbreeze 2.1. This time, it worked like a charm - running iTunes with TinyUmbrella's TSS server on. The phone booted up. But it is not unlocked yet.
  • To unlock 4.1, this page points to this guide - just need to add to the sources in Cydia (it was already there) and install ultrasn0w using Cydia Search. Did so, rebooted, and the phone is unlocked, working fine.

Wednesday, September 28, 2011

enabling NTP on our servers

While checking bounce processing, found that krishna's time was off by five minutes. Installed ntp as given here,
sudo apt-get install ntp

I guessed that the firewall might cause problems, and sure enough, checking the status with
ntpq -p
found that the peer was not being contacted, the reach was 0. Added a firewall rule for NTP for the DMZ, and all was well.

krishna bounce processing again

Nowadays I keep checking krishna's bounce processing by seeing the phplist messages page - if messages don't show bounces, that means the bounce processing has stopped. And most of the time it is cured by a simple flush of the mbox as given here. Today had to do a flush, after the day of that post - five months.

Monday, September 26, 2011

creating DiscourseStream schedule

Guest post from PB about creating DiscourseStream on schedule page:


1. Added new BC Broadcast Center Name: DiscourseStream Bcid: 9

2. Modified the changeover time from 5:00AM to 7:00AM to avoid import issues for the schedule database

3. Modified Playlist import script for Discourse Stream and commented out Asiastar

4. Added SIGNATURE_TUNE to the beginning of playlist files that were already created.

5. Modified the cron for changeover in the remote server from 5:00AM to 7:00AM

6. Added two hrs of DD to today's playlist so that the changeover takes place tomorrow without a break and reuploaded.

7. Modified the csv script to generate csv for Discourse stream

8. Skipped the instrumentals being listed in the csv for DD

9. Modified the schedule database for discourse stream to have the changeover @ 1:30 GMT (7:00 am IST)

10. Added a single program item to start the 27th csv import (NOTE: It can be done only through IE)

11. Uploaded the csv for 27th Sep 2011

12. Modified the DD making script to add signature tune in the beginning of the playlist.

Monday, September 19, 2011

fixing problems with Listen Now page and IE

Newer versions of IE were not displaying the "Listen Now" page with the jplayer audio player. Found that the page was loading when "compatibility mode was turned on - the broken page icon on the right side of the addressbar.

Looking into the code, found a possible culprit in the Twitter embed code. It just said

in the body, put

in the head of the document.

And all was well again with IE.

Saturday, September 17, 2011

more about the iphone and farewell to it as well

Following up on my previous post, finally got it to do almost everything using a combination of tools. Almost everything, except one of my essentials - call recording. It seems to be impossible to do call recording on the iPhone without third party services calling out to their server due to hardware level limitations imposed by Apple. And apparently Android is also the same. So, I'll have to stick to my old Windows Mobile 5 phone!

Coming back to this iphone, installed the following from iTunes on the PC:

Battery Magic - uninstalled due to a startup screen which could not be removed due to non-working touchscreen portion


Compass Free - uninstalled as the iPhone 1st gen doesn't have GPS

Remote Desktop Lite

GPS Tracker  - uninstalled as the iPhone 1st gen doesn't have GPS

Battery LED!




iTalk Recorder - uninstalled as phone call recording needs paid service.

Got Veency in Cydia installed through iSpirit which was mentioned at this forum page. Then onwards it was fairly straightforward to do anything on the phone, since the VNC client could click even in the places where the touchscreen wasn't working. Mobile Terminal was one of the nice apps loaded through Cydia.

Saturday, September 10, 2011

working around a broken iphone

Got a used iphone for Rs. 4k - reason it was going cheap was that part of the touch-screen was not responsive. This happened to be the part just above the lowest line. So, the Call soft-button in the phone keypad does not work! And so on.

Trying to get ebooks into it. SSH not working - probably not installed, though Cydia is present. Trying to install SSH gave an error message in Cydia about being unable to download files - probably an old repository. But cannot click on the OK button for the message. That was in the bad portion, and landscape mode is not available for that screen.

Tried to use the Kindle app - it needs registration, and in portrait mode, which does not work with the keypad. I did not try copy-pasting the username and pw - that might have worked. But anyway, went on to try iBooks. Unfortunately iBooks needs iOS 3.2 and higher, and this is a 1st gen iPhone with iOS 3.1.3. Then tried Stanza, that one works.

Transferring files to Stanza - all the methods seem to need Stanza to pop up a confirmation dialog asking if I want to download - and the Download confirmation button comes up in the non-working part of the screen! Finally got books to transfer using iPhone Explorer.

Tuesday, September 06, 2011

DD-WRT and Dlink DIR615 revE4

As mentioned in an earlier post, tried out DD-WRT on the Dlink DIR615. What we got was hardware version E4.

Quite simple procedure as given at the dd-wrt wiki. Ours was E4 and not E3. Read somewhere on the forums that changing the last number from 0 to 1 in the E3 firmware with a hex editor makes it work with E4. Tried that, it works. Did the Hex editing of the firmware using Free Hex editor Neo on Windows.  The firmware labelled as E4 in the dd-wrt site has 5 as the last digit - that apparently makes it not compatible with our E4 version.

But plugging it in our network, it didn't work. At first I thought it might be a MAC address caching issue, and tried cloning the old router's MAC address. That also did not work. Then did some tests and found that it was just not routing - logging into the router, ping works in both directions LAN and WAN. But the LAN can't ping the WAN and vice-versa.

Tried posting on the dd-wrt forums, here and here, but finally did not get any solution. Assuming that some hardware limitation prevents it from working as a router without NAT. And the google answers page recommended routers seem to be scarce. The Linksys WRT54G is superseded by the WRT54GH which doesn't support routing mode, for example.

Sunday, August 28, 2011

access to audio files from macs at Studio

With MacOSX, the audio directory windows share was not accessible. Reason seems to be the large number of files - seems to get stuck. Workaround - connecting with sftp using Filezilla.

In order to connect, have to import a key as given at this page from FileZilla -> Preferences -> Connection -> SFTP

In order to navigate hidden folders like .ssh in File -> Open dialog box, as given  here
press Shift + Command + Period

Saturday, August 27, 2011

burning cds on the mac

Copied some CDs on the Mac using the procedure at

Create an image using Disc Utility, (make a read-only image to make it faster) then burn the image. This method does not work for audio CDs and protected DVDs.

Friday, August 26, 2011

router failure and fail-over

Last night, power failure and UPS draining caused the servers and routers to go down. The Dlink DFL-210 router did not come back up after power returned. This morning, replaced it with a Linksys WRT54GS - cost around Rs. 3,500

The router which failed yesterday - DLINK DFL-210 - cost around Rs. 22,000

Both these models are no longer available. DFL-260 is a possible replacement, PB checking Indian market cost found it to be around Rs. 50,000.

According to posts on this page, newer routers don't have the built-in static routing which we need, dd-wrt is a possibility.

So, we're planning to try out Dlink DIR-615 and are going to try and load dd-wrt on it.

Wednesday, August 24, 2011

live video streaming test

Running Adobe Flash media encoder and C++ RTMP server locally for running tests.

First downloaded Wowza server with a free developer license and tested after installing it with the documentation given at wowza forums.

Then tested by copying the same html file mentioned above to another system.

Then tried stopping Wowza and starting the C++ RTMP server. It asked for a username and pw for the encoder to connect, found that it was located in users.lua
Entered suitable values and the encoder connected without problems. Next, tried on the other system with the same test file supplied with Wowza, and it worked.

Next step was an flv player embedded in the website.

Downloaded JWPlayer's latest version, first tried the quick-start method given in the downloaded pdf. That did not work. Reason was wrong path. Even giving full path did not work, since our server was configured not to serve .mp4 - it gave access denied. Anyway, the player was coming up embedded on the page.

Next, followed the docs at

With streamer address given as a private ip address, it did not work. Configured the router to use a virtual server at the Macbook, port 1935 for rtmp, and it worked with the public ip - used the domain name, actually.

Later, tried out the private ip address also - that also worked. The player on the remote server does not need to contact the streamer directly. Only the client needs to contact the streamer. The first time the private ip address did not work was because of other issues with embedding the player - the player itself was not appearing.

Monday, August 22, 2011

automatic email scripts

Removed the radiosai gmail id from the following scripts which were sending automatic emails:

On saiwaves :

On colinux :

Thursday, August 18, 2011

problem with ftp upload using php ftp_connect

The php script to upload csv files automatically had not worked for a while. Checking it out:

This page says that with some firewalls you should connect to the firewall and then connect to the host etc. Tried that, doesn't work.

I suspect that the problem is with the way in which php handles ftp commands. When a put command is sent on our system, cyberoam responds saying delayed due to scanning, and then uploads.

STOR /httpdocs/program/csv/AmeriStream20110818.csv
150-Scanning file for viruses
150-There'll be a delay while we scan for viruses
150 Data connection already open; Transfer starting.
221-Scanning for virus
221 Transfer complete.

I think php's ftp library does not handle the ftp 150 commands, hence it fails.

I have currently commented out the ftp upload part in the mkcsv php script.

ERROR: duplicate key value

PB being out of action, making playlists and doing Telugu database work etc. So, while importing Telugu files, came across
ERROR: duplicate key value violates unique constraint "download_filename_file_id_ukey"

This causes some files not to be entered into database, so when importing playlist, it complains that some fids are NULL

Solution was to import files one by one till the offending file was found - a file which had the same name as an existing file, but with space in the filename replaced with underscore. Removed the old entry from database - rather, changed space to underscore for its filename.

Wednesday, August 17, 2011

setting up vnc

While setting up vnc for doing the Telugu files on the telugubc server, found that it was installed but not running. Using the same script as on saiwaves did the trick, only thing was that it needed vncpasswd to be run before running the script to start vnc, so that we set the password to something we know. And editing .vnc/xstartup is required if you want kde - I changed the default twm window manager to kde. Last line becomes startkde & instead of twm &

Tuesday, August 16, 2011

procedure for telugu broadcasts

1. Go to ~/new_telugu and copy mp3 files from relevant folder to ~/ftpsent

2. Copy relevant m3u file to ~/playlist directory.

3. cd to playlist directory and run the sed script modifying the commmandline to relevant date, which converts the extended m3u to simple m3u and appends the audio directory path.

4. run ~/scr*/

5. Open playlist from step 2 in kwrite and change / to \, save as m3u

6. Open the m3u playlist in Winamp after lame finishes, to check that all files are present - total duration should be 24 hours and a bit, and it should not show a + symbol after the total duration.

If playlist generation is desired, additional steps:

7. Run scr*/ which takes files from ~/ftp folder

8. upload files from ~/ftp folder to

9. Run scr*/

10. Update missing descriptions from localhost/SGHDescription as with sgh database, if necessary copy-pasting from sgh database

11. Make csv and upload from localhost/mkcsv

bug in our playlist import script

Faced the same problem as given in this earlier post, with the schedule csv/email creating script complaining that SIGNATURE TUNE not found, "PROGRAM NOT FINALISED". The solution is to just search for entries in the playlist table where timestamp is 2011-08-16 06:30:00+05:30 (or whatever date). This can occur at midnight also - as PB pointed out, a bug in the script changes a timestamp of 2011-08-16 00:00:00+05:30
to 2011-08-16 06:30:00+05:30 during the import process. So, verify if the correct timestamp should be 00:00:00+05:30 and then edit the entry manually from 06:30:00+05:30 to 00:00:00+05:30 .

The point to be noted is that the problematic entry may not be adjacent to the actual 06:30 signature tune file, it could be at midnight also.

Saturday, August 06, 2011

updating MBV download filenames

The MBV files were imported into Telugu stream database without suitably modifying the download filenames. This caused quite a bit of confusion. PB contributed the following post :

Steps done for rectification:

1. In sgh database on saiwaves run the following query:

select 'UPDATE file_id SET download_filename=' || '"' ||download_filename|| '"' || ' WHERE filename="' || filename || '"' from file_id where filename ilike 'MBV%' \t \o update_mandirbhajans.sql ;

First row of the result set looks like:

UPDATE file_id SET download_filename="MBV_04_RAMA_OM_SRI_RAM.mp3" WHERE filename="MBV_04_SUJITH_RAMA_OM SRI RAM.mp3"

2. Save the result set to a file update_mandirbhajans.sql

3. Replace double quotes with single quotes in update_mandirbhajans.sql

4. In sghtelugu database on saiwaves execute the saved update_mandirbhajans.sql (through phpPgAdmin interface)

5. upload the updated csv files / run the update sql statements on the schedule database through the cpanel

Friday, August 05, 2011

stellarium night sky on our mirrordome

Trying out Stellarium's Mirrordome distortion mode. On the laptop I use, Stellarium cannot use the full screen when in dual-screen mode with different resolutions on each screen, and also refuses overlays like the toolbars on the secondary screen. So, used the Dual-screen clone mode with both displays set to 1280x800. With the default settings, the stars don't look so good on our dome, but some tweaks make the stars look better.

View Settings Window -> Sky tab -> Absolute scale = 2 makes everything bigger and hence brighter, and Relative scale = 0.2 or so makes the stars uniform in size instead of brighter stars being as big as oranges! This makes the night sky much better to look at, more like a "starball" effect.

viewing panoramas on fulldome - simple technique

To make a panorama viewable on the fulldome, tried the following method as given at this page as a shortcut instead of going through Blender or buying commercial software. At the bottom of this page, the type of fulldome image we need is shown. Basic method is simple - make the pan into a square image by resizing, then convert to polar co-ords. In Photoshop it is Filter -> Distort -> Polar Co-ordinates and in the Gimp it is Filters -> Distorts -> Polar Co-ordinates. This produces a fulldome master which I can later distort with tgawarper for display on our dome.

When I tried it with a pan of the SSSIHMS, a hi-res version of this picture, found that it looks squished on the dome - need original to be more squarish? Also, building is too far above the horizon. Need more sky and less ground. So, probably the solution would be to take a pan with the interesting parts near the bottom edge of the pic, and clone the sky to make it square instead of distorting it by simply resizing.

Friday, July 29, 2011

download users as csv in Google Apps

CV had a problem downloading list of Google Apps users as CSV - the option was grayed out in the control panel.

This post seemed to have the solution:

So, sign in, and then use the following url for the csv file:

where you must change the date 20110727 for the relevant date. We also have to remember that google servers use US time, so today is still 28 July for them and not 29 July.

Wednesday, July 27, 2011

Telugu stream playlist - Extended m3u to simple m3u

PB passed on the following info.

cat 26th_JULY.m3u | sed /^#/d | tr '\\' '\n' | tr '\r' '\n' | sed '/\(.mp3\)\|\(.MP3\)\|\(.Mp3\)/!d' | sed 's/^/\/home\/sgh\/audio\//' > 260711.playlist.telugu

sed /^#/d Remove the lines starting with #

tr '\\' '\n' The windows path backslash (\) is changed to line feed

tr '\r' '\n' The Carriage return is changed to line feed

sed '/\(.mp3\)\|\(.MP3\)\|\(.Mp3\)/!d' Remove the lines not having .mp3 or .MP3 or .Mp3

sed 's/^/\/home\/sgh\/audio\//' Add the path /home/sgh/audio at the beginning of each line.

tr '\r' '\n' on 26th July 2011.
The line used to end with both \r\n which made ices fail to start the playlist.

\r - Carriage Return - 0D in Hex
\n - Line feed - 0A in Hex

Saturday, July 16, 2011

problem playing file from finder for live broadcast

There was some difficulty with using the technique I had used in April for playing an announcement file directly from Finder into the live broadcast. Going through the steps, found that the following sequence is required: First change system audio out to Jack device using Audio MIDI setup utility. Then the Jack setup file which I had created earlier can be loaded.

But in general, this is a bit risky - a better way to do announcement insertion would be to drag and drop the relevant files into the timeline on Reaper. This can be done even when Reaper is recording. The track into which the file is dropped should not be armed for recording - only then will the file play back if Reaper is recording on another track.

Friday, July 15, 2011

more ports on server

We wanted some more ports open on the server firewall, for future expansion if required. The service provider said they have opened the ports, but ShoutCast complained that it could not bind to those ports.

Did some troubleshooting by starting the server from the command line.

Found that the reason it gives for the other ports not to work is:
error opening client socket! FATAL ERROR! Some other process is using this port!

So it is not the service provider's fault.

When I test with telnet, I find (after stopping shoutcast)

telnet 8021
Connected to
Escape character is '^]'.
200 1500
GET / HTTP/1.1

Yesterday when I tested, ports 8023, 24 and 25 were also probably occupied by the other process. Today, those ports were open, and shoutcast could use those ports.

Netstat -a -b -n -o > c:\netstatnames.txt

and searching for 8021 in that file,
found that the process is

So, requested that the Gene ftp be tweaked so that it uses only ports above 8100 for listening, like 8121 etc. That solved the issue.

Wednesday, July 13, 2011

procedure to change over to live broadcast

On I have created services 8002, 8002live, 8020 and 8020live in addition to the services for the other streams. Batch files
c:\startlive.bat and c:\stoplive.bat do the work of
net stop 8002
sleep 5
net start 8002live
(similarly for the 8020 stream, and similarly for stoplive)

Shortcuts on desktop for these bat files have been created. So, one minute before the live broadcast is to start, like 4.29 pm for the evening programme, just login with Remote Desktop and double-click on the respective icon.

To stop live, wait 70 seconds after the ending point - usually the Jaikar after Arati - and double-click the stoplive bat file. The BUTT has to be running during these 70 seconds too. This is because of buffering of the stream by the Shoutcast servers.

Edit: Initially we experimented with using Scheduled Tasks to automate the changeover, at least for the startlive which was a fixed time. But Scheduled Tasks don't run if the password is changed, and then we would also have issues when DST kicked in. So, decided manual change-over was better. And the next day the manual change-over came in useful when we had a long power outage at the Studio and could not change to live till 50 minutes into the morning session - recorded filler was played on air at that time.

Thursday, June 16, 2011

importing SGH M CDs into local database

Found that only upto SGH M 244 has been imported into SGH database. PB reported that after shifting to the Dell servers, the script that imports the cd into the database failed as it had some gui components in it and not just command line. Checking the code, found the following and modified:

1. The script had a call to the binary message
which basically just displays a message to insert the cd. I have made this into an echo statement.

2. After that, had a call to the binary question

That also I turned into an echo statement.

3. Next, called the binary error
That also I changed to a simple echo statement. Then a call to question, which I turned to echo and read.

4. Next call to error and question come from which I again changed to echo and read.

5, Next came which had calls to error which I changed to echo.

6. Next, had a call to broadcastcenter, but it had already been commented out.

Importing worked after this.

Tuesday, June 14, 2011

colinux instabilities and D drive

There were some issues with our streams skipping files, and the problem seemed to be on the filesystem of Stopping the webserver on which referenced files on the D drive seemed to solve the issue. PB did some research, and said the following:

Yes, the issue could be the windows file system size or its way of dealing with long file names. But the failure in reading might even be due to Colinux. Windows has never complained in sending the data to Colinux but CoLinux always complains in not able to read the data. The Colinux change log does mention about I/O errors.

Was going through this link on Working with File Systems which says:

If you use a large number of files in an NTFS folder (300,000 or more), disable short-file name generation, especially if the first six characters of the long file names are similar.

Every time you create a file with a long file name, NTFS creates a second file entry that has a similar 8.3 short file name. A file with an 8.3 short file name has a file name containing 1 to 8 characters and a file name extension containing 1 to 3 characters. The file name and file name extension are separated by a period.

If you have a large number of files (300,000 or more) in a folder, and the files have long file names with the same initial characters, the time required to create the files increases. The increase occurs because NTFS bases the short file name on the first six characters of the long file name. In folders with more than 300,000 files, the short file names start to conflict after NTFS uses all the 8.3 names that are similar to the long file names. Repeated conflicts between a generated short file name and existing short file names cause NTFS to regenerate the short file name from 6 to 8 times.

To reduce the time required to create files, use the fsutil behavior set disable8dot3 command to disable the creation of 8.3 short file names. (You must restart your computer for this setting to take effect.) For more information about disabling 8.3 short file names, see “MS-DOS-Readable File Names on NTFS Volumes” later in this chapter.

If you want NTFS to generate 8.3 names, improve performance by using a naming scheme in which long file names differ at the beginning of the name instead of at the end.

But again, disabling 8.3 filenames systemwide seemed a bit drastic, and could lead to other unexpected problems elsewhere. So, for now we have not done the disabling.

wifi radios for radiosai

Since WorldSpace broadcasting stopped, a lot of queries about ways to listen without a computer. Found that wifi radios are quite cheap in US and UK, but almost double the price in India.

This one, for eg. is around Rs. 4.5k in the UK while in India, the listings start from 10k. Other cheaper options in India other than mobile phones are products like this Asus box for around 6k. What you have to look for in products which allow you to listen to Internet radio stations is: do they allow you to enter custom stations - if yes, then you are safe. Otherwise, do they use the Reciva online database - if yes, then also it is safe, since Sai Global Harmony all streams are listed in Reciva. If the player uses a custom database and does not allow you to enter your own stations, then you may not be able to listen to SGH with such a player.

Monday, June 13, 2011

buffering on server

Was listening to radiosai on my mobile today with wifi for long periods while lying on bed, made the following interesting observations.

1. The changeover actually happened at around 6.32 as heard on the stream, but the shoutcast server went into the interruption music for more than ten minutes more, till the signature tune finally came, around 6.44. Meaning the stream is buffered by 14 minutes due to the two servers?

2. By afternoon, the delay was around 7 minutes - The dd which was supposed to get over at 2.41 was heard to end at 2.48. So somehow the buffering delay was reduced ?!

Friday, June 10, 2011

BSNL online directory enquiry

BSNL online directory enquiry has become centralized, has changed location and needs City to be entered. For Puttaparthi, City needs to be Penukonda. Not too intuitive!

Wednesday, June 08, 2011

adjustments for mirrordome

We had some minor adjustments done to improve the looks of our fulldome projection.

  • Moving the mirror up by a few inches more now allows us to bring the horizon a bit lower in the front area of the tilted dome of the theatre.

  • Moving the projector laterally left-right corrected the tilt in the reflected image, where earlier the left side of the reflected image was around a foot higher than the right side - for this, we moved the projector physically to the right.

  • Moving the projector towards and away from the mirror, and adjusting the zoom setting allowed us to reduce the shadow area right above the mirror. Covering a larger area on the mirror makes the shadow smaller and vice-versa.

  • Using the Bright mode instead of Custom mode in the projector, the colours are a bit better though the brightness levels are quite lower. This has to be further tuned.

Wednesday, June 01, 2011

couple of queries of email migration

Today, V had a question: if he deletes a group in Google Apps, will it take 5 days for him to create a user id with the same name. It turns out the answer is no.

When you delete the group, you should be able to recreate a user of the same name immediately. The 5 day wait period only occurs when you delete a user and try to recreate a user of the same name. Deleting a group or email alias does not lock out that address for 5 days like it does when deleting a user.
Also, Google Apps seemed to have removed the online IMAP migration tool from within the Domain control panel. So the email migration has to be done using the Google Apps Migration for Microsoft Exchange utility .

Once you install it, the setup is like the screenshot for migration from gmail:

In case it asks you for changing the consumer key, you have to log in to google apps as webmaster and copy-paste the new key.

The users csv file should be of the form, google_apps_user1

(Please note that the @google.apps.domain is not required for the second field.)

Unfortunately, this tool takes a lot of bandwidth, needs the computer to be on all the time it runs, and is much slower for gmail to gapps migrations than the online IMAP migration tool. A sample run is:

Info:Start local time is: 2011:06:01 13:56:12
Info:Migration start local time is: 2011:06:01 13:56:12
Start: Now migrating user=**********
Start: Migrating Email for store=**********
Start: Migrating 105 messages from Folder [Gmail]/All Mail for store=**********
In progress: Migrated 100 out of 105 messages from folder [Gmail]/All Mail for user.
Success: Migrated 105 messages from folder [Gmail]/All Mail for store=


Info:Migration end local time is: 2011:06:01 14:25:19
Info:End local time is: 2011:06:01 14:25:19

So it took half an hour for 100 mails.

upload problems persist

As noted at the end of this previous post, upload problems persist with sftp. When using GUI tools like filezilla and gftp, we can see that sometimes the server drops the connection, then the tool reconnects and resumes the upload. filezilla is much faster than gftp, but has support for key-based auth under Settings only in later versions which are not available for the particular OS on saiwaves. Runs OK on WinXP.

Sometimes, when using sftp and it stalls, if we kill the process, then the file at becomes orphaned or something like that. If we delete the file, then also the file appears in ls. After a day or two it disappears on its own - probably when the process times out or something like that.

Saturday, May 07, 2011

ftp disc quota full

There was some issue with uploading to sssorg3 ftp. Most probably it was due to over-quota.
Removed more than 5 GB of material, restarted vsftpd - now able to upload files to sssorg3.

Friday, April 29, 2011

setting up headless mac mini server

PB got a Mac Mini server for installing Apple Remote Desktop and remotely administering studio machines. But he did not get a monitor with it, and it had only HDMI and Apple mini display ports, along with HDMI to DVI-D. So, the plan was to use remote login to the server also.

Did initial installation using a borrowed Apple Cinema Display from the video studio, which had an Apple mini display port cable. Apparently Apple's "Allow Remote Management" opens up a vnc server. So, standard VNC clients can be used to connect. On Developer, installed tightvnc since it has the nice option of scaling Desktop to fit window.

Can log in with ssh or vnc. For vnc, two passwords - a vnc password, and then the user password on the server. The former similar to saiwaves, the latter similar to the router.

For using the Remote Desktop tool, I believe each client needs to have the Remote Management Enabled, under System Preferences -> Sharing.

Later, registered some of the studio machines' Applecare Protection Plans: googling "Register Applecare Protection Plan" gets this registration page, where once you have an Apple Id, you only need the Applecare serial number, which is inside the product box, and the serial number of the hardware. For the Macs, this is under Apple menu -> About this Mac -> More info -> Serial number (Hardware).

Friday, April 22, 2011

Logmein possible conflict with RealPlayer

R had a funny problem - his video was not playing in full-screen mode any more. He said the only change to his system was to install Logmein. Anyway, he did a system restore to uninstall Logmein, and the full screen videos also got restored.

Wednesday, April 20, 2011


Cleaned up the backup scripts on saiwaves and krishna, made them functional.
  1. Corrected db pw on the script on krishna's cron
  2. Corrected IP address on the script on saiwaves's cron
  3. Added scp with -r option to copy over the krishna backups to saiwaves.
Krishna takes around 5 minutes to do the backup with gz option. Saiwaves takes around 20 seconds to do its backup. File copying takes around the same times. SI db backup file after gz is around 1 GB. Uncompressed sgh db is around 200 MB.