Blog

View more on medium

2018

GlobalHackVII

Globalhack

What was it

On Oct 12–14, the organization called GlobalHack hosted their 7th official hackathon at the Chaifetz Arena. A hackathon is an event where several individuals come to together to “hack” on a problem. In this case, the problem that was being hacked on was immigration. The main goal of the hackathon was to help shape the experiences of foreign-born individuals in the areas of Employment, Capturing Experiences, Resources, and Community. The event lasted three days. The first day was for team formation. The second was just for development. The third was just for presentation. The solutions were judged on their execution, design, originality, and impact. Our team built a project called Immigrant Connect. It was a simple social networking for immigrants to form local communities and view local job postings.

Why did I go?

I went because I enjoy building projects with other students and wanted to further develop my project management skills in a high-stress environment. I also attended GlobalHack VI two years ago and wanted to see how much my skills have developed since the last competition I attended. There were also many companies sponsoring the event and I made an effort to network with them. Normally, I tend to develop the project and let others present, but this time, I wanted to take a larger role in the presentation of the project. Overall, I just wanted to have a fun weekend and try to build something I could put on my resume with the collaboration of several Spark students.

How was it useful

This competition was useful in several ways. I learned how to better manage a team to develop and present a project. I gained valuable presentation experience as our team had to present to several individuals and judges. In terms of presenting a app or website to someone. The design of the application can sometimes leave a strong negative or positive impression on the prospective consumer/customer. I also learned that when it comes to participating in a competition there is no real loser. There is winning experience and then there is winning money. Either way, it is a win-win. Hopefully, as I encounter more situations with a team dynamic or a large scale application I can apply the experience gained from this excursion.

– Michael Navazhylau

Read More

Now About Fear

There is so much to be fear to be had in the world. There is no guarantee of what will happen in the future. The only thing that is constant is the impermanent present. From one moment to the next, something changes. Even if it is not noticeable at first.

This directly leads to fear. Fear stems from uncertainty and irreversible negatives. Ex.

What if I fail that exam? I’ll be ruined
If I fall, I’ll die
I’m probably going to fail the exam anyway. Should I even study?

Obviously, some of these fears may not be realistic. Other times, these fears are well grounded. Having a fear of falling can probably prevent you from a premature death depending on the circumstances.

Other times, this fear can be paralyzing and detrimental. Like the fear of a certain event occurring. The more we fear this event occurring, we paradoxically increase the potential of the event occurring.

The best antidote to fear is reason. By using reason through methods of self-conditioning and analysis, we can eventually come to the conclusion as to whether or fear is baseless or not. That it is not the end of the world if we properly handle the circumstances and how we process it.

When I mean by self-conditioning is by voluntarily exposing yourself to ever increasing versions of you fear. By doing so, you can slowly chip away any logical fallacies that your fear is built upon.

A bit more of a philosophical post.

– Michael Navazhylau

Read More

What I’ve Learned So Far from Teaching Kids Coding.

Hello again. A couple weeks back, I got hired at this wonderful place called the TheCoderSchool. It’s this place where kids from all ages can learn how to code.

We usually teach younger kids Scratch and then move on to more advanced programming languages like JavaScript, Python, etc.

So here are some of the key things I’ve picked up so far from teaching.

Get to Know your Student

When it comes to teaching one on one, it is important to establish trust with the student. If you try teaching the kid something without knowing anything about them, it will be hard to teach the material in a way that the student finds useful.

For example, if a student likes video games, you would teach the material in relation to video games. Expanding on this example, you could have creating a video game as a project that ties in the knowledge being obtained in the lessons.

Be Patient.

Every person learns differently and at different rates. For some people, they can pick up concepts within the first hour of learning it. For others, it may take several iterations of practice before it finally clicks into place.

Age also plays a key factor. Younger kids often have a shorter attention span, so they require more patience to deal with.

Be Kind and Break the Ice

When you receive a new student, they don’t really know what to expect. Initially, your just a stranger to them.

Try to make small jokes and don’t be afraid to laugh at your mistakes. They will surely laugh along too.

Also just remember to be kind. Have it so you teaching them is something they look forward to. Not something that is just part of the routine.

Well, those are some of the things I’ve learned so far. I’ll update more often as interesting things come up.

I’ll also be heading to GlobalHack next weekend, so look forward to seeing a blog about that.

– Michael Navazhylau

Read More

The Balance of Commitments

We all have commitments. Commitments that are mandatory and commitments that are optional.

We may carry the commitment of school, work, family, etc. These are types of commitments that could be considered mandatory.

However, there are the optional ones. After-School clubs, meetups, hanging out with friends, etc

Depending on our value systems, we may place a very high or low priority on these commitments.

But..

If you don’t leave any slack in your life, how can you truly dedicate yourself to the commitments that are necessary to uphold?

Don’t be afraid to cut away these extraneous commitments. You can always come back to things when you feel like you can actually balance them.

Commitments can’t be balanced in the first place if you don’t have the time to plan and organize in the first place.

