How the 9-to-5 workday has disappeared


Work has changed dramatically over the last few decades, according to a report in The Wall Street Journal recently release it has become more time-consuming, less stable, and more flexible.

In 1973, 6% of Americans said they worked excessive hours while in 2016, 26% said they worked more than 48 hours a week.

Insurance coverage by employers has also dropped since 1973, although companies now provide more benefits to aid work-life balance, such as paid parental leave and remote work options.

Businesses are spending less on employees, both in terms of compensation and capital investment, while investors get triple the payout from 30 years ago.

This has all contributed to workers increasingly acting like free agents in the job market.  While they have more control and flexibility, the “safety net that once came with full-time work has frayed.”

Don’t worry be happy

Americans are happier at work, but they might just be settling for less.

For the first time since 2005, more than half of U.S. workers say they’re satisfied with their jobs, according to the Conference Board, a research group. Employment is up, wages are finally rising and layoffs are near record lows, resulting in a more optimistic, contented workforce.

That buoyancy is giving Americans confidence to pull out their wallets.  Depending on whether the tax plan for 2017 gets implemented the middle class will continue to get hammered with taxes to maintain the social programs such as social security, ACA and other various programs.

There is no such thing as a free lunch but employers are looking to try and maintain a profit.  Small business owners will gain from the tax overhaul plan by not getting double taxed for corporate and personal income.  This fact is not known by most Americans.

Hopefully the work place will improve over the next few years putting wages back into a reality check.

New iPhone will be announced soon



September 12th a very important date to mark on your calendar.  That’s when Apple will host its next media event, at the Steve Jobs Theater on its new Cupertino campus, where it’s expected to unveil three new iPhone models, the third-generation Apple Watch, and an upgraded Apple TV with support for 4K and HDR display technologies.

With new iPhones just days away from being officially revealed, a Bloomberg journalist has reported what he saw in images of the expected new high-end model. The key change is said to be the removal of the Home button, which has been rumored before. However, Bloomberg goes into fine detail on accompanying gestural changes on the software side. Click here to read more about this.

Even if you’re planning to stick with your current Apple hardware for now, there’s lots more to look forward to on September 12. During Apple’s media event, expect to find out when you’ll be able to upgrade your devices to iOS 11, watchOS 4, tvOS 11, and perhaps even macOS High Sierra as well.

Additional Information

Meanwhile, if you ever connect to public hotspots, you’ll definitely want to know more about a new Wi-Fi feature that’s coming in iOS 11.   You can also check out MacRumors for additional information on the iPhone that will be released.

The hardest thing to understand with Android and iPhone phones is the cost, it is always going up placing close to a $1,000 for units.  Sooner or later folks will have to make that decision on whether their budgets will be able to handle it.  It would also be nice if there was a recycle program with the vendors to trade in a phone and get discounts.  You can always send to a third party but the amount of returned funds is low.  Anyway an Apple release is always fun.


Visual Studio 2017 Version 15.3 Released

Visual Studio 2017

For Visual Studio 2017 version 15.3, Microsoft focused on improving accessibility, particularly using Visual Studio with the most popular screen readers. Microsoft made over 1,700 improvements but if you are using Visual Studio 2017 in a low-vision or no-vision mode, a lot has improved.

Couple of the more major things Microsoft improved.

  • Debugging is much more accessible. Debugger windows like the Call Stack, Locals, Autos, and Watch windows were inaccessible to screen readers. That’s now fixed.
  • The VS editor’s text adornments let developers know about features available at particular points on a line of code, such as breakpoints, lightbulbs, and error and warning “squiggles.” Customers can now discover and navigate between these adornments via the new “Show Line Annotations” command set, which you can find on the editor context menu.

In addition to accessibility,  many fixes for reliability issues to improve performance, many of which were reported through report-a-problem. Here are some of the more notable ones that had high votes that were fixed:

  • A crash that could occur in C# and VB projects when editing linked files, files in Shared Projects, or files used in projects targeting multiple runtimes.
  • A race condition when debugging C# or VB projects that could cause Visual Studio to crash when ending the debugging session.
  • A crash in C# or VB projects when malformed metadata is encountered in the code file.
  • A crash that could occur when compiling a local function in C#.

Additional key improvements

  • Azure Functions Support. 
  • Broad Azure sign-in support.
  • Improved container support.
  • Continuous Delivery Tools now included.

For the full list of improvements check out the release notes for Visual Studio 2017 version 15.3.

New Microsoft debugger WinDbg available in preview!

Debugging Tools for Windows


Microsoft is excited to announce a preview version of a brand new WinDbg a Windows debugger.  WinDbg has more modern visuals, faster windows, a full-fledged scripting experience, built with the easily extensible debugger data model front and center.

Things to know

  • Installation - You can install the WinDbg Preview from the store if you have Windows 10 Anniversary Update or newer at – WinDbg Preview uses some features from the Windows 10 Anniversary Update, so that’s required for now.
  • Feedback - Familiarize yourself a bit with the Feedback Hub!  Microsoft will be using the Feedback Hub to help prioritize what you want Microsoft to work on! The Windows Insider website has a great overview on how to give good feedback – Once you’ve read that, just hit the ‘Feedback Hub’ button on the home ribbon.
  • Questions - Send feedback in the Feedback Hub, or tweet @aluhrs13 for answers. A FAQ on the blog sometime in the upcoming weeks will be posted.
  • Documentation - Microsoft has some early documentation up on MSDN that’s preliminary and subject to change at, you can give Microsoft feedback or propose edits to that documentation by hitting “Comments” or “Edit” on any page. Keep your eyes on the MSDN blog – – for more updates and tips.
  • Videos - You can view on Channel 9 studio with recorded episodes of Defrag Tools to help explain some of the basics of WinDbg Preview.
    • Defrag Tools #182 – Basics of WinDbg Preview and some of the features
    • Defrag Tools #183 – WinDbg Preview and a quick demo
    • Coming Soon – Defrag Tools #184 – A walk through the scripting features in WinDbg Preview

Restrictions and other things worth noting

  • At this point in the preview, Microsoft is only offering WinDbg Preview through the Windows Store. That means only devices running Windows 10 Anniversary Update can install it.
  • You might hit errors when trying to do something that requires elevation. You’ll have to manually launch WinDbg Preview elevated.
  • The concept of a workspace is going to be changing a lot. A workspace in WinDbg Preview is vastly different from one in WinDbg. The MSDN documentation linked above has more information.

C# 8.0 Previewed

Originally written in, some amazing stuff coming down the pipe for C#.

Nullable Reference Types

We’ve covered nullable reference types in the past, but briefly the idea is that reference types would no longer be nullable by default. Instead, you have to explicitly mark them as nullable using the same “Type?” syntax that you use for nullable value types.

Assigning a null to a non-nullable reference type will be a compiler warning. Likewise, reading from a nullable type would be a compiler warning unless the variable in question was explicitly checked for null ahead of time. So theoretically the only change developers need to make is to sprinkle question marks where appropriate.

Since our report, a new syntax was added to this feature. Consider a scenario where you know that the nullable variable x isn’t actually null, but you can’t prove that to the compiler. In this case you can use x!.Method() to suppress the compiler warning about potential null reference exceptions.

Async Streams (a.k.a. foreach async)

Async streams are the asynchronous equivalent of IEnumerable. As we reported before, async streams is something that they’ve been working on since 2015. After much debate the syntax they settled on is:

foreach await (string s in asyncStream)

When defining an async iterator, you would use this function signature:

async IAsyncEnumerable<T> MethodName()

As with normal IEnumerable methods, you can use “yield return” to build the stream of objects in a lazy fashion.

The benefit of using this instead of IObservable<T> from Reactive Extensions is that the consumer controls the flow rate. This is referred to as a “pull model”. By contrast, IObservable<T> is a “push model”, which means the producer can flood the consumer with a higher flow rate than it can handle.

Default Interface Implementations

Default interface implementations are essentially a limited form of multiple-inheritance. This will allow abstract interfaces to fully define methods just like abstract classes. However, abstract interfaces will still not be able to declare constructors or fields.

Note: You can simulate fields on an interface using ConditionalWeakTable.

The primary benefit of default interface implementations is that you may be able to add new methods to an existing interface without breaking backwards compatibility. This isn’t guaranteed, as it would only work when a suitable default method can be devised.

This is a very controversial feature. We won’t repeat the arguments for and against it here, but you can read a summary of them in our earlier article on default interface implementations.

Extension Everything

A long-time complaint about C# was that you could write extension methods, but not extension properties. In fact, there is no way to even define an extension property or event using the current pattern. Additionally, putting extension methods in static classes feels ‘weird’ to many people.

Under the new design, there is a new top-level construct called an “extension”. For example, if you want to create extension methods and properties for a Customer class you would write:

extension CustomerExt extends Customer {
    //methods and properties go here

As with interfaces, you cannot define instance fields in extensions but you can simulate them using ConditionalWeakTable. You can also define static fields.

Extension Interfaces

Extension interfaces, the ability to add new interfaces to existing classes, is also being considered. This would not be a C# 8 feature though, as it would require changes to the underlying runtime.

How to handle Open Source Software and Security.

Open source has always left so many questions unanswered on whether your comfort level for software security is high or you have sleepless nights.

The keys for open source have the following open questions, can someone else view the source and modify it  or do you rely on internal software developers fix the security flaws.   Open source is mostly freely written software by developers who love to write software code and do not mind submitting their projects for all to use.

When using open source, the internal developers need to test the piece out and whether it can be used in the production systems.  It is up to the developer to test the code on a machine that can be safely removed from production.  After the testing / QA phase the software can then be released into production.

The one key piece of the above paragraph is that the word testing is involved.  There are quite a few developers that tend to think they can incorporate their code as well as open source into a production system without even testing it.  Those are the companies that tend to write terrible, buggy nonsense and could open up lawsuits due to the damages incurred by their clients.



How do I secure the Open Source code that i download ?

Download only from a trusted source.  You should be able to grab code from GitHub or a download center that you can trust but if you think you can download a piece of code from any FTP or WEB server, you open up the door for anything to happen.  As described in the terminator, you are the virus.

You have the option to insert or update the open source when a patch / upgrade is released.  That is one way but if you think about it, you have the internal developer who should be able to update the code themselves otherwise what is the point you might as well hire the open source developer.


Maintain security on your software by simply locking down the production release and update only when you have QA/test the application in a test environment.  You need to make sure that your internal developer understands the legal aspect as well when using the open source in a commercial product.

So using open source is not bad but you need to make sure you read the code and any document associated whether you have the legal right to use it in a major distribution.


The 2017 Microsoft Product Roadmap

The 2017 Microsoft Product Roadmap has been updated and released for the public to view what is going to be coming this year.  One large item is the MS SQL Server release for Linux.  This alone may open the doors for Microsoft to take over the Linux market from MYSQL who has been the center piece on Linux for years.   This year’s product roadmap looks to be a bit less crowded, though major changes are on tap for Microsoft’s productivity solutions, while Windows 10 is poised for another landmark update.

Microsoft is attacking the Linux arena at this point giving Windows developers the necessary tools to work with MS Code to build Python applications or access a SQL server.

Microsoft Visual Studio 2017

Another major release will be Visual Studio 2017 that will:

