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.

Wednesday, 22 November

19:39

Fahim Discovers his Passion for Programming "IndyWatch Feed Education"

Fahim is a student in Dhaka, Bangladesh and after taking Introduction to HTML5 on Coursera, he discovered his passion for programming and hasnt looked back. Read his story:

After graduating from high school I was unsure about what subject to study in college. At first I decided to major in electrical engineering, but was getting more and more frustrated with each passing day because I wasnt interested in the subjects being taught in class. Then I discovered Coursera, and after completing two programming courses I started to think about changing my major. I took Introduction to HTML5,  Interactivity with JavaScript, and Java Programming and Software Engineering Fundamentals.

I realized that I really like programming and discussed changing my major with my parents, but they were skeptical. I showed them the certificates I got from Coursera and they were pleasantly surprised that I was utilizing the internet as a learning tool, and became supportive of my new passion. Im now doing my undergraduate degree in Computer Science, and these courses are keeping me up to date on the latest topics while also helping me prepare me for my exams.

I am also participating in the ACM International Collegiate Programming Contest, and Im thankful to Coursera for being my founding step towards the beautiful world of programming. I did not know anything about programming before I started doing courses on Coursera and now Im working as a Front End Developer.

Explore our programming courses to start your path towards becoming a developer: http://bit.ly/1WvLn4U

 

The post Fahim Discovers his Passion for Programming appeared first on Coursera Blog.

15:41

How to create beautiful Stretchy Layouts on iOS using Auto Layout and SnapKit "IndyWatch Feed Education"

Check the image below. This is a cool effect.

And its really easy to build in iOS using Auto Layout. I wanted to write about this because the effect is so simple. And Auto Layout makes its implementation so elegant that I think you ought to know about it.

If you want to follow along, you can clone the demo project at our starting point and implement the effect as you read along. Youll need Xcode 9 as were going all-in on iOS 11 for this example.

git clone https://github.com/TwoLivesLeft/StretchyLayout.git
cd StretchyLayout
git checkout Step-1

Heres how well do it:

  • Start with the basic non-stretchy app
  • Modify the view hierarchy to add the necessary constraints to
    make it stretchy
  • Add polish to the app

The non-stretchy app

Were going to build this using an Auto Layout framework called SnapKit. SnapKit is a simple iOS framework that makes Apples Auto Layout APIsane. Its dead simple to use, and makes programming with Auto Layout genuinely pleasurable.

Most of the code will live in viewDidLoad of our StretchyViewController class. Below you can see how the initial constraints are set.

Our views are declared as private members:

private let scrollView = UIScrollView()
private let infoText = UILabel()
private let imageView = UIImageView()

Our view controllers view has a scroll view as its first subview, followed by the text and image views. It also has a backing view which provides us with
the red background behind the text.

//Pin the edges of the scroll view to
// our view controllers view
scrollView.snp.makeConstraints {
make in
make.edges.equalTo(view)
}
//Pin the top of our image view to the scroll view
// pin the left and right to the view controllers view
// give it an aspect ratio constraint by constraining
//...

12:51

How JavaScript variable scoping is just like multiple levels of government "IndyWatch Feed Education"

Have you ever smashed your keyboard in frustration after getting an undefined value over and over again while trying to find the value of a variable?

Or, have you named two variables the same thing after hours and hours of coding, only to discover your mistake later?

Both of these issues can be related to the scope of your variable. Scope defines where your variables will be accessible throughout your script.

When you correctly scope your variables, you will find that your code is easier to read and debug for any viewer.

The problem

Before the ES6 update to JavaScript, you could only declare variables with var. Since var does not limit the scope of the variable, you would be forced to guess whether the variable had a global scope or local scope.

Now, JavaScript allows you to declare variables with const and let. They may add some complexity, but they make your code much easier to understand.

Unfortunately, most tutorials describe these scopes as either boxes within boxes or one-way glass. I dont know about you, but I dont spend much time packing boxes within boxes or looking through layers of one-way glass!

