The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,839 other subscribers

Archive for the ‘Development’ Category

Threading in C# – Free E-book

Posted by jpluimers on 2016/01/18

Still a great book. I love the chapter Threading in C# – Free E-book which you also can get as a PDF download.

It’s a chapter from C# 56/5/… in a Nutshell by Joseph Albahari. Great book!

Don’t forget to read these as well: Jon Skeet: Multi-threading in .NET: Introduction and suggestions (printable) Multi-threading in .NET: Introduction and suggestions (browseable)

--jeroen

Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Development, Jon Skeet, Software Development, Visual Studio 2008, Visual Studio 2010, Visual Studio 2012, Visual Studio 2013, Visual Studio 2014, Visual Studio 2015, Visual Studio and tools | Leave a Comment »

On my research list is Netcat: the TCP and UDP swiss army knife

Posted by jpluimers on 2016/01/14

Through [WayBack] netcat 1.11 for Win32/Win64 I bumped into [WayBackNetcat – Wikipedia, the free encyclopedia.

The docs at [WayBack] Netcat: the TCP/IP swiss army made it arrive on my research list.

Time for some scripting with it (:

–jeroen

via:

Posted in Communications Development, Development, Internet protocol suite, TCP | Leave a Comment »

Getting your public IP address from the command-line

Posted by jpluimers on 2016/01/13

Many sites giving your public IP address return a web page with a bloat of html. From the command-line, you are usually only interested in the IP-address itself. Few services return exactly that.

Below are command-line examples to provide the public IP address mostly from a *nix perspective. Usually you can get similar commands to work with Windows binaries for wget and Windows binaries for curl.

In the end, I’ve opted for commands in this format, as I think akamai will last longer than the other sites (but does not include an end-of-line in the http result hence the echo on Mac/*nix):

I’ve not tried aria2 yet, but might provide commands for that in the future.

These are the Linux permutations for akamai:

curl whatismyip.akamai.com && echo
curl ipv4.whatismyip.akamai.com && echo
curl ipv6.whatismyip.akamai.com && echo
curl ipv4.whatismyip.akamai.com && echo && curl ipv6.whatismyip.akamai.com && echo

The last two are convenient when you have both IPv4 and IPv6 configured on “the outside”.

You can replace curl with wget -q -O – (which outputs to stdout) for each command. You can even ommit the http:// (as that is the default protocol for both curl and wget).

Read the rest of this entry »

Posted in *nix, *nix-tools, Apple, bash, bash, Batch-Files, cURL, Development, Linux, Mac, Mac OS X / OS X / MacOS, Mac OS X 10.4 Tiger, Mac OS X 10.5 Leopard, Mac OS X 10.6 Snow Leopard, Mac OS X 10.7 Lion, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, MacMini, OS X 10.10 Yosemite, OS X 10.8 Mountain Lion, OS X 10.9 Mavericks, Power User, Scripting, Software Development, SuSE Linux, wget | Leave a Comment »

In Memoriam: Peter Naur 1928-2016 | News | Communications of the ACM

Posted by jpluimers on 2016/01/06

Just learned that Peter Naur, a Danish computer scientist and 2005 recipient of the ACM A.M. Turing Award, died January 3 after a brief illness.

In memoriams:

Peter was the N in BNF; some more background info:

 

Posted in Development, History, Software Development | Leave a Comment »

Figuring out Windows Registry Permissions: AccessCheck

Posted by jpluimers on 2016/01/06

I had to verify the rights on some parts of the registry were the same for a lot of machines. So I used AccessChk by SysInternals.

If there were difference, my plan was to use REGINI to fix them.

It appears that AccessCheck does not show the permissions for objects within the specified path, not for the path itself.

As I observed that

accesschk -k hklm\software\Microsoft\Windows\Shell

does not reveal results.

But

accesschk -k hklm\software\Microsoft\Windows

shows:

Read the rest of this entry »

Posted in Batch-Files, Development, Power User, Scripting, Software Development, Windows, Windows 7, Windows 8, Windows 8.1, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 | Leave a Comment »

Handy new tool: GitHub Contributions Archive based on the GitHub Archive providing your github history

Posted by jpluimers on 2016/01/05

The GitHub Contributions Archive is based on the GitHub Archive (see below) and provides insight in anyones contributions. I discovered through a recent post by Ilya Grigorik:

Handy new tool (built on top of githubarchive.org dataset!) that aggregates all of your GitHub activity: bit.ly/1mraQyT.Apparently I’ve contributed to… – Ilya Grigorik – Google+

The GitHub Archive is amazing as it provides way more history than Github does by itself:

GitHub Archive is a project to record the public GitHub timeline, archive it, and make it easily accessible for further analysis.

Researching that data can provide tons of information, for instance about behaviour. It is also available through Google BigQuery so you can write your own queries for it.

The GitHub Contributions Archive – built by Liam Bowen – provides one (very usable) kind of insight: contributions, but there is much much more as quite some research, visualizations and talks have shown.

Interesting stuff!

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, GitHub, Power User, Software Development, Source Code Management | Leave a Comment »

finding and deleting Windows EFI partitions with wmic and diskpart

Posted by jpluimers on 2016/01/05

DiskMgmt.msc does not allow you to delete EFI partitions.

I tried with WMI first.

wmic has a nice assoc mode that allows you to find associated classes like the logical drive association to physical partitions.

But lets start simple: physical partitions and logical drives.

C:\temp>wmic partition get DeviceID, DiskIndex, Index, Type
DeviceID               DiskIndex  Index  Type
Disk #1, Partition #0  1          0      GPT: System
Disk #0, Partition #0  0          0      Installable File System

C:\temp>wmic logicaldisk get Caption, DriveType, FileSystem, ProviderName, VolumeName
Caption  DriveType  FileSystem  ProviderName  VolumeName
C:       3          NTFS
D:       5

These Associations:

They can be hard to use.

LogicalDisks are bound to a Partition, but a Partition does not need to have a Logical Disk.

I wanted the other way around: finding partitions not having a LogicalDisk association. But that does not seem to be possible with WMI at all.

Heck, detecting EFI partitions with WMI seems to be impossible.

DiskPart

Even though there needs to be a 15 second delay between DiskPart invocations:

you must allow at least 15 seconds between each script for a complete shutdown of the previous execution before running the DiskPart command again in successive scripts

it seems to be the only way to go.

But it is hard, as there seems to be no way to convert from volume (which lists the EFI partition as ESP), to disk+partition.

So a way to automate what How to delete a protected EFI disk partition with Windows 7 or 8 | WinAbility Software describes seems impossible.

Any thoughts on that?

This is what I have done so far

  1. diskpart
  2. list volume
    1. now note the volume that has ESP
  3. list disk
  4. for each disk
    1. select disk #
    2. list disk
      1. to confirm you selected the correct disk
    3. list partition
    4. select partiton #
    5. list partition
      1. to confirm you selected the correct partition
    6. list volume
      1. to confirm the partition indeeds corresponds to the EFI volume
    7. delete partition override
    8. list volume
    9. list partition
    10. for each partition coming after the EFI partition
      1. select partition #
      2. list partition
        1. to confirm
      3. delete partition
      4. list partition
        1. to confirm

Now you can create a new partition on the disk.

–jeroen

via:

Posted in Batch-Files, Development, Power User, Scripting, Software Development, Windows | Leave a Comment »

From my paper archives: early QuickReport materials and BDE network installation tips

Posted by jpluimers on 2016/01/01

[WayBack] While cleaning up my “attic”, I came across some old QuickReport 1.0 documents and BDE installation tips so I scanned them.

I think the first document is by this Lars Søndergaard.

The last is by Dave Robinson, then working at Amber Computer Systems Inc, but I could not find on-line activity of him If you know him, please let me know his on-line contact info.

–jeroen

Posted in Delphi, Delphi 1, Development, History, Software Development | 2 Comments »

Disable screensaver using registry settings

Posted by jpluimers on 2015/12/30

This is what I needed:

:: http://www.windows-commandline.com/disable-screensaver-registry-settings/
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveActive /t REG_SZ /d 0 /f

And this one to verify the current settings:

:: http://www.windows-commandline.com/disable-screensaver-registry-settings/
:: possible names
:: ScreenSaveActive
:: ScreenSaveTimeOut
:: ScreenSaverIsSecure
reg query "HKEY_CURRENT_USER\Control Panel\Desktop" | findstr /I /C:"ScreenSave"

–jeroen

via:

Posted in Batch-Files, Development, Scripting, Software Development | Leave a Comment »

Command Line Kung Fu: Episode #43: Users & Groups

Posted by jpluimers on 2015/12/29

I needed to compare the local group memberships on a few systems.

I knew there is the distinction between

  • net group (which despite documentation requires /domain as it does not support local groups: you get a nice NET HELPMSG 3515 error) and
  • net localgroup (which can either run locally or with /domain).

So I came up with this batch file thanks to Command Line Kung Fu:

:: http://blog.commandlinekungfu.com/2009/06/episode-43-users-groups.html
for /F "skip=4 delims=*" %%g in ('net localgroup ^| find /v "The command completed successfully"') do @net localgroup "%%g"

It can be done in PowerShell too, but is more work.

Based on that and Beyond Compare I created some diff scripts.

–jeroen

via:

Posted in Batch-Files, Development, Scripting, Software Development | 1 Comment »