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

Archive for the ‘Software Development’ Category

QCon London 2017: IoT insecurity, serverless computing, predicting technical debt, and why .NET Core depends on a 36,000 line C++ file « Tim Anderson’s ITWriting

Posted by jpluimers on 2017/04/07

A friend of mine is attending the QCon conference as well; I’m anxious to see his conference report and the future posts of Tim.

[WayBackQCon London 2017: IoT insecurity, serverless computing, predicting technical debt, and why .NET Core depends on a 36,000 line C++ file « Tim Anderson’s ITWriting

via [WayBack] QCon London 2017 day 1 – tim anderson – Google+

–jeroen

Posted in Development, Software Development | Leave a Comment »

Some great StackOverflow / StackExchange bash tips

Posted by jpluimers on 2017/04/06

Found these then trying to create a new feature for https://github.com/Hexxeh/rpi-update:

–jeroen

Posted in bash, Development, Scripting, Software Development | Leave a Comment »

Hosting Grumpydev Imageflair locally

Posted by jpluimers on 2017/04/06

Even though StackOverflow and StackExchange now have implemented their own ImageFlair, I still like the original imageFlair that Grumpydev made at Stack Overflow – Share Your Flair – Now in PNG! | GrumpyDev

Grumpydev Imageflair

Stackoverflow imageflair

Stackoverflow imageflair

Alas, the Grumpydev site doesn’t properly support https and Grumpydev cannot change it because of shared hosting limitations, so I wanted to host ImageFlair locally and even see if I could make it StackExchange aware:

Stackexchange flair

Stackexchange flair

Well, I need to do that propertly another time as the first thing I bumped into was this:

PHP Fatal error: Call to undefined function imagecreatefrompng() in /srv/www/vhosts/pluimers.com-ssl/stackoverflow/imageFlair/imageFlair.php on line 42

For now I’ve fixed the first by installing php5-gd (although an SO answer suggests php-gd, openSuSE uses the php-version number for installing modules).

zypper install php5-gd
php -m
rcapache2 stop
rcapache2 start
rcapache2 status

This will install the module, check with php if it is indeed installed, then restart apache to let it use the updated module.

After that, I bumped into a second thing: the image is blank.

Blank imageFlair

Blank imageFlair

I also bumped into a third thing: the .htaccess file rewrite doesn’t work:

https://www.pluimers.com/stackoverflow/imageFlair/so/1.png gave me a 404 error whereas https://www.pluimers.com/stackoverflow/imageFlair/imageFlair.php?userid=1&mode=so “works” (i.e. generates a blank image).

That one was sort of easy to solve.

First of all, apparently I didn’t have all the required apache modules installed. The not-so-easy part is that apache uses two different aliases for modules: the ones listed by apache2ctl -M 2>&1 | sort are in a different format than the ones you mention in .htaccess and .conf files. Oh and of course the -M (nor the -t -D DUMP_MODULES) aren’t listed ore hinted in the apachectl documentation: that would be too easy. They are listed in the httpd2 documentation.

The .htaccess file needs mod_rewrite and mod_expires, but apache2ctl names them rewrite_module and expires_module.

Enabling these was easy, but you have to remember that a2enmod strips the prefix/suffix of the module name (I already had expires_module (shared) installed so this only shows how to enable mod_rewrite):

a2enmod rewrite
rcapache2 stop
rcapache2 start
rcapache2 status

NB: mod_rewrite wasn’t enable by default and before enabling it, read about the risks of mod_rewrite.

Then it still didn’t work, and then it occurred to me that likely I didn’t even have Apache2 allow for using .htaccess as the regexes in the .htaccess were fine. And indeed: .htaccess wasn’t enabled according to the steps at Making sure .htaccess and mod_rewrite are working as they should | Bolt Documentation. And indeed, the Apache documentation indicates when (not) to use .htaccess.

By setting the AllowOverride to both FileInfo as specified by RewriteRule and Indexes as specified by ExpiresActive (trying to refrain from AllowOverride All) for only this specific directory, I think I struck the right balance:


<Directory "/srv/www/vhosts/pluimers.com-ssl/stackoverflow/imageFlair">
# for .htaccess in that directory
AllowOverride FileInfo Indexes
</Directory>

And the final thing is that the logic around StackExchange flair is a tad more complex than I hoped for. And on that bombshell…

–jeroen

Posted in *nix, Apache2, Development, Linux, openSuSE, PHP, Power User, Scripting, Software Development, SuSE Linux | 1 Comment »

Recursively convert WMA files to MP3 using ffmeg on a Mac OS X bash shell

Posted by jpluimers on 2017/04/05

A friend of mine made the mistake to capture some CDs using WMA files and throwing away the CDs. His old Nokia could play them, but not his new iOS and Android devices.

ffmeg and bash to the rescue:

find . -iname "*.wma" -execdir bash -c 'NAME="{}" && ffmpeg -y -i "$NAME" -ab 192k "${NAME/.wma/.mp3}" -map_metadata 0:s:0 && rm "$NAME"' \;

Tricks used:

Read the rest of this entry »

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

7zip: compress from the command-line; a few notes and a small batch file

Posted by jpluimers on 2017/04/04

I wanted to compress a few files from the current directory in a zip file using the 7z.exe command-line version of 7zip.

The trick is about finding where 7z.exe is as the directory containing 7z.exe is not in the Windows PATH.

Notes:

setlocal
call SortDateTime.bat
echo %SortDateTime% %SortDate%-%SortTime%

for /f "usebackq tokens=2* delims= " %%c in (`reg query "HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip" /v Path`) do (
  set sevenzExe="%%d7z.exe"
)
endlocal & if exist %sevenzExe% %sevenzExe% a -tzip _my-build.%SortDate%-%SortTime%.zip MyServer.exe MyServer.map MyClient.exe MyClient.map

pause

–jeroen

Posted in Batch-Files, Development, Power User, Scripting, Software Development | Leave a Comment »

Go home GitHub, you’re drunk.

Posted by jpluimers on 2017/04/01

Go home GitHub, you’re drunk. – Jeroen Wiert Pluimers – Google+

Source: Go home GitHub, you’re drunk. – CodeProject – Google+

–jeroen

 

Posted in Development, DVCS - Distributed Version Control, git, GitHub, Software Development, Source Code Management | Leave a Comment »

Mac OS X: restarting Tunnelblick when it isn’t responding any more

Posted by jpluimers on 2017/03/31

In addition to my post about Mac OS X: restarting Google Drive when it shows a spinning wheel, restarting a hanging Tunnelblick is even easier:

killall Tunnelblick
open -a Tunnelblick

–jeroen

Posted in Apple, bash, Development, iMac, Mac, Mac OS X / OS X / MacOS, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, MacMini, OS X 10.10 Yosemite, OS X 10.11 El Capitan, OS X 10.9 Mavericks, Power User, Scripting, Software Development | Leave a Comment »

When Delphi is missing the `ActiveX` items in the `File -> New` dialog

Posted by jpluimers on 2017/03/29

Marco Cantú posted the below solution when ActiveX is missing in your File -> New dialog which I’ve paraphrased:

OK, you can try this.

  1. Close RAD Studio/Delphi.
  2. Open the registry editor.
  3. Under HKEY_CURRENT_USER, open the Known IDE Packages\Delphi — that is something like HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\18.0\Known IDE Packages\Delphi
  4. Search for the delphicompro240.bpl, entry
  5. Edit it: remove the __ (double-underscore) pre-pended to the value (Untitled). In other word, change “__(Untitled)” into “(Untitled)“.
  6. Close registry editor.
  7. Open the IDE.

I ran it it recently and was glad this worked.

–jeroen

Source: Hey! I have a new Delphi :)…Great!  And what to do now with my favorite…

