Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
1356 lines (757 sloc) 41.2 KB

100 Days Of Code - Log


Day 100: Sat 15-Apr-2017

Finished the Django tutorial, improving the admin layout and adding static files to the polls app.

Link(s) to work:


Day 99: Fri 14-Apr-2017

More Django including adding some tests.

Link(s) to work:


Day 98: Thu 13-Apr-2017

More Django following the tutorial, plus gathering thoughts on what app to build after the tutorial…

Link(s) to work:


Day 97: Wed 12-Apr-2017

Django Time Time to head back to the world of Python and learn some Django. Starting off by following the tutorial on the Django site, then will look to build something of my own using Django.

Link(s) to work:


Day 96: Tue 11-Apr-2017

Chat App Finished off the chat app lessons. The app has a joining page where the user enters their name and the room to join. When in the room, messages are emitted only to that room.

Really good course, learned a lot. Question now is: continue with Node or go back to Python? Go back to Python of course but I enjoyed learning Node and will be back to build some more apps using Node in the future.

Link(s) to work:


Day 95: Mon 10-Apr-2017

ToDo App Added private routes (local permission systems) to create, edit and delete todos. In addition, added tests and updated tests to check the routes work as expected.

Chat App Started a chat app which will be built with Node.js and Socket.io

Link(s) to work:


Day 94: Sun 9-Apr-2017

Added tests for GET and POST user routes.

Link(s) to work:


Day 93: Sat 8-Apr-2017

Added password hashing before passwords are saved to MongoDB.

Link(s) to work:


Day 92: Fri 7-Apr-2017

Added email validation to the sign-up route.

Link(s) to work:


Day 91: Thu 6-Apr-2017

Added the following:

  • Standard.js to take care of styling.
  • ENV variables for test, development and prod

Link(s) to work:


Day 90: Wed 5-Apr-2017

Wrote some tests for my PATCH url, using Mocha, Expect and Supertest. (Only 10 days to go!!)

Link(s) to work:


Day 89: Tue 4-Apr-2017

More Node.js and Mongo DB. Built a PATCH (i.e. update) route, and used Postman to validate (man, I love Postman, what a great tool).

Link(s) to work:


Day 88: Mon 3-Apr-2017

More Node.js and Mongo DB. Using Mongoose to build GET, POST and DELETE routes/URL endpoints, Postman to validate, and tests to check everything is working.

Link(s) to work:


Day 87: Sun 2-Apr-2017

More Node.js and Mongo DB.

Link(s) to work:


Day 86: Sat 1-Apr-2017

Node.js and Mongo DB.

Link(s) to work:


Day 85: Fri 31-Mar-2017

More Node.js and learning about BDD testing (Mocha, Expect, Supertest and rewire).

Link(s) to work:


Day 84: Thu 30-Mar-2017

More Node.js - I built a simple weather app.

Link(s) to work:


Day 83: Wed 29-Mar-2017

Learning some Node.js in order to increase my understanding of how front-end and back-end work together, with the intent of building some full-stack apps in the future.


Day 82: Tue 28-Mar-2017

Completed my pomodoro clock app built with React.js.

Link(s) to work:


Day 81: Mon 27-Mar-2017

Learning some more JavaScript, practising array manipulation, and started work on a pomodoro clock app built with React.js.

Link(s) to work:


Day 80: Sun 26-Mar-2017

Practising arrays and data manipulation.


Day 79: Sat 25-Mar-2017

Exploring a little of JavaScript and some Node.js (more just to satisfy my curiosity at a high level).


Day 78: Fri 24-Mar-2017

JavaScript 30 challenges from the Wes Bos course.


Day 77: Thu 23-Mar-2017

JavaScript 30 challenges from the Wes Bos course.


Day 76: Wed 22-Mar-2017

JavaScript 30 challenges from the Wes Bos course.


Day 75: Tue 21-Mar-2017

Lots of work today so not much time for coding. Did manage to squeeze in one of the JavaScript 30 challenges from the Wes Bos course.


Day 74: Mon 20-Mar-2017

Built a drum machine using JavaScript. It's fairly simple but what pleases me is I refactored the original version with a horrible if statement to using dataset.

Link(s) to work:


Weekend Reflection

A lot going on so I took the weekend off. Spent time with family, and it also gave me time to reflect.

I consider myself a Pythonista although I'm making no declarations about my skill level. Just that I like to write Python code.

