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.

Saturday, 11 November


The Definitive OmiseGO Beginners Guide freeCodeCamp - Medium

As the interest for blockchain projects and cryptocurrencies is exponentially growing, OmiseGO appears to be one of the strongest and most exciting projects out there. Still, as it involves fairly complex notions, it is hard for the beginner looking for an introduction to find a clear and complete guide: OmiseGOs website provides all necessary documents, and especially the white paper, an in-depth explanation of the whole system, but although being an extremely well thought and precise document, it would be a lie to pretend its not a hard read at first sight.

There are also some good quality reviews already, but while they can be very useful, they usually focus on one specific point of the matter, such as commercial partnerships, without taking the time to introduce the whole of the project to someone that would be completely new to it.

So I decided to write the comprehensive guide that would take everything from the start and be clear for anyone to read, while at the same time exposing everything in the most precise and accurate way, in order to give this very ambitious project the wide audience and understanding it deserves.

As Im taking things back from the basics, if you feel like you are already clear about some points, feel free to skip them and directly move to the points that interest you. I have tried to give a clear architecture to this article, clear titles and an introductive summary, so that you can browse easily through this guide if you dont want to read it from the beginning to the end.

Please note that whatever you read in this guide, it is made only for explanational purpose, and is not in any case an investment advice: I am not entitled to this, I dont wish to, and the choice one makes with his or her own money is his or her own choice. Investing in any project and especially in the crypto world is always a high risk operation, and I have no recommendation to make about it. Even the part titled Why invest in OmiseGO is to be considered a mere exposition of what can be the reasons to invest in the project if one chooses to, but not an advice pretending you should, or should not.

Im only trying to clearly explain what OmiseGO is, what it is building, and what it can be in the future, while answering in a same article to many questions Ive seen and answered separately on dedicated forums.

This article will cover the following points:

1) The company
What is Omise?
What is OmiseGO?
Who is the team?
How did Omise launch OmiseGO?

2) The project
A. Basics: Blockchain / Ethereum
How do internet services work without a blockchain?
What are the problems with the t...


Oi! Coursera Expands to Brazil Coursera Blog

Voc falante de portugus? Voc est com sorte! Coursera is excited to announce a big push to create a robust and cohesive Portuguese content catalogue in high-demand fields from leading universities in Brazil such as University of So Paulo (USP), Fundao Instituto de Administrao, Instituto Tecnolgico de Aeronutica, University of Campinas, and Insper.

Coursera is committed to helping our Brazilian partners produce high quality content. A team of pedagogy and platform specialists went to USP to lead a two-day workshop where university course creation teams underwent a rigorous training.

Once the initial course elements were designed, university partners were given the opportunity to translate theory into practice through platform walkthroughs and hands-on sessions. They learned how to create effective learning goals, engaging videos, and relevant assessments that will give learners the opportunity to demonstrate mastery of real-world skills. They were also given production milestones and resource mapping support that is necessary to successfully plan the creation of a course on Coursera.   

Based on survey results, 100% of partners left feeling confident to create and launch a high quality course. We are in love with Coursera!  It is one of our main projects here at the Entrepreneurship Center. We learned a lot from the workshop and the mentoring sessions. We wouldnt be able to understand online learning and how to fix our problems if we didnt attend the Coursera workshop. said Juliana Uechi of University of So Paulo.

Courseras educational approach was developed by analyzing billions of data points that are generated by 27 million learners around the world. Workshop sessions leveraged data from this large user base to share knowledge of best practices for online course creation, build relationships, and expand capacity for course teams. Partners were equipped with the tools, knowledge, and best practices to feel prepared to launch a successful course. These workshops are a key resource for instructors and one of the main drivers of high quality content.

Since 95% of the course teams creating content in Portugu...


Bring the New ZEP Organizer to Your City! Zinn Education Project

Adam Sanchez, Teacher Organizer | Zinn Education Project: Teaching People's HistoryThanks to the generous support of a longtime Zinn Education Project (ZEP) supporter and those of you who donated to our campaign, we have hired a full-time ZEP organizer for the 2017-2018 school year!

Our new organizer, Adam Sanchez, is an editor of Rethinking Schools and has taught high school social studies in Portland, Oregon, and New York City over the last six years. We want to send Adam to your community to help teachers better use our peoples history resources and to knit together a face-to-face network of social justice teachers. By supporting one another and sharing lessons and strategies with each other and with the larger ZEP community, we can begin to challenge the canned corporate curriculum and the well-established conservative textbooks. Imagine how we could transform the teaching of history if we could bring together our Zinn Education Project networknow at more than 75,000 and growing!

Adam has written numerous articles for Rethinking Schools and the Zinn Education Project including his most recent piece launching the Zinn Education Projects Teach Reconstruction campaign, titled When Black Lives Mattered: Why Teach Reconstruction. The fall issue of Rethinking Schools also includes an article Adam co-wrote about teach...


How I built an app that follows the Stock Market for a freeCodeCamp challenge. freeCodeCamp - Medium

Photo by peggy pardo on Unsplash

I was working on an app from the FreeCodeCamp curriculum, and thought others might find it interesting. In this article, you can read the full documentation for the building process. Enjoy!

Failure isnt a necessary evil. In fact, it isnt evil at all. It is a necessary consequence of doing something new.
Ed Catmull

The challenge

For this particular challenge, I had to build an app that would allow monitoring of various stocks. You can read more about the full challenge here. Now lets get started.

The user stories are pretty simple:

  • I can view a graph displaying the recent trend lines for each added stock.
  • I can add new stocks by their symbol name.
  • I can remove stocks.
  • I can see changes in real-time when any other user adds or removes a stock. For this you will need to use WebSockets.

It looks like this:

Charting the Stock Market in real-timewith websockets


When I made my last full-stack app, I learned that starting with the back end can cause some issues when you are working on the front end later on. So this time, I decided to start with the front end and finish with the back end.

Heres the roadmap I used:

  1. Setup the environment with create-react-app
  2. Lay out the basic React component structure
  3. Set up the Redux eco system
  4. Work over all components, divide them into container components, and wire everything up with the Redux store
  5. Build the Chart component with React-Vis
  6. Build the backend using
  7. Adapt the frontend to WebSockets
  8. Deploy to Heroku

Front end

I going to highlight the key cornerstonesthis isnt a step-by-step tutorial.

Setup with the create-react-app package

For this project, I wanted to use this boilerplate because I have used it many times before but never on a full-stack project. Although it has some limitations with the pre-configured structure, the benefits outweigh the problems by a mile.

Basically it provides an environment that:

  • React, JSX, ES6, and Flow syntax support.
  • Provides language extras beyond ES6 like the object spread op...


What is MVC, and how is it like a sandwich shop? freeCodeCamp - Medium

In todays Internet, websites tend to be interactive, dynamic, and serve some sort of function. They can be more than a static HTML and CSS page. Heres where the Model View Controller (MVC) architectural pattern comes in.

User interaction enables use cases which would be impossible with only a statically loaded page. This is why, in modern web development, it is important to understand how dynamic pages are created. Perhaps the key to this is familiarity with the MVC architectural pattern.

If you are a beginner at web development, words such as architectural pattern may sound dauntingly complex and abstract. But the general idea behind MVC is actually very intuitive. I will do my best to explain it in such a way in this article.

Is MVC important to understand?

In my mind, the answer to this question is yes.

MVC is important to understand because it is the basic structure which most web applications are built on. The same is also true for mobile apps and desktop programs.

There are many variations around the basic idea of MVC. The initial conceptwas created around 1978 at Xerox PARC by Trygve Reenskaug. It was intended to help an end user manipulate and control an underlying computer system in a more visual and intuitive way.

MVC achieves this though letting a user interact with a User Interface. This allows for manipulation and control over the system.

Original diagram of MVC

The high-level concept

Without using any fancy words, I will now explain the basic idea behind MVC through a simple use case.

Imagine you are in a sandwich shop. You walk up to the counter and look at the menu.

Very simple sandwich menu

You decide you want the turkey sandwich (in fact, you can already imagine biting into it). So you tell the clerk your order.

The clerk knows exactly what you want when you order the turkey sandwich. He turns around to the sandwich-making station, and tells the people there what they need to know to fulfill your order.

The sandwich-making team has many resources at their disposal. Ham, turkey, tuna, salad and cheese can all go in the sandwiches. They take the ingredients required for your order, and assemble them into the turkey sandwich that you have ordered.

