Showing posts with label Ubuntu. Show all posts
Showing posts with label Ubuntu. Show all posts

Thursday, January 23, 2014

Moving an ecommerce site to Amazon Web Services

This is an interesting one.. There is an e-commerce startup, run by a dear friend.  One fine day we were chatting around and he mentioned challenges with his business. Challenges included performance, scaling and cost issues about his hosting services provider.

My instant reaction was, why dont you move to aws.. and it clicked just like that.. We decided that we'd start with the free tier, with his mysql server on amazon RDS and rest of app server functionality on the micro instance. All of which is within purview of the free tier.  Using Cloudfront we'd localize the static content, to add to the performance of content delivery. Not now, but eventually, we'd start using ELB - the load balancer for distributing load across the instances we would have.

With something like aws, planning all that is really really that straightforward.  You just have to be a bit more technically oriented to think in terms of these things and you are set for good.

We are already thinking about configuring autoscaling for the services, so that running on the micro instance doesnt become a bottleneck for the customers. With that we'd hope to achieve dynamic automatic scaling up and down the infrastructure.

We have already taken the first steps, and I am helping his venture migrate to AWS, one of my dream jobs, to be able to consult around migration / integration of Traditional systems to cloud based systems.

Saturday, May 5, 2012

Mounting a aws instance into Nautilus in ubuntu

For a particular project I needed to transfer files from my local desktop system (running ubuntu ) to my aws instance running also running Ubuntu.  shell based connections work just fine for me, however, I need a GUI solution.  GUI solution was favoured since I wanted to have a quick drag and drop solution to move files rather easily across the two instances.

Although, Nautilus provides a "Connect to Server" option, and you can bookmark it as well, the trick/issue is that with aws instances you are dealing with private/public key  authentication, not password based authentication.

For some reason the "Connect to Server" option doesnt allow you to embed a public key and therefore that authentication method doesnt work through in that case.

After quite a bit of research and googling, I had to put this question up on stackoverflow.com  where, I got a prompt and sweet response.

The trick was to use the .ssh/config file and to create an alias there, specifying the identity file, and then onwards, there is no challenge to a ssh or sftp call, since ssh routes it through the config file automatically.

Here are the sample contents of the .ssh/config file that worked for me -

Host {alias}
HostName {hostname or IP address}
User {username to log in with}
IdentityFile {path to abcd.pem}
With this in place, its possible for me to have a bookmark and clicking on that just opens the target location (like a mount point).  Sweet little trick, and makes me like ubuntu a bit more...

Thursday, February 2, 2012

And now.. a Solar Powered ubuntu laptop...

Nick Rutledge has conceptualized a thin laptop that runs Ubuntu, is beautiful and hopes to run on Solar power... isnt that a killer combination...

check out his concept here...

http://nrutledge.blogspot.com/p/ubuntu-laptop-concept.html

Monday, July 25, 2011

Switching defaults in Ubuntu

Ubuntu allows you to have multiple alternatives installed for many software.. for example, java.
You can have the default open jdk installed, and then you can actually have the Sun version installed.

For example, to see what alternatives are installed for your software, try going to /etc/alternatives. Here you'd see many pieces of software with alternatives listed.

With these software installed, you would need to point your system to use one of them as the default, this is important especially after installing a newer version of the software.

In such a case, to switch the alternatives, you need to use this

sudo update-alternatives

If you do a man on update-alternatives, there is a plethora of options to use.

For our example, to configure the default for java, use this

sudo update-alternatives --config java

Thursday, September 30, 2010

my experiments with solr :)

Its a catchy title, but yes.. thats what I am going to talk about...

I came across hadoop, when I was looking for a new solution for one of our in-house projects. The need was quite clear, however, the solution had to be dramatically different.

The one statement we received from business was, "We need an exceptionally fast search interface". And for that fast interface to search upon they had more than a hundred million rows worth of data in a popular RDBMS.

So, when I sat about thinking, how to make a fast search application, the first thing that came to my mind was, Google. Actually, whenever we talk about speed or performance of web sites, Google is invariably the first name that comes across.


