List Feeds : Tools to inspect and debug web pages from your browser


      view feed content Opera Dragonfly alpha 3, update 1 (Opera Dragonfly)   3 d, 2 h and 21 min ago

We have a little Friday surprise for you, in the form of an update to Opera Dragonfly. Right after publishing Alpha 3, we pushed an update to the cutting-edge path that we are now pushing to the default path.

The update only contains two changes of note, so we will not provide a full changelog this time:

We've added support for the commands clear() and dir( <object> )</object> to the command line. The clear() command clears the command line output, and dir() allows you to inspect an object. For instance, dir( window ) inspects the window.object

The second change is the main reason for pushing this update, and it should vastly improve the Opera Dragonfly experience. By encoding all image resources as data:-URIs, loading of Opera Dragonfly should be much faster. This is especially noticeable for first-time users, and for users on slow networks.

If you are wondering how much faster, let us present a purely anecdotal indication: This release announcement is written on a bus trip to rural Norway. The bus company is kind enough to offer an affordable wifi connection. The connection is fairly slow, and has high latency. Yet, first loading of the new Opera Dragonfly in a clean Opera profile is faster on this bus, than loading the old version from within Opera's own network.

We hope you will enjoy this little Friday update of Opera Dragonfly, and the much-improved loading experience. Please let us know what you think of this minor update.



View original post | Add to del.icio.us | Share

      view feed content Introducing Opera Dragonfly alpha 3 (Opera Dragonfly)   32 d and 1 h ago

We’ve got a couple of announcments related to Opera Dragonfly today. The first piece of news is that Opera Dragonfly alpha 3 has just been released. The main focus of this release has been fixing reported bugs, to make the user experience more pleasant. We’ve also added localisation support—which was introduced in the previous weekly release. The German translation is ready, and we are working on other locales, that will be pushed live as they are completed and QA'd. We hope this will make Opera Dragonfly more useful in the none-English speaking world. Obviously markets where Opera is more popular have high priority, such as Russian and Indonesian.

One of the key new features of Opera Dragonfly alpha 3 is DOM editing support. There is two modes. The first mode allows you to edit, add and delete attributes and text nodes in real time. You can activate this by double clicking on a attribute, value or text node. The second mode allows you to do free form editing, such as adding new DOM node. You can activate this by double clicking on the opening or closing tag of a element. This will turn the entire element and its children into a free form text field. There is currently a known issue with the first mode, where focus doesn't leave the editing mode when pressing the enter/return key. This will be silently updated as soon as it is fixed.

The other main new feature is that the breadcrumb trail has been updated. Now each node acts like a button, so you can navigate the element hierarchy more easily.

The next release will be Opera Dragonfly alpha 4, which is under heavy development. This has been under development at the same time as alpha 3, as it requires new features found in the Scope module that is part of the upcoming Opera Presto 2.2 rendering engine. It will refine the user experience some what, as the currently active tab will be detected. This will tidy up the layout and make the docked mode much more logical to navigate. It will also introduce a HTTP inspector.

The way experimental releases are handled has also changed. Now instead of switching to the path for weekly releases, Opera Dragonfly will detect if you are on a stable release version of Opera or a pre-released version, such as an alpha, beta, or weekly release. If you are using a stable release it will use the latest official release of Opera Dragonfly (currently alpha 3). If you are using a pre-released version of Opera it will automatically updated to the latest experimental version of Opera Dragonfly. It is possible to force the use of a stable or experimental version. This is explained in the URL Schema document.

In further Opera Dragonfly news, we now have a person who is focusing on Project Management for Opera Dragonfly. I’ve been handling Product Management, but the Project Manager role has been vacant. The new Project Manager is Arve Bersvendsen, whom many of you may know already. He will bring a great deal of experience and knowledge into the project. I’ll let him introduce himself further in this blog when we have some more news to tell. For now, have fun playing with the latest release.



View original post | Add to del.icio.us | Share

      view feed content Public / CompanionJSOptions (Companion.JS)   33 d and 7 h ago

I'm using ExtJS and I'm actually rendering JS files. I return Content-Type: 'text/javascript' but I don't get my renderd JS in your list of available JS files. What is the problem? This is the response from the server:

HTTP/1.x 200 OK

Transfer-Encoding: chunked

X-Powered-By: PHP/5.2.6

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Content-Type: text/javascript;charset=utf-8

