Embedded Chronon documentation publicly available

Posted by Prashant Deva on October 21, 2012

We have made the documentation for Embedded Chronon publicly available now, including full Javadoc for the Embedded Chronon APIs.

Previously this was available only after you requested a trial.

http://chronon.atlassian.net/wiki/display/DOC/Embedded+Chronon

This way, if you want to see for yourself how easy it is to use Embedded Chronon before you request a trial for it, now you can!

Chronon 2.5.4 released

Posted by Prashant Deva on October 19, 2012

This is our final feature update for Chronon 2 before the Chronon 3 release. The update is mainly to the Chronon Debugger and contains some bugfixes and polish of existing features:

Keyboard shortcuts in Stack View

Keyboard-shortcuts

The Stack View now shows the keyboard shortcut corresponding to each action when you hover over any of the buttons. No need to memorize the shortcuts anymore!

Chronon 3 recording warning

C3warning

If you try to open a Chronon 3 recording in Chronon 2, instead of just a random crash, an appropriate error message is displayed.

More polished Select Value dialog in Method History View

Selectvaluedialog

When you select to filter by ‘Local’ expressions in Method History view, the ‘Select Value’ dialog now enables/disables controls as you select them and does validation on each field to make sure you enter a correct value.

Next up… Chronon 3

As mentioned previously, next post onwards we will start talking exclusively about Chronon 3. Why we got delayed? What have we been upto? How does Chronon 3 get its insane speed?

We know you have many questions. Take the red pill and come with us down the rabbit hole. The answers are coming!

‘Per Thread Time’ and updated Timeline View in Chronon 3

Posted by Prashant Deva on August 21, 2012

While we get the final Chronon 3 build ready, lets talk about some of the UI stuff in Chronon 3. Although this release is mainly focused on insane performance improvements, we have taken some time to improve the Chronon Debugger too.

Per Thread Time

Up till Chronon 2, we only had a single global timeline to represent all events.

With Chronon 3, we are introducing ‘Per Thread Time’, which gives each thread its own timeline, facilitating in must easier and faster debugging.

Timeline View

The Timeline View has always been one of the most critical views in the Chronon Debugger UI. It does the fundamental job of telling you whether you just jumped forward/backward in the execution of your program. Without it, you would be ‘lost in time’. The Timeline view also allows to save Time Bookmarks.

Time Progress Bars

Newtimelineview

The biggest UI change you will notice is that instead of having a single bar showing progress through time, we have 2 bars.

One shows ‘global time’, which tells you how far you are down the execution of the entire program. This is conceptually similar to the single bar that used to be present in Chronon 2.

The bar below that shows you how far you are down the execution of the current thread.

Time Bookmarks

Time Bookmarks now save time as ‘current thread time’ instead of ‘global time’

Conclusion

Per Thread Time is a feature that many users have wanted and is extremely useful.

A lot of times, in a large recording, you can have many, many threads that were created and destroyed throughout the course of the program, and you really want to know whether the code you are debugging in the current thread, are you close to the end of that thread or in the middle. A good example is when debugging uncaught exceptions, since when you are near an uncaught exception, the ‘current thread’ bar will be almost full.

With that said, we are just packaging things up for the final release. Stay tuned to our twitter feed to hear about the release as soon as it is available! 

Morning with Control Flow Graphs

Posted by Prashant Deva on August 4, 2012

Please dont write methods that result in Control Flow Graphs (CFGs) like this (takes 5 seconds to load full image on windows image viewer on my 12 core machine with the latest SSD):

Execute

 

Chronon and Jubula join forces

Posted by Prashant Deva on July 3, 2012

Chronon Systems and BREDEX (the company behind Jubula), have joined forces to bring you the best of both testing and debugging worlds. Official press release here.

If you dont already know about Jubula, it is a wildly popular test automation tool and part of the Eclipse project. It forms the basis for ‘Eclipse for Testers’.

Their is also a commercial version of Jubula called GUIdancer with some extra features. 

Both Jubula and GUIdancer now integrate with Chronon and Embedded Chronon

(Note: From this point on, instead of mentioning ‘Jubula and GUIdancer’ everywhere, I will just mention ‘Jubula’ to refer to both.)

How does the Chronon integration with Jubula work?

Tests that are created and executed in Jubula can now be recorded with the Chronon recorder, using a simple gui configuration.

The Standalone version of Jubula now ships with the Chronon recorder by default, enabling this integration.

This means you can record all your tests within Jubula and if any one of them fails, you can take the Chronon recording of it and debug it using the Chronon Time Travelling Debugger.

Can the Jubula-Chronon integration be used outside of the Jubula GUI

Note that although you can technically run your Jubula tests with Chronon enabled, outside the Jubula GUI, that use case is not recommended or supported by either Chronon Systems or BREDEX.

To record outside of the GUI (Jubula test environment), please look at our Chronon Recording Server and Embedded Chronon offerings, which are explicitly designed for and support such use cases.

Is the Chronon and Embedded integration available only on standalone version of Jubula?

Yes.

The ‘Eclipse for Testers’ release does not contain the Chronon recorder due to the rules of Eclipse foundation not allowing any non-EPL code in an Eclipse download.

Do I need to download the Chronon Time Travelling Debugger separately?

Yes.

Since the standalone version of Jubula doesnt contain Eclipse JDT, a dependency of the Chronon Debugger, you need to download eclipse separately and install the Chronon Debugger plugin in it. If you already have an eclipse installation, just add the Chronon Debugger plugin to it.

Also since the Time Travelling Debugger is a commercial product, after the 30 day trial, you can either:

How does the Embedded Chronon integration with Jubula work?

Jubula is one of the first open source projects to ship with Embedded Chronon.
This means you can record Jubula itself.

Embedded-chronon

Thus if you run into a bug with Jubula:

Instead of send a detailed bug report to the Jubula bug tracker with instruction on how Jubula developers can reproduce the bug on your box, you can just record the bug and attach the Chronon recording in a bug report at theJubula bug tracker.

This also means Jubula devs don’t need to go through all kinds of hoops to reproduce your bug on their side and can diagnose and fix the bug quickly!

Note that in the current version of Jubula, you have to modify the jubula.ini file to enable the Embedded Chronon before you can record Jubula with it. This is not something that is required by Embedded Chronon, but is due to some technicalities on the Jubula side which will be changed as a part of the the next Jubula release. For the moment, you just have to remember to comment two lines into the Jubula.ini to let you start the recording from the Jubula ITE.

So, what are you waiting for, go ahead and download Jubula with Chronon and speed up your development and testing processes!

Chronon 2.5 released

Posted by Prashant Deva on June 29, 2012

While we get Chronon 3 ready, we thought of making an interim release with some goodies our users have been asking for:

Chronon Recording Server

Recording Server is the highlight of this release, and contains the most voted feature from our users:

On Demand Split

Crs-splitrecording

Now when you encounter a bug while testing/QA, no longer do you have to wait for an ‘automatic split interval’ or do a ‘Stop Recording’ which results in a lengthy ‘deinstrumentation’ phase and then ‘Start Recording’ again (which will result in another lengthy ‘instrumentation’ phase).

Just click the new ‘Split Recording’ button and a recording is created instantly on disk and the recorder keeps running!

Here is a demo video demonstrating this feature:

Make sure you get the latest version of Recording Server now!

Chronon Time Travelling Debugger

Some enhancements based on user feedback:

Timeline View

Timelineview
  • An Id column has been added to allow easily referring to each time bookmark by an id, instead of a complex, lengthy ‘time’ value.
  • All columns are now sortable.

Exceptions View

Exceptionsview
  • An Id column has been added here too.

Dont forget to update your debugger!

Embedded Chronon and Chronon Recorder

Plenty of bugfixes and minor performance enhancements in the Chronon Recorder for users of Embedded Chronon and Chronon Recording Server.

If you were getting a corrupt recording when using either Embedded Chronon or Chronon Recording Server, these bugfixes should now prevent that.

Also for the first time we have updated the native agents too, from version 1.0 to 1.1.0.

Simplifying chrononsystems.com

Posted by Prashant Deva on June 9, 2012

As we get all set to release Chronon 3, we noticed that some elements of our website were causing confusing among our visitors, thus we decided to update it. Below is the description of what we changed and why we did so.

What has changed

The changes we made really boil down to the 2 most visited links on the header menu of the website: ‘Pricing’ and ‘Download’.

The change we have made is that we have removed those links from the header menu.

Why remove links from the header menu?

Now, you are probably thinking why would we remove what are probably the most visited and important pages of the website!?

Well, first of, rest assured, the pages still do exist, they have just been moved around to a more appropriate location. Details are as follows:

