1
0
Fork 0
forked from wezm/wezm.net

Compare commits

..

1 commit

Author SHA1 Message Date
ebd7574863 Draft: cumquat-infused-vodka 2018-01-01 10:07:42 +11:00
1039 changed files with 658 additions and 12824 deletions

6
.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
output/*/*/*/*/*.html
output/fonts/*
tmp/*
.*.swp
output/weather.json
.sass-cache

1
.ruby-version Normal file
View file

@ -0,0 +1 @@
2.4.1

16
Gemfile Normal file
View file

@ -0,0 +1,16 @@
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 Normal file
View file

@ -0,0 +1,105 @@
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

View file

@ -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 20082019. 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
View file

@ -0,0 +1,12 @@
WezM.net
========
Site Structure
--------------
/articles
/technical
/category
/personal
/category
/about

1
Rakefile Normal file
View file

@ -0,0 +1 @@
require 'nanoc3/tasks'

View file

@ -10,6 +10,13 @@ compile '/weather/' do
filter :erb filter :erb
end end
compile %r{/personal/2017/11/cumquat-infused-vodka/} do
filter :rdiscount
layout 'article'
layout 'topphoto'
filter :rubypants
end
compile %r{/(?:technical|personal|)articles/(page/|)} do compile %r{/(?:technical|personal|)articles/(page/|)} do
filter :erb filter :erb
layout 'articles' layout 'articles'
@ -21,7 +28,6 @@ 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
@ -42,13 +48,8 @@ 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
@ -70,7 +71,7 @@ end
# (path.dirname + 'articles.json').to_s # (path.dirname + 'articles.json').to_s
# end # end
route %r{^/(?:screen|mobile|rouge)/$} do route %r{^/(?:screen|mobile)/$} do
File.join("", "css", File.basename(item.identifier) + ".css") File.join("", "css", File.basename(item.identifier) + ".css")
end end

27
TODO Normal file
View file

@ -0,0 +1,27 @@
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

View file

@ -24,13 +24,11 @@ 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
@ -43,11 +41,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: 'https://www.wezm.net' base_url: 'http://www.wezm.net'
deploy: deploy:
default: default:
kind: rsync kind: rsync
dst: "hardforze.binarytrance.com:infrastructure/volumes/www/wezm.net" dst: "eforce.binarytrance.com:/usr/local/www/www.wezm.net"
#options: [ '-rlpgoDvz', '--delete', '--exclude=".svn"' ] #options: [ '-rlpgoDvz', '--delete', '--exclude=".svn"' ]
options: [ '-avz' ] options: [ '-avz', '--omit-dir-times', '--delete', '--exclude=".svn"' ]

83
content/about.html Normal file
View file

@ -0,0 +1,83 @@
<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/

View file

@ -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 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--> <!--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. <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> <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;">&nbsp;</div> <div style="clear: both;">&nbsp;</div>

View file

@ -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][weather] I'm using the [wview][wview] To log and upload the weather readings to [http://weather.wezm.net/][weather]
weather station software. wview is running on the Mac mini connected to our TV. I'm using the [wview][wview] weather station software. wview is running on the
The site layout is pretty basic so I hope to come up with a cleaner design in Mac mini connected to our TV. The site layout is pretty basic so I hope to come
the coming weeks. up with a cleaner design in 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 @@ 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]: /weather/ [weather]: http://weather.wezm.net/

View file

@ -0,0 +1,10 @@
Some 9 years after my [first attempt](/personal/2008/11/cumquat-liqueur/) at
making Cumquat liqueur my little Cumquat tree was loaded with fruit again.
The
tree is living at my parents house after I moved into an apartment and no
longer had space for it and Mum asked what to do with the fruit. The
orginal liqueur turned out fine but wasn't really to my taste so my suggestion
was to try making Cumquat infused vodka.

View file

@ -0,0 +1,14 @@
---
title: Cumquat Infused Vodka
extra: My little tree makes booze again
kind: article
section: personal
created_at: 2017-11-26 20:35:00.000000000 +10:00
keywords:
- vodka
- alcohol
- cumquat
- kumquat
photo: /images/2017/IMG_5868.jpg
photo_alt: Cumquats
short_url:

View file

@ -1,46 +1,37 @@
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
-------- --------
Other websites I maintain are: A couple of 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
publicly in the hope it may be useful to others as well. The code ([pkb]) publically 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.
[Awesome]: https://awesomewm.org/ [bitcannon]: http://bitcannon.net
[bitcannon]: https://bitcannon.net/ [hugo]: http://gohugo.io
[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] and [Sourcehut]. Some of the I have a collection of open-source software on [GitHub][github]. Some of the
more noteworthy projects are listed below. more noteworthy projects are listed below.
[GitHub]: https://github.com/wezm [github]: http://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
@ -49,20 +40,9 @@ 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]: https://rubyonrails.org/ [Rails]: http://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
@ -73,6 +53,30 @@ 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
@ -86,7 +90,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]: /weather/ [weather]: http://weather.wezm.net/
[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
@ -94,10 +98,3 @@ 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

3
content/robots.txt Normal file
View file

@ -0,0 +1,3 @@
User-Agent: *
Disallow:
Sitemap: <%= @site.config[:base_url] %>/sitemap.xml

View file

@ -1,6 +1,4 @@
$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
@ -78,7 +76,7 @@ a
text-decoration: underline text-decoration: underline
&:link, &:visited &:link, &:visited
color: $link-color color: #36454F
h1 a h1 a
text-decoration: none text-decoration: none
@ -87,13 +85,22 @@ 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", "Bitstream Vera Sans Mono", "Menlo", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace 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
code, tt code, tt
font-size: smaller font-size: smaller
@ -128,19 +135,12 @@ 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-color: $header-colour background: #1C1C1C
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: 14px font-size: inherit
font-weight: bold
text-transform: uppercase
letter-spacing: 0.5px
#content #content
@ -174,107 +174,31 @@ body > header
footer footer
color: #999 color: #999
border-top: 1px solid #999 border-top: 1px solid #999
margin: 3em 20px 2em margin: 20px
clear: both clear: both
.copyright .copyright
font-family: $ans-serif font-family: $ans-serif
font-size: 14px font-size: 14px
margin-top: 1em padding-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
.with-border #personal div
border: 1px solid #D8D8D8 padding-right: 2em
.no-border
border: none
text-decoration: none
.socials .column div
margin-top: 1em padding: 0 0 0 2em
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
@ -284,6 +208,7 @@ 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
@ -332,6 +257,50 @@ 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
@ -357,12 +326,17 @@ body.articles #content nav
#respond #respond
margin: 3em 0 margin-top: 10px
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
@ -383,7 +357,7 @@ img.alignleft
margin: 5px 10px 5px 0 margin: 5px 10px 5px 0
.feed-icon img.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
@ -391,9 +365,6 @@ img.alignleft
&:hover &:hover
opacity: 0.75 opacity: 0.75
.feed-icon-sup
vertical-align: super
img.comment img.comment
padding-top: 1px padding-top: 1px
@ -485,12 +456,6 @@ 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
@ -542,7 +507,19 @@ 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
@ -558,26 +535,19 @@ 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 body > header span
text-align: center float: right
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
@ -612,8 +582,9 @@ body.weather
margin: 0 0 1em 1em margin: 0 0 1em 1em
#respond #respond
.short li.short
margin: 0.5em 0 0 0 margin: 0.5em 0 0 0
float: none
display: block display: block
footer footer

View file

@ -1,4 +1,4 @@
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. 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.

View file

@ -8,7 +8,7 @@ I did some searching and came up with two other libraries that seemed well suite
I built the two additional libraries with the default configuration options, except for libmad, which I added the <code>--enable-speed</code> option. With the help of example code I made programs out of each that were comparable to the first version for Core Audio. I.e. MP3 file in, 16-bit Linear PCM audio samples out. I built the two additional libraries with the default configuration options, except for libmad, which I added the <code>--enable-speed</code> option. With the help of example code I made programs out of each that were comparable to the first version for Core Audio. I.e. MP3 file in, 16-bit Linear PCM audio samples out.
To provide a benchmark I wrote a script that would run each of the three programs against a source MP3 file. Each program reported the elapsed time (via <a href="https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man3/time.3.html">time(3)</a>) and the processor time (via <a href="https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man3/clock.3.html">clock(3)</a>) when it finished decoding. The programs were run one after another on the source file 10 times. Their PCM output was written to a new file for each invocation. To provide a benchmark I wrote a script that would run each of the three programs against a source MP3 file. Each program reported the elapsed time (via <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/time.3.html">time(3)</a>) and the processor time (via <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/clock.3.html">clock(3)</a>) when it finished decoding. The programs were run one after another on the source file 10 times. Their PCM output was written to a new file for each invocation.
<!--more--> <!--more-->
<h3>Environment</h3> <h3>Environment</h3>

Some files were not shown because too many files have changed in this diff Show more