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

Happy “check your backups day”; does your restore process work? And how is the rest of your admin process doing?

Posted by jpluimers on 2018/02/01

Today is [WayBack] Check your backups Day! started by @CyberShambles in dedication of the @Gitlab outage on 20170201.

Please check your restoration process now. As people screw up and accidents happen (I know first hand from a client).

Why isn’t this date on January 31st? Long short story: the failure started that date, but restoration took most of 20170201. So February 1st it is.

Others will follow and GitLab wasn’t alone, as a few days before soup.io had to restore a 2015 database backup.

It all comes back to

Nobody wants backup.

Everybody wants restore.

which made it to the 2008 [WayBackadminzen.org – The Admin Zen and has been attributed to various people including [WayBackto Kristian Köhntopp and [WayBackto Martin Seeger who told Kristian Köhntopp that it was coined by Sun’s Michael Nagorsnik at one of the early [WayBackNuBIT. Martin was there; he knows (:

The oldest mention of the phrase I could find was in 2006 by Volker Bir at [WayBackSpy Sheriff – so how do people get infected w/ this thing?.

Keeping clients in the loop

Since soup.io hosts their updates blog on their own platform, the restore resulted in the post prior to [Archive.isUpdate after crash ;) – Soup Updates sort of ironically being the mid-2015 [WayBackGive us your money! – Soup Updates. Usually dogfooding is a good thing though.

During such a downtime, it is crucial to stay in touch through alternative channels. Soup.io didn’t do a good job on their twitter account: they only announced the “update after crash”, not being down, why or progress.

They also deny the WayBack machine access to updates.soup.io because of [WayBack] robots.txt because how they redirect through /remotes, but luckily Archive.is doesn’t care about that and has less old updates.soup.io archived as recent as end of 2015.

GitLab did a much better job on their GitLabStatus account.

Postmortems and organisation culture.

Everybody can screw up, and usually a severe outage happens even when everybody tries to do the right thing. The only way to learn from it is to have [WayBackBlameless PostMortems and a Just Culture – Code as Craft.

Read the rest of this entry »

Posted in DevOps, Power User | Leave a Comment »

Which class memory management model would you prefer for Delphi?

Posted by jpluimers on 2018/01/31

An interesting discussion on ARC and classic memory management in Delphi and ideas on hybrid ways: [WayBack] Which class memory management model would you prefer for Delphi? Or better, which one would fit better for your needs? – Malcon X Portela – Google+

–jeroen

Posted in Delphi, Development, Software Development | 9 Comments »

Life Beyond Distributed Transactions – ACM Queue

Posted by jpluimers on 2018/01/31

This article focuses on how an application developer can build a successful scalable enterprise application when he or she has only a local database or transaction system available. Availability is not addressed, merely scale and correctness.

I’m re-reading [WayBackLife Beyond Distributed Transactions – ACM Queue as it such a great article.

Via: [WayBack] Pat Helland on scaling: If you are not willing to pay the cost of distributed transactions, what options do you have and what are the costs associated with this choice – Kristian Köhntopp – Google+

Executive Summary: embrace uncertainty. It can’t be avoided.

–jeroen

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

As Delphi generics are not supported for free functions, wrap them in a record container.

Posted by jpluimers on 2018/01/31

Of the things not possible with generics in Delphi, I already wrote about Impossible: Property using Generics in Delphi.

Now it’s time to write about simulating a free function with generics as this is impossible:

function CreateManaged<T>(const value: T): IManaged<T>;

Usually I create a static record method for these, as records do not have VMT overhead, less RTTI overhead and I’ve been used to see records as helpers for other types long before helpers initially were introduced in Delphi 8 to extend classes..

Spring4D has an excellent example of such a record workaround in the Managed.New<T> commit:

type
  Managed = record
  public
    class function New<T>(const value: T): IManaged<T>; static;
  end;

...

class function Managed.New<T>(const value: T): IManaged<T>;
begin
  Result := TManaged<T>.Create(value);
end;

It basically is a factory for classes implementing the IManaged interface.

In the mean time, Managed has been renamed to Shared but the above code shows my point.

–jeroen

Reference: [WayBackClass Helpers documented in Delphi 2007, introduced in Delphi 8

Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | 5 Comments »

unxz on Mac OS X requires the xz formula from homebrew

Posted by jpluimers on 2018/01/30

Most sites explaining how to decompress an xz file mention you should use unxz from the xz utils toolbox.

Running unzx on Msc OS X requires the xz formula from homebrew:

$ brew install xz
==> Downloading https://homebrew.bintray.com/bottles/xz-5.2.2.mavericks.bottle.tar.gz
######################################################################## 100.0%
==> Pouring xz-5.2.2.mavericks.bottle.tar.gz
🍺  /usr/local/Cellar/xz/5.2.2: 91 files, 1.4M

–jeroen

Posted in Apple, Home brew / homebrew, Mac OS X / OS X / MacOS, macOS 10.12 Sierra, OS X 10.10 Yosemite, OS X 10.9 Mavericks, Power User | Leave a Comment »

Delphi 2009 syntax; not official, but a great start and complement to DelphiAST

Posted by jpluimers on 2018/01/30

A while ago, I found out that [WayBackToon Krijthe made a [Archive.isDelphi 2009 syntax sample which is a great complement to the DelphiAST parser given that Borland/CodeGear/Embarcadero/Idera never published one in the 22+years that Delphi is alive.

–jeroen

Posted in Delphi, Delphi 2009, Development, Software Development | 6 Comments »

Gratis WiFi met Fon HotSpots (voor klanten) | KPN

Posted by jpluimers on 2018/01/29

Voor het geval ik het buiten Europa een keer nodig heb:

Als klant met een Internet, Internet en TV of mobiel abonnement kun je in Nederland en in het buitenland gratis gebruikmaken van KPN WiFi Fon HotSpots.

Source: [WayBackGratis WiFi met Fon HotSpots (voor klanten) | KPN

–jeroen

Posted in LifeHacker, Power User | Leave a Comment »

Etaoin shrdlu – via 5 Hole Paper Tape – Computerphile

Posted by jpluimers on 2018/01/29

Etaoin shrdlu (/ˈɛtiˌɔɪnˈʃɜrdluː/)[1] … is the approximate order of frequency of the 12 most commonly used letters in the English language.

via 5 Hole Paper Tape – Computerphile

Source: Etaoin shrdlu – Wikipedia, the free encyclopedia

Posted in Fun, History, Quotes, T-Shirt quotes | Leave a Comment »

foone on Twitter: I’m FINALLY ready to turn my old computer in to IT. They have to power on all turned in computers to make sure they’re functional before they recycle them, so they’re in for a small surprise. Windows 3.0 running on MS-DOS 6.22!…

Posted by jpluimers on 2018/01/26

This is tool funny, especially how he got it on the machine: [WayBackfoone on Twitter: I’m FINALLY ready to turn my old computer in to IT. They have to power on all turned in computers to make sure they’re functional before they recycle them, so they’re in for a small surprise. Windows 3.0 running on MS-DOS 6.22!…

–jeroen

 

 

 

 

Posted in Fun | 2 Comments »

WhatsApp FAQ – Formatting your messages

Posted by jpluimers on 2018/01/26

Oh cool:

Formatting your messages –

WhatsApp allows you to format selected text inside your messages.

Italic

To italicize your message, place an underscore on both sides of the text, like so: _text_

Bold

To bold your message, place an asterisk on both sides of the text, like so: *text*

Strikethrough

To strikethrough your message, place a tilde on both sides of the text, like so: ~text~

Monospace

To monospace your message, place three backticks on both sides of the text, like so: ```text```

Alternatively: On Android, you can tap and hold the text you’re typing > More …

Source: [WayBackWhatsApp FAQ – Formatting your messages

–jeroen

Posted in Android Devices, Power User, SocialMedia, WhatsApp, WhatsApp for Android | Leave a Comment »