Sunday, August 28, 2016

Make USB storage as a GRUB bootable device

I normally have multiple operating systems on my machine. I thought I'd remove my old Ubuntu installation and use the partitions for other purposes. I knew I'd have GRUB issues, but thought it'd be relatively easy to find how to make a bootable USB pendrive. But, I was wrong!

Seems like most installers use syslinux based boot loaders and grub kicks in later. So, getting hold off one wasn't easy. After searching and reading, I found some useful information (I'm missing exact links though :( ). But here's the brief steps to get a plain grub bootable device.

(This is assuming you have access to some other Linux/GRUB based system)

Assuming /dev/sdb1 is your usb (FAT32 or otherwise) device - BE CAREFUL TO PICK THE RIGHT DEVICE!

[ Run as root / sudo as required ]

[ Mount the device ]
$ mount /dev/sdb1 /media

[ Create folders ]
$ mkdir -p /media/boot/grub

[ Next copy stage1, stage2 files ]
cp /boot/grub/stage* /media/boot/grub/

[ Start grub ]
$ grub

[ Change grub root device - normally hd0 => sda and hd1 => sdb and so on...again be careful! ]
grub> root (hd1, 0)

[ Setup as boot device ]
grub> setup (hd1)

....some messages, statuses, warnings, etc...

[ Quit ]
grub> quit

It should be a bootable device now and should give the grub boot can use that to boot Windows e.g.
[ Again, use the correct number - it depends on your boot order ]
rootnoverify (hd1,0)
chainloader +1

Sunday, October 25, 2015

LibreOffice Conference 2015 (Aarhus)

This year's LibreOffice conference was at Aarhus, a growing beautiful city. I presented around the ongoing work (specifically in Impress) and at Ericsson (EGI). Yes, my travel this year to the conference was sponsored by TDF.


A lot of interesting developers, translators, QA and other contributors to LibreOffice project made it to this year's conference (Credits to Sophie & TDF for making the additional efforts). This was something nicer.

Of course, I was able to network with the new people as well as my friends from the project.


