Category Archives: tech

other technical stuff (Non Java)

bing

Microsoft unveiled its soon-to-launch search engine Bing. It is available as beta and jully available by June 3. It’s different in certain ways from other search engines. The home page features a rotation of stunning photography, for instance, which can be clicked on to produce related image search results.

It doesn’t have quite the same ring to it as go Google yourself, but now you can go Bing yourself. (Then again, Google took a few years to become a verb.).

“We have taken the algorithmic programming up an order of magnitude,” says Microsoft senior vice president Yusuf Mehdi. Each search result page is customized according to what type of search you do (health, travel, shopping, news, sports). The algorithms determine not only the order of results on the page, but the layout of the page itself, concluding what sections appear. These sections can include anything from guided refinements and a list of related searches in the left-hand pane to images, videos, and local results.

A news search offers up headlines, photos, videos, and local news in a column on the right. A shopping search will bring up products and is tied into Microsoft’s Cashback program. Every search also generates a guide on the left to help you refine your search.

One of the new features of Microsoft’s just launched Bing search engine is that it auto-plays videos in results when you hover over them. Naturally, the first thing a number of people did was search for “sex” or “porn”. The results are majestic — if you’re a teenager looking for a way around porn filters on your computer. And this isn’t artful porn or something like it, it’s straight-up, hardcore pornography.

A few things to try:

* An ambiguous Web search: “bangalore” (do you want images, recipes, facts, or a map of the country? The topic guides in the left explore pane will help you narrow your search).
* Video search: “Steve Jobs” (hover over the thumbnail to play the video)
* Image search: “Rollercoasters” (notice the infinite scroll).
* A health search: “Sore throat
* Shopping: “Digital SLR” (sort by price or brand, get average ratings and CashBack).
* News Search: “Bing” (what else?)

I had one hell of a time using it. I have to get over the habbits of google to use it. Personally, though they have some cool features, like play video on hover, I didn’t like it. It doesn’t even come close to competing with google.

Wolfram Alpha, a new “Computational Knowledge Engine” developed by British physicist Stephen Wolfram, is all set to revolutionize search with its amazing/innovative ability to give answers to your questions directly – instead of directing you to sources where you “might” get the required information.

The software is still in its initial days of existence and will be available for use later this month. Already touted to be a Google Killer – which most probably it won’t be, the Wolfram Alpha has managed to rake up considerable storm even before its launch. It was showcased earlier this week at Harvard University. Many experts consider this to become the “Internet’s Holy Grail” once fully operational. It will be able to understand and respond to ordinary queries and give answers to queries in ordinary language, similar to how a person would respond when queries. To give you an idea of what this is capable of, let us take a few examples. Suppose you want to compare the height of the Empire State Building with the length of the Golden Gate Bridge, all you need to do is to type in your query and wait for the software to calculate your results derived from various sources. Once the search is over, you will not only get a detailed answer to your query but also a lot of other related information that might be of interest to you.

Many experts believe this to be a part of the natural evolution of the internet. Additionally, the results that you receive are assessed by experts and are made available only after a thorough verification. This is unlike Wikipedia, which thrives on user-generated content. Wolfram Alpha is incidentally based on Stephen Wolfram’s Mathematica software, a standard tool for scientists, engineers and academics for crunching complex maths.

You can learn more about Wolfram Alpha here.

We’ve been debating the merits of a possible IBM-Sun deal for a while now, and even Sun itself seemed to be in the dark as to if it would be a good idea to be bought by IBM. These debates are now all moot: in a surprise move (at least, I didn’t see any speculation about it) Oracle has bought Sun Microsystems, at USD 9.50 a share, which equates to a total of 7.4 billion USD. The news got out through a press release.

“Oracle Corporation (Nasdaq: ORCL) and Sun Microsystems (Nasdaq: JAVA) announced today they have entered into a definitive agreement under which Oracle will acquire Sun common stock for $9.50 per share in cash. The transaction is valued at approximately $7.4 billion, or $5.6 billion net of Sun’s cash and debt. “We expect this acquisition to be accretive to Oracle’s earnings by at least 15 cents on a non-GAAP basis in the first full year after closing. We estimate that the acquired business will contribute over $1.5 billion to Oracle’s non-GAAP operating profit in the first year, increasing to over $2 billion in the second year. This would make the Sun acquisition more profitable in per share contribution in the first year than we had planned for the acquisitions of BEA, PeopleSoft and Siebel combined,” said Oracle President Safra Catz.”

“This is a fantastic day for Sun’s customers, developers, partners and employees across the globe, joining forces with the global leader in enterprise software to drive innovation and value across every aspect of the technology marketplace,” said Jonathan Schwartz, Sun’s CEO, also in the press release, “From the Java platform touching nearly every business system on earth, powering billions of consumers on mobile handsets and consumer electronics, to the convergence of storage, networking and computing driven by the Solaris operating system and Sun’s SPARC and x64 systems. Together with Oracle, we’ll drive the innovation pipeline to create compelling value to our customer base and the marketplace.”