Content-Encoding: gzip

Vary: Accept-Encoding

Date: Fri, 30 May 2008 09:43:59 GMT

Server: lighttpd/1.4.19

Please contact me at: nenad.djordjevic@troxo.com

This is a limitation of the tool so far : Only external elements present on the IE cache can be displayed. If not present on the cache, they will not appear. I will work on this problem on future versions.
Thanks for reporting it.

1) The conflict with Firebug Lite (FBL) 2) If you discard FBL (firebugx.js or simply remove) still does not start catching in its console "console .*" calls

It's wonderful.I think the breakpoints is one important ability to add. Hope it become more and more great. Easy

Release early release often ... help us code in the right direction ;)

Love it ! just what i needed !!! Martin

Great workks. This add-on miss an JavaScript Object Inspector such FireBug ("..." is not very helpfull)

Another badly missing feature is the ability to add code breakpoints - Add this (and the object inspector) and you've got a great javascript debugger for IE.

Can we get a keyboard shortcut to open the window? Thanks!

This is really great because it catches the JS errors and actually reports the correct line number (imagine that) and the stack trace! This really has potential to take off. I would suggest you to include a way to see the JS pages and navigate through them, as well as debugging (breakpoints) features that others mentioned above. Other good features would be HTML inspector and being able to view HTTP requests. Thanks.

>> You can already get DOM inspector and HTTP sniffer (including Ajax requests !) with the DebugBar !

I was wondering if you can add a Memory Leak Detection tool... thanks!

>> I already thought about that. I will add it in my todo list ;-)

In IE7 (XPSP3) with Companion.JS v0.4.2 (and in previous versions) I often get the error "Document is not defined" (or similar errors) when opening a link in a new tab. If I refresh the page the page loads without erros



View original post | Add to del.icio.us | Share

      view feed content IETester / Languages (Companion.JS)   [1 views] 33 d and 21 h ago

The language files for IETester can be found on the subfolder "Languages" in the IETester installation file, by default "C:\Program Files\Core Services\IETester". Languages included in the version 0.2.2 :

Here are translation files that are not yet integrated into the installer. You can download them directly and add them to the "Languages" subfolder to have this new language choice :

To create a new translation, get one the existing file (your preferred langage), rename it by using one of the following names and translate the strings :

When it is done, send the file to contact@debugbar.com so it can be added.



View original post | Add to del.icio.us | Share

      view feed content Tor Arne Vestbø is a WebKit Reviewer (WebKit Open Source project)   [2 views] 39 d ago

Tor Arne Vestbø is now a qualified WebKit Reviewer. Tor Arne has done a huge amount of work on the Qt port of WebKit, including advanced work such as a Phonon port of the media back end for the <video> element. He’s also helped to enhance our cross-platform abstraction layer. Please join me in congratulating Tor Arne on his reviewer status and thanking him for all of his contributions to WebKit.


[Uncategorized ]
View original post | Add to del.icio.us | Share

      view feed content Web Inspector Redesign (WebKit Open Source project)   [1 views] 57 d ago

It has been nine months since our last Web Inspector update and we have a lot of cool things to talk about. If you diligently use the Web Inspector in nightly builds, you might have seen some of these improvements, while other subtle changes might have gone unnoticed.

Some of the Web Inspector improvements were contributed by members of the WebKit community. We really want to get the whole community involved with making this the best web development tool available. Remember, most of the Web Inspector is written in HTML, JavaScript, and CSS, so it’s easy to get started making changes and improvements.

Redesigned Interface

First and foremost, the Web Inspector is now sporting a new design that organizes information into task-oriented groups — represented by icons in the toolbar. The toolbar items (Elements, Resources, Scripts, Profiles and Databases) are named after the fundamental items you will work with inside the respective panels.

Console

The Console is now accessible from any panel. Unlike the other panels, the Console is not just used for one task — it might be used while inspecting the DOM, debugging JavaScript or analyzing HTML parse errors. The Console toggle button is found in the status bar, causing it to animate in and out from the bottom of the Web Inspector. The Console can also be toggled by the Escape key.

Error and warning counts are now shown in the bottom right corner of the status bar. Clicking on these will also open the Console.

In addition to the visual changes to the Console, we have also greatly improved usability by adding auto-completion and tab-completion. As you type expressions, property names will automatically be suggested. If there are multiple properties with the same prefix, pressing the Tab key will cycle through them. Pressing the Right arrow key will accept the current suggestion. The current suggestion will also be accepted when pressing the Tab key if there is only one matched property.

