teleren/devto huggingface dataset:
Why I Decided to Learn How to Program
Tags: programming, codenewbie, webdevquest
Published: 2017-09-04 13:16:56

---
title: Why I Decided to Learn How to Program
published: True
description: 
tags: programming, CodeNewbie, webdevquest
---

There are a number of reason why I decided to learn how to program. In fact,  my reasons are probably not much different from most people my age. The truth is, I’ve always been interested in programming. Ever since I was a boy I had an interest in computers. My dad ran a small computer repair shop out of our house. So I was exposed to a variety of computers at a young age. 

**So... why now? Why at the age of 36 am I just starting? Why didn’t I start earlier on?**

To be completely honest it was fear. The fear of failure to be more specific. This fear prevented me from learning something that I had been interested in since I was a kid. I was mostly afraid that I was too stupid, and that if I tried and failed, I would know for certain that I was. You see, I grew up with the mindset that you had to be a genius, or a math wiz, or maybe something like Doogie Howser to become a programmer. But I was none of those things... So why would I even try??? 

To be fair programming wasn’t easy to learn when I was young. You only had a few options for learning. Your choices were either to go to school for a CS degree, have someone mentor you, or learn from a book. I’ll also add that the books back then were not beginner friendly (at least the books that I could find) and most of the languages had a very steep learning curve. Regardless, I still never gave it a try. Instead, I convinced myself that programming wasn’t for me. 

**Okay… Enough about why I didn’t learn how to program then, and on to why I am NOW.** 

I think my primary reason is simply because **I CAN**. The information is out there, and nowadays, anyone interested can start learning how to code for little to no cost at all. I also came to realize that **anyone can do this**. You don’t have to be a genius or a math wiz.  All you need is the willingness and drive to see it through. I already had the willingness part. I just need that drive or that push to get me started...

**I finally got that push, and it was in the form of a baby girl.** 

Once I became a parent I realized that I had to do more with my life. It isn’t just about providing a better life for my family either. I want to be a role model for my daughter. I want to show her that no matter what, if you follow your dreams and put your mind to it, you can achieve anything. I also want to do something that I love for a living. I’m tired of working just to pay the bills. I want to do something that I can be proud of!  For me, that is programming.
Minor bugs and how to define your own strategy of dealing with them
Tags: codequality, testing, bugs
Published: 2017-09-04 10:53:34

---
title: Minor bugs and how to define your own strategy of dealing with them
published: true
description: 
tags: quality, testing, bugs
---

