When GetIt Package Project Dependencies first came out in Delphi 10.1 Berlin, they didn't work right, or at least not for me in the way I expected them. I had problems with them in Delphi 10.2 and 10.3 as well. I don't remember if I tried them or not in Delphi 10.4. However, with the new Delphi 11 Alexandria that was released last week, they DO work! Yay!
This week's Desktop First UX Summit, hosted by Embarcadero, is a great collection of presentations by leading software development and design professionals sharing the theory and practice of creating great desktop experiences. I really appreciate the focus on desktop app design--not everything is mobile or web. One of my favorite speakers every year is Ray Konopka and he gave another great talk, this year on How Tab Controls Can Ruin Desktop UX.
A long time ago when Delphi 5 was king and conferences were in person, I was able to attend BorCon and saw a session presented by Mark Miller. I don't remember the topic but I do remember noticing that he was typing code really fast. He wasn't just typing fast, though, he was coding fast! As he was typing, characters were being turned into words and sometimes even full expressions. At some point, he explained how he was doing it: he was using a Delphi IDE plugin called CodeRush.
I switch back and forth between doing cool new stuff with the latest version of Delphi on web and mobile platforms and supporting legacy apps that have been running for a long time but the original programmer has long since left. The project I'm working on today falls into the latter category and the current challenge is storing a letter template file in an old Advantage Database. My update to the software has be put into an installer script and sent out to non-technical customers to update their existing installed databases.
I've been watching a weekly webinar by Embarcadero, usually hosted by Jim McKeeth, called TCoffeeAndCode and today's topic was "Managing Large Projects and IDE Performance Enhancements". This one was packed full of tips and tricks for speeding up your development with IDE plugins, better use of the keyboard, managing projects, analyzing code, and so forth. Near the end, Jim called out to programmers everywhere to blog about their favorite productivity tips and share with others what works for them to speed up software development.
So I'm taking on this challenge for myself and am starting a mini series highlighting ways I use Delphi, the short-cuts I've found useful, my favorite plugins, and other tidbits I've picked up along the way. Perhaps you will find something useful. In this first blog on the topic, I'll talk about the built-in keyboard shortcuts Delphi provides in the editor and how I use them every day.
One of the legacy projects I support was written in Delphi 7 and uses ACE Reporter. I have only used ACE Reporter once before and very little even then so don't know much about it but it seemed to work fine for what it was doing. I was tasked with adding a column to a report where the data on the report came from a temporary table that gets filled every time it prints. Adding a column to the report implied adding a column to the table. A previous experience updating tables with this app proved to take an inordinate amount of time so I wanted to avoid that if possible.
It is with honor that I have joined the ranks of other recognized professionals that love and promote Delphi and related Embarcadero products.
I've been using a couple of small InterBase databases for testing and learning purposes while doing some mobile and web development. I have a Windows 2016 Server in my office with InterBase XE7 and 2017 installed using different ports. Since I work from multiple virtual machines and sometimes a laptop, I just put the databases on the Windows server to access them all from whichever development environment I happen to be using. Both InterBase instances on the server were using the Developer license that comes with Delphi--requiring a restart once a day.
A few days ago, I wrote about signing your commits so they'll show up on GitHub as verified. After that process is in place, every commit requires the passphrase associated with the signing key to be re-entered. This gets old quickly if you're committing frequently (which you should). Fortunately, there's a way to cache the passphrase to make this much less burdensome. Unfortunately, the cache only lasts 10 minutes.
Some people blog to vent. Some people blog to educate others, a way of giving back to the community. For others, it's a marketing effort, to help make themselves known by putting lots of popular keywords in their posts. This particular blog post serves another purpose: to remind me of a set of steps in order for GitHub commits to show up as verified.
Coming from a long history of Windows VCL development with Delphi, I have often used data-aware controls to quickly hook up data sets to controls and grids. As I've been doing more mobile development, I've taken a look at LiveBindings and like its extensibility. So, I decided to try my hand at extending it!
First off, I shamelessly admit the title is just a little misleading but it was so catchy, I couldn't resist! However, setting up a quick Drupal website did turn out to be the easiest way I could think of to get around some limitations in the environment from which I was trying to transfer a Delphi project.
Software "Easter Eggs" have long been a fun thing to stumble across. Hidden features, not documented in the standard user guides but found by users (or leaked by developers) are then spread by word-of-mouth as everyone has to go find and see it for themselves then tell their friends. Often, these gems are small and don't take much time as developers sometimes have to sneak them in. Others, like flight simulator in Excel 97 are more involved.
Have you ever downloaded an application and had Windows try to prevent you from opening it? Many times that will slow or stop malware from getting onto your computer but for contract programmers that distribute a variety of custom-built applications to clients, it can be annoying to them as they struggle to keep the download from being quarantined or deleted by their web browser or anti-virus program. Often, the download is halted simply because the application is not recognized and the publisher is unknown. Fortunately, there's a solution that doesn't cost too much and provides not only peace of mind for the person attempting to install your software but also smooths the process, eliminating warnings.
I often have to write up contracts or work agreements and have a few templates for this purpose. Microsoft Word has a field function where you can create fillable entries which is nice for making forms but that's not what I need to do. What I would like to do is once I fill out one of the fields, I'd like it replicated to other places in the document where that field appears. You'd think this would be easy but I've struggled to find good documentation on how to do this.
Today, I finally got it!
I listened to a podcast today entitled, The myth of turning your hobby into a job. It discussed how so often people discover too late that doing something you like doesn't keep its luster once you have to keep doing it day-in and day-out in order to support yourself. The thing they once enjoyed with a passion has become a drudgery, an obligation.
It got me thinking about my career history.