Our compatibility with Firebug’s command line and window.console APIs has also been greatly improved by Keishi Hattori (服部慶士), a student at The University of Tokyo (東京大学) who tackled this area as a summer project.

Elements Panel

The Elements panel is largely the same as the previous DOM view — at least visually. Under the hood we have made number of changes and unified everything into one DOM tree.

Resources Panel

The Resources panel is a supercharged version of the previous Network panel. It has a similar looking timeline waterfall, but a lot has been done to make it even more useful.

Scripts Panel

The previous standalone Drosera JavaScript debugger has been replaced with a new JavaScript debugger integrated into the Web Inspector. The new integrated JavaScript debugger is much faster than Drosera, and should be much more convenient.

From the Scripts panel you can see all the script resources that are part of the inspected page. Clicking in the line gutter of the script will set a breakpoint for that line of code. There are the standard controls to pause, resume and step through the code. While paused you will see the current call stack and in-scope variables in the right-hand sidebar.

The Web inspector has a unique feature regarding in-scope variables: it shows closures, “with” statements, and event-related scope objects separately. This gives you a clearer picture of where your variables are coming from and why things might be breaking (or even working correctly by accident).

Profiles Panel

The brand new JavaScript Profiler in the Profiles panel helps you identify where execution time is spent in your page’s JavaScript functions. The sidebar on the left lists all the recorded profiles and a tree view on the right shows the information gathered for the selected profile. Profiles that have the same name are grouped as sequential runs under a collapsible item in the sidebar.

There are two ways to view a profile: bottom up (heavy) or top down (tree). Each view has its own advantages. The heavy view allows you to understand which functions have the most performance impact and the calling paths to those functions. The tree view gives you an overall picture of the script’s calling structure, starting at the top of the call-stack.

Below the profile are a couple of data mining controls to facilitate the dissection of profile information. The focus button (Eye symbol) will filter the profile to only show the selected function and its callers. The exclude button (X symbol) will remove the selected function from the entire profile and charge its callers with the excluded function’s total time. While any of these data mining features are active, a reload button is available that will restore the profile to its original state.

WebKit’s JavaScript profiler is fully compatible with Firebug’s console.profile() and console.profileEnd() APIs, but you can also specify a title in console.profileEnd() to stop a specific profile if multiple profiles are being recorded. You can also record a profile using the Start/Stop Profiling button in the Profiles panel.

Databases Panel

The Databases panel lets you interact with HTML 5 Database storage. You can examine the contents of all of the page’s open databases and execute SQL queries against them. Each database is shown in the sidebar. Expanding a database’s disclosure triangle will show the database’s tables. Selecting a database table will show you a data grid containing all the columns and rows for that table.

Selecting a database in the sidebar will show an interactive console for evaluating SQL queries. The input in this console has auto-completion and tab-completion for common SQL words and phrases along with table names for the database.

Search

Accompanying the task-oriented reorganization, the search field in the toolbar now searches the current panel with results being highlighted in the context of the panel. Targeting the search to the current panel allows each panel to support specialized queries that are suited for the type of information being shown. The panels that support specialized queries are Elements and Profiles.

The Elements panel supports XPath and CSS selectors as queries in addition to plain text. Any search you perform will be attempted as a plain text search, a XPath query using document.evaluate() and a CSS selector using document.querySelectorAll(). All the search results will be highlighted in the DOM tree, with the first match being revealed and selected.

The Profiles panel supports plain text searches of the function names and resource URLs. Numeric searches are also supported that match rows in the profile’s Self, Total and Calls columns. To facilitate powerful numeric searching, there are a few operators and units that work to extend or limit your results. For example you can search for “> 2.5ms” to find all the functions that took longer than 2.5 milliseconds to execute. In addition to “ms”, the other supported units are: “s” for time in seconds and “%” for percentage of time. The other supported operators are “< ”, “<=”, “>=” and “=”. When no units are specified the Calls column is searched.

In all the panels pressing Enter in the search field or ⌘G (Ctrl+G on Windows and Linux) will reveal the next result. Pressing ⇧⌘G (Ctrl+Shift+G on Windows and Linux) will reveal the previous result. In the Resources, Scripts and Profiles panels the search will be performed on the visible view first and will automatically jump to the first result only if the visible view has a match.

