forked from wezm/wezm.net
Compare commits
No commits in common. "master" and "deploy" have entirely different histories.
1047 changed files with 831 additions and 26879 deletions
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
output/*/*/*/*/*.html
|
||||
output/fonts/*
|
||||
tmp/*
|
||||
.*.swp
|
||||
output/weather.json
|
||||
.sass-cache
|
1
.rvmrc
Normal file
1
.rvmrc
Normal file
|
@ -0,0 +1 @@
|
|||
rvm use default
|
14
Gemfile
Normal file
14
Gemfile
Normal file
|
@ -0,0 +1,14 @@
|
|||
source :rubygems
|
||||
|
||||
gem 'rake'
|
||||
gem 'mime-types'
|
||||
gem 'nanoc'
|
||||
gem 'bitly'
|
||||
gem 'haml'
|
||||
gem 'sass'
|
||||
gem 'rdiscount'
|
||||
gem 'rubypants'
|
||||
gem 'nokogiri'
|
||||
gem 'builder'
|
||||
gem 'fssm'
|
||||
gem 'systemu'
|
59
Gemfile.lock
Normal file
59
Gemfile.lock
Normal file
|
@ -0,0 +1,59 @@
|
|||
GEM
|
||||
remote: http://rubygems.org/
|
||||
specs:
|
||||
bitly (0.9.0)
|
||||
httparty (>= 0.7.6)
|
||||
multi_json (~> 1.3)
|
||||
oauth2 (>= 0.5.0, < 0.9)
|
||||
builder (3.2.0)
|
||||
colored (1.2)
|
||||
cri (2.3.0)
|
||||
colored (>= 1.2)
|
||||
faraday (0.8.7)
|
||||
multipart-post (~> 1.1)
|
||||
fssm (0.2.10)
|
||||
haml (4.0.2)
|
||||
tilt
|
||||
httparty (0.11.0)
|
||||
multi_json (~> 1.0)
|
||||
multi_xml (>= 0.5.2)
|
||||
httpauth (0.2.0)
|
||||
jwt (0.1.8)
|
||||
multi_json (>= 1.5)
|
||||
mime-types (1.23)
|
||||
multi_json (1.7.3)
|
||||
multi_xml (0.5.3)
|
||||
multipart-post (1.2.0)
|
||||
nanoc (3.6.3)
|
||||
cri (~> 2.3)
|
||||
nokogiri (1.5.9)
|
||||
oauth2 (0.8.1)
|
||||
faraday (~> 0.8)
|
||||
httpauth (~> 0.1)
|
||||
jwt (~> 0.1.4)
|
||||
multi_json (~> 1.0)
|
||||
rack (~> 1.2)
|
||||
rack (1.5.2)
|
||||
rake (10.0.4)
|
||||
rdiscount (2.0.7.3)
|
||||
rubypants (0.2.0)
|
||||
sass (3.2.8)
|
||||
systemu (2.5.2)
|
||||
tilt (1.4.1)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
bitly
|
||||
builder
|
||||
fssm
|
||||
haml
|
||||
mime-types
|
||||
nanoc
|
||||
nokogiri
|
||||
rake
|
||||
rdiscount
|
||||
rubypants
|
||||
sass
|
||||
systemu
|
23
README.md
23
README.md
|
@ -1,23 +0,0 @@
|
|||
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
Normal file
12
README.mkdn
Normal file
|
@ -0,0 +1,12 @@
|
|||
WezM.net
|
||||
========
|
||||
|
||||
Site Structure
|
||||
--------------
|
||||
|
||||
/articles
|
||||
/technical
|
||||
/category
|
||||
/personal
|
||||
/category
|
||||
/about
|
1
Rakefile
Normal file
1
Rakefile
Normal file
|
@ -0,0 +1 @@
|
|||
require 'nanoc3/tasks'
|
|
@ -21,13 +21,6 @@ compile %r(/\d{4}/.*) do
|
|||
layout 'article'
|
||||
layout 'default'
|
||||
filter :rubypants
|
||||
filter :colorize_syntax, default_colorizer: :rouge
|
||||
end
|
||||
|
||||
compile %r(/about/.*) do
|
||||
filter :rdiscount
|
||||
layout 'topphoto'
|
||||
filter :rubypants
|
||||
end
|
||||
|
||||
compile %r{.*/feed/} do
|
||||
|
@ -42,13 +35,8 @@ compile %r{^/(?:screen|mobile)/$} do
|
|||
filter :sass
|
||||
end
|
||||
|
||||
compile %r{/rouge/$} do
|
||||
filter :erb
|
||||
end
|
||||
|
||||
compile '*' do
|
||||
filter :rdiscount
|
||||
layout 'page'
|
||||
layout 'default'
|
||||
filter :rubypants
|
||||
end
|
||||
|
@ -70,7 +58,7 @@ end
|
|||
# (path.dirname + 'articles.json').to_s
|
||||
# end
|
||||
|
||||
route %r{^/(?:screen|mobile|rouge)/$} do
|
||||
route %r{^/(?:screen|mobile)/$} do
|
||||
File.join("", "css", File.basename(item.identifier) + ".css")
|
||||
end
|
||||
|
28
TODO
Normal file
28
TODO
Normal file
|
@ -0,0 +1,28 @@
|
|||
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
|
||||
* Add google tracking to Something to add box
|
||||
* 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
|
|
@ -24,13 +24,11 @@ enable_output_diff: false
|
|||
# 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
|
||||
# “layout/” directories in the site directory.
|
||||
string_pattern_type: legacy
|
||||
data_sources:
|
||||
-
|
||||
# The type is the identifier of the data source. By default, this will be
|
||||
# `filesystem_unified`.
|
||||
type: filesystem_unified
|
||||
identifier_type: legacy
|
||||
|
||||
# The path where items should be mounted (comparable to mount points in
|
||||
# Unix-like systems). This is “/” by default, meaning that items will have
|
||||
|
@ -43,11 +41,12 @@ data_sources:
|
|||
# same as the items root, but applies to layouts rather than items.
|
||||
layouts_root: /
|
||||
|
||||
base_url: 'https://www.wezm.net'
|
||||
base_url: 'http://www.wezm.net'
|
||||
deploy:
|
||||
default:
|
||||
kind: rsync
|
||||
dst: "hardforze.binarytrance.com:infrastructure/volumes/www/wezm.net"
|
||||
dst: "mini.wezm.net:www/www.wezm.net"
|
||||
#dst: "wezm@crucial.wezm.net:www"
|
||||
#dst: "lightwave.wezm.net:www/www.wezm.net"
|
||||
#options: [ '-rlpgoDvz', '--delete', '--exclude=".svn"' ]
|
||||
options: [ '-avz' ]
|
||||
options: [ '-avz', '--delete', '--exclude=".svn"' ]
|
||||
|
104
content/about.html
Normal file
104
content/about.html
Normal file
|
@ -0,0 +1,104 @@
|
|||
Me
|
||||
--
|
||||
|
||||
<div class="vcard">
|
||||
<img src="/images/Photo%20of%20Wesley%20Moore.jpg" width="256" height="256" alt="Photo of Wesley Moore" class="photo" />
|
||||
<p>WezM.net is <span class="fn">Wesley Moore</span>’s personal
|
||||
home page, a <span class="title">programmer</span> from <span
|
||||
class="adr"><span class="locality">Melbourne</span> <span
|
||||
class="country-name">Australia</span></span>. Here you will find posts
|
||||
about various projects I'm working on, useful tips I've discovered as
|
||||
well as some random posts about other things going on in my life.</p>
|
||||
</div>
|
||||
|
||||
### 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>App.net – <a href="https://alpha.app.net/wezm">https://alpha.app.net/wezm</a></li>
|
||||
<li>Twitter – <a href="http://twitter.com/wezm">http://twitter.com/wezm</a></li>
|
||||
<li>Facebook – <a href="http://www.facebook.com/wjmoore">http://www.facebook.com/wjmoore</a></li>
|
||||
<li>GitHub – <a href="https://github.com/wezm">https://github.com/wezm</a></li>
|
||||
<li>StackOverflow – <a href="http://stackoverflow.com/users/38820/wes">http://stackoverflow.com/users/38820/wes</a></li>
|
||||
</ul>
|
||||
|
||||
This Site
|
||||
---------
|
||||
|
||||
This site is written in [Markdown][markdown] and [SASS][sass], generated using
|
||||
[nanoc][nanoc], enhanced with [jQuery][jquery] and hosted on VPS running
|
||||
[Debian GNU/Linux][debian] and [nginx][nginx]. It 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
|
||||
|
||||
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.
|
||||
|
||||
Projects
|
||||
--------
|
||||
|
||||
Visit the [projects page](/projects/) for details of some of my software and
|
||||
hardware projects.
|
||||
|
||||
Photography
|
||||
-----------
|
||||
|
||||
I'm an amateur photographer. See my [Flickr photostream][flickr] for some of my
|
||||
photos. My primary camera is a Canon 400D SLR, with the following lenses:
|
||||
|
||||
* Canon EF 28mm ƒ/1.8 USM
|
||||
* Canon EFS 18-55mm ƒ/3.5–5.6
|
||||
* Canon EF 75-300mm ƒ/4–5.6
|
||||
|
||||
[nanoc]: http://nanoc.stoneship.org/
|
||||
[markdown]: http://daringfireball.net/projects/markdown/
|
||||
[nginx]: http://nginx.org/
|
||||
[twitter]: http://twitter.com/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/
|
2
content/about.yaml
Normal file
2
content/about.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
title: About
|
70
content/mobile.sass
Normal file
70
content/mobile.sass
Normal file
|
@ -0,0 +1,70 @@
|
|||
body.home
|
||||
min-width: 0
|
||||
|
||||
|
||||
body > header span
|
||||
float: right
|
||||
display: inline
|
||||
cursor: pointer
|
||||
|
||||
#menu
|
||||
display: none
|
||||
float: none
|
||||
padding: 0.5em 0 0 0
|
||||
line-height: 2
|
||||
|
||||
li
|
||||
margin: 0 1em 0 0
|
||||
|
||||
#technical div, #personal div
|
||||
padding: 0 1em
|
||||
|
||||
|
||||
.column
|
||||
float: none
|
||||
width: auto
|
||||
min-width: 0
|
||||
|
||||
|
||||
#content
|
||||
min-width: 0
|
||||
margin-right: 0
|
||||
padding: 0 10px
|
||||
|
||||
h1
|
||||
font-size: 30px
|
||||
|
||||
|
||||
ul.articles li
|
||||
margin: 0
|
||||
padding-top: 0
|
||||
height: auto
|
||||
|
||||
|
||||
nav.search
|
||||
li
|
||||
display: list-item
|
||||
margin: 1em 0 0 0
|
||||
font-size: large
|
||||
|
||||
|
||||
#search
|
||||
float: none
|
||||
|
||||
|
||||
#flickr
|
||||
|
||||
header
|
||||
margin-left: 1em
|
||||
|
||||
ul
|
||||
height: auto
|
||||
|
||||
li, li:first-child
|
||||
margin: 0 0 1em 1em
|
||||
|
||||
#respond
|
||||
li.short
|
||||
margin: 0.5em 0 0 0
|
||||
float: none
|
||||
display: block
|
3
content/mobile.yaml
Normal file
3
content/mobile.yaml
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
title: Stylesheet for mobile devices
|
||||
is_hidden: true
|
|
@ -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?
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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.
|
||||
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.
|
||||
<!--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 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.
|
||||
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.
|
||||
|
||||
<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'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.
|
||||
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.
|
||||
|
||||
<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 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 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.
|
||||
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.
|
||||
|
||||
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 revolutionary (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 revolutionarily (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>
|
||||
<div style="clear: both;"> </div>
|
||||
<div style="clear: both;"> </div>
|
|
@ -9,6 +9,11 @@ Laden with a backpack containing a laptop, lunch and a change of clothes amongst
|
|||
|
||||
I did make it to work though, albeit somewhat hot and sweaty. The trip took about 40mins. Since that first day I've done the ride another 10 or so times, refined the route and have begun working on shortening the travel time. First I got it down to 30 mins and my best so far is 28 mins something. I track each ride using a brilliant little (free) iPhone app called <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=289333140&mt=8">Trailguru</a> (app store link). It records my ride logging the route with GPS, the duration and distance. When I arrive at my destination I stop it recording and can then upload the ride to the <a href="http://www.trailguru.com/">companion site</a>. Each trail gets a page where there is plot of the route on Google Maps, graphs of altitude, pace and speed as well as other stats.
|
||||
|
||||
Below is a sample ride to work that Trailguru recorded:
|
||||
<iframe src="http://www.trailguru.com/ui/embed/embedTrack.php?thid=205513" height="475px" width="100%" frameborder="0">
|
||||
<a href="http://www.trailguru.com/wiki/index.php/Track:4EKP">8 to (Road Biking) | Flemington VIC 3031, Australia</a>
|
||||
</iframe>
|
||||
|
||||
Trailguru also lets you search for trails and will show others near your own. You can also take and upload photos with the iPhone app. I haven't used that feature yet as my phone is in my bag during the ride but I'd like to get an iPhone bike mount so I can use it as a speedometer as well. You can see all my trails on my <a href="http://www.trailguru.com/ui/user/tracks/Wmoore">Trailguru user page</a>.
|
||||
|
||||
<h3>Road Rage</h3>
|
||||
|
@ -20,4 +25,4 @@ I have mostly avoided any incidents with cars so far but I did have a small bout
|
|||
I'm trying to do three rides a week, Monday, Wednesday and Friday. That gives me a break in between while I'm getting used to it and should also still be <a href="http://notahat.com/posts/30">beneficial fitness wise</a>. However I've only managed that once so far due to after work engagements and bad weather. Time will tell how it goes but I'm enjoying it so far.
|
||||
|
||||
_______________
|
||||
<sup>1</sup> Several year old GT avalanche 2.0 for those that are into such things.
|
||||
<sup>1</sup> Several year old GT avalanche 2.0 for those that are into such things.
|
|
@ -4,11 +4,11 @@ permalink: http://www.wezm.net/2009/05/rafael-bonachelas-360-degrees/
|
|||
kind: article
|
||||
section: personal
|
||||
created_at: 2009-05-30 15:46:04.000000000 +10:00
|
||||
title: Rafael Bonachela's 360°
|
||||
title: Rafael Bonachela's 360°
|
||||
post_id: 141
|
||||
tags: []
|
||||
categories:
|
||||
- Entertainment
|
||||
status: publish
|
||||
extra: Rafael Bonachela's 360° turned out to be an underwhelming birthday present.
|
||||
extra: Rafael Bonachela's 360° turned out to be an underwhelming birthday present.
|
||||
short_url: http://bit.ly/9puIKd
|
|
@ -56,10 +56,10 @@ what I'm most interested in.
|
|||
<figcaption>The Finished Installation</figcaption>
|
||||
</figure>
|
||||
|
||||
To log and upload the [weather readings][weather] I'm using the [wview][wview]
|
||||
weather station software. wview is running on the Mac mini connected to our TV.
|
||||
The site layout is pretty basic so I hope to come up with a cleaner design in
|
||||
the coming weeks.
|
||||
To log and upload the weather readings to [http://weather.wezm.net/][weather]
|
||||
I'm using the [wview][wview] weather station software. wview is running on the
|
||||
Mac mini connected to our TV. The site layout is pretty basic so I hope to come
|
||||
up with a cleaner design in the coming weeks.
|
||||
|
||||
**Update:** I built a custom logging and charting solution. See the post,
|
||||
[Weather Station Software][software].
|
||||
|
@ -67,4 +67,4 @@ the coming weeks.
|
|||
[software]: /technical/2010/09/weather-station-software/
|
||||
[WS2355]: http://www.lacrossetechnology.com.au/shop2/product_info.php?cPath=21&products_id=93
|
||||
[wview]: http://www.wviewweather.com/
|
||||
[weather]: /weather/
|
||||
[weather]: http://weather.wezm.net/
|
|
@ -16,16 +16,16 @@ Below are some of my favourite photos from the trip.
|
|||
|
||||
[flickr]: http://www.flickr.com/photos/wezm/sets/72157632405621933/
|
||||
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8335447321/" title="The Gang by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8351/8335447321_f54cab5ac7_b.jpg" alt="The Gang"></a></figure>
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8335447321/" title="The Gang by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8351/8335447321_f54cab5ac7.jpg" width="500" height="333" alt="The Gang"></a></figure>
|
||||
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8335449191/" title="_MG_2560 by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8219/8335449191_1864e2015b_b.jpg" alt="_MG_2560"></a></figure>
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8335449191/" title="_MG_2560 by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8219/8335449191_1864e2015b.jpg" width="333" height="500" alt="_MG_2560"></a></figure>
|
||||
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8335468571/" title="Wet Leaf by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8493/8335468571_65d445b2f0_b.jpg" alt="Wet Leaf"></a></figure>
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8335468571/" title="Wet Leaf by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8493/8335468571_65d445b2f0.jpg" width="500" height="333" alt="Wet Leaf"></a></figure>
|
||||
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8336509904/" title="Corrigan Suspension Bridge by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8221/8336509904_f91110bd7e_b.jpg" alt="Corrigan Suspension Bridge"></a></figure>
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8336509904/" title="Corrigan Suspension Bridge by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8221/8336509904_f91110bd7e.jpg" width="500" height="333" alt="Corrigan Suspension Bridge"></a></figure>
|
||||
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8336530324/" title="_MG_2736 by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8352/8336530324_9ea598a818_b.jpg" alt="_MG_2736"></a></figure>
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8336530324/" title="_MG_2736 by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8352/8336530324_9ea598a818.jpg" width="333" height="500" alt="_MG_2736"></a></figure>
|
||||
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8335479675/" title="Tidal River by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8211/8335479675_4f3fb4a105_b.jpg" alt="Tidal River"></a></figure>
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8335479675/" title="Tidal River by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8211/8335479675_4f3fb4a105.jpg" width="500" height="375" alt="Tidal River"></a></figure>
|
||||
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8335482115/" title="Squeaky Beach by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8078/8335482115_04fbf1c43b_b.jpg" alt="Squeaky Beach"></a></figure>
|
||||
<figure><a href="http://www.flickr.com/photos/wezm/8335482115/" title="Squeaky Beach by wezm, on Flickr"><img src="http://farm9.staticflickr.com/8078/8335482115_04fbf1c43b.jpg" width="500" height="158" alt="Squeaky Beach"></a></figure>
|
87
content/projects.html
Normal file
87
content/projects.html
Normal file
|
@ -0,0 +1,87 @@
|
|||
I have a collection of open-source software on [GitHub][github]. Some of the
|
||||
more noteworthy projects are listed below.
|
||||
|
||||
[github]: http://github.com/wezm
|
||||
|
||||
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-imlib](#lua-imlib) fork.
|
||||
|
||||
[flickr]: http://www.flickr.com/photos/wezm/
|
||||
[monothumb]: https://github.com/wezm/monothumb
|
||||
|
||||
<a name="lua-imlib"></a>
|
||||
lua-imlib2
|
||||
----------
|
||||
|
||||
[lua-imlib2] is a fork of the published lua-imlib library with additional
|
||||
functionality. This library allows image processing in Lua. Specifically I
|
||||
added:
|
||||
|
||||
* Support for filters
|
||||
* Image blending
|
||||
|
||||
[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/
|
||||
|
||||
OCMustache
|
||||
----------
|
||||
|
||||
[OCMustache][ocmustache] brings the [Mustache templating language][mustache] to
|
||||
Objective-C. The parser is built using the [Ragel State Machine
|
||||
Compiler][ragel] in the hope that it will help ensure fast and correct parsing.
|
||||
|
||||
[ocmustache]: https://github.com/wezm/OCMustache
|
||||
[mustache]: http://mustache.github.com/
|
||||
[ragel]: http://www.complang.org/ragel/
|
||||
|
||||
Kyoto Client
|
||||
------------
|
||||
|
||||
[kyoto-client][kyoto-client] is a [node.js][node] client library for the
|
||||
[Kyoto Tycoon][kyoto-tycoon] server. Kyoto Tycoon is the server component of
|
||||
the [Kyoto Cabinet][kyoto-cabinet] key-value store. kyoto-client is available
|
||||
for installation via [npm].
|
||||
|
||||
[kyoto-client]: http://kyoto-client.org
|
||||
[kyoto-tycoon]: http://fallabs.com/kyototycoon/
|
||||
[kyoto-cabinet]: http://1978th.net/kyotocabinet/
|
||||
|
||||
Weather Station
|
||||
---------------
|
||||
|
||||
I have a weather station at my home for keeping track of the local conditions.
|
||||
I added support for [SQLite][sqlite] logging to [my fork][open2300fork] of the
|
||||
[Open2300][open2300] project. The weather station is connected to my Mac.
|
||||
Every 5 minutes it logs the current conditions, uploads them to my server and
|
||||
invokes a [lua program][weather-tools] to generate a [JSON][json] file,
|
||||
which is used to produce the [Weather page][weather].
|
||||
|
||||
[sqlite]: http://www.sqlite.org/
|
||||
[open2300]: http://www.lavrsen.dk/foswiki/bin/view/Open2300/WebHome
|
||||
[open2300fork]: http://github.com/wezm/open2300
|
||||
[weather]: http://weather.wezm.net/
|
||||
[json]: http://www.json.org/
|
||||
[weather-tools]: http://github.com/wezm/weather-tools
|
||||
|
||||
See the following posts for more information on the weather station:
|
||||
|
||||
* [Weather Station Install](/personal/2010/09/weather-station/)
|
||||
* [Weather Station Software Update](/technical/2010/09/weather-station-software/)
|
3
content/robots.txt
Normal file
3
content/robots.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
User-Agent: *
|
||||
Disallow:
|
||||
Sitemap: <%= @site.config[:base_url] %>/sitemap.xml
|
|
@ -1,13 +1,14 @@
|
|||
$ans-serif: Carlito, Calibri, sans-serif
|
||||
$header-colour: #242424
|
||||
$link-color: #36454F
|
||||
$ans-serif: "Helvetica Neue", Helvetica, "Liberation Sans", "Bitstream Vera Sans", Tahoma, Geneva, Arial, sans-serif
|
||||
|
||||
body
|
||||
font-family: $ans-serif
|
||||
|
||||
font-family: Constantia, Georgia, "Bitstream Vera Serif", "Liberation Serif", serif
|
||||
font-size: 16px
|
||||
background: #fff
|
||||
color: #464646
|
||||
color: #223
|
||||
|
||||
&.home
|
||||
min-width: 960px
|
||||
|
||||
|
||||
// HTML5 expectations - should go in reset perhaps
|
||||
header, footer, nav, article, figure, figcaption
|
||||
|
@ -15,7 +16,7 @@ header, footer, nav, article, figure, figcaption
|
|||
|
||||
|
||||
p, li, blockquote
|
||||
line-height: 1.3
|
||||
line-height: 1.2
|
||||
|
||||
|
||||
p, pre
|
||||
|
@ -47,7 +48,7 @@ h1, h2, h3, h4, h5, h6
|
|||
font-family: $ans-serif
|
||||
margin: 0.6em 0 0.5em 0
|
||||
color: #111
|
||||
font-weight: 500
|
||||
font-weight: 200
|
||||
|
||||
|
||||
h1
|
||||
|
@ -78,7 +79,7 @@ a
|
|||
text-decoration: underline
|
||||
|
||||
&:link, &:visited
|
||||
color: $link-color
|
||||
color: #36454F
|
||||
|
||||
h1 a
|
||||
text-decoration: none
|
||||
|
@ -87,20 +88,26 @@ h1 a
|
|||
color: #111
|
||||
|
||||
|
||||
body.home h1 > a
|
||||
-webkit-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
|
||||
vertical-align: super
|
||||
font-size: 0.8em
|
||||
|
||||
|
||||
pre, code, tt
|
||||
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
|
||||
font-family: Consolas, "Andale Mono", "Liberation Mono", Menlo, Monaco, "Bitstream Vera Sans Mono", monospace
|
||||
|
||||
code, tt
|
||||
font-size: smaller
|
||||
|
||||
pre
|
||||
font-size: 13px
|
||||
overflow-x: auto
|
||||
padding-bottom: 0.25em
|
||||
|
||||
|
||||
blockquote
|
||||
|
@ -112,39 +119,25 @@ figure
|
|||
margin: 1em auto
|
||||
text-align: center
|
||||
|
||||
&.screenshot
|
||||
img
|
||||
max-width: 50%
|
||||
|
||||
figcaption
|
||||
font-size: smaller
|
||||
font-size: small
|
||||
text-align: center
|
||||
font-style: italic
|
||||
|
||||
img
|
||||
max-width: 100%
|
||||
.label
|
||||
font-weight: bold
|
||||
|
||||
img.cover-photo
|
||||
display: block
|
||||
margin: 0 auto
|
||||
|
||||
img.lobsters
|
||||
position: relative
|
||||
top: 2px
|
||||
|
||||
video
|
||||
max-width: 100%
|
||||
|
||||
body > header
|
||||
font-family: $ans-serif
|
||||
font-size: 18px
|
||||
color: white
|
||||
padding: 0.5em
|
||||
background-color: $header-colour
|
||||
background: #1C1C1C
|
||||
|
||||
a
|
||||
-webkit-transition: border-bottom-color 500ms ease-out
|
||||
transition: border-bottom-color 500ms ease-out
|
||||
border-bottom: 2px solid rgba(255, 255, 255, 0.0)
|
||||
&:link, &:visited
|
||||
text-decoration: none
|
||||
|
@ -153,128 +146,58 @@ body > header
|
|||
&:hover
|
||||
border-bottom-color: rgba(255, 255, 255, 1.0)
|
||||
|
||||
span
|
||||
display: none
|
||||
|
||||
|
||||
#menu
|
||||
float: right
|
||||
padding-right: 0.25em
|
||||
|
||||
li
|
||||
font-size: 14px
|
||||
font-weight: bold
|
||||
text-transform: uppercase
|
||||
letter-spacing: 0.5px
|
||||
font-size: inherit
|
||||
|
||||
|
||||
#content
|
||||
margin: 0 auto
|
||||
padding: 0 20px
|
||||
clear: both
|
||||
max-width: 728px
|
||||
font-size: 18px
|
||||
min-width: 600px
|
||||
margin-right: 40%
|
||||
|
||||
|
||||
body.articles #content, body.weather #content
|
||||
min-width: 0
|
||||
margin-right: 0
|
||||
|
||||
|
||||
footer
|
||||
color: #999
|
||||
border-top: 1px solid #999
|
||||
margin: 3em 20px 2em
|
||||
margin: 1em
|
||||
clear: both
|
||||
|
||||
.copyright
|
||||
font-family: $ans-serif
|
||||
font-size: 14px
|
||||
margin-top: 1em
|
||||
padding-top: 1em
|
||||
display: block
|
||||
font-weight: 200
|
||||
|
||||
.align-top
|
||||
vertical-align: top
|
||||
|
||||
.with-border
|
||||
border: 1px solid #D8D8D8
|
||||
|
||||
.no-border
|
||||
border: none
|
||||
text-decoration: none
|
||||
|
||||
.socials
|
||||
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
|
||||
.column
|
||||
float: left
|
||||
width: 50%
|
||||
margin: 0
|
||||
padding-top: 1em
|
||||
min-width: 480px
|
||||
|
||||
li
|
||||
margin: 1em 0
|
||||
|
||||
img, svg
|
||||
width: 32px
|
||||
vertical-align: middle
|
||||
margin-right: 0.5em
|
||||
#personal div
|
||||
padding-right: 2em
|
||||
|
||||
|
||||
.column div
|
||||
padding: 0 0 0 2em
|
||||
|
||||
p
|
||||
margin-left: calc(32px + 0.5em)
|
||||
|
||||
ul.articles
|
||||
list-style: none
|
||||
|
@ -284,6 +207,7 @@ ul.articles
|
|||
li
|
||||
margin: 0
|
||||
padding-top: 1em
|
||||
height: 70px
|
||||
|
||||
|
||||
body.articles ul.articles li
|
||||
|
@ -304,9 +228,10 @@ ul.articles
|
|||
strong
|
||||
font-family: $ans-serif
|
||||
margin: 0
|
||||
font-weight: normal
|
||||
font-weight: 200
|
||||
display: block
|
||||
font-size: 21px
|
||||
font-size: 18px
|
||||
|
||||
|
||||
a
|
||||
&.more
|
||||
|
@ -332,6 +257,48 @@ a
|
|||
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
|
||||
position: absolute
|
||||
|
||||
&:hover
|
||||
opacity: 0
|
||||
|
||||
a.more
|
||||
float: right
|
||||
margin: 1em 2em 1em 0
|
||||
|
||||
|
||||
body.articles #content nav
|
||||
padding-bottom: 1em
|
||||
|
||||
|
@ -357,12 +324,20 @@ body.articles #content nav
|
|||
|
||||
|
||||
#respond
|
||||
margin: 3em 0
|
||||
margin-top: 10px
|
||||
padding: 10px
|
||||
background-color: #ddd
|
||||
clear: both
|
||||
|
||||
h2
|
||||
padding-left: 42px
|
||||
line-height: 32px
|
||||
background: url(/images/comment32.png) no-repeat top left
|
||||
margin-top: 0
|
||||
|
||||
li.short
|
||||
float: right
|
||||
|
||||
#content
|
||||
.published
|
||||
font-family: $ans-serif
|
||||
|
@ -374,28 +349,18 @@ body.articles #content nav
|
|||
float: left
|
||||
margin: 5px 10px 5px 0
|
||||
|
||||
.keyboard-shortcut
|
||||
font-family: "Helvetica Neue", Helvetica, "Liberation Sans", "Bitstream Vera Sans", Tahoma, Geneva, Arial, sans-serif
|
||||
font-size: 1.5ex
|
||||
|
||||
img.alignleft
|
||||
float: left
|
||||
margin: 5px 10px 5px 0
|
||||
|
||||
|
||||
.feed-icon
|
||||
img.feed-icon
|
||||
-webkit-transition: opacity 500ms ease-out
|
||||
transition: opacity 500ms ease-out
|
||||
opacity: 1.0
|
||||
opacity: 0.5
|
||||
|
||||
&:hover
|
||||
opacity: 0.75
|
||||
|
||||
.feed-icon-sup
|
||||
vertical-align: super
|
||||
|
||||
img.comment
|
||||
padding-top: 1px
|
||||
opacity: 1.0
|
||||
|
||||
#content .alignright, img.alignright
|
||||
float: right
|
||||
|
@ -485,25 +450,18 @@ table
|
|||
.vcard .photo
|
||||
margin: 0 1em 1em 0
|
||||
|
||||
.text-right
|
||||
text-align: right
|
||||
|
||||
.heading-icon
|
||||
height: 20px
|
||||
margin-right: 0.25em
|
||||
|
||||
|
||||
// Weather
|
||||
body.weather
|
||||
|
||||
#content
|
||||
max-width: 100%
|
||||
margin: 0 20px
|
||||
|
||||
#current > .temperature
|
||||
|
||||
|
||||
.temperature
|
||||
font-family: $ans-serif
|
||||
|
||||
font-weight: 200
|
||||
|
||||
.current
|
||||
font-size: 36px
|
||||
|
||||
|
@ -541,85 +499,3 @@ body.weather
|
|||
font-size: smaller
|
||||
margin-top: 1em
|
||||
color: #999
|
||||
|
||||
@media screen and (max-width: 768px)
|
||||
#content
|
||||
margin: 0 20px
|
||||
font-size: 20px
|
||||
|
||||
@media screen and (max-width: 680px)
|
||||
|
||||
nav.search
|
||||
li
|
||||
display: list-item
|
||||
margin: 1em 0 0 0
|
||||
font-size: large
|
||||
|
||||
#search
|
||||
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)
|
||||
|
||||
body
|
||||
font-size: 20px
|
||||
|
||||
body > header
|
||||
text-align: center
|
||||
|
||||
#menu
|
||||
float: none
|
||||
padding: 0.5em 0 0 0
|
||||
line-height: 2
|
||||
|
||||
li
|
||||
margin: 0 1em 0 0
|
||||
|
||||
#content
|
||||
min-width: 0
|
||||
margin: 0 10px
|
||||
|
||||
h1
|
||||
font-size: 30px
|
||||
|
||||
body.weather #content
|
||||
margin: 0 10px
|
||||
|
||||
ul.articles li
|
||||
margin: 0
|
||||
padding-top: 0
|
||||
height: auto
|
||||
|
||||
#flickr
|
||||
|
||||
header
|
||||
margin-left: 1em
|
||||
|
||||
ul
|
||||
height: auto
|
||||
|
||||
li, li:first-child
|
||||
margin: 0 0 1em 1em
|
||||
|
||||
#respond
|
||||
.short
|
||||
margin: 0.5em 0 0 0
|
||||
display: block
|
||||
|
||||
footer
|
||||
margin: 20px 10px
|
||||
|
||||
figure.screenshot
|
||||
img
|
||||
max-width: 100%
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
Ever since the now very quiet drunkenbatman hosted the <a href="http://web.archive.org/web/20090531184506/http://www.drunkenblog.com/evening_at_adler/">Evening at Adler</a> and Gus Mueller posted, "<a href="http://www.gusmueller.com/blog/archives/2005/12/25.html">How to become an independent programmer in just 1068 days</a>", its has been a goal of mine to one day live the indie Mac developer dream.
|
||||
Ever since the now very quiet drunkenbatman hosted the <a href="http://www.drunkenblog.com/evening_at_adler/">Evening at Adler</a> and Gus Mueller posted, "<a href="http://www.gusmueller.com/blog/archives/2005/12/25.html">How to become an independent programmer in just 1068 days</a>", its has been a goal of mine to one day live the indie Mac developer dream.
|
||||
|
||||
Over the years I've dabbled in Mac OS X development but have struggled to find the time in between a full time job and also having a life to be able to see something through from start to finish. I'm convinced the ideas are sound because frequently others eventually release similar products. My last endeavour was for a better archiver than that provided by the Finder. It was to be dead simple, taking interface cues from things like <a href="http://appzapper.com/">AppZapper</a>. I discovered a little while ago that the fine folks at Apimac had created <a href="http://www.apimac.com/compress_files/">Compress Files</a>, which implemented my ideas and more.
|
||||
|
||||
Frustrated by this lack of time I decided to do something about it (after a small helping of procrastination). Last week I successfully negotiated a reduction to 4 days per week at my day job, with the fifth day allocated to Mac development. The first day of my new job is Mon Feb 11, 2008. However I find myself with a bit of a problem, I don't have any current projects to actually work on. Heeding the advice in Gus' post for <abbr title="Think small and make sure you really like what you are doing">Lesson #1</abbr> I'm seeking ideas from the Mac using community for a small application that I can use to get started. So if you got an idea for a small application that you don't mind sharing feel free to post a comment and let me know, it might be just what I'm looking for.
|
||||
Frustrated by this lack of time I decided to do something about it (after a small helping of procrastination). Last week I successfully negotiated a reduction to 4 days per week at my day job, with the fifth day allocated to Mac development. The first day of my new job is Mon Feb 11, 2008. However I find myself with a bit of a problem, I don't have any current projects to actually work on. Heeding the advice in Gus' post for <abbr title="Think small and make sure you really like what you are doing">Lesson #1</abbr> I'm seeking ideas from the Mac using community for a small application that I can use to get started. So if you got an idea for a small application that you don't mind sharing feel free to post a comment and let me know, it might be just what I'm looking for.
|
12
content/technical/2008/03/create-empty-tar-file.html
Normal file
12
content/technical/2008/03/create-empty-tar-file.html
Normal file
|
@ -0,0 +1,12 @@
|
|||
Strangely enough I had the need to determine if it was possible to create a valid but empty tar file. Turns out it is. The method varies slightly depending on your flavour of tar program, here's how to do it on three of the big ones:
|
||||
|
||||
<strong>BSD</strong>
|
||||
<code>tar cvf empty.tar --from-file /dev/null</code>
|
||||
|
||||
<strong>GNU (Linux)</strong>
|
||||
<code>tar cvf empty.tar --files-from /dev/null</code>
|
||||
|
||||
<strong>Solaris</strong>
|
||||
<code>tar cvf empty.tar -I /dev/null</code>
|
||||
|
||||
Now if you wondering why I would want this, here's the explanation. I work on a batch processing system that processes files delivered from other systems. In some cases its necessary to wait for a file to arrive but give up after some time. In order to give up we copy an empty file (automatically) so that the processing proceeds normally. Ordinarily this is an empty plain text file but for the system I'm working on I'm expecting a tar file, hence the need for an empty one.
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue