Welcome to LeanExecution!

Welcome! If you are a first time visitor interested in getting started with Overall Equipment Effectiveness (OEE), click here to access our very first post “OEE – Overall Equipment Effectiveness“.

We have presented many articles featuring OEE (Overall Equipment Effectiveness), Lean Thinking, and related topics.  Our latest posts appear immediately following this welcome message.  You can also use the sidebar widgets to select from our top posts or posts by category.

Free Downloads

All downloads mentioned in our articles and feature posts are available from the FREE Downloads page and from the orange “FREE Downloads” box on the sidebar.  You are free to use and modify these files as required for your application.  We trust that our free templates will serve their intended purpose and be of value to your operation.

Visit our EXCEL Page for immediate access to websites offering answers and solutions for a wide variety of questions and problems.  Click here to access the top ranking Excel Dashboards.  Convert your raw data into intelligent data to drive intelligent metrics that will help you to analyze and manage your business effectively.

Questions, Comments, Future Topics

Your comments and suggestions are appreciated.  Feel free to leave a comment or send us your feedback by e-mail to LeanExecution@gmail.com or VergenceAnalytics@gmail.com.  We respect your privacy and will not distribute, sell, or share your contact information to any third parties.  What you send to us stays with us.

Subscribe to our blog and receive notifications of our latest posts and updates.  Simply complete the e-mail subscription in the sidebar.  Thank you for visiting.

Until Next Time – STAY lean!

Vergence Analytics

Lean Code and JavaScript IDE

BracketsJavascript is one of the more popular programming languages in use today and its use and capabilities are further enhanced by a variety of available frameworks, such as Node.js and AngularJS, and other libraries.

Although you can use almost any text editor to write Javascript, a language based Interactive Development Environment (IDE) or Code Editor can greatly improve your ability to write code more efficiently and effectively.  This is especially true where syntax and case sensitive languages – like Javascript – are concerned.

I use WebStorm by JetBrains for the majority of my web-based applications, however, a number of less capable cross-platform IDE’s and editors are also available for writing JavaScript, HTML, and CSS.  One such editor is Brackets created by Adobe Systems.

Review:  The 10 best JavaScript editors” by Martin Heller, Contributing Editor, InfoWorld (May 17, 2017) presents a number of JavaScript editors for consideration of which Brackets is among them.  I prefer to use cross-platform tools wherever possible and I use a variety of IDE’s and editors that are best suited for the project at hand.

Brackets is a light-weight open-source cross-platform editor equipped with sufficient functionality to efficiently write HTML, CSS, and JavaScript code.  A number of extensions are also available to further enhance your experience using Brackets.

Extensions are often written by third-party programmers or developers and should be installed with caution.  I highly recommend researching and reading reviews by others to ensure they are worthwhile and trustworthy.

If you are just learning JavaScript or writing a quick a script, consider the simplicity of using an editor like Brackets where you can focus on writing your code rather than get bogged down with learning all the details and nuances of a full-featured IDE.

If you’re wondering what kind of programs can be written using JavaScript, HTML, and CSS, you’ll have Brackets to serve as your source of inspiration as one of the many possibilities.  For more information, visit the Brackets web page.  As of this writing, Brackets 1.11 is available for download.

The excitement of learning a new language is often met with varying degrees of chaos and confusion when selecting the right tools to get started.  I recommend starting with something simple and less distracting that will allow you to focus on the task at hand.  Brackets is one such editor.

In time, you will learn which tools will best serve your needs and you can adjust your working and coding environment accordingly.  Feature filled IDE’s and Editors will do little to serve your needs if you have yet to learn or don’t know how to program.

Until Next Time – STAY lean!

Versalytics

Related Articles, Resources, and References

Advertisements

High-Performing Python

I was pleasantly surprised to see some very useful downloads when I opened the November 2017 issue of the Intel Developer Products Newsletter:

  • Intel Distribution for Python – Accelerate Python Performance – Powered by ANACONDA, and
  • Intel Performance Libraries – Download these free libraries today to create better, more reliable, and faster software applications.
    • Intel Data Analytics Acceleration Library (Intel DAAL)
    • Intel Math Kernel Library (Intel MKL)
    • Intel Integrated Performance Primitives (Intel IPP)
    • Intel Threading Building Block (Intel TBB)
    • Intel MPI Library (Windows Package)

