IndyWatch Education Feed Archiver

Go Back:30 Days | 7 Days | 2 Days | 1 Day

IndyWatch Education Feed Today.

Go Forward:1 Day | 2 Days | 7 Days | 30 Days

IndyWatch Education Feed was generated at Community Resources IndyWatch.

Friday, 16 February


How I built a public, anonymous chat app in JavaScript "IndyWatch Feed Education"

Photo by Kristina Flour on Unsplash

Were all familiar with instant messaging and using it to chat to people in realtime. Sometimes, though, we might want an app which allows us to send messages anonymously to friends, or to chat anonymously with strangers in close proximity. An example of such an app is Truth, which lets you talk with people on your contact list without disclosing your identity.

In this tutorial, Ill be showing you how to build a public anonymous chat app in JavaScript (using NodeJS and Express on the server, and VanillaJS on the client) and Pusher. Pusher allows us to build scalable and reliable realtime applications. Since we need realtime delivery of chat messages, this is a key component of the chat app. The image below depicts what we will be building:

The final product

Getting Started

Lets kick off by signing up for a free Pusher account (or logging in if you already have one). Once youre logged in, create a new Pusher app from the dashboard and make a note of your App ID, Key, and Secret, which are unique to an app.

To create a new Pusher app, click the Your apps side menu, then click the Create a new app button below the drawer. This brings up the setup wizard.

  1. Enter a name for the application. In this case, Ill call it chat.
  2. Select a cluster.
  3. Select the option Create app for multiple environments if you want to have different instances for development, staging, and production.
  4. Select Vanilla JS as the frontend and NodeJS as the backend.
  5. Complete the process by clicking the Create my app button to set up your app instance.
Creating the pusher app

Code-up the server

We need a backend which will serve our static files and also accept messages from a client and then broadcast to other connected clients through Pusher. Our backend will be written in NodeJS, so we need to set it up.

We need a package.json file, and Ill add it by running the command below. Ill use the defaults provi...


Mornings, Nights, and Weekends: How I Changed Careers and Became a Programmer "IndyWatch Feed Education"

Change is hard. Changing careers while holding a 95 can feel down right impossible at times. It requires a great amount of discipline, motivation, inspiration, and most importantly, courage.

It takes courage to grow up and become who you really are.
E.E. Cummings

It also requires a great deal of time. Despite the current microwave culture of success, changing careers and improving ones well-being doesnt happen over night. My journey from Sales and Marketing in the music industry to programming began back in October 2014 in Brooklyn. It took 10 months and ~1400 hours of self teaching to get my first full-time developer gig in Philly.

I firmly believe that anyone, no matter their background, can do this.

By telling my story, I hope to encourage those currently in the trenches of change moving from one career to another, and also inspire those that have crossed over to share their stories. Sharing is caring after all, right?

Why do you want to Change?

Photo by Mike Tinnion on Unsplash

Begin with the end in mind.

I wanted to learn to code and change careers because I wanted to improve my financial situation and build solutions to problems. Economic mobility and being able to solve a problem for anyone anywhere in the world were the primary catalysts of change.

Clearly defining why you want to make a big move is incredibly important to help keep yourself motivated on a long journey.

Also, as a word of caution, if youve got a stable job that isnt toxic and you ultimately want to work for yourself, becoming a programmer and working for another company wont make you much happier than you are now.

At the end of the day, a job is a job. If you dont like the employer/employee dynamic now, that wont change simply because youre a programmer. If youre interested in lifestyle design, controlling your schedule, when/where you work, just know that there are less opportunities available.

There are thriving communities of Indie Hackers that are trying to Get Out by building their own businesses and revenue-generating products.

One path is not better than the other. Just know what you want out of your new career and make a conscious de...


A Passion for Learning Leads to an Internship "IndyWatch Feed Education"

After completing over 10 courses in data science and programming, Shubham D. landed a job as a content developer and become a Coursera mentor. Read his story:

