Business Tech

Read all 'programming' posts in Business Tech
December 28, 2009 11:14 AM PST

'Don't-be-evil' Google spurns no-evil software

by Stephen Shankland

Google, the company that made "don't be evil" its corporate motto, is shunning use of an open-source license variation that precludes use of software for evil purposes.

The matter illustrates the tensions between the sometimes free-wheeling ways of open-source programming world and the buttoned-down corporate realms where open-source software is no longer unusual. This particular issue bubbled up at Google Code, a site that hosts open-source projects from Google and others.

When he wrote JSMin, Douglas Crockford added this line to the open-source MIT License.

When he wrote JSMin, Douglas Crockford added this line to the open-source MIT License.

(Credit: Douglas Crockford)

Google only permits software governed by a limited list of widely used open-source licenses to be hosted at Google Code; one that's permitted is the MIT License. Douglas Crockford picked a variation of the MIT license for his JSMin program to shrink JavaScript programs so that Web browsers can download them faster, and Ryan Grove carried that license over for his variation called JSMin-PHP rewritten in the PHP language.

JSMin-PHP had been hosted at Google Code until earlier in December, when it came to the attention of Chris DiBona, Google's open-source honcho, that the software's license had an extra requirement added to the regular MIT License:

"The Software shall be used for Good, not Evil."

"As Google (and some others) interpret it, this additional requirement constitutes a vague use restriction and thus makes the license non-free. Chris [DiBona] explained that if I were to remove that line from the license and 'return to a proper open source license that we support,' then jsmin-php could stay on Google Code. Otherwise, he said, 'we can't host you,'" Grove said on his blog. "Of course, I can't change the license, because it's not my license. It's Douglas's license...All derivative works and copies of jsmin.c either include this license or are in violation of it."

Consequently, Grove moved JSMin-PHP to the GitHub collaborative programming site. "If you currently have a project on Google Code that is derived from or includes jsmin.c, you might want to consider migrating to a new host with less restrictive policies," Grove added.

How did this all come about? According to a July speech by Crockford, who works for Yahoo and describes himself as a heretic, the license was an artifact of the George Bush administration's war on "evildoers." He uses the licenses for all the projects he's created, he said.

"This was late in 2002, we'd just started the war on terror, and we were going after the evildoers with the president and the vice president, and I felt like I need to do my part," he joked. "So I added one more line to my license, which was that 'the software shall be used for good, not evil.'"

"About once a year I'll get a letter from a crank who says, 'I should have a right to use it for evil! I'm not going to use it until you change your license.' Or they'll write to me and say: 'How do I know if it's evil or not? I don't think it's evil, but someone else might think it's evil, so I'm not going to use it,'" Crockford said. His conclusion: "My license works, I'm stopping the evildoers."

He's willing to grant an exception, though, he said.

"Also about once a year, I get a letter from a lawyer, every year a different lawyer, at a company--I don't want to embarrass the company by saying their name, so I'll just say their initials: IBM--saying that they want to use something I wrote," he said. "They want to use something that I wrote in something that they wrote, and they were pretty sure they weren't going to use it for evil, but they couldn't say for sure about their customers. So could I give them a special license for that? Of course. So I wrote back... 'I give permission for IBM, its customers, partners, and minions, to use JSLint for evil.'"

These days, though, lawyers are a real force in the programming world, and I can see how the line, however jokingly it might have been added, might cause corporate indigestion. Perhaps Crockford has no intention of enforcing the license, but perhaps some contributor to a project farther down the path of derivative works might have a more humorless interpretation.

After all, there have been efforts to add political elements into open-source and free-software licensing--for example, one variation of the GNU General Public License that prohibited military use of the software. And deeply held philosophical and ethical beliefs are certainly no stranger to the open-source and free-software realm.

Even if a company, project, or individual does conclude the license isn't onerous, that extra line adds a lot of busywork to the collective and never-ending task of evaluating software. I'm all for humor, principled positions, and honest debate, but I prefer it to take place where it won't hobble some other software project's prospects.

I know I sound stuffy (or perhaps "risk-averse" and "disconnected from the community," as Aaron Boodman would have it), but I hate to see good work fall by the wayside for what seems to me a reason that's secondary at best.

Updated 1:38 p.m. PST to clarify the nature of JSMin-PHP.