Availability and Contributing

All of these things are available now in the Mac and Windows nightly builds. Give them a try today, and let us know what you like (or don’t like).

If you would like to contribute, there are some really interesting tasks in the list of Web Inspector bugs and enhancements, and other contributors in the #webkit chat room are pretty much always available to provide help and advice.


[Uncategorized debugger inspector profile profiler web inspector ]
View original post | Add to del.icio.us | Share

      view feed content Full Pass of Acid3 (WebKit Open Source project)   66 d ago

Today we would like to announce that WebKit is the first browser engine to fully pass Acid3. A while back, we posted that we scored 100/100 and matched the reference rendering. Now, thanks to recent speedups in JavaScript, DOM and rendering, we have passed the third condition, smooth animation on reference hardware.

Here is a screenshot of a successful run:

Here is the timing reference dialog you get by clicking on the “A” in Acid3 that confirms we pass the smooth animation condition on a 2.4GHz MacBook Pro:

To try it for yourself, grab a nightly. Keep in mind that on slower machines, the timing may not be perfect, and you need to do a cached run of the test (load it once, close window, open new window, load it again) to avoid delays from the network.


[Uncategorized ]
View original post | Add to del.icio.us | Share

      view feed content Introducing SquirrelFish Extreme (WebKit Open Source project)   [2 views] 73 d ago

Just three months ago, the WebKit team announced SquirrelFish, a major revamp of our JavaScript engine featuring a high-performance bytecode interpreter. Today we’d like to announce the next generation of our JavaScript engine - SquirrelFish Extreme (or SFX for short). SquirrelFish Extreme uses more advanced techniques, including fast native code generation, to deliver even more JavaScript performance.

For those of you who follow WebKit development and are interested in contributing, we’d like to report our results and what we did to achieve them.

How Fast is It?

This chart shows WebKit’s JavaScript performance in different versions - bigger bars are better.

The metric is SunSpider runs per minute. We present charts this way because “bigger is better” is easier to follow when you have a wide range of performance results. As you can see, SquirrelFish Extreme as of today is nearly twice as fast as the original SquirrelFish, and over 10 times the speed you saw in Safari 3.0, less than a year ago. We are pretty pleased with this improvement, but we believe there is more performance still to come.

Quite a few people contributed to these results. I will mention a few who worked on some key tasks, but I’d also like to thank all of the many WebKit contributors who have helped with JavaScript and performance.

What makes it so fast?

SquirrelFish Extreme uses four different technologies to deliver much better performance than the original SquirrelFish: bytecode optimizations, polymorphic inline caching, a lightweight “context threaded” JIT compiler, and a new regular expression engine that uses our JIT infrastructure.

1. Bytecode Optimizations

When we first announced SquirrelFish, we mentioned that we thought that the basic design had lots of room for improvement from optimizations at the bytecode level. Thanks to hard work by Oliver Hunt, Geoff Garen, Cameron Zwarich, myself and others, we implemented lots of effective optimizations at the bytecode level.

One of the things we did was to optimize within opcodes. Many JavaScript operations are highly polymorphic - they have different behavior in lots of different cases. Just by checking for the most common and fastest cases first, you can speed up JavaScript programs quite a bit.

In addition, we’ve improved the bytecode instruction set, and built optimizations that take advantage of these improvements. We’ve added combo instructions, peephole optimizations, faster handling of constants and some specialized opcodes for common cases of general operations.

2. Polymorphic Inline Cache

One of our most exciting new optimizations in SquirrelFish Extreme is a polymorphic inline cache. This is an old technique originally developed for the Self language, which other JavaScript engines have used to good effect.

Here is the basic idea: JavaScript is an incredibly dynamic language by design. But in most programs, many objects are actually used in a way that resembles more structured object-oriented classes. For example, many JavaScript libraries are designed to use objects with “x” and “y” properties, and only those properties, to represent points. We can use this knowledge to optimize the case where many objects have the same underlying structure - as people in the dynamic language community say, “you can cheat as long as you don’t get caught”.

So how exactly do we cheat? We detect when objects actually have the same underlying structure — the same properties in the same order — and associate them with a structure identifier, or StructureID. Whenever a property access is performed, we do the usual hash lookup (using our highly optimized hashtables) the first time, and record the StructureID and the offset where the property was found. Subsequent times, we check for a match on the StructureID - usually the same piece of code will be working on objects of the same structure. If we get a hit, we can use the cached offset to perform the lookup in only a few machine instructions, which is much faster than hashing.

