Category Archives: Uncategorized

Glimpse 1.8.5 released

Its that time again and we have another release ready to go. This one is mainly another patch/bug release, but it also sees support for Attribute routes come to the table.

In addition, there has been a fairly sizeable fix released for Entity Framework which affected people trying to use Glimpse.EF6 with EF 6.1.0 – 6.2.0-beta. This has taken a little to track down, and I would like to thank everyone involved in sorting this out and coming up with the fix (especially the guys on the EF team… HUGE thanks guys!!!).

This release sees updates to following packages:

  • Glimpse.Core – Featherweight release 1.8.5
    • Fix where Clients that have a name with quotes in it blows up
  • Glimpse.AspNet – Bantamweight release 1.9.0
    • Added support for attribute routes
  • Glimpse.Ado – Welterweight release 1.7.1
    • Significant performance improvement when calling stored procedure with binary data param
  • Glimpse.Ef* – Welterweight release 1.6.2
    • Fixed possible NullReferenceException in Glimpse that was surfaced with EF 6.0.2
    • Introduced workaround for bug that was introduced in EF 6.1.0 – 6.2.0-beta

In terms of pull requests, I have to say a big thanks to:

And for the great issue reports, I want to thank:

Well I think that is a wrap. For a full list of changes, issues and commits see below:

Glimpse 1.8.3 released – Insights removed

Today we had an unscheduled release of Glimpse. This was to remove the Insights “feature” which was introduced in the last release – 1.8.2. Its removal is based on the feedback we received from the community since going live.

Background
For a long time now, we have been trying to work on ways to get better feedback about how people use Glimpse. We routinely hear from people on Twitter, via the issue list and at conferences, unfortunately, this feedback is fairly anecdotal and hard to quantify. We decided to try and get usage analytics directly from the client itself.

In thinking about this, we decided to ask the community what they thought. Before we release 1.8.2, we posted our thoughts on this blog – Getting greater insights into Glimpse – and out on Twitter, asking for feedback, and received no negative response.

This morning, we received feedback from the community that the Insights feature isn’t desired (at least in its current form) and until we can make a decision as a community, we have removed the feature and released this update.

Moving Forward
From this experience, its clear that the communication channels that we have, and the process of lazy consensus, can’t adequately cover all situations. In addition, for changes such as this, we should work much harder to get/force a response from the community before moving forward.

I’m happy that the we where able to respond to community feedback quickly and hope that we can continue to do so in the future.

Thanks to those who participated in the discussion and I’m glad we came to a good outcome.

Glimpse 1.6.0 released

Since our last release a fair bit of time has passed. Most of this has been taken up with speaking at MonkeySpace (expect a post on this in the future) and trying to take a good swat at knocking off a few key bugs that have been building up. That said we did manage to squeeze in a few useful new features.

Server Timing
We got a few requests come through to show the time on the server. This is useful for tracking down inconstancies in the time between the client and server or delta between the server and a trusted time source (some public NTP source for example). Time can also become important when dealing with things such as encryption / authentication, or when server has issues with wrong DST settings.

Here is a screenshot of what to expect:
TimeZoneDetails
This shows shows full server time, if DLS is in effect and delta between client and server time.

Environment Tab
We have also made some updates to the Environment Tab to show more version information. The thought process is that with Nuget packages that are starting to use the full SemVer spec (specifically pre-release and build metadata) just showing the standard version isn’t enough any more. Packages like EntityFramework have the same 6.0.0.0 version number during the whole pre-release cycle, but have different package versions. Hence now, we show the full version number that is used in Nuget if its available.

This is what the new details look like:
EnvironmentTab

This is useful when you want to confirm that the correct version of a package installed.

Release Notes

  • Glimpse.Core – Welterweight release 1.6.0
    • Add server “clock” time to HUD (shows full server time, if DLS is in effect and difference between client and server time)
    • Update to client to pulse tabs to try and show that the state context has changed
    • Update to client to show a loading message (instead of an error message) to give the data a chance to load
    • Update to client for Principal vs. Principle
    • Update to client to support object values having layouts
    • Fix bug where JSON.NET could screw up self reference loops
    • Fix small typo in update notification on glimpse.axd
  • Glimpse.ASP.NET – Middleweight release 1.4.0
    • Add server “clock” time to HUD (shows full server time, if DLS is in effect and difference between client and server time)
    • Update Environment tab update to show more version Info
    • Fixed issue where tabs could randomly disappear in some cases
    • Fixed issue where calls to HttpContext.Request in IIS7 Integrated mode threw exceptions
    • Fixed issue where query string parameters with a null key would throw an exception
    • Fixed issue to make Glimpse NuGet package discovery more stable
    • Update to make the injection of the the script tags into the rendered pages more robust
    • Update Environment tab to make it more realilant to exceptions in different protection modes
    • Update to make it easier to get Glimpse working when using dynamic compression
  • Glimpse.MVC* – Featherweight release 1.3.3
    • Minor adjustment to bring NuGetPackage inline with eachother
  • Glimpse.ADO – Lightweight release 1.5.0
    • Add support for profiling DbDataAdapter.Fill() correctly