But I need to level up in my JavaScript. So my focus is JavaScrip and React for now.


Day 73: Thu 16-Mar-2017

Time to build my next React app. The idea for this came from FreeCodeCamp - a recipe box.

Really enjoying using React so this next app will be more complex and I will look to use React-Router and Redux.

Link(s) to work:


Day 72: Wed 15-Mar-2017

Built my first app using React, a Markdown Previewer. Somewhat basic but start small and all that.

Link(s) to work:


Day 71: Tue 14-Mar-2017

Day 2 of learning Redux via the excellent Wes Bos course.

Link(s) to work:


Day 70: Mon 13-Mar-2017

Day 1 of learning Redux via the excellent Wes Bos course. Building an Instagram clone.

Link(s) to work:


Day 69: Sun 12-Mar-2017

Finished the Wes Bos course and built the ‘Catch of the Day’ app.

Link(s) to work:


Day 68: Sat 11-Mar-2017

More learning React and building the ‘Catch of the Day’ app.

Link(s) to work:


Day 67: Fri 10-Mar-2017

Started to learn some React and am building something again. I’m following the excellent course by Wes Bos:

React For Beginners — The best way to learn React

It feels good after a break and some focus on the more technical aspects of programming to be coding and building something. Whilst this technical learning stand me in good stead, I love the feeling of actually coding and building an app.

Link(s) to work:


Day 66: Thu 9-Mar-2017

More ES6 courtesy of Wes Bos.


Day 65: Wed 8-Mar-2017

Learning ES6 with Wes Bos’ course.


Day 64: Tue 7-Mar-2017

Completed technical learning modules (some CS fundamentals).

Also found a few moments for some CodeWars and to start Wes Bos’ es6 course.


Day 62 - 63: Sun 5 and Mon 6-Mar-2017

Sick, no coding. 🤒 🤧


Day 61: Sat 4-Mar-2017

Graphs, traversals and searches.


Day 60: Fri 3-Mar-2017

Yet more algorithm and data type lessons with Udacity.


Day 59: Thu 2-Mar-2017

More algorithm and data type lessons with Udacity, plus some other algorithm work.

Also, I discovered pip-tools and pip-compile requirements.in. Nice.


Day 58: Wednesday 1-Mar-2017

More algorithm and data type lessons with Udacity, plus some other algorithm work.

(I know this stuff is really important but I’m itching to start another project!)


Day 57: Tuesday 28-Feb-2017

Learning about Trees with Udacity, plus trying to do some CodeWars (is AWS down??)


Day 56: Monday 27-Feb-2017

Installed Glances on my Ubuntu project. Plus the daily call for more algorithm practice with Udacity and HackerRank.


Day 55: Sunday 26-Feb-2017

More algorithm practice with Udacity and HackerRank.


Day 54: Sat 25-Feb-2017

Progress / Thoughts:

Added additional security to my Linux Ubuntu server with fail2ban.

Also, some more algorithm study/play courtesy of Udacity.

Link(s) to work:


Day 53: Fri 24-Feb-2017

Progress / Thoughts:

Finalised my Linux Ubuntu project. App is live and server is secured!

Also, some algorithm study/play with Udacity and Hankerrank, and a couple of Wes Bos videos on ES6 and Webpack.

Link(s) to work:


Day 52: Thu 23-Feb-2017

Progress / Thoughts:

I discovered HankerRank and am working through some Python algorithms.

On the Linux server front, I followed this tutorial from Digital Ocean and got a simple Flask App to render. Then I built on top of it to get my Catalogue Item app live! 👍

Link(s) to work:


Day 51: Wed 22-Feb-2017

Today was mainly getting very frustrated with a Linux Ubuntu server on Amazon LightSail.


Day 50: Tue 21-Feb-2017

Today was mainly learning and playing around with a Linux Ubuntu server on Amazon LightSail.


Day 49: Mon 20-Feb-2017

Progress / Thoughts:

  • Next project complete! 😀 👍
  • It was my hardest project yet and a great feeling to complete a project, with MVVC design and using my first Javascript library.

Onwards!

Link(s) to work:


Day 48: Sun 19-Feb-2017

Progress / Thoughts: Processing feedback from my code review, including:

  • changing my infowindow to a single instance for greater efficiency, and to improve UX (only one infowindow will be open at one time)
  • conforming to Sass style guides
  • and other general refactoring

