The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,839 other subscribers

Archive for the ‘Development’ Category

Dependency Analysis – Pascal Today

Posted by jpluimers on 2017/09/20

Tools and steps for analysing Delphi or FreePascal code: Dependency Analysis – Pascal Today [WayBack]

Used tools:

–jeroen

Posted in Delphi, Development, Software Development | 2 Comments »

delphi – Is AtomicCmpExchange reliable on all platforms? – Stack Overflow

Posted by jpluimers on 2017/09/19

TL;DR: yes it is.

Answer by Allen Bauer at delphi – Is AtomicCmpExchange reliable on all platforms? – Stack Overflow [WayBack]

On Windows, it directly translates into lock cmpxchg which is way faster than the Windows API call [WayBackInterlockedCompareExchange, as that is a jump to the actual code:

InterlockedCompareExchange:
00417CA8 FF2528E12901     jmp dword ptr [$0129e128]
KERNEL32.InterlockedCompareExchange:
75855E40 8BFF             mov edi,edi
75855E42 55               push ebp
75855E43 8BEC             mov ebp,esp
75855E45 8B550C           mov edx,[ebp+$0c]
75855E48 8B4D08           mov ecx,[ebp+$08]
75855E4B 8B4510           mov eax,[ebp+$10]
75855E4E F00FB111         lock cmpxchg [ecx],edx
75855E52 5D               pop ebp
75855E53 C20C00           ret $000c

whereas AtomicCmdExchange looks like this:

Test.pas.20: RestoreValue := AtomicCmpExchange(FieldToBeModfied, 1 {new value}, 0 {expected value}, Success {true if the expected value was found, and new value set});
0111A838 8B45FC           mov eax,[ebp-$04]
0111A83B 8D500C           lea edx,[eax+$0c]
0111A83E 33C0             xor eax,eax
0111A840 B901000000       mov ecx,$00000001
0111A845 F00FB10A         lock cmpxchg [edx],ecx
0111A849 0F9445F2         setz byte ptr [ebp-$0e]
0111A84D 8945D8           mov [ebp-$28],eax

–jeroen

Posted in Delphi, Development, Software Development | Leave a Comment »

Checking KeyPress is not the place to do your input validation

Posted by jpluimers on 2017/09/19

I have seen too many projects over the years trying to do input validation by checking KeyPress. This is not limited to Delphi projects (C#, VB and other projects suffer from this just as much). Most of these projects suffer from these::

  • Much of the KeyPress logic logic in the UI byusing half-baked copy-pasted code fragments.
  • They all fail missing important functionality (like paste, clear, Ctrl-key handling and such) either supporting or suppressing that functionality where needed

If doing Delphi, then that code should be rewritten in a generic way based on examples like like these:

–jeroen

Read the rest of this entry »

Posted in .NET, Delphi, Development, Software Development, Windows Development | Leave a Comment »

USB LED Light Lamp for Computer Keyboard Reading Laptop Notebook PC 2016 | eBay

Posted by jpluimers on 2017/09/18

Putting all those old USB chargers to good use:

USB LED Light Lamp for Computer Keyboard Reading Laptop Notebook PC 2016 | eBay [WayBack]

Via:

AMAZING 77 cent LED light -including shipping Pulls about 3/4 of a watt (0.14 amp @ 5v), and rivals the light output of a $20 3 watt lamp from Amazon.… – Joe C. Hecht – Google+ [WayBack]

–jeroen

Read the rest of this entry »

Posted in Development, Hardware, Hardware Development, Hardware Interfacing, Power User, USB, USB | Leave a Comment »

Open source app to detect bluetooth gas pump credit card skimmers – Skimmer Scanner – Android Apps on Google Play

Posted by jpluimers on 2017/09/15

Before you fill up your car, check if you potentially can be skimmed: Skimmer Scanner – Android Apps on Google Play

The app is open source at sparkfunX/Skimmer_Scanner: A mobile app for detecting bluetooth gas pump credit card skimmers.

A long article about reverse engineering these skimmers is at [WayBack] Gas Pump Skimmers – learn.sparkfun.com including tools to get the data out: [WayBackMPLAB PICkit 3 – PGM-09973 – SparkFun Electronics

All via: [WayBack] Gas pump skimmers – what you need to knowIf you’re on android, there’s an app that essentially finds and pairs with the skimmer to see if it’s active… – Lars Fosdal – Google+

–jeroen

Read the rest of this entry »

Posted in Android, Development, LifeHacker, Mobile Development, Power User, Software Development | Leave a Comment »

Need to write a proper bookmarklet for the wayback archive (:

Posted by jpluimers on 2017/09/14

Some inspiration for writing a proper bookmarklet that finds or saves a WayBack machine page:

On the last link, I was hoping that the https://web.archive.org/liveweb/https://www.example.org would work but it doesn’t work for many URLs and I’m not sure yet why that is.

It has a nice tip that works though:

Read the rest of this entry »

Posted in Bookmarklet, Conference Topics, Conferences, Development, Event, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers | Leave a Comment »

youtube-dl – saving both audio and video without keeping intermediate files seems impossible

Posted by jpluimers on 2017/09/14

Just in case someone has a better alternative than youtube-dl alias:

alias youtube-dl-audio-and-video='youtube-dl --keep-video --extract-audio --audio-quality 0 --audio-format mp3'

It extracts the audio and keeps the video.

The result is that also all intermediate downloads are being kept.

So even after studying the README extensively the only alternative seems to be a double download like this:

youtube-dl-audio-and-video() { youtube-dl --extract-audio --audio-quality 0 --audio-format mp3 $1; youtube-dl $1; }

–jeroen

Posted in *nix, *nix-tools, bash, bash, Development, Power User, Scripting, Software Development | Leave a Comment »

Some links around GuardiCore

Posted by jpluimers on 2017/09/13

Interesting tool to scan your network vulnerabilities from both outside and inside: guardicore/monkey: Infection Monkey – An automated pentest tool

Via a chain of links all around “Trojan.sysscan:

–jeroen

Posted in Development, Software Development | Leave a Comment »

GitHub: Searching your own repositories – excluding forks

Posted by jpluimers on 2017/09/12

The Searching repositories – User Documentation mentions

By default, forked repositories are not shown.

But it forgets this only holds for the main search box which is conveniently called “Search GitHub” but documented as “Search repositories“:

Based on that documentation you’d think the “Search Repositories” box would adhere to the same defaults, right?

Wrong. We live in the “form over function” era so that would be too easy.

Read the rest of this entry »

Posted in Development, DVCS - Distributed Version Control, git, GitHub, Source Code Management, User Experience (ux) | Leave a Comment »

Welcome to workaround.org – tips around open source and Linux stuff

Posted by jpluimers on 2017/09/12

At the time of discovering Welcome to workaround.org via More ISP Mail saveback – Joe C. Hecht – Google+:

ISPmail tutorials

The famous ISP-style mail server tutorials live here. Learn how to set up your own fully-functional mail server using Postfix, Dovecot IMAP/POP3 and MySQL backend on a Debian server just like your favorite mail or website hosting provider.

I have been maintaining the ISPmail tutorial since Debian Woody. However those older Debian versions are no longer supported. If you still like to read the old versions I have provided PDF versions of the tutorials for Squeeze, Lenny, Etch, Sarge andWoody.

Thoughts blog

My projects

I am a system administrator and programmer. In my nerdy spare time I work on web applications, Python and Ruby programs, write articles or explore new software technologies. On workaround.org you can find news, solutions and hints on my findings and get help. Of course your feedback is welcome.
These are some projects I am currently working on:

IRC – Internet relay chat

  • IRC is a great medium for getting instant help (at least on the freenode IRC network). I have collected some tips about Getting help on IRC to help you get help instead of getting barbecued.
  • knoba’s factoids
    I run a bot called knoba (short for knowledge base) on the freenode IRC network. Two channels I visit frequently are #postfix and #squid. So I have fed the bot with lots of factoids that you can query using !foobar in the channel. These are the factoids understood in #squid and #postfix. Please don’t play with the bot publicly. Send it a “/msg knoba help" and learn how it works.

Linux tips

Regarding the Squid web proxy

Padrino web framework

Zabbix monitoring

Zabbix is a mighty open-source monitoring software. If you need a serious system for your organisation and manage to condone its creepy web interface it is hands down the the most superior software I have ever seen. And I have been dealing with monitoring software since Nagios was called Netsaint.

These articles should help you in your daily work maintaining a monitoring system:

–jeroen

 

Posted in *nix, BIOS, Boot, Development, Linux, Open Source, Power User, Software Development | Leave a Comment »