tag:blogger.com,1999:blog-4106347006000302192023-09-22T10:24:16.624-07:00Byju Veedu's technology blogOn programming science and lifeByju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.comBlogger27125tag:blogger.com,1999:blog-410634700600030219.post-69960023163617631082010-07-26T04:59:00.000-07:002010-08-25T05:09:04.219-07:00Some thoughts on a language neutral webI have been playing around with Google translation and transliteration APIs which I found is very useful to overcome the language barriers in using the web. This especially have a lot more importance as web is still not accessible to a vast majority of the people in the developing world due to many reasons.Even if it is accessible language becomes a barrier for most of the people to utilize its benefits as only very little resources will be available in their local language.To make the idea of having the knowledge accessible to everyone everywhere at anytime possible it is important to solve this language problem.<br /><br /> Think about this idea of viewing every web page in your local language.You choose the language in which you want to view the page and the browser translates the content of the page to the language of your choice.I know some of you might already know that it is possible with google translation toolkit.But I was not fully happy with google translation as it is not meant for a common man who knows only his local language.First of all the interface is still in English and the user has to copy paste the URL into the box and do translate to view the translated page.So this is not aimed at a common man who only knows his local language(other than English). What I was thinking about is to have a comprehensive solution which will lead to the idea of a language neutral web. Let me put my thoughts into 5 basic points.<br /><br /><span style="font-weight: bold;">1) </span>Have a browser interface in local language.<br /> <span style="color: rgb(0, 102, 0);">Solution :</span>Yes it is already available in some form.For example Firefox have a localization option by which you can change the interface to the language you wish.This is good and satisfies most of my requirements .But still this is just a replacement of English with corresponding local language words and the interface and technical terms is not easy to understand for a man without fundamental computer knowledge.I wish to see such an interface existing.<br /><br /><span style="font-weight: bold;">2)</span>The user should be able to search in his local language.That means a search interface in local language where he can type in his local language and do search.<br /> <span style="color: rgb(0, 102, 0);">Solution : </span>Yes this is possible as Google has a option to choose your local language and search in that language.Of course there are many other search engines with same capability.<br /><br /><span style="font-weight: bold;">3)</span> In addition to search results in local language it should also bring the pages in other languages that matches the word user typed in his language and this test results should also be translated and shown in his language .<br /><br /><span style="color: rgb(0, 102, 0);">Solution :</span> This is not currently available with Google search(I assume the same with any other search).<br /><br /><span style="font-weight: bold;">4)</span> When the user clicks on any search results(or may be direct access of the page by typing the url) that web page should be opened and shown translated in his language if it is in a different language.That means any web page the user access should be translated and shown in his language if it is in a different language.<br /> <span style="color: rgb(0, 102, 0);">Solution :</span> There are some tools and plug-ins available for Firefox which provides an auto-translate feature.Examples are FoxLingo and Worldwide lexicon. They basically uses Google translation or any other translation services. I found Worldwide lexicon plug-in most suitable as per my requirement but it is bit slow as it takes some time to translate the page stage by stage.<br /><br /><span style="font-weight: bold;">5)</span> The user should be able to type in any web page in his local language and if the original web page is in not in his language the text input should be converted to that language while submitting.<br /> <span style="color: rgb(0, 102, 0);">Solution :</span> I know Google transliteration can be used to type in your local language in any web page.But there is no direct way for the automatic conversion of the text in input box to the language of the web page .Of course you can copy paste the text after conversion in an indirect way.<br /><br /><span style="font-weight: bold;">Challenges</span><br /><br />1) Some of the contents of the web which are not in textual format cannot be translated.<br /> Eg. Images,flash ,sound and video files.<br /> Also documents embedded or down-loadable from the web should be converted separately for viewing in his local language.<br /><br />2)Machine translation is not yet 100% correct even though there are efforts from multiple sources to improve this.Also it is available only for few languages right now and developing translation algorithms for all the languages is a challenge.For eg. Google translation services are available only for 57 languages right now.<br /><br /><span style="font-weight: bold;">Benefits</span><br /><br />1)The huge benefit I see is in making available huge knowledge base like Wikipedia and other sites to every one irrespective of their language. This is important as local language version of Wikipedia content is very limited compared to that in English and other major languages.This helps very much in education also.<br />2)The web developers need not worry about localization of their websites and is easy to reach about to a wide range of people using different languages.<br />3) Most importantly users are not restricted to use the service of any website because the website is in a different language. He will be able to view the site in his language and also will be able to interact in his language.<br /><br /><span style="font-weight: bold;">So is it achievable?</span><br /><br /> Yes. To a large extend still keeping the challenges in mind(And of course considering only textual data at the moment). Also you can see that among the 5 points only points 3 and 5 is not available as of know(As per my understanding) and that is also achievable with the existing technologies.Only thing which we are lacking is a comprehensive solution integrating all the five points which we discussed and I am sure it is going to happen.I request readers to put your thoughts and also to point out anything which I might have missed out.Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-57185536225142719242010-07-05T09:51:00.000-07:002010-07-05T10:22:33.354-07:00DCI -A better OO paradigm?DCI(Data Context and Interaction) has come up as a paradigm to guide you back to the essence of oo(Object Oriented) programming. Then the natural question is what is wrong in the way we perceive OO now?.Well there are a lot .The main problem is OO is designed to capture the end-users mental model in a computer.Are we really successful in using OO in that way. Definitely not.what we are trying to do is to build software on the four basic pillars(Abstraction,Encapsulation,Inheritance and polymorphism) that we believe as the base of OO design. In addition to that we have identified so may concepts like coupling,cohesion ,design patterns,AO(Aspect oriented)programming,DDD(Domain driven Design) etc. What are we really trying to solve here and why we have these many paradigms?. Please watch this video and you may not get all the points the speaker is trying to explain. Thinking in a different way is always difficult especially in the programming world where we are getting trained to follow the so called best practices and design principles. It is better refresh the mind sometimes ! .I am planning to have a separate post on DCI later, once I get a clear idea on practicing DCI.<br /><br /><span style="font-weight: bold;">Video</span><br /><a href="http://www.infoq.com/presentations/The-DCI-Architecture">http://www.infoq.com/presentations/The-DCI-Architecture</a><br /><span style="font-weight: bold;">Other References</span><br /><a href="http://www.artima.com/articles/dci_vision.html">http://www.artima.com/articles/dci_vision.html</a><br /><a href="http://blog.jaoo.dk/2009/03/04/handling-architecture-in-the-agile-world/">http://blog.jaoo.dk/2009/03/04/handling-architecture-in-the-agile-world/</a><br /><a href="http://vimeo.com/8235574">http://vimeo.com/8235574</a>Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-40393496521798919462010-07-04T06:51:00.000-07:002014-08-02T03:37:06.124-07:00Join twitter and follow great peopleBack in 2008 when I heard about twitter I didn't feel anything special and had the feeling that it is not going to make in difference.It was the same feeling some people still have about people that what can you express within 140 characters.I also had the feeling that most of the people using twitter are doing only meaningless chatter without any seriousness.(And it is in fact true as per some analysis). But as twitter became much popular by the beginning of 2009 I thought of just having a try and soon after joining I realized the fact the real value in using twitter comes from choosing the right kind of people and follow them.I know there are some people who thinks how to get maximum no of followers and I have seen many articles on that. But what I want to point out here how I benefited from twitter as a programmer. Also note that I am a budding programmer with just few years of experience and looking forwards to find some great people and make friends with.<br /><br /> If you are some one who is serious about tweeting and want to benefit from that what you should really concentrate is to find the right kind of people to follow. I as a programmer was more interested in programming and technology and I chose great programmers and techies as per my interests.Of course you might have the question how many good programmers are available in twitter. That is right ,it might be very less and you might even think that what is that they are going to tell in 140 characters.So you may think that following their blogs is a better option. Of course following programmer blogs is really great thing and it might be also correct that more programmers blog than tweet . But still you can find many good programmers who tweet actively and the difference between tweets and blog is that you may not blog on everything you come across. But you can tweet on everything you are involved and even though it is very short it might light a spark in your mind or make you to google about some topic. And they usually tweet about their blog post as well as well as other people's blogs which are interesting .Tweets can contains links of the topics they found interesting and there might be retweets of other people which are interesting. In that way you are in fact finding a bunch of people around a the topics you are interested with and can share your ideas as well. Don't you think this is much more than blogging and just following blogs.<br /><br /> Coming to people who may follow you it is very important for people to understand what you more interested in from your tweets. This will help to attract the right kind of people who you can really interact with. If you want some great programmers you are following to follow you also it is important that you tweet more about programming.If you are a person who are a frequent twitter user and tweet about almost everything I suggest have a separate account for more personal tweets. Making friends with some great programmers is really great ,but do it carefully and step by step by understanding the person and they shouldn't feel like a nuisance initially. I personally benefited a lot by joining twitter and following great programmers.So if you are someone still hesitant about joining twitter, break that notion, have a try and experience the difference.Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-52850165307426785762010-04-10T05:28:00.000-07:002010-04-10T05:45:26.412-07:00Four trends that developers have to concieve for the next decadePast two decades were very exciting and important for software developers and we saw web(www) emerging as a dominant platform for computation and communication.We also witnessed different trends like distributed computing and service orientation gaining popularity.Looking at recent years I am pointing to four exciting developments that is going to challenge the developer of the next decade.<br /><br /><span style="font-weight: bold;">Cloud</span><br /> Cloud is going to redefine the traditional software development platform.Here are some points.<br /><br />1) Abstraction over Deployment platform<br /> Developer is abstracted from the platform(hardware,OS,Server etc) where the application is going to be running. But he need to be aware of the Cloud provider's platform .Since everything is available as per "pay per use" policy applications needs to be optimized to use less resources as possible.<br />2) Abstraction over data storage and usage<br /> Since data will be available as services ,he need not be bothered about the underlying implementation,but only needs to know the API's to retrieve the data from the service provider.Scalability will also be addressed by the provider<br />3) Changes in traditional software development life cycle<br /> The development life-cycle for the cloud is going to be different from traditional one.The builds and releases should be aligned to the targeted cloud platform<br />4) Security and Dependency on specific cloud platforms<br /> These are contentious issues that developer have to be aware of and the design should be optimized to minimize any impacts.Security in the cloud is different from the traditional environments and no standards have been evolved right now.The applications should be developed in such a way that it should be easy to switch to a different cloud provider if needed.<br /><br /><span style="font-weight: bold;">Emergence of multiple platforms</span><br /><br /> PC is no more the dominant platform for applications in the coming age.Alternate platforms like Mobile and other hand-held devices like Ipad,e-readers etc are also becoming much more popular.For eg. Iphone and Android have already become popular platform for developers.It is becoming more important that applications should be made available in multiple platforms to reach out to more users.So it is time for developers to gain understanding of multiple platforms.<br /><span style="font-weight: bold;"><br />No Sql Alternatives</span><br /><br /> The dominance of RDBMS is getting challenged and everyone in the industry is getting the understanding that RDBMS as a one size fit for all is not a good idea. RDBMS is designed with ACID compliance as a principle ,but not all the real systems need full ACID compliance and also have problems to address like performance ,scalability and availability.So alternate implementations gained attention in recent times and many companies are moving to a better no-sql alternative which suites their application domain.<br /><br /><span style="font-weight: bold;">Functional Programming</span><br /><br /> Fuctional programming(FP) is gaining more importance as better paradigm for concurrent applications. Due to the emergence of multicore processors it become the duty of applications to be more concurrent to make maximum use of multiple cores.FP also helps programmers to code in higher level of abstraction and helps to reduce duplication of algorithms and in program correctness. Mainstream languages are adopting functional programming features like closures,functions as first class objects and immutability . Languages like ruby,python,C# has already adopted many of these features and new languages like scala,F#,Clojure have come up with strong functional programming support.Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-22425268936493404792010-03-21T10:10:00.000-07:002010-03-21T10:31:39.444-07:00Scala and Java interoperability<pre style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; color: rgb(0, 0, 0); -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"><span style="color: rgb(105, 105, 105);font-size:130%;" >//ScalaClass.scala</span><span style="font-size:130%;"><br /><br /></span><span style="color: rgb(128, 0, 0);font-size:130%;" >class</span><span style="font-size:130%;"> ScalaClass (val creater:String)</span><span style="color: rgb(128, 0, 128);font-size:130%;" >{</span><span style="font-size:130%;"><br />override def toString</span><span style="color: rgb(128, 128, 48);font-size:130%;" >=</span><span style="color: rgb(0, 0, 230);font-size:130%;" >"I am ScalaClass created by "</span><span style="color: rgb(128, 128, 48);font-size:130%;" >+</span><span style="font-size:130%;">creater<br /></span><span style="color: rgb(128, 0, 128);font-size:130%;" >}</span><span style="font-size:130%;"><br /><br /></span><span style="color: rgb(105, 105, 105);font-size:130%;" >//CallScala.java</span><span style="font-size:130%;"><br /></span><span style="color: rgb(105, 105, 105);font-size:130%;" >//This java class uses ScalaClass</span><span style="font-size:130%;"><br /><br /></span><span style="color: rgb(128, 0, 0);font-size:130%;" >public</span><span style="font-size:130%;"> </span><span style="color: rgb(128, 0, 0);font-size:130%;" >class</span><span style="font-size:130%;"> CallScala </span><span style="color: rgb(128, 0, 128);font-size:130%;" >{</span><span style="font-size:130%;"><br /></span><span style="color: rgb(128, 0, 0);font-size:130%;" >public</span><span style="font-size:130%;"> </span><span style="color: rgb(128, 0, 0);font-size:130%;" >static</span><span style="font-size:130%;"> </span><span style="color: rgb(187, 121, 119);font-size:130%;" >void</span><span style="font-size:130%;"> main</span><span style="color: rgb(128, 128, 48);font-size:130%;" >(</span><span style="color: rgb(187, 121, 119);font-size:130%;" >String</span><span style="color: rgb(128, 128, 48);font-size:130%;" >[</span><span style="color: rgb(128, 128, 48);font-size:130%;" >]</span><span style="font-size:130%;"> args</span><span style="color: rgb(128, 128, 48);font-size:130%;" >)</span><span style="font-size:130%;"> </span><span style="color: rgb(128, 0, 128);font-size:130%;" >{</span><span style="font-size:130%;"><br /> ScalaClass scalaClass</span><span style="color: rgb(128, 128, 48);font-size:130%;" >=</span><span style="font-size:130%;"> </span><span style="color: rgb(128, 0, 0);font-size:130%;" >new</span><span style="font-size:130%;"> ScalaClass</span><span style="color: rgb(128, 128, 48);font-size:130%;" >(</span><span style="color: rgb(0, 0, 230);font-size:130%;" >"Java"</span><span style="color: rgb(128, 128, 48);font-size:130%;" >)</span><span style="color: rgb(128, 0, 128);font-size:130%;" >;</span><span style="font-size:130%;"><br /> </span><span style="color: rgb(187, 121, 119);font-size:130%;" >System</span><span style="color: rgb(128, 128, 48);font-size:130%;" >.</span><span style="font-size:130%;">out</span><span style="color: rgb(128, 128, 48);font-size:130%;" >.</span><span style="font-size:130%;">println</span><span style="color: rgb(128, 128, 48);font-size:130%;" >(</span><span style="color: rgb(0, 0, 230);font-size:130%;" >"Calling scala from java"</span><span style="color: rgb(128, 128, 48);font-size:130%;" >)</span><span style="color: rgb(128, 0, 128);font-size:130%;" >;</span><span style="font-size:130%;"><br /> </span><span style="color: rgb(187, 121, 119);font-size:130%;" >System</span><span style="color: rgb(128, 128, 48);font-size:130%;" >.</span><span style="font-size:130%;">out</span><span style="color: rgb(128, 128, 48);font-size:130%;" >.</span><span style="font-size:130%;">println</span><span style="color: rgb(128, 128, 48);font-size:130%;" >(</span><span style="font-size:130%;">scalaClass</span><span style="color: rgb(128, 128, 48);font-size:130%;" >)</span><span style="color: rgb(128, 0, 128);font-size:130%;" >;</span><span style="font-size:130%;"><br /></span><span style="color: rgb(128, 0, 128);font-size:130%;" >}</span><span style="font-size:130%;"><br /><br /> </span><span style="color: rgb(128, 0, 0);font-size:130%;" >public</span><span style="font-size:130%;"> </span><span style="color: rgb(187, 121, 119);font-size:130%;" >void</span><span style="font-size:130%;"> pingMeFromScala</span><span style="color: rgb(128, 128, 48);font-size:130%;" >(</span><span style="color: rgb(128, 128, 48);font-size:130%;" >)</span><span style="color: rgb(128, 0, 128);font-size:130%;" >{</span><span style="font-size:130%;"><br /> </span><span style="color: rgb(187, 121, 119);font-size:130%;" >System</span><span style="color: rgb(128, 128, 48);font-size:130%;" >.</span><span style="font-size:130%;">out</span><span style="color: rgb(128, 128, 48);font-size:130%;" >.</span><span style="font-size:130%;">println</span><span style="color: rgb(128, 128, 48);font-size:130%;" >(</span><span style="color: rgb(0, 0, 230);font-size:130%;" >"Hey scala pinged me"</span><span style="color: rgb(128, 128, 48);font-size:130%;" >)</span><span style="color: rgb(128, 0, 128);font-size:130%;" >;</span><span style="font-size:130%;"><br /> </span><span style="color: rgb(128, 0, 128);font-size:130%;" >}</span><span style="font-size:130%;"><br /><br /></span><span style="color: rgb(128, 0, 128);font-size:130%;" >}</span><span style="font-size:130%;"><br /><br /></span><span style="color: rgb(105, 105, 105);font-size:130%;" >//CallJava.scala</span><span style="font-size:130%;"><br /></span><span style="color: rgb(105, 105, 105);font-size:130%;" >//This scala class uses the java class CallScala</span><span style="font-size:130%;"><br /><br />object CallJava </span><span style="color: rgb(128, 0, 128);font-size:130%;" >{</span><span style="font-size:130%;"><br />def main </span><span style="color: rgb(128, 128, 48);font-size:130%;" >(</span><span style="font-size:130%;">args</span><span style="color: rgb(128, 128, 48);font-size:130%;" >:</span><span style="color: rgb(187, 121, 119);font-size:130%;" >Array</span><span style="color: rgb(128, 128, 48);font-size:130%;" >[</span><span style="color: rgb(187, 121, 119);font-size:130%;" >String</span><span style="color: rgb(128, 128, 48);font-size:130%;" >]</span><span style="color: rgb(128, 128, 48);font-size:130%;" >)</span><span style="color: rgb(128, 0, 128);font-size:130%;" >{</span><span style="font-size:130%;"><br />val callScala </span><span style="color: rgb(128, 128, 48);font-size:130%;" >=</span><span style="font-size:130%;"> </span><span style="color: rgb(128, 0, 0);font-size:130%;" >new</span><span style="font-size:130%;"> CallScala<br />callScala</span><span style="color: rgb(128, 128, 48);font-size:130%;" >.</span><span style="font-size:130%;">pingMeFromScala<br /></span><span style="color: rgb(128, 0, 128);font-size:130%;" >}</span><span style="font-size:130%;"><br /></span><span style="color: rgb(128, 0, 128);font-size:130%;" >}</span><span style="font-size:130%;"><br /><br /><br />#Steps<br /><br />1)scalac ScalaClass.scala<br /><br />2)javac CallScala.java<br /><br />3)scalac CallJava.scala<br /><br />//Include scala-library.jar in classpath if you are usinf a scala class in java<br />4)java -cp /home/byju/scala-2.8.0.Beta1/lib/scala-library.jar:. CallScala<br /><br />// You can use scala to run a java class<br />5)scala CallScala<br /><br />6)scala CallJava<br />// You can use java to run a scala class by including scala-library.jar in classpath<br /><br />7)java -cp /home/byju/scala-2.8.0.Beta1/lib/scala-library.jar:. CallJava<br /><br /></span></pre>Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-76583027731909603102010-02-28T18:50:00.000-08:002010-02-28T19:59:09.208-08:00Floating around the cloud for one day - CloudCamp ,BangaloreI attended the Bangalore CloudCamp that happened on 28th Feb 2010.In contrast to what I thought about it didn't take much time to find and reach the place (Dayananda Sagar Institutions,Kumaraswamy Layout) and the turn around of large no of attendees was also above my expectation.I saw lot of guys actively looking for what is happening in and around the cloud and how it is going to change the IT atmosphere.This has to be looked into when there are opinions from many corners that cloud is going to be another big hype rather than reality (a cloud without rain !).I assume there were around 200 no of attendees.<br /><br /> Talking about the sessions,it was a meet-up along with Hadoop summit organised by yahoo.being a developer I have the opinion that large conference add less value to the developer than small meet-ups.Organised conferences have a pre-planned set of talks and in that they will try to pour in everything within few minutes of time.It might help to get a broad overview about some topic and will especially help business guys to get a advertisement also.Whereas small meet-ups are developer friendly and you have more freedom and time to spend and space for participation.<br /><br /> Talking in this context the lightning sessions which grabbed most of the morning time was mainly a waste of time for me.But I understand it from the organiser's perspective that they have no choice as to support the sponsors. It all started with the un-conferencing session were some panellists chosen from the audience answered questions from audience and based on interest for a particular topic un-conference sessions were chosen.This was special with active participation of attendees.The un-conferencing sessions were scheduled parallel to the hadoop sessions in the afternoon in three separate classrooms and there was lunch break.<br /><br /> There were 9 un-conference sessions altogether.Let me list down them .<br /><br />1) Intro to cloud computing<br />2) Session on Windows azure<br />3) Data management in cloud<br />4) Business models on cloud<br />5) Security in cloud<br />6) Apache mahout session<br />7) Google app-engine session<br />8) SDLC for cloud<br />9) Databases in cloud <br /><br /> I wanted to understand hadoop and at the same time interested in some un-conferencing sessions also and I have to schedule my time effectively as they are going in parallel.Finally I decided to attend the Apache Mahout session only in un-conference as it felt something interesting for me.Apache mahout is a Machine Learning software built on top of hadoop and lucence .Although I missed some initial hadoop sessions because of this mahout session was worth attending and Robin done a good job by presenting it in more effective way.<br /><br /> When I moved to hadoop after the Mahout session the initial sessions were over and there were not much interesting afterwards as it was more about QA and performance tuning and one session from professor from PSG college on how they used hadoop in their research.I appreciate the collaboration from the industry and academia in this area and have the opinion that that is one of the are India have to improve upon.The event was sponsored by Yahoo and Microsoft and it is great to see the commitment of yahoo in Hadoop open source project and yahoo proved that hadoop is worth and production ready as they are already running hadoop in more than 30000 nodes as the back-end of their web application infrastructure.Bear with me if I am biased being an open source advocate,but Microsoft's participation was targeted for their advertisement rather than interest in community and they tried to utilize it very well.The final panel discussion with industry pioneers had very short and so couldn't raise to the expectation .Even though there were some good thoughts and good participation from audience.<br /> <br /> In summary it was a great effort to boost the community around the cloud in India and Prem did a good job in organising this and Dave Nielsen as cool and jovial guy managed sessions very well.Overall it was very particular with active participation of the cloud community in India.Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-55187308450203023832010-02-16T08:48:00.000-08:002010-02-15T23:11:05.590-08:00Web resources in MathematicsBeing a mathematics graduate I have a passion for mathematics and I am always fascinated by its beauty.Nevertheless I am interested in history of science and mathematics and computer science in particular and whenever I come to know any related web resource I will bookmark that.I discovered Diigo few months ago and it was the kind of tool I was looking for and I moved all my bookmarks from google to Diigo. In addition to just bookmarking it archives the pages bookmarked and it will be helpful if it gets lost in future(and it is very common).Also it is claimed to be a researcher's tool as it has facility to arrange items and highlight information ,share items with others etc.I suggest every one to try Diigo once.Coming back to mathematics I am listing below some links which will be interesting for any maths lover.<br /><br />1) <a href="http://en.wikipedia.org/wiki/Mathematics_portal">Wikipedia mathematics portal</a><br /> Of cource wikipedia is the number one source for any topic.<br />2) <a href="http://planetmath.org/">Planet maths</a><br /> Planet maths is an encyclopaedia for mathematics.It has article on almost every subject and it is reviewed by members. Each topic is owned by one member and so it will be more authentic and accurate.<br /><br />3)<a href="http://mathworld.wolfram.com/">Wolfram Math world</a> and <a href="http://www.wolframalpha.com/">wolfram alpha online</a><br />Math world has rich set of details about almost all the branch of mathematics. Wolfram alpha knowledge engine uses mathematica software which helps you to compute so many mathematical functions online quickly.It is a powerful tool for mathematics students and teachers.<br />4) <a href="http://turnbull.mcs.st-and.ac.uk/history/">MacTutor History of Mathematics archive</a><br />The MacTutor History of Mathematics archive is the largest source of information in the web about the history of mathematics and also about mathematicians.<br />5)<a href="http://www.cut-the-knot.org/">cut the knot</a><br />contains interesting mathematics puzzles and introduction to mathematics topics and problems<br />6)<a href="http://eom.springer.de/">Springer encyclopaedia of mathematics</a><br />Springer encyclopaedia of mathematics acts as a quick reference for mathematics topics available with an index.<br />7)<a href="http://ocw.mit.edu/OcwWeb/Mathematics/index.htm">MIT open courseware </a><br />MIT open courseware from MIT is the largest source of learning materials on any subject .<br />8)<a href="http://mathforum.org/">Math forum</a><br />The Math Forum is a leading center for mathematics and mathematics education on the Internet.It has a lot of resources and links for learning and teaching mathematics.<br />9)<a href="http://www.iep.utm.edu/category/s-l-m/math/">Internet encyclopedia of philosophy</a><br />Internet encyclopedia of philosophy has a section about mathematics and logic which is helpful to understand the foundations and philosophy of mathematics.<br />10)<a href="http://primes.utm.edu/">Prime pages</a><br />Prime pages has lot of information about prime number research an interesting field in number theory.<br />11)<a href="http://www.gresham.ac.uk/eventsresults.asp?PageId=4&frmSubject=4&frmPeriod=past">Gresham college lectures in mathematics</a><br />A lot of interesting lectures in mathematics.I found these very interesting and informative.<br />12)<a href="http://www.mathopenref.com/">The Math Open Reference Project</a><br />A free interactive math textbook on the web. Initially covering high-school geometry.<br />13)<a href="http://www.visualmathlearning.com/">visualmathlearning.com</a><br />Understanding Mathematics through Insight, Concept, and Perception<br />14)<a href="http://www.math-atlas.org/">math-atlas.org</a><br />Introductory articles on almost all the branches of mathematics.<br />15)<a href="http://nrich.maths.org/public/">NRICH</a><br />NRICH is a team of qualified teachers who are also practitioners in RICH mathematical thinking.NRICH aims to Enrich the experience of the mathematics curriculum for all learners.<br /><br /> I hope these links will be useful for all mathematics lovers seeking for resources and reference in web.Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-84440443452689985902010-01-24T04:53:00.000-08:002010-01-28T19:40:06.307-08:00Maven BasicsComing from the Ant world it took sometime for me to digest the basics of Maven and it is difficult to get into any tool or technology without getting its basics. So I am putting down my thoughts/understanding of maven for newbies.Also I request to point out and correct any mistakes as I am not an expert of Maven.<br /><br /><span style="font-weight: bold;">Why Maven and how is it different from Ant?</span><br /> Maven is a standardized project development and lifecycle management system<br />for java projects.The problem with Ant was that each project will follow its own way of building and packaging applications and this lack of standard or convention will be a problem when switching from one project to another or sharing the libraries among projects.So a new concept of standardizing and building some patterns for different kind of projects came up which will help people to reuse the build models and libraries among projects.The basic concept of maven are described below.<br /><br /><span style="font-weight: bold;">1)Standard build structure</span><br /> Maven enforces a standard build structure for all the java projects.Please refer the reference link to understand the same.<br /><br />Reference :<br />http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html<br /><span style="font-weight: bold;">2) Project Object Model or POM</span><br /> Each project need to have an xml file(pom.xml) that contains information about the project and configuration details used by Maven to build the project.This should be placed in the root directory of the project.<br />Reference : http://maven.apache.org/guides/introduction/introduction-to-the-pom.html<br /><br /><span style="font-weight: bold;">3) Concept of central repository for libraries</span><br /> This is useful when you have multiple projects using the same set of libraries and want<br />to share them.Also it makes version control and dependancy management easy.The libraries will be made vailable in central repositories online and you specify the details of the libraries as dependencies in the pom.xml.You can find the libraries from either the central repository of maven ()or from any other Maven repositories available. When we build the system the the dependant jars will be downloaded from the net and will be put into your local<br />repository.You can specify the location of your local repository in M2_HOME/settings.xml or it will take a default location(For windows it is My Documents/.m2 and for linux ~home/.m2). So instead of each project maintaining separate libraries the libraries will be taken from the local repostory while building.The reference links have more information about repositories.<br /><br />Reference:<br />http://maven.apache.org/guides/introduction/introduction-to-repositories.html<br />http://www.mkyong.com/maven/how-to-search-the-maven-coordinates-pom-xml-dependency/<br /><br /><span style="font-weight: bold;">4) Maven plugins and goals</span><br /><br />Maven accomplishes everything using plugins .Intact Maven can be considered as a plugin<br />execution framework.We will crate a plugin for each task you want to do with maven.Each plugin will again have a set of goals.Maven comes with a standard set of plugins and goals for common project management tasks.<br />For eg.<br />clean -Clean up after the build.<br />site- Generate a site for the current project.<br /><br />In addition to that you can create your own plugins to accomplish the tasks specific to your project.For eg.Scala has a maven plugin to help managing scala projects.Again plugin will be available in central repositories(http://repo1.maven.org/maven2/org/apache/maven/plugins for maven) .If you are using the libraries or plugins from maven central repository you need not specify the repositories and plugin repositories in pom.xml files.Any other repositories should be specified in pom.xml.<br /><br />Reference :<br /><br />http://maven.apache.org/plugins/index.html<br />http://hamandeggs.wordpress.com/2009/08/30/creating-a-simple-maven-plugin/<br /><br /><span style="font-weight: bold;">5) Maven archetype plugin</span><br /><br /> Archetype is a Maven project templating toolkit. An archetype is defined as an original pattern or model from which all other things of the same kind are made. Archetype will help authors create Maven project templates for users, and provides users with the means to generate parameterized versions of those project templates.<br /><br />To create a new project based on an Archetype, you need to call mvn archetype:generate goal as follows<br /><br />mvn archetype:generate<br /><br />It will list the archetypes available in the repositories available and you can choose the one which fits your project .It will ask for some more information about the project like name and version and once you provide those details archtype lugin will create the ptoject structure and pom.xml file for your project.Refer the links for more information<br /><br /> <br />References<br />http://www.mkyong.com/maven/how-to-create-a-project-with-maven-template/<br />http://maven.apache.org/guides/introduction/introduction-to-archetypes.htmlByju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-8783794631457911242010-01-17T03:37:00.000-08:002010-01-17T03:51:58.242-08:00Believe me, Linux is as easy as any other OS <title></title> <meta name="GENERATOR" content="OpenOffice.org 3.1 (Linux)"> <style type="text/css"> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } --> </style> <p style="margin-bottom: 0cm;"> I recently read an article in computer world “<a href="http://blogs.computerworld.com/15402/you_dont_need_to_know_linux_to_use_linux">You don't need to 'know' Linux to use Linux</a>”.It addresses the notion people have that you need to master some commands or need some expertise to use linux easily. I can see people still have those notions even after linux as OS matured a lot and came a longway to compete with others. Let me adress some of them and i will be relying mainly the most popular desktop linux distro Ubuntu to prove my points.</p><p style="margin-bottom: 0cm;"> <meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"> <title></title> <meta name="GENERATOR" content="OpenOffice.org 3.1 (Linux)"> <style type="text/css"> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } --> </style> </p><ol><li><p style="margin-bottom: 0cm;">Installing linux may corrupt my windows OS</p></li></ol>This might be mostly due to the fact that linux is following a different file system(ext3 or ext4) and the experience they might had in trying linx years before. In reality it is very strightforward and there is nothing to fear if you follow the proper instructions. The good thing is Ubuntu have very good documentation to help you in everything. Please refer the section <a href="http://ubuntuguide.org/wiki/Ubuntu:Karmic#Dual-Booting_Windows_and_Ubuntu">Dual-Booting Windows and Ubuntu <span style="text-decoration: none;">in the Ubuntu userguide.</span></a>
<br /><ol start="2"><li><p style="margin-bottom: 0cm;">You need to know shell commands to use linux</p> </li></ol> <p style="margin-bottom: 0cm;"> This is very well addressed in the article I refered earlier(“<a href="http://blogs.computerworld.com/15402/you_dont_need_to_know_linux_to_use_linux">You don't need to 'know' Linux to use Linux</a>”.) </p> <p style="margin-bottom: 0cm;"> </p> <ol start="3"><li><p style="margin-bottom: 0cm;">Linux don't have good support for audio and video and you need to be hacker to make it work</p> </li></ol> <p style="margin-bottom: 0cm;"> This is a thing of the past and now all the popular disto's have support for all the popular audio and video file formats. But not all the drivers might not be bundled with the os as you might have for windows . If you take Ubuntu for example mp3 driver won't come bundled with Ubuntu as it is not complaint with Ubuntu license terms.You have to understand Ubuntu and open source philisophy to understand its reason fully ,but as normal user you just need to install gstreamer plugins separately from Ubuntu software center .I will be expalining installing applications in Ubuntu separately.</p>
<br /><ol start="4"><li><p style="margin-bottom: 0cm;">I will be landed in strange world with none of favourite apps in windows not available.</p></li></ol>You are right in one way as you might be using some windows software for years and is quiet confortable with them. But the point is that you have an alternate software of almost every kind in linux and there are many far better and lightweight than in windows. If you are determined it won't take much time learn any of them and you can see a lot more variety in linux world then you see in windows. For a list of applications refer the following links. <p style="margin-bottom: 0cm;"><a href="http://ubuntuguide.org/wiki/Ubuntu:Karmic#windows"> Ubuntu user guide</a></p> <p style="margin-bottom: 0cm;"> <a href="http://eackouye.i.ph/blogs/eackouye/2008/04/18/19-things-to-do-after-installing-ubuntu-linux">19 cool things to do after installing Ubuntu</a></p> <p style="margin-bottom: 0cm;"><a href="http://blog.thesilentnumber.me/2009/09/top-things-to-do-after-installing.html">http://blog.thesilentnumber.me/2009/09/top-things-to-do-after-installing.html</a></p>
<br /><ol start="5"><li><p style="margin-bottom: 0cm;">It has a lot of security restrictions and is difficult to deal with</p> </li></ol> <p style="margin-bottom: 0cm;">This is because linux is following unix architecture and is designed as a multiuser system at its core. This is basically different from the windows which was deveolped for desktop PC's. But linux architecture has a lot of advantages and is the reason why linux is considered the most secured os and have very less chance for the viruses to be affected. It may be annoying initially as there may be restrictions for normal users and once you understand it you will see the benefit. </p> <p style="margin-bottom: 0cm;"> </p> <ol start="6"><li><p style="margin-bottom: 0cm;">Installing applications is a painfull task and you need to be a techie to do that.
<br /></p></li></ol>This is really wrong and ideally there is hardly any difference with windows now.Infact it is much easy as Ubuntu has a Ubuntu software center from you can find the applications and do a click and install. Fundamentally there is a difference in the way applications are installed and managed linux as linux is following a different file system architecture. But now everything is possible through GUI and if you are techie of course command line will give you more power. <ol start="7"><li><p style="margin-bottom: 0cm;">No one knows linux to support me if there is a problem.</p></li></ol>This is another wrong notion. It may be right as you won't be having many people around you who know linux as linux is less popular than windows. But if you look at online you get answers for all your problems. Infact as linux is a community driven os it is very easy to get help from community than from official documentation as in case of windows. <ol start="8"><li><p style="margin-bottom: 0cm;">Anything comes free of cost is not good or with less quality.</p> </li></ol> <p style="margin-bottom: 0cm;">Some people have a general feeling that as free software with less quality. This may be because the think that as linux is developed by volunteers who are not resposible for bugs and software doesn't offer any official support .This is infact wrong and eventhough free software is developed by volunteers they also go through the same rigorous development and testing cycles that commercal softwares do. Infact as there are more involement from community it is possible that more people test it at early stages and more bugs are fixed before the release.Even you can get commercial support from any linux vendors like Redhat or Novell if you are ready to pay for that.</p> <ol start="9"><li><p style="margin-bottom: 0cm;">Linux is less user-friendly compared to windows.</p> </li></ol> <p style="margin-bottom: 0cm;">This might be true few years back as linux GUI's were not that developed and there were no GUI for some taks. But now if you look at most Linux distros the GUI is in par with windows and you may even feel more confortable working with linux as its interface much more simple and lightweight. You will ofcourse have an affinity towards a platform you are working for years and may take some time to get confortable with a new once. But as a person recently moved completely to Ubuntu i felt linux is muck easy to work with and intellectually satisfying for me being a programmer.</p> <p></p> <p style="margin-bottom: 0cm;">
<br /></p> Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-71365474807552279142010-01-07T19:51:00.000-08:002010-03-21T10:39:01.778-07:00Why I started learning Scala ?Recently I started learning Scala language.I have been working on java for the past 4 years and is quite satisfied with it.I am also sure java is going to stay there for a long term against all the criticisms and hatred of those dynamic language advocates. Java gives me lot of confidence to take a problem or project as I am sure there will be a solution in java for everything. As a new comer it may be confusing as java gives you a lot of options and it is difficult to choose the right approach or solution ,but as you mature you enjoy the freedom and power it gives .It is especially because java's open source nature and availability of lot of open source libraries and frameworks. Look for example how many web frameworks you have in java.<br /><br /> Recently we saw emergence a lot of jvm languages which according to me strengthens the java language platform. The important among them are Jruby,Jython,Scala,Clojure and Groovy Jruby and Jython are JVM versions of Ruby and Python respectively ,which are two powerful dynamic languages. They helps lovers of those dynamic languages to stick to that platform and at the same time leverage the power of JVM,the most tested, trustworthy VM platform. Groovy ,Scala and Clojure are developed independantly and among them scala attracted me very much and I decided to learn scala .This is mainly because I felt any need of learning any of the dynamic languages in JVM as java gives me what I want and I am confident with that. But when looking at Scala I saw some interesting stuff and felt it is worth to learn that. I am listing down some of those features.<br /><br />1) Functional programming<br /> Scala support for functional programming attracted me .As of now I didn't think much about the style of programming I followed and the debate over Imperative or functional programming in scala groups pushed me to take a deep look at functional programming aspects. Scala being a multi-paradigm language leverage the power of both functional and imperative approaches.<br />2) Type inference<br /> Scala is strongly typed language and at the same time it has something called type inference by which it infers the type of a variable and relieves most of the burden from programmer.<br />3) Actors<br /> Actor is a more advanced way for parallel programming instead of using threads and locks which is very low level and difficult to use for programmers.<br />4) DSL support<br /> DSL (Domain specific languages) are gaining popularity and scala offers a power full support with its parser library.<br /><br /> I will try publish detailed notes on each of these as I progress ,but the interesting point is<br />that it forced me two look deep at some basic concepts of programming which I consider very valuable as a programmer.Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-55518768841103342802009-12-18T22:42:00.000-08:002009-12-19T07:15:47.282-08:00Play!, a promising java web framework<span style="font-size:85%;"><span style="font-family: verdana;"> <span style="font-size:100%;"> </span></span><span style="font-size:100%;"><span style="font-family: verdana;"> </span></span></span><span style="font-family: verdana;font-size:100%;" >Recent years we saw a lot of java web frameworks coming to the scene and gaining popularity.Each of them brings features to ease web development or claim to address the problems with traditional java web frameworks like struts or spring. The common aim is to reduce the complexity and increase productivity. Play is a framework which claims a framework for the developers providing the best tools to ease the development and increase productivity. Here are the features which distinguishes it from other frameworks.<br /><br />1) </span><span style="font-size:100%;"><span style="font-family: verdana;">Simple stateless mvc architecture</span></span><br /><span style="font-family: verdana;font-size:100%;" >2) Based of REST principles</span><span style="font-weight: bold;"><br /></span>3)<span style="font-weight: bold; font-family: verdana;"> </span><span style="font-family: verdana;">The framework compiles your sources and hot-reloads them into the JVM without the need to restart the server.So you can edit and reload the changes immediately.</span><br /><span style="font-size:100%;"><span style="font-family: verdana;">4)</span></span><span style="font-family: verdana;font-size:100%;" > Aimed to provide developer's productivity</span><span style="font-size:100%;"><span style="font-family: verdana;"></span><br /><span style="font-family: verdana;">5) TDD support with UI driven testing using integrated selenium .</span><br /><span style="font-family: verdana;">6) Improved exception messages</span><br /><span style="font-family: verdana;">7) HTTP to code mapping</span><br /><span style="font-family: verdana;">8) Full stack application framework with support for common web application needs</span><br /><span style="font-family: verdana;">9) Efficient templating engine</span><br /><span style="font-family: verdana;">10) JPA with hibernate support.</span><br /><br /><span style="font-family: verdana;"> Another remarkable point is good documentation and developer support through forum.</span><span style="font-family: verdana;">I tried play with the sample application given in documentation and felt easy and developer friendly .Play comes with inbuilt server where you can deploy the application or import as a war file and deploy in another server. An interesting point is it breaks some java traditions in terms of packaging and MVC modeling.So it is time for playing your app.</span></span><br /><br /><br /><span style="font-weight: bold; font-style: italic;font-size:100%;" ><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-size: 18px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-style-span" style="font-weight: 300; text-align: left;"></span></span></span><span style="font-weight: bold;"><br /></span>Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-55743334543708923722009-12-06T00:42:00.000-08:002009-12-06T01:11:58.361-08:00Deep and invisible web<span style="font-size:100%;"><span style="font-family:verdana;"> It goal of a search engine is to index as much information in the web as possible. But is it possible to index the whole web with a highly powerful search engine given unlimited processing power?. It is not! There are various reasons. The web that can be indexed by search engines is called surface web. The web which is not part of the surface web is called deep web or invisible web. It is estimated that deep web is much more larger than surface web (In fact more than 10 times larger, even though the estimates vary). There are different reasons why the whole web is not indexable by search engines.</span><br /><span style="font-family:verdana;">As per wikipedia deep Web resources may be classified into one or more of the following categories:</span></span> <ul style="font-family:verdana;"><li><span style="font-size:100%;">Dynamic content: which are returned in response to a submitted query or accessed only through a form, especially if open-domain input elements (such as text fields) are used; such fields are hard to navigate without domain knowledge.</span></li></ul> <ul style="font-family:verdana;"><li><span style="font-size:100%;">Unlinked content: pages which are not linked to by other pages, which may prevent web crawling programs from accessing the content. This content is referred to as pages without backlinks (or inlinks).</span></li></ul> <ul style="font-family:verdana;"><li><span style="font-size:100%;">Private Web: sites that require registration and login (password-protected resources).</span></li></ul> <ul style="font-family:verdana;"><li><span style="font-size:100%;">Contextual Web: pages with content varying for different access contexts (e.g., ranges of client IP addresses or previous navigation sequence).</span></li></ul> <ul style="font-family:verdana;"><li><span style="font-size:100%;">Limited access content: sites that limit access to their pages in a technical way (e.g., using the <span style="text-decoration: underline;">CAPTHAs </span>, or no-cache Pragma HTTP headers prohibit search engines from browsing them and creating cached copies).</span></li></ul> <ul style="font-family:verdana;"><li><span style="font-size:100%;">Scripted content: pages that are only accessible through links produced by javascript as well as content dynamically downloaded from Web servers via flash or ajax <span style="text-decoration: underline;"></span> solutions.</span></li></ul> <ul style="font-family:verdana;"><li><span style="font-size:100%;">Non-HTML/text content: textual content encoded in multimedia (image or video) files or specific file formats handled by search engines.</span></li></ul><span style="font-size:100%;"><span style="font-family:verdana;">There are various approaches taken by the search engines to index the deep web. For eg. Google’s approach to the Deep Web is to find HTML forms, send input to these forms, and index the resulting HTML pages.Yahoo made a small part of the deep Web searchable by releasing Yahoo! Subscriptions. This search engine searches through a few subscription-only Web sites and the user will be asked to login to access content. Kosmix instead, for any given search query taps into html forms in real-time through API calls, evaluates the results and organizes them into a topic page. Research is going on different approaches to tap this deep web ,but it is sure that large part of the web will be still invisible by search engines.</span><br /><br /><br /></span>Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-30295068301212579742009-11-24T06:42:00.000-08:002009-11-24T07:41:55.234-08:00It is high time to move to Linux!I really started working on ubuntu recently by installing Ubuntu karmic koala .I enjoy working in linux platform and feels that it is an OS for the developer by the developer and of the developer. I remember the days started with the linux while studying for the PG course(2001-2004) , the struggles to play music and video files ,try to understanding and editing of configuration files etc. The impression those created prevented me in getting deep into linux for a very long time.In fact I installed ubuntu 9.4 some six months back with wubi installer(I was afraid to touch my windows OS) and played around for some time.But I didn't feel that great about ubuntu that time and it got corrupted after few days and I abandoned ubuntu thereafter.What made me to have another experiment with ubuntu this time is some articles comparing ubuntu karmic koala against windows 7 soon after the release of karmic koala.I hadn't seen such a great comparison betwean ubuntu and windows before and decided to have another experiment with linux.Even this time I started with wubi installer(Installing ubuntu inside windows as a windows service without creating a separate linux partition).soon got into problems again as erlier understanding its limitations.But this time I really loved experimenting with Ubuntu and felt very comfortable getting into it.I enjoyed the weekend I started working with ubuntu and in fact I abandoned windows for next two weeks!.Within few hours of installing I had the set-up equivalent to what I had in windows with a much more simple interface fast response and enjoyed good quality music and videos.<br /> I faced little difficulty only in getting installed java and Java ides such as eclipse and netbeans other than that it was a breeze.And the good thing is ubuntu have a good online documentation (http://ubuntuguide.org)and will get good support from online forums and sites.So if you haven't tried Ubuntu till I recomment this is high time to experience that!. I will be sharing my experince in starting Ubuntu in my future posts .Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-65672323997145128402009-01-08T21:06:00.000-08:002014-08-02T03:37:06.271-07:00CIO Resolutions for 2009 by Gartner<span class="Apple-tab-span" style="white-space:pre"> </span>Gartner the leading information technology research and advisory company presents CIO resolutions for 2009 in the context of current economic downturn and uncertainty.Gartner says it will help CIOs excel and deliver better personal and team outcomes beyond their core IT agenda.John Mahoney, vice president and distinguished analyst at Gartner says<br />"In time of a recession, organisations have more time for introspection that identifies what the deep needs are and also creates demand on what IT can do.t brings the opportunity for businesses to exploit the technology they currently have to create something new."<div><br />Gartner formulated all the ten resolutions for 2009 into four strategic themes.<div><br />1: Reinforce enduring strengths and assets<br /><span class="Apple-tab-span" style="white-space:pre"> </span>Start building an alumni network.<br /><span class="Apple-tab-span" style="white-space:pre"> </span>Stop being the exception that enforces the rules.<br /><span class="Apple-tab-span" style="white-space:pre"> </span>Start scouting for key talent.<br />2:Prepare for the next change, sooner than you think<br /><span class="Apple-tab-span" style="white-space:pre"> </span>Start preparing for the unexpected.<br /><span class="Apple-tab-span" style="white-space:pre"> </span>Start using social systems yourself.<br /><span class="Apple-tab-span" style="white-space:pre"> </span>Start taking cloud seriously.<br />3: Survive in 2009 without collateral damage<br /><span class="Apple-tab-span" style="white-space:pre"> </span>Stop ignoring people and opting for soft targets.<br /><span class="Apple-tab-span" style="white-space:pre"> </span>Start offering your vendors a free lunch.<br /><span class="Apple-tab-span" style="white-space:pre"> </span>Stop fearing the future; start driving it.<br />4 : Newer technologies to get experience of in 2009.<br /><br /><span class="Apple-style-span" style="font-weight: bold;"> Reference</span><br /><a href="http://www.gartner.com/it/page.jsp?id=850212">Gartner Presents CIO Resolutions for 2009</a></div></div>Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-9588107584354769802009-01-04T20:47:00.000-08:002014-08-02T03:37:06.284-07:00Nokia towards go greenIt is a good sign that globally corporates are joining hands in the go green campain. In India too companies started adopting the environment friendly policies .This should be seen in the context of companies going for cost cutting measures in the period of economic slowdown. Companies found that efforts to save energy and avoiding wastages will not only save earth but will benefits the companies in the long run. A good move along this direction by nokia is worth noticeable.Nokia announced a plan to take back old handsets and declared that a they will plant saplings for each hand set returned.This is an appreciable move in the context of growing mobile markets in india and its result of alarming quantity of e-waste due to abandoned mobile sets. Also it is predicted that more people will leave their old handsets to buy new onces once the 3G services will come into effect in one month. Let us all join nokia to go green.Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-6495635421320648002008-12-23T07:42:00.000-08:002014-08-02T03:37:06.358-07:00I Joined Ness Technologies India22nd December was the start of another life in my career as i joined Ness technologies India ,Bangalore center.I was working in wipro technologies for the past 3+ years and it was a very good experience with one of the pioneer IT services companies in India.In fact it was difficult to part ways and I had a good collection of friends there.But it is inevitable to have a change and being in a different environment is always challenging and thrilling experience for me. The past 3 years I learned the starting steps to survive in the IT industry and gave the confidence to take a different approach even in tough time. It was a warm welcome I received in Ness and I hope will be able to meet the expectations of the new company.Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-73755894975098839602008-12-16T02:56:00.000-08:002014-08-02T03:37:06.368-07:00Semantic desktopThe term semantic web might be familiar to you.But what about semantic desktop? Semantic web is a term often used along with "Web 3.0" the next generation of intelligent or executable web as it usually referred by people.Semantic web is a concept introduced by Tim Berners-Lee the originator of the WWW.The Semantic Web is a mesh of information linked up in such a way as to be easily processable by machines, on a global scale not as linked pieces of textual information that can be understood only by a human as it is currently.Although a lot of research is going on supporting the semantic web concept and languages like RDF is been developed the idea of the semantic web has failed to materialise in large scale as there is little incentive to create semantic content when there are few services that use it.The idea of a semantic desktop originated from this realization.<br />Semantic desktop is aimed to help people find and structure information on their personal computers and share it with others in a network.This will act as a stepping stone to achieve the vision of semantic web.The German Research Centre for Artificial Intelligence coordinated a project called NEPOMUK(Networked Environment for Personalized, Ontology-based Management of Unified Knowledge)to develop a comprehensive solutions for the semantic desktop concept.The Nepomuk software, which consists of independent applications and plug-ins for third-party programs, prompts users to annotate it and establish connections between different information items. this can be integrated in third party application like desktop environments ,browsers and IDEs as plugins. Nepomuk’s semantic annotating and tagging system has been incorporated into the K Desktop Environment 4 (KDE) and works are going on for creating eclipse plugins and integrations into firebox browsers also.Let us hope this will lead us to materialize the vision of Web 3.0 and semantic web.<br />References<br /><a href="http://nepomuk.semanticdesktop.org/">http://nepomuk.semanticdesktop.org</a><br /><a href="http://www.sciencedaily.com/releases/2008/12/081202081546.htm">Science Daily</a>,<a href="http://en.wikipedia.org/wiki/Semantic_web">Wikipedia-Semantic web</a>,<a href="http://infomesh.net/2001/swintro/">Info mesh</a>,Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-89169594003045634692008-12-12T01:05:00.000-08:002014-08-02T03:37:06.454-07:00Seven wonders of the webIt is interesting to listen to a lot of discussions happening in the web about the 7 wonders of the web.I think it all started when guardian UK published it's <a href="http://www.guardian.co.uk/technology/2001/dec/27/internetnews.onlinesupplement">list of 7 wonders </a>of the web in Dec 27 2001. Google and yahoo were obviosely in the top of the list and others in order are Project Gutenberg,Multimap,Ebay,Amazon and Blogger. Obviosely if you look at these made a profound influence in the internet world.But if you look at now ,do you feel something else is mising or has to come in the list. That is correct!.I don't think there will be any argument on including wikipedia in the list. The wayback machine,google earth ,social networking sites and many more can be in the list.You can see many suggestions floating around the seven wonders of the web ,but there is no uniformity of opinion. It is obvious considering the way web is evolving over the years and its true dianamic nature to make anything history within no time.A wonder today might not be part of history at all tomorrow.Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-79968283006546425882008-12-11T05:45:00.000-08:002014-08-02T03:37:06.464-07:00Gamma on Design patternsAs a sequence to the previous post i thought it is worthwhile to point you towards a sequence of interviews with Erich Gamma the leader in Gof design patterns.It is allways interesting and informative to hear from the creator/originator. Refer to the wikipedia link on Gamma below which has the links to the interviews.<br />Reference<br /><a href="http://en.wikipedia.org/wiki/Erich_Gamma">Wikipedia</a>Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-40185296530139643932008-12-11T05:03:00.000-08:002014-08-02T03:37:06.538-07:00Object Oriented Design principlesThere is much hype about the design patterns in recent years and every one want to know design patterns or pretend to be experts in that. But most of them are not aware of the Object Oriented Design principles which are the base of any object oriented design. Design patterns provides a solution to most of the recurring design problems and basically does this by implementing good OO design principles. It is infact meaning less to go for design pattens before trying to understand the design principles. Design patterns basically leads you to apply good design priciples to solve your problem. These are the five basic design principles for object oriented class design .<br /><ol><li>The Single Responsibility Principle(SRP)-A class should have one, and only one, reason to change.</li><li>The Open Closed Principle (OCP)-You should be able to extend a classes behavior, without modifying it.</li><li>The Liskov Substitution Principle(LSP) -Derived classes must be substitutable for their base classes.</li><li>The Dependency Inversion Principle (DIP)-Depend on abstractions, not on concrete classes. </li><li>The Interface Segregation Principle(ISP) -Make fine grained interfaces that are client specific.</li></ol><p>Apart from these there are 6 more principles about package cohesion and coupling betwean packages.Provided below some links in the reference section to learn more about them</p><p>Reference</p><p><a href="http://www.objectmentor.com/omSolutions/oops_what.html">Object mentor</a></p><p><a href="http://www.surfscranton.com/Architecture/ObjectOrientedDesignPrinciples.htm">OO Design principles</a></p><p><a href="http://www.oodesign.com/">oodesign.com</a></p><p><a href="http://ootips.org/">ootips.org</a></p><p></p>Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-1624416099179112392008-12-10T05:26:00.000-08:002014-08-02T03:37:06.549-07:00Erdős numberI was just reading the news of stepping down of Stephan hawking from the Lucasian professor of Mathematics in Cambridge University.I also came to know that Hawking has a Erdos number of 4. This evoked my interest to know more about Paul Erdos the great Hungarian mathematician.<br /><br />Paul Erdos ,an immensely prolific mathematician has wrote around 1,475 mathematical articles in his lifetime, mostly with co-authors. This made his colleagues to coin the term Erdos number which indicates the collaborative distance between a person and Erdős, as measured by authorship of mathematical papers.Erdos has a number of 0 his co-authors has number of 1 and their co-authors will have number of 2 and so on.<br /><br />The origin of this term won't be astonishing if you come to know more about Paul Erdos and his contributions .He stands only next to Euler in terms of the volume of mathematical work.Erdos also known to be of exceptional character for whom possessions meant nothing and spent most of his life as a vagabond.He has once told "You don't have to believe in God, but you should believe in The Book".The Book is an imaginary book that Erdos believes in which God had written down the best and most elegant proofs for mathematical theorems.See the wikipedia article and related links on Paul Erdos for more details.<br />Reference<br /><a href="http://en.wikipedia.org/wiki/Paul_Erd%C5%91s">Wikipedia</a>Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-46395564229405094432008-12-09T02:36:00.000-08:002014-08-02T03:37:06.624-07:00Top 15 technology start-upsGeneva-based World Economic Forum (WEF) honours Pioneer IT companies for their accomplishments as innovators of the highest caliber, and whose technologies will have a deep impact on business and society. I just went through the list of companies and their innovative ideas and it is very surprising. I am listing some of them which i found very attractive to me.<br />1) Nivio<br />An indian company which is providing a vitual online desktops to users. This makes computing as easy and affordable as a Cable TV subscription.User have to purchase a monitor ,keyboard and mouse and a connecting device which substitues CPU. The difference is data is stored in the internet in a virtual environment.<br />2) Spinvox<br />SpinVox captures spoken messages and cleverly converts them into text. It then delivers your message to a destination of your choice – inbox, blog, wall or space.<br />3) Slide<br />Slide lets you use photos and other digital content to publish and make a slide shows and vedios.The company's widgets include slideshows, guestbook’s, SkinFlix, and FunPix. It also operates along with Facebook and Myspace.<br />4) Mint<br />Online free personal finance service. This helps users to automatically track and analyse their financial transactions, set budgets, and even send balance updates in text messages to cell phones.Only thing you need to do is register anonymously using a valid email address and give your account details. Mint automatically gets the account details analyze it and provide the details required.<br/><br />See the kind of ideas which is transformed to better business solutions. You can see the complete list of 15 companies in the reference link.All are bright innovative ideas. One interesting thing you can notice is that young minds are behind most of these innovations.<br />Reference<br /><a href="http://infotech.indiatimes.com/quickiearticleshow/3809092.cms">Times of india</a>Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-81736952470969824822008-11-19T22:21:00.000-08:002014-08-02T03:37:06.635-07:00Some thoughts on India's moon missionOne article came in <a href="http://knowledge.wharton.upenn.edu/india/article.cfm?articleid=4327">Knowledge wharton</a> in oct 16 2008 before the lunar mision found very informative. Describing various views on lunar mission ,its benefits and some criticisms it tries to explain what india is going to achieve my the mission. The criticisms were especially about the appropriateness of huge amount money being spent(386 crore) on this mission while a large part of the population is living below the povert line. But in light of its huge success and the confidence the indian scientific communinity gained by this mission ,and its far reaching benefits ,makes all criticisms week. It is sure that india gained a good position in the world space arena by this mission .Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-15734557417383624782008-11-19T02:38:00.000-08:002014-08-02T03:37:06.710-07:00More lectures on mathematics from Gresham collegeAs a part of creating the previous note on "Hilbert's questions" i was just going through the Gresham college site for more luctures on mathematics and found many other interesting lectures in the site. As the one mentioned earlier all these are a good collection of lectures and will be enjoing for any mathematic student .<br />Follow these link and you are there.<br /><a href="http://www.gresham.ac.uk/eventsresults.asp?PageId=4&frmSubject=4&frmPeriod=past">Past lectures on geometry</a>Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0tag:blogger.com,1999:blog-410634700600030219.post-34830210106346240642008-11-19T01:41:00.000-08:002014-08-02T03:37:06.724-07:00Hilbert's questions to the futureHere is an interesting lecture on Hilbert's questions by Professor Robin Wilson of Grasham college,London delivered on 27/02/2008."<a href="http://www.gresham.ac.uk/event.asp?PageId=45&EventId=628">From Hilbert's problems to the future</a>"<br />This lecture is very informative and simple to understand the famous Hilberts questions .Hilbert's problems are a list of twenty-three problems in mathematics put forth by German mathematician David Hilbert at the Paris conference of the International Congress of Mathematicians in 1900.<br />References<br /><a href="http://en.wikipedia.org/wiki/Hilbert">Wikipedia</a>Byju Veeduhttp://www.blogger.com/profile/01741086683221724097noreply@blogger.com0