Link(s) to work:


Day 47: Sat 18-Feb-2017

Progress / Thoughts:

  • Finalising my neighbourhood map in order to submit for Udacity code review.

Link(s) to work:


Day 46: Fri 17-Feb-2017

Progress / Thoughts:

Further progress on my neighbourhood map project:

  • Responsive styling using Sass and Flexbox
  • Started looking at some Wes Bos Javascript courses - ES6 and Javascript30

Link(s) to work:


Day 45: Thu 16-Feb-2017

Progress / Thoughts:

Good progress on my neighbourhood map project, including:

  • User filtered array. User input captured via a Knockout textInput() data-bind, and this variable is used to filter a Knockout observable array.
  • Favourite list of venues. This is user defined, by a right click on a location marker.

Link(s) to work:


Day 44: Wed 15-Feb-2017

Progress / Thoughts:

  • Focus of today was on Knockout observable arrays, specifically working out to allow a user to update an array.

Link(s) to work:


Day 43: Tue 14-Feb-2017

Progress / Thoughts:

  • Worked on Foursquare API using ajax requests to populate Google Maps InfoWindows with information.

Link(s) to work:


Day 42: Mon 13-Feb-2017

Progress / Thoughts:

  • Some more refactoring / tinkering with my portfolio site.
  • Main coding today was on neighbourhood map project, getting to grips with the Google Maps API.
  • I know have clickable location markers that ’bounce’ and show an info window.

Link(s) to work:


Day 41: Sun 12-Feb-2017

  • Mainly Python on CodeWars
  • Refactored how my modals are displayed / hidden using Knockout.js. Previously data bind used 'visible', this caused the modal to render at load then KO would set 'visible' to false i.e. hidden. By changing to 'style' bind, the element is 'display: none' at initial point of render, so the user doesn't (shouldn't) see a few ms of black screen (from the modal).
  • Updated my Gulp tasks

Link(s) to work:


Day 40: Sat 11-Feb-2017

  • Python - learning some more via CodeWars
  • JavaScript - giving more thought to my project, and trying to understand more about the Google Maps API and methods e.g. initMap()

Link(s) to work:


Day 39: Fri 10-Feb-2017

Progress / Thoughts:

  • Today was mainly spend planning my next project: a neighbourhood map single page app, using Google Maps API, and built on the MVVC design paradim using Knockout.js
  • The code pushed to GitHub is a basic Google Maps render displaying a couple of location markers.

Link(s) to work:


Day 38: Thu 9-Feb-2017

Progress / Thoughts:

  • A good day. I applied my learnings from the Udacity lessons regarding Knockout.js to improve my Portfolio site. Specifically, I added Modals for each of my projects. I also refactored the hamburger / drawer menu for small media breakpoints.

Link(s) to work:


Day 37: Wed 8-Feb-2017

Progress / Thoughts:

  • Finished the lessons using Knockout.js, and completed the Cat Clicker app. Really interesting to use Knockout and build a functioning (albeit basic) app with it.
  • Started next lesson which uses Backbone.js. Really interesting to read the documentation and see how using a library such as Backbone helps the client to talk to the server. A lightbulb moment for me: the server can provide data to a Backbone collection or model, and then the app uses the data from collection and/or model to render, re-render, and react to user input/actions.

Link(s) to work:


Day 36: Tue 7-Feb-2017

Progress / Thoughts:

  • My first code using MV* (* = Octopus i.e. the Controller). I understand the concept, applying and writing code is not so easy! Made a good stab of it with the Cat Clicker project, and saw how it is easier to add new functionality. My issue was adding functionality that actually worked :) although I got some aspects working in the time available.
  • On my ‘To Do’ list is to research and understand better the JavaScript keyword this. Used it in the code but not fully sure how it works (I think it is similar to self in Python…?)

Link(s) to work:


Day 35: Mon 6-Feb-2017

Progress / Thoughts:

  • Completed one Python challenge on Code Wars. Next project is JavaScript so want to continue learning more about Python
  • Udacity lesson code and started to learn about MV*, interesting stuff and can’t wait to get started on the project itself. Lots to learn before then though…

Link(s) to work:


Day 34: Sun 5-Feb-2017

Progress / Thoughts:

  • Sunday morning fun doing some Code Wars, practising my Python skills
  • Leveled up: I’m now 7kyu
  • cubiio | Codewars

Day 33: Sat 4-Feb-2017

Progress / Thoughts:

  • Udacity lesssons re AJAX requests
  • Added NYT AJAX request, adding articles and anchor links relevant to the city submitted in the form

Link(s) to work:


Day 32: Fri 3-Feb-2017

Progress / Thoughts

  • Web scraping. Thoughts: interesting but picked a bad example to try it out(restrictions web scraping a search engine?)
  • Not strictly speaking ‘building shit’ but I followed this excellent post to install Flake8 Python linter for Sublime Text 3
  • Played around with Pelican - Python static blog generator. Verdict? I’m sticking with Hugo
  • Start lessons for my next project - a Neighbourhood Map built with JavaScript, and utilising various AJAX requests

Day 31: Thu 2-Feb-2017

Progress / Thoughts

  • Played around with modals but couldn't get it to work as I liked it. Will revisit another time.
  • Probably not part of the rules but did some Code Wars too.

Link(s) to work:

GitHub - cubiio/portfolio: My Portfolio


Day 30: Wed 1-Feb-2017

Progress:

  • Updates to my Portfolio site including
    • refactor Gulp tasks to simplify and remove folder structure
    • add Nunjucks
    • refactor code into Nunjucks templates and partials
    • add a for loop for my portfolio images and supporting info

Thoughts:

  • Nice to play around with Nunjucks which feels just like a front-end version of Jinja2
  • Portfolio is now update to date with my latest Udacity projects

Link(s) to work:


Day 29: Tue 31-Jan-2017

Progress:

  • Bootstrap, bootstrap and more bootstrap
  • Finished the README document

Thoughts:

  • Bootstrap is great when it works, fast and relatively easy to get a good looking, responsive site up and running. The difficulty is when you want to apply your own CSS and it doesn’t work, difficult to resolve as you don’t have the detail of what is in Bootstrap. Pros and cons of using Bootstrap I guess!

Link(s) to work:


Day 28: Mon 30-Jan-2017

Progress:

  • Refactored to Flask Blueprint including resolving various bugs (in particular making sure url_for() worked across all pages
  • Refactored my database.py file, and other modules are now DRY i.e. using db_session to connect to database.py
  • Implemented CSRF protection for my forms
  • Added a config.py file
  • Linted my code with pylint
  • Added Bootstrap css files to the /static/css folder. Styling fun starts tomorrow!

Thoughts:

  • Pleased with the refactoring achieved today
  • Backend mostly complete, will now shift to front-end

Link(s) to work:


Day 27: Sun 29-Jan-2017

Weekend and family time, whilst also recovering from a cold, meant limited time to code.

Today’s Progress:

  • Played around with Flask Blueprint creating a new skeleton repo to see how it all fits together.
  • Researched various topics to action tomorrow including CSRF tokens for WTForms.

Thoughts

  • It was a good idea to simplify and start a new skeleton Blueprint repo to see how it works. I now get (via the excellent tracebackk from Werkzerug that url_for() in a Jinja template should read {{url_for(‘BluePrintRouteName.MethodName’)}}
  • Actually taking a day off from coding and my projects is a good thing mentally. I want to complete the 100 day challenge but as I’m able (currently at least) to put in significantly more than 1 hour a day into my projects, I might take Sundays off going forwards

Day 26: Sat 28-Jan-2017

Today’s Progress:

Continued to work on my item catalogue using Python Flask.

  • Refactoring using Flask Blueprint

Thoughts:

  • Refactored my .py files and put in new folder structure, but getting some BuildError. Coming down with a cold, plus it’s the weekend, so bug squashing will have to wait.

Link(s) to work:


Day 25: Fri 27-Jan-2017

Today’s Progress:

Continued to work on my item catalogue using Python Flask.

  • Completed OAuth 2.0 login / logout functionality via Google
  • Added local permission systems i.e. only ‘authors’ can edit / delete their own content

Thoughts

  • I can see the advantages of using a micro framework like Flask, good functionality available with minimal code. One of the downsides is not knowing exactly how the underlying code works exactly.

Link(s) to work:


Day 24: Thu 26-Jan-2017

Today’s Progress:

Continued to work on my item catalogue using Python Flask.

  • Users can edit categories, and books
  • Users can delete categories, and books
  • Added form validation using WTForms
  • Stared to build OAuth 2.0 login / logout functionality via Google

Thoughts

  • Making good use of WTForms, and worked it out from using the documentation.

Link(s) to work:


Day 23: Wed 25-Jan-2017

Today’s Progress:

Started my next project, building an item catalogue (or catalog if you prefer) using Python Flask.

  • Design the database structure and built the code
  • Coded a database populater so I have some data for dev purposes
  • Built routes to render basic Jinja2 templates
  • Added a form to add a new category Built a POST method to persist a new category to the Db
  • Added a form to add a new book, including a dropdown menu built with {{category.variables}}.
  • Built a POST method to persist a new book to the Db

Thoughts

  • Feels good to be seriously coding again after a couple of days studying.
  • Particular pleased with my variable based dropdown menu, and how the POST method works alongside it.

Link(s) to work:


Day 22: Tue 24-Jan-2017

Today’s Progress:

  • Learned about OAuth. Coded a Google Plus OAuth access, following along with the Udacity course videos and notes.

Thoughts

  • Need to revisit some of the code tomorrow to make sure I understand it.
  • Will also start my next project in earnest tomorrow which will provide a good opportunity to practice building some OAuth integrations. I’m thinking of building Google and GitHub OAuth authorisations into my app.

Link(s) to work:


Day 21: Mon 23-Jan-2017

Today’s Progress:

Study time. Today I built a simple Python web server, then learned about Flask, using CRUD with Flask and RESTful APIs.

Thoughts

  • The benefit of using a framework is clear, really reduces the amount of repetitive code. That said, I fully understand the argument that you should know the language before diving into using a framework.
  • It was also very interesting to compare the Google App Engine framework with Flask.

Link(s) to work:


Day 20: Sun 22-Jan-2017

Today’s Progress:

Final tidy-up of my blog project:

  • Removed redundant Jinja controls on the templates. My code reviewer said all controls must be done server side and I wrote the decorators for various get() and post() methods to achieve this.

Then back to the item catalogue project, watched a few more of the videos from lesson 1, and worked on the first problem set.

Thoughts

  • Learned about building a database and using queries via SQLAlchemy. Interesting to compare it against Google App Engine, used in the last project.

Link(s) to work:


Day 19: Sat 21-Jan-2017

Today’s Progress:

Tidy-up of my blog project:

  • I corrected the @user_logged_in decorator to check for secure values
  • Added tag v3.0
  • Updated the README

Then on to the next project: item catalogue.

Watched a few of the videos from lesson 1 and created the database setup file to use with SQLAlchemy.

Thoughts

  • Good to get started on the next project. I got the Vagrant virtual box set-up. I last used this months ago for the Intro to Programming Nanodegree.

Link(s) to work:


Day 18: Fri 20-Jan-2017

Today’s Progress:

Now it’s official: my project passed the Udacity code review! In addition to this great news, today I built my first Python decorators. Finally got how they work and was able to write 4 different @decorators to control some of get() and post() methods.

Thoughts

  • Great to have completed the project! I really feel like I’m making progress.

Link(s) to work:


Day 17: Thu 19-Jan-2017

Today’s Progress:

My Build a blog project is complete! Well almost. :) Submitted today for review by Udacity. The final functionality was completed including editing/deleting comments. I also did improved some styling (relatively speaking - I’m freely admit I’m no designer). And I installed Pylint and linted my code.

Let’s see what the Udacity reviewer says…

Thoughts

  • Great feeling to complete the project (subject to Udacity’s feedback and decision of course). This is why I’m learning to code!
  • Onwards tomorrow with the next project…

Link(s) to work:


Day 16: Wed 18-Jan-2017

Today’s Progress:

Build a blog project

  • Users can like and unlike posts.
  • A like counter shows how many people liked a post.
  • Added styling including making anchors look like buttons. (Neat trick - found how to do this in CSS on Stack Overflow).
  • Started to build edit comments functionality.

Thoughts

  • Finally cracked finding an entity id in order to modify / delete the entity.
  • I was much more methodical in my work today, following a planned build, test, iterate approach. Really helped my productivity.

Link(s) to work:


Day 15: Tue 17-Jan-2017

Today’s Progress:

Project: build a blog

  • Users can like blogposts
  • Constraint: authors can’t like their own posts
  • Wrote my very first @classmethod

Thoughts

  • Some good progress but mainly a day of frustration trying to figure our database queries and why my code either throw errors or wasn’t giving the expected result.
  • A tough day but learned a lot.
  • Key lesson: write, test, iterate.
    • Write small pieces of code / functionality
    • Test to see if it works and gives the expected result
    • Iterate i.e. write the next small piece of code / functionality.
    • Final thought: plan the write / test / iterate approach so you understand how to develop more and more functionality, whilst testing as you go to make sure it works.

Link(s) to work:


Day 14: Mon 16-Jan-2017

Today’s Progress:

Project: build a blog

  • Added user commenting functionality
  • Add authors (query) to display who wrote the post
  • Added author based constraints i.e. only authors can edit and delete their own posts
  • Think I've designed how the like functionality will work. Will build and test tomorrow.
  • Worked out how to build and use my first @classmethod !! :)

Thoughts

  • Good progress. Plenty of head scratching how to build my data Model and build queries but once I got it, huge satisfaction.
  • Really excited to build and test my like design to see if it works and in particular to code my very own first @classmethod decorator.

Link(s) to work:


Day 13: Sun 15-Jan-2016

Today’s Progress:

Family day but managed just over an hour early morning to work on adding authors, to the Model and Page Handlers, and working datastore queries.

Thoughts:

  • Spent my hour coding and testing datastore queries to include in my blog app.

Link(s) to work:


Day 12: Sat 14-Jan-2016

Today’s Progress:

Family day but managed just over an hour early morning to work on adding authors, to the Model and Page Handlers, as well as the Jinja template e.g. “Post written by …”.

Thoughts:

  • Busy day on other stuff but pleased I still managed to get my hour in.
  • In addition, I research various articles on Python and Google App Engine when I had a few spare moments. Plenty to read and I think Monday will be a busy day implementing all these ideas.

Link(s) to work:


Day 11: Fri 13-Jan-2016

Today’s Progress:

Continuing to add functionality to my build a blog project:

  • Users can edit blogposts
  • Users can delete blogposts

Thoughts:

  • A lot going on today so less time to work on this than originally planned, still pleased with the progress and am getting to grips with how Google App Engine works. The documentation is really good, great examples of how it all works.

Link(s) to work:


Day 10: Thu 12-Jan-2016

Today’s Progress:

A day of solid achievement:

  • Migrated from Google App Engine (GAE) Datastore db to ndb
  • Updated my project README including a breakdown and explanation of the revised repo structure
  • Read lots of GAE documentation
  • Extended user login across all pages, thereby enabling a restriction that only users may write blog posts
  • On the main page, changed the blogpost title to a URL redirecting through to the permalink page of the blogpost

Thoughts:

  • Really pleased with the progress. Laid the groundwork now to move on to address the specific user requirements for the project i.e. comment, likes, edit and delete posts.

Link(s) to work:


Day 9: Wed 11-Jan-2016

Today’s Progress:

  • A good day! :)
  • Found and fixed a bug in the cookie hashing helper functions
  • Got user registration, login and logout working.
  • Added bonus, I restructured my repository per Python best practices.

Thoughts:

  • After the lows of yesterday, the highs of a good day, really pleasing to work through Set-Cookie and to implement it in user registration, login and logout.
  • Yesterday I was getting frustrated wading through a file with over 250 lines of code, so was pleasing to work through how to restructure the repository in line with best practices.
  • Looking forward to tomorrow’s challenges of adding further functionality to the blog.

Link(s) to work:


Day 8: Tue 10-Jan-2016

Today’s Progress:

  • A quick win in the morning: redid my front-end workflow to include Nunjucks, and then did a simple imitation of Yeoman to scaffold a front end project using Python. Nothing fancy but folder structure gets set-up and the Github clone takes place, all from the command line.
  • Udacity FSND studies:
    • Jinja templates set-up
    • Password and cookie hashing added
    • Cookie checking and setting added
    • Handlers for different pages added

Thoughts:

  • Udacity FSND studies: a lot of frustration trying to make progress with the blog project. Setting cookies and determining if a user is logged in caused me problems, perhaps a problem with inheritance from a handler? I think I’ll review it against the tutor’s solution, study the code and rationale behind it, then start again to really get to grips with it and understand it.
  • To end on a positive, pleased with my basic Yeoman scaffolding tool. Used gitpython this time to script a git clone command.

Link(s) to work:


Day 7: Mon 9-Jan-2016

Today’s Progress:

Morning

  • Experiment 1: played around with Nunjucks and Gulp. Got a Gulp task up and running to render html based on .njk templates.
  • Experiment 2: Wrote a Python script to automate deploying my Hugo powered blog.

Afternoon

  • Back to my Udacity FSND studies, focussing on my build a blog project and the first problem set - user registration.

Thoughts:

  • Really like the excellent Python sh module which I discovered via StackOverflow. Used it for my Python automation experiments.
  • Regarding my project to build a blog, pleased with some of the progress I made but need to get my head around some of the new teaching content e.g. setting cookies.

Link(s) to work:


Day 6: Sun 8-Jan-2016

Today’s Progress:

  • Switching gears today and learning some Python with the book “Automate the Boring Stuff with Python”. Played with some regex stuff and finalised the mini-project for an email and phone number finder.

Thoughts:

  • Regex always seemed very daunting but this book had a good intro to what it is and how it works with lots of good examples. I think it is still hard to master but I understand more about how it works.

Link(s) to work:


Day 5: Sat 7-Jan-2016

Today’s Progress:

  • For my ‘build a blog using Python’ project, I added a header, navbar and footer to the Jinja base.html template.

Thoughts:

  • I gave some thought on how to develop the next level of functionality for the blog:
    • User registration
    • User login
    • User logout
  • These form part of the problem sets and I will look to start coding these next week.

Link(s) to work:


Day 4: Friday, 6th January 2017

Today's Progress:

  • Completed Udacity's User Accounts & Security module.
  • Topics and code covered today include hashing and salting, and using bcrypt.

Thoughts:

  • Interesting topic and keen to put into practice in the upcoming problem sets.

Link(s) to work:


Day 3: Thursday, 5th January 2017

Today's Progress:

  • Finalised a basic blog using Python, Jinja and Google App Engine.
  • Today I added a handler to redirect to a permalink after a post is successfully submitted.
  • I also revised the Jinja templates so all the child html pages inherit from a base.html parent which includes a header.
  • Continued my Udacity learning with User Accounts & Security module.

Thoughts:

  • Pleasing to work through the permalink solution. The Udacity video on this was very helpful although still frustrated I couldn't work it out from the webapp2 and App Engine documentation.

Link(s) to work:


Day 2: Wednesday, 4th January 2017

Today's Progress:

  • Built a basic blog using Python, Jinja and Google App Engine

Thoughts:

  • All went well but got stuck on building URLs for new blog-posts. Couldn't get to grips with the documentation for Webapp2 and Google App Engine. Frustrating.
  • Tomorrow's task is to complete the URLs and permalink, further refine my Jinja templates and add some CSS.

Link(s) to work:


Day 1: Tuesday, 3rd January 2017

Today's Progress:

  • Udacity FSND (Full-Stack Nanodegree) Intro to Databases module:
    • More SQL (Structured Query Language) content, including the use of indices and the ACID principle
    • Started ASCII Chan mini project: Python project using Google App Engine including the Datastore, and Jinja for HTML templates

Thoughts:

  • Useful intro to databases but also feels good to be working on a mini-project and following along with the tutor to build a web app.
  • Good fun to build a first app using the Google App Engine Datastore. Next up is the database problem set so looking forward to that.

Link(s) to work:


Day 0: Monday, 2nd January 2017

Today's Progress:

  • Udacity FSND (Full-Stack Nanodegree) Intro to Databases module.
    • Learned about SQL (Structured Query Language)
    • SQL queries in Python

Thoughts:

  • I like the clean readability of SQL queries
  • The intro course is good and it also feels like a refresher course which I like. I did the tournament planner project in PostgreSQL as part of the Intro to Programming Nanodegree earlier this year.

Link(s) to work:


Day -1: Sunday, 1st January 2017

Today's Progress:

  • Completed Udacity backend problem set no 2 - user sign-up form
  • Languages: Python and Jinja2 templates

Thoughts:

  • Placing the {{variables}} in the Jinja template threw me at first as I thought my Python code didn't work but actually it was because I had no {{ }}.
  • The use of the dictionary for the params in the solution is really smart and something to read up and consider for future coding / projects.

Link(s) to work:


Template / Example


Day x: Tuesday, 3rd January 2017

Today's Progress:

  • Add comments here

Thoughts:

  • Add thoughts

Link(s) to work: