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

Delphi and the Blockchain: More than just Bitcoin and Cryptocurrency

Here is the replay of my webinar on Delphi and the Blockchain. We start with some basics of Bitcoin and cryptocurrency, but we look specifically at some simple examples of what the blockchain is and how to use it.

Agenda

  • Cryptography Basics
  • Cryptocurrency Overview
  • BitCoin, Ethereum, & PascalCoin
  • Digital Contracts
  • Bitcoin price tracking
  • Mining – Proof of Work
  • Blockchain Overview
  • Blockchain Chat
  • Other Blockchain Usages

More information:

  • Blockchain is an emerging technology – there is still a lot to learn and discover
  • Everyone is focused on the Bitcoin gold rush, but Blockchain may have the bigger/longer impact
  • Read the original whitepaper bitcoin.org/bitcoin.pdf
  • More information
  • Stay tuned to Delphi.org for code and more

[Delphi Blockchain Examples]

 

Posted in webinar | 8 Comments