In that case, set aside at least an hour a week to look at all your commitments and plan things around accordingly. A schedule helps.

So that’s that.

– Michael Navazhylau

Read More

Incremental Improvement

Hello. Let’s talk about growth.

Water the plant

We all struggle with something, but there is always room for growth. Just a plant needs water and sunlight to grow, energy and time must be spent to improve as an individual in all aspects of life.

Growth as a trajectory for motivation and emotional upswing

There may be times where you may be feeling grim or sad… Perhaps even hopeless. However, if you can tell yourself that you will resolve the following day to improve at something… anything. Things inevitable will get better. How many things get better depends.

Commit to it

If you challenge yourself to improve something in your life the next day, you need to commit to it. At the very least, you should write it down prior. It also stands to be a commitment that can be looked back to on that day.

If you feel that you could not achieve the level of improvement that you wanted to reach, break it down.

Break it down further into something within your capacity and build from there.

Not many people can run a marathon without any prior training. Do not think you are the exception.

Start from the general case and work from there.


Best of luck to your growth, however small or large it may be.

– Michael Navazhylau

Read More

Are you Running Towards or Away from Something?

There is something.

Something that we are running from.
or
Something that we are running towards.

We tend to run from things that are uncomfortable to think about and run towards things that are comforting.

We may even stop trying to run. This is still running. Running away by not doing. Running away from our potential

Some of us. We may decide to run towards the uncomfortable, the unknown.

It may be scary at times.

But wouldn’t you rather run towards something then run away from it?

Read More

As the Number of Failures Grows, the Number of Lessons Grow as Well.

Well, I guess my writing is becoming very yin/yang in nature. Hopefully next week, they will have a bit more spice to them :)

Shall we talk about failure?

We all will fail at something.

There is no human I know of where everything in his life went according to plan. There is no way of knowing all the circumstances of the situation until the situation has arises. The only thing we know of for sure is the present. From the present, we see tiny portions of the past and potential futures. However, we will fail at something every day. Whether it is a large or small thing.

We will fail.

but

We will learn and grow.

Yes. We will fail, but it is nothing to get super upset about. The sun will set like it has billions of years before. Tomorrow will be a new day.

However, we will be different. We have encountered a failure, a mistake, an error. As such, we are slightly wiser then we were the day previous. This is only if we give the failure the appropriate amount of care and attention necessary to internalize the experience as a lesson.

As long as we look at varying degrees of failure and mistakes as opportunities for growth, we become more confident and adventurous people.


Hope you enjoyed this with your beverage of choice.

– Michael Navazhylau

Read More

The Art of finding interest in learning

Anything can be interesting

Things can be taken in two layers of depth, the surface level and the deep level.

At Surface Level

At the surface level, things may seem uninteresting. Just off minimal observation, we may find things uninteresting if it does not directly concern us.

At the deep level

At the deeper level, anything and everything is interesting. Even the simplest things like the observation of a falling apple (Newton) carries the most indefinite of complexities.

Look deeper and find these complexities, and you won’t be disappointed.

– Michael.

Read More

The fine walk between Kindness and Hatred

Well.


Kindness is the result of understanding that we all live in the same world and breath the same air.

Hatred is the result of a misunderstanding how things actually are and drawing artificial lines between people and others.

It is very easy to be hateful and very hard to be kind.

However, kindness does not mean being nice. It does not mean following the script written by society.

Kindness means that you are honest and understanding as much as you can be in any moment.

– Michael Navazhylau

Read More

Live Life Like it’s Your Second Time

I recently completed reading Viktor Frankl’s Man’s Search for Meaning

It was a fascinating book. There were things that were described that almost seemed counter-intuitive but made sense after a second read through. If there is any quote that has been stuck with me from reading the book, it would have to be

Live as if you were living a second time, and as though you had acted wrongly the first time.
– Viktor Frankl

When this is taken into consideration, many things that were once considered large stresses or small nuisances evaporate. Of course, it’s not all of them, but it’s a dramatically different mindset and commands a higher level of awareness in one’s life.

It carries great strength when considered under the context of great change. In the face of change, we may feel a great deal of anxiety and fear. If we expand this fear and anxiety into an entire life, we find that the only way forward is through this fear regardless. It will come to pass, but it only will if we take the leap of faith.

Really take the time to understand and ponder this statement. Who knows if it may carry deep meaning to you as well.

– Michael Navazhylau

Read More

In haste, things catch fire and burn down.

Hey. It’s Mecha. I thought it might be fun to talk about my short stint of burnout over the summer.

Haste may follow excitement

There are wonderful things in this world to get excited about: Bleeding Edge tech, New ideas, New friends, New Opportunities. In haste of all this overwhelming novelty that we may face, we may try to commit (grasp) onto many new projects or endeavors. This is our haste. Novelty can be a very alluring thing.

Because of our haste, we may crash and burn

Just like with our hands, we have a limited amount of things that we can hold on to securely. As such, when we pile on more than we handle, we crush our hands in the process.

Obviously, our hands will heal. Its a matter of how long they will heal and the rehabilitation.

This is burn out

My XP

Over the summer, I had the nagging sense that I had to work on something over the summer, technology wise. As much as I wanted to, my mind was telling me otherwise. I made the poor decision of ignoring it. Whatever I tried building during the summer, I can’t bring myself to looking at again.

Know your limit

Then maybe do your limit + 1, but that is it.

limit + 1 is if you’re aiming for growth. But limits are very volatile and dependent on several internal and external factors. Like Calculus :D

Anyway

Though haste sometimes is necessary and could be good at times, evaluate the situation and see if it can be properly handled in a calm manner rather then a chaotic sprint.

You will collapse if you sprint too hard. No one is immune to this

Thanks for reading out. I’m flying away for now

– Michael Navazhylau

Read More

Work Smarter, Not Harder

We are often told to work hard to get to where we want to get to in life. Sometimes actually getting there is a counter-intuitive approach. The ability for the human mind to focus or consume energy has set limits that should yield diminishing returns when exceeded.

Effective energy(time) usage.

There is an approximated attention span of 10 to 20 minutes for teenagers and adults. Obviously this attention span is largely dependent on numerous other factors. There is also the option to “refocus” on the given task at end once attention drifts to other places. To compensate correctly for the precious resources of focus, it is important to space sessions out.

For example, when picking up a new skill that must eventually be recalled, it will be more effective to study the task 20-60 minutes a day. This is in contrast to the stereotypical attempt to “cram” in the information within 2 hours a day before the recalling the information may be in order.

This form of learning is called spaced repetition

I recommend reading that first and then progressing from there. I have begun using the software called Anki and have had successful results so far.

Planning ahead.

One of my new favorite quotes since the summer has begun was one from Abraham Lincoln. It goes as such…

Give me six hours to chop down a tree and I will spend the first four sharpening the axe.

– Lincoln

The power of planning ahead can not be underestimated. When we are within the thick and thin of a situation without adequate planning, we can only rely of our limited intuition of our circumstances. Sadly, this makes for half-baked assignments, artwork, projects, etc.

Recurring tasks

Very rarely does one get a “flash of inspiration”. Rather it is a consistent commitment or “grind” where the creativity is cultivated and utilized.

It is by telling ourselves to create in the ignoring the fear that it will never be worth our time.

For it is up to us at the end of the day, to decide what will bring us meaning… not what others tell us.

– Michael Navazhylau

Read More

Start of Senior Year…

Well…

Senior year has started

Senior finally has begun and with it a new source for adventures. Adventures of the fun kind and the stressful kind specifically. There is also much time set aside for much needed spiritual + character growth.

Character growth?

Ah… well… ya know. I feel okay interacting with computers. There is not such a super high degree of variability with issues faced. The issue can usually be identified with a debugger and then removed. With people… I’ve gotten better. Its a life-long learning sort of thing, but I want to get a better handle of it this year before I start college.

Spiritual growth?

I set aside time each day to study a couple eastern philosophy. I’ll let you take a wild guess of what they are if you’ve read this blog longer than just this post.

Long story short. It requires a lot of contemplation of unwholesome (greed, hatred, delusion) acts and how to root them out permanently. It is an arduous process, and it is hard to tell when I’m making progress. I still find it a path worth taking.

Software Development

As much as I hate to admit it, I don’t think I am that good at building software. I may have a large repository of loosely connected technical principals (programming languages, game development, web development, etc), but the results are sporadic when it comes to the utility of the projects.

My plan is pretty drastic, but here is what it is.

I’m scrapping all the projects I started working on during the summer. Instead I’m going to set a goal to create one well developed project a month.

If there are multiple projects going on, my focus will be on the one which is of highest difficulty first.

Spark

In addition to the normal core classes you take in high school. I am part of a experiential learning tech program. We focus on building solutions to problems with technology. I plan on improving my ability to communicate and present within the class. Additionally, just growing my scope of knowledge within the technology space.

So that’s that.

– Michael Navazhylau

Read More

The Last Year of High School…

I’ll be starting school tomorrow, and I thought that maybe writing a post about that sort of thing would be interesting. I already wrote about summer in general. You can read about that here or here

The last previous 3 years of high school

I don’t remember too much about freshmen and sophomore year except that I learned some Math, Science, English, History, and Spanish. Plus there was learning how to be less socially awkward. Trust me, I’m getting there :)

Junior year was the most impactful. I faced many challenges and saw how many flaws that are need of addressing. What I initially thought were simple interactions came to be something else I did not entirely expect. In the end, I was forced to swallow some hard truths that I am still working on internalizing even now.

It was also the first year I took Spark! Spark! was and still is a wonderful place that people can spend their time learning skills through experience rather then through a regular classroom setting. I think they call it experiential learning or something of that sort.

For the first time, I was able spend time learning programming and technology with others rather then alone on my computer like I usually do. The feeling of belonging to a community like that, well… It’s an incredible feeling.

