Saturday, November 3, 2007

F# - A Functional Programming Language - The Future

Great news from the grant Microsoft
Language features such as lambda expressions in C# and generics in .NET 2.0 have roots in functional languages, and LINQ is directly based on functional programming techniques. Through LINQ and Parallel FX, ideas from functional languages are helping us address some of the biggest challenges facing the industry today, from the impedance mismatch between data and objects to the challenges of the multi-core and parallel computing space.


From Wiki

Play new style (functional Java) with Java


Microsoft to push functional programming into the mainstream with F#

By Ryan Paul | Published: October 23, 2007 - 08:26AM CT

Microsoft has announced that support for the F# functional programming language will be fully integrated into Visual Studio. This marks a bold new commitment to facilitating functional programming on the .NET platform and could potentially help legitimize functional programming in enterprise environments. Microsoft's promotion of F# to a fully-supported language in Visual Studio is also indicative of the extreme versatility of the .NET platform and Microsoft's Common Language Runtime.

F# began its life as a Microsoft Research project to demonstrate the efficacy of .NET as a platform for mixing multiple distinct programming paradigms. F# is heavily inspired by the OCaml programming language, and a subset of F# and OCaml are largely compatible. F# offers developers many valuable and compelling features without sacrificing much runtime efficiency. F# supports type inference, pattern matching, high-order functions, and currying. F# also supports interactive execution, which means that F# programs can be run like scripts or inputted in an interactive top-level environment similar to the Python shell or Ruby's IRB. F# also has full access to the .NET APIs and components written in other .NET languages.

The advantages of functional programming

Unlike imperative or procedural programming languages, in which computation is typically performed by altering program state, functional programming languages operate on the principles of mathematical evaluation and reduction. Such programming languages are deeply rooted in formal mathematical logic and computational theory. Functional programming languages are largely based on the system of lambda calculus devised by Alonzo Church, in which numerical values, sequences, data structures, basic mathematical computations, and even recursion can be expressed entirely with nested functions.

The close association with lambda calculus and category theory makes functional languages a powerful tool for understanding and programmatically modeling concepts like catamorphisms and recursion. For some programmers, learning to see the ineffable theoretical perfection of functional programming languages is a profoundly illuminating experience that opens the mind to a completely new way of perceiving and understanding computer programming. In some cases, certain functional programming languages are also valued because functional purity is highly conducive to referential transparency and minimizes the potential for side effects.

Outside of the academic world, functional programming idioms are valued because they are often far more expressive than imperative or procedural equivalents. Modern dynamic scripting languages like Python and Ruby, for instance, offer first-class functions in order to boost developer productivity. Even C# offers some features—like LINQ—that are heavily based on functional programming concepts. The ability to mix F# and C# in .NET applications makes it far easier for software developers to use the programming paradigms that are best suited for each individual task.

Functional programming on .NET

Microsoft's decision to productize F# represents a particularly significant step forward for the .NET platform. Microsoft took an equally significant step when it unveiled the Dynamic Language Runtime earlier this year. The .NET platform now fully, officially, and equally supports functional, dynamic, and conventional imperative programming paradigms in an interoperable manner all with a single runtime. This is a tremendous accomplishment and strong evidence of the .NET platform's success and long-term viability.

"[W]e aim to continue the flow of good ideas from functional programming world into mainstream development," wrote Microsoft developer division vice president S. Somasegar in a blog entry. "Furthermore, the somewhat mathematical slant of functional programming just seems naturally appealing to professionals whose primary domain is described with mathematical notation—domains such as financial, scientific and technical computing. On top of the syntactic appeal, the strong type system yields the sort of guarantees which are often crucial in these domains, and enables a superb tooling experience through Visual Studio."

Although this is the first time that Microsoft has treated functional programming on .NET as a product instead of an experiment, many independent developers have long used functional programming languages on top of .NET. The open-source NemerleStandard ML and Lisp implementations for .NET. programming language, for instance, supports extremely impressive features like macros and is preferred over F# by some programmers in the Ars community. There are also several

As the C# programming language and .NET continue to evolve, developers can undoubtedly look forward to seeing more dynamic and functional programming concepts move out of scripting and academia to augment and complement more conventional programming techniques. Microsoft's efforts to push dynamic and functional programming into the mainstream are one of many signs that the art of software development is enjoying a profound renaissance.

Saturday, September 29, 2007

Web 2.0

Report và là 1 trong những bài post đầu tiên về Web 2.0.

What Is Web 2.0 ?

Lecture:
2. Agenda
3. Web 2.0
4. Read-Write Web
5. Other Web 2.0 influences
6. Web 2.0 by Tim O'Reilly
7. Web 2.0 Principles
8. Core Competencies of Web 2.0 Companies
9. Web 2.0 Design Patterns
10. Six (or so) Quick Examples

Web 2.0

  • “What is Web 2.0?” is a common question these days. Web 2.0 is certainly a buzz word that has been “bouncing around the blogosphere” since late 2004.
  • Tim O'Reilly attempts the following “compact” definition:

