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,862 other subscribers

tkannelid comments on The Death of CyanogenMod and What it Means for Development

Posted by jpluimers on 2016/12/26

if you have a CyanogenOS phone and can disable updates on it, do so.

For instance if you have a OnePlus One…

[WayBackReddit: tkannelid comments on The Death of CyanogenMod and What it Means for Development

–jeroen

Posted in Android Devices, OnePlus One, Power User | Leave a Comment »

Some notes on my Windows 10 upgrade processes

Posted by jpluimers on 2016/12/26

Shortly before the “Free Windows 10 Update” deadline I upgraded a bunch of physical and virtual machines each with different configurations providing various challenges.

Back then, I didn’t have time to properly write down notes so I saved a bunch of links. Now I found time to add a few notes below.

Windows Editions

Note there are fewer Windows 10 editions (Home/Pro/Enterprise) are different than before so there is a mapping (for instance Windows Ultimate does not map to Windows Enterprise): Windows 10 free upgrade matrix.

Getting the Windows 10 ISO image

It’s much easier, faster and disk-space friendly to install from ISO than waiting for GWX.exe or GWXUI.exe, especially when installing multiple systems in a row.

I don’t use x86 systems any more so I used Win10_1511_2_English_x64.iso which is slightly newer than Win10_1511_1_English_x64.iso and is likely to be outdated by now so get yours through https://www.microsoft.com/software-download/windows10.

If you insist, there is Win10_1511_2_English_x32.iso (note the x64 -> x32 consistency, many people refer to it as x86 though).

Mounting ISO images

Windows 10 does not like to upgrade when you have the Daemon Tools ISO mounting tool installed. But Portable WinCDEmu is fine.

The Windows 10 installer doesn’t suffer from Portable WinCDEmu not mounting after reboot: during the first install step it copies enough to continue without the ISO image mounted after reboot.

Installing using (Virtual) CD drive

Just run the SETUP.EXE in the root of the CD drive.

Creating bootable media

Some systems do not have optical media any more so you need to create bootable media.

In the past, you used ImageX for that (e.g. Step-by-Step: Basic Windows 7 Deployment for IT Professionals), but as of Windows 8/Server 2008 R2 there is DISM: Apply Images Using DISM.

I used this command-line to copy from H: (the content of the ISO image) to V: (the VHD drive):

dism /apply-image /imagefile:H:\Sources\install.wim /index:1 /ApplyDir:V:\

More information at DISM Image Management Command-Line Options and DISM.exe Replaces ImageX.exe – My Thoughts On IT… (you can even use it to backup/restore file-based Windows images).

Multi-boot / boot configuration data

In the past (think Windows XP and earlier), you had BOOT.INI to choose which one to boot. Now there are msconfig and Boot Configuration Data editors like bcdedit and bcdboot for that:

Installing on VHD

You cannot update Windows 10 on a “Boot to VHD” based system: it’s one of the limitations in What is not supported for native boot when using VHDs:

  • Upgrading the operating system booted from a VHD. If you boot from a VHD, you cannot upgrade the Windows version in the VHD to a newer version.

There is a cumbersome workaround using Hyper-V which I didn’t use (look for “How do I install the November Update if Windows 10 is running on a VHD using native boot?” in Hands-on with Windows 10: Upgrading, installing and activating in the real world | ZDNet).

These are the steps I used to get it on a VHD (based on the How to install Windows 10 to VHD and create a dual boot system with Win 7/8 video below):

  1. Download the ISO
  2. Mount the ISO
  3. Create a VHD using Disk Management (diskmgmt.msc)
    1. Ensure 20 gigabytes or larger (I used a pre-allocated disk)
    2. Name it appropriately (note the name)
    3. Initialise it using MBR
    4. Create a new “Simple Volume” formatted as NTFS
    5. Mount it (I used V: drive)
  4. Start a command prompt (cmd.exe) as Administrator and confirm the UAC prompt
    1. Image the ISO to the VHD using DISM (see command-line above)
    2. Add the VHD (drive V:) to the boot list: bcdboot V:\Windows
  5. Using MSCONFIG ensure the Windows 10 VHD boots as default (it will reboot at least once during installation)
  6. Complete the Windows 10 Installation
    1. Enter the key used for the original Windows system or a new Windows 10 ke
  7. Optionally Using MSCONFIG ensure the original Windows 10 VHD boots as default (it will reboot at least once during installation)

You can use an existing VHD for DISM in which case you might need to Resize/extend virtual hard disk to get more space under Windows 7/8/10.

 

Key validation issues

If you get an error 0x80041023 during key validation at install time, then retry it later. Often the validation then just works. If it doesn’t, try to Activate Your Windows 10 License via Microsoft Chat Support or phone based activation:

  1. Press Windows key + X then clickRun, then type: slui.exe 4
  2. Next press the ‘ENTER’ key
  3. Select your ‘Country’ from the list.
  4. Choose the ‘Phone Activation’ option.
  5. Stay on the phone (do not select/press any options) and wait for a person to help you with activation.
  6. Explain your problem clearly to the support person.

–jeroen

Read the rest of this entry »

Posted in Power User, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows XP | Leave a Comment »

Organizational Doxing – Schneier on Security

Posted by jpluimers on 2016/12/26

X-mas day 2 thought:

best defense might be to refrain from doing things that don’t look good on the front pages of the world’s newspapers

Source: Organizational Doxing – Schneier on Security

–jeroen

via: »Organizations are increasingly getting hacked, and not by criminals wanting to steal credit card numbers or account information in order to commit fraud,… – Kristian Köhntopp – Google+

Posted in About, LifeHacker, Opinions, Personal, Power User | Leave a Comment »

Robert C Martin – Functional Programming; What? Why? When? – YouTube

Posted by jpluimers on 2016/12/26

Great after X-mas watch: Robert C Martin – Functional Programming; What? Why? When? – YouTube subtitled “the failure of state”.

Thanks [WayBackAndrew Rohn – YouTube for the timestamp list:

  • 4:07 “Functional Programming: What? When? Why?” or “The Failure of State”
  • 5:10 Rich Hickey is the author of Clojure. Listen to his talks. 5:40 What is state? Variables.
  • 11:15 Structure and Interpretation of Computer Programs. This is a fascinating book. For the first 250 pages, the book uses no assignment statements.
  • 14:15 Here’s how SICP’s model of computing worked before they introduced an assignment statement. Simply replace a function call with its implementation.
  • 15:58 Once you introduce assignment. You can no longer replace a function call with its implementation. Why? Because the state of the system may have changed. An assignment statement introduces the concept of time.
  • 18:04 Side effect: an assignment statement. If there’s no assignment, there’s no side effect.
  • 20:22 What “hack” have we done to protect us from memory leaks? Garbage collection.
  • 31:46 Functional programming was invented in 1957 before OO and structured. But memory was too expensive to make it practical. But memory is cheap now.
  • 32:53 Should we change how we program? We should because: 1) Functional programs are simpler – which makes them easier to write and maintain 2) There’s no temporal coupling – no worrying if some function was called before another function. 3) Fewer concurrency issues. In a purely functional program, there’s no concurrency because there is no state. 4) No asking, “What’s the state?”
  • 38:38 We’re using multicore CPU’s now because we can’t increase clock rate anymore. And hardware makers are doing bizarre tradeoffs. They’re making individual processors slower but putting more processors in. So individual cores slow down but the chip throughput goes up if you can take advantage of all the cores.
  • 42:00 How are you going to work with an abundance of cores? Maybe we need to walk away from the assignment statement.
  • 49:49 OO = procedure + state. OO is exposed procedure but hidden state (encapsulation). It’s possible to write functional programs using an OO style. All of the objects become immutable.

