Welcome to MSDN Blogs Sign in | Join | Help

Web Sandbox available under the Apache License

Earlier today we announced releasing the runtime code of the Web Sandbox available under the Open Source Apache License 2.0. The announcement has already been picked up by the blogosphere. Should you head over to the site check out the Web Slices samples we added with this release: weather and traffic.
Posted by Dragos Manolescu | 0 Comments
Filed under: , ,

Live Labs Thumbtack and Seadragon Mobile

By now this is already old news, but here it goes. Last week Live Labs released two cool projects:

Happy Holidays from all of us in Live Labs!

Posted by Dragos Manolescu | 0 Comments
Filed under:

Web Sandbox in Azure Color

Earlier today we rolled out an updated version of Live Labs Web Sandbox CTP, a technology for securing Web 2.0 through virtualization. This update incorporates new features on several fronts (more on that elsewhere). In this post I'd like to call out a new option for hosting the transformation component: the cloud, or more precisely the Azure Services Platform CTP. From the online documentation:

We insert the intercepting layer through a code transformation. By default this transformation executes server side, on our servers. Two additional options are available. If Silverlight is installed the transformation could execute client-side, thus saving the round-trip to the server. The transformation could also execute in the cloud, on the Azure Services Platform Community Technology Preview. (Note that the Azure transformation is enabled only when the gadget code is specified via a URL.)

The three options use the same codebase. The platform helped us extend the implementation, initially targeted at our server, to first cover the browser, and then to cover the cloud. Consequently, regardless of where it is hosted, the transformation should have the same result. You can choose which approach to use via the appropriate checkbox on the Sandbox experimentation pages.

Incidentally earlier today I also noticed that Web Sandbox (along with two other Live Labs projects I worked on) is now on the Windows Live Wikipedia page, in the Microsoft Live Labs section.

Posted by Dragos Manolescu | 1 Comments
Filed under: , ,

Live Labs Web Sandbox

Earlier today we launched a technology preview for Web Sandbox, a project aimed at securing Web 2.0. The Sandbox applies techniques from programming languages to inject an interception layer that in effect virtualizes the execution of untrusted code in the browser. Among other interesting things the interception layer also gives us an opportunity to normalize the DOM API exposed to developers. Take it for a spin in your favorite browser--4 popular browsers shown below--and come the session Live Labs Web Sandbox: Securing Mash-ups, Site Extensibility, and Gadgets that Scott Isaacs and myself will run next week at PDC2008.

image

Posted by Dragos Manolescu | 1 Comments
Filed under: , ,

Political Streams Online

A project I've been involved with for the first part of the year is now live, just in time for the election season. My fingerprints are on the underlying platform called Social Streams. One of my favorite features is the ability to navigate across several dimensions. Here's an example showing people related to Tracy Chapman--a mashup of media from various sources and content from Freebase:

image 

Take it out for a spin to check out your favorite candidate.

Building Distributed Applications with Recompilers

My article Volta: Developing Distributed Applications by Recompiling (co-authored with Brian Beckman and Benjamin Livshits) is now available in the Software Development Tools issue of IEEE Software (September/October 2008).

Here's the abstract:

Mainstream languages and tools are tailored for sequential, non-distributed applications, with support for distributed computing provided only in library APIs. Such programming environments force developers to make decisions about "where-code-runs" early in the application lifecycle, structuring the entire application around partitioning decisions. Performance measurement may reveal that the original partitioning was wrong, but redistributing the application is expensive because redistributing is restructuring. We built a new kind of tool suite that recompiles executables into distributed form based on declarative user annotations, inserting most of the necessary remoting and synchronization boilerplate code, and facilitating post-hoc instrumentation to drive quantitative redistribution. Since the tools operate on the intermediate language CIL, they are compatible with a wide variety of .NET programming languages and eventual execution environments, even those that do not support .NET CIL directly, such as JavaScript.

Enjoy!

Pattern Languages for Web Programming

My colleague J.D. Meier asked for an example of what I consider to be a good pattern language. I could have recommended one of the languages that are by now classics in the patterns community. However instead of doing that I'd like to refer to examples from two books that serious web developers should have on their bookshelf.

The first book is Michael Mahemoff's Ajax Design Patterns. The title makes it very clear that this is a patterns book. I regard Parts 2 through 5 as stand-alone pattern languages aimed individual topics such as technologies, performance, maintainability, usability, and so on. The patterns lead from one to the other, and you could tackle each pattern language separately, depending on what you're interested in. In addition, like any other good pattern language, the examples show beyond reasonable doubt that the patterns are indeed proven solutions. Michael has done a great job of sharing his insights from dissecting some of the most popular web sites.

The second book is Steve Souder's High Performance Web Sites. While on the surface this is not a patterns book, the 14 techniques for improving the frontend's performance make up a neat little pattern language. Each Rule describes a problem and provides a solution; there are positive and negative consequences; there are also real-world examples as well as online samples; finally, there's a clear flow from one Rule to the other, such as lowering response times by eliminating unnecessary HTTP requests and lowering the payload brought from the server to the browser. Steve also shares his insights surveying top web sites from a performance perspective. If more web developers would have read his book some of these sites could be 25-50% faster!

If you're seeking pattern language samples you may want to consider these two sources. Besides seeing some great collections of structured patterns chances are that you'll also become a better web developer.

Web 2.0 Patterns Wiki

Last week a group comprising Felix Nyffenegger, Judith Bishop, Duane Nickull, Marco Brambilla, Marco Egli, Michael Mahemoff, Patrice Pelland, Petri Selonen, Steve Burns, Wolf Logan, and Wei Wei joined me and Joe Yoder at the Web 2.0 pattern mining workshop at ETH Zuerich.

ETH

Several clusters emerged around the workshop's presentations. For example, Patrice and Wolf's coverage of gadgets and gadget platforms pushed our exploration to the UI/glass. Some of the common traits include:

  • Provide an open platform
  • Support several technologies (JavaScript, Silverlight, Flash)
  • Package applications as gadgets
  • Extend instrumentation to include the client
  • Provider feeds raw content, users create personalized mashups

workshop-1

Also on the first day Duane and Steve's coverage of cloud-hosted services brought forth the following:

  • Execution context awareness
  • Scale services up and down
    • Add more capacity quickly, only when you need it
    • Remove capacity when you no longer need it
  • Leverage analytics-increase awareness of server utilization
  • Abstract out the hardware
    • Push into the cloud
    • Leverage virtualization

On the second day Michael's focus on gadgets and OpenSocial directed us to paleosocial patterns, while Felix and Marco's coverage of Web 2.0 site navigation put on the table vizualizations (e.g., debategraph.com, tafiti.com), presentation shifting (e.g., piclens.com, Photosynth), and others.

 workshop-2

During the workshop we also designed a web-based video player that surfaced many of the solutions we looked into. Besides reminding us what it's like to use a real blackboard this exercise helped cluster some of the emerging themes:

workshop-design-1 

  • Key-value store: Amazon Dynamo/S3, BigTable (Google)
  • Streaming: Hulu, YouTube streaming (not Flash)
  • Client time synchro service: NTP, MMORPG
  • Social network integration services: Oauth, OpenID/Passport
  • Mash-up engine: PopFly, Yahoo! pipes
  • Monetization (social cash -> $, analytics, instrumentation): AdSense, witkey.com, SiteMeter, Elance
  • Video: Vime, Nicovideo.jp, Jaman.com
  • Mood: Musicovery, Yahoo! IM, Nabaztag.com
  • Friend states: Twitter
  • IM: Facebook/MySpace, Twitter, Shoutbox
  • Recommendations: Tuneglue, Netflix, Facebook

workshop-design-2

We are planning on fleshing out some of the emerging patterns as a a distributed, collaborative endeavor. We have a wiki site to provide the locus of collaboration for this work. For the moment only the folks who attended the workshop could add and change the content. I expect that to change as the content shapes up so stay tuned.

Posted by Dragos Manolescu | 0 Comments
Filed under: ,

Web 2.0 Pattern Mining Workshop

Monday June 30 we're kicking off the Web 2.0 Pattern Mining Workshop at the TOOLS Europe conference, in Zurich, Switzerland. The submitted proposals focus on gadgets/widgets, gadget platforms, site navigation, and services. So far the confirmed participants include (some of the) people behind:

The workshop spans over 2 days and includes presentations, brainstorming, and pattern mining sessions, as well as 2 related keynotes:

Day Time Event
Monday, June 30 11:00-11:30 1. Introductions
2. Gadget Platforms: Patrice Pelland and Wolf Logan
3. Services in Web 2.0: Steven Burns and Duane Nickull
13:00-14:30 Lunch break
14:30-15:30 Keynote: Michael Mahemoff
15:30-16:00 Brainstorming
16:00-16:30 Coffee break
16:30-18:00 Patterning mining 1
Tuesday, July 1 11:00-13:00 1. Summary of results from Day 1
2. Gadgets: Michael Mahemoff
3. Web 2.0 Navigation: Fleix Nyffenegger and Marco Egli
13:00-14:30 Lunch break
14:30-15:30 Keynote: Erik Meijer
15:30-16:00 Brainstorming
16:00-16:30 Coffee break
16:30-18:00 Patterning mining 2 and closing

Anybody is welcome to participate, even if they haven't submitted proposals. We expect those folks to:

  • Read the submissions (links in the workshop's page)
  • Select 3-5 Web 2.0 sites relevant to the workshop's topics
  • Post to the TOOLS social networking site a brief explanation about why they selected these sites

See you there!

Posted by Dragos Manolescu | 0 Comments
Filed under: ,

Volta Job Opportunities

We have two job opportunities in the Volta team:

For more information please contact Erik Meijer.

Web 2.0 Patterns

During the last decade software patterns emerged as one of the most successful forms of reuse. The Gang of Four 23 Design Patterns, the POSA Architecture Patterns, Fowler's Enterprise Application Patterns, or the xUnit Test Patterns (to name just a few) changed in a fundamental way the way we craft software.

If you are involved with applications that employ:

  • Folksonomies
  • Microformats
  • REST, XML, or JSON-based APIs
  • AJAX and RIAs
  • Syndication and aggregation (RSS, Atom)
  • Mashups
  • Blogs, wikis, social media, or other types of user-generated content

and are interested in patterns covering these topics then join us at the Web 2.0 Pattern Mining Workshop at the TOOLS-Europe 2008 conference, the 46th International Conference on Objects, Models, Components and Patterns. Participation in the workshop is open to anybody who could contribute to Web 2.0 patterns. See the call for participation online and drop me a line if you have questions.

Posted by Dragos Manolescu | 1 Comments
Filed under: ,

PLoP 2008 Call for Papers

*********************************************************************
                        CALL FOR SUBMISSIONS

    15th Conference on Pattern Languages of Programs (PLoP 2008)

      October 18-20, 2008 - co-located with OOPSLA 2008
                   Nashville, Tennessee, USA

                 http://hillside.net/plop/2008/

              Papers Submission deadline is May 2nd

*********************************************************************

ABOUT PLoP

Pattern Languages of Programs (PLoP(tm)) conference is a premier event for pattern authors and pattern enthusiasts to gather, discuss and learn more about patterns and software development.

The conference program offers pattern authors an unique opportunity to have their pattern languages reviewed by fellow authors, which occurs mainly in the form of Writers' Workshops.

Authors and non-authors will find in the different PLoP activities (Writers' Workshops, Focus Groups, BoF sessions, BootCamp, Games) many opportunities to learn more about patterns and pattern writing.

As a whole, the conference provides a friendly and effective environment to give and get feedback, to share expertise, and to allow the participants to improve their patterns and make them more useful and more publishable.

At the Hillside Group web site you can learn more about patterns, writing patterns, PLoP conferences, previous PLoP's, and more.
http://hillside.net/

PLoP's are unique conferences based on a strong community, a community of trust.

Join the community! Come to PLoP!

IMPORTANT DATES

May 2: Paper submissions due
May 19: Shepherding begins
July 4: Shepherd recommendations due
July 21: Notification of acceptance
Sep 26: Conference Drafts due
Oct 17: Pre-PLoP Bootcamp
Oct 18: First Day of PLoP

SUBMISSIONS

The purpose of PLoP is to promote development of pattern languages on all aspects of software, including design and programming, software architecture, user interface design, domain modeling, and software process.

Patterns related with aspects, AOP, and domain-specific patterns are especially encouraged this year.

*Paper* submissions may include short papers, containing one or more patterns, longer pattern languages or sequences, or work-in-progress papers willing to get an in-depth shepherding by an experienced pattern author at the conference.

Papers are sought on topics related to patterns and pattern languages,
including:
* Patterns and pattern languages
* Critiques of patterns and pattern languages
* Research on patterns and pattern languages
* Case studies of the use of patterns and pattern languages

Papers will be peer-reviewed to be accepted for the shepherding process.
During shepherding, authors will have assigned a shepherd that will help the author to improve the content and style of the paper. At the end of the shepherding process, papers will be reviewed again to be accepted into the writer's workshops of the conference. Authors will receive early feedback within two weeks of submission, and a final result at the end of July.

PLoP is run in the "writers' workshop" style. As no more than 15 pages can be properly covered in a session, the normal size of papers is 15 pages or less. Short papers are encouraged! Longer papers are possible, especially for pattern languages, but authors of long papers will have to work with the workshop leader to select a portion of the paper to be covered in the workshop. Authors of books-in-progress who would like to have their work reviewed at PLoP should contact the chairs.

*Focus groups* are free-format discussion groups or workshops aimed at bringing together people interested in a hot topic related to patterns or proven practices, for a period of about two hours.

These sessions might focus on very different topics and issues related to patterns, ranging from writing to using, organising, or adopting patterns. Focus group proposals should include a brief description of the topic to be addressed, objectives, format, conditions for participation (e.g. invitation, submission, free, etc), and a schedule outline. Proposals addressing interdisciplinary topics and topics from other domains than software development are especially encouraged.
Non-conventional formats are welcome.

Focus group proposals are reviewed by the program committee. Focus group leaders are expected to write a report to be part of the final conference proceedings.

HOW TO SUBMIT

All submissions must be done by *May 2* using the online submission system.

PROCEEDINGS

The conference version of the papers will be publicly available, individually, by writers' workshop, and into the preliminary conference proceedings.

Being feedback and improvement the focus of the writers' workshops, papers are not considered final once they have been workshopped. Authors incorporate the feedback they receive at the writers' workshop into their papers before the papers go into the final proceedings to be produced after the conference, which will be made available on the website.

ORGANIZATION

    * Conference Chair: Joseph Yoder (The Refactory Inc., USA)
    * Program Chair: Ademar Aguiar (FEUP & INESC Porto, Universidade do Porto, Portugal)
    * Publicity & BootCamp: Linda Rising (Independent Consultant, USA), Bob Hanmer (Alcatel-Lucent, USA)

Program Committee

    * Ademar Aguiar (INESC Porto/University of Porto, Portugal)
    * Joseph Yoder (The Refactory Inc., USA)
    * Linda Rising (Independent Consultant, USA)
    * Richard P. Gabriel (IBM Research, USA)
    * Bob Hanmer (Alcatel-Lucent, USA)
    * Uwe Zdun (Vienna Technical University, Austria)
    * Paulo Borba (Federal University of Pernambuco, Brazil)
    * Eduardo Fernandez (Florida Atlantic University, USA)
    * Rosana Teresinha Vaccare Braga (ICMC, University of São Paulo, Brazil)
    * Hironori Washizaki (National Institute of Informatics, Japan)
    * Peter Sommerlad (Institut für Software, Switzerland)
    * Jason Yip (ThoughtWorks, Australia)
    * Klaus Marquardt (Dräger Medical, Germany)
    * Juha Pärssinen (VTT, Technical Research Centre of Finland, Finland)
    * Pavel Hruby (CSC, Denmark)
    * Lise Hvatum (Schlumberger, USA)
    * Ralph Johnson (University of Illinois at Urbana-Champaign, USA)
    * Sérgio Soares (University of Pernambuco, Brazil)
    * Nobukazu Yoshioka (National Institute of Informatics, Japan)
    * António Rito Silva (INESC-ID/Technical University of Lisbon, Portugal)
    * Michael Jackson (Independent Consultant, UK)

MORE INFORMATION

For more detailed information, please visit the PLoP'08 website.
http://hillside.net/plop/2008/

--
PLoP is a registered trademark of The Hillside Group, Inc.
--

ICWSM 2008

One of the things that surprised me at OOPSLA 2007 was the amount of traction that social media is getting. The crowd attending the 2007 WikiSym was larger than other co-located events that I remember from past OOPSLAs. Consequently I decided (with encouragement from my colleague Matt Hurst) to attend the International Conference on Weblogs and Social Media 2008. I'm looking forward to it; drop me a line if you're also going.

Posted by Dragos Manolescu | 1 Comments
Filed under:

Blews in the Seattle PI via TechFest 2008 Coverage

TechFest 2008 takes place this week in Redmond. The Seattle PI has a piece about it, and it's great to see Blews (BLogs + nEWS), one of the projects I'm increasingly involved with, mentioned in the article. If this piques your interest read Michael Gamon's explanations (with a photo of the team at the bottom), see a screen-shot, or read the TechCrunch summary.

With Miguel de Icaza on Open Source, Mono, and Moonlight

A few weeks ago I attended Lang.NET Symposium. Charles Torre asked me to participate in a conversation with Miguel de Icaza, who was among the attendees. (While nowadays most people associate Miguel with Mono, our paths crossed--virtually--many years ago, when Tudor Hulubei and Andrei Pitis were working on GIT.) Charles Torre was our host, and we talked about open source, Mono, Moonlight, and various other bits. Our session is now available as a Channel 9 video.

More Posts Next page »
 
Page view tracker