Some interesting videos:
- Object-Oriented Programming is Bad
- David West OOP is Dead! Long Live OODD!
- OOP is the root of all evil
Of course the titles are exaggerated
–jeroen
Posted by jpluimers on 2018/03/13
Some interesting videos:
Of course the titles are exaggerated
–jeroen
Posted in Design Patterns, Development, Software Development | 1 Comment »
Posted by jpluimers on 2018/03/13
This is a reminder to myself to see what Idera has accomplished in 15 months on the suggested [WayBack] Delphi Language Enhancements after it bought Embarcadero some 30 months ago on credit and 21 months after firing a very large portion of the Delphi R&D team even outside Spain.
The odd thing is that despite all the Borland, Inprise, Codegear and Embarcadero hassle Delphi has always survived. So lets this be my reminder to investigate what happened.
–jeroen
via: [WayBack] Blogged – Delphi Language Enhancements – Vincent Parrett – Google+
Related:
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2018/03/10
On my list of things to try when I am going back to do Android development [WayBack]: GitHub – Genymobile/scrcpy: Display and control your Android device.
Via:
–jeroen
Posted in Android, Android Devices, Development, Mobile Development, Power User, Software Development | Leave a Comment »
Posted by jpluimers on 2018/03/08
When git on Windows suddenly gives you this when the repository URL opens fine in Chrome:
C:\Users\jeroenp\Versioned>git clone https://bitbucket.org/jeroenp/libssh2-delphi Cloning into 'libssh2-delphi'... remote: Not Found fatal: repository 'https://bitbucket.org/jeroenp/libssh2-delphi/' not found
but this worked fine:
C:\Users\jeroenp\Versioned>git clone https://github.com/jpluimers/GExperts.git Cloning into 'GExperts'... remote: Counting objects: 12031, done. remote: Total 12031 (delta 0), reused 0 (delta 0), pack-reused 12031R Receiving objects: 100% (12031/12031), 9.77 MiB | 1.36 MiB/s, done. Resolving deltas: 100% (9284/9284), done.
I first thought “huh?”.
Then I remembered: this was a Mercurial repository, but I hardly use Mercurial any more…
C:\Users\jeroenp\Versioned>hg clone https://jeroenp@bitbucket.org/jeroenp/libssh 2-delphi destination directory: libssh2-delphi requesting all changes adding changesets adding manifests adding file changes added 30 changesets with 56 changes to 25 files updating to branch default 12 files updated, 0 files merged, 0 files removed, 0 files unresolved
Since I wanted to switch away from bitbucket for a long time anyway, it was time to say goodbye and find out how to make the conversion to git.
A quick search revealed there were many tedious manual ways involving command-lines: [WayBack] Convert Mercurial project to Git – Stack Overflow
But then I found out that github can fully automagically import a Mercurial Repository (of course without the BitBucket attached bells and whistles like issue tracker):
So it is now at github.com/jpluimers/libssh2-delphi with one user still to be mapped at github.com … libssh2-delphi/import/authors: Zeljko Marjanovic. If I ever get in contact with him (I tried over the last 2 years), then I will add him.
For now, I will be in touch with Vadum Lou (a.k.a. https://github.com/pult, full nameVadim V. Lopushansky) who already made another manually copied fork and get his additions integrated.
I might redo the conversion process later on as at least some of his submissions are at least partially in a Mercurial pull request.
Then I need to merge the develop branch into the master branch and prepare a release.
Oh: if it fails to debug in Delphi, then run the EXE alone. You will get an error like this:
---------------------------
SftpClientDemo.exe - System Error
---------------------------
The program can't start because MSVCR120.dll is missing from your computer. Try reinstalling the program to fix this problem.
---------------------------
OK
---------------------------
I need to document this better in the README.md: the underlying libssh2 DLLs require the Visual Studio 2013 C++ run-time library to be installed. The latest version I could find as of writing is vcredist_x86.exe version 12.0.40649.5 from the Update for Visual C++ 2013 and Visual C++ Redistributable Package at https://support.microsoft.com/en-us/kb/3138367 (download selection) or http://download.microsoft.com/download/C/C/2/CC2DF5F8-4454-44B4-802D-5EA68D086676/vcredist_x86.exe (direct download).
I need to update If a program you wrote can’t start becuase MSVCR*.dll is missing, then you forgot to ship the Visual C++ runtime… from 2012 on this as well as there are more versions available now than listed there.
Another error I got was the one below when running .NET stuff, but that might be because Windows Update was in progress:
---------------------------
SourceTree.exe - System Error
---------------------------
The program can't start because D3DCOMPILER_47.dll is missing from your computer. Try reinstalling the program to fix this problem.
---------------------------
OK
---------------------------
Later: yes, that was indeed fixed during Windows update. Apparently, Microsoft has an update installation order issue or a dependency requirement issue where part of .NET depends on that DLL, even though it is not yet present.
–jeroen
Posted in .NET, Delphi, Development, Power User, Software Development, Windows, Windows 7 | Leave a Comment »
Posted by jpluimers on 2018/03/08
Worth repeating my [WayBack] Friday developers rant… Why do 90% of the Visual Studio Tools and Extensions make it so !@#$!@#$ hard to update.… – Jeroen Wiert Pluimers – Google+:
Why do 90% of the Visual Studio Tools and Extensions make it so !@#$!@#$ hard to update as for *each* tool, you have to:
1. start Visual Studio (which doesn’t show progress, sometimes starts fast and sometimes takes a minute)
2. go to “Tools” menu, then to the “Extensions and Updates…” entry
3. in the dialog, browse to the bottom entry of the leftmost treeview (“Updates”) and click on it (as you cannot reach it by keyboard)
4. click the “Update” button for the topmost tool (it downloads with your default web browser which takes focus away from Visual Studio)
5. switch back to Visual Studio
6. close the “Extensions and Updates…” dialog
7. quit Visual studio
8. find the downloaded updater in your web browser (all !@#*!@# web browsers do this in a different way)
9. update (specify options, choose UAC elevation when needed, etc, etc)
10. wait for the update to complete (.NET Core 1.0.1, Microsoft Azure SDK for .NET and Microsoft SQL Server Data Tools take ages to complete and for most of the time stay at 95% of the progress bar for minutes. It’s called progress bar for a reason, track your progress evenly and hurry up!)
11. start over at step 1 for the next update10 )!@($#*%&@# manual steps PER UPDATE
Afterwards you need to clean all the downloaded installers as they often are partial web-installers which cannot be re-used
I want a “update all with default settings” button….
–jeroen
Posted in .NET, Development, Software Development, Visual Studio and tools | Leave a Comment »
Posted by jpluimers on 2018/03/08
[WayBack] OCW Course Index | MIT OpenCourseWare | Free Online Course Materials
via: [WayBack] Free MIT courses, including videos, audio, simulations, lecture notes, and exams. – Phorcyte X – Google+:
Posted in Development, LifeHacker, Power User, Software Development | Leave a Comment »
Posted by jpluimers on 2018/03/07
VSoft in Oz (of Coninua CI and FinalBuilder fame) is hiring: [WayBack] We’re hiring – .NET/Full Stack Developer, local or remote – Vincent Parrett – Google+.
The job is on LinkedIn, but that site does not like to be archived in the WayBack Machine or Archive.is, so here it is:
Job description
We are looking for a talented .NET/Full Stack developer to help our team ramp up product development.
This isn’t a ‘run of the mill’ data entry project, there are significant technical challenges, so we are looking for a developer at the top of their game. You will need a keen interest in DevOps.
For this role it is essential that you have the following skills and a minimum of 2 years development experience.
Required skills
- Excellent C# (VS2017).
- Excellent HTML, CSS and JavaScript/TypeScript.
- ASP.NET MVC.
- SQL/Database (any).
- Version Control (any).
Bonus skills/experience
- .NET Core
- React
- Webpack.
- Nancy.
- NHibernate.
- REST API design.
- DevOps
About You
You will be a software developer with a strong attention to detail. You should enjoy a challenge, and be able to hit the ground running and be producing code in the first few days. You will be comfortable working as part of a team, or alone with minimal supervision and have excellent spoken and written English.About UsWe’re passionate about software development, in particular, CI/CD/DevOps. We are small team of experienced, smart developers who are very focused on customer satisfaction.All our developers have fast machines, multiple monitors, Herman Miller chairs, electric sit/stand desks, free tee/coffee, parking etc. Our office is in the Phillip business district in Canberra. Remote work is possible for the right candidate.SalarySalary is negotiable (commensurate with experience) – let us know your expectations when applying.
The position is full time, preferably on site at our office in Phillip, Canberra, close to Woden Plaza and public transport, with a great cafe downstairs!
Application Process
We are looking for someone to start asap, so we won’t drag this out. Send us your resume (pdf only). If you have any pet open source projects (or contribute to open source projects), tell us about your involvement (include links!). If you have a github or bitbucket account, let us know your handle (saves us searching for it ourselves!).If you are selected for interview, be prepared to write some code (a small demo project < 30 minutes). If you have something you are working on that you can show and tell, by all means bring your laptop! We will expect that you are at least familiar with our products (Continua CI).
NOTE: You must have the right to live and work in Australia (unless working remotely, outside of Australia).
–jeroen
Posted in .NET, Continua CI, Continuous Integration, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2018/03/07
It was fitting to bump into [WayBack] Packet Sender is a good tool when debugging protocols…” Written by Dan Nagle… – Lars Fosdal – Google+ on the day presenting [WayBack] Conferences/Network-Protocol-Security.rst at master · jpluimers/Conferences · GitHub
It also means that libssh2-delphi is getting a bit more love soon and will move to github as well after a conversion from mercurial.
Some of the things I learned or got confirmed teaching the session (I love learning by teaching):
certbot client”, so you might want to look into different [WayBack] ACME Client Implementations – Let’s Encrypt – Free SSL/TLS Certificates especially if you run nginx on Alpine Linux (but note you then need [WayBack] license_update.patch\acme-client\community – aports – Main aports tree to avoid [Archive.is] [400] does not match current agreement URL – Help – Let’s Encrypt Community Support)Here is some more info:
–jeroen
Posted in Communications Development, Delphi, Development, Encryption, Hardware, Harman Kardon, Home Audio/Video, HTTP, https, HTTPS/TLS security, Internet protocol suite, Let's Encrypt (letsencrypt/certbot), OpenSSL, Power User, Security, Software Development, TCP, TLS | Leave a Comment »
Posted by jpluimers on 2018/03/07
In cast I ever want to do Android work again in Visual Studio [WayBack] Visual studio (2015) emulator for android not working – XDE.exe – Exit Code 3 – Stack Overflow
Getting the Android Emulator to run is tough because Hyper-V and networking is awful and running this all in a Windows VM makes it even more complicated.
–jeroen
Posted in .NET, Android, Development, Mobile Development, Software Development, Visual Studio 2015, Visual Studio and tools, Xamarin Studio | Leave a Comment »
Posted by jpluimers on 2018/03/06
For my link archive: [WayBack] multithreading – Closure in TTask.Run(AnonProc) not released after AnonProc has finished – Stack Overflow
via: [WayBack] How the combination of inline, interfaces and missing RVO can break your code – Stefan Glienke – Google+
TL;DR from RAD StudioRSP-12462 TThreadPool worker thread holds reference to last executed task by Asbjørn Heid as a regression since XE8:
A temporary variable in TThreadPool.TQueueWorkerThread.Execute keeps a reference to the last executed work-item (task), which is only released when the Execute method ends.
Being in a pool the thread is usually kept alive until the pool is destroyed, which for the Default pool means during finalization of the unit. Thus the last executed tasks are not released until the program terminates.
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »