Earth Day Reflection, 2013…

2017-07-27T00:01:03+00:00 April 24th, 2013|Uncategorized|

As you may recall, last year the folks at my <un-named customer location> graciously permitted me to participate in their Earth Day recycling “event”.  During this event, the organization encourages the employees to bring in certain items to recycle, which are picked up and utilized by nearby recycling organizations.  This year, the supporting organizations again included those that accept old eyeglasses, old mobile phones for soldiers, etc., as well as computer component recycling by local organization re-Source Partners. 

No matter what your opinion of “Earth Day” itself, I think it’s a great idea to utilize this day in a way that fits your motivations.  As I’ve mentioned before, I don’t think it matters as much *why* you do good things, as it does that you just *do*.  So in my busy life, I think it’s great to have these sorts of reminders to make at least a tiny donation (like the eyeglasses, phones, etc.), especially when the stuff doesn’t even matter to you any more.  Even recycling old computer junk with organizations like this can be considered a “donation” when you think about all the componentry and raw material that will be scavenged from the old computer hardware and returned to usefulness in new products; so much better than filling up a land fill!

 EarthDay2013This year, while my part was fairly small (my mother’s old PC and monitor, 2 of my wife’s old laptops, 2 desktops I got off eBay fro Dev/Testing, and 2 Intel clone servers that served me well), I took a moment to reflect on a couple things:

  1. Even though these are all *working* computers and parts, all of the computing power — combined — is still just a fraction of just ONE of my Virtual Machine hosts that replaced them
  2. It’s a tiny piece of “mess” in my basement that can’t and won’t be re-made; these types of computer components are just not seen as much anymore (and certainly will not be seen in my home anymore) as smartphones, tablets, and other modern devices (and cloud services) have pretty much replaced the need for these things

So that’s all the good news…  The bad news is that my basement still has a ton more of this old hardware.


But I hope Earth Day 2013 helped you in some way, too.




Powershell – How recursive directory searches got better with PSv3…

2017-07-27T00:01:04+00:00 April 17th, 2013|Uncategorized|

In the old days, we ate dirt for dinner, brushed our teeth with sticks, used PowerShell v2 — and we *liked* it! 

There, that’s my tribute to Dana Carvey as “Grumpy Old Man”.  Google it, kids.

Anyway, I’ve got an absolute ton of old PowerShell scriptlets that I have lying about that I regularly cannibalize or resuscitate back into production.  And since we are in that squishy transitional period between PowerShell v2 and v3, I don’t always bother to check them for compatibility with v3 or update features in the script to take advantage of new capabilities.  But I hit on one v3 improvement the other day that solved a problem has bugged me so much for so long that I wanted to shout from the mountaintops about it!  And since I live in mostly-mountainless Michigan, the blog is the best I can do…

Really it’s such a little thing.  But it’s so overdue.

In the past, if you wanted to recursively inspect a folder structure on a remote server — for instance while fishing for explicit NTFS permissions on folders — you were forced to inspect all folders *and* files, no matter if you only wanted folders.  Basically, you had to ask for everything (all children folders and files, recursively), then parse the result to extract the folders (check psIsContainer) from the listing.  Here’s an example of this, similar to what you might see all around the internet:

# For PowerShell v2
$containers = Get-ChildItem -path $TopPath$CurrentParent -recurse | ? {$_.psIscontainer -eq $true}

 Of course, this could be incredibly wasteful in processing, network bandwidth, time, etc…   All this time I’ve always wished there was a way in my loops to just ask for ONLY the folders, to save all of that waste.  Thankfully, this has arrived with v3.  Behold:

# For PowerShell v3
$containers = Get-ChildItem -Directory -path $TopPath$CurrentParent -recurse

 This has significantly sped up some of my analysis scripts that I run in a large enterprise, cutting as much as half a day off of some of my execution times (I did mention it was large).  So really what this means is that I have to start spending more spare time looking through the v2/v3 differences…  But I won’t have any spare time until I implement more v3 changes…  Quite a conundrum… 



A cool ‘Remote Desktop Connection Manager’ tip!

2017-07-27T00:01:04+00:00 April 3rd, 2013|Uncategorized|

I am constantly monitoring multiple Microsoft Windows Servers and XP workstations via Remote Desktop Connection Manager and having to switch between each console one at a time is a very user-intensive and time-consuming process.  Though, I have recently discovered a very useful and time-saving trick that I will share with you below…

First, by default, the Remote Desktop Connection Manager gives you a thumbnail view of all of your workstations when you click on any “group” of servers from the left server pane list.  I always thought this was a “gimmick” and never thought twice about using it for anything because the dimensions of the thumbnail views of the remote desktops were just way too small to be useful.

But after reviewing the program’s options I found that you can modify the size of the thumbnails (Tools > Options > Client Area > Thumbnail Size)!

But that isn’t all!

The thumbnails are actual “live” clickable Remote Desktop sessions; so if you set the pixel size of the thumbnails to 25%, 30% or 40% of your screen size, you can fit 4-12 active server connections into one very productive window (obviously depending on your monitor size and screen resolution!).  This screen cap should give you a good idea of what I mean:



I hope you find this tip as useful as I did!  Enjoy!



Fatal error: Uncaught exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: `POST` resulted in a `400 Invalid instrumentation key` response: {"itemsReceived":1,"itemsAccepted":0,"errors":[{"index":0,"statusCode":400,"message":"Invalid instrumentation key"}]} ' in /home/coretek/public_html/wp-content/plugins/application-insights/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113 Stack trace: #0 /home/coretek/public_html/wp-content/plugins/application-insights/vendor/guzzlehttp/guzzle/src/Middleware.php(66): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response)) #1 /home/coretek/public_html/wp-content/plugins/application-insights/vendor/guzzlehttp/promises/src/Promise.php(203): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response)) #2 /home/coretek/public_html/wp-content/plugins/application-insights/vendor/guzzlehttp/promises/src/Promise.php(156): GuzzleHttp\Promi in /home/coretek/public_html/wp-content/plugins/application-insights/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 113