Originally posted at Deep Tech
December 9, 2009 10:05 AM PST

New Google Web Toolkit reveals Web-app speed

by Stephen Shankland

Just as Microsoft advanced the state of the art for programming on Windows, Google is trying to do the same with Web-based software. Its latest move: the release of Google Web Toolkit 2.0.

GWT translates software written in the Java programming language into the JavaScript code that browsers can run natively. The technology is designed to produce fast-executing JavaScript and ease the pains of incompatibilities among different browsers.

Google Web Toolkit, released Tuesday night at a Google Campfire One developer event, fits in with the company's general push to make the Web a more powerful foundation for applications, not just static Web sites. The financial reasoning the company offers boils down to this: more use of the Web means more searching on Google and more search advertising revenue.

GWT is an open-source tool. Among the newer Web sites Google built with it are Wave, Orkut, and the AdWords interface.

"We've been working with those teams in applied R&D in the last year to evolve to meet their needs," said GWT product manager Andrew Bowers. Specifically, he mentioned three new features in the refurbished GWT:

Speed Tracer, a Chrome browser extension that graphs a Web application's sluggishness over time.

The tool is designed to help Web developers find problems in the complex interactions of JavaScript, the Hypertext Markup Language (HTML) that's assuming new duties in describing a Web page, and the Cascading Style Sheets (CSS) that handle formatting chores. "As more functionality moves from standard JavaScript into HTML and CSS, a lot of things are moving to native functionality, it gets harder to find performance problems," Bowers said.

• "Code-splitting" technology to break Web applications up into urgent sections that must be downloaded immediately and the other parts that can be sent at a more leisurely pace.

Bowers likened the incremental application download feature to streaming video, where people can start watching the video before the full movie has been downloaded. The feature was developed with the Google Wave team, he added.

• Coming from work with the AdWords team is UiBinder, which lets programmers separate an application's user-interface code from the program logic that actually does the thinking. The result: user interface designers can be given free reign without the logic programmers worrying about everything breaking, Bowers said.

Google also has used GWT to develop Google Health and iPhone Web applications such as Google Latitude and Gmail.

But GWT isn't universal at Google. Google Docs and Gmail, for example, rely on JavaScript but don't use GWT. Some of those projects grew from code bases that predate GWT, Bowers said.

But Google is working pretty hard on another JavaScript programming tool called Closure, which has its own compiler to produce fast JavaScript. It's another open-source project, and not just a historical artifact.

Different strokes for different folks, said Bruce Johnson, GWT's technical lead of the different tools.

"Probably Closure is going to be more targeted at someone who wants to write JavaScript to begin with," Johnson said. "GWT is for Java developers or people who see additional benefits to programming that way."

Originally posted at Deep Tech
December 2, 2009 11:14 AM PST

Intel hopes 48-core chip will solve new challenges

by Stephen Shankland
Intel's 48-core Single-chip Cloud Computer (SCC) processor

Intel's 48-core Single-chip Cloud Computer (SCC) processor

(Credit: Intel)

SAN FRANCISCO--Pushing several steps farther in the multicore direction, Intel on Wednesday demonstrated a fully programmable 48-core processor it thinks will pave the way for massive data computers powerful enough to do more of what humans can.

The 1.3-billion transistor processor, called Single-chip Cloud Computer (SCC) is successor generation to the 80-core "Polaris" processor that Intel's Tera-scale research project produced in 2007. Unlike that precursor, though, the second-generation model is able to run the standard software of Intel's x86 chips such as its Pentium and Core models.

The cores themselves aren't terribly powerful--more like lower-end Atom processors than Intel's flagship Nehalem models, Intel Chief Technology Officer Justin Rattner said at a press event here. But collectively they pack a lot of power, he said, and Intel has ambitious goals in mind for the overall project.

"The machine will be capable of understanding the world around them much as humans do," Rattner said. "They will see and hear and probably speak and do a number of other things that resemble human-like capabilities, and will demand as a result very (powerful) computing capability."

... Read more
Originally posted at Deep Tech
December 2, 2009 9:59 AM PST

Intel launches development kit for Atom apps

by Lance Whitney
  • 4 comments

Looking to drum up developer interest in Atom-based Netbooks, Intel has pushed out a beta version of a Software Development Kit to help companies and individuals create apps for its mobile platform.