There were some interesting presentations around LibreOffice in the cloud and Android - seemed like most were from Collabora.
Missed the PyUNO talk :( just heard the last part, it was supposedly quite good - so waiting for the videos to watch it.
Of course, the talks by RedHat, CIB and the others were really good as well.

Other than the development talks, I enjoyed some talks about efforts around LibreOffice for government and migrations. And the celebrations around success at the LibreItalia (specifically around LibreOffice for the army in Italy) was really nice to know.

I also enjoyed talks about language translations and support for LibreOffice. Though I couldn't attend many of these (because the simultaneous tracks), I'm hoping to catch these up from the video recordings.


Some pictures for your enjoyment.

Saturday, October 3, 2015

Solving "Unfortunately the process has stopped" problem (on Android Emulator)

Not sure why, but, suddenly one of my Android Emulators started throwing out the " has stopped..." message. Unfortunately, it continuously throws that popup over and over again...

While googling around for the solutions - it seemed like there is some problem with the sqlite database of one of the telephony applications.

Logcat shows something like:
E/AndroidRuntime( 1293): android.database.sqlite.SQLiteException: Can't upgrade read-only database from version 327686 to 393222: /data/data/

To solve this some posts suggested clearing cache, unfortunately navigating to the menu was troublesome (and didn't really work for me), so I instead used:
$ adb shell
$ pm clear
$ rm /data/data/
(I guess, pm clear should work as well instead of the last command) 


Monday, January 30, 2012

Ultimate PDF Converter (on Cloud)


I wrote an android app and related server scripts for converting documents to pdf for viewing on the phone. The app can be downloaded here.
I wrote this for a few reasons including experimenting with AdMob, so caution: the app is an adware.

I have cleaned up the sources and uploaded it to google code.
The server scripts can be found here
and the android application can be found here

Some Technical Details
The flow is normally like the following:
  1. Android Application sends the file to the server using the upload.php script
  2. upload.php generates a unique key for this file and passes on the information to the app as well as updates the database
  3. The python converter polls this database and calls the converters (libreoffice/openoffice) and updates the database with success/failure
  4. The app now queries the getfile.php to get the file or the queue number it is in.
  5. The file (converted pdf file) is then downloaded to /sdcard
  1. Change the irritating 'open with' to may be 'share with' rather
  2. Conversion of pdfs into maybe images for directly viewing from the app rather than opening it with another pdf viewer.
  3. Conversion of other files: e.g. audio files into wave screenshots or something (?)
  4. Robustness of the scripts and app needs improvement
Any contributors, please?

Monday, October 10, 2011

GUI Based Builder for LibreOffice

I have always found building LibreOffice to be tricky - especially on cygwin/Windows. I always felt having a GUI based tool for detecting build environment, downloading dependencies, cloning source and building it would reduce the pain in looking for the howto documentations. This will also reduce the barrier for a lot of people to contribute - specifically for the Windows platforms.

This being on my todo list for a long time, I, as a consultant with SUSE, got an opportunity during SUSE's hackweek to work on this. I wanted to make it cross platform and also learn something new in that process. All put together, I picked: Python (I already know python scripting) and pygtk (for the UI) + glade.
Here's the first version:

Note that, it requires loads of work before it becomes usable. Right now, default config parameters, cloning and building works. Major part of dependency checking & installing needs to be written, which would depend upon one single word - contributions - in whatever form - code, review, comments....Even just editing the UI XML with Glade and making it better is appreciated.

Monday, July 11, 2011

SMS Based chat (anonymous, free and IRC types)

This is a log of the application that I created as part of the txtweb's App2Fame contest. txtweb is an application platform based on the SMS technology. So, all phones irrespective of whether being smart or not can access all the apps and their features and hence become smart. The only down side being that the features are dependent on what txtweb's applications provide.

For submitting to that contest, I was cracking my brains for some ideas to submit, when I thought of google maps helper app (@gmaps) , which I created in one day and submitted. But, later I endedup finding out that there was a similar app @route which was already submitted and in use for a long time.

Well, then I thought of a chat application, this time I wanted to first search the apps present there (- found out that the search feature of txtweb could have been a lot better, thou). I found a few apps, but they really don't do much. Just dummy apps created with some text and doing really nothing. So, here it goes, another day and submitted it just before the deadline (@sirc).

Key Features:

1. Very similar to an IRC client/server. Only that there is only one server.
2. Supports channels concept.
3. Use nicks rather than phone numbers - makes in anonymous, just like the irc.
4. Chat with multiple people
5. Private chat with a single person (based on nick)
6. Create private channels - these are starting with a '.' (dot) and will not be listed publicly.

So, here's how to use it:
SMS these 'bold' text to +91 92433 42000 (India)
@sirc @join [channel] - E.g. @sirc @join bangalore
Joins a channel (and leave your current channel). This will create a channel if there is none found.

@sirc @nick [nick]
- E.g. @sirc @nick superman
Choose a nick for yourself.

@sirc @leave

Leave a channel - Stops messages from this app as well until you join another channel or someone private messages you.

@sirc @[nick] [msg]
- E.g. @sirc @superman come and help!
Send a private message to @nick

@sirc @listpeople

Lists the people currently your present channel (provides all the nicks).

@sirc @list

Lists all the channels present (Does not list channels starting with a dot (.)
Channels starting with a dot are private channels.

@sirc @help
Shows the help. Mostly the contents here ;)

[msg] - E.g. @sirc anybody knows kannada?
Sends a message to everybody on the channel. You need to join one first using @sirc @join

Try it out today!!!

Friday, March 25, 2011

The so called Hidden Features of LibreOffice 3.3

There are quite a few non-noticeable features in LibreOffice 3.3.x. I thought of sharing a few here...

Batch conversion
Especially useful when you want to work with command line or invoke conversion from another program or convert set of files to a given format (batch process).

Equivalent commands: oocalc (and its set), localc (and its set), soffice.bin
Assuming the current working directory is the libreoffice installation directory

The following command would convert all the *.doc files to *.pdf files
./soffice.bin -convert-to pdf:writer_pdf_Export -outdir /home/user/output /inputfiles/*.doc

[PS: wildcards wouldn't work correctly on windows specify the file names (list) instead.]

Forcing input filter while opening via command line
Whenever we open a file using the command line, we wouldn't generally have a choice to select the input file type (e.g. xlsx MSO 2007 or xlsx MSO 2010 or anyother). We would be at the mercy of the program to auto detect correctly. Use the following option to force opening the file with a given filter.
./soffice.bin -infilter="Calc Office Open XML" file.xlsx

Combining the above two
oh well...I guess by now it should be easy ;)

./soffice.bin -help
List of output filters:
List of input filters: Search with the above example filter or

Watch out for more such features...