Tuesday 26 September 2017

Makes Week Eight: Acebook & The Home Stretch

The past four weeks have flown by, and I've enjoyed it a lot more then the first month. I'm really enjoying the group projects that the second part of the course throws at us. It has been especially interesting to see the cohort grow and improve together, and see us handle the new struggles that we have when working as a team in project work.

I love seeing what can be achieved (or not?) by the end of these projects. These are the things that cannot be experienced at home by yourself in front of a YouTube tutorial, and I expect will be great practice for the real working world when we will be working in development teams.

ACEBOOK - THREE SIDES OF THE COIN (THE EDGE COUNTS)

Part One: Grouped!

The task was to make a Facebook clone using Ruby on Rails. We were split into different groups to focus on features. The teams were profile, photos, newsfeed, and dev-ops. I was in the dev-ops team which was essentially a code review final check before features are implemented.

What is it?


We managed to get Travis CI to work which was an online simulator which tests if a project passes their tests and works ok. This ended up being linked to Heroku which meant that once we merged the features in, it would automatically update to our website.

Part Two: Paired!

It seemed that the groups ended up working on rather big/a lot of features which meant that it was taking a long time to do, which meant updates to our site were far and in between. So our coach decided to put us into pairs, and specify the [small] features we would work on. My pair and I ended up doing automatic link recognition meaning if one was added, then the wall would display it as a clickable hyperlink.

Can you translate our coach's "interesting" handwriting? :D


Part Three: Free for all!

Come the end of the week we soon realised that we had a misunderstanding about the merging of the features to our website. We were meant to do it after our coach approved it, but maybe because of the previous structure when there was a dev ops team, for some reason we just didn't merge our changes.



So come Friday we were in a bit of a frenzy to get all of those features up and running. We kinda missed the step of the extra checks by our stand in coach at the time and at one point that ended up with a messed up master branch! Opps. Rooolllback!


Agile vs "Dictator" Style?

It was an interesting retro afterwards, looking back on our mistakes and the structures we chose to go with. I think one of the biggest downfalls was that we didn't have our pages setup as a template so that we could work on different areas without needing to wait for certain teams to finish those features.



There was some discussion on whether having a dev-ops team that approved of the [small] features, as well as code reviews was agile. Agile believes that if communication is strong, the need for old school "dictator" style approval processes shouldn't be needed.

Rails is really weird in that you can generate so many files, and find so many gems that can do things for you. It almost seems that you can end up hardly writing any code, but end up with a project that has tons of files in it.

Here's our Acebook!

Features that we managed to implement were;

  • A signing up feature
  • A login feature
  • A wall to post messages and links. These features are only accessible once logged in
  • Ability to like and unlike the posts on the wall
  • Friending and unfriending users
  • Adding photos from your computer
  • Display all the photos in a gallery
  • A random cat image generator, with Amazon ads (wtf?). There's no link to this you need to add /random_images to get here


ANOTHER GRADUATION, HOLY SHIT WE ARE NEXT!


This is my fourth(?) graduation I have attended and it was the last one for the remote course. Again, its bitter sweet since I know these guys a bit and its sad that they wont be in the same room as us, but cool to see them presenting like a boss and moving on up!

Projects were;

Remote Groups;

  • Catastrophie - A web platform game built using HTML Sketch, Matter.js and Jasmine testing.

  • Terminal Commando - A plugin to your terminal that makes it give out useful tips and advice whilst using the terminal
Onsite Groups;
  • Squirrel - An app which uses your location to remind you of cool places that you always mean to visit but forget
  • UnorthoDucks - An augmented reality game stylized like minecraft, where you have to shoot the zombie ducks and protect the normal ducks. Built with Unity.

  • Reign of Terra - A live territorial game where users "conquer" sections of a map based on their real time location
  • iDo - Challenging the traditional concepts of marriage by making a blockchain contract that cannot be forged


Really great projects, very inspiring. And for the first time out of all of the graduations, I start to have a vague idea of how one could possibly approach these ideas.

This week we're doing the "mock" final project. Our group has chosen to do an iPhone game involving the tilting movements (gyroscope). We're learning Swift. We know zero about Swift. So GL us! But checking out apps is something I've always wanted to do, so either way I think I'll learn loads. Anyways, more on that next week!

Monday 18 September 2017

Makers Week Seven: Single Page App & iPhone X!

SINGLE PAGE APP


