Jump to content

Darian Miller

Members
  • Content Count

    559
  • Joined

  • Last visited

  • Days Won

    12

Everything posted by Darian Miller

  1. Darian Miller

    Delphi job

    At least in the U.S., the market has been drying up for many years. In some companies, they take forever to hire replacement Delphi developers because they get no responses to their ad, or they are overwhelmed by inexperienced foreign developers. Many experienced Delphi developers have been in the same job for years and it takes a lot of effort to get one to leave the safety of their current position. Eventually they leave when the project is rewritten, or they participate in the rewrite and migrate to the new team and the Delphi team is dissolved. I usually re-post open Delphi positions when I stumbled across them but I only see a few new Delphi job ads a month. I keep waiting for the next revival of Delphi as it's still a powerful tool, but Embarcadero seems happy with its current growth in Brazil and doesn't seem too focused on U.S. other than keeping the renewals flowing.
  2. Darian Miller

    New to delphi - coming from web

    Here's a quick blog post about some options. https://blogs.embarcadero.com/ultimate-web-frameworks-for-ultra-fast-web-application-development-using-delphi-c-builder/
  3. Darian Miller

    New to delphi - coming from web

    Check out https://www.tmssoftware.com/site/tmswebcoreintro.asp
  4. Darian Miller

    Anyone know why?

    It gets rewritten in C# or otherwise moved to the cloud.
  5. Darian Miller

    Anyone know why?

    Or they are unemployed living in their Mom's basement.
  6. Darian Miller

    Anyone know why?

    Not currently. I advertised a few times for my current workplace and we hired two devs in the last year or so. Our small dev team has 3 Delphi MVPs on it, which is nice.
  7. Darian Miller

    Anyone know why?

    I'd agree that contributes to the problem of hiring Delphi developers. I was in my last position for over 20 years. Most of the developers that worked with me were there for 10+ years. The younger ones last 12-18 months and move on.
  8. Darian Miller

    Anyone know why?

    That was a few years back, and the ability to successfully remote work is much higher today. (I remotely work full-time now with zero travel.) However, some teams insist on relocation. Being on-site can definitely improve communication, improve teamwork, improve productivity. Musk initially banned remote work at Twitter and then shortly afterwards embraced the concept as he discovered the cost savings. But, there's no "right" answer that applies to everyone...although it is definitely leaning more towards remote work today. Technology has improved and attitudes are different. But the downside for the Delphi developer that has been comfortably earning 100+k/year is now directly competing with the Brazilian or Phillipino developer earning significantly less.
  9. Darian Miller

    Anyone know why?

    Perhaps at some level, but there are practical realities. For example - are there just electricians - or some that work industrial, light commerical, some residential? You could be a residential electrician and likely work for a commercial outfit, but have to go through additional training. But perhaps the company doesn't want to train, or more likely, aren't experts at training. While they could hire an electrician that just worked on a few residential projects, there's definitely more business risk involved than hiring a licensed, experienced electrican that has worked on large industrial projects in the past. We've likely all learned one language and picked up others. But, you can certainly be an expert in one and a noob in another. For myslef, I've played with Python and can't stand it... I don't know if I could ever be productive in it. But it takes a long while to learn all the native libraries and nuances with any given platform. (New users to Visual Studio see a learning curve that wasn't nearly a decade ago.) So yes, you could treat all developers the same - but they aren't the same, not really. If you are in a pinch, a C , C++, C# developer could fit into a Delphi slot but someone that has just done Ruby on Rails would probably have a pretty hard time of it.
  10. Darian Miller

    Anyone know why?

    They seem to have been hiring Delphi devs for at least the last 10 years. I was in a similar boat a while back - trying to hire year after year. One problem for me was that I had 10 or more developers and there is always some turnover. By the time you hire a replacement and get them up to speed, you get a little break and get to do it again. Its tough finding quality Delphi developers that also want to relocate. The good developers have likely been in their same job for decade or more and are happy where they are at. The younger developers don't seem to stay in one place very long.
  11. Provide ChatGPT with table schema and ask it to generate the Delphi class, along with Create/Read/Update/Delete methods. https://www.ideasawakened.com/post/leveraging-chatgpt-to-generate-a-delphi-class-along-with-crud-code-from-a-table-schema Is there a IDE Expert or stand alone tool that does this sort of codegen?
  12. Darian Miller

    OAuth2 bearer token example?

    I just did for fun. Here's the result: Can you create an example OAuth2 bearer token example in Delphi using the THTTPClient ? Sure, here is an example of how to use the THTTPClient component in Delphi to authenticate with an OAuth2 bearer token: uses System.Net.HttpClient, System.Net.URLClient, System.NetConsts; function SendRequestWithBearerToken(const AURL: string; const AToken: string): string; var Client: THTTPClient; Request: THTTPRequest; Response: IHTTPResponse; begin Client := THTTPClient.Create; Request := THTTPRequest.Create(TNetEncoding.Base64); try Request.Method := TRESTRequestMethod.rmGET; Request.URL := AURL; Request.Headers.AddValue('Authorization', 'Bearer ' + AToken); Response := Client.Execute(Request); if Response.StatusCode = 200 then Result := Response.ContentAsString else raise Exception.CreateFmt('Request failed with HTTP error %d: %s', [Response.StatusCode, Response.StatusText]); finally Request.Free; Client.Free; end; end; In this example, the SendRequestWithBearerToken function takes two parameters: AURL: The URL of the API endpoint that you want to call. AToken: The OAuth2 bearer token that you want to use for authentication. The function creates a THTTPClient object to send the HTTP request, and a THTTPRequest object to set up the request headers. It sets the HTTP method to GET and sets the URL and Authorization header with the bearer token. Finally, it sends the request using the Execute method of the THTTPClient object and returns the response as a string. You can call this function like this: var ResponseContent: string; begin try ResponseContent := SendRequestWithBearerToken('https://api.example.com/items', 'my_bearer_token'); // Process the response content here except on E: Exception do ShowMessage('Error: ' + E.Message); end; end; Note that in this example, you would need to replace the https://api.example.com/items with the actual API endpoint you want to call, and my_bearer_token with the actual OAuth2 bearer token that you want to use for authentication.
  13. Darian Miller

    Need a "Delphi programming guideline"

    Here's one I started: https://github.com/radprogrammer/radteam/wiki/RADProgrammer-Style-Guide
  14. Darian Miller

    Delphi 11.2 unofficial LSP patch

    It's definitely a beta quality update and not intended for widespread use, but the more feedback they get the better. This has been such an annoying issue...
  15. Darian Miller

    Default(TMyRec) usage

    Given a record with managed elements such as TExampleRec = Record Example1:Integer; Example2:String; End; When declaring and using a local variable, do you always use Default(TExampleRec) even when you know you will be setting each field? Procedure MyTest; var x:TExampleRec; begin x := Default(TExampleRec); x.Example1 := 202; x.Example2 := 'Test'; DoSomething(x); end; I've been in the habit of using Default(xxx) on record initialization since it was introduced (in 2009?) I'm wondering what others do. Pretty much the really ancient code used record pointers and New/Dispose and I slowly moved away from that for most things.
  16. Darian Miller

    Default(TMyRec) usage

    Does it do that with records? I wasn't aware of that optimization.
  17. Darian Miller

    Delphi beta testing a "premium" privilege?

    The support page states "Regular online meetings with the product team and individual company roadmap sessions" So premium support is, in part, to pay for individual roadmap sessions.
  18. Darian Miller

    Delphi beta testing a "premium" privilege?

    Marco stated in the 11.2 Release Webinar that Embarcadero does not have any current plans to publish a new roadmap. I assume the new idea is ... if you want any kind of roadmap, pay for it by buying Premium Support. A grouping of roadmap items can be found here: https://github.com/ideasawakened/DelphiKB/wiki/Future-Releases-for-RAD-Studio-and-Delphi
  19. Check out the study guides, available on the academy page: https://www.embarcaderoacademy.com/p/delphi-developer-certification-exam https://www.embarcaderoacademy.com/p/delphi-certified-master-developer-exam Also direct downloads: https://www.danysoft.com/estaticos/free/delphi-developer-certification-study-guide.pdf https://www.embarcadero.com/images/dm/technical-papers/delphi-master-developer-certification-study-guide.pdf Advice: Keep a copy of Delphi running with a simple Hello World application opened. Keep a copy of the Help open Some of the questions are just too easy...some are too obscure and you'll have to look them up, or if you are quick enough, run a quick test to help define the expected results of a particular question.
  20. Darian Miller

    Nasty Parallel Programming Library bug - please vote

    Can you provide a test program to replicate it?
  21. Darian Miller

    Latetst support SQLITE version in Delphi 11.x

    FireDAC provides SQLite binaries v 3.31.1 in the latest version of RAD Studio https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Connect_to_SQLite_database_(FireDAC) You should be able to use the latest version with dynamic linking without issue but there's always a chance that FireDAC needs an update to work with some brand new feature - do you have specific requirements?
  22. Darian Miller

    After Update 11.2 libsqlite.a not found IOS

    There's a QP issue for this: https://quality.embarcadero.com/browse/RSP-39164
  23. Darian Miller

    function returning interface

    FWIW, 11.2 is also: Begin Create Destroy Create Destroy End
  24. Darian Miller

    The Delphi 11.2 release thread

    I assume you'll have to wait a few more years. Even if they introduce new refactoring in the next release, it won't be feature complete or stable for awhile.
×