–jeroen

Posted in Design Patterns, Development, Functional Programming, Software Development | Leave a Comment »

Apple Tesseract 1992 prototype (not Tessaract)

Posted by jpluimers on 2016/12/23

A while ago that bitsavers published a picture of an Apple 1992 Tesseract Motherboard.

It’s from the 68k to PowerPC RISC transition Apple made in the second half of the 1980s and first half of the 1990s where several groups within Apple were working on new equipment.

More details of those are here:

Note this is not [Wayback] TesSeRact from the DOS TSR (Terminate and Stay Resident) days:

Via [Wayback] Ralf Brown’s Files

Downloadable files by Ralf Brown:x86/MS-DOS Interrupt List, RBcomm, SPAWNO, AMISLIB, DV-GLUE, RBdualVGA,RBkeyswap, RBspeed, PCICFG, CMU-EBMT. (20aug10)

 

–jeroen

Read the rest of this entry »

Posted in 68k, History, MS-DOS, Power User, PowerPC, Tesseract, TSR Terminate and Stay Resitent | Leave a Comment »

How to securely delete files in OS X 10.11 ‘El Capitan’ | MacIssues

Posted by jpluimers on 2016/12/23

Interesting: diskutil secureErase freespace LEVEL /Volumes/DRIVENAME

–jeroen

Source: How to securely delete files in OS X 10.11 ‘El Capitan’ | MacIssues

Posted in Apple, 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 | Leave a Comment »

Where can I get the glossary of Microsoft’s standard translations for computer terms? – The Old New Thing

Posted by jpluimers on 2016/12/22