Further, Google has a plus point that there is always some activity at the back end to generate the page or results that we see, its never static content. And, then, another point, Google has a few trillion pieces of information to store/index/search whereas our system was going to have significantly lower volume of data to manage.   So, going with that, Google looked like a very good benchmark for this fast search application. 

Then I started to look for "How Google generates that kind of performance". There are quite a few pages on the web talking about just that.   But, probably none of them has the definitive/authoritative view on Google's technology or for that matter the insider's view on how it actually does what it does so fast.

Some pages pointed towards their storage technology, some talked about their indexing technology, some about their access to huge volumes of high performance hardware and what not...

For me, some of them turned out to be genuinely interesting, one of them was the indexing technology. There has to be a decent indexing mechanism to which the crawler's would feed and the search algorithms hit.  The storage efficiency is probably the next thing to come in the play. How fast can they access the corresponding item ?

Another of my observation is that, the search results (the page mentioning page titles and stuff) comes real fast, mostly less than 0.25 seconds, but the click on the links does take some time.  So, I think it has to be their indexing methodology that plays the bigger role.

With that in mind, I sat about finding what can do similar things and how much of Google's behaviour they can simulate/implement.

Then I found Hadoop project on apache (http://hadoop.apache.org/) which to a large extent reflects the way Google kind of system would work. It provides distributed computing(hadoop core), it provides a bigTable kind of database (hbase), provides map/reduce layer, and more.  Reading into it more, I figured out that this system is nice for a batch processing kind for mechanism, but not for our need of real time search.

Then I found solr(http://lucene.apache.org/solr/), a full text search engine under Apache Lucene.  It is a java written, xml indexing based genuinely fast search engine.  It provides many features that we normally wish for in more commercial applications, an being from apache, I would like to think of it as much more reliable and stable than compared to many others.

When we sat about doing a Proof of Concept with it, I figured out a few things –

•    It supports only one schema, as in, rdbms tables – only one. So, basically you would have to denormalize all your content to fit into this one flat structure.
•    It supports interactions with the server interface only through http methods be it the standard methods get/put etc or be it REST like interfaces.
•    It allows you loading data in varying formats, through xml documents, through delimited formats and through db interactions as well.
•    It has support for clustering as well. Either you can host it on top of something like hadoop or you can just configure it to do it within solr as well.
•    It supports things like expression and function based searches
•    It supports faceting
•    Extensive caching and “partitioning” features.

Besides other features, the kind of performance without any specific tuning efforts made me think of it as a viable solution.

In a nutshell, I loaded around 50 million rows on a “old” Pentium-D powered desktop box with 3 GB RAM running ubutnu 10.04 server edition (64 bit) with two local hard disks configured over a logical volume manager.

The loading performance was not quite great. Though its not that bad either. I was able to load a few million rows (in a file that was sized about 6 GB) in about 45 minutes when the file was on the same file system.

In return, it gave me query performances in the range of 2-4 seconds for the first query. For subsequent re-runs of the same query (within a span of an hour or so), it came back in approx 1-2 milliseconds.  I would like to think that its pretty great performance given the kind of hardware I was running upon, and the kind of tuning effort I put in (basically none – zero, I just ran the default configuration).

Given that, I wont say that I have found the equivalent or replacement of Google’s search for our system, but yeah, we should be doing pretty good with this.

Although there is more testing and experimentation that is required to be able to judge solr better, the initial tests look pretty good.. pretty much in line with the experiences of others who are using it.

Thursday, May 6, 2010

Ubuntu 10.04 is here.... Upgrade today...

Its only been a few hours since I have had the pleasure to upgrade to the latest version of Ubuntu.

And without any doubt, or any detailed analysis/investigation I can say this much for sure -

- The upgrade process was super easy. No hassles whatsoever, you just need to have a decent internet connection, few times you need to confirm the suggested decision, and done...

- The new system looks cleaner, much much cleaner. Its neat, to some extent beautiful. Its not about the background or themes or anything like that, but the overall look and feel is genuinely cool. Perhaps its to do with one thing that I have done on my part. My system font is "Lucida Grande" all across. And, for some reason the shapes and looks on this font are far better than anyone else I have encountered.

- The boot time has come down a good notch.

Well, I guess this should be a good starting point for my review on the new version, lets see how it comes across further.

in reference to: my tech playground (view on Google Sidewiki)

Friday, January 2, 2009

Changing System name in Ubuntu

When I installed Ubuntu for the first time, I named my system to reflect the os name (gutsy) and the architecture (64 bit). However, whenever there were system upgrades, the name got irrelevant. For example, when I upgraded to Hardy, the name still remained stuck to the last version of OS.

Therefore, I now thought of renaming my system to separate it from the os versions. This is so very simple to achieve in Ubuntu -

just edit the file /etc/hostname (owned by root, therefore use sudo). Put in the new name, and restart the system.

However, the consequences of this name change will have to be reflected across the network (if you have one). Hostname files on all other systems or dns entries will have to be updated to reflect the new system name.

Thursday, December 4, 2008

Finally... IE on Linux / Ubuntu...

Great..... It works... :)

Initially, when I needed to run a few IE specific sites on my Ubuntu installation, I spent quite some time searching around google, and some more prominent linux sites... But I did not hit success...

Today however, my search bore fruit... I found IEs4Linux project, and its so damned simple.

I am still running Hardy (not Interpid) on my desktop, and wine (the default). I picked up the instructions, kind of updated them myself to work in my hardy, and bingo.. it installed and works...absolutely.

Here's what I did -

  1. Found this page for installation instructions on Ubuntu :
    http://www.tatanka.com.br/ies4linux/page/Installation:Ubuntu

  2. Run the following commands -
  3. sudo apt-get update
    sudo apt-get install wine cabextract
  4. And then run this -
  5. wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
    tar zxvf ies4linux-latest.tar.gz
    cd ies4linux-*
    ./ies4linux
  6. The last one would open a dialog box and would ask you basic questions about what version do you want, choose what u like and bingo.. it would start installation...

  7. Within minutes, it automatically downloads some files from here and there, and is done.

  8. It just works...

Thursday, May 8, 2008

xgl - System monitor bug in hardy...

On Ubuntu's latest release, Hardy Heron, if you are using xserver-xgl package for graphics, you are in for a surprise.

The system monitor carries on a bug in xgl package wrt incorrect reporting of memory usage, and shows processes using zillion bytes of memory.

I started using xserver-xgl from the times in Gutsy when Compiz would not run on my hardware without that. However, I didnt quite notice this until I involved myself with beta release of hardy.

As it happened, I raised this issue on the Ubuntu forums (more than once actually, link-1, link-2), and finally after a few discussions/posts, it was discovered that

  • xserver-xgl has a few bugs
  • no more active development is happening on this stream of packages
  • Compiz should work without needing this package as well.
As a result, I tried removing xgl from my laptop, and voila, memory consumption numbers are from earth again.. the martian numbers have left... :)