Rather than write about these free offerings from Intel, click on the links above to see and choose the tools that will serve you best.  The files are relatively large and you may want to reserve your time for when and how you download them to your machine.  Versions are available for Windows, MacOS, and Linux.

Anaconda is my Python installation of choice if not simply for the ease of maintaining the many Python packages that are available.  That the Intel distribution for Python is powered by Anaconda is not surprising.

Although I’ve expressed my fair share of caution when using code libraries written by others, I have no concerns with Intel as the documentation is more than thorough.  If you’re truly interested in a comprehensive Python installation, consider this package offering from Intel.

Until Next Time, stay LEAN!

Versalytics

 

 

Simply the best – Logitech’s Craft Keyboard

Craft Keyboard BoxI pre-ordered Logitech’s Craft Keyboard several weeks ago and it just arrived – a week earlier than expected!  The Craft Keyboard is compatible with Logitech’s FLOW technology and is a perfect companion to my MX Master 2S mouse.

I use computers extensively in my line of work and I’m always looking for the ultimate keyboard experience.  I was also looking for a single solution that would allow me to work on more than one machine using the same keyboard and mouse.

Logitech’s Craft keyboard coupled with the MX Master 2S mouse and Logitech’s FLOW software technology is the answer to that quest.  I can now work seamlessly between my SurfaceBook Pro and MacBook Pro machines all while using the same keyboard and mouse.  The keys on the Craft keyboard are labeled for both PC and MAC machines.

IMG_4564The top left dial, referred to as the CROWN, is one of the unique features of the Craft keyboard.  The CROWN presents either a smooth or ratchet style feel when turned depending on the current context of the application.

The touch sensitive CROWN integrates seamlessly with Microsoft Office, Adobe, and other applications.  Even browsing the web is a slightly enhanced experience.  You can perform context specific tasks from within an application by simply tapping, pressing and / or turning the CROWN.

As a premium keyboard, my expectations were high and for the most part, Logitech has delivered .  The Craft keyboard provides the best typing experience of any keyboard I have literally had the opportunity to lay my hands on.  The backlit keys are very quiet, highly responsive, and require minimal travel and effort to actuate.  The tops of the keys are slightly concave and your fingers naturally settle into them.

F6-F7 Backlight BrightnessThe backlit keys turn on immediately as your hands approach the keyboard and turn off approximately 5 seconds after you move them away.  You can use the F6 and F7 function keys to decrease or increase the brightness level of the backlit keys respectively.  There are 15 levels.  This is worth noting as the backlit keys work regardless of the ambient light levels in the room.

Simultaneously pressing the “fn” and “esc” keys toggles the shift state of the function keys between standard and assigned features.  The assigned function key features can be repurposed to perform a variety of tasks using Logitech’s Options software.

Visit Logitech’s web page for a complete review of the Craft Keyboard’s many features and capabilities.  I ordered my keyboard directly from the site and I’m extremely pleased with my purchase.

Craft Advanced Keyboard.jpg

Although the Craft keyboard carries a steep price tag, when I consider the many hours that I spend working on my computers, the quality of the keyboard itself, and the new found real estate on my desk top, it’s worth every penny.

 

Increased productivity and creativity are just two of many reasons that make Logitech’s Craft Keyboard my new keyboard of choice.

Until Next Time – STAY lean!

VersalyticsRelated Resources

Logitech’s Craft keyboard offers premium typing with big bonuses, Darrel Etherington, TechCrunch.com

Logitech Craft Keyboard – Review, Curt Blanchard, mymac.com

This Dial Controls Everything! – Logitech Craft keyboard, Hardware Canucks

MX Master 2S Mouse (Versalytics.org)

 

 

Lean Code and Productivity

Writing code can be a very time-consuming process and finding ways to be more productive is typically welcomed by professional programmers.  While many new programmers are anxious to learn their language of choice, few spend any time learning about the Interactive Development Environment or IDE they are using to write their code.

