<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Hannah Can Code</title>
    <description>Adventures in learning to code. PhD in plants, not computers.
</description>
    <link>https://hannahcancode.github.io/</link>
    <atom:link href="https://hannahcancode.github.io/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Tue, 05 Mar 2019 06:50:09 +0000</pubDate>
    <lastBuildDate>Tue, 05 Mar 2019 06:50:09 +0000</lastBuildDate>
    <generator>Jekyll v3.7.4</generator>
    
      <item>
        <title>2017: Another Year in Code Review</title>
        <description>&lt;p&gt;2017 was a year, that’s for sure. But it was also a pretty amazing year for me, so I thought I’d share it. I wrote a similar blog post last year to summarise my first year of really digging in to learn to code, but this year I jumped so far ahead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;January&lt;/strong&gt; was a huge month for me so it gets three paragraphs to itself. At the very end of 2016 I applied for a job at a big tech consultancy in Sydney. 3 days into the new year I received an email with an offer of a phone interview. The job sounded amazing and I was so keen. I did the phone interview on my lunch break at work, and they sent me a code challenge to complete. So I took my shiny new python skills and sat down over the weekend and figured out a solution to the challange. Except being self taught, I didn’t write a good README. And I had to learn testing in python on the fly. And my code was a bit messy. And I didn’t make it through to the next round. And I was &lt;em&gt;devestated&lt;/em&gt;. But my devestation just cemented my desire to get good and get a job.&lt;/p&gt;

&lt;p&gt;Luckily, before I got my rejection, six days into the new year I did something on a whim that changed my life significantly. I sent in my application for the Women in Tech scholarhip to study &lt;a href=&quot;https://coderacademy.edu.au/&quot;&gt;Coder Factory Academy&lt;/a&gt;. I started dipping into my flextime at work, and did a couple of interviews for the course and scholarship. I was told it was very competitive and to not get my hopes up. With my earlier rejection fresh in my mind I did just that, and assumed I wouldn’t get it.&lt;/p&gt;

&lt;p&gt;Meanwhile, I had been selected to talk at the &lt;a href=&quot;https://2017.katieconf.xyz/&quot;&gt;WOOTConf&lt;/a&gt; miniconf as part on &lt;a href=&quot;https://lca2017.linux.org.au/&quot;&gt;Linux Conf Au&lt;/a&gt;, and I presented my talk &lt;a href=&quot;https://www.youtube.com/watch?v=m9U6YwJupfA&amp;amp;t=&quot;&gt;Hannah Gets Go-ing&lt;/a&gt;. This was my first ever conference talk, and it was pretty exciting to share my attempt at learning Go through a way that actually didn’t really work for me, though I did learn a lot along the way (I’m a firm believer in sharing failures as well as successes). During LCA, I received a call from Coder Factory, offering me their scholarhip, which I accepted and changed my life!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;February&lt;/strong&gt; was the end of my previous career and the start of Coder Factory. I’ve written enough about Coder Factory in &lt;a href=&quot;https://hannahcancode.github.io/&quot;&gt;other blog posts&lt;/a&gt;, but in short, &lt;strong&gt;February through to June&lt;/strong&gt; was study time. It was intense and I learnt a lot about making my code readable, planning, design, documentation and source control, as well as having the time to really dive into Ruby and Javascript. Making a bunch of Ruby on Rails, Node, React and React Native apps gave me a good basis for doing actual work.&lt;/p&gt;

&lt;p&gt;At the end of &lt;strong&gt;June&lt;/strong&gt; I started a month long internship with Eventhub. I got to dabble in functional programming in React with Rambda, GraphQL and start up life in general. I also had a meeting with the amazing Fiona from &lt;a href=&quot;https://www.lookahead.com.au/&quot;&gt;Lookahead Search&lt;/a&gt;, who helped me shine up my CV and set me up with some potential employers.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;July&lt;/strong&gt; I continued my internshp, and started interviewing for potential junior roles. Sooner than I knew I’d been offered a role with Scentre Group, and I accepted. I even had fun at the technical interview, which I think is pretty rare, so I took that as a good sign!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;August&lt;/strong&gt; was the start of my new job. I could finally say I was a developer and I get to enjoy going into work every day with smart people in a really amazing team.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;September&lt;/strong&gt; I got to focus on speaking, presenting a talk on &lt;a href=&quot;https://www.youtube.com/watch?v=eTP63jQuM9o&quot;&gt;React Native&lt;/a&gt; to the iOS devs at &lt;a href=&quot;http://www.devworld.com.au/&quot;&gt;/dev/world&lt;/a&gt;, and getting to polish my skills with the YOW Women in Tech speaker training workshop with Damien Conway.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;October&lt;/strong&gt; was just work work work (and fancy dinners, high tea and halloween fun).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;November&lt;/strong&gt; saw me remaking my &lt;a href=&quot;https://hannahcancode.github.io/assets/talks/sydjsnovember.pdf&quot;&gt;React Native&lt;/a&gt; talk for a bunch of JavaScript developers at &lt;a href=&quot;https://www.sydjs.com/&quot;&gt;SydJS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Feeling pretty settled in my current job, come &lt;strong&gt;December&lt;/strong&gt; I started to listen to my aspirations of learning some Computer Science fundamentals, which is what I plan to focus on in the new year. &lt;a href=&quot;https://www.edx.org/course/introduction-computer-science-harvardx-cs50x&quot;&gt;CS50&lt;/a&gt;, &lt;a href=&quot;https://medium.com/basecs&quot;&gt;basecs&lt;/a&gt; and &lt;a href=&quot;https://mitpress.mit.edu/books/structure-and-interpretation-computer-programs&quot;&gt;Structure and Interpretation of Computer Programs&lt;/a&gt; will form the beginning of my learning. Bring it on.&lt;/p&gt;
</description>
        <pubDate>Sat, 30 Dec 2017 00:00:00 +0000</pubDate>
        <link>https://hannahcancode.github.io/2017/12/30/another-year-in-code-review.html</link>
        <guid isPermaLink="true">https://hannahcancode.github.io/2017/12/30/another-year-in-code-review.html</guid>
        
        
      </item>
    
      <item>
        <title>GovHack, Baby GovHack</title>
        <description>&lt;p&gt;Last week I participated in my first GovHack! I registered the day before and I wasn’t sure whether I would join in, but I went along on the Friday night for the opening and very quickly I was included in a long standing team of Hobart friends. I’m really grateful they let me join in, they’re a well oiled GovHack machine.&lt;/p&gt;

&lt;p&gt;This team generally make fun minigames for their GovHack entries, and this year was no exception. Having stumbled upon a wealth of data of inquests from colonial Tasmania, we decided to make a card game about the lives and deaths of early settlers and convicts in Tasmania, called Death Who. There were plenty of weird and brutal ways to die - a few visitations by God, being crushed by tins of boiling milk, and death by misadventure. We had backend and frontend devs, and data and asset wranglers. You can find more about the whole project on the &lt;a href=&quot;https://www.secretlab.com.au/govhack2017&quot;&gt;The Secret Lab&lt;/a&gt; and the backend server written in Go on &lt;a href=&quot;https://joshdeprez.com/post/69-govhack-2017/&quot;&gt;Josh Deprez’s blogpost&lt;/a&gt;, but I thought I’d write about the website &lt;a href=&quot;https://twitter.com/sheabunge&quot;&gt;Shea&lt;/a&gt; and I  made to complement the game.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/doe2gejvd/image/upload/s--eihSyjIO--/c_scale,w_730/v1501899662/Screen_Shot_2017-08-05_at_12.19.51_pm_kh7zyx.png&quot; alt=&quot;Screenshot&quot; class=&quot;img-responsive, center-image&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After players had finished playing they are presented with a button to see more information about their hand of five people who they’ve just been trying to kill. Because it was a hackathon and speed is necessary, I set up a React website using &lt;a href=&quot;https://github.com/facebookincubator/create-react-app&quot;&gt;Create React App&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I set up a very basic route in &lt;code class=&quot;highlighter-rouge&quot;&gt;index.js&lt;/code&gt; using &lt;a href=&quot;https://github.com/ReactTraining/react-router&quot;&gt;React Router&lt;/a&gt; to fetch params from the URL, allowing me to keep track of the player:&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;Route&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/:id&quot;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;component&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;App&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;sr&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now the game just has to append &lt;code class=&quot;highlighter-rouge&quot;&gt;/playerid&lt;/code&gt; to the end of the url it generates at the end.&lt;/p&gt;

&lt;p&gt;The server would provide a json object of the current game state, and in &lt;code class=&quot;highlighter-rouge&quot;&gt;App.js&lt;/code&gt; I make a fetch request to the server. As the server sends back the whole game state, rather than just one player’s, I use &lt;code class=&quot;highlighter-rouge&quot;&gt;this.props.match.params.id&lt;/code&gt; as I’m digging into the json object so I can just grab the player’s hand.&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nx&quot;&gt;getData&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;fetch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;serveraddress&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;then&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;response&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;then&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;response&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;players&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;props&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;hand&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;people&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;then&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;response&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;setState&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;catch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;error&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In &lt;code class=&quot;highlighter-rouge&quot;&gt;App.js&lt;/code&gt; I can then feed &lt;code class=&quot;highlighter-rouge&quot;&gt;this.state.data&lt;/code&gt; into our two components - the navbar (or gravestones!) and the main text component.&lt;/p&gt;

&lt;p&gt;In &lt;code class=&quot;highlighter-rouge&quot;&gt;Navbar.js&lt;/code&gt; we map through the 5 card items in the hand and, using Shea’s css, create a gravestone for each, with the name of the person and a symbol for their death ‘engraved’ on each. We also keep track of which card we’re currently rendering data for, and using an onClick function update the state every time we move between cards.&lt;/p&gt;

&lt;p&gt;Finally, for &lt;code class=&quot;highlighter-rouge&quot;&gt;Data.js&lt;/code&gt; we just feed through the data of the current card we’re looking at, using the above current card id in the state. We go through each bit of possible data in the object of the individual card, check if it exists, and if it does we spit it out as part of a sentence, giving a link to the actual data source at the end of each piece of information.&lt;/p&gt;

&lt;p&gt;It was a really interesting experience developing a website in this short space of time and with so many dependencies. We really couldn’t start working on the actual guts of the site until&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;a) The server knew what data would be available
b) I knew what data I would be getting from the server
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This meant that we basically had to wait for the entire game logic to be finished in order for us to get everything together, which meant that, while I’d set up the routing and basic app structure on day one, a lot of rushing on the second day to get everything done.&lt;/p&gt;