Looking forward (i.e tomorrow and beyond)

There is no realistic way of being able to predict everything about the future. If that were the case, it would not be as fun :). So making the best of my capacities and potential, I’ll put forth the best efforts to be of help to others and academically diligent. I cannot foresee what difficulties await, but they will happen and come to pass.

There is always an easier route in any situation. But if does not equate to the same yield as the harder route, the harder route will probably be better in the long game even if it looks boring in the short game.

Good luck

This was more of a personal post. If any readers are returning to high school/college this fall, I wish them all the best of luck.

– Michael Navazhylau

Read More

August 2018 Devlog 02: Building a Habit App but with RPG elements

Yo. It’s that bird. Mechasparrow. I’ve been doing some dev and making some tutorials.

What have I been coding this week?

Well I’m still kinda building the Scavenger hunt app, but I put that as second priority coding wise. The main application I’m working is called repeatic.

Repeatic is a habit task app with RPG elements.

What does this mean?

It means that as you complete certain tasks or solidify habits, you interact with a sort of game environment in the process. Kinda like Tamagotchi. You gain XP or lose health depending on how well you complete tasks and stay committed to habits.

How am I building it?

with JavaScript and React.JS

Whats the progress so far?

  • complete tasks
  • gain xp
  • create tasks

I plan on incorporating some pixel art aesthetics. Bad news… It’s going to be a lot of initially bad pixel art :D

That’s it so far. The repo is over at github

Other stuff

I completed another tutorial over on LiveEdu. LiveEdu is an online livestreaming programming education platform. I plan on starting to publish YouTube videos at some point.

Backend development has begun on the scavenger hunt application. So I would say maybe another good 70% to go regarding that app.

School starts less then one week from now… Pretty riveting IMO.

– Michael Navazhylau

Read More

On Project Based Learning

I really enjoy working on projects. Especially the ones that allow for creative freedom. When a problem is presented, we are either told by someone else how it is solved, or we are tasked with creating a solution. Often, there can be more than one solution to a problem. I find that incredible.

Retention of information

When a problem is presented, we are required to pull from multiple repositories of information to create a potential solution. Rather then making the excuse, “I don’t see myself using this in real life”, you are given a problem. Go solve it. Oh by the way… Here are some books that might help. Good luck.

By engaging the students in trying to find the solution themselves, they have a greater investment in figuring out what key information they were missing for the solution.

Diversity of learning

Depending on the scope of the problem presented, an individual has several paths that may lead to the completion of the project. Even if it is pre-structured project, the student/disciple is often given a variety of paths to complete it. This allows each student to pick up knowledge that aids them in the methods of problem solving that they utilize.

Collaborative efforts

By throwing multiple individuals into a project, a short feedback loop between team members can be established. This allows for incremental improvement and development without the complete fear that what is being built is somewhat viable. That is, of course, if other members choose to speak there mind regarding the project at hand.

Conclusion

If we want to stay motivated or learning new things, the best way is through the completion of projects or goals. This brings personal meaning behind the knowledge were attaining.

– Michael Navazhylau

Read More

2018 August Dev Log 01: App Dev and Project experimentation

I’ve been developing a couple of project lately. The main right now is a scavenger hunt app. Another friend of mine is developing this one with me, so that is pretty fun.

The other one I’m building is a information sharing platform. I’ll cover that one in more detail in the next Dev Log.

Features

The features the completed app will have are

  • Ability to complete scavenger hunts
  • Ability to complete unique challenges that each hunt contains.
  • A Leader board that shows which players have completed the most challenges/hunts
  • Ability for users to create their own hunts/challenges
  • Users will be able to check back on the hunts/challenges they have recently completed

Progress

The basic version of the app frontend has been completed. I have begun coding the backend API not too long ago. Be adding a web backend to the app, users will be able to interact with one another and allows for the accumulation of user-generated content.

The Tech Stack

The aim right now is to be able to release the app on Android and IOS once it has been completed. As such, we opted to develop the app using JavaScript and React Native on the front end. React Native offers wonderful cross platform support with the offer of integrating essential native device features like Geo Location. In addition, if the app will be ported to the web (with React.JS), very little of the code base will actually have to be modified.

For the backend API, I am currently experimenting with Ruby on Rails

This project is being developed at a relaxed pace. This is mostly because senior year of high school is starting up in a few weeks from now :)

– Mechasparrow (Michael Navazhylau)

Read More

Web Backend Development with Ruby (Rails) Part two

If you haven’t read part one. Go back and read that

In this tutorial we will create additional models and seed them into the database.

After that we will write a simple view that will display a list of items the the grocery store has in stock.

Lets make the application look nicer

Before we start adding more data models to our application, lets install bootstrap.

inside the file named Gemfile, add these lines to it

gem 'bootstrap', '~> 4.1.3'
gem 'jquery-rails'

Then run

bundle install

This will install the bootstrap library for the project.

Afterwards go into the /app/assets/stylesheets/application.scss file and add these line

