-
Content Count
583 -
Joined
-
Last visited
-
Days Won
14
Everything posted by Darian Miller
-
Circular references with API design
Darian Miller posted a topic in Algorithms, Data Structures and Class Design
In a codegen project I am working on, I am importing an API and creating the Delphi code to utilize it. I prefer working with records so most of the codegen is creating record types for the request/response objects exposed by the API. However, about 5% or less of this large API types involve circular references between types. I tried a few different approaches and couldn't come up with a decent solution with records so I starting to use forward declaration with classes, at least for this 5%. That seems to work, but now I think I need to make all the types classes instead of having a mixture. I ventured into Variants and even implemented my own custom type via TInvokeableVariantType to get some properties defined but generic variant custom record types don't work. It was a cool side trek but didn't solve this problem. After stewing on this for a while, I thought I'd ask for any feedback. Would you prefer a large API with 95% simple records and some occasional class-based request/responses due to a funky API design, or would you want to see it consistent throughout and only use classes? Or would you implement an alternative approach? TRecordA = record Field1:Integer; Field2:TRecordB; Field3:string; TopX:TRecordC; end; TRecordB = record Field4:Integer; Field5:TRecordA; end; TRecordC = record Items:TArray<TRecordA>; end; -
See: https://www.embarcadero.com/support Premium Update Subscription support includes "Regular online meetings with the product team and individual company roadmap sessions" I am curious if anyone has purchased Premium Update Subscription and has received roadmap sessions... They have said in the past that if you are an active subscriber that you can privately ask about roadmap issues (nad not necessarily requiring Premium support.)
-
If you purchased 11 but your subscription ran out after 11.1 was released but before 11.2 was released, you could only use 11.1 even though 11.2 is another update to 11. I assume you should be able to download 11.1 in that scenario but accessing installers after your subscription runs out is a murky area to me. I believe they allow you to access the download portal only if you have an active subscription - so it's up to you to ensure that you download the installers you need and keep local copies before your subscription runs out. (Since you aren't paying them anything for ongoing support, you would be expecting lifetime free access to that large database of installers that they maintain - which seems like a valid argument from their side. On the flip side, bandwidth is pretty cheap these days and they are already hosting it for paying customers...) Alternatively, while you have an active subscription, you should at least keep a copy of their public download links so you can download them later as needed (for example, keep this link for the 10.4 ISO image: https://altd.embarcadero.com/download/radstudio/10.4/RADStudio-1042-4203.iso) Of course, they could change those download links in the future so it's best to keep local copies if you are not maintaining an active subscription. The best solution is to always keep your subscription active and up to date. It benefits the entire community by keeping your subscription current.
-
Delphi 12.2 enterprise : code insight 64 bits version
Darian Miller replied to Gilles Revaz's topic in Delphi IDE and APIs
New blog post from Embarcadero on 64-bit LSP https://blogs.embarcadero.com/delphi-lsp-64-bit-power-for-large-projects-and-improved-codeinsight/ -
d102 is for RAD Studio 10.2 Tokyo. d103 is 10.3 Rio. d104 is for 10.4 Sydney. d110 is for 11 Alexandria And d101 is for 10.1 Berlin. So you want to open the group project file in 10.1: packages/d101/dmvcframework_group.groupproj and Build All and then right click the design time package and hit Install. (And follow instructions to edit library paths) For Delphi 11, open packages/d110/dmvcframework_group.groupproj and repeat.
-
JIRA Service Desk is an abomination... but so many companies are tied into the JIRA/Confluence infrastructure that they can get away with it being so terrible. That reality sucks. I recommended they go with something else, or write their own. A simple service desk system written in TMS WebCore or Quartex Pascal would be a nice solution using a RAD Server middle tier with Interbase backend. But it's too big of a project to add to their overly full plate.
-
"Death to WITH" in your Delphi Code
Darian Miller posted a topic in Tips / Blogs / Tutorials / Videos
New blog post on WITH statements. The topic was recently discussed once again in the Delphi Developers Telegram group which triggered a blog post: https://ideasawakened.com/post/why-you-should-not-use-WITH-in-your-Delphi-code -
27398 attached 27398_unicode_statistics_tool.ZIP
-
"Death to WITH" in your Delphi Code
Darian Miller replied to Darian Miller's topic in Tips / Blogs / Tutorials / Videos
My guess is that Aliasing would bring in a new set of problems but if it's just a preprocessor type replacement, it might be OK. But look at your example code - what is the scope of "NewQty"? Does it belong to A, to B, or to the Form, or to a variable or method somewhere? If it doesn't belong to A or B, what if "NewQty" is added to A or B as a property or method later? Boom, your with-bomb will explode into a nice bug. -
"Death to WITH" in your Delphi Code
Darian Miller replied to Darian Miller's topic in Tips / Blogs / Tutorials / Videos
I quoted your blog article in mine. Thanks for the +1. -
If you are running Delphi 11.3, then you shouldn't see (or attempt to use) the 11.1 Debugging Patch in GetIt. That fix is in 11.3 already. 11.3 has one patch available but also note that 11.3 was re-released as "11.3 Build 2024" https://github.com/ideasawakened/DelphiKB/wiki/D28.ALEXANDRIA.11.3.0.2
-
Cross platform color picker and palette library
Darian Miller replied to Jim McKeeth's topic in I made this
... -
Suggestion for next version name - YASAB
Darian Miller replied to marc7909's topic in Delphi IDE and APIs
What components / IDE experts do you have installed? My 12.1 loads very quickly as I only have a few components installed. Sounds like you have hard drive problems or low on memory. -
It's disappointing for sure. Your support tool is a very visible representative of your company and your product. This is what they choose to represent their product. They had years of being out of date on their hosted JIRA so it didn't need to be a quick decision.
-
Embarcadero Developer Network - Status Inquiry
Darian Miller replied to TimC's topic in General Help
I didn't find a lot on CodeCentral for CSV. There was an ancient demo of a component from WinSoft. https://www.winsoft.sk/csv.htm Another article with Java code but not much else. Might want to checkout GitHub https://github.com/joaoduarte19/csvparser https://github.com/nanaksr/CSVParser https://github.com/afpineda/CSVUtils https://github.com/bomrafinha/FormatConverter https://github.com/git-bee/janSQL Here's a blog post on using FireDAC for CSV: https://blogs.embarcadero.com/this-is-how-to-easily-process-csv-data-using-firedac/ -
What version of Delphi has the least amount of bugs throughout history?
Darian Miller replied to Al T's topic in Delphi IDE and APIs
For historical versions: Pre-Unicode: It's very hard to beat Delphi 5 or Delphi 2007 Unicode: Delphi XE2 Delphi 5 is just an amazingly powerful, speedy IDE (but does get quirky with some projects.) Most would probably choose Delphi 7 over Delphi 5. I just personally spent a lot more time in Delphi 5. Delphi 2007 is the last version before the internals were changed for Unicode support and it also addressed many of the Delphi 5 IDE quirks with the new "Galileo IDE" IMHO: you should try very hard to stay away from the historical releases above and use the latest fully patched version (meaning after the fully patched third point release.) So, for Windows development, you would need a very strong reason to update from "11.3 with Patch 1" to any 12 release until a patched 12.3 becomes available. Their major releases are nearly always immediately followed with critical patch(es). Then, they spend most of the rest of the major release cycle mostly restrained to non-breaking changes so the focus on updates is quality improvements while they bang away on the next major release in the background. For non-Windows development, the very latest release is nearly always the best version to use due to the ongoing platform support requirements. But, for most people, the conversation has to include third party components and which are required to be used and which versions do they support. If you are highly dependent on third party components, then you would want to use the latest fully patched version that is fully supported by the components you require. -
Embarcadero Developer Network - Status Inquiry
Darian Miller replied to TimC's topic in General Help
Not all lost...just not as easily accessible. Do you have a particular CodeCentral item that you are interested in? -
I don't think anyone outside of Embarcadero can really know the internals of how that eligibility is determined in code but... are you using CE on a work computer in a networked environment? It may be identifying your employer or otherwise identifying someone else on the network with a CE license in use. There's an online list of FAQs available: https://www.embarcadero.com/products/delphi/starter/faq#tab-ce-faqs-licnver
-
Their initial plans failed to materialize. I think they believed some 3rd party that was going to help them migrate to the new system and that 3rd party over-promised and under-delivered and left Embarcadero holding the bag. The proof is simple - on January 27th, Marco publicly stated that the time to switch was 'now' and the new portal would be available at the end of the `next week`. After more than 2 months, the new portal finally became available on April 5th with zero items available from the old QP in the new system. They apparently have some internal way that the three systems are inter-connected (Old Public QP, New Public QP, Old Internal QP.) I'll have to update my outage blog post as I haven't touched it since "Update 19" back on March 18th. https://ideasawakened.com/post/embarcadero-network-issues
-
For those current FMX developers - if you were to start a new FMX application, initially targeted at Desktop users (and potentially targeting mobile users at some point in the future) do you have a list of third party control packs that you would normally rely on for a clean Windows 11 type interface? Standard data entry / reporting type application with contact management, document search/storage..
-
I know of no public indication that they are working on porting the existing issues from the old QP to the new one. As part of their FAQ: https://blogs.embarcadero.com/the-new-quality-portal-is-live-here-are-the-details/ Will I be able to see the old QP issues on the new Quality Portal? No. The systems are synchronized internally and we refer to both but there is no current way of surfacing a link between the old and new systems.
-
Try changing the variable "repoPP:PPgit_repository" to: "repoPP:PGit_repository" and call "git_repository_init(@repoPP..."
-
See this thread. I doubt it has changed much (or, at all.)
-
How to attach a DigiCert Token certificate to exeutable
Darian Miller replied to Bart Kindt's topic in Delphi IDE and APIs
We're getting ready to tackle this new problem of code signing with tokens. Do you have any guides for using AWS Cloud HSM with FinalBuilder? Is that available as an action? We're using an older copy of FinalBuilder - hopefully I can buy a new version and get this working. -
New RAD Studio 11.3 (Build 2024) posted Feb 20, 2024
Darian Miller replied to Navid Madani's topic in Delphi IDE and APIs
Konopka Controls are in the "Embarcadero General Packages Download for RAD Studio 11.3" available on https://my.embarcadero.com/