It was my pleasure presenting the power of TMS WEB Core in this year's Delphi Coding Bootcamp. In particular, I show how easy it is to create applications for the Web if you are a Delphi developer already used to writing desktop applications with the VCL.
Enjoy!
Abstract
Join this session by MVP and author Dr. Holger Flick to learn the fastest, easiest way to create powerful, fully working web apps with little or no code using skills you already have. Design the apps visually and with a click of a button get perfect HTML, CSS, and JavaScript created for you.
Converting strings to dates never seemed to be straightforward. First, specifying the source for all the different date component was difficult.
Second, if the conversion is unsuccessful and "no date" has been defined, it could not be expressed with TDate or TDateTime.
Possible solutions for both issues will be presented in this 5-Minute-Snack.
For the first time in years, TMS was able to celebrate Training Days in-person again! This year, TMS introduced us to the city of Bruges in Belgium. It was a wonderful event with a lot of opportunities for Delphi developers to mingle and exchange their knowledge.
Aside from the social events, there were lots of training sessions with valuable content.
As a brief introduction if you do not even have an idea what I am talking about. Final Fantasy XVI is a highly anticipated computer action game by Square Enix that was released last week for Sony Playstation. In my spare time - when I need to relax - I am known to play the one or the other game on the Playstation console.
I have gotten my first (personal) computer in 1987. Back then, graphics were not the standard. Most of the time you used a text-based console. In my case, MS-DOS 3.2 was pre-installed with English locale only. Weeks after taking my first steps, MS-DOS 3.3 was released and the computer started to reply in German. I was also in the rare position to have a color display with 16 colors. Formally, an EGA card was installed in the system. What a wonderful thing to have colors and not just white, green, or purple. Still, there were few games available and graphics were not really sophisticated. The first game with awesome graphics that comes to mind is Monkey Island.
Remember, this was before Windows. First dialog boxes were being used in software like AutoSketch. However, even text-processors that allowed you to import pictures, used text-representations. I am not sure how many Delphi developers still remember Turbo Vision, but it was tough to code with and it was nowhere near the level of today's modern user interfaces.
At the same time, you could also invest in an Amiga which had a completely different approach with a graphical user interface. Also, many of my friends had a "Commodore 64" -- referred to as C64. If you were just interested in games and had a TV, you most likely had a Nintendo Entertainment Station -- NES.
I was fascinated by these systems, but because our family has a PC, there was simply neither time nor budget for a second system. Also, my parents had me rather sit in front of a computer that was not limited to playing games -- which the Nintendo or SEGA systems definitely were.
Interestingly, I do not have a single friend or acquaintance that owned one of those "gaming systems" or an Amiga that went into the software development world. Even more so, none of them decided to pick a job focused on computer science either.
As you might have guessed, I did not spend a lot of time gaming back then but started writing my own computer program. To most of your surprise, I am sure, not in Pascal!
GW-Basic was the first language handed to me (with a book on my birthday) and this is the sequence of my programming language/software development tools. I say software development tools as dBASE III was not a programming language by design.
graph LR
a(<b>1988-1990</B><br>Basic)
b(QBasic) --> d
aa(GW-Basic) --> d
a --> b
a --> aa
a --> c
c(Quick Basic) --> d(<b>1991/92</b><br>dBASE)
d --> da(dBase III) --> e
d --> db(dBase IV) --> e
e(<b>1992</b><br>Nantucket Clipper)
e --> ea(Clipper Autumn '86)
e --> eb(Clipper Summer '87)
e --> ec(Clipper 5)
ea --> f
eb --> f
ec --> f
f(<B>1994-1996</B><br>Borland Pascal)
ff(<B>1994-1996</B><br>Borland Pascal)
ff --> fa(Turbo Pascal 5/6)
ff --> fb(Borland Pascal 7)
ff --> fc(Turbo Pascal for Windows)
fa --> g
fb --> g
fc --> g
g(<b>Delphi 2</b>)
A long journey indeed. Stay tuned for another post about my journey from Delphi 2 to Delphi 11 Alexandria.
These are some snapshots of what "blew me away" visually playing Final Fantasy XVI. For the record, I still have not finished the game. Also, these are graphics from a Playstation 5 console. Imagine how far we have come since 1987 when playing games on a professional "Gaming PC"! I hope you are as amazed as I am what is possible with computers these days - and I have not even mentioned the audio and other additions that modern games treat us with...
Welcome to my new blog! Once again, it is time for an update. In the last 20 years, we have come a long way. It seems like yesterday I started blogging, but as this post will show, there is quite some history involved.
I started in November 2005 with my first blog on https://blogger.com called Holger's Thoughts on Delphi:
It was a great, no-cost alternative to publish on the internet at the time. There, I published my first code snippets about Delphi and .NET development. Also, my first video tutorials that I created for Borland were announced there.
After a while, a new, more modern, blog engine was needed. I also had stopped blogging on a regular basis because after college, I took on other challenges that kept my Delphi work to a minimum. Well, at the end of 2016, I decided to focus on Delphi again and WordPress delivered a new, modern blog engine with lots of other content. My internet provider offered web space with WordPress enabled. Thus, I could move my blog as well as all my other web content over to WordPress. However, WordPress has become more about design and web pages than blogging technical content. It no longer was the right tool for my technical articles.
Recently, I noticed that more and more developers used GitHub Pages to present their thoughts on the Web. I noticed much better search capabilities, automatically generated table of contents, and - most important of all - extraordinary code formatting.
Thus, I jumped right into the world of page publication with GitHub. My first endeavor I created with Jekyll and a special template for technical documentation. I was already providing a lot of the features desired. All additional content for my sessions for the TMS Days in Belgium was created using Jekyll and Markdown. However, it lacked one important part of every modern developer website: a blog! I was not going to move over to a solution that would not allow me to publish posts on a regular basis and send updates to the community.
While reading the documentation for Vapor, a server-side development tool using Swift, I noticed it was created with a tool called MkDocs. Just like Jekyll it allows you to generate documentation content using Markdown. Even better, there was an open-source project called Material for MkDocs which extended the theme and added dozens of plugins with hundreds of customization options. That turned out to be the winning combination!
Thus, I was able to create a complete workflow using only free tooling:
graph LR
A[Markdown] --> B[Material for MkDocs] --> C[GitHub] --> D[GitHub Pages]
A detailed list of the tools used:
Visual Studio Code
MkDocs
Material for MkDocs
Git
GitHub:
GitHub Repository
GitHub Pages
GitHub Workflows
All content is written in Markdown and each Git Push triggers a GitHub workflow which publishes the website. Really, after all these years, the best solution for a software developer.
In addition to the blog, I am able to create tutorials and code snippet posts ("snacks") that are much easier to find as they are not hidden in a blog post.