Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
389698e
initial commit. GO LIVE
petertait Jun 9, 2015
d225fc9
add CNAME
petertait Jun 9, 2015
3561678
add findus, add find-us links
petertait Jun 9, 2015
e268b27
add old styles, logos for blog
petertait Jun 9, 2015
225a7bd
findus and find-us redirects to contact
petertait Jun 9, 2015
7f44835
rebuild findus index
petertait Jun 9, 2015
ae0f400
compressed sass
petertait Jun 9, 2015
26d7ec2
fix bg image sizes, remove touch/click targeting, update readme
petertait Jun 10, 2015
18706af
[fix] improve scrolling performance on services page. remove items fr…
Jun 10, 2015
ca512c1
Merge branch 'master' of https://github.com/pebblecode/pebblecode.git…
Jun 10, 2015
29fb1f5
[feature] #4 import tumblr posts
shapeshed Jun 11, 2015
07bee64
Merge branch 'master' into import-tumblr
shapeshed Jun 11, 2015
544886e
Merge branch 'master' into import-tumblr
shapeshed Jun 11, 2015
9b56696
Merge branch 'master' into import-tumblr
petertait Jun 15, 2015
60cabf4
added posts template
petertait Jun 15, 2015
e66979b
initial blog home + post template
petertait Jun 16, 2015
66991fe
add twitter info at bottom of post
petertait Jun 17, 2015
973174f
add related post style to post page
petertait Jun 17, 2015
79e8762
add author to every page!
petertait Jun 18, 2015
f5030fa
add in latest posts in md format
petertait Jun 18, 2015
82eff22
fix responsive styles for blog
petertait Jun 18, 2015
35caed9
fix up posts markup
petertait Jun 18, 2015
fbe2ca9
fix up lists
petertait Jun 18, 2015
37dad62
simplify the work page visually
petertait Jun 18, 2015
6cdc59c
Merge branch 'master' into import-tumblr
petertait Jun 18, 2015
038fba5
add redirects for recent posts, add cname
petertait Jun 18, 2015
ed53b5f
manually import latest tumblr posts
petertait Jun 18, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions 6-blog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
layout: blog
title: blog
permalink: /blog/
group: nav
---
6 changes: 6 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,15 @@ twitter: pebblecode
github: pebblecode
vimeo: pebblecode


# Build settings
markdown: kramdown
redirects: yes
sass:
style: :compressed
permalink: "/blog/:title"


# Pagination
paginate: 8
paginate_path: "/blog/:num"
2 changes: 1 addition & 1 deletion _includes/nav.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@
{% endfor %}
{% assign nav = nil %}
{% assign group = nil %}
<a href="http://blog.pebblecode.com" class="gbl-head-nav-item">Blog</a>
<!-- <a href="http://blog.pebblecode.com" class="gbl-head-nav-item">Blog</a> -->
90 changes: 90 additions & 0 deletions _layouts/blog.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
layout: blog
---
{% include head.html %}

<body class="{{ page.layout }}">

{% include header.html %}

<section class="hero-container hero-container-blog {{ page.colour }}">
<div class="hero-inner grid">
{% if paginator.next_page == 2 %}
{% for post in site.posts %}
{% if post.featured == true %}
{% capture count %}{{ count | plus: '1' }}{% endcapture %}
{% if count == '1' %}
<div class="meta-title-container col-1-1">
<span class="meta-title">Featured Post</span>
</div>
<a href="{{ post.url }}"><h1 class="hero-title col-1-1">{{ post.title }}</h1></a>
<span class="post-author col-1-1">{{ post.author }}</span>
<span class="post-date col-1-1">{{ post.date | date: '%B %d, %Y' }}</span>
{% endif %}
{% endif %}
{% endfor %}
{% for post in site.posts %}
{% if post.featured == true %}
{% capture counttwo %}{{ counttwo | plus: '1' }}{% endcapture %}
{% if counttwo == '2' or counttwo == '3'%}
<div class="meta-title-container">
<span class="meta-title">Featured Post</span>
</div>
<a href="{{ post.url }}"><h1 class="hero-title">{{ post.title }}</h1></a>
<span class="post-author">{{ post.author }}</span>
<span class="post-date">{{ post.date | date: '%B %d, %Y' }}</span>
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
</div>
</section>
<!-- /.hero-container -->

<section class="content-container grid">
<header class="tab-head-container col-1-1">
<nav class="blog-tab-head tab-head">
<button id="articles" data-tab-id="articles" class="tab-head-item active">{{ paginator.page }} of {{ paginator.total_pages }}</button>
</nav>
</header>
<!-- /.tab-head-container -->
<ul class="content col-1-1 post-list">
{% for post in paginator.posts %}
<li class="post-item">
<a href="{{ post.url }}"><h3 class="post-title">{{ post.title }}</h3></a>
<span class="post-author">{{ post.author }}</span>
<span class="post-date">{{ post.date | date: '%B %d, %Y' }}</span>
</li>
{% endfor %}
</ul>
</section>
<!-- /.content-container -->

{% if paginator.total_pages > 1 %}
<section class="blog-pagination">
<div class="grid">
<div class="pagination col-1-1">
{% if paginator.previous_page %}
<a class="btn btn-block btn-primary btn-new" rel="prev" href="{{ paginator.previous_page_path | replace: 'index.html', '/' | prepend: site.baseurl | replace: '//', '/' }}">&larr; Newer Posts</a>
{% else %}
<span class="btn btn-block btn-disabled btn-new">&larr; Newer Posts</span>
{% endif %}
{% if paginator.next_page %}
<a class="btn btn-block btn-secondary btn-old" rel="next" href="{{ paginator.next_page_path | prepend: site.baseurl | replace: '//', '/' }}">Older Posts &rarr;</a>
{% else %}
<span class="btn btn-block btn-disabled btn-old">Older Posts &rarr;</span>
{% endif %}
</div>
</div>
</section>
{% endif %}

{% include footer.html %}

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-2.1.1.min.js""><\/script>')</script>
<script type="text/javascript" src="{{ site.baseurl }}/js/main.js"></script>
<!-- /scripts-->

</body>
</html>
6 changes: 3 additions & 3 deletions _layouts/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ <h1 class="hero-title col-1-1">{{page.hero-title}}</h1>
<div class="feat-content grid">
<div class="feat-content-text col-1-2">
<div class="meta-title-container">
<span class="meta-title">Featured Case Study</span>
<span class="meta-subtitle">{{page.feat-client}}</span>
</div>
<span class="meta-title">Featured Case Study</span>
<span class="meta-subtitle">{{page.feat-client}}</span>
</div>
<h3>{{page.feat-title}}</h3>
<p>{{page.feat-excerpt}}</p>
<a href="{{ site.baseurl }}/work" class="btn btn-light btn-block">Read more</a>
Expand Down
2 changes: 1 addition & 1 deletion _layouts/page.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
layout: default
layout: blog
---
{% include head.html %}

Expand Down
56 changes: 46 additions & 10 deletions _layouts/post.html
Original file line number Diff line number Diff line change
@@ -1,15 +1,51 @@
---
layout: default
layout: post
---
<div class="post">
{% include head.html %}

<header class="post-header">
<h1 class="post-title">{{ page.title }}</h1>
<p class="post-meta">{{ page.date | date: "%b %-d, %Y" }}{% if page.author %} • {{ page.author }}{% endif %}{% if page.meta %} • {{ page.meta }}{% endif %}</p>
</header>
<body class="{{ page.layout }}">

<article class="post-content">
{{ content }}
</article>
{% include header.html %}

</div>
<section class="hero-container hero-container-blog {{ page.colour }}">
<div class="hero-inner grid"></div>
</section>
<!-- /.hero-container -->