A while ago I bumped into [WayBackWhere can I get the glossary of Microsoft’s standard translations for computer terms? – The Old New Thing

Since I’m a non-digital pack-rat as well, I love [WayBack] this comment by [WayBack] Ian Boyd:

We have an *old* copy of the Microsoft Style Guide – an actual book. From that book i’ll always remember that e-mail has a hyphen in it.

I’ve that book too and write e-mail the same way.

But books are often hard to search through, so I love this list that [WayBack] Raymond Chen made:

I especially like the [WayBackinteractive search, but with any outcome, please remember that the context of your translation is very important.

For instance, I vividly remember a project some 20+ years ago where we had to translate the words “Close” and “Cancel” in the realm of the insurance business.

All guides indicated “Close” should become “Sluiten” which in that realm is colloquial for “Afsluiten” which means “to take out an insurance” implying a totally wrong action. Similarly “Cancel” translated to “Annuleren” which in the same realm would mean “to cancel an insurance”.

So we went for very specific translations narrowing down what exactly would happen in those screens, like:

  • “Verlaten” (English “Exit”)
  • “Bewaren” or “Opslaan” (English “Save”)
  • “Terug” (English “Back”)

–jeroen

Posted in Development, internatiolanization (i18n) and localization (l10), Software Development, The Old New Thing, Windows Development | Leave a Comment »

Delphi functional programming: Sequences

Posted by jpluimers on 2016/12/22

In functional programming, sequences are an important way of expressing logic.

This G+ post by Colin Johnsun discusses a library and a Spring4D way to handle sequences: I’ve release a library that allows you to iterate through a collection of items without using loops…

It’s interesting when mapping, reducing and solving many other problems in a functional way.

Background:

–jeroen

Posted in Delphi, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | Leave a Comment »

Simple download script to get all FREE Microsoft eBooks again! Including: Windows 10, Office 365, Office 2016, Power BI, Azure, Windows 8.1, Office 2013, SharePoint 2016, SharePoint 2013, Dynamics CRM, PowerShell, Exchange Server, System Center, Cloud, SQL Server and more! | Microsoft Director of Sales Excellence – Eric Ligman

Posted by jpluimers on 2016/12/21

I saw a lot of people mention the Eric Ligman, Microsoft Director of Sales Excellence Blog a while ago: FREE! That’s Right, I’m Giving Away MILLIONS of FREE Microsoft eBooks again! Including: Windows 10, Office 365, Office 2016, Power BI, Azure, Windows 8.1, Office 2013, SharePoint 2016, SharePoint 2013, Dynamics CRM, PowerShell, Exchange Server, System Center, Cloud, SQL Server and more! | Microsoft Director of Sales Excellence – Eric Ligman

Even though I make most of my income from the Microsoft World, my main machine is a Mac and I dislike browsing

So I wanted to download them all in one easy go so SpotLight could index them.

Luckily there is a file that has all the download URLs in it: http://ligman.me/29zpthb (it expands to http://www.mssmallbiz.com/ericligman/Key_Shorts/MSFTFreeEbooks.txt and is archived at http://web.archive.org/web/*/http://www.mssmallbiz.com/ericligman/Key_Shorts/MSFTFreeEbooks.txt).

The file is mentioned at How to “Download All” of the FREE eBooks and Resources in My FREE eBooks Giveaway | Microsoft Director of Sales Excellence – Eric Ligman.

It’s very easy to download from there using wget (on Windows get it from https://eternallybored.org/misc/wget/ – the x64 versions work fine).

Be sure to use a “recent” version as 1.12 and lower have no support for the --trust-server-names parameter which makes wget use filenames from the http 301 followed links:

--trust-server-names
     If this is set to on, on a redirect the last component of the redirection URL will be used as the local file name.  By default it is used the last component in the original URL.

This is the script:

wget -m -np --trust-server-names http://ligman.me/29zpthb
wget -m -np --trust-server-names --input-file www.mssmallbiz.com/ericligman/Key_Shorts/MSFTFreeEbooks.txt

You might think why not do just wget -m -np --trust-server-names --input-file http://ligman.me/29zpthb  in one go?

Simple answer: like all software, wget occasionally crashes somewhere in the middle of downloading the URLs embedded.

If you restart, then it sees the followed http://ligman.me/29zpthb file has already been downloaded and won’t re-scan its contents.

Bug? I’m not sure. But the two-liner just works.

–jeroen

PS: if you want a script with all the URLs, try these:

https://news.ycombinator.com/item?id=12071552


wget –trust-server-names -m -np http://ligman.me/29ngkYn
wget –trust-server-names -m -np http://ligman.me/29jL5wW
wget –trust-server-names -m -np http://ligman.me/29afIRV
wget –trust-server-names -m -np http://ligman.me/29pyHgR
wget –trust-server-names -m -np http://ligman.me/29dmbfC
wget –trust-server-names -m -np http://ligman.me/29ollRF
wget –trust-server-names -m -np http://ligman.me/29gvv67
wget –trust-server-names -m -np http://ligman.me/29pzkHg
wget –trust-server-names -m -np http://ligman.me/29CWQ20
wget –trust-server-names -m -np http://ligman.me/1G0Cm7T
wget –trust-server-names -m -np http://ligman.me/29vDVrw
wget –trust-server-names -m -np http://ligman.me/29CW4SV
wget –trust-server-names -m -np http://ligman.me/29G1z1N
wget –trust-server-names -m -np http://ligman.me/29yWAAO
wget –trust-server-names -m -np http://ligman.me/29DHWHq
wget –trust-server-names -m -np http://ligman.me/1HGwMgm
wget –trust-server-names -m -np http://ligman.me/29yUVeH
wget –trust-server-names -m -np http://ligman.me/29ErxWs
wget –trust-server-names -m -np http://ligman.me/29EsHkr
wget –trust-server-names -m -np http://ligman.me/29v5zCF
wget –trust-server-names -m -np http://ligman.me/1H32nUT
wget –trust-server-names -m -np http://ligman.me/29yixk9
wget –trust-server-names -m -np http://ligman.me/29vq6d2
wget –trust-server-names -m -np http://ligman.me/29cvrjG
wget –trust-server-names -m -np http://ligman.me/29pzjTR
wget –trust-server-names -m -np http://ligman.me/29rPOf6
wget –trust-server-names -m -np http://ligman.me/29ctW9z
wget –trust-server-names -m -np http://ligman.me/29gvoHt
wget –trust-server-names -m -np http://ligman.me/29gvfEd
wget –trust-server-names -m -np http://ligman.me/29LvcBg
wget –trust-server-names -m -np http://ligman.me/29DS3gJ
wget –trust-server-names -m -np http://ligman.me/1q9L65I
wget –trust-server-names -m -np http://ligman.me/29pufLO
wget –trust-server-names -m -np http://ligman.me/29wODdA
wget –trust-server-names -m -np http://ligman.me/29vch9q
wget –trust-server-names -m -np http://ligman.me/29EmfZc
wget –trust-server-names -m -np http://ligman.me/29LXmMt
wget –trust-server-names -m -np http://ligman.me/29qwKfQ
wget –trust-server-names -m -np http://ligman.me/29sp3nZ
wget –trust-server-names -m -np http://ligman.me/29yWFFf
wget –trust-server-names -m -np http://ligman.me/29ZNaMN
wget –trust-server-names -m -np http://ligman.me/29gYy5h
wget –trust-server-names -m -np http://ligman.me/29NhudA
wget –trust-server-names -m -np http://ligman.me/29jDRJf
wget –trust-server-names -m -np http://ligman.me/29conIf
wget –trust-server-names -m -np http://ligman.me/29cnLlL
wget –trust-server-names -m -np http://ligman.me/29fNYRE
wget –trust-server-names -m -np http://ligman.me/29cq9cw
wget –trust-server-names -m -np http://ligman.me/29acqhj
wget –trust-server-names -m -np http://ligman.me/29fJJCS
wget –trust-server-names -m -np http://ligman.me/29nbxWK
wget –trust-server-names -m -np http://ligman.me/29fO9MV
wget –trust-server-names -m -np http://ligman.me/29pr2x1
wget –trust-server-names -m -np http://ligman.me/29oa0kH
wget –trust-server-names -m -np http://ligman.me/29i6ntm
wget –trust-server-names -m -np http://ligman.me/29n7JVF
wget –trust-server-names -m -np http://ligman.me/29fQsQ4
wget –trust-server-names -m -np http://ligman.me/29fQo2J
wget –trust-server-names -m -np http://ligman.me/29idz8T
wget –trust-server-names -m -np http://ligman.me/29dfwlu
wget –trust-server-names -m -np http://ligman.me/29fLliP
wget –trust-server-names -m -np http://ligman.me/29i83TI
wget –trust-server-names -m -np http://ligman.me/29diypX
wget –trust-server-names -m -np http://ligman.me/29fNpHO
wget –trust-server-names -m -np http://ligman.me/29oefNf
wget –trust-server-names -m -np http://ligman.me/29jGTgC
wget –trust-server-names -m -np http://ligman.me/29crPhL
wget –trust-server-names -m -np http://ligman.me/29FUJIk
wget –trust-server-names -m -np http://ligman.me/1G2oDNG
wget –trust-server-names -m -np http://ligman.me/29u5uMT
wget –trust-server-names -m -np http://ligman.me/29rlRt3
wget –trust-server-names -m -np http://ligman.me/29Yd9V0
wget –trust-server-names -m -np http://ligman.me/29s4EQ1
wget –trust-server-names -m -np http://ligman.me/29vkv6E
wget –trust-server-names -m -np http://ligman.me/29A3q8Z
wget –trust-server-names -m -np http://ligman.me/29H7ovO
wget –trust-server-names -m -np http://ligman.me/1dHMOui
wget –trust-server-names -m -np http://ligman.me/1G2pw8X
wget –trust-server-names -m -np http://ligman.me/29gnaPK
wget –trust-server-names -m -np http://ligman.me/29d7GZH
wget –trust-server-names -m -np http://ligman.me/29i2Mvf
wget –trust-server-names -m -np http://ligman.me/29rbpkY
wget –trust-server-names -m -np http://ligman.me/29e6cTO
wget –trust-server-names -m -np http://ligman.me/29hJU1c
wget –trust-server-names -m -np http://ligman.me/29bcJtd
wget –trust-server-names -m -np http://ligman.me/29bcRZO
wget –trust-server-names -m -np http://ligman.me/29d5mS2
wget –trust-server-names -m -np http://ligman.me/29cz6OD
wget –trust-server-names -m -np http://ligman.me/29fDult
wget –trust-server-names -m -np http://ligman.me/29pEdjN
wget –trust-server-names -m -np http://ligman.me/29rwoY0
wget –trust-server-names -m -np http://ligman.me/29fTQrx
wget –trust-server-names -m -np http://ligman.me/29gfrkN
wget –trust-server-names -m -np http://ligman.me/29rwoHw
wget –trust-server-names -m -np http://ligman.me/29d5AbX
wget –trust-server-names -m -np http://ligman.me/29fudHc
wget –trust-server-names -m -np http://ligman.me/29FzGG5
wget –trust-server-names -m -np http://ligman.me/29osNwd
wget –trust-server-names -m -np http://ligman.me/29a22WR
wget –trust-server-names -m -np http://ligman.me/29alDpK
wget –trust-server-names -m -np http://ligman.me/29fDylj
wget –trust-server-names -m -np http://ligman.me/29jPTCx
wget –trust-server-names -m -np http://ligman.me/29d5XTw
wget –trust-server-names -m -np http://ligman.me/29rUIci
wget –trust-server-names -m -np http://ligman.me/29hVdVa
wget –trust-server-names -m -np http://ligman.me/29ijDhm
wget –trust-server-names -m -np http://ligman.me/29pn5e2
wget –trust-server-names -m -np http://ligman.me/29ckVx7
wget –trust-server-names -m -np http://ligman.me/29cfePX
wget –trust-server-names -m -np http://ligman.me/29vGIvY
wget –trust-server-names -m -np http://ligman.me/29hfnPR
wget –trust-server-names -m -np http://ligman.me/29fCVFe
wget –trust-server-names -m -np http://ligman.me/29a6YLu
wget –trust-server-names -m -np http://ligman.me/29n4GwJ
wget –trust-server-names -m -np http://ligman.me/29jAS3v
wget –trust-server-names -m -np http://ligman.me/29ci56U
wget –trust-server-names -m -np http://ligman.me/29nW9L3
wget –trust-server-names -m -np http://ligman.me/29hV6ZM
wget –trust-server-names -m -np http://ligman.me/29d1qAV
wget –trust-server-names -m -np http://ligman.me/29pfpbI
wget –trust-server-names -m -np http://ligman.me/29v8nwX
wget –trust-server-names -m -np http://ligman.me/29uq452
wget –trust-server-names -m -np http://ligman.me/29d1wc3
wget –trust-server-names -m -np http://ligman.me/29Y1O7a
wget –trust-server-names -m -np http://ligman.me/29a7wRA
wget –trust-server-names -m -np http://ligman.me/29pnEEG
wget –trust-server-names -m -np http://ligman.me/1FYtDD8
wget –trust-server-names -m -np http://ligman.me/1HByNKS
wget –trust-server-names -m -np http://ligman.me/1NCfcKC
wget –trust-server-names -m -np http://ligman.me/1HCDxl9
wget –trust-server-names -m -np http://ligman.me/1HCCCRP
wget –trust-server-names -m -np http://ligman.me/1H4Q0e5
wget –trust-server-names -m -np http://ligman.me/1JI6V77
wget –trust-server-names -m -np http://ligman.me/1CSMobd
wget –trust-server-names -m -np http://ligman.me/1jWMJA2
wget –trust-server-names -m -np http://ligman.me/1m6xucg
wget –trust-server-names -m -np http://ligman.me/1onTg9n
wget –trust-server-names -m -np http://ligman.me/1n49kzj
wget –trust-server-names -m -np http://ligman.me/1sgBtn4
wget –trust-server-names -m -np http://ligman.me/1qZlnOJ
wget –trust-server-names -m -np http://ligman.me/TWa2Dg
wget –trust-server-names -m -np http://ligman.me/1vM9mwt
wget –trust-server-names -m -np http://ligman.me/1qzON6Q
wget –trust-server-names -m -np http://ligman.me/1rB8nl1
wget –trust-server-names -m -np http://ligman.me/TL3pn1
wget –trust-server-names -m -np http://ligman.me/1vM9H2d
wget –trust-server-names -m -np http://ligman.me/29odbJ6
wget –trust-server-names -m -np http://ligman.me/1LSKTC0
wget –trust-server-names -m -np http://ligman.me/1qC1pu4
wget –trust-server-names -m -np http://ligman.me/1dHSpRh
wget –trust-server-names -m -np http://ligman.me/1LO5k1Y
wget –trust-server-names -m -np http://ligman.me/1M7Xr5v
wget –trust-server-names -m -np http://ligman.me/29jLNtX
wget –trust-server-names -m -np http://ligman.me/29agpuw
wget –trust-server-names -m -np http://ligman.me/29cv8FE
wget –trust-server-names -m -np http://ligman.me/29ieXIo
wget –trust-server-names -m -np http://ligman.me/29dmCXi
wget –trust-server-names -m -np http://ligman.me/29jLjnM
wget –trust-server-names -m -np http://ligman.me/29agkqx
wget –trust-server-names -m -np http://ligman.me/29gvTBJ
wget –trust-server-names -m -np http://ligman.me/29pztuz
wget –trust-server-names -m -np http://ligman.me/29dmTJT
wget –trust-server-names -m -np http://ligman.me/29ieSEI
wget –trust-server-names -m -np http://ligman.me/29hB9CQ
wget –trust-server-names -m -np http://ligman.me/29fOWdV
wget –trust-server-names -m -np http://ligman.me/1JPNIAt
wget –trust-server-names -m -np http://ligman.me/29Xnqk8
wget –trust-server-names -m -np http://ligman.me/29oRWlp
wget –trust-server-names -m -np http://ligman.me/29csX4C
wget –trust-server-names -m -np http://ligman.me/29jH8bx
wget –trust-server-names -m -np http://ligman.me/29pcQFA
wget –trust-server-names -m -np http://ligman.me/29FkNr3
wget –trust-server-names -m -np http://ligman.me/12FIapt
wget –trust-server-names -m -np http://ligman.me/13WvGXa
wget –trust-server-names -m -np http://ligman.me/1bPPb6C
wget –trust-server-names -m -np http://ligman.me/12FIZ1I
wget –trust-server-names -m -np http://ligman.me/16CaDM1
wget –trust-server-names -m -np http://ligman.me/19LwMLI
wget –trust-server-names -m -np http://ligman.me/1JHmqiB
wget –trust-server-names -m -np http://ligman.me/1KHqGNK
wget –trust-server-names -m -np http://ligman.me/1M7Ycve
wget –trust-server-names -m -np http://ligman.me/1LSOsIu
wget –trust-server-names -m -np http://ligman.me/1UrQDFx
wget –trust-server-names -m -np http://ligman.me/TUmyTW
wget –trust-server-names -m -np http://ligman.me/1NLviCk
wget –trust-server-names -m -np http://ligman.me/17iaq4l
wget –trust-server-names -m -np http://ligman.me/1bPRqqz
wget –trust-server-names -m -np http://ligman.me/17iah0Q
wget –trust-server-names -m -np http://ligman.me/1287Jt4
wget –trust-server-names -m -np http://ligman.me/29djdrk
wget –trust-server-names -m -np http://ligman.me/29rLH2H
wget –trust-server-names -m -np http://ligman.me/29fNPxT
wget –trust-server-names -m -np http://ligman.me/29ddm60
wget –trust-server-names -m -np http://ligman.me/29gsnHt
wget –trust-server-names -m -np http://ligman.me/29nc2QS
wget –trust-server-names -m -np http://ligman.me/29fOrnd
wget –trust-server-names -m -np http://ligman.me/29dk0Ze
wget –trust-server-names -m -np http://ligman.me/29aewh2
wget –trust-server-names -m -np http://ligman.me/29gteI8
wget –trust-server-names -m -np http://ligman.me/29ibJVq
wget –trust-server-names -m -np http://ligman.me/29fKMD6
wget –trust-server-names -m -np http://ligman.me/29cthAz
wget –trust-server-names -m -np http://ligman.me/29ohqUT
wget –trust-server-names -m -np http://ligman.me/29crGiw
wget –trust-server-names -m -np http://ligman.me/29gsFOl
wget –trust-server-names -m -np http://ligman.me/29ncgrb
wget –trust-server-names -m -np http://ligman.me/29fKWdi
wget –trust-server-names -m -np http://ligman.me/29djvi9
wget –trust-server-names -m -np http://ligman.me/29FW41O
wget –trust-server-names -m -np http://ligman.me/29ddKBp
wget –trust-server-names -m -np http://ligman.me/29dkhf4
wget –trust-server-names -m -np http://ligman.me/29rML6Q
wget –trust-server-names -m -np http://ligman.me/29hxyEN
wget –trust-server-names -m -np http://ligman.me/29fPweO
wget –trust-server-names -m -np http://ligman.me/29fPMug
wget –trust-server-names -m -np http://ligman.me/29fPnIe
wget –trust-server-names -m -np http://ligman.me/29hxogT
wget –trust-server-names -m -np http://ligman.me/29deg2k
wget –trust-server-names -m -np http://ligman.me/29pwCBO
wget –trust-server-names -m -np http://ligman.me/29fPAec
wget –trust-server-names -m -np http://ligman.me/29deQgz
wget –trust-server-names -m -np http://ligman.me/29afaLE
wget –trust-server-names -m -np http://ligman.me/29pxarl
wget –trust-server-names -m -np http://ligman.me/29ne5V5
wget –trust-server-names -m -np http://ligman.me/29csBjh
wget –trust-server-names -m -np http://ligman.me/29dkZZK
wget –trust-server-names -m -np http://ligman.me/29ojrAy
wget –trust-server-names -m -np http://ligman.me/29jJLdx
wget –trust-server-names -m -np http://ligman.me/29df2fw
wget –trust-server-names -m -np http://ligman.me/29cu6sX
wget –trust-server-names -m -np http://ligman.me/29dlaE5
wget –trust-server-names -m -np http://ligman.me/29FZx0B
wget –trust-server-names -m -np http://ligman.me/29idnpO
wget –trust-server-names -m -np http://ligman.me/29dlH9d
wget –trust-server-names -m -np http://ligman.me/29cs157
wget –trust-server-names -m -np http://ligman.me/29dkq1V
wget –trust-server-names -m -np http://ligman.me/29aelm3
wget –trust-server-names -m -np http://ligman.me/29ycEnb
wget –trust-server-names -m -np http://ligman.me/29w5gr9
wget –trust-server-names -m -np http://ligman.me/29pfQ50
wget –trust-server-names -m -np http://ligman.me/1sgMWDe
wget –trust-server-names -m -np http://ligman.me/29w68w8
wget –trust-server-names -m -np http://ligman.me/29viFmi
wget –trust-server-names -m -np http://ligman.me/29zYWzl
wget –trust-server-names -m -np http://ligman.me/29H2bo1
wget –trust-server-names -m -np http://ligman.me/29AT60J
wget –trust-server-names -m -np http://ligman.me/29xtlNa
wget –trust-server-names -m -np http://ligman.me/29xtHDs
wget –trust-server-names -m -np http://ligman.me/29GpFsY
wget –trust-server-names -m -np http://ligman.me/29ddd2b
wget –trust-server-names -m -np http://ligman.me/29fJpEc
wget –trust-server-names -m -np http://ligman.me/29cs7Fg
wget –trust-server-names -m -np http://ligman.me/29fJA2g
wget –trust-server-names -m -np http://ligman.me/29cqzzq
wget –trust-server-names -m -np http://ligman.me/29ddbYb
wget –trust-server-names -m -np http://ligman.me/29rLlZV
wget –trust-server-names -m -np http://ligman.me/29ialCf
wget –trust-server-names -m -np http://ligman.me/29pvj5I
wget –trust-server-names -m -np http://ligman.me/29hwj8y
wget –trust-server-names -m -np http://ligman.me/29dj7zY
wget –trust-server-names -m -np http://ligman.me/1sl39Hs
wget –trust-server-names -m -np http://ligman.me/1anyEJj
wget –trust-server-names -m -np http://ligman.me/17icbPc
wget –trust-server-names -m -np http://ligman.me/ZZezok
wget –trust-server-names -m -np http://ligman.me/12S035G
wget –trust-server-names -m -np http://ligman.me/12RZWY1
wget –trust-server-names -m -np http://ligman.me/13PlvVY
wget –trust-server-names -m -np http://ligman.me/12FMEMP
wget –trust-server-names -m -np http://ligman.me/128a1ID
wget –trust-server-names -m -np http://ligman.me/19LCgpM
wget –trust-server-names -m -np http://ligman.me/13Pn1XY
wget –trust-server-names -m -np http://ligman.me/13WChkr
wget –trust-server-names -m -np http://ligman.me/12FN71F
wget –trust-server-names -m -np http://ligman.me/ZZh7Ts
wget –trust-server-names -m -np http://ligman.me/14HcD5O
wget –trust-server-names -m -np http://ligman.me/17UHSNJ
wget –trust-server-names -m -np http://ligman.me/19LEPIz
wget –trust-server-names -m -np http://ligman.me/11VIxdB
wget –trust-server-names -m -np http://ligman.me/12FObmf
wget –trust-server-names -m -np http://ligman.me/11HXnjD
wget –trust-server-names -m -np http://ligman.me/14fCxLS
wget –trust-server-names -m -np http://ligman.me/16CkUI4
wget –trust-server-names -m -np http://ligman.me/17VqB79
wget –trust-server-names -m -np http://ligman.me/13XRfqr
wget –trust-server-names -m -np http://ligman.me/19fCnqV
wget –trust-server-names -m -np http://ligman.me/11WvSqL
wget –trust-server-names -m -np http://ligman.me/1002Upx
wget –trust-server-names -m -np http://ligman.me/14HMJ1Q
wget –trust-server-names -m -np http://ligman.me/10ttQ3n
wget –trust-server-names -m -np http://ligman.me/15fRBI9
wget –trust-server-names -m -np http://ligman.me/19fDuqE
wget –trust-server-names -m -np http://ligman.me/11IMDlh
wget –trust-server-names -m -np http://ligman.me/10tu5eD
wget –trust-server-names -m -np http://ligman.me/128NAD6
wget –trust-server-names -m -np http://ligman.me/1bRgXzV
wget –trust-server-names -m -np http://ligman.me/14givRo
wget –trust-server-names -m -np http://ligman.me/18VNatF
wget –trust-server-names -m -np http://ligman.me/128Ogso
wget –trust-server-names -m -np http://ligman.me/13Qbl7k
wget –trust-server-names -m -np http://ligman.me/10tuWvL
wget –trust-server-names -m -np http://ligman.me/16dFAWc
wget –trust-server-names -m -np http://ligman.me/11lkViX
wget –trust-server-names -m -np http://ligman.me/1bRhVMn
wget –trust-server-names -m -np http://ligman.me/14HOjki
wget –trust-server-names -m -np http://ligman.me/1bRiXbc
wget –trust-server-names -m -np http://ligman.me/13QcfRi
wget –trust-server-names -m -np http://ligman.me/16E4lf4
wget –trust-server-names -m -np http://ligman.me/1005lbB
wget –trust-server-names -m -np http://ligman.me/14HOxb2
wget –trust-server-names -m -np http://ligman.me/16E6G9L
wget –trust-server-names -m -np http://ligman.me/14gkBRc
wget –trust-server-names -m -np http://ligman.me/1006fEV
wget –trust-server-names -m -np http://ligman.me/16dHXZ9
wget –trust-server-names -m -np http://ligman.me/13QdHDb
wget –trust-server-names -m -np http://ligman.me/11IQ8bd
wget –trust-server-names -m -np http://ligman.me/17jgPfG
wget –trust-server-names -m -np http://ligman.me/15fXTHQ
wget –trust-server-names -m -np http://ligman.me/11vx5Cy
wget –trust-server-names -m -np http://ligman.me/N1JiHO
wget –trust-server-names -m -np http://ligman.me/OudHlO
wget –trust-server-names -m -np http://ligman.me/OudJdr
wget –trust-server-names -m -np http://ligman.me/N1I2o4
wget –trust-server-names -m -np http://ligman.me/Oue0NG
wget –trust-server-names -m -np http://ligman.me/Oue2oE
wget –trust-server-names -m -np http://ligman.me/N1HQW0
wget –trust-server-names -m -np http://ligman.me/Ouebsh
wget –trust-server-names -m -np http://ligman.me/OuecfK
wget –trust-server-names -m -np http://ligman.me/N1Ienp
wget –trust-server-names -m -np http://ligman.me/OuelQu
wget –trust-server-names -m -np http://ligman.me/OueoMd
wget –trust-server-names -m -np http://ligman.me/N1J8A8
wget –trust-server-names -m -np http://ligman.me/OueFPb
wget –trust-server-names -m -np http://ligman.me/OueIKU
wget –trust-server-names -m -np http://ligman.me/N1I935
wget –trust-server-names -m -np http://ligman.me/OueUd4
wget –trust-server-names -m -np http://ligman.me/OueVxy
wget –trust-server-names -m -np http://ligman.me/N1HMW7
wget –trust-server-names -m -np http://ligman.me/Ouf6sO
wget –trust-server-names -m -np http://ligman.me/Ouf9og
wget –trust-server-names -m -np http://ligman.me/N1Jo27
wget –trust-server-names -m -np http://ligman.me/OufgQN
wget –trust-server-names -m -np http://ligman.me/OufkQs
wget –trust-server-names -m -np http://ligman.me/N1HEpM
wget –trust-server-names -m -np http://ligman.me/Oufwzg
wget –trust-server-names -m -np http://ligman.me/OufCXN
wget –trust-server-names -m -np http://ligman.me/N1JfvI
wget –trust-server-names -m -np http://ligman.me/OufRSs
wget –trust-server-names -m -np http://ligman.me/OufVlq
wget –trust-server-names -m -np http://ligman.me/N1HX3Q
wget –trust-server-names -m -np http://ligman.me/Oug5Jl
wget –trust-server-names -m -np http://ligman.me/Oug74a
wget –trust-server-names -m -np http://ligman.me/1H1Exty
wget –trust-server-names -m -np http://ligman.me/1S1f34H
wget –trust-server-names -m -np http://ligman.me/1HGqihD
wget –trust-server-names -m -np http://ligman.me/1G2ccS5
wget –trust-server-names -m -np http://ligman.me/1ffeiJo
wget –trust-server-names -m -np http://ligman.me/1NKjUqp
wget –trust-server-names -m -np http://ligman.me/1KEShAt
wget –trust-server-names -m -np http://ligman.me/1S1i4C0
wget –trust-server-names -m -np http://ligman.me/1ReR3Qq
wget –trust-server-names -m -np http://ligman.me/1dGxnSW
wget –trust-server-names -m -np http://ligman.me/1IZCarE
wget –trust-server-names -m -np http://ligman.me/1H2Bq3J
wget –trust-server-names -m -np http://ligman.me/1Rf7BaZ
wget –trust-server-names -m -np http://ligman.me/1LRIveQ
wget –trust-server-names -m -np http://ligman.me/1dGxEW7
wget –trust-server-names -m -np http://ligman.me/1omCrM6
wget –trust-server-names -m -np http://ligman.me/1j5aDhH
wget –trust-server-names -m -np http://ligman.me/1n3mkVY
wget –trust-server-names -m -np http://ligman.me/1n3mAUZ
wget –trust-server-names -m -np http://ligman.me/1vKOGot
wget –trust-server-names -m -np http://ligman.me/1H7bxTv
wget –trust-server-names -m -np http://ligman.me/1G0DEjb
wget –trust-server-names -m -np http://ligman.me/29pbiLY
wget –trust-server-names -m -np http://ligman.me/29dlTVV
wget –trust-server-names -m -np http://ligman.me/29rOYz9
wget –trust-server-names -m -np http://ligman.me/29ie2rq
wget –trust-server-names -m -np http://ligman.me/29fQN5c
wget –trust-server-names -m -np http://ligman.me/29idEct
wget –trust-server-names -m -np http://ligman.me/29nevuE
wget –trust-server-names -m -np http://ligman.me/29olaWI
wget –trust-server-names -m -np http://ligman.me/29pz4Im
wget –trust-server-names -m -np http://ligman.me/29fQRlQ
wget –trust-server-names -m -np http://ligman.me/29hzPzU
wget –trust-server-names -m -np http://ligman.me/29rON6X
wget –trust-server-names -m -np http://ligman.me/29cumbH
wget –trust-server-names -m -np http://ligman.me/29cv1JW
wget –trust-server-names -m -np http://ligman.me/29dmh6L
wget –trust-server-names -m -np http://ligman.me/29dfUkt
wget –trust-server-names -m -np http://ligman.me/1giniO7
wget –trust-server-names -m -np http://ligman.me/29H7K5O
wget –trust-server-names -m -np http://ligman.me/1qbEeVc
wget –trust-server-names -m -np http://ligman.me/1ewwcq6
wget –trust-server-names -m -np http://ligman.me/1H1MFKr
wget –trust-server-names -m -np http://ligman.me/1pxniH4
wget –trust-server-names -m -np http://ligman.me/1dG2ZZ9
wget –trust-server-names -m -np http://ligman.me/29v9igV
wget –trust-server-names -m -np http://ligman.me/29hofVk
wget –trust-server-names -m -np http://ligman.me/29idcee
wget –trust-server-names -m -np http://ligman.me/29rOvx0
wget –trust-server-names -m -np http://ligman.me/29ctkki
wget –trust-server-names -m -np http://ligman.me/29okalt
wget –trust-server-names -m -np http://ligman.me/29i2CEe
wget –trust-server-names -m -np http://ligman.me/29FT71n
wget –trust-server-names -m -np http://ligman.me/29NBSj1
wget –trust-server-names -m -np http://ligman.me/29H3O3o
wget –trust-server-names -m -np http://ligman.me/29OHLKa
wget –trust-server-names -m -np http://ligman.me/29uHKKV

 

 

Posted in *nix, .NET, Development, Office, Power User, Software Development, wget, Windows | 2 Comments »

Ken Thompson – quotes – Reflections on Trust

Posted by jpluimers on 2016/12/21

Some of the [WaybackKen Thompson – Wikiquote entries come from a great [Wayback1983 ACM Turing Award Acceptance Lecture [Wayback“Reflections on Trusting Trust”.

That lecture used to be on http://cm.bell-labs.com/who/ken/trust.html

But it isn’t, and was not in the WayBack machine and neither in the Google Cache [Archive.is] because of the [Wayback/Archive.is] robots.txt. Historic link rot galore!

Edit 20210728: by now it is in the Wayback machine again; the earliest archived copy is from 2001, it also shows that as of april 2015 it is gone from the bell labs server.

The lecture is about [Wayback] compiler viruses and viruses actually did this at least a few times: Wayback: Delphi in 2009 and to [WaybackXCode in 2015.

A few nice links from [WaybackACM Classic: Reflections on Trusting Trust – Google Groups though:

And archived versions of (I hope accurate) copies of the article:

Finally I found a PDF copy of the original ACM prints that Greg Ganger of Electrical and Computer Engineering at Carnegie Mellon University has online. It’s archived too.

–jeroen

Further reading:

Posted in *nix, Conference Topics, Conferences, Delphi, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Development, Event, Fun, Internet, link rot, Power User, Quotes, Software Development, T-Shirt quotes, WWW - the World Wide Web of information, xCode/Mac/iPad/iPhone/iOS/cocoa | Leave a Comment »