Category Archives: Resources

Port 8080 Already In Use Spring Java Mac

Find out what application uses the port 8080 on Mac

If you develop web applications on your local environment, you will notice that the port 8080 is often set as default. Most likely one day you will face a situation where 2 running web servers want to bind the same port: 8080. Obviously, this is not allowed and you will get an error “Address already in use”. In Java environment, you will get this:

[console] Address already in use[/console]

The best way to sort this conflict is to follow these simple steps.

Step 1: find if a process listen on the port 8080

Open a terminal and enter this command:

sudo lsof -i :8080 | grep LISTEN

If you have already a running server on 8080, then the command will show the application running on this port. Note that the second value column is the Process Identification Number which is automatically assigned to each process when it is created on a Unix-like operating system.

user@computer$ lsof -i :8080 | grep LISTEN
java 28045 nicolas 125u IPv6 0x609c3697d21f8a2d 0t0 TCP *:http-alt (LISTEN)

Step 2: obtain more information about the process

Enter this command in the terminal.

ps -e {pid} | less

Note that you have to replace the {pid} by the value found in the result of the lsof command. In my case scenario, it’s 28045 and it’s Eclipse.

user@computer$ ps -e 28045 | more -w
28045 ?? 0:13.70 /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java -Djava.rmi.server.hostname=localhost -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -noverify -XX:TieredStopAtLevel=1 -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/resources.jar:{more libraries…}:/Users/nicolas/.m2/repository/org/springframework/spring-jcl/5.1.4.RELEASE/spring-jcl-5.1.4.RELEASE.jar com.nicolasrabier.whatever.ServerApplication –spring.output.ansi.enabled=always

Step 3: kill the process

If you can no longer quit safely the web server process, there is still a way to kill the process with a command line in the terminal.

Note in the command you have to replace the {pid} by the value found in the result of the lsof command. In my case scenario, it’s still 28045.

sudo kill -9 {pid}

After running this command, no process listens on the port 8080 which means that you can start safely the other web server.

Free Software / Tool / Service to run a Small and Medium-sized Business

It can be overwhelming to jump into the endeavour of creating a starting a new business and without knowing if your ideas will work. A critical role is to manage your cash flow and make sure the money is spent wisely. Nowadays, thanks to the internet and the open-source community, there is a plethora of great tools for your business and it won’t cost you any money.

Email Service

First of all, you will need an email address. Create an account on Gmail –

This Google account will allow you to access many useful collaborative services such as:

  • Calendar Service: Free Organise meetings & events –
  • Contact Service: Free Directory of your contacts –
  • Google Docs: Free alternative to Microsoft Word. Many users can work simultaneously on the same document. Versioning control. Large choice of templates and different look & feel. –
  • Google Sheets: Free alternative to Microsoft Excel. Same as Google Docs, many users can work simultaneously on the same document. Versioning control. And more… –
  • Google Slides: Free alternative to Microsoft PowerPoint. Same as the other Google tools, many users can work simultaneously on the same document. Versioning control. And more… –
  • Google Drive: Free 15 GB cloud storage space –
  • And more…

Operating System

Install the free operating system on to your server to replace Windows or other Linux paid OS: Ubuntu Server

Remote Access

Install Chrome Remote Desktop which is a free remote control software, a good alternative to Teamviewer: How to install Chrome Remote Desktop on Ubuntu 18.04 – (pretty much same config for Ubuntu 16.04)


How to set up an OpenVPN Server on Ubuntu 16.04

Cloud Printing

Google Cloud Print on Ubuntu 16.04, in 10 minutes!

Dynamic Domain Name Service

How to set up Free DDNS Service on Ubuntu


How to install and configure ownCloud on Ubuntu 16.06

Usually, I couple ownCloud with a Dropbox account (not free) for redundancy.

ERP / E-commerce website

Install Odoo on an Amazon Lightsail server for $20 / month.

Open Source ERP – Odoo 11 – installation guide on Ubuntu 16.04

Open Source ERP & CRM – Dolibarr (PHP)

Best Wordpress Plugins

[WIP] The Best WordPress Plugins & Themes (No Affiliation)

As a WordPress developer, I thought keeping an organized list of the best and worst plugins. Here is simply my feedback based on my experience with those plugins. This post hasn’t been affiliated by any of the plugin brands.

Here is my Testing Environment for WooCommerce:

Color code:

  • ✅ Approved
  • ⚠ Some Warnings
  • ❌ Don’t Waste Your Time

✅ WooCommerce By Automattic

This is a great eCommerce tool. I love it even though it’s far from being perfect.


  • free
  • works with physical or digital products
  • compatible with many Themes such as StoreFront By WooThemes (same team as Automattic)
  • awesome partnership with Stripe & Paypal plugins
  • you can have a simple shop up and running fairly quickly


  • require good knowledge of the tool to set it up properly
  • the marketing strategy of Automattic is to use WooCommerce as an entry point to sell the most interesting plugins.
  • You would believe for compatibility reason it is better to use only Automattic plugins but this is not necessary true. e.g.
  • General knowledge in PHP and specifically in WordPress framework can help you a lot and save you money.

✅ Storefront Theme


  • Front page of the store looks very professional and legit. In order to properly visualize the front page the store needs products and categories in the catalog. Therefore I suggest to import the Dummy Data provided in WooCommerce to have a clear idea of the shop style. Check out this video tutorial that explains how to import the dummy data –


  • Many extensions aren’t free

Not sure

  • Compatibility with CDN. When you develop a website for global market you need to make sure the website is quickly reachable from anywhere in the world and nowadays this is achieved via a Content Delivery Network. I personally use CloudFlare coupled with MaxCDN which are integrated via W3TotalCache plugin.

✅ Storefront Sticky Add to Cart By WooThemes 

Love it

✅ Shortcodes Ultimate By Vladimir Anokhin

Best plugin to display information (sliders, box, columns, animations, etc.)

I systematically download it on all my instances of WordPress.

 Child Theme Configurator By Lilaea Media 

Nothing exciting here but it simply makes the creation of a child theme effortless.


  • Simple and fast

 W3TotalCache By Frederick Townes

This plugin speeds up the loading time of websites from anywhere in the world. This is critical to deliver the best experience to your impatient audience.



❌ WooThemes


  • Poor documentation
  • Support is unreliable
  • Expensive

Note reviews on Theme Grade –

 All-In-One WP Migration By ServMask

WooCommerce – Change “Related Products” text

This snippet allows to quickly change the “Related products” text which is shown by default at the bottom of a single product page in a WooCommerce shop.

Check out on my test environment:

Insert the code in functions.php of your child theme.

* Change text strings
* @link

function custom_related_products_text( $translated_text, $text, $domain ) {
  switch ( $translated_text ) {
    case 'Related products' :
      $translated_text = __( 'Other items you might like', 'woocommerce' );
  return $translated_text;
add_filter( 'gettext', 'custom_related_products_text', 20, 3 );