Web 2.0 is the network as platform, spanning all connected devices; Web 2.0 applications are those that make the most of the intrinsic advantages of that platform: delivering software as a continually-updated service that gets better the more people use it, consuming and remixing data from multiple sources, including individual users, while providing their own data and services in a form that allows remixing by others, creating network effects through an "architecture of participation," and going beyond the page metaphor of Web 1.0 to deliver rich user experiences.

  • “network as platform, spanning all connected devices”: the notion that Web 2.0 data is accessible anywhere; Flickr is not “Windows Only”, for instance.
  • “delivering software as a continually-updated service that gets better the more people use it”: hints of service-oriented architecture, Web services
  • “consuming and remixing data from multiple sources, including individual users, while providing their own data and services in a form that allows remixing by others”: Web 2.0 services enable mashups and/or reuse of their data in perhaps unexpected ways
  • “creating network effects”: network effects are those in which benefits of using a system increase as more users make use of it. The classic example is that of a telephone. If only one person has a telephone, its not very useful. As more and more people gain access to telephones, the benefit to an individual user goes up quite quickly
  • “going beyond the page metaphor of Web 1.0”: Web 2.0 services should feel like desktop applications that just happen to live in a browser. See Writely for instance.

Read-Write Web

  • Tim Bray (among others) feels that everything that is classified as Web 2.0 comes from the enabling of the Read-Write Web
  • In Web 1.0 days, the Web was a read-only environment (if you ignore the long-standing ability by many Web sites to let people leave comments on a Web page via the use of a CGI script)
  • But, slowly, over the years since 1993, the Web has become more and more a read-write environment in which its easier for end-users to create information that can then be re-used by others
  • I should note that Tim Berners-Lee has always wanted the Web to be read-write. His first Web browser (developed on a NeXT workstation) supported GET and PUT operations but this ability got lost in the transition to Mosaic and Netscape. It is also important to note that the vision of a read-write Web is in tune with the visions of the “fathers of hypertext”: Vannevar Bush, Doug Englebart and Ted Nelson
  • I should also note that an extremely active Web 2.0-related blog is called Read / Write Web.

Other Web 2.0 influences


Web 2.0 by Tim O'Reilly

  • Tim O'Reilly played an instrumental role in promoting the concept of Web 2.0 via O'Reilly publications and conferences
  • He has published an article in which he expands on the definition we discussed above. (Material on this slide and the next draw heavily from that article, please read the original for full details.)
  • He claims that they initially defined the Web 2.0 concept by example:
Web 1.0 Web 2.0
DoubleClick Google AdSense
Ofoto Flickr
Britannica Online Wikipedia
personal websites blogging
screen scraping web services
directories (taxonomy) tagging ("folksonomy")
stickiness syndication
  • They then attempted to tease out the underlying principles that allowed them to classify a particular concept, system, or company in one or the other category.

