Softtalk : Multicore and Paralell Programming
Excerpted from http://softtalkblog.wordpress.com/2009/09/29/more-about-haskell-and-intel-concurrent-collections/:
First, a few words about Concurrent Collections for C++, which is available for download now. It provides a way to build C++ programs that will execute in parallel, by just focusing on the high-level computation steps, inputs and outputs. The key benefit is that it means domain experts can create parallel programs without having to become experts in parallel programming. The tool can be used to create a single source that can be used with run-times targeted for different parallel architectures, and the programming model supports all styles of parallelism without any need for rewriting or recompiling.
At IDF, Intel announced Linux support for Concurrent Collections, and it was already available for Windows. There was, as I said, also mention of an implementation for Haskell. I’ve been in touch with Ryan Newton, the man at Intel responsible for it, and he says: “I’ve been working on Concurrent Collections (CnC) for Haskell as an experimental side project. The basic idea is that CnC is a system that (1) computes a pure function in parallel for each complete invocation (heterogeneous set of collections -> heterogeneous set of collections); and (2) requires that the individual kernels (“steps”) be pure functions. You can only leverage (1) and enforce (2) in Haskell, so it’s a natural fit. One of the goals was to learn what interesting scheduling ideas exist (e.g. idempotent work stealing) or might exist in the pure domain.”
Sunday, November 29, 2009
The Untold Story: How the iPhone Blew Up the Wireless Industry (iPhone 개발 뒷 얘기)
The Untold Story: How the iPhone Blew Up the Wireless Industry
http://www.wired.com/gadgets/wireless/magazine/16-02/ff_iphone?currentPage=all
[Korean Translation]
http://monsterdesign.tistory.com/578
http://www.wired.com/gadgets/wireless/magazine/16-02/ff_iphone?currentPage=all
[Korean Translation]
http://monsterdesign.tistory.com/578
Zero Ink Images
What is ZINK™?
ZINK™ stands for Zero Ink™ - an amazing new way to print in full color without the need for ink cartridges or ribbons. The ZINK Technology encompasses both the ZINK Paper™ and the intelligence embedded in every ZINK-enabled device. The technology enables a new category of color printing devices and paper that work as a system to print in a whole new way.
ZINK Technology is based on advances in chemistry, engineering, physics, image science, and manufacturing. ZINK was developed over several years and has generated an IP portfolio that includes over 100 patents and patents pending. And development of the next generation of ZINK continues in our labs daily.
ZINK Technology is fully developed and market ready. Our partners' ZINK-enabled products are available now. ZINK is changing the way the world thinks about printing.
How ZINK™ Works
At the heart of the ZINK Technology is the patented ZINK Paper, an advanced composite material with cyan, yellow, and magenta dye crystals embedded inside, and a protective polymer overcoat layer outside. The crystals are colorless before printing, so ZINK Paper looks like regular white photo paper. Heat from a ZINK-enabled device activates the crystals, forming all the colors of the rainbow. The printing process is now radically simple. Just add ZINK Paper™.
http://www.zink.com/
ZINK™ stands for Zero Ink™ - an amazing new way to print in full color without the need for ink cartridges or ribbons. The ZINK Technology encompasses both the ZINK Paper™ and the intelligence embedded in every ZINK-enabled device. The technology enables a new category of color printing devices and paper that work as a system to print in a whole new way.
ZINK Technology is based on advances in chemistry, engineering, physics, image science, and manufacturing. ZINK was developed over several years and has generated an IP portfolio that includes over 100 patents and patents pending. And development of the next generation of ZINK continues in our labs daily.
ZINK Technology is fully developed and market ready. Our partners' ZINK-enabled products are available now. ZINK is changing the way the world thinks about printing.
How ZINK™ Works
At the heart of the ZINK Technology is the patented ZINK Paper, an advanced composite material with cyan, yellow, and magenta dye crystals embedded inside, and a protective polymer overcoat layer outside. The crystals are colorless before printing, so ZINK Paper looks like regular white photo paper. Heat from a ZINK-enabled device activates the crystals, forming all the colors of the rainbow. The printing process is now radically simple. Just add ZINK Paper™.
http://www.zink.com/
Saturday, November 28, 2009
Skype Developer Zone
Skype Developer Zone is the web home for everything on how to integrate Skype services and to create software for the Skype community. Developer Zone contains tons of documentation and tutorials, downloads and other related materials.
http://developer.skype.com
http://developer.skype.com
Thursday, November 26, 2009
hessian binary web service protocol
Hessian binary web service protocol
The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary protocol, it is well-suited to sending binary data without any need to extend the protocol with attachments.
http://hessian.caucho.com/
The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary protocol, it is well-suited to sending binary data without any need to extend the protocol with attachments.
http://hessian.caucho.com/
Monday, November 23, 2009
Saturday, November 21, 2009
Wednesday, November 18, 2009
BIONETS self-evolution capable services by Nokia until 2015
Nokia’s vision of 2015? Nokia is already working on BIONETS self-evolution capable services to make it happen
When I was watching Nokia’s “The way we live next” vision of 2015 video, they key theme – the ability of Nokia services and devices to self adapt to user, needs based on usage patterns – sounded somewhat familiar.
I checked my notes, and yes, indeed – it was a familiar topic. The visions of 2015 was not just a promotional video of cool things that will somehow come about in 6 years.
It is actually a visualization of the stuff Nokia research labs, and some of it’s partners, are working hard to bring about. They have been doing it from 2006, at least. And have the patent apps to prove that.
One of them, called “BIONETS architecture for building services capable of self-evolution” became public recently .
It describes:
“… the development of one or more flexible architectures that can support service creation/development and provisioning in addition to self-evolution. Therefore, various embodiments allow for continued self learning, customization and adjustment of BIONETS services to the needs and expectations of users in accordance with characteristics such as those exhibited by biological organisms, for example, the ability to continuously adopt itself to an ever-changing environment “
The basic idea behind BIONETS architecture, is to split the actual services into a small components called “service primitives”. Those service primitives are combined into an actual service by “Expert/Decision making manager” module. Mobile devices have a BIONETS enabled client software which tracks service usage by individual users.
The tracking includes the steps user made to access the service, activities he performed just prior to it, the duration it took to perform the operations, whether the action was completed, etc;. Aggregating this data from a big number number of devices, the Expert/Decision making module can derive optimal service usage patterns and underperforming service primitives. Then it can automatically reconfigure the service primitives used to provide the actual service to fit user needs better. Or even create new services from observing the people use their devices, without intervention of the service provider.
One simple example of such a service could be a stock ticker application:
“User may utilize a “stock ticker” service that provides the user with periodic or constant updates which inform the user of a particular stock’s value at a given time. The stock ticker service may evolve by monitoring the user’s interaction with the stock ticker service. For example, it may be noticed that the user oftentimes will execute a calculator application in parallel with the stock ticker service and utilize that calculator to multiply stock values by a certain number (e.g., the number of stocks held by the user). After observing this behavior of executing the calculator application in parallel with the stock ticker service a pre-determined number of times, the stock ticker service can undergo self-evolution by deciding to improve the services it provides by embedding calculator functionality and a corresponding UI in its stock ticker service. Moreover, the stock ticker service may by default, automatically multiply a given stock’s value by the earlier observed value representing the number of stocks held by the user, thus preempting the need for the user to manually perform the multiplication operation herself.”
That’s just one, and relatively simple application. Combining self-evolution capable services with a widely spread passive and active sensors, and millions of exceedingly capable mobile devices, might lead us to that future of those “truly unique user experiences, from highly local traffic reports, to global weather trends..” Nokia was talking about in 2015 video.
But that’s for 2015.
For 2010 I’ll settle for a real improvement of OVI services, so all of them are well integrated, work seamlessly and intuitively on my next Nokia device.
The BIONETS architecture is a part of a bigger 6.9 million EUR BIONETS research project financed by European Comission Framework program, that has been running since 2006. It involves multiple partners, including Nokia, Sun Microsystems, Telecom Italia and a number of European research institutes and Universities.
When I was watching Nokia’s “The way we live next” vision of 2015 video, they key theme – the ability of Nokia services and devices to self adapt to user, needs based on usage patterns – sounded somewhat familiar.
I checked my notes, and yes, indeed – it was a familiar topic. The visions of 2015 was not just a promotional video of cool things that will somehow come about in 6 years.
It is actually a visualization of the stuff Nokia research labs, and some of it’s partners, are working hard to bring about. They have been doing it from 2006, at least. And have the patent apps to prove that.
One of them, called “BIONETS architecture for building services capable of self-evolution” became public recently .
It describes:
“… the development of one or more flexible architectures that can support service creation/development and provisioning in addition to self-evolution. Therefore, various embodiments allow for continued self learning, customization and adjustment of BIONETS services to the needs and expectations of users in accordance with characteristics such as those exhibited by biological organisms, for example, the ability to continuously adopt itself to an ever-changing environment “
The basic idea behind BIONETS architecture, is to split the actual services into a small components called “service primitives”. Those service primitives are combined into an actual service by “Expert/Decision making manager” module. Mobile devices have a BIONETS enabled client software which tracks service usage by individual users.
The tracking includes the steps user made to access the service, activities he performed just prior to it, the duration it took to perform the operations, whether the action was completed, etc;. Aggregating this data from a big number number of devices, the Expert/Decision making module can derive optimal service usage patterns and underperforming service primitives. Then it can automatically reconfigure the service primitives used to provide the actual service to fit user needs better. Or even create new services from observing the people use their devices, without intervention of the service provider.
One simple example of such a service could be a stock ticker application:
“User may utilize a “stock ticker” service that provides the user with periodic or constant updates which inform the user of a particular stock’s value at a given time. The stock ticker service may evolve by monitoring the user’s interaction with the stock ticker service. For example, it may be noticed that the user oftentimes will execute a calculator application in parallel with the stock ticker service and utilize that calculator to multiply stock values by a certain number (e.g., the number of stocks held by the user). After observing this behavior of executing the calculator application in parallel with the stock ticker service a pre-determined number of times, the stock ticker service can undergo self-evolution by deciding to improve the services it provides by embedding calculator functionality and a corresponding UI in its stock ticker service. Moreover, the stock ticker service may by default, automatically multiply a given stock’s value by the earlier observed value representing the number of stocks held by the user, thus preempting the need for the user to manually perform the multiplication operation herself.”
That’s just one, and relatively simple application. Combining self-evolution capable services with a widely spread passive and active sensors, and millions of exceedingly capable mobile devices, might lead us to that future of those “truly unique user experiences, from highly local traffic reports, to global weather trends..” Nokia was talking about in 2015 video.
But that’s for 2015.
For 2010 I’ll settle for a real improvement of OVI services, so all of them are well integrated, work seamlessly and intuitively on my next Nokia device.
The BIONETS architecture is a part of a bigger 6.9 million EUR BIONETS research project financed by European Comission Framework program, that has been running since 2006. It involves multiple partners, including Nokia, Sun Microsystems, Telecom Italia and a number of European research institutes and Universities.
Monday, November 16, 2009
Monday, November 09, 2009
Application Launcher Design
* Android's Activity and Intent
* Sun Java's JSR211 JavaMe Content Handler API
* Sun Java's JSR211 JavaMe Content Handler API
LLVM
Low-Level Virtual Machine
The Low Level Virtual Machine (LLVM) is a compiler infrastructure, written in C++, which is designed for compile-time, link-time, run-time, and "idle-time" optimization of programs written in arbitrary programming languages. LLVM was originally developed as a research infrastructure at the University of Illinois at Urbana-Champaign to investigate dynamic compilation techniques for static and dynamic programming languages. Originally implemented for C/C++, the language-independent design (and the success) of LLVM has since spawned a wide variety of front-ends, including Objective C, Fortran, Ada, Java bytecode, Python, Ruby, ActionScript, GLSL, and others.
Saturday, November 07, 2009
X10 programming language
http://x10-lang.org/
X10 is a new programming language being developed at IBM Research in collaboration with academic partners. The X10 effort is part of the IBM PERCS project (Productive Easy-to-use Reliable Computer Systems) in the DARPA program on High Productivity Computer Systems. The PERCS project is focused on a hardware-software co-design methodology to integrate advances in chip technology, architecture, operating systems, compilers, programming language and programming tools to deliver new adaptable, scalable systems that will provide an order-of-magnitude improvement in development productivity for parallel applications by 2010.
X10 contributes to this productivity improvement by developing a new programming model, combined with a new set of tools integrated into Eclipse and new implementation techniques for delivering optimized scalable parallelism. X10 is a type-safe, modern, parallel, distributed object-oriented language intended to be very easily accessible to Java(TM) programmers. It is targeted to future low-end and high-end systems with nodes that are built out of multi-core SMP chips with non-uniform memory hierarchies, and interconnected in scalable cluster configurations. A member of the Partitioned Global Address Space (PGAS) family of languages, X10 highlights the explicit reification of locality in the form of places; lightweight activities embodied in async, future, foreach, and ateach constructs; constructs for termination detection (finish) and phased computation (clocks); the use of lock-free synchronization (atomic blocks); and the manipulation of global arrays and data structures.
An Eclipse-based Integrated Development Environment (IDE) has been developed at IBM for X10 to help further increase programmer productivity by providing state-of-the-art functionality for viewing, editing, navigating, executing, and manipulating X10 programs. The X10 Development Toolkit (X10DT) is intended to be a full-featured IDE for X10 offering the features Java programmers have come to love and depend upon in Eclipse: a source editor with various coding assists, lightweight information pop-ups, high-level and low-level navigation views, powerful search capabilities, application launch configuration management, refactoring, and debugging support. In addition, the X10DT will include tools, views and refactorings that specifically address the development of highly concurrent software in X10.
X10 is a new programming language being developed at IBM Research in collaboration with academic partners. The X10 effort is part of the IBM PERCS project (Productive Easy-to-use Reliable Computer Systems) in the DARPA program on High Productivity Computer Systems. The PERCS project is focused on a hardware-software co-design methodology to integrate advances in chip technology, architecture, operating systems, compilers, programming language and programming tools to deliver new adaptable, scalable systems that will provide an order-of-magnitude improvement in development productivity for parallel applications by 2010.
X10 contributes to this productivity improvement by developing a new programming model, combined with a new set of tools integrated into Eclipse and new implementation techniques for delivering optimized scalable parallelism. X10 is a type-safe, modern, parallel, distributed object-oriented language intended to be very easily accessible to Java(TM) programmers. It is targeted to future low-end and high-end systems with nodes that are built out of multi-core SMP chips with non-uniform memory hierarchies, and interconnected in scalable cluster configurations. A member of the Partitioned Global Address Space (PGAS) family of languages, X10 highlights the explicit reification of locality in the form of places; lightweight activities embodied in async, future, foreach, and ateach constructs; constructs for termination detection (finish) and phased computation (clocks); the use of lock-free synchronization (atomic blocks); and the manipulation of global arrays and data structures.
An Eclipse-based Integrated Development Environment (IDE) has been developed at IBM for X10 to help further increase programmer productivity by providing state-of-the-art functionality for viewing, editing, navigating, executing, and manipulating X10 programs. The X10 Development Toolkit (X10DT) is intended to be a full-featured IDE for X10 offering the features Java programmers have come to love and depend upon in Eclipse: a source editor with various coding assists, lightweight information pop-ups, high-level and low-level navigation views, powerful search capabilities, application launch configuration management, refactoring, and debugging support. In addition, the X10DT will include tools, views and refactorings that specifically address the development of highly concurrent software in X10.
Subscribe to:
Posts (Atom)