Tag Archives: Application

Productivity Tip: Clipboard Manager

In the beginning, there was darkens, and the clipboard was a scalar copier.

And the developers said: let there be a vector copied and there was ‘Clipboard Manager’ :-).

Use case description

clipx

copy, paste to a notepad (for later use), paste to the target application.

again, copy, paste to a notepad (for later use), paste to the target application.

And again, … and again…

ClipX

ClipX is a tiny clipboard history manager. It is sweet, it is free, use it.

Resources

Trick/Tip: Using IDisposable for ‘using’ scope.

The using keyword is well known to C# developers. Its main purpose, the using directive, is to create a shortcut to namespaces used in the code, but it’s not the only purpose. using can also be used to access an object in a bounded scope if this object’s type implements the IDisposable interface, which means it contains a public Dispose() method. #2

From MSDN:

IDisposable.Dispose Method

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.#1

[csharp title=”<h4>Example implementation of IDisposable for 'using' scope</h4>”]
public class LoggerScope : IDisposable
{
private ILog logger;

public LoggerScope(ILog logger)
{
this.logger = logger;
logger.Error(&quot;================== {0} scope started ======================&quot;, logger.Logger.Name);
}

#region Implementation of IDisposable

public void Dispose()
{
logger.Error(&quot;================== {0} scope ended ======================&quot;, logger.Logger.Name);
}

#endregion
}
[/csharp]
[csharp title=”<h4>Usage example</h4>”]
using (new LoggerScope(Loggers.BindLogger))
{
// your code here e.g. Logger.Write(&quot;error/info data&quot;);
}
[/csharp]

Resources

  1. IDisposable Interface (System).
  2. The using Keyword and IDisposable

Jacada-advisor – new tool on the market.

I’m proud to say that our R&D team just finished to develop this awesome tool.

Jacada Advisor helps call centers achieve excellent customer service by providing real-time agent guidance, simplifying applications and automating redundant or repetitive tasks. Jacada Advisor enables agents to focus on the customer, not the system, so that customers receive an optimal solution to their query in the shortest time possible.

How does Jacada Advisor work?

Web

The bottom line

Jacada Advisor real time agent guidance helps to identify the customer’s problem and provide the right, in-context solution. Agents are focused on the customer, solving their query or identifying upsell or cross sell opportunities with speed and efficiency.

The result is significantly reduced AHT which translates into an improved customer experience, increased retention rates and higher revenue for your organization.

Read more here

Jacada Advisor

Recommended free book – Microsoft Application Architecture Guide, 2nd Edition

Just finished reviewing the below book – A must book for anyone interesting in enterprise architecture.

 

Appetizer screenshots

 

TOC

 

Resources

Microsoft Application Architecture Guide, 2nd Edition.

How to troubleshoot/debug hangs (and crashes) remotely

Using ADPlus

You’ll need ADPlus.exe (formally ADPlus.vbs) which is part of  the SDK tools for windows.

You can  also send it (ADPlus.exe) as a standalone to the customer and send him the command, and he can send you the dump file (~640 MB of dump) back for analysis.

Example ADPlus command

C:Program Files (x86)Windows Kits8.0Debuggersx64>ADPlus -pn “process_name.exe” -hang -o “C:tempdumps”

 

Using WinDbg

WinDbgNext you need to open the dump with WinDbg.

Set WinDbg’s symbols

File>Symbol File Path… = “SRV*c:symbols*http://msdl.microsoft.com/download/symbols;C:your_app_folder”

Analyzing with WinDbg

.reload /i

// will take several min

!analyze -v

Resources

How to use ADPlus.vbs to troubleshoot “hangs” and “crashes”.

How to debug application crash/hang in production environment? – MSDN Managed Newsgroup Support Team Blog – Site Home – MSDN Blogs.

 

C# Equivalency of VB function “DoEvents”

As a former Vb user I’ve searched for an equivalent function and found it here:

Application.DoEvents();

Full path:

System.Windows.Forms.Application.DoEvents();

 

For those who doesn’t know yet:

Processes all Windows messages currently in the message queue.

 

more details:

When you run a Windows Form, it creates the new form, which then waits for events to handle. Each time the form handles an event, it processes all the code associated with that event. All other events wait in the queue. While your code handles the event, your application does not respond. For example, the window does not repaint if another window is dragged on top.

If you call DoEvents in your code, your application can handle the other events.

 

Resources

http://msdn.microsoft.com/en-us/library/system.windows.forms.application.doevents.aspx