fabiochiu/medium-articles huggingface dataset:
BUILDING HOPE THROUGH STEM EDUCATION FOR CHILDREN IN CONFLICT-STRICKEN NORTHERN UGANDA
By: The Partnership, Psipse
Tags: Africa, Sdgs, Uganda, Education, STEM

Seventeen-year-old Atim knew she wanted to become a doctor when her brother fell from a tree last year.

Her younger brother was unconscious after the fall and appeared to have fractured an arm and a leg. But when her family took him to the government hospital at 4 pm in nearby Lira in Uganda’s northern region, they were turned away.

“They told them you are late,” she explained.

And although the family returned early the next morning, they were turned away again for no apparent reason. They were forced to turn to the more costly local private clinic.

“People are dying. If there is no one to coordinate you [at the hospital], you will be left standing forever,” she said passionately. “I want to help people, no matter who I am.”

It is this passion that has pushed Atim, a top senior 4 student at Otwal Senior Secondary school here in Acholi subregion, to pursue STEM subjects, recognizing that it is a pathway towards her future goals.

But not all girls here are as ambitious as Atim. Northern Uganda is probably best-known for the years-long insurgency led by Joseph Kony and the Lord’s Resistance Army that terrorized much of region into the mid-200s. By the time the war was over, the area struggled to recover amid early attempts at resettlement.

“In Uganda, the northern region is behind the rest of the country when it comes to STEM subjects. And it is even worse for girls,” said Tryphosa Kwagala, the Uganda country director for the Africa Educational Trust. AET provides education for excluded people in impoverished or conflict-struck areas in four East African countries: Uganda, Somalia, Kenya, and South Sudan.

With their Business Resilience Innovation Technology and Enterprise (B.R.I.T.E) Futures program, they are working for secondary school students in northern Uganda to have increased future opportunities for employment and entrepreneurship by introducing them to STEM opportunities.

“We also want to see that these young children are able to go to the higher education of learning so they are able to drive economic development in Uganda,” Kwagala said.

The project, currently in eight schools locally, is split into three parts: a student component that includes an ICT and enterprise club, and career fairs; a teacher component that involves training for STEM teachers; and a community component made up of school mothers to support female students.

Overall, the goal is for the 19,000 affected-students in their program, like Atim, to come out with skills that can help them finish secondary school, and move into higher education, said Kwagala.

“Because this is the 21st century, and in any business formal or informal you will need these skills. We are speaking of improving their learning outcomes and their future employability.”
TO BETTER IMPACT THE STUDENTS, THE FOCUS TURNS TO TEACHERS!
By: The Partnership, Psipse
Tags: Entrepreneurship, Life Skills, Sdgs, Teachers, Education

Paul Bbosa, a commerce teacher at Entebbe Secondary school teaching a skills lab which uses student-centered approach to learning. Bbosa, is one of 1500 teachers that have been trained by Educate!

With Educate!’s focus on competency-based teaching methods, the organization understands that they need buy-in from a particular stakeholder to guarantee the success of their work: teachers.

Their teacher development program provides teachers an opportunity to use proven student-centered pedagogy, like the skills lab approach, while getting experience in mentoring students and coaching other teachers.

Educate! does this through periodic training sessions with two teachers from each of the 750 partner schools. For the teachers who implement these pedagogies in their classrooms, they are seeing immediate success from their students.

Lubega Anitah, the program officer for Educate! in the Entebbe community, does capacity building for the teachers in the region. A former teacher herself, she passionately believes in the work of teachers and the change they can bring in pupils’ lives.

“Because what are we supposed to do as teachers? It is not just teaching, but you’re supposed to cause learning. And this learning is expected to be relevant,” she said.

“We are looking to prepare these kids to face the future,” she added. “We are giving them work readiness skills, and they should go out there when they are ready…Because we’re in a global economy, which is really changing. And these skills are very, very paramount.”

Bbosa Paul is a commerce teacher — one of the two teachers who has been trained by Anitah at Entebbe Secondary School — that believes the program has impacted his teaching style.

“It has helped me help the learners,” he said. “But it has also helped me grow professionally and personally.”
Disberse + AidHedge = True!
By: Númi Östlund
Tags: Fintech, Sdgs, Blockchain, Collaboration

Disberse + AidHedge = True!

Some of you might already have seen it (we had a little teaser in the last update), but here is the big news! We have decided to team up with Disberse to build new and better services for aid finance. They are a regulated financial institution (FCA in the UK) and provide financial transactions through a peer-to-peer network of partner nodes, built on distributed ledger technology and using smart contracts to automate transactions.