Last week we focused on building a one page app without any frameworks or libraries in Javascript. We also had to find a way of setting up a testing environment for it, and writing it ourselves. Amazingly its not that hard, basically just comparing elements on the page using the DOM to see if they're there/working properly.

However, since I haven't really been that interested in the front end, it has been lacking. So this weekend I brushed up my knowledge with HTML, CSS, and Bootstrap. It was also a great excuse to catch up with my friend in NYC since that was his specialty.

I learned loads, but I'm not too tempted by it. I'm glad I found Bootstrap since its basically a massive library of templates which means I don't have to spend too much time on that, since I'm more interested in the creating of things rather then the look of it.

When you know how tough things are to make its special to us, but looks so basic to others!

I quite like the idea of the one page app. It seemed a fast and quite reliable way of making a quick website that could do some stuff. I'm not too confident with using the controller, which is a file where you direct where everything goes. It gets rather confusing with GETS/POSTS requests, redirects, and passing information between the pages.


BOG STANDARD APPLE


Last week Apple finally announced the much anticipated iPhone X in their keynote. It was their special "but there's one more thing" line, but unfortunately it was pretty obvious what it was, which kind of makes me think that they don't really understand how that twist is meant to work.

With Steve Jobs, it would genuinely be a surprise, and the main products would be shown off normally. It seems quite apparent to me that they are quite lost without him, for some choices during the presentation really do seem off;

  • Selling off (I'm assuming?) airtime to show Spiderman trailers and what not.
  • More developers showing their games which are cool, but mostly somewhat unrelated to the product.
  • Spending a good 5 minutes on showing face ID with masks and emojis. I mean, how many people are really sending animated texts really?
Does anyone actually use those animated emojis and finger painting in their messages?


Apple used to be known for its innovation. With a roller button on iPods, a much more responsive iPad touch screen, and Macbook Airs so slim they fit in an envelope, it seems they have lost their flare and presentation skills.


POINTLESS IPHONE 8?


One of the biggest surprises to me was that they released the iPhone 8.... completely identical to the iPhone 7! I mean, it has wireless charging now and better memory/camera/battery life but literally no new design or anything at all!

For £800, if you were gonna spend that much on a phone you might as well pay another £200 and get the iPhone X. I mean your spending £800 on a phone anyways, that £200 isn't gonna be that big of a weight in your pocket!

Anyone who buys an iPhone 8...

My iPhone 6 is most likely gonna upgrade to the 7. Ironically with all my ranting its still not gonna be enough for me to want to even consider moving.


THE ONE GRAND PHONE


When the iPhone first came out, people were saying that it was a crazy price. But with that revolutionary responsive touch screen, it made all the difference and Apple stormed into the phone market and has never looked back.

This new model is everything we expected, flush end to end screen, gone is the home button, wireless charging, and faceID.

Even though its everything we expected, still lookin' swaaaag!

I'm not sure how the industry realised how prevalent the faceID was going to be, it seemed to be the surprise of the night. It looks pretty amazing, but its hard to believe that it is more safe then a fingerprint. I think the quote was that it was a one in one million for a false positive sign in.

It seems that Apple is gonna be going in this direction of using facial recognition. I've always wondered how the ApplePay would work without the fingerprint button, and well you use your face. Yes, you heard it right, you pay... with literally your face! Weird...

Whether this becomes more mainstream, only a matter of time will tell. I personally quite like using the fingerprint and was expecting a reader on the back like other phones. I just wonder how many fringe situations are going to happen of accidental payments or unlocking!

What seems great though is that the wireless charging has finally arrived. Apple has chosen "Qi" wireless chargers which means that third party manufacturers can go nuts with producing these before Apple's official overpriced version comes out next year. Since Apple has chosen it, should mean that others will follow suit and we will see it become more of a common thing. It has been a slow and painful journey towards the dream of never seeing a tangled wire ever again.

One grand IS crazy, but its gonna sell out especially with all the monthly plans that people will join to get it. Its crazy to think that a phone that can sit in someone's pocket is going to be more expensive then the laptop I am blogging on right here!

I look forward to checking it out when it comes out in the Apple stores, but its unlikely I will get it. Maybe the next one?

Here's a pretty cool close look at the iPhone X with Marques Brownlee. I really love this guy's tech videos, super clean and to the point!


Monday 11 September 2017

Makers Week Six: NP Just Making a Website w/ Database in Five Days

Another week passes at Makers and its crazy to think that we're half way there wtf! What a shock to the system!




GROUPING UP FOR MAKERS AIR BNB


Sounds ez right? Especially with limited experience! lol

Last week we did our first project as a group, and with our weird prime numbered cohort my group became a five, whilst all others were put into fours. I'm not sure if that gave us a significant advantage, but it was a bit of a hindrance splitting the group up, it was either a 3 - 2 or a 2 - 2 - 1 formation. But like any football manager (I assume?) we were flexible according to what was needed on the "pitch".

Our first white board! Tons of planning and working out what to research.

The task was to build a replica of an Air BnB website. This meant having a sign up/login page, and once in users were able to put up their room for rent, and book existing rooms on the feed.

We had a choice to use Javascript or Ruby, and surprisingly only two people wanted to use Ruby. So far we've had 9 weeks of using Ruby, one week of Javascript, and it seems Ruby didn't stand a chance. For me Javascript is very familiar to me, and I like the flexibility it has with the web, so its popularity surprised me.


PLANNING WAS EVERYTHING

Right from the get go our team was super organised, we were very open to the morning stand ups, and the retros. A stand up is a reflection on the previous day, a plan for the current day, and a way to bring up any concerns to the group. A retrospective is a meeting that happens at the end of the day to write on the whiteboard things that were good, bad and confusing.

Our first retrospective!

Spending some time put aside for these things really made things clearer for the group. It was also a great way to make sure that we had good communication.

Early on we identified the things we needed to do, and delegated other things we wanted to research. A priority was working out what we needed to use, then set up the environment with those softwares, and then set up a skeleton file structure that can be pushed to github that everyone could access.

File setup planning

Page direction planning

It was clear that we needed to have a database for our users to sign in with, as well as for the rooms to be rented or put up to rent. We already has used Postgres for database stuff before so that seemed like a good obvious choice. However, we had heard bad things about the ORM, which is used to link the database to our website. I had heard the name MongoDB floating around and after some research we realised that it works with hashes, which makes it more adaptable to Javascript (which is essentially hashes).

Using Trello is a great project management tool

ROLLERCOASTERING OUR WAY TO SUCCESS


As well as having meetings at the beginning and the end of the day, we also chose to do one after lunch. This was to check in on everyone and see how things were going. On multiple occasions we decided to switch strategies from looking at one thing, and then prioritizing something else. Or if a group member wanted to change up and get more stuck in then we would mix it up. Our group was fantastically open about being flexible which was awesome.

Major points of contentions;

The Lows;
  • First day is naturally a lot of reading, watching tutorials, and research. Very little coding!
  • Still getting stumped by the most basic things, like setting up the environment.
  • Taking ages to know that we had to run a server for our headless testing framework.
  • Learning Zombie, feature testing seemed to take a long time.
  • Getting our router forwarding to work which took ages. But so essential, as once this was done we were able to split up the work much more effectively without having to worry about it effecting each other because it wasn't all in the same section anymore...
  • Linking the sign in page to the database took a looot longer then expected, probably a day or two then what we set the goal out to be
The Highs;
  • Getting the router forwarding to work!
  • Having the sign in page and the rooms page functionality working both pretty much at the same time with different teams within our group.
  • Amazing team spirit, the highs and lows were experienced together.
  • Hanging out together, table tennis and a great final day lunch.
Here's some totally unimpressive (aesthetic-wise) pictures of our fully functional website! I'm super happy with our progress and it was probably my best week at Makers so far.

Signing in page

View rooms available, but can't book any until signed in


Filling in a form to advertise room, when signed in

Even though my other cohort members were in the same room, it did feel as if I didn't see them much. It was an amazing experience to see it all come together on the Friday.  My cohort was a dream to work with, so patient, so open and fully adaptable! This gave me a taste of what it was like to be in a development team and I loved it.

The last retro w/my anime wannabe style faces!

This week we get a choice for groups or pairs and I choice more group work. I think it will be groups until the end now, apart from Tech Test week.

Today my mentor got a job! Its pretty incredible considering that she just graduated two weeks ago. Its very inspiring and I hope to be as successful as her when I get to that stage. She has been really supportive to me and it helped me tons. Congrats! :)

