Serving up static content with S3 Cloudfork and Godaddy
2010
2009
WebVelocity code editing getting closer to usable My blog look has been updated WebVelocity 1.1 source code highlighting WebVelocity 1.1 source code editing Another day, another fight with type 1 diabetes Searchlight 3xx ESUG wrap up SmallRuby Seaside 3.0! Pharo, the death knell of Squeak? Dinner last night at La Boucherie ESUG is underway ESUG is almost here SUnitToo Coverage Finally in Brest, France The insulin pump not as smart as I had thought? Newark, to Paris At Portland Airport WebVelocity 1.0 CD Plot hole in Back to the Future 3 Building a rich text editor using HTML5 canvas The console wars Seaside 2.9 in VisualWorks 7.7 Terminator Interfacing with ObjectiveC better Terminator- Salivation Don't Panic Monticello publishing in VisualWorks 7.7 Photo catalog example Better Monticello integration in VisualWorks Seaside 2.9 for VisualWorks, ObjectStudio and WebVelocity The pump is stabalizing The Pump Clipon My ending to Life On Mars (US) Sometimes, bad ideas kill themselves A few iterations later Animated 3D models with OpenGL in VisualWorks Learn by mistakes OpenGL 3.1 previewed at GDC Experimental Type Inferencer Battlestar Galactica Finale Day 11 - Getting closer Day 8 - 50-50 ratio of basal to bolus.. still dubious My Dharma Initiative logo Day 4 - Sleeping, Calibrating Back to the Educator Punted to the doctor Day 3 - The Basal-Bolus ratio is bollocks? My new theory about LOST First pump mishap Day 2 with Pump, second hypo Change one variable at a time Why the pump? Insulin Pump Therapy First hypo on the pump Abrams, not Whedon? Curried BlockClosures Save Each, Save All or Save Auto? Spellcheck against the image? GPGPU with OpenGL and VisualWorks TV conflict VSync with OpenGL across platforms Creating a Process Monitor with Seaside in WebVelocity Smalltalk grammar Parsing Expression Grammars My Civilization 5 idea- A matter of time Bind index 0 or get index 1
2008
WebVelocity Update OpenGL Update Growl for Cincom Smalltalk iTunes when you post? Some games I've just played AT&T stupidity and International calls Star Wars - An a ceplla tribute to John Williams Relative Perception of Time Spellchecking for VisualWorks The address of an object Smalltalk Superpowers @ OOPSLA '08 OOPSLA '08 The limits of future compatible OpenGL 3.0 OpenGL Lesson #6 - Animation Forward compatible OpenGL 3.0 #defines Javascript, hotting up FloatArray rewrite The heap vs UninterpretedBytes vs ByteArray CUDA, OpenCL and Smalltalk OpenGL 3.0 future proof APIs, the first cut Kicking off the new OpenGL paradigm for Smalltalk OpenGL and the more advanced way of doing things The new age of OpenGL WebVelocity Console Amazon just screwed me WebVelocities Don't mode me in and Undo-Redo To frame or not to frame in parallel computing Keywords, Lists, C, Smalltalk, Io Classes as Namespaces The last leg The long haul The main leg What's in a method? The first leg Tomorrow is a travel day! Global State is bad, mmkay? Lively or Lively Kernel? WebVelocity Behind the scenes of the enhanced Debugger, Inspector and Code Editor One syntax to rule them all? Short video at Smalltalk Solutions OpenGL-20080619-CairoGraphicsFonts.png More OpenGL and CairoGraphics fun Mobilenotme.com Spectacular graphics design Extension Angst Shared Development Environment All this has happened before and will happen again User Interface Layout WebVelocity alpha screencast A new WebVelocity screencast is on the way User Interface design talk by Humanize Mootools Mocha and Seaside WebVelocity-20080512-Tables.png WebVelocity-20080512-TableClass2.png WebVelocity-20080512-TableClass1.png A small matter of punctuation. Ecto Chunkout 2 WebVelocity-20080425-HelpPackage.png WebVelocity-20080425-HelpModel.png WebVelocity-20080425-HelpGroup.png The trip home Who am I to disappoint my travel fans? It's a travel day OpenGL inside OpenGL Combining OpenGL and CairoGraphics SSH Audio Hijack Pro = Boom Re Helping the NewPrerequisiteEngine out NPE-20080322-OptionalPrerequisites.png NPE-20080322-ForcedPrerequisites.png Working on a Game... Re New Refactorings Boolean Objects WebVelocity Pre-Alpha Demo Sydney Smalltalk users group Travel to Sydney for the Sydney Smalltalk Users Group OpenGL in VisualWorks Searchlight 2xx Video Presenting at Sydney Smalltalk Users Group 26th February 2008 WebVelocity-20080218-DatabaseSetup2.png WebVelocity-20080218-DatabaseSetup.png WebVelocity-20080218-DatabaseMappings.png WebVelocity-20080218-Changes.png WebVelocity-20080218-ApplicationTools.png WebVelocity-20080206-LauncherVeryEarlyDays.png WebVelocity-20080206-ClassMenu.png WebVelocity-20080206-ApplicationMenu.png WebVelocity-20080203-EntryPoints.png WebVelocity-20080202-SearchResults.png WebVelocity-20080118-Variables.png Some WebVelocity work WebVelocity-20080114-Variables.png WebVelocity-20080114-SourceCode.png WebVelocity-20080114-Package.png WebVelocity-20080114-Class.png Re Levers and fulcrums. WebVelocity-20080110-LightboxDebugger.png WebVelocity-20080110-IE-Almost-There.png WebVelocity-20080109-Breakpoints.png WebVelocity-20080110-SyntaxError.png WebVelocity-20080108-SyntaxHighlighting.png New Years Day BBQ - The Hot Dog Rollup Seaside-20080107-Scaffolding-EarlyDays-View.png Seaside-20080107-Scaffolding-EarlyDays-List.png Seaside-20080107-Scaffolding-EarlyDays-Edit.png Seaside-20080102-Debugging-EarlyDays.png Another go at NeHe OpenGL Lesson #5 in Cincom Smalltalk
2007
Screencast on OpenGL in Cincom Smalltalk - NeHe Lesson #5 Jingling all the way home It's a travel day - can't disappoint my travel fans Seaside-CairoGraphics OpenGL-20071216-BattlestarGalactica.png Write-Barriers in Cincom Smalltalk PartialURLs in VisualWorks 7.6 OpenGL-20071213-API.png CincomSmalltalk-20071213-Banner.png vw.png robots.txt Xtreams-20071207-API.png WebVelocity-20071212-MootoolsComment.png WebVelocity-20071212-ExternalFiles.png WebVelocity-20071211-Overview.png WebVelocity-20071211-CompileError.png WebVelocity-20071211-Class.png WebVelocity-20071210-Icons.png WebVelocity-20071210-FailedCompileError.png WebVelocity-20071206.png WebVelocity-20071205.png WebVelocity-20071204-Edit.png WebVelocity-20071204-Browse.png RB-20071212-MultipleRepositories.png OpenGL-20071212-FirstRender.png What Whatever.Object isn't good for.... Whatever.Object Cincom is looking for a Smalltalk-Web Developer Futurama Movie- Benders Big Score Taking control of XML.XMLParser's Network access Australian Federal Election Re Canvas UI for MooTools X86 Assembler inlined in Smalltalk Presenting at the Ottawa Smalltalk Users Group OCSTUG Aliasing Classes Search public store online with Seaside and Ajax Executing arbitrary assembler from Cincom Smalltalk The psychotic build has hit Out to lunch script Apple's new keyboard MacOSX Leopard Parallels 5540 beta Croquet is really coming along... Seaside 2.8 released Searchlight- When intuition fails Searchlight Update OOPSLA Premature deoptimization with the Smalltalk enumeration protocols Searchlight update Run Basic, Run! Per Process Locales for Cincom Smalltalk UILookPolicy and BuilderSpecs Civ4 runs under Parallels SmallSpotlight renamed to Searchlight Mac EFI Firmware Update vs Parallels NAT But why Ottawa?? Camp Seaside for Cincom Smalltalk Someone asked for a VW SVG icon? Cincom Smalltalk Wallpaper Wrapper and Widgetry Office Space the movie vs VisualWorks It's a travel day Civ4 - Beyond the Sword Trust in a major chain Lost Some advice from newly diagnosed Type 1 Diabetics Hangman, the anonymous beating 2 2 = 5 The end of twin peaks DHH, the Rails guy, he torques me In Vancouver, eh? Tongue Twisters in Smalltalk Dirk Pitt is real? *cough cough* Two weeks Immediate Mode Graphical User Interfaces Experimenting with the way events are processed Endless Animations Battlestar galactica limps on... A quiet Saturday Busted my Skype Animations and Effects for VisualWorks Life, the universe and everything Smalltalk Interfacing with C - Presentation from Smalltalk Solutions 2007 Disaster struck, Wednesday The $100 laptop (plus $75) Saturday Evening - Toronto In LA, on to Toronto (Tortonor) Thus the journey begins Heading out in 6 hours At Sydney, on to LAX Upcoming... Free Wifi at Canberra Airport Moving on from Wizard... One reason not to declare instance variables Microsoft Shiny Blue Amorphous blob Lucid Dreaming Swallow our Twitter client is released Battlestar Galactic Prediction It's the weekend, so I had some time to work on Swallow.. Widgetry Sugar New UI Paradigms (repeat) The connundrum of Widgetry Sugar Swallow rapidly approaching version 1 I use twitter.com, add me as a friend Life Changes! Naming our Twitter client On the way to work... Re Squeak Foundation Election Results Vassili explains where Pragmas came from Freak hailstorm hits Canberra Pragmas, Tags, Attributes, Annotations Had a pleasant uneventful day? How about a few holes in the roof to spice things up What is your Ward number? Getting your server hacked... Two more things in the javascript world... Things you wanted to know about Ajax and Javascript... More HttpServerTags The battle for the 7.5 The Wow starts now Re Indonesia critical of Aust company's bird flu vaccine development Storp = Store Glorp Now we're getting meta-surreal Even spammers can't write software well Bad philosophy of the west The connundrum of encapsulation Servlets.. kinda a bit javaish for us isn't it? Starting up a simple file server using HttpServerStreams Where's WithStyle at? VisualWorks 7.5jan.2 Version names in Store SUnitToo Coverage From normal looking woman to hot supermodel billboard 3D Pong in flash Ze Frank has bought a Nintendo Wii SUnitToo Code Coverage Refactoring Browser Sneak Peek - Integrated Code Coverage in VisualWorks Font Lookups in VW Re Jobs Is Gravity Re No Third-party Apps on iPhone Says Jobs Hosting another language inside the VisualWorks VM The way we link to library files in VW... yeesh
2006
Uh.. wait.. before you leave... Failed Experiment- Enhanced Glucose Monitor HbA1C Temporal Sensitivity Training What goes in to an image Rowan Bunning - first ScrumMaster Practitioner in Australia Welcome to the new VisualWorks Contributions-Goodies Review #14 - ExtraIcons Why not just use CPP? Reuse of header files Toward a better DLLCC... Interfacing to C from VisualWorks ain't easy Contributions-Goodies Review #13 - RBrowserHistory Missed the podcast - Darn! Object Oriented Assembly Language - Len Dorfman Contributions-Goodies Review #12 - DefactoringTool Playful fun - your stripper name? Why zefrank is different... The Human Species is dumb Sandbox the second coming Contributions-Goodies Review #11 - DMTrippyEnhancements Welcome to the Dictatorship Reverse Engineering a Medical Device A good discussion on Diabetes by HanselMinutes Goodies Episode #10 - Attack of the overflowing Stack! Novorapid Levemir Contributions-Goodies review #9 - ProportionalTabs Where do you put your Tests? SUnitToo primer Contributions-Goodies review #8 - RB_Tabs Contributions-Goodies review #7 - ThreePaneSelectorsBrowser Contributions-Goodies Review #6 - RBBytecodeTool Contributions-Goodies review #5 - All Advanced Tools - Allocation Profiling Now that North Korea has nukes - don't forget to Duck n' Cover! Contributions-Goodies review #4 - All Advanced Tools - Time Profiling BerkeleyDB - the Oracle way DLLCC sucks Contributions-Goodies review #3 - RBSUnitExtensions Contributions-Goodies review #2 - AutoComplete Contributions-Goodies review #1 Futures, Continuations, Closures and Oh My! Screencast on optimising - Part 3-3 Power Go, Power Come Screencast on optimising - Part 2-3 Screencast on optimising - Part 1-3 Hypo at 1-30am == Not fun School of program good A turning point? Funny but good advice The Honeymoon Period What a feeling, whoa Ch-ch-ch-changes (repeat) CH-ch-ch-changes Sometimes life isn't so fair Re Wrapping C libraries Where's the guy that does that... BerkeleyDB for VisualWorks VisualWorks Database Driver Weirdness... The Environment Nazi Pair Programming is... Major API Change A Reading from the Book of Armaments, Chapter 4, Verses 16 to 20 Sydney Smalltalk Users Group Loading WithStyle Smalltalk Solutions 2006 Photos! Learning more about Lisp... Now we can pay Anthony Lander back the $260 from Pure Spirits Re Regarding Pong The Coding Conest finale play-offs! Breaking STS'06 News The quiet Monday before the storm State of the STIC Monday dinner and drinks Efficient Smalltalk, by Travis Griggs To Michael's, to Michael's to have some chocolate biscuits; bar again, bar again, jiggety jig Sunday afternoon drinks Second City night Pretty good age guesser Where did you get the air? The battle of the timezones... Saturday night at the Improv - Second City Leg 2 - Onward to Canada! Leg1 - Getting out of Australia (part 2) Leg 1 - Getting out of Australia 3 More sleeps until I arrive in Canada T-Shirts all gone! 10 years since Smalltalk died? right? Software WithStyle T-Shirts The coding contest extension confusion The Coding Contest has been extended until the 19th of April Re It Takes a While to Sink in Sometimes Pull out all your hair, bite off all your nails - Nerve Wracking The 2nd Annual Smalltalk Solutions Coding Contest has Begun! 2nd Annual Smalltalk Solutions Coding Contest almost here! Pollock solves world hunger Battlestar Galactica Prediction Chronos, Squeak and Avi From Pollock to Panda Do the Panda Dance! Did my mobile phone just get hacked? 2nd Annual Smalltalk Solutions Coding Contest Re Early Smalltalk Solutions Arrival? The voice mail of Dr. Floyd #003 Audio and Video Podcasts My new car - Very early birthday present Smalltalk Central slips quietly by... I'm Speaking at Smalltalk Solutions 2006! 85 failures and 9 errors later... Smalltalk Coding Contest 2006 Wizard Carnivale at the Multicultural Festival margin- auto is difficult SubFork and ThreadedSUnit Bootleggers Just change the darn thing... Egosurfing me... A (funny) thing happened on the way home from work today... Saturday good Testing BF16 and BL6 in VW7.4
2005
Shakespear and Smalltalk abuse... data- URI's (rfc 2397) Aardvark'd- 12 weeks with geeks I wonder what happens if... OmniBase Tracker WithStyle update Sony-BMG, DRM and iTunes I'm on Skype NetResources locking makeover Do I froth too then? HOM revisited Source code? Don't make me laugh Microsoft learns to automate testing, but kills their culture doing it The V4 Pollock widget Re XML Generation in VisualWorks Re WoW Helping or Hurting the Industry? The Settlers of Catan Classes without Names Re A File System For (or To) the Rest of Us Matthew Dunn now has a blog Re RSS Version 3 Homepage WebDAV support in VW using NetResources Software WithStyle at ESUG'05 Snow in Canberra XML WithStyle 1.0 Beta now available! ESUG Presentation on WithStyle Kont, a new language - quite interesting Detailed Product Overview for XML WithStyle now available Liberal XML parsing? Keith Ray realises C is esoteric and wants to do real programming again.. Dynamic Typing where Possible, Static Typing When Needed Wym Limbert and Joost Vassili Bykov and Angela Martin Sam Shuster Reg Krock Niall Ross Me- Michael Lucas-Smith Martin McClure Martin Kobetic John McIntosh Jason Jones James Robertson Giorgio Ferraris Georg Heeg Eric Clayberg Eliot Miranda and Angela Martin Colin Putney Charles Monteiro Bruce Badger Blaine Buxton Alan Knight Re Interview with Steve Ballmer, Microsoft's CEO, is up The bugs you find in IE... Onward to Canberra - Part 2 of 2 Home again.. barely - Part 1 of 2 The end of StS 2005... The American's can't get enough of me... Microsoft in Australia, me in USA Flights are Shaky The Coding Contest - 2nd place Bottom Feeder Pollock is done! Out of steam... Elephant to replace Prevayler Unaxis Semiconductors (machines making machines ;>) GLORP, Alan Knight Travel to StS seems hard this year.. The day of the walking zombie Re First blown travel of StS 2005 Logging out of HTTP Basic Auth I'll be at Smalltalk Solutions 2005 Symbolic Instance Variables Odd classes and methods Re Ain't I Cool? Language Evolution Butter from Cream Breaking the TV habit? Re Apple to use Intel chips? Smalltalk Coding Contest Submission Re Blogs on Smalltalk Stupid naming in 64-bit Windows Google Accelerator How will Microsoft beat Google... Updated Website Some illconceived advice from me... Rowan Bunning blogging! Bad Memory makes for Bad laptop WithStyle Website and the Developer Program Re The Land Down Under Can Smalltalk blocks be better than Lisp Macros? Frel or Frak or F*** Re Blogs as prior art Re Blog your games with Flickr Using the WsEditorWidget from WithStyle The Posting Tool in Bottom Feeder More editing in the Posting Tool Re The 10 Commandments of Driving in Seattle When generations meet... Joseph Pelrine, Knight of the Square Bracket www.softwarewithstyle.com up www.softwarewithstyle.com down SandboxedSmalltalk Windows TrayIcon's Making a MU* in 2 hours... RSS Feed for WithStyle Developer Program Re Why Your Code Sucks Bottom Feeder 3.8 Released Transparency...
2004
Happy New Year! Lost in Translation Re Quake 4 screenies to usher in 2005 Server, heal thy-self Merry Christmas Re Stick that in your Java pipe Down with source code! Saving memory in Smalltalk Re The Anal brigade Re Thanksgiving Vacation in the Virtual World WithStyle at the Cincom Smalltalk Worldwide User's Conference... mostly More Prevayler Half Life 2 Pictures from Bryce's visit Bryce Kampjes - Exupery Re Google's index nearly doubles. Prevayler Problem in Smalltalk Language Innovation Holidays [ANN] DiscussMethods Re Conan O'Brien on outsourcing Re 'Enterprise' Ties Things Up Mystery Girl Tru Calling is a story about Outsourcing Croquet first impressions Re Snake in our Bedroom!!! Re A new event in programming? Re The best code Re How to Reduce Your Credibility in a Technical Discussion Re Embedding XML in Common Lisp. (From Lambda the Ultimate). Re Semantic XHTML slides Re John Flack On MVC Development Using PL-SQL PyCore - Python in Smalltalk The cost of non-context CPS in Smalltalk Continuation based smalltalk Re Why namespaces don't replace media types Re Greetings from Joss Race against the clock with Smalltalk Re A Couple of SmallTalk Items softwarewithstyle.com up softwarewithstyle.com down Re Innovation is not a threat to GNU-linux Re GmailFS Standards Re First Class XML Team America- World Police The mystery pizza SHA-0 broken? Re Sanjay Pande- Increased usage of Smalltalk Re Code Bloat Begets Code Bloat Re An example of WS-Addressing silliness Opening of the Olympic Games Re May the best VM win? Re Build Your Own Bush Now, this is too funny. I can... Re The Principle of Charity Re Double-press instead of shift They found Nemo... The Early History of Smalltalk Re Engineering Prediction.. Re 'Enterprise' Spoilers Revealed Yet another Java invented it lie Games like back in the good ol' days... News is now Ephemeral Helpful XPath API's The 'old' Meme Re 'Enterprise' Cheaper, But OK Firefly- Serenity Smalltalk Syntax... The reality is... Fact Abused Hardware Stories Another Sydney Smalltalk Users Group Account Smalltalk CSS generation Bye Jim... Pinup of the day Apple steals OpenTalk Sydney Trip Self contradiction Re Bottom feeding with style? WithStyle in Sydney and Canberra WithStyle Developer Program Two Space Memory Bindings Good luck Memory Leaks in Smalltalk Making an About Window... Does not understand Server downtime Can we sandbox in VisualWorks? What is 'The Transcript' ? Orange was once Norange? WithStyle Developers Program What is WithStyle? SDL in VisualWorks Building a website Re I'm saddened and ashamed of the Java community right now Re Richard Biggs, RIP Spellchecking.. really need it Re Troy, The Gabriel Cut Monopolies... How do the Cincom Community Blogs rank? Troy in 15 minutes... Development Utilities Bill from Kill Bill stalked Tarantino Re The Neverhood Re Immigration are Strict! Re Community owned weblogging tools Writing XML in Smalltalk code A book with no verbs? A book with no e's? Re Strong opinions Re Motivational disasters Re Programming without a call stack Re Australian imports Humorous Mistaken Identity Home again.. Smalltalk, 3rd generation Smalltalk Solutions Re Constraints and unit testing Ensure in Scheme with Continuations SmalltalkDoc Resilient BottomFeeder Autonomous Underwater Vehicle VisualWorks Tool Smalltalk is now mobile in WindowsCE. Re Your Redesign Toolbox REO Pollock CIncom Smalltalk Protocol News SRP OpenSkills experience report Keynote - Seaside with Avi Cryptography in VisualWorks Back to Seattle... The trip so far in light detail... Some nice Automatrons More USA trip thus far... Off to America land, where the sugar is sweet and the bread is sweeter Minesweeper for BottomFeeder Danah's book Exercise The iRiver iHP-140 Re The flexibility fetish Me on the Move Re Women less competitive? Re Kill Bill 2 - boring Re Too many Americans are helping the terrorists RPG character generator Re Isaac Asimov is Rolling in His Grave Holy Batnews! I want one! Douglass Adams Quote of the Month Seaside2 in VisualWorks History comes back to.. give you a warm hug Spontaneous Electronics Fires near Sicily? Fullscreen in VisualWorks [CFP] Native XSLT in Smalltalk Re Where are the templates? Knights of the Lambda-Calculus Re 18 Million Billion Re Does anyone else do this? I find that I still spe... Making a Slideshow program WithStyle Quality software for low cost in Australia Re Crimson Room Code Coverage Mostly Harmless Today's growth industries Monty Python quote in Linux 2.6.4 What the CIA do... Re Smalltalk and Productivity Java Bytecodes as XML anyone? Bloggers with Boobies TypeLess standalone New TypeLess features How to build a computer for almost no money at all Radiation in Chernobyl Three headed frog! for real! That penguin punting game?.. more info! Minesweeper for Smalltalk! Background images for your desktop Nightly releasing in Smalltalk Fret now, Present later Enriching VW's DOM Advanced Minesweeper - Don't Guess! Smalltalk Solutions! Perculiar referrers Re What's Good About Smalltalk Pleasant Scrolling Surprises Image is Everything Dynamic websites using Apache, xsltproc, XML XSLT and BASH Confirming what we knew all along - professors can say -anything- Cognitive science gets back on track I wish I'd gone to this school! Metallica is Spinal Tap HTML and Word Wrapping LibXSLT #2 [ANN] LibXSLT for VisualWorks Re Meeting Agenda Detection Free Trade between Australia and the USA XML1.1 Smarter than Smart Re Which American Presidential Candidate Best Aligns With Your Views? Re Rule Based XML Validation, XML Web Services and Service Oriented Architectures Smalltalk Solutions 2004 Basic Flint P.I. The end of Seven Degress of Separation Re ifNil better named whenNil Technology Preview 2 Released Smalltalk and C-style language difference CSS as an XML format Busy busy busy... The state of modern viruses Ticker for BottomFeeder Re ASCII Art If ever something were blog worthy... Embedded Smalltalk This should be an olympic sport Re Uncertain Language Re Persistent Login Cookie Best Practice Re What failed teams have in common Re Adventures in 64 bits callee or caller saves Use of variables in methods IA-64 and registers S# without Style? Bundles as Parcels in VisualWorks Wildlife, birds.. One more register please Knight vs Samurai? Is registers for arguments pluasable? Programmer stereotypes My Blogshares and Extelligence Allocation on the stack and Continuations Shiny things Throwing away business Re Kids on Piracy Quick funnies IBM Maintenance manul, 1975
2003
Small images and hacking BottomFeeder Noise Re American Celebrities Hawking Goods in Japan Extelligence Re DerivedInformation Multimethods in VW Merry Christmas Asimov Fan Announcing StackOverflow package in Public Store Merry Christmas indeed! Re Bad Taste of XSLT Resource SOAP Dr. Who flash The french blog Software WithStyle RSS Re The Near Future Microsoft upset about Open Source bill in ACT Light blogging Why do I find Star Wreck appealing? Re Bad Idea I think certification of software engine... Open source laws just passed in the ACT If Linux has this sort of trouble - imagine working at Microsoft! Smee (ECMAScript in Smalltalk) Improvements Re Play Code Blockhead Debugging VMless continuations A blogroll Pollock and WithStyle, or Pollock WithStyle Memory Augmentation tool Europe vs Italy Humorous Google hit Time to get in to that christmas cheer Believe Nothing Re The trouble with projects Old tapestries - modern concepts How to get Superhero Powers! Blog posting tool .. last time Blog posting tool... Love and relationships... Continueing Continuations Concluding Continued Continuations Blog a day challenge The daily blog challenge Re Challenge to fellow Smalltalk Bloggers Re Algorithm complexity and modern CPU's Bug in ThreePaneSelectorsBrowser Amazon and it's wacky recommendations... Re Supercavitation Microsoft reaffirms itself as a company lead by idiots Email finally working Spam filters could cause depression Re Refactoring Compiling with Continuations Canberran Smalltalkers? BottomFeeder's fish? Bottom Feeder News of Death.. Don't read if you don't want to feel shocked-down New Debian Installer New Dr. Who Episodes! New computer Topic Maps Server back up Re Handling the Meta-Data Meta Data and Topic Maps Light reading Website downtime Re Reinvention of Wheels Usage of the Word Orange Over used words Matrix Resolutions Irene the Infirm Modern freakshow - bizarre news Fun toy - name generater To model or not to model.. Smalltalk Solutions 2004 SPOILERS! Matrix Revolutions Re Matrix Revolutions (no spoilers) Linux or Windows - American politics Chocolate addiction Bottom Feeder Blogrolls and posting addicts Getting a drivers license in Canberra Re BottomFeeder 3.2 Released! Re An XSLT Anecdote Firebird! You fools! psychology can improve society Talk to someone? Heaven forbid! refactoring? NO! It's NOT! A language of XML Day light savings Linux for Barbie Human Extinction Bizarro day The failings of MMORPG's memoize() [caching is not agile] SDL for VisualWorks More on Microwaves.. Machine consciousness Caching is not agile A war over XForms Animating with ExtraActivity Website! Too many hierarchies Pair programming on the web, a sorry state Packaging with-Style Dynamically changing XML Self inflicted suffering The Matrix 3 Google gone crazy? re-discovering old music NRL 1982 Paramatta vs Manly Learning about Smalltalk programming Kirk vs Picard Clicking events in with-Style Smalltalk2EE? Things computers can do better than humans Queries on comp.lang.smalltalk from M. Roberts Measuring the speed of light with your microwave - and chocolate -) yum! Powertools James Robertson blog hosting redux Interesting quote Extra Travis The Amazing Race Pollock is inspiration Dr. Who with-Style update logging in java Re Smalltalk Catch Phrases Ok, I've been thinking ho... .Net saves boy down well Smalltalk the Hub update Re Instant Pairing softwarewithstyle.com slow posting and the vw-dev program IRC is inadequate for pair programming Re History of GUI Frameworks and some thoughts Smalltalk the Hub Re Squeak to .Net Bridge- This looks interesting... [meta-douglasp] Re Basic Mathematics Pirates of the Caribbean Digital Video Broadcast - Terrestrial Photos of me and the other withStyle developers Illusions from Japan Dr. Claw's face Email clients - The Bat! ESUG report by Niall Ross 28 Days Later is crap The weirdest game ever... Re So you think your images are sharp, huh? Linux 2.6.0-test4 finally Editing styled XML Re VAST Mail Re Linux 2.6.0-test4 Smalltalk News from Monty Kamath china 'outsourcing' its military to India Data driven system and bugs Re Exception Handling for Quality Linux 2.6.0-test4 Re StackWatcher Blog Poster tool Slashdot is a blog? Security to section 3 Re Another big Bf fix An awkward meeting in the hallway Test first, ask questions later Re Software product liability The cold Re My Blog added to Microsoft's excellent ASP.NET site list Outsourcing gone wild Normal chocolate doesn't have enough kick Re Dynamic languages, virtual machines, information clients, and more Re Car salesmen and their tricks New keyboard Car salesmen and their tricks with-Style Tech Preview 1 Released The Pressure of it all! Nana Nana Nana Nana BATMAN! Me-OW. Partly my cat - Puss. (creative name, I know) Home again Re Another take on exception handling Blog Poster Smooth Sailing Life without the 'net James Robertson Image Syncer First presentation! Amatuer A trip to the CJUG Hello World!
2010-10-16

