teleren/devto huggingface dataset:
People I Know - My little PRM
Tags: showdev, dotnet, csharp, webdev
Published: 2019-07-11 06:41:07

---
title: People I Know - My little PRM
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ep5xq5jjp7wy2zyuibu.png
published: true
description: I'm really bad at remembering names. That's why I built a PRM.
tags: showdev, dotnet, csharp, webdev
---


> What's the name of Jane's daughter again?

or

> I remember, that Michael quit his job. But where did he apply for a new job? I'm sure he told me...

Does this kind of question sound familiar to you? Welcome to my life. :-)

My memory is not the best. Especially, when it comes to names and stuff. That's why I started using my Google Contacts pretty extensively.
Did you know, that you can store "relationships" in your Google contacts? That's pretty useful.
So on John's contact, I stored a couple of relationships like:
"Wife": "Jane"
"Son": "Michael"
"Daughter": "Rachel"

That helped me a lot already. If I knew I was going to meet John today, I just checked his contact to remember the names of his kids.
But last time we met, he told me something interesting about his son? What was it again? He broke his arm or something like that.
For this stuff, I used the "Notes" field on the contacts. It's just a free-text field to hold any information like "His son Michael broke a leg".
So if I check his contact (and the "Notes" field) before we meet, my first question could be "Hi John. How is Michael? Is his leg ok again?".

All that is pretty useful. But I was still missing some features. Because the "Notes" field can grow pretty quickly. And such a big chunk of free text can get confusing.
Wouldn't it be nice, if you could store a list of, let's call it "status updates"? Just a text and a date. These status updates (or "timeline") could be ordered by date.
That's much clearer.

I thought about using a simple CRM (Customer Relationship Management), but none of them really fit my needs or could easily be hosted on my server. While searching for
a simple CRM, I learned that PRMs are a thing. A PRM is like a CRM, but for personal use (instead of professional/commercial). It's a "Personal Relationship Management".
But I had similar problems with the already existing PRMs. For some of them, it was the price, for others the hosting, etc.

## I'm a developer. So I built my own PRM.

It is called "People I Know" and you can find the source code on [GitHub](https://github.com/n-develop/peopleiknow/).

{% github n-develop/peopleiknow %}

Feedback is very welcome. Please let me know what you think. If you see major issues, feel free to contact me or (even better) create an issue on GitHub. 
Here are some TODOs that are still on my list:
* Photo upload is still missing
* Clean up the JavaScript. Right now it's just one "big" file.
* Improve the mobile user experience

As you can see from the TODOs, my frontend skills are... let's call it "limited". ;-) I use [Bulma](http://bulma.io/) for the styling and pure JavaScript (no framework, no jQuery) for the scripting. The backend is done in ASP.NET Core.

Again, feedback is very welcome. It's the first "toy project" that I share publicly.
Learn 5 OOP Concepts in Java [With Code Examples]
Tags: java
Published: 2019-07-11 05:30:40

OOP Concepts has become an important part of software development. Writing Programs using Top down approach of traditional structured programming or Functional Programming method becomes difficult as the complexity of the program increases. This is where Object-oriented programming has its upper hand.

OOP Concepts allow you to break these complex programs into small bites, which you can solve one by one. OOP is an effective model that allows your program to grow without becoming impossible to maintain. Add to it ubiquity of languages like Java and OOP Principles become need of the hour.

OOP is a whole new way to address problems. Here you create a class, instead of writing a program, which has variables and functions.

Objects are self-contained examples of that class and you have a control where you can make them interact with each other in many ways. This kind of encapsulation makes knowledge of Object-oriented Programming and its main Principles a must if you are serious about working on big projects and developing software for mobiles.

There are many important features of Object-Oriented programming, however, before proceeding further we suggest you read Learn 7 Basics of Java Programming to Start Coding Today which helps you to know all the basic concepts of Java.

Discussion in this blog is divided into following structure:

    Object Oriented programming Concepts in Java.
    OOP Best practices.
    Advantages of Java OOP concepts.
    Differences between object oriented and object-based program.

Let us dive right into main Principles of object-oriented programming and discuss them with relevant examples.

What are OOP concepts?

Object oriented programming is a method based on the concepts of “objects” which contains data and methods. Its main objective is to bring flexibility in programming while building small and large software applications. Most of the programming language like Java, C++, Python, C#, etc. follow OOP concepts.

What are OOP concepts.png

We will address following OOP Concepts In Java:

    Object
    Class
    What are all the difference between Object and Class?
    Inheritance
    Polymorphism
    Encapsulation
    Abstraction
Click here to continue reading: https://blog.simpliv.com/blog-object-oriented-programming-concepts/
Create a bootable Pen Drive in Ubuntu
Tags: ubuntu
Published: 2019-07-11 04:15:09

Ubuntu has a default program to create a bootable pen drive.
Follow these steps to create the same.

1. Download the iso image file of the latest Ubuntu from their official site.
2. Now attach an empty USB drive to the system.
3. Start the 'startup disk creator' program.

![](https://thepracticaldev.s3.amazonaws.com/i/3iszecgakv594dvxlrjr.png)

4. Select the downloaded iso image file as the source file.

![](https://thepracticaldev.s3.amazonaws.com/i/twu9yykm6nxfty5ov4p8.png)

5. Select the USB device as the 'disk to use'.
6. Select less than 1 GB Reserved disk space. Click 'Make Startup Disk'.

![](https://thepracticaldev.s3.amazonaws.com/i/40k11rsydekeqvu0x47o.png)

7. Files will be copied to disk. After some time when OS installation on the disk is complete click the 'quit' button.

![](https://thepracticaldev.s3.amazonaws.com/i/ro3ayombufczevsyr85a.png)

![](https://thepracticaldev.s3.amazonaws.com/i/blcwzu84btix2acioc2l.png)

8. Detach the USB disk and install the Ubuntu on any system. 





[How to start with Python Programming - A beginner's guide](https://www.pythoncircle.com/post/671/how-to-start-with-python-programming-a-beginners-guide/)

[How to host Django app on Pythonanywhere for free](https://www.pythoncircle.com/post/18/how-to-host-django-app-on-pythonanywhere-for-free/)
Pretty print JSON using the command line tools
Tags: ubuntu, python
Published: 2019-07-11 04:07:48

Option 1. Using python
`cat FileName.json | python -m json.tool`


Option 2. Colors and multiple options.
`cat FileName.json~ | jq ''`


Option 3. Pretty print with syntax highlighting.
`echo '{"foo": "bar"}' | python -m json.tool | pygmentize -g`
This is me, yes I'm a DEV, yes I'm Mexican.
Tags: mentalhealth
Published: 2019-07-11 04:03:18

I’ve been a web developer for over 10 years, and I’ve been trying to stay focused on my skills and on what businesses demand in terms of functionalities, but have stayed away from some trends, in these years I’ve learned that a lot of the trends they just don’t stick and is a bit better to jump late on them, once there are business cases for them.

I also think, I’m constrained by many things like:
	• Work tools provided
		○ Opereting system
		○ Programming Language 
		○ Frameworks
	• Project specifics
		○ New features 
		○ Maintenance 
		○ Migration
		○ Integration
	• Conferences
	• Books
	• Etc

All these things have helped me to be a generalist and not really and specialist, which is a good or bad thing, but it is what it is.

I’m mexican by the way, living in Mexico, that’s another skill or constraint.

I love to listen and read about tech in general, I’ve been listening podcast since I had an iPod nano, I’ll talk about my podcasts in another ocassion.

What I want to achieve is become a mentor, speaker or writer. I just feel like now I’m 34 and I need to help others with what I know, and this writings are on that direction.

So, I'll focus my posts about: life, php, startup, mexico and parenting. Like if you like anything of any of those.
Database management and use among multiple developers?
Tags: sql
Published: 2019-07-11 02:43:26

A couple of friends and I started developing an application and we are currently using a MySQL database. It's really just for practice, but we were wondering how would you go about creating a database and sharing the database with my other teammates so we can all use the same dummy data to test and develop with.

Should I execute mysqldump command and source the generated sql script? With that, how would I manage credentials?

Or should I just create a low-cost development database on some cloud platform to remove the dependency all together?
Is the web browser optimal for enterprise ?
Tags: java, javafx, lowcode, discuss
Published: 2019-07-11 02:43:17

Over 20 years building, maintaining and managing enterprise applications, I came to have strong opinions on many topics. To take one, I definitely favor strongly-typed languages, as they will ease maintenance, and allow typial developers to ramp-up faster. Using standard technology with an open-source solutions is also a no-brainer for the enterprise context. You want the application to still run in 10 years, when the current fad will be over, and not pay forever licenses. 

So when I started to build [Open Lowcode](https://openlowcode.com), an open-source low-code platform, many choices were obvious. The application would be written in java, and use SQL for persistence. It would use parsimoniously open-source libraries, most of them from Apache. You may find those choices bland, but bland is exactly what is needed here for the rough life of enterprise applications.

Now, I had to make a decision on the client to use, and this one was the most difficult to take. To be sure, I wanted a thin client: enterprise applications are maintained very frequently, let's say a patch 2 times a month. I do not want to reinstall the client every time. The question was then: should I use the web client, or develop an alternative thin client ?

Web client seems an obvious choice at first, huge amounts have been invested by internet giants on various frameworks and technologies. Nonetheless, I ended up taking a different route for a variety of reasons.

I chose to develop a specific thin client (enterprise app) using [javafx](https://openjfx.io/). The client displays pages that are made of high-level primitives exactly suited for enterprise purpose. This includes the famous spreadsheet-like interface to manipulate data in table, which is the 'killer widget' of enterprise software. As far as I know, and my research may be incomplete, such widgets are not really available, or very costly to make with web technologies. 

Other benefits include possibility to limit data sent between client and server to a minimum, or to implement ad-hoc security tools when working in a military context. And I expect javafx to be stable in the next decades. One potential drawback is the installation of the software on the client computer, but this is adressed by making the client simple to install, and having an automatic updater.

Still, this choice is the one I am still hesitating the most about, and I would like to hear your opinion.
Juliana Dias is creating Open Source Software with social impact
Published: 2019-07-11 01:56:43

---
title: Juliana Dias is creating Open Source Software with social impact
published: true
description: 
tags:
cover_image: https://thepracticaldev.s3.amazonaws.com/i/0akftlxztuvk1iij53tx.jpg
--- 

Folks, I've started dedicating my Sundays especially to coding on open source projects with social impact. If you want to support me by paying for a mug of coffee or two, you can do so on Patreon: ![https://www.patreon.com/juuh42dias](patreon.com/juuh42dias)

I'll be very grateful for your support <3
Thanks!

![juliana.dev]()
How to create your own custom URL shortener in 10 minutes for free & deploy to GitHub 🚀
Tags: showdev, javascript, webdev, tutorial
Published: 2019-07-11 01:40:59

`sorry for the long post title - that's tldr;`

## **🔗 mnml URL** - Modern URL shortener with support for custom alias

_(short form for minimal URL 🤦‍♂️)_

### Feel free to contribute on **[GitHub](https://github.com/liyasthomas/mnmlurl)**

While the rest of us were copy-and-pasting mumbo-jumbo from URL shorteners into our Twitter accounts, sites like The New York Times were smugly tweeting their links using shortened URLs like "nyti.ms." Frankly, this made me a little jealous 💁‍♂️

**That's why I created my own freaking url shortener** with pure JavaScript + HTML + CSS ❤

Did I mention this is all free of charge and 100% open source? Yes.

mnml URL makes it easy for the average Joe developer to create a custom URL shortener for free and deploy it to GitHub 🚀 You don't even need to own a site that gets about 17 million unique visitors per month 😏

Let's get started.

step 0: Goto [jsonstore.io](https://www.jsonstore.io) Click the **purple COPY button** to copy your endpoint.

step 1: Fork/clone [mnml url repo](https://github.com/liyasthomas/mnmlurl) on GitHub and optionally [⭐ star the project](https://github.com/liyasthomas/mnmlurl) - show some ❤ love!

{% github liyasthomas/mnmlurl %}

step 2: **IMPORTANT:** Find `var endpoint` on `src/head.js` file and replace it with your own endpoint which you copied from `step 0`.

```
var endpoint = "https://www.jsonstore.io/6b6xxxxxxxxxxxxxxxxxxxxxxxa98";
replace it with your endpoint 👆
```

step 3: Goto your repo settings > GitHub pages. Select `master branch` as source for deployment.

That's it! Site will be hosted on `your_github_username.github.io/mnmlurl/src`

**EDIT 0: Minimal URL can be hosted on any website hosting services like GitHub/GitLab pages, Firebase/Heroku hosting, yoursite.com, etc. For hosting in such custom domains, Its advised to `npm build` and upload `output` folder. _Hosting on GitHub pages was just for proof of concept._**

EDIT 1: If you want to take development further, consider contributing on **[GitHub](https://github.com/liyasthomas/mnmlurl)**.

**EDIT 2: IMPORTANT: Minimal URL is an experimental project. Don't shorten sensitive contents/URLs with it. jsonstore.io endpoints are always public making shortened URLs visible for everyone.**

Here's some screenshots of mnmlurl
![UI](https://raw.githubusercontent.com/liyasthomas/mnmlurl/master/src/icons/screely.png)

![UI](https://raw.githubusercontent.com/liyasthomas/mnmlurl/master/src/icons/screely2.png)


Bonus: I also created a [Cross browser extension ✨](https://github.com/liyasthomas/mnmlurl-extension) for mnmlurl.

### Feel free to contribute on **[GitHub](https://github.com/liyasthomas/mnmlurl)**

---

If you want a heads up on my next projects, or just want to chat about the web, life and happiness make sure to follow me [@liyasthomas](https://twitter.com/liyasthomas) on Twitter 💙. If any of my projects helped you please consider [making a donation](https://paypal.me/liyascthomas).

![yep](https://media.giphy.com/media/XbxZ41fWLeRECPsGIJ/giphy.gif)
Hi!
Tags: python
Published: 2019-07-11 01:07:04

Hello, world!  

My name is Daniel Jaouen and I am a student in Lambda School's part time Data Science program.  I am excited to have this opportunity to learn Data Science and I look forward to updating all of you on my progress as I progress through the course.

Our first assignment was to help get us a broad overview of the associated libraries (i.e., pandas, numpy, and matplotlib).  For this assignment, I chose the following data set: https://www.kaggle.com/rush4ratio/video-game-sales-with-ratings  As a long-time gamer, this data set piqued my interest.  In particular, I would like to (down the road) predict a game's global sales based on user and critic ratings.  

However, for now, I just cleaned up the user rating feature (by removing 'NA' and 'tbd' values from the data frame), converted the column to numeric by using pandas' `to_numeric` function, and then classified the data into "high", "medium", and "low" score rankings.  See the image below.

![classification](https://dcj24-storage.s3.amazonaws.com/lambda/images/download.png "Classifying Video Games Based on Ratings")

Even though it's still early in the course, I've already learned a lot through the first lecture as well as the precourse work.  Anyway, I hope you enjoyed this post and I will see you next time!
Why software engineering?
Tags: codenewbie, discuss
Published: 2019-07-11 00:39:18


I've read a lot of pros and cons to being a software engineer. The good things being:
 
1. They make good money  
2. Some have the option of working remotely 
3. There's a high demand for software engineers

So, of course, I did my research and found ways to start my journey there. I felt and still feel that this is a journey I and anyone can embark. As long as patience, persistence and the drive to put in the work is there, I should be at a good start.

I went straight into learning some of the basics of HTML, CSS, and JavaScript via free online courses. Not too long after, I figured why not apply to a couple of coding bootcamps where I can find some sort of structure with my learning, which I felt I needed. I've been hungry for a change in my focus of learning and software engineering snatched my attention immediately. From then on, I knew it had to be my next move.


**My question for any developers out there reading this is, what made *you* want to become what you are today? How did you prepare for your journey?** 

[ If possible, can anyone provide tips for learning how to use GitHub? I feel very weird and out of place having my work pushed there and not knowing exactly how to make use of it! ]
NLP, Visual Recognition and Serverless example — a chatbot moderator
Tags: visualrecognition, ibm, ibmwatson, ai
Published: 2019-07-11 00:44:10

---
title: NLP, Visual Recognition and Serverless example — a chatbot moderator
published: true
tags: visual-recognition,ibm,watson,artificial-intellige
canonical_url: 
---

### NLP, Visual Recognition and Serverless example — a chatbot moderator

![](https://cdn-images-1.medium.com/max/822/1*Nuawfho5sJsKpxiCoDuoKg.png)<figcaption>IBM team presenting a webinar</figcaption>

Lisa Jung and I presented a webinar on creating a chatbot moderator that tells people to be polite when they say something rude on Slack or post an appropriate picture. For the image bit, we changed the code to treat any dog pictures as rude pictures instead of looking for explicit pictures.

We used a couple of different IBM Services in this demo.

1. We used [**IBM Natural Language Understanding**](https://ibm.biz/BdzmSV) to analyze text for **rudeness**. You can find more information [here](https://ibm.biz/BdzmSV).

![](https://cdn-images-1.medium.com/max/1024/1*5imqEiN5v4MgNGcBh4xqyg.png)<figcaption>Analyzing a speech at the Federal Reserve Bank using IBM Natural Language Understanding service</figcaption>

2. We used [**IBM Visual Recognition service**](https://ibm.biz/BdzmSJ) to detect explicit pictures (pictures of a dog in this case). Read more [here](https://ibm.biz/BdzmSJ).

![](https://cdn-images-1.medium.com/max/1024/1*mvjfD-qKuFOMak_Vu4Hy9w.png)<figcaption>Analyzing an image with IBM Watson Visual Recognition Service</figcaption>

3. Finally, we used [**IBM Cloud Functions**](https://ibm.biz/BdzmSA) as the serverless platform to glue everything together. Learn more [here](https://ibm.biz/BdzmSA).

![](https://cdn-images-1.medium.com/max/1024/1*t1yS6L1qO-R836jW2DnWIw.png)

This is the flow of the use case:

1. The user enters text or an image in a Slack channel.
2. Slack pushes this content to the IBM Cloud Function action.
3. If the input was text, the action invokes Watson Natural Language Understanding service to determine the rudeness.
4. If the input was an image, the action invokes Watson Visual Recognition service to determine if it is not safe for the channel.
5. If the input was “bad”, the action removed the image and tells the user to be more polite. It does so by posting directly in the Slack channel.

![](https://cdn-images-1.medium.com/max/1024/1*15O6_eBtdHoxyhq81UGq8A.png)<figcaption>a chatbot moderator</figcaption>

You can view the [full recording on crowdcast.io](https://www.crowdcast.io/e/a-moderator-using-nlp-vr) [[https://www.crowdcast.io/e/a-moderator-using-nlp-vr](https://www.crowdcast.io/e/a-moderator-using-nlp-vr)]. You can get the complete code and try it out for yourself in [**this github repository**](https://ibm.biz/BdzmSu). Hope that was fun! Join us for future webinars, in person meetings and workshops!

Thanks [Max Katz](https://medium.com/u/bf01a11701fe) and [IBM Developer](https://medium.com/u/262975298e3a) for hosting!
Squid Proxy and SSL Bump, Summary
Tags: squid, proxy, server, ssl
Published: 2019-07-10 23:45:09

---
title: Squid Proxy and SSL Bump, Summary
series: squid-cache
published: true
description: Squid Proxy and SSL Bump Summary
cover_image: https://thepracticaldev.s3.amazonaws.com/i/gb0c98rrinzghg13f39f.png
tags: squid,proxy,server,ssl
---

This concludes my _first part_ of fact-collecting blogs of the [squid caching server](http://www.squid-cache.org/) series. Again, most of them are collected from the web and reposted here, and credited back to the original url/author. 

The purpose of this series is to gather all valuable articles from _every corner_ of the earth so that we can have a _one-stop location_ to read them all, and most importantly, in a logical order that is more suitable for someone who have no prior knowledge on the subject, for them easily to get into the details. So here is a summary of SSL enabled Squid Proxy, taken from [alpinelinux wiki](https://wiki.alpinelinux.org/wiki/Setting_up_Explicit_Squid_Proxy#SSL_interception_or_SSL_bumping):

> The offical squid documentation appears to prefer the term _SSL interception_ for transparent squid deployments and _SSL bumping_ for explicit proxy deployments. Nonetheless, both environments use the [ssl_bump configuration directive](http://www.squid-cache.org/Doc/config/ssl_bump/) (and some others) in `/etc/squid/squid.conf` for their configuration. In general terminology, _SSL interception_ is generally used to describe both deployments and that will be the term used here. We are, of course, dealing with an _explicit forward proxy configuration_ here (in that wiki article).

OK, all the reposts so far are about `squid` under normal #linux #server. I've also found articles on/for other platform, and am only going to include them in this summary, instead of reposting again:

- [Setting up Squid Proxy](https://wiki.alpinelinux.org/wiki/Setting_up_Explicit_Squid_Proxy) for **AlpineLinux**, which has its entirely own & different packaging system than `deb` and `rpm`. 
- [Setting up HTTPS inspection with Windows Squid](https://cloudbuilder.io/documentation/Windows-SQUID-SSLBUMP/). Of course, even **Windows** can enjoy the benefit of Squid Proxy and SSL Bumping. 


Moreover, one common theme of all the reposts, if you have followed thus far, and have noticed, is that of all of them, when talking about the [installation and configuration](https://comtechies.com/free-proxy-server-setup-squid-proxy.html), the details are omitted. And, there is a good reason for that. 

Starting from next post, we'll embark a different journey on Squid Proxy -- the _second part_ of fact-collecting blogs of the [squid caching server](http://www.squid-cache.org/) series. Stay tuned...