Posted in Delphi, Delphi 10.1 Berlin (BigBen), Development, Software Development | Leave a Comment »

Mac OS X: restarting Google Drive when it shows a spinning wheel

Posted by jpluimers on 2017/03/29

Every now and then, Google Drive on Mac OS X gets confused and starts showing the spinning wheel when hovering over the menu bar icon similar to for instance DropBox does every once in a while.

This is how to terminate and restart Google Drive from the terminal (no need for su):

killall -v -SIGKILL Google\ Drive
open -a Google\ Drive

Alternatively you can start Google Drive using this:

/Applications/Google\ Drive.app/Contents/MacOS/Google\ Drive &

I found this executable through osx – Find all executable files within a folder in terminal – Ask Different

Note that this won’t kill Google Drive as it sends the TERM signal (SIGTERM):

killall -v Google\ Drive

–jeroen

Posted in Apple, bash, Development, Google, GoogleDrive, iMac, Mac, Mac OS X / OS X / MacOS, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, MacMini, OS X 10.10 Yosemite, OS X 10.11 El Capitan, OS X 10.8 Mountain Lion, OS X 10.9 Mavericks, Power User, Scripting, Software Development | 1 Comment »

Heroku Node.js in the cloud (free hosting!) – via: Smart Mobile Studio

Posted by jpluimers on 2017/03/28

Heroku is a platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.

Source: Cloud Application Platform | Heroku

via:

As mentioned in the first part, node.js was initially developed for the cloud. While there are enough paid hosting providers available, much nicer is of course to get it running for free! :). We will try to get our node.js server of part 2 up and running in the cloud…

Source: Server-side Node.js (part 3): Node.js in the cloud (free hosting!) – Smart Mobile Studio [WayBack]

Heroku is ideal for experimenting as their free plan allows for sleeping dyno instances that only get activated when there is a need for it (they sleep after 30 minutes of inactivity) and rain from the pool of 1000 free dyno hours per month.

See these links for more information

–jeroen

Posted in Development, Heroku, JavaScript/ECMAScript, Node.js, Scripting, Software Development | Leave a Comment »