teleren/devto huggingface dataset:
Is it SOA or the New Spaghetti World?
Tags: soa, microservices, discipline, discuss
Published: 2019-11-11 20:17:35

---
title: Is it SOA or the New Spaghetti World?
published: true
description: SOA implementation
tags: #SOA #Microservices #discipline #discuss
---

As developers, we love to twist and turn the greatest concepts to ever surface our world. For certain, there is nothing wrong with that and it is how you learn and grow. Take *Service Oriented Architecture*, for instance, a great idea, right? Yes of course. Until you see it implemented. How about Object-Oriented? Great concept, right? I guess you know where I’m going with this. Most recently I’ve been contemplating SOA in its various implementations – more specifically through Microservices. Who doesn’t love Microservices? *Like most great ideas, if not well understood and thought out properly, the result is often worse than anticipated*. In this short article, we will look at the spaghetti code done in the name of SOA.

The most lacking tool in most software development teams out there is not the right technology. Most technology stacks in use today will sufficiently get the job well done. It’s mostly a matter of taste and other factors but rarely the ability to get the job done. *Discipline, however, that we don’t have much of*. Often, new concepts are not all that new after all. Why did we go from Services to Micro-services? Well, "Microservices* are services done well. Better yet, why services to begin with? Loose coupling? Easy to deploy and test? Maintenance? Nothing new here. Discipline is more important than whatever architectural style your team implements. No language or style will prevent you from writing shitty code. I guess we can say that architecture is more about people than technology.

Is your SOA implementation more like our good old spaghetti friend? There is a thin line between, and this is centered around the concept of the *“service consumer”* and *“service provider”*. Typically, to help SOA systems achieve loose coupling, the service consumer does not ask for a specific service from the service provider. The bus and repository building blocks are responsible for communication performance when the service is called. A simplified model can, of course, be realized by bypassing this communication block and soon or later you will find your organization in a spider web of services – time to welcome back our spaghetti friend. A bunch of services all calling left and right to accomplish a simple task. *Dependencies that only get worse as your application grows*. Not only is this such a bad dependency problem to have, but it also impedes productivity as your team grows and more services go up. One must become intimately familiar with a huge landscape of services to get up and running. SOA is complex to achieve for most organizations despite what most architects would confess to. Half-baked implementations are even worse, but is Monolithic the only alternative? One would hope not but whatever the answer to this is for your organization, **discipline is the most important ingredient – the basis of any successful architectural style** within your organization.
Runs Test for Randomness Testing in Python
Tags: machinelearning, python
Published: 2019-11-11 20:13:04

Hello there,

This is my first post on this site. I've been running a Turkish/English blog on Medium platform for 28 months now and have just discovered this site. I absolutely fell in love with its retroesque design, so here we are. As you can see, I am looking forward for job opportunities abroad. Feel free to contact me for any vacancies.