Through Disberse aid organisations can manage their funds more efficiently and transparently, with frictionless transactions and complete traceability. Their service provides a range of functions — such as multi-currency support — and they will introduce more functionality in future.

“By integrating AidHedge into the platform, users will be able to combine the financial services from Disberse with all the optimizations we can provide.“

Integrating with Disberse we can provide aid organisations with all our benefit directly, without the painstaking data-gathering from numerous external parties.

All the financial costs and risks associated with an international project are automatically analysed — including foreign exchange risk, burn rates, inflation and interest rates — enabling informed decisions about how to manage funds, maximising project efficiency by lowering financial costs.

Already started, but a lot of next steps

We will start by providing joint offerings to clients, right now! And looking ahead we see a lot of opportunities in building additional joint services based on our two platforms. Get in touch, or stay tuned!
Appreciate What Is Going Right — and Double Down
By: B The Change
Tags: Stakeholder Capitalism, Sdgs, Gratitude, Community, B Corp

“I’m hoping that those of us who are thinking about the big hurdles that we are facing right now — from health care, to homelessness, to climate change, to the future of work, to the future of education — that we cannot imagine designing and building those systems without thinking about the human beings within them, who are longing to be loved and longing to belong.” — Jenn Hoos Rothberg of the Einhorn Collaborative during a BBMG podcast

In a year when most of our connections have been virtual and many of our routines have been disrupted, we’ve all faced our share of personal hurdles — some bigger, and more serious, than others. But we’ve also realized the importance of facing the hurdles that affect us all: the environmental, economic, and societal challenges that loom large.

This week, as people across the United States take time to show gratitude — at a distance — for their communities and connections, B The Change Weekly shares examples of Certified B Corporations aligning their work and setting lofty goals to tackle some of those big hurdles. Amid the changes and disruption of this year and the continued challenges ahead, the B Corp mission of business as a force for good, for all, holds more relevance and opportunity.

Create and Measure Meaningful Impact

This year’s challenges have further magnified many of the problems at the root of the Sustainable Development Goals while accelerating the need for change and action. By aligning their work with the SDGs using the SDG Action Manager to measure and manage their progress, B Corps are connecting everyday projects with larger, long-term benefits for all stakeholders.

Overcoming a Crisis of Connection

In a culture that seems to be driven by division and distrust, Jenn Hoos Rothberg sees an opportunity to help Americans build stronger relationships, embrace differences, and rediscover common ground. In the latest episode of B Corp BBMG’s new podcast, The Future We Want, she shares how building a culture of connection and belonging can advance solutions to society’s most urgent challenges.

Acting with Gratitude Despite the Downers

Focusing on what went wrong this year may be tempting: business challenges, pandemic shutdowns, too many online meetings, and more. But Katie Huey of B Corp Trebuchet Group says it’s important to appreciate what is going right and cultivate a spirit of gratitude for and with your workplace team.

Stay in the Know

Here’s your chance to catch up on recent articles:
Animating SVGs with CSS: what? why? how? 🤔
By: Janet Mendez
Tags: Css Animation, Flatiron School, SVG

Wait, that looks like HTML! — Yes, hold on to that thought!

Before I get into how we can treat this like HTML and add the nice styles to it, I want to talk about the S in SVG (it stands for Scalable).

Now when we mean that this is scalable what are we saying? Well, our entire coordinate system is like a blueprint for how we want our image to look like. With this blueprint that we have, we can now make it as big and as small as we want it to be. And also, it will stay crisp the entire time because you are are using math and we can compress this in a tiny file.

Now let’s do something with this SVG!

Now, as mentioned before this looks a lot like HTML and that’s because they both use XML based markup (angle bracket tags with content inside it).

So when we load our SVG inline our HTML we can now manipulate it with CSS and add transitions and animations. So, using the same SVG code from before, I’m going to add the following styles to it and show it on CodePen.

Breakdown of CSS code:

.menu_svg is a class given to our entire <svg> element

is a class given to our entire <svg> element .menu_svg > path is basically saying: in our [.menu_svg element], find all the direct children that are <path> elements

is basically saying: in our [.menu_svg element], find all the children that are <path> elements .menu_svg:hover when the mouse if being hovered over this element

when the mouse if being hovered over this element .menu_svg:hover > path when .menu_svg:hover , apply these styles to all the direct children that are <path> elements

when , apply these styles to all the children that are <path> elements .menu_svg:hover > path:nth-child(2) , same as the one prior except, only target the 2nd direct child that is a <path> element.

Breakdown of specific SVG CSS properties:

These properties are relative to when you are creating vector graphics
How I went about building this app — the logic behind it
By: Ricardo Paul
Tags: Ruby on Rails, Flatiron School, Noukod, Ricardo