Attaching two screenshots here to give the idea of the Martian numbers...



Monday, May 5, 2008

acid3 and webkit on hardy

I have been fascinated with the rendering of web pages by Safari. Always liked it, it has a certain edge to it when talking about the look and feel. When I read more, it turned out that the rendering engine is similar to Konqueror (somewhere I read that its actually based on open source libraries from Konqueror).

I dont have a mac so I cant really experience it first hand, but the windows release of Safari made me get my first experience.

This weekend, I was surfing net when I came across "webkit". Reading a bit more about it informed me -
WebKit is an open source web browser engine. WebKit is also the name of the Mac OS X system framework version of the engine that's used by Safari, Dashboard, Mail, and many other OS X applications. WebKit's HTML and JavaScript code began as a branch of the KHTML and KJS libraries from KDE. This website is also the home of S60's S60 WebKit development.
This made me think, if its actually open source to start with, the code must be available and may be I can compile it for my system.

Well, I didnt had to look much further... search produced this link...
http://blog.kagou.fr/post/2008/04/21/Test-Webkit-on-Ubuntu-Gutsy-and-Hardy

However, my first attempt at compilation failed, due to lack of one of the packages. libxt-dev

So, now the list of pacakges that should be installed on hardy to compile webkit would look like this :

sudo apt-get install autoconf automake libtool bison flex gperf libicu-dev libxslt-dev libcurl4-openssl-dev libsqlite3-dev libjpeg62-dev libpng12-dev libglibmm-2.4-dev libgtk2.0-dev build-essential libxt-dev