  • Enhancements to productivity: Visual Studio 2017 features new filtering capabilities in IntelliSense, improvements to navigation and debugging, live code analysis and editing, and the ability to access files without projects.
  • Greater mobile development support: Developers can build iOS, Windows and Android apps using JavaScript, C# and C++. Visual Studio 2017 also comes with a mobile test recorder for application testing purposes.
  • More streamlined development for the cloud: “Visual Studio 2017 RC improves DevOps workflows from Git-based version control to making it much simpler to create continuous integration and continuous deployment pipelines,” according to Montgomery.
  • Speed and performance improvements: Visual Studio 2017 is faster to install and start up, has a smaller memory footprint, and loads solutions between two to four times faster than its predecessor.

The roadmap looks pretty strong with the different avenues that developers can grow new products and possibly get additional business / profits from.  Microsoft also will be delivering a new XBox as well as the Surface Pro 5 so 2017 seems to be a strong Microsoft year to come.

Baron Software

Getting performance statistics for cached stored procedures

It is always extremely important to maintain your SQL server to the utmost efficiency.    DBAs review the database structure and whether certain pieces such as stored procedures, triggers, etc. can be tuned even further.  One of the areas that will be discussed are the stored procedure which can be used during any time as well as day.

 Dynamic Management Views and Function (DMVs and DMFs) to identify resources used by stored procedures

DMVs and DMFs were introduced in SQL Server 2005 and are able to obtain figures only for those stored procedures that have execution plans in the procedure cache.  The SQL Server engine starts gathering information about the performance of a stored procedure the first time that  the plan is placed in the procedure cache.  As long as the stored procedure’s execution plan stays in the cache, SQL Server keeps updating the performance figures every time the stored procedure is executed. If the execution plan for a stored procedure is dropped from the procedure cache then the metrics for the stored procedure are also removed.  Therefore you will only be able to obtain metrics for those stored procedures that have cached plans, and those metrics will contain a summarization of the amount of resources used since the stored procedure was compiled, and its’ execution plan was placed in the procedure cache.  One thing to keep in mind is whether you are using the SP_RECOMPILE procedure for any or all stored procedures, that will remove the statistical information.


This DMV was introduced with SQL Server 2008.   By using this DMV, you can returns metrics for stored procedures, but it does not directly identify the stored procedure by name.  Instead, the DMV only identifies the object_id, and a database_id for each stored procedure:  Therefore to identify the actual stored procedure name, that the performance figures belong to, you should either join the output of this DMV with one of the system views within the appropriate database, or use a few metadata functions.

      OBJECT_NAME(object_id, database_id) ‘SP name’,  
     fld.total_elapsed_time/fld.execution_count AS [avg_elapsed_time], 
     fld.last_elapsed_time, fld.execution_count 
  FROM sys.dm_exec_procedure_stats AS fld
  where database_id <> 32767
  ORDER BY [total_worker_time] DESC;

This SQL example demonstrates the information pertaining to the stored procedures.  This allows you to review what if possible is performing poorly or long.

  • cached_time: when the procedure was cached or last started.
  • last_execution_time: when the procedure was last executed.
  • execution_count: this tells you the amount of times the procedure was executed

I would suggest to not to display the resource database which always has a ID of 32767 and you can view that in the where clause.

The Resource database is a read-only database that contains all the system objects that are included with SQL Server. SQL Server system objects, such as sys.objects, are physically persisted in the Resource database, but they logically appear in the sys schema of every database. The Resource database does not contain user data or user metadata. (from BOL).  In SQL Server the maximum databases per instances that can be created are 32,767. This last number has been reserved by Resource Database itself.


This DMV can be used to obtain statement level metrics.  These metrics are only available if the statement comes from a cached plan.  By using this DMV and summarizing the statement metrics up to the plan level, you are able to identify metrics for stored procedures.

       DB_NAME(dbid) AS DatabaseName,
      OBJECT_SCHEMA_NAME(objectid,dbid) AS [SCHEMA_NAME],  
      OBJECT_NAME(objectid,dbid)AS [Process_Name],
      MAX(qs.creation_time) AS 'cache_time',
      MAX(last_execution_time) AS 'last_execution_time',
      MAX(usecounts) AS [execution_count],
      SUM(total_worker_time) / SUM(usecounts) AS AVG_CPU,
      SUM(total_elapsed_time) / SUM(usecounts) AS AVG_ELAPSED,
      SUM(total_logical_reads) / SUM(usecounts) AS AVG_LOGICAL_READS,
      SUM(total_logical_writes) / SUM(usecounts) AS AVG_LOGICAL_WRITES,
      SUM(total_physical_reads) / SUM(usecounts)AS AVG_PHYSICAL_READS      
  FROM sys.dm_exec_query_stats qs  
   join sys.dm_exec_cached_plans cp on qs.plan_handle = cp.plan_handle 
   CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) 
  WHERE objtype = 'Proc' AND text NOT LIKE '%CREATE FUNC%' and dbid <> 32767
  GROUP BY execution_count, cp.plan_handle, DBID, objectid 
  ORDER BY execution_count DESC