Intel's Atom Developer Program SDK is now available to developers who want to build software for Atom-powered Netbooks running Windows or Intel's Moblin operating system. Anxious for new mobile apps to help sell Netbooks in stores next year, Intel is even dangling a few incentives. Developers who submit apps for validation qualify to win prizes such as a smart car or vacation package.

"Consumer adoption of mobile computing and Atom-based Netbooks is growing rapidly, and there is an immediate opportunity for developers to capitalize on the popularity of these small-form-factor, on-the-go devices," said Renee James, corporate vice president and general manager of Intel's Software and Services Group, in a statement. "We are excited about the innovation and energy from developers around creating applications and unlocking new uses for Atom platforms."

The new SDK beta is part of Intel's Atom Developer Program, first revealed at the company's Developer Forum in September. The developer program offers tools, SDKs, and technical resources to programmers who want to create fresh apps or port over existing apps to Atom-based devices.

Citing reports from ABI Research, Intel said that more than 50 million Netbooks are expected to be sold by the end of 2009. Whether those devices run Windows or Moblin, Intel sees the Atom as the driving force behind even bigger sales next year, hopefully pushed by a string of innovative new apps.

Originally posted at Crave
Lance Whitney wears a few different technology hats--journalist, Web developer, and software trainer. He's a contributing editor for Microsoft TechNet Magazine and writes for other computer publications and Web sites. You can follow Lance on Twitter at @lancewhit. Lance is a member of the CNET Blog Network, and he is not an employee of CNET.
November 18, 2009 3:02 PM PST

With IE 9, Microsoft fights back in browser wars

by Stephen Shankland

With Internet Explorer 9, Microsoft showed Wednesday it's trying to retake the browser initiative.

IE remains the Net's dominant browser. But perversely, it became something of a technology underdog after Microsoft vanquished Netscape in the browser wars of the 1990s and scaled back its browser effort.

That left an opportunity for rivals to blossom--most notably Firefox, which now is used by a quarter of Web surfers, but also Apple's Safari, which now runs on Windows as well as Mac OS X, and Google's Chrome, which aims to make the Web faster and a better foundation for applications.

Microsoft has been pouring resources back into the IE effort, though, and at its Professional Developers Conference in Los Angeles, some fruits of that labor were on display. In particular, Windows unit president Steven Sinofsky showed off IE 9's new hardware-accelerated text and graphics.

The acceleration feature takes advantage of hitherto untapped computing power in a way that's more useful than other browser-boosting technology--Google's Native Client to directly employ PC's processor and Mozilla's WebGL for accelerated 3D graphics, for example--according to Dean Hachamovitch, general manager of Internet Explorer.

"This is a direct improvement to everybody's usage of the Web on a daily basis," Hachamovitch said in an interview after Sinofsky's speech. "Web developers are doing what they did before, only now they can tap directly into a PC's graphics hardware to make their text work better and graphics work better."

... Read more
Originally posted at Deep Tech
November 12, 2009 4:00 AM PST

Google hopes Go will give a browser boost

by Stephen Shankland
  • 22 comments

Google, ever eager to renovate the computing industry for the benefit of the Web and its own business, is working to link two nascent but potentially significant projects, its experimental Go programming language and its Chrome Web browser.

Gordon, Go's gopher mascot

Specifically, the company is building a foundation to let programs written in Go run directly within a Web browser endowed with Google's Native Client software. Native Client is designed to let browser-based programs run faster than is possible with today's widely used JavaScript; though it's still in its early stages, it's built into Chrome and available as a plug-in for other browsers.

A little poking around the Go source code reveals a reference to NaCl, the abbreviated name for Native Client. And Native Client is indeed on the Go agenda, said Rob Pike, one of the five core members of the Go team, in a Wednesday interview.

"We have an embryonic implementation of the NaCl support for Go using 8g," a compiler that produces code for x86 chips such as Intel's Core line, Pike said. "It's restricted by a couple of details of NaCl's implementation, but we hope to see changes to NaCl one day that will make Go a full-fledged language in that environment."

The Native Client compiler--the tool that converts what people write into software a computer can run--is specially modified to screen out a variety of software instructions that could expose a computer to an attack from a Native Client module downloaded off the Web. And the Native Client software itself checks such modules before they run. The result, if the security approach stands up to security scrutiny, is browser-based software that runs close to the speed of ordinary software that runs natively on a PC.

Google's Rob Pike

Rob Pike discusses the Go programming language at a Google Talk

(Credit: Google)

Native Client has been maturing, the most recent stage being inclusion of NaCl within Google's Chrome browser, though disabled by default for now. Google is using Chrome as a vehicle to distribute other Web technology, too, including Gears, which can let people use Gmail while offline, and WebGL, which gives hardware acceleration to 3D graphics in the browser.

Go is only experimental at this stage, but Google hopes to use it to produce some of the software running on its vast array of servers. Google's scale makes even academic projects potentially commercially relevant, which is enviable to many companies who've tried to get projects off the ground.

Indeed, an episode earlier in the Go team's history is illustrative. Pike, Unix co-inventor Ken Thompson, and Russ Cox all worked on the Plan 9 operating system project that, like Unix, began at Bell Labs. (Yes, Plan 9 is named after Ed Wood's famously bad movie, "Plan 9 from Outer Space.")

Unlike Unix, Plan 9 didn't have much commercial success, although Vita Nuova does sell a version called Inferno. Getting a mainstream operating system off the ground is hard: you must convince programmers, software companies, and hardware makers to embrace it; you must convince people to use it in the real world; and you must keep pace with the evolution of entrenched operating systems.

A bit of Plan 9 lives on inside the Go project, with various Plan 9 tidbits appearing in the Go source code. Pike, though, says there's not much.

Glenda, the Plan 9 bunny mascot, looks similar to Gordon, Go's gopher mascot. Both were drawn by Rob Pike's wife, illustrator Renee French.

Glenda, the Plan 9 bunny mascot, looks similar to Gordon, Go's gopher mascot. Both were drawn by Rob Pike's wife, illustrator Renee French.

(Credit: Bell Labs)

"The 6g/8g/5g compilers are almost completely new but are tied to the open-source Plan 9 compiler suite's C compilers and linker," Pike said. "That's really about it except for the obvious historical connection for some of the protagonists: Ken, Russ, and myself."

Programming languages face similar challenges as operating systems in getting off the ground: A lot of interdependent elements in the ecosystem must all be built simultaneously. It's what's known in the trade as the chicken-and-egg problem: you can't make a chicken without an egg or vice versa.

But Google makes things different for Go. It's devoting real resources to the project and believes it could be useful on its own servers to run software such as the Gmail service Web browsers tap into. It's got the chicken and the egg under its own roof.

And with the money Google could save by increasing the performance or efficiency of its servers even just a fraction of a percent, it has abundant financial incentive to make things work.

Marrying Go to browsers is just another aspect of the same issue.

Assuming Go and Native Client mature enough to be useful, Google can't mandate that Web developers embrace them; indeed, they generally haven't embraced Gears even though it can help with some Web site matters. But again, Google has a browser and some awfully big Web sites it can use to get the ball rolling.

Originally posted at Deep Tech
November 5, 2009 10:30 AM PST

Google offers JavaScript programming tools

by Stephen Shankland
  • 7 comments

With a project called Closure Tools, Google plans on Thursday to start helping developers who aspire to match the company's proficiency in creating Web sites and Web applications.

Google is a strong proponent of using JavaScript to write Web-based programs, part of its Web-centric ethos. Indeed, the company has pushed the language to its limits with services such as Gmail and Google Docs, and it developed its Chrome browser in part to enable JavaScript programs to run faster.

But writing, debugging, and optimizing heavy-duty JavaScript can be difficult--in part because a given JavaScript program sometimes works differently on different browsers. Google's open-source Closure Tools project is an attempt to help with some of these challenges.

The first in the suite of tools is the Closure Compiler, a software package designed to boil down a JavaScript program so it's smaller and runs faster. For example, a function named DisplayAddress() could be replaced with just a().

Along with the compiler come some extra tools that run in the Firefox browser. One, Closure Inspector, is an extension for Firefox's Firebug add-on designed to help programmers understand and debug the rewritten JavaScript--linking a() back to DisplayAddress(), for example. Another add-on for the Google Page Speed extension lets programmers see how much the compiler helped.

Google also plans to make the compiler available as a Web application hosted on its Google App Engine service.

The second element is called the Closure Library, a collection of prebuilt JavaScript code that lets programmers handle relatively sophisticated technology--arrays and string manipulation, for example.

Last are Closure Templates, more prewritten code to ease creation of JavaScript and HTML user interfaces.

In an earlier era, programming tools were expensive packages bought by a select few, but open-source software, new marketing strategies, and new business methods have made that approach the exception rather than the rule these days. Now programming tools are often a means to another end--encouraging programmers to produce the software that will make Windows or the Palm Pre useful and therefore popular, for example.

In Google's case, the objective is often to make the Web more popular because it sees more activity on the Web as corresponding directly with more activity on its revenue-generating search site. Among the high-profile projects to this end are Chrome, Chrome OS, and Android, all subsidized by Google's powerful search-advertising business.

One interesting contrast to Closure is another Google project called Google Web Toolkit. It's designed to accomplish some of the same goals as Closure, including paving over browser incompatibilities and producing high-performance JavaScript. But with GWT, coders write programs in Java that gets translated into JavaScript.

So one last question: why the name?

Google's reply: "Being a functional language, the concept of a function closure is fundamental to the JavaScript language."

Originally posted at Deep Tech
October 5, 2009 12:34 PM PDT

Adobe Flash apps come to iPhone--sort of

by Stephen Shankland
  • 46 comments

In a surprise announcement, Adobe Systems said Monday that Flash programmers now can bring their applications to Apple's iPhone, a domain of high interest that's been off limits for the programming technology.

Because of Apple restrictions, though, Flash isn't coming in the form in which most people experience it, a Web browser plug-in. Instead, programmers will be able to change Flash applications into native iPhone applications using Adobe's Flash Professional CS5 developer tool, currently in beta testing, then offer their programs as an Apple App Store download.

"This is a great first step in the right direction," said Heidi Voltmer, Adobe's product marketing manager for Flash.

The approach spotlights the tension between Apple, which controls the iPhone tightly in an effort to ensure a good user experience, and others, which want a place on the premier mobile device on the marketplace today.

Chroma Circuit is a Flash game now available as a native iPhone app.

Chroma Circuit is a Flash game now available as a native iPhone app.

(Credit: Screenshot by Stephen Shankland/CNET)

Adobe's back-door approach still is a significant move for the company, though, which wants to ensure that Flash is a major foundation for Internet-based applications. Programmers familiar with Flash could find the Adobe method an easier way to bring their applications to the iPhone world if they're not experts in coding for the phone and its close cousin, the iPod Touch.

Apple didn't immediately comment for this story.

Some Flash Professional CS5 beta testers are taking advantage of the technique, including BlueskyNorth, Breakdesign, FlashGameLicense.com, Muchosmedia, PushButton Labs, and Bowler Hat Games.

"With the ability to create applications for iPhone in the Flash Professional CS5 beta, I don't need to learn a new programming language or the plethora of development tools that inevitably come with it," said Josh Tynjala, founder of Bowler Hat Games, in a statement. "Instead, I'm able to spend more time exploring ways to make my games like Chroma Circuit more fun on mobile devices like the iPhone and increase my business revenue."

Adobe's ultimate goal remains the same: to get Flash on the iPhone integrated with its Safari browser. "My view is there is only one Web," said Chief Technology Officer Kevin Lynch in an interview. Adobe demonstrated the Flash applications at its Max developer conference in Los Angeles Monday, where Lynch gave the keynote address.

Flash Player 10.1, due in beta form later this year and final form in the first half of 2010, is spreading to just about all the other smartphones out there: Google Android, BlackBerry, Windows Mobile, Palm WebOS, and Nokia Symbian.

Why not the iPhone, too? "The Apple iPhone SDK (software developer kit) license terms do not allow runtime interpreted code, so Adobe is not able to deliver Flash Player in Safari on the iPhone without support from Apple," Adobe said in a statement.

Voltmer didn't comment on the state of present discussions with Apple to build Flash Player directly into the iPhone. But she did say people visit Adobe's Web site looking for it.

It's not immediately clear how easily Flash applications translate to the iPhone, and most folks won't get a chance to try it until the beta is released publicly later this year. There are some limitations, Voltmer said.

For one thing, the Flash software must be written in ActionScript 3, not the earlier ActionScript 2. For another, they can't use video because of Apple restrictions, she said.

There also could be practical limits on memory, processing power, and graphics. Last year's PC running Flash Player has a lot more computing capability than a modern iPhone 3GS.

The iPhone and iPod Touch have some features that are well-suited to mobile gaming, though, and programmers will be able to use them. That includes the multitouch interface and accelerometer that detects device orientation, said Adrian Ludwig, a Flash team member at Adobe.

Updated at 1:48 p.m. PDT with further comment from Adobe and no comment from Apple.

Adobe developer tools let Flash programmers turn their applications in to native iPhone software.

Adobe developer tools let Flash programmers turn their applications into native iPhone software. This is a Flash game called Chroma Circuit.

(Credit: Screenshot by Stephen Shankland/CNET)
Originally posted at Deep Tech
September 29, 2009 6:01 PM PDT

Yahoo updates YUI tool for slick Web interfaces

by Stephen Shankland
  • 3 comments

Yahoo on Tuesday released version 3 of its Yahoo User Interface library, a software collection programmers can use to endow Web sites with fancy user interface elements written in JavaScript and Cascading Style Sheets.

"YUI 3's core infrastructure and its utility suite are all considered production-ready with today's release," Yahoo's Eric Miraglia said in a blog post Tuesday. "The code we're shipping today in 3.0.0 is the same code that drives the new Yahoo Home Page, and it goes out with confidence that it has been exercised vigorously and at scale."

The YUI libraries are open-source, freely available, and used widely around the Internet for Web site tasks including animation, drag-and-drop, fetching data from various types of sources, and responding to events--chores that are more complicated but that often are useful as the Web moves from static Web pages toward interactive applications.

Compared with YUI 2, the new version is smaller, faster, easier to program with, and more secure, Yahoo said. It's easier to break code into minimum-size pieces through a dependency configurator or YUI's ability to download required components on its own. Also, Yahoo is working to add widget abilities for creating small programs.

A convenient YUI feature is that Yahoo is willing to host most of it on its own servers, saving hassle and Web server bandwidth.

The new version is the first ground-up reworking of the software since 2005. No doubt YUI will be the subject of discussion at Open Hack Day and YUIConf, both in October.

This chart illustrates the smaller file sizes of one YUI 3 library that helps with retrieving data from various sources.

This chart illustrates the smaller file sizes of one YUI 3 libary that helps with retrieving data from various sources.

(Credit: Yahoo)
Originally posted at Deep Tech
August 31, 2009 4:00 AM PDT

Apple's new OS geared for multicore future

by Stephen Shankland
  • 84 comments

Apple began shipping Snow Leopard on Friday, but the true importance of the Mac OS X update likely will emerge well afterward.

That's because Mac OS X 10.6 begins a longer-term Apple attempt to get ahead by cracking a problem facing the entire computer industry: squeezing useful work out of modern processors. Instead of stuffing Snow Leopard with immediately obvious new features, Apple is trying to adjust to the new reality in which processors can do many jobs simultaneously rather than one job fast.

"We're trying to set a foundation for the future," said Wiley Hodges, director of Mac OS X marketing.

Apple shed some light on its project, called Grand Central Dispatch, at its Worldwide Developer Conference in June, but most real detail was shared only in with programmers sworn to secrecy. Now the company has begun talking more publicly about it and other deeper projects to take advantage of graphics chips and Intel's 64-bit processors.

The moves align Apple better with changes in computing. For years, chipmakers such as Intel and Advanced Micro Devices had steadily increased the clock rate of their processors, and programmers got accustomed to a performance boost with each new generation. But earlier this decade, problems derailed the gigahertz train.

... Read more
Originally posted at Deep Tech
advertisement

15 sites that went kaput in 2009

Web sites launch all the time, but they also shut their doors. We highlight 15 that bit the dust this year.

Top 10 news stories of the decade

Let the debate begin: Was the iPhone more important than iTunes? Was anything bigger than Google finding a great business model? CNET offers its list of the 10 most important stories of the '00s.

About Business Tech

Your destination for the latest news on enterprise-level information technology, from chip research and server design to software issues including programming, open source and patents.

Add this feed to your online news reader

Business Tech topics

Most Discussed



advertisement

Inside CNET News

Scroll Left Scroll Right