Im currently working as a Software Analyst in Mumbai, India. I joined Coursera after graduation and its helped me gain experience and develop and design my own website. I completed The Data Scientists ToolboxR Programming, Introduction to HTML5, Programming for Everybody, and more. These courses changed the way I view data science and gave me a new set of technical skills. 

After completing various data science courses on Coursera I got an internship as a content developer using the programming languages I learned. Coursera has definitely helped me pursue my passion and land this position. I was able to showcase my course projects on web development, theory of computation, and graph theory when applying.

I recently became a mentor on Coursera, and have truly enjoyed helping others while learning from the questions that are being asked. As Abdul Kalam, former President of India said, Always remember to never stop learning. As learning gives creativity, creativity leads to thinking, thinking provides knowledge, and knowledge makes you great. 

Explore our Data Science courses here:


The post A Passion for Learning Leads to an Internship appeared first on Coursera Blog.


Mentorship and Networking My strategy based on open source involvement "IndyWatch Feed Education"

My first year of medical school was in 2003, a time when caring for HIV/AIDS patients was difficult due to lack of antiretrovirals (ARVs). Now as every medical student knows, the excitement of getting to the clinical rotations is unparalleled walking down the inpatient halls with a stethoscope around your neck , taking care of you own patients are among the joys of a young medical student.

However, my dreams were crashed pretty fastI spent more time chasing after lab results that were lost. But in typical Judy style of being at the right place at the right time, I connected with Ben Wolfe (the first developer for OpenMRSthe largest open source medical records system in the world used in over 40 countries) and the rest is history.

I could tell that Ben was wondering when the only girl in his class would drop off, but those 4 pm hands on meetings proved to be one of the most valuable investments of my time

Fast forwardand now I have worked in health open source software for many years as a developer, implementer, and evaluatortraveling around the world and making friends whose purpose is to improve patient care in places with limited resources. Nonetheless , I am not one to command a room when I walk inI am soft spoken, and as most Americans will be quick to remind me Where is your accent from ? and a woman of color.

However I am still able to connect to people doing amazing work, most of whom have let me sit on their shoulders and opened innumerable opportunities for this village girl. In summarizing how I network, I realized my strategy is the open source wayI volunteer to maintain an open source radiology imaging system at , and share my experience below. I hope this article helps both mentors and mentees looking to make a difference for diversity in STEM and medicine.

1. Welcome to the community

At LibreHealth, the first post we encourage our new members to write is a short blob about themselves. I check this every other day and give a thumbs up to new members or a like for a new post to send a message that someone saw their message.

Librehealth meet the community post

How can you introduce STEM to minorities? By sharing your social capitaleven with simple things like retweets and tags of people who are doing amazing work if you have a big social media presence. Remember most minorities will be shy to propose themselves for award nominationsso give them a shout out for things like the RedHat open source award or the Anita Borg awards Dont for...


[PODCAST] #544: Peter Gray (Part Three) A Future of Self-Directed Education "IndyWatch Feed Education"

Part Three of Three My marathon conversation with Peter Gray concludes with an exploration of Peter's vision for the future. It's a bold vision, but he describes the observations that led him to believe it will become a reality for more and more children and families in the coming years. The future is self-directed education. ...


Why so Many Developers Quit Before Ever Getting a Job. Pleasedont. "IndyWatch Feed Education"

Why so Many Developers Quit Before Ever Getting a Job. Pleasedont.

Prototypes, objects, algorithmsthose small steps between steps you dont know how to implement.
Grrrthinking like a programmer.

Finish this sentence:

My last coding session was

  1. Smooth as silk. I sat down comfortably, fired up my editor and dove into the lovely world of 0s and 1s. Those 3 hours passed like 30 minutes!
  2. Sooo boring. I barely forced myself to sit down and code. Nothing quite worked very well, errors were popping all the time and still not everything makes sense to me. These 30 minutes felt like 3 hours!

My guess is answer #2.

And not because its so common and also has happened to me (even after 8 years of programming).

Answer #1 is weird. Who even talks like that?

Ok, ok. Well talk about overwhelm in programming. I know weve all been thereit happens way too often and we hate it.

But I tried to go deeper.

Over the past few years, Ive dealt with plenty of junior developers. Including some who:

  1. Recently broke into tech and felt lost
  2. Got stuck in the tutorial phase and cringed every time they had to code without supervision
  3. Were actually talented but failed at interviews or never even got a call

Where is the breaking point?

As the essence of my work is helping new developers find a job, I took the time to study their problems and really try to empathize with their needs.

I talked to colleagues at my company. I researched Facebook groups, forums, Q&A websites, huge Reddit threads and even surveyed a couple of small communities.

Heres part of what I found:

I felt like I just copied what was in the videos and that was it.
I have to make do with googling for existing examples that someone else has already written. I feel like a 3-year-old trying to solve calculus puzzles. Its so frustrating.
I just cant think like a programmer.

And my favorite one:

This is what Ive learned about learning to code: You feel confused and completely unworthy like 99% of the time. But......


Tools I wish I had known about when I started coding "IndyWatch Feed Education"

Photo by from Pexels

In the tech world, there are thousands of tools that people will tell you to use. How are you supposed to know where to start?

As somebody who started coding relatively recently, this downpour of information was too much to sift through. I found myself installing extensions that did not really help me in my development cycle, and often even got in the way of it.

I am by no means an expert, but over time I have compiled a list of tools that have proven extremely useful to me. If you are just starting to learn how to program, this will hopefully offer you some guidance. If you are a seasoned developer, hopefully you will still learn something new.

I am going to break this article up into Chrome Extensions and VS Code extensions. I know there are other browsers and other text editors, but I am willing to bet most of the tools are also available for your platform of choice, so lets not start a religious argument over our personal preferences.

Feel free to jump around.

Chrome Extensions

Photo by Caio Resende from Pexels

Now that I am a self-proclaimed web developer, I practically live in my Chrome console. Below are some tools that allow me to spend less time there:

  • WhatFontThe name says it all. This is an easy way of finding out the fonts that your favorite website is using, so that you can borrow them for your own projects.
  • PesticideUseful for seeing the outlines of your
    s and modifying CSS. This was a lifesaver when I was trying to learn my way around the box-model.
  • ColorzillaUseful for copying exact colors off of a website. This copies a color straight to your clipboard so you dont spend forever trying to get the right RGBA combination.
  • CSS PeeperUseful for looking at colors and assets used on a website. A good exercise, especially when starting out, is cloning out websites that you think look cool. This gives you a peek under the hood at their color scheme and allows you to see what other assets exist on their page.
  • ...


Why Im Teaching Younger Students At My School How To Code "IndyWatch Feed Education"

And why you should teach someone how to code, too

Imagine if you grew up around people but never learned the language they spoke to each other. Wouldnt it be absurd? Yet, technology powers almost everything in todays world and most children have no idea about language it speaks.

This rapid growth of technology requires a rapid pace of education to follow it, but it is pretty clear that schools are far behind. They just take too long to revise their curriculum. In my current Grade 10 computer science course, CDs are considered hi-tech. 

This is why I decided to take matters into my own hands and teach students in my school about technology.

Im a fifteen year old with a strong passion for all things tech, and Ive been coding for almost 2 years now.

Here are some reasons why teaching every child how to code is important.

1. Technology is becoming increasingly present in our lives

This increasing trend of technology permeating through almost every aspect of our existencetransport, entertainment, productivity, and even educationdoesnt seem to be slowing down. In fact, because of Moores Law, its speeding up, exponentially.

We should at least have a basic understanding of the systems around us and how they work, and for that, children need to learn programming.

2. It empowers children to be more than consumers

Instead of playing video games and using apps, children can now gain the crucial skills required to make them. Should they find these skills interesting, they can refine them to take it up as a career.

Programming is amazing in the sense that you can create anything using technology that you already have access tonetworks, utilities, even whole worlds. You name it.

Its only by introducing kids to this opportunity that they will understand the possibilities.

3. It teaches them how to think

Everybody in this country should learn to program a computer, because it teaches you how to think.Steve Jobs

Programming teaches fundamental problem solving skills like breaking things down into small tasks, keeping things simple and modular, and learning from your mistakes.

The skills kids learn from programming can be applied to many areas of their lives.

4. Students become self-sufficient learners



One hour of side project coding a day - UPDATE #1 "IndyWatch Feed Education"

How to take advantage of any spare time you have to deliver mini side projects

who needs fancy protoyping tools?

This is the first update since my post about my plans to do one hour of side-project coding a day in 2018. I wanted to give it at least a month before I did any updates, so Id have some time to see how it was going after the initial burst of enthusiasm!

Insight #1 - Take any spare chance you get to work on your side-projects

That image at the top of the post is a photo of two pictures - one is (Im sure youll agree) a rather splendid painting of a flower, by one of my daughters, and the other is an early mockup of screen designs for an app Im building.

I drew them one Saturday morning in January when my kids asked me to paint with them. I wanted to draw something with them - but they insisted that I draw something myself. They didnt want me interfering with their paintings but wanted me to spend time with them! (As an aside, almost 10 years of parenting has taught me that all kids really want is to spend some quality time with you).

So I took the opportunity to draw some designs - and get some feedback from the kids in the process. Its all about the early feedback 

Likewise, theres been a few other times in the month when, instead of planning to sit down to write some code, or work on some backend services, Ive just come across some spare time. If this happens - grab the MacBook and do some work before something else comes along. I stayed up late to watch the Superbowl - and got a ton of work done on an app!

Insight #2 - Plan your side-projects as well as you plan your professional ones

Just because youre building something in your spare time doesnt mean you shouldnt go through the same rigorous process that you would while building a professional app at work. At a high level for each project you should:

  • Design first. Dont just start building, design out what youre going to build and why.
  • Validate your design by seeking feedback from family or friends. I dont think Ive ever regretted asking for peoples opinions on designs or projects. You dont have to agree with everything they say, but in general more than one set of eyes is always better.
  • Plan how youll build the design. I use Trello to plan tasks, even without going into too much detail:
  • I fi...


How I applied lessons learned from a failed technical interview to get 5 job offers "IndyWatch Feed Education"

It was almost like a dream. I had taken 6 months off to go all in on coding and moving to Australia with my girlfriend, when I finally returned to Norwayand a job.

It almost went without a hitch. I had it all. Ill start by providing you a bit of my entrepreneurial background.

I spent the last 6 months tirelessly working on my portfolio and personal projects. Most notably, I created CryptoDasher, a tool for tracking Crypto currencies and portfolio values in real time. I also submitted an entry to a web design contest for a Chinese blockchain company called Loopring.

I felt ready. I applied for a frontend developer job with a large consulting company in Norway, and I caught their attentionor at least I thought so.

After passing a home assignment and first round interview, I was invited for the technical interview.

The main event.

I was nervous.

How do you prepare for the technical interview? I asked myself. I asked around and searched the internet like crazy. I watched mock interviews on YouTube. Here are some of the resources I used:

I spent hours and hours slaving over this material, trying to prepare myself as best as I co...


How to deploy a Node.js app to the AWS Elastic Beanstalk "IndyWatch Feed Education"

It took me the better part of a month to figure out how to setup an Amazon Web Services (AWS) account, configure a Node.js app for deploying, and then actually deploy it.

A lot of that was trying to decipher Amazons documentation. Hopefully this guide will get you on the road to deploying from local to live without too much of a headache.

I am located in Los Angeles, so when youre setting up your configuration the defaults may not be exactly the same.


  1. Basic command line knowledge
    Im sure you can do this without the command line, but its way easier to use the CLI
  2. An AWS account
  3. The Elastic Beanstalk Command Line Interface (EB CLI)
    Instructions on installation below
  4. Basic knowledge of Git

