teleren/devto huggingface dataset:
Day 7: Some days you win, Some days you learn
Tags: datarace, elixir, genstage
Published: 2017-06-21 00:00:00

---
layout: post
title:  "Day 7: Some days you win, Some days you learn"
date:   2017-06-21
published: true
canonical_url: http://blog.12startupsin12months.in/2017/06/21/day-7-some-days-you-win-some-days-you-learn/
tags: 
  - Elixir
  - GenStage
  - Data Race
---

The Dropbox API is mostly nice to work with. It notifies integrations of file changes using web hooks.
And, Dropbox needs the webhook to respond immediately, which means the post should be processed in some kind of a background job.
Fortunately, Elixir makes it trivial to run a background job. You just need to spawn a process to run something in the background.

```elixir
defmodule WebhooksController do
  # ....
  def sync(conn, params) do
    spawn(fn -> process(params) end)
    text(conn, "ok")
  end
  # ....
end
```

It is that simple. However, if a user makes changes too quickly you end up receiving multiple POSTs from Dropbox which is to be expected.
Now, it is your responsibility to make sure that you don't have 2 separate processes syncing the same user. That is a recipe for data races.
Elixir has an awesome abstraction just for this kind of use case, "The GenStage". However, setting up is not trivial. I waddled through a lot of examples
to try and understand how to set it up for my use case. I haven't got it working just right yet. Hopefully I'll have it working by tomorrow.

**Some days you win, some days you learn** - Some Wise Guy.
Hi, I'm Ruth Earle
Tags: introductions
Published: 2017-06-20 20:07:52

---
title: Hi, I'm Ruth Earle
published: true
description: My introduction post
tags: introductions
---

I have been coding for 2.5 years.

