teleren/devto huggingface dataset:
Create your own tiniest Heroku/CloudFoundry-like PaaS .
Tags: devops, opensource, beginners, linux
Published: 2020-09-03 18:39:28

Meet Piku...

piku, inspired by dokku, allows you do git push deployments to your own servers.

-Runs on low end devices.
-Accessible to hobbyists and K-12 schools.
~1000 lines readable code.
-Functional code style.
-Few (single?) dependencies
12 factor app.
-Simplify user experience.
-Cover 80% of common use cases.
-Sensible defaults.
-Leverage distro packages in Raspbian/Debian/Ubuntu (Alpine and RHEL support is WIP)
-Leverage standard tooling (git, ssh, uwsgi, nginx).
-Preserve backwards compatibility where possible.


There is more....

https://github.com/piku/piku
An OS where containers are apps. 🐳
Tags: discuss, docker, computerscience
Published: 2020-09-03 18:39:10

⚠️ Thought experiment.

Could an OS exist that was hardly an OS at all, and all of its "apps" where infact containers, the GUI would be provided by the OS.

What would developing on such an OS be like, would it mean you could effectively write any technology stack and have it ship as if it where native.

Maybe it would be more secure by providing isolation for untrusted applications.

Could it maybe run these containers cross distributions and provide a compatibility layer for Windows Mac and Linux.

I thought this was an interesting question, I am a docker newbie trying to learn more.

Do you think this would work or even be successful?  Hello Apple, want to buy my idea 🤣

Ps, what would you need to write to build a mvp for fun??

**Wow those comments are fantastic, looks like all the components exist to do this, just needs a team to put this together, a developer focused OS, I may try and smash this all together to make a prototype.**
My Fight that Made My Express.js App Work with Webpack's Hot Module Replacement
Tags: webpack, express, hotmodulereplacement, hotreloading
Published: 2020-09-03 18:35:47

I made Webpack's hot reload function work with my existing complicated Express.js app. I watched Lawrence Whiteside's video that taught me how to setup Webapck with Express, which was very helpful but Whiteside's tutorial is about setting up a very simple new Express app with Webpack while I was trying to integrate Webpack with an existing complicated app, so it's expected that I would run into extra hurdles and I did.
 
So the problem is that I had to configure Webpack so that the webpack-hot-middleware's client will make a correct HTTP request to get updates from the Webpack Dev Server. It sounds simple but when I was in the maze, I did not see an exit and I did not know if there was an exit and if there was one, how much more difficulties that I would encounter before reaching the exit.
 
Luckily, even though there was an error, I also saw "[HMR] connected" in the Chrome console. And when I changed a local file and saved, both the Chrome console and the webpack-dev-server's console displayed new messages. So things were connected; it's just not perfectly connected.
 
Seeing the URL the webpack-hot-middleware's client requested, I realized that it was using a wrong URL; the URL won’t return the needed information for a hot reload. So I searched online for articles about express and webpack, and soon I found out that I only need to do one extra configuration, which is to configure publicPath for Webpack's output.
 
Solving this issue required thinking, reading console outputs, doing research, and most importantly some courage to face the challenge. I'm glad that I can develop my Express.js app with Hot Module Replacement enabled by webpack-dev-server from now on.
วิธีการจองที่พักผ่านทางเว็บไซต์ให้ได้ราคาคุ้มค่าแถมมีคุณภาพ
Tags: booking
Published: 2020-09-03 18:32:43

วิธีการจองที่พักผ่านทางเว็บไซต์ให้ได้ราคาคุ้มค่าแถมมีคุณภาพ
วิธีการจองที่พักในปัจจุบันมีอยู่หลากหลายรูปแบบให้ผู้จองได้เลือกใช้ตามแต่ความสะดวก เนื่องจากในปัจจุบันเทคโนโลยีค่อยๆ ก้าวหน้าขึ้น ดังนั้นจึงไม่น่าแปลกใจที่จะมีวิธีการจองที่พักมากกว่า 1 วิธีในปัจจุบัน โดยหนึ่งในวิธีการจองที่ทำได้ง่ายที่สุดก็คงจะหนีไม่พ้นวิธีการจองผ่านทางเว็บไซต์ เนื่องจากคอมพิวเตอร์เป็นที่รู้จักต่อคนหมู่มาก มากกว่าโทรศัพท์มือถือที่เพิ่งเข้ามาใหม่ดังนั้นการจงผ่านทางเว็บไซต์จึงสามารถทำได้โดยง่ายกว่า 
การจองที่พักผ่านทางเว็บไซต์เป็นหนึ่งในวิธีการจองที่ทำได้ง่ายวิธีหนึ่ง โดยเป็นวิธีการจองที่มีข้อดีอยู่ตรงที่ไม่ว่าใครก็สามารถเข้าถึงทางเว็บไซต์ได้โดยง่าย อีกทั้งเว็บไซต์ยังไม่ใช่ของที่แปลกใหม่จึงมีเสถียรมากกว่าวิธีการจองแบบอื่นๆ และป้องกันการผิดพลาดในระหว่างการจองได้อีกด้วย
โดยหากกล่าวถึงขั้นตอนในการจองที่พักผ่านทางเว็บไซต์ก็มีวิธีขั้นตอนการจองที่พักที่สามารถทำได้ตามขั้นตอนได้ดังต่อไปนี้
1.	เข้าสู่หน้าเว็บไซต์สำหรับจองที่พัก
2.	ค้นหาที่พักที่ต้องการจะทำการจอง
3.	หลังจากที่เลือกที่พักได้แล้วก็จะเป็นการเลือกประเภทของห้องพักและจำนวนคืนที่ต้องการจะเข้าพัก
4.	กดยืนยันแล้วจึงค่อยทำการโอนเงินผ่านทางระบบโอนเงินออนไลน์ หรือตัดผ่านบัตรเครดิตก็สามารถทำได้เช่นกัน
ในระหว่างที่เราทำการจองที่พักนั้น ก็คงจะเป็นเรื่องปกติที่ใครๆ ก็คงล้วนแล้วแต่อยากได้ห้องพักที่มีคุณภาพในราคาถูกด้วยกันทั้งนั้น โดยวิธีการเลือกก็สามารถทำได้ไม่ยากเพียงแค่ให้ผู้จองมองหาโปรโมชั่นผ่านทางเว็บไซต์สำหรับจองที่พัก โดยโปรโมชั่นก็จะมีอยู่ 2 แบบ ได้แก่ โปรโมชั่นตามฤดูกาลและโปรโมชั่นตามโอกาสพิเศษต่างๆ
โปรโมชั่นตามแต่ฤดูกาลจะมีในช่วงฤดูกาลต่างๆ ตามแต่สถานที่ของที่ตั้งที่พักนั้นๆ เช่น ถ้าที่พักตั้งอยู่ที่ภาคเหนือก็มักจะมีโปรโมชั่นในช่วง High season เป็นช่วงฤดูหนาว และโปรโมชั่นในช่วง Low season ที่เป็นช่วงฤดูกาลอื่นๆ โดยส่วนใหญ่โปรโมชั่นในช่วง High season จะเป็นโปรโมชั่นที่เน้นให้นักท่องเที่ยวที่ตัดสินใจจะมาท่องเที่ยวเพื่อชมความสวยงามของพื้นที่ในแถบนั้นได้เข้าพัก ดังนั้นที่พักที่มีโปรโมชั่นในช่วงนี้ก็มักจะหมดไปอย่างรวดเร็วมาก ในขณะที่ถ้าเป็นโปรโมชั่นในช่วง Low season ก็มักจะมีเพื่อให้ที่พักสามารถอยู่ต่อไปได้
ส่วนโปรโมชั่นตามโอกาสพิเศษต่างๆ ก็ยกตัวอย่างเช่น โปรโมชั่นในวันวาเลน์ไทน์ โปรโมชั่นในวันคริสต์มาส และโปรโมชั่นในวันหยุดอื่นๆ โดยโปรโมชั่นรูปแบบนี้มักจะขึ้นอยู่กับดุลยพินิจของแต่ละที่พักมากกว่าว่าต้องการจะจัดโปรโมชั่นรูปแบบไหนเพื่อให้ทางที่พักมีจุดเด่นและมีความน่าสนใจ ทำให้ผู้จองหันมาเข้าพักกันเนื่องจากโปรโมชั่นที่น่าสนใจต่างๆ booking now https://www.asiadtravel.com/
Coming October 2020: Meridian 2020!
Tags: blog, news, meridian, newfeatures
Published: 2020-09-08 19:43:43

---
title: Coming October 2020: Meridian 2020!
published: true
cover_image: https://pbs.twimg.com/media/EhAyzwGX0AIvRGA?format=jpg&name=large
date: 2020-09-03 18:22:38 UTC
tags: Blog,News,Meridian,newfeatures
canonical_url: https://www.opennms.com/en/blog/2020-09-03-coming-october-2020-meridian-2020/?utm_source=rss&utm_medium=rss&utm_campaign=coming-october-2020-meridian-2020
---

Based on Horizon 26.1.3, here’s a preview of some of the features we’re excited to bring to Meridian 2020:

**Enriched Flows, Better Messaging with Kafka**  
Configure flows to include node metadata before forwarding to Kafka so that you can aggregate flow data or integrate it with your own custom database to persist all flows.

New Kafka event and alarm publishing and the ability to configure communications using a single topic rather than one per module mean better and faster Kafka performance.

**BGP Monitoring Protocol (BMP) Functionality**  
Support for the BGP Monitoring Protocol (BMP) in the streaming telemetry feature (telemetryd) allows for advanced monitoring and management, and provides a convenient way to monitor BGP routing information on the routing device.

**Streamlined Web UI**  
Meridian 2020 marks the beginning of our long-term project to update the Web UI, starting with the navbar notification alert, a reorganized user menu, and new features in the requisitions UI.

**Better Minion Operation in Containerized Environments**  
Easier configuration for Minions running in container environments like Docker, Kubernetes, or CRI-O, through a single entry point. Docker-specific Minion updates include 50% smaller Minion container sizes, native ICMP support for improved performance, and ARM support.

To learn more about Meridian 2020, contact sales@opennms.com.
Pair programming...or not?
Tags: codenewbie, beginners
Published: 2020-09-03 18:14:05

Week 1, Day 3 of bootcamp.
To get us used to working in industry standard practices this afternoon we coded a form (yes, it was basic but the content wasn't really the point of the demo, and hey, I'm only three days in) with a partner.

Now, that would be stressful enough given that I've only known my partner for three days and yesterday I thought he was someone else (oops) - but we're doing this through perspex. Thank you, Covid. Turns out as well as being spit-proof it is surprisingly soundproof. We bellowed at each other for quite a while before lapsing into a sort of poor quality sign language. What we produced was adequate, but neither of our finest works.

My immediate reaction to the concept of pair programming is horror. The beauty of coding is in not having to deal with other people, right...? Wrong. Turns out I can't just hang up my social skills on the way in the door. I can see that two heads can be better than one. I get that. But is the pay-off worth the process? Does anyone have any stories about how this goes in their workplace? 

Do you pair sometimes, on certain projects, or more frequently?
Do you always pair with the same person?
Do you CHOOSE the person you pair with?
Have you paired with someone who was lazy - or a smartass? 
Does it ever stop being fundamentally awkward sitting very close to a colleague and reading over their shoulder?
In your opinion, is it a good practice and one you'd seek out in a new job?
How To Fix A Bug - Building SaaS #56
Tags: python, django, saas
Published: 2020-09-03 18:11:11

{% youtube ozNPXV9_TZU %}

In this episode, we picked an issue from GitHub and worked on it.  I explained the flow of using test driven development to show how the bug existed in an automated test.  We wrote the test, then fixed the code.  After that, we did some test refactoring to clean things up.

We looked at what the issue was and how it is related to the handling of the `Course` model in a weekly view in the app.

I showed how the data model for the `Course` handles school days.  Then I wrote the unit test that would show the failure for the issue.

Once we had a valid unit test in place, I switched to writing code for the Django view to make the test pass.  Finally, we checked the behavior in the app to confirm that I fixed the issue.

With the issue fixed and the test passing, I refactored the test code to make the tests easier to understand and work with in the future.

This article first appeared on [mattlayman.com](https://www.mattlayman.com/building-saas/how-to-fix-a-bug/).
To Do app with Angular 10 and InvokeDB
Tags: invokedb, angular, typescript, webdev
Published: 2020-09-03 18:00:49

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/wete9l9glt2avj8a5qsj.png)

## Overview
This article walks through setting up an InvokeDB table and connecting it to an angular application. [Click here](https://github.com/stevehetz/invokedb-examples-angular) to see a full example of the To Do application.

InvokeDB is a simple NoSQL database with built in API endpoints when tables are created. We can use this to store our to do list items.

## Prerequisites
1. Create an [InvokeDB](https://invokedb.com/create-account) account
2. Install the [Angular CLI](https://cli.angular.io)

## Guide
### Set up ToDo table in InvokeDB
1. Login to your account at https://invokedb.com
2. Click the `+` icon and select `Empty Table`  
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/tgrwfstl4yhtiiozipbt.png)
3. Name the table `ToDo`
4. Edit the table so that you have 2 string columns with the following names
  * `name`
  * `isComplete`

The table is now setup, you can view available API endpoints by clicking the `API` button in the top right of the table.

Your table should look like this
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/pio5wcga4l0d70zxqg37.png)

### Calling the ToDo table from Angular
The samples below will show how to send a request to the `Get` and `Search` endpoints for the To Do table.

Retrieve your api token from https://db.invokedb.com/account

Set the following 2 variables
``` ts
const BASE_URL = 'https://api.invokedb.com/v1';
const API_KEY = 'your api key';
```

InvokeDB requires the api key to be sent as a Bearer token. So we'll create a helper method to return an Authorization header.
``` ts
getHeaders() {
  return new HttpHeaders().set('Authorization', `Bearer ${API_KEY}`);
}
```

Create a `getRows()` method to call InvokeDB
``` ts
getRows(table: string, params: any, filter?: any) {
  const { skip, limit } = params;
  const urlQuery = `table=${table}&skip=${skip}&limit=${limit}`;
  const headers = this.getHeaders();

  return filter
    ? this.http.post(`${BASE_URL}/search?${urlQuery}`, filter, { headers })
    : this.http.get(`${BASE_URL}/get?${urlQuery}`, { headers });
}
```

Create the `getItems()` method
``` ts
getItems(showCompleted = true) {
  const params = {
    skip: 0,
    limit: 200
  };

  let filter;

  if (!showCompleted) {
    filter = {
      isComplete: {
        value: 'no',
        type: 'equals'
      }
    };
  }

  return this.invokedb
    .getRows('todo', params, filter)
    .pipe(map((res: any) => res.data));
}

```

Assuming the above code was put into a service, you can now use the following code to query the todo items stored in the table.
``` ts
this.svc
  .getItems(this.showCompleted)
  .subscribe(items => (this.items = items));
```
Need help setting up a basic CSS & JS build using NPM scripts
Published: 2020-09-03 18:00:34

Hi,

I need your help, I want to setup a very basic npm set of scripts to compile and minify Sass and JS ES6+ for personal projects.

So far my Google search only gives me old posts and convoluted builds that, at least for me, are hard to follow and refactor for my basic needs. For example most of the posts or video tutorials use uglify which is deprecated and don't work with modules, so I'm using Terser instead.

This is what I have so far:

```json
"scripts": {
	"devserver": "live-server --open=/dist/",
	"sass": "node-sass scss/ -o dist/css/ -w",
	"terser": "terser js/index.js -c -m -o dist/js/index.js",
	"watch:sass": "onchange scss/*.scss -- npm run sass",
	"watch:js": "onchange js/*.js -- npm run terser",
	"start": "npm-run-all --parallel devserver watch:*"
},
"devDependencies": {
	"node-sass": "^4.14.1",
	"npm-run-all": "^4.1.5",
	"terser": "^5.1.0"
}
```

Any help, pointers and suggestions will be much appreciated.
HOW TO STAY MOTIVATED WHEN LEARNING TO CODE
Tags: webdev
Published: 2020-09-03 16:16:06



I’ve often been asked questions upon questions about what my driving force towards coding and software development is.

And each time, I gave the same answer.

I will be sharing some tips that have helped me overtime to stay motivated and somewhat focused on each I step to becoming better.

One of the most important skills of successfully transitioning to becoming a software engineer is the skill of discipline and motivation.

It can be really difficult, even though programming is exciting especially when you're designing and building new products. 

But on the other hand you could also face rejection over and over again and most times loose the zeal to continue.

Here are some tips I find helpful..

Know YOUR reason!.__This is the most important part, if there is no WHY as regards your venturing into the tech field, it will be very hard to hold on.

 This should the first thing you have to do even if it means saying it to yourself every single day.

Set small MEASURABLE goals for yourself.__ It can be very easy to say you want to be a web developer or you want to be a Mobile app developer. There are actually processes involved in becoming these things. 

Set realistic goals that you can reach at each step you take and celebrate your small wins.


Do more project based learning__ Honestly speaking, lectures and online courses could be boring sometimes. 
See that you can organize and build small products, take up mini projects to check your skill proficiency at every given opportunity.

This helps you learn faster.

Find a COMMUNITY__ You will realize that so many people are going through the same process with you.
 It will be easier to talk and ask questions to anyone you find there. 

Communities you can join are GDG, Dev.to, and several groups on facebook where developers share ideas and talk about issues they face.

Remember to cut off those who bring negative energy with them, we DO NOT need that!

Lastly__ Always consume content that keeps you positive. Ask to know experiences of people who have faced similar issues and gone past it.

Be assured that learning takes time and you are not alone.

Find this helpful?
Let me know!!
AISpy — a research driven app using TensorFlow Lite + Flutter
Tags: gamification, flutter, artificialintelligen, machinelearning
Published: 2020-09-08 13:23:42

---
title: AISpy — a research driven app using TensorFlow Lite + Flutter
published: true
date: 2020-09-03 17:47:04 UTC
tags: gamification,flutter,artificialintelligen,machinelearning
canonical_url: https://medium.com/@mat_wright/aispy-a-research-driven-app-using-tensorflow-lite-flutter-31047d308e7a
---

[![](https://cdn-images-1.medium.com/max/1200/0*9Phbvc0Vtz48OLov)](https://medium.com/@mat_wright/aispy-a-research-driven-app-using-tensorflow-lite-flutter-31047d308e7a?source=rss-8818e5bb5014------2)

An experimental app concept using artificial intelligence and gamification to acquire source images for machine learning object datasets.

[Continue reading on Medium »](https://medium.com/@mat_wright/aispy-a-research-driven-app-using-tensorflow-lite-flutter-31047d308e7a?source=rss-8818e5bb5014------2)
Social-AI - Github action automatically add your social icons in README.MD
Tags: actionshackathon, javascript, opensource, showdev
Published: 2020-09-03 17:36:19

[Instructions]: # (To submit to the GitHub Actions x DEV Hackathon, please fill out all sections.)

Hi, I am Elango Sundar, This is my submission for [Github Actions](https://dev.to/t/actionshackathon)

### My Workflow
[Note]: # (Make sure to include the name of your GitHub Action and share where it's being used!)

`Social-AI` is a `Github action` automatically add your social icons or profiles in your `README.MD` file without hassle.

It will helps without copy pasting the social icons from icons website and less configurations.

### Submission Category: 

[Note]: # (Maintainer Must-Haves, DIY Deployments, Interesting IoT, Phone Friendly, or Wacky Wildcards)

I have submitted the my action under the below categories

- Wacky Wildcards
- Interesting IoT

### Yaml File or Link to Code

[Note]: # (Our markdown editor supports pretty embeds. Try this syntax: `{% github link_to_your_repo %}` to share a GitHub repository)

My action has two inputs.

- `GITHUB_TOKEN` - A personal Github token.
- `social-icons` - Add your social name and it is username to add your README. [ Eg: If you will add social icon for twitter, will pass the `socialName` as `twitter` and `userName` as `YOUR_USERNAME`]

```
- name: add social icons
  uses: elangosundar/social-ai@master
  with:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    social-icons: '[ { "socialName": "twitter", "userName": "elango_sundar"}, { "socialName": "facebook", "userName": "elango_sundar"}, { "socialName": "dev-dot-to", "userName": "elango_sundar"}, { "socialName": "codesandbox", "userName": "elango_sundar"},{ "socialName": "stackoverflow", "userName": "elango_sundar"}, { "socialName": "youtube", "userName": "elango_sundar"}]'
```
*Repo:* 
[https://github.com/elangosundar/social-ai](https://github.com/elangosundar/social-ai)

### Additional Resources / Info

I have created a demo repo for this Project - [Social-AI-Demo](https://github.com/elangosundar/social-ai-test).

Please check my repo and if you like this project, Please make :star:. 

Thanks for [Dev.to](https://dev.to) and [Action Hackathon Team](https://dev.to/new/actionshackathon)
Quickly copy path to clipboard
Tags: linux, productivity, coding, bash
Published: 2020-09-03 17:18:24

---
title: Quickly copy path to clipboard
published: true
description: with this tip you can open a new terminal and just place your previous location
tags: #linux #productivity #coding #bash
cover_image: https://www.incimages.com/uploaded_files/image/1920x1080/getty_660582997_412145.jpg
---

It's very common to have a terminal window opened in a specific folder, and then you realize that you need to do something else in that same folder, then you open a new terminal window and have to navigate to the folder that you were in the previous window, it's happens a lot and it's annoying.

There's a quick and easy way to solve this problem that works in any platform, terminal emulator etc.. 

Just create a script called pwdc place the following code 
```
#!/usr/bin/bash

pwd | xclip -selection clipboard
```
What this script does is to copy your current directory to your clipboard
pwd means (print working directory), that's why the name of the script is pwdc, the c stands for copy, but of course, you can name the script whatever you want, after creating the script you need to make it executable
```
chmod +x ./pwdc
```
and you also need to install xclip if you don't already have, after that you need to move the script to your path, so you can call it anywhere, and that's it, now you can easily copy you current directory open a new terminal window and navigate to it
What is a specific recurring challenge you have with CSS?
Tags: css, webdev, discuss
Published: 2020-09-03 17:08:22

What is "the thing" you build over and over, never satisfied with the solution?

Let's skip the jokes about centering - [I've got you covered on that one](https://moderncss.dev/resource-the-complete-guide-to-centering-in-css/) 😉

💫 Optionally respond to/share [the tweet](https://twitter.com/5t3ph/status/1301553401306714113).
Announcing Keynote Speaker for PyCon India 2020 - Naomi Ceder
Tags: pyconindia, python, datascience
Published: 2020-09-05 14:07:19

---
title: Announcing Keynote Speaker for PyCon India 2020 - Naomi Ceder
published: true
date: 2020-09-03 17:00:00 UTC
tags: ["pyconindia", "python", "datascience"]
canonical_url: 
---

We are happy to announce **Naomi Ceder** as a Keynote speaker for PyCon India 2020!

Naomi Ceder earned a Ph.D in Classics several decades ago, but switched from ancient human languages to computer languages sometime in the last century. Since 2001, she has been learning, teaching, writing about, and using Python.

An elected fellow of the [Python Software Foundation](https://www.python.org/psf), Naomi is the immediate past chair of its board of directors. She also speaks internationally about the Python community, and on inclusion and diversity in technology in general.

By day she leads a team of Python programmers for [Dick Blick Art Materials](https://www.dickblick.com/), and in her spare time she enjoys sketching, knitting, and deep philosophical conversations with her dog.

She can be reached at her Twitter handle: [@NaomiCeder](https://twitter.com/naomiceder)

![Naomi Ceder](https://in.pycon.org/2020/assets/images/naomiceder_headshot_web.jpg)
What shared hosting providers have you tried?
Tags: webdev, discuss, hosting
Published: 2020-09-03 16:41:41

---
title: What shared hosting providers have you tried?
published: true
description: 
tags: webdev, discuss, hosting
cover_image: https://lh3.googleusercontent.com/proxy/x6QunLL0tg0KHJWpsLpu1jnpQuIBN6MGAIR9x8cDAg_aIdXeFncncP0NlLFO5n7om6KFQaJLE0UexJZXXIuOXnF9y_oY-mD2oeMtc7mZzkiCCCy4wwZXtWXghVMZaBtxLVPxzkbd1LH0uWPm12fQ9gKpjpyuBw
---
Shared hosting is cheap, easy to set up, and can work for just about any personal or modestly-sized website.

Some of the most popular hosting providers that offer shared hosting are [Bluehost](https://www.bluehost.com/), [HostGator](https://www.hostgator.com/), [Hostinger](https://www.hostinger.com/), [DreamHost](https://www.dreamhost.com/), [SiteGround](https://www.siteground.com/), [GoDaddy](https://uk.godaddy.com/), [InMotion](https://ww2.inmotionhosting.com/), [A2 Hosting](https://www.a2hosting.com/), [GreenGeeks](https://www.greengeeks.com/) and [iPage](https://www.ipage.com/).

Which ones have you tried and which one did you like the most?