Here is a fairly nice summary of recent PHP compilation technolgoies.
PHP compilers shootout
Saturday, March 20, 2010
Friday, February 26, 2010
Today's Paper: Multiple Dispatch Study
A paper in OOPSLA 2008, "Multiple Dispatch in Practice" has a very good introductory on multiple-dispatching, method implementation selection based on the runtime types of not only the first argument (this) but all the arguments.
In addition to an empirical study of the use of multiple dispatch in practice, the paper starts from a brief history and overview of multiple dispatch, which is brilliant.
- Muschevich, et al., Multiple Dispatch in Practice, OOPSLA 2008 [EE]
In addition to an empirical study of the use of multiple dispatch in practice, the paper starts from a brief history and overview of multiple dispatch, which is brilliant.
Tuesday, January 06, 2009
Today's Book: The Art of Multiprocessor Programming
The Art of Multiprocessor Programming is a new FIRST-READ book for concurrency study.
This book comprehensively presents the principles and tools available for programming multiprocessor machines. It is of immediate use to programmers working with the new architectures. The authors are the leaders in this research community. Sample programs are written in Java.
This book comprehensively presents the principles and tools available for programming multiprocessor machines. It is of immediate use to programmers working with the new architectures. The authors are the leaders in this research community. Sample programs are written in Java.
Wednesday, October 29, 2008
XHR Caching Test Catch-up
Tuesday, October 28, 2008
Today's Paper: MapJAX: Data Structure Abstractions for Ajax (USENIX 2007)
A model paper for discussing based on Ajax-like technologies. I have just found a PDF file of this paper in many icons on my desktop...
Title:
MapJAX: Data Structure Abstractions for Asynchronous Web Applications
Authors:
Daniel S. Myers, Jennifer N. Carlisle, James A. Cowling, and Barbara H. Liskov, MIT CSAIL
EE:
http://www.usenix.org/events/usenix07/tech/myers.html
Abstract:
The current approach to developing rich, interactive web applications relies on asynchronous RPCs (Remote Procedure Calls) to fetch new data to be displayed by the client. We argue that for the majority of web applications, this RPC-based model is not the correct abstraction: it forces programmers to use an awkward continuation-passing style of programming and to expend too much effort manually transferring data. We propose a new programming model, MapJAX, to remedy these problems. MapJAX provides the abstraction of data structures shared between the browser and the server, based on the familiar primitives of objects, locks, and threads. MapJAX also provides additional features (parallel for loops and prefetching) that help developers minimize response times in their applications. MapJAX thus allows developers to focus on what they do best-writing compelling applications-rather than worrying about systems issues of data transfer and callback management.
We describe the design and implementation of the MapJAX framework and show its use in three prototypical web applications: a mapping application, an email client, and a search-autocomplete application. We evaluate the performance of these applications under realistic Internet latency and bandwidth constraints and find that the unoptimized MapJAX versions perform comparably to the standard AJAX versions, while MapJAX performance optimizations can dramatically improve performance, by close to a factor of 2 relative to non-MapJAX code in some cases.
Title:
MapJAX: Data Structure Abstractions for Asynchronous Web Applications
Authors:
Daniel S. Myers, Jennifer N. Carlisle, James A. Cowling, and Barbara H. Liskov, MIT CSAIL
EE:
http://www.usenix.org/events/usenix07/tech/myers.html
Abstract:
The current approach to developing rich, interactive web applications relies on asynchronous RPCs (Remote Procedure Calls) to fetch new data to be displayed by the client. We argue that for the majority of web applications, this RPC-based model is not the correct abstraction: it forces programmers to use an awkward continuation-passing style of programming and to expend too much effort manually transferring data. We propose a new programming model, MapJAX, to remedy these problems. MapJAX provides the abstraction of data structures shared between the browser and the server, based on the familiar primitives of objects, locks, and threads. MapJAX also provides additional features (parallel for loops and prefetching) that help developers minimize response times in their applications. MapJAX thus allows developers to focus on what they do best-writing compelling applications-rather than worrying about systems issues of data transfer and callback management.
We describe the design and implementation of the MapJAX framework and show its use in three prototypical web applications: a mapping application, an email client, and a search-autocomplete application. We evaluate the performance of these applications under realistic Internet latency and bandwidth constraints and find that the unoptimized MapJAX versions perform comparably to the standard AJAX versions, while MapJAX performance optimizations can dramatically improve performance, by close to a factor of 2 relative to non-MapJAX code in some cases.
Monday, October 13, 2008
Today's Person: Mr. Software Rejuvenation Never Aging
Software rejuvenation is a proactive fault management technique for preventing the occurrence of severe crash failures in the future by cleaning up the state of a system. As bug-zero software is almost impossible, it is a practical solution to provide a robust system.
Prof. Kishor Trivedi and his group has contributed a lot to this area. Their webpage presents very useful information for studying the cutting-edge of this research, including Prof. Trivedi's keynote speeches, many conference/journal papers, and whitepapers.
Friday, September 12, 2008
The Best Introduction to InvokeDynamic (JSR 292)
Charles Nutter, the JRuby development lead, posted an extensive introductory article on the road towards JSR 292 Supporting Dynamically Typed Languages on the Java Platform (a.k.a. invokedynamic). According to his experience with prototyping of JRoby using InvokeDynamic, he has explained how we can leverage the coming feature of JVM. He also mentions things that are not covered in the current draft of the specification (EDR), such as AnonymousClassLoader, which are critical to support dynamic languages on top of the Java platform.
Charles Nutter, First taste of InvokeDynamic:
Subscribe to:
Posts (Atom)

