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.

Sunday, 14 January


Learn CSS Flexbox in 5 Minutes freeCodeCamp - Medium

A quick introduction to the popular layout module

In this post youll learn the basics of CSS Flexbox, which has become a must-have skill for web developers and designers the last couple of years.

Well be using a navbar as an example, as this is a very typical use case for Flexbox. This will introduce you to its most-used properties of the module, while leaving out the ones which arent as critical.

Im also creating a free course on Flexbox. If you want early access you can leave your email here and Ill send it to you once its ready.

Now lets get started!

Your first Flexbox layout

The two main components of a Flexbox layout are the container and the items.

Heres the HTML for our example, which contains a container with four items:

<nav class="container">

Before we turn this into a Flexbox layout the divs would be stacked on top of each other like this:

Ive added a little bit of styling, but that has nothing to do with Flexbox.

To turn this into a Flexbox layout well simply give the container the following CSS property:

.container {
display: flex;

This will automatically position the items nicely along the horizontal axis.

If you want to check out the actual code, you can head over to this Scrimba playground.

Now lets shuffle these items around a bit.

Justify content and Align items

Justify-content and align-items are two CSS properties which help us distribute the items in the container. They control how the items are positioned along the main axis and cross axis.

In our case (but not always) the main axis is horizontal and the cross axis is vertical:

In this article, well only look at justify-content, as Ive found to be using this one much more than align-items. However, in my upcoming course, Ill be going through both properties in detail.

Lets center all the items along the main axis by using justify-content:

.container {
display: flex;
justify-content: center;


How to build a Meetupbot for Slack using Node.js freeCodeCamp - Medium

Meetupbot for Slack

What is Slack?

If you are new to Slack, its a great platform for team collaboration and instant messaging used in and out of organizations to help team communication and collaboration.

I first used Slack for a study group. You can create different channels to separate messages and discussions. You can create private channels as well to keep messages private in a team.

The best functionality is that it also allows integrations on its platform. And this is what makes it different than other messaging and collaboration platforms.

You can integrate Google Calendar, Twitter, Trello, and more. It also lets you create custom applications like bots.


In this post, I will walk you through building a MeetupBot for Slack using Node.js. It will give you list of meetups going on near your location based on your interest.

Feeling excited?

It will use Slacks slash commands. You can type /meetupbot from within Slack to call the MeetupBot and it will greet you along with the list of commands.

I built this project as part of Chingu cohort with my 2 team members Zameer and Linus

You will need basic knowledge of Node.js and how APIs work. Lets get started.

Steps for building MeetupBot for Slack

Step 1Project Setup

my repo URL : slack-meetup-bot
Glitch :
Meetup_api :

  • First fork my repository here.
  • Then go to and create a project and edit the project name to a shorter name.
  • Click on the Project Name > Advanced Options. Then click Import from GitHub. You first need to grant access of the GitHub repo to import your repositories into Glitch.
  • Go to...


Design Patterns: Command and Concierge in Life and Ruby freeCodeCamp - Medium

The Command Patterns definition is a stressful one to look at. The formal definition is that it:

  • encapsulates a request as an object
  • thereby letting you parameterize other objects with different requests, queue or log requests, and support undoable operations.

Lets forget about it for a second and take a trip to Hawaii.

And live in a luxury hotel.

We spent the day on the beach, scuba dived, and did some sightseeing. Its time to get back to the hotel to chill, eat, and plan for the next day.

After getting back to the hotel, we want to:

  1. Get room service for dinner
  2. Get laundry service because we didnt bring extra clothes
  3. Get a travel guide for Kauai, the island we are going to tomorrow

We check out the hotels service menu and find three service items matching our needs.

We then call the front desk to place these three requests. A concierge picks up our call, writes down our list of requests, and acts on each service request as instructed by the service menu.

Then each staff member executes according to each specific request:

  1. The chef in the kitchen starts cooking
  2. The cleaning department send a staff to our room to pick up our clothes
  3. The staff in the lobby grabs a travel guide and delivers it to our room

Lets recap what just happened.

a. We selected the services we wanted from the menu and submitted them to a concierge.

b. The concierge wrote these service requests down as a list.

c. After we hung up, instructed by the service menu, the concierge sent our requests to corresponding departments.

d. Each department executed on the given request.

Lets see the actions in Ruby.

1. We submitted these three requests to the concierge:



Hugo + Firebase: How to create your own static website for free in minutes freeCodeCamp - Medium

Ever thought of having your own website for putting up your project portfolio or resume or a blog for yourself. By the end of this article, you will be able to create one.

Generally, to develop a website you need to know HTML, CSS, and a bit of JavaScript (sometimes). But, for this, you dont need to have any coding skills. You just need basic computer skills.

To put up a website, you need to have a space (aka hosting) where all your files will be uploaded. Whenever someone types your website and clicks enter, these are the files that are served/presented to the user on the browser.

Lets get started with what you need to have/know:

Google Account

I believe you might already have a Gmail account, which is enough. If not create one.


This is optional. There are various domain name providers in the world, additionally you can buy one at Google. You can find a list of domain name providers. It is as simple as shopping on Amazon.


Hugo is a Go language-based tool, which generates static websites. You can use various templates and make different types of websites like blogs, portfolio sites etc.

Download it from here.


Firebase is a mobile and web application platform, acquired by Google a few years ago. Firebase offers hosting as one of its features. However, many mobile developers use it for Analytics, Notifications, Crash Reporting of apps. We are going to use it for hosting our website.


Node.js is an open-source JavaScript run time built on Chromes V8 JavaScript engine. For this tutorial, you need it to be installed on your machine for Firebase tools to work. You can download and install it from here.

Step 1: Install Hugo on your machine

Windows: You will get a simple portable executable file. You can place it anywhere and run via command line. You can add it to your path variable in Windows environment variables to get it referenced anywhere.

Mac: You can install it using Homebrew. If you dont have brew installed on your mac, you can download the tarball from here.

Either way, make sure you are able to access Hugo by giving below command.

Step 2: Create a template site

Head over to the location where you have decided to create your website and enter the command below:

$ hugo new site <path_to_folder>

At the given location you can see a folder structure as s...

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

IndyWatch Education Feed Today.

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

Saturday, 13 January


This is what modern PHP looks like freeCodeCamp - Medium

By Faraz Usmani (Flickr) [CC BY 2.0 (], via Wikimedia Commons

The title is really pretentious, isnt? Yeah, it is. Although Ive been working with PHP for years, how could I state what are the best practices and tools for the job? I couldnt, but Im going to do so.

Im seeing a real change in the way developers are doing their job with PHP, not only is the language drastically changing to become more mature and robust with new versions and improvements, but the entire ecosystem around it is changing.

New tools, libraries, frameworks and articles are being created, patterns are being defined to make code more elegant and easy to understand. Several people are thinking about ways to make the work (and your life as a developer) more productive, clean and fun.

Im not an early adopter of new trends, actually, I only adopt a new tool when Im sure there is a community behind it and I really think it will improve my work. What I always do is try to write my code following the best practices.

Because of that, It took me time to start using things like Composer and PHPUnit. About a year ago, more or less, Ive opened my heart to all those shiny new things.

PSR came first, then Composer, PHPUnit, Travis-ci and several other libraries and amazing tools. Im even using an IDE now (Vim FTW, but PHPStorm with XDebug integration is a must for a sane workflow)!

What is modern?

By Karen Roe (Flickr) [CC BY 2.0 (]

There are tons of articles around the web about how awful PHP is, how your life would be terrible if you had to work with PHP code, how the language is ugly and whatever else you could think of!

If you are going to work with legacy code, maybe your life will not be that good, but if you have the opportunity to work on a new project and are able to use all the new tools, youre going to see this new PHP Im gonna talk about.

I have several problems working with PHP on a daily basis, but one cannot close their eyes to the changes taking place in the language, community and the ecosystem. There is a long road ahead, but things are getting mature in the land of PHP.

I started creating an SDK for an internal API in the company I work for, just as a pet project, and decided to follow best practices. Most of them I was already doing, but Ive made few changes in the way I do some things. Those changes and what I learned in the last year are the subject of this article and what I call Mo...


How to setup CI on GitLab using Docker freeCodeCamp - Medium

An example using Docker to test and build your pipeline

In the past you may have tried different tools to manage the deployment of your applications effectively. In this tutorial, Ill be showing you a quick and easy way to set up continuous integration for your environment using GitLab and Docker. So lets get started.

Here is what well be setting up:

  • Version control
  • Issue Tracker
  • Documentation
  • Continuous Integration
  • Continuous Delivery
  • Repository (artifacts/docker images)

Tools like Jenkins are good for continuous integration and delivery. Mantis helps with issue tracking. But to improve the efficiency and quality of our project, we need to bring all these tools together. For example, we may want a git commit hook up with existing issues, or trigger an automated test after pushing commits to the master branch.

Usually, most tools already provide out of the box integration with other common services but it is still difficult to configure them at times. Moreover, the workflow would be broken if any one of the services in the chain go down. So it would be great if there were a single platform which could fulfil all these requires and that is why weve chosen GitLab.

GitLab CI is a SAAS based service where you can host your Git repository, track issues and write the wiki in markdown. GitLab CI also allows you to setup continuous integration utilizing any Docker image available on Docker Hub. Lets take a look at the following example.

The GitLab CI YML

GitLab CI uses a YAML file .gitlab-ci.yml to define the project configuration, which includes a definition of all the stages that need to be run after a CI/CD pipeline is triggered in response to a git push/merge. In this example, we have a simple Node.js project and we would like to make sure the code is good by linting and running a unit test. To play along, fork this repository and check it out.

In the above YAML configuration file we defined 3 stages. Each stage is just a gulp task defined in gulpfile.js. Anyone could run the task locally as long as the have Node.js installed. But in GitLab CI, we only need to mention which Docker image is needed. In our case, that is node:6.11.2. Further...


Why I Built A Personal Chatbot And How Its Extended My Reach freeCodeCamp - Medium

It was a big step to build and launch a personal chatbot. Heres why I did it and the overwhelming results! 

As a serial entrepreneur and product maker, one of the biggest rewards for me is seeing products that Ive built being adopted and loved by people at scale. Something else that I equally enjoy (if not more) is documenting the builds, launches, and growth stages that follow in an attempt to provide transparent insights and takeaways to others. With both of these, the more I can build, document and share, the more people I can reach along the way, translating to more personal reward for me.

One of my recent side projects that I built in the open and documented (Levels and Ben Tossell style) was with a weekend chatbot build for Artchatbot. To be honest, I was a bit taken back by the amount of positive feedback and questions I received while sharing the process, launch, and results and even the analytics along the way. Not only was there overwhelming interest in the weekend build, but I also discovered an amazing community of others in the chatbots space that I was now a part of.

With this recent experience building a chatbot, I also immediately saw how I could leverage chatbots and the ability to rapidly prototype, test, and launch a product via chatbots in other areas where a conversation-like product interface is the best solution. I knew that my next chatbot was going to be one for my personal brand to have a conversation, engage with people, and scale my personal reach where I could share my work.

Im not going to dive into the benefits of chatbots in general, since thats already been extensively covered by other domain experts.

Here Are The Personal Brand Benefits Of A Chatbot And Why I Chose To Build One For Myself:

Social Platforms Consolidated Into One

With multiple channels to share content across, it can be hard to connect the dots. Since I do have a very small, but hyper-engaged following on some channels, it is my goal to be omni-present, relevant and reach out to these people and others similar to them that spend their time engaging with me. Some of these channels are:

By using a chatbot, I can push out a core message...

Saturday, 28 October

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