Boss: I’ll ask Wally to write this software. I haven’t seen him since he took that agile programming class.
Source: Wally And Agile Programming – Dilbert Comic Strip on 2016-07-30 | Dilbert by Scott Adams
Posted by jpluimers on 2016/12/31
Boss: I’ll ask Wally to write this software. I haven’t seen him since he took that agile programming class.
Source: Wally And Agile Programming – Dilbert Comic Strip on 2016-07-30 | Dilbert by Scott Adams
Posted in Fun, Quotes, T-Shirt quotes | Leave a Comment »
Posted by jpluimers on 2016/12/31
Nice end-of-the-year reading:
Once upon a time, a friend of mine accidentally took over thousands of computers. He had found a vulnerability in a piece of software and…
Source: Everything Is Broken — The Message — Medium
–jeroen
Posted in Opinions | Leave a Comment »
Posted by jpluimers on 2016/12/30
When you ship OpenSSL DLLs, you should provide an update mechanism outside of your regular product cycle that updates these shortly after vulnerabilities are fixed.
Few if any products do that. So I made an overview from products and OpenSSL DLL versions I had installed on various systems.
I’m a developer, so the list is biased towards tools I use often.
All of them are vulnerable: [WayBack] https://www.openssl.org/news/vulnerabilities.html
–jeroen
via: [WayBack] Does Delphi installer install OpenSSL dll’s?
PS: Below some Software Archeology related links in the comments.
Posted in .NET, CollabNet, Delphi, Development, DVCS - Distributed Version Control, git, OpenSSL, Power User, Ruby, Security, Software Development, Source Code Management, SourceTree, Subversion/SVN | 7 Comments »
Posted by jpluimers on 2016/12/30
Now that everyone has had enough time to get proper TLS certificates using for instance LetsEncrypt, it’s time to up the ante: score better than an A on the SSL Labs tests from either their main site or dev site:
Here are some links to get there:
–jeroen
Posted in *nix, Apache2, Communications Development, Development, Encryption, Internet protocol suite, Let's Encrypt (letsencrypt/certbot), Power User, Security, TCP, TLS | Leave a Comment »
Posted by jpluimers on 2016/12/30
For my Link Archive: DNSSEC, Domainumzug mit Hindernissen / Blog / Privat – Lutz Donnerhacke.
–jeroen
via: Wenn man #DNSSEC mal richtig machen will, geht es komplett schief.
Posted in Power User | Leave a Comment »
Posted by jpluimers on 2016/12/29
In recent Delphi version, FastReport version 5 ships. But for parts of FastReport, it’s a trial. This includes the FastScript part. The trial is very close to the real FastReport 5 thing. So real that when you compile you don’t see a difference, not even when trial and official things are mixed.
The only difference is that the trial will have a ShowMessage result like this:
[Window Title] Fastscriptexecute [Content] Unregistered version of FastScript. [OK]
This occurred when I tried to move a the build process to a build server; a very tiny program will show this:
program FastScriptExecute;
uses
Vcl.Forms,
fs_iinterpreter;
{$R *.res}
var
fs: TfsScript;
begin
fs := TfsScript.Create(nil);
try
fs.Execute();
finally
fs.Free();
end;
end.
The build server had Delphi installed but not FastReports 5. I put all the sources in version control and fiddled with the project search paths until it built on the server.
Wrong!
Since the trial is so close to the real version, it will compile even if you don’t include all directories. In fact some permutations of the FastReports source and Delphi XE8 FastReports trial DUCs build perfectly fine.
Posted in Delphi, Delphi XE8, Development, FastReport, Software Development | 1 Comment »
Posted by jpluimers on 2016/12/29
For a file:
git rm --cached mylogfile.log
For a directory:
git rm --cached -r mydirectory
Thanks bdonlan for answering that: Remove a file from a Git repository without deleting it from the local filesystem – Stack Overflow
–jeroen
Posted in Development, DVCS - Distributed Version Control, git, Source Code Management | Leave a Comment »
Posted by jpluimers on 2016/12/28
For my reference:
select 'Date literal values' as description
, (cast('now' as timestamp)) as nowTimeStamp
, (cast('today' as timestamp)) as todayTimeStamp
, (cast('tomorrow' as timestamp)) as tomorrowTimeStamp
, (cast('yesterday' as timestamp)) as yesterdayTimeStamp
, cast(cast('Now' as date) as varchar(10)) as nowDateCast
, replace(cast(cast('Now' as date) as varchar(10)), '-', '') nowDateIso8601
, cast(cast('Now' as time) as varchar(13)) as nowTimeCast
, replace(cast(cast('Now' as time) as varchar(13)), ':', '') nowTimeIso8601
, cast(cast('Now' as timestamp) as varchar(24)) as nowTimeStampCast
, substring(replace(replace(replace(cast(cast('Now' as timestamp) as varchar(24)), '-', '') , ' ', 'T'), ':', '') from 1 for 15) as nowTimeStampIso8601
from rdb$database
;
Output and transposed output:
DESCRIPTION NOWTIMESTAMP TODAYTIMESTAMP TOMORROWTIMESTAMP YESTERDAYTIMESTAMP NOWDATECAST NOWDATEISO8601 NOWTIMECAST NOWTIMEISO8601 NOWTIMESTAMPCAST NOWTIMESTAMPISO8601 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Date literal values 3-8-2016 8:45:12 3-8-2016 4-8-2016 2-8-2016 2016-08-03 20160803 08:45:12.3860 084512.3860 2016-08-03 08:45:12.3860 20160803T084512 DESCRIPTION Date literal values NOWTIMESTAMP 2016-08-03 8:45:12 TODAYTIMESTAMP 2016-08-03 TOMORROWTIMESTAMP 2016-08-04 YESTERDAYTIMESTAMP 2016-08-02 NOWDATECAST 2016-08-03 NOWDATEISO8601 20160803 NOWTIMECAST 08:45:12.3860 NOWTIMEISO8601 084512.3860 NOWTIMESTAMPCAST 2016-08-03 08:45:12.3860 NOWTIMESTAMPISO8601 20160803T084512
References:
–jeroen
Posted in Database Development, Development, Firebird | Leave a Comment »
Posted by jpluimers on 2016/12/28
Thanks James Gosling for writing this, and Kristian Köhntopp for pointing me to it:
The Eight Fallacies of
Distributed ComputingEssentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.
1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite 4. The network is secure 5. Topology doesn’t change 6. There is one administrator 7. Transport cost is zero 8. The network is homogeneous For more details, read the article by Arnon Rotem-Gal-Oz
Summary of the full PDF paper
With almost 15 years since the fallacies were drafted and more than 40 years since we started building distributed systems – the characteristics and underlying problems of distributed systems remain pretty much the same. What is more alarming is that architects, designers and developers are still tempted to wave some of these problems off thinking technology solves everything.
Remember that (successful) applications evolve and grow so even if things look Ok for a while if you don’t pay attention to the issues covered by the fallacies they will rear their ugly head and bite you.
I hope that reading this paper both helped explain what the fallacies mean as well as provide some guidance on what to do to avoid their implications.
–jeroen
Posted in Development, Software Development | Leave a Comment »
Posted by jpluimers on 2016/12/27
As I got rid of some final hard coded IPv4 stuff, earlier this month I said good-bye to Ziggo cable internet.
Today, the xs4all ADSL line finally got disconnected as well:
My old trusty Fritz!Box 7340 showing ADSL got disconnected for good on 20161217
Which means that the years of running an xs4all DSL connection over mxStream, KPN FAST ADSL and xs4all ONLY are over. Oh the days:
Posted in ADSL, fiber, History, Internet, ISP, KPN, Power User, xs4all, Ziggo/UPC/A2000 | Leave a Comment »