Here is the classic Self paper that describes the original technique. You can look at Geoff’s implementation of the StructureID class in Subversion to see more details of how we did it.

We’ve only taken the first steps on polymorphic inline caching. We have lots of ideas on how to improve the technique to get even more speed. But already, you’ll see a huge difference on performance tests where the bottleneck is object property access.

3. Context Threaded JIT

Another major change we’ve made with SFX is to introduce native code generation. Our starting point is a technique called a “context threaded interpreter”, which is a bit of a misnomer, because this is actually a simple but effective form of JIT compiler. In the original SquirrelFish announcement, we described our use of direct threading, which is about the fastest form of bytecode intepretation short of generating native code. Context threading takes the next step and introduces some native code generation.

The basic idea of context threading is to convert bytecode to native code, one opcode at a time. Complex opcodes are converted to function calls into the language runtime. Simple opcodes, or in some cases the common fast paths of otherwise complex opcodes, are inlined directly into the native code stream. This has two major advantages. First, the control flow between opcodes is directly exposed to the CPU as straight line code, so much dispatch overhead is removed. Second, many branches that were formally between opcodes are now inline, and made highly predictable to the CPU’s branch predictor.

Here is a paper describing the basic idea of context threading. Our initial prototype of context threading was created by Gavin Barraclough. Several of us helped him polish it and tune the performance over the past few weeks.

One of the great things about our lightweight JIT is that there’s only about 4,000 lines of code involved in native code generation. All the other code remains cross platform. It’s also surprisingly hackable. If you thought compiling to native code is rocket science, think again. Besides Gavin, most of us have little prior experience with native codegen, but we were able to jump right in.

Currently the code is limited to x86 32-bit, but we plan to refactor and add support for more CPU architectures. CPUs that are not yet supported by the JIT can still use the interpreter. We also think we can get a lot more speedups out of the JIT through techniques such as type specialization, better register allocation and liveness analysis. The SquirrelFish bytecode is a good representation for making many of these kinds of transforms.

4. Regular Expression JIT

As we built the basic JIT infrastructure for the main JavaScript language, we found that we could easily apply it to regular expressions as well, and get up to a 5x speedup on regular expression matching. So we went ahead and did that. Not all code spends a bunch of time in regexps, but with the speed of our new regular expression engine, WREC (the WebKit Regular Expression Compiler), you can write the kind of text processing code you’d want to do in Perl or Python or Ruby, and do it in JavaScript instead. In fact we believe that in many cases our regular expression engine will beat the highly tuned regexp processing in those other languages.

Since the SunSpider JavaScript benchmark has a fair amount of regexp content, some may feel that developing a regexp JIT is an “unfair” advantage. A year ago, regexp processing was a fairly small part of the test, but JS engines have improved in other areas a lot more than on regexps. For example, most of the individual tests on SunSpider have gotten 5-10x faster in JavaScriptCore — in some cases over 70x faster than the Safari 3.0 version of WebKit. But until recently, regexp performance hadn’t improved much at all.

We thought that making regular expressions fast was a better thing to do than changing the benchmark. A lot of real tasks on the web involve a lot of regexp processing. After all, fundamental tasks on the web, like JSON validation and parsing, depend on regular expressions. And emerging technologies — like John Resig’s processing.js library — extend that dependency ever further.

A Word About Benchmarks

We have included some performance results, but don’t take our word for it. You can get WebKit nightlies for Mac and Windows and try for yourself.

The primary benchmark we use to track JavaScript performance is SunSpider. Although, like all benchmarks, it has its flaws, we think it is a balanced test that covers many dimensions of the JavaScript language and many types of code. If you look at test by test results, you will see that different JavaScript implementations have their own strengths and weaknesses. Browser vendors and independent testers have been tracking this benchmark.

Next Steps and How You Can Contribute

We believe the SquirrelFish Extreme architecture has room for lots more optimization, and we’d love to see more developers and testers pitch in. Currently, we are looking at how to use the bytecode infrastructure to perform more information gathering at runtime and then using it to drive better code generation, and we are studying ways to make JS function calls faster. There is also a lot of basic tuning work to do to take more advantage of the basic architectural advances in SFX. In addition, we’re interested in having JIT back ends for other CPU architectures.