Serving up a static website using S3 and Cloudfront involves a few tricks, but ultimately it is worth it to get their distributed content network working in your favor.


So here's the skinny on how it's done. Not too long ago you could have your S3 account on the web as, say, michael.lucassmith.website.s3.amazonaws.com however, if you went to / you would get either access denied or a listing of files, depending on the ACL of the s3 bucket. You could go to /index.html and get the website. The problem is, everyone expects to be able to go straight to / and get the website.


Along came Cloudfront, which promised to distribute your s3 bucket to its different data centers around the USA (and may be the world one day) automagically for you, to make your site as fast and efficient as possible. Pretty cool, however it too didn't solve the / problem. So what good was it?


Luckily, they recently fixed up this problem by adding a DefaultRootObject property. To set it, you have to twist your arm inside out -- or you can find a few applications that let you specify it in a GUI (don't bother with Amazon's console, as of this writing the option doesn't exist there).


Two that I found that did it on the Mac (BerryExplorer does it on Windows) are Cyberduck and Bucket Explorer. Cyberduck is pretty slick, but when it comes to dealing with S3.. get Bucket Explorer. Why? Because it's not just the default object you need to set, but there's also this concept of 'Invalidation'.


Cloudfront takes your files from s3 and spreads them around to its data centers for fast access. This takes time and they want to do it as a single transaction to avoid half-updating your website. If you make a change to your s3 account, you often don't see that change reflected in your website for hours at a time. Recently, Amazon added a low level invalidation API which you can use to tell it to synchronize files from you S3 bucket around the cloudfront. Bucket Explorer has a UI interface for doing this, so, another big thumbs up there. Instead of waiting hours, you wait minutes.


The final piece of the puzzle comes from godaddy.com for me. I've used them as my domain name registrant for many years now and I won't complain too much about their service. Today I hit a particular complicated scenario. Once you have cloudfront set up, you're given a bizarre domain name for your website. In my case it was d5eqjnoai3ca7.cloudfront.net. You can point a CNAME dns record to this address, but not an A record, because A records must point to an IP address.


After struggling with Total DNS Control for a while, I finally found my answer. You must park your domain at godaddy to enable TotalDNS, then delete all the CNAME records and the A record in the Expert/Advanced mode. Add in your www CNAME to point to the cloudfront domain. This makes www.michaellucassmith.com work, but what about michaellucassmith.com ? .. it was broken, so how do you fix that? you add a domain forwarding rule back on your advantage domain management page. You forward your main domain to the subdomain, in my case michaellucassmith.com -> www.michaellucassmith.com.


Finally, the whole thing is up and running. Now it's just a matter of me writing more blog posts and adding new content. The good news is, the cloud just keeps on getting better. When I wrote my new blog four months ago, this configuration was not option - a few months later not only is it an option but software has caught up enough to make using it palatable.