teleren/devto huggingface dataset:
Ryan Dahl contribution to Javascript
Tags: ryandahl, node, javascript, webdev
Published: 2019-05-11 18:14:05

---
title: Ryan Dahl contribution to Javascript
published: true
description: Ryan Dahl changed the way of running Javascript. Read the full post to know, how he did it.
tags: ryan dahl, nodejs, javascript, webdev
---
In 1995, Javascript was used to build dynamic interactive web pages. Animations and Interactive Components on the client side were build using Javascript.
Over the next whole decade, the use of javascript remained the same until 2009, when a software engineer named Ryan Dahl invented a new way to run javascript on Server Side. He introduced Node.js to the development world.

At first, people didn’t realize the magic of running javascript on the server side, they started ignoring it but later in 2010, Isaac Z. Schlueter invented npm (node package manager) which is purely written in Javascript. People started moving towards Javascript.

Google launched AngularJS and JAVASCRIPT WAS THE TALK OF THE HOUR. Everyone started using it and many other javascript frameworks were built like Node.js. After that, the community of javascript increased drastically and learning frameworks became a trend. With the introduction of Typescript, CoffeeScript in the web development, the area of javascript expanded from web browser to native mobile and desktop applications.

Top Front End Javascript Frameworks

* React – A JavaScript library for building user interfaces (https://reactjs.org/)

* Angular (https://angular.io/)

* Vue.js (https://vuejs.org/)

Server Side Javascript Framework

* Node.js (https://www.nodejs.org)

* Ember.js: A framework for ambitious web developers (https://www.emberjs.com)
Mobile Development

* React Native · A framework for building native apps using React (https://facebook.github.io/react-native/)

* Apache Cordova (https://cordova.apache.org/)

* Ionic - Cross-Platform Mobile App Development (https://ionicframework.com/)

Desktop Application

* Electron | Build cross-platform desktop apps with JavaScript, HTML, and CSS. (https://www.electronjs.org)

I have mentioned the important technologies that are dominating the field.
With the fast evolution of the javascript world, it is becoming hard for developers to opt for the correct technology. But the one that I have mentioned are the ones that are not going anywhere, they are here at least for a decade.

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

Fun fact: Javascript was written in 10 days in 1995. Cheers!
How to Get Started With Open Source?
Tags: technology, programming, software, opensource
Published: 2019-05-12 10:53:37

---
title: How to Get Started With Open Source?
published: true
tags: technology,programming,software,open-source
canonical_url: https://medium.com/@bhavaniravi/how-to-get-started-with-open-source-7fb69dc03506
---

With a video walkthrough where I actually make a PR.

1. Pick a Problem
2. Solve that Problem using open source
3. Be the critique and find fault in the system.
4. Don’t bad mouth, just raise issues
5. Offer to fix them
6. Give the fix and collaborate with them on making it better
7. Pray all gods, and hope your fix gets merged.

Watch the tutorial video, where I walk you through how to pick a problem and actually solve it and give a pull request.

{% youtube YGdhUP-etTY %}

![](https://cdn-images-1.medium.com/max/1024/0*3VMA8P_rGzRGANUZ)
Collection Of Over 30 Dev Tips
Tags: beginners, webdev, tips, career
Published: 2019-05-11 18:06:12

---
title: Collection Of Over 30 Dev Tips
published: true
description: I've collected all the various dev tips that I've been tweeting for the past while - check them out!
tags: #beginner, #webdev, #tips, #career
cover_image: https://thepracticaldev.s3.amazonaws.com/i/d2scdyg9v8ma9qrej1gb.png

---

I've been using Twitter to write various short tips for software developers over the past few months.

I've collected them all as a Twitter Moment and will continue to add any future tips.

Enjoy!

{% twitter 1127269806485508102 %}
Deploy Project for Free
Tags: netlify, deploy, website, react
Published: 2019-05-11 17:59:03

---
title: Deploy Project for Free
published: true
description: Easily deploy the project for free with Netlify and BitBalloon
tags: netlify, deploy, website, react
---

I am listing the best options to deploy your project for free on providers with high bandwidth and high uptime.

![Netlify](https://thepracticaldev.s3.amazonaws.com/i/1z47bukkfiklhase6v1i.png)

Netlify https://www.netlify.com/
Bitbucket Pages https://pages.bitbucket.io/
Github Pages https://pages.github.com/

Free hosting like Free Web Hosting — Start a Blog or Make a Website For Personal Use.

![Netlify](https://thepracticaldev.s3.amazonaws.com/i/ko2wxn81t85l65g0h31a.png)
Ghost 2 Blog on Heroku
Tags: heroku, blogging, ghost, ipfs
Published: 2019-05-11 17:26:09

---
title: Ghost 2 Blog on Heroku
published: true
tags: Heroku,blogging,Ghost,IPFS
canonical_url: https://blog.fission.codes/ghost2-blog-on-heroku/
---

[Ghost](https://ghost.org/) is blogging software written in Node.js. [Coby Chapple @cobyism](https://twitter.com/cobyism) did the original hard work and got [Ghost 1.x running on Heroku](https://github.com/cobyism/ghost-on-heroku).

I forked this repo and updated the `package.json` to refer to the latest versions of Ghost 2.x, the Casper default theme, and the Amazon S3 storage adapter.

It's now running [the FISSION blog](https://blog.fission.codes), so we know it works!

You can use this Deploy to Heroku button to create a Ghost 2 blog now:

<!--kg-card-begin: markdown-->

[![Ghost 2 Blog on Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/bmann/fission-ghost)

<!--kg-card-end: markdown-->

You will need to have or create Amazon S3 credentials for file uploads to work, and you'll probably want to setup a custom domain, but your blog should be up and running and you can create your first user.

With the Mailgun add-on, you're using sandbox mode which can only send to email addresses that agree to receive email. This is used only for account invites and password resets, just remember to whitelist the email address before inviting new staff.

## Custom Domain and SSL Known Issues

When switching to a custom domain, `PUBLIC_URL` needs to be set. Ghost won't pick up this new URL until a Heroku redeploy happens (even though no code changes happen). This is a known issue, and you need to manually redeploy for Ghost to pick up the change. See issue [fission-ghost/1](https://github.com/bmann/fission-ghost/issues/1)

If you're using Cloudflare for your DNS and are setting a custom domain with SSL, you may run into an issue with infinite redirects. This is a known issue with the "Flexible" SSL setting on Cloudflare, and you'll need to turn off Cloudflare proxying for the custom domain you're pointing at Heroku. See issue [fission-ghost/2](https://github.com/bmann/fission-ghost/issues/2)

If you find any other issues, please [file an issue](https://github.com/bmann/fission-ghost/issues), or come chat to us in our [Discord server](https://discord.gg/daDMAjE).

## IPFS Support & Future Research

Since we're using Ghost to run our own (this!) blog, we're going to put creating an IPFS Storage Adapter for Ghost on our roadmap.

Ghost supports SQLite as a database option. Since this is a file based database, this could theoretically be hosted on IPFS.

Using Ghost to author content and then publish it in flat file mode for IPFS publishing, or to have an IPFS version of each blog post are other interesting areas of exploration.

Let us know if you have other ideas for Ghost + IPFS!
Using a SageMaker XGBoost model in scikit-learn
Tags: aws, machinelearning
Published: 2019-05-20 09:01:21

---
title: Using a SageMaker XGBoost model in scikit-learn
tags: aws, machinelearning
published: true
canonical_url: https://medium.com/@julsimon/using-a-sagemaker-xgboost-model-in-scikit-learn-3574b93a2535
---

This is a quick post answering a question I get a lot: “_how can I use in scikit-learn an XGBoost model that I trained on SageMaker?_”.

Here it goes. Once you’ve trained your [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html) model in SageMaker (examples [here](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/introduction_to_amazon_algorithms)), grab the training job name and the location of the model artifact.

> I’m using the CLI here, but you can of course use any of the AWS language SDKs.

```
$ export TRAINING\_JOB\_NAME='xgboost-190511-0830-010-14f41137'

$ export MODEL\_ARTIFACT=`aws sagemaker describe-training-job \
--training-job-name $TRAINING\_JOB\_NAME \
--query ModelArtifacts.S3ModelArtifacts \
--output text

$ echo $MODEL\_ARTIFACT
s3://sagemaker-eu-west-1-613904931467/sagemaker/DEMO-hpo-xgboost-dm/output/xgboost-190511-0830-010-14f41137/output/model.tar.gz
```

Then, download the artifact and extract the model.

```
$ aws s3 cp $MODEL\_ARTIFACT .

$ tar xvfz model.tar.gz
x xgboost-model
```

The model is a pickled Python object, so let’s now switch to Python and load the model.

```
$ python3
>>> import sklearn, pickle
>>> model = pickle.load(open("xgboost-model", "rb"))
>>> type(model)
<class 'xgboost.core.Booster'>
```

You’re done. From now on, you can use the model as if you’d trained it locally. For example, you can dump it and visualize it.

```
>>> model.dump\_model('model.txt')
>>> exit()

$ head model.txt
booster[0]:
0:[f2<512] yes=1,no=2,missing=1
 1:[f1<3.5] yes=3,no=4,missing=3
  3:[f2<1.5] yes=7,no=8,missing=7
   7:[f42<0.5] yes=15,no=16,missing=15
    15:leaf=0.508301735
    16:leaf=1.51004589
   8:leaf=1.72906268
  4:[f52<0.5] yes=9,no=10,missing=9
   9:leaf=1.39554036
```

See? That was super easy :)

Thanks for reading. Happy to answer questions here or on [Twitter](https://twitter.com/julsimon).
JavaScript Introduction
Tags: beginners, tutorial, learning, javascript
Published: 2019-05-31 10:20:11

---
title: JavaScript Introduction
published: true
tags: beginners, tutorial, learning, javascript
canonical_url: https://www.codetips.co.uk/languages/javascript/javascript-introduction/
---

> JavaScript is a lightweight programming language. It is most well-known as the scripting language for Web pages, but it's also used for non-browser environments such as Node.js

 ![JavaScript Introduction](https://images.unsplash.com/photo-1502101872923-d48509bff386?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ)

JavaScript came into existence in 1995, so it's not a new language. It is [dynamically typed](https://codetips.co.uk/intermediate/translation-and-types/) and it's an [interpreted language](https://codetips.co.uk/intermediate/translation-and-types/).

For many years it was used as a web page scripting language only. You can use JavaScript in the browser to make network calls (when one website wants to get information from another), to write games you can play in your browser and to make magical things happen when you click a button, and many many more things.

Put simply - if you want to write a website, chances are you're going to need to write some JavaScript. Although there are other languages capable of running in the browser, JavaScript is by far the most popular choice.

Instead of learning JavaScript by writing a website, we're going to focus on learning the language itself.

Luckily for us, in 2009, Node.js was born. We don't need to go into any real details about what Node.js is, other than it's a runtime environment that we can use to write and run JavaScript without a browser.

<!--kg-card-begin: hr-->
* * *
<!--kg-card-end: hr-->

So let's download it!

You can download Node.js by going to their [official website](https://nodejs.org/en/) and clicking the green download button (we recommend going for the Long Term Support (LTS) version).

<!--kg-card-begin: image-->

![JavaScript Introduction](https://www.codetips.co.uk/content/images/2019/05/image-1.png)

<!--kg-card-end: image-->

Once you've downloaded/installed Node.js you can verify your installation by running the following commands:

<!--kg-card-begin: code-->

```
node --version
npm --version
```
<figcaption>Commands to check node and npm versions</figcaption>
<!--kg-card-end: code-->

If they both output a version, you'll need to install a Code Editor (we recommend [Visual Studio Code](https://code.visualstudio.com/docs/introvideos/basics)), and then you're good to move on to the next articles.

If you get stuck and need some help, drop us a comment and we'll try to help you.
Simple html table using html-react-table NPM package
Tags: javascript, react, npm, html
Published: 2019-05-11 15:38:21

---
title: Simple html table using html-react-table NPM package
published: true
description: json based html table
tags: javascript, ReactJs, NPM, HTML5
---

install this package using: npm install --save html-react-table


   import ReactHtmlTable from 'html-react-table';
   
   const columns = [{ key: 'id', name: 'ID' }, { key: 'title', name: 'Title' },
                    { key: 'company', name: 'Company' }];

   // in columns pass the header attribute of table
                    
   const rows = [{ id: x, title: 'Title x', company: 'Company x' }, ...];

  // in rows pass the body json of table based on header attribute


   const ReactTable = () => {
   return <ReactHtmlTable
    columns={columns}
    rows={rows}
    />);
    } 


  for more info: https://www.npmjs.com/package/html-react-table
Handling change as a Developer Advocate
Tags: devrel, career, conferences, talks
Published: 2019-05-11 15:30:36

Back in March, I had the honour and pleasure to give the closing keynote at [DevRelCon Tokyo 2019](https://=//tokyo-2019.devrel.net). 

I've been in developer relations - specifically in the role of a Developer Advocate - for around 10 years now, and it was a good opportunity to reflect over how my life and career has changed, as well as capturing what I hope are some lessons and thoughts that have a more general application to all of us - whether in DevRel, or in developer and software engineering roles.

This was the elevator pitch:
> From APIs, technologies, and tools, to team and roles: change is constant in our careers, and in life. Let's talk about some of the changes you're likely to have to adapt to as you progress in the Developer Relations profession, and understand how they can contribute to burnout.

{% youtube 1Kk000sZGFQ %}

Uncertain about the differences between DevRel, Dev Advocacy, and other terms you may have heard? Check out Mary Thengvall's [recent post and the discussion it sparked](https://dev.to/peter/comment/ali4)! This is one of the reasons why I love the DEV community!

Finally: if you're interested in this space, Twitter is currently [hiring for a Developer Advocate in Tokyo](https://careers.twitter.com/en/work-for-twitter/201903/developer-advocate-japan-tokyo-.html). I'd be happy to chat. I'm [@andypiper on Twitter](https://twitter.com/andypiper).
Programming Paradox
Tags: discuss, career
Published: 2019-05-11 14:26:40

---

title: Programming Paradox

published: true

description: Random thoughts about career progress

tags: discuss, career

cover_image: https://inspirelearningacademy.com/wp-content/uploads/Lets-Talk.jpg

---


For little over five years I'm working for the same company, many people changed technologies, projects, mentors etc. In some cases people who are really excellent programmers code less and less. They are now some coder/manager hybrid, a bridge between client and the team. And I understand the need for that position, we need someone to explain technical stuff to a (probably) nontechnical client. But that got the thinking, do you find it weird that the better coder you became, you spent less time coding, and more time in the meetings?
How do you write requirements?
Tags: discuss, requirements, learning
Published: 2019-05-11 13:54:20

---
title: How do you write requirements?
published: true
description: Provide examples of your favorite requirements formats
tags: #discuss #requirements #learning
---

There are tons of posts and classes and videos and podcasts about soliciting requirements, what makes a good requirement, types of requirements, all that. What I can never seem to find is how to actually put the requirements down in a format that is usable.


Im going to lay out my requirements for a requirements doc in the few formats I’ve seen used.  Let me know your favorite way to organize requirements and even provide examples if you can.

## The Big List
This is usually what I get when I receive requirements from someone. It’s a large, somewhat hierarchical, list of functional requirements. It will look something like this:

1. Clear descriptions of the requirements
2. Traceability

    2.1. Issue tracker should be able to point back to the requirement

    2.2. Future enhancements should reference the original behavior

    2.3. When regression testing, it should be clear what the expected behavior is for a feature at the current version of the project 
3. Priority
4. Easy to parse (for humans)

#### Pros
1. Each requirement gets a unique ID which makes it easy to refer to

#### Cons
1. It gets very dense very quickly, making it hard to parse
2. No obvious structure, where should you put the priority?
3. Real life requirements rarely fit into a neatly hierarchical list (should security requirements be mixed in as siblings or their own top level?)

## Jira Requirements
This can really be whichever issue tracker you use, the premise will probably be the same. Developers tend to do their work against an issue tracker, so it makes sense for them to have all the info they need in one place.

You can create Epics for large features which contain small specific implementation tasks. Epics can span across versions to keep track of improvements made over time. 

#### Pros
1. Unique IDs
2. Easy to link between issues
3. Each issue contains only the info it needs so it’s easier to focus on what you’re trying to read
4. Usually there are comments and history tracking to help evolving requirements

#### Cons
1. Hard to get a big picture view (depending on how good reporting is for your issue tracker)
2. You have to convince and train whoever is writing requirements to use the issue tracker


Most of the time we use some combination of these two methods, but there’s always confusion at some point. So what do you do, how do you keep your requirements organized?
Refactoring old code vs Rewriting everything for long-term?
Tags: help, discuss, vue, typescript
Published: 2019-05-11 12:55:35

---
title: Refactoring old code vs Rewriting everything for long-term?
published: true
tags: #help #discuss #vue #typescript
---


Hi devs! I'm finding myself in a tricky situation and I'd really appreciate if you could express your opinion on my approach to this. 

So I'm working on a feature for a vue app and I realized that in order to implement it, I need to refactor a big and important part of the code.

I'm prone to a lot of frustrating debugging hours If I choose to refactor this way.

So I came with the following idea: rewrite everything with TypeScript and also write useful tests. Even though it would take more than just refactoring, I strongly believe that this idea will help me long-term.

What would you advise me to do?

Thank you for your time.

*Thank you a lot for your awesome piece of advice!*
SCSS: Ampersand Rules
Tags: scss, css, webdev
Published: 2019-05-11 12:53:47

---
title: SCSS: Ampersand Rules
published: true
cover-image: https://thepracticaldev.s3.amazonaws.com/i/wwfnelnlpqyj737b1mny.png
description: Using the & after a declaration you can set a css rule to apply given that the selector that has the & after actually applies when it is the parent of the element it is nested under 🤔...
tags: scss, css, webdev
---

## Explanation
Using the `&` after a declaration you can set a css rule to apply given that the 
selector that has the & after actually applies when it is the parent of the element it is nested under. 🤔? So basically, you read the rule inside out. So in the first example you read if `.parent-in-this-case` & is the parent of `.some-class`, then apply this rule.

## Why? 🧐
So why might you do this? One example is to affect a style for only ie-9 for 
example and if you apply a class when a browser is ie-9 or below you can set specific styles within a block that only apply when ie-9 is the parent class on the html tag. Check the docs <a href="https://sass-lang.com/documentation/file.SASS_REFERENCE.html#parent-script" target="_blank">here</a>.The `&` in scss offers a lot of power, but can also be a bit confusing so be mindful of your usage! Let's check out some examples:

```scss
# scss
.some-class {
	font-weight: normal;
  
  	.parent-in-this-case & {
  		font-style: italic;  
  }
}
```

That compiles to this css:
```css
.some-class {
  font-weight: normal;
}
.parent-in-this-case .some-class {
  font-style: italic;
}
```

Here is some other useful ampersand usage:
```scss
.el {
    font-size: 12px;
    &:hover {
        color: blue;
    }
    &.active {
        font-weight: bold;
    }
    &--larger {
        font-size: 14px;
    }
}
```
That compiles to this css:
```css
.el {
  font-size: 12px;
}
.el:hover {
  color: blue;
}
.el.active {
  font-weight: bold;
}
.el--larger {
  font-size: 14px;
}

```

Here you can see the convenience and power of the ampersand. If you're using something like <a href="http://getbem.com/introduction/" target="_blank">BEM</a> it makes it very easy and quick too add in custom elements and modifier classes.

[Original Post on Dev Diaries](https://www.dev-diaries.com/social-posts/scss-ampersand-rule/)
[Instagram Post On Dev Diaries](https://www.instagram.com/p/BvGkv6DgDr4)
Sawia | A community to share your open-source projects
Tags: contributorswanted, rails, sideprojects, opensource
Published: 2019-05-11 12:50:29

---
title: Sawia | A community to share your open-source projects
published: true
description: A community for sharing a curated list of open source projects to contribute, Join & share your work.
tags: contributorswanted, ruby-on-rails, side project, opensource
---
<img src='https://thepracticaldev.s3.amazonaws.com/i/oudju33r3si1didzqdyb.png'>
Recently I was working on a side project to fill my time, As lately I do care more about open-source projects & contributions.
Many times I faced an issue to find a project that could match my skills and really having good documentation for contribution.

Therefore, [Sawia](https://www.sawia.xyz) was launched a few days ago. My aim is to help and support the open-source community and developers who aim to find projects to work on.

I'm working alone on it these days and any contribution for it is most welcomed on this [Github Repo](https://github.com/karazlab/swyya)

Honestly, I'm doing my best to make this project a real thing and helpful. Lack of free time as a full-time developer and family man sometimes killing me. But I'm doing the best I can to make it bigger.