Posts

Showing posts from 2014

Capture and expose system exception statistics in Mule using Coda Hale Metrics

Image
This article describes how to use the Coda Hale metrics library to capture the counts and types of system exceptions thrown outside of Mule ESB flow processing.  Historical exception information is exposed via JMX or written to disk using CodaHale reporters as described on the CodaHale metrics web site . You can use this same technique in any Java application.  We inject instrumentation at the system context level.  That component converts the wrapped exception stack to a counter name that is then created and incremented in the Coda Hale registry.  I use the simple running counter because I don't find the native Coda Hale histogram data useful for this type of metric. You can use other metric types if you want more complex statistics. Components We use 2 injection components 2 codahale components and a custom listener  to make this work: MetricsRegistry:  A CodaHale singleton that maintains a reference to all statistics. It is injected into other components.

Capture and expose flow exception statistics in Mule using Coda Hale metrics

Image
This article describes how to use the Coda Hale metrics library to capture the counts and types of exceptions thrown as part of Mule ESB flow processing.  Historical exception information is exposed via JMX or written to disk using CodaHale reporters as described on the CodaHale metrics web site . You can use this same technique in any Java application.  We add an instrumentation component to each mule Exception Flow.  That component converts the wrapped exception stack to a counter name that is then created and incremented in the Coda Hale registry.  I use the simple running counter because I don't find the native Coda Hale histogram data useful for this type of metric. You can use other metric types if you want more complex statistics. Components We use 1 injection component, 2 codahale components and a custom flow component to make this work: MetricsRegistry:  A CodaHale singleton that maintains a reference to all statistics. It is injected into other compon

Windows 8 tablet (battery) dies in 2 days because of Instant-On

Image
I have a Windows 8 / 8.1 TW100 10" quad core tablet that leave at work as an inexpensive internet device.  The device is always dead with 0% battery when I arrive at work Monday morning. The thing has good battery life when I'm actively using it.  I have to charge the device and reset the clock every Monday. (The clock is dead because it relies on the main battery as the clock battery).  My IPad 2, by comparison, sits standby for days/weeks without draining the battery. The TW100 uses Microsoft Windows 8 new Instant-On or Connected Standby to stay connected to the internet. This new SoC compatible standby mode uses a lot more energy than the standby on other tablet.  Note: This tablet has no applications installed. You can use the "powercfg" command to analyze battery usage. It generates a nifty HTML file that describes battery usage across the last 3 days. powercfg sleepstudy  This chart shows the continual power drain on this tablet across the weekend.

Why does my Windows 8 (8.1) tablet have only one power plan?

Image
I recently purchased a quad core Winbook TW100 Windows 8 tablet, similar to the TW801. The tablet gets OK active battery life running for 5 hours. It doesn't last as long on standby as I expected. It is often dead when I pull it out my backpack for a couple days. Microsoft Windows uses "power plans" to manage the power consumption of windows based devices.  Power plan options that let the user trade off performance versus power consumption. It turns out this is related to the way windows 8/8.1 manages power  for tablet and other always connected  devices using a feature called instant on  or InstantGo . These devices come with a single power plan and new sleep modes that are tightly integrated with the tablet/PC specific hardware.  The Windows Power Options panel shows only the Balanced  power plan as seen in this image. This  feature,  implemented by Tablet OEMs, lets Windows tablets / PCs wake up / receive notifications and other network traffic while the machine

Sales Engineer Guide: Understanding the Motivations of Others

Image
We communicate ideas and attempt to drive decisions with messages, meetings and conversation. We try to sell things, push ideas and get cooperation from others and “make things happen” by driving people to a common understanding. It is tempting to think that “our way” is obvious to people and that they “just don’t get it” when they don’t agree. We should instead put ourselves in the other person's position to see if we really understood the other party’s drivers and decision points. There is only way … to get anybody to do anything. … Yes, just one way. And that is by making the other person want to do it.  Dale Carnegie  How to Win Friends and Influence People I went to a meeting a long time a go with Max . Max created a sheet for every major player that we filled out from that person’s point of view. The sheet had two columns, What’s in it For Me (WiFM) and Does it Threaten Me (DiTM) . You can use “Pros” and “Cons” if WiFM and DiTM make you uncomfortable even though t

Choose the right workspace type when using Team Foundation Server and Eclipse

Image
Microsoft has a nice TFS Eclipse plugin that acts like any other Eclipse team provider.  It provides full TFS Source Control and Team view support inside of Eclipse. You can find information about the plugin on the the Microsoft MSDN site . Team Foundation Server supports TFS version control (TFS) projects and GIT version control (TFS) projects.  TFS uses the concept of a workspace to track changes.  A TFS Project Workspace can be managed as either a "Server Workspace" or "Local Workspace".  There are several good articles that describe how this works phkelly's blog  and MSDN documentation . Server Workspace : These were the default for all workspaces created prior to TFS 2012. Server Workspace follows an older convention where all files on the local machine are marked as "Read Only" until checked out for modification.  This means you cannot edit files outside of TFS or Eclipse unless they have already been checked out for modification. Server w

Will you recognize change when you hear it?