/*
Adds bootstrap
*/

@import "bootstrap";

if the application.scss file ends in .css, just change it so it has the .scss ending.

You can do this by running this command to change it in the terminal

mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss

Add these lines to /app/assets/javascripts/application.js file.

//= require jquery3
//= require popper
//= require bootstrap

Now we have Bootstrap 4 added to our application!

Adding our new models

We are going to add 2 new models, Ordered_Items and Carts. The ordered items model will be a table of items that have been ordered. The Cart will contain items that were ordered by the customer. So there will be some level of overlap that we will have to account for.

These are called associations.

First lets create the new models.

rails generate model Cart rails generate model OrderedItem

inside the folder /db/migrate, there will be a file ends with create_ordered_items.rb, open that file and edit it so it becomes this.

class CreateOrderedItems < ActiveRecord::Migration[5.1]
  def change
    create_table :ordered_items do |t|
      t.integer :quantity
      t.references :item, index: true
      t.references :cart, index: true
      t.timestamps
    end
  end
end

The references fields refers to the tables that the the table is connected to. In this case it is the Item and Cart model. I’ll show you how this connects when we seed example data for this.

The last migration we need to create is in order to modify our previous Item table. To do this we run.

rails generate migration AddStockToItems

This will create a file in the migrations folder that ends with add_stock_to_items.rb. Edit the file so it contains this…

class AddStockToItems < ActiveRecord::Migration[5.1]
  def change
    add_column :items, :stock, :integer
  end
end

With the add_column function, this migration adds a integer(number) column called stock to the items table.

And finally.

rails db:migrate

Writing the model associations

In order to handle the connected tables we need to write the corresponding associations.

Inside /app/models/ordered_item.rb

class OrderedItem < ApplicationRecord
  belongs_to :item
  belongs_to :cart
end

Inside /app/models/item.rb

class Item < ApplicationRecord
  has_many :ordered_items, dependent: :destroy
end

Inside /app/models/cart.rb

class Cart < ApplicationRecord
  has_many :ordered_items, dependent: :destroy
end

With the belongs_to and has_many association functions. We tell the framework that a Item has many Ordered Items connected to it. The Cart also has many ordered_items connected to it. And the Ordered Item belongs to both a Item and Cart.

That way when a customer wants to take his or her cart to checkout, it already has all the corresponding ordered items. Those ordered items point to the items that are currently in stock.

This may sound over complicated, but it will make managing the item inventory much more easier :)

Seeding the data

If we want to display the items we have in stock, we need some items!

Go into /db/seeds.rb, and edit it so it is like this.

items = Item.create([
  {
    name: 'Apple',
    description: 'Basic Fruit',
    price: 0.25,
    stock: 1
  },
  {
    name: 'Watermellon',
    description: 'Fruit mainly composed of Water',
    price: 3.00,
    stock: 1
  }
])

run rails db:seed

to add the new data to the database.

Now we have some initial items that we can display.

Displaying the item catalog

So now we want to display the items in the shop. Go back to the InventoryController (/app/assets/controllers/inventory_controller.rb) and edit the index function like so

...
def index
  @items = Item.all
end
...

We created a variable called @items that we will be able to reference to within our view template. Item.all retrieves all the rows from the Item model.

Let’s edit our view to be able to use this variable. Go into /app/views/inventory/index.html.erb and change it to this

<div class = "container">
  <h1 class = "header-title"> Here are all the items that are currently in stock...</h1>

  <% if (@items.length <= 0) %>
    <p>Sorry no items :-( </p>
  <% end %>

  <% @items.each do |item| %>
    <div class = "card card-item">
      <div class = "card-body">
        <h5 class = "card-title"><%= item.name %></h5>
        <h6 class = "card-subtitle mb-2 text-muted"><%= item.stock %> in stock</h6>
        <p class = "card-text">
          <%= item.description %>
        </p>
        <p class = "card-text card-item-cost">
          $<%= '%.2f' % item.price %>
        </p>
      </div>
    </div>
  <% end %>


</div>

also edit /app/assets/stylesheets/inventory.scss to contain this

.header-title {
  margin-top: 16px;
}

.card-item {
  margin-top: 16px;
}

.card-item-cost {
  color: green;
}

Now when you visit the / of the rails app. It should display something like this.

Great Job! Now people can see what items can be purchased! In the next tutorial, we will start adding functionality that will allow the user to add items to his/her cart.

You can get the source code for this project on Github

– Mechasparrow

Read More

Summer Vacation 2018

My 2018 Summer so far

Oh how different it really was

This summer. This summer has been quite a ride. When I started this summer, I thought that I would spend time just studying computer science and reading math textbooks. Yeah… That’s not really how I do “computer science”. Maybe next summer, or over the senior year… But definitely not summer.

Personal Development

For me, summer has always been a time to build new frameworks for sustained growth and progress. It is like the calm before the storm. Its not like nothing happens during summer. There is just more time to think. However, that shouldn’t be an excuse not to think when it counts.

And with this summer, this has been never more true. I am entering my final year of high school. Beyond that, college. This creates some uncertainty about the future that most be faced directly and no longer avoided.

Learned some things

I did learn some concrete things summer, not just spiritual or “life lessons”. Due to some unforeseen circumstances, I had a unfulfilled art course requirement that needed to be taken care of. I choose to take care of this by taking an online summer art course over AP Art History. I did not know how much this would change my appreciation for the arts and just art as a whole. Though it was long and tedious, I am glad that I took that course this summer.

I had some social conflicts with some new and old friends. In the process, I learned what I really valued in a friendship and what it means to be supportive and understanding of other peoples lives. By what degree? I can’t really say without point of reference

Programming and Building things again!

In the beginning, I referred to not studying that much computer science. Well I studied a little. Just a couple chapters of a textbook. Instead, most of my time was spent studying new frameworks and tools that I could use to create interesting and useful applications. For the tech nerds out there. I studied React.JS, Redux, React-Native, and some Backend tech. I’ll list links to these in the bottom.

I learned these technologies through project-based learning. I’m working on a couple projects right now. For now, just an app and a sort of game with geo-location. I also plan on starting to live stream these and release some tutorials on a semi-consistent basis.

Teaching

A couple weeks back, I got hired as a programming instructor for a Untitled Learning Center. I also have been creating tutorials for the LiveEdu platform. The skills I pick up in teaching should be helpful in other avenues of life. Who knows?

React
Redux
React-Native


This has been a long blog post. So I’m going to cut it here. I might go into more detail on specific parts later on. But thats that for now.

– Mechasparrow

Read More

Web Backend Development with Ruby (Rails) Part one

What is an web backend

A backend is the piece of software that deals with the business logic for interacting with the application’s data. This could be tweets, account records, facebook posts, and any other sort of data that you could think of that a user would want to interact with.

In a later tutorial we will go over frontend development to help shape what the user sees.

What are we going to build?

We are going to build a simple store inventory system. That way a grocery manager/clerk can keep track of what items are in stock. This tutorial will be separated into different parts. In this one we are going to just set up rails and generate some basic code to start.

Installing Rails

Make sure that you have Ruby installed. Once you do we are going to run this command in the terminal

gem install rails

This installs the latest version of rails that we will be used for developing our store inventory software.

Alright it is time to create our application.

rails new inventory-system
cd inventory-system
bundle install

This creates our new application in a folder called inventory-system and then we move into that folder and install our libs with the bundle install command.

From this point on, when I refer to /, I mean the path to the inventory-system project folder.

Launching the application

You can launch the application with

rails s

Then navigate your web browser to localhost:3000

You should see something like this..

Your on rails

Generating helper code

We are going to generate some code just to save some time.

Generating the data model

A model is software layer that simplifies the process of saving and reading data from our database.

So for our items model. run

rails generate model item name:string description:text price:decimal
rails db:migrate

This generates a model that has a name, description, and a price field. This will be important later on when we are saving or viewing item data. We then run a migration with the second command so the database is changed in response to our model code we generated.

Generating the controller

The controller is the code that is the real meat of the application. This is where all the business logic goes.

To generate our controller run

rails generate Inventory

This generates a controller (ruby file) that will deal with all the business logic for managing our inventory. Our inventory will just be a collection of Item data.

This will generate a file called inventory_controller.rb

in the file you’ll see

create a function called index

def index

end

and then go into /config/routes.rb

and add the code as seen from the new code comment

Rails.application.routes.draw do
  # New code
  root 'inventory#index'

end

then create the file starting from root /app/views/inventory/index.html.erb

inside it write

<h1>Hello there</h1>

Now if we visit localhost:3000, we should see this simple web page with the text, Hello There

That’s it for this tutorial. In the next one we are going to actually load some items into the database and render them to the client.

There will also be a separate tutorial on install bootstrap for this project.

You can get the source code for this project on Github

Read More

Building an Anime App because why not?

Why

So one day, I was watching Anime. I do this on a frequent basis. With that being the case, I realized at some point that there was so much anime that I was losing track of. I looked at the current implementation out there… mainly MyAnimeList, but I thought I should build something a bit more extendable. There were a couple features and aesthetics that I wanted to modify. Not only that, I also have a set of favorate characters(A.K.A Waifus) that I thought would be cool to add in too. There is also a collection for this called MyWaifuList

Stack

The stack as of right now is just Angular 6.0 with TypeScript and Web Browser Storage. As I further develop the app. I’ll probably off load some of the logic onto a backend server of some sort.

Features

  • Profile Page (WIP)
  • Anime Search
  • Waifu showcase
  • Anime/Entertainment collection Page
  • In Progress Features

exit()

Well that’s all I have to say about Animku (WIP). If you’d like to learn more or take a look. You can check the source code out at Github

Read More

Nightly Code Binge Result #1

Image of a whiteboard

So with the wonderful amount of time I have allocated during the summer. I get to do some things that I would not normally do on a school day.

Note… It’s like one in the morning so…

HMMM

Hmm indeed. I have been coding something to do with Anime and some other cutesy things. Though anime is a niche, I plan on expanding it onto other stuff. Then I can just integrate with like 5 apis for ex (YouTube, Netflix, SoundCloud, etc…….)

What did I code today?

Looky here -> Github Link

I’ll have a prototype out later this week. (I think)

What will happen tomorrow

Probably more coding. I’ll also start working on my more serious app. More detail on that tomorrow

See ya next time.

Read More

Highschool So Far

So high school has been pretty interesting so far. I would like to say that I would like to get out of here and soon as possible. That feeling is greatly enhanced by that fact that I have one year left of high school. So in this article I’ll just go through the rundown of some key things that happened each year.

Freshmen

  • Took classes
  • Joined clubs
  • Coded

Sophomore

  • Took classes
  • Kept doing clubs
  • Coded
  • Virtual Business

Junior Took ½ classes + Spark

  • Spark is just more coding
  • Quit some clubs joined new clubs
  • Experimented a bit and then cut off sketchy friends

Senior

  • IDK

Within all of these years of high school and public education so far. I would have to say that my Junior year of high school has been the most valuable to me. The stakes were higher with exams like the ACT. Some classes I took were extremely interesting as well. Especially Government and Crime and Law. With how I’ve been taking classes, hopefully, senior year will not be that bad :D

Read More

How I organize my tasks for the day.

Organizing my tasks

So I started utilizing a system that I haven’t used since Summer Break started and I thought that I should share it. It’s quite simple (I think)

The System

I use this text editor on occasion called Emacs. Within Emacs they have special modes/plugins. One of the modes are called org mode. With in Org Mode you can do you can write notes/agendas/todos and so much more

How is this system used

Everyday when I wake up in the morning (and have the energy), I create a new agenda file. This agenda file is a simple checklist file that has tasks separated into several categories.

Categories?

Yeah categories.

Like What?

The categories that I have setup right now are

  • Work
  • Mental
  • Physical
  • Spiritual (i.e Buddhism, Philos, etc)

By dividing all my tasks into these categories I can maintain a productive level of energy without burning myself out.

And sys.exit(1);

That’s it for now. I’ll modify this post with links tomorrow…

Read More

Game Dev Log for April 16

Game Devlog

Alright I’m tired. It’s 10:30. Whatever.

I’ll talk about the progress of the game I’ve been building for the past couple of weeks

Here we go

Story

The game, Rodnova, is a game where you are Rod. Rod is a young scarf wearing Novian who was made fun of because he wore a scarf. The games main purpose is show that regardless of who people tell you, heros can come from unlikely sources and should not be underestimated. Rod goes on a journey to prove his strength and save his village from the 4 demons of the apocalypse. That’s the story I have in my head so far.

Level Design

The levels are split into 6 sections.

  • Tutorial
  • Grasslands
  • Firelands
  • Waterlands
  • Airlands
  • Village

Each of these sections have 4 levels except the Village stage, and the Tutorial levels.

Each set of levels is intended to present Rod with new challenged and new game mechanics.

I have not designed many games before hand so the level design still needs much work

Today

I finished up most of the Airlands levels. I just have to creat the boss level for Airlands and that is it for that section.

Tomorrow, I will complete the Airlands boss, and begin working on the Village levels

Other updates

  • Turned 17
  • Building web application in Spark
  • Eating, Sleeping, High School, Coding

Game will come out within the following weeks
Stay tuned!

– Mecha

Read More

Project Management of Software and the Like.

Software can be troublesome

Especially when most of the time your experience is lone wolf coding. So for some reason, I decided to take a leadership position in a team project of 8 people.

I don’t know how to manage people

So how do you manage that many people and try to build a product in eight weeks?

Trial and Error my friend.


Getting everyone on board

Alright, you starting from ground zero. How do you start getting to work?

To start you need to:

  • Understand each member’s strengths/weaknesses
  • Create basic understanding of overall functionality and look of application
  • Look at end goal and work backwards

Each of these help advance the project in some way.

Understand each member’s strengths/weaknesses

Being able to gain a simple understanding of each member allows for better collaboration and team productivity down the road

Basic understanding of look and feel of application

With every team member on the same page (hopefully), the application development will become less difficult as less adjustments will have to be made

Look at the end goal and work backwards

Looking at the end goal and working backwards allows for the project to be broken into tasks and user stories. This will aid in the next step which is task delegation.

Task Delegation

Task delegation is one of the most crucial parts of project management. Without it, everyone would be working on the same features.

A good tool to use for task delegation is a kanban tool like Trello. By using such a system, each member knows exactly what to work on and when it needs to be done.

Clearing/Preventing Misunderstanding

This is a multifaceted issue, so I will try to offer what has worked for me so far.

In the midst of an misunderstanding, it is best to figure out how the misunderstanding came to be and come to a common consensus with the team member of what needs to be done.

A good way to prevent this from ever happening is to have a workshop that goes over where all the resources, tasks, and information for the project can be found. This saves time and energy as you, the project leader, will not have to answer as many of questions of confusion.


Good luck

I hope I was able to shed some useful advice in this article. If I did, please be sure to like, follow, share. It is greatly appreciated :)

Read More

Back to Top ↑

2017

Alkonost version 1.0 released

Project Release! Alkonost: Another News Aggregation App

Alright. Alright. What’s the project?

TL;DR link to news app


So recently, I’ve been kinda annoyed with news stuff. As a result, I’ve been working on a news aggregation app in my free time.

It’s called Alkonost. You can use it here

What does it do?

Well right now. Not much.

Currently I have it setup to read some news from a select set of newsfeeds and categories. The categories are as follows

  • Business
  • Tech
  • Entertainment
  • Art and Culture
  • Lifestyle
  • Politics

I hope to implement more customizability in later versions.

Features to Implement

Here is the current list of features that I plan to implement for next release.

  • Add custom rss feeds
  • Add custom categories
  • Delete rss feeds

There is definitely a ton more I wish to implement, but I need to have a goal in my sights :P

Important Bugs

The current version of the app works. However, there are a couple of bugs. The main one is that

You can’t pull up the newsfeeds too quickly

What this means is that by switching between different news categories too quickly it could cause the app to glitch out.


That’s it for this post. If you enjoyed it please be sure to comment, like, share, and all that other fun stuff. Cheers.

Read More

Implemented Medium Archiving

Just today I completed the medium archiving process. You can now view the archives at

/archive

How did I implement it?

