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

The eigenvector of “Why we moved from language X to language Y” · Erik Bernhardsson

Posted by jpluimers on 2017/03/27

Interesting usage of R and Google info: [WayBackThe eigenvector of “Why we moved from language X to language Y” · Erik Bernhardsson

The source behind the extensive article above is on GitHub: [WayBack] erikbern/eigenstuff: Use the first eigenvector (stationary distribution) of Google searches for “move from X to Y” to say something about future popularity

via:

–jeroen

Read the rest of this entry »

Posted in Development, Software Development | Leave a Comment »

`-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)` on fresh Raspbian on Raspberry

Posted by jpluimers on 2017/03/24

Every time I logged onto a freshly installed Rasbian system (Debian Jessie), I had this message:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Aug 27 19:52:33 2016 from 192.168.171.24
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

Asking for the locale settings would give this:

jeroenp@raspberrypi:~ $ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_GB.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

Searching for raspbian jessie “-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)” I found fix locale issue #15 · scaleway/image-debian@543e9b4 [WayBack] that fixes Locale issue on Debian Jessie · Issue #15 · scaleway/image-debian · GitHub [WayBack]:

When logging into to a freshly booted debian jessie image:

-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

Source: Locale issue on Debian Jessie · Issue #15 · scaleway/image-debian

I changed the crux of that solution to this one:

echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen

When running, it showed this:

# echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
Generating locales (this might take a while)...
  en_GB.UTF-8... done
  en_US.UTF-8... done
Generation complete.

And logging this:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Aug 27 20:26:34 2016 from 192.168.171.24

Problem solved: 1 line of code!

–jeroen

Posted in *nix, Arduino, Debian, Development, Hardware Development, Linux, Power User, Raspberry Pi, Raspbian | 1 Comment »

Poor man’s MMX: Delphi Live Templates for creating a property with a type which will auto- create the getter/setter

Posted by jpluimers on 2017/03/23

Delphi Live Templates for creating a property with a type which will auto- create the getter/setter: [XML] ipropgs – Pastebin.com by Oliver Münzberg.

For when you think you can beat Model Maker Code Explorer.

via: Do any IDE add-ins have “interface completion”? I figure somebody must have done this by now? David Nottage – Google+

 

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

Kylix: The Real Lowdown – I wrote this in 2000 too

Posted by jpluimers on 2017/03/23

A while ago – while researching yesterdays post – I came across the below article that I wrote back in august 2000 for The Delphi (by Pinnacle Publishing – long gone by now) and on-line at http://www.delphidevelopernewsletter.com/dd/DDMag.nsf/WebIndexByIssue/B8FC16D8103A3760852568F600559A83

I found a cached copy first at http://www.txsz.net/xs/delphi/2/%E6%8A%80%E5%B7%A7%E5%8F%8A%E7%BB%8F%E9%AA%8C/KYLIX%EF%BC%9A%20%E7%9C%9F%E7%9B%B8.HTM and back-tracked from there.

Since the wayback machine isn’t indexed, I salvaged the copy below.

