teleren/devto huggingface dataset:
Scanned Documents Classification using Machine Learning
Tags: machinelearning, ocr, python
Published: 2018-09-19 21:11:15

---
title: Scanned Documents Classification using Machine Learning
published: true
description: Need to classify scanned pdf documents/images of variable quality falling into 29 categories
tags: #machinelearning #ocr #python
---

First off, I am a web developer who has recently started exploring machine learning domain. 

So I am looking for some help/starters/guidelines on how to implement a machine learning based scanned document/image classifier that predicts a document falls into one of 29 categories.

The documents are mostly letters, memos and reports (having tabular data). So far, I have found Tesseract OCR and OpenCV which I think will be the tools needed for this task. I also think I will need to use kind of NLP techniques to extract the meaning and better predict. However, it will be great if someone can dumb it down for me the strategy and route to take for this. What are some of the specific techniques/skills/tools/packages I need to learn? Since the scanned images are of varying quality, what image processing techniques I can employ to get the best results.
Spinning up your knowledge base in minutes
Tags: knowledgebase, raneto, digitalocean
Published: 2018-09-19 20:32:21

---
title: Spinning up your knowledge base in minutes
published: true
description: Spinning up your knowledge base in minutes with Digital Ocean and Raneto
tags: knowledge-base,raneto,digital-ocean
---

To begin with this tutorial, you'll need a Debian/Ubuntu server which you can get from [Digital Ocean](https://m.do.co/c/a03123d75450) using my link for a free $10 credit.

Once the server is created and you've successfully SSH'd install necessary dependencies into the server, then download and unpack Raneto.

```
sudo apt-get install -y nodejs wget
wget https://github.com/gilbitron/Raneto/archive/0.16.0.tar.gz raneto.tar.gz
tar -zxf raneto.tar.gz
cd raneto
npm install
PORT=8080 npm start
```

The knowledge base application should be serving on port 8080. To serve on port 80 you can simply forward the port using `iptables`:

`sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080`

and now your app is also serving on port 80 which is the standard port for HTTP.

You now have a working knowledge base. If you get stuck feel free to comment and I will respond.
Sports draft app: How to consistently broadcast timer to multiple clients?
Tags: discuss, help
Published: 2018-09-19 20:02:27

---
title: "Sports draft app: How to consistently broadcast timer to multiple clients?"
published: true
description: "I'm building a fantasy sports draft app and need help deciding the best way to track time." 
tags: ["discuss","help"]
---