“Sun is a pioneer in enterprise computing, and this combination recognizes the innovation and customer success the company has achieved. Our largest customers have been asking us to step up to a broader role to reduce complexity, risk and cost by delivering a highly optimized stack based on standards,” said Oracle President Charles Phillips. “This transaction will preserve and enhance investments made by our customers, while we continue to work with our partners to provide customers with choice.”

The deal has received unanimous approval of Sun’s board, and is likely to go down this summer, after shareholder approval.

About Oracle

Oracle (NASDAQ: ORCL) is the world’s largest enterprise software company. For more information about Oracle, please visit thes Web site at http://www.oracle.com.

About Sun Microsystems

Sun Microsystems, Inc. (NASDAQ: JAVA) develops the technologies that power the global marketplace. Guided by a singular vision — “The Network is the Computer” — Sun drives network participation through shared innovation, community development and open source leadership. Sun can be found in more than 100 countries and on the Web at http://www.sun.com.

“Wikipedia has a special section called, ‘Language Philosophy,’ in every article for a programming language. This section looks at the motivation and the basic principles of the language design. What if we investigate further than that? What deeper connections between philosophies and programming languages exist? By considering the most influential thinkers of all time (e.g. Plato, Descartes, Kant) we can figure out which programming language fits best with aspects of their philosophy (Did you know that Kant was the first Python programmer)? The list is not exhaustive, but this is a funny and educative start.”

There are many standards and best practices for Java Developers out there. The article 10 Commandments for java Developers outlines ten most basic rules that every developer must adhere to and the disastrous outcomes that can follow if these rules are not followed. Briefly summarizing the 10 commandments:

  1. Add comments to your code.It is true comments do not literally contribute to the functionality of a program. But time and time again you return to the code that you wrote two weeks ago and, for the life of you, you cannot remember what it does!
  2. Do not complicate things.Developers tend to come up with complicated solutions for the simplest problems. We introduce EJBs into applications that have five users. We implement frameworks that an application just does not need. We add property files, object-oriented solutions, and threads to application that do not require such things. For those who do not know any better, I recommend reaching out to the more experienced programmers for advice.
  3. Keep in Mind – “Less is more” is not always better. - Code efficiency is a great thing, but in many situations writing less lines of code does not improve the efficiency of that code.
  4. No hard coding please. - Developers often forget or omit this rule on purpose because we are, as usual, crunched for time. But maybe if we had followed this rule, we would not have ended up in the situation that we are in. How long does it take to write one extra line of code that defines a static final variable?
  5. Do not invent your own frameworks.There are literally thousands of frameworks out there and most of them are open-source. Many of these frameworks are superb solutions that have been used in thousands of applications. We need to keep up to date with the new frameworks, at least superficially. One of the best and most obvious examples of a superb widely used framework is Struts. This open source web framework is a perfect candidate to be used in web-based applications.
  6. Say no to Print lines and String Concatenations. - I know that for debugging purposes, developers like to add System.out.println everywhere we see fit. And we say to ourselves that we will delete these later. But we often forget to delete these lines of code or we do not want to delete them.
  7. Pay attention to the GUI. - No matter how absurd it sounds; I repeatedly observe that GUI is as important to the business clients as functionality and performance. The GUI is an essential part of a successful application. Very often IT management tends to overlook the importance of GUI. Many organizations save money by not hiring web designers who have experience in design of “user-friendly” applications. Java developers have to rely on their own HTML skills and their limited knowledge in this area.
  8. Always Prepare Document Requirements. - Every business requirement must be documented. This could be true in some fairy tale, but it is far from that in the real world. No matter how time-pressed your development is, no matter how tight the deadlines, you must always make sure that every business requirement is documented.
  9. Unit-test. Unit-test. Unit-test. - I am not going to go into any details as to what is the best way to unit-test your code. I am just going to say that that it must be done. This is the most basic rule of programming. This is one rule that, above all, cannot be omitted. It would be great if your fellow developer could create and execute a test plan for your code, but if that is not possible, you must do it yourself. When creating a unit test plan, follow these basic rules:
    1. Write the unit test before writing code for class it tests.
    2. Capture code comments in unit tests.
    3. Test all the public methods that perform an “interesting” function (that is, not getters and setters, unless they do their getting and setting in some unique way).
  10. Remember – quality, not quantity. - Do not stay late (when you do not have to). I understand that sometimes production problems, urgent deadlines, and unexpected events might prevent us from leaving work on time. But, managers do not appreciate and reward their employees because they stay late on regular basis, they appreciate them because they do quality work. If you follow the rules that I outline above, you will find yourself producing less buggy and more maintainable code. That is the most important part of your job.