Delphi Dev
449 subscribers
1 photo
1 video
783 links
News, articles, books and videos from the world of Delphi development.
Download Telegram
​​Yesterday Nick Hodges has published links to three interesting development articles. There are Git organizing discussion, error handling themes, and one man’s opinion on the engineers hiring questions these days.

Just check them out here, and don't forget to πŸ‘
https://nickhodges.medium.com/three-development-articles-that-interested-me-this-week-1-17-2022-beacaf23b3cb
Just watch this interesting video by tmssoftware that describes how to create a self-updating Delphi app that automatically updates the program using their WebUdate component πŸ‘
https://youtu.be/WmdDDt0EM5k

BTW: I know at least one more library with the same functionality that downloads updates in background, replaces app files, including executables, and restarts the app, if required.
You can check out the project repository on GitHub πŸ‘Œ
https://github.com/CleverComponents/Clever-Internet-Suite-Examples/tree/master/Delphi/WebUpdateApp
​​Today guys from CleverComponents have published a new Delphi example that starts listening to an incoming connection, accepts the connection, and receives all data over the established connection. No data is sent back to the client. This functionality might be useful when you debug a Network app and want to analyze the produced TCP traffic, e.g. using Wireshark.

The program uses the TcpServerConnection socket class from the Clever Internet Suite library to start listening on the specified local port and receive TCP packets over the Network.
https://www.clevercomponents.com/portal/kb/a180/silent-socket-receiver-in-delphi.aspx

The program can be easily modified to send TCP response back to the connected client because the sources are available on GitHub πŸ‘
https://github.com/CleverComponents/Clever-Internet-Suite-Tutorials/tree/master/vcl/SilentSocketReceiver
​​Yet another post about design patterns. If you use the patterns in your code, please check out this big article that might help you to tackle certain problems in certain situations.

I know guys who learned patters one-by-one to quickly apply them when coding. To be honest, I didn't learn design patterns so closely, but used some of them, such as Singleton and Visitor. In fact, they was helped me a lot.

The article covers, I think, the most of possible design patterns and provides good code examples.
The examples are not in Delphi, but in fact, they allow to catch the main idea of the pattern.

Put πŸ‘ if the article was useful for you.
https://github.com/kamranahmedse/design-patterns-for-humans
​​Hello, please take a look on a simple Delphi project to learn the TLS handshake implementation using OpenSSL 3.0 Memory BIOs.

This project represents my experience in implementing the in-memory TLS handshake using OpenSSL 3.0. There are lots of examples with previous versions of the library on the Internet. So I decided to share this project to help other developers to get started with OpenSSL memory BIOs in Delphi. The main our task was to implement a cross-platform version of our Delphi components. Currently the components use Microsoft Schannel and CryptoAPI to implement TLS and other crypthographic features.

I worked with MS Schannel, SSPI, and CryptoAPI for many years and familiar with many tricks, problems, and use-cases. But OpenSSL become a real challenge for me 😲

I'm still working on this test project. So if you find any errors or have questions, do not hesitate to contact me.

Also, please feel free to ⭐️ the repo to help other devs to find this project!

Regards, Sergey Shirokov
https://github.com/CleverComponents/OpenSSL-With-Memory-Bios
​​Less than three hours left before the "The Changing Nature of Debugging" webinar starts. At this webinar, the speaker, Nick Hodges, developer advocate at Rollbar and Embarcadero MVP, will discuss the debugging strategies, testing, using CCI for faster debugging, and many more 😲

Check out the link to register and choose your T-shirt πŸ‘
https://try.rollbar.com/webinar/changing-nature-of-debugging/
​​Wow, Embarcadero introduced the theme of Delphi’s 27th anniversary - Building the Future ❀️
The event starts on Feb 14, 2022 10.00 AM CST.

Don't miss Delphi's 27th birthday! Register your seat here πŸ‘
https://blogs.embarcadero.com/building-the-future-delphis-27th-anniversary-delphi27th/
​​Recently, the OmniPascal guys have updated their OmniPascal extension for Visual Studio Code up to the version 0.19.0, improved syntax highlighting for inline JavaScript asm blocks, and fixed some parser bugs.

Check out more details on the project's website πŸ‘
http://blog.omnipascal.com/omnipascal-0-19-0-pas2js-asm-blocks-with-javascript/
To those who for some reason didn't attend the webinar about WSL2, the Windows Subsystem for Linux, guys from Embarcadero have published this replay.

Just check out Linux GUI Applications on Windows Subsystem for Linux on their YouTube channel πŸ‘
https://youtu.be/5AFZH-UhU6A
​​OFF πŸ˜‚ by Programmer Jokes
Woah, recently guys from Skia4Delphi released the new version 3.0 of their exceptional graphical library!

You can check out the video demos on YouTube. Don't forget to πŸ‘

πŸ‘‰ BTW: the sources are available on GitHub.
https://youtu.be/hI8L4qBXTgk
​​Generics, generics... recently I've read one old but actual Marco Cantu's blogpost. Generic vs. Traditional Collections. Which ones to use?
Generics allow you to prevent typecasting in your code. But Marco discusses two basic reasons not to use generics.
I know at least one more reason not to use them - when your code needs to support old Delphi versions, e.g. D7.

And what is your opinion? Please share your experience πŸ‘
https://community.idera.com/developer-tools/b/blog/posts/delphi-rtl-generic-vs-traditional-collections
Yesterday I've read a blog post, which was shared in Delphi Developer, about encryption in Delphi. The text describes DBXOpenSSL and some other classes πŸ€”
I've followed the link to the website and investigated it's content. I wondered if it contains other interesting things. So I found articles about VCL, DataSnap, JSON SQL, etc. You can check them out yourself.

The author writes in Chinese, but now this is not a problem. At least Chrome and Edge have built-in translator πŸ‘
https://grandruru.blogspot.com/2022/02/what-is-encryption-in-delphi.html
​​Hi, please take a look on this Delphi tutorial by CleverComponents that utilizes the Clever Mail Message and S/MIME Message components to parse / compose E-mail messages in MIME format, with file or image attachments.
☝️The Clever Mail Message component doesn't store attachmets in memory, and the given program shows you how to deal with them.

Check out the sources on GitHub πŸ‘
https://github.com/CleverComponents/Clever-Internet-Suite-Tutorials/tree/master/vcl/RecomposeMailMessage
​​More news from CleverComponents πŸ”₯ Today they released a new version of Clever Internet Suite 10.2!

This new version of our Internet components improves the SFTP connection speed, adds more data protection options to the SOAP component, updates the DNS Query component, and includes a lot of new features, optimizations, and bugfixes.

Just visit the product web site to learn more πŸ‘

https://www.clevercomponents.com/products/inetsuite/
​​Check out this interesting interview, where Serge Pilko is talking to Andrea Magni about the TFrameStand, FMX component developed by Andrea Magni, which helps to create Flexible Cross-Platform FireMonkey apps.

PS: Do not forget to πŸ‘
https://youtu.be/2P_kfv-rMY4
​​Do you know how to send a photo to a Telegram channel in Delphi?

Just take a look at this program that utilizes the Clever HTTP and HttpRequest components to submit an image to a Telegram channel using Telegram Bot API.

The sources are published on GitHub πŸ‘
https://github.com/CleverComponents/Clever-Internet-Suite-Tutorials/tree/master/vcl/SendTelegramPhoto