Archive for 2014
Posted by jpluimers on 2014/10/15
Two changes I really like in the new v1.5.0.338 build of Continua CI version log history:
- Update: Now logging the environment variables passed to actions in the build log
- Update: Better messages when handling errors expanding variables
That makes debugging build issues a lot easier, as many of them are related to (environment) variables.
–jeroen
via Version 1.5 History | Continua CI – Page2RSS.
Posted in Continua CI, Continuous Integration, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2014/10/15
The Delphi MESSAGE directive is a very powerful one, you can generate compiler hints, warnings and errors with it, even fatal ones that abort compilation.
The compiler will return error codes H1054 (hint), W1054 (warning), E1054 (error) or F1054 (fatal error), which in the documentation are known under the catch-all x1054.
You need to take a bit of care with message directives, especially with the quotes. For instance
{$Message Error 'Not implemented'}
gives you the error below, but continues compiling:
[DCC Error] E1054 Not implemented
However, if you forget the single quotes
{$Message Error Not implemented}
it gives you error E1030 (not x1054), which is a bit confusing as it is a catch-all for invalid directives:
[DCC Error] E1030 Invalid compiler directive: 'message'
Here is a full example (now moved to bitbucket) of all the message directives and compiler reactions you can get: Read the rest of this entry »
Posted in Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2014/10/14
Delphi and 3rd party tools keep some of the settings in your %AppData% directory. Much more convenient than the registry as they are easier to read and modify when needed (also easier to damage <g>). We’ll start with an overview where various versions of Delphi store their configuration files, then show how the Favourites on the Welcome Page are stored, then end with an overview of BDS, Company Names and Product Names. Read the rest of this entry »
Posted in Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 8, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Development, History, Software Development | 4 Comments »
Posted by jpluimers on 2014/10/13
If you ever used an Apple II with a Z80 card, then this page will look very familiar to you: Apple II with Softcard.
–jeroen
Posted in //e, Apple, Apple ][, Power User | Leave a Comment »
Posted by jpluimers on 2014/10/10
Back when I wrote this mid 2013, this was the best Windows RDP overview article I could find: Best RDP client for Mac OSX Lion.
And it all got invalidated when finally (after years of silence), Microsoft released AppStore versions of the RDP client for both Mac OS X and iOS:
Microsoft Launches ‘Remote Desktop’ Apps for Mac and iOS – Mac Rumors.
So I tried the Mac App Store – Microsoft Remote Desktop that runs on OS X 10.6.0 or later for more than a year, and I like it a lot.
This is what the AppStore version improved over the classic Microsoft Remote Desktop Connection:
- It has more regular updates.
- It remaps the Mac Command key to the Microsoft Windows logo key.
- It uses the new RDP protocol version features which means fast response, even on slow network connections and better security.
- Full screen support is superb.
- Clipboard integration just works.
- It is really stable.
Just so you know about alternatives,
Posted in Apple, Keyboards and Keyboard Shortcuts, Mac, Mac OS X / OS X / MacOS, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, OS X 10.8 Mountain Lion, Power User, Windows, Windows 7, Windows 8, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP | 3 Comments »
Posted by jpluimers on 2014/10/09
When using any version control system, understanding which idiom you should follow to do proper branching, merging, tagging, etc is key to your process, and the most difficult thing to get a feel for.
For me, the most confusing part is that branches, tags, and the trunk are directories (both on your development system and the SVN server), and it is hard to see which local directory is switched to what remote one.
As soon as I understood that this was the most confusing aspect for me, I could focus on it and handle it much better.
For SVN (and TortoiseSVN), these links proved to be very valuable for me: Read the rest of this entry »
Posted in Development, Software Development, Source Code Management, Subversion/SVN | Leave a Comment »
Posted by jpluimers on 2014/10/08
I never realized you could overwrite the CD pseudo environment variable. If you do, the automatic value of the pseudo variable will not be udpated any more:
You have at some point set the CD variable explicitly. If you do this it will no longer automatically reflect the current working directory. To undo this, set it to empty:
set CD=
Thanks Jonathan and … for explaining this in both your answers.
Thanks to another answer by Endoro I now also know of the %=C:% pseudo variable (you have one per drive letter) that indicate the current directory per drive letter.
–jeroen
via: batch file – When is the CD environment variable updated? – Stack Overflow.
Posted in Batch-Files, Development, Power User, Scripting, Software Development, Windows, Windows 7, Windows 8, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP | 2 Comments »
Posted by jpluimers on 2014/10/07
Calling Randomize too often can make your Random numbers even less random.
Sometimes having the Randomize call in a unit initialization section is not practical.
Hence this little method that I think I first wrote back in the Turbo Pascal days:
procedure RandomizeIfNeeded();
begin
if RandSeed = 0 then
Randomize();
end;
–jeroen
Posted in Delphi, Delphi 1, Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi for PHP, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Development, Pascal, Software Development, Turbo Pascal | 7 Comments »
Posted by jpluimers on 2014/10/06
I just found this [Wayback] great answer (which by now regrettably is deleted; the previous Wayback link still has it) by [Wayback] Јοеу a.k.a. Johannes Rössel on [Wayback] What encoding/code page is cmd.exe using.
The whole answer is worth reading, so I won’t quote only some bits.
Edit 20210609: the answer now has been replaced by an even more detailed answer [Wayback] by [Wayback] andrewdotn. Also recommended reading. The summary of the new answer is this:
The moral of the story?
type can print UTF-16LE files with a BOM regardless of your current codepage
- Win32 programs can be programmed to output Unicode to the console, using
WriteConsoleW.
- Other programs which set the codepage and adjust their output encoding accordingly can print Unicode on the console regardless of what the codepage was when the program started
- For everything else you will have to mess around with
chcp, and will probably still get weird output.
–jeroen
via: windows – What encoding/code page is cmd.exe using – Stack Overflow.
Posted in Batch-Files, Development, Encoding, Power User, Scripting, Software Development, Windows, Windows 7, Windows 8, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP | Leave a Comment »
Posted by jpluimers on 2014/10/03
Had to download a bunch of stuff over the command-line from an IIS server that was using authentication. Not basic authentication, but NTLM authentication.
wget kept failing, even wget 1.10 that usually does NTLM quite OK (but up to 1.10.2 has a security vulnerability so you should not use wget 1.10 any more).
So I installed a Windows x86 cURL binary, and downloaded+copied the root certificates, then did some reading on the command-line switches.
Without any, cURL does http basic authentication. But a Windows server usually expects NTLM authentication (hardly documented, but it uses the Negotiate protocol).
When not using NTLM, both would show (wget -d, or curl -v) this in the output, indicating you should use NTLM authentication: Read the rest of this entry »
Posted in *nix, *nix-tools, cURL, Linux, Power User, SuSE Linux, wget, Windows, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2 | Leave a Comment »