Web 2.0 Principles

  • The Web As Platform
    • software as service, doesn't matter what the client platform is
    • clients pay directly (place ads) or indirectly (view ads) for use of service
    • No scheduled software releases, just continuous improvement
    • no licensing or sale, just usage
    • no porting to different platforms, just massive server forms handled internally
    • AdSense Ads: no banners, just minimally intrusive, context-sensitive, consumer-friendly text ads
    • BitTorrent: every client is also a server
    • BitTorrent: the service automatically gets better the more people use it (network effects), aka the “architecture of participation” (blogging is another example here)
    • Key lesson: do business with the edges and “long tail” (see Wikipedia's and Tim Bray's explanation) of the Internet
  • Harnessing Collective Intelligence
    • Hyperlinking is fundamental
    • Yahoo!: Its directories were created via the input of its users
    • Google's PageRank
    • eBay's products organically shift based on the activities of its users
    • Amazon's search takes into consideration the concept of “most popular” which shifts based on the activities of their users
    • Wikipediia: radical experiment in trust that, similar to open source software development, can produce high quality output
    • folksonomy, i.e. tagging. Tagging creates organic taxonomies, categories of objects that arise via the activities of the participants; supports the overlapping associations that the brain itself uses, rather than rigid categories
    • Blogging: its ability to create dynamic conversations and harness the “wisdom of crowds”
    • Key lesson: Network effects from user contributions are key to market dominance in the Web 2.0 era
  • Data is the Next Intel Inside
    • MapQuest licensed map data, satellite images, etc. to create its product; Google and other companies created competing products simply by licensing the same data. Bad for MapQuest, good for the companies that own the data
    • As such, “the race is on to own certain classes of core data”
      • location
      • identity
      • calendaring of public events
      • product identifiers
    • In areas where there is significant cost to create the data, an opportunity exists for a company to become the sole owner of that database and then license it to all who want it (this is referred to as an “Intel Inside strategy”)
  • End of the Software Release Cycle
    • Operations must become a core competency
      • Not software product development…
      • because software as service means the system is running 24/7
      • Your system will cease to perform unless it is maintained on a daily basis
    • Users must be treated as co-developers
      • As is recommended in open source software development
      • You need to be able to monitor the use of features in your system
        • Features not used should be removed
        • Deploy in a few small areas and if they get picked up, deploy across the entire site
  • Lightweight Programming Models
    • Once the idea of Web services became popular, large companies jumped into the arena with a complex web services stack
      • But the Web itself was successful primarily because it discarded a lot of the complexity of prior hypertext models
    • As such there is a drive to keep Web 2.0 programming models simple, as is seen with REST and Ajax's approach of using XML and Javascript
    • O'Reilly highlights several significant lessons with respect to this:
      • Support lightweight programming models that allow for loosely coupled systems
      • Think syndication, not coordination
      • Design for "hackability" and remixability (Similar to the Web's "View Source" command)
  • Software Above the Level of a Single Device
    • Best to quote from O'Reilly directly

      One other feature of Web 2.0 that deserves mention is the fact that it's no longer limited to the PC platform. In his parting advice to Microsoft, long time Microsoft developer Dave Stutz pointed out that "Useful software written above the level of the single device will command high margins for a long time to come."

      Of course, any web application can be seen as software above the level of a single device. After all, even the simplest web application involves at least two computers: the one hosting the web server and the one hosting the browser. And as we've discussed, the development of the web as platform extends this idea to synthetic applications composed of services provided by multiple computers.

      But as with many areas of Web 2.0, where the "2.0-ness" is not something new, but rather a fuller realization of the true potential of the web platform, this phrase gives us a key insight into how to design applications and services for the new platform.

      To date, iTunes is the best exemplar of this principle. This application seamlessly reaches from the handheld device to a massive web back-end, with the PC acting as a local cache and control station. There have been many previous attempts to bring web content to portable devices, but the iPod/iTunes combination is one of the first such applications designed from the ground up to span multiple devices. TiVo is another good example.

      iTunes and TiVo also demonstrate many of the other core principles of Web 2.0. They are not web applications per se, but they leverage the power of the web platform, making it a seamless, almost invisible part of their infrastructure. Data management is most clearly the heart of their offering. They are services, not packaged applications (although in the case of iTunes, it can be used as a packaged application, managing only the user's local data.) What's more, both TiVo and iTunes show some budding use of collective intelligence, although in each case, their experiments are at war with the IP lobby's. There's only a limited architecture of participation in iTunes, though the recent addition of podcasting changes that equation substantially.

      This is one of the areas of Web 2.0 where we expect to see some of the greatest change, as more and more devices are connected to the new platform. What applications become possible when our phones and our cars are not consuming data but reporting it? Real time traffic monitoring, flash mobs, and citizen journalism are only a few of the early warning signs of the capabilities of the new platform.

  • Rich User Experiences
    • Started with GMail and Google Maps, web apps that act like desktop apps
    • Use of XHTML, CSS, DOM, XML, XSLT, XMLHttpRequest, and Javascript: AJAX!

Core Competencies of Web 2.0 Companies

  • O'Reilly states that Web 2.0 companies require skills in the following areas:
    • Services, not packaged software, with cost-effective scalability
    • Control over unique, hard-to-recreate data sources that get richer as more people use them
    • Trusting users as co-developers
    • Harnessing collective intelligence
    • Leveraging the long tail through customer self-service
    • Software above the level of a single device
    • Lightweight user interfaces, development models, AND business models

Web 2.0 Design Patterns

O'Reilly states that Web 2.0 has the following design patterns (note: the text below is a direct quote from here):

The Long Tail Small sites make up the bulk of the internet's content; narrow niches make up the bulk of internet's the possible applications. Therefore: Leverage customer-self service and algorithmic data management to reach out to the entire web, to the edges and not just the center, to the long tail and not just the head.
Data is the Next Intel Inside Applications are increasingly data-driven. Therefore: For competitive advantage, seek to own a unique, hard-to-recreate source of data.
Users Add Value The key to competitive advantage in internet applications is the extent to which users add their own data to that which you provide. Therefore: Don't restrict your "architecture of participation" to software development. Involve your users both implicitly and explicitly in adding value to your application.
Network Effects by Default Only a small percentage of users will go to the trouble of adding value to your application. Therefore: Set inclusive defaults for aggregating user data as a side-effect of their use of the application.
Some Rights Reserved. Intellectual property protection limits re-use and prevents experimentation. Therefore: When benefits come from collective adoption, not private restriction, make sure that barriers to adoption are low. Follow existing standards, and use licenses with as few restrictions as possible. Design for "hackability" and "remixability."
The Perpetual Beta When devices and programs are connected to the internet, applications are no longer software artifacts, they are ongoing services. Therefore: Don't package up new features into monolithic releases, but instead add them on a regular basis as part of the normal user experience. Engage your users as real-time testers, and instrument the service so that you know how people use the new features.
Cooperate, Don't Control Web 2.0 applications are built of a network of cooperating data services. Therefore: Offer web services interfaces and content syndication, and re-use the data services of others. Support lightweight programming models that allow for loosely-coupled systems.
Software Above the Level of a Single Device The PC is no longer the only access device for internet applications, and applications that are limited to a single device are less valuable than those that are connected. Therefore: Design your application from the get-go to integrate services across handheld devices, PCs, and internet servers.

Six (or so) Quick Examples

Thursday, September 20, 2007

I.B.M. to Offer Office Software Free in Challenge to Microsoft’s Line

http://symphony.lotus.com/software/lotus/symphony/home.jspa


I.B.M. plans to mount its most ambitious challenge in years to Microsoft’s dominance of personal computer software, by offering free programs for word processing, spreadsheets and presentations.

Skip to next paragraph
I.B.M.

Steven A. Mills, senior vice president of I.B.M.’s software group, said the programs promote an open-source document format.

The company is announcing the desktop software, called I.B.M. Lotus Symphony, at an event today in New York. The programs will be available as free downloads from the I.B.M. Web site.

I.B.M.’s Lotus-branded proprietary programs already compete with Microsoft products for e-mail, messaging and work group collaboration. But the Symphony software is a free alternative to Microsoft’s mainstay Office programs — Word, Excel and PowerPoint. The Office business is huge and lucrative for Microsoft, second only to its Windows operating system as a profit maker.

In the 1990s, I.B.M. failed in an effort to compete head-on with Microsoft in personal computer software with its OS/2 operating system and its SmartSuite office productivity programs.

But I.B.M. is taking a different approach this time. Its offerings are versions of open-source software developed in a consortium called OpenOffice.org. The original code traces its origins to a German company, Star Division, which Sun Microsystems bought in 1999. Sun later made the desktop software, now called StarOffice, an open-source project, in which work and code are freely shared.

I.B.M.’s engineers have been working with OpenOffice technology for some time. But last week, I.B.M. declared that it was formally joining the open-source group, had dedicated 35 full-time programmers to the project and would contribute code to the initiative.

Free office productivity software has long been available from OpenOffice.org, and the open-source alternative has not yet made much progress against Microsoft’s Office.

But I.B.M., analysts note, has such reach and stature with corporate customers that its endorsement could be significant.

“I.B.M. is jumping in with products that are backed by I.B.M., with the I.B.M. brand and I.B.M. service,” said Melissa Webster, an analyst for IDC, a research firm. “This is a major boost for open source on the desktop.”

I.B.M. executives compare this move with the push it gave Linux, the open-source operating system, into corporate data centers. In 2000, I.B.M. declared that it would forcefully back Linux with its engineers, its marketing and its dollars. The support from I.B.M. helped make Linux a mainstream technology in corporations, where it competes with Microsoft’s Windows server software.

I.B.M. is also joining forces with Google, which offers the open-source desktop productivity programs as part of its Google Pack of software. Google supports the same document formats in its online word processor and spreadsheet service.

I.B.M. views its Symphony desktop offerings as part of a broader technology trend that will open the door to faster, more automated movement of information within and between organizations.

A crucial technical ingredient, they say, is the document format used in the open-source desktop software, called the OpenDocument Format. It makes digital information independent of the program, like a word processor or spreadsheet, that is used to create and edit a document. OpenDocument Format is based on an Internet-era protocol called XML, short for Extensible Markup Language, which enables automated machine-to-machine communication.

For example, an individual investor might create a spreadsheet with automated links to market information, and prices at which he or she wants to buy or sell shares in particular stocks. The person would get an alert by e-mail or cellphone message of price swings, and could create the document for a buy or sell order with a keystroke.

Or, in a doctor’s office, patient records could be linked to hospital, clinic and other databases and updated automatically.

Microsoft has the same vision of software automation, but it champions its own document format, called Office Open XML. Earlier this month, Microsoft failed in its initial effort to have Office Open XML ratified as a global technical standard by the International Organization for Standardization in Geneva. The OpenDocument Format, backed by I.B.M., Google, Sun and others, was approved by the standards organization last year.

I.B.M. clearly regards its open-source desktop offerings as a strategic move in the document format battle. “There is nothing that advances a standard like a product that uses it,” said Steven A. Mills, senior vice president of I.B.M.’s software group.

The Lotus Symphony products will support the Microsoft Office formats as well as the OpenDocument Format. But analysts note that technical translators are not entirely foolproof; Symphony software may easily translate the words from a Microsoft Word document, but some of the fonts and formatting may be lost. For many users, that may not matter, they say, but for others it might.

Betsy Frost, a general manager in Microsoft’s Office business, said users valued “full compatibility” with previous versions of their Office documents as well as the ease of use and familiarity of Microsoft products. And she noted that there are 500 million Office users worldwide.

Any inroads I.B.M. and its allies make against Microsoft, analysts say, will not come easily. “Three major players — I.B.M., Google and Sun — are now solidly behind a potential competing standard to Office,” said Rob Koplowitz, an analyst at Forrester Research. “But it’s a tough road. Office is very entrenched.”

SAP Unveils Web Software, New Business Model

NEW YORK (Reuters) - SAP AG unveiled a long-awaited line of Web-delivered software on Wednesday that will radically change the company's business model and may shake up the Internet software arena.

Called Business ByDesign, the software is initially a one-size-fits-all, subscription-based package aimed at mid-sized companies and is a crucial plank in SAP's strategy to more than double its customer base to 100,000 by 2010.

"It's not just a new product for us," Chief Executive Henning Kagermann told journalists and analysts at a company event in New York. "It's a new era for SAP."

SAP, the market leader in complex suites of software for large enterprises, is the first major software maker to enter the market for so-called software as a service delivered over the Internet.

It said it will have invested up to 400 million euros ($559 million) in marketing and ramping up Business ByDesign by the end of next year. One-fifth of the company's 12,300 developers are working on the project.

Business ByDesign, which integrates management of areas including financials, human resources, supply chain and customer relationship management will cost $149 per month per user and $54 per month per five users for a pared-down version.

The offering is both more complex and more expensive than competing products from the likes of Internet software pioneer Salesforce.com Inc , which has 35,000 customers and whose prices start from $60 per user per month.

Salesforce and privately held NetSuite, which deliver their software over the Web, have seen their business grow faster than SAP and its big rivals Oracle Corp and Microsoft Corp , which usually install their software on customer computers. NetSuite has 5,300 customers.

"I hope they will make it. That would be good for the industry," said Dan Sholler, a software analyst with Gartner. "But they are promising to do something that has never been done ... I am very uncomfortable with the goals they have set."

SAP shares closed down 1.2 percent to $57.90 in New York Stock Exchange trading.

NO COMPROMISES

SAP, which currently has 20 selected live customers using Business ByDesign, aims to win hundreds of customers by the end of the first quarter and thousands by the end of 2008.

Kagermann told Reuters that 2008 would be the year SAP would prove the technical viability and the business case for Business ByDesign, which it hopes will eventually become more profitable than the rest of its business is currently.

From 2010, SAP aims to win 10,000 new customers annually and $1 billion per year in new revenues from the new software.

It is rolling out Business ByDesign slowly, first with selected customers in the United States and Germany, followed by Britain, France and China. It will have limited distribution until late 2008.

Analysts attending the SAP event said they were impressed by the product demonstration and unworried by the slow speed of the roll-out

.

"The breadth of solution is definitely going to be quite compelling," said Adam Shepherd of Dresdner Kleinwort. "In terms of pricing it seems competitive."

James Dawson of Morgan Stanley said: "They've been fine-tuning the product all year. It's a reasonable time plan."

But Salesforce's European president, Lindsey Armstrong, said she was unworried about potential competition.

"It feels to me like a very classically built SAP product. How many people need a 360-degree view of the company?" she said, when asked about the greater scope of the SAP software, compared with Salesforce's. "I'd say one -- the CEO."

She added that SAP's timetable to market made the threat remote. "I can pretty much walk to Italy from (SAP's headquarters in) Walldorf in the time they'll take to roll it out there."

SAP has, however, designed Business ByDesign as a wholly distinct product, making the decision some three years ago to set up a separate development branch rather than simply put SAP's existing software packages on line, Kagermann told Reuters.

"We decided to make no compromises," he said

Thursday, September 13, 2007

Haskell - A new perspective

after nearly a week , I have studied Haskell.
Peter, gave me a lot of work, some notes, things to do , to think about
Now it's time to review what I have learned
I spend 1 week on reading all notes in 4 week. Not big deal. OK
Some important concepts
Value
Type
Function
Module
Eg:
module Sample
where
square :: Int -> Int
square x = x*x

Friday, September 7, 2007

Free Stanford Webinar

Long-Range Design - A Proven Paradigm for Radical Innovation
Dr. William Cockayne


Learn the new tools (e.g. critical foresight, anticipatory research design thinking) that are empowering organizations to improve the quality and speed of their research and design innovation programs.

Date: August 30, 2007
Time: 10:00 am, PDT

View the recorded webinar

Friday, August 31, 2007

Please Attention,my friend

Hơi phức tạp 1 tí nhưng đại loại là như sau:

Tuần sau T đi interview để làm tình nguyên viên trong dự án Disability E-library,
xem website
Mới tối qua trước khi hẹn với bạn T có nhận được tin
http://www.iyc-vietnam.org/news/modules.php?name=News&op=viewst&sid=51

T định đi nghe seminar này xong sẽ qua đón bạn này, nhưng nhận thấy cái này cũng hữu ích đối với bạn nên T mời bạn đi chung, nếu bạn quan tâm Ngày mai 1/9/2007 T sẽ chờ trước cổng nhà bạn lúc 13.30.
Nếu bận gì đó hay không muốn đi, không sao cả. T thấy hay nên giới thiệu thui, T không bít bạn có thích đi hay không nữa.

Trong trường hợp không đi được thì khoảng 6.00 PM T sẽ qua đón và đứng chờ trước nhà bạn lần 2, để rủ bạn đi uống nước ở Tomato như đã hứa.
Tại lâu quá không gặp thui ( nửa tháng) và hôm đó T chưa lên thử lầu 1. và cuốn đưa bạn cuốn sách Handbook of Commercial Correspondence.

Cuốn này T thấy hay và có thể bạn cần nó hơn T, T định cho bạn mượn, không biết bạn có quan tâm không.

Nên đi 1 xe cho tiện.

Trong trường hợp không đi được cả 2 lần trên thì thui, không sao. Hẹn dịp khác vậy.
Thân mến, bạn của người có nguyên tắc.

Thursday, August 30, 2007

Where is the future of JAVA

I am a fan of Java, ya, I love Ruby, she love coffee, but the symbol of Java is a cup of coffee , and I love Java.
It calls a transitive rule in Maths,
Java is security, scalability, infrastructure, multi platform, and opening thinking in the closed world.

And wonder where we go, the future of Java. It's a programming language, it's my job.
as a programmer, I wanna work as fast as possible, finish a project, take the free time for my friend.
The future of Internet, what drive the market, the demand for IT industry is consumer, the end user. Not me, a programmer, designer, developer.

I see that many many things to learn, I mean techs used in developing a software today, ya, learning curve is tedious. Studying, studying to live, not just a some bad guys like black hacker, just eat and hack.

Friend, family. my job. Social network. the new motivation, connect you and me.
Uhm, reading CEO of Sun micro system . I see it, how about you ?


The Rise of JAVA - The Retirement of SUNW

I've spoken before about the value of brand - this post is a good example. And I wanted to follow up with a few more thoughts, and an important shift in how Sun (NASDAQ:SUNW) presents itself to the world - and more importantly, how the world now presents itself to Sun.

Sun is blessed to have built two of the best known brands on the internet. The Java brand, and OpenOffice (and its cousin, StarOffice).

Presumably, you saw the relationship we just announced with Google (NASDAQ:GOOG), in which they'll be distributing StarOffice for free as a part of their Google Pack offerings - to put this in context, we're now distributing multiple millions of copies of OpenOffice every week (and that's before you count mirror distribution sites). The combined volumes of StarOffice and OpenOffice generate a user and developer community now accelerating well past a hundred million users - across developing economies, developing companies, and across Windows, Solaris, Linux and the Mac OS. As a software product and a brand (all end user software is ultimately both, after all), growing distribution drives opportunity and awareness for everyone involved - for the OpenOffice/StarOffice user and developer community, and as its shepherd on the network, for Sun.

Wherever OpenOffice and StarOffice travel, more users know and trust Sun - what's that brand or awareness worth, especially among tomorrow's decision makers? It's hard to know exactly, but I'd bet more people know Sun via OpenOffice than know us through datatcenters. That's an astonishing assertion, but with the internet now reaching billions of end users, the number of consumers on the internet dwarfs the number of IT professionals. The numbers are staggering.

But with that said, compared to the Java platform, office productivity is relatively esoteric stuff.

Because Java touches nearly everyone - everyone - who touches the internet. Hundreds of millions of users see Java, and its ubiquitous logo, every day. On PC's, mobile phones, game consoles - you name it, wherever the network travels, the odds are good Java's powering a portion of the experience.

What's that distribution and awareness worth to us? It's hard to say - brands, like employees, aren't expenses, they're investments. Measuring their value is more art than science. But there's no doubt in my mind more people know Java than Sun Microsystems. There's similarly no doubt they know Java more than nearly any other brand on the internet.

I know that sounds audacious, but wherever I travel in the world, I'm reminded of just how broad the opportunity has become, and how pervasively the technology and brand have been deployed. Java truly is everywhere.

Ask a teenager if they know Java, and they'll point to their favorite mobile applications, the video uploader for their social network, or their game console. As for working professionals, I had dinner with a financial analyst a few months ago who said he saw the Java launch experience "a few times a day" when accessing intranet applications - as did tens of thousands of his fellow employees. Daily. Global companies like Google and eBay (and Vodafone and Citigroup) are built on Java, every major PC manufacturer bundles Java upon shipment, as does every mobile phone manufacturer, and tens of millions of developers touch it every day in the world's IT shops. Students learn it to get college credits for computer science, and there are more Java courses on university campuses than we ever imagined. Wherever it goes, Java brings limitless opportunity - to Sun, and to our partners that develop, use or deploy it.

So what's that awareness worth? Ask the question a different way - if we wanted to buy that exposure, to touch tens if not hundreds of millions of consumers every single day of the year, across nearly every continent, industry, geography and demographic - what would it cost us? (If you're in the industry, just do the CPM calculus - the Java launch experience is one of the most pervasively viewed exposures on earth.)

As I said, the number of people who know Java swamps the number of people who know Sun. Or SUNW, the symbol under which Sun Microsystems, Inc. equity is traded on the NASDAQ stock exchange. SUNW certainly has some nostalgic value - it stands for "Stanford University Network Workstation," and heralds back to Sun's cherished roots (in academia). Granted, lots of folks on Wall Street know SUNW, given its status as among the most highly traded stocks in the world (the SUNW symbol shows up daily in the listings of most highly traded securities).

But SUNW represents the past, and its not without a nostalgic nod that we've decided to look ahead.

JAVA is a technology whose value is near infinite to the internet, and a brand that's inseparably a part of Sun (and our profitability). And so next week, we're going to embrace that reality by changing our trading symbol, from SUNW to JAVA. This is a big change for us, capitalizing on the extraordinary affinity our teams have invested to build, introducing Sun to new investors, developers and consumers. Most know Java, few know Sun - we can bring the two one step closer.

To be very clear, this isn't about changing the company name or focus - we are Sun, we are a systems company, and we will always be a derivative of the students that created us, Stanford University Network is here to stay. But we are no longer simply a workstation company, nor a company whose products can be limited by one category - and Java does a better job of capturing exactly that sentiment than any other four letter symbol. Java means limitless opportunity - for our software, systems, storage, service and microelectronics businesses. And for the open source communities we shepherd. What a perfect ticker.

And if you wondered why we picked eight strokes for the Java logo, now you know one reason...

Wednesday, August 29, 2007

August 29th, 2007

Sun’s Jonathan Schwartz: Consumers, not IT, driving markets

Posted by Dan Farber @ 12:41 pm Categories: IT Management, Datacenter, Sun, Enterprise 2.0 Tags: Phone, Information Technology, Java, Sun Microsystems Inc., Jonathan Schwartz, Dan Farber
icn_balloon_154x48

+0

0 votes
Worthwhile?

Sun is holding an Emerging Markets Summit on its Menlo Park, CA campus. CEO Jonathan Schwartz led off the event with this statement: “The Internet is the most powerful social utility the world has ever seen.”

The “social utility” phrase is part of Sun’s new view of the market, which Schwartz said will be defined by the consuming public rather than traditional IT decision makers.

“A gravitational shift in influence is underway, from enterprises to consumers,” he explained. “It is an epoch shift that we are trying to amplify and leverage in our business.” It’s also a shift to emerging markets, which over the next few decades will be larger than the existing established market

Sun’s goal is to provide the “technology utility” solutions to deliver the consuming public services across the Internet.

Schwartz gave an example of consumers driving markets in a financial institution in Africa that was growing banking accounts by passing out phones. The phone allows the value to be stored in the network, which helps bring more efficiency to markets, he said. The phone, and the Internet, is a utility to enable progress. “The Internet is a back channel for the marketplace,” Schwartz proclaimed.

schwartz11.jpg

The shift in populations from rural to technology-enabled, urban areas, and the number of cities of 10 million or more, is where Sun sees a source of the most significant business opportunity, Schwartz said. The majority of those cities are in emerging markets–Sao Paolo – 18M; Mumbai – 17M; Delhi – 14M; Calcutta – 14M; Rio de Janeiro 11M; Beijing – 11M; Moscow – 11M.

And factoid Schwartz offered is that the bottom 72 percent of the world’s population represents $5 trillion in spending power.

By 2050, BRICA (Brazil, Russia, India, China and Africa) countries will represent 44 percent of global GDP, according to Grant Thornton’s International Business Report 2007. BRIC countries will grow their IT spend in 2007: Brazil (12.5%), China (16%), Russia (18.7%) and India (21%) respectively (IDC Worldwide Black Book, V. Q2, July 2007).

Supporting the spending habits of the world’s population by providing computing infrastructure to the companies providing the products and services consumed is where Sun hopes to break out of the pack.

Sun is banking that whenever the consuming public opens a bank account, sends an email, create a business or makes a video, its products and services will providing the computing power.

“There are two sides to our business, like the carriers and Google,” Schwartz said. “Google gives search away for free and monetizes through advertisers. Our business is identical. Financial institutions give free checking and make money on services down the road. We define the technology, brand and standards to bring as many people on line in the most affordable way.”

Sun is also banking that its free and open source software strategy will accelerate its growth. “Market share gain in revenue will be a market share gain in adoption,” Schwartz said, citing Java, GlassFish and OpenSolaris as Trojan horses. “[Growth] doesn’t happen day you pick up the OS. It happens more over time. If look at comparison of adoption metrics, Red Hat or JBoss, it would be interesting,” noting that it took those open source companies several years to gain what could be considered market success.

The big question for Sun is when the company will show the kind of growth in revenue that it experienced in the first wave of the Internet? Sun won’t be alone in seeing the opportunity in emerging markets and the increasing dependence on technology as a way of life.

Schwartz said that Sun’s focus on free software and open source software, like OpenSolaris and Java, and free services, such as what Google and Yahoo offer, are most impactful in defining how consumers experience the world, and that the handset and mobile devices is how most people on the planet will experience the Internet.

Sun, which just changed its ticker symbol from SUNW to JAVA, touts the adoption of Java–more than 4 billion Java devices (1.2B+ Java powered phones, 2B+ Java Card objects, 800M PCs, 6M settop boxes)–as an example of its prowess.

With technologies like Java, Schwartz believes that Sun is in an advantageous position relative to competitors because of its shift to open source and focus on standards-based computing and innovation.

“It’s not a guarantee, since we offer free and open products, and we do a lot of what looks like non-economic activity to get more people to join the net.,” Schwartz said. But at some point they will drive the adoption of technology, he said, and Sun expects to intercept the its share of the insatiable demand.

Sun is building up its relationships with governments that favor open source. “When we have dialogs with governments, all of the sudden we are talking the same language. Governments have figured out that technology has become a social utility. You don’t want to be locked into proprietary technology and they want to have the next Google come out of their nations,” Schwartz said.

Schwartz is taking the long view at a time when speed and volume of growth are what get rewarded. “At the end of the day, we are attempting to focus in the next wave of developers, students, research and economic development so we can best position Sun for growth in next decade, not in next quarter or few weeks,” Schwartz said.

As long as Sun shareholders and board members are willing to be patient, Schwartz has the right vision of the future. Now he has to prove that Sun has the muscle to intercept the massive demand on the horizon.

Tuesday, July 31, 2007

MVC - What is behind ? The core of Design Pattern?

Một trong những Pattern gần nhất với MVC là Observer Pattern
xem qua VD sau:

import java.util.Observable;
import java.util.Observer;
import mylib.io.console.*;

public class Main {
public static void main(String[] args) {
DoituongDuocQuanSat obj =
new DoituongDuocQuanSat("Observable obj 1"); // Create observable obj

Observer[] nhomQuanSat = {
new Person("Observer 1",
"So 1 bao cao, obj 1 da hanh dong"),
new Person("Observer 2",
"So 2 bao cao, obj 1 da hanh dong"),
new Person("Observer 3",
"So 3 bao cao, obj 1 da hanh dong"),
new Person("Observer 4",
"So 4 bao cao, obj 1 da hanh dong"),
new Person("Observer 5",
"So 5 bao cao, obj 1 da hanh dong") };

// Add the observers
for (int i = 0; i <>
obj.addObserver(nhomQuanSat[i]);

obj.ThayDoiTrangThai(obj.getName()+ " hanh dong"); // obj 1 da hanh dong
//ngay lap tuc nhom quan sat se thong cao

Console.readString();
}
}

class DoituongDuocQuanSat extends Observable {
public DoituongDuocQuanSat(String s)
{
name = s;
}

public void ThayDoiTrangThai(String s) {
name = s;
setChanged();
notifyObservers();
}

public String getName() {
return name;
}

private String name = "Observable Object";
}

class Person implements Observer {
String name; // Person's identity

String says; // What they say when startled

// Constructor
public Person(String name, String says) {
this.name = name;
this.says = says;
}

// Called when observing an object that changes
public void update(Observable thing, Object o) {
System.out.println(((DoituongDuocQuanSat) thing).getName() + "\n"
+ name + ": " + says);
}
}

như sách đã nói Observer/Oservable là thuộc Observer Pattern. Nó giúp ta cập nhập trạng thái hiển thị của Component
ở đậy đối tượng được quan sát (Observable object) sẽ là dữ liệu của chương trình, nếu có bất kì thay đổi dữ liệu nào từ tác động của User thì tất cả đối tượng đóng vai trò quan sát (Observer obj) sẽ cập nhập trạng thái của mình.

thứ tự như sau:
sau khi khai báo xong.
Nếu
obj.ThayDoiTrangThai(obj.getName()+ " hanh dong"); được gọi thì
Observable obj sẽ
setChanged();

notifyObservers();

tất cả view (Observer) sẽ tự động gọi
public void update(Observable thing, Object o) {

System.out.println(((DoituongDuocQuanSat) thing).getName() + "\n"
+ name + ": " + says);
}


Trở lại câu hỏi

What Is the MVC Pattern?

The MVC pattern divides the application into three layers.

  • The model contains the core of the business logic. It maintains the application state and processes all application-specific data to determine state transitions.

  • The view presents the model to users. In GUI applications, the view typically consists of a set of display screens. It is the outbound interface of the application.

  • The controller links the view to the model. When the user manipulates the view, the controller passes the requests to the model and updates the view after the model responds. It is the inbound interface of the application.

Key benefits of the MVC pattern are as follows.

  • Since the layers are separate from each other, the application is componentized. Each component can be developed and maintained independently by specialists. For example, the view layer can be developed by UI designers, while the model layer can be developed by domain knowledge experts and data modelers. That allows us not only to allocate talent efficiently but also to parallelize the development work and hence shorten the time to market.

  • The compartmented layers are easy to test. Automated unit tests can be used extensively in the model layer to ensure functional correctness. User experience tests can be conducted against the view in usability labs before the model is ready (see Chapter 13 for more on the testing topics).

  • The execution flow in an MVC application is well defined. MVC code is easy to understand, since many developers are already familiar with the pattern. That improves the code maintainability and reduces the cost in the long run.

  • For applications that require several different user interfaces, we can develop several different views while reusing the same model and controller. As we see in Chapter 12, this simplifies our work to optimize the application for multiple devices within a developer platform series or migrate the application to other developer platform series with different UI requirements.

  • As the application gets more complex over time, it may be unavoidable for us to evolve the data model to accommodate the new needs. A separate model layer clearly indicates which classes we need to extend, and the changes are not propagated to other parts of the application. That again promotes code reuse in an object-oriented system.

Figure 2: The end-to-end MVC pattern
Hình phía trên mô tả kiến trúc (architecture) của Ruby 2.0 Multimedia Noting chạy trên Mobile + Web của tôi.
Như vậy có n View, 1 component Controller, 1 Model.
Đây chỉ là nguyên tắc chung, việc thực thi kiến trúc thật ở 1 project sẽ tùy vào app cụ thể.




Thursday, July 26, 2007

Tomcat - config web server problems

Eclipse J2EE vs Tomcat standalone services
Eclipse is a great tool, IDE and powerful stuff. Today I use it for my mobile App project. Some stress server config problems take me 2 hours. Nervously, we use utitlity server in Eclipse, not choice to stop service in Tomcat process, it says port already bind when run jsp page @ Eclipse.
netstat is useful tool in Windows to find out which port in use, but it don't a solution. Shortly, it can run Tomcat service and Eclipse server manager at the same time.
I have found something usefully when config Eclipse Calisto EE:
  • Help Support well, better than Google in some case.
  • Write JSP in Eclipse is cool, well-designed.
  • Preferences and right-clicked at right thing is all you need to config.
IIS vs Tomcat:
IIS service run at the same time with Tomcat service, the nightmare with me, localhost will only see IIS, and then you must goto Admin tool->services-> disable IIS service, restart Tomcat , then everything OK.

Wednesday, July 25, 2007

J2EE vs .NET

Hồi còn học năm 1, trong 1 lần đi nghe public siminar về .NET ở Open IT Club. Vì là "lính mới" trong ngành vì thế nghe chả hiểu gì cả. Lúc đó tui chỉ mới hoc môn Cơ sở lập trình (Basic Principles for Programming). Khái niệm platform là "cái quái gì", only ông lecturer hiểu và 1 số student năm cuối, + my teachers . Chỉ hiểu sơ là nó có thể viết bằng nhiều ngôn ngữ và có thể compile ra cùng 1 app.
Philosophies in Architecture are too abstract.

Khi lên năm 3, hè trước đó tôi đã tự train mình .NET tech, I chose VB.net. easy to learn. OO lúc đó chỉ hiểu qua C++.
Và tôi bắt đầu quen với Java từ first semester in third year. J2ME ở HK2 khi bắt đầu project về Mobile Apps và bây giờ lúc mọi người nghỉ hè, I continue attacking J2EE. Đó 1 câu chuyện dài.

Và tôi bắt đầu đặt câu hỏi: choose J2EE or .NET.
Thứ đầu tiên tôi làm là goggling with keywords: "J2EE vs .NET".

  • Từ góc nhìn là một nhà thiết kế
.NET vs. J2EE (Java EE) - Architectural Philosophy
J2EE vs. .NET - Framework Components Compared
.NET vs. J2EE - Development Environment
  • Khi bạn là 1 developer.
J2EE vs. .NET - a trench soldier's view

  • This guy, Edmon, the author maybe is a fan of Microsofts, ???, read below.
.NET vs. J2EE - Integration Technologies


J2EE vs. .NET - Support for Business Domain/Entity Objects
-->"One thing that I do not like in .NET is that it is far less concerned about the standardization of API when working with other vendor products.".
--> Philosophy of Microsoft ????, ---> Độc quyền

Từ góc độ là 1 student, I like J2EE vì tư duy nó là "do-it-youself" and free.
Từ góc nhìn 1 developer, tôi chỉ muốn làm việc càng ít năng suất càng cao, để dành time đi chơi với my friend.

Java vs .Net là 1 battle còn dài mới kết thúc.
Như những "bậc tiền bối" nói: "vô chiêu thắng hữu chiêu". Tất cả tùy vào bạn thôi. Công nghệ chỉ là giải pháp, như 1 đôi giày đá bóng, còn đá như thế nào là do kĩ năng chơi bóng của bạn thui.
Thanks for your reading.