Final Wrap up

As demonstrated these queries will provide you with a simple method to view the stored procedures performances.  You can tune the stored procedures that need it by watching the various reporting fields displayed.    You have the ability of storing this information or exporting it to Excel for maintaining a log over a time period.










Season 3 of Halt and Catch Fire

The season finale of Halt and catch fire was shown last week for a solid 2 hours.  The entire show has gone from the personal computer start to about the 1990s with the advent of Windows 3.

The series has had it’s moments with characters that tend to be flaky but came up with inventive ideas that brought social up with ease on social interactions (Mutiny), personal computers that were built to take on the business world (Giant) and finally what IPOs can do to a person.

Flawed Characters that know how to party!

The characters have grown but in reality some of them would have been in prison for the shady dealings such as “Joe”, a person who destroyed the personal computer that was dealing a blow to IBM in season one, gave up on a boyfriend, destroyed a company in season two as well as a marriage and finally taking software anti-virus code and giving it to a person “Ryan” who was mentally unstable.

“Cameron” is a flake, whose ideas of C++ object oriented is crap but she can make a company using a Commodore Vic-20 and wrapping up season 3 by having a one night stand with “Joe”.    Somehow she creates Mutiny, loves chaos and doesn’t get a descent haircut after 3 years.

“Gordon” is a engineering genius but has a disease that may kill him and most likely will occur in the final season.  He also decides to go back with “Joe” to take over the internet.

Finally “Donna” who worked extremely hard to get the IPO and make millions but is totally dissatisfied with what her life has turned into, wishing to get all 4 characters into one room to rekindle the past.

Season four is the series finale

It has been a pretty good series but the time to close it out comes next year with 10 episodes.   The producers have taken 30 years of the rising personal computer along with the internet.  They have put it into 30 or more episodes making viewers see a distorted past.  The recommendation is to read the biography of Steve Jobs or Bill Gates.  That will give you a real prospective of what transpired during those years.


More Coding in Delphi

More Coding in Delphi Book Review

Nick Hodges has released the latest additional to the Delphi world called “More Coding in Delphi”.  The book is a pretty neat manual but more on the theory side then actual code.  There are samples in each chapter but this is not a typical technical manual that breaks down the syntax concerning Delphi.  The predecessor “Coding in Delphi” was very similar and could be considered part one that dives into object pascal aspects of Delphi.

The Chapters are about 12 to 20 pages each and deals strongly in the object oriented Delphi or Object Pascal.  You can pick up both books together for a low cost at various web stores and they are a highly recommended book to pick up.  You can use the knowledge you gain when working with C# as well.

The writing is good and a reader can get this done in less then a day with about a little over 200 pages.  This will not go into the form designer, VCL, or the Firemonkey (FMX)  framework but you will pick up tips on:

* How to write stronger code using Delphi.
* Using Delphi with design patterns like the Factory, Observer, Adapter, Decorator, and Command Patterns.
* How to take advantage of Operator Overloading to simplify your code.
* How to write multi-threaded and parallel code and take advantage of the multiple cores in your CPU.
* How to write Aspect-oriented code to help separate your concerns.
* The history of and an deep-dive into the world famous TSmiley component.

Author Nick Hodges has been a part of the Delphi community from the very beginning working with various developers and I did have the pleasure of running into him in Baltimore during the Delphi Developers Day.  Nick has a good sense of humor and there are numerous videos you can watch on YouTube.