<section class="content-container post-container grid">
<header class="post-header col-1-1">
<h1 class="post-title">{{ page.title }}</h1>
<span class="post-author">{{ page.author }}</span>
<span class="post-date">{{ page.date | date: "%B %-d, %Y" }}</span>
</header>
<article class="content post-content col-1-1">
{{content}}
</article>
<aside class="twitter-share col-1-1">
<span class="twitter-share-text">Share your thoughts on <a href="https://twitter.com/{{site.twitter}}" class="twitter" target="_blank">Twitter</a></span>
</aside>
</section>
<!-- /.post-container -->

<!-- <section class="hero-container hero-container-blog hero-container-related">
<div class="hero-inner grid">
<div class="meta-title-container col-1-1">
<span class="meta-title">Related Post</span>
</div>
<a href=""><h1 class="hero-title col-1-1">THE PRESENT AND THE FUTURE OF DATA VISUALISATION</h1></a>
<span class="post-author col-1-1">John Mildinhall</span>
<span class="post-date col-1-1">30 January 2015</span>
</div>
</section> -->
<!-- /.related-post-container -->

{% include footer.html %}

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-2.1.1.min.js""><\/script>')</script>
<script type="text/javascript" src="{{ site.baseurl }}/js/main.js"></script>
<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>
<!-- /scripts-->

</body>
</html>
3 changes: 0 additions & 3 deletions _layouts/work.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ <h2 class="project-title col-1-1">AstraZeneca</h2>
<div class="project-item grid">
<img src="{{ site.baseurl }}/img/projects/titanic.png" class="project-item-img-feat">
<h3 class="project-item-title">Harnessing Knowledge</h3>
<hr>
<p>AZ had over 200 million documents. Printed out on paper, that would weigh more than the Titanic.</p>
<p>They used over 100 different applications to search them all. That meant over 100 passwords, interfaces and systems to learn and no common way to collate results.</p>
<aside class="project-item-aside">
Expand Down Expand Up @@ -52,7 +51,6 @@ <h2 class="project-title col-1-1">Bede Gaming</h2>
<div class="project-item grid">
<img src="{{ site.baseurl }}/img/projects/slot.png" class="project-item-img-feat">
<h3 class="project-item-title">A LEADING SUPPLIER IN ONLINE GAMING TECHNOLOGY<br> A NEW BREED OF GAMING PLATFORM</h3>
<hr>
<p>Our client used to invent and market games for itself and its customers using industry standard gaming platforms.</p>
<p>Yet they were never satisfied with the quality of the service or the software they were buying in.</p>
<aside class="project-item-aside">
Expand Down Expand Up @@ -80,7 +78,6 @@ <h2 class="project-title col-1-1">AstraZeneca</h2>
<div class="project-item grid">
<img src="{{ site.baseurl }}/img/projects/brain.png" class="project-item-img-feat">
<h3 class="project-item-title">TURBO-CHARGING INNOVATION</h3>
<hr>
<p>AZ used to run innovation competitions for new ideas, but they suffered from a relatively low level of participation.</p>
<p>The ideas were always submitted as lengthy academic documents which limited the number of people capable of suggesting or appraising ideas.</p>
<p>So they missed out on the collective brainpower available.</p>
Expand Down
25 changes: 0 additions & 25 deletions _posts/2015-06-05-welcome-to-jekyll.markdown

This file was deleted.