After the sandwich is complete, it is handed over to you. You now have the turkey sandwich you wanted.

An explanation

In this previous example, there were three separate and distinct objects which all represent one part in our MVC:

  • The sandwich-making station (Model)...

Friday, 10 November


Lets explore the benefits of Cycle.js and Model-View-Intent freeCodeCamp - Medium

In the current software development ecosystem, it's not surprising that Model-View-Controller (MVC) architecture doesnt have a great reputation. Common alternatives have been gaining popularity, such as Model-View-Presenter (MVP) and Model-View-ViewModel (MVVM).

As a mobile developer, I tried the MVP architecture. And in fact, I had a better experience because of the separation of concerns and improved testability provided by this architecture. But it doesn't propose a pattern for data flow (like Flux or Redux), and I felt somehow dissatisfied by this. I wondered if theres a way to minimize the bugs and provide a better developer experience.

Model-View-Intent (MVI)

The first concept that caught my attention was the Model-View-Intent (MVI) implementation on Android proposed by the Mosby library. I decided to read its code and try to understand its principles.

Mosby looked like a great library, especially because its creator thoroughly documented its motivation and published examples on his blog. But unfortunately Mosby seemed too complex. It had a steep learning curve and wasnt exactly what I was trying to findand represented only a small incremental improvement from MVP.

The MVI concept wasnt first introduced by Mosby, but rather by a web framework called Cycle.js. So I decided to learn the basics. To my surprise, Cycle.js made me like the MVI idea and want to give it a try. Mostly because the framework is very small and simple.

These are the basic principles of MVI, and why they have great value:

  • Purely reactive: this makes it much easier to coordinate asynchronous tasks, and brings all the benefits from declarative programming. In the case of Cycle.js, it makes your view testable. As we're going to see below, the view becomes just a common observable.
  • Unidirectional data flow: in MVI, the data follows a straight path of intent, model, and view. I will discuss this in detail in the next section. But for now, this means that you as a developer must learn how to organize your code to use this pattern. Once you overcome the learning curve, your application becomes easier to understand. Every feature on your app follows the same recipe.
  • The view layer is represented by a single object, the model: the entire view state is represented by an unique source of truth, including the loading and error states. This means that you have to look...


Want to learn how Viewstamped Replication works? Read this summary. freeCodeCamp - Medium

This article will distill the contents of the academic paper Viewstamped Replication Revisited by Barbara Liskov and James Cowling. All quotations are taken from that paper.

It presents an updated explanation of Viewstamped Replication, a replication technique that handles failures in which nodes crash. It describes how client requests are handled, how the group reorganizes when a replica fails, and how a failed replica is able to rejoin the group.


The Viewstamped Replication protocol, referred to as VR, is used for replicated services that run on many nodes known as replicas. VR uses state machine replication: it maintains state and makes it accessible to the clients consuming that service.

Some features of VR:

  • VR is primarily a replication protocol, but it provides consensus too.
  • VR doesnt use any disk I/Oit uses replicated state for persistence.
  • VR deals only with crash failures: a node is either functioning or it completely stops.
  • VR works in an asynchronous network like the internet where nothing can be concluded about a message that doesnt arrive. It may be lost, delivered out of order, or delivered many times.

Replica Groups

VR ensures reliability and availability when no more than a threshold of f replicas are faulty. It does this by using replica groups of size 2f + 1; this is the minimal number of replicas in an asynchronous network under the crash failure model.

We can provide a simple proof for the above statement: in a system with f crashed nodes, we need at least the majority of f+1 nodes that can mutually agree to keep the system functioning.

A group of f+1 replicas is often known as a quorum. The protocol needs the quorum intersection property to be true to work correctly. This property states that:

The quorum of replicas that processes a particular step of the protocol must have a non-empty intersection with the group of replicas available to handle the next step, since this way we can ensure that at each next step at least one participant knows what happened in the previous step.


VR architecture

The architecture of VR is as follows:

  1. The user code is run on client machines on top of a VR proxy.
  2. The proxy communicates with the replicas to carry out the operations requested by the client. It returns the computed results from the replicas back to the client.
  3. The VR code on the side of the replicas accepts client requests from the proxy, executes the protocol, and executes the request by making an up-call to the se...

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