Special Thanks
In terms of pull requests, I have to say a big thanks to:

And for the great issue reports, I want to thank:

Release Details
Well I think that is a wrap. For a full list of changes, issues and commits see below:

Side Note
We currently know there is an issue with our EF6 package being broken with EF6 Beta1. We hope to have this fixed soon.

Parting words
Let us know if you have any thoughts or comments and I hope you enjoy this release.

Glimpse 1.5.0 released

Well its that time again and we have another release ready to go. This one has a couple of cool new features and a whole bunch of fixes/improvements. Of late we have been pushing so hard to get new features out the door we decided that at a certain point “a chicken needs to come home to roost”.

Configuration Generator
This feature will hopefully make it more discoverable how to turn various features of Glimpse on or off, without having to go searching for it. It is also designed to help reduce the support burden we have by allowing people to discover and build the config they have. PLEASE NOTE, this only generates the config you need to copy over to your web.config, these changes aren’t made live to the system.

GlimpseConfigurationGenerator

From the highlighted sections, you can see how you can open the generator by clicking on the “Start Configuration Helper” button and then checking or unchecking the various checkboxes. What I really like about this helper is that its context sensitive to your system. As you can see, you are about to uncheck/check the tabs/policies/etc that are installed in your system.

If you have any thoughts about what else we can do here please let us know.

Host Tab Data Layout Change
Also in this release we have switched up the location of some of the data points in the Host tab. In previous releases there was some inconsistencies with where the data points where places in relation to the other HUD sections, hence the Host section has now been brought inline.

GlimpseHostTab

So don’t get caught out by these changes. Take the time to get reacquainted with the changes.

Popup Sections Spacing
The popup sections now have more space to play with. There were cases people would be caught out by having almost no width to play with and as a consequence have a very squashed data. This release sees a minimum amount allocated to each popup. This is a UX change we aren’t 100% sure about, so make sure you let us know if you have any thoughts.

Ajax Linking
This is a great pull request we accepted from Christophe Gijbels. In short it allows you to click on one of the requests in the Ajax mouseover and have Glimpse opened with that request already selected.

GlimpseAjaxLink

This is a really cool feature, so have a play around and let us know what you think. Expect to see more links like this appearing over time.

Release Notes

  • Glimpse.Core – Lightweight release 1.5.0
    • Added Configuration builder to Glimpse.axd
    • Allow HUD Ajax Request to click directly through to main HUD
    • Changed the position of data points in Host popup
    • Allow HUD mouse overs to take up more space if needed
    • Make HUD sections collapsible when mouse overs opened
    • Update to allow glimpse to work for request with a Content Type of “text/plain”
    • Minor fix where Host tab could throw exception if data was missing
    • Minor fix to remove some exceptions in the client that occurred in IE8
    • Minor fix to metadata which didn’t output in some rare cases
    • Minor optimization in the client for cases where tabs could rerender
    • Fixed UI glitch that would prevent Glimpse being opened once the HUD Ajax calls had been detected
    • Minor improvement to make tabs use explicit box-sizes
    • Minor fix to improve HUD processing of Ajax request that don’t have a Content Type
    • Minor fix for client error on Configuration Tab when connectionStrings is null
    • Update to glimpse.axd which showed Policies under the Inspectors heading
  • Glimpse.ADO – Flyweight release 1.4.1
    • Fix error calling what could occur when binding DataReader’s to controls
    • Made GlimpseDbDataAdapter public to allow it to be accessed in different cases
  • Glimpse.EF* – Middleweight release 1.3.1
    • Majorish feature where we now support DbSpatialServices (EF5 .NET45 and EF6)
  • Glimpse.ASP.NET – Bantamweight release 1.3.1
    • Remove styling from URL column in Route tab
    • Added defensive try/catch around some system call in Environment call to be more defensive

Other news
Also in this release cycle we had our Regular Town Hall where we discussed all the project happenings coming up. We try to have these once a month, so if you would like to join the next one, keep an eye out on the blog.

