1. Hard Programming Club - Week two

    (this are notes for the “hard programming club” at HackneyUTC )

    Last week:

    • We talked about inviting some Year6 students in for a programming day and I gave some ideas for we need to prepare (Scratch game, Program-a-human-robot) 
    • We started learning python the hard way, we did Exercise 0: setting up PythonAnywhere, and using the Python Anywhere console.

    This week:

    1) I’d like to see any scratch programs you have made

    2) Learning Python The Hard way:

    • Can you still remember how to log in and 
    • Learning: Exercise 1 (yes it’s important to type them in and make mistakes, yes do please do the study drills). Ask each other (and me) for help. Do go ahead to Exercise 2 if you want. 

    If there’s time, let’s look at some scratch, or program each other as a robot.

     
  2. Really useful especially “Find out if a change is part of a release” 

    $ git name-rev —name-only 50f3754

    $ pbpaste | git name-rev —stdin

     
     
  3. Backlift provides a database, user authentication and plug-ins for external services. You don’t need to be a rails, django or node.js developer to use Backlift
    — 

    Backlift: The easiest way to build webapps

    Interesting way to prototype frontends and derive the backend requirements from them

     
  4. Learn Python the hard way — on PythonAnywhere

    A replacement for Exercise 0 of Zed Shaw’s “Learn Python the Hard Way”, if running on PythonAnywhere:

    Read More

     
  5. Incredibly useful conceptual spelunking into how git really works rather than how we (in general) think it works. It explains the design motivations for some apparently unexpected behaviour. 

     
  6. Hosted Continuous Integration

    If the title doesn’t make sense: Continuous integration means (for web applications) running all your automated tests whenever you check your code into a code repository. So you don’t get any nasty surprises. Hosted continuous integration means that someone else worries about keeping the server going, and you just have to ensure your tests work.

    Context: my local CI (jenkins) machine (not hosted, not even on the web) died a while ago. Need to get all my clients tests running all the time so I don’t have to rerun them everytime I or a colleague commits new code. Most of the projects are on rails, but I’d rather not be limited.

    Here’s my shortlist currently:

    Anyone with any experience of these?

     
  7. Step maintanability: since features map to their own classes, their steps are just methods of that class. This encourages step encapsulation.

    Step reusability: In case you want to reuse steps across features, you can always wrap those in plain ol’ Ruby modules.

    — Spinach looks like the answer to some of my cucumber indigestion. I particularly want to share functionality (setup mostly) between cukes (arg… what will I call those ‘features’ I gues…) and rspecs.
     
  8. Why learn to code? And how much?

    Quick note about this debate from last year. Worth skimming the articles and head for the comments - the articles are good, but the comments they provoke are actually better for thinking with, I think:

    Jeff Atwood says why does everyone need to code, everyone doesn’t need to learn plumbing…

    http://www.codinghorror.com/blog/2012/05/please-dont-learn-to-code.html 

    Zed Shaw responds saying it’s not about “becoming a programmer” but learning some coding in order to understand some things

    http://learncodethehardway.org/blog/MAY_15_2012.html

    Quick reflection: I’ve had to learn some basic plumbing in order to fix ad hoc problems in my house. I am not a plumber. I wish I was a better plumber and/or had a better conception of how my plumbing worked. I could definitely know when I should do something myself, and when I should call in a professional.

     
  9. Thoughts on canonical URLS and webapps

    Presumptions:

    You definitely want the site to work whether people type www. or not (or any legacy/alternative urls etc). 

    You want a canonicalized address (makes life easier for everyone, way way better for SEO).  

    Therefore you need one of the addresses to redirect all requests to the other.

    Read More

     
  10. python-switchers beware: “embedded” methods in ruby

    if you’re a pythonista, you’re used to embedding classes, methods or whatever within each other. Ruby supports embedding classes within classes, and on might appear to support embedding methods within methods… but doesn’t. Here’s an example

    Read More