I think I have a better way. Scope can be explained by looking at the ways that international laws, national laws, and local laws work together. So, you only need to understand that different levels of government exist to learn about the different levels of scope. Heres a quick preview, and then well get into it!

Drinking laws are annoying but hopefully not too controversial

I am going to try and avoid any laws that relate to current political issues.

Global scope (United Nations)

Variables that are defined at the top-level of your script are globally scoped. They are available to all functions. These are called global variables.

These are similar to international laws. Keep in mind that it is pretty tough to pass laws that all 193 members of the United Nations will agree to. So, these laws should only cover the most fundamental human rights. The United Nations does not get involved in drug policy or religious laws that might concern individual countries. Two examples might be:

Slavery is prohibited.

Chemical weapons are prohibited.

This means that these laws will be valid for any country that is part of the United Nations, as well as for any state or p...

12:21

How to make your life easier using functional programming in TypeScript "IndyWatch Feed Education"

Over the last two years, the JavaScript community has been talking about functional programming. Functional programming allows us to build better software without designing complex class trees. Today, I will explain how to use function composition in Typescript and Lodash.

The code can be found on Github.

What is function composition?

Function composition involves combining two or more functions to create a more complex one. Feeling confused? No worries, the following example will make it clear:

const f = function (a) { return a + 1 };
const g = function (b) { return b * b };
const x = 2;
const result = f(g(x)); // => 5

I combined two functions herefunction f and function g. Function f adds 1 to the a parameter, and function g multiplies the b parameter by b. The result is 5.

Lets reverse-engineer it:

  1. constant x equals 2
  2. constant x becomes an argument of function g
  3. function g returns 4
  4. function g output (4) becomes an argument of function f
  5. function f returns 5

Its not rocket science, but it doesnt look particularly useful. Actually, it looks even more complex than keeping it within one function. That may be true, but lets consider some realistic use cases.

The real-world example: money formatting

I was building a simple job posting for developers. One of the requirements was to display salary ranges next to every offer. All salaries were stored as cents and needed to look like this:

from: 6000000 
to: 60,000.00 USD

It looks easy, but working with text is hard. Almost every developer hates it.

We all spend hours writing regular expressions and dealing with unicode. When I need to format text, I am always trying to Google the solution. After cutting off all libraries (way too much for my needs) and all the code snippets that suck, theres not so much left.

I decided I needed to build it on my own formatter.

How do we build it?

Before we start to write code, lets dig into an idea I found:

  1. Split dollars and cents.
  2. Format dollarsadding thousand separators is not so easy.
  3. Format centsdealing with...

08:09

Rails Authorization with Pundit "IndyWatch Feed Education"

Pundit is a Ruby gem that handles authorization via a very simple API.

Remember that authorization is different from authenticationauthentication is verifying that you are who you say you are, and authorization is verifying that you have permission to perform an action.

Pundit is squarely within the authorization campuse another authentication system like Devise to handle authentication.

How you work with Pundit

Step 1: You create a Policy class that deals with authorizing access to a specific type of recordwhether it be a Blog or Potato or User.

Step 2: You call the built-in authorize function, passing in what youre trying to authorize access to.

Step 3: Pundit will find the appropriate Policy class and call the Policy method that matches the name of the method you are authorizing. If it returns true, you have permission to perform the action. If not, itll throw an exception.

Its pretty straightforward. Logic for specific models is encapsulated into its own policy class, which is great for keeping things tidy. Competing authorization library cancancan had issues with complicated permissions getting out of hand.

Minor tweaks required

Pundits simple conventions sometimes need to be tweaked to support more complex authorization use cases.

Access more information from within a Policy

By default, Pundit provides two objects to your authorization context: the User and the Record being authorized. This is sufficient if you have system-wide roles in your system like Admin or Moderator, but isnt enough when you need authorize to a more specific context.

