Reminder to self so I buys this: Firebird News » Migration Guide to Firebird 3
–jeroen
via: Ondrej Kelle
Posted by jpluimers on 2016/05/02
Reminder to self so I buys this: Firebird News » Migration Guide to Firebird 3
–jeroen
via: Ondrej Kelle
Posted in Database Development, Development, Firebird | Leave a Comment »
Posted by jpluimers on 2016/04/28
Thanks to Eric Grange who asked Which lightweight markup language? I learned about reStructuredText (no cap R!) from a few comments Joseph Mitzen made.
It looks like reStructuredText has been around for much longer than Markdown, has better features (#1 for me: it is unambiguous, #2: native support on GitHub), but isn’t as popular. I think the latter is because finding editors supporting a live preview for it is a bit hard and tools are scattered around the net.
So here are a few notes on how I got reStructuredText to work on my Mac using OS X.
The hardest part was getting the reStructuredText preview for Atom to work:
The error you get when pandoc cannot be found is this one:
It is easy to solve by modifying the Atom startup shell script and then don’t start Atom.app, but start atom from the command-line in a terminal window:
atom
For Windows:
A later try to get Pandoc installed on Windows was much easier: there is a Pandoc for Windows installer now.
I made a few, for instance:
Tables are always a hard thing in any markup. Luckily truben.no/table/ has a good table editor (it’s the same as table-editor.com) and can emit reStructuredText, Markdown, HTML and other formats.
Give me some time, and I will post more about using the format and how it compares to my Markdown past.
Note that pandoc does not fully support reStructuredText (for instance not all table features are supported), but docutils rst2html.py does and also gives better warning/error information when parsing.
Here are some links about the reStructured syntax and how they can be rendered by rst2html.py:
For now, I’ll end with the goals of reStructuredText which I really like:
Posted in Development, MarkDown, Perl, PHP, Power User, Python, reStructuredText, Scripting, Software Development | Leave a Comment »
Posted by jpluimers on 2016/04/27
400+ Free Resources for DevOps & Sysadmins ranging from bitbucket/gitbub via letsencrypt through loggly to cloudflare and all soorts of *aaS online IDEs, payment services and more.
via: Mary Tee referred to by Joe Hecht.
–jeroen
Posted in Development, Encryption, Let's Encrypt (letsencrypt/certbot), Power User, Security, Software Development | Leave a Comment »
Posted by jpluimers on 2016/04/27
Usually I use the old Borland grep.exe that still ships with Delphi. Too bad it is 16-bit app which does not recognise Unicode.
FindStr does. Though much slower and with limited regular expression capabilities, can do recursive searches too:
findstr /spin /c:"string to find" *.*
The /spin is a shortcut for these case insensitive command-line options (the full list of possible options is below):
/S Searches for matching files in the current directory and all
subdirectories.
/I Specifies that the search is not to be case-sensitive.
/N Prints the line number before each line that matches.
/P Skip files with non-printable characters.
Sometimes I leave out the /P to include binary files.
–jeroen
via:
Posted in Batch-Files, Development, Power User, RegEx, Scripting, Software Development, Windows, Windows 7, Windows 8, Windows 8.1, Windows NT, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Vista, Windows XP | Leave a Comment »
Posted by jpluimers on 2016/04/26
Oh yes, someone finally did it!
Insult your co-workers with snarky O RLY parody book covers!
Source:
via: O RLY Cover Generator: Create parodies of the iconic O’Reilly book covers
URL example:
–jeroen
Posted in Development, Software Development | Leave a Comment »
Posted by jpluimers on 2016/04/26
One of the things you cannot do in XSD, is have string enumerations contain both a key and a value.
But there is a little appinfo trick inside annotation that you can user under some circumstances, for instance when you interpret the XSD:
| <xs:simpleType name="event_result"> | |
| <xs:restriction base="xs:string"> | |
| <xs:enumeration value="101"> | |
| <xsd:annotation><xsd:appinfo>Syntax error</xsd:appinfo></xsd:annotation> | |
| </xs:enumeration> | |
| <xs:enumeration value="102"> | |
| <xsd:annotation><xsd:appinfo>Illegal operation</xsd:appinfo></xsd:annotation> | |
| </xs:enumeration> | |
| <xs:enumeration value="103"> | |
| <xsd:annotation><xsd:appinfo>Service not available</xsd:appinfo></xsd:annotation> | |
| </xs:enumeration> | |
| </xs:restriction> | |
| </xs:simpleType> |
appinfo is the application counterpart of documentation: both can contain any xml, but appinfo is aimed at machines, whereas documentation is aimed at humans.
–jeroen
via:
Posted in Development, Software Development, XML, XML/XSD, XSD | Leave a Comment »
Posted by jpluimers on 2016/04/22
Conclusion:
–jeroen
Source: Anyone that installed D10.1 had the new installation dialogs that Embarcadero…
Posted in Delphi, Delphi 10.1 Berlin (BigBen), Development, Software Development | 10 Comments »
Posted by jpluimers on 2016/04/21
Thanks Daniel Jackson for posting (the DocWiki hasn’t been update yet):
Version Conditional: VER310
Product Version: 24
Package Version: 240
IDE Version: 18.0
Compiler Version: 31
Source: I had expected Embarcadero would have updated the documentation to reflect the…
–jeroen
Posted in Delphi, Delphi 10.1 Berlin (BigBen), Development, Software Development | 2 Comments »
Posted by jpluimers on 2016/04/21
The below fragment is one of the favourite kinds of examples in the Ruby world:
5.times { |i| print i, " " }
It uses the times method on Integer and prints:
0 1 2 3 4
There are many implementations of this in other languages, for instance Ruby’s ‘times()’ function in C# | Of Code and Me (which the WordPress.com editor fucked up as it replaced Action<int> with Action which is a totally different thing, so the gist with code is below.
public static class IntExtensions
{
public static void Times(this int i, Action func)
{
for(int j = 0; j < i; j++)
{
func(j);
}
}
}
Which you use as
5.Times(i => Console.Write(i));
It’s slightly off as it prints:
01234
I know; nitpicking, but this code works (did I ever tell I love .NET fiddle?):
5.Times(i => Console.Write("{0} ", i));
Well, Mason Wheeler encouraged Asbjørn Heid for the below Ruby Mania in Delphi; just read the comments at In C# nearly everything is an object, so when writing a unit test for a string…
Since the WordPress.com editor fucks up TProc<Integer> into TProc and TProc behaves differently from TProc<Integer>, I’ve included a gist link with the actual code below.
program RubyManiaConsoleProject;
uses
System.SysUtils;
type
TRubyMania = record helper for ShortInt
procedure times(const IterBody: TProc);
end;
procedure TRubyMania.times(const IterBody: TProc);
var
i: Integer;
begin
for i := 0 to Self-1 do
IterBody(i);
end;
begin
5.times(
procedure(i: Integer)
begin
Write(i, ' ');
end
);
end.
It also shows why I hardly use anonymous methods in Delphi: they’re way too verbose.
–jeroen
Posted in Conference Topics, Conferences, Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Event, Software Development | 1 Comment »