If you’d like to follow the development of WebKit’s JavaScript engine more closely, we have created the squirrelfish-dev@lists.webkit.org mailing list (subscribe here) and the #squirrelfish IRC channel on the FreeNode IRC network. Stop on by and you can learn more about our plans, and how you can help.

Try it Out

Try it, test it, browse with it. It’s now available in nightlies. We hope the changes we’ve made help improve your experience of the web.

UPDATE: For the curious, here are some comparisons of SFX to other leading JavaScript engines. Charles Ying has comparisons on a few more benchmarks.

UPDATE 2: For those of you who just can’t get enough of our little mascot, click the SquirrelFish below in a recent WebKit nightly for a demo of SVG animation support.


[Uncategorized ]
View original post | Add to del.icio.us | Share

      view feed content The latest weekly, now with more lingo (Opera Dragonfly)   [1 views] 3 months ago

We’ve just put the latest build of Opera Dragonfly on the weekly branch. New for this release is the infrastructure for localisation. We have plans to release Opera Dragonfly in a number of languages, and this release is focused on testing the infrastructure we’ve put in place. It is supplied with test localisations in Japanese and German. These localisations are examples and not the finalised text for those languages. Opera Dragonfly will load the required language file, depending on the language of your browser.

After this release we are focusing on testing the features added to the new version of the Scope protocol, which will be included in Core-2.2. We need to make sure these work and there are no major bugs before Core-2.2 goes into code freeze. As such there will be no weeklies for a while, until that work has been carried out. After this we can start working on the rest of the features planned for alpha 3, including DOM editing.

The next version of Scope should improve the user experience considerably as Opera Dragonfly will be able to detect the currently focused tab or window, which means there will be less steps to start up. We hope to also allow the user to select an element n the page and have Opera Dragonfly go straight to that element in the DOM inspector. We will also have the basics of the HTTP inspector.



View original post | Add to del.icio.us | Share

      view feed content CodePlex Daily Summary for Thursday, August 14, 2008 (Web Development Helper )   [2 views] 3 months ago
CodePlex Daily Summary for Thursday, August 14, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Wednesday, August 13, 2008 (Web Development Helper )   [1 views] 3 months ago
CodePlex Daily Summary for Wednesday, August 13, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Tuesday, August 12, 2008 (Web Development Helper )   [1 views] 3 months ago
CodePlex Daily Summary for Tuesday, August 12, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Monday, August 11, 2008 (Web Development Helper )   [1 views] 3 months ago
CodePlex Daily Summary for Monday, August 11, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Sunday, August 10, 2008 (Web Development Helper )   [1 views] 3 months ago
CodePlex Daily Summary for Sunday, August 10, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Saturday, August 09, 2008 (Web Development Helper )   3 months ago
CodePlex Daily Summary for Saturday, August 09, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Friday, August 08, 2008 (Web Development Helper )   3 months ago
CodePlex Daily Summary for Friday, August 08, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Thursday, August 07, 2008 (Web Development Helper )   3 months ago
CodePlex Daily Summary for Thursday, August 07, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Wednesday, August 06, 2008 (Web Development Helper )   3 months ago
CodePlex Daily Summary for Wednesday, August 06, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Tuesday, August 05, 2008 (Web Development Helper )   3 months ago
CodePlex Daily Summary for Tuesday, August 05, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Monday, August 04, 2008 (Web Development Helper )   3 months ago
CodePlex Daily Summary for Monday, August 04, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Sunday, August 03, 2008 (Web Development Helper )   3 months ago
CodePlex Daily Summary for Sunday, August 03, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Saturday, August 02, 2008 (Web Development Helper )   4 months ago
CodePlex Daily Summary for Saturday, August 02, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Friday, August 01, 2008 (Web Development Helper )   [1 views] 4 months ago
CodePlex Daily Summary for Friday, August 01, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Thursday, July 31, 2008 (Web Development Helper )   [1 views] 4 months ago
CodePlex Daily Summary for Thursday, July 31, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share


      view feed content CodePlex Daily Summary for Wednesday, July 30, 2008 (Web Development Helper )   [1 views] 4 months ago
CodePlex Daily Summary for Wednesday, July 30, 2008Most Popular Projects

Most Active Projects

New Releases

New Projects



View original post | Add to del.icio.us | Share