Famous on net, anonymous in life
Similarities?!
Interesting article (and quite true)
Scientific Visualization - Advantages and Challenges
- Rosenblum, Earnshaw, Encarnacao, Hagen, Kaufman, Klemenko, Nielson, Post, Thalmann
(Academic Press , in association with IEEE Computer Society Press)
1. Trends in volume visualization and volume graphics
Arie Kaufman
1.1 Background
1.2 Surface Graphics versus Volume Graphics
1.3 Volume Graphics Features
1.3.1 Insensitivity to scene complexity
1.3.2 Insensitivity to object complexity
1.3.3 Insensitivity to texture
1.3.4 Viewpoint independence
1.3.5 Samples and simulated datasets
1.3.6 Inner information
1.3.7 Block operations
1.4 Weaknesses of Volume Graphics
Computer Science losing it's popularity
NY Times says that CS as a degree is declining in favor of interdisciplinary approaches
http://www.nytimes.com/2005/08/23/technology/23geeks.html
Microsoft's emissary in Japan
The exquisitely wrought Buddha at Nara, the most important Buddhist statue in Japan, fills the field of view. Next comes a 13th-century temple at Bayon, Cambodia, with its 50 stone towers, each adorned with four carved faces.
The pictures appear in startling detail on the 150-degree parabolic screen, bringing viewers up close and personal with the real sites. But there's a twist: the scenes don't show the way things are; they show the way they were hundreds of years ago, when these masterpieces were built. The Nara Buddha has been reconstructed twice after being damaged by fires, and Bayon has endured ages of decay. But through a painstaking process of image capture, integration, and rendering, their original splendor has been restored.
Yokoso ("welcome" in Japanese) to Katsushi Ikeuchi's Digital Archive Project, which seeks to digitally reconstruct and preserve for posterity the original states of Buddhist and Hindu carvings and other artifacts throughout Asia. The project is housed in an ultramodern lab building--the elevators here talk--at the University of Tokyo's Institute of Industrial Science.
Ikeuchi, who taught for 11 years at Carnegie Mellon University (CMU) before joining Japan's top academic institution, is renowned in academic circles for his efforts to transform the way people interact with the world via computers. Beyond the archive project, he is the architect of dexterous humanoid robots that learn tasks by observing people, as well as an innovator in intelligent-highway research--projects that have made him a force in computer vision, robotics, and virtual reality.
This summer, Microsoft tapped Ikeuchi to direct its new Institute for Japanese Academic Research Collaboration. Ikeuchi will serve as Microsoft's main connection to Japanese computer science, helping identify and fund research collaborations in robotics, wireless applications, graphics, and other areas that the company hopes will keep it on top of the world of computing.
Ikeuchi's knowledge of East and West--and, in particular, of Microsoft--makes him a natural selection for the job, Microsoft officials say. At CMU, he mentored Harry Shum, now head of Microsoft Research Asia in Beijing, to which the new institute will report. Until recently, Ikeuchi served on the Beijing lab's technical advisory board. Microsoft already supports work in Japanese universities.
But, says Ikeuchi, that work has been selected piecemeal. The institute, he says, seeks "to make that coherent" and in the process help Microsoft, Japan--and just about everybody else. "Technical results propagate through oral communications, not formal presentations," Ikeuchi says. "Unfortunately, Japanese researchers have few personal contacts with Western researchers. If we can connect Japanese researchers with Microsoft Research Asia people tightly, from this, [their work] will propagate worldwide."
Microsoft kicked off the institute by funding projects with three of Ikeuchi's University of Tokyo colleagues, in graphics, user interfaces, and natural-language processing. The company declined to disclose funding terms. But while its research organization supports hundreds of university collaborations worldwide, Shum says, the institute, forging ties with the academic community of a single nation, marks a first for Microsoft. "If we look at this region, Japan certainly deserves some special attention," he says. "Now we put all these programs under this umbrella."
Ikeuchi, who will retain his University of Tokyo position, will return to Cambodia this December to add finer detail to his Bayon temple model. And earlier this year, the salt-and-pepper-haired scientist took a different tack on preserving the past--by building a robot that employed visual sensors and object- and task-recognition algorithms to study a human performer and learn a traditional Japanese festival dance called Aizu bandaisan odori. In contrast to his Buddha studies, which capture what Ikeuchi likes to call "tangible heritage," this is an effort to preserve "intangible heritage," he says.
But it's transforming the future, not reconstructing the past, that Ikeuchi hopes will be his greatest legacy. His intelligent-highway work is linked to a Japanese government effort to develop a transportation system that will route cars more efficiently to minimize congestion and reduce pollution. It's also intended to make time spent on Japan's crowded highways more productive, partly by giving commuters in-car Internet access. Human-computer interaction and computer vision systems will be essential to this infrastructure, which will recognize driving behaviors and warn of impending collisions, he says.
But all this is just an appetizer for Ikeuchi's ultimate goal: combining legions of service robots with an intelligent infrastructure that will free an aging population in Japan and elsewhere from mundane tasks like driving, cleaning, and cooking, helping people preserve their independence. As the population grows older, says Ikeuchi, "we will definitely need some intelligent environment or service environment to support elderly people."
-- By Robert Buderi
Courtesy:
MIT TechnologyReview
Developing C/C++ Applications with the KDevelop IDE
http://www.linuxjournal.com/article/4747
Technical C/C++ interview Q.s
Set of technical C/C++ interview questions and solutions are available
at C For Swimmers website :
http://www.c4swimmers.esmartguy.com/intqueries2.htm
http://www.c4swimmers.esmartguy.com/intqueries3.htm
http://www.c4swimmers.esmartguy.com/intqueries4.htm
And 250+ C/C++ Q&A are available. Also weekly Q&A on C/C++ are
available. Links to useful C/C++ websites.
You can view/download 50+ eBooks on C/C++ and get the details about
100+ reference C/C++ textbooks.
The Seeds of the Next Silicon Valley
How Indian tech companies are helping to incubate startups
At the Indian Institute of Technology (IIT) campus in Kharagpur, near Calcutta, a small team of engineers is beavering away on what they hope will prove a killer competitor to the BlackBerry. At IIT Bombay, an earth sciences professor is about to launch a company that will tap the vapor of geothermal springs to drive turbines, generators, and power stations -- the first company to do so in India. Across the country, at IIT Madras, students and professors have spun off a startup that's working on a no-frills network computer aimed at the Asian corporate and government markets that will sell for just $100. "We dream of building billion-dollar-product companies here," says Ashok Jhunjhunwala, an electrical engineering professor at IIT Madras. "We believe we have laid the foundation for them."
No one knows how many of these products will take off. But the odds are that some of the fledgling companies will make real money. Dozens of such projects are now taking shape at India's elite IITs. In the same way that Stanford University and Massachusetts Institute of Technology helped spawn Silicon Valley and Route 128 in the 1970s and '80s, Indian institutions are encouraging professors and students with business ideas to take the plunge. The schools are providing initial office space, labs, and seed money to "incubate" startup companies. Some are also building tech parks to attract companies willing to collaborate. Since India began opening its economy in the early 1990s, the six (recently expanded to seven) IITs have created some 50 new companies. The pace has accelerated in the last three years.
That's a big change from the early days. When they were conceived in the 1950s, the IITs churned out top-notch engineers to meet an almost insatiable appetite from the country's steel, construction, power, chemical, defense, and textile industries. The schools so excelled at the task that they became a world-famous source of engineers, particularly for the U.S. But actual involvement by the schools in startups was almost nonexistent. Now students and professors alike are busy trying to become entrepreneurs in commercially applicable areas where IITs are strong, such as telecom, microelectronics, computer sciences and software, heat transfer and, of late, biochemistry and biotechnology.
The big challenge is finding funding. IIT Kanpur, for example, has a budget of just $1.15 million to sprinkle around a half dozen projects. IIT Madras has teamed up with institutions such as ICICI Bank Ltd. (IBN ), State Bank of India, and other local state-run sources to raise up to $230,000 for each of its 16 companies. And IIT Kharagpur is creating its own fund. "We have plans for a $230 million venture fund that we will raise from our alumni, investors, financial institutions, and the government," says Partha Pratim Chakrabarti, dean of sponsored research and industrial consultancy at IIT Kharagpur. All these efforts are necessary because Indian startups aren't much on the radar screens of American venture capitalists, who invested only $240 million in Indian companies last year. They invested $20.4 billion in the U.S.
Funds are rarely available for companies that don't have a track record of sales and customers. For example, Midas Communications Technologies Ltd., an IIT Madras spin-off that makes broadband and wireless telecom equipment, finally raised $10 million from American venture capitalists Argonaut Private Equity in July, 2004, seven years after it was founded. Midas' sales are expected to top $104 million this year, 50% higher than 2004. Its success is a boon for IIT Madras, where the electrical engineering department helped develop the technology for Midas products. Midas and other licensees of the technology paid the IIT $3.5 million in royalties last year.
Of course, applied research and business incubation at India's top technology institutes remain a far cry from their U.S. peers. But dozens of IIT spin-offs are a start. If India's software and tech stars can start to attract more venture funding, the breakthroughs of the future may come just as much from Bombay and Madras as Silicon Valley and Boston.
Courtesy:
Yahoo
Classification
Introduction to Volume Rendering - Lichtenbelt, Crane, Naqvi
1. Classification is the property of assigning an opacity value to a voxel. This assignment is some property of the voxel, like it's intensity, or its local gradient magnitude. This function is called Opacity Transfer Function.
Opacity is a measure for how translucent that voxel is. It is a number between 0 and 1 that describes how much light that falls on a voxel will be absorbed by the voxel.
2. Shading is the process of mapping of the voxel intensity to an RGB color. It has 2 steps:-
i) Voxel intensities are converted into a color (process coloring)
ii)Shading model is applied to these colors
3. Coloring is the process of turning voxel intensities into colors
Once the transfer functions are set up, classification and coloring will be executed automatically and repeated for every rendering of the data.
Limitation: It is not possible to come up with transfer functions for each and every feature in a data set.
4. Segmentation is defined as a labeling of voxels indicating material types. It is not continuous like classification.
The labelling information can be stored with the data set and reused when necessary. Hence it is a pre-processing step, before the actual rendering is done.
Hence you can now make the classification and coloring transfer functions work on the labeling information.
Narayana Murthy's dream for the future
India's software giant Infosys Technologies Limited has entered its 25th year of existence. In these 25 years, the company has scaled many a peak, making the nation proud of it.
N R Narayana Murthy, Chairman, Infosys, however, has plans to turn the company into a bigger, stronger, and global player.
At an analysts' meet, held to mark the silver jubilee celebrations of Infosys in Hyderabad, Murthy spoke about his future for the company.
Here's the speech that he delivered.
--------------------------------------------------------------------------------
We start our 25th year celebrations today. It is indeed laudable that we have run this marathon so far. Several happy thoughts come to my mind as I stand here. But, the most important one is our meeting in January 1981.
How Infosys began
It was a wintry morning in January 1981 when seven of us sat in my apartment, and created Infosys. We had lots of hope, confidence, commitment, energy, enthusiasm, hard work, passion and a sense of sacrifice.
We were short of one thing, money. We managed to put together just $250 in seed capital.
We never dreamt about size, revenues and profits. Our dream, right from day one, was to build a corporation that was, above all things, respected.
From the beginning, our team was unique in our commitment to a strong value system. We believed in putting the interest of the company ahead of our own interest. We believed in legal and ethical business.
We believed in respect and long-term gratification. And each of us brought complementary strengths to the company.
'Entrepreneurship is a marathon'
To me, entrepreneurship is a marathon. I believe that the key to a successful corporation is longevity – my heroes are companies like IBM, Levers, and GE. These firms have shown growth in earnings quarter after quarter, for a long time.
Infosys itself has seen consistent growth in revenue and profitability for over 49 quarters, since it got listed in India. We have institutionalized performance and accountability in our systems and processes, and through the empowerment of our employees. Let me talk about some of the generic lessons we have learnt.
The name of the game is: predictability of revenues; sustainability of the prediction; profitability; and a good de-risking model. Measurement is key to improvement.
Value system
A sound value system is what differentiates long-term players from others. Putting the corporation's interest ahead of personal interest will advance personal goals in the long term.
No single person is indispensable. It is important that you give challenging engagements to deserving people, whether they are young or new in the organization. Youth and empowerment are the keys to scalability and longevity.
Every situation is what you make it to be. Confidence is half the battle, and leadership is making the impossible look possible. Speed, imagination and excellence in execution are the only three context-invariant and time-invariant attributes for success.
Trust of employees, investors
The trust of employees is the most important ingredient for successful leadership. To gain the trust of people, there is no more powerful leadership style than leadership by example. The world respects performance and action, not rhetoric.
It is better to obsolete our own innovations, rather than allowing our competitors to do it. A healthy sense of paranoia and respect for competition is an absolute must for success. It prevents complacency, and ensures that the organization is learning continuously. The ultimate test for customer satisfaction is making our customer look good in front of his / her customer.
I have realized that if you want to look smarter, you must surround yourself with people smarter than you. Everybody needs incentives to perform. Money is not the only motivator; respect, dignity, fairness and inclusiveness are essential to get the best out of employees. Every employee must feel an inch taller when talking about the company.
Being transaction-oriented in every decision avoids groupism. An emphasis on meritocracy and data-orientation enhances the confidence of employees in the fairness of the corporation. We believe in the adage, In God we trust, everybody else brings data to the table.
To retain the trust of your investors, it is better to under promise and over-deliver. Investors understand that every business will have ups and downs, and want us to level with them at all times. They want us give them bad news pro-actively and as early as possible. Therefore, When in doubt, disclose.
We have realized that we should never take any decision with the stock price in mind. The day we do this, we will ruin the company. Finally, we have realized that we can shortchange investors if we want to make Rs 1 crore (Rs 10 million), but if we want to make Rs 1,000 crore (Rs 10 billion), we have to play the game straight and honest.
We have realized that longevity requires that we follow every law of the land, even if we do not agree with it. We should work hard to change laws that hurt the progress of the corporation.
Unless we make a difference to the society and earn their trust, we cannot be long-term players. Therefore, in everything we do, we must ask ourselves whether we are adding value to the society around us, regardless of where we are -- US or India.
'What I want Infosys to achieve in 25 years'
What do I want to see this company achieve in the next 25 years? I want this to be a place where people of different races, nationalities and religious beliefs work together, in an environment of intense competition but utmost courtesy and dignity, to add greater and greater value to our customers, day after day. Just like we have received respect in India, I want Infosys to be the most respected company in every country that it operates.
But, to achieve these dreams, we have to be in existence over the next 250 years. I know we can do this for the following reasons:
We have an extraordinary leader in Nandan (Nandan Nilekani, Infosys CEO), a man of great vision, values and dynamism. He is ably supported by the best management team and professionals in the industry.
We have a depth of leaders within the organisation, with over 500 leaders being part of our leadership training and mentoring programme.
The de-risking strategy at Infosys ensures that there is a backup for every position, and that decision-making is participatory across the company. In other words, it is not one person, but a team that looks at every decision. Thus, at Infosys, it is the leadership of ideas and meritocracy that drives every decision.
Every decision is supported by a strong portfolio of systems, processes and technology.
The value system of the company is time and context invariant.
We will continue to have the mindset of a small company even as we grow and scale.
Finally, and most importantly, I see youth, the feel-good factor and confidence around me.
This is why I am confident Infosys will continue to serve the society as a long-term player.
Thank you.
N R Narayana Murthy
America's Brain Drain
A nation's economic power is now measured in part by its technological talent. The U.S. share of that pool is shrinking.
Updated: 1:19 p.m. ET Aug. 10, 2005
Aug. 10, 2005 - A nation's economic power could once be judged by tons of steel or megawatts of electricity. But we have moved beyond these simple indicators or even updated versions, such as computer chips. All advanced societies now depend so completely on technology that their economic might is often measured by their number of scientists and engineers. By that indicator, America's economic power is waning. We're producing a shrinking share of the world's technological talent. China and India are only the newest competitors to erode our position. We need to consider the implications, because they're more complicated than they seem.
As late as 1975, the United States graduated more engineering and scientific PhDs than Europe and more than three times as many as all of Asia, reports Harvard University economist Richard Freeman in a recent paper. No more. The European Union now graduates about 50 percent more, and Asia is slightly ahead of us. By Freeman's estimates, China has reached almost half the U.S. total and will easily overtake us by 2010. Among engineers with bachelor's degrees, the gaps are already huge. In 2001 China graduated 220,000 engineers, against about 60,000 for the United States, the National Science Foundation reports.
Freeman also documents a second worrisome reality: U.S. scientists and engineers aren't well paid, considering their skills and—especially for PhDs—the required time for a degree. This means, Freeman says, that "the job market . . . is too weak to attract increasing numbers of U.S. students." Consider some pay comparisons. From 1990 to 2000, average incomes for engineering PhDs increased from $65,000 to $91,000, up 41 percent; PhDs in natural sciences (physics, chemistry) rose from $56,000 to $73,000, up 30 percent. Meanwhile, average doctors' incomes increased from $99,000 to $156,000, up 58 percent; and lawyers went from $77,000 to $115,000, up 49 percent.
The true situation may be worse. Next to other elites, scientific and engineering PhDs fare poorly. Look at the 891 MBA recipients of the Harvard Business School's class of 2005. At an average age of 27, they command a median starting salary of $100,000. It's true that the two-year cost of a Harvard MBA is steep ($120,000 and up), and four-fifths of the students are left with debts averaging $81,000. But these new Harvard MBAs also got huge one-time bonuses; the median was $43,000. As for scientific and engineering PhDs, they typically require seven to eight years to finish their degrees, notes Freeman.
All in all, the outlook seems bleak. There's already a whiff of media hysteria. After examining these and other trends, Fortune magazine recently headlined a cover story: "AMERICA: THE 97-LB WEAKLING? . . . We're Losing Our Competitive Edge."
Not so fast. The grim prognosis wrongly presumes that another country's gain must be our loss. Hardly. If a Swedish or Japanese company cured cancer or invented a super-efficient car, Americans would benefit quickly—just as Swedes and Japanese have benefited from technologies first developed in the United States. If Microsoft's research center in Beijing (to take one oft-cited example) develops stunning new software, the advances will soon be incorporated in Microsoft products worldwide.
It's also forgotten that the United States still dominates global research and development. In 1981 American companies and laboratories accounted for 45 percent of research and development among the members of the Organization for Economic Cooperation and Development, which are generally the world's richest nations. In 2000 the U.S. share was still 44 percent—despite the increase in other countries' scientists and engineers and a decline in U.S. defense research and development.
We must be doing something right. Our decentralized research and development system (corporate, government and university laboratories, venture capitalists, and freelance inventors) excels at moving ideas to market and constantly reinvents itself. Here's an example: In 1980 Congress passed the Bayh-Dole Act to encourage universities to license discoveries to companies. It worked. In 2002 universities earned $915 million from licensing fees, almost four times the 1993 level, according to economists Richard Jensen and Celestine Chukumba of Notre Dame.
Not every new Chinese or Indian engineer and scientist threatens an American, through outsourcing or some other channel. Actually, most don't. As countries become richer, they need more scientists and engineers simply to make their societies work: to design bridges and buildings, to maintain communications systems, and to test products. This is a natural process. The U.S. share of the world's technology workforce has declined for decades and will continue to do so. By itself, this is not dangerous.
The dangers arise when other countries use new technologies to erode America's advantage in weaponry; that obviously is an issue with China. We are also threatened if other countries skew their economic policies to attract an unnatural share of strategic industries—electronics, biotechnology and aerospace, among others. That is an issue with China, some other Asian countries and Europe (Airbus).
What's crucial is sustaining our technological vitality. Despite the pay, America seems to have ample scientists and engineers. But half or more of new scientific and engineering PhDs are immigrants; we need to remain open to foreign-born talent. We need to maintain spectacular rewards for companies that succeed in commercializing new products and technologies. The prospect of a big payoff compensates for mediocre pay and fuels ambition. Finally, we must scour the world for good ideas. No country ever had a monopoly on new knowledge, and none ever will.
Courtesy:
MSNBC
High-tech talent flows back to India
Pavan Tadepalli, of the outsourcing firm Sierra Atlantic, has decided to return to India. He may be the bellwether of a trend. (Globe Staff Photo / Pat Greenhouse) Those who helped fuel US boom may spur brain drain
By Robert Weisman, Globe Staff | August 8, 2005
An Indian-born software developer, Pavan Tadepalli, wanted to work in a high-tech hub with opportunity for career growth. So it was an easy decision when he was offered a permanent job in the Boston area, after a three-month assignment here ended this spring.
Tadepalli turned it down, and chose to return to India.
''There are more opportunities in India now," he said. ''What I can do in Boston, I am confident I can do the same thing in Hyderabad."
The lure of a career in the United States, especially in technology, proved irresistible to India's best and brightest engineering graduates through the 1990s, and even as recently as a few years ago.
But with the maturing of the US technology industry, and the rapid expansion of India as a center for software programming and business process outsourcing, thousands of Indian engineers and managers -- many of them US-educated and working on Route 128 or in California's Silicon Valley -- are opting to go back to their homeland.
The trend is raising fear of a brain drain. Some business leaders are worried that the immigrant Indian entrepreneurs who helped fuel the US technology boom might now start companies in India, and take whole classes of jobs with them.
''It could deplete the stock of educational and scientific talent that we have here," said Alan Tonelson, a research fellow for the United States Business & Industry Council, a Washington trade group for small and midsized manufacturers.
American-educated graduates from other countries, from Israel to Taiwan to Ireland, also have launched companies in the United States. But the Indian connection is unique because of the intense engineering focus there.
And returnees starting businesses in India, unlike those in smaller and richer countries, can tap into a large and growing domestic market, and into a pool of low-cost skilled workers.
For some Indians, the reasons for the exodus are personal. Returning expatriates may have aging parents, or they may want their children raised in the Indian culture. But with the explosive growth of India's economy, cities such as Bangalore or Hyderabad increasingly are seen as new magnets for ambitious technologists -- offering an intoxicating mix of hefty raises, multiple job postings, and rapid career advancement, no longer the norm in Cambridge or in San Jose, Calif.
Joga Ryali worked in Silicon Valley for 22 years until he got an offer this year to run the Hyderabad product development center for Computer Associates, the computer software giant. He started there in June.
''From a professional point of view, I felt until recently that I had more challenging prospects in the US," Ryali said. ''But that's no longer the case. Just in the last couple of years, three or four of my close friends made the move from Silicon Valley to India. This feels in many ways like Silicon Valley felt . . . during the boom time."
Tadepalli's employer, the Indian outsourcing firm Sierra Atlantic, sent him to Boston in January to handle the merger with Sceptre Database Consultants, a Westwood company that was acquired by Sierra. By April, he had trained Sceptre employees in new technologies, worked with US customers, and set up processes enabling him to manage projects -- from India. ''We established good communications," Tadepalli said. ''Now we can do it by phone or e-mail."
Neither the US nor the Indian government keeps count of how many Indian employees have left the American workforce to return to India. The Economic Times, a business publication in India, estimated this summer that 35,000 have returned to the largest Indian high-tech center, which is now in and around Bangalore.
That is still a small fraction of the approximately 2.4 million Indian residents of the United States, a number that includes Indian-born residents as well as US citizens of Indian heritage. Massachusetts is home to an estimated 65,000 Indians.
The reverse migrants are a diverse lot. They include those who have graduated from American schools and return to India for their first jobs, and those who retire in India after spending their work lives in the United States. Many do business in both countries but still live in the United States, while some commute between homes in both countries.
Returnees say that India's substantially lower average wages are more than offset by its dramatically lower cost of living. And with the proliferation of Western amenities, from air conditioning to consumer electronics to shopping malls, the returnees say they have found that the American lifestyle is now available in India -- at least for professionals laboring in the gleaming high-tech office parks of Bangalore and Hyderabad.
The impact of the exodus on the US economy is just starting to be felt. When he ran Taral Networks of Lexington, a wireless software company, two years ago, Vinit Nijhawan was surprised that ''one of my competitors came out of nowhere from India." With the emergence of a new generation of US-trained Indian entrepreneurs, ''you can't be complacent about this any more," Nijhawan said.
Some business people say the trend will help both countries, though skilled American workers will have to adapt to new roles.
''The US is still going to be the idea lab and the funding lab, but the experiments will take place in India," said Upendra Mishra of Waltham, chairman of the US-India Chamber of Commerce and publisher of the Indus Business Journal and India New England newspapers. ''Then they'll bring the technology back to the US."
Gururaj ''Desh" Deshpande, a cofounder and chairman of Sycamore Networks, an optical networking company in Chelmsford, said the Indian technology boomlet will boost productivity for US companies by making simple functions cheaper. ''The real innovation and brainpower will stay here," Deshpande said. ''You can't create MIT and Stanford and Harvard anywhere else in the world."
Businesses that operate in both countries can sometimes benefit by accommodating employees who want to return to India. But there can be a downside: Once they have moved workers back to India, companies find it tougher to retain them in the competitive job market, said Marc Hebert, executive vice president of Sierra Atlantic, which operates in Fremont, Calif., and Hyderabad.
''This is something new," Hebert said. ''Three years ago, these retention problems didn't exist."
Robert Weisman can be reached at weisman@globe.com.
© Copyright 2005 Globe Newspaper Company.
Speech by Alex Stephenov, Adobe Systems
Advice to young programmers
(This is the summary of speech Given by Alex Stepenov (Principal Scientist, Adobe Systems) at Adobe India on 30 Nov 2004. )
1. Study , Study and Study
- Never ever think that you have acquired all or most of the knowledge which exists in the world. Almost everybody in US at age of 14 and everybody in India at age of 24 starts thinking that he has acquired all the wisdom and knowledge that he needs. This should be strictly avoided.
- You should be habituated to studies...exactly in the same way as you are habituated to brushing teeth and taking bath every morning. The habit of study must become a ‘part of your blood’. And the study should be from both the areas: CS, since it is your profession, and something from non-CS...Something which doesnot relate to your work. This would expand your knowledge in other field too. A regular study, everyday, is extremely essential. It doesnot matter whether you study of 20 minutes of 2 hours, but consistency is a must.
- You should always study basics and fundamentals. There is no point in going for advanced topics. When I was at the age of 24, I wanted to do PhD in program verification, though I was not able to understand anything from that. The basic reason was that my fundamental concepts were not clear. Studying ‘Algebraic Geometry’ is useless if you donot understand basics in Algebra and Geometry. Also, you should always go back and re-read and re-iterate over the fundamental concepts.
What is the exact definition of ‘fundamental’? The stuff which is around for a while and which forms basic part of the concepts can be regarded as more fundamental. Of course, everybody understands what a fundamental means.
- Here are few books which I would strongly recommend that every CS professional should read and understand.
i. “Structure and Interpretation of Computer Programs” by Albenson and Sussman
I personally donot like the material present in this book and I do have some objections about it but this is the best book I have ever seen which explains all the concepts in programming in a clear and excellent way.
This book is available online at http://mitpress.mit.edu/sicp/
ii. Introduction to Computer Architecture: by Hennessy and Patterson.
How many of you have shipped the programs by writing them in assembly? A very good understanding of basics of how a computer operates is what every CS professional must have.
H&P Wrote two books on CA. I am talking about their first book, the introductory text for understanding basic aspects of how a computer works.
Even if you feel that you know whatever is written in that book, donot stop reading. It’s good to revise basics again and again.
iii. “Fundamentals of Programming” by Donald Knuth.
The core of CS is algorithms and Data structures. Every CS professional must have the 3 volumes of Knuth’s Book on programming. It really doesnot matter if you take 30 years of your life to understand what Knuth has written, what is more important is that you read atleast some part of that book everyday without fail.
iv. Introduction to Algorithms by Cormen, Leiserson and Rivest
This book should be read daily to keep your concepts fresh. This is the best book for fundamental concepts in algorithms.
2. Learn Professional Ethics
- As a CS Professional, you are morally obliged to do a good job. What this means is that you are supposed to do your job not for your manager but for yourself. This is already told in Bhagwatgeeta : Doing duties of your life.
- The direct implication of this is: never ever write a bad code. You don’t need to be fastest and run after shipping dates; rather you need to write quality code. Never write junk code. Rewrite it till it is good. Thoroughly test every piece of code that you write. Donot write codes which are “sort of allright”. You might not achieve perfection, but atleast your code should be of good quality.
- Let me quote my own example in this context. You might have heard about STL, The Standard Template Library that ships in with C++ compilers. I wrote it 10 years ago, in 1994. While implementing one of the routines in the STL, namely the “search routine”, I was a bit lazy and instead of writing a good linear order implementation of KMP which was difficult to code, I wrote a best quadratic implementation. I knew that I could make the search faster by writing a linear-order implementation, but I was lazy and I did not do that. And, after 10 years of my writing STL, exactly the same implementation is still used inside STL and STL ships with an inefficient quadratic implementation of search routine even today!! You might ask me: why can’t you rewrite that? Well...I cannot, because that code is no more my property!! Further, nobody today will be interested in a standalone efficient STL ...people would prefer one which automatically ships out with the compiler itself.
- Moral is, you should have aesthetic beauty built inside you. You should “feel” uneasy on writing bad code and should be eager to rewrite the code till it becomes upto the quality. And to the judge the quality, you need to develop sense regarding which algorithms to use under what circumstances.
3. Figure out your Goals
- Always aspire doing bigger things in life
- “Viewing promotion path as your career” is a completely wrong goal. If you are really interested in studying and learning new things, never ever aspire for being a manager. Managers cannot learn and study...they have no time. “Company ladder aspiration” is not what should be important for you.
- You might feel that you want to do certain things which you cannot do till you become a manager. When you become a manager, you will soon realize that now you just cannot do anything
- You will have a great experience as programmers. But if you care for people and love people, you will never enjoy being a manager...most good managers are reluctant managers. If you see people as people, you cannot survive at management level.
- Always aspire for professional greatness. Our profession is very beautiful because we create abstract models and implement them in reality. There is a big fun in doing that. We have a profession which allows us to do creative things and even gives nice salary for that.
- The three biggest mistakes that people usually make are aiming for money, aiming for promotion and aiming for fame. The moment you get some of these, you aspire for some more...and then there is no end. I donot mean that you shouldnot earn money, but you should understand how much money would satisfy your needs. Bill Clinton might be the richest person in the world; he is certainly not the happiest. Our lives are far better than his.
- Find your goal, and do best in the job that you have. Understand that what is in your pocket doesnot matter...what is in your brain finally matters. Money and fame donot matter. Knowledge matters.
4. Follow your culture
I have seen the tradition that whatever junk is created in US, it rapidly spreads up in the rest of the world, and India is not an exception for this. This cultural change creates a very strong impact on everybody’s life. Habits of watching spicy Bollywood or Hollywood movies and listening to pop songs and all such stupid stuff gets very easily cultivated in people of your age...but believe me, there is nothing great in that. This all just makes you run away from your culture. And there is no wisdom in running away from your culture. Indian culture, which has great Vedas and stories like Mahabharata and Bhagwatgeeta is really great and even Donald Knuth enjoys reading that. You should understand that fundamental things in Indian culture teach you a lot and you should never forget them.
Finally, I would like to conclude by saying that it’s your life...donot waste it on stupid things...develop your tests, and start the fight.
[Qt] bitBlt to QPixmap with XorROP broken ?
Hi,
I have some code using bitBlt to a QPixmap, which has worked for several
years. But since some days (update to Qt-3.3.4 ?) the ROP parameter of
the bitBlt seems to be ignored.
My code holds one QPixmap to avoid flicker and copies two QPixmaps into
it, using CopyROP for the background (layer1) and XorROP for the layer2.
Then the pixmap is bitBlt'ed to the widget.
I stripped it down to the following simple example code:
------------------------------------------------
void MyWidget::paintEvent(QPaintEvent *)
{
QPainter p;
QPixmap pixmap(size());
QPixmap layer1(size());
QPixmap layer2(size());
layer1.fill(green);
p.begin(&layer1);
p.setPen(red);
p.drawLine(0, 0, width(), height());
p.end();
layer2.fill(black);
p.begin(&layer2);
p.setPen(white);
p.drawRect(width()/4, height()/4, width()/2, height()/2);
p.end();
// this stopped working, I always see only layer2
// it seems that Qt::XorROP is ignored and CopyROP is used !!!???
bitBlt(&pixmap, 0, 0, &layer1, 0, 0, -1, -1, Qt::CopyROP);
bitBlt(&pixmap, 0, 0, &layer2, 0, 0, -1, -1, Qt::XorROP);
bitBlt(this, 0, 0, &pixmap);
// shows a black screen with a white rectangle (== layer2) :-(
// this works, but flickers, and this is *NOT* what I want
// bitBlt(this, 0, 0, &layer1, 0, 0, -1, -1, Qt::CopyROP);
// bitBlt(this, 0, 0, &layer2, 0, 0, -1, -1, Qt::XorROP);
// shows a green screen, red diagonal line + red recangle
}
------------------------------------------------
What is going wrong here, is this problem already known?
Thomas
[Qt] Re: adding custom widgets
Hello,
thanks for anwsering my message.
I've solved the problem by adding to the project
the *.cpp, *.h and the moc file of my custom widget.
Should be done that when adding a custom widget to a project?
I don't really know if I'm solving the problem in the correct way.
However, i paste here everything i think you ask me for.
1.the code of my project:
unix {
UI_DIR = .ui
MOC_DIR = .moc
OBJECTS_DIR = .obj
}
TEMPLATE = app
LANGUAGE = C++
CONFIG += qt warn_on release
HEADERS += C:/Qt/3.3.1/tools/designer/examples/vcr/vcr.h
SOURCES += main.cpp C:/Qt/3.3.1/tools/designer/examples/vcr/moc_vcr.cpp C:/Qt/3.3.1/tools/designer/examples/vcr/vcr.cpp
FORMS = mainwindowvcr.ui
IMAGES = images/filenew images/fileopen images/filesave images/print images/undo images/redo images/editcut images/editcopy images/editpaste images/searchfind
2. the vcr.cpp(here is defined the constructor of the widget)
#include "vcr.h"
#include
#include
static const char * rewind_xpm[] = {
"16 16 3 1",
" c None",
". c #FFFFFF",
"+ c #000000",
"................",
".++..........++.",
".++........++++.",
".++......++++++.",
".++....++++++++.",
".++..++++++++++.",
".++++++++++++++.",
".++++++++++++++.",
".++++++++++++++.",
".++++++++++++++.",
".++..++++++++++.",
".++....++++++++.",
".++......++++++.",
".++........++++.",
".++.........+++.",
"................"};
static const char * play_xpm[] = {
"16 16 3 1",
" c None",
". c #FFFFFF",
"+ c #000000",
"................",
".++.............",
".++++...........",
".++++++.........",
".++++++++.......",
".++++++++++.....",
".++++++++++++...",
".+++++++++++++..",
".+++++++++++++..",
".++++++++++++...",
".++++++++++.....",
".++++++++.......",
".++++++.........",
".++++...........",
".+++............",
"................"};
static const char * next_xpm[] = {
"16 16 3 1",
" c None",
". c #FFFFFF",
"+ c #000000",
"................",
".++.....+.......",
".+++....++......",
".++++...+++.....",
".+++++..++++....",
".++++++.+++++...",
".+++++++++++++..",
".++++++++++++++.",
".++++++++++++++.",
".+++++++++++++..",
".++++++.+++++...",
".+++++..++++....",
".++++...+++.....",
".+++....++......",
".++.....+.......",
"................"};
static const char * stop_xpm[] = {
"16 16 3 1",
" c None",
". c #FFFFFF",
"+ c #000000",
"................",
".++++++++++++++.",
".++++++++++++++.",
".++++++++++++++.",
".+++........+++.",
".+++........+++.",
".+++........+++.",
".+++........+++.",
".+++........+++.",
".+++........+++.",
".+++........+++.",
".+++........+++.",
".++++++++++++++.",
".++++++++++++++.",
".++++++++++++++.",
"................"};
Vcr::Vcr( QWidget *parent, const char *name )
: QWidget( parent, name )
{
QHBoxLayout *layout = new QHBoxLayout( this );
layout->setMargin( 0 );
QPushButton *rewind = new QPushButton( QPixmap( rewind_xpm ), 0, this,
"vcr_rewind" );
layout->addWidget( rewind );
connect( rewind, SIGNAL(clicked()), SIGNAL(rewind()) );
QPushButton *play = new QPushButton( QPixmap( play_xpm ), 0, this,
"vcr_play" );
layout->addWidget( play );
connect( play, SIGNAL(clicked()), SIGNAL(play()) );
QPushButton *next = new QPushButton( QPixmap( next_xpm ), 0, this,
"vcr_next" );
layout->addWidget( next );
connect( next, SIGNAL(clicked()), SIGNAL(next()) );
QPushButton *stop = new QPushButton( QPixmap( stop_xpm ), 0, this,
"vcr_stop" );
layout->addWidget( stop );
connect( stop, SIGNAL(clicked()), SIGNAL(stop()) );
}
3. the vcr.h
#ifndef VCR_H
#define VCR_H
#include
class Vcr : public QWidget
{
Q_OBJECT
public:
Vcr( QWidget *parent = 0, const char *name = 0 );
~Vcr() {}
signals:
void rewind();
void play();
void next();
void stop();
};
#endif
Thousand thanks
ferris
>From: "Wu Yinghui, Freddie"
>Reply-To: yhwu@volumeinteractions.com
>To: qt-interest@trolltech.com
>CC: qt-interest@trolltech.com
>Subject: Re: adding custom widgets
>Date: Wed, 03 Aug 2005 15:33:40 +0800
>
>ferris ferris wrote:
>>Hi,
>>
>>i use qt 3.3.1 with windows xp. I'm learning how to use custom widgets
>>with the qt assistant(Qt Designer Manual-Creating Custom Widgets) and I
>>get an error when i try linking the project.
>>
>>I added the vcr custom widget shown in the assistant to the toolbox and
>>after that, that widget to a main window. I create a main and when i
>>compile i get this error:
>>
>>mainwindowvcr.obj: error LNK2001 unresolved external symbol "public:
>>__thiscall Vcr::Vcr(class QWidget *, char const *)" ...
>>
>>I tried adding the vcr.h and vcr.cpp to the project. Then, both the
>>compilation and linkation run ok. However, the executable i get is not
>>what i expected. What i get is the custom widget i added without the rest
>>of the widgets i added to my main window(radio buttons, push buttons ...)
>>
>>I need to learn how add a custom widget and i can't find help for this
>>particular problem.
>>
>>
>>I hope this information will be enoght, if won't please tell me.
>>Thanks in advance.
>>
>
>I'd be more helpful, I guess, if you can provide your project and source
>files. The error message you showed above is just a simple linking error,
>from which I cannot really tell what you did wrongly. (But first, have you
>checked that you have that constructor declared but not defined?)
>
>Cheers,
>
>Freddie
>
>--
>Wu Yinghui, Freddie
>Research & Development
>Software Engineer
>
>Volume Interactions Pte Ltd
>1 Kim Seng Promenade, #12-01
>Great World City East Tower
>Singapore 237994
>Tel: +65 62226962 (Ext 216)
>Fax: +65 62226215
>Email: yhwu@volumeinteractions.com
>URL: http://www.volumeinteractions.com
>
>Important: This message is intended for the recipient(s) addressed above.
>It contains privileged and confidential information. If you are not the
>intended recipient, please notify the sender immediately by replying to
>this message and then delete it from your system. You must not read, copy,
>use, or disseminate this communication in any form. Thank you.
><< yhwu.vcf >>
><< signature.asc >>
Triangulation
Q. I am trying to come up with a way to track points in 3D space. I have
been able to come up with an algo to recognise and track objects based
on their color.
What I have is two sets of 2D track points( X Y points ) that I
acquired from two camera views( one Vertical and the other Horizontal
,i.e., the planes are perpendicular). What I need is the corresponding
3D coordinates( X Y Z ) of the object of interest. The Video images
were taken from both the views simultaneously.
I have scoured the net for papers and methodologies, but have not come
across similar work. I will put in points what I need :-
1. A method to do the conversion from 2d to 3d coordinate sys.
2. Links to papers and websites referring to similar work.
Thnx in advance..
A.
Try a paper called “Triangulation” by Richard I. Hartley and Peter Sturn.