Setting up an AWS Account

The first thing you have to do is setup an AWS account. If you already have an account, make sure you have an IAM user that has API keys and the appropriate access.

Create an Account

Pretty straightforward. Create an account. The signup process should walk you through everything pretty easily. When you first setup an AWS account, youll get root access. However, its security best practices to create a separate user that you will use to login regularly.

Setup your IAM

NOTE: I am not an expert with AWS Identity and Access Management (IAM). The actions I took were for my own personal use case and may not be suitable for your needs. Review the permissions thoroughly before giving users access.

AWS publishes best practices regularly, get one from 2016 here.

Setup a group

Before you setup a user for you to login with, create a group that will manage permissions. In my case I setup a SuperAdmin group that I was going to put myself into so I could have access to everything.

For this group, since its basically to login and have access to everything myself, I chose AdministratorAccess as the permission.

For more info on IAM Groups, go here.

Setup an IAM User

Setting up a user is pretty simple, but if you get stuck, checkout the...

Thursday, 15 February


An intro to ROUGE, and how to use it to evaluate summaries "IndyWatch Feed Education"

ROUGE stands for Recall-Oriented Understudy for Gisting Evaluation. It is essentially a set of metrics for evaluating automatic summarization of texts as well as machine translations.

It works by comparing an automatically produced summary or translation against a set of reference summaries (typically human-produced). Lets say that we have the following system and reference summaries:

System Summary (what the machine produced):

the cat was found under the bed

Reference Summary (gold standardusually by humans):

the cat was under the bed

If we consider just the individual words, the number of overlapping words between the system summary and reference summary is 6. This, however, does not tell you much as a metric. To get a good quantitative value, we can actually compute the precision and recall using the overlap.

Simply put, recall (in the context of ROUGE) refers to how much of the reference summary the system summary is recovering or capturing. If we are just considering the individual words, it can be computed as:

In this example, the recall would thus be:

This means that all the words in the reference summary have been captured by the system summary, which indeed is the case for this example. Voila!

This looks really good for a text summarization system. But it does not tell you the other side of the story. A machine generated summary (system summary) can be extremely long, capturing all words in the reference summary. But, many of the words in the system summary may be useless, making the summary unnecessarily verbose.

This is where precision comes into play. In terms of precision, what you are essentially measuring is, how much of the system summary was in fact relevant or needed? Precision is measured as:

In this example, the Precision would thus be:

This simply means that 6 out of the 7 words in the system summary were in fact relevant or needed. If we had the following system summary, as opposed to the example above

System Summary 2:

the tiny little cat was found unde...


Express.js and AWS Lambda a serverless love story "IndyWatch Feed Education"

If you are a Node.js developer or youve built an API with Node.js, theres a big chance you used Express.js. Express is de facto the most popular Node.js framework.

Express apps are easy to build. For a simple app, you just need to add a few routes and route handlers. Thats it.

A simple, traditionally hosted Express.js app, with a single request.

For example, the simplest Express app looks like the following code snippet:

