3D Credits Scroll with Delphi

A little fun with Delphi for today’s Star Wars day!

3D Credits Scroll with Delphi - May The Fourth

This is a pretty simple 3D form with a 3D layout at an angle, and then a 2D layout with text and images is animated up the 3D layout. The only code is populating the labels as the animation kicks off automatically.

3D Scroll - MayTheFourth-StructureDownload the code and run the full credit scroll, or change the message to share with your friends. It is FireMonkey, and while I only tested it on Windows, it should work on Android, iOS, macOS, and even Linux if you are running FMX Linux.

CreditScroll3D Source for 10.2.3 Delphi

May the Fourth be with You!

Posted in Funny, Source Code | Tagged , , | Leave a comment

LIVE! from the Embarcadero Austin Office

We are LIVE! from the Embarcadero Austin Office today at 1:30 PM CDT

Starting shortly. See you online!

Posted in podcast, Video podCast | Leave a comment

LIVE! with TMS Software’s Bruno Fierens, Wagner Landgraf & Holger Flick

A live conversation with TMS Software’s Bruno Fierens, Wagner Landgraf, & Holger Flick about some of the latest technology to come out of TMS Software.

[Find your local time]

Posted in podcast, Video podCast | Leave a comment

Google Cloud Shell Network Details

Marco Cantu’s blog post about Running a Delphi Linux Application on Google Cloud Shell got me wondering more about the Google Cloud Shell, specifically around the networking. First of all, is the IP address public?

jim@cloudshell:~$ hostname -I
172.18.0.1 172.17.0.2
jim@cloudshell:~$ curl icanhazip.com
35.199.148.57

So the private IP is different from the public IP. I’ll need to test to see if it is mapped with NAT or something. Seems unlikely though. Google offers public facing computers as part of their cloud services, so it makes sense that you would use those instead.

Next question is around bandwidth.

curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -

Results in . . .

Retrieving speedtest.net configuration...
Testing from Google Cloud (35.199.148.57)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Mimosa Networks (San Jose, CA) [17.60 km]: 40.662 ms
Testing download speed........
Download: 322.69 Mbit/s
Testing upload speed........
Upload: 260.94 Mbit/s

322.69 Mbit/s down and 260.94 Mbit/s up is really impressive! So if you have a task that requires a lot of bandwidth and then condenses it down to a smaller digest, it would be a really useful platform.

Posted in Cloud | Leave a comment

LIVE! With Boian Mitov of Mitov Software

Join us Tuesday, March 20th, for a LIVE conversation with Boian Mitov of Mitov software as we talk about Arduino, Visuino, IoT, Industrial Automation, AI and more!

(We had to reschedule due to technical difficulties)

11 AM Mountain Daylight Time

 

Posted in News, podcast, Video podCast | Leave a comment

Earlier this week’s episode on Cool Apps

Earlier this week Craig and I had a conversation the Cool App winners

Enter your cool apps and vote today!

Posted in podcast, Video podCast | Leave a comment

LIVE! Episode on Delphi Games and Graphics Engines

Join Craig, David, and Jim as they discuss Delphi powered Games and Graphics engines LIVE!

Live Tuesday, February 27th, 2018 at 12 PM Central Standard Time

Posted in Video podCast | 1 Comment

LIVE! Monday at 9 AM PST – Podcast Episode on Programming Books

On Monday this week David, Craig, and Jim discuss some of their favorite programming books, both focusing on Delphi and C++ specific ones, and general programming topics.

Slides

Posted in podcast, Video podCast | Leave a comment

Collecting Multiple Pages of REST Results in a Single MemTable

I’ve run into this a few times, where a REST Service returns results in pages, so you have to make multiple passes to get all the data. One thing I love about the RAD REST Client Library is the ability to store all the data in the FDMemTable where you can work on it. Unfortunately when you can only get part of the results that limits the functionality. Here is a simple solution to get all the pages in a single FDMemTable.

What you need is a second FDMemTable. My first one is called MembersTempTable, and it is attached to the Response Adapter. The second one is called MembersMemTable and it will hold the complete set of data.

  // Drop any existing data
  MembersMemTable.Close; 
  
  // Get the first page 
  MembersRequest.Params.ParameterByName('limit').Value := '50';
  MembersRequest.Params.ParameterByName('offset').Value := '0';
  MembersRequest.Execute;

  // This clones the FDMemTable
  MembersMemTable.CopyDataSet(MembersTempTable, 
    [coStructure, coRestart, coAppend]);

  // Now we add the other tables
  MembersMemTable.BeginBatch();
  try
    // Repeat until we don't get a full page
    while MembersTempTable.RecordCount = 50 do
    begin
      // Start with the next page
      MembersRequest.Params.ParameterByName('offset').Value := 
        (MembersMemTable.RecordCount - 1).ToString;
      MembersRequest.Execute;
      // Append those records into our FDMemTable
      MembersMemTable.CopyDataSet(MembersTempTable, [coAppend]);
    end;
    MembersMemTable.IndexFieldNames := 'id';
  finally
    MembersMemTable.EndBatch;
  end;
Posted in REST | Leave a comment

LIVE! 13-Feb-2018 Delphi Web Frameworks

Join Craig, David, and Jim as they discuss Delphi Web Frameworks LIVE!
13-Feb-2018 at 12 AM CST [other timezones]

Planning to discuss some of the following . . .

 

Posted in Video podCast | 5 Comments