As it turns out, when we launched last year with our first product, the Chronon Time Travelling Debugger, we were a single product company, so it made sense to have a single pricing page and a single download page. It caused no confusion whatsoever for the visitors since they got exactly what they were looking for.

However, fast forward to now, we have multiple products, 3 in fact:

  1. Chronon Time Travelling Debugger
  2. Chronon Recording Server
  3. Embedded Chronon

We even branded the ‘solution’ we offer as a combination of these products as ‘DVR for Java’ and came up with a brand new redesign and look and feel of the website in October 2011.

As it turns out, the redesign was an evolution of the structure of the previous website. Thus, although it had a ‘Products’ menu, allowing you to view each product, it still had a single ‘Pricing’ and ‘Download’ page. And this led to a ton of confusion for the visitors.

Confusions Abound

For example, here is the previous ‘Download’ page:

Old-download

As you can see it contains downloads for both the Recording Server and the Time Travelling Debugger.

However, a lot of visitors to the site who came because they heard of the the Time Travelling Debugger, when they clicked the Download link, and saw a download button for the Recording Server, it got them utterly confused.

In fact, we received so many support mails on that, that we actually had to put a section on the side which literally said ‘What is the Chronon Recording Server‘, along with the links to the Product Overview page to explain that we have multiple products.

Old-download-questions

A clickmap of the download page showed that these links were indeed being visited by a lot of users and thus provided us with more evidence that there was a ton of confusion.

Download-clickmap

In the pricing page, we tried to solve this problem by tabs and having different tabs for each product.

Old-pricing

Again this was not a perfect solution since, the tabs were not all that eye catching and still didnt give the user an instant feedback that there are multiple products involved.

The new changes

So to simplify things, we have removed the single page ‘Download’ and ‘Pricing’ from the top menu bar and placed ‘Download’ and ‘Buy’ buttons on the pages of each product.

New-debugger-pageNew-rs-page

This way there is no confusion, if you are on the Time Travelling Debugger product page and click on the ‘Download’ or ‘Buy’ button, you don’t see the Recording Server. Same with the Recording Server buttons.

New-debugger-downloadNew-debugger-buyNew-rs-download
New-rs-download

Also since you probably got to the Recording Server page, by clicking on the ‘Products’ menu item, you know that multiple products are involved.

We hope this change will simplify things a lot for our visitors.

More to come….

We are still working on making continuous improvements to the website as we go along and in the spirit of the ‘Engineering Chronon’ blog, we will keep you informed of the changes and the rational behind those changes.

Stop pressing the ‘Stop Recording’ button in the Recording Server

Posted by Prashant Deva on May 10, 2012

Do you press the ‘Stop Recording’ button each time your app runs into a bug and you want to examine the recording? Or do you press it once your test suites have finished running?

Turns out, that is not the way we designed the Recording Server in mind!

Recording Server Workflow

Here is a document describing the workflow of using the Chronon Recording Server:

http://chronon.atlassian.net/wiki/display/DOC/Recording+Server+Workflow

Chronon 3 beta Update 1

Posted by Prashant Deva on April 24, 2012

We have just released the first update to the Chronon 3 beta.

Recorder Binary version number: 3.138 

This update contains:

1. Fix for linux users who were crashing with the following error msg

/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9′ not found 

You shouldn’t be seeing this anymore.

2. New much faster, ‘low’ compression option!

In the Recorder Configuration file, you can add a property to use the new, much faster compression algorithm:

compression = low

More specifically, previously we used Deflate for compression, but using compression=low in the config file will use Snappy which is an order of magnitude faster albeit with a lower compression ratio.

Note that this configuration option in the configuration text file is only temporary during the beta. Once Chronon 3 is released, you will be able to control this setting through the Recording Server UI.

Also some clarifications…

Apparently some of the earlier mails sent out said that ‘Chronon Recording Server 3‘ is available for download. That is incorrect.

The Recording Server is still at version 2 and its binaries haven’t changed. Chronon 3 currently just consists of the recorder binaries and you just need to copy/paste them in your existing Recording Server (v 2) installation to use them.

Our apologies for the faulty mail. 


Download now

If you haven’t already got Chronon, fill this form to get it instantly!

 

Light Table: Concept vs Reality

Posted by Prashant Deva on April 22, 2012

I recently came across this ‘concept demo’ of Light Table, which is being passed off as a ground breaking IDE, and has even managed to collect a <a href=”http://www.kickstarter.com/projects/306316578/light-table”>fair chunk of change on KickStarter</a>.

