Looks like typical multithreading problem whereas some threads are humans ;)


Fiddler Log Excel (csv) Export

Unfortunately Fiddler has no really useful built-in export options. But it is possible to extend the FiddlerScript to export the traffic data to Excel (csv).

  1. Open Rules
  2. Choose "Customize Rules..."
  3. see screenshot https://techscreen.tuwien.ac.at/sites/default/files/Fiddler-Rule-Edit.png

  4. Search for the following code:

  5. public static ToolsAction("Reset Script")
    function DoManualReload() {

  6. Insert following code after the lines above:

  7. public static ToolsAction("Copy Request Timings to Excel")
    function DoHighlightSlowRequests() {
    var oSessions = FiddlerApplication.UI.GetAllSessions();

    var s: String = "";
    s = s +
    "Id\t" +
    "URL\t" +
    "Is HTTPS\t" +
    "Response Code\t" +
    "Request Bytes\t" +
    "Response Bytes\t" +

    "ClientConnected\t" +
    "ClientBeginRequest\t" +
    "ClientDoneRequest\t" +

    "ServerConnected\t" +
    "FiddlerBeginRequest\t" +
    "ServerGotRequest\t" +
    "ServerBeginResponse\t" +
    "ServerDoneResponse\t" +
    "ClientBeginResponse\t" +
    "ClientDoneResponse\t" +

    "DNSTime\t" +
    "GatewayDeterminationTime\t" +
    "TCPConnectTime\t" +
    "HTTPSHandshakeTime\t" +

    "Request Transmission Time\t" +
    "Server Time Spent\t" +
    "Response Transmission Time\t" +
    "Transmission time (down + up)\t" +
    "Total Round Trip Time" +
    for (var x:int = 0; x < oSessions.Length; x++){
    var logEntryId = oSessions[x].id
    var session = oSessions[x]
    var timer = session.Timers
    // use tabs intead of CSV because
    // Excel and .NET have incompatible
    // expectations for unicode format

    var t = oSessions[x].Timers
    var transmissionTime =
    new TimeSpan(t.ServerGotRequest.Ticks -
    var serverTimeSpent =
    new TimeSpan(t.ServerDoneResponse.Ticks -
    var responseTransmissionTime =
    new TimeSpan(t.ServerDoneResponse.Ticks -
    var totalTransferTime =
    transmissionTime + responseTransmissionTime
    var roundTripTime =
    new TimeSpan(t.ClientDoneResponse.Ticks -

    var transmissionTimeStr =
    transmissionTime.ToString().Contains("-") ? "" : transmissionTime + ""
    var serverTimeSpentStr =
    serverTimeSpent.ToString().Contains("-") ? "" : serverTimeSpent + ""
    var responseTransmissionTimeStr =
    responseTransmissionTime.ToString().Contains("-") ? "" : responseTransmissionTime + ""
    var totalTransferTimeStr =
    totalTransferTime.ToString().Contains("-") ? "" : totalTransferTime + ""
    var roundTripTimeStr =
    roundTripTime.ToString().Contains("-") ? "" : roundTripTime + ""

    s = s +
    logEntryId + "\t" +
    oSessions[x].url + "\t" +
    oSessions[x].isHTTPS + "\t" +
    oSessions[x].responseCode + "\t" +
    oSessions[x].requestBodyBytes.Length + "\t" +
    oSessions[x].responseBodyBytes.Length + "\t" +

    oSessions[x].Timers.ClientConnected.ToString("HH:mm:ss.fff") + "\t" +
    oSessions[x].Timers.ClientBeginRequest.ToString("HH:mm:ss.fff") + "\t" +
    oSessions[x].Timers.ClientDoneRequest.ToString("HH:mm:ss.fff") + "\t" +

    oSessions[x].Timers.ServerConnected.ToString("HH:mm:ss.fff") + "\t" +
    oSessions[x].Timers.FiddlerBeginRequest.ToString("HH:mm:ss.fff") + "\t" +
    oSessions[x].Timers.ServerGotRequest.ToString("HH:mm:ss.fff") + "\t" +
    oSessions[x].Timers.ServerBeginResponse.ToString("HH:mm:ss.fff") + "\t" +
    oSessions[x].Timers.ServerDoneResponse.ToString("HH:mm:ss.fff") + "\t" +
    oSessions[x].Timers.ClientBeginResponse.ToString("HH:mm:ss.fff") + "\t" +
    oSessions[x].Timers.ClientDoneResponse.ToString("HH:mm:ss.fff") + "\t" +

    oSessions[x].Timers.DNSTime + "\t" +
    oSessions[x].Timers.GatewayDeterminationTime + "\t" +
    oSessions[x].Timers.TCPConnectTime + "\t" +
    oSessions[x].Timers.HTTPSHandshakeTime + "\t" +

    transmissionTimeStr + "\t" +
    serverTimeSpentStr + "\t" +
    responseTransmissionTimeStr + "\t" +
    totalTransferTimeStr + "\t" +
    roundTripTimeStr +


  8. Save
  9. Open Tools
  10. Now click on the new menu "Copy Request Timings to Excel"
  11. see screenshot https://techscreen.tuwien.ac.at/sites/default/files/Fiddler-Export.png

    The Log will be copied to the clipboard as csv format.

  12. Open Excel and paste content from clipboard

Fetch data from an MySQL database trough excel

Mostly a large collection of data is stored in a relational database. Relational databases have the advantage that they are offering a high level of perfomance especially for a large number of data records and especially when having aggregated queries. SQL is the most common computer language to communicate and control a relational database management system (RDMS). It offers various possibilites to fetch data (e.g. a JOIN tables within one query in order to receive aggregated data from different tables in one result set). Furthermore it allows to make certain limitations (e.g. WHERE-statement and HAVING statement) as well as to group data (GROUP BY) and sorting. Microsoft Excel is a well known spreadsheet software which offers a lot of powerful functions for data preparation and evaluation. Excel allows you to visualize data (e.g. Pivot table or various kind of charts) and it offers a lot of formulars for calculation, aggregation and reporting. As mentioned at the beginning, data is mostly stored in databases for performance reasons but also due to the fact that a database represents a centralized storage possibility for data which can be accessed by everyone (according to the access policy of course). Webshops, ERP Systems, CMS systems, just to name but a few, are all using relational databases in most cases. MySQL is a very popular and often used RDMS but it offers not that powerful possibilites of data evaluation and reporting than Excel. So why do not user the actual data from MySQL (as the most reliable datasource), fetch them by using SQL (because of its powerful possibilities of JOINING) and process the final result set in Excel

How to effectively create common documents (Word, Excel, Powerpoint...) collaboratively?

With common file sharing systems like SugarSync or Dropbox it is not effective for a group to work on the same document at the same time because one cannot know what part another one is working on at the very same time. Furthermore, parts of the document can be lost: 1. Person A opens the document and starts working 2. Person B saves the document with changes made after person A opened it 3. Person A saves the now obsolete document. So the part of person B gets lost. How to address the issues mentioned above, how can multiple persons work effectively and collaborative on the same document?
Subscribe to excel