&lt;p&gt;Finally, for ease of deployment, I put the website on Heroku using the &lt;a href=&quot;https://blog.heroku.com/deploying-react-with-zero-configuration&quot;&gt;Create React App Buildpack&lt;/a&gt;. This worked like a charm expect for the routing. A quick google search determined I had to add a new file, &lt;code class=&quot;highlighter-rouge&quot;&gt;static.json&lt;/code&gt;, to overwrite some of the defaults:&lt;/p&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;root&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;build/&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;clean_urls&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;routes&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/**&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;index.html&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You can check out the &lt;a href=&quot;https://github.com/admiraldolphin/govhack2017&quot;&gt;Github&lt;/a&gt; to see the code, see the website working with some hardcoded data &lt;a href=&quot;http://deathwho.herokuapp.com/1&quot;&gt;here&lt;/a&gt;, or you can play the game itself and see it work with the live data!&lt;/p&gt;
</description>
        <pubDate>Sat, 05 Aug 2017 00:00:00 +0000</pubDate>
        <link>https://hannahcancode.github.io/2017/08/05/GovHack-Baby-GovHack.html</link>
        <guid isPermaLink="true">https://hannahcancode.github.io/2017/08/05/GovHack-Baby-GovHack.html</guid>
        
        
      </item>
    
      <item>
        <title>Final CFA project - Jules' Wardrobe</title>
        <description>&lt;p&gt;Last week was my final week of classes with Coder Academy (previously known as Coder Factory Academy) and on Friday we all presented our final projects. The variety was pretty outstanding, from VR galleries to warehouse scanners to restaurant buzzers and React dashboards - I was really proud of all my fellow classmates, we’ve come so far! I wanted to write a quick post about my project - Jules’ Wardrobe.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/doe2gejvd/image/upload/s--SxL3IBDk--/v1497687548/YOU_ARE_SIMPLY_THE_yiaal6.png&quot; alt=&quot;Jules' Wardrobe&quot; class=&quot;img-responsive&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The spiel goes like this - have you seen Clueless? Because I made a mobile app inspired by Cher’s Closet. It was on the request of a friend - we had to work with a client for this project - but it’s a project I’m very excited about. If you haven’t seen Clueless for a while, &lt;a href=&quot;https://www.youtube.com/embed/XNDubWJU0aU&quot;&gt;this video&lt;/a&gt; might give you some indication of what I was expected to make! (Well, not quite that. I’m yet to get touchscreen working on a Classic Macintosh!)&lt;/p&gt;

&lt;p&gt;Jules’ wardrobe is a visual representation of a user’s wardrobe. It is a mobile app that allows them to upload photos of their clothes, categorize them as tops, bottoms or shoes (for the first iteration at least), and then flick through the carousels of clothes to see how an outfit would look without having to try it on. If the user is feeling uninspired there’s also a shuffle button that will start all the carousels spinning and create a random outfit. It’s a fun app with some useful benefits - if you’ve ever created a floordrobe while attempting to pick out a new outfit, or you always wear the same thing because you’re not sure what will look good together, this is for you.&lt;/p&gt;

&lt;p&gt;For the project my client and I decided an iPhone app would be the best platform. We’d been learning React in class, but I’d already looked into React Native and I decided that would be a good framework to use, along with a Node.js/Express.js/MongoDB backend using the Cloudinary API for image storage. I was really happy with the outcome from using React Native - it’s a really satisfying feeling to have such responsive, native components on your device that respond well to touch.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/doe2gejvd/image/upload/s--IxCYo44S--/c_scale,h_442,q_58/v1497684990/juleswardrobe_duetsk.gif&quot; alt=&quot;Jules wardrobe&quot; class=&quot;img-responsive, small-image-centre&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That said, there’s still lots of work to be done. As we had less than two weeks from ideation and initial design to presentation of our MVP (minimal viable product) my code needs some cleanup! I need to refactor my components into seperate files, implement Redux and recreate some of the open source components so they’re more suited to my design. While the final project may be submitted and presented at this point, I still plan to keep working on this as a side project.&lt;/p&gt;

&lt;p&gt;See the &lt;a href=&quot;https://github.com/hannahcancode/CFA-wardrobefront&quot;&gt;GitHub repository&lt;/a&gt; for more information on the project, including design and installation instructions. Let me know if you have any thoughts or ideas!&lt;/p&gt;
</description>
        <pubDate>Sun, 18 Jun 2017 00:00:00 +0000</pubDate>
        <link>https://hannahcancode.github.io/2017/06/18/Final-Project-Jules-Wardrobe.html</link>
        <guid isPermaLink="true">https://hannahcancode.github.io/2017/06/18/Final-Project-Jules-Wardrobe.html</guid>
        
        
      </item>
    
      <item>
        <title>Linking Rails, Postgresql, Rspec and Travis CI</title>
        <description>&lt;p&gt;One of the things we’re encouraged to do at Coder Factory Academy is - if we find a solution to something that isn’t widely documented, write it up!&lt;/p&gt;

&lt;p&gt;Well, I’ve done just that. A bit of background - our major project for Term 2 is to create a two sided platform using Ruby on Rails. We’re required to use Postgresql for our database, and implement testing with Rspec. We’ve also been encouraged to look into code quality and deployment tools, so I wanted to get &lt;a href=&quot;https://travis-ci.org/&quot;&gt;Travis CI&lt;/a&gt; working to make sure my tests are passing with each push to and pull request on Github, and get that shiny badge on my project repository. Which I did!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://hannahcancode.github.io/assets/travis-build-passing.png&quot; alt=&quot;Travis CI build passing&quot; class=&quot;small-image-centre&quot; /&gt;&lt;/p&gt;