Monday 4 September 2017

Makers Week Five: Javascript, We Meet Again!

Last week we switched it up to Javascript and linked that to some elements on our webpage and build an interactive thermostat with buttons and stuff.

It seems that the switch up was done to show us that learning another language isn’t as hard is its made out to be. However, I was already learning Javascript before the course started, so I guess this lesson wasn’t as applicable to me.

There's a looooot of brackets and curly braces in Javascript!

However, comparing what I assumed was going on, having that debunked and then finding out what actually is happening really blew my mind. It kinda is like seeing this language in a whole new light. Pretty cool.

It has been interesting observing my fellow cohort members approach this. Some did extra online courses, others used youtube videos and/or looked at various documentation. Most of my classmates decided to rewrite previous projects in Javascript before moving onto the main task.

In all coding languages, they do the same core things. Store data in variables, have functions that do things, have true or false statements… and so on. Some of the newly graduated students had interviews in languages that they learned over there weekend, and still got through to the next stage. This is vs other applicants who have had years of experience in those languages… what a pisstake innit!

Our weekend challenge was to design the code for the scoreboard of ten pin bowling. Its a very confusing thing to explain, let alone code for. A strike where you clear all ten pins with one bowl is ten points plus the next two bowls, and a spare where you clear them all in two bowls you is ten points plus the next first throw. You can try it here.

