Recently in Linux Category
However, the problem is finding the right parameters suited for a specific task. There are multiple "wrapper" tools (e.g. Avidemux, HandBrake) that make life a lot easier. However, sometimes, knowing the actual conversion parameters help.
I was trying to convert some videos so that they play on Windows without need for any extra codecs etc. WMV format is the way to go for this. The following ffmpeg recipe seems to be working fine:
ffmpeg -i <input_file_name> -s <output_resolution> -b <video_bitrate> -vcodec wmv2 -acodec wmav2 -ar 44100 -ab <audio_bitrate> -ac 1 -y <output.wmv>
Example:
ffmpeg -i output.avi -s 180x120 -b 300k -vcodec wmv2 -acodec wmav2 -ar 44100 -ab 48000 -ac 1 -y movie.wmv
I started working on a python script that can translate those fonts to Unicode, and it was going well. But halfway through, I realized someone has already done this, and it is already available as a Mozilla extension.
The extension is named padma, and it's targeting different Indian languages. Works great on Firefox. The download page is here. You'll need to restart Firefox after installing the extension.
So what's the big deal!! Write the list down, and take it with me? Unfortunately, pen and paper is not that handy, especially with a two year old running around trying his best to snatch away each and every pen he can.
Okay, pen and paper is not the problem, the problem is, I needed an excuse to do something geeky about the grocery list. What I wanted to do is, quickly type up the list on a [shell|vim|editor] window, and quickly send the list to my cell phone over bluetooth.
Now, there are many apps available for similar thing, but I find almost all of them too heavyweight for just this. Especially, if I have to fire up a GUI for this, it's too many mouse clicks to be simple enough.
Then again, what are shells for (personally, I think, the coolest thing in a *nix environment is its shell and scripting prowess).
Here is what I did:
- First, I need the necessary stuff installed for my Ubuntu Laptop. Just do:
sudo apt-get install obexftp
- Now, I need to find my phone. Run the following command:
~$ obexftp -band you should see output like:
Scanning ...identify the line by name that is your phone.
Using 00:18:xx:xx:xx:xx W810i
- Test out you can really send a file across. Create a file, say, grocery.txt, and send it to the phone by the following command:
~$ obexftp -b 00:18:xx:xx:xx:xx -p grocery.txt
The interesting thing to note here is, different phones store the file in different locations, based on their make and configuration. For example, on my Sony Ericcson W810i, it stores on the memory stick under Webpages/Saved pages category.
Why is this important? Because, when you create a new grocery list, you should be able to replace (remove + add) the older list. For that, knowing the location is necessary.
- Find the real location on the phone. The phone, on its interface, can show a different UI to access the file than the real directory structure that it exposes over bluetooth. Use the obexftp's -l command to browse the directory structure. For example, see the session below:
:~$ obexftp -b 00:18:xx:xx:xx:xx -lSo, at this point of time, I know that my grocery.txt has been sent to the directory "Memory Stick/MSSEMC/Media files/webpage/saved_pages"
Browsing 00:18:xx:xx:xx:xx ...
Channel: 7
Connecting...done
Receiving "(null)"... &lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"&gt;
&lt;!--
XML Coder, (C) 2001 Sony Ericsson Mobile Communications AB
--&gt;
&lt;folder-listing version="1.0"&gt;&lt;folder name="Phone memory"/&gt;
&lt;folder name="Memory Stick"/&gt;
&lt;/folder-listing&gt;
done
Disconnecting...done
:~$ obexftp -b 00:18:xx:xx:xx:xx -l "Memory Stick"
Browsing 00:18:xx:xx:xx:xx ...
Channel: 7
Connecting...done
Receiving "Memory Stick"... &lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"&gt;
&lt;!--
XML Coder, (C) 2001 Sony Ericsson Mobile Communications AB
--&gt;
&lt;folder-listing version="1.0"&gt;&lt;parent-folder/&gt;
&lt;file name="MEMSTICK.IND" size="0"/&gt;
&lt;file name="MSTK_PRO.IND" size="0"/&gt;
&lt;folder name="DCIM"/&gt;
&lt;folder name="MP3"/&gt;
&lt;folder name="MSSEMC"/&gt;
&lt;/folder-listing&gt;
done
Disconnecting...done
...
:~$ obexftp -b 00:18:xx:xx:xx:xx -l "Memory Stick/MSSEMC/Media files/webpage/saved_pages"
Browsing 00:18:xx:xx:xx:xx ...
Channel: 7
Connecting...done
Receiving "Memory Stick/MSSEMC/Media files/webpage/saved_pages"... Sending "Memory Stick"... Sending "MSSEMC"... Sending "Media files"... Sending "webpage"... done
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"&gt;
&lt;!--
XML Coder, (C) 2001 Sony Ericsson Mobile Communications AB
--&gt;
&lt;folder-listing version="1.0"&gt;&lt;parent-folder/&gt;
&lt;file name="todo.txt" size="0"/&gt;
&lt;file name="grocery.txt" size="11"/&gt;
&lt;/folder-listing&gt;
done
Disconnecting...done
- Now, your script should be like the following. Running it would fire up a vi to enter the list. Replace that line with whatever your favorite editor is (Kate??). Also, remember to replace the PHONE_ADDRESS with bluetooth address of your phone, and the PHONE_PATH with the path you discovered (the one below should work for W810i's with a memory stick). Good Luck!!
#!/bin/bash
export GROCERY_FILE="grocery.txt"
export PHONE_ADDRESS="00:18:xx:xx:xx:xx"
export PHONE_PATH="Memory Stick/MSSEMC/Media files/webpage/saved_pages/$GROCERY_FILE"
export EDITOR=vim
# First create the grocery list.
#
if [ -f $GROCERY_FILE ]
then
echo "File $GROCERY_FILE exists... Re-Editing";
fi
$EDITOR $GROCERY_FILE
if [ -f $GROCERY_FILE ]
then
echo "Removing $GROCERY_FILE from phone location $PHONE_PATH";
obexftp -b $PHONE_ADDRESS -k "$PHONE_PATH" 2&gt; /dev/null
echo "Adding $GROCERY_FILE to phone";
obexftp -b $PHONE_ADDRESS -p $GROCERY_FILE 2&gt; /dev/null
if [ $? -eq 0 ]
then
echo "Added file to phone successfully. Go Shop!!"
else
echo "Failed to add list to phone. Search for paper and pen!!"
fi
else
echo "File $GROCERY_FILE Does not exist... Aborting.";
fi
Lately I have been very very frustrated with Evolution. My desktop at work runs Fedora Core 5 with Evolution 2.6.3, and it works perfectly (albeit a little bit slow as it goes over webdav) with the Exchange Server at work. But when I moved to Kubuntu on my laptop, I got Evolution 2.12.1 with it, which was very unstable on connecting to the Exchange server, especially the mail part. I think the problem might be that Kubuntu is distribution 2.12.1 for the main Evolution application, but 2.12.0 for the evolution-exchange module (the connectivity to exchange server). I think the instability stems more from volatility of network connectivity on my laptop (change access points, use different networks, thus not being able to have a persistent connectivity).
So, I was looking for an alternative for accessing my exchange mail over IMAP. Between Claws mail, Original Sylpheed, Thunderbird and Kmail, so far I'm liking Kmail the best. Kmail has this disconnected/cached IMAP mode, where it isn't dependent on connectivity to the IMAP server all the time (which is perfect for my on and off connectivity). It also integrates better with KDE. Thunderbird has the cached mode, but if I just take off without clicking the offline button, it doesn't like it (I hate the pop-up errors with OK buttons.... log them, don't pop them up!!!), and I'd hate to click buttons to offline my apps before I go off the docking station. Sylpheed/Claws both are fine mail clients, but each time I click on the folder, it tries to access the server, which is pretty slow (and lame).
Having settled on KMail, I started looking for a calendar replacement that can talk to the exchange server, so that I can publish the calendar and other people don't send me conflicting meeting requests. Evolution's calendaring was the only one keeping me with it all these years. However, there are not many alternatives.
I decided to give KOrganizer a spin and found the Exchange plug-in nice, where I can download the exchange calendar, and upload events. But this got me thinking, if they have solved the problem of talking to the exchange server, why not integrate it to the whole KOrganizer thing, and make it seamless instead of manual download/upload. That will be a GREAT replacement for Evolution for whoever is forced to use Exchange Server for mail/calendaring. And lo and behold, I found this nice Tutorial on KDE wiki to do exactly that. Steps to use Microsoft Exchange server integrated with Kontact/Kmail/Korganizer
I used the "Alternative 1" mode. This now allows me to sync with exchange, and since I have marked this as the default calendar in Korganizer (and disabled the default "Default Calendar"), I can accept invitations from Kmail and it gets populated to Korganizer and gets synced to MS Exchange. I also get reminder and all too. Pretty cool, Eh?!!
Next step will be to get multisync to work with this calendar and sync it up to my bluetooth phone. But that's another day.
I completely agree that at the dawn of time for Linux, it was only for geeks, didn't have a user friendly GUI (remember, I'm saying GUI, not UI.... a shell is way more powerful than a command prompt, even from the dawn of time). However, things have changed drastically since then. The user friendliness is very much here in the GUI, installations are a breeze, most of the apps work out of the box, and once they start working, they never stop working.
Given this, I think people ought to try out Linux, at least once. Come on, give it one chance, please?
The next thing I hear people say is, "Okay, but why would I want to wipe out windows" or "I don't want to play with dual boot" or "Installation is too tough". For you folks, here are some of the ways you can try out Linux.
- Live CD:
- Fedora Live CD. You want to go down to the GNOME or KDE Live Media section, and use the download links. If you don't know what is BitTorrent, use the "Direct Download" section. If you don't know what is GNOME or KDE, you can either read about Desktop Environment from HERE, or just choose one of them (I suggest GNOME).
- PCLinuxOS
- OpenSuSE
- Wubi, what would you be?
- Virtual Machines
This is the easiest and the least intrusive way to try out Linux. This is not recommended for long term use, but then, if you are going to use Linux long term, you probably like it and wouldn't mind a full installation.
In Live CD model, you get a CD with Linux installed, and you boot up using the CD, and voila, you start using Linux. Most of the live CDs come with a lot of applications pre-installed. So, you should be able to browse the web, do chatting, check mail, play with tools and apps, and get an overall feel to it. It will NOT touch your hard disk (unless you ask it to), so, your windows installation and all the data remains safe and secure.
I'd suggest using Ubuntu Live CD to begin with. THe good part of it is, it's also an installation CD, so, you can just install Linux from the same CD if you want to. You can download the Ubuntu CD from HERE. Try the Desktop Edition. If your connection is slow, or you are not sure how to burn a CD from the downloaded image, you can ask for a free CD in the mail HERE [Free account required]. If you choose the second option, and like Ubuntu, Please pass on the CD to a friend.
Other options for non-Ubuntu LiveCDs are:If you are not sure how to burn an ISO image into a bootable CD, HEre is a nice GUIDE.
A word of caution, since you are running from the CD, bootup and usage will be quite slow, especially if you have low memory size in your computer (Why? because you are running with no swap space!!).
Wubi is probably the best middle ground between Live CD and full installation. In short, this allows you to install Ubuntu (a full fledged configurable installation, instead of LiveCD based setup) inside WIndows filesystem, without worrying about the geeky stuff like re-partition and all. And if you don't like, un-install it just like any windows application, and poof!! it's gone!!
What Wubi essentially does is, it creates a large file in windows (the size of the file is configurable, recommendation is about 8GB) and uses this file as a partition for Ubuntu installation. Then it adds a Ubuntu boot option in windows boot menu (no mucking with the MBR, so, you're safe).
Installation of Wubi is very very straightforward. It won't ask you much except the Windows drive to install on, the initial installation size, and username/password of the first user in the Ubuntu environment. More detailed steps of Wubi installation are available at Full Circle's (the open source Ubuntu Magazine) 8th issue.
Cautionary words about Wubi... it depends on the Windows filesystem as its partition. With fragmentation windows filesystem becomes slow. So, it's suggested that you defragment your partition before installing Wubi. This also makes Wubi's filesystem accesses a little slow, albeit imperceptably in most of the cases. The other problem with Wubi is, some of the features (like Hibernation) remain disabled, since they depend on a physical hard disk, not a virtual one.
In spite of these shortcomings compared to a full fledged Ubuntu installation, it's a very good starting point to start getting used to Ubuntu. The part that would get Windows users to try this out is the fact that you can add/remove the whole Ubuntu just like you'd do for any of your small Windows application, and it's probably easier than most Windows applications (and wouldn't leave around those hideous overheads in your windows registry file). There is another neat feature where if you fall in love with Ubuntu, you can actually move the Wubi installation to a stand alone partition, thus removing the restrictions and speed issues that comes with Wubi. Nice, huh? Try doing such a thing with Windows!!
Among these options, my recommendation will go with doing a Live CD first, followed by Wubi followed by a full installation (or moving Wubi installation to a partition).The only reason I'm listing this at the third position is because they are kind of ... geeky!! The idea here is, you can run one OS inside another. This means, you can actually run Linux along with Windows, together, at the same time, on the same machine. Yes, that's possible. Yes, that's possible for free too.
With this option, what will happen is, a Linux installation (Ubuntu/Fedora/anything else) will run inside a window on your Windows machine. The way it works is, a virtualization software is installed on your windows machine, and then, under the virtualization software, Linux can be installed as a virtual machine.
The first step here is to get a virtualization software. There are some insanely expensive ones, if you have a lot of money. If you don't there are some equally capable ones:After you have installed one of them (I went with VirtualBox), you can start the virtualization application, create a new machine, and install Linux on that machine.
- If you love love love Microsoft, you can use their virtualization software named Virtual PC.
- If you are not too inclined towards MS, you can use VirtualBox.
- And, of course, if you have a lot of money to spare, you can use VMWare.
The cautionary word for this method is, again, it's a little more geeky than the first too, so, a regular PC user may not like it (although it's very convenient). There are fine grained controls of which of the hardware (like network card, wireless, USB etc) you want available to the virtual machine. A mainstream desktop user may find this a bit confusing.
The other negative side of this is, it WILL BE slower, much slower than the first two options, since your PC's memory and CPU is shared by two OS-es. Things will be better if you have tons of memory and one of the latest CPU's.
The two primary challenges I faced are, what to use as a source for media, and how to connect that source to the Xbox. My house is a two story place, with my network connectivity and computers upstairs in the office, whereas my home theater is located downstairs in the Living room.
For the first entity, I had the following options:
1. Buy a big hard drive, 120G one, for Xbox. But that would cost me almost 200$, and I'll be bounded by that 120G upper limit, with no way to upgrade easily. The hard drive is going to die eventually, and then I'll have to shell out money for Microsoft again. After all, 200$ for a 120G is not expensive, it's atrocious!!
2. Buy an Ipod, and connect it to the Xbox 360 through the USB connection. This seemed fine since we already have an Ipod lying around, except that I won't be able to manage the media on a PC using a easy to use Graphical interface. I anyway hate the Itunes interface. Plus, I'll have to plug out the Ipod every time I want to load new songs onto it. Plus, I'll have to hide the ipod somewhere so that my kid doesn't get his hands on it :-).
3. The third option was storing and streaming the media from a Windows PC. On searching a little, it seemed like I'd either need a Windows Vista, or a Windows XP media center. I have neither, and don't plan to get Vista anytime soon... if possible... never.
4. I did have a low powered Linux box running 24x7 though at my home. Primarily for server purposes, downloading my mails, giving me ssh access from outside etc. On doing some research, realized Xbox, fortunately, is using uPnP, a standard protocol. There are a few uPnP servers available on Linux. One option was to use the free ushare. But at the time I was looking, ushare didn't have Xbox360 video support. So, I decided to go with a paid program, named TwonkyMedia. This can stream both Video and Audio to the Xbox360 and has a neat web based configuration interface.
After solving my first problem, next issue was, how do I connect my Linux server upstairs to the Xbox360 downstairs. Wireless was strictly no no, as my living room normally gets reduced wireless signal, which drops even more when we run microwave. On top of that, most of the time I'm on my Laptop while watching TV, and would hate for my connection to lag if I'm streaming some HD content, or vice versa. So, it had to be a wireline connection.
However, since I live in a rented house, making big holes in the wall, and running cables behind the drywall all across the house was not acceptable. My research brought me to Ethernet over Power. After experimenting with couple of models, I settled for this Netgear combo.
Finally, my setup looked like following:

Marketing Mayhem
13 Reasons why Linux won't make it to a desktop near you
Here is my rebuttal:
Don't agree to most of them, and if you read them carefully, I'd think you'd agree. Just because it's developed and maintained by a community, doesn't mean it has to be bad. Firefox/OpenSwan/Snort/Gimp
These guys run MS IIS. They'd save thousands running Linux+Apache.
Let me counter each point:
1 The people who make the product have no money for marketing.
Hmmph, why do you need to have marketing for the product to be good?? Pretty lame to be the first reason!! What about Firefox? The people who make the product have no money (except some donations!!).
2 The reason they have no money is that they give the product away.
Yes, that's the whole idea. Remember, they get the product for free too!! The guy who writes Azureus (The best bit-torrent client) won't have to buy PDFCreator (a great PDF print driver). It's a give and take world. That's why GPL is made viral, so that it doesn't become a one way road.
3 Since they give the product away, people never see it in shops.
You can buy quite a few Linux Distros on shops. But that's beside the point. It's free, so, why would you need to go to shops? Just download, burn and use it... or order a free CD!! What kind of reason this is for the product to be not good? Is Picasa good? Do people use Picasa? Do you find Picasa in any shop?
4 Because people never see the product in shops or adverstised (Spelling mistake!!! He needs a spell checker!!)
they don't know it exists.
Another Lame reason. I'll give the example of Picasa again!! Not found in shops, is it? Or take Firefox. Or take Acrobat Reader. Do people know they exist? I bet they do!!
5 The makers of the product rely on word of mouth to attract more
customers, but their customers only talk to each other.
Not necessarily. Countries all around the world are moving their school systems to Linux/Open source, deciding on it through own investigations. And word of mouth marketing is cheap, and has worked for many (Did you see any billboard or TV ad on GMail??). Specially the Live CDs are best to introduce people to Linux without installing it. The "Their customers only talk to each other" logic is pretty weird too. Do they mean to say all friends/relatives/colleagues of Linux users use Linux? By that logic, put together with Six Degrees of Separation, everyone in the world must be using Linux. Would like to see that happen :-)
6 On closer inspection, you find that there are 500 versions of the product. When
you try to understand the subtle differences between them, you become
confused. Your enthusiasm starts to flag.
There are only 4/5 to choose from when you go mainstream. Not sure where that 500 number comes from. Most of the other Linux distros are for specific niches. For example MontaVista is for embedded, and GeeXBOX is for Media center. Otherwise, you got Fedora/Ubuntu/SuSE/CentOs
7 When you install the product and try to use it, you strike unexpected problems.
You also find some nice surprises, which boosts your flagging enthusiasm a
little.
Agree here. If you have some out of the way system component, Linux may act quirky sometimes. But lately most of the issues with the OS is sorted out. Installation is pretty painless, and most of the apps work out of the box. It'll still need some more polishing, but it's getting there pretty fast. In fact, these days Dell is offering Linux on Laptop and desktops (I think they went with Ubuntu), and support them too. So, users are going to have much painless experience (no need to install... just use).
8 When you ask the product's maker for help, he suggests you talk to other users.
They welcome you with open arms but answer your questions in a strange
language.
Hmmph, I agree there are some users who need a telephone number for support, but they can buy that from Redhat/Suse/Dell if they want. But remember, on Windows, when something goes wrong, pretty much nobody has any idea why. I started getting Blue screen of death on my old laptop lately (Win XP), and only thing it does is, gives me an address and says it's in NDIS.SYS!! Not really helpful, is it? All my google search on the issue tell me is, probably my network device is malfunctionaing!!
My windows work laptop has some wireless problem, and in 802.11g mode it doesn't connect to my work access-point, but works fine at home. There is no log, no error, no event, nothing, and nobody has any clue what's going on. In Linux, I'm most certainly going to get some log, and would put that between double quotes on google, and voila, someone will have a solution. It's a matter of getting used to, but I think people will prefer that than waiting 15 minutes on phone for some person on the other end say "Sir, have you Power-cycled your machine?"
9 When you admit that you have trouble understanding their language, you're told
you'd better learn it, or you won't appreciate the product.
That was the case few years back. Linux has become much more user friendly these days. Remember, there are always users who use CD tray as coffee holders.
10 When you tell the designers that their product isn't marketable in its present
form, they say that's okay, since they only wrote it to share with their friends.
And why is it not marketable again? Fedora/SuSE are marketing it fine, so is MontaVista and lot others. A lot of very popular devices running Linux are selling great (Take the new Motorola razr). Linksys had a hotshot home router running Linux. There are huge number of servers running Linux. If you can't market to someone that he can get something he spends hundreds to thousands of dollars essentially for free, it's your shortcoming, not the product's.
Again, that's the idea of open source. It's meant for sharing. You write the UnZip utility (because you are expert in that area), give it for free, and expect the expert in graphics manipulation to write Gimp and give it to you for free. Barter system!!
11 As you wonder what to make of it all, you watch the designers and their
supporters squabble among themselves over all kinds of trivia. As you realize that
their collective focus isn't on fighting their real competitors, what's left of your
enthusiasm ebbs further away.
Hmmph. Whoever wrote these set of arguments, is surely not familiar with software development process. Which large piece of software got developed without fights between designers on design decisions? For Open Source and Linux, since the development is in the community, it's open to the public. Isn't that a healthy thing?
12 When you ask the people in charge why they don't show more leadership, they
say they have no power to unite the squabbling communities. They add that
disagreement and vigorous debate were the very fires that forged the great
product in the first place.
That's bullocks!! What is he referring to? Does he mean to say Torvalds or Alan Cox doesn't have leadership? Without leadership, linux would not be such a pain in the butt for Windows, and will not be used in so many servers and devices. This seems to be written by a Ivy league MBA who didn't get the basic idea of open source or software.
13 When you discover that some of the designers have made deals with
their biggest competitor, the last drop of your enthusiasm drains away.
Hmmph, a deal goes both ways. So, will the Windows users feel the same too? This is not politics or war, this is about better computing experience for users. Plus I don't see any deal made which affects, say, the Linux kernel or, say Fedora/Ubuntu, or, any application. It's only better for consumers if Linux and Windows inter-operate better, isn't it? Why exactly is that a bad thing again?