20 changes: 20 additions & 0 deletions _posts/tumblr/2011-10-18-a-day-with-clojure.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
layout: post
title: A day with Clojure
date: '2011-10-18T10:23:55+01:00'
tags: []
tumblr_url: http://blog.pebblecode.com/post/11607765735/a-day-with-clojure
author: Tak Tran
---
<p><img align="left" src="http://media.tumblr.com/tumblr_lpaou2Qbwj1qdcl2v.gif" alt="Clojure" width="120" height="100"/>It started with trying to find something to do for 10% time - there were <a title="Sinatra" href="http://www.sinatrarb.com/">some</a> <a title="MacRuby" href="http://www.macruby.org/">technologies</a> I wanted to <a title="Processing js" href="http://processingjs.org/">play</a> with - but in a twist of fate <a href="http://blog.heroku.com/archives/2011/7/5/clojure_on_heroku/">Heroku announced it&rsquo;s support</a> of <a title="Clojure" href="http://clojure.org/">Clojure</a> on their cloud service. That really got my attention.</p>
<p>Clojure is a functional programming language, with Lisp like syntax, built on the Java JVM. I&rsquo;ve always wanted to get back into some form of functional programming, ever since experiencing the elegance of Haskell in 1st year uni. I&rsquo;ve also been hearing <a title="Stackoverflow podcast" href="http://blog.stackoverflow.com/category/podcasts/">advice</a> <a href="http://www.meetup.com/Soho-School-Nights/events/24486531/">here</a> and <a title="Ruby Rogues" href="http://rubyrogues.com/">there</a> to learn different paradigms of programming, as a way of improving your programming ability - which I really agree with. I was already learning ruby and objective c, so I had dynamically typed and statically typed languages covered. Functional was the main other paradigm I was missing.</p>
<p>The problem I find with functional languages like Haskell though, is that they seem to be stuck within the domain of academia, or very obscure problem domains. I prefer pragmatic languages that have more usage in industry. Heroku&rsquo;s support was a great plus on that side of things.</p>
<p>My day with Clojure mainly revolved around getting started with Clojure, getting it deployed, checking out the community of Clojure, and seeing what it can be used for.</p>
<p>In terms of getting started and deployed, Heroku made it very easy with their <a href="http://devcenter.heroku.com/articles/clojure">Getting started guide</a>. I think I was all done within 20mins. The dependency framework, <a href="https://github.com/technomancy/leiningen">leiningen</a>, much like bundler for ruby, saved me a lot of time in setting up the environment.</p>
<p>I was quite surprised by the number of <a href="http://stackoverflow.com/questions/3325033/comparison-of-clojure-web-frameworks">web frameworks</a> already available and ready to be used. However, after some cursory coding, it did feel a little clunky to work in a functional paradigm for the web. Ruby seems like a more agile and intuitive fit, although this may be my familiarity bias. </p>
<p>Apart from the web side of things, I also encountered <a href="https://github.com/functional-koans/clojure-koans">clojure koans</a> which were inspired by <a href="http://rubykoans.com/">ruby koans</a> (also great if you don&rsquo;t already know of them), that really helped to get a grasp of the concepts of clojure. The <a href="http://itunes.apple.com/us/podcast/clojure/id275488598">screencasts by Rich Hickey (the creator of clojure) on itunes</a> are also apparently pretty good at teaching the concepts (although, I haven&rsquo;t had time to go through many of them). <a href="http://vimeo.com/channels/fulldisclojure">Full disclojure</a> is also another screencast resource I kept hearing about.</p>
<p>Some other tidbits I found along the way were a <a href="http://cemerick.com/2010/06/07/results-from-the-state-of-clojure-summer-2010-survey/">survey on industry usage</a>, <a href="http://try-clojure.org/">an in-browser tool to try out clojure</a>, and <a href="http://planet.clojure.in/">a news site on the latest in clojure</a>.</p>
<p>Although, I didn&rsquo;t end up doing much juicy development in clojure by the end of the day, I did get a good taste of what clojure was about. The community seemed quite friendly, and there&rsquo;s an exciting vibe coming from them. I&rsquo;m keen to look into it further - maybe not necessarily for web development, but I&rsquo;m sure there are some other good use cases around. I definitely agree with heroku&rsquo;s approach of <a href="http://blog.heroku.com/archives/2011/8/3/polyglot_platform/">supporting the right tool for the job</a>, and Clojure seems like a great tool to add in my developer toolbox.</p>


<p>Update: I went to the <a href="http://skillsmatter.com/podcast/home/iincanter-clojure/js-1980">LCUG incanter event</a>, and was very humbled by the very smart and interesting people there - I&rsquo;ll definitely try and attend more of these. There are frequent <a href="http://www.meetup.com/Londonjavacommunity/events/14594954/">clojure dojos happening in london</a>, for those interested too.</p>
36 changes: 36 additions & 0 deletions _posts/tumblr/2011-10-18-a-problem-called-recruitment.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
layout: post
title: A Problem Called Recruitment
date: '2011-10-18T10:27:37+01:00'
tags: []
tumblr_url: http://blog.pebblecode.com/post/11607810793/a-problem-called-recruitment
author: Toby Hunt
---
<p>How do small businesses recruit top people? My first answer would be: &ldquo;with difficulty!&rdquo; </p>

<p>The route that springs to mind is to use a recruitment agency, but they can charge anywhere from 15-25% of starting salary for the pleasure. That is just too much for most small businesses. </p>

<p>What other avenues are open to you? </p>

<p><a href="http://www.gumtree.com">Gumtree</a> - okay, you find the odd gem but you are also bombarded by crap. Cost: cheap, £25. Work: a lot.</p>

<p><a href="http://www.monster.co.uk">Monster</a> - this is great, if you have the hours necessary to sift through millions of CVs. Apparently, this is what the recruitment agencies sift through in order to send you CVs. Cost: reasonable, £400 (for a month of CV reading). Work: still a lot.</p>

<p><a href="http://www.webrecruit.co.uk/">Webrecruit</a> - this is the service that we have been using recently and it has yielded great results. They run a recruitment service for you and send you relevant CVs online - meaning that you do not have to waste you time with CVs that obviously do not cut the mustard. Cost: a little more, but not agency, £750 (approx). Work: less.</p>

<p>What about the actual interview process?</p>

<p>Interviewing is something that gets easier the more you do it. At first, you are desperate for everyone that comes though the door to be right. As a small business, you probably waited until you were creaking in order to justify the hire in the first place - now you have to take time out to interview etc. You really want the person coming through the door to be right. </p>

<p>But once you have done a bit of hiring, you realise the importance of waiting to find someone that is perfect. Someone that fits in on a personal level, technical level, client-facing level, etc. You realise that a mistake costs more. </p>

<p>We have started testing candidates much more rigorously - if they can&rsquo;t complete a simple coding task, then they do not get to the next stage. Each stage gets increasingly more difficult without taking up too much time. This means that you only end up interviewing people that already meet the technical and motivational standards that you require. </p>

<p>So, what is the bottom line?</p>

<p>* Recruitment is hard.<br/>
* It takes longer than you think, so start early.<br/>
* Guilty until proven innocent - controversial, but it means you ask the right questions.<br/>
* Do not settle for okay - your business is too important. </p>

<p>Recruitment agencies, please do not get in touch!</p>
16 changes: 16 additions & 0 deletions _posts/tumblr/2011-10-18-battleships.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
layout: post
title: Battleships
date: '2011-10-18T10:26:55+01:00'
tags:
- .net
- fSharp
- games
tumblr_url: http://blog.pebblecode.com/post/11607802493/battleships
author: Alex Butcher
---
<p>I recently blogged about our recruitment process for new developers - we ask prospective candidates to write some code for us before we&rsquo;ve met them, this code then forms the basis of a face to face interview. One of the problems we&rsquo;ve asked candidates to solve in the past is the game of battleships.  I recently got into a discussion with a candidate about their particular implementation and noted that there was probably a good opportunity to simplify the code with functional programming, and I said I&rsquo;d follow it up after the interview&hellip; Turns out the best way to answer that question is to write Battleships in F# :)  The full code is on Github, and comes in at 133 LOC, which includes plenty of comments.  I thought I might share some of my observations about how the F# code is quite nice and simple:</p>

<p>Randomising start positions</p>

<p>To make sure that we try to place each ship on a random square of the board, I decided to build a sequence containing every possible start position, and randomise the sequence.  </p>
Loading