How I went about building this app — the logic behind it

Rails is based on model-view-controller (MVC) architectural pattern, in this blog post I’m going to refer mostly to the models of the app.

To kick things off I used the rails new command to generate the app folder and some of the core rails files and directories. Running this command displays a great deal of output that tells you what rails is installing. After all, I ran bundle install as rails as created a Gemfile with some core gems.

After I ran a migration to create my first model (Pub), a database table and some attributes. With this model created, I built the functionality to create, read, update and delete a publication by creating views and controller actions.

Everything is working, now it’s time to transfer all of those editing abilities to a user.

To do this, we need to generate a User model and database. There’s a great gem out there that does this pretty well called devise. I headed to RubyGems and installed that gem being helped by the documentation. I brought a little modification to the registration fields brought by devise that didn’t include a name field. I configured the controller to allow the user to own a created pub, and give the user the ability to do anything to publication once created. And Yup!!! Everything is working fine again…

What followed after is giver users the ability to write an answer associated to a pub. For this I wanted to do the same thing by generating a model called Answer. I nested Answer under Pub in the .routes file and build the form for a new answer with respect for the nested routes. And I allowed the user to perform the same CRUD actions on an Answer.

Now comes the time to create Groups and associate Users to Groups and Groups to Users. for this purpose we’ll need a has_many :through relationship. I build this relationship using a join table called GroupMembership and bring some configurations to the User model and database to allow these configurations to work.

This is the logic on which the app is working. All along building the app I used some helpers and partials to DRY the codes I write.

Here’s the github link to the app https://github.com/RickyyCoder/language-study
Sinatra Project- Show Your Keyboard
By: Dillon D Nguyen
Tags: Coding, Flatiron School, Keyboard, Show Your Keyboard, Sinatra

After creating the tables/database, we create the controllers. In this case I used the application controller (creates the overall flow of the app) in which the rest of the controllers inherit from, the users controller ( performs CRUD actions for the user), the sessions controller (responsible for login and setting cookies), and the images controller (performs CRUD for images).

These are the controller files created to help the flow of the app

The next step in making the app come to fruition is creating the views which allows to render the routes in the controllers. Our views uses “.erb” files which is Sinatra’s template to use HTML to embed Ruby. Side note: a strong characteristic of “.erb” files have “<%%>” expressions. For me in particular the views aspect of this project took the longest for me to create because of te different form tags and their function and expression. But with the help of videos and searching the internet, I was able to slowly put the views together.

This is an example of an .erb file and small part of the views portion of the project.

Before getting to the last part of the project, I need to preface that any project that you should decide to begin, remember that the project will read your config file first. If you are starting the Sinatra project, remember to connect your migrations and change the “if ” statement from:

if ActiveRecord::Base.Migrator.needs_migration?

raise ‘Migrations are pending. Run `rake db:migrate` to resolve the issue.’

end

TO:

if ActiveRecord::Base.connection.migration_context.needs_migration?

raise ‘Migrations are pending. Run `rake db:migrate` to resolve the issue.’

end

because for some reason the previous method does not work as intended. And to also bring in controllers (responsible for the flow of the app) into the config.ru file.

Last but not least, the styling of the project comes through via the public file into the style.css file. This is where creativty comes in, where there are vast variety ways of making how your app looks and the way you would like to make it look. I however did not spend as much time on styling, as I was more focused that the functionality was working. That the function was to be a simple image uploader, mainly for keyboards. Fortunately enough, there are many CSS styles to choose from, for the syntax and expressions I also searched the web to understand CSS.

That’s about it, overall the project further helped my understanding of has many and belongs relationships, the use of CRUD, and the MVC format using Sinatra. It also helps to show how the get and post routes work through trial and error along with helpful videos that show how to build out these routes step by step.

Therse are the gems that i used in my project which are all accessible here:

Access to my repo is here: https://github.com/DILLONDNGUYEN/show_your_keyboard

Thank you for reading about my journey in the Sinatra project
How I created a basic learning platform with Sinatra — Part I : Project Architecture
By: Gilbert Torchon
Tags: Flatiron School, Ruby, Sinatrarb, Ruby on Rails, Freecodecamp

Sinatra is a Back End framework that allows its users to create Web Application with Ruby. It is based on Rack a simpler Ruby web application framework . In my journey of becoming a Full-Stack Web Developer I learned Sinatra on Flatiron School online boot camp and as a final project for their Sinatra Section, I created a simple learning platform. My goal with that article is to describe the process I used to create that web app. The web app is available on GitHub.

First, the learning platform we will create allows a super-user to post courses, manage them and the users. Then simple users (that are not admins) are able to read lessons and mark them as passed and reset their progress.

To create the app, of course, the first thing to do is to set up the project architecture and this will be the goal of this article. Just create a folder on your computer (if you would like to use GitHub as a host to your remote repository you should start by creating the repository and clone it to your computer) then name if whatever you want. Then give it this architecture:

Assuming you have bundle installed, typing bundle will create a Gemfile file that will hold all the external packages (called gems) you need for the project.

Here’s the packages I used to create the project:

Don’t bother about the test group. You don’t really need it to get the project going, except if you will be writing test (which is good practice). Then after putting all of the gems that you need in the Gemfile get back on your terminal and type bundle . This will actually install the packages and create a Gemfile.lock (different them Gemfile). See the difference between the two.

For the packages, themselves here’s their use: sinatra just gives you the structure for the web app routes, sessions, cookies, templates, layout etc. active-record gems helps you to create the database and access it through ruby objects and sinatra-activerecord extends Sinatra with ActiveRecord helper methods and Rake tasks. sqlite3 is the database engine. Then comes bcrypt that helps securing passwords, rack-flash3 that creates flash messages for the user in the controller to display them later. rerun will helps restart your server automatically when there’s a change. Just type rerun rackup config.ru in your terminal.

No that we’re done, the next step is to design the database! (But that will be another article) :D
ActiveRecord => The Minon Under the Hood
By: Akram Helil
Tags: Flatiron School, Programming, Ruby on Rails, Orm, Activerecord

It has been a blessing being part of the Flatiron School, surrounded by those with passion for making something from nothing. I was encouraged to write something about what I learned at school to share with others. As a newbie engineer, I am pumped for receiving feedback from my teachers and peers. Feel free to reach out to me for further discussion or suggested edits for this blog.

ActiveRecord is a design pattern. It writes SQL queries and comes with a set of simple methods and tools to manage your DB in ruby. ActiveRecord helps programmers to connect and maps the table columns to the corresponding object attributes. Then programmers can play around with data and interact with the application without doing all the tricky manual stuff.

Fundamentals of programming are essential. Not only for the further learning journey, but also to have a better understanding of how to troubleshoot and kill the bugs.

I believe programming is creating something from nothing. Imagine how it’s already so hard to create without any base, even with a physical object. Now we are working wit so many abstract things that we can’t touch and feel. The challenge is REAL!

It was difficult to get in the mindset of creating from scratch, not because of the concept; it’s the practice of thinking different and making something out of nothing. In the short amount of 3 weeks, I had many big wins from Array to hashes to my first polished CLI app that utilized the Active Record.

Now I truly understand why I fell in love with programming! It’s complicated and challenging, and I accepted the challenge.

I’d like to share a part of my understanding of how Active Record has helped us make things happen under the hood.

First, ORMs are our friends, and they do the hard job for us — the data part — in helping us to do all the fun things. Active Record is a robust CRUD base ORM that connects the ruby program to your database. In other words, it’s the middle man between your Ruby program and the database that does all the hard work of SQL for us.

Here’s a cute little map that I drew after I was inspired by how this Orm works. After creating our tables and migrating the DB, we see the magic of the hard working minion ORM — Active Record.

Here is a simple little map of CRUD in AR(Active Record)

Of Course! We worked so hard for this Active Record! Thanks to the Developers who made our life easy. What a great time to be alive!

We all know we love our Active Record and other ORMs!

Resources:
Optimize Your Mod 2 Code Challenge
By: Robert Vidal
Tags: Software Engineering, Ruby on Rails, Flatiron School, Software Development

With the Mod 2 code challenge fast approaching, we have the daunting task of meeting the requirements in the short time frame of 75 minutes. As an error prone new developer, I worry about being able to finish everything I need to in the allotted time. This blog will demonstrate the time I saved by using the rails generate model method and rails generate resource method vs. doing everything by hand. We can drastically reduce our time spent on tedious work if we use these tools, allowing us to focus on the code.

Starting any rails project from scratch will first involve you making sure you are in your desired folder, from there run rails new sample_name in the terminal. This will create the folders we have all become accustomed to in the labs and pairings. After cd-ing into your new project, you are now able to either set up the MVC structure by hand, with the rails generate model method, or with the rails generate resource method. That being said, it’s my opinion that the last method is the most useful and least likely to cause error in your code.

Doing everything by hand = 5 minutes after checking on inheritance/syntax

Create everything by hand (routes, migrations, views folder, model, controller).

More susceptible to errors/typos.

Inherit ActiveRecord and ApplicationController yourself.

Rails g model method = 4 minutes, 2 seconds.

Terminal input with Try_1 representing the model name.
MVC
By: Daniel Cooper
Tags: Mvc, Mvc Frameworks, Flatiron School, New Blogger

Hey, everyone, it’s me Danny here with my first blog post. In case you haven’t read the title yet today’s topic is MVC. So the question is what is MVC? well MVC is an application design model focused on the separation of concerns. In other words, it helps you structure your code into three major sections Model, View, and Controller. Each section has a role to play we’ll get into that in the following sections.

M

The M stands for Model sometimes referred to as (data). The model is where you are going to be handling data this also includes client data and writing most of your code. When I say you’ll write most of your code in the model this is referring to writing business logic and your apps main functionality. The model will also house your association’s ex(belongs_to, has_many, etc.) and validations. Below is a picture of a model

v

The V stands for View and like the name suggests it’s purpose is to deal with anything involving the view. This means anything from putting some text on the page to structuring the basic user interface for our webpage. Depending on the language you’re using you might accomplish this is using ASP, ASPX, JSON, HTML, CSHTML, or VBHTML. Most webpages use HTML and then style with CSS later. When writing in the view section keep in mind that goal is to focus on the webpage’s visual outcome. So if you find yourself writing code here that does not affect the visual outcome of the webpage chances are there is a better place to put it.

c

The C stands for Controller which I believe to be one of the most important parts since without the controller the view and model would not be able to communicate. The controller does many things but its main task is to serve as a middle man for user input, models, and views. A real-world example I learned at Flatiron is the restaurant example. The restaurant is the whole MVC structure. The waiter(controller) takes orders(inputs) from the customer(user) and sends them to the chef(model). Once the chef is done making the food the waiter takes the food to the customer’s table(view) that’ll hold the food.

These are some companies you might know that use MVC for their webpages.

I’ve linked their webpages if you want to take a look at them. The reason I’m telling you that about these webpages is so that you can see what the MVC structure can turn in to as an end result. Before we end here are some benefits of using MVC besides structuring your code. Faster development time, you can use multiple views. etc..

Conclusion

This briefly covers the MVC architecture Model, View, and Controller. This is a very developed concept that is widely used — you can find more in-depth information in the articles I linked below. I hope you learned something about MVC or gained a better understanding of MVC.

Links I used
Nurse Turned Software Engineer: How I Changed Careers in Less Than a Year
By: Andy Del Valle
Tags: Coding, Flatiron School, Career Change, Personal Growth, Software Engineering

Getting ready to make the jump

“… the timing felt right.”

Working as a nurse came with its challenges. I was working overtime with a sporadic schedule and had the night shift from 7 pm to 7 am. It was definitely taking a toll on my physical and mental health. When 2020 came around I felt fired up to do something about it and that’s when I made the decision.

The talk of COVID-19 spreading was also happening. The first case reported in the United States happened on Jan. 21, 2020, and it was found in my residential state! I live with someone who is immunocompromised and I couldn’t risk the possibility of it reaching my home since I was working in the frontline. So this pushed my decision even further. I’m still shocked at the huge bullet I dodged since I had no clue it would later become a global pandemic.

I had to set myself up for success. My financial situation was a barrier to entry for me. I’ve only been working as a nurse for 2.5 years and even then I had a considerable amount of debt that my income was going towards. I was already planning to save 3–6 months of monthly expenses and I’ve been working closely with a financial trainer since 2019 to achieve that goal.

I didn’t quite save the amount I wanted but the timing felt right. So I decided to leverage my resources and got into a little more debt. I purchased a Macbook Pro in January and later applied for a private student loan when I enrolled in a coding bootcamp. The money that I was able to save would go towards monthly expenses while I was unemployed.

After doing research, I decided to enroll in Flatiron School. I enjoyed their free Bootcamp prep online and the curriculum was just what I was looking for. I was also looking forward to the career support they offer after graduation. At the time, they had a money-back guarantee if I didn’t find a job within one year. It was the right fit for me.

👉 TIP: ask your admission counselor if they offer any free grants or scholarships to help bring tuition costs down.

In March, I officially left my nursing job. The country also just went into lockdown so my choice became a bit unnerving not knowing if I could secure a job afterward. But I already made the decision so I had to stick through it. I spent the entire month prepping for Flatiron’s technical interview for admission. Looking back, the interview seems simple, but at the time I was pretty stressed out about it and fumbled through my solution. I passed and was scheduled to join the April 20, 2020 cohort.
Changing the Default React Browser Tab Title and Icon
By: Noah Eakin
Tags: Coding, Flatiron School, React, Google Chrome, JavaScript

This is a quick post that covers the important but easy-to-miss detail of your React app’s browser tab. By default it will look like the following:

That’s not our app!

Small overlooked details like this can adversely affect the overall impression of a website. Fortunately, this is an easy fix.

First, locate the default document (usually this will be index.html) and find the following code at the bottom of the <head> element:

What we’re looking for is in the default document

Let’s start with the simplest aspect which is the <title> element at the bottom. That text should look pretty familiar —replace this with the name of your app/website and React’s hot reloading should mean you see the updated title almost immediately in the browser tab:

Halfway there!

Nice! Now to change the default React icon. You can see that the first of the two links is pointing to a favicon.ico file within our public folder — this relates to the Apple touch icon, or the app symbol that appears on Apple’s mobile and tablet devices. We’re not going to worry about this.

The second link is pointing to a manifest.json file, also in the public folder, which the included React comments explain help provide metadata when installing our app. Investigating this manifest.json file shows us that our metadata comes in the form of an object, and that the "icons" key in turn points to an array of objects.

Look at that beautiful metadata

The first object in this array has an "src" of "favicon.ico" . Favicon is a shortening of favorite icon, the name for the little icon in Google Chrome’s browser tabs. We can further confirm that this is what we’re looking for because the "sizes" key includes a value of 16x16 — the size in pixels of favorite icons.

So, now that we have our target it’s just a simple matter of deleting the default favicon.ico file found in our public folder and copying over our desired asset to act as our new icon. Be sure to rename your new file favicon.ico . Now, you should be able to fully customize your browser tab to better reflect your site’s theme:

Woohoo! Such power

Good work!
Reflecting on my time at Flatiron School During a Global Pandemic
By: Ted Garcia
Tags: Final Project, Reflections, Flatiron School

Photo by Brooke Cagle on Unsplash

As I begin wrapping up my final project for Flatiron School, I have begun to take a step back and reflect on all my experiences of attending an online coding boot camp during a global pandemic.

I’d like to start off by saying that my perception of time was heavily distorted by the pandemic. Weeks of being in lockdown have that effect on your brain. The one thing that stayed constant in my life was the labs, pod-meetings, and group discussions that were frequent occurrences during boot camp. I am honestly incredibly thankful for this consistency it allowed me to keep my ground and allowed me to have social interactions with people in my cohort as I couldn’t actually do that in person.

That being said, I can’t help but think about the really meaningful collaborations that would have occurred if I did not have to code with my cohort virtually. Throughout the entire process, I found myself coding isolated. This by no means has anything to do with Flatiron but it has to do with the nature of the pandemic and having to work Zoom and Slack calls with people living in different timezones. I really cannot help but think of how different my experience would have been if I was able to code in person with my cohort. I found that the perspective that others bring is incredibly helpful for problem-solving as people have completely different thought processes.

For those of you wanting to go through a coding boot camp, all I have to say is ‘my how time flies!’ That cannot be understated! I found myself consistently wondering where the days went as it would feel like I just submitted my last project and suddenly I have submitted a new project and beginning a new module.

This leads me to project week, project week is a strange dichotomy between excitement and utter nerve-wracking stress. I am the kind of person who always struggled to come up with ideas on what to build in my next project. A lot of project time for me was either spent procrastinating because I had no idea what I wanted to build or spent most of it catching up on labs because I fell behind due to my job interfering with my school.

Now that I have completed my projects and have begun to say goodbye to my cohorts and cohort leader (which shoutout to my cohort leader you were the best) I am left feeling like there is going to be something missing in my life. Earlier I mentioned that Flatiron provided me with consistency and social life, well now it feels like I am losing a part of that. While I am glad my cohorts were able to finish along with me it still feels like I am losing something meaningful in my life.

So if you ask me if I would be willing to do it all again? I would respond with an absolute yes! Sign me up!

Before I go, I would like to thank Flatiron for teaching me to be a developer. I learned so much and am thankful for that. While I am forlorn for my chapter at Flatiron coming to a close, I am excited to start working as software engineer (fingers crossed).
GIT REMOTE SET-URL ORIGIN
By: Josh Raiborde
Tags: Flatiron School, Git Remote Set Url Origin

This blog is sort of a continuation of my last blog, ActionView — Template — Error.

Here’s a little recap from that blog:

A couple of days ago, I was contacted by a recruiter about a position for web developer. This lead to the first round of an interview for the job position on the phone. We went over the usual questions like, where’d you go to school, what did you learn, what projects have you done, etc. The interview lasted about 15–20mins.

Towards the end of the interview, the recruiter asked me what projects I’m proud of. I mentioned Noodles-Oodles. Noodles-Oodles is a fun Ruby-on-Rails blog post web-app for lovers of noodles who can sign-up and create posts and reviews for noodles. It uses the Ruby on Rails framework to include reasonable validations for the simple attributes and standard user authentication which also allows logins such as Facebook, Twitter, Foursquare, GitHub. The use of nested resources with RESTful URLs are employed to view predictable URLs. ActiveRecord Query methods are used, rather than native ruby methods to perform queries on the database.
Insertion Sort Algorithm — Java Script/Pascal
By: Sonia Dumitru
Tags: Programming, Flatiron School, JavaScript, Insertion Sort

Understanding sorting algorithms concepts is essential for everyone who wants to become a programmer. There are already over 20 algorithms for sorting.

Insertion Sort is one of the most important ones.

It is not considered as fast as quicksort, heapsort or merge sort. However, it has a few advantages: simple implementation, efficient for small data sets, more efficient than selection sort or bubble sort, does not need much memory.

A really good example of sorting by insertion is when you manually sort cards in a bridge hand.

Let’s say you have a hand of unsorted cards:

— place a marker after the first card in your hand

— compare the second card with the first

— if the second card is smaller, swap it with the first

— then move your marker to indicate that you have a sorted section to the left with two cards

— repeat this process of swapping unsorted cards into the correct sorted position

Pseudocode for Insertion Sort:

for i = 2 .. n temp ←x[i] //mark element “i” while ( j≥1) and (temp<x[j]) // look for the position x[j+1] ← x[j] //swap the x[j] element on the position j+1 j← j-1 endwhile x[j+1]←temp//swap the x[j] element to the right position endfor return x

The algorithm is looking at the second element of the array and sorts it in relation to the first element.

Then extracts the third element and inserts it in the sorted sub-array which contains the first two elements and so on… until the last element is inserted into the sorted sub-array with the first n-1 elements.

Extracting an element is equivalent to storing it in a temporary variable.

Inserting the element in the sorted sub-array involves moving larger elements to the right so a new location will become available for the extracted element.

The element extraction operation, ascending movement and insertion into the free location appear as distinct phases in the sort function.

Insertion sort in Java Script:

Insertion sort in Pascal:

For a better understanding check the “Insert-sort with Romanian folk dance” 💃
Breaking Down ORM and Ruby
By: Matt Cummings
Tags: Flatiron School, Ruby, Object Relational Mapping, Programming, Orm

ORM — Object-Relational Mapping

Now, what does that exactly mean? Another way to describe ORM, is that by using this technique, you can create a “virtual object database”, which can be used and manipulated from within the object-oriented language (as phrased by an article on Sitepoint).

Because data is handled differently in an object versus how it is handled in a database, we use ORM to bridge the gap and establish a connection between the two.

It could be seen as a translator of sorts. Let’s say you are on a Japanese website using an English keyboard. You download an extension to translate what’s on the website, and also translate your English characters into Japanese ones.

With that extension, you can see the information the website has, and subsequently access that information. In this example, the Japanese website can be equivocated to a database, the English keyboard to an object-oriented language (like Ruby), and the translator extension to an ORM.

ORM relays the coding of SQL to Ruby, with enhanced efficiency.

SQL can be a difficult language to program in, and furthermore, many of its commands may be very repetitive. For example, adding new data to a database requires a whole INSERT INTO-table-(parameters)-VALUES-(arguments) line of code that must be written every time you want to put new data in.

Never mind the fact that you may have a robust table with several parameters, all of which you would have to type out every time, and then their subsequent values.

Instead of writing tons of SQL code, we can use ORM as a liaison. In a class, we can make a self.save method that looks something like this:

The database_connection variable simply makes a connection to our database, named ex_database.db in this example.

The execute method takes a SQL statement as an argument, and executes it.

The question marks in the SQL statement represent arguments to be inserted, and the arguments themselves are listed immediately after the statement for insertion.

From there, using the class’ class variable @@all , we could do something like:

This allows us to call the save method on all instances of Class . Each instance will undergo the save method, which means that each instance will have its parameters plugged into the execute method within the save method.

Thus, we create a new SQL statement for each instance and its parameters, and execute it.
Building a Fundamental Value Investment Tool in React — Part 1
By: Vu Phong Nguyen
Tags: Investing, Flatiron School, React, JavaScript, Dashboard

The inputs are in blue font and the outputs are in black. As you can see from the image above, the Excel models were very spartan in terms of UI and didn’t look very user friendly (due to a combination of performance concerns and the fact that it was an internal tool for analyst, not a customer facing product). I wished the user interface looked something more like this:

Excel has changed a lot since then and now you can create business intelligence dashboards that are much easier on the eye, but even back then I wished someone would build an investment research tool that had a nice responsive design, had the ability to pull financial data with a simple company ticker input, powerful charting functionality and customization options in terms of interface and formatting. I am genuinely excited to see companies like YCharts ,Trefis and Quandl doing great work in this area.

My motivation behind building this project is to take a shot at creating a simple and intuitive investment research tool with a nice UI and I chose React.js as my front-end framework for this. I have a lot of research/brainstorming ahead of me but excited to delve into this project and increase my ambition as a developer.

See you next week for Part 2, where I will discuss the planning phase of this project and setting up the structure of the app!
Why did I decide to study Software Engineering?
By: Carter Parrett
Tags: Flatiron School, Life Change, Programming, Noob, Software Development

So… the big question. Why did I decide to study Software Engineering? Or, why did I leave my super cushy and comfortable and EXTREMELY high paying bar-tending job? The caps were sarcasm.. Let’s get into it.

I actually don’t mind tending bar. I had been in food service for 6 years. I was good at it. I made people happy and everyone left with a smile on their face. I knew how to play the game and I was rewarded with some pretty hefty tips often enough. If I was looking for nonstop fun and entertainment, this was not a bad gig. But what about when I want to take a vacation? Or if I wanted to purchase that new car? Or simply have enough money in my savings account to weather a global pandemic(cuz those things happen, right?!) Tending bar was not the answer. It awarded me with enough money on a day by day basis and a network of people just honestly looking to share their everyday grievances with someone who will listen as long as you give em a buck at the end. It felt like a cheat. And it was not enough money to get by in the long run. It was full of extremely late nights and pointless parties afterwards. I fell into a culture that almost destroyed me(that story is for another time though) and tried to take away everything from who I knew I was. So, in a shortened sense.. the money was not there and the lifestyle was not healthy.

Onto the part with substance, I hope. I needed a change in my life that would promote positive growth. Something that would enable me to critically think and mold my brain. I did not want to be just a talking bot. I wanted to be intelligent, someone that can solve their own problems as well as others. I decided I truly wanted a life worth living(in my own opinion). I love learning what makes things tick and I love the challenge that comes with programming. When I first started it was simple and I thought, “OK, I can do this, easy peasy,” and boy was I wrong! This is by far the hardest thing I have ever done in my life. But you know what? I wake up every morning and I turn my computer on and I code all day. I have become addicted to the challenge. I long to know more and more. I want to be good. I will rack my brain to solve an error for hours until my brain feels like a bowl of mashed potatoes, but when I get that passing test, it feels like Christmas day! Eventually, I want to be able to work remotely and travel the world or even just have that extra bit of free time to work on a passion project or hobby. I strongly believe that Software Engineering is my path to that. The people I have met are incredible. The challenge is immense. The reward, great. This is why I chose to study Software Engineering!
Data Structures: Linked Lists (Part 1)
By: Philip Smalls
Tags: Flatiron School, JavaScript, Linked Lists, Data Structures

Photo by beasty . on Unsplash

A question that I had for a long time was “What is a data structure?”. Well, it turns out that data structures are an important concept and one that every developer should be familiar with. So in this article I will attempt to answer that question for myself and any others who happen to be curious, much like myself.

To answer the question, a data structure is a way of organizing data that is stored in a computer or database. There are many different types of data structures and each type represents a different way of organizing the data. This leads to a second question of “why are there different types of data structures?” Each data structure has its strengths and weaknesses. Some are fast at storing and recording data and some are not, while others are fast at searching and retrieving data while others are not.

Now we now what a data structure is so the next question is “why do I need to know about data structures?” There is a lot of value in knowing how to implement data structures in our programing. For instance, using the correct data structure in our programming can directly affect how performant, quick and efficiently a program runs.

Another reason is to not only know what a data structure is but how to code one out is that it will help reinforce our knowledge of algorithms and other important concepts of your chosen language, in my case that is JavaScript. Now that that is out of the way we can get down to exploring the actual data structures, and the first one is a Linked List.

What is a Linked List?

It is a list of elements, called nodes, that are linked together in a single file line. There are two types: singly linked list and doubly linked list. In a singly linked list each node only has reference to the node directly after it or the next node. In a doubly linked list each node has reference to the next node but it also has a reference to the node before it as well, or the previous node. A linked list needs to only know about two nodes in the whole list for it to function properly. Those are the head node and tail node. A linked list keeps reference to these two nodes by use of two pointers called the head pointer and the tail pointer