We also accepted Christophe Gijbels to the ranks of the Glimpse committers. If you get a chance, take a moment to congratulate him and welcome him to the team.

Special Thanks
In terms of pull requests, I have to say a big thanks to:

And for the great issue reports, I want to thank:

Release Details
Well I think that is a wrap. For a full list of changes, issues and commits see below:

Parting words
Let us know if you have any thoughts or comments and I hope you enjoy this release.

Glimpse Town Hall #3

Its been a little while, but as promised, we are back again with another Town Hall meeting!

Last meeting was quite successful, hence we are back again and hope to have even more content, and we are working through an agenda now. If there is something you’d like to share, see or hear about, please add a comment to this post.

Agenda

  • HUD roundup and future
  • Project management and our focus on openness
  • Welcome to our new Core Contributor
  • Look at what Glimpse could do with Azure
  • What’s happening next, what would people like to see?
  • Question and Answer

The meeting will be Tuesday, July 2nd at 4:00 PM (UTC-5:00). We’ll be on Google Hangout again, so bring along your microphone and web cam if you can! (Or just text chat with us…)

Hope to see you there!

Glimpse NDC talk and video up

Well its the end of another week and this one has been full of fixing bugs and addressing issues. Also, just catching up and taking stock of where we are at and what we are doing next.

In the mean time I would like to leave you with the video of the talk on Glimpse that I did at NDC earlier in the month:

Post

This video is worth watching as I go into the why’s and how’s of the problem space Glimpse is working in and motivations of what is driving our current direction.

Also here are the slides from the talk.

Let us know what you think.

Glimpse Heads-Up Display released

The Glimpse team, in conjunction with many members of the community, is proud to announce Glimpse Heads-Up Display (HUD) – a mini dashboard that pulls out the most important details about a request and displays it right in the bottom of your page. This release signals the biggest change to Glimpse since going live just over 2 years ago. We are very excited about this release and hope that it will help change the way you do development.

HUD Overview

Overview

Traditionally, when you are working on a project, you don’t notice problems in your system until you have finished development and moved onto another task. Additionally, it has been a challenge to know that what you have just developed is acting the way you expect it to operate – i.e. which action and controller did I just hit? HUD changes this. HUD provides you with the information you need, all time time, without the need for you to go and seek it. HUD is the notification center for your application’s pulse and shows you what is happening as its is happening.

HUD Detail

History

HUD was originally conceived around a month after Glimpse originally went live (around 2 years ago). Since then most of the work we have done has been focused on trying to get the formula right and access to the data we need. A working prototype of what we have here was up and running over 6 months ago, but we took our time refining it, in line with the feedback we’ve been getting.

v0.1 Concept
middlehud

v0.5 Refinement
oldHUD

v1.0 Final
HUD Final Version

We always knew that a first impressions where key. We have tried very hard to create a vision of simplicity, where the UI gets out of the way and the key data points stand out. We also spent time trying to work out what data is the most important, and what data you want to follow you from page to page. HUD is designed for the always-on use case.

Breakdown

HUD is broken down into 3 main sections. This is designed to try and follow the flow of how your request is handled during its lifecycle.

HTTP HOST AJAX
Ajax Preview Host Preview HTTP Preview

HTTP

This is everything to do with the request. Here we break it down into a few key points:
HUD HTTP

  • Request: Total request time from click to DOM ready
  • Wire: Total time on the network – including DNS lookup, sending of request, receiving response.
  • Server: Total time on the server
  • Client: Total time once client kicks in to dom ready

 
Beyond this, the popup provides a few additional pieces of of information:

HUD HTTP Popup

  • Graph: Shows the relative time that each part of the request takes
  • Host: Server that responded to the request.
  • Server: Principle that is currently logged in for this session

HOST

Once the request hits the server, the Host section shows the key points. This aims to merge the most important data points on the server in a meaningful, related way. The best example of this is the contextual linking of SQL queries to the actions that caused these events to occur. The breakdown is:
HUD Host

  • Action: How long root Action took to execute
  • View: How long root View took to render
  • Controller/Action: Name of the root Controller and Action
  • DB Queries: Total query duration and number of all SQL queries

 
Beyond this, the popup provides a few additional pieces of of information:

HUD Host Popup

  • Server: Total time on the server
  • DB Connections: Total query duration and number of all SQL queries

Above and beyond this, we show a listing of the core events that occur on the server:

  • Category: The type of event that was recorded
  • Description: Generally the name of the event i.e. Controller and action that caused the event
  • Duration: Total time the event took to execute, less the time of any direction child events shown
  • From start: How far into the request did the event occur
      In this listing we also show any SQL queries that belong to a given event and the ability to show any trivial events that occur.

AJAX

Lastly, is the AJAX section, which shows high-level details of any requests that your page makes. Without opening any other tool, you will instantly know when a request is made. You will also know if any errors occurred in processing the request. This is the breakdown:
HUD Ajax

  • Count: Total Ajax requests detected on this page
  • Details: Last 2 requests that have occurred

 
In addition to this, the popup shows the last
6
requests to have occurred as well as a few additional pieces of of information:
HUD Ajax Popup

  • URI: URI that the request used to make the request
  • Duration: Time from when the request left the browser to when the response was received
  • Size: Response payload size
  • Method: Type that the request made
  • Status: Status code that the response object has*
  • Content Type: Type that was received
  • Time: Time that the request was made
      *Note, in some caching scenarios, the browser passes a 200 response to the JS object even though the browser received a 304 from the browser.

Future

Despite everything you have seen here there is more to come. We are keen to see what you think of the new dynamic and where you want to take it. We want to know what you think and what data you find most valuable. We also want to start experimenting with bringing data from other data sources into Glimpse. If its proved that HUD is a mechanism by which we can easily consume important data, there is no reason the data has to be restricted to what Glimpse gathers on the server.

Additionally, we believe it’s important moving forwards to provide alerts when your application reaches different thresholds or conditions. Imagine you can set when a maximum number of queries is crossed, or be notified when cache misses occur.

Best place to give feedback is to either directly to myself @anthony_vdh or @nikmd23, or on our issues list.

We believe a whole new world of possibilities is opened with the arrival of HUD, and we will need your help in getting us there.

But wait there is more

Above and beyond everything here, wider Glimpse has had a facelift. We thought it was about time and that you might appreciate a bit of sexy being introduced. Welcome to the new Glimpse :D

UI Preview Environment

I’m sure you’ve already noticed that we have tried to simplify the overall visuals. Most notably we have removing rounded corners and gradients, and simplified the color pallet. Over time expect some usability changes to come as we continually seek to improve the experience that you have.

Here a few more samples of what to expect:

Execution

SQL

Timeline

Where to get it

As always the best way to get Glimpse is via Nuget. Depending on your needs, here are the links to the various core packages:

Thanks!

This release wouldn’t have been possible without the help and support of the community. Every day we get to work on Glimpse, a dream for us, and it’s your continued support that helps make this happen. Additionally I want to say a huge thanks to Red Gate in believing in our vision and helping us bring this see the light of day.

Enjoy!

Glimpse 1.0.0 CTP1 Released

The Glimpse team is proud to announce our release of Glimpse 1.0.0 CTP1!

This release is targeted at developers who have created Glimpse plugins, as opposed to Glimpse users – who will find version 0.87 to be more feature complete at this point.

Since this release is targeted at developers, we have posted most of the gory details on the Glimpse mailing list. Swing by and take a peek if you are interested.

If you have any further questions, don’t hesitate to post on the mailing list – or drop by our new Jabbr room, where someone will be happy to help.

We’re on it full time!

It’s been a long time since the last post, but we have some big news for you: we’re now working on Glimpse as full-time employees of Red Gate. Gone are the days when Glimpse filled our evenings and weekends – now, thanks to the support of Red Gate, we get to work on it in the daytime as well!

Obviously, this is a great day for Glimpse. We’ve always wanted to deliver more stuff faster, but it was a struggle to make significant progress, let alone to experiment and collaborate. With the chance to work together full time, Glimpse will surge ahead with improvements.

Our plans are still too big for the time we have. In addition to the long-awaited v1, which will improve Glimpse extensibility and platform support, we can’t wait to add support for new technologies like WebAPI and SignalR.

Some of you may be thinking, “Aren’t Red Gate the Reflector people?” We were also worried about that when we started talking with them, but since we’ve gotten to know them better, we’re convinced that they’ll do right by Glimpse and the community. In fact, Red Gate has insisted that we remain in full control of Glimpse, and has contributed additional team members – which just shows us their level of commitment, support and respect for Glimpse’s past, present and future.

Although we have new support, we expect to run the project with the same principles as before: open development, extensible platform and web site, high standards of design (that’s what we’re aiming for, at least!), and a great experience for users and contributors.

We hope you’ll join us in the bright future of Glimpse. If you have any questions, just tweet with the #glimpse hashtag, contact us at team@getglimpse.com, or post to the Glimpse Google Group. You can also read more about what this means to us personally on Nik’s blog and my blog.