Programmers can increase productivity by taking advantage of the many keyboard shortcuts that are built into their IDE or editor of choice.  Many IDE’s are designed to work on any platform and makes learning them that much more valuable.  In this context, choosing the right IDE can be just as important to your productivity as knowing the language itself.

A short list of the primary IDE’s I use includes:

  • IntelliJ IDEA HelloWorldMicrosoft:  Visual Studio 2017 (C, C#, C++),
  • ActiveState:  Komodo IDE (TCL/Tk),
  • JetBrains:
    • CLion (C++),
    • PyCharm Professional (Python),
    • IntelliJ IDEA Ultimate (Java),
    • PhpStorm (PHP),
    • RubyMine (Ruby),
  • NetBeans IDE:  NetBeans (Java).

Most of you reading this are likely familiar with the more common key combinations such as <Ctrl>+<s> to save a file, <Ctrl>+<c> to copy highlighted text, or <Ctrl>+<v> to paste text.  Many IDE providers have developed key combinations that provide much more functionality than typically offered by primitive text editors.  Extended features may range from basic editing and code navigation to code selection, code completion, code generation, code refactoring, and so much more.

IntelliJ IDEA SecretsVisual Studio 2017 (Microsoft), Komodo IDE (ActiveState), IntelliJ IDEA Ultimate and PyCharm (JetBrains) are just a few examples of IDE’s where key combinations exist to perform a wide variety of tasks.  Also knowing certain shortcuts that can be used while entering code can save a significant amount of time.

A premium IDE is well worth the investment in both money and the time required to learn it.  Extending IDE functionality to include automated code generation, code formatting, import optimization, and support for version control systems are just some of the reasons for using a premium IDE.

Once you discover the key combinations that are available to you, remembering them will be the next challenge.  Practice makes perfect and the more often you use them, the more likely it is that you will remember them.

CLionMenuDropDownIf you’re accustomed to working with your mouse when navigating the menu options inside your IDE, make note of the keyboard shortcut that may appear next to the menu option you are using as pictured in this CLion IDE drop-down menu.  If not this time, perhaps it may be worth trying the next time you find yourself reaching for the mouse to perform a task.

Aside from attempting to remember everything you read in the documentation, you can also perform a simple Google Search for “Cheat Sheets” on the language of your choice.  You will quickly discover that you are not alone when it comes to memorizing keyboard shortcuts and you will be presented with a vast array of options that are best suited for you and your specific IDE.

Increase your productivity and take advantage of all the power at your fingertips.  You will save yourself a tremendous amount of time and effort writing your code and developing your application.  By learning all there is to know about your IDE of choice, you may surprise yourself to see how much time you can save using a simple key combination that you never knew existed.

Until Next Time – STAY lean!

Versalytics - Logo (293x293)Related Content

Logitech MX Master 2S for Power Users

Logitech Master MX 2S - FeatureWorking with multiple computers at the same time can be cumbersome at the best of times – especially where peripheral devices are concerned.  My K760 keyboard allows me to use the same keyboard on multiple machines as does my MX Master mouse.  However, neither of these devices make it possible to work seamlessly with two computers at the same time.

“There’s always a better way and more than one solution!”

~ Versalytics.org

Logitech Master MX 2S - Front Of BoxI am typically working between my SurfaceBook Pro and MacBook Pro at the same time, especially when developing applications that need to run on both.  Even the simple task of copying files or text between them takes time that I’d rather spend doing other more productive tasks.

If you’re a power user working with more than one computer, wanting to work more efficiently and effectively, and looking to free up some precious desk space, then the Logitech MX Master 2S mouse is the solution you’ve been waiting for.

Multi-Computer Control With Logitech Flow

The new Logitech MX Master 2S mouse coupled with the Logitech Flow feature is the solution that makes working seamlessly between two or three computers connected to the same WiFi network possible.  Sharing files or data between machines is as simple as moving the mouse from one screen to the other as you would when working with two monitors connected to the same machine as shown in the video below:

Logitech Master MX 2S - Back Of BoxAside from Logitech’s flow feature, there are a number of other features and improvements that the Logitech MX Master 2S brings to the table:

  • Pair with up to 3 computers and easily switch between them using the “connect” button on the bottom of the mouse.
  • Dual connectivity makes it easy to connect to your machines using either BlueTooth or Logitech’s unifying USB receiver (included).  The unifying receiver makes it possible to connect up to 6 devices using only a single USB port.
  • Completely customizable with Logitech’s “Options” software.
  • Full button and key customization.  The mouse has 7 buttons.
  • Application specific settings.
  • Gesture Button.
  • Scroll Wheel with auto-shift for speed-adaptive scrolling.
  • Battery notification and status indicator.  Note that you can use the mouse while charging it with the included USB cable that connects to a micro-USB port on the front of the mouse.
  • 70 days of battery life on a single charge compared to 40 days with the previous generation mouse.
  • Darkfield high precision (4000 DPi) sensor that allows you to work on virtually any surface – including glass.  The nominal value is set at 1000 DPi and ranges from 200 to 4000 DPi that can be adjusted in 50 DPi increments.

Logitech Master MX 2S - Inside the BoxI like the look and feel of the Logitech MX Master 2S mouse.  The mouse fits comfortably under the palm of your hand and the finger extension over the sculpted shape feels natural and relaxed.

I’m using the Logitech MX Master 2S mouse exclusively in my home office.  All facets of our business are subject to continual improvement leading to more effective and efficient use of our most valued resource – TIME.

Until Next Time – STAY lean!

Versalytics - Logo (293x293)

Related Articles

 

Lean Code Execution

The performance of your application is important to your customer.  As stated previously, the performance your application is as dependent on the knowledge and skills of the programmer as they are on the language used to create it.

This excerpt from the book “SQL FOR .NET PROGRAMMERS” by D. M. Bush serves as another example where the programmer’s skills created a problem that could have been avoided if performance was a key consideration:

They decided to be clever and created a name/value pair system instead of putting it all in one row.  It should be no surprise to anyone that once this went into production it couldn’t hold up in real day-to-day use.
… They obviously had a problem.
But this could have been avoided if performance had been part of the criteria.  As the programmer I was discussing this with said, “All they would have had to do is throw in a million fake ‘rows’ and they would have known right away they had a problem before they built out the rest of the system.”
I’m not saying you need to optimize the guts out of a system, but anything that takes more than a few seconds to return a couple thousand rows, definitely has an issue.

Working and Performing are NOT equal

An application that works is not necessarily an application that performs.  As suggested in the excerpt, the root of the performance problem began with the scope of the application itself:  Performance was NOT part of the design criteria.  I contend that this is simply an excuse and not the root cause.

A skilled programmer should have sufficient knowledge to understand when and where code optimization and subsequent performance testing is required.  From the excerpt above, the performance impediment is directly assignable to the initial design and the lack of a test plan.

A DVP&R (Design Verification Plan & Report) is one of many tools used to develop new products and materials in the automotive industry.  A skilled programmer understands that unit testing is critical component of application development.

Performance Tuning

Many programmers take advantage of performance monitoring tools when testing their code.  If you have the opportunity to write T-SQL queries using Microsoft’s SQL Server Management studio, you will appreciate using the various performance monitoring tools available and query execution plan.

Not surprisingly, performance tuning and optimization efforts should focus on code where processes or functions are subject to repeated execution.  Consider that SQL is typical used to work with thousands or millions of records at a given time.  Fractions of a second on each iteration can quickly add up to minutes or hours of “wait” time.

I often say, “Be careful who teaches you.”  Many tutorials and books can show you “how” to write code that works.  However, I prefer those that also explain “why” and suggest methods for improving or enhancing performance.

For example, section 5 of the book Learning Python by Fabrizio Romano (Packt Publishing Ltd) is devoted to saving time and resources and echoes the sentiments expressed here.  Certainly, some books are entirely devoted to improving and optimizing performance.

The code we use to perform a given task is critical to the performance of the application.  Various algorithms exist to perform a variety of tasks where some will perform better than others depending on the circumstances.  By way of example, consider an application that continually requires a large number of elements to be sorted.  A programmer who understands the application will implement the best sorting algorithm from the many that are available.

Programmers solve problems!  Just for fun, consider the 2 Eggs Dropping problem as presented at “ProgrammerInterview.com“.  Although the solution is presented, it is interesting to note the variety of responses to this same problem on “Quora’s Dropping Eggs Q&A page“.  You have a first hand opportunity to see how different people approach the same problem to arrive at a solution.

The “Programmer Interview” (programmerinterview.com) web site presents a series of questions and solutions for a variety of programming languages (Java, C/C++, SQL, JavaScript, PHP and more) that make for interesting reading and possibly some learning.  “The first nonrepeated character” is another interview problem where an explanation of the algorithm’s efficiency is required.

DRY is Lean

DRY, an acronym for “Don’t Repeat Yourself”, is a programming principle that is easily applied to writing code effectively.  It is certainly easier to optimize a function or procedure that is written once and used in many places.  Libraries or packages make it easy to update a single piece of code that can be deployed across multiple applications.

There was a time …

Programmers once took pride in writing fast code that was “tight” and required the minimum resources to execute successfully.  When I started programming in the early 1980’s, machines were considerably slower with extremely limited memory and storage.

The concern today is that many “programmers” are simply using “building blocks” of code written by others without really make an attempt to understand what is happening behind the scenes.  As a result, resource hungry applications are created where poor code is masked by faster multicore processors and seemingly unlimited memory and storage.

The applications may have a great look and feel, but if the performance is lacking so will customer satisfaction.  The references here suggest that programmers are intuitively inclined to find the “best” fit, high performance algorithm.  That “performance” criteria needs to be defined seems counter-intuitive to the best practices of a good programmer.

Until Next Time – STAY lean!

Versalytics - Logo (293x293)

Related References:

2 Eggs Dropping – ProgrammerInterview.com

2 Eggs Dropping – Quora Question / Answer Forum

SQL For .Net Programers by D.M. Bush – Version 2.0 (Second Edition), Text copyright 2013-2016, DMB Consulting, LLC, ISBN:  1533071128, ISBN-13:  978-1533071125.

Design Verification Plan & Report (DVP&R) Services – Intertek.com

Learning Python by Fabrizio Romano, Packt Publishing Ltd., ISBN 978-1-78355-171-2

Vital Introduction to Machine learning with Python:  Best Practices to Improve and Optimize Machine Learning Systems and Algorithms (Computer Coding).

 

Lean Code – Part 2

Our article on “Lean Code” strongly suggests that the principles of lean can also be applied to the realm of software development, applications, and more specifically, programming.

Python has evolved to become a very popular and powerful programming language.  However, as mentioned in “Lean Code“, the performance of your application or program is as dependent on the skills of the programmer as they are on the capabilities of the programming language itself.

An example of skill versus language can be found in “Python for Data Science – For Dummies – A Wiley Brand” by John Paul Mueller and Luca Massaron (ISBN:  978-1-118-84418-2).  Page 106 of the book states:

It’s essential to realize that developers built pandas on top of NumPy.  As a result, every task you perform using pandas also goes through NumPy.  To obtain the benefits of pandas, you pay a performance penalty that some testers say is 100 times slower than NumPy for a similar task.

The functionality offered by pandas makes writing code faster and easier for the programmer, however, the performance trade-off exists for the end user.  Knowing when to use one module over the other depends on the programmer’s understanding of the language as opposed to simply providing a specific functionality.

Python for Data Science provides sufficient information to decide the best fit case for either pandas or NumPy.  The relevance of sharing this is to stress the importance of continually reading, learning, and understanding as much as possible about your language of choice for a given application.

From the end user’s perspective, performance matters and everyone wants it “yesterday”.  So, the question is, “Do we code quickly and sacrifice performance or sacrifice delivery for quick code?  What would you do?

Until Next Time – STAY lean!

Versalytics - Logo (293x293)

Related Articles / Books: