Archive for the ‘Event’ Category
Posted by jpluimers on 2017/09/14
Some inspiration for writing a proper bookmarklet that finds or saves a WayBack machine page:
On the last link, I was hoping that the https://web.archive.org/liveweb/https://www.example.org would work but it doesn’t work for many URLs and I’m not sure yet why that is.
It has a nice tip that works though:
Read the rest of this entry »
Posted in Bookmarklet, Conference Topics, Conferences, Development, Event, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers | Leave a Comment »
Posted by jpluimers on 2017/09/11
I was debugging an issue where a Delphi SOAP implementation was shoe-horned into an Indy server and came across the [WayBack] TWebRequest.UpdateMethodType Method.
The further you get down the if/then/else tree, the more often the indexed property Method is accessed, same for the conversion/comparison code.
property Method: string index 0 read GetStringVariable;
So if the HTTP method is POST (very common), then the calls are being made 3 times:
procedure TWebRequest.UpdateMethodType;
begin
{$IFDEF NEXTGEN}
if Method = 'GET' then { do not localize }
FMethodType := mtGet
else if Method = 'PUT' then { do not localize }
FMethodType := mtPut
else if Method = 'POST' then { do not localize }
FMethodType := mtPost
else if Method = 'HEAD' then { do not localize }
FMethodType := mtHead
else if Method = 'DELETE' then { do not localize }
FMethodType := mtDelete
else if Method = 'PATCH' then { do not localize }
FMethodType := mtPatch;
{$ELSE !NEXTGEN}
if System.AnsiStrings.AnsiStrComp(PAnsiChar(Method), 'GET') = 0 then { do not localize }
FMethodType := mtGet
else if System.AnsiStrings.AnsiStrComp(PAnsiChar(Method), 'PUT') = 0 then { do not localize }
FMethodType := mtPut
else if System.AnsiStrings.AnsiStrComp(PAnsiChar(Method), 'POST') = 0 then { do not localize }
FMethodType := mtPost
else if System.AnsiStrings.AnsiStrComp(PAnsiChar(Method), 'HEAD') = 0 then { do not localize }
FMethodType := mtHead
else if System.AnsiStrings.AnsiStrComp(PAnsiChar(Method), 'DELETE') = 0 then { do not localize }
FMethodType := mtDelete
else if System.AnsiStrings.AnsiStrComp(PAnsiChar(Method), 'PATCH') = 0 then { do not localize }
FMethodType := mtPatch;
{$ENDIF NEXTGEN}
end;
–jeroen
Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | 4 Comments »
Posted by jpluimers on 2017/04/20
You think you know Unicode? Think again, then read [Wayback] Dark corners of Unicode / fuzzy notepad.
On basics, sorting, comparison, decomposition, composition, width, whitespace, encoding, emoji, interesting code planes and dark corners. Lots of dark corners.
The examples are in Python, but hold for almost any programming language
–jeroen
via: Kristian Köhntopp
Posted in Conference Topics, Conferences, Development, Encoding, Event, Software Development, Unicode | Leave a Comment »
Posted by jpluimers on 2017/04/18
One of the reasons I favour using RTL based functionality over Delphi Intrinsic Routines like Length, Abs and others is that you cannot use compiler intrinsics in Generics. For instance Length is not compatible with TFunc<string, Integer> unless you declare it yourself like function StringLength(value: string): Integer; as otherwise you get en E2029 error (in this case the cryptic '(' expected but ';' found).
It’s one of the many areas where the Delphi compiler developers took a shortcut, but in this case I think the results are somewhat good.
Other reasons for using the RTL over compiler intrinsics have to do with scoping: the intrinsics are in the global scope which can clutter what you’re trying to work on.
So I much rather use the file and stream related functions when I’m actually working with a file or stream. For instance Assign for me has nothing to do with a file outside of a file context (it’s the reason AssignFile exists in the first place).
–jeroen
via: I cant use “Length” as a TFunc (tested in XE and XE6), but if…
Posted in Conference Topics, Conferences, Delphi, Delphi 10 Seattle, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Event, Software Development | 1 Comment »
Posted by jpluimers on 2017/02/08
Be sure to read the details in Trying to recover from enhancement software that generates fake input incorrectly – The Old New Thing [WayBack] (much more Old New Think stuff below):
The most insightful part for me was this diagram listing where various methods enter the message pipeline (I added the GetMessage/PeekMessage entry):
Read the rest of this entry »
Posted in Conference Topics, Conferences, Delphi-Tage.de, Development, Event, Software Development, The Old New Thing, Windows Development | Leave a Comment »
Posted by jpluimers on 2017/01/26
Need to check this out:
Register now for QCon London, a practitioner-driven conference designed for team leads, architects and project management, that tracks innovation in enterprise software.
Source: QCon London 2017 | Software Development Conference
Posted in Conferences, Development, Event, Software Development | Leave a Comment »
Posted by jpluimers on 2017/01/03
The first implementation of Compiler Explorer supports many versions of the gcc, clang and icc compilers on ARM, ARM64, AVR and x86 targets.
On the left you type your C++ code, on the right you see the resulting assembler code optionally with byte code and colorised so you can correlate the C++ lines with the assembly.
A great way to start the year: learning new things!
Related:
–jeroen
via:
Some videos:
Read the rest of this entry »
Posted in ARM, Assembly Language, C++, Conference Topics, Conferences, Development, Event, Software Development, x86 | Leave a Comment »
Posted by jpluimers on 2016/12/27
A long while ago, but still an interesting discussion: Is there a predictable order of execution for Class Constructors? leading to these links:
–jeroen
Posted in Conference Topics, Conferences, Delphi, Delphi 10 Seattle, Delphi 2010, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Event, Software Development | Leave a Comment »
Posted by jpluimers on 2016/12/21
Some of the [Wayback] Ken Thompson – Wikiquote entries come from a great [Wayback] 1983 ACM Turing Award Acceptance Lecture [Wayback] “Reflections on Trusting Trust”.
That lecture used to be on http://cm.bell-labs.com/who/ken/trust.html
But it isn’t, and was not in the WayBack machine and neither in the Google Cache [Archive.is] because of the [Wayback/Archive.is] robots.txt. Historic link rot galore!
Edit 20210728: by now it is in the Wayback machine again; the earliest archived copy is from 2001, it also shows that as of april 2015 it is gone from the bell labs server.
The lecture is about [Wayback] compiler viruses and viruses actually did this at least a few times: Wayback: Delphi in 2009 and to [Wayback] XCode in 2015.
A few nice links from [Wayback] ACM Classic: Reflections on Trusting Trust – Google Groups though:
And archived versions of (I hope accurate) copies of the article:
Finally I found a PDF copy of the original ACM prints that Greg Ganger of Electrical and Computer Engineering at Carnegie Mellon University has online. It’s archived too.
–jeroen
Further reading:
Posted in *nix, Conference Topics, Conferences, Delphi, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Development, Event, Fun, Internet, link rot, Power User, Quotes, Software Development, T-Shirt quotes, WWW - the World Wide Web of information, xCode/Mac/iPad/iPhone/iOS/cocoa | Leave a Comment »