Miscellaneous Software development

Docker for Windows – mounting shared folders

Docker has a new offering: “Docker for Windows”.
It was made available during DockerCon 2016 (June) and uses Hyper-Visor instead of VirtualBox.

The resulting user experience is very much like running Docker on Linux.

However playing around with it yesterday I ran into a slight problem:

On a Windows machine, especially a developer-machine, there’s usually some sort of anti-virus software up and running. in my case that’s Norton. And part of the package is a firewall.

This firewall causes problems.

When “Docker for Windows” shares folders it uses SMB. SMB is (at least in the case of Norton Firewall) specifically mentioned as BLOCKED in the firewall rule …. somewhere waay down the list.

So in order for your containers to actually connect – you need to open the firewall .. just a bit.

Looking in the settings (right-click the little whale swimming in your taskbar …). You can see the address and subnet mask.

Docker for Windows Network

The two ports you need to open are
* 139 (netbios-ssn)
* 445 (microsoft-ds)

What you could do is allow that traffic from any IP. But since we already know the range docker will use why not use it?

Resulting rule would be something like “Allow inbound communication on ports.

Here’s all the tabs in Norton Rule editor (which you reach by opening Norton Security Center, click Settings -> Firewall -> Traffic Rules, then “Add”).


Note the Rule will be added at the bottom, so you’ll need to select it then click “Move up” until it’s at the top.
Also make sure that there’s a nice blue “X” in the active column.

As always I hope this help someone … and feel free to rant in the comments below.

Remember to restart Docker afterwards.

Testing can be done by running

docker run --rm -v c:/:/data alpine ls /data

Software development

Useful documentation + automated testing

Sten Vesterli has an interesting post regarding Useless Documentation.

In short the most useful documentation is:
code comments & architecture diagrams. The rest is marginally useful … at best.

I couldn’t agree more.

Combine that with strong unit and integration tests and you’ll find your deliveries contain fewer errors and overall implementation speed will increase. Why? Because implementing just got easier. The information you need is available in the code and the tests help you discover errors early.

Software development

Enterprise architecture and Organic Growth

I’d like to talk a bit about Organic Growth in IT.

Lets say we have a Client that is using a nightly-batch flow to handle the data-processing. Running everything on a single server was fine earlier but the number of transactions is rising, due to new business and take-overs. And now they’ve run out of “night-hours” – the batch-flow into the early working hours of the next day. The disks are also running full since the processing is replicating data between IT systems.

What do we do and why did this happen?

Oracle Software development

ADF: Resources to for getting started with ADF

Just a short post on the books and resources I used when starting with ADF.

Software development

Book Review: Developing Web Applications with Oracle ADF Essentials

My colleague Sten Vesterli, author of the book “Oracle ADF Enterprise Application Development – Made Simple”, has just published a new book on Packt Publishing. Again the subject is ADF with emphasis on new ADF developers starting out.

Software development

JDeveloper 12c ready for public download

Good news!

Oracle has released JDeveloper 12c to the public.

Lots and lots of changes, new features and stuff to check out.

Futher good news:
This version is done in collaboration with the Netbeans team so expect some Netbeans coolness to rub of on JDev.

Go to JDeveloper home for your new toy.

Software development

How to remove Bash bell sound

Just installed a new virtual machine. The first thing I notice is that the bell sound is on in terminal. That thing drives me NUTS. Whoever thought up that beep must have had a very bad day – and decided to take it out on all Unix (and clones) users for all eternity!

Here is the command to turn it off – so I never have to look for it again:

echo 'set bell-style none' >> ~/.inputrc

Do that on all the users you expect to login to (for me that would be my main user and the oracle one) and bash will stay silent! Lovely.

Actually this will shut-up all programs using readline. Just an added bonus.

Software development

ADF table – delete current row

This one had me up the wall for quite a bit of while…

I’ve been searching the web for all permutations of “ADF Delete button removes the wrong row” with no luck. But then I finally found the answer.

When a view object is dragged onto a page as a table and you then drag the Delete-operation in. You do not use the operations toolbar – for whatever reason.

Software development

JDeveloper project setup

On large project this setup will help separate things. Making it easier to develop parallel. Further it lightens the load on JDeveloper since you don’t need to have all workspaces open at the same time.

Software development

WordPress: Comments are closed (???)

My wife has a blog as well. And she’s get comments on hers (not jealous, not me *sigh*).

Problem was all her post said “Comments closed”. It couldn’t be solved with setting any “Discussion” settings, turning off all plugins. Nothing helped. So she called the resident geek.

After some searching, head-scratching and a lot of speed-reading on a Google-search. I found this topic on WordPress Support.

For me the gems here a bit down the page. A few SQL’s to change comment status.

I’m dumping the here so I don’t forget them:

  • Globally enable comments for all users:
    UPDATE wp_posts SET comment_status = ‘open’;
  • Globally disable comments for all users:
    UPDATE wp_posts SET comment_status = ‘closed’;
  • Globally enable comments for registered users only:
    UPDATE wp_posts SET comment_status = ‘registered_only’;
  • Globally enable pingbacks/trackbacks for all users:
    UPDATE wp_posts SET ping_status = ‘open’;
  • Globally disable pingbacks/trackbacks for all users:
    UPDATE wp_posts SET ping_status = ‘closed’;

Hope you find them useful as well.