This site presents the definitive view into openness efforts at Adobe, including details regarding open source projects that Adobe releases and contributes to.
by SourceForge Robot 2013-08-29
I sat down with Adobe intern Tom Lieber, the developer for Theseus. Tom is an MIT grad student and intern working with Adobe Research on problems relating to the development and understanding tools for software engineering, end-user programming and user interface design.
So, what is Theseus?
The goal of Theseus is to let you see what your program is doing by looking at the code, without having to make as many guesses by simulating the code in your head.
How does someone get started with Theseus?
First, grab the latest version of Brackets. Then, in Brackets, click the menu item File, choose Extension Manager. Pick the Available tab, type Theseus in the search box and click the install button in the search results for Theseus. There are also a couple of great videos demonstrating Theseus on the Brackets blog.
And starting with version 0.4, you can use Theseus to debug Brackets itself, as well as any extensions Brackets has loaded, in just two steps:
There are additional places to learn more about Theseus:
How does Adobe use this?
Why did you do this?
Part of it is a personal desire. It's always fascinated me how we can interact with the application by poking at, trying things out. However the code itself is rather stagnant and somewhat arcane. My goal was to make it as easy as possible to work with the code. In fact, I want people to be able to play with the code as if it was the live application. This is part of my goal to create more usable programming environments.
How would you like others to get involved?
The best way to get involved is to use Theseus on your own projects and give me feedback. I'm looking for when/where it is useful as well as when/where it isn't useful. The feedback will help me expand my academic research and make Theseus better for everyone.
Contributions to the code are quite welcome. It is a research project and thus, research code, but it's fairly robust. I'm more than willing to support anyone who'd like to extend the code, or use it for their own purposes.
It would be great to see Theseus expand to project level discovery and project scope exposure. It would be useful to see events, or be able to ask questions like "What modules were involved in initialization?" It would be great to have visualization of data and elements so when things go out of range you understand the cause and impact.
Anything to add?
Well again, this is a research project and I would particularly enjoy hearing back from anyone who's using it. We need to get a clearer view of how people want to use it and what people are doing with it to make sure Theseus expands and matures to make it an even better tool for asynchronous language debugging. I can be reached at email@example.com, so feel free to drop me a note to let me know how you are using Theseus. (Tom is also on Twitter and on Github.
Thanks for your time Tom and good luck with your continuing studies at MIT. We are quite taken with the capabilities of Theseus and look forward to seeing how it grows in future releases.
by SourceForge Robot 2013-08-16
Recently, I sat down with engineering director John Pampuch and engineering manager David Cox. The major developer, Tony Printezis, was unfortunately unavailable.
So, what is GCview?
John: GCview is a tool for people to look at virtual machines like V8 to analyze internal heap operations.
David: It's a framework to monitor and visually percent any memory management technology like garbage collection.
In discussion, it seems that GCview is a generic and easily adaptable visualization and monitoring framework targeted (but not limited) to memory management systems (garbage collectors, malloc/free implementations, hardware caches, etc.). A system can be visualized by mapping its operation, data structures, heap layout, and other attributes onto GCView abstractions.
David: Its roots come from a similar tool known as GCspy, of which Tony was the original author. GCview is a new design and a completely separate code base.
What is GCview used for?
David: It's for VM developers to get a deep dive into the activities of garbage collection. It allows knowledgeable developers to also help understand performance aspects of web applications.
John: It's important to note that this tool does require some level of expertise to make the best use and looking at memory management systems. It helps identify the underlying causes, but the memory management system itself is responsible for offering the tweakable parameters to improve the identified problems.
In some ways, GCview seems (to me) similar to the Check Engine light on my car. When it appears, I understand I have a problem but may not know what the problem is. A monitoring tool allows me to see the diagnostic code that caused the problem, but doesn't necessarily allow me to directly correct it. That may take expertise and tools that I may not have available. GCView shows me more than just simple diagnostic code, but fixing the problem still requires expertise and tools.
Why did Adobe build GCview?
John: We believe there is a need for deeper understanding of how memory management systems work in browsers today. We also think that there is room for significant improvement in web VMs.
David: It's in everyone's best interest to see the performance of web applications improve. Building GCview, particularly in tying to open source will allow this to innovate and grow for improvement of the web.
So, what's inside GCview?
David: *The GCview core consists of three parts which can be hosted in the same place and be easily adopted in the required system:*
A) Data Stream Spec - A JSON specification that defines the format of a data stream representing the state of the system being monitored over time as mapped onto GCview abstractions. The data stream can either be written to a file for future analysis or transmitted over the network for online monitoring.
C) Data Tracking Code - C++ code that keeps track of the data needed to monitor a particular system after it has been mapped onto GCview abstractions along with facilities to export this data in the appropriate format.
How do I get started?
David: Well, the easiest way is to grab the source and point your browser at the index.html file. That will start GCview where you can load one of the sample traces in the source as well and begin to play and understand what GCview is showing you.
What's next for the project?
John: We hope the open source community will help improve and expand the GCview features and capabilities. Some obvious directions would be inclusion into the Chrome dev tools. Perhaps a great next step would be to see this picked up and baked into Chrome together data on V8. The area covered by GCview today is just the beginning and we can't wait to see what innovations other developers can bring to it.
Any final comments?
John: Releasing GCview under open source makes this tool and framework available for all sorts of interesting memory management systems.
David: We can't wait to see what this develops into and where the community will take it.
Thanks for your time today guys. We appreciate the effort behind GCview and, honestly, the coolness factor that GCview offers to the web application community.
by SourceForge Robot 2013-07-30
"The future us already here. It's just unevenly distributed." -William Gibson
Well, it's the week after the OSCON 2013 conference held in sunny and warm Portland. And as usual, there was more activity at the show that is possible for one person to encompass.
First, some general observations about the show. This may have been the strongest program across all categories in the last seven OSCON events I have attended. With very few exceptions, the speakers were knowledgeable and informative, able to present meaningful information in a concise, retainable manner.
Naturally, Adobe had sessions on PhoneGap and on Brackets. The introduction to PhoneGap by Renaun Erickson, @renaun was surprisingly detailed. I say surprisingly, because PhoneGap is quite complex and yet this 40 minute presentation managed to cover both the highlights as well as dive into specific examples. PhoneGap, is an open source project better known as Cordova, found at the Apache foundation. Renaun's slides can be found at Intro to PhoneGap.
Adam Lehman, @adrocknaphobia also did an introductory session on Brackets. He managed to cover the highlights and the directions for Brackets, as well as provide insight into future directions. Adams slides can be found online as well.
However, the Wednesday keynote certainly stole the show. With Jeff Hawkins of @Numenta leading off in a discussion around open intelligence, machine intelligence, and neuroscience, the stage was set for an incredible journey into every aspect of open source, be it development or social. And to never forget that OSCON is a social experience. The hallway conference is equally important to the sessions you attend.
The other highlight in the keynotes was stolen by Carin Meier of Neo, who communicated The Joy of Flying Robots with Clojure. Everyone wants a robot friend, and Carin introduced us to her robot friends. Not only did we see robots dance, fly, flip, we also saw robots working together, all tied together with quick scripting.
OSCON is one of those conferences that you must attend to realize the depth and breadth of the open source industry. Be it in learning to improve team dynamics with improv, diving into the legal side of Personal Open Source Software and its potential risk, or learning how to automate testing for accessibility OSCON is full of new discoveries, new friends, and new opportunities.