DOCKER!

Hey guys, I’ve recently been up to trying to learn docker. It’s simply great.

This is simply a draft post to instruct new system administrators or developers like myself how docker works, and how I interpret it. It’s also really good for my future self (just in case i forget how docker might work. I can just refer back to this!)

Image from https://blog.docker.com

Docker is just a containerization tool to help you work easily with multiple operating systems. Say you had a two different servers you were intending to deploy your application on:  A staging server, and a production server. Docker helps you cut down on redundant mess and configuration. All you need to do is to run a docker container with a docker image. You’re set. (It’s practically github for docker-images, so they work on docker containers!)

I’m still in the middle of learning how docker works, and trying to deploy/ship out a demo-web app on the mac-os platform (on apache). I’ll write another blog-post in a few days time on the commands and things you should take note of.

Beware, Icloud users!

Hello everyone!

I’ve been doing superbly great recently, and I got a new macbook to spice my life up. With the new 2018 macbook pro, my programming life has changed for the better. Things are simply awesome on the new unix-based OS. There’s just an upsetting part. I got the base-model. Which means i only have about 256GB Flash storage. This means i don’t have a lot of space! Which is exactly why i depend on ICloud.

ICloud is awesome, because it is so seamlessly based on nothing but apple products. It’s simply amazing and easy to access through the apple eco-system. You ought to know though, don’t ever enable photos in your System Preferences > ICloud well, that is unless you have about 1TB of space on your new macbook pro.

Make sure to check the ICloud Photos option off. The macbook does not explain it very well in the system preferences. By checking these options, you opt to sync that app with ICloud. (I only figured out after deleting my photos from the macbook pro)

UNCHECK YOUR PHOTOS! (the macbook pro force-downloads all your photos on icloud if you select this. – the optimized photos)

Git and the command line (Cmder!)

The command line is fast. Really fast. These posts are some reminders i made to help inform myself about git commands that are important. Some terms before we start

Commit – To commit your changes (literally means to commit)
Staged – To prepare for a commit, but is NOT a commit(this is one step before commits)

Cloning existing git repos

$ git clone https://yourgitrepurlhere

Checking your git status (modified,unmodified etc) – more regarding changes here (https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository)

$ git status (include -s for a short status)

Ignoring files (put them into a .gitignore file eg:)

# ignore all .a files
*.a

# but do track lib.a, even though you're ignoring .a files above
!lib.a

# only ignore the TODO file in the current directory, not subdir/TODO
/TODO

# ignore all files in the build/ directory
build/

# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt

# ignore all .pdf files in the doc/ directory and any of its subdirectories
doc/**/*.pdf

Commit changes

$ git commit -m "Commit name here!"

The above command commits the changes mentioned in git status, furthermore… you need to push to update remote copy (if on github, or any other remote repository)

Push to remote repository

$ git push

Git move

$ git mv file_from file_to

Everything else can be found on the git-scm website. Of course, making use of software like Github Desktop or SourceTree can be very useful. However I still think that learning a little git on the command line can help in the near future.

Why am i learning this?
Why am i indeed you may ask? I am merely curious and intend to explore how to make use of git (the cmd version) and attempt to make my very first web-application on a MVC layer (not ASP.NET core) with the Symfony framework. I should also note this PHP command down… (i keep on forgetting how to run the application..)

 $ php bin/console server:run

Updated 10/08/2018 9:15PM – updated if any important things are missed out!

References
Source: https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository

RESTful!

RESTful has been something on my mind for a very long time. Ever since i was young, i had stumbled upon something called RESTful… well back when i was still a young developer working on simple html pages for absolute joy.

Today, i will be posting some of the resources I feel that have been of great use  to me when learning how RESTful works. If you’re interested to know more… you should definitely read every last word these articles have to offer.

The below shows how in relation the HTTP methods are with the normal CRUD operations and SQL operations. Picture is taken from scotch.io

There are four main parts to a simple HTTP request

  1. Endpoint (this is basically the url eg: github’s root-endpoint is api-github.com, root-endpoint basically means the starting point hence “root”)
  2. HTTP Method (covered above in the picture)
  3. Headers (just additional information about the request/response more information : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)
  4. Content (data/body)

We’ve already covered what methods are.. and on to headers (Headers are simply property-value pairs– to me, this is really just a way of providing information to the client/server -eg so the server may know what this request/response is for… etc!)

