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

How to Force Google Chrome to Use Google.com Instead of Country Specific Version

Posted by jpluimers on 2018/12/21

Steps:

  1. visit this URL once: https://google.com/ncr (to fix google.com as search engine)
  2. define a Google.com search shortcut in chrome://settings/searchEngines

You can use example search shortcuts from Forcing Chrome to use google.com as search engine.

If you forget the first step, then often your search still will go a localised place (except when you are in the USA).

–jeroen

Posted in Google, GoogleSearch, Power User | Leave a Comment »

Google Now launcher replacement?

Posted by jpluimers on 2018/12/21

I missed this earlier this year, but while switching phones found out: Google Now is not available for most devices any more.

So I’ am looking for a replacement that has:

  • 5×5 application/group icons on each home screen page
  • 4 application/group icons on the bottom static row
  • support for Google Search
  • support for Google Assistant voice control

This I totally missed:

–jeroen

Read the rest of this entry »

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

Do not put IFDEF with relative paths in your .dpr as the Delphi IDE cannot match them in the .dproj

Posted by jpluimers on 2018/12/20

The Delphi IDE manages the .dpr and .dproj files for, trying to keep them in sync.

Some information is duplicated between the two, especially files referenced by relative paths: those files are contained in your project.

This means you cannot do something like this in your .dpr file:

  {$IFDEF DEBUG}
  Debug in '..\..\..\..\Shared\Debug.pas';
  {$ELSE}
  Debug in '..\Debug.pas'
  {$ENDIF}

There is no equivalent for this in the .dproj and it will confuse the IDE which file now actually is or is not inside your project.

Better to leave the file outside of your project, then modify the RELEASE/DEBUG search paths to have the correct one.

Even better is to have just one Debug.pas file containing the changes.

–jeroen

Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | Leave a Comment »

About Blocks – bl.ocks.org

Posted by jpluimers on 2018/12/20

[WayBackAbout Blocks – bl.ocks.org is so cool:

Bl.ocks (pronounced “Blocks”) is a simple viewer for sharing code examples hosted on GitHub Gist.

The main source for your example is in index.html. This file can contain relative links to other files in your Gist, such as images, scripts or stylesheets. And of course you can use absolute links, such as CDN-hosted D3jQuery or Leaflet. To explain your example, add a README.md written in Markdown. (You can omit the index.html if you just want to write, too.)

[WayBack] Code-only-Blocks are cool too:

When your Gist is missing an index.html file, will hide the example iframe but continue to display everything else.

Just compare these:

–jeroen

Posted in Development, DVCS - Distributed Version Control, gist, GitHub, jQuery, Scripting, Software Development, Source Code Management, Web Development | Leave a Comment »

Can’t format message nn:mmm — message text not found

Posted by jpluimers on 2018/12/20

Lovely: people that perform incomplete Firebird deployments…

This means the firebird.msg file on the client is either not found or is a different version than the server.

Source: [WayBackCan’t format message nn:mmm — message text not found

–jeroen

Read the rest of this entry »

Posted in Database Development, Development, Firebird | Leave a Comment »

PSD2 and privacy

Posted by jpluimers on 2018/12/20

The problem is that with PSD2 it takes just one party to allow access to two sides of the hatchway: their side of their transactions and your side if the transactions you are involved in. So if you want privacy, you cannot protect against this.

–jeroen

Posted in GDPR/DS-GVO/AVG, Power User, Privacy | Leave a Comment »

Spring4D How to correctly assign NULL to a Nullable type?

Posted by jpluimers on 2018/12/19

Since I tend to forget this: [WayBack] Spring4D How to correctly assign NULL to a Nullable type? this is correct? fDateTime = Null; or this? fDateTime := nil; – Jacek Laskowski – Google+

The preferred way is fDateTime := nil.

This is possible because of [WayBack] Delphi sorcery: How to create an operator overload that only accepts nil using a reference type (in this case interface) so no non-nil pointers can be passed:

type
  Nullable<T> = record
  strict private type
    Null = interface end;
  public
    class operator Implicit(const value: Null): Nullable<T>;
  end;

–jeroen

Posted in Delphi, Development, Software Development, Spring4D | 2 Comments »

“I tyically ask recruiters to point out which of these are pokemon” – via “my linkedin profile : ProgrammerHumor”

Posted by jpluimers on 2018/12/19

[Archive.is] Vincent D. Warmerdam (also known as koaning; D is for Damian) put Start-up or Pokémon? Big-data or Pokémon? into practice a while back:

my linkedin profile: “I tyically ask recruiters to point out which of these are pokemon”

Source: [WayBack] “my linkedin profile : ProgrammerHumor

He’s a very interesting person to follow:

I also discovered https://bl.ocks.org because of Vincent. More on that later.

–jeroen

Read the rest of this entry »

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

Python threading: logging exceptions during the `run`

Posted by jpluimers on 2018/12/19

In A few observations on Python while I made my first steps into it, I mentioned the standard threading idiom in Python by wrapping the thread in a function. This has the drawback of having to catch and handle any exceptions in that function.

The higher level [WayBack] threading module has a [WayBack] Thread class with a [WayBack] run() method does not handle exceptions either.

For investigation of threading issues, it’s very convenient to know about the exceptions in a thread and their context.

So I’ve made a small base class that automagically logs any exceptions during a run:

import threading

from log import Log

class ExceptionLoggingThread(threading.Thread):

    def __init__(self):
        threading.Thread.__init__(self)
        self.logger = Log().getLogger()
        self.logger.debug("ExceptionLoggingThread().")

    def run_logic(self):
        self.logger.debug("Thread started.")

    def run(self):
        try:
            self.run_logic()
        except:
            self.logger.exception('Exception in `run`')
            raise

–jeroen

Posted in Development, Python, Scripting, Software Development | Leave a Comment »

Spring4D Conference

Posted by jpluimers on 2018/12/19

Do not forget the early bird sales ends soon for the Spring4D European Conference 2018 – Bergamo Italy, right before Easter 2019.

Both the original author and the current maintainer will be there, and it will be a great place to socialize with fellow Spring4D users.

Buy tickets: [WayBack] Spring4D Conference

Via:

–jeroen

Posted in Delphi, Development, Software Development, Spring4D | Leave a Comment »