&lt;p&gt;However, while I could find advice for using Travis CI with postgresql, Travis CI with Rspec and Travis CI with Rails, I struggled to find something that pulled all three together. So, I wrote this tutorial to document what worked for me, and hopefully save others in my class a few stumbles down the wrong path. Check it out &lt;a href=&quot;https://github.com/hannahcancode/CFA-Travis-CI-Rails-Postgresql-Rspec&quot;&gt;on Github&lt;/a&gt;, and let me know if there are any issues!&lt;/p&gt;
</description>
        <pubDate>Tue, 18 Apr 2017 00:00:00 +0000</pubDate>
        <link>https://hannahcancode.github.io/2017/04/18/Linking-Rails-Postgresql-Rspec-and-Travis-CI.html</link>
        <guid isPermaLink="true">https://hannahcancode.github.io/2017/04/18/Linking-Rails-Postgresql-Rspec-and-Travis-CI.html</guid>
        
        
      </item>
    
      <item>
        <title>Coder Factory Academy - One Term Down</title>
        <description>&lt;p&gt;Term one of Coder Factory is done and dusted! We’re currently on a week break, and my classmates are variously recovering, sleeping, and even still going into class to study. I have been playing with my Arduino (a seperate post is in the works for that).&lt;/p&gt;

&lt;p&gt;Week 5 was our introduction to Rails and the Model, View, Controller (MVC) proper. In week 4 we’d touched upon it to use the controller and views to make websites with no database backend, but now we’re starting to get to grips with databases and where everything sits in MVC.&lt;/p&gt;

&lt;p&gt;Once again Coder Factory comes through for me and my learn-by-doing style, with these concepts demonstrated by whipping up Instagram and Twitter clones. We used  Rails with PostgreSQL databases and some ruby gems - &lt;a href=&quot;https://github.com/plataformatec/devise&quot;&gt;Devise&lt;/a&gt; for user login, &lt;a href=&quot;https://github.com/cmer/socialization&quot;&gt;Socialization&lt;/a&gt; for likes and follows, and &lt;a href=&quot;https://github.com/carrierwaveuploader/carrierwave&quot;&gt;Carrierwave&lt;/a&gt; for image uploading.&lt;/p&gt;

&lt;p&gt;One thing I really enjoyed about Rails was using the command line console to access our data, without needing to know all the usual SQL syntax. For example, this spits out just the information from the id and description columns of the Post table:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;gt; Post.pluck(:id, :description)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Another console command I used a lot was this, which would allow you to find the Post with id: 1 and update one (or more) of it’s attributes.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;gt; p = Post.find(1)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;gt; p.update!(title: &quot;My Cool Title&quot;)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Handy for development.&lt;/p&gt;

&lt;p&gt;In my previous post I was pretty excited about the concept of putting logic in html - well, I’ve since learnt that while you can do this do some extent, it’s much better to put your logic in the controller or the model and feed the result through to the view. Good to know!&lt;/p&gt;

&lt;p&gt;Finally, I’m loving discoving different html frameworks available. This week I’ve been playing with &lt;a href=&quot;http://materializecss.com/&quot;&gt;Materialize CSS&lt;/a&gt;, which is a framework built around Google’s Materialize framework. It’s kind of bizarre but very fun to emulate Google’s design with a few short lines of code. It’s pretty basic at the moment, but here’s my Twitter clone, Meower, using Materialize CSS:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://hannahcancode.github.io/assets/meower.png&quot; alt=&quot;Meower screenshot&quot; class=&quot;img-responsive,&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So that’s what we’ve learnt in one term at Coder Factory. We’ve done ruby, rails, MVC, html, css and a few frameworks. We went from calculator terminal apps written in Ruby to pretty websites made with CSS and bootstrap, to twitter clones with database backends. I’m pretty impressed with everything we’ve managed to get through, and I’m still excited to see what we’ll come up with once we throw JavaScript into the mix!&lt;/p&gt;
</description>
        <pubDate>Tue, 21 Mar 2017 00:00:00 +0000</pubDate>
        <link>https://hannahcancode.github.io/2017/03/21/CFA-one-term-down.html</link>
        <guid isPermaLink="true">https://hannahcancode.github.io/2017/03/21/CFA-one-term-down.html</guid>
        
        
      </item>
    
      <item>
        <title>Coder Factory Academy - Weeks 3 and 4</title>
        <description>&lt;p&gt;I actually cannot believe a month has gone by already. What a ride! We’re now four weeks in to our Coder Factory adventure and at this point I’m starting to worry that’s it’s going by too quickly. I mean, I suppose it’s a pretty awesome situation - I’m not working for (at least) six months and I get to dedicate my time to honing my coding craft and hanging out with a bunch of cool devs-to-be - so it’s maybe not surprising that the time is flying. It was my birthday last week and my classmates were really lovely and celebrated with me - I got cake!&lt;/p&gt;

&lt;p&gt;So what have I learnt in weeks 3 and 4? The last two weeks we’ve really got stuck into the guts of web development, with html, css, bootstrap and ruby on rails. We started out getting to grips with css by making our own takes on &lt;a href=&quot;http://www.csszengarden.com/&quot;&gt;CSS Zen Garden&lt;/a&gt;. If you’re not familiar with CSS Zen Garden, it is a demonstration of the design that can be achieved purely through CSS. You take the provided HTML and, without editing it at all, style it purely through an attached CSS stylesheet. You can see my version &lt;a href=&quot;https://github.com/hannahcancode/CFA-CSS-Zen-Garden&quot;&gt;here&lt;/a&gt;. Little did I know I was doing the super trendy parallax scrolling at the time. I’d seen it on another website (using javascript) and just wanted to see if I could do it in CSS.&lt;/p&gt;