One of the questions many teams encounter is what they should do with all those minor bugs found in the product, especially given budget limitations.
We definitely should fix minor bugs as soon as possible, but usually during the earlier stages of the project it’s more valuable for business to be responsive to the changing market and find its audience than fixing all minor bugs. Remember Facebook’s old “Move fast and break things motto, for instance.
We can’t fix every single minor bug we find, that’s a common sense. But we can’t ignore them either, otherwise they will pile up and eventually will cause harm to business.
If you already have quite a list of minor bugs in your bug tracker, don’t hesitate to [define your own strategy of dealing with them](https://binary-studio.com/2017/08/04/dealing-minor-bugs/).
A thought about quality of software product
Tags: discuss, opinion, development, software
Published: 2017-09-04 07:48:33

---
title: A thought about quality of software product
published: true
description: There's an abysmal difference in some software products. Why is it that some of the are better and some of the suck?
tags: discuss, opinion, development, software
---

Most of my career I've been employed as a consultant, meaning I've been on various different projects. There have been similarities and yet every one of them was unique in its own way. For example, there's so much truth in [Conway's law](https://en.wikipedia.org/wiki/Conway%27s_law) even though it is mostly considered as a joke whenever I mention it. 

I have one, somewhat similar observation: 

> **If the company is not primarily a software company, it will produce a software of a limited quality.**

I know it sounds harsh, but let me break it down. 

Imagine a bookshop. The owner has decided that it is time to go with the flow and opens an e-shop. He starts with a common e-biz and e-shop solution, then as the days go by he realizes he needs customize it. For instance, tailor made recommendations, notification for a sequel of a book that customer bought or message board for book reviews. He hires a team of developers, to implement the new features. This goes on and on, until the performance of the e-shop will hit the peaks and users start to complain about missing book orders or sluggishness of the UI.

The thing is, that the bookshop owner **didn't want to create an immersive online bookshop experience, he wanted to sells books online**. Probably he was missing a feasibility study or proper analysis of the solution. He didn't have any technical requirements for the project. Maybe the developers were complaining about poor scalability of the underlining platform. Or maybe there wasn't proper methodology used when managing the project.

I see this way too often. Sometimes the "owners" have an enlightenment and hire a consulting company that tries to introduce some sense to it all. Sometimes the product is a trainwreck or the company owner despite having any knowledge of it all wants to use ["scalable, cloud-first solution since this is what XYZ is using and they are successful!"](https://dzone.com/storage/temp/5464204-enterprise-vs-startup-journey-to-cloud.png).

Then there are successful projects (sometimes called tech startups), which are built on top of the best practices. With proper project management, built in a LEAN way or using Scrum, having QA on multiple levels, with dev teams using technical stack that fits the solution and so on. Their primarily objective, however, is **to build a quality and usable software**.

In this new era of Netflixes and Ubers I see a lot of companies are becoming a software companies. They dedicate most of their resources to build quality software. I hope this is a continuous trend, since the result will be products that will be a joy to use and code that will be pleasant to work with.
Why should I not choose Ruby on Rails ?
Tags: discuss, rails, programming
Published: 2017-09-03 17:17:06

---
title: Why should I not choose Ruby on Rails ?
published: true
description: Is Ruby and Ruby on Rails actually good technologies to begin a project with ?
tags: discuss,devdiscuss,rails,programming
cover_image: https://thepracticaldev.s3.amazonaws.com/i/n9sdezof834qbo3i9jaj.jpg
---

Hi everyone!

Over the past months, I have worked on backend specifications for a personal project. I must now choose the framework I’ll be using.

On the one hand, I’ve been working on a system built with Java [Spring](https://spring.io/) for the past 2 years, and I have been wondering if knowing a technology is a good enough reason to chose it over other languages and/or frameworks. Still, I know that Spring is stable, fast and adapted for big project and can save me a lot of time.

On the other hand, I know that some big companies use [Ruby on Rails](http://guides.rubyonrails.org/getting_started.html) to build their services (like [Gitlab, Airbnb, 37 Signals, etc.](https://stackshare.io/rails/in-stacks)). From what I know, RoR seems to be a stable and strong framework. 

I looked at some benchmarks between those two on the net (links at the bottom), but I find myself more lost than I was previously.

Here’s my question: **Why should I not choose Ruby on Rails ?**

Here are my project’s needs:

* must deal with a big amount of data and entities

* will connect with a GraphQL API (more than 70 endpoints)

* public and private endpoints over HTTP and HTTPS

* OAuth2 authentication provider

* probably a few WebSocket endpoints too

For me, this framework choice is very important because it will help me decide *what language I need to use to make internal and external services around the final product*. For example, if in the future I need to make a program to control hardware or device like printers, I will use the same language I used to develop the backend in order to make maintenance easier.

I know my question isn't very specific so maybe a list of features I’m interested about will help:

- **maintenability**: code quality, number of line of code

- **reusability**: make the code more modular, generic

- **performances**: HTTP(S) request (JSON or HTML responses), databases

- **templating**: what engine can I use (what is the best ?)

- **unit testing, code coverage and Selenium test**

- **scalability**

- **continuous integration**

Some benchmarks found on the web :

- [VSChart](http://vschart.com/compare/spring-framework/vs/ruby-on-rails)

- [Slant](https://www.slant.co/versus/158/1233/~spring-boot_vs_ruby-on-rails)

- [Stackshare](https://stackshare.io/stackups/rails-vs-spring-boot)


**Credits :**
- cover image from [perfectial.com](https://perfectial.com/blog/is-ruby-on-rails-dead/)
- A great thanks to Thierno which helped me to review this article <3
Looking for accountability: Side Projects Week One
Tags: sideprojects, learning, react, showdev
Published: 2017-09-03 16:37:17

---
title: "Looking for accountability: Side Projects Week One"
published: true
description: First Week of my side projects adventures
tags: side-projects, learning, react, showdev
---

Every week, I write a blog post about my progress on side projects. I explained my thought process in <a href='https://dev.to/damcosset/looking-for-accountability-side-projects-week-zero' target='_blank'>this article</a> last week. I also detailed the first project that I wanted to work on for this month.

## Week One

### The stack choice

For the front-end, I went with React and create-react-app. It greatly reduces the headache of getting everything set up. For the back-end, I chose express. For this project, this is more than enough to do what I want. I'll also use MongoDB for the database and I decided to use semantic-ui for the UI framework. I used material-ui before, so I went with a different one.

### Setting things up

There are two different parts in this project. The root of the project takes care of the server side ( express + mongodb ). Inside this root folder, a /client folder holds the front-end that was set up thanks to create-react-app.

The first difficulty that I had was to connect both parts. How do I inform the front-end and back-end to listen to each other with the create-react-app setup? 

Thankfully, the documentation links to a tutorial that explains how to make create-react-app works with an API. Right <a href='https://www.fullstackreact.com/articles/using-create-react-app-with-a-server/' target='_blank'>here</a> if you're curious. The front-end and back-end are run concurrently thanks to the npm package named concurrently ( convenient ).

And after that, I could start writing my code.

### Hearthstone API

To get all the informations about the game's cards, I found an API at <a href='https://market.mashape.com/omgvamp/hearthstone' target='_blank'>this url</a>. Well documented, easy to use, and I have all the informations I needed.

### React Router

This one made me sweat a bit more. I wasn't aware a new version of React Router was released. It took me some time to understand how the new one worked. ( BrowserRouter and Switch ).

### Starting to see some results

I started with the cards's catalog. I had to figure out the call to make to get the cards I needed ( hint: collectible=1 ). After that, I filter the cards by classes and sets in the front-end. Hearthstone has a "standard" mode where only the most recent cards sets are used. 

The catalog functionality will ressemble the one in the actual game. The user should be able to sort them by name, mana cost, cards set and classes... 

### Code and next week's goals

Here is the code on <a href='https://github.com/Tagada85/Hearthstone_App' target='_blank'>Github</a>

For next week, I will try to finish the catalog functionality with all the sorting and filters. If that is done, I'll start adding some deck actions ( deck creation, adding cards to deck from catalog ... )


See you next week!
How to make your site shareable
Tags: opengraph, html, webdev, share
Published: 2017-09-03 09:14:40

---
title: How to make your site shareable
published: true
description: Using Open Graph tags, you can make sure your site will be correctly previewed on Facebook, Twitter, and other social networks.
tags: opengraph, html, webdev, share
---

*Using Open Graph tags, you can make sure your site will be correctly previewed on Facebook, Twitter, and other social networks.*

You can use meta tags to specify your Open Graph settings in the HTML head.

```html
<meta property="og:type" content="website" />
<meta property="og:url" content="http://yoursite.com" />
<meta property="og:title" content="My Website" />
<meta property="og:image" content="http://www.navipedia.net/images/a/a9/Example.jpg" />
```

These tags are enough to make your site properly came up when sharing the link to it.

*Do you want something different than a website as a type? [Here are all the Open Graph types](http://ogp.me/#types).*

Do you have a Facebook application for your site? Perfect! Let's add that.

```html
<meta property="fb:app_id" content="0000000000000000" />
```

You can see how your crawled site looks like on Facebook with [this dev tool](https://developers.facebook.com/tools/debug/).

Do you have a Twitter handle for your site? We can add that too!

```html
<meta name="twitter:site" content="@skiilaa">
```

*Note that we are using the name attribute, not the property attribute in the meta tag.*

You can see how your crawled site looks like on Twitter with [this dev tool](https://cards-dev.twitter.com/validator).

Do you want some other card style than the default one? We can fix that.

```html
<meta name="twitter:card" content="summary_large_image">
```

## Learn More

 * [OpenGraph Protocol](http://ogp.me/)
 * [Facebook OpenGraph Settings](https://developers.facebook.com/docs/sharing/opengraph)
 * [Twitter Cards](https://dev.twitter.com/cards/types)
How Disobedience Made Me Better
Tags: programming, webdev, javascript
Published: 2017-09-02 21:05:57

---
title: "How Disobedience Made Me Better"
published: true
description: 
tags: #programming #web development #JavaScript 
---


As developers, it is a norm that when starting out learning new technologies, we learn and hear a lot about best practices. As good as this is, it could be really caging as a beginner in a new technology when working on a project because you have to think of what you are doing and how much it obeys the best practice rules. This exact experience has hindered someone like me from meeting targets and moving ahead with a new feature in the project or to something else. 
As a developer, when starting out with a technology or language, don’t be afraid to write “disobeying code” (code that doesn’t apply to best practices). What you should bother about the most while building is to MAKE IT WORK FIRST. This will help you a lot to be free and not afraid of what you are writing. That happens to me a lot. When it’s time for me to do something, I will sometimes just freeze looking so confused as though I don’t know what to do just because I’m afraid I will disobey “Mr. Best practices”. 
Start out free, make it work, then think of best practices after you have made it work. This makes it a lot easier and helps your confidence in solving problems. With time and experience, you will not need much time to start writing code with best practices first hand. You can also get someone you look up to and give him/her your code to review and help you write it better after you have made it work. This could help speed up your knowledge in writing clean code early enough. 
Hope this helps. Till next time, keep building great stuff.
Gauss-Jordan in C++
Tags: beginners, cpp
Published: 2017-09-02 18:57:14

---
title: Gauss-Jordan in C++
published: true
description: 
tags: beginners,cpp
---

So, a few days ago the Numerical Analysis teacher from my university left us with a proyect of coding a mathematical method of solving equations.

At first I thought of doing just a single solution for the problem, but whats the fun I that? So after thinking in funny ways to do my homework (I'm kinda nerd) I ended up doing the solution in C++ and in CUDA programming. 

Notice that I really don't know how to code in CUDA, but man it's not real work so It's ok to learn from the mistakes. 

This is my first time posting my code, so It would be really nice to read feedback from you guys.

So, this is my approach of the problem in C++

    void jordan(double** matrix, double **answers, int matrixSize) { //Gauss-Jordan
	//clock_t begin = clock();
	double temp = 0;
	for (int i = 0; i < matrixSize; i++) { //Recorre diagonalmente el arreglo - Goes in a diagonal way throught the matrix
		temp = matrix[i][i];
		for (int x = 0; x < matrixSize; x++) { //Hace 1 la diagonal ([i][i]) y divide al resto de la fila - Makes 1 the number in [i][i] and divides the row 
			matrix[i][x] = matrix[i][x] / temp;
		}
		answers[i][0] = answers[i][0] / temp;
		double multiplyFactor = 0;
		for (int y = 0; y < matrixSize; y++) {
			if (y != i) {
				multiplyFactor = matrix[y][i];
				for (int x = i; x < matrixSize; x++) { //Recorre la fila haciendo 0 las coordenadas en la columna de [i][i] - Makes 0 the numbers in the column of [i][i]
					matrix[y][x] = matrix[y][x] - (matrix[i][x] * multiplyFactor);
				}
				answers[y][0] = answers[y][0] - (answers[i][0] * multiplyFactor);
			}
		}
	}

And this is in CUDA

    __global__ void jordanGPU(long double ** matrix, long double * answer, int i)
    {
	    int idx = threadIdx.x;
	    if (idx != i) {
	    	    double multiplyFactor = matrix[idx][i];
	        	for (int x = i; x < 350; x++) { //Recorre la fila haciendo                     0 las coordenadas en la columna de [i][i]
			    matrix[idx][x] = matrix[idx][x] - (matrix[i][x] *         multiplyFactor);
    		}
		answer[idx] = answer[idx] - (answer[i] * multiplyFactor);
	    }
    }
------------------------------------------------------------------------

    clock_t begin = clock();
		double temp = 0;
		for (int i = 0; i < matrixSize; i++) { //Recorre diagonalmente el arreglo
			temp = matrix[i][i];
			for (int x = 0; x < matrixSize; x++) { //Hace 0 la diagonal ([i][i]) y divide al resto de la fila
				matrix[i][x] = matrix[i][x] / temp;
			}
			answers[i] = answers[i] / temp;

			cudaMemcpy(matrixGPU, matrix, matrixBytes, cudaMemcpyHostToDevice);
			cudaMemcpy(answersGPU, answers, answerBytes, cudaMemcpyHostToDevice);

			jordanGPU << <1, 350 >> >(matrixGPU, answersGPU, i);

			cudaMemcpy(matrix, matrixGPU, matrixBytes, cudaMemcpyDeviceToHost);
			cudaMemcpy(answers, answersGPU, answerBytes, cudaMemcpyDeviceToHost);

			cudaFree(matrixGPU);
			cudaFree(answersGPU);


Hope to read recommendations and suggestions about my code from you guys!
Thanks for reading!~
Helpful learning material for C++
Tags: discuss, beginners, tutorial
Published: 2017-09-02 17:51:10

---
title: Helpful learning material for C++
published: true
tags: #discuss #beginner #tutorial 
---

School is just a few days away and I'll be learning c++ this semester. Of course to excel in my class I'm gonna be doing some coding on my own. I just wanna see if you guys know of any good c++ tutorials or resources to further help me in my studies. Thanks!
worst day
Tags: postgres, hardware
Published: 2018-02-10 22:38:26

---
title: "worst day"
published: true
tags: postgresql,hardware
canonical_url: 
---

## 21:40 - æœåŠ¡ä¸å¯ç”¨

ç›‘æŽ§å®æç¤ºHomepageæ— æ³•è®¿é—®ï¼Œä»¥ä¸ºæœ‰äººåœ¨éƒ¨ç½²ï¼ŒåŽæ¥å…¶ä»–æœåŠ¡ä¹Ÿä¸å¯ç”¨ï¼Œç™»å½•åˆ°æœåŠ¡å™¨ä¸Šçœ‹å‘çŽ°`top`éƒ½ä¸èƒ½æ‰§è¡Œäº†ï¼ŒæŠ¥è¿‡`Bus error`å’Œ`Segment fault`ç­‰ï¼Œçœ‹`/var/log/syslog`å‘çŽ°æ˜¯`RAID`å¡å‡ºé”™ï¼Œä»Ž`iDRAC`ä¸Šçœ‹æ²¡æœ‰é”™è¯¯ï¼Œ`RAID`å¡å’Œç”µæ± çŠ¶æ€æ­£å¸¸ã€‚

ç›®å‰å·²ç»æ— æ³•æä¾›æœåŠ¡äº†ï¼Œé‡å¯è¯•ä¸€ä¸‹ã€‚

`RAID`å¡æ— æ³•è¢«è¯†åˆ«åˆ°ï¼Œç³»ç»Ÿè¿›ä¸åŽ»ã€‚

å¼ºåˆ¶åˆ·ä¸€ä¸‹`RAID`å¡å›ºä»¶ï¼Œå¤±è´¥ï¼Œéƒ½æ— æ³•è¯†åˆ«ï¼Œä¹Ÿæ²¡æ³•åˆ·å›ºä»¶äº†ã€‚

å…³æœºï¼Œç­‰ç¬¬äºŒå¤©åŽ»æœºæˆ¿æŠŠç£ç›˜æ¢åˆ°å¦ä¸€å°æœºå™¨ä¸Šï¼Œå¦ä¸€å°æœºå™¨æœ‰åž‹å·ä¸€æ ·çš„`RAID`å¡ã€‚

## 7:00 - èƒ½è¿›ç³»ç»Ÿäº†

ç¬¬äºŒå¤©æ—©æ™¨å¼€æœºåŽå‘çŽ°å¯ä»¥è¿›ç³»ç»Ÿï¼Œä½†æ•°æ®åº“å¯åŠ¨ä¸äº†ï¼Œå¯èƒ½æ•°æ®åº“çš„æŸäº›æ–‡ä»¶è¢«ç ´åã€‚

å†æ¬¡é‡å¯æœºå™¨ï¼Œç³»ç»Ÿæ— æ³•å¯åŠ¨ï¼Œéœ€è¦`fsck`

## 8:10 - è¿›å…¥æœºæˆ¿

åŽ»æœºæˆ¿æŠŠæœåŠ¡å™¨ç”µæºæ‹”æŽ‰ï¼Œé•¿æŒ‰å¼€æœºé”®è®©ç”µé‡è€—å…‰ï¼Œå¦‚æžœè¿™ç§resetè¿˜æ˜¯æ²¡èƒ½è§£å†³é—®é¢˜ï¼Œå°±åªèƒ½æ›´æ¢åˆ°å¦ä¸€å°æœåŠ¡å™¨äº†ã€‚

hardware resetä¸ç®¡ç”¨ï¼ŒæŠŠç£ç›˜æ”¾å…¥å¦ä¸€å°æœåŠ¡å™¨ã€‚

å¯åŠ¨æ—¶æé†’éœ€è¦import raidé…ç½®ï¼Œimportè¿›å…¥ç³»ç»Ÿæç¤ºéœ€è¦`fsck`

æ‰‹å·¥æ‰§è¡Œ`fsck`ï¼Œå‡ºçŽ°å¾ˆå¤šé”™è¯¯ï¼Œä¸€ä¸€ç¡®è®¤åŽè®©`fsck`ä¿®å¤ï¼Œå¯ä»¥è¿›å…¥ç³»ç»Ÿã€‚

å¤‡ä»½ç³»ç»Ÿåˆ°åˆ«çš„æœåŠ¡å™¨

## 14:30 - ä¿®å¤æ•°æ®åº“

æ•°æ®åº“ï¼ˆPostgreSQL 9.6ï¼‰å’Œä¸€äº›é™æ€æ–‡ä»¶æœ‰æŸå

å¤‡ä»½äº†æ•°æ®åº“çš„`data`ç›®å½•åŽï¼Œå¼€å§‹è¯•ç€æ¢å¤æ•°æ®åº“

resetäº†xlogï¼Œç”¨`dd`åˆ›å»ºäº†ä¸€ä¸ªå…¨`0`çš„clogï¼Œæ•°æ®åº“å¯ä»¥å¯åŠ¨ï¼Œä½†æœ‰äº›å¥‡æ€ªçš„æ•°æ®ï¼Œ`dump`å‡ºæ‰€æœ‰æ•°æ®é‡å»º`database`å†`restore`ï¼Œå› ä¸ºæˆ‘ä»¬æ¯”è¾ƒåœ¨æ„databaseçš„å»ºæ¨¡ï¼Œå¾ˆå¤šæœ‰å…³ç³»çš„è¡¨ä¹‹é—´éƒ½æœ‰å¤–é”®çº¦æŸï¼Œ`restore`çš„æ—¶å€™èƒ½å¸®æˆ‘ä»¬å‘çŽ°å¾ˆå¤šä¸ä¸€è‡´çš„æ•°æ®ï¼Œåªå¥½fix-dump-restoreæµ‹è¯•ï¼Œä¸€ç›´åˆ°æ‰€æœ‰æ•°æ®éƒ½æ­£å¸¸åŽï¼Œ`vacuum`ï¼Œ rebuild index

## 21:00 - ç»“æŸ

çœŸæ˜¯worst dayï¼ŒçŽ°åœ¨çœ‹æ¥æ•°æ®åº“æ–¹é¢æœ‰æ›´å¥½çš„ä¿®å¤æ–¹æ³•ï¼Œèµ·ç å¯ä»¥åšåˆ°åªä¸¢å¤±æœ€è¿‘çš„ä¸€éƒ¨åˆ†æ•°æ®ï¼Œç„¶è€Œæˆ‘ä»¬æ²¡æœ‰realtimeçš„æ•°æ®åº“å¤‡ä»½ä¹Ÿæ˜¯ä¸ªå¤§é—®é¢˜ï¼Œå‡†å¤‡ä½¿ç”¨[Barman](http://www.pgbarman.org/)æ¥è§£å†³è¿™äº›é—®é¢˜ï¼Œå¦å¤–æœåŠ¡å™¨ç¡¬ä»¶ä¹Ÿæœ‰ä¸€äº›ä¸œè¥¿éœ€è¦é‡æ–°è€ƒè™‘
Magento Product Designer Extension
Tags: magento, php, webdev, web2print
Published: 2017-09-02 06:08:05

---
title: Magento Product Designer Extension
published: true
description: Magento product designer extension
tags: magento, php, webdev, web2print
---

<iframe width="560" height="315" src="https://www.youtube.com/embed/IVcrWuPGwIw" frameborder="0" allowfullscreen></iframe>

**Magento Advance Product Designer** is a Magento based online product designer tool that allows your customers to create their own printable designs that they can use on the products they order. It is a powerful personalization tool with the most advanced set of features available in the market at this price point. To know more visit **https://www.appjetty.com/magento-product-designer.htm**