Image
Technicians think they understand how rapid technological advances affect our lives.  After all, everyone can see the impact of cell phones and the internet.  There are subtle changes that occur when a younger generation embeds technology as a foundation of what they do instead of as an supplement. What happens when a new generation makes that technique a standard part of their toolbox? Tools available for everyone... Billy Joel and Jimmy Fallon recorded their own  Doo Wop version of "The Lion Sleeps Tonight"  using an iPad App on TV in 2014. The two of them performed all six parts. Joel and Fallon first looped 4 backing tracks  live  and then sang two part harmony. I was blown a way that they were willing go do this "on their own" in front of a live studio audience. It is doubly amazing when you consider how many folks will lip sync a performance. Their act was a super example of how technology makes the complex simple, enabling new types of creativity withou

Combining Arduino Ethernet and Adafruit NeoPixel shield to create web controlled LED goodness

Image
Someone asked how hard it would be to swap the NeoPixel shield in place of the LED strip in an earlier Arduino based Web LED control project.  The Embedded web server  and LCD panel control chew up a lot of memory so I wasn't sure there was enough program space for the Adafruit NeoPixel library.  It turns out there is just enough space while still retaining some Bonjour functionality.   You can get the source code on GitHub Hardware and Software This project uses the following hardware Arduino Ethernet  I picked mine up at  Microcenter.  They describe this unit  as an Ethernet Shield but it is a full Arduino Ethernet for $49 (as of 2014/06). The Arduino IDE supports this board.  I used version 1.0.5. Adafruit   NeoPixel Shield  a 5x8 matrix of individually controllable RGB LED.  The software library is available on github .   A simple protoshield with pass-through connectors.  The Ethernet connector is very large and the Neopixel Shield sits right on top of it. I us

Can I use an SD card for Virtual Machines?

The answer is Yes you can use an SD card to host virtual machines.  The utility of that depends on the card you have and the speed of the card reader built into your machine. I've been using a Dell E7240 Ultrabook as my primary on-site machine. It only has a 128GB SSD so I've been debating on where I can put virtual machine disk images.  It has an internal MSATA and an SD card slot.  SD cards are easier to get around here so I purchased a couple 64GB SD cards to try out.   I get up to 17MB/s copying my VMDK files to the SD cards on the E7240 and up to 42MB/s copying VMDK files on the Macbook Pro 2011. I tested the following cards with CrystalDiskInfo and my MacBook running Windows 8.1 bootcamp. The Macbook Pro results imply that it may be a limit of the E7240s SD card slot interface, possibly some kind of USB. PNY StoreEdge 64GB.  This is a short card intended for Macbook and Macbook Air with short SD card slots.  There are no specs on the package. PNY Storage for

2014 USA Science and Engineering Festival USASEF in Washington DC - Wow

Image
You can read where scientists, engineers and technicians write about how we need to excite more kids about science and engineering. Engineering and science companies, government agencies, universities and primary education institutions all understand that we need to excite more people about the science and engineering disciplines.  Some of these groups worked together to create the USA Science and Engineering Festival in DC  and associated events in other places.  This was a big (big big) trade show like event with hundreds of companies probably 50-100 universities and dozens of government agencies.  Several of the universities had multiple booths in different sections for their various colleges, programs and labs.  The event filled two floors of the Washington DC convention center.  Six stages ran presentations and talks continuously during the event. The kids and older folks who are still kids at heart had a great time. The USA Science & Engineering Festival is a national g

IOIO Bluetooth and Windows 8 / 8.1

Image
Notes on using the IOIO with Windows 8 over Bluetooth This post describes the results of controlling various versions of the IOIO Firmware from Windows 8 over Bluetooth.  Initial content was extracted from  http://joe.blog.freemansoft.com/2014/04/ioio-v1-dealing-with-firmware-versions.html  and expanded with additional content. I used the HelloIOIOConsole.jar  sample program to test connectivity between Windows 8 and an IOIO V1 running different Application firmware.  I also tested Mac OS/X Mavericks. HelloIOIOConsole.jar results 4/2014 Java Application V1 3.03/3.23 V1 3.26/4.0 V1 ?.00/5.00 Windows 8.1 3.30 No Communication Constant reconnects Works Not Tested Windows 8.1 4.00 No Communication Constant reconnects Fails handshake without patch Works with patch described below Not Tested Windows 8.1 5.03 No Communication Constant reconnects Fails with Version Mismatch (as expected) Not Tested OS/X Mavericks 3.30 Works Works Not Tested

"What do you do for a living?" Pre-Sales Engineer

Image
My family told me that they don't know what I do for work.  This was kind of surprising since everyone tells me that I never shut up about what I'm working on. This post is an attempt to explain what I do/did as a "Pre-Sales Engineer".  I've played this part while working for software or hardware companies that sold "technical" products.  These ranged from Logic Analyzers and Embedded development tools to development and application platforms to Internet support products like web and mail servers. Note:  I'll probably use "Field Engineer", "Sales Engineer" and "Pre-sales Engineer" interchangeably throughout this document. You Got Mad Skills A Pre-Sales Engineer has the rare skill of being comfortable with technology and with people.   Pre-sales technical resources explain technology to techies, implement a solution, map the benefits of technology to business problems and interact with business users and manager