forked from wezm/wezm.net
Compare commits
200 commits
cumquat-in
...
master
Author | SHA1 | Date | |
---|---|---|---|
3d8ae03a2a | |||
ee4b17e1ca | |||
ed2d4bd2b3 | |||
d4ed662cdf | |||
8c16278ffc | |||
3b2c0dd92d | |||
25b701e10a | |||
1fe0245e1f | |||
3395f3edac | |||
8b7103180c | |||
4e2eeb415f | |||
b16ca174ca | |||
4451d995d4 | |||
531f2fec35 | |||
4b12ad7fef | |||
ab0d9faafe | |||
fe65d4982d | |||
35ad9543a9 | |||
0e5ed74517 | |||
e0209f1456 | |||
0a4f1d2a45 | |||
e00bb7868c | |||
7f389d2055 | |||
0504ad56a3 | |||
ae8277de63 | |||
13a14637e3 | |||
8724d5daa5 | |||
e0bedd3568 | |||
34559284b1 | |||
03cacc6120 | |||
cb659b6780 | |||
229168516a | |||
760f4b20f7 | |||
7a607242dd | |||
19c3abc488 | |||
902b75077e | |||
f0eed29ba7 | |||
8fefeafc48 | |||
1d7d18c0ac | |||
3bcc719e6a | |||
e2d787166e | |||
666a9e1ace | |||
fc0a8acbbd | |||
71f4cfad2e | |||
3474c63eec | |||
ae11983d44 | |||
8bd50ce5af | |||
0d3db0c69d | |||
b86b79c000 | |||
0f85f2165f | |||
dbcea56dd4 | |||
c0f032325c | |||
8a129c1b36 | |||
9a365c6716 | |||
972ea340fc | |||
27f58173d2 | |||
94171be290 | |||
4f04936330 | |||
8acfbbcba6 | |||
59c8c21b14 | |||
4eefa4ff7d | |||
d1c8f9e9a4 | |||
f0e3db2e68 | |||
746c6f2c63 | |||
d5c8f664b9 | |||
7890c07140 | |||
6d9173ab07 | |||
2e45666552 | |||
aff5c4c939 | |||
d3e6114ed1 | |||
a17d8bc9fa | |||
a05086f29e | |||
1c4a9bfd70 | |||
e0cfe47ed4 | |||
9ec0d2e00b | |||
35f7d3568f | |||
b7208e08d1 | |||
739c7cb2ba | |||
09138c0889 | |||
10e0390a94 | |||
cfdd67ec5b | |||
55f4a110a8 | |||
91370548ef | |||
06d887c085 | |||
5c45bdd5f8 | |||
4a69b79d60 | |||
8115919aa9 | |||
20e7c4e666 | |||
3b6941f5e9 | |||
ea2015c1f1 | |||
0abf63917b | |||
865604126e | |||
df8557ddf6 | |||
e2763c3caf | |||
b6e7772471 | |||
472fef1823 | |||
9ab8e66a0e | |||
145777deae | |||
ef29b23609 | |||
8c9b242562 | |||
909bfb61ba | |||
0e50bc2618 | |||
3d51494c68 | |||
368f893fe2 | |||
b67809803b | |||
3902ccc818 | |||
4ba1b2a048 | |||
82cec59118 | |||
1bbbf68e0f | |||
c0e0615336 | |||
8a97b2fba4 | |||
7cde30eaa0 | |||
be26a34d0a | |||
6b607899f0 | |||
389b2b072b | |||
68cad8ab17 | |||
a845f22988 | |||
c1086c5020 | |||
c74b1c585e | |||
e51951d1dc | |||
832fb6f0da | |||
3dfe710afa | |||
46b38d2e57 | |||
eea6de609b | |||
e60a74e2a7 | |||
69a72367b8 | |||
71cd12f6a8 | |||
154e83459d | |||
cea5c57ef0 | |||
115709f379 | |||
97df303218 | |||
04ba9f0c79 | |||
2b672eece1 | |||
ac9650d7cc | |||
7cc2622fbe | |||
46798fbf65 | |||
8df754b720 | |||
15b1bc8c93 | |||
c39af6ccc0 | |||
125ba9f211 | |||
73ff610c09 | |||
a27850e32d | |||
cd37a544b8 | |||
5d02e6572d | |||
c48d6b6076 | |||
f0dfb1c0c4 | |||
d82a2da7ac | |||
0ef5f3d8b5 | |||
a12f0395d0 | |||
20c7413375 | |||
acb04ed675 | |||
d3c8391693 | |||
200f4df7be | |||
080f48e2ae | |||
2764237730 | |||
8c2f3e9487 | |||
0dcb34a4d6 | |||
7659eeb4f1 | |||
cac44fba1e | |||
758e97d840 | |||
e0f7c208ef | |||
6fd31a3bb7 | |||
46ba84263c | |||
af8d150b5c | |||
352fe5d076 | |||
be8015326f | |||
512e9ae4ed | |||
5dc43f88aa | |||
252319a97e | |||
7e70c7b8a1 | |||
da4b3b431c | |||
c85241c47c | |||
cad9386f74 | |||
bb58a4b86a | |||
6ea03e1407 | |||
7cade80559 | |||
eb1b17e1b2 | |||
4a3918e069 | |||
e60be4baa3 | |||
95a48d6806 | |||
eb63287b40 | |||
11caab555c | |||
940563e3ed | |||
ab2b26cd7f | |||
2030df31ae | |||
4df88fc72b | |||
593c22f0a1 | |||
11531c7df4 | |||
d46e5cdefa | |||
86f10ab239 | |||
611486fd9b | |||
59115e1367 | |||
57beb1f6a3 | |||
6662c86049 | |||
2bd550ba5d | |||
fd5b0f2c3a | |||
9a809df60c | |||
2fbfc57311 | |||
2f8c1b81d4 | |||
ba7132fae8 |
1034 changed files with 12824 additions and 627 deletions
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -1,6 +0,0 @@
|
||||||
output/*/*/*/*/*.html
|
|
||||||
output/fonts/*
|
|
||||||
tmp/*
|
|
||||||
.*.swp
|
|
||||||
output/weather.json
|
|
||||||
.sass-cache
|
|
|
@ -1 +0,0 @@
|
||||||
2.4.1
|
|
16
Gemfile
16
Gemfile
|
@ -1,16 +0,0 @@
|
||||||
source 'https://rubygems.org'
|
|
||||||
|
|
||||||
gem 'rake'
|
|
||||||
gem 'mime-types'
|
|
||||||
gem 'nanoc', '~> 3.0'
|
|
||||||
gem 'bitly'
|
|
||||||
gem 'haml'
|
|
||||||
gem 'sass'
|
|
||||||
gem 'rdiscount'
|
|
||||||
gem 'rubypants'
|
|
||||||
gem 'nokogiri'
|
|
||||||
gem 'builder'
|
|
||||||
gem 'fssm'
|
|
||||||
gem 'systemu'
|
|
||||||
gem 'listen'
|
|
||||||
gem 'guard-nanoc'
|
|
105
Gemfile.lock
105
Gemfile.lock
|
@ -1,105 +0,0 @@
|
||||||
GEM
|
|
||||||
remote: https://rubygems.org/
|
|
||||||
specs:
|
|
||||||
bitly (1.1.0)
|
|
||||||
httparty (>= 0.7.6)
|
|
||||||
multi_json (~> 1.3)
|
|
||||||
oauth2 (>= 0.5.0, < 2.0)
|
|
||||||
builder (3.2.3)
|
|
||||||
coderay (1.1.2)
|
|
||||||
colored (1.2)
|
|
||||||
cri (2.9.1)
|
|
||||||
colored (~> 1.2)
|
|
||||||
faraday (0.12.2)
|
|
||||||
multipart-post (>= 1.2, < 3)
|
|
||||||
ffi (1.9.18)
|
|
||||||
formatador (0.2.5)
|
|
||||||
fssm (0.2.10)
|
|
||||||
guard (2.14.1)
|
|
||||||
formatador (>= 0.2.4)
|
|
||||||
listen (>= 2.7, < 4.0)
|
|
||||||
lumberjack (~> 1.0)
|
|
||||||
nenv (~> 0.1)
|
|
||||||
notiffany (~> 0.0)
|
|
||||||
pry (>= 0.9.12)
|
|
||||||
shellany (~> 0.0)
|
|
||||||
thor (>= 0.18.1)
|
|
||||||
guard-nanoc (1.0.3)
|
|
||||||
guard (~> 2.8)
|
|
||||||
nanoc (~> 3.6)
|
|
||||||
haml (5.0.3)
|
|
||||||
temple (>= 0.8.0)
|
|
||||||
tilt
|
|
||||||
httparty (0.15.6)
|
|
||||||
multi_xml (>= 0.5.2)
|
|
||||||
jwt (1.5.6)
|
|
||||||
listen (3.1.5)
|
|
||||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
|
||||||
rb-inotify (~> 0.9, >= 0.9.7)
|
|
||||||
ruby_dep (~> 1.2)
|
|
||||||
lumberjack (1.0.12)
|
|
||||||
method_source (0.9.0)
|
|
||||||
mime-types (3.1)
|
|
||||||
mime-types-data (~> 3.2015)
|
|
||||||
mime-types-data (3.2016.0521)
|
|
||||||
mini_portile2 (2.3.0)
|
|
||||||
multi_json (1.12.2)
|
|
||||||
multi_xml (0.6.0)
|
|
||||||
multipart-post (2.0.0)
|
|
||||||
nanoc (3.8.0)
|
|
||||||
cri (~> 2.3)
|
|
||||||
nenv (0.3.0)
|
|
||||||
nokogiri (1.8.1)
|
|
||||||
mini_portile2 (~> 2.3.0)
|
|
||||||
notiffany (0.1.1)
|
|
||||||
nenv (~> 0.1)
|
|
||||||
shellany (~> 0.0)
|
|
||||||
oauth2 (1.4.0)
|
|
||||||
faraday (>= 0.8, < 0.13)
|
|
||||||
jwt (~> 1.0)
|
|
||||||
multi_json (~> 1.3)
|
|
||||||
multi_xml (~> 0.5)
|
|
||||||
rack (>= 1.2, < 3)
|
|
||||||
pry (0.11.1)
|
|
||||||
coderay (~> 1.1.0)
|
|
||||||
method_source (~> 0.9.0)
|
|
||||||
rack (2.0.3)
|
|
||||||
rake (12.1.0)
|
|
||||||
rb-fsevent (0.10.2)
|
|
||||||
rb-inotify (0.9.10)
|
|
||||||
ffi (>= 0.5.0, < 2)
|
|
||||||
rdiscount (2.2.0.1)
|
|
||||||
ruby_dep (1.5.0)
|
|
||||||
rubypants (0.6.0)
|
|
||||||
sass (3.5.1)
|
|
||||||
sass-listen (~> 4.0.0)
|
|
||||||
sass-listen (4.0.0)
|
|
||||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
|
||||||
rb-inotify (~> 0.9, >= 0.9.7)
|
|
||||||
shellany (0.0.1)
|
|
||||||
systemu (2.6.5)
|
|
||||||
temple (0.8.0)
|
|
||||||
thor (0.20.0)
|
|
||||||
tilt (2.0.8)
|
|
||||||
|
|
||||||
PLATFORMS
|
|
||||||
ruby
|
|
||||||
|
|
||||||
DEPENDENCIES
|
|
||||||
bitly
|
|
||||||
builder
|
|
||||||
fssm
|
|
||||||
guard-nanoc
|
|
||||||
haml
|
|
||||||
listen
|
|
||||||
mime-types
|
|
||||||
nanoc (~> 3.0)
|
|
||||||
nokogiri
|
|
||||||
rake
|
|
||||||
rdiscount
|
|
||||||
rubypants
|
|
||||||
sass
|
|
||||||
systemu
|
|
||||||
|
|
||||||
BUNDLED WITH
|
|
||||||
1.15.4
|
|
23
README.md
Normal file
23
README.md
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
wezm.net
|
||||||
|
========
|
||||||
|
|
||||||
|
My website. Corrections for typos and other minor errors welcome via issue or
|
||||||
|
pull request.
|
||||||
|
|
||||||
|
v2
|
||||||
|
--
|
||||||
|
|
||||||
|
This is the current version of the website, built with [Zola].
|
||||||
|
|
||||||
|
v1
|
||||||
|
--
|
||||||
|
|
||||||
|
This is the original version of the website containing posts from 2008–2019. It
|
||||||
|
is built with [Nanoc].
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Copyright © 2003 – 2022 Wesley Moore. All rights reserved
|
||||||
|
|
||||||
|
[Nanoc]: https://nanoc.ws/
|
||||||
|
[Zola]: https://www.getzola.org/
|
12
README.mkdn
12
README.mkdn
|
@ -1,12 +0,0 @@
|
||||||
WezM.net
|
|
||||||
========
|
|
||||||
|
|
||||||
Site Structure
|
|
||||||
--------------
|
|
||||||
|
|
||||||
/articles
|
|
||||||
/technical
|
|
||||||
/category
|
|
||||||
/personal
|
|
||||||
/category
|
|
||||||
/about
|
|
1
Rakefile
1
Rakefile
|
@ -1 +0,0 @@
|
||||||
require 'nanoc3/tasks'
|
|
27
TODO
27
TODO
|
@ -1,27 +0,0 @@
|
||||||
Now
|
|
||||||
---
|
|
||||||
|
|
||||||
* Setup monothumb on server
|
|
||||||
* Exclude photo and photos.xml from deploy:rsync
|
|
||||||
|
|
||||||
Deployment
|
|
||||||
----------
|
|
||||||
|
|
||||||
* Move Wordpress to old. and add robots.txt
|
|
||||||
|
|
||||||
Later
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Add monothumb to GitHub
|
|
||||||
* Revise About page content
|
|
||||||
* Get proper lens specs for About page
|
|
||||||
* Fully convert to HTML5
|
|
||||||
* Microdata on About/Contact pages
|
|
||||||
* Add favicon
|
|
||||||
* Add weights to sitemap
|
|
||||||
|
|
||||||
Future
|
|
||||||
------
|
|
||||||
|
|
||||||
* Make it possible to purchase the HTML
|
|
||||||
* Make a Wordpress theme out of the site
|
|
|
@ -1,83 +0,0 @@
|
||||||
<div class="vcard">
|
|
||||||
<p>WezM.net is <span class="fn">Wesley Moore</span>’s personal home page. I
|
|
||||||
live in <span class="adr"><span class="locality">Melbourne</span> <span
|
|
||||||
class="country-name">Australia</span></span> and work as a <span
|
|
||||||
class="title">software developer</span>. Here you will find posts about <a
|
|
||||||
href="/projects/">projects</a> I'm working on, useful tips I've
|
|
||||||
discovered as well as other events from my life.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
The content is split into two sections: [Technical](/technical/articles/) and
|
|
||||||
[Personal](/personal/articles/). There is a [combined feed](/feed/) containing
|
|
||||||
all posts as well as separate ones for [technical](/technical/feed/) and
|
|
||||||
[personal](/personal/feed/) posts.
|
|
||||||
|
|
||||||
### Contact
|
|
||||||
|
|
||||||
Find me on the Internet in one of these places:
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>Email –
|
|
||||||
<script type="text/javascript">
|
|
||||||
//<![CDATA[
|
|
||||||
|
|
||||||
function hiveware_enkoder(){var i,j,x,y,x=
|
|
||||||
"x=\"783d2238383538353535393537353838363538353735383837353935243f7a5c223d78" +
|
|
||||||
"3534353a35343534353538353538357a3f245e393a35663434353835363538383836353835" +
|
|
||||||
"363534383735393539353935343538353b353935363538353735323538353a353935343538" +
|
|
||||||
"35373538353835353836353738353534353435363538383835353833353935393538353735" +
|
|
||||||
"3935353536353235393533353435383537353935363537383535343534353538333538353b" +
|
|
||||||
"35383835353935383836353438373538383935383537353938333538383635343837353838" +
|
|
||||||
"37353735393539353835373539353535363532353935393538353735393833353635353835" +
|
|
||||||
"353438383538353335353837353435343534353b3535383435353564383838683934343a38" +
|
|
||||||
"3b356635323564383b35653937353835373539353b3964393b346435663937386738323535" +
|
|
||||||
"383434343564393b3566343934393934343a383a346738653837386738393936383a356438" +
|
|
||||||
"3b3464356635343435383339323837343a3439343734393464393a34673935393738343935" +
|
|
||||||
"39363b245e3d7b3f29293d6871742a6b3f323d6b3e7a306e677069766a373935387a307577" +
|
|
||||||
"647576742a6b2e342b2b3d217b3b34653534343b343b3564396639683d29293f7b3d243d6b" +
|
|
||||||
"2d3f342b7d7b2d3f77706775656372672a2927292d3f6c2a7471687d2b32363f2d6b3d6a76" +
|
|
||||||
"6970676e307a3e6b3d323f6b2a74713d6b3f406c2f2f3d2b32362d6b2e6a766970676e307a" +
|
|
||||||
"2a706b6f306a76634f753d783b27273d793b5c223d7b21213d2b6c2a764374636a65307a3f" +
|
|
||||||
"2d7b7d2b693b6874676e656c2e783c693b303d6928726f663b2978286570616373656e3233" +
|
|
||||||
"3c6a2866693b322d296928744165646f43726168632e783d6a7b292b2b6a2865646f437261" +
|
|
||||||
"68436d6f72662e676e697274533d2b793b34393d2b6a29797d29223b793d27273b666f7228" +
|
|
||||||
"693d303b693c782e6c656e6774683b692b3d3331297b666f72286a3d4d6174682e6d696e28" +
|
|
||||||
"782e6c656e6774682c692b3331293b2d2d6a3e3d693b297b792b3d782e636861724174286a" +
|
|
||||||
"293b7d7d793b\";y='';for(i=0;i<x.length;i+=2){y+=unescape('%'+x.substr(i,2)" +
|
|
||||||
");}y";
|
|
||||||
while(x=eval(x));}hiveware_enkoder();
|
|
||||||
|
|
||||||
//]]>
|
|
||||||
</script>
|
|
||||||
</li>
|
|
||||||
<li><a href="https://binarytrance.com/">Binary Trance Software</a> – My app development company
|
|
||||||
<li><a href="http://bitcannon.net/">Bit Cannon</a> – My other blog
|
|
||||||
<li><a href="http://www.flickr.com/photos/wezm/">Flickr</a></li>
|
|
||||||
<li><a href="https://github.com/wezm">GitHub</a></li>
|
|
||||||
<li><a href="https://mastodon.social/@wezm">Mastodon</a></li>
|
|
||||||
<li><a href="http://stackoverflow.com/users/38820/wes">Stack Overflow</a></li>
|
|
||||||
<li><a href="https://twitter.com/wezm">Twitter</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
Credits
|
|
||||||
-------
|
|
||||||
|
|
||||||
This site makes use of the following resources made available freely by their
|
|
||||||
authors:
|
|
||||||
|
|
||||||
* [Reset CSS][cssreset] by Eric Meyer
|
|
||||||
* [Mono icons][monoicons] by tutorial9
|
|
||||||
* [Feed icon][feedicon] by FeedIcons.com and the Mozilla Foundation
|
|
||||||
|
|
||||||
[nanoc]: http://nanoc.stoneship.org/
|
|
||||||
[markdown]: http://daringfireball.net/projects/markdown/
|
|
||||||
[nginx]: http://nginx.org/
|
|
||||||
[twitter]: http://twitter.com/wezm
|
|
||||||
[mastodon]: https://mastodon.social/@wezm
|
|
||||||
[flickr]: http://www.flickr.com/photos/wezm/
|
|
||||||
[debian]: http://www.debian.org/
|
|
||||||
[jquery]: http://jquery.com/
|
|
||||||
[sass]: http://sass-lang.com/
|
|
||||||
[cssreset]: http://meyerweb.com/eric/tools/css/reset/
|
|
||||||
[monoicons]: http://www.tutorial9.net/resources/108-mono-icons-huge-set-of-minimal-icons/
|
|
||||||
[feedicon]: http://feedicons.com/
|
|
|
@ -1,3 +0,0 @@
|
||||||
User-Agent: *
|
|
||||||
Disallow:
|
|
||||||
Sitemap: <%= @site.config[:base_url] %>/sitemap.xml
|
|
|
@ -1,3 +0,0 @@
|
||||||
<footer>
|
|
||||||
<span class="copyright">Copyright © 2004 – <%= Date.today.year %> Wesley Moore</span>
|
|
||||||
</footer>
|
|
|
@ -1,68 +0,0 @@
|
||||||
<% post_date = WezM::Helpers.parse_post_date(@item) %>
|
|
||||||
<% short = @item[:short_url] %>
|
|
||||||
<div class="published">
|
|
||||||
Published on
|
|
||||||
<abbr class="calender date" title="<%= post_date.iso8601 %>">
|
|
||||||
<span class="weekday"><%= post_date.strftime('%a') %></span>,
|
|
||||||
<span class="day"><%= post_date.day %></span>
|
|
||||||
<span class="month"><%= post_date.strftime('%B') %></span>
|
|
||||||
<span class="year"><%= post_date.year %></span>
|
|
||||||
</abbr>
|
|
||||||
</div>
|
|
||||||
<%= yield %>
|
|
||||||
<div id="respond">
|
|
||||||
<h2>
|
|
||||||
<span class="align-top">
|
|
||||||
<img src="/images/comment.svg" width="32" height="32" alt="Comment icon" class="comment" />
|
|
||||||
Something to Add?
|
|
||||||
</span>
|
|
||||||
</h2>
|
|
||||||
<p>Contact me by email, Twitter, or <a href="https://mastodon.social/@wezm">Mastodon</a>
|
|
||||||
if you have a comment, correction or just want to get in touch.</p>
|
|
||||||
<ul class="inline">
|
|
||||||
<li>
|
|
||||||
<script type="text/javascript">
|
|
||||||
//<![CDATA[
|
|
||||||
|
|
||||||
function hiveware_enkoder(){var i,j,x,y,x=
|
|
||||||
"x=\"783d22363838353b353835333538353735393535353835363838353735383538383835" +
|
|
||||||
"3635363537383535343538353434653766353a393235343466353a39243f7a5c223d783835" +
|
|
||||||
"36353535343835353b3539353b353835343534353435343537383935393539353738353533" +
|
|
||||||
"3538353838343536353935373834353538353535383835373538353835343566353b383a34" +
|
|
||||||
"343939353a353835323568383838643539343435333538353538393466353b396435353534" +
|
|
||||||
"3534353a353434653734383535323534353735353838353b35663564343b38643538353335" +
|
|
||||||
"383536383a3836393938673838353435343535383738653867343a39373536383535383565" +
|
|
||||||
"353b386435323538353735383539353935323539343a343738323936353535393537353338" +
|
|
||||||
"3538353937383835393539353338673837396635643435353838383536353b3964393b3434" +
|
|
||||||
"3539353b3434353538373536353b34343565343b3839353735383537383a34343936393539" +
|
|
||||||
"3835373834353638343837393539673438353338393537353a396434393437343539343837" +
|
|
||||||
"39353967343a3966353a3964353b343b3432353a3436393336343933383a38353867343a39" +
|
|
||||||
"3a34653833383839373866356338643534343b3966396435663564343b3864353a38363939" +
|
|
||||||
"3867383738653867343a3965353b386435323566353b383a34343968383838643539343934" +
|
|
||||||
"66353b3964353b3433353a343439363967343a3965353b386435363566353b383a34343968" +
|
|
||||||
"383838663964353b34363565343b383a3434393639353934383739353967343a3966356434" +
|
|
||||||
"3b3964393b343a3566353b39663964353b34363565343b383a343439363935393438373935" +
|
|
||||||
"3967343a39663564343b3964393b343a35663564343b3864353a3836393938673837386538" +
|
|
||||||
"726365756770773f2d7b7d2b343f2d6b3d6a766970676e307a3e6b3d323f6b2a7471683d29" +
|
|
||||||
"293f7b3d2464353b3463383a3434393639353934383739353967343b392b2b693b6874676e" +
|
|
||||||
"656c2e783c693b303d6928726f663b2978286570616373656e753d783b27273d793b5c227b" +
|
|
||||||
"213d2b2b342e6b2a747675647775307a2d2927292a67797d296a2865646f43726168436d6f" +
|
|
||||||
"72662e676e697274533d2b793b34393d2b6a2932333c6a2866693b322d296928744165646f" +
|
|
||||||
"43726168632e783d6a7b29223b793d27273b666f7228693d303b693c782e6c656e6774683b" +
|
|
||||||
"692b3d3636297b666f72286a3d4d6174682e6d696e28782e6c656e6774682c692b3636293b" +
|
|
||||||
"2d2d6a3e3d693b297b792b3d782e636861724174286a293b7d7d793b\";y='';for(i=0;i<" +
|
|
||||||
"x.length;i+=2){y+=unescape('%'+x.substr(i,2));}y";
|
|
||||||
while(x=eval(x));}hiveware_enkoder();
|
|
||||||
|
|
||||||
//]]>
|
|
||||||
</script>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://twitter.com/home?status=<%= URI.encode("#{@item[:title]} - #{short} @wezm") %>" target="_blank">Tweet</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://mastodon.social/share?text=<%= URI.encode("#{@item[:title]} - #{short} @wezm") %>" target="_blank">Toot</a>
|
|
||||||
</li>
|
|
||||||
<li class="short">Short URL: <a href="<%= short %>"><%= short %></a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
|
@ -1,55 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<%= render '_head' %>
|
|
||||||
<script src="/js/handlebars.js" type="text/javascript" charset="utf-8"></script>
|
|
||||||
<script src="/js/home.js" type="text/javascript" charset="utf-8"></script>
|
|
||||||
</head>
|
|
||||||
<body class="home">
|
|
||||||
<%= render '_header' %>
|
|
||||||
<section id="technical" class="column">
|
|
||||||
<div>
|
|
||||||
<h1><a href="/technical/articles/">Technical</a>
|
|
||||||
<sup><a href="/technical/feed/"><img src="/images/feed-icon.svg" class="feed-icon" width="12" height="12" alt="Feed Icon" /></a></sup>
|
|
||||||
</h1>
|
|
||||||
<ul class="articles">
|
|
||||||
<% technical_articles[0..4].each do |article| %>
|
|
||||||
<%= render '_article', :article => article %>
|
|
||||||
<% end %>
|
|
||||||
</ul>
|
|
||||||
<a href="/technical/articles/" class="more">More »</a>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id="personal" class="column">
|
|
||||||
<div>
|
|
||||||
<h1><a href="/personal/articles/">Personal</a>
|
|
||||||
<sup><a href="/personal/feed/"><img src="/images/feed-icon.svg" class="feed-icon" width="12" height="12" alt="Feed Icon" /></a></sup>
|
|
||||||
</h1>
|
|
||||||
<ul class="articles">
|
|
||||||
<% personal_articles[0..4].each do |article| %>
|
|
||||||
<%= render '_article', :article => article %>
|
|
||||||
<% end %>
|
|
||||||
</ul>
|
|
||||||
<a href="/personal/articles/" class="more">More »</a>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id="flickr">
|
|
||||||
<header>
|
|
||||||
<h1><a href="http://www.flickr.com/photos/wezm/">Recent Photos</a>
|
|
||||||
<sup><a href="http://api.flickr.com/services/feeds/photos_public.gne?id=40215689@N00&lang=en-us&format=atom"><img src="/images/feed-icon.svg" class="feed-icon" width="12" height="12" alt="Feed Icon" /></a></sup>
|
|
||||||
</h1>
|
|
||||||
</header>
|
|
||||||
<ul class="inline"></ul>
|
|
||||||
<a href="http://www.flickr.com/photos/wezm/" class="more">More »</a>
|
|
||||||
</section>
|
|
||||||
<%= render '_footer' %>
|
|
||||||
<script id="image-template" type="text/x-handlebars-template">
|
|
||||||
<li>
|
|
||||||
<a href="{{href}}" rel="prettyPhoto[flickr]"><img src="{{src}}" alt="{{alt}}" /></a>
|
|
||||||
</li>
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,10 +0,0 @@
|
||||||
# All files in the 'lib' directory will be loaded
|
|
||||||
# before nanoc starts compiling.
|
|
||||||
|
|
||||||
require 'json'
|
|
||||||
|
|
||||||
include Nanoc3::Helpers::Rendering
|
|
||||||
include Nanoc3::Helpers::Blogging
|
|
||||||
include Nanoc3::Helpers::XMLSitemap
|
|
||||||
include Nanoc3::Helpers::HTMLEscape
|
|
||||||
include WezM::Helpers::Articles
|
|
|
@ -1,24 +0,0 @@
|
||||||
jQuery(function () {
|
|
||||||
var image_template = Handlebars.compile($('#image-template').html());
|
|
||||||
|
|
||||||
function populate_flickr(data, text_status) {
|
|
||||||
var ul = $("#flickr ul");
|
|
||||||
ul.empty();
|
|
||||||
jQuery.each($('photo', data), function(i, obj) {
|
|
||||||
var photo = $(obj);
|
|
||||||
var image = {
|
|
||||||
href: photo.attr('url_z'),
|
|
||||||
src: '/images/photos.jpg?20120121',
|
|
||||||
alt: photo.attr('title')
|
|
||||||
};
|
|
||||||
var li = $(image_template(image));
|
|
||||||
$('img', li).css('left', (i * -75) + 'px');
|
|
||||||
li.css("background-position", (i * -75) + 'px -75px');
|
|
||||||
ul.append(li);
|
|
||||||
});
|
|
||||||
$("a[rel^='prettyPhoto']").prettyPhoto({theme: "facebook"});
|
|
||||||
};
|
|
||||||
|
|
||||||
// Populate Flickr
|
|
||||||
jQuery.get("/photos.xml?20111208", {}, populate_flickr);
|
|
||||||
});
|
|
20
v1/.gitignore
vendored
Normal file
20
v1/.gitignore
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
output/*/*/*/*/*.html
|
||||||
|
output/fonts/*
|
||||||
|
output/about/
|
||||||
|
output/articles/
|
||||||
|
output/css/screen.css
|
||||||
|
output/css/rouge.css
|
||||||
|
output/feed/
|
||||||
|
output/index.html
|
||||||
|
output/personal/
|
||||||
|
output/projects/
|
||||||
|
output/robots.txt
|
||||||
|
output/sitemap.xml
|
||||||
|
output/technical/articles/
|
||||||
|
output/technical/feed/
|
||||||
|
output/weather/
|
||||||
|
tmp/*
|
||||||
|
.*.swp
|
||||||
|
output/weather.json
|
||||||
|
.sass-cache
|
||||||
|
crash.log
|
1
v1/.ruby-version
Normal file
1
v1/.ruby-version
Normal file
|
@ -0,0 +1 @@
|
||||||
|
2.7.5
|
38
v1/Dockerfile
Normal file
38
v1/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
FROM alpine:3.9 AS build
|
||||||
|
|
||||||
|
ARG WEZMUID=2000
|
||||||
|
ARG WEZMGID=2000
|
||||||
|
ARG USER=wezm
|
||||||
|
|
||||||
|
RUN apk --update add --no-cache ruby-dev ruby-bundler ruby-bigdecimal ruby-json build-base zlib-dev \
|
||||||
|
&& addgroup -g ${WEZMGID} ${USER} \
|
||||||
|
&& adduser -D -u ${WEZMUID} -G ${USER} -h /home/${USER} -D ${USER}
|
||||||
|
|
||||||
|
RUN mkdir /usr/share/www && chown wezm:wezm /usr/share/www
|
||||||
|
|
||||||
|
WORKDIR /usr/share/www
|
||||||
|
|
||||||
|
USER wezm
|
||||||
|
|
||||||
|
COPY --chown=wezm:wezm Gemfile .
|
||||||
|
COPY --chown=wezm:wezm Gemfile.lock .
|
||||||
|
|
||||||
|
RUN bundle install -j 4 --deployment --without 'test development'
|
||||||
|
|
||||||
|
COPY --chown=wezm:wezm . .
|
||||||
|
|
||||||
|
RUN bundle exec nanoc co
|
||||||
|
|
||||||
|
|
||||||
|
FROM 791569612186.dkr.ecr.ap-southeast-2.amazonaws.com/nginx
|
||||||
|
|
||||||
|
ARG WEZMUID=2000
|
||||||
|
ARG WEZMGID=2000
|
||||||
|
ARG USER=wezm
|
||||||
|
|
||||||
|
RUN addgroup -g ${WEZMGID} ${USER} \
|
||||||
|
&& adduser -D -u ${WEZMUID} -G ${USER} -h /home/${USER} -D ${USER}
|
||||||
|
|
||||||
|
COPY --from=build --chown=wezm:wezm /usr/share/www/output /usr/share/www
|
||||||
|
|
||||||
|
EXPOSE 80
|
26
v1/Gemfile
Normal file
26
v1/Gemfile
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
require 'rbconfig'
|
||||||
|
|
||||||
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
|
gem 'rake'
|
||||||
|
gem 'mime-types'
|
||||||
|
gem 'nanoc', '~> 4.0'
|
||||||
|
gem 'bitly'
|
||||||
|
gem 'haml'
|
||||||
|
gem 'sass'
|
||||||
|
gem 'rdiscount'
|
||||||
|
gem 'rubypants'
|
||||||
|
gem 'nokogiri'
|
||||||
|
gem 'builder'
|
||||||
|
gem 'fssm'
|
||||||
|
gem 'systemu'
|
||||||
|
gem 'listen'
|
||||||
|
gem 'adsf'
|
||||||
|
gem 'rouge'
|
||||||
|
|
||||||
|
group :development do
|
||||||
|
gem 'guard-nanoc'
|
||||||
|
if RbConfig::CONFIG['target_os'] =~ /(?i-mx:bsd|dragonfly)/
|
||||||
|
gem 'rb-kqueue', '>= 0.2'
|
||||||
|
end
|
||||||
|
end
|
139
v1/Gemfile.lock
Normal file
139
v1/Gemfile.lock
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
addressable (2.6.0)
|
||||||
|
public_suffix (>= 2.0.2, < 4.0)
|
||||||
|
adsf (1.4.1)
|
||||||
|
rack (>= 1.0.0, < 3.0.0)
|
||||||
|
bitly (1.1.2)
|
||||||
|
httparty (>= 0.7.6)
|
||||||
|
multi_json (~> 1.3)
|
||||||
|
oauth2 (>= 0.5.0, < 2.0)
|
||||||
|
builder (3.2.3)
|
||||||
|
coderay (1.1.2)
|
||||||
|
colored (1.2)
|
||||||
|
concurrent-ruby (1.1.4)
|
||||||
|
cri (2.15.3)
|
||||||
|
colored (~> 1.2)
|
||||||
|
ddmemoize (1.0.0)
|
||||||
|
ddmetrics (~> 1.0)
|
||||||
|
ref (~> 2.0)
|
||||||
|
ddmetrics (1.0.1)
|
||||||
|
ddplugin (1.0.2)
|
||||||
|
faraday (0.15.4)
|
||||||
|
multipart-post (>= 1.2, < 3)
|
||||||
|
ffi (1.10.0)
|
||||||
|
formatador (0.2.5)
|
||||||
|
fssm (0.2.10)
|
||||||
|
guard (2.15.0)
|
||||||
|
formatador (>= 0.2.4)
|
||||||
|
listen (>= 2.7, < 4.0)
|
||||||
|
lumberjack (>= 1.0.12, < 2.0)
|
||||||
|
nenv (~> 0.1)
|
||||||
|
notiffany (~> 0.0)
|
||||||
|
pry (>= 0.9.12)
|
||||||
|
shellany (~> 0.0)
|
||||||
|
thor (>= 0.18.1)
|
||||||
|
guard-compat (1.2.1)
|
||||||
|
guard-nanoc (2.1.4)
|
||||||
|
guard (~> 2.8)
|
||||||
|
guard-compat (~> 1.0)
|
||||||
|
nanoc (>= 4.3.8, < 5.0)
|
||||||
|
haml (5.0.4)
|
||||||
|
temple (>= 0.8.0)
|
||||||
|
tilt
|
||||||
|
hamster (3.0.0)
|
||||||
|
concurrent-ruby (~> 1.0)
|
||||||
|
httparty (0.16.3)
|
||||||
|
mime-types (~> 3.0)
|
||||||
|
multi_xml (>= 0.5.2)
|
||||||
|
json_schema (0.20.1)
|
||||||
|
jwt (2.1.0)
|
||||||
|
listen (3.1.5)
|
||||||
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||||
|
rb-inotify (~> 0.9, >= 0.9.7)
|
||||||
|
ruby_dep (~> 1.2)
|
||||||
|
lumberjack (1.0.13)
|
||||||
|
method_source (0.9.2)
|
||||||
|
mime-types (3.2.2)
|
||||||
|
mime-types-data (~> 3.2015)
|
||||||
|
mime-types-data (3.2018.0812)
|
||||||
|
mini_portile2 (2.4.0)
|
||||||
|
multi_json (1.13.1)
|
||||||
|
multi_xml (0.6.0)
|
||||||
|
multipart-post (2.0.0)
|
||||||
|
nanoc (4.11.0)
|
||||||
|
addressable (~> 2.5)
|
||||||
|
cri (~> 2.15)
|
||||||
|
ddmemoize (~> 1.0)
|
||||||
|
ddmetrics (~> 1.0)
|
||||||
|
ddplugin (~> 1.0)
|
||||||
|
hamster (~> 3.0)
|
||||||
|
json_schema (~> 0.19)
|
||||||
|
parallel (~> 1.12)
|
||||||
|
ref (~> 2.0)
|
||||||
|
slow_enumerator_tools (~> 1.0)
|
||||||
|
tomlrb (~> 1.2)
|
||||||
|
nenv (0.3.0)
|
||||||
|
nokogiri (1.10.1)
|
||||||
|
mini_portile2 (~> 2.4.0)
|
||||||
|
notiffany (0.1.1)
|
||||||
|
nenv (~> 0.1)
|
||||||
|
shellany (~> 0.0)
|
||||||
|
oauth2 (1.4.1)
|
||||||
|
faraday (>= 0.8, < 0.16.0)
|
||||||
|
jwt (>= 1.0, < 3.0)
|
||||||
|
multi_json (~> 1.3)
|
||||||
|
multi_xml (~> 0.5)
|
||||||
|
rack (>= 1.2, < 3)
|
||||||
|
parallel (1.13.0)
|
||||||
|
pry (0.12.2)
|
||||||
|
coderay (~> 1.1.0)
|
||||||
|
method_source (~> 0.9.0)
|
||||||
|
public_suffix (3.0.3)
|
||||||
|
rack (2.0.6)
|
||||||
|
rake (12.3.2)
|
||||||
|
rb-fsevent (0.10.3)
|
||||||
|
rb-inotify (0.10.0)
|
||||||
|
ffi (~> 1.0)
|
||||||
|
rdiscount (2.2.0.1)
|
||||||
|
ref (2.0.0)
|
||||||
|
rouge (3.3.0)
|
||||||
|
ruby_dep (1.5.0)
|
||||||
|
rubypants (0.7.0)
|
||||||
|
sass (3.7.3)
|
||||||
|
sass-listen (~> 4.0.0)
|
||||||
|
sass-listen (4.0.0)
|
||||||
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||||
|
rb-inotify (~> 0.9, >= 0.9.7)
|
||||||
|
shellany (0.0.1)
|
||||||
|
slow_enumerator_tools (1.1.0)
|
||||||
|
systemu (2.6.5)
|
||||||
|
temple (0.8.0)
|
||||||
|
thor (0.20.3)
|
||||||
|
tilt (2.0.9)
|
||||||
|
tomlrb (1.2.8)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
adsf
|
||||||
|
bitly
|
||||||
|
builder
|
||||||
|
fssm
|
||||||
|
guard-nanoc
|
||||||
|
haml
|
||||||
|
listen
|
||||||
|
mime-types
|
||||||
|
nanoc (~> 4.0)
|
||||||
|
nokogiri
|
||||||
|
rake
|
||||||
|
rdiscount
|
||||||
|
rouge
|
||||||
|
rubypants
|
||||||
|
sass
|
||||||
|
systemu
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
1.17.2
|
36
v1/README.mkdn
Normal file
36
v1/README.mkdn
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
WezM.net
|
||||||
|
========
|
||||||
|
|
||||||
|
Site Structure
|
||||||
|
--------------
|
||||||
|
|
||||||
|
/articles
|
||||||
|
/technical
|
||||||
|
/category
|
||||||
|
/personal
|
||||||
|
/category
|
||||||
|
/about
|
||||||
|
|
||||||
|
Tips
|
||||||
|
----
|
||||||
|
|
||||||
|
Set updated_at on a post in vim:
|
||||||
|
|
||||||
|
:r! ruby -rtime -e "puts File.mtime('%:r.md').xmlschema"
|
||||||
|
|
||||||
|
Trim CLI screenshots:
|
||||||
|
|
||||||
|
convert *.png -set filename:name '%t' -background white -splice 0x1 -background white -splice 0x1 -trim +repage -chop 0x1 '%[filename:name].png'
|
||||||
|
|
||||||
|
Setup
|
||||||
|
-----
|
||||||
|
|
||||||
|
frum install (then cd ..; cd -)
|
||||||
|
gem install bundler --no-doc --version '~> 1'
|
||||||
|
bundle install
|
||||||
|
|
||||||
|
Building and Deployment
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
* Build with: `nanoc co`
|
||||||
|
* Deploy with: `nanoc deploy`
|
1
v1/Rakefile
Normal file
1
v1/Rakefile
Normal file
|
@ -0,0 +1 @@
|
||||||
|
require 'nanoc/tasks'
|
|
@ -21,6 +21,7 @@ compile %r(/\d{4}/.*) do
|
||||||
layout 'article'
|
layout 'article'
|
||||||
layout 'default'
|
layout 'default'
|
||||||
filter :rubypants
|
filter :rubypants
|
||||||
|
filter :colorize_syntax, default_colorizer: :rouge
|
||||||
end
|
end
|
||||||
|
|
||||||
compile %r(/about/.*) do
|
compile %r(/about/.*) do
|
||||||
|
@ -41,8 +42,13 @@ compile %r{^/(?:screen|mobile)/$} do
|
||||||
filter :sass
|
filter :sass
|
||||||
end
|
end
|
||||||
|
|
||||||
|
compile %r{/rouge/$} do
|
||||||
|
filter :erb
|
||||||
|
end
|
||||||
|
|
||||||
compile '*' do
|
compile '*' do
|
||||||
filter :rdiscount
|
filter :rdiscount
|
||||||
|
layout 'page'
|
||||||
layout 'default'
|
layout 'default'
|
||||||
filter :rubypants
|
filter :rubypants
|
||||||
end
|
end
|
||||||
|
@ -64,7 +70,7 @@ end
|
||||||
# (path.dirname + 'articles.json').to_s
|
# (path.dirname + 'articles.json').to_s
|
||||||
# end
|
# end
|
||||||
|
|
||||||
route %r{^/(?:screen|mobile)/$} do
|
route %r{^/(?:screen|mobile|rouge)/$} do
|
||||||
File.join("", "css", File.basename(item.identifier) + ".css")
|
File.join("", "css", File.basename(item.identifier) + ".css")
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,11 +24,13 @@ enable_output_diff: false
|
||||||
# hashes; each array element represents a single data source. By default,
|
# hashes; each array element represents a single data source. By default,
|
||||||
# there is only a single data source that reads data from the “content/” and
|
# there is only a single data source that reads data from the “content/” and
|
||||||
# “layout/” directories in the site directory.
|
# “layout/” directories in the site directory.
|
||||||
|
string_pattern_type: legacy
|
||||||
data_sources:
|
data_sources:
|
||||||
-
|
-
|
||||||
# The type is the identifier of the data source. By default, this will be
|
# The type is the identifier of the data source. By default, this will be
|
||||||
# `filesystem_unified`.
|
# `filesystem_unified`.
|
||||||
type: filesystem_unified
|
type: filesystem_unified
|
||||||
|
identifier_type: legacy
|
||||||
|
|
||||||
# The path where items should be mounted (comparable to mount points in
|
# The path where items should be mounted (comparable to mount points in
|
||||||
# Unix-like systems). This is “/” by default, meaning that items will have
|
# Unix-like systems). This is “/” by default, meaning that items will have
|
||||||
|
@ -41,11 +43,11 @@ data_sources:
|
||||||
# same as the items root, but applies to layouts rather than items.
|
# same as the items root, but applies to layouts rather than items.
|
||||||
layouts_root: /
|
layouts_root: /
|
||||||
|
|
||||||
base_url: 'http://www.wezm.net'
|
base_url: 'https://www.wezm.net'
|
||||||
deploy:
|
deploy:
|
||||||
default:
|
default:
|
||||||
kind: rsync
|
kind: rsync
|
||||||
dst: "eforce.binarytrance.com:/usr/local/www/www.wezm.net"
|
dst: "hardforze.binarytrance.com:infrastructure/volumes/www/wezm.net"
|
||||||
#options: [ '-rlpgoDvz', '--delete', '--exclude=".svn"' ]
|
#options: [ '-rlpgoDvz', '--delete', '--exclude=".svn"' ]
|
||||||
options: [ '-avz', '--omit-dir-times', '--delete', '--exclude=".svn"' ]
|
options: [ '-avz' ]
|
||||||
|
|
55
v1/content/about.html
Normal file
55
v1/content/about.html
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
<div class="vcard">
|
||||||
|
<p>WezM.net is <span class="fn">Wesley Moore</span>’s personal home page. I
|
||||||
|
live in <span class="adr"><span class="locality">Melbourne</span> <span
|
||||||
|
class="country-name">Australia</span></span> and work as a <span
|
||||||
|
class="title">software developer</span>. Here you will find posts about <a
|
||||||
|
href="/projects/">projects</a> I'm working on, useful tips I've
|
||||||
|
discovered as well as other events from my life.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
The content is split into two sections: [Technical](/technical/articles/) and
|
||||||
|
[Personal](/personal/articles/). There is a [combined feed](/feed/) containing
|
||||||
|
all posts as well as separate ones for [technical](/technical/feed/) and
|
||||||
|
[personal](/personal/feed/) posts.
|
||||||
|
|
||||||
|
### Contact
|
||||||
|
|
||||||
|
Find me on the Internet in one of these places:
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Email – <a href="mailto:wes@wezm.net">wes@wezm.net</a></li>
|
||||||
|
<li><a href="http://bitcannon.net/">Bit Cannon</a> – My other blog</li>
|
||||||
|
<li><a href="http://readrust.net/">Read Rust</a> –
|
||||||
|
Aggregator of content related to the <a href="https://www.rust-lang.org/">Rust</a> programming language</li>
|
||||||
|
<li><a href="http://www.flickr.com/photos/wezm/">Flickr</a></li>
|
||||||
|
<li><a href="https://github.com/wezm">GitHub</a></li>
|
||||||
|
<li><a href="https://mastodon.decentralised.social/@wezm">Mastodon/Fediverse</a></li>
|
||||||
|
<li><a href="https://patreon.com/wezm">Patreon</a></li>
|
||||||
|
<li><a href="http://stackoverflow.com/users/38820/wes">Stack Overflow</a></li>
|
||||||
|
<li><a href="https://twitter.com/wezm">Twitter</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
Credits
|
||||||
|
-------
|
||||||
|
|
||||||
|
This site makes use of the following resources made available freely by their
|
||||||
|
authors:
|
||||||
|
|
||||||
|
* [Reset CSS][cssreset] by Eric Meyer
|
||||||
|
* [Mono icons][monoicons] by tutorial9
|
||||||
|
* [Feed icon][feedicon] by FeedIcons.com and the Mozilla Foundation
|
||||||
|
* [Link Icon][bytesize-icons] by Dan Klammer
|
||||||
|
|
||||||
|
[nanoc]: http://nanoc.stoneship.org/
|
||||||
|
[markdown]: http://daringfireball.net/projects/markdown/
|
||||||
|
[nginx]: http://nginx.org/
|
||||||
|
[twitter]: http://twitter.com/wezm
|
||||||
|
[mastodon]: https://mastodon.social/@wezm
|
||||||
|
[flickr]: http://www.flickr.com/photos/wezm/
|
||||||
|
[debian]: http://www.debian.org/
|
||||||
|
[jquery]: http://jquery.com/
|
||||||
|
[sass]: http://sass-lang.com/
|
||||||
|
[cssreset]: http://meyerweb.com/eric/tools/css/reset/
|
||||||
|
[monoicons]: http://www.tutorial9.net/resources/108-mono-icons-huge-set-of-minimal-icons/
|
||||||
|
[feedicon]: http://feedicons.com/
|
||||||
|
[bytesize-icons]: https://github.com/danklammer/bytesize-icons
|
|
@ -6,26 +6,26 @@ A friend asked the following today, the reply was big enough I decided to post i
|
||||||
>
|
>
|
||||||
> Has it changed your life? Has the battery life been crappy for you? Talk time OK?
|
> Has it changed your life? Has the battery life been crappy for you? Talk time OK?
|
||||||
|
|
||||||
Its definitely the best phone I've had. Part of that is due to the tight integration with Mac OS X, which obviously very few companies were going to pull off. As a device its brilliant to use and full of functionality. I'm loving the apps and decent browser. The WiFi is really nice at home. The iPod part obviously works as well and better than any prior iPod.
|
Its definitely the best phone I've had. Part of that is due to the tight integration with Mac OS X, which obviously very few companies were going to pull off. As a device it's brilliant to use and full of functionality. I'm loving the apps and decent browser. The WiFi is really nice at home. The iPod part obviously works as well and better than any prior iPod.
|
||||||
|
|
||||||
The on screen keyboard is pretty much as described. You have to give it time to get the hang of it and you have to trust it. If you're typing a word that would be in the English dictionary you're best to keep on typing even if the word is way off. By the time you get to pressing space its usually selected the right word, which is selected automatically upon space. Two irritations with typing though. Its less likely to get shorter word right, particularly when there's multiple valid options. There's no way that I'm aware of to get a list of possibilities and choose the one you want. Of course being a small word means its not hard to fix and if you type it correctly in the first place then it isn't a problem at all. The other minor annoyance is when you get to the last word in a sentence that is mis-typed with a correct suggestion it appears the only way to accept it is to press space (and then delete the space) or grab a full stop.
|
The on screen keyboard is pretty much as described. You have to give it time to get the hang of it and you have to trust it. If you're typing a word that would be in the English dictionary you're best to keep on typing even if the word is way off. By the time you get to pressing space it's usually selected the right word, which is selected automatically upon space. Two irritations with typing though. Its less likely to get shorter word right, particularly when there's multiple valid options. There's no way that I'm aware of to get a list of possibilities and choose the one you want. Of course being a small word means it's not hard to fix and if you type it correctly in the first place then it isn't a problem at all. The other minor annoyance is when you get to the last word in a sentence that is mis-typed with a correct suggestion it appears the only way to accept it is to press space (and then delete the space) or grab a full stop.
|
||||||
<!--more-->
|
<!--more-->
|
||||||
|
|
||||||
<a href="/images/2008/07/img_0012.png" class="alignright"><img src="/images/2008/07/img_0012-200x300.png" alt="Byline" title="img_0012" width="200" height="300" class="alignnone size-medium wp-image-48" /></a>I haven't missed MMS at all, especially with a decent email client built in that can talk to Gmail via IMAP and send photos to flickr that way.
|
<a href="/images/2008/07/img_0012.png" class="alignright"><img src="/images/2008/07/img_0012-200x300.png" alt="Byline" title="img_0012" width="200" height="300" class="alignnone size-medium wp-image-48" /></a>I haven't missed MMS at all, especially with a decent email client built in that can talk to Gmail via IMAP and send photos to Flickr that way.
|
||||||
|
|
||||||
I have missed Todo functionality. I have no idea why Apple have not got this syncing. The support is there in iSync and todos sync with my old phone (Nokia 6280) just fine. I'm hoping that its one of these things that will make it eventually. There's two reasons I miss todo, one to track things to be done, the other is for reminders for things that don't have a duration (which can be put in as calendar entries). There is no way to do reminders without a duration at the moment. Having said that the calendar functionality is comprehensive. It supports multiple calendars, full editing, meeting acceptance and basically anything you can do on the desktop.
|
I have missed Todo functionality. I have no idea why Apple have not got this syncing. The support is there in iSync and todos sync with my old phone (Nokia 6280) just fine. I'm hoping that it's one of these things that will make it eventually. There's two reasons I miss todo, one to track things to be done, the other is for reminders for things that don't have a duration (which can be put in as calendar entries). There is no way to do reminders without a duration at the moment. Having said that the calendar functionality is comprehensive. It supports multiple calendars, full editing, meeting acceptance and basically anything you can do on the desktop.
|
||||||
|
|
||||||
<a href="/images/2008/07/img_0019.png" class="alignleft clear"><img src="/images/2008/07/img_0019-200x300.png" alt="Twinkle" title="img_0019" width="200" height="300" class="alignnone size-medium wp-image-55" /></a>Another annoyance surrounds SMS. When on silent you only get a single vibration on new message, which is easily missed. My old phone did three, which was better. Also when you get an SMS my old phone would show an envelope on the black and white standby screen. With the iPhone you have to wake it up to see if you've got a message after the display goes back off.
|
<a href="/images/2008/07/img_0019.png" class="alignleft clear"><img src="/images/2008/07/img_0019-200x300.png" alt="Twinkle" title="img_0019" width="200" height="300" class="alignnone size-medium wp-image-55" /></a>Another annoyance surrounds SMS. When on silent you only get a single vibration on new message, which is easily missed. My old phone did three, which was better. Also when you get an SMS my old phone would show an envelope on the black and white standby screen. With the iPhone you have to wake it up to see if you've got a message after the display goes back off.
|
||||||
|
|
||||||
The AppStore is great, some of the apps are very well done. I'm really liking <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284946773&mt=8">Byline</a>, <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284967867&mt=8">Twinkle</a>, <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284919489&mt=8">Exposure</a> and <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284825922&mt=8">MoPhoTo</a>. I'm not much of a Facebook user but the <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284882215&mt=8">Facebook app</a> is very well done. It just the core parts of Facebook without all the crap. Of those five, three are free, one is free by ad-supported (with a pay for version available) and the other AU$12.99. I think that's a pretty good spread for some top quality apps. Some screenshots of these apps are scattered below.
|
The AppStore is great, some of the apps are very well done. I'm really liking <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284946773&mt=8">Byline</a>, <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284967867&mt=8">Twinkle</a>, <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284919489&mt=8">Exposure</a> and <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284825922&mt=8">MoPhoTo</a>. I'm not much of a Facebook user but the <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284882215&mt=8">Facebook app</a> is very well done. It's just the core parts of Facebook without all the crap. Of those five, three are free, one is free by ad-supported (with a pay for version available) and the other AU$12.99. I think that's a pretty good spread for some top quality apps. Some screenshots of these apps are scattered below.
|
||||||
|
|
||||||
<a href="/images/2008/07/img_0016.png" class="alignright clear"><img src="/images/2008/07/img_0016-200x300.png" alt="Exposure" title="img_0016" width="200" height="300" class="alignnone size-medium wp-image-52" /></a>Battery life is nothing brilliant as has been reported elsewhere. You'd probably want to change it every day. Today I watched a video podcast on the way to work, send a couple of SMSs during the day, added a calendar event, got a call from Steve, called the dentist, listened to music, read in Google Reader via the Byline app, read and updated Twitter via the Twinkle app and used the timer to cook dinner and its showing half battery. It was off the changer all last night too.
|
<a href="/images/2008/07/img_0016.png" class="alignright clear"><img src="/images/2008/07/img_0016-200x300.png" alt="Exposure" title="img_0016" width="200" height="300" class="alignnone size-medium wp-image-52" /></a>Battery life is nothing brilliant as has been reported elsewhere. You'd probably want to change it every day. Today I watched a video podcast on the way to work, send a couple of SMSs during the day, added a calendar event, got a call from Steve, called the dentist, listened to music, read in Google Reader via the Byline app, read and updated Twitter via the Twinkle app and used the timer to cook dinner and it's showing half battery. It was off the changer all last night too.
|
||||||
|
|
||||||
A complaint of the old one was that the ringer and message volume was very low and easily missed. I've it plenty loud enough and its only on about three quarters. Speaking on the phone the volume is good, although I haven't tried extreme environments like a club.
|
A complaint of the old one was that the ringer and message volume was very low and easily missed. I've it plenty loud enough and it's only on about three quarters. Speaking on the phone the volume is good, although I haven't tried extreme environments like a club.
|
||||||
|
|
||||||
One of the best built-in apps on the whole phone is maps. Whenever you want to find something, or get the details for a business, get directions, just bring up Maps and it will sort it out. Its as good as, if not better than Google Maps on the desktop. It has the same three views too: Maps, Satellite and Hybrid. The location awareness is great and there's some basic uses of it in the apps so far, hopefully more creative uses come out. One interesting one is an app called Exposure that is a flickr client with a 'near me' function. It shows photos near your current location. Doing so at home brings ups photos of St Kilda Rd, the fountain in the gardens out the front (Pictured above).
|
One of the best built-in apps on the whole phone is maps. Whenever you want to find something, or get the details for a business, get directions, just bring up Maps and it will sort it out. Its as good as, if not better than Google Maps on the desktop. It has the same three views too: Maps, Satellite and Hybrid. The location awareness is great and there's some basic uses of it in the apps so far, hopefully more creative uses come out. One interesting one is an app called Exposure that is a Flickr client with a 'near me' function. It shows photos near your current location. Doing so at home brings ups photos of St Kilda Rd, the fountain in the gardens out the front (Pictured above).
|
||||||
|
|
||||||
Maybe I'm easily sold on such things but the UI is truly beautiful and being solely finger driven is revolutionarily (on a phone). I'm a happy customer.
|
Maybe I'm easily sold on such things but the UI is truly beautiful and being solely finger driven is revolutionary (on a phone). I'm a happy customer.
|
||||||
|
|
||||||
<a href="/images/2008/07/img_0017.png" class="alignleft clear"><img src="/images/2008/07/img_0017-200x300.png" alt="Facebook" title="img_0017" width="200" height="300" class="alignnone size-medium wp-image-53" /></a><a href="/images/2008/07/img_0018.png" class="alignright"><img src="/images/2008/07/img_0018-200x300.png" alt="MoPhoTo" title="img_0018" width="200" height="300" class="alignnone size-medium wp-image-54" /></a>
|
<a href="/images/2008/07/img_0017.png" class="alignleft clear"><img src="/images/2008/07/img_0017-200x300.png" alt="Facebook" title="img_0017" width="200" height="300" class="alignnone size-medium wp-image-53" /></a><a href="/images/2008/07/img_0018.png" class="alignright"><img src="/images/2008/07/img_0018-200x300.png" alt="MoPhoTo" title="img_0018" width="200" height="300" class="alignnone size-medium wp-image-54" /></a>
|
||||||
<div style="clear: both;"> </div>
|
<div style="clear: both;"> </div>
|
|
@ -56,10 +56,10 @@ what I'm most interested in.
|
||||||
<figcaption>The Finished Installation</figcaption>
|
<figcaption>The Finished Installation</figcaption>
|
||||||
</figure>
|
</figure>
|
||||||
|
|
||||||
To log and upload the weather readings to [http://weather.wezm.net/][weather]
|
To log and upload the [weather readings][weather] I'm using the [wview][wview]
|
||||||
I'm using the [wview][wview] weather station software. wview is running on the
|
weather station software. wview is running on the Mac mini connected to our TV.
|
||||||
Mac mini connected to our TV. The site layout is pretty basic so I hope to come
|
The site layout is pretty basic so I hope to come up with a cleaner design in
|
||||||
up with a cleaner design in the coming weeks.
|
the coming weeks.
|
||||||
|
|
||||||
**Update:** I built a custom logging and charting solution. See the post,
|
**Update:** I built a custom logging and charting solution. See the post,
|
||||||
[Weather Station Software][software].
|
[Weather Station Software][software].
|
||||||
|
@ -67,4 +67,4 @@ up with a cleaner design in the coming weeks.
|
||||||
[software]: /technical/2010/09/weather-station-software/
|
[software]: /technical/2010/09/weather-station-software/
|
||||||
[WS2355]: http://www.lacrossetechnology.com.au/shop2/product_info.php?cPath=21&products_id=93
|
[WS2355]: http://www.lacrossetechnology.com.au/shop2/product_info.php?cPath=21&products_id=93
|
||||||
[wview]: http://www.wviewweather.com/
|
[wview]: http://www.wviewweather.com/
|
||||||
[weather]: http://weather.wezm.net/
|
[weather]: /weather/
|
|
@ -1,37 +1,46 @@
|
||||||
Binary Trance Software
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
Through my app development company [Binary Trance Software][bt] I've
|
|
||||||
built the following apps:
|
|
||||||
|
|
||||||
* [SymbolMate][symbolmate] -- Quickly find and copy symbols and Emoji
|
|
||||||
|
|
||||||
[bt]: https://binarytrance.com/
|
|
||||||
[symbolmate]: https://binarytrance.com/apps/symbolmate
|
|
||||||
|
|
||||||
Websites
|
Websites
|
||||||
--------
|
--------
|
||||||
|
|
||||||
A couple of other websites I maintain are:
|
Other websites I maintain are:
|
||||||
|
|
||||||
|
* [Read Rust][readrust] -- an aggregator of news about the [Rust programming
|
||||||
|
language][Rust].
|
||||||
|
* [Desktop Institute][desktop-institute] -- Documenting the search for a
|
||||||
|
desktop environment that combines the, "it just works", nature of [GNOME] with
|
||||||
|
the window management of [Awesome].
|
||||||
|
* [Bit Cannon][bitcannon] -- a blog that I designed and built with
|
||||||
|
[Hugo] as a bit of an experiment, the exact nature of which is still
|
||||||
|
evolving.
|
||||||
* [Linked List][linkedlist] -- "a semi-organized collection of knowledge
|
* [Linked List][linkedlist] -- "a semi-organized collection of knowledge
|
||||||
that I have accumulated.", created as a reference for myself but also published
|
that I have accumulated.", created as a reference for myself but also published
|
||||||
publically in the hope it may be useful to others as well. The code ([pkb])
|
publicly in the hope it may be useful to others as well. The code ([pkb])
|
||||||
is open source.
|
is open source.
|
||||||
* [Bit Cannon][bitcannon] -- a new blog that I designed and built with
|
|
||||||
[Hugo][hugo] as a bit of an experiment, the exact nature of which is still
|
|
||||||
evolving.
|
|
||||||
|
|
||||||
[bitcannon]: http://bitcannon.net
|
[Awesome]: https://awesomewm.org/
|
||||||
[hugo]: http://gohugo.io
|
[bitcannon]: https://bitcannon.net/
|
||||||
|
[desktop-institute]: https://desktop.institute/
|
||||||
|
[GNOME]: https://www.gnome.org/
|
||||||
|
[Hugo]: https://gohugo.io/
|
||||||
|
[readrust]: https://readrust.net/
|
||||||
|
[Rust]: https://www.rust-lang.org/
|
||||||
|
|
||||||
Open Source Projects
|
Open Source Projects
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
I have a collection of open-source software on [GitHub][github]. Some of the
|
I have a collection of open-source software on [GitHub] and [Sourcehut]. Some of the
|
||||||
more noteworthy projects are listed below.
|
more noteworthy projects are listed below.
|
||||||
|
|
||||||
[github]: http://github.com/wezm
|
[GitHub]: https://github.com/wezm
|
||||||
|
[Sourcehut]: https://git.sr.ht/~wezm/
|
||||||
|
|
||||||
|
### Read Rust
|
||||||
|
|
||||||
|
[Read Rust][readrust-git] is an aggregator of news related to the Rust programming language.
|
||||||
|
It is built with the [Cobalt] static site compiler along with some tools built
|
||||||
|
to make managing the content easier.
|
||||||
|
|
||||||
|
[readrust-git]: https://github.com/wezm/read-rust
|
||||||
|
[Cobalt]: http://cobalt-org.github.io/
|
||||||
|
|
||||||
### pkb
|
### pkb
|
||||||
|
|
||||||
|
@ -40,9 +49,20 @@ to quickly publish snippets of knowledge. It powers
|
||||||
[linkedlist.org][linkedlist], which is my instance of pkb.
|
[linkedlist.org][linkedlist], which is my instance of pkb.
|
||||||
|
|
||||||
[pkb]: https://github.com/wezm/pkb
|
[pkb]: https://github.com/wezm/pkb
|
||||||
[Rails]: http://rubyonrails.org
|
[Rails]: https://rubyonrails.org/
|
||||||
[linkedlist]: https://linkedlist.org/
|
[linkedlist]: https://linkedlist.org/
|
||||||
|
|
||||||
|
### titlecase
|
||||||
|
|
||||||
|
[titlecase] is a command line tool and Rust crate that capitalizes English text
|
||||||
|
according to [a style defined by John Gruber][titlecase-style] for post titles
|
||||||
|
on his website [Daring Fireball]. titlecase runs on Linux, macOS, FreeBSD,
|
||||||
|
NetBSD, and Windows.
|
||||||
|
|
||||||
|
[titlecase]: https://github.com/wezm/titlecase
|
||||||
|
[Daring Fireball]: https://daringfireball.net/
|
||||||
|
[titlecase-style]: https://daringfireball.net/2008/05/title_case
|
||||||
|
|
||||||
### OCMustache
|
### OCMustache
|
||||||
|
|
||||||
[OCMustache][ocmustache] brings the [Mustache templating language][mustache] to
|
[OCMustache][ocmustache] brings the [Mustache templating language][mustache] to
|
||||||
|
@ -53,30 +73,6 @@ Compiler][ragel] in the hope that it will help ensure fast and correct parsing.
|
||||||
[mustache]: http://mustache.github.com/
|
[mustache]: http://mustache.github.com/
|
||||||
[ragel]: http://www.complang.org/ragel/
|
[ragel]: http://www.complang.org/ragel/
|
||||||
|
|
||||||
### Monothumb
|
|
||||||
|
|
||||||
[monothumb] is the tool that generates the thumbnails on the [home page](/). It
|
|
||||||
retrieves thumbnails of my [recent uploads to Flickr][flickr], converts them to
|
|
||||||
greyscale and then generates a single output image with both the colour and
|
|
||||||
monochrome versions of the thumbnail. There are two version of the tool. The
|
|
||||||
original one, written in Objective-C that uses CoreImage and a second version
|
|
||||||
written in Lua. The Lua one uses my [lua-imlib2] fork.
|
|
||||||
|
|
||||||
[flickr]: http://www.flickr.com/photos/wezm/
|
|
||||||
[monothumb]: https://github.com/wezm/monothumb
|
|
||||||
[lua-imlib2]: https://github.com/wezm/lua-imlib2
|
|
||||||
|
|
||||||
### node-genx
|
|
||||||
|
|
||||||
[node-genx] is a [node.js][node] binding to the [Genx][genx] XML generation
|
|
||||||
library. It allows fast and correct XML generation from the Javascript based
|
|
||||||
node.js environment. Available for easy install via [npm].
|
|
||||||
|
|
||||||
[node-genx]: https://github.com/wezm/node-genx
|
|
||||||
[node]: http://nodejs.org/
|
|
||||||
[genx]: http://www.tbray.org/ongoing/When/200x/2004/02/20/GenxStatus
|
|
||||||
[npm]: http://npmjs.org/
|
|
||||||
|
|
||||||
### Weather Station
|
### Weather Station
|
||||||
|
|
||||||
I previously had a weather station at my home for keeping track of the local
|
I previously had a weather station at my home for keeping track of the local
|
||||||
|
@ -90,7 +86,7 @@ produce the [Weather page][weather].
|
||||||
[sqlite]: http://www.sqlite.org/
|
[sqlite]: http://www.sqlite.org/
|
||||||
[open2300]: http://www.lavrsen.dk/foswiki/bin/view/Open2300/WebHome
|
[open2300]: http://www.lavrsen.dk/foswiki/bin/view/Open2300/WebHome
|
||||||
[open2300fork]: http://github.com/wezm/open2300
|
[open2300fork]: http://github.com/wezm/open2300
|
||||||
[weather]: http://weather.wezm.net/
|
[weather]: /weather/
|
||||||
[json]: http://www.json.org/
|
[json]: http://www.json.org/
|
||||||
[weather-tools]: http://github.com/wezm/weather-tools
|
[weather-tools]: http://github.com/wezm/weather-tools
|
||||||
|
|
||||||
|
@ -98,3 +94,10 @@ See the following posts for more information on the weather station:
|
||||||
|
|
||||||
* [Weather Station Install](/personal/2010/09/weather-station/)
|
* [Weather Station Install](/personal/2010/09/weather-station/)
|
||||||
* [Weather Station Software Update](/technical/2010/09/weather-station-software/)
|
* [Weather Station Software Update](/technical/2010/09/weather-station-software/)
|
||||||
|
|
||||||
|
Old Apps
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [SymbolMate][symbolmate] -- Quickly find and copy symbols and Emoji
|
||||||
|
|
||||||
|
[symbolmate]: https://binarytrance.com/apps/symbolmate
|
4
v1/content/robots.txt
Normal file
4
v1/content/robots.txt
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
User-Agent: *
|
||||||
|
Disallow:
|
||||||
|
Sitemap: <%= @config[:base_url] %>/sitemap.xml
|
||||||
|
Sitemap: <%= @config[:base_url] %>/v2/sitemap.xml
|
6
v1/content/rouge.css.erb
Normal file
6
v1/content/rouge.css.erb
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<%= Rouge::Themes::Base16::Solarized.render(scope: 'pre') %>
|
||||||
|
|
||||||
|
pre {
|
||||||
|
padding: 0 5px 5px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
|
@ -1,4 +1,6 @@
|
||||||
$ans-serif: Carlito, Calibri, sans-serif
|
$ans-serif: Carlito, Calibri, sans-serif
|
||||||
|
$header-colour: #242424
|
||||||
|
$link-color: #36454F
|
||||||
|
|
||||||
body
|
body
|
||||||
font-family: $ans-serif
|
font-family: $ans-serif
|
||||||
|
@ -76,7 +78,7 @@ a
|
||||||
text-decoration: underline
|
text-decoration: underline
|
||||||
|
|
||||||
&:link, &:visited
|
&:link, &:visited
|
||||||
color: #36454F
|
color: $link-color
|
||||||
|
|
||||||
h1 a
|
h1 a
|
||||||
text-decoration: none
|
text-decoration: none
|
||||||
|
@ -85,22 +87,13 @@ h1 a
|
||||||
color: #111
|
color: #111
|
||||||
|
|
||||||
|
|
||||||
body.home h1 > a
|
|
||||||
-webkit-transition: border-bottom-color 500ms ease-out
|
|
||||||
transition: border-bottom-color 500ms ease-out
|
|
||||||
border-bottom: 2px solid rgba(17, 17, 17, 0.0)
|
|
||||||
|
|
||||||
&:hover
|
|
||||||
border-bottom-color: rgba(17, 17, 17, 1.0)
|
|
||||||
|
|
||||||
|
|
||||||
sup
|
sup
|
||||||
vertical-align: super
|
vertical-align: super
|
||||||
font-size: 0.8em
|
font-size: 0.8em
|
||||||
|
|
||||||
|
|
||||||
pre, code, tt
|
pre, code, tt
|
||||||
font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace
|
font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "Bitstream Vera Sans Mono", "Menlo", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace
|
||||||
|
|
||||||
code, tt
|
code, tt
|
||||||
font-size: smaller
|
font-size: smaller
|
||||||
|
@ -135,12 +128,19 @@ img.cover-photo
|
||||||
display: block
|
display: block
|
||||||
margin: 0 auto
|
margin: 0 auto
|
||||||
|
|
||||||
|
img.lobsters
|
||||||
|
position: relative
|
||||||
|
top: 2px
|
||||||
|
|
||||||
|
video
|
||||||
|
max-width: 100%
|
||||||
|
|
||||||
body > header
|
body > header
|
||||||
font-family: $ans-serif
|
font-family: $ans-serif
|
||||||
font-size: 18px
|
font-size: 18px
|
||||||
color: white
|
color: white
|
||||||
padding: 0.5em
|
padding: 0.5em
|
||||||
background: #1C1C1C
|
background-color: $header-colour
|
||||||
|
|
||||||
a
|
a
|
||||||
-webkit-transition: border-bottom-color 500ms ease-out
|
-webkit-transition: border-bottom-color 500ms ease-out
|
||||||
|
@ -153,16 +153,16 @@ body > header
|
||||||
&:hover
|
&:hover
|
||||||
border-bottom-color: rgba(255, 255, 255, 1.0)
|
border-bottom-color: rgba(255, 255, 255, 1.0)
|
||||||
|
|
||||||
span
|
|
||||||
display: none
|
|
||||||
|
|
||||||
|
|
||||||
#menu
|
#menu
|
||||||
float: right
|
float: right
|
||||||
padding-right: 0.25em
|
padding-right: 0.25em
|
||||||
|
|
||||||
li
|
li
|
||||||
font-size: inherit
|
font-size: 14px
|
||||||
|
font-weight: bold
|
||||||
|
text-transform: uppercase
|
||||||
|
letter-spacing: 0.5px
|
||||||
|
|
||||||
|
|
||||||
#content
|
#content
|
||||||
|
@ -174,31 +174,107 @@ body > header
|
||||||
footer
|
footer
|
||||||
color: #999
|
color: #999
|
||||||
border-top: 1px solid #999
|
border-top: 1px solid #999
|
||||||
margin: 20px
|
margin: 3em 20px 2em
|
||||||
clear: both
|
clear: both
|
||||||
|
|
||||||
.copyright
|
.copyright
|
||||||
font-family: $ans-serif
|
font-family: $ans-serif
|
||||||
font-size: 14px
|
font-size: 14px
|
||||||
padding-top: 1em
|
margin-top: 1em
|
||||||
display: block
|
display: block
|
||||||
|
|
||||||
.column
|
|
||||||
float: left
|
|
||||||
width: 50%
|
|
||||||
margin: 0
|
|
||||||
min-width: 480px
|
|
||||||
|
|
||||||
.align-top
|
.align-top
|
||||||
vertical-align: top
|
vertical-align: top
|
||||||
|
|
||||||
#personal div
|
.with-border
|
||||||
padding-right: 2em
|
border: 1px solid #D8D8D8
|
||||||
|
|
||||||
|
.no-border
|
||||||
|
border: none
|
||||||
|
text-decoration: none
|
||||||
|
|
||||||
.column div
|
.socials
|
||||||
padding: 0 0 0 2em
|
margin-top: 1em
|
||||||
|
float: right
|
||||||
|
|
||||||
|
.social-icon
|
||||||
|
margin: 0 0.5em
|
||||||
|
|
||||||
|
.social-icon-wide
|
||||||
|
margin: 0 0.6em
|
||||||
|
|
||||||
|
.action-button
|
||||||
|
background-color: $link-color
|
||||||
|
border-radius: 0.25em
|
||||||
|
border: 2px solid $link-color
|
||||||
|
color: white
|
||||||
|
display: inline-block
|
||||||
|
font-size: 12px
|
||||||
|
font-weight: bold
|
||||||
|
margin: 0.75em 0
|
||||||
|
padding: 0.5em 1em
|
||||||
|
text-decoration: none
|
||||||
|
text-transform: uppercase
|
||||||
|
|
||||||
|
.action-button-ghost
|
||||||
|
background-color: initial
|
||||||
|
color: $link-color
|
||||||
|
|
||||||
|
.action-button-ghost:hover
|
||||||
|
background-color: $link-color
|
||||||
|
color: white
|
||||||
|
|
||||||
|
.archive-banner
|
||||||
|
padding: 0.5em 0.5em
|
||||||
|
background-color: #fffff1
|
||||||
|
font-weight: 400
|
||||||
|
border-bottom: 1px solid #eae4b9
|
||||||
|
font-size: smaller
|
||||||
|
|
||||||
|
.home
|
||||||
|
h1 > a:first-child
|
||||||
|
-webkit-transition: border-bottom-color 500ms ease-out
|
||||||
|
transition: border-bottom-color 500ms ease-out
|
||||||
|
border-bottom: 2px solid rgba(17, 17, 17, 0.0)
|
||||||
|
|
||||||
|
&:hover
|
||||||
|
border-bottom-color: rgba(17, 17, 17, 1.0)
|
||||||
|
|
||||||
|
main
|
||||||
|
display: flex
|
||||||
|
margin: 0 20px
|
||||||
|
margin: 0 auto
|
||||||
|
padding: 0 20px
|
||||||
|
max-width: 1200px
|
||||||
|
min-height: 85vh
|
||||||
|
|
||||||
|
.cli-tools
|
||||||
|
h3
|
||||||
|
margin-top: 4em
|
||||||
|
|
||||||
|
#posts
|
||||||
|
width: 100%
|
||||||
|
|
||||||
|
#projects
|
||||||
|
width: 300px
|
||||||
|
flex-shrink: 0
|
||||||
|
margin-left: 2em
|
||||||
|
|
||||||
|
ul.projects
|
||||||
|
list-style: none
|
||||||
|
margin: 0
|
||||||
|
padding-top: 1em
|
||||||
|
|
||||||
|
li
|
||||||
|
margin: 1em 0
|
||||||
|
|
||||||
|
img, svg
|
||||||
|
width: 32px
|
||||||
|
vertical-align: middle
|
||||||
|
margin-right: 0.5em
|
||||||
|
|
||||||
|
p
|
||||||
|
margin-left: calc(32px + 0.5em)
|
||||||
|
|
||||||
ul.articles
|
ul.articles
|
||||||
list-style: none
|
list-style: none
|
||||||
|
@ -208,7 +284,6 @@ ul.articles
|
||||||
li
|
li
|
||||||
margin: 0
|
margin: 0
|
||||||
padding-top: 1em
|
padding-top: 1em
|
||||||
height: 70px
|
|
||||||
|
|
||||||
|
|
||||||
body.articles ul.articles li
|
body.articles ul.articles li
|
||||||
|
@ -257,50 +332,6 @@ a
|
||||||
margin-left: 0
|
margin-left: 0
|
||||||
|
|
||||||
|
|
||||||
#flickr
|
|
||||||
clear: both
|
|
||||||
|
|
||||||
header
|
|
||||||
margin-left: 2em
|
|
||||||
|
|
||||||
h1
|
|
||||||
margin: 0
|
|
||||||
padding: 0.6em 0 0 0
|
|
||||||
|
|
||||||
ul
|
|
||||||
display: block
|
|
||||||
height: 75px
|
|
||||||
overflow: hidden
|
|
||||||
margin-top: 1em
|
|
||||||
|
|
||||||
li
|
|
||||||
float: left
|
|
||||||
overflow: hidden
|
|
||||||
margin: 0 0 0 1em
|
|
||||||
display: block
|
|
||||||
position: relative
|
|
||||||
height: 75px
|
|
||||||
width: 75px
|
|
||||||
border: 1px solid #ccc
|
|
||||||
background: url(/images/photos.jpg?20120121) no-repeat 0 -75px
|
|
||||||
|
|
||||||
&:first-child
|
|
||||||
margin-left: 2em
|
|
||||||
|
|
||||||
img
|
|
||||||
-webkit-transition: opacity 500ms ease-out
|
|
||||||
transition: opacity 500ms ease-out
|
|
||||||
position: absolute
|
|
||||||
max-width: none
|
|
||||||
|
|
||||||
&:hover
|
|
||||||
opacity: 0
|
|
||||||
|
|
||||||
a.more
|
|
||||||
float: right
|
|
||||||
margin: 1em 2em 1em 0
|
|
||||||
|
|
||||||
|
|
||||||
body.articles #content nav
|
body.articles #content nav
|
||||||
padding-bottom: 1em
|
padding-bottom: 1em
|
||||||
|
|
||||||
|
@ -326,17 +357,12 @@ body.articles #content nav
|
||||||
|
|
||||||
|
|
||||||
#respond
|
#respond
|
||||||
margin-top: 10px
|
margin: 3em 0
|
||||||
padding: 10px
|
|
||||||
background-color: #ddd
|
|
||||||
clear: both
|
clear: both
|
||||||
|
|
||||||
h2
|
h2
|
||||||
margin-top: 0
|
margin-top: 0
|
||||||
|
|
||||||
li.short
|
|
||||||
float: right
|
|
||||||
|
|
||||||
#content
|
#content
|
||||||
.published
|
.published
|
||||||
font-family: $ans-serif
|
font-family: $ans-serif
|
||||||
|
@ -357,7 +383,7 @@ img.alignleft
|
||||||
margin: 5px 10px 5px 0
|
margin: 5px 10px 5px 0
|
||||||
|
|
||||||
|
|
||||||
img.feed-icon
|
.feed-icon
|
||||||
-webkit-transition: opacity 500ms ease-out
|
-webkit-transition: opacity 500ms ease-out
|
||||||
transition: opacity 500ms ease-out
|
transition: opacity 500ms ease-out
|
||||||
opacity: 1.0
|
opacity: 1.0
|
||||||
|
@ -365,6 +391,9 @@ img.feed-icon
|
||||||
&:hover
|
&:hover
|
||||||
opacity: 0.75
|
opacity: 0.75
|
||||||
|
|
||||||
|
.feed-icon-sup
|
||||||
|
vertical-align: super
|
||||||
|
|
||||||
img.comment
|
img.comment
|
||||||
padding-top: 1px
|
padding-top: 1px
|
||||||
|
|
||||||
|
@ -456,6 +485,12 @@ table
|
||||||
.vcard .photo
|
.vcard .photo
|
||||||
margin: 0 1em 1em 0
|
margin: 0 1em 1em 0
|
||||||
|
|
||||||
|
.text-right
|
||||||
|
text-align: right
|
||||||
|
|
||||||
|
.heading-icon
|
||||||
|
height: 20px
|
||||||
|
margin-right: 0.25em
|
||||||
|
|
||||||
// Weather
|
// Weather
|
||||||
body.weather
|
body.weather
|
||||||
|
@ -507,19 +542,7 @@ body.weather
|
||||||
margin-top: 1em
|
margin-top: 1em
|
||||||
color: #999
|
color: #999
|
||||||
|
|
||||||
@media screen and (max-width: 960px)
|
|
||||||
|
|
||||||
.column
|
|
||||||
float: none
|
|
||||||
width: auto
|
|
||||||
min-width: 0
|
|
||||||
max-width: 728px
|
|
||||||
|
|
||||||
|
|
||||||
@media screen and (max-width: 768px)
|
@media screen and (max-width: 768px)
|
||||||
#technical div, #personal div
|
|
||||||
padding: 0 1em
|
|
||||||
|
|
||||||
#content
|
#content
|
||||||
margin: 0 20px
|
margin: 0 20px
|
||||||
font-size: 20px
|
font-size: 20px
|
||||||
|
@ -535,19 +558,26 @@ body.weather
|
||||||
#search
|
#search
|
||||||
float: none
|
float: none
|
||||||
|
|
||||||
|
.home main
|
||||||
|
flex-direction: column
|
||||||
|
|
||||||
|
#projects
|
||||||
|
width: auto
|
||||||
|
margin-left: 0
|
||||||
|
margin-top: 2em
|
||||||
|
|
||||||
|
ul.projects
|
||||||
|
padding-top: 0
|
||||||
|
|
||||||
@media screen and (max-width: 515px)
|
@media screen and (max-width: 515px)
|
||||||
|
|
||||||
body
|
body
|
||||||
font-size: 20px
|
font-size: 20px
|
||||||
|
|
||||||
body > header span
|
body > header
|
||||||
float: right
|
text-align: center
|
||||||
display: inline
|
|
||||||
cursor: pointer
|
|
||||||
|
|
||||||
#menu
|
#menu
|
||||||
display: none
|
|
||||||
float: none
|
float: none
|
||||||
padding: 0.5em 0 0 0
|
padding: 0.5em 0 0 0
|
||||||
line-height: 2
|
line-height: 2
|
||||||
|
@ -582,9 +612,8 @@ body.weather
|
||||||
margin: 0 0 1em 1em
|
margin: 0 0 1em 1em
|
||||||
|
|
||||||
#respond
|
#respond
|
||||||
li.short
|
.short
|
||||||
margin: 0.5em 0 0 0
|
margin: 0.5em 0 0 0
|
||||||
float: none
|
|
||||||
display: block
|
display: block
|
||||||
|
|
||||||
footer
|
footer
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue