teleren/devto huggingface dataset:
Runkod - Decentralized Web Hosting
Tags: blockstack, decentralization, frontend
Published: 2019-10-26 10:31:10

Hey devs!

Today i would like to share some details on our new project [Runkod](https://runkod.com). 

Runkod is a decentralized hosting platform for any client side web (html, javascript, frontend frameworks etc.) applications and static web publishing.

Built top on [Gaia](https://github.com/blockstack/gaia) storage by [Blockstack](https://blockstack.org). It is 100% Blockstack application. No 3rd party services are used.

Main purpose of Runkod is to provide a decentralized and stable hosting platform to developers and help them to speed up their deployment processes while reducing their server expenses.

Although it is beta version some folks started to use it for production purposes. Some developers use it for daily builds. Makes sense and sound reasonable. I believe they will migrate  their production environments to Runkod soon :)

---

# How Runkod Works?

In essence Runkod is a file router between internet and gaia storage that handles visitor requests and serve files over gaia storage.

![Runkod Diagram](https://i.imgur.com/BLvqdoH.jpg)

----

I believe Runkod will become an extremely useful tool for frontend developers. Give it a try and please let me know what do you think.

----

<center>
[runkod.com](https://runkod.com) | [@runkodapp](https://twitter.com/runkodapp)
</center>

----

*My other project on Blockstack, [Lander](https://landr.me), may get your attention.*
Being A Great Programmer
Published: 2019-10-26 08:27:01

1. Get good at Googling
Being a programmer is all about learning how to search for the answers to your questions. By learning to Google things effectively, you'll save a lot of development time.

2. Under-promise and over-deliver
It's better to let your team know a task will take three weeks and deliver in two than the other way around. By under-promising and over-delivering, you'll build trust.

3. Be nice to your designers; they're your friends
Designers provide solutions to user pain points. Learn from them and work cohesively to build effective products.

4. Find a mentor
Find someone you can learn from and bounce ideas off of. Coding Coach is a great place to get started if you need a technical mentor!

5. Be a mentor
Be someone others can learn from and bounce ideas off of. We'd love to have you as a mentor over at Coding Coach

6. Write useful comments
Write comments which explain the "why" and not the "what".

7. Name variables and functions appropriately
Functions and variables should accurately denote their purpose, so myCoolFunction won't fly.

8. Take vacations
We all need time to decompress. Take that trip you've been wanting. Your brain and your co-workers will thank you.

9. Delete unused code
No reason to accrue more technical debt.

10. Learn to read code
Reading code is an undervalued skill, but an invaluable one.

11. Establish a healthy work/life balance
You need time to decompress after a long workday. Shut off work notifications, remove apps off your phone.

12. Only schedule necessary meetings
Can it be solved in an email or a Slack message? If so, avoid a meeting. If not, be conscious of the duration. Aim for less.

13. Pair program
Pair programming allows you to play the role of both teacher and student https://bestinsulincooler.com/.


14. Write great emails
Learn to capture your audience in your emails by being succinct yet clear. Nobody wants to read your four-page email Jerry.

15. Get involved in the community
Surrounding yourself with like-minded people will motivate you to push through the lows.
Trying out Ktor as a Spring Developer - The beginning
Tags: ktor, kotlin, spring, java
Published: 2019-10-26 09:53:43


## Introduction
Spring Boot is the standard framework for backend services. Every backend service I write is in Kotlin with Spring Boot. I prefer Kotlin over Java because Kotlin is less verbose and much more concise. From the Kotlin community, more frameworks are being built. Ktor is one of them. What is Ktor?

> Ktor is a framework for building asynchronous servers and clients in connected systems using the powerful [Kotlin programming language](https://kotlinlang.org). 
>
> &mdash; <cite>[Ktor.io](https://ktor.io/)</cite>


## Research Questions
In this series we are going to explore Ktor and compare it to a simple Spring Boot service. In this adventure, there are many questions to be answered:

 - What is the performance of a Ktor application versus a Spring Boot application? 
 - What are the resource characteristics of both? 
   - What is the throughput?
   - What is the CPU usage?
   - What is the memory usage?
 - What is the complexity when services grow?
 - What are the coding conventions compared to each other?
 - What is the stability of the Ktor framework compared to Spring Boot?

## Follow the series
Come along this adventure of exploring Ktor and seeing how it works and performs. I will post tweets regarding this on my twitter handle [@martinbeentjes](https://twitter.com/martinbeentjes). I also will be sharing projects on GitHub when finished.

This is a cross-post from my blog at [beentjes.me](https://beentjes.me/programming/2019/10/25/spring-boot-to-ktor.html).


## Feedback 
This is the first article in a series I am starting to develop my writing skills. I appreciate any feedback to improve my writing and the series itself. Feel free to contact me on social media or here!
Conditional (ternary) operator in JavaScript
Tags: javascript, beginners, tutorial, webdev
Published: 2019-10-26 09:32:36

This video shows how you can refactor your existing function using an if statement to a ternary operator.

In our example we create a function that returns true or false based on whether the number has at least 2 digits in it. Initially we do this using an if statement and at the end of the video we show the power of a ternary operator by doing it in a single line.

Have a great weekend!

{% youtube ssKBJBLs2f4 %}
Learning JavaScript #Day-03
Tags: javascript, beginners, webdev, productivity
Published: 2019-10-26 09:32:23

Struggled with inconsistency regarding my JS learning, was running short on some Deadlines, Well let's not get into excuses. After this 4 day gap and with my lost momentum, finally got the pace again and balanced the imbalanced. 

Started with the 'LOOPING', and here comes my favourite loop called 'FOR LOOP'. The syntax is all the same, so nothing much to invest time in it.

Then comes the objects: pretty much interesting. It is said that JavaScript always revolves around the objects. To put objects in simpler term- "objects are collections of the variables on which the programmer is going to play with".
Below is an example of how to implement objects in javascript:

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

Objects also hold functions, you can define them inside the objects and if that function want to access the properties of objects then, JS gives you a Keyword known as **THIS** keyword. 

THIS keyword refers to the object it belongs to. Below is the implementation of the same.

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

Also learned some string manipulation by using some methods like:
1. *includes()*- which checks the given string if it has included your provided parameter or not.

2. *UpperCase() / Lowercase()*-- This converts your given string into uppercase or lower case.


Also learned Math function and random() which gives you the random no. between 0 and 1.

There are lots of functions and kinds of stuff to play with and it really improves your blueprint of coding in javascript. So practising on your desired programs will really help you to sharpen your JS skills. 
Below is a program which I implemented by using a few concepts that I learned.


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




 so again I am keeping up with the momentum and will focus on being consistent and keeping the blog up to date. It's really dun coding in JS.

Your suggestions and tips are always welcomed :)

**Happy Coding!!**

Anas Khan
How the software help my organization or what benefits are there for me as a Business Owner?
Tags: news, webdev
Published: 2019-10-26 09:31:03

When you have software aligned with your business processes, it results in higher productivity and efficiency and ultimately higher profitability. In today’s competitive business environment overall cost in running a business plays an essential role in the higher margin. 

Our software is architected in alignment with the specialized business process while working with business owners and actual users. We have all functionalities needed in a particular business and user-friendly interface enabling users to work with minimal training.

WIMS is like a mini ERP for all kind of institute and training organization. Manage your operations like batch schedule, Student/Employee Management, Attendance and Course Tracker. We genuinely believe in customer success using our Products and Services.

Our Strong reporting Tool helps in informed decision making, and Informative Dashboard provides a quick snapshot of overall business for managers and owners. In addition to this, since we are the maker, therefore we can customize it as per your needs.

We have developed all the required functions which can help to achieve the desired result with minimal effort and fewer resources and not to mention with easy to use interface.


Get Software Free Demo...
Put some Tailwind in your Elm
Tags: elm, tailwindcss
Published: 2019-10-26 09:18:07

*tl;dr* a [postcss plugin](https://github.com/monty5811/postcss-elm-tailwind) to put your Tailwind classes into Elm

{% github monty5811/postcss-elm-tailwind %}

## What

Go from this:
```elm
Html.div [ A.class "container mx-auto" ] [] 
```

To this:
```elm
Html.div [ TW.container, TW.mx_auto ] [] 
```

## Why

* **More compiler guarantees** - catch typos in your class names. Elm can't tell you that `A.class "mx-uato"` is a typo, but it will tell you `TW.mx_uato` doesn't exist.
* **Code completion** - leverage code completion for Elm to know which tailwind classes are available

## How

* We create a new postcss plugin that grabs all the classes in your css
* For each class we create a new Elm function that looks something like this:

```elm
{-|Tailwind class:
    xl:z-40"
-}
xl_z_40 : Html.Attribute msg
xl_z_40 =
    A.class "xl:z-40"
```

* We then write out each of these new functions to create an Elm module that you can import like any other

The Elm module generated with the default Tailwind build is about 900kb, but the Elm compiler removes any functions that are unused: so you don't need to worry about your asset size. It can take a few seconds to compile the module - but this only needs to happen once for every time you change your Tailwind config.

## Get Started

1. Install: `yarn add postcss-elm-tailwind`
2. Add `require("postcss-elm-tailwind")({ elmFile: "src/TW.elm" })` to your `postcss.config.js` file
3. Start using the generated Elm module `import TW`!


Check out the

* [repo](https://github.com/monty5811/postcss-elm-tailwind)
* [demo](https://postcss-elm-tailwind-demo.onrender.com/)
* [demo source](https://github.com/monty5811/postcss-elm-tailwind/tree/master/demo)
Hacktoberfest and privacy concerns
Tags: hacktoberfest, privacy, security, anonymous
Published: 2019-10-26 07:39:17

Sooner or later it happens to everybody. To me, it happened yesterday. Before, I was just thinking about it as a funny joke to [watch on YouTube][youtube].

Do you use Firefox?
Do you know there is an Mozilla-made extension to block tracking from Facebook? Have you ever wondered, why there is no such an extension to restrict Google? Because that will [return you to nineties][gizmodo]. Search bar, maps, fonts, content delivery networks, logins, analytics, ads, etc. you name it. We are very dependent on Google. And this all not mentioning Chrome, Pay, Cloud Platform, Pixel, Home and other [prominent products][glass].

What this all has to do with Hacktoberfest? First of all I want to thank Digital Ocean and Dev for organizing it. I participated for the first time and made some really inspiring contributions(inspiring for me, of course). Yesterday I received a mail about HacktOVERfest. I am sure most of you did. I was on my phone, so I couldn't really enjoy the Twitter part. When I later was on my laptop, I decided to re-read the email, because I was curious what the other people tweeted about the Fest. This was what I saw.

{% twitter 1183789942998294528 %}

Cool, I thought to myself. Really awesome contributions! Then I went to the service [which would cost $1,173 per year][cnbc] to find out the following video on the front page.

{% youtube PkxTfrI2680 %}

Scary, isn't it? Especially, taking into consideration that I haven't watched Simpsons since their movie.
Previously, people were scared of Man in the Middle attacks, and we can [try to deal with this concerns][ltt]. We can also use a [mobile VPN][warp], but when it comes with data we entrust to a service? Well, we can only try to lower our dependencies. Use Firefox, at least to show support against the browser monopoly, use DuckDuckGo or Ecosia to support privacy/tree oriented engines, etc.. Just let's not stay indifferent. It's not about the right to remain unknown while surfing for 18+ content or using hatespeech, it's about fundamental right of choice. Everything big companies want to do with your data should be brought to you as an explicit opt-in.

Thanks again for Hacktoberfest, it opened my eyes for many things. Let's support OSS! My next posts will not be as sad.

[youtube]: https://www.youtube.com/watch?v=zBnDWSvaQ1I
[gizmodo]: https://gizmodo.com/i-cut-google-out-of-my-life-it-screwed-up-everything-1830565500
[glass]: https://www.google.com/glass/start/
[cnbc]: https://www.cnbc.com/2019/10/11/fed-tries-to-figure-out-value-of-free-internet-services-to-americans.html
[warp]: https://warp.plus/iEZTZ
[ltt]: https://www.youtube.com/watch?v=YNp4OqdxHWI
Record Linux terminal session
Tags: programming, linux, productivity
Published: 2019-10-26 14:00:10

---
title: Record Linux terminal session
published: true
date: 2019-10-26 06:30:00 UTC
tags: programming, linux, productivity
canonical_url: https://varunbarad.com/programming/2019/10/26/record-linux-terminal-session.html
---

I was recently setting up my computer with Ubuntu on it and this time I was decided that I would document every step of the process so that I can get it done faster the next time. That thought and process worked easily for the programs whose installations were just a simple `sudo apt install ...` but when I was installing something new (like VS Code) there were many steps involved and it wasn’t an easy task to document them as I went on installing those things.

What I decided to then do was to just record my terminal sessions for each such long program and review those recordings later to write a script for everything that I needed to do.

Linux has a handy utility called `script` which does just that. If it isn’t pre-installed then you can easily install it with `sudo apt install script` as it is generally available in the default PPA.

Using it is straight-forward too.

```shell
script <file_name_to_write_record_to>
```

I also find these options to be of significance:

- `-a, --append`: This appends the recording if the file is already existing.
- `-c, --command <command_which_is_to_be_recorded>`: If you want to record the interaction of a program with terminal then you can use this.

I found this command to be quite helpful in my recent endeavour of documenting the setup process and think it might others too. Want to discuss this or any other interesting thing, hit me up on Twitter [@varun\_barad](https://twitter.com/varun_barad)
CSS3 in 10 days — Day 9
Tags: css, webdev, tutorial, beginners
Published: 2019-10-26 06:29:33

Welcome to Day 9 of learning CSS. 

As i have told earlier, this series is inspired by [this](https://www.youtube.com/watch?v=pmKyG3NBY_k&list=PLWKjhJtqVAbl1AfjiGyYxwpdAPi5v-1OU) awesome youtube series in freecodecamp channel.

We will start with 3D Layering Effect on day-9. Open your code editor and create a new 9.1-3DLayer folder and two files index.html and sandbox.css inside it.

Next, in index.html put the basic html.

![Basic Html](https://cdn-images-1.medium.com/max/2880/1*jmtvbZ3Sd1bFOZBzvvTprw.png)*Basic Html*

Now, add the img folder containing these images. All the svgs are from the layer.psd file.

![Images](https://cdn-images-1.medium.com/max/2880/1*VEdqjffdEDhEnFh1oj_niQ.png)*Images*

Now, let’s put some basic CSS in sandbox.css to show all the svg images.

![sandbox](https://cdn-images-1.medium.com/max/2880/1*xIvLrRGcL5Xtnk7myZfiEw.png)*sandbox*

It will show as below in browser.

![Initial svgs](https://cdn-images-1.medium.com/max/2880/1*eNMjRRHrvPY_8c3vG-x2fg.png)*Initial svgs*

Next, let’s align the images in svg by putting this in sandbox.css

![Aligning](https://cdn-images-1.medium.com/max/2876/1*ppoM4mTyZvljPSdlIudkZg.png)*Aligning*

It will perfectly align all the svg images.

![Aligned images](https://cdn-images-1.medium.com/max/2880/1*La2t3-sEUoFxFJZCAfu0IA.png)*Aligned images*

Now, it’s time for the 3D effect. We are basically using translate and rotate to rotate each svg image, but the key here is to use perspective as it gives 3D effect.

![3D effect](https://cdn-images-1.medium.com/max/2880/1*YST7PVYKsC67mLkQ5oq6Nw.png)*3D effect*

This gives our image this nice animation, with all layers separating on hover.

![Layer animation](https://cdn-images-1.medium.com/max/2000/1*jsa2Ea15mV6L7YYrCseZ3g.gif)*Layer animation*

We will next start with Dropdown menu on day-9. Open your code editor and create a new 9.2-DropdownMenu folder and two files index.html and sandbox.css inside it.

Next, in index.html put the basic html.

![Basic dropdown](https://cdn-images-1.medium.com/max/2880/1*jJcvdw7WdW7-Rf2eBzzp7Q.png)*Basic dropdown*

With the basic html our page looks like below.

![Basic Page](https://cdn-images-1.medium.com/max/2880/1*9IFGTgUnUBsYG7HxylW8BQ.png)*Basic Page*

Let’s put some basic css in sandbox.css

![Basic CSS](https://cdn-images-1.medium.com/max/2880/1*xekys8gf4h_SQ9gSirS0gg.png)*Basic CSS*

It will style the button nicely

![Button styled](https://cdn-images-1.medium.com/max/2880/1*1ZaF_odVTPIDlXg93XgbAQ.png)*Button styled*

Let’s now complete the dropdown css.

![CSS complete](https://cdn-images-1.medium.com/max/2880/1*bR6Kdpzus1WwtLkpMS7ZRg.png)*CSS complete*

It will complete our dropdown and show this nice dropdown on hover.

![The Dropdown](https://cdn-images-1.medium.com/max/2000/1*5fGrafJS3V0tljPGeOaXFA.gif)*The Dropdown*

This completes day 9 of the course. You can find the code for the same [here](https://github.com/nabendu82/CSS10days).
When should I use curly braces for ES6 import? The Best StackOverflow answer ever🙌
Tags: react, stackoverflow, howto
Published: 2019-10-26 05:39:50

---
title: When should I use curly braces for ES6 import? The Best StackOverflow answer ever🙌
published: true
description: follow the link https://stackoverflow.com/questions/36795819/when-should-i-use-curly-braces-for-es6-import/36796281#36796281
tags: reactjs, stackoverflow, how to
---

follow the link https://stackoverflow.com/questions/36795819/when-should-i-use-curly-braces-for-es6-import/36796281#36796281

Because i don't like to copy past exact things 😉🤣
What is your favorite Silicon Valley myth?
Tags: watercooler, discuss, healthydebate
Published: 2019-10-26 03:27:45

I find myths fascinating.
Myths matter, even or especially when they are wrong.
Myths shape the perception of people believing them.
Myths therefore shape their actions as well.

What is your favorite myth in the startup / silicon valley / internet culture? Ideally something widely believed but that you know is wrong.

Why is it wrong? 
What part of it is true and what is the correct take?
Do you expect the myth to die anytime soon?
The Best Thing for Your Resume
Tags: career, opensource
Published: 2019-10-26 02:49:54

As someone who is actively reading a lot of resumes, I feel the need to share this piece of advice: contribute to open source and put it on your resume. Why? Contributing shows things that degrees, bootcamps, and even work experience can’t.

1. You can write code. Sure the other things on your resume imply this but having code you’ve written available on your GitHub account for employers to see proves it.

2. You can read code. This is a much harder skill and extremely important to employers- it means training you will be much easier.

3. You can collaborate with others. Not only will your code be available for employers to see but so will your interactions with others in the form of issues.

4. You can use Git. This probably isn’t important to every employer but it’s definitely important to some.

5. You’re passionate. Let’s face it, no one contributes to open source who isn’t interested in the topic.

There are a lot of things you can do to show these things to potential employers, but I find open source contribution to be the strongest among them. It also has the added benefit of being the right thing to do for our community. So get out there and contribute! Speaking from experience it can be a bit rocky to start, but it’s well worth it. You can start by checking out listings on this site!
Free Resume Reviews for Devs
Tags: career, motivation, hiring, beginners
Published: 2019-10-26 01:21:49

We're happy to announce our newest weekly series - shred it. Every week, we'll be reviewing a resume line by line, providing constructive feedback, and sharing ideas on how to make it shine. We want to show you how a recruiter or hiring manager looks at your resume to give you more insight on what to focus on. **A successful job search starts with a solid resume.**

The feedback we give will be the exact thoughts we have as if we're evaluating you for an interview. Any feedback is meant to constructive and help you find a job.

### Who Should Apply?

Anyone is welcome to apply, but the team has only interviewed and hired from the tech and marketing industries. We'll give you feedback, just keep in mind it could be off base if you're applying for a mining engineer position because we know nothing about it. 😅

### Submission Instructions

1. Please remove your name, address, email address, and any other personal information. We'll be sharing this on our blog that's accessible by everyone.
2. Keep job titles and experiences.
3. Choose to keep one of the following: company names or education names.
4. Email your resume to [marcus@calderadigital.com](mailto:marcus@calderadigital.com) and write `Shred It` in the subject line.
5. Let us know what kind of luck you've had with it and what kind of job you're targeting.

If your resume is chosen we'll let you know and email you the feedback before sharing it.

## Let's Get to Shredding!

{% youtube IuqcG5nl2dU %}

And no, we won't literally shred your resume (unless it's like [the one I had in college](https://alcamine.com/blog/applying-online-won-t-land-you-a-job-here-s-what-will) in which case we might).
Trial and Error is a terrible way to program.

Published: 2019-10-26 00:58:05

Before you start typing code, you need to figure out what you want to do and how you want to do it.

Being the computer whiz that you are, it is extremely tempting to sit down at the computer and start bashing keys until your code works properly. If you were to follow this trial and error method, it would take much more time to program something than usual, and you will find yourself scratching your head in frustration as you try to figure out the problem. It is best to plan out your coding session by deciding what to do. To do this, you can create code schematics, or flow charts. These will give you an outline of what needs to be done and how. You can also create psuedocode to determine what you want to do.