On the Delphi Tokyo release yesterday [WayBackTokyo is available today! – Martin Sedgewick – Google+: I will only try that after Update 1 is released, but based on the [WayBackWhat’s New – RAD Studio:

Like

  • Reintroduction of Linux support. Finally.
  • 64-bit as target: server side, the 32-bit days have been over for a long time
  • one-based strings (boy, I’m glad they didn’t continue on the zero-based strings they did on mobile)

Dislike

  • No openSUSE support where SuSE was the primary partner during Kylix development and launch, just search SuSE kylix; heck the registration guide is still up at [WayBackSDB:Kylix – openSUSE
  • LLVM compiler as it is way too slow for my development cycles
  • ARC based

Time will tell if it works better for me than the .NET Core for Linux I’ve been using until now.

–jeroen
Read the rest of this entry »

Posted in *nix, Delphi, Development, History, Kylix, Linux, openSuSE, Power User, Software Development, SuSE Linux | 4 Comments »

Some links on getting a local CollabNet SVN repository to git

Posted by jpluimers on 2017/03/22

A while ago, I had to rescue a project of a developer that had hosted their SVN repository on a locally running CollabNet installation in a VM that wasn’t properly backed up. So besides pollution of a development system, it had to be resurrected after the host crashed. Apparently

Here are some links without full steps that I used to find my way around, find the SVN repository locations and credentials, then convert it to git (that’s now remotely hosted in multiple places both internally and externally).

No steps as hopefully I will never need to take this route again:

–jeroen

Posted in CollabNet, Development, DVCS - Distributed Version Control, git, Source Code Management, Subversion/SVN | Leave a Comment »

Kylix: Delphi for Linux is on the Way! – I wrote this in 2000

Posted by jpluimers on 2017/03/22

Last year, when Warren Postma wrote, I started digging for some articles I wrote about Kylix (the Delphi for Linux at the start of this century).

The second article I found (Delphi for Linux is on the Way!) was actually the first one I wrote, so I’ve put the copy below. The second article will be in my blog tomorrow.

The article below first appeared at the Pinnacle Publishing site at http://www.pinpub.com/delphi/kylix1.htm as an article for “Delphi Developers Journal” that went out of business just like “Hardcore Delphi” and “Delphi Informant Magazine” went before (actually Blaise Pascal Magazine is about the only Delphi related magazine left).

I found the title of my article through http://www.newsmth.net/bbsanc.php?path=%2Fgroups%2Fcomp.faq%2FDelphi%2FAboutDelphi%2FKylix%2FM.967808208.A then back-tracked the title via http://www.inner-smile.com/delphin.phtml

–jeroen

Read the rest of this entry »

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

Git for Computer Scientists

Posted by jpluimers on 2017/03/21

Quick introduction to git internals for people who are not scared by words like Directed Acyclic Graph.

Cool: Git for Computer Scientists [WayBack]

–jeroen

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

GExperts – when your predecessor has put it under the Tools menu

Posted by jpluimers on 2017/03/21

I totally forgot that GExperts can be under the Tools men

GExperts IDE configuration

GExperts IDE configurationu (I’m so accustomed that Alt-X is GExperts and Alt-M is ModelMaker Code Explorer).

These keyboard shortcuts are only assigned when you install GExperts before you install ModelMaker Code Explorer.

If you reverse, then you have to fiddle by removing the ModelMaker Code Explorer expert, then re-add it.

Anyway: you can configure this in the “IDE” tab of the GExperts Configuration.

After that you have to restart the Delphi IDE to reflect the change.

–jeroen

Source: GExperts Help

Posted in Delphi, Development, GExperts, Keyboards and Keyboard Shortcuts, ModelMaker Code Explorer, Power User, Software Development | 2 Comments »

defrag.exe: tracking an already in progress operation can be done from non-admin session

Posted by jpluimers on 2017/03/17

When you want to defrag.exe (the built-in Windows one, not the SysInternals Windows NT4 one, so make sure SysInternals comes last in your path) a volume, you have to run it with an elevated UAC Admin token.

But I just found out that you can do this without an Admin token:

C:\Windows\System32>Defrag.exe C: /t /v /u
Microsoft Drive Optimizer
Copyright (c) 2013 Microsoft Corp.

Tracking operation on (C:)...


Performing pass 2:
        Free Space Consolidation:  31% complete...

This makes it much easier to separate monitoring scripting from execution.

–jeroen

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

Decode URLs from The Great Suspender after a browser restart fails to reload them

Posted by jpluimers on 2017/03/16

Hosted at: Decode URLs from The Great Suspender after a browser restart fails to reload them

Converts URLs like these:
chrome-extension://klbibkeccnjlkjkiokjodocebajanakg/suspended.html#url=http%3A%2F%2Fwww.barryodonovan.com%2F2012%2F06%2F29%2Fmigrating-svn-with-branches-and-tags-to-git
back into
http://www.barryodonovan.com/2012/06/29/migrating-svn-with-branches-and-tags-to-git

Source below.

It decodes a URL encoded by The Great Suspender which is a cool Google Chrome plugin that suspends pages after some idle time.

The uncool thing is that when Google Crome restarts after a crash (it’s software, it does that, especially as it consumes truckloads of memory and is full of memory leaks) it often fails to restore some (but not many) of the suspended pages into a usable state: it shows only the encoded URLs.

–jeroen


<!DOCTYPE html>
<!–
Resurrect
Based on 20160531-Google-Plus–403.-That’s-an-error.–Your-client-does-not-have-permission-to-get-URL–sorry–IndexRedirect–workaround.html
at https://gist.github.com/jpluimers/4f07a2f3f9b9890a3a44e184c1abadf2
Converts URLs like these:
chrome-extension://klbibkeccnjlkjkiokjodocebajanakg/suspended.html#url=http%3A%2F%2Fwww.barryodonovan.com%2F2012%2F06%2F29%2Fmigrating-svn-with-branches-and-tags-to-git
back into
url=http://www.barryodonovan.com/2012/06/29/migrating-svn-with-branches-and-tags-to-git
The Great Suspender Google Extension:
https://chrome.google.com/webstore/detail/the-great-suspender/klbibkeccnjlkjkiokjodocebajanakg
Test at http://jsbin.com/yukidaferu/1/edit?html,console,output
–>
<html>
<title>Decode URLs from The Great Suspender after a browser restart fails to reload them</title>
<body>
<h1>Decode URLs from The Great Suspender after a browser restart fails to reload them</h1>
<p>Please URL encoded by <a href="https://github.com/deanoemcke/thegreatsuspender&quot; target="_blank">The Great Suspender</a>:</p>
<input id="suspenderUrl" size="200">
<button type="button" onclick="decodeSuspenderUrlMethod()">Submit</button>
<div id="decodedUrlsCaptionDiv">
<p id="decodedUrlsCaption">Here you will see the decoded URLs so you can follow them:</p>
</div>
<ul id="decodedUrlsUl">
</ul>
<script>
// based on http://www.w3schools.com/js/tryit.asp?filename=tryjs_intro_validate
function decodeSuspenderUrlMethod() {
var decodedUrl = "";
var errorText = "";
// Get the value of the input field with id="numb"
var suspenderUrl = document.getElementById("suspenderUrl").value;
var stripPrefix = "chrome-extension://klbibkeccnjlkjkiokjodocebajanakg/suspended.html#url=";
var prefix = stripPrefix + "http";
// Am I a SO developer now? At least I'm quickly learning some JavaScript basics…
// http://stackoverflow.com/questions/1767246/check-if-string-begins-with-something/9430330#9430330
// https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/substring
if (suspenderUrl.indexOf(prefix) == 0) {
// now strip the bits we don't need, then decode what is left.
// I always wondered why they call it substring instead of subString
var googlePlusEncodedUrl = suspenderUrl.substring(stripPrefix.length);
// decoding got a new new a while ago: http://stackoverflow.com/questions/4292914/javascript-url-decode-function/4292961#4292961
decodedUrl = decodeURIComponent(googlePlusEncodedUrl);
} else {
errorText = "URL is missing this prefix: <<" + prefix + ">>";
};
// for now, just add the output; in the future, only add unique output.
// Based on http://stackoverflow.com/questions/5519747/how-to-add-anchor-tags-dynamically-to-a-div-in-javascript/5519795#5519795
var decodedUrlsUl = document.getElementById("decodedUrlsUl");
var decodedUrlLi = document.createElement('li');
if (errorText == ""){
var aTag = document.createElement('a');
aTag.setAttribute('href', decodedUrl);
aTag.innerHTML = decodedUrl;
decodedUrlLi.appendChild(aTag);
} else {
var aDiv = document.createElement('div');
aDiv.innerHTML = errorText + " " + suspenderUrl;
decodedUrlLi.appendChild(aDiv);
}
decodedUrlsUl.appendChild(decodedUrlLi);
}
</script>
</body>
</html>

Posted in Chrome, Development, Google, HTML, HTML5, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Development | Leave a Comment »