The sample browser, gives me 98 on acid3 (acid3.acidtests.org). Though very minimalistic in capabilities, this is the best score for acid3 that I could get on my system.

Here are my scores
Firefox 3 beta 5 : 71
Flock : 51
Opera 9.5 beta 2 : 78
Midori (webkit based) : 64
Webkit minimal browser (nightly build r32862 ) 98

On my windows partition as well, none of the browsers went beyong 70's. Best being opera at 71.

Saturday, May 3, 2008

Linux Kernel sites...

Found this interesting site. If you want to start knowing or playing around with linux kernel, this site could be a interesting start.

Linux Kernel Newbies

Also interesting would be to watch out for this site... www.kernel.org

Blogged with the Flock Browser

Tuesday, April 29, 2008

making vmware work on hardy..

Had trouble originally making vmware work on my new hardy 64 bit system (behaves almost same on desktop and server variants).

Careful looking up found out two things,
  • the new beta version (2) of vmware works from web based console, and could take quite some time making it work
  • vmware on hardy 64 bit requires some tweaking to do before you can really get up and running with it.
Finally managed to get through with help from ubuntuforums.org. Nice fellow has posted his experience with 64 bit version, and it turned out to work exactly the same way for me...

Loads of thanks :) to http://ubuntuforums.org/showpost.php?p=4357442&postcount=10

Tuesday, April 22, 2008

25 reasons to use Ubuntu... :)

Well, its a very interesting collection of reasons to use Ubuntu...

Some might not be as 100% agreeable as other might be, but still most are completely agreeable...
Well done...

Found it on this blog-... here u read 25 reasons for using Ubuntu

Monday, April 21, 2008

converting .img to .iso and mounting iso

.img files are CloneCD files created as a result of dumping contents of a Cd into a file. Very similar to .iso files which are more popular for containing cd images.

Many tools, like virtual box allow mounting .iso files as a virtual cd/dvd. Ubuntu repositories provide a tool called ccd2iso for converting the .img to .iso.

just install ccd2iso from the repositories using

sudo apt-get install ccd2iso

Once installed, just launch it for converting

ccd2iso file.img file.iso

This will create the iso equivalent of the img file.

To mount the iso file normally in the linux environment, just type

mount -o loop -t iso9660 filename.iso /mnt/iso

Sunday, April 20, 2008

Experiments With Hardy...

Ubuntu is by far the more stable of the OS's.. nothing new about that.

Last friday the release candidate of the new Hardy came out. It was beta for sometime now, and I had it for a few days in beta phase too..

It was my first time playing around with an OS in its beta stage and sure.. it feels good to be involved..

I found a few things, suggested on the forums, put out bug reports and it all works so nicely. Everybody involved is so open and helping... it was actually very nice exp. A good learning curve as well for a few things... :)

Currently there are a few things still going on with the "Hardy Release Candidate" with differing opinions, but all in all it looks like a good package to me. On my laptop, it works nicely, no issues as such...

In my view, the Ubuntu series has had its share of issues with hardware compatibility. With different people using different set of hardware, it turns out that not everything is 100% picked up by the installer as it should be.

I tried using virtualbox on hardy to install another copy of hardy 64 bit to experiment something, however, virtualbox wont allow that !! People on the ubuntu forums suggest that it could be a "feature" of vbox not to support 64bit cpu as of now... That would be a shame, actually... :(

Checking out vmware has been another shock. Earlier it used to be "FREE" for Linux, however now its only 30day evaluation version. Sounds like just another corporate, not a company supporting open source...

On the 64 bit point, I am really thinking of going 64 bit completely... all out... I have tried it for a few weeks now, and for me its been no problems at all... and the support for packages etc is fine for my needs... Yeah, some more programs need to be compiled by hand, but thats ok for me... :)

Ubuntu directory structure...

In the *nix operating systems, the tree style of file systems are there from time immemorial. In fact the idea of a inverted tree directory system or all filesystems originated with Unix.

