teleren/devto huggingface dataset:
[DISCUSSION] Thoughts on the growth of tech in Nigeria
Tags: tech, nigeria, remote, discuss
Published: 2018-01-03 10:13:33

---
title: "[DISCUSSION] Thoughts on the growth of tech in Nigeria"
published: true
description: About the cost of the growth of tech in Nigeria
tags: tech,nigeria,remote, discuss
---

![](https://thepracticaldev.s3.amazonaws.com/i/w63h5v3kkt62wskw9ui8.png)

Recently there has been an epic growth in the tech space in Nigeria. We have seen massive developments in tech hubs and developers springing up left, right and center. However, the country's poor infrastructure, economic hardship, the alleged harassment of youths by the authorities in the country has led to the young talents looking for ways out of the country.

I made a poll recently about this and the response was overwhelmingly in the favor of leaving the country. How will this affect the growth of tech in your opinion? Will it be a case of the ones who left coming back to make a better place or just how will it play out eventually?

P.S: You don't have to be Nigerian to comment
Secure Linux Server Using Hardening Best Practices
Tags: ubuntu, linux, security
Published: 2018-01-26 20:52:19

---
title: Secure Linux Server Using Hardening Best Practices
published: true
description: 
tags: #ubuntu #linux #security
---

1 Disable Ctrl-Alt-Delete
2 Secure Mounted Filesystems
3 Protect /etc/services File
4 Remove Unused Accounts
5 Hardening Cron Scripts
6 Securing SUID Programs
7 Risky World-Writable Files and Directories
8 Risky Symlinks
9 Securing Log Files
10 Securing Linux Resources
11 Hardening /proc Directory

https://likegeeks.com/secure-linux-server-hardening-best-practices/
Efficient Cross-browser testing workflow
Tags: css, frontend, workflow, discuss
Published: 2018-01-18 16:59:14

---
title: Efficient Cross-browser testing workflow
published: true
description: 
tags: #css #front-end #workflow #discuss
---
I am a new Front-end Developer and i'm trying to get the hang of cross browser testing. It its frustrating to open each browser to test. Additionally, I use a mac and the Safari dev tools are really difficult to use. I was wondering if other devs could explain how they cross browser test. any tips or tools you use?
Explain PostgreSQL Like I'm Five
Tags: explainlikeimfive, postgres
Published: 2018-01-27 14:09:47

---
title: Explain PostgreSQL Like I'm Five
published: true
cover_image: https://iritec.jp/wp-content/uploads/2013/02/postgresql.jpg
tags: explainlikeimfive,PostgreSQL,
---

What differentiates Postgres from other SQL DBs?
Can you include simple examples?
As a Senior, do you look forward to mentor Junior developers?
Tags: discuss, mentorship
Published: 2018-02-02 18:05:26

---
title: As a Senior, do you look forward to mentor Junior developers?
published: true
tags: discuss, mentorship
---

Having things like code reviews, regular pair programming sessions and cool non-work activities are some of the _nice to have_ things I look for when joining a team/company. 

But what really stands out for me is the idea of having someone who can mentor me during my journey. I don't exactly know how to describe it, but I just value a lot the personal experience of others so I can then put them to the test and discuss why we should do things a way or another.

So, for those of you who have the chance to mentor others: [read the title/question]
Best tools, practices when you join new organization 
Tags: tools, productivity, bestpractices, discuss
Published: 2018-02-08 17:37:53

---
title: Best tools, practices when you join new organization 
published: true
description: 
tags: tools, #productivity, best practices, discuss
cover_image: https://thepracticaldev.s3.amazonaws.com/i/ojtkknf1i9k7c4f93a72.jpeg
---



Hello friends,
I am going to join new organization next month. I need help from you.
What are tools I can use to manage my tasks and to boost productivity? (In context of multitasking work)
What are the best practices I can use from the first day?
Other advises are welcome!
Probably another Battleship board on Code Pen
Tags: css, codepen
Published: 2018-02-09 05:01:39

---
title: Probably another Battleship board on Code Pen
published: true
canonical_url: https://www.iamdeveloper.com/posts/probably-another-battleship-board-on-codepenio-coverimage-httpsc1staticflickrcom7609963333175677fc467e409ojpg--4n7m/
cover_image: https://c2.staticflickr.com/6/5184/5639332304_9f91e58360_b.jpg
description: A basic Battleship board with some random hits and misses.
tags: css, codepen
series: my codepens
---

Photo courtesy of Flickr user [drtran](https://www.flickr.com/photos/drtran/5639332304/sizes/l).

If you want to see the previous Code Pen I did, check out [A 💩 Notification Code Pen](https://dev.to/nickytonline/a--notification-code-pen-4o0n).

Continuing along with my [2018 Resolutions](https://dev.to/nickytonline/2018-resolutions-1deo) to make Code Pens this year, here is my latest.

As mentioned previously, one of the reasons I wanted to start making Code Pens was to see how much I can do without the help of JS. In this example, Javascript is only used to build the markup for the board because I was too lazy to make it all by hand. There's also a small function to simulate a game move as a miss/hit.

I've been doing [@wesbos](https://dev.to/wesbos)'s awesome [CSS Grid course](https://cssgrid.io), so I thought it would be fun to use these new skills to recreate a classic board game, Battleship. I'm sure there are probably tonnes of these on Code Pen, but honestly, I don't care. It was just fun making it. There's some tweaking to do still (centering of game pieces is off when I look at it on mobile), but so far, I'm happy with it.

Maybe at some point, I'll make the full game, but for now, a board with some simulated hits and misses.

{% codepen https://codepen.io/nickytonline/pen/zRNMvO %}

I'll end with some cheese, "You sank my battleship!".
Nevertheless, Akanksha Sharma Coded
Tags: wecoded
Published: 2018-03-08 06:41:45

---
title: Nevertheless, Akanksha Sharma Coded 
published: true
tags: shecoded
---

## I began to code because...

I am not a computer science graduate, I am(was?) an electrical engineer, heck I did not even own a computer until I got in second year of college (small town in middle of nowhere in 90's). Frankly, I started to code to pay my bills.
My plan was to continue my computer gig until I get a job in my field.

But after I saw the beauty of coding field, I felt I found my calling. Everyday is a new challenge. You experience joy of building new things everyday.
I am very fortunate that I got a job as developer in start of my career so that I would know this is where I was meant to be.


## I continue to code because
Despite receiving half pay than my male counterparts, despite being ridiculed by client because women cannot be good enough developers, I love coding . In the words of my mentor, just focus on skills, success will come eventually. 

## I'm an expert at...
Front end Technologies. My first job was as a junior developer to solve bugs for a web application. Wanting to learn more about software development I joined a startup where I worked on several applications from scratch as single person team.
Currently I am at a great company with great mentors who always encourage me to strive for excellence. In last 3+ years I have worked on all major front end technologies React.js, Angular, Vue.js, Cycle,js. 
I am currently dabbing in node.js.


## I recently overcame...

The fear of writing online. I published two technical blogs till now and received amazing response from online community.


## My advice for allies to support women and non-binary folks who code is....

 No matter what happens do not give up. Sounds a little bit cliche. 
 But seriously you got less pay, are being discriminated on basis of gender,
 don't ever stop learning, honing your skills. In the words of Douglas Malloch:

    `If you can't be a highway then just be a trail,`
    `If you can't be the sun be a star`
    `It isn't by size that you win or you fail,`
    `Be the best of whatever you are!`
How do you protect your backend API in your microservice if you use a Single Page Application on the frontend?
Tags: question, discuss, microservices, security
Published: 2018-03-19 18:19:59

---
title: How do you protect your backend API in your microservice if you use a Single Page Application on the frontend?
published: true
description: Roast me with your design patterns
tags: question, discuss, microservices, security
---

I currently working on a pet project where I intend to learn a "simple" microservice architecture, meaning no universal rendering (or I thought it would be simple).

I have a backend REST API written in Go, which is proxying a third-party API. Later on it will be replaced with a Postgres database. Right now serving content under `127.0.0.1:8080/api/v1`.

I have a static fileserver written in Go for SPA, which is serving a Single Page Application written in Vue.js, generated by `vue-cli`. This fileserver serving content under `127.0.0.1:8081`. This vue app querying data from the API server with `axios`, fecthing AJAX requests.

This is where I hit the first problem: if I not whitelisting the address of the static fileserver on the API server, so the server doesn't have any CORS header presented, like:

```
Access-Control-Allow-Origin: http://127.0.0.1:8081
# or
Access-Control-Allow-Origin: *
```

The request got ignored by the browser.

----

Another problem (well, not really a problem) that I had to drop the relative urls in `axios` (because they are not on the same server anymore), meaning replacing:

```js
return this.$http.get(`/api/v1/${this.id}/`, {
```

with:

```js
return this.$http.get(`//127.0.0.1:8080/api/v1/${this.id}/`, {
```

in the vue app.

Am I doing something wrong here? How should I make request to the API server from the SPA from another server?

----

How can I protect my backend API from people to using it without restrictions?

I guess I have to implement a rate limiter for sure. I plan to use HAProxy for load balancing and probably this is the point where it should limit the requests from users who wants to execute DDOS attacks or use the database as a free fountain for their sites.

But there are no other way of limiting the API accessing it from the browser bar, if they type in the address of the API server? What about GraphQL? Same situation?

----

This site will not feature any authentication, user management, or restricted access at the start. But if I try to implement such feature in the future, how can I implement user authentication safely, not shooting myself in the leg? What are the best practices to do this, if I completely want to ditch server-side or universal rendering?

I want to have an SPA and an API server which will be a good start for web and mobile apps, too.
Daily Blog Vol.3
Tags: myblog
Published: 2018-10-04 13:40:28

---
title: Daily Blog Vol.3
published: true
description: Today is just daily things.
tags: myblog
---

## My recent interests
Nowadays, I made a account for [NISA](http://www.jsda.or.jp/en/activities/research-studies/html/NISA.html) . You might have already know about [ISA](https://en.wikipedia.org/wiki/Individual_Savings_Account) . Since 1999, England government started for facilitating people who invest. And Japan, in Japanese meaning of it is `NIHON` , so initial is `N` . N + ISA = NISA. That's why we call it as a `NISA` . recently, I was interested in investment which isn't like gamble.
speaking As a young (but not young, not old) Japanese guy, Investment sounds like doubtful. I've heard fraud cases about [ICO] (https://en.wikipedia.org/wiki/Initial_coin_offering) through articles or internet media or youtube. Last year, cryptocurrencies were so popular and it was spreaded
out on Japan.
I guess many people were interested in it. At the same time, ICO fraud cases had been occurred continually. Therefore I'm so interested in cryptocurrency and blockchain technology, I've never had it.
So, I've been reading articles about it and reading document of blockchain library such as [web3.js](https://github.com/ethereum/web3.js/) .
Then, suddenly, I was starting thinking about my life. I like to develop, make app, keep catching up new technology, and something like that. but I'm kind of getting bored easily. Personally though, I was promoted music school, then graduated as a Associate degree. So, I was into composing music, gigging, playing instruments such as Guitar, Base, Drums and Keyboard. Totally about 8 years of my music career which  is included hobby which is especially when I was high school student. This was proud of myself and never forget in my mind, but I suddenly quit everything because I got into web technology.
In conclusion, I might get board of developing suddenly when I come across of what I'm addicted. To know those of what cryptocurrency and investment made me grow up to me in the future probably. So, I'm getting caching up those things day by day slowly.

## other thing of Javascript
I recently upgraded create-react-app to 2.0.4 from 1.x.x. Sometimes (not often, just sometimes), I read code which is its webpack config and inside of CRA. this is good to learn how to use webpack and configure webpack. code reading is really important for developer, especially internal of CLI should be helpful for you if you have to manage SPA environment application or complicated application.
Personally, when I use webpack, I write about webpack build or start server to `package.json` , but create-react-app's start script is `node scripts/start.js` .
This means that create-create-app invokes start script from `scripts/start.js` file by invoking node api. The thing is that inside of `scripts.start.js` is written about invoking webpack-dev-server, and some logic sequentially.
I didn't read deeply yet, so just that's it though.

So, today's myblog is done. see you tomorrow.
Lazy names are lazy
Tags: discuss
Published: 2018-03-20 19:25:24

---
title: Lazy names are lazy
published: true
description: name conventions are for the weak of heart
tags: discuss
---

If you are starting a project, but you have no idea how to call it, maybe just a placeholder, how do you name it?

My goto is **Douglas1** or **test1**, how about yours?
PASSWORD VERIFY ISSUES IN PHP
Published: 2018-03-26 10:10:16

---
title: PASSWORD VERIFY ISSUES IN PHP
published: true
description: 
tags: 
---

public function login(UserModel $userModel)
  {
    try{
      $name = $userModel->get_user_user_name();
      $password = $userModel->get_user_password();

      $query = "SELECT * FROM users WHERE (user_user_name = :user_user_name) AND (user_status_id = 5) AND ((date_expiry > NOW()) OR (date_expiry < :date_expiry))";
      $stmt = $this->query($query);
      $this->bind(":user_user_name", $name);
      $this->bind(":date_expiry", '2000-01-01');
      $stmt = $this->executer();
      $res = $stmt->fetch(PDO::FETCH_ASSOC);
        //echo $password." string";
        //var_dump(password_verify($password, $res["user_password"]));
      if(password_verify($password, $res["user_password"])){
        $_SESSION['user_id'] = $res['user_id'];
         $this->user_id = $res["user_id"];
         $this->user_name = $res['user_name'];
         $this->is_authenticated = TRUE;
         $this->expiry_date = $res['expiry_date'];
         $this->session_start_time = time();

        $this->create_session();
      }else {
        echo "password don not match";
      }
    }catch(PDOException $e){
      echo $e->getMessage();
      return FALSE;
    }
    return TRUE;
  }
THATS MY LOGIN FUNCTION.
---------------------------------------------------------------------------------->


public function add_user(UserModel $userModel)
  {
    try {
      $pass = $userModel->get_user_password();
      $name = $userModel->get_user_name();
      $user_name = $userModel->get_user_user_name();
      $phone_number = $userModel->get_user_phone_number();
      $email = $userModel->get_user_email();
      $school_id = $userModel->get_user_school_id();

      $hash_pass = password_hash($pass, PASSWORD_DEFAULT);
     var_dump($hash_pass);
      $sql = "INSERT INTO users (user_name, user_user_name, user_password, user_phone_number, user_email, user_school_id) VALUES
      (:user_name, :user_user_name, :user_password, :user_phone_number, :user_email, :user_school_id)";
      $stmt = $this->query($sql);
      $this->bind(":user_name", $name);
      $this->bind(":user_user_name", $user_name);
      $this->bind(":user_password", $hash_pass);
      $this->bind(":user_phone_number", $phone_number);
      $this->bind(":user_email", $email);
      $this->bind(":user_school_id", $school_id);
      $stmt = $this->executer();

    } catch (Exception $e) {
      echo $e->getMessage();
      return FALSE;
    }
    return TRUE;
  }

THATS MY REGISTER FUNCTION.
-------------------------------------------------------------------------------

MY ISSUE IS THAT ITS NOT LOGIN A USER IN.... AND THE ISSUE IS FROM THE PASSWORD_VERIFY AND PASSWORD_HASH FUNCTION... PLEASE HELP....
Ruby Gem markdown_helper v1.5:  Nested Includes
Tags: github, ruby, markdown, documentation
Published: 2018-04-07 20:40:48

---
title: Ruby Gem markdown_helper v1.5:  Nested Includes
published: true
description: Nested includes are now supported.
tags: github, ruby, markdown, documentation
---

I have put up Ruby gem <a href="https://rubygems.org/gems/markdown_helper">markdown_helper</a> v1.5, which supports nested file inclusion.  An included file can now include other files.
A shell script to update VS Code on Linux
Tags: showdev, linux, github, vscode
Published: 2018-04-14 00:02:38

---
title: A shell script to update VS Code on Linux
published: true
description: 
tags: #showdev #linux #Github #vscode
---

I'm not quite sure about Mac users but updating VS Code in Ubuntu manually is always a pain and consumes some of my valuable time which I can use it for other things. Thus I wrote a shell script to update my VS Code just by executing it. [./😉.sh]

Find the script in this [GitHubGist](https://gist.github.com/TheWebDevel/2bcd1a0c328a1063bc6b7f4ea6d2f3e4).
Hello Mobile World!
Tags: ios, android, mobile
Published: 2018-04-15 14:46:51

---
title: Hello Mobile World!
published: true
description: The world is running low on Mobile developers, here's some reasons why you should consider checking it out!
tags: iOS, android, mobile
cover_image: https://thepracticaldev.s3.amazonaws.com/i/l7qe3q06klh6a204hbit.jpg
---

My introduction to mobile was a rough start. In fact, it was so rough I told myself I was never doing that again. When my first job offer came around though, they were short on iOS and Android developers.. and well, being rather desperate as a single mom with loads of student debt, I jumped in head first.  Little did I know, it was the best decision I could have made.   I took iOS by the horns and have now specialized in it for over 5 years. I’ve also dabbled in web and Android, but iOS has remained my passion. Why am I telling you this? Sometimes the learning curve is intimidating, but mobile development has come an extremely long way. If you've checked it out before, I guarantee things are different.

Being a mobile developer is a lot of fun because the technology is always changing. There’s usually a new operating system every year, which also usually means a new phone with it. New phones (may) bring new technology, such as most recently Augmented Reality capabilities.

Mobile isn’t ONLY for phones and tablets though! Beacon technology, Augmented Reality and Virtual Reality headsets, wearables such as Glass and Fitbit have also fallen under the mobile category.  It definitely keeps things interesting. I’ve built applications that read temperature and heart rate from wearables, along with applications that put fun filters on images from the camera.  Every application can be SO different! There’s always a new learning curve to explore and new things that other developers haven’t (at least documented) yet.

The salary for mobile developers is generally higher (depending on your location) than other types of development roles. Part of this is because the technology is so new (~20 years) compared to web (~40 years). Mobile developers are hard to find also. The good developers are all gainfully employed and the pipeline is very small. According to PayScale, an entry level mobile developer can make an average of $69,000 dollars per year! That’s already toward the top half of the US middle classes salary range.   If you’re interested in mobile development, I strongly encourage you to check it out! 

Apple has released Swift, a swanky new programming language that has redefined iOS development (for the better!). To get started building for iOS you need a Mac with the latest Xcode installed. Android has incorporated Kotlin into its development practices which offers a cleaner syntax and easier learning curve. To develop for Android, you need a computer capable of running Android Studio (no specific computer required unlike Apple </shade>). PLEASE check it out. Mobile development is HOT right now and for the foreseeable future. Take advantage.
Gradle: How to group Maven Repos in a list
Tags: android, gradle, development
Published: 2018-04-23 22:02:18

---
title: Gradle: How to group Maven Repos in a list
published: true
description: In this post i want to explain how you can group your Maven repository URLs, for a gradle buildscript, inside a list.
tags: Android, Gradle, Development
cover_image: https://thepracticaldev.s3.amazonaws.com/i/j9jj8vgos19hjdl2fjln.png
---

In some of my Gradle based projects, i use libraries which have to be downloaded from many different Maven Repositories. To get a better overview of all used repos i wanted to group them in a list. Unfortunately it was a bit more complicated then i thought it would be. Because i couldn't find other blog posts with my approach, i wanted to share it with you. So here is my solution:

This is how you add **one** repository to your buildscript:
{% gist https://gist.github.com/Foso/c796228dbc80f386c42ccf26684e0205 %}

When you want to add multiple repositories you have add a new **maven{}** block per URL, something like **this** :

{% gist https://gist.github.com/Foso/a1afa8d0b5d098041d22498806c0c599 %}

and **that**:

{% gist https://gist.github.com/Foso/e9be6f895761edbcf39830f47efc7a36 %}
doesn't work.

#The solution

First create a list in a Gradle(Groovy)
{% gist https://gist.github.com/Foso/8298998450deb7d65276e435e10ba302 %}

I created this method, which you have to add in the **buildscript{}** block:
{% gist https://gist.github.com/Foso/f49504c9d49e47fb1d9d9abb2f470548 %}

Now you can use the method **buildMaven()** inside the **repositories{}** block inside a **.each{}** method of your repo list you want to add :
{% gist https://gist.github.com/Foso/b7bfa22d5ceac6296fcaf7ca8ea7389d %}

I hope that this tip was useful for you.
Stack Overflow Isn’t Very Welcoming. It’s Time for That to Change.
Tags: discuss
Published: 2018-04-27 12:46:46

---
title: Stack Overflow Isn’t Very Welcoming. It’s Time for That to Change.
published: true
tags: discuss
---

There was a thread here about some of the perceived hostility or unfriendliness toward new developers on Stack Overflow. [They've identified some improvements they'd like to make.](https://stackoverflow.blog/2018/04/26/stack-overflow-isnt-very-welcoming-its-time-for-that-to-change/)

What do you think?