'use strict'
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello world!'))
const port = process.env.PORT || 3000
app.listen(port, () =>
console.log(`Server is listening on port ${port}.`)

If you save that code snippet as app.js in a new folder, you are just three steps away from having a simple Express app:

  1. Create a new Node.js project. To do so, run the npm init -y command in your terminal. Just make sure you navigated to the folder that contains app.js first.
  2. Install the Express module from NPM by running the npm install express --save command from terminal.
  3. Run the node app.js command, and you should see Server is listening on port 3000. as a response.

Voila! You have an Express app. Visit http://localhost:3000 in your browser, and youll see a Hello world! message.

Application deployment

Now comes the hard part: How can you show it to your friends or family? How to make it available for everyone?

Deployment can be long and painful process, but lets imagine you manage to do it quickly and successfully. Your app is available to everyone and it lived happily ever after.

Until one day, an unexpected an army of users started using it.

Your server struggled, but it worked.

A simple, traditionally hosted Express.js app under load.

At least for some time. And then it died. 

A simple, but dead, traditionally hosted Express.js, that crashed because too many users accessed it.

An army of users is angry (at least they didnt pay for the appor did they?) You are desperate and trying to Google the solution. Can the cloud help?

Cloud should fix your scaling issues, right?

And youve met one of your annoying friends again. Shes talki...


How To Develop a Successful Travel App Like Priceline, Expedia and Airbnb "IndyWatch Feed Education"

The tourism sphere is a huge business sector that includes lots of components: travel agencies, insurance companies, hotels, restaurants and so on.

Its rather hard to overestimate the importance of mobile devices in this fieldpeople need access to high quality service while they are away from their PCs and unable to be physically present at the office. This is where mobile apps truly shine.

Why launch a Travel App: a new landmark on the digital landscape

Lets take a look at the numbers before we dive deeper into the topic:

  • In 2009 the amount of downloads worldwide was about 2.5 billion.
  • In 2011 it reached 3.1 billion.
  • We can expect the number to exceed 7 billion at the end of 2017 which is more than twice as much as six years ago.

The smartphones are about to replace laptops and PCs when it comes to online shopping. If your business is connected with this field and for some reason you still dont have your own mobile app, its time to think about it.

For travel companies as well as online retailers the advantages of a mobile application for business are quite obvious. It serves to boost the sales, improve the quality of service, and make clients more loyal to the brand and its products.

Mobile travel apps include:

  • Google and Apple Maps
  • Travel planners
  • The apps that show you WiFi hotspots nearby
  • The apps that allow you to book hotels and tickets everywhere you go
  • The apps that can find services for those with special needs

Launching a really helpful app for your users is a great way to get ahead of your competitors. Lets take a look at these facts.

Today almost everyone has a smartphone. 65% of the travelers prefer to plan their trips with the help of mobile apps.

Most businessmen (actually about 70% of them) book their tickets and hotels via mobile apps.

Around 80% of travel companies, hotels and aviation companies profit from brand exposure, income increase and other factors after an app launch.

Every tourist would definitely want to have an app that allows him to navigate easily everywhere they go. The travel mobile app can include dictionaries, maps, and guides to different places of interest (cafs, restaurants, museums and other). About 75% of the travelers use at least one mobile app during their trip.

At the mom...


Essential skills every developer should master (besides coding) "IndyWatch Feed Education"

Photo by nic on Unsplash

Whether you are learning to code, looking for a new job, or just want to improve your skills as a developer, you need to master the essential tools of team collaboration. These are as important as knowing how to code.

It is teamwork that makes or breaks software projects.

Your code will work eventually. If you want it to work on time and be of good quality, you and your team need to be organized.

  • Everyone needs to know what they have to do and when
  • Peoples work should not overlap or clash
  • Common rules need to be followed through by everyone

You can achieve this using the right processes and tools. You want your team to focus on coding 90% of the time (the remaining 10% are for coffee breaks and Windows Updates).

Here are three essential things you need to master.

Git and Pull Requests

Configuration management is the foundation of team collaboration in software. Many tools exist for it, but luckily one has become the absolute and ultimate reference: Git.

Documentation on the key aspects is well described in the Git Book.

There are plenty of turnkey services to get started: GitHub is probably the most popular, but also BitBucket or GitLab.

A great graphical tool to work with is SourceTree. I recommend you master the command line before reaching for UI tools, though.

Below are the questions you should know how to answer:

Thats it, and...

IndyWatch Education Feed Archiver

Go Back:30 Days | 7 Days | 2 Days | 1 Day

IndyWatch Education Feed Today.

Go Forward:1 Day | 2 Days | 7 Days | 30 Days

IndyWatch Education Feed was generated at Community Resources IndyWatch.

Resource generated at IndyWatch using aliasfeed and rawdog