I went over to medium. There I downloaded an archive of all my posts I wrote. They were saved as pure HTML files.

I put them all into a folder labeled “archive”

I then created a page that iterates through each page and links to it.

bad news: They are still pure HTML files :(

I would still mark it as an success

Please be sure to check out the archived posts at

/archive or on my Medium page

Read More

Archiving Medium Posts

I recently stated that I would be moving off Medium and writing mainly on my personal website.

Main issue with this though is I have quite a bit of stories on Medium.

Solution?

So the solution to this is pretty simple actually. Medium allows writers to download a zipped archive of all their posts.

I will just have to create a page on a website that links to all archived posts. They will be viewed as unstyled HTML webpages.

I’m sorry :P


That’s it for now on this piece of development. I will update about this once it is completed.

Read More

Building Alkonost: Aggregated RSS News Reader

Hello.

Overview

I’m currently working on this new project called Alkonost. It’s basically an web app that gives you news from a variety of sources.

I’m building it right now to help diversify my own news reading. Version 1.0 will have a set amount of connected new feeds and categories.

The initial categories for the app will be

  • Tech
  • Business
  • Sports
  • Politics

The tech

The application is mostly built with the ionic framework. It is a useful tool for building mobile web applications with HTML, CSS, and JavaScript. I highly recommend if you are trying to build hybrid applications.

I also have to write a RSS parser in the app. I found a library that does most of the hard work for me. However, there is still some kinks I need to work out.

Most of the tech for this project was built out 2 months back for a tutorial I created. I am repurposing that code and publishing it.

The main issue right now is the exerpts creation. A user should not be able to view the entire article within the app. Instead, they should only be able to view an shortened version.


I will write more regarding this project as it progresses. That’s all I have for now.

Read More

Updated Website

Hey everyone. I’ve been focused on school and work related matters recently, so I haven’t had much time to work on the blog. Before I was about to start blogging, I realized I needed to make some changes to the website.

The main feature that I added to the website was a work page. I listed links to my Github, LinkedIn, and Product Hunt page. In addition, I also wrote an excerpt for notable projects that I have worked and am currently working on.

Next Steps

The next features that will be added to the website will be a category and archive page.

The category page is for organizing my several blog posts and content more effectively.

The archive page is needed because I still have quite a bit of blog posts from Medium that I need to move over.


Well that’s it for today’s developments. If you enjoy my work/writing please be sure to share or comment below. You can also contact me directly at mechasparrow@gmail.com

Read More

Welcome

Welcome to the Blog

Hey. This is Michael. After several restless weeks of not blogging, I’ve decided to quit Medium. Instead, I will be blogging on my website mechasparrow

I feel that by blogging on my own website, I will have greater control of what I write about and the content I produce.


DevLogs

I will continue writing DevLogs. Expect those to be published weekly on Thursdays. New projects include an RSS Feed Reader, Cryptocurrent/blockchain, and a game! I can’t wait to talk about it these projects.

Poems and Creative endeavors

A couple months back, I experimented with alternative genres of writing. These mainly included poems and philosophical pieces. I will continue writing these type of posts as well.

Livestreaming and YouTube videos

I plan on creating course material and other types of content on platforms such as Youtube, Twitch.tv and LiveCoding.edu . I will post written post versions of these videos and courses.


I hope you guys enjoyed this blog post. If you did, please be sure to share, like, etc

Read More

Back to Top ↑