Apple fanboys all know about 1 Infinite Loop. Turbo Pascal adepts about the index entries “infinite loop See loop, infinite” and “loop, infinite See infinite loop”.
Google as a more direct approach: www.google.com/search?q=recursion
Posted by jpluimers on 2016/11/23
Apple fanboys all know about 1 Infinite Loop. Turbo Pascal adepts about the index entries “infinite loop See loop, infinite” and “loop, infinite See infinite loop”.
Google as a more direct approach: www.google.com/search?q=recursion
Posted in Algorithms, Apple, Borland Pascal, Design Patterns, Development, Google, Pascal, Power User, Software Development, Turbo Pascal | Leave a Comment »
Posted by jpluimers on 2016/11/22
Since these files got missing again: [WayBack] Does anybody know where to get ReservedWordsOP.txt and ReservedWordsC.txt for java2OP.exe in bin\converters\java2op for Delphi 10.1 Berlin upd2? It also… – Rik van Kekem – Google+
Here they are:
Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Development, Software Development | 2 Comments »
Posted by jpluimers on 2016/11/22
Everybody surely knows about more and more software trying to smart replace straight double quotes " with opening ” and closing ” ones.
WordPress is no exception and when you forget to embed these quotes in code and/or pre tags, your source code won’t paste as such.
For terminal code (nx or Windows console doesn’t matter much): it’s much worse: you should not copy/paste code directly to the terminal.
I usually did this any way to get quotes corrected, but – via Daniela Osterhagen referring Dorin Duminica – recently came across a reason that’s much more important:
What’s on the clipboard might not be what you saw on the web site.
An elaborate example is at User iteraction based exploitation: WYSINWYC (What you see is not what you copy) but it comes down to:
style tags.So basically copy/pasting to the console is just as risky as piping curl through bash or another shell. You can actually detect that server-side (and abuse it)!
–jeroen
Posted in Console (command prompt window), Development, Power User, Scripting, Software Development, Windows | Leave a Comment »
Posted by jpluimers on 2016/11/22
A while ago, I needed to get the various date, time and week values from WMIC to environment variables with pre-padded zeros. I thought: easy job, just write a batch file.
Tough luck: I couldn’t get the values to expand properly. Which in the end was caused by WMIC emitting UTF-16 and the command-interpreter not expecting double-byte character sets which messed up my original batch file.
| What I wanted | What I got |
|---|---|
|
|
WMIC uses this encoding because the Wide versions of Windows API calls use UTF-16 (sometimes called UCS-2 as that is where UTF-16 evolved from).
As Windows uses little-endian encoding by default, the high byte (which is zero) of a UTF-16 code point with ASCII characters comes first. That messes up the command interpreter.
Lucikly rojo was of great help solving this.
His solution is centered around set /A, which:
Enjoy and shiver with the online help extract:
Read the rest of this entry »
Posted in Algorithms, Batch-Files, Development, Encoding, Floating point handling, Scripting, Software Development, UCS-2, UTF-16, UTF16 | Leave a Comment »
Posted by jpluimers on 2016/11/18
Nice error starting Delphi XE8:
[Window Title] Error [Content] Registration procedure, Dbexpressentimpl.Register in package c:\program files (x86)\embarcadero\studio\16.0\Bin\DataExplorerDBXPluginEnt220.bpl raised exception class EWrapperError: Parameter MetaClass cannot be nil. Do you want to attempt to load this package the next time a project is loaded? [Yes] [No]
–jeroen
Posted in Delphi, Delphi XE8, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2016/11/18
I wrote about disabling Castalia before. This is yet another reason why I disabled it: on a fresh install it will throw errors at startup like this one in XE8: [WayBack] http://qc.embarcadero.com/wc/qcmain.aspx?d=139278
[20441569]{coreide220.bpl} IDEKbd... (Line 586, "IDEKbd.pas" + 0) + $79D
[20441523]{coreide220.bpl} IDEKbd... (Line 586, "IDEKbd.pas" + 0) + $757
[2044168B]{coreide220.bpl} IDEKbd... (Line 586, "IDEKbd.pas" + 0) + $8BF
[2078892A]{coreide220.bpl} KbClient.TKeyboardServices.AddKeyBinding (Line 1455, "KbClient.pas" + 10) + $19
[0DD556A9]{Castalia220.bpl} Castalianavbar.TCastaliaNavToolbarKeyBinding.BindKeyboard + $4D
[2078746B]{coreide220.bpl} KbClient.TIDEKBDFrameAPI.KeyboardChanged (Line 521, "KbClient.pas" + 10) + $16
[20788AF5]{coreide220.bpl} KbClient.CheckUpdate (Line 1490, "KbClient.pas" + 3) + $6
[20788C7E]{coreide220.bpl} KbClient.TKeyboardServices.AddKeyboardBinding (Line 1527, "KbClient.pas" + 31) + $2
[50067002]{rtl220.bpl } System.@IntfCast (Line 36449, "System.pas" + 12) + $0
[0DD55629]{Castalia220.bpl} Castalianavbar.TCastaliaNavToolbarInstallerD8.WndProc + $2D
[2108A075]{designide220.bpl} Events.TEvent.Send (Line 165, "Events.pas" + 2) + $11
[0041D2B7]{bds.exe } AppMain.PostCreateInit (Line 2095, "AppMain.pas" + 72) + $B
[50682FE9]{vcl220.bpl } Vcl.Controls.TControl.WndProc (Line 7245, "Vcl.Controls.pas" + 91) + $6
[50687B91]{vcl220.bpl } Vcl.Controls.TWinControl.WndProc (Line 10079, "Vcl.Controls.pas" + 158) + $6
[5068A86D]{vcl220.bpl } Vcl.Controls.TWinControl.Invalidate (Line 12027, "Vcl.Controls.pas" + 0) + $9
[500605B4]{rtl220.bpl } System.TMonitor.TryEnter (Line 17939, "System.pas" + 10) + $0
[507C1F58]{vcl220.bpl } Vcl.Forms.TCustomForm.WndProc (Line 4427, "Vcl.Forms.pas" + 206) + $5
[506871B0]{vcl220.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9786, "Vcl.Controls.pas" + 3) + $6
[50172DF4]{rtl220.bpl } System.Classes.StdWndProc (Line 16882, "System.Classes.pas" + 8) + $0
[507CB41F]{vcl220.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10352, "Vcl.Forms.pas" + 23) + $1
[507CB44A]{vcl220.bpl } Vcl.Forms.TApplication.ProcessMessages (Line 10374, "Vcl.Forms.pas" + 1) + $4
[0041DE2B]{bds.exe } AppMain.TAppBuilder.ApplicationActivated (Line 2264, "AppMain.pas" + 0) + $7
[50828C27]{vcl220.bpl } Vcl.AppEvnts.TCustomApplicationEvents.DoActivate (Line 201, "Vcl.AppEvnts.pas" + 1) + $E
[50829289]{vcl220.bpl } Vcl.AppEvnts.TMultiCaster.DoActivate (Line 422, "Vcl.AppEvnts.pas" + 5) + $8
[507CA8E6]{vcl220.bpl } Vcl.Forms.TApplication.WndProc (Line 9949, "Vcl.Forms.pas" + 126) + $C
[50172DF4]{rtl220.bpl } System.Classes.StdWndProc (Line 16882, "System.Classes.pas" + 8) + $0
[507CC78D]{vcl220.bpl } Vcl.Forms.TApplication.CancelHint (Line 11181, "Vcl.Forms.pas" + 6) + $D
[507CB41F]{vcl220.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10352, "Vcl.Forms.pas" + 23) + $1
[507CB462]{vcl220.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10382, "Vcl.Forms.pas" + 1) + $4
[507CB795]{vcl220.bpl } Vcl.Forms.TApplication.Run (Line 10520, "Vcl.Forms.pas" + 26) + $3
–jeroen
Posted in Castalia, Delphi, Delphi XE8, Development, QC, Software Development | 3 Comments »
Posted by jpluimers on 2016/11/17
CppCon 2015: Greg Law ” Give me 15 minutes & I’ll change your view of GDB” – YouTube
via: Things you did not know about GDB – Kristian Köhntopp – Google+
–jeroen
Posted in Debugging, Development, GDB, Software Development | Leave a Comment »
Posted by jpluimers on 2016/11/17
I just discovered the versioning common sense I’ve used for decades actually has a name. It’s even a “standard”!
Semantic Versioning 2.0.0 Summary
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
I discovered it via:
betty – Friendly English-like interface for your command line. Don’t remember a command? Ask Betty.
Source: pickhardt/betty
–jeroen
Posted in Agile, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2016/11/16
Hopefully this was a one time oversight from Apple, but on OS X 10.9 (Mavericks) the Xcode command-line tools cannot be installed from the Xcode Preferences pane.
You have to install them from the command-line:
xcode-select --install
There is one catch though: it might fail as you first have to start Xcode once and accept the license agreement.
You need them for instance when playing with zlib-devel (for instance when creating your own openssl builds).
–jeroen
Posted in Apple, Development, Mac OS X / OS X / MacOS, OS X 10.9 Mavericks, Power User, Software Development, xCode/Mac/iPad/iPhone/iOS/cocoa | Leave a Comment »
Posted by jpluimers on 2016/11/15
Since I’m lazy and always misplace how to get the ISOs:
–jeroen
Posted in Delphi, Delphi 10.1 Berlin (BigBen), Development, Software Development | 1 Comment »