{% medium https://medium.com/@sddkal/runs-test-implementation-in-python-6236b0a2b433 %}

#Methodology

Runs test is a hypothesis testing based methodology that is widely used in statistical analysis to test if a set of values are generated randomly or not. It is a hypothesis test so we have a pair of a null hypothesis and an alternative one.

**Null hypothesis:** The values are randomly generated.

**Alternative hypothesis:** The values are **NOT** randomly generated.

A Z score for hypothesis can be acquired by simply following the general formula:

```
(Observed-Excepted) / Standard Deviation
```

The score is then tested against the confidence interval(two-tailed) we specify. If the value is higher, we conclude that our alternative hypothesis holds. Otherwise, if the value is lower, we cannot say anything about the randomness of data at this significance level. We will be using %95 confidence interval(alpha = 0.05) through the rest of this article.

#Definitions and Formulas

* A run: A series of positive or negative values:

```
Data: [1, -2, -3, 4, 5, 6, –7]

Runs: [[1], [-2, -3], [4, 5, 6], [-7]]
```

* Score Formula

 ```
(Number of runs - Excepted Value for Number of Runs) / Standard Deviation
```

* Expected Value Formula for Runs Test

``` 
n_p = Number of positive values
n_n = Number of negative values
Excepted value of runs = (2 * n_p * n_n) / (n_p + n_n) + 1
```

* Standard Deviation Formula for Runs Test

```
n_p = Number of positive values
n_n = Number of negative values
Excepted value of runs = (2 * n_p * n_n) / (n_p + n_n) + 1
```

#Test Data

I will using the data provided by [NIST](https://www.itl.nist.gov/div898/handbook/eda/section4/eda4251.htm?source=post_page-----6236b0a2b433----------------------).

#Octave/Matlab Implementation and Results
Using online Octave:
1. Upload text file
2. Load ‘statistics’ package

    ```pkg load statistics```
3. Import data to array

    ```x = importdata("test.txt")```
4. Run runstest

    ```[h, v, stats] = runstest(x, median(x))```

![Octave Online Result](https://thepracticaldev.s3.amazonaws.com/i/dh7ts28ob52i6qdy4sfi.png)

#Python Implementation
Implement the test using Python.

{% gist https://gist.github.com/Akaame/16e413c01f787ad85b3b7d0c91fe895d %}

Running the code produces the results below (Calculated Z Score, Z Score at %95 confidence):

```
(2.8355606218883844, 1.6448536269514722)
```

Since our test score is higher, alternative hypothesis holds. This means that our values are genuinely random. 

Thanks for reading. Any corrections are welcome.
About Harbortouch
Published: 2019-11-11 20:05:57

Harbortouch is a leading national supplier of Point of Sale (POS) systems and payment processing services. In over 20 years of business, we’ve served more than 300,000 small to mid-size businesses by providing them with best-in-class POS software and state-of-the-art POS hardware. From secure payment processing to cloud-based reporting and business management tools, Harbortouch’s innovative POS-as-a-service business model makes their point of sale systems affordable for any budget-conscious small business owner. 

As seen on the hit TV show, Bar Rescue, Harbortouch’s ground-breaking free equipment program offers merchants custom programming, five-star installation, and top-notch customer support
Chrome Plugin: StreetEasy Plus
Tags: realestate, chrome, plugin, browser
Published: 2020-09-17 12:00:40

---
title: Chrome Plugin: StreetEasy Plus
published: true
date: 2019-11-11 19:51:29 UTC
tags: realestate, chrome, plugin, browser
---

 **_For the unfamiliar_:** StreetEasy.com is a popular website for apartment hunting in New York City owned by Zillow.

![](https://cdn-images-1.medium.com/max/1024/1*T7IRpB4-eJs4dU4GT66dpQ.jpeg)

**StreetEasy Plus** is a plugin for Chrome that adds additional functionality to StreetEasy.com. [Click here to install the plugin.](https://chrome.google.com/webstore/detail/streeteasy-plus/blabgegddnndfabfkcgibjomjliibapn)

I’ve been apartment hunting recently and found myself spending a significant amount of time on StreetEasy. It has become a bit of an addiction to be honest. Every day, I’d check through “Newest” and “Recently Updated” to see what’s fresh on the market.

After a while, it became frustrating to regularly see listings you’ve already seen and disliked, or forgot about, or weren’t sure about. It was also frustrating to see a new building come on the market and see 10+ listings for 123 Example St when you’ve already decided against the building.

Some features include:

- Flagging listings that have already been viewed
- Ability to hide listings you have disliked
- Ability to hide buildings you have disliked
- Map of nearby subway entrances
- Map of nearby housing projects
- Opening floor plans by default
- Hiding featured listings and banners

_The plugin was built for personal use with no intention to distribute and has no affiliation with StreetEasy, Zillow, or similar parties. This plugin does not collect any personal data or track your internet usage. In order to function correctly, it stores data locally about listings you’ve seen and/or flagged._

Hopefully it helps in your next apartment hunt.

![](https://cdn-images-1.medium.com/max/1024/1*T7IRpB4-eJs4dU4GT66dpQ.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*MKKP4RMxgqagIGyW-WIB1w.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*sAe8U3Iw0GZTNjrqhnBgIg.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*yCGAtqDYGY5AwNvXX-MNww.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*wfdSWJfjUlWU295myAt7kw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*fYAaBN6NlEyOgJ4jL_LE8A.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*bPbpyM8vWVs9n8n2GqONOA.jpeg)
The 30 logos I did for Hacktoberfest
Tags: opensource, hacktoberfest, design
Published: 2019-11-11 19:47:56

Got to admit, I never did complete any [**Hacktoberfest**](https://hacktoberfest.digitalocean.com) before, I did tried many times, but contributing to the Open Source it was something only possible with Google Maps directions.

And despite many of my friends easily finished the challenge last year Iv’e decided just to hit the snooze button, and said to myself: ***“Oh well… NEXT YEAR!!”***

---

Fast-forward to 2019 to this year’s month-long celebration…

Everyone is feeling pumped, the t-shirt looks dope, and I finally I wasn’t that scared of the “rituals of the Open Source”.

### **But still, where do I start?**

OK, Many pages could help me find the issues tagged with [#hacktoberfest](https://twitter.com/search?q=hacktoberfest). But I wanted to make something different than correcting typos or update documentation. **So, why not logos?**

At that point I already designed a bunch of the logos of some of [Nuno Maduro](http://twitter.com/enunomaduro)’s projects, and I can’t say that it’s something that I **didn't** enjoy.

> So I’ve decided to tweet this…

[![https://twitter.com/Caneco/status/1179463831170486273](https://thepracticaldev.s3.amazonaws.com/i/7ke11d3lcc4efd3qfz0e.png)](https://twitter.com/Caneco/status/1179463831170486273)

Is was something that I could easily get the 4 Pull Requests (PR) required to complete the challenge, ***but…***

Instantly I’ve started receiving links and more links of projects craving for a brand new logo. So many that, to be fair to everyone I actually needed to write a [code of conduct](https://www.notion.so/caneco/Do-you-need-a-logo-14b46a005e184aaca3481f722d765a90) for the offer.

**And quickly I created the first logo, then the second, then the third, and like that four logos were already done.**
So in a day I’ve finished the required PRs but I’ve continue the offering and continue making a lot more. **Check them out (can you spot yours?)**

[![The logos Part I](https://thepracticaldev.s3.amazonaws.com/i/l53x5rkxpxiuf2e8dr3b.jpg)](https://medium.com/@caneco/the-30-logos-i-did-for-hacktoberfest-4aa6f161443d)

[![The logos Part I](https://thepracticaldev.s3.amazonaws.com/i/vdmmdww8nt36s6v0zi72.jpg)](https://medium.com/@caneco/the-30-logos-i-did-for-hacktoberfest-4aa6f161443d)

**At the end I got a score of 4PRs+27, and designed 30 different logos.**

Not counting the [Tinkerwell](http://tinkerwell.app/) icon or the [NorthMeetsSouth](http://northmeetssouth.audio/) rebranding.

Some logos were more challenging, others fun to make, and some not even get approved. But despite everything it was an awesome experience.

#### Thank you all.

---

And obviously, I could not forget that I even Eric Barnes helped me with a couple of logos during the hack.

![Erics' Logos](https://thepracticaldev.s3.amazonaws.com/i/2ayorm9r37ou4wijfa4w.png)
Day 7 of⚡️ #30DaysOfWebPerf ⚡️: Image Formats
Tags: webperf, images, webdev, httparchive
Published: 2019-11-11 19:41:26

{% twitter 1193904791681949698 %}
{% twitter 1193904804243890177 %}
{% twitter 1193904806231982080 %}
{% twitter 1193904814381568000 %}
{% twitter 1193904825685155841 %}
{% twitter 1193904831901110272 %}
{% twitter 1193904840965074945 %}
The 7 Most Popular DEV Posts from the Past Week
Tags: top7
Published: 2019-11-11 19:29:51

---
title: The 7 Most Popular DEV Posts from the Past Week
published: true
description: A round up of the most-read and most-loved contributions from the community this past week.
tags: icymi
cover_image: https://thepracticaldev.s3.amazonaws.com/i/sfwcvweirpf2qka2lg2b.png
---
Every Monday we round up the previous week's top posts based on traffic, engagement, and a hint of editorial curation. The typical week starts on Monday and ends on Sunday, but don't worry, we take into account posts that are published later in the week. ❤️

#1. Older & Wiser

Caitlyn shares how they got into coding at age 31. This post is a great reminder to values your existing skills and not feel held back if you don't have a CS degree.

{% link https://dev.to/thecaitcode/why-not-having-a-cs-degree-is-awesome-he6 %}

#2. Pros & Cons

Deepu, an experienced programmer, tries Rust for the first time and shares their initial likes and dislikes towards the language.

{% link https://dev.to/deepu105/my-first-impressions-of-rust-1a8o %}

#3. Avid Consumption

If you learn best through videos, check out this handy list of YouTube channels.

{% link https://dev.to/jasterix/27-programming-youtube-channels-you-should-know-4c39 %}

#4. Under The Hood

Sagiv dives into JavaScript's prototype chains and explains how objects connect to other objects, and how to implement inheritance and relationships between objects.

{% link https://dev.to/sag1v/javascript-the-prototype-chain-in-depth-2p58 %}

#5. Pain-Free

Stephen shows us how to configure the typescript compiler to set up path mappings for imports - no more ugly and painful restructuring with inconsistent relative paths!

{% link https://dev.to/cooperdev/restructure-with-ease-thanks-to-typescript-path-mappings-4b0e %}

#6. Automate!!

Christopher is lazy, so they choose to automate their tasks to avoid repetition. In this post, they show us their favorite tools to make life easier and code more accessible. 

{% link https://dev.to/christopherkade/18-devtools-for-productivity-5ia %}

#7. Rationing Data

Mike has been traveling the world for the past six months. In this post, they share the quirks and challenges that come with working on the road.

{% link https://dev.to/mikeschultz/coding-out-of-a-van-in-new-zealand-kk1 %}

_That's it for our weekly wrap up! Keep an eye on dev.to this week for daily content and discussions...and if you miss anything, we'll be sure to recap it next Monday!_
Let's discuss #devTunes :)
Tags: discuss, devtunes
Published: 2019-11-11 18:55:53

---
title: Let's discuss #devTunes :)
published: true
description: just for fun ...
tags: #discuss #devTunes
---

Just for fun: I pretty much started & dominate [#devTunes tag on Twitter](https://twitter.com/search?q=%23devTunes&src=typed_query&f=live)

Mine are mostly biggie lately :(

{% twitter 1192115605459161088 %}

I also like [Lady Leshurr](https://twitter.com/LadyLeshurr) a lot for her unleashed freestyle raps:

{% twitter 1126876348625166337 %}

# What do you 🎶 when you code?
#30ArticlesForNovember, days 1 to 10
Tags: meta
Published: 2019-11-11 18:47:31

At the end of October, I announced my personal challenge: share on Twitter 30 articles, one for each day of November.

{% twitter 1189474483503022081 %}

Here's the recap of the first 10 days.

1. [Write tests. Not too many. Mostly integration](https://kentcdodds.com/blog/write-tests)
2. [The Top Seven Least-Known, Yet Important, C# Features](https://www.c-sharpcorner.com/article/top-7-least-known-but-important-c-sharp-features)
3. [Learn From Source Code](https://dev.to/snj/learn-from-source-code-4d1o)
4. [string vs. String is not a style debate](https://blog.paranoidcoding.com/2019/04/08/string-vs-String-is-not-about-style.html)
5. [12 Tips to Maximize Your Experience at a Tech Conference](https://dev.to/nspinazz89/12-tips-to-maximize-your-experience-at-a-tech-conference-5dkj)
6. [What's the difference between a console, a terminal, and a shell?](https://www.hanselman.com/blog/WhatsTheDifferenceBetweenAConsoleATerminalAndAShell.aspx)
7. [Testing code that isn't there yet](https://techblog.holidaycheck.com/post/2018/01/02/testing-code-that-isnt-there-yet)
8. [Under the Hood of C# Alias Types and Namespaces](https://medium.com/@morgankenyon/under-the-hood-of-c-alias-types-and-namespaces-82504a02660e)
9. [How to go from 3 views to 1,000,308](https://dev.to/brandonskerritt/how-to-go-from-3-views-to-1-000-308-30a9)
10. [5 C# features that will help you to understand LINQ](https://blog.quadiontech.com/5-c-features-that-will-help-you-to-understand-linq-bca495cd3fb8)

## CSharp
I mainly work with C#. I love this language. That's why I think that articles 2, 4, 8 and 10 are great. Those are not articles for advanced programmers, but in those articles I found lots of interesting tips and features to learn.

## Tests
One of my lacks is testing practices. I have difficulties with TDD. Also, I'm not sure if 100% code coverage is necessary for each project and if it really creates value. I haven't found a final answer, but with articles 1 and 7 I have a bit more confidence in what's going on.

## Meta
Not only pure software development but also soft skills and blogging tips. That's what I learned from articles 3, 5 and 9. 

## The most timely
The article #6, about Console, Terminal and so on, was on my list when I created this challenge. It happened that the author, Scott Hanselman, talked about that topic at Microsoft Ignite. So, why not kill two birds with one stone? 


That's a recap of days 1 to 10. Have you already read those articles?
1 - [quick start] kwik
Tags: devops, docker, vscode, git
Published: 2019-11-11 18:45:22

In this series we will look at a few tools to get from zero to published in as painless a way possible.

Here we start with my recently launched tool (plug alert!) [kwik](https://github.com/sam-aldis/kwik)
also available on dockerhub [ukjp/kwik](https://hub.docker.com/u/ukjp/)

If you are using docker to create your environment which I recommend, you will see why later - we need to start with the command:
```bash
$ docker run -it -p 9091:9091 --name MyProject ukjp/kwik
# Replace MyProject with the name of your project
# add [-P if you want to access any ports specific to your project]
```

This will download and run the kwik docker image and create the container with the name MyProject. You will then be dropped into a shell where you can run

```bash
$ kwik -o linux -p https://gitlab.com/my/repo -d my-repo-dev
# Note - You can prefix a repo with _/ if its from github, for example
# _/sam-aldis/kwik will become https://github.com/sam-aldis/kwik
```
This command will clone your repo into the directory my-repo-dev
and then grab a copy of code-server (vscode in your browser), extract it and start it running on port 9091 with the password displayed to you.

Now you can open a browser at http://localhost:9091 and start downloading the extensions you require.
![VSCode](https://thepracticaldev.s3.amazonaws.com/i/4zy2igqr05askdyvr4rx.png)

start setting up your environment with all the tools you need using apt etc.

then on the host computer run 
```bash
$ docker commit MyProject dockerhub/repo
# Replacing MyProject with the name you gave to your docker image
# and dockerhub/repo with your dockerhub username/imagename you want to 
# upload as.
$ docker push dockerhub/repo
```

Now you can run your project anytime from any machine and have all your ide and environment ready to use with your preferred tooling!
just run the code-server from within your project directory (under code-server2-[release]-[os]/code-server with option --port 9091)
12 Best Online Tools for Web Developers
Tags: webdev, javascript, php, react
Published: 2019-11-11 18:38:38

This is a preview of my original post cross-posted from my [website's blog](https://www.codespot.org/12-best-online-tools-for-web-developers/)

There are a large number of online tools out there. This article is aimed to help developers in the search to find the best tools to make everyday developing experience better. 12 web tools are listed below for new and experienced developers.

## [1. Stack Overflow](https://stackoverflow.com/)

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/163p3ejv8g8ys21h8ect.jpg)

Stack Overflow is a question and answer web site for developers. It features questions and answers on topics in computer programming. Stack Overflow is the right hand of every professional and enthusiast software developer, with its huge community of developers it is the number one tool for solving problems and gaining knowledge. Stack Overflow is free to use, just be sure first to check if the answer is already there before you ask one or you will get some negative votes.

<br>

## [2. Google Fonts](https://fonts.google.com/)

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/ikaanm9chzmc9b6qsz0t.jpg)

Google Fonts is all you need to find and load a font for your web site. It has a wide range of free fonts and it is very easy for use, in a couple of steps you can find your favorite font, select it, and copy it to your CSS styles.

<br>

## [3. Chrome Developer Tools](https://developers.google.com/web/tools/chrome-devtools)

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/7x1lfwa8lpxd8r7ifqw5.jpg)

Chrome Developer Tools offer a wide range of tools to web developers for testing and debugging their code, from editing HTML and CSS, to writing JavaScript code in real-time. Chrome Developer Tools come as browser add-ons in web browsers, and it is not hard to get started.

<br>

## [4. GitHub](https://https://github.com/)

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/hmt897q1gucty1cxprw0.jpg)

Every developer nightmare, when you’re working on a project feature and you mess up with your code. Say welcome to version control systems or specifically, GitHub.

<ad-incontent></ad-incontent>

<br>

## [5. JSFiddle](https://jsfiddle.net/)

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/ud4hay95kxx8pkwis4ap.jpg)

With JSFiddle you can add JavaScript alone or in combination with HTML and CSS and render the code in the output window, There is also an option to save the code or send to other people. With JSFiddle, you can inject JavaScript and CSS from other web sites and load it in jQuery. It is not hard to get started, try it.

<br>

## [6. JSONLint](https://jsonlint.com/)

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/i07aft5rr77i6nr7hpt5.jpg)

JSONLint is a great tool for debugging JSON, it lint flags if you’ve missed something in the syntax. JSONLint is a great tool for working with big JSON formats, and it is easy to get started.

You can read the full post and find the 6 more tools on my [website's blog](https://www.codespot.org/12-best-online-tools-for-web-developers/)