&lt;p&gt;Next came one of my favourite challenges so far - we picked a &lt;a href=&quot;https://dribbble.com/shots/2291937-Grav&quot;&gt;cool website design on Dribble&lt;/a&gt; and then spent a couple of days taking the design and turning it into a functioning website. I really enjoyed taking a flat image and working out the structure and code that was needed to make it come to life. It’s also definitely the coolest looking website I’ve ever made because it was designed by a professional designer and not me!&lt;/p&gt;

&lt;p&gt;Front end under our belts, it was time to get on Rails. Rails is a web framework for Ruby - it allows you to combine html with Ruby, which is very cool, and lets you have databases and other behind the scenes backend things on your website. My mind was blown! My favourite thing about Rails so far is that I can store everything in arrays and iterate through them to generate my html. So cool. We spent the last week working on Portfolio websites, from inspiration through design, development and deployment - and I have to say the coolest thing about mine is that for one section it has an if statement to decide whether there should be a button for each example. Love it! My portfolio is also up on &lt;a href=&quot;https://github.com/hannahcancode/CFA-Portfolio&quot;&gt;GitHub&lt;/a&gt;, and deployed &lt;a href=&quot;https://hannahportfolio.herokuapp.com/&quot;&gt;here&lt;/a&gt; if you want to see it in action!&lt;/p&gt;

&lt;p&gt;A screenshot from my portfolio:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://hannahcancode.github.io/assets/portfolio-min.png&quot; alt=&quot;Portfolio screenshot&quot; class=&quot;small-image-centre&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I know I’ve been pretty glowing about Coder Factory on my blog, but I’m honestly really happy with how the course has been going. I’ve learnt so much and I’m having a blast. It’s exhausting, and I spent most of the last weekend recovering, but it’s totally worth it.&lt;/p&gt;

</description>
        <pubDate>Mon, 13 Mar 2017 00:00:00 +0000</pubDate>
        <link>https://hannahcancode.github.io/2017/03/13/CFA-weeks-3-and-4.html</link>
        <guid isPermaLink="true">https://hannahcancode.github.io/2017/03/13/CFA-weeks-3-and-4.html</guid>
        
        
      </item>
    
      <item>
        <title>A New Adventure at Coder Factory Academy</title>
        <description>&lt;p&gt;In January this year I finally decided that it was time to be serious about getting a job as a developer. I’d spent 2016 taste testing whether tech is for me, and turns out, yep, we’re made for each other. I’d started applying for jobs, but I’d also kept my eye on &lt;a href=&quot;https://www.coderfactoryacademy.edu.au/&quot;&gt;Coder Factory Academy&lt;/a&gt;. I knew that they had Women in Tech scholarships for women entering their Fast Track accredited Diploma of Software Development course, and when applications opened I decided to apply.&lt;/p&gt;

&lt;p&gt;Doing a diploma for six months full time would be a huge commitment - I’d have to quit my job and have no income for at least while I was studying, longer if I didn’t go straight into work. A scholarship would certainly help financially, not to mention what an awesome push it would be to finally get me out of my old career and into a new one. If I didn’t get it I’d keep applying for jobs, but this felt like a good way to formally hone my skills and open up more opportunities.&lt;/p&gt;

&lt;p&gt;Well, long story short they offered me their scholarship for the Sydney intake, I sent my resignation the next day (the scholarship was definitely a kick in the butt to quit my job and take the plunge, I have to say) and now I’m two weeks into the first term! Luckily for me the interview process was super quick, as I was heading to present at &lt;a href=&quot;https://linux.conf.au/&quot;&gt;Linux Conference Australia&lt;/a&gt;’s &lt;a href=&quot;https://2017.katieconf.xyz/&quot;&gt;WOOTConf&lt;/a&gt; the next week (I actually got the call offering me the scholarship while hanging out in the hallway at LCA and got to celebrate with some bubbles at the conference dinner).&lt;/p&gt;

&lt;p&gt;So, two weeks in and what have I learnt? Oh my, so much! I have to say that CFA’s Fast Track has exceeded my expectations. I’d be worried that it would be too slow, considering you don’t need any experience to enter, but the pace is quick and they expect a lot of their students. So far we’ve covered Ruby, gems, bash, terminal, object oriented programming and test driven development. We’ve also had two mentors from industry come in and talk to us about startups and networking, with the promise of many more to come.&lt;/p&gt;

&lt;p&gt;The instructors have been encouraging us to go above and beyond, and I’m pleased to say I took up one of their challenges and was the first student in the class to complete &lt;a href=&quot;http://rubykoans.com/&quot;&gt;Ruby Koans&lt;/a&gt;. In our first group project, submitted today, my group made a text adventure/Ruby quiz called &lt;a href=&quot;https://github.com/advaitju/CFA-Project-Caffeine-Quest&quot;&gt;Caffeine Quest&lt;/a&gt; over the space of three days, and in doing so taught ourselves collaboration with Github. I also sent my first pull request today, and had it accepted. This feels like real world stuff.&lt;/p&gt;

&lt;p&gt;On a personal level I feel like a whole new person. I’m not going to lie, it’s been absolutely exhausting - I’ve been constantly learning and thinking, I’ve been challenged and I’ve also had to get to know 35 new people (32 other students and 3 instructors). But it’s also been the happiest I’ve been for a while doing something that could be considered work. The student card is a nice perk too! I’m no longer clock watching, and sticking around past the 5PM knock off time is incredibly easy to do (particularly with the odd free beer!).&lt;/p&gt;

&lt;p&gt;Being a full time student is definitely still a novelty, but I’m actually looking forward to Monday so I can get another challenge, learn something new, build something awesome and get another step closer to being an awesome developer.&lt;/p&gt;

</description>
        <pubDate>Fri, 24 Feb 2017 08:30:00 +0000</pubDate>
        <link>https://hannahcancode.github.io/2017/02/24/a-new-adventure-at-Coder-Factory-Academy.html</link>
        <guid isPermaLink="true">https://hannahcancode.github.io/2017/02/24/a-new-adventure-at-Coder-Factory-Academy.html</guid>
        
        
      </item>
    
      <item>
        <title>2016: A Year in Code Review</title>
        <description>&lt;p&gt;2016 was a big year for everyone it seems, and it was an especially big year for me in my code adventure. I went from being very hesitant about my skills to someone who is ready to be a junior developer for real. So while I finish off the last of the Christmas pavlova, I thought I’d look back on my year in code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;January and February&lt;/strong&gt; started off slowly, I got a promotion at work and a lot of my mental energy was dedicated to that adjustment. I watched a few lectures on Coursera from their Internet History, Technology and Security, Principles of Computing, and Python for Databases courses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;March&lt;/strong&gt; was when I really threw myself into learning, and started to hold myself accountable. I set up a twitter account (&lt;a href=&quot;https://twitter.com/hannahcancode&quot;&gt;&lt;span class=&quot;icon icon--twitter&quot;&gt;&lt;svg viewBox=&quot;0 0 16 16&quot; width=&quot;16px&quot; height=&quot;16px&quot;&gt;&lt;path fill=&quot;#828282&quot; d=&quot;M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;
&lt;/span&gt;&lt;span class=&quot;username&quot;&gt;hannahcancode&lt;/span&gt;&lt;/a&gt;
) and a github account (&lt;a href=&quot;https://github.com/hannahcancode&quot;&gt;&lt;span class=&quot;icon icon--github&quot;&gt;&lt;svg viewBox=&quot;0 0 16 16&quot; width=&quot;16px&quot; height=&quot;16px&quot;&gt;&lt;path fill=&quot;#828282&quot; d=&quot;M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;
&lt;/span&gt;&lt;span class=&quot;username&quot;&gt;hannahcancode&lt;/span&gt;&lt;/a&gt;
) to share what I was doing. Looking back through my early tweets, there’s more negative self talk than I would have imagined - I used words like ‘shitty’ and ‘rubbish’ to downplay my achievements. I’m pleased to say I think I’ve turned this around.&lt;/p&gt;

&lt;p&gt;I also dived into working on my pyglet game, dealing with classes (both ones I’d made and pyglet’s classes), **kwargs, inheritance and composition. I animated my character’s walk so she didn’t hover, implemented multiple screens and set up a game of life style disease progression for my trees, changing their colour when “disease” hit.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;April&lt;/strong&gt; I did a fair bit of non-code work on my sprites, making nicer walking animations (with bounce!) and refining my main character’s face (got rid of her mouth, a permanent smile was creepy). I also rolled up my sleeves, brewed a lot of V60 coffee, and spent a day qualifying for Google Code Jam 2016! I was very pleased with myself. I competed in round 1A too, and got the first question right in a flash. Unfortunately I over thought the second question, but I was pleased to see I was on the right track.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://hannahcancode.github.io/assets/codejam.jpg&quot; alt=&quot;Code Jam 2016&quot; class=&quot;small-image-centre&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;May&lt;/strong&gt; I implemented adorable mushrooms in my game, that randomly grew from nothing and shrank away a few seconds later. I created an inventory system and made the mushrooms collectable with a button press when you got close enough to them.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://hannahcancode.github.io/assets/mushrooms.png&quot; alt=&quot;Spawning mushrooms&quot; class=&quot;small-image-centre&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I also booked flights and accommodation for PyCon AU in Melbourne. Interestingly I didn’t book my ticket until later… imposter syndrome perhaps?&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;June&lt;/strong&gt; I actually registered for PyCon AU.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;July&lt;/strong&gt; I went to my first ever tech meetup, a NodeGirls Sydney workshop, where I worked through the javascripting tutorial, learnt some node.js and MET SOME PEOPLE LIKE ME! Revelations. I also got my first ever swag (free stuff hooray!). I’d highly recommend going to this workshop next time it comes around.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;August&lt;/strong&gt; I moved to Sydney for work and love. I didn’t realise quite how much of an impact this would have on my coding. It turns out &lt;em&gt;community&lt;/em&gt; aids success, at least for me. If I can see it I can be it! The Sydney tech community is huge, amazing and the women in tech are some of the best people I’ve ever met. So welcoming.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://i2.kym-cdn.com/photos/images/newsfeed/000/292/580/fd8.jpg&quot; alt=&quot;If it fits, I sits&quot; class=&quot;small-image-centre&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It was also the month of PyCon AU and unfortunately I was still recovering from a post-move lurgy. I was struggling for most of it. That did mean I was very, very grateful to whoever had put the box of tissues, (and tampons and pads) in the bathroom. It was my first tech conference, and everyone was awesome, but I’d like a do-over in better health!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://hannahcancode.github.io/assets/pycontissues.jpg&quot; alt=&quot;Bathroom tissues at PyCon AU 2016&quot; class=&quot;small-image-centre&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;September&lt;/strong&gt; was busy busy busy! I went to my first PyLadies Sydney (VR headsets!), I signed up to and won the People’s Choice Award with my team at SheHacks (&lt;a href=&quot;https://hannahcancode.github.io/jekyll/update/2016/10/18/hackathon-advice.html&quot;&gt;read the blog post here&lt;/a&gt;), joined a study group for technical interviews (pair programming!), started to learn Django (and felt like a wizard using terminal). I also recorded my first ever podcast, &lt;a href=&quot;https://www.facebook.com/CanWeStealYouForaSecond/&quot;&gt;Can We Steal You For A Second&lt;/a&gt; (spoiler: it’s about the Bachelor, not code). September was the month I was certain that being a developer was my future.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;October&lt;/strong&gt; was potentially even bigger. I challenged myself to do something code related (doing, learning, talking) every day of the month (I got… close). But, I did some refresher front end courses (bootstrap, css, javascript, jquery), got some amazing resume tips at a Women Who Code meetup and registered for Linux Conference AU 2017. I started pulling apart websites to see how they were doing cool things, and managed to replicate some in easier ways. I also made my first ever commit to github and published my first post on this blog.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;November&lt;/strong&gt; I submitted a talk proposal to &lt;a href=&quot;https://2017.katieconf.xyz/&quot;&gt;WOOTConf&lt;/a&gt;, and was accepted! So I set about fulfilling the promise I’d made in my proposal, and started learning Go and arduino.&lt;/p&gt;

&lt;p&gt;Finally, &lt;strong&gt;December&lt;/strong&gt;. I gave a lightning talk at Women Who Code Sydney about my arduino adventures, and tentatively started jobhunting. And I bought a robot!&lt;/p&gt;

&lt;p&gt;2016 sucked in a lot of ways, but I learned a lot, made some great news friends and had an awesome, busy time.&lt;/p&gt;

</description>
        <pubDate>Mon, 26 Dec 2016 10:00:00 +0000</pubDate>
        <link>https://hannahcancode.github.io/2016/12/26/a-year-in-code-review.html</link>
        <guid isPermaLink="true">https://hannahcancode.github.io/2016/12/26/a-year-in-code-review.html</guid>
        
        
      </item>
    
      <item>
        <title>Jekyll and Github pages</title>
        <description>&lt;p&gt;Since starting my adventure in learning to code, I’d been meaning to make a blog to document some of the things I’ve been learning - difficulties, lessons, achievements. Now it will also include some of the meetups I’ve been attending, as I’m realising more and more than networking and communities are going to be just as important in making me into a well rounded developer as technical skills.&lt;/p&gt;

&lt;p&gt;Originally I’d planned to make myself a blog in Django to cement my understanding of the python framework. This presented some problems though:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;while it may have been a great learning opportunity, I was reinventing the wheel&lt;/li&gt;
  &lt;li&gt;I’d have to host it somewhere&lt;/li&gt;
  &lt;li&gt;I was opening up a can of security worms that I don’t have the time or potentially the skills to deal with.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then &lt;a href=&quot;http://lucybain.com/&quot;&gt;Lucy&lt;/a&gt; posted on the Girl Geek Sydney slack channel about Github pages (hit me up if you’re a Sydney Girl Geek and you’d like to join). If, like me, you hadn’t heard of Github pages, Github allows you to attach a website to your github account, and gives you the url &lt;strong&gt;username.github.io&lt;/strong&gt;. All you have to do it make a new repository called username.github.io (replacing username with your actual github username) and you can publish content simply by placing files in this repository. Boom, you have a website.&lt;/p&gt;

&lt;p&gt;This seemed to be to be both a great idea to finally get good at  git, utilise that github account that had been sitting around empty for some time, and get myself a blog, all in one. And I’m pleased to say that since creating this blog in October I have now started utilising &lt;a href=&quot;https://github.com/hannahcancode&quot;&gt;my github account&lt;/a&gt; and pushing code that I’m working on to it.&lt;/p&gt;