As for Content… it’s just the information to be sent to the server. HTTP Status codes & error messages are just as important because they tell you what has happened to your request/response!


Picture is taken from smashingmagazine.com

Finally, i’ve really learnt a lot of what RESTful is due to my knowledge in applying it. I’ve made a simple web-application on C# with the help of what i’ve learnt in school. You’ll be able to download the demo (which helped me to learn here!!: https://github.com/bchewy/CSharp-HTTP-Methods-API-)

References (i do not any of the pictures posted above)
Scotch: https://scotch.io/bar-talk/a-quick-understanding-of-rest
Smashingmagazine : https://www.smashingmagazine.com/2018/01/understanding-using-rest-api/

 

My very first industry visit!

The first few industry visits i had were to polinate, a startup workspace incubator from polytechnics and the worldskills event hosted at Suntec exhibition halls! Through these events, i got a glimpse into how the working life is like, and how the startup grind really is!

My first industry visit was a quick visit to Pollinate, an incubator that was a joint initiative by three polytechnics. It aims solely to help entrepreneurship efforts by the polytechnic students, along with alumni entrepreneurs. It was very amazing look at this creative space, where current and even past students from polytechnics were there, working and shaping their ideas into a better form. We also had a short talk from a co-founder of Kakku, which is a very smart way of advertisement, and they intent of disrupting the current advertisement business models.

I found that very inspiring as it was unlike anything I’d ever heard of before. You would make use of a local area network (LAN), to advertise. This was simply amazing, and this has motivated me to push on, and not look for the best idea out there, but simply refine and work with your passion.

As for my second industry visit, I was volunteering as a Workshop assistant at one of the workshops to introduce programming/technology to the secondary school students. Shockingly, many of them already knew what programming was, as they already have lessons in school which teach them simply about programming. Furthermore, some of the students in the workshop remind me of my younger self, when I would be very curious, play more, and finally understand how it would work. I could some of the students exhibit this playfulness, since they’re interested… they made use of the time to ask more questions and tried out different code combinations (since it was block programming). This was super inspiring to me as it reminded me of how technology would always move on and we would have to keep upgrading ourselves.

The above picture is me and a group of friends volunteering at worldskills & the below, is a picture of us at polinate!

My service learning experience

Pre-Visit

Recently I was able to be given the opportunity to visit St Hilda’s Community Services. There, i met and made many new friends! I was then assigned to an elderly to entertain her, know more about her and eventually i made a poster for her!

The beneficiary I was assigned to was Mrs Teo. She was very friendly to me and told me all kinds of interesting things about her time at the Foundational Day Care Link. For instance, she loves to watch her favorite Taiwan television show, and to play bingo! One of the activities we’ve played on our first trip there. We also learnt a lot about the elderlies there, we learnt what they’ve done in the past as their occupations, about the Japanese Sino-occupation, and so much more! We’ve also learnt about their lives, some of the amazing experiences they’ve had since they were young. The distinct difference between their generation, and our current generation.

On the contrary, after the first visit… I had gotten a very good impression of the elderlies there and couldn’t wait to embark on our activities the second visit there. I knew that the elderlies were going to have fun doing what we’d planned for them.

Post Visit

I felt amazing and happy to have been thanked by the elderly, for the three days of visit there, to learn more about them, entertain them and ultimately give back to them. On the last visit, we had prepared several games to play, first we made use of calligraphy we’d learnt in the OIP (Overseas Immersion Programme). We gave them several simple words to write, and some of them were amazing!

I learnt that our generation is very fortunate to have been able to be born without any worries, not during war, or in poverty. For them, it was very much different… some of the elderlies there came migrated from China, hoping to lead a better life here in Singapore. Some of them even lived throughout the Japanese occupation, where it was a very bitter and cruel period of Singapore’s history. I am however grateful to them, as these are the very same people who have shaped how our country is like today, in terms of culture, religion, and our government.

I was very grateful for being granted this opportunity to give back to the elderly, whilst making use of my skills I’ve learnt in school (mainly Photoshop & operating system fundamentals)

How??

I mainly did some photoshop on one of the pictures ensuring that they had proper contours on the subject, and to ensure that they had proper lighting and background blur. i learnt photoshop through my lessons in one of the diploma plus lessons! (Diploma +in Web Design & Development)

Next, through my experience in playing with Windows 10 & the module i took in year 1 (Operating Systems Fundamentals), I was able to figure out where the print options were, and how to access the proper ones together with configurating the printer-drivers  to be able to print out nice pictures to be pieced together on the poster.

 

The United States of America!

One of my life goals was to visit the United States of America! It’s been far too long since I’ve actually went somewhere really far! (The last time was probably when I was a kid!) I’ve been really blessed with the opportunity to compete in the MOS World Championships (Microsoft Office Specialist).

I finally went there! This is really all thanks to my school, Ngee Ann Polytechnic. Providing me with a great opportunity to compete there. There, i met many people from other countries. Some of the same region (South east Asia) and others from different parts of Europe.s

The culture there was simply astonishing. Having grown up with a western mindset and having many online-friends from the US, I couldn’t wait to go there! There, we were given a talk from a NASA Astronaut, and some important people from Microsoft. I learnt that life is an adventure, and you should never go on with life if you don’t enjoy it.

Here are some of the highlights of the trip in pictures!

The visit to adobe SF!

The legendary golden gate bridge!

A group picture with team singapore & NASA Astronaut Mr Space Musgrave!

Finally the orlando sunset-sky, blocked by a number of trees

Huge thanks to my teacher, mentor and coach, Mr Fulu (Ngee Ann Polytechnic) along with Chris & Randy from Certiport Singapore, for making the trip such an enjoyable and unforgettable one!

The essence of a back-end web application

Before coming into Laravel, Laragon & VueJS and all that cool stuff… I quickly learnt myself after a day of lessons (just today!) that they have a huge potential and a literal whole new world to explore!

I’ve basically learnt what a MVC is, M stands for Model, V stands for View, and C stands for Controller. They are the real basic aspects of a web application, and I’ve finally come to the understanding that they’re very important when developing a new application!

The true understanding of how APIs really work out there! First, you’ll start by working on the different APIs to do the different functions, then you go around to working on the routes, to direct different routes to views. Then, you’ll start working on the front-end, with AJAX to make use of your API and get the appropriate data!

Cool isn’t it! That’s what i didn’t know, when i started, and my my how amazed I was. You can learn more from Laracast

 

via GIPHY

 

How to deploy ASP.NET applications on Ubuntu 16.04

Hi all, I’ve decided to write a simple tutorial on how you can deploy your very own ASP.Net applications. I couldn’t find a single tutorial online.

1. Check with what HTTP server you are running, can you run ASP.Net applications? (For Apache, you need the mod_mono mod enabled)

2. Mod_mono –> http://www.mono-project.com/ . You must have xsp4 (You need to see if mono supports your application – http://www.mono-project.com/docs/about-mono/compatibility/) Thankfully, i was making use of the .NET 4.6

3. Check for any potential errors on your site when you deploy (you might have errors, i had several (compilation parse errors, – this may take a while… and remember to add the bold line!

<configuration>
<system.web>
<compilation debug=”true” targetFramework=”4.6.1″/>
<httpRuntime targetFramework=”4.6.1″/>
<customErrors mode=”Off”/>
</system.web>

That will allow you to view errors on your site in the first place.

4. Once you’ve resolved that.. your application should run like it would on your Visual Studio! I hope i saved you a bunch of time! 🙂

via GIPHY

 

It’s been a while all!

Hello everyone! It’s been about a month or two since I’ve last posted. I thought I would start to give a post to talk about the interesting things that has happened the past few weeks!

I’ve recently chosen my elective modules, and I am so very excited to begin learning the coming semester! I’ve selected the Developing Cloud Applications & Designing and Managing Cloud Databases Modules.

I am expecting both the modules to be full of information that will enrich my future, equipping me with the proper knowledge to start hopefully developing a cloud application. Recently, my interest in C# has given me a motivation to work on a small but interesting web application.

My development starts with disrupting the huge cloud computing companies today, where by it is fairly hard to determine what sort of disruptions/downtime you may expect on your own infrastructure/platform/software. This web application of mine will attempt to make use of Artificial Intelligence (hopefully) to compute and see which cloud computing services may best suit you, although right now… I am only working on a simple availability calculator with multiple factors put into consideration.

I am aware of artificial intelligence and amazing results it is able to produce after training. Though some people may support me with a similar opinion, others may feel that it is utterly scary to put complex calculations/important decisions to be made by these machines. The cost of making an wrong decision may be far too much. The debate about using AI in the near future is one I will be keeping close to my watch list.