Lets say you had a system that supported the concept of an Organization, and you had to support different roles within those organizations. System-wide authorization wont cut ityou dont want an admin of Organization Potato to be able to do things to Organization Orange unless they are an admin of both organizations. When authorizing this case, you would need access to 3 items: the User, the Record, and the users role information in the Organization. The ideal case would be to have access to the organization the record belongs to, but lets make it harder and say we dont have access to that via the record or the user.

Pundit provides an opportunity to provide additional context. By defining a function called pundit_user, this allows you to change what is consid...

08:01

Hacktoberfest: My Gateway to Open Source "IndyWatch Feed Education"

Individually, we are one drop. Together, we are an ocean.
Ryunosuke Satoro

Last month I set out my intention to start contributing to open source. And thanks to the annual Hacktoberfest challenge, I submitted 5 pull requests. I also found a really cool project that I am still actively contributing to.

I wrote this post to share my journey of how I found beginner friendly open source projects. I was nervous to share this on social media, but it actually gave me motivation to look for ways to begin.

At first, contributing to open source can be very intimidating. But being able to collaborate with others on projects that are helping communities is such a reward on its own. Not to mention all the skills gained from reading other developers code and all the awesome people you meet along the way.

My Motivation to Start Contributing

My mission as a developer is to contribute to applications that empower and motivate lives. Instead of waiting for a company to hire me, I decided to take action and find ways to start living my dream as I work on strengthening my development skills.

If you want to lift yourself up, lift up someone else.Booker T. Washington

Every month I kept listing Contribute to Open Source as one of my career goals, but kept pushing it back.

I used to think that contributing to open source was way out of my reach and that I had to be an experienced developer to even be able to contribute.

But I kept hearing from many seasoned developers that contributing to open source was a great way of gaining skills. They told me that it provided opportunities to work on something that many people would use regularly and benefit from.

07:47

I just got a developer job at Facebook. Heres how I prepped for my interviews. "IndyWatch Feed Education"

I just finished seven on-site interviews at Silicon Valley tech companies. I ultimately accepted an offer for a software engineering job from Facebook.

Heres how I prepared for these interviews, and what I learned along the way.

My multi-year journey toward Silicon Valley

When I was studying Computer Science at my university in Australia, I always envisioned my future as a software engineer in Silicon Valley.

I loved the idea of being in the heart of all the tech industrys innovationas well as its blunders. This goal kept me motivated. It kept me focused.

I left my post as Lead iOS Engineer at an amazing company in Melbourne and headed back to my home city of Perth in order to study. There I would prepare for the interviewing process ahead of me in Silicon Valley. I knew would be incredibly difficult and arduous.

If you mention the tech interview process to a room of software engineers, many will speak out against common interviewing practices. A lot of the argument comes from the reasoning that solving algorithms on a whiteboard doesnt actually represent, or translate to the day to day tasks of a software engineer.

For the sake of this article, I wont go into that conversation. Instead, Ill explore these different types of interview practices from a candidates perspective .Ill also focus on what I learned from the process.

Interviewing is a skill

During my preparation, I always knew that interviewing would be challenging. But I honestly had no idea how hard it would be until I was knee-deep into my first interview.

In the lead-up to the interviews, I had used both paid and free services, which simulated coding and whiteboarding interviews over the phone with people who had industry experience interviewing candidates. Those practice interviews were essential for priming me for the pressure involved. But as I later realized, they only amounted to a fraction of what a real interview consists of.

Id advise against interviewing at your dream job without having a few mock or real interviews under your belt. The nervousness can be incredibly overwhelming, and it can only be dulled through practice.

As with many other things in life, practice will improve your confidence.

The different types of interview I encountered

If you prepare and perform well enough in the preliminary phone screens, youll be given the opportunity to come on site and conduct full days worth of interviews. These interviews will typically last four to six hours depending on the company for which youre interviewing with.

...

03:01

Continuous Training Can Close the Cybersecurity Skills Gap "IndyWatch Feed Education"

Major online security breaches and data leaks have been making alarming headlines and dominating conversations among technology leaders in the past few years. At Coursera, we hear from learning and development leaders who are eager to help their technology teams learn the latest cybersecurity skills to avoid potential attacks.

Just as data scientists, IT architects, and QA engineers are in high demand, cybersecurity pros are at the top of the list for many hiring managers. A 2017 report from CompTIA, an IT industry trade association, says more than 4.6 million cybersecurity occupations were posted in the past year. CompTIAs definition of cybersecurity includes a range of job titles, including cybersecurity analysts, security engineers, and security architects. But the report shows that employers cant find the skilled workers to fill those jobs.

We asked CompTIA Senior Director of Technology Analysis, Seth Robinson, for his advice for companies that want to shore up their cybersecurity skill sets.

Lead with a Cybersecurity Strategy

Improving cybersecurity at an organization doesnt happen by fixing bugs or closing loopholes. It starts with a clear strategy and investment in cybersecurity. That means leaders have to prioritize cybersecurity and security skills development.

Modern cybersecurity requires two things, Robinson says: an understanding that data is critical to business survival and a strategy around technology, process, and education.

Closing the security skills gap is no easy task, he says. Companies must determine their overall security posture, ensure a solid technical foundation, and invest wisely in both highly technical measures and basic security hygiene. This difficult undertaking becomes more critical as businesses find themselves in a race between building skills and being the next big security headline.

Invest in a Variety of Training Resources for Security Staff

Many organizations are feeling the strain of under-developed technical teams. Just 21 percent of businesses surveyed by CompTIA said that their current level of...

02:19

Peoples History Lessons and Student Activism Featured in Washington Post "IndyWatch Feed Education"

students campaign to abolish Columbus DayOn Monday, The Washington Post columnist Courtland Milloy spoke with students and teachers in D.C. who are studying Native American history with lessons from the Zinn Education Project. Tori Blakeney, a 16-year-old student at Capital City Public Charter School (CCPCS), told Milloy,

When I was growing up, I saw the [Disney] movie about Pocahontas and thought, This is how it happened. John Smith was portrayed as a good man, and everybody lived happily ever after. Then I began reading about what really happened to the Native Americans, and I was shocked. The genocide, the slaughter made me sad, and I started thinking about what could be done to compensate for all that suffering.

Milloy learned from these discussions, as he notes in his November 21, 2017 column, that peoples history lessons motivate students to take action. At one high school, students are petitioning the D.C. City Council to change Columbus Day to Indigenous Peoples Day. (Sign their petition here.) Students who engaged in the lesson about the...

00:06

How My Mobile Game Got 365K App Store Downloads in 2 Weeks (And Why I Quit Indie Game Dev "IndyWatch Feed Education"

How My Mobile Game Got 365K App Store Downloads in 2 Weeks (And Why I Quit Indie Game Dev Afterwards)

Im not a successful game developer. My most popular game, Frantic Architect, only had 410,678 free installs before being removed from the App Store; nothing compared to the likes of Flappy Bird or 2048.

But I was 21, had an unconventional but respectable background in games, and had built the game by myself with relatively little effort. This looked like the perfect jumpstart to my career as an indie game developer.

Instead I quit.

Its been a year and half since Frantic Architect came out. Things move quickly in tech and I dont spend much time reflecting on abandoned ventures. But browsing through the App Store now, I see casual mobile game developers finding success with the same strategy I used back then. I doubt itll still work years down the line, but for now it does, and its very straightforward (not saying its easy).

You dont even need the couple years of game programming and design experience I had. If your goal is to develop a mobile app quickly, you dont care about what kind of app it is, and you want to replicable method to acquire ton of users fast without spending a fortune on ads, then the casual mobile game niche is for you.

Ive got no interest in repeating the experiment because I think its a shitty business model. Maybe you can prove me wrong.

March 17, 2016

I rolled out of my bed in my university dorm and checked my Skype. My game had been submitted to Apple for review a week ago and I knew it could go live at any time. I was in Toronto, and my product manager was in Paris, so I had gotten into the habit of waking up to a flood of messages.

I recall reading some congratulatory message about my game getting featured worldwide by Apple. I turned on my iPad and opened up the App Store. Sure enough, Frantic Architect was sitting there as a Best New Game.

I got access to the analytics a few days later. Day 4 was my by best day with 58,486 downloads.

By two weeks, downloads had already dropped off precipitously. I wasnt too disappointed because I wasnt expecting this volume of users to begin with. During the 6 months which I worked/procrastinated on my game, I was given very little indication of how well it was going to do besides the fact that I had gotten a contract from one of the most successful casual mobile game publishers at the time, BulkyPix.

...

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

IndyWatch Education Feed Today.

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

Tuesday, 21 November

20:49

Web Applications for Everybody: A Conversation with Dr. Chuck "IndyWatch Feed Education"

Dr. Chuck has reached over a million learners from across the world with Coursera. He is a Clinical Associate Professor at the University of Michigan School of Information, where he teaches various technology-oriented courses including programming, database design, and web development. He joined us at our headquarters in Mountain View to talk about his new course Web Applications for Everybody:

Tell us about your new course Web Applications for Everybody.

Web Applications for Everybody originated from a course I teach at the University of Michigan. My goal when creating it was to keep the material simple and easy to follow, only including information I think a student will need. The course teaches the things I believe every employer would want every web developer to know. Even though theres a wide range of technology for building web applications, there are some concepts that are common to all those technologies. So Im trying to teach the concepts that make you a better programmer whether youre using Ruby on Rails, Java, or PHP, you still need to learn the basics of web applications and thats what this course is. It should prepare you and lay the groundwork for everything you will learn as a web developer.

Why should learners take this course?

Whats unique about this Specialization is that it completes a 3-specialization sequence that is the first low cost and 100% online path that can take you from not knowing anything about computers to being employable with job-ready skills. From high school students to adult learners who want a career change, Python for Everybody, Web Design for Everybody, and Web Applications for Everybody will help learners become entry-level professionals. We wanted to create a guiding path for people to begin a career in technology with little to no experience. No matter what your background is, no matter how old or young you are, my goal is to help you get there with these courses. This 3-specialization sequence is very important to me because theres almost no one in the world that couldnt take this course and be successful. Colleen van Lent and I have...

13:43

Institute of Youth Work questions the governments commitment to youth work and young people "IndyWatch Feed Education"

 

traceycrouch

Tracey Crouch with table tennis bat ta to skysports.com

 

Following on from yesterdays question, where are the voices of the youth sector?, its heartening to see the Institute of Youth Work [IYW] responding critically to the governments abandonment of its commitment to a three-year youth policy statement. Indeed the report in CYPN relates that in a strongly worded open letter sent to Tracey Crouch [the minister for civil society], the IYW states that it is seeking assurances about the value of young people and youth work to yourself and your department.  The IYW warns that the U-turn could lead to disaffection among young people and consultation fatigue when the new strategy is consulted on. The Institute goes on to say that many of our members directly supported young people to be involved in the extensive DCMS consultation w...

05:16

Docker: Easy as build, run, done! "IndyWatch Feed Education"

Docker has been getting a lot of buzz recently, and for good reason. The containerization service makes deploying microservices easy and stable, as each service can run an OS in its own virtual environment. That means full compatibility no more worrying about OS versions, dependencies and differences between your development and production machines! And to top it off, its lightweight so you can run multiple Docker containers in the same machine (EC2 instance). Today we will learn how to setup and deploy Docker on Amazon EC2 in 3 easy steps!

Before we start, take a look at this high-level diagram (courtesy of infoworld.com).

On the left side is your traditional virtual machine setup using a hypervisor. A hypervisor is simply your VM manager responsible for allocating hardware resources to each virtual OS. If each Guest OS needs 1GB of memory, and the host uses 1GB of memory, then the setup on the left would require 4GB total.

On the right side is a container setup, which would run a container engine such as Docker. The most significant difference is that a container engine is more lightweight because it can share certain hardware resources with its host OS, unlike traditional VMs that require their own separate allocation. This setup requires 1GB for the host OS and perhaps 600MB per container (because 300MB is hypothetically shared with the host OS), for a total of 2.8GB required. See those benefits? Cool, now we can start!

Getting Started

Enter your EC2 instance and clone Kangzeroos-ES6-React-Redux-Boilerplate from Github. The code you see will be for setting up this web app, but the steps are the same for any project. Once you have it downloaded, go into the folder and find the below files. These are the files we will use with Docker.

Dockerfile
build.sh
run.sh

Before we can use Docker, we must first install it. Below is the quick and simple way to install Docker, but if you want the full configuration checkout the official docs.

$ sudo apt-get update
$ sudo apt-get install docker-engine
$ sudo service docker start
$ sudo docker run hello-world

The last command checks if Docker is successfully running, and then exits. If all this works, you are ready to start Dockerizing!

Step 1: Building the Dockerfile

The fir...

05:16

The Complete AWS Web Boilerplate "IndyWatch Feed Education"

Build powerful scalable web apps by leveraging Amazon Cloud

Table of Contents

Part 0: Introduction to the Complete AWS Web Boilerplate
Part 1: User Authentication with AWS Cognito (3 parts)
Part 2: Saving File Storage Costs with Amazon S3 (1 part)
Part 3: Sending Emails with Amazon SES (1 part)
Part 4: Manage Users and Permissions with AWS IAM [Coming Soon]
Part 5: Cloud Server Hosting with AWS EC2 and ELB[Coming Soon]
Part 6: The MongoDB Killer: AWS DynamoDB [Coming Soon]
Part 7: Painless SQL Scaling using AWS RDS [Coming Soon]
Part 8: Serverless Architecture with Amazon Lambda [Coming Soon]

Hello 2017

You want to build scalable production-ready apps but dont have the resources to hire a multi-person team to manage all the code necessary for the big leagues. Youve heard about 2 person wonder-teams that create fantastically efficient apps on a fraction of the thousand dollar budgets of traditional teams. Your wallet would love you if you could pay for just the services you need, without any of the fixed overhead costs. So you do your research and arrive at Amazon Web Services, the worlds largest and most comprehensive cloud services provider. But after an hour after investigating, you are overwhelmed by the sheer size and variety of solutions available. Damn, you say, where do I even begin?

If youve ever looked into the documentation on AWS and tried to wrap your head around how all the pieces connect together, youll know that its no easy task. When you try to implement something simple like S3, youll wander into IAM for security and from there potentially stumble into AWS STS, AWS Cognito the list goes on. How about EC2? Security Groups? AWS Lambda? Its just one rabbit hole after another.

An in...

05:16

Sending emails with Amazon SES "IndyWatch Feed Education"

The Complete AWS Web BoilerplateTutorial 3

Table of Contents

Part 0: Introduction to the Complete AWS Web Boilerplate
Part 1: User Authentication with AWS Cognito (3 parts)
Part 2: Saving File Storage Costs with Amazon S3 (1 part)
Part 3: Sending Emails with Amazon SES (1 part)
Part 4: Manage Users and Permissions with AWS IAM [Coming Soon]
Part 5: Cloud Server Hosting with AWS EC2 and ELB[Coming Soon]
Part 6: The MongoDB Killer: AWS DynamoDB [Coming Soon]
Part 7: Painless SQL Scaling using AWS RDS [Coming Soon]
Part 8: Serverless Architecture with Amazon Lambda [Coming Soon]

Download the Github here.

Setup

Sending emails with Amazon SES is really straightforward. Lets start at the set-up. Go to Amazon SES and click Email Addresses in the sidebar. Then click Verify a New Email Address and enter an email you want to use for messaging in the app.

Now go to your email provider and click the verification link. After verifying, go back to Amazon SES Email Addresses tab. You should now see your email verified.

This was necessary for 2 reasons. First is that we need an email for sending a message, and the second is because we are in a sandbox environment. A sandbox environment means you can only send and receive emails from verified addresses, and prevents you from spamming people. This is all the set-up we need for this boilerplate.

If yo...

05:15

Amazon S3 Cloud File Storage for Performance and Cost Savings "IndyWatch Feed Education"

The Complete AWS Web BoilerplateTutorial 2

Table of Contents

Part 0: Introduction to the Complete AWS Web Boilerplate
Part 1: User Authentication with AWS Cognito (3 parts)
Part 2: Saving File Storage Costs with Amazon S3 (1 part)
Part 3: Sending Emails with Amazon SES (1 part)
Part 4: Manage Users and Permissions with AWS IAM [Coming Soon]
Part 5: Cloud Server Hosting with AWS EC2 and ELB[Coming Soon]
Part 6: The MongoDB Killer: AWS DynamoDB [Coming Soon]
Part 7: Painless SQL Scaling using AWS RDS [Coming Soon]
Part 8: Serverless Architecture with Amazon Lambda [Coming Soon]

Download the Github here.

Introduction

Traditionally, files served to an app would be saved to a servers filesystem and the architecture designed by a developer. We can immediately see that this is costly in terms of labor and a business risk as we must rely on the expertise/design of a developer(s). This is also costly in terms of bandwidth, as every file must be transferred from the server to the client. If we keep the file system on the main server, it will slow down processing of all the core functionality. If we separate the file system into its own server, we must pay extra for the uptime this server runs on, as well as devise a way to access images reliably even when URLs change. And how about different file types? We need to write code to handle JPGs, MP4s, PDFs, ZIP files..etc. How about security and restricted access to only authorized users? Security is a monumental task in itself. Finally, if we want all this to scale we will have to pay out of the ass for it. What if there were a way to achieve all this production level functionality easily and cost effectively?

Introducing Amazon Simple Storage Service (S3)A fully m...

05:15

User Management with AWS Cognito (3/3) Last Steps to Full-Fledged "IndyWatch Feed Education"

The Complete AWS Web BoilerplatePart 1C

Main Table of Contents Click Here
Part A: Initial Setup
Part B: The Core Functionality
Part C: Last Steps to Full Fledged

Download the Github here.

The Last Steps

The last pieces to this grand schema comprise of finishing touches and backend authentication. What we mean by finishing touches include:

- updateUserInfo( )
- forgotPassword( )
- signOutUser( )
- retreiveUserFromLocalStorage( )
- Backend Authentication

Backend authentication means checking the JWT token received from Cognito or Facebook to confirm authority to access protected resources. After covering these features, we will have a full fledged user management system completely on AWS. Wow! Lets get to it.

Updating User Information

Any respectable user management system will have the ability to change user attributes, so AWS Cognito is no exception. The React component can be found at App/src/components/auth/ProfilePage.js. Our Cognito code is inside App/src/api/aws/aws-cognito.js, look for the function updateUserInfo().

export function updateUserInfo(editedInfo){
const p = new Promise((res, rej)=>{
const attributeList = []
for(let a = 0; a
if(editedInfo[attrs[a]]){
let attribute = {
Name : attrs[a],
Value : editedInfo[attrs[a]]
}
let x = new CognitoUserAttribute(attribute)
attributeList.push(x)
}
}
const cognitoUser = userPool.getCurrentUser()
cognitoUser.getSession(function(err, result) {
if(result){
cognitoUser.updateAttributes(attributeList, function(err, result) {
if(err){
rej(err)
return
}
cognitoUser.getU...

05:15

User Management with AWS Cognito (2/3) The Core Functionality "IndyWatch Feed Education"

The Complete AWS Web BoilerplateTutorial 1B

Main Table of Contents Click Here
Part A: Initial Setup
Part B: The Core Functionality
Part C: Last Steps to Full Fledged

Download the Github here.

The Javascript Cognito SDK

Great! You should only be here if you finished the initial setup for Cognito and Federated Identities. Now that we have everything set up, its time to walk through the Javascript code. Download the Kangzeroo boilerplate on Github and be sure to enter the Cognito branch where we will be doing our work.

$ git clone https://github.com/kangzeroo/Kangzeroos-Complete-AWS-Web-Boilerplate.git
$ cd Kangzeroos-Complete-AWS-Web-Boilerplate
$ git checkout Cognito
$ cd App

The boilerplate uses the Amazon-Cognito-Identity-JS library found on github. This library makes it really easy to use programatic AWS Cognito, but the same functionality can be found in the native aws-sdk. So lets go and install our dependencies and load up the app.

$ npm install
$ npm run start

AWS Profile Setup

Navigate to App/src/components/Auth where we will find all the React components related to Cognito authentication. Yes, this tutorial uses React, but you can easily apply the same lessons to other JS frameworks. Go to App/src/api/aws/aws-cognito.js which is where the bulk of the AWS Cognito code resides. Lets take a look at the dependencies and how we can setup our own AWS profile.

// aws-cognito.js
import { CognitoUserPool, CognitoUserAttribute, CognitoUser, AuthenticationDetails, CognitoIdentityCredentials, WebIdentityCredentials } from 'amazon-cognito-identity-js';
import { userPool, LANDLORD_USERPOOL_ID, LANDLORD_IDENTITY_POOL_ID, T...

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

IndyWatch Education Feed Today.

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

Monday, 20 November

20:51

Austerity is punishing an entire generation where are the voices of the youth sector? "IndyWatch Feed Education"

Sundays Guardian carried a letter signed by over a hundred leading academics and activists, The chancellor must end austerity now it is punishing an entire generation. We publish it in full below and ponder why we still await a similar, impassioned call from the youth sectors leadership?

 

The violence of austerity cover - cropped

Ta to poverty.ac.uk

 

Seven years of austerity has destroyed lives. An estimated 30,000 excess deaths can be linked to cuts in NHS spending and the social care crisis in 2015 alone. The number of food parcels given to impoverished Britons has grown from tens of thousands in 2010 to over a million. Children are suffering from real-terms spending cuts in up to 88% of schools. The public sector pay cap has meant that millions of workers are struggling to make ends meet.

Alongside the mounting human costs, austerity has hurt our economy. The UK has experienced its weakest recovery on record...

Thursday, 04 May

13:11

Even a Math Workbook Can Be a Game "IndyWatch Feed Education"

Homeschooling Memories

My youngest daughter wanted to do Singapore math. Miquon Red was her main math text at the time, but we added a bit of Singapore Primary Math 1B whenever she was in the mood.

We turned to the lesson on subtracting with numbers in the 30-somethings.

The first problem was pretty easy for her:

30  7 = _____

I reminded her that she already knew 10  7.

She agreed, Ten take away seven is three.

Then her eyes lit up. So its 23! Because there are two tens left.

Wow, I thought. Shes catching on quickly.

Mom Always Talks Too Much

We went to the next problem:

34  8 = _____

Now, this one is harder, I said. But you know what ten minus eight is, right? So we could take one of these tens and

She waved at me to be quiet.

I was just getting started on my standard speech about how to turn a tough subtraction like 34  8 into the easy addition of 2 + 4 + two tens left. But her mind was still on the last problem, specifically on the two tens and the seven.

If you have 27, she said, and you add three more, you get 30. And four more is 34.

Um, yes, but I interrupted.

She shushed me again.

And then you can take away the four. And then you can take away the three. And then you can take away one moreIts 26!

Mom Learns a Lesson

She continued through the next page that way. For every problem, she started with whatever number struck her fancy, usually containing at least one digit from the problem before. She added enough to get up to the 30-something number in the book.

Only then would she deign to subtract the number in question.

I dont think she ever saw the point of the mental math technique the book and I were trying to teach, but she did have a lot of fun playing around with the numbers.

In the long run, thats much more important.


Feature photo: Laughing Girl by ND Strupler via Flickr (CC BY 2.0).

howtosolveproblemsWant to help your kids learn math? Claim your...

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