&lt;p&gt;So that’s the website, but now for the blog bit. Github pages comes with &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt; ready installed. Jekyll is a static blogging framework built in Ruby. It uses markdown (&lt;a href=&quot;https://kramdown.gettalong.org/&quot;&gt;Kramdown&lt;/a&gt;) for posts and &lt;a href=&quot;http://shopify.github.io/liquid/&quot;&gt;Liquid&lt;/a&gt; for templating. All you have to do is install ruby and jekyll on your computer, and then you can write and view your blog locally. You make a new .markdown file for each blog post, save it in your _posts folder and Jekyll does the rest. Once you’re ready to show it off to the world you just git push the file to your github and voila! It’s there for public consumption, formatted nicely, filed away in a folder structure organised by date, and linked from your homepage (or wherever you tell Jekyll to base itself in the config file).&lt;/p&gt;

&lt;p&gt;You can tweak your css and templates to your liking. If you’re using the default template then you can easily add disqus comments by adding the following to your config (if you’re not using the default template then you will need to add some code to your templates or individual posts):&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;disqus:
	shortname: my_disqus_shortname
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Note: If you’ve installed Jekyll recently and noticed that when running locally, the Minima theme was creating its urls using the base hostname you’d specified in the config file, including for your css file, thus pulling your css from github instead of localhost - &lt;a href=&quot;https://help.github.com/articles/setting-up-your-github-pages-site-locally-with-jekyll/#keeping-your-site-up-to-date-with-the-github-pages-gem&quot;&gt;update jekyll and github pages&lt;/a&gt;! This has been fixed and you will no longer need the &lt;a href=&quot;https://talk.jekyllrb.com/t/current-jekyll-with-minima-does-not-render-css-on-localhost/2959&quot;&gt;workarounds&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For more information check out the &lt;a href=&quot;https://jekyllrb.com/docs/home/&quot;&gt;Jekyll documentation&lt;/a&gt; and the walkthroughs on &lt;a href=&quot;https://pages.github.com/&quot;&gt;Github Pages&lt;/a&gt; and &lt;a href=&quot;https://help.github.com/articles/setting-up-your-github-pages-site-locally-with-jekyll/&quot;&gt;installing Jekyll locally&lt;/a&gt;.&lt;/p&gt;

</description>
        <pubDate>Thu, 22 Dec 2016 04:42:00 +0000</pubDate>
        <link>https://hannahcancode.github.io/2016/12/22/jekyll-and-github.html</link>
        <guid isPermaLink="true">https://hannahcancode.github.io/2016/12/22/jekyll-and-github.html</guid>
        
        
      </item>
    
      <item>
        <title>Girl Geek Dinners: Power in Teams</title>
        <description>&lt;p&gt;On Tuesday night I went to the &lt;a href=&quot;https://www.eventbrite.com.au/e/girl-geek-sydney-meetup-at-dius-october-2016-registration-28745345101&quot;&gt;Girl Geek Sydney meetup&lt;/a&gt; at &lt;a href=&quot;http://www.dius.com.au/&quot;&gt;DiUS&lt;/a&gt;, with a presentation by Caoilte Dunne how individuals wield power in teams, and how to deal with this, particularly in meetings.&lt;/p&gt;

&lt;p&gt;As I currently manage a small team, the talk was really applicable to my work. Caoilte gave lots of tips, crowdsourced from female relatives and friends, on how to more involve “passive” team members, and minimise hijacking by “dominant” members.&lt;/p&gt;

&lt;p&gt;According to Caoilte, we all sit on a scale between passive and dominant. This is a fluid scale, so you may be more passive in some situations and more dominant in others. Generally, women tend to the more passive end of the scale and men to the more dominant end. Caoilte discussed how, as women, we’ve grown up in a “wicked environment” that has socialised us to be that way, and work in an environment where women are often still looked to for “admin” (notetaking) and “mum” (cleaning up after meetings) jobs.&lt;/p&gt;

&lt;p&gt;Caoilte listed some types of power that people may wield in meetings:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Hard power - I’m your boss/senior so you should do what I say&lt;/li&gt;
  &lt;li&gt;Informational power - I’ve read many books and I read this in a book so you should do what I say&lt;/li&gt;
  &lt;li&gt;Expert power - I’m very well qualified and have been here for a long time you should do what I say&lt;/li&gt;
  &lt;li&gt;Referent power - You like me you should do what I say.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some of Caoilte tips included:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;having an agenda and a set goal or outcome for meetings&lt;/li&gt;
  &lt;li&gt;having a facilitator for meetings to keep to the agenda and make sure the team reaches the decision they need to reach&lt;/li&gt;
  &lt;li&gt;having the facilitor or team leader ensure that everyone in the meeting has their say&lt;/li&gt;
  &lt;li&gt;decide prior to meetings how the team will make decisions (majority vote, leader decides etc.), write this down and display it where you meet&lt;/li&gt;
  &lt;li&gt;approach more passive/less confident team members prior to the meeting to make sure they know why they’re wanted there and that their contribution is valuable&lt;/li&gt;
  &lt;li&gt;approach more dominant team members prior to the meeting to let them “talk themselves out” so they’ll talk less in meetings&lt;/li&gt;
  &lt;li&gt;having rehearsed phrases in mind to say if you’re interupted or if someone steals your idea, rather than just getting frustrated (e.g. “excuse me, Gerald, I hadn’t finished what I was saying, can I please finish”)&lt;/li&gt;
  &lt;li&gt;women backing up other women (and men backing up women too, I’d hope!)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’d highly recommend either reading through Caoilte’s &lt;a href=&quot;http://www.slideshare.net/caoiltedunne/poweragilty-and-wicked-enviroments-67607828&quot;&gt;slides on Slideshare&lt;/a&gt;, or going to his presentation next time he makes it. While this one was definitely aimed at an audience of women in tech, I think men would have also got a lot out of it (even if it’s just to recognise where you sit on the dominant/passive scale and then be more aware of how you act in meetings and how you wield your power.&lt;/p&gt;

&lt;p&gt;I particularly liked that at the end of the meeting some of the women tried to help put the chairs back in the place (which is part of respecting the sponsor’s space which they’ve let us use, but could also be considered a “mum” job), and Caoilte wouldn’t let them!&lt;/p&gt;

</description>
        <pubDate>Fri, 28 Oct 2016 01:30:00 +0000</pubDate>
        <link>https://hannahcancode.github.io/2016/10/28/power-in-teams.html</link>
        <guid isPermaLink="true">https://hannahcancode.github.io/2016/10/28/power-in-teams.html</guid>
        
        
      </item>
    
  </channel>
</rss>
