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,860 other subscribers

Archive for November, 2016

Actual source for DisableAlignPropertyEditor

Posted by jpluimers on 2016/11/30

Since Uwe Schuster only published a screenshot, I NewOCR-ed it and created the accompanying .dproj file (only because it’s an easy way for the DLL to require the designide package so you can use the DesignIntf and ToolsAPI units.

Uwe only posted these:

Anyway, the sources are at gist.github.com/881d4eacbcec2a9e1e6b0181f900fd7a, but the main source is this:

library DisableAlignPropertyEditor;

{
  Originally only as jpg image by Uwe Schuster.

  https://web.archive.org/web/20161117154454/https://pbs.twimg.com/media/Cxaoi-DXEAAMF03.jpg:large
  https://web.archive.org/web/20161117154450/https:/twitter.com/UScLE/status/799011392703647744
  https://web.archive.org/web/20161117154501/https://plus.google.com/107811538224738992137/posts/hTXUwkCe1TV
}

uses
  System.SysUtils,
  System.TypInfo,
  DesignIntf,
  ToolsAPI;

var
  LastRegisterPropertyEditorProc: TRegisterPropertyEditorProc = nil;

procedure NewRegisterPropertyEditor(PropertyType: PTypeInfo; ComponentClass: TClass; const PropertyName: string; EditorClass: TPropertyEditorClass);
begin
  if Assigned(EditorClass) then
  begin
    if SameText('TAlignProperty', EditorClass.ClassName) then
      Exit;
  end;
  LastRegisterPropertyEditorProc(PropertyType, ComponentClass, PropertyName, EditorClass);
end;

procedure wizardTerminate;
begin
  RegisterPropertyEditorProc := LastRegisterPropertyEditorProc;
end;

function wizardInit(const BorlandIDEServices: IBorlandIDEServices; RegisterProc: TWizardRegisterProc; var Terminate: TWizardTerminateProc): Boolean; stdcall;
begin
  LastRegisterPropertyEditorProc := RegisterPropertyEditorProc;
  RegisterPropertyEditorProc := NewRegisterPropertyEditor;
  Terminate := wizardTerminate;
  Result := True;
end;

exports
  wizardInit name WizardEntryPoint;

begin
end.

–jeroen

Read the rest of this entry »

Posted in Delphi, Delphi 10.1 Berlin (BigBen), Development, Software Development | 2 Comments »

Unbundling Pokémon Go — Applidium

Posted by jpluimers on 2016/11/30

On the reverse engineering of an early Pokemon Go apk, the protocol it uses and some more interesting findings: Unbundling Pokémon Go — Applidium

–jeroen

Posted in Android, Development, Java, Java Platform, Mobile Development, Software Development | Leave a Comment »

Can some recommend a good tool to build MSI package? I use Inno Setup…

Posted by jpluimers on 2016/11/30

For my G+ Link archive:

Can some recommend a good tool to build MSI package?I use Inno Setup but only to build EXE file.Thanks,  – Chris Z. – Google+

Source: Can some recommend a good tool to build MSI package? I use Inno Setup but only…

Related:

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

When AQTime thinks it’s running during install and aborts installation

Posted by jpluimers on 2016/11/29

I had this warning (which is actually an error: you cannot continue as pressing OK would get you the same warning over and over again) during AQTime installation a while ago:

---------------------------
WARNING !
---------------------------
Setup has detected AQtime running on your computer. You must close the application and press OK to continue.

Press Cancel to abort installation.
---------------------------
OK   Cancel
---------------------------

Back then:

  1. I was Administrator
  2. The Installer download was from http://downloads.smartbear.com/AQtime.exe
  3. The embedded version was 8.50.1720
  4. It did successfully extract the AQtime.msi before bailing out

The fix (from SmartBear support) was remarkably simple, so I was surprised I could not find it online:

If your downloaded, saved AQtime installation package is named AQtime.exe, rename it: (ex: AQtime850.exe and you should then be able to complete the installation process.

So basically renaming AQTime.exe into AQTime850.exe allowed it to install.

–jeroen

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

james-atkinson/speedcomplainer: A python app that will test your internet connection and then complain to your service provider (and log to a data store if you’d like)

Posted by jpluimers on 2016/11/29

Cool: james-atkinson/speedcomplainer: A python app that will test your internet connection and then complain to your service provider (and log to a data store if you’d like)

It can auto-tweet your status to an ISP.

via:

–jeroej

Posted in Development, Internet, Power User, Python, Scripting, Software Development | Leave a Comment »

Disable TR-069 on a Fritz!Box and check if that was succesful – translated from a post by Hartmut Goebel 

Posted by jpluimers on 2016/11/29

Just in case you got scared by the TR-064 hack and likely causality to the German Telekom ISP outage yesterday as some modems expose TR-064 via the TR-069 WAN access, here is how to disable TR-069 in your Fritz!Box: [WayBackTR-069 auf Fritzbox ausschalten und Ergebnis prüfen — Hartmut Goebel · CISSP, CSSLP · Berater für Information-Security-Management

Note that for Fritz!Box the TR-069 implementation is not as bad as some Speedport devices used by Telekom, but you might want to consider turning TR-069 off:

If you trust yourself to keep the Fritz!Box firmware *and* settings up-to-date better than your ISP does, below are the translated steps.

Steps to disable TR-069 on a Fritz!Box router

  1. Activate telnetd on your Fritz!Box via a connected phone by dialing #96*7*
  2. Connect to your Fritz!Box over telnet at using telnet fritz.box or instead of fritz.box., use the IP-address of your Fritz!Box device
    • the password is the same as the password in the Fritz!Box web interface
  3. Disable TR-069 by typing this command: ctlmgr_ctl w tr069 settings/enabled 0
  4. Verify the TR-069 is off by looking at configuration file with this command: cat /var/flash/tr069.cfg
    • Check that at the start there is a line with enabled = no
  5. Disable telnetd on your Fritz!Box via a connected by by dialing  #96*8*
Note that even without a phone you can enable/disable telnetd as described by [WayBack] FRITZ!Box VoIP password extraction 

–jeroen

References:

Posted in Fritz!, Fritz!Box, Network-and-equipment, Power User | 2 Comments »

The curse of the Project.res file.

Posted by jpluimers on 2016/11/29

A long time ago, Lars Fosdal wrote this on the Delphi G+ group:

It really is beyond me why there is no Project.rc file which includes

  • Project.version.rc
  • Project.icon.rc
  • Project.themes.rc
  • Project.manifest.xml
  • and so forth.

That way, the .res file would be a compile-time thing (or even a thing of the past) – and the resource linker would assemble the various bits from their individual sources.

It has been an issue forever. Vincent Parrett correctly commented that if you clean out too much out of the Project.res file, the IDE gets confused:

The only thing it is used for is version info and the mainicon (the IDE gets confused if don’t do that).

In my own experience, this isn’t the case for all Delphi versions, but I forgot which versions suffer and which don’t. I think the IDE theming issue omitting the Application word in the .dpr is related.

Like many of the G+ commenters, I’ve switched to script based resources for my own projects a long time ago. That’s also the reason why I forgot: this approach just works for any Delphi version.

This post is a reminder to self to see if the IDE has finally refrained from doing Project.res handling itself.

–jeroen

Source: The curse of the Project.res file…

Some related posts:

Posted in Delphi, Delphi 1, Delphi 10 Seattle, Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 5 Comments »

Delphi F12 Debug Hotkey for Windows 8.1 and 10 | Andy’s Blog and Tools

Posted by jpluimers on 2016/11/28

Yes. Yes. Yeesssss!

It solves [WayBackdebugging – F12 not working in Delphi debugger on Windows 7/8 – Stack Overflow

Due to robots.txt the site cannot be archived in the WayBack machine, so I’m keeping a local copy of any http://andy.jgknet.de/blog/wp-content/plugins/download-monitor/download.php?id=* files.

This is how I installed the extracted DelphiF12HotKeySupport.dll:

Read the rest of this entry »

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

Google drawing AI – My first “Quick, Draw!” attempt – Jeroen Wiert Pluimers – Google+

Posted by jpluimers on 2016/11/28

Not your grandma’s QuickDraw, but a one of the new Google AI experiments by their AI research team:

Can a neural network learn to recognize doodles? See how well it does with your drawings and help teach it, just by playing.

Source: Quick, Draw!

On the right is my first “Quick, Draw!” attempt.
Too bad the canoe didn’t work out; parrot and firetruck are pretty hard with either a mouse or a trackpad.

Source: [WayBackMy first Quick Draw attempt – Jeroen Wiert Pluimers – Google+

Other A.I. Experiments (g.co/aiexperiments):

–jeroen

Via:

Posted in Draw!, Google, Google AI, LifeHacker, Power User, Quick | Leave a Comment »

APC UPS battery replacement for Smart-UPS 1500 (SUA1500) and XL 3000 (SUA3000XLT): batteries RBC7 and RBC55

Posted by jpluimers on 2016/11/28

On the right and bottom how the APC SmartUPS 1500 looked before cleaning. Despite APC claims of being non-spillable, lead acid batteries do eventually leak. APC just doesn’t tell you when (they say there is some fine print about replacing them, but hey – if the UPS doesn’t complain about capacity loss…).

Like I mentioned in my first post about the leaking, I cleaned the inside with sodium bicarbonate (easily to get – even in The Netherlands – as “baking soda” or “zuiveringszout” in most grocery shops. “zuiveringszout” is the same but much cheaper).

So after cleaning, you need to assemble a new battery pack and reinstall it. The RBC7 stock battery packs from APC are very expensive and since warranty expired on the UPS and APC batteries leaks anyway, it is much cheaper to re-assemble your own battery pack from a pair of UB12180 batteries. The same holds for the RBC55 (which are just basically two pairs of assembled UB12180 batteries). The decoding of these battery numbers are fairly easy: 12V holding 18.0 Ah of charge. Different battery manufacturers use different battery size nomenclature usually with a similar structure.

Disassembling and re-assembling the packs is fairly easy. Be sure to do this carefully: replacement sets of the APC battery connector wiring harness and fuse will set you back another USD/EUR 15-20 excluding shipping.

The below youtube videos are much clearer on this than any picture series I could have made, plus a series of Tweets figuring out the correct fuses to use.

Read the rest of this entry »

Posted in APC Smart-UPS, LifeHacker, Power User, UPS | Leave a Comment »