When creating my fantasy sports spinoff, [Fantasy Congress](https://fantasycongress.com), I thought it was important to offer a live draft. I implemented this, but it needs to be improved upon. 

One of the biggest problems I am having is broadcasting a consistent count down timer to all of the clients. Each person has one minute during their turn of the draft to make a pick. All of the connected clients need to know how much time is remaining for each turn. 

The current app uses websockets (via socket.io). Every second an update to the timer is broadcasted to all the connected clients. However, sometimes the timer might pause and then suddenly jump 10 seconds ahead of where it was. My assumption is that this happens when someone has a slow connection. 

I was considering running individual timers in each browser to avoid this jumping around. But turn changes will still have to be communicated somehow. Assuming the best way to do this would still be via websocket, some might receive the turn change before others. This means they might think it's still their turn when it's not, or that it was someone else's turn when in reality it is 5 seconds into their turn. 

How would you tackle something like this?
Why avoid Ruby's for .. in?
Tags: healthydebate, discuss, ruby
Published: 2018-09-19 19:25:31

---
title: Why avoid Ruby's for .. in?
published: true
description: Why should you use iterable.each instead of for .. in?
tags: healthydebate, discuss, ruby
---

So I'm starting to learn Ruby and found a great resource, [Learn Ruby in Y minutes](https://learnxinyminutes.com/docs/ruby/). It's great, very fast paced as I expected, since I'm an experienced JS developer.

But I got to the Loops part and something really caught my attention. It says the following syntax is preferable:

`(1..5).each do |counter|` to this one `for counter in 1..5`. Now, it may be my javascript developer side speaking, but the second form looks better/cleaner to me. Am I insane or is there a reason for the first form to be more common than the second one? Are there any performance differences?

Thank you all.
Developing Modern APIs with Hapi.js, Node.js, and Redis
Tags: hapijs, node, redis, coding
Published: 2018-09-19 16:00:21

---
title: Developing Modern APIs with Hapi.js, Node.js, and Redis
published: true
description: Learn how to develop modern backend APIs with Hapi.js, Node.js, and Redis.
tags: #hapijs #nodejs #redis #coding
canonical_url: https://auth0.com/blog/developing-modern-apis-with-nodejs-hapijs-and-redis/
---

In this article, you are going to learn how to develop modern APIs with Hapi.js and Node.js, while using Redis as the persistence layer. 

[Read on 🤘](https://auth0.com/blog/developing-modern-apis-with-nodejs-hapijs-and-redis/?utm_source=dev&utm_medium=sc&utm_campaign=modern_hapijs_apis)

![Developing Modern APIs with Hapi.js, Node.js, and Redis](https://thepracticaldev.s3.amazonaws.com/i/qhw2xi7lrtf7kjjpzt4s.png)
Diary - 2018.09.19
Tags: productivity, learning, journey, javascript
Published: 2018-09-19 15:43:00

---
title: Diary - 2018.09.19
published: true
tags: productivity, learning, journey, javascript
---

[Don't be a programmer, be a problem solver](https://www.youtube.com/watch?v=EiKK04Ht8QI)
jQuery click event on dynamic elements.
Tags: jquery
Published: 2018-09-19 15:13:47

---
title: jQuery click event on dynamic elements.
published: true
description: jQuery click event on dynamic elements
tags: jquery
---

Hey to all, Today I will discuss, jQuery click event on dynamic elements


     $(document).on("click", ".classname", function(){

     // action

     });


Thank you,
Therichpost.com
Do you manage your own Postgres or use a DBaaS?
Tags: discuss, postgres, hosting, dbaas
Published: 2018-09-19 14:36:41

---
title: Do you manage your own Postgres or use a DBaaS?
published: true
description: What is better, to host your own, or have someone else do it for you?
tags: discuss, postgres, hosting, dbaas
---

I read here and there some people saying how they want to use a hosted DB service for they Postgres database instead of hosting it on their own VPS. 

I did some research and found interesting solutions such as [Heroku Postgres](https://devcenter.heroku.com/categories/heroku-postgres), [Google Cloud SQL](https://cloud.google.com/sql/), [Amazon RDS](https://aws.amazon.com/rds/postgresql/), [ElephantSQL](https://www.elephantsql.com/), [Compose](https://compose.com/), etc.

However, I quickly understood that anything above the free/dev tier could have costs escalate quite quickly. 

So, what to do? is it that hard/problematic to host my own Postgres? 
Do you use DBaaS? If so, what do you recommend?

Thanks!!
Greetings from Berlin!
Suggestions with respect to building a chat system
Tags: chat, backend
Published: 2018-09-19 14:34:08

---
title: Suggestions with respect to building a chat system
published: true
tags: Chat, Back-end
---

<h3>Hello guys,</h3>
<p>I am trying to build a chat system for a website running on a MongoDB back-end. I am kinda lost on what to use and how to build a chat interface that interacts with the back-end to store messages. Am i doing it right? if so what should i use to build a chat interface?</p>
Why Adding a Markdown Sublist Breaks the List on dev.to?
Tags: help, meta, markdown, bug
Published: 2018-09-19 14:31:49

---
title: Why Adding a Markdown Sublist Breaks the List on dev.to?
published: true
description: Why adding a Markdown sublist breaks the list on dev.to?
tags: help, meta, markdown, bug
---

Can someone explain me why when I add a sublist to a Markdown list on dev.to, it breaks my list by adding unexpected CR after each item?

Here's my code:

```markdown
- item 1
  - item 1.1
- item 2
- item 3
```

And the result:

- item 1
  - item 1.1
- item 2
- item 3

Thanks!
発散ブレスト会
Tags: startup, culture, productivity
Published: 2018-09-19 14:28:09

---
title: 発散ブレスト会
published: true
description: 弊社で最近始まった､プロダクトの方向性や技術選択､組織などの開発にかかわるよもやま話をエンジニアほぼ全員と役員たちとダラダラ繰り広げる会について書きました
tags: #startup, #culture, #productivity
---

弊社では最近業務時間中に集まって｢発散ブレスト会｣というのをやってます｡何をやってるかというと､エンジニアやデザイナーが集まって､プロダクトの方向性や技術選択､組織などの開発にかかわるよもやま話をダラダラ繰り広げる会で､そこにはちゃんとCTOを含めた役員も数人参加してます｡

# 実際やってみてどうか

この取組は始まったばかりで､今日が二回目でした｡前回のテーマは｢ウォーターフォール開発とアジャイル開発｣でした｡様々なバックグラウンドのメンバーがいるので､Sier出身の人はSier時代の案件の話や､弊社が成長していく中でウォーターフォールで成功してた時期や､アジャイルで成功していた時期､または逆に失敗だったことなどを話しました｡ともするとスタートアップは目下のビジネス要件をただただ満たす為だけの｢ウォーターフォール型アジャイル開発｣になりがちだよね､という話なんかは結構みんなうなずいてた｡こういった話って､マネージャー層以外のメンバーでは割とマイナスな方向に盛り上がりやすいって思ってるんですが､弊社でのブレスト会では経営層まで含めてビジネスサイドの話と開発サイドの話を同時に出来るのが良いなと思ってます｡

# 今日やったこと

今日は､弊社のサービスを今後伸ばしていくために､ベンチマークとなるような｢イケてるテック企業を定めてみよう｣という会で､私の前職のSansanやNetflix, Amazon, Google, freee, メルカリなんかが上がりました｡共通してる性質として｢データドリブンであること｣､｢ビジネスに技術が直結してること｣などがあがり､結構白熱した意見交換が出来ました｡

# 次回やること

今日の話の中で次回以降のテーマがいくつか出てきたので紹介します｡

* 社員の中でユーザーと見立てた人を一人立てて､その人が画面を操作しながら実際に使ってみてる様子を眺めながらサービスの改善点をみんなで議論する
    * いわゆる｢ユーザーインタビュー｣に近いものを､モブプロ的にやってみようという会
* サービスのデータベースのカラムをざっくりなめてみよう会
    * どんなデータが取れているのか､取れていないのかを把握して､サービスの改善に活かすようなデータベースづくりの足がかりとする


# 後記

実は昔､あらゆることを書く雑多なブログをやっていて､ひどいときは一日に20件ほども更新するような時期が私にはありました｡最近思うところがあって､その頃のように｢クオリティの低さ｣を恐れずにどんどんアウトプットしていこうという気がまたわいてきたので､こういった適当な記事もどんどん書いていきたいと思います｡
Dev.to Interaction Bar
Tags: meta, design, css
Published: 2018-09-19 14:26:41

---
title: Dev.to Interaction Bar
published: true
description: A proposal for customizing dev.to's interaction bar
tags: meta, design, css
---

I'm not a fan of persistent chrome in apps, especially on mobile. I don't like having screen space taken and chrome distracts me from reading the actual content. While I can and do use extensions on desktop to get rid of the bar, Chrome for Android doesn't support extensions so I'm stuck with the bar. 

My proposal is that Dev.to introduce [CSS variables](https://developer.mozilla.org/en-US/docs/Web/CSS/--*) to control the position of the interaction bar. CSS variables, or custom properties, are set in a `::root` rule and always begin with `--`.

```
::root {
    --interaction-bar-position: fixed;
}
```

 Their value can be any valid CSS value. To use the variable, use the `var` function.
```
.container .article-actions {
    position: var(--interaction-bar-position);
}
```

Then override the variable only in specific rules.
```
.container .article-actions.relative {
    --interaction-bar-position: relative;
}
```

And that's it. By default, the interaction bar will be fixed at the bottom. A simple checkbox in settings could control the presence of the `relative` class on the `article-actions` element.

Here's the complete CSS.
```
::root {
    --interaction-bar-position: fixed;
}

.container .article-actions.relative {
    --interaction-bar-position: relative;
}

.container .article-actions {
    position: var(--interaction-bar-position);
}
```
The Ethics of Maintenance Code?
Published: 2018-09-19 20:28:34

---
title: The Ethics of Maintenance Code?
published: true
tags: 
canonical_url: https://jacoby.github.io//ethics/2018/09/19/the-ethics-of-maintenance-code.html
---

![Train_wreck_at_Montparnasse_1895.jpg](https://jacoby.github.io/images/Train_wreck_at_Montparnasse_1895.jpg)

I am still reading and rereading a tweetstorm from [Ed Barnard](https://twitter.com/ewbarnard/), an old-school dev from the days of Cray, about [Corporate Ethics and (real, actual) Trainwrecks](https://threadreaderapp.com/thread/1033897908238737409.html).

> The railroad handbooks are “written in blood.” Every rule exists because someone died.

I have said “Where there’s a sign, there’s a story”, but that _really_ takes it up a notch, doesn’t it?

He proceeds to telling about a maple tree that fell in his yard, across his power line.

> Our tree was not the only one to topple that night. Electricians and other contractors were frightfully busy that holiday.
> Once our turn came, the electrician took a good look at the 40-year-old panel of circuit breakers.
> He explained, **“I can’t touch this unless I first bring it up to code.”**

The whole thing has been pulled to a thread and is really a great read, well worth thinking about.

And I can’t help thinking about that circuit breaker panel.

Due to various sources of attrition, my tech team had dropped from 2.5 FTEs to 1: Me. This means that tasks and whole chunks of the code base that I had left to others have been dropped fully onto my lap.

Much of this code was written in 2002, for a Solaris system, by people who do not remotely think like me, without revision control beyond `program_2004.sh`. (Not meant as a joke, and not far from the truth.)

Certainly there are programs written much more recently, by me, that are closer to what I think of as programming standards. But not entirely. And I hate lots of that.

But for much of that code, I open it up in an editor and think “I can’t touch this unless I bring it up to code”.

But what does that even mean?

Does that mean taming page after page of global variables until you can tell what does what?

Does that mean putting it under version control?

Does that mean porting it from one language to one you are far more familar with, so the meaning is made clearer?

Or does it mean making the smallest change that could possibly work, so that adding the small requested feature does not monopolize a month of developer time?

Right now, because I am a dev team of one, I feel fully empowered to make whatever ethical choice I feel is right, strong in the belief that the team leader will stand behind any decision I make with regard to these issues.

I just need insight as to what that might be.
Using Serial Port Test Software for RS232 Device Activity Analysis
Tags: comport, serialport, rs232, rs485
Published: 2018-09-19 13:46:22

---
title: Using Serial Port Test Software for RS232 Device Activity Analysis
published: true
description: Find out more about using COM Port Test application for serial activity analysis
tags: com port, serial port, rs232, rs485, 
---
![Test and analyze COM port data](http://www.virtual-serial-port.org/imgnew/products/spm/splash/image.png)

You will need to monitor and analyze serial port activity occasionally if you want to work with serial ports. Monitoring the data sent and received by RS232/422/485 ports--especially when one is setting up equipment—is a good way to spot troubles easily should they arise.
 
Currently, there is no serial port testing tool on Windows OS to analyze data sent and received by COM ports. However, you can use a program that will allow you to monitor and analyze COM port activity.
 
There is a less stressful way to track problems that could arise during an application or driver development process (or while you are testing, debugging and optimizing your application). Eltima Software has created [Serial Port Tester](https://www.virtual-serial-port.org/products/serial-port-tester/) that provides a way to analyze, monitor, display and log data produced by RS232/422/485 COM ports.


##The RS232 testing software is a simple serial port testing tool that allows you to:


 -  Instantly connect with and monitor serial ports already being used by an application. Our COM port testing software provides real-time reporting that maximizes all opportunities to troubleshoot any issues that may arise.

 - Simultaneously view data in multiple modes (i.e., table, line, terminal or dump view). Various options are available to display recorded data. For instance, you can select various filters to restrict what data you would like to see.

 - Simultaneously monitor multiple COM ports during the same rs232 tester software analysis. Analyzing data is easier to do this way when using a com port test program because the data compiled from simultaneous COM port monitoring is displayed in one log (first-in, first-out approach).

 - Emulate the transference of serial port data to a serial device when viewing data in terminal mode. Data is sent on behalf of a monitored application via decimal, binary, hexadecimal, string or mixed format to allow you to monitor the activity of a serial device when certain commands are used.

![RS232 Tester](https://www.eltima.com/imgnew/products/spm/splash/screen.png)

Find out more about [RS485 protocol Analyzer](https://www.eltima.com/rs485-analyzer.html) (for programming and debugging of RS485 port communication).

See additional information on [how to read serial port data](https://www.virtual-serial-port.org/articles/how-to-read-serial-data/).
Enter the Zone
Tags: help, advice
Published: 2018-09-19 12:34:49

---
title: Enter the Zone
published: true
description: 
tags: #help, @advice
---
Hi there! I have been having some very stressful days lately, loaded with a lot of personal issues. I have been having troubles developing, getting into the "zone". When you are off the edge, what do you do to get back into work? Do you listen to certain music, go for a walk, talk with a fellow Dev?
Most Popular Development Posts Of The Week (19 September 2018)
Tags: serverless, webdev, oop, javascript
Published: 2018-09-20 14:38:19

---
title: Most Popular Development Posts Of The Week (19 September 2018)
published: true
tags: serverless,webdev,oop,javascript
canonical_url: https://medium.com/daily-now/most-popular-development-posts-of-the-week-19-september-2018-49e93b92c467
cover_image: https://cdn-images-1.medium.com/max/1024/1*LpjuxbM4T_RzJ7O5p7fP1Q.jpeg
---

<figcaption>The best startups generally come from somebody needing to scratch an itch</figcaption>

This week was one hell of a ride, we migrated our infrastructure to Kubernetes from Google App Engine and started using Cloudinary for Daily’s media delivery. We hope you will feel the difference and enjoy the performance boost.

- [Cool things javascript can do](https://app.dailynow.co/r/a11916e4b6ba43f4aafbdd52f7038745) by [Mohamed Aladdin](https://medium.com/u/b98e4641f0c8)
- [How to transition from Junior to Senior Developer?](https://app.dailynow.co/r/0a437663b244770abc32ac31d1deb0c4)
- [Yes, I created an e-commerce shop with no backend (serverless, HTML, CSS & JS only)](https://app.dailynow.co/r/60b8e7d17c24f43f9825ff1d4fa67bf6) by [darkylmnx](https://medium.com/u/3cb21c06e2fa)
- [Goodbye, Object Oriented Programming](https://app.dailynow.co/r/39741b3ef04c350bbaee4105d46388c0) by [Charles Scalfani](https://medium.com/u/85310ec460ee)
- [What’s New in JavaScript Frameworks](https://app.dailynow.co/r/440601ccaf6ba83b8a7c66c3e907dd97) by [Hackr.io](https://medium.com/u/9e5c3799d603)
- [Vue.js — There and Back Again in 1.5 years](https://app.dailynow.co/r/3b4575721045532dfbf4794fae225b05) by [Coreus](https://medium.com/u/a0b7a956a777)
- [11 Javascript Data Visualization Libraries for 2018](https://app.dailynow.co/r/7ea02a325a6b435d255237cbc8d3ab49) by [Jonathan Saring](https://medium.com/u/c9a6ef212193)
- [Introducing Trashy.css](https://app.dailynow.co/r/10c974900115fa1262416d7d21ade0f6)
- [Cleaning our Macbook](https://app.dailynow.co/r/239464ed892c2bfb386b56b9be9dd587)
- [World of Warcraft — Programmer’s Edition](https://app.dailynow.co/r/4950e9cce3d9f9d8b0633924e6de7120)

[_Thanks to Daily_](https://www.dailynow.co/) _developers can focus on code instead of searching for news. Get immediate access to all these posts and much more just by opening a new tab._

[![](https://cdn-images-1.medium.com/max/640/1*jKbLhJsX7eMpNgqrVdWfuw.jpeg)](https://app.dailynow.co/download)

* * *
Kotlin Exception handling
Tags: kotlin, beginners
Published: 2018-09-28 11:31:55

---
title: Kotlin Exception handling
published: true
description: Like Java, Kotlin uses the same try-catch construct. But unlike Java, Kotlin treat all exceptions as unchecked. Hence, try-catch is optional
tags: kotlin, beginner
canonical_url: https://www.workingdev.net/2018/09/kotlin-exception-handling.html
---

Kotlin's approach to exception is similar to Java. Somewhat. It uses the _try-catch-finally_, just like in Java. So, your knowledge about how _try-catch_ works commutes nicely to Kotlin. The code below should be very familiar. It shows a typical code on how to open a file

```kotlin
import java.io.FileNotFoundException
import java.io.FileReader
import java.io.IOException

fun main(args: Array<String>) {
  var fileReader: FileReader
    try {
    fileReader = FileReader("README.txt")
    var content = fileReader.read()
    println(content)
 }
  catch (ffe: FileNotFoundException) {
    println(ffe.message)
  }
  catch(ioe: IOException) {
    println(ioe.message)
 }
}
```

So, what's different? Well, in Kotlin, everything is an _unchecked exception_. Which means, the try-catch block is optional. It's up to the programmer if you want to use it. So, the code above, can be written like this (in Kotlin).

```kotlin
import java.io.FileReader  

fun main(args: Array<String>) {
  var fileReader = FileReader("README.txt")  
  var content = fileReader.read()  
  println(content)
}
```

So how do you know if you need to use try-catch. You might not like the answers now, but in the long run, these are good advice to follow ;

1. You have to know the API's you're using. I know that this is not great news for beginners, but look at it this way, you won't be a beginner for long. And you really should know the API's you're using. TL;DR won't serve you well in this area
2. You have to get into the habit of unit-testing your code. This is a good habit to develop anyway
 ![](http://feeds.feedburner.com/~r/WorkingDev/~4/sVetCcpPHN4)