The root of the tree is called "root directory" here and is the top level directory, and all its subdirectories make up the directory hierarchy. This is different as compared to Windows wherein there are drives. Especially diff since each diff hardware device has its own dir tree with its own root directory. In Unix there is only one root dir. Everything else, falls under that tree...

Here's a summary of the standard directories found on a typical Unix/Linux system. Current reference being Ubuntu.
  • /bin - binary applications (most of your executable files)
  • /boot - files required to boot (such as the kernel, etc)
  • /dev - your devices (everything from drives to displays)
  • /etc - just about every configuration file for your system
  • /etc/profile.d - contains scripts that are run by /etc/profile upon login.
  • /etc/rc.d - contains a number of shell scripts that are run on bootup at different run levels. There is also typically an rc.inet1 script to set up networking (in Slackwar), an rc.modules script to load modular device drivers, and an rc.local script that can be edited to run commands desired by the administrator, along the lines of autoexec.bat in DOS.
  • /etc/rc.d/init.d - contains most of the initialization scripts themselves on an rpm-based system.
  • /etc/rc.d/rc*.d - where “*'’ is a number corresponding to the default run level. Contains files for services to be started and stopped at that run level. On rpm-based systems, these files are symbolic links to the initialization scripts themselves, which are in /etc/rc.d/init.d.
  • /etc/skel - directory containing several example or skeleton initialization shells. Often contains subdirectories and files used to populate a new user’s home directory.
  • /etc/X11 - configuration files for the X Window system
  • /home - locally stored user files and folders
  • /lib - system libraries (similar to Program Files)
  • /lost+found - lost and found for lost files
  • /media - mounted (or loaded) devices such as cdroms, digital cameras, etc.
  • /mnt - mounted file systems
  • /opt - location for “optionally” installed programs
  • /proc - dynamic directory including information about and listing of processes
  • /root - “home” folder for the root user
  • /sbin - system-only binaries (see /bin)
  • /sys - contains information about the system
  • /tmp - temporary files
  • /usr - applications mainly for regular users
  • /var - mainly logs, databases, etc.
  • /usr/local/bin - the place to put your own programs. They will not be overwritten with upgrades.
  • /usr/share/doc - documentation.
Some content shamelessly borrowed from this page :Linux or ubuntu Directory structure

Friday, April 18, 2008

Get rid of the Ubuntu splash screen during boot

If you want to see Ubuntu booting like the good old text based linux systems, here are some ideas on removing the splash screen from the booting process....

Quickzi: Get rid of the Ubuntu splash screen during boot
Blogged with the Flock Browser

Wednesday, April 16, 2008

Tuesday, April 15, 2008

polishlinux.org » GNU/Linux for everyone

A very very useful/interesting site for people looking for Linux distribution informations. It also has a page for comparing various distributions on some specific parameters

Also, allows individuals to write their views in a feedback/forum form.

polishlinux.org » GNU/Linux for everyone

For comparing distributions, visit http://polishlinux.org/choose/comparison/

Also interesting might be www.distrowatch.com
Blogged with the Flock Browser

Sunday, April 13, 2008

Hardy 64bit beta Installed...

This weekend I installed Hardy 64 bit on my Core2Duo notebook and it flew... Just like that.

Earlier when I had gutsy for the first time on this laptop, I had plenty of issues with my hardware. Tweak here and tweak there, I had to do a lot of things to make it work the right way.

However, with Hardy this time, I would say, I felt happy for two reasons.. first it didnt complain about any of my hardware (probably because now my hardware is about a year old, and for gutsy it was so much newer..) and that its 64 bit installation.

I am yet to completely switch to this, especially since I encountered a bug with evolution and that Hardy is still beta, but I do see a way forward going with this version of Ubuntu for me.

As a result of this experiment, right now, I am triple booting, Vista business, Gutsy (32 bit) and Hardy (64 bit).

This is one thing I like so much about the PC notebooks, you can play around with them a lot more than you can do with an equivalent mac... :)

One of the guys on ubuntu forums posted this url for a better understanding of 64 bit systems... 64 bit Systems have more benefits than RAM only


Later on, I found this link, a very interesting collection of 32bit vs 64bit OS (especially Ubuntu) comparison.