See? Told you! Its like explaining the off-side trap and/or the insanely weird tennis scoring!

Check out Kingpin! Weird and funny movie

I have come to terms with testing first, then writing code. In this instance it became really helpful later on when dealing with strikes and spares. I have been totally obsessed with coding this weekend, literally getting out my laptop whenever I can on the train to London there and back, even when visiting a good friend on Sunday.

Being strict with yourself in trying to resolve problems before moving on is really tough to do, but I have been getting better at reading errors and keeping to good coding practice.

This week we’re working in groups now until the end. No more weekly challenges with pairing. We are organising ourselves with tasks each day, and making sure we have great communication. I have been looking forward to this part of the course since I love the people in my cohort so much. 

Its funny that we have had 9 weeks (including the pre-course) with Ruby, one week of Javascript and when given a choice our whole cohort pretty much chose to do this week’s project in Javascript! Poor Ruby…

It will be interesting to see how far we can push ourselves. I’ve had a positive day so far, and next week I’ll report on it fully.


EXPLODING E-CIGS ARE ABOUT!?


On Tuesday, I was on the way home and as I was walking into Euston station, a businesswoman in front  of me had her bag suddenly did a mini explosion. She dropped her handbag and started running off. The handbag did a much smaller burst then stopped and it just lay there smoking.

I was pretty chill at that point thinking, “oh… that’s a weird thing… maybe its a note 8 or something”. Then I think someone shouted out bomb and everyone started running. I was pretty surprised at this and so backed off with them. It was weird how the atmosphere changed so suddenly.

It was at this point it really made me question what I saw. I was pretty saw that this wasn’t a terrorist attack or anything, but it happened so quickly that it made me question that.

The station closed down pretty promptly and I made other arrangements instead of going home, for who knows how long it would take for it to reopen.

In the end, it was reported that it was a faulty that e-cig that exploded. I had no idea that they can just spontaneously ignite like that. My friend told me that it happens quite a lot and people get some pretty bad injuries. How the hell are these things managing to pass approval for health and safety??



FRIENDS REUNITED


Sunday I went down to London to meet a good friend I hadn't seen in ages. He is a reporter for South Korean news, but done in English for an international audience. It was a really great catch up, also hanging out in "west [end" again. 

The west end is like Picadilly Circus area which has a lot of theatre shows around. But we used to hang out there because there were arcade machines we used to love playing, its close to tons of shops and there is a lot of cool places to eat as well. Its strange to think that even though I spent like 3 weeks living in London, I never once went there.

We hung out, and checked out some shops. I didn't realise that Zara men's fashion seems to perfectly tap into the wannabe Chinese Gangster look. Only then when it was pointed out to me, when I looked around there was a "gaggle" of Chinese men scouting the racks, truly considering the studded sparkly jeans or bright red boots with a zipper, with a matching red suit to go!


Do I look Chinese gangster enough?

I'm really looking forward to meeting up again, but this time in Seoul. Its all been arranged that I will be going there for a week in November. This will be fourth time I will be going, which is getting kinda close to the amount of times I've actually been to Hong Kong itself.

I do feel bad about leaving for November as the course has instructed that we carry our momentum of finishing to finding a job. Unfortunately this has already been planned a long time ago so I cant change it. The bad thing is that I heard that December is not a good hiring month, so it might be more realistic to find something in January.

Anyways, all this is still a while to go before it happens, hope you're all well and happy coding, talk to u guys next week!