Being the geek that I am, it piqued my interest too and I took a good look at it. After analyzing the demo, even though the video looks cool, I dont see most of the functionality as groundbreaking and large parts of the demo seem highly contrived. Here are my thoughts and critique on what the Light Table concept demo.

Since I am a Java guy and the IDE concepts are defined as being language agnostic and that support for additional languages can be added later, I will compare the examples using Java code and Eclipse as the IDE.

Let’s look at Light Table, feature by feature.

Docs everywhere

Lt-docsEclipse-javadoc

Here the author demos putting cursor on top of method calls and showing documentation on the side. He tries to pass this off as something revolutionary.

Maybe he should just open eclipse and its javadoc view, which does exactly the same thing.

Also unlike what is shown in the light table demo, where the documentation panel eats up half your screen, the javadoc view can be easily docked to any size and resized to preference.

Also the author says ‘docs everywhere’, but the demo shows that there is a special ‘doc’ tab you have to click on to be able to see the documentation (since it eats up half the screen). That means the ‘doc’ is in fact not everywhere and you have to switch to a special ‘documentation mode’ to see it.

Contrast that to eclipse’s javadoc view, which can stay open continuously whenever you want and can be docked and resized wherever you want.

Finding functions

Eclipse-findLt-find

I am assuming java here, so i will refer to classes instead of functions for my examples. Even though java does allow functions inside classes i barely ever find myself searching for anything by its function name. Its almost always a class name, especially since multiple classes can contain a function with the same name. Also just looking at pure functions usually doesn’t do it for me when examining code, since I also like to see the fields of a class.

Again what the author passes here for revolutionary is a trivial functionality in most IDE’s. In eclipse, you can press Ctrl+Shift+T and type the name of a class, along with wildcards or package names if you want and voila you can get to it instantly. Only this has been possible for about 10 years now…..

No dealing with files

Throughout the demo, it is emphasized that the concept of files is hidden from the user. While good in concept, this is at best a leaky abstraction. At some point you will have to deal with files since that is what your version control system works with. However, almost all ides including visual studio, eclipse and intellij can show you views of your code that contains only the structural elements and not the files. Sure when you go to ‘edit’ the code, it shows you file name in the tab above, but is that really such a big deal….

Lt-lightEclipse-light

The demo shows nice little functions calls which have their own small editing area. This seems very contrived. The functions shown are extremely small. How would the editing areas look like if the function in question was long. Wouldnt showing multiple functions on a single surface then lead to a ‘resizing hell’, where you are constantly trying to resize the individual editor windows to see the code you want to see? Sure one can make the argument that you should have small functions, but real world code doesn’t exactly always play by those guidelines.

There is a reason why current ides only allow a split view of editors, and that is to avoid the ‘resize hell’ mentioned above since you only need to resize on one axis at most.

Instant feedback

Lt-emulateEclipse-emulate2

In this part, which again feels extremely contrived, the author very conveniently shows small functions which operate only on primitive numeral types.

However, real world code rarely works that way. You have objects calling other objects which in turn can call apis which in turn interact with external systems.

How would the instant feedback work on a piece of code that deletes a bunch of files or sends a bunch of emails or is part of a distributed system and n

eeds some input from a network or is complex multithreaded code? I dont want files on my system deleted as soon as I type an api call in the ide, same with sending emails, etc.

The second image here shows a portion of the Chronon Time Travelling Debugger code. How would ‘instant feedback’ work in this case? The code here relies not only on the state of the program in memory but also takes as input external files present on the filesystem. Will Light Table somehow magically generate the files in question and in the proper format that this function expects?

Even if LightTable were somehow to ignore api calls that say, modify your filesystem, how would the IDE ‘know’ about that api. Will someone have to manually go through all the apis in existence and make a list of which ones to emulate and which ones to not? That doesn’t seem practical.

Also even if the code were indeed based on just basic numerical or string primitives, how would the ‘instant feedback’ work if the code were in a long, tight loop or did heavy cpu intensive stuff?

Conclusion

Even though the light table demo looks interesting at first glance, digging deep into it, some of the concepts presented as game changing like ‘documentation everywhere’ and ‘find function’ are already well implemented in other IDEs.

The other half of the demo looks extremely contrived and might look good in a ‘concept’ demo but the examples shown dont seem representative of real world coding and there is no solid explanation of how these problems would be tackled in the final implementation.

« Previous 1 2 3 4 5 6 7 8 9 10 11 Next »