You can find me on GitHub as [ruthearle](https://github.com/ruthearle)

I live in London, U.K.

I work for AND Digital.

I mostly program in these languages: NodeJS, sprinkling of frontend stuff.

I am currently learning more about functional programming with SML. I like functional programming, it's less fussy, I like less fussy ðŸ˜Š

Nice to meet you.
Hi, I'm rouzbeh
Tags: introductions
Published: 2017-06-20 19:24:09

---
title: Hi, I'm rouzbeh
published: true
description: My introduction post
tags: introductions
---

I have been coding for 6 years.

You can find me on Twitter as [@rouzbeh84](https://twitter.com/rouzbeh84)

I live in Los Angeles.

I mostly program in these languages: [html, css, javascript].

I am currently learning more about [tooling, various frameworks].

Nice to meet you.
Hi, I'm Mario Moreno
Tags: introductions
Published: 2017-06-20 19:08:53

---
title: Hi, I'm Mario Moreno
published: true
description: My introduction post
tags: introductions
---

I have been coding for 5 years.

You can find me on Twitter as [@mariomoren00](https://twitter.com/mariomoren00)

I live in Tuxtla GutiÃ©rrez, Chiapas, MÃ©xico.

I work for Activalab MÃ©xico

I mostly program in these languages: Javascript, Ruby, Python, Php.

I am currently learning more about Bots to support medical and personal interaction.

Nice to meet you.
Hi, I'm John B
Tags: introductions
Published: 2017-06-20 19:04:59

---
title: Hi, I'm John B
published: true
description: My introduction post
tags: introductions
---

I have been coding for less than a year.

You can find me on Twitter as [@bluejayee](https://twitter.com/bluejayee)

I live in [city].

I work for [company]

I mostly program in these languages: Pyhton.

I am currently learning more about general web development (HTML,Js and Python).

Nice to meet you.
install debian 9 on virtualbox
Tags: debian, virtualbox, linux
Published: 2018-02-10 22:38:25

---
title: "install debian 9 on virtualbox"
published: true
tags: debian,virtualbox,linux
canonical_url: 
---

# why virtualbox

**UPDATE: The list of VMWare OS version only help you set basic resource (CPU, Memory, etc), so you can choose anyone and modify them on your need**


I don't know which OS version should be chosen from VMWare OS version list. There are some Debian series, latest is Debian 8.x, but I need 9, also there is no Kernel 4.x item on the list, so I install virtualbox, I find a Debian (64bit).


# disk space

It's better to generate a 15Gib or more disk. I use a 10Gib disk and got "no more space" error during installing GNOME.

# additional software

compile virtualbox additional software needs some build softwares, you can get them from `build-essential` package, and build kernel modules need kernel header files, you can get them from `linux-headers-4.9.0-3-amd64`, which is default kernel version.

```
sudo apt install build-essential linux-headers-4.9.0-3-amd64
```
How do you pronounce "PostgreSQL"?
Tags: discuss
Published: 2017-06-20 15:25:43

---
title: How do you pronounce "PostgreSQL"?
published: true
tags: discuss
---
I've heard POAST-GREH-SEE-QUEL, POST-GER-ESS-CUE-ELL, and so many others. How do you pronounce it?
Hi, I'm Theofanis Despoudis
Tags: introductions
Published: 2017-06-20 15:21:34

---
title: Hi, I'm Theofanis Despoudis
published: true
description: My introduction post
tags: introductions
---

I have been coding since I was 12 years old.

You can find me on GitHub as [theodesp](https://github.com/theodesp)

I live in Limerick Ireland.

I work for Teckro

I mostly program in these languages: Javascript, Python and Go.

I am currently learning more about Dart and Clojure.

Nice to meet you.
Hi, I'm Marco, Nice2MeatU
Tags: introductions
Published: 2017-06-20 14:39:22

---
title: Hi, I'm Marco, Nice2MeatU
published: true
description: My introduction post
tags: introductions
---

I'm married and have two wonderful girls. The four of us are living in Freiburg, Germany, at the gates to the Black Forest.

This pic shows me in a snowy landscape after riding down a hill on a sledge. Fun times: ![Marco in the snow with a blue beanie on his head](https://thepracticaldev.s3.amazonaws.com/i/15dqbz0k24wpvghvkfyl.jpg)

I have been coding for almost 10 years and have been working for very small companies (like a boss, me and that's it) at the beginning of my career. Since November 2016, I'm working for [NIMIUS GmbH](http://nimius.net) in Bad Krozingen (which is close to Freiburg). Before that I have been with [Smashing Magazine](https://smashingmagazine.com).

You can find me on Twitter as [@nice2meatu](https://twitter.com/nice2meatu)

I mostly program in these languages: HTML, CSS and am currently learning more about Vue.js.

Nice to meat you.
Create Digital Art with p5.js and a Color Recognition Model
Published: 2017-06-20 14:32:57

---
title: Create Digital Art with p5.js and a Color Recognition Model
published: true
description: p5.js is a great way to get started when making digital art for the browser with JavaScript. In just a few lines of code, you can start drawing interactive artwork which works on computers, phones and more. Here's a video tutorial to help you explore p5.js and Clarifai's Color recognition model!
cover_image: https://d1ax1i5f2y3x71.cloudfront.net/items/1Q0L2V421Q3S3C3K2C3e/Image%202017-06-19%20at%201.16.36%20PM.png?X-CloudApp-Visitor-Id=2119651&v=53ea9e1c
tags: 
---

On a personal level, I feel that making digital art is really exciting, and p5 took away lots of the scary parts and replaced it with a toolkit which was fun and easy to work with.

In this video tutorial, I expect that you have a very basic understanding of JavaScript (what a function is) and not anything else. Together, we'll learn to use [Clarifai's Color Model](https://developer.clarifai.com/models/color-image-recognition-model/eeed0b6733a644cea07cf4c60f87ebb7?utm_campaign=devto-org-account&utm_medium=blog&utm_source=dev-to&utm_content=article-link) to make an interactive representation of the colors in our image.

<iframe src="https://player.vimeo.com/video/216720276" width="640" height="400" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>

I've built it on a platform called [Glitch](http://glitch.com/), If you’d like to look at my complete project and ‘remix’ it in your own account, [you can find it here](https://glitch.com/edit/#!/clarifai-p5). And if you have any questions at all or are wondering what else you can do with this project, feel free to [find me on Twitter as @_phzn](http://twitter.com/_phzn).
Hello! I am Marios
Tags: intro
Published: 2017-06-20 07:45:53

---
title: Hello! I am Marios
published: true
description: 
tags: intro
---

Hello! I am Marios!

I am a full stack javascript developer.
Currently working remotely at [The Chat Shop](https://www.thechatshop.com).

I am coding for a living since 2011, used to work with Ruby at this time.
Hi, I'm Ken Fogel
Tags: introductions
Published: 2017-06-20 12:29:25

---
title: Hi, I'm Ken Fogel
published: true
description: My introduction post
tags: introductions
---

I have been coding for 37 years.

You can find me on Twitter as [@omniprof](https://twitter.com/omniprof)

I live in Montreal.

I work for Dawson College and Concordia University

I mostly program in these languages: Java

I am currently learning more about JavaFX & JSF plus Kotlin.

Nice to meet you.
Hi, I'm Marcin Piczkowski
Tags: introductions
Published: 2017-06-20 09:23:55

---
title: Hi, I'm Marcin Piczkowski
published: true
description: My introduction post
tags: introductions
---

I have been coding for over 10 years.

You can find me on GitHub as [piczmar](https://github.com/piczmar)

I live in Åodz, Poland.

I mostly program in these languages: Java, JavaScript, Groovy

I am currently learning more about Machine Learning.

Nice to meet you.
Magento auction extension by FMEAddons
Tags: magentoauction
Published: 2017-06-20 08:39:42

---
title: Magento auction extension by FMEAddons
published: true
description: Magento auction extension by FMEAddons help e-merchants to sell products on auction. 
tags: Magento auction
---

Magento auction extension by FMEAddons is an eCommerce solution to run an auction program in Magento. This extension creates the separate page on your e-store which displays the products to customers which are available for bid. <a href="https://www.fmeaddons.com/magento/auction-extension.html">Auction extension for Magento</a> also enables users to bid manually and set auto bid as well. This plugin enables e-bay style bidding on your e-store which is the most commendable bidding style.

<b>Features of Magento Auction Extension</b>
 - Manual and Auto bidding
 - Notify customers regarding bidding updates
 - Uses Ajax technology
 - Allow multiple winners
 - Include and exclude tax for winners
 - 100% money back guaranty
 - Free lifetime support and upgrades 

<img src="https://thepracticaldev.s3.amazonaws.com/i/xzxv4z2prrpcuu7vog7e.png"/>

<img src="https://thepracticaldev.s3.amazonaws.com/i/rr0laz5r2bnz4ivvylk7.png"/>
Hi, I'm Joey Laguna
Tags: introductions
Published: 2017-06-20 02:45:26

---
title: Hi, I'm Joey Laguna
published: true
description: My introduction post
tags: introductions
---

I have been coding for [number] years.

You can find me on Twitter as [@joey_laguna](https://twitter.com/joey_laguna)

I live in [city].

I work for [company]

I mostly program in these languages: [languages].

I am currently learning more about [topic].

Nice to meet you.
Day 6: Retrospective, Naming and Cache Invalidation
Tags: cacheinvalidation, elixir, retrospective, sprymeshcom
Published: 2017-06-20 00:00:00

---
layout: post
title:  "Day 6: Retrospective, Naming and Cache Invalidation"
date:   2017-06-20
published: true
canonical_url: http://blog.12startupsin12months.in/2017/06/20/day-6-retrospective-naming-and-cache-invalidation-are-hard/
tags: 
  - Elixir
  - Retrospective
  - Cache invalidation
  - sprymesh.com
---

Today, was a good day! It was frustrating, but ended up fine :)

![Today was a good day](http://blog.12startupsin12months.in/assets/today-was-a-good-day.jpg)

The software industry often jokes about two of the most difficult things in software. Cache invalidation, Naming things and off by one errors :). I ended up doing two of those things and spent a good 2 hours on an undocumented ecto way of updating embedded data. And in the process creating my first contribution in the form of [documentation to Ecto](https://github.com/elixir-ecto/ecto/commit/9962c146c0569a91eda189e328a7d02382d9bcc7).

Finding a good name which is available as a dot com and which isn't used by yet is a really hard one. Thankfully, the thesaurus, Google, and https://domainr.com/ helped me narrow down the name of my new app to *[sprymesh.com](https://sprymesh.com/)*. I can't believe it was still available :D, Anyhoo, I don't think names are that big of a deal when it comes to the success of a product. However, it is a good feeling to have a good name :). [sprymesh.com](https://sprymesh.com) is going to be the new home for the Dropbox sync backed web host that I am building. I have a pre alpha version of the app deployed. You can try it out, it only adds a new folder to your Dropbox account under `~/Dropbox/Apps/sprymesh`, so it is not going to wipe your hard drive :) But be warned this is pre alpha stuff and is very rough around the edges.

So, 3 good things in a day. I'll call it a success!
What are the caveats of using global functions and/or classes with all-static methods?
Tags: discuss
Published: 2017-06-19 23:31:46

---
title: What are the caveats of using global functions and/or classes with all-static methods?
published: true
tags: discuss
---
Within the last one year of my three-year journey into web development (on the LAMP stack), I've seen a lot of articles, blog posts etc., where programmers all but liken using global functions and static methods to deploying a nuclear warhead aimed at the server(s) where your application is hosted, but (most of them) without really explaining why that may be the case.

I don't have a CS background (yet), and I just saw another such post some 20 minutes ago so I was wondering whether we could shed some light on this topic here on dev.
CP For Distributed Databases
Tags: cp, distributedsystems, distributeddatabase, post
Published: 2019-01-20 15:02:14

---
title: CP For Distributed Databases
published: true
tags: cp,distributed_systems,distributed_database,post
canonical_url: https://horia141.com/cp-in-distributed-databases.html
---

Some distributed databases are characterized as being [CP](https://en.wikipedia.org/wiki/CAP_theorem). [BigTable](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf) is an [example](https://www.slideshare.net/GrishaWeintraub/cap-28353551) of this, and it stands in contrast in this respect with [Dynamo](http://cloudgroup.neu.edu.cn/papers/cloud%20data%20storage/dynamo-sosp-2007.pdf) which is AP. If you think about it, however, things are a little bit odd. If you’ve ever used BigTable or it open-source clone HBase you know that it doesn’t stop accepting writes if one node goes down. And at the scale these tools are employed, nodes go down all the time. So is the characterization wrong? Or is there something missing from the description?

In truth, the CAP Theorem is defined in a very precise way. It gives us a whole lot of intuition about the real world, but it does not model it _that_ accurately. It deals with a so-called _read-write register_ - a distributed object which can be _read_ or _written_. This is the entity which can be CP, AP or CA. However, even databases with relatively simple interfaces like the NoSQL key-value stores are much more complicated than a register. For BigTable/HBase a single row (key-value pair) can be assimilated with the register. Indeed, operations on a row happen transactionally, and it is CP in terms of its behaviour.

Physically, the key-space is divided into ranges called tablets. Each tablet it handled by a tablet server, and is replicated three times usually. If a tablet server goes down or if there’s a partition, the tablets it handles become unworkable, per the CP behaviour. More precisely, one cannot write successfully, since a write requires all replicas to receive a copy of the data. However, all the other tablets are still OK and the system as as whole is still more-or-less in a functioning state.

What this means in practice is that, for example, a small number of users of the system will see issues, if their data was stored on the failed server. Similarly, not all data in an offline analysis might be available. Which is not the end of the world - as a total shutdown of would imply. And as would happen in a single node database.

A much better article in the same vein is Martin Kleppmann’s [Please Stop Calling Databases CP OR AP](https://martin.kleppmann.com/2015/05/11/please-stop-calling-databases-cp-or-ap.html).
Hi, I'm Derek Arnold
Tags: introductions
Published: 2017-06-19 20:15:40

---
title: Hi, I'm Derek Arnold
published: true
description: My introduction post
tags: introductions
---

I have been coding (off and on) since 1995.

You can find me on GitHub as [darnold76](https://github.com/darnold76)

I live in North Canton, OH.

Currently, I am looking for the right opportunity.

I mostly program in these languages: Python, PHP, PowerShell.

I am currently learning more about GIS, functional programming, data & visualization.
Fiddler and APIs
Published: 2017-06-19 20:00:05

---
title: Fiddler and APIs
date: 2017-06-19 20:00:05 UTC
published: true
canonical_url: https://www.funkysi1701.com/posts/fiddler-and-apis-1304
description: A while ago I blogged about promoting my blog with Buffer. At the time I made use of the nuget package BufferAPI but lets look at some improvements I can make.
tags: 
//cover_image: https://direct_url_to_image.jpg
---
A while ago I blogged about [promoting](https://www.funkysi1701.com/2017/04/17/automation-promotion/) my blog with Buffer. At the time I made use of the nuget package [BufferAPI](https://www.nuget.org/packages/BufferAPI/) but lets look at some improvements I can make.

The BufferAPI package worked great from my console app, but when I tried to use it from a Controller in an MVC app I never got it to work. Lets look at the API docs and see if I can rewrite it.

There are two main types of API calls GET which gets data from the server and POST which posts data to the server. These come from the types of HTTP requests.  

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6wozrfdoqvtjaoxs7j1v.jpg)

I quickly figured out how to use the GET API call to authenticate using https://api.bufferapp.com/1/profiles.json?access_token=XXXX

However POST was defeating me. That was until I remembered [Fiddler](http://www.telerik.com/fiddler).

I had heard Troy Hunt (and others) talk of using Fiddler to examine what data is being passed among websites. Troy uses it to do a man in the middle test to see what information can be stolen.

It is really easy to setup, install Fiddler, click yes to a few security warnings and you can see what information is being passed from your code to remote APIs.

Once I had Fiddler installed I could compare what information is being passed between a successful API call using the BufferAPI nuget package and an unsuccessful API call using my code.

Fiddler also showed that passing my authentication token in a POST request is much better. Despite both GET and POST being encrypted when using HTTPS, anything at either end that logs URLs will have a log of your username and password.

If you have not tried Fiddler, give it a try especially if you are doing things with API calls.
Hi, I'm notyim
Tags: introductions
Published: 2017-06-19 19:05:18

---
title: Hi, I'm notyim
published: true
description: My introduction post
tags: introductions
---

I have been coding for [number] years.

You can find me on Twitter as [@notyim](https://twitter.com/notyim)

I live in [city].

I work for [company]

I mostly program in these languages: [languages].

I am currently learning more about [topic].

Nice to meet you.
結局Touch Bar搭載Macってどうなの？　Kaby Lake搭載MacBook Pro 2017年モデル レビュー
Tags: review
Published: 2018-05-16 20:33:08

---
title: 結局Touch Bar搭載Macってどうなの？　Kaby Lake搭載MacBook Pro 2017年モデル レビュー
published: true
tags: review
canonical_url: http://connect.coron.tech/archives/52003152.html
---

[![結局Touch Bar搭載Macってどうなの？　Kaby Lake搭載MacBook Pro 2017 +Hyper Drive レビュー](http://livedoor.blogimg.jp/cv_k/imgs/c/0/c026c37a-s.jpg)](http://livedoor.blogimg.jp/cv_k/imgs/c/0/c026c37a.jpg "IMG\_1285")  

第7世代CPU(Kaby Lake)になったMacBook Pro！
  

実は昨年の3月頃に[MacBook Pro Retina ディスプレイモデル(13インチ)](http://amzn.to/2yiD5XB)を購入してモバイル環境も[macOS](http://amzn.to/2yj1PPi)と[Windows](http://amzn.to/2kLWmgN)の2台体制となっていたのですが、購入当初からやや性能不足感が否めませんでした。そしてWWDC2017で今までのインテル第6世代CPU(Skylake)から、インテル第7世代CPU(Kaby Lake)を搭載した[新しいMacBook Pro](http://amzn.to/2kPETnY)が発表されましたので、この機に買い替えを決断しました。
[続きを読む](http://connect.coron.tech/archives/52003152.html) ![](http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=2732114&name=cv_k&pid=52003152)
best testing post, ignore.
Tags: askben
Published: 2017-06-19 17:14:33

---
title: best testing post, ignore.
published: true
description: 
tags: askben
---

I get a lot of DMs on Twitter. People ask for my opinion or advice. I get the inquiries because I've put myself out there as somebody who enjoys offering advice or mentorship.

I often wish the back-and-forth was a bit more public because most people can benefit from the conversation as a fly on the wall.

So I'm starting a [dev.to](/) tag called [askben](/t/askben). I will follow the tag and try to answer any incoming questions I can. If you want to keep up, I recommend following it as well. The threads will be open, so anyone is welcome to chime in as well.