Telephones are not for talking much anymore. I got my bill for the iPhone and the number of minutes I spoke on it last month was seven. My phone is mainly used for internet via the browser and texting, with the latter not so much. Other than phone calls from my wife I let any incoming calls drop to voicemail - as they are nearly always recruiters. Because the iPhone is always connected to the internet the majority of the input and output is via email or web.
It is amusing. When I was growing up telephones were fixed to a wall and had a dial. One that you had to put your finger in and spin around for each number. There was a cord that connected the receiver to the wall as well. Crazy when I think about it. The phone was fixed to the wall in the kitchen and living room so the only way to get any privacy was to hide in the pantry while talking on the telephone.
Totally different world these days.
Chevrolet has released a couple of very good looking concepts at the Detroit Motor Show; the
Tru and the Code. Both have a strong design direction, but one that is attainable in the near future. I suspect the 2013 Corvette will have some of the Tru's styling on its rear end. The
Ford Fusion looks pretty good too. Between the Chevrolet and Ford products and concepts the new
Cadillac ATS is looking a bit mild, old and passe. Nice job Chevrolet and Ford.
I bought this book as it supposedly was more rooted in empirical social science than others in the genre. It suffers from the same problem as many books these days; it is too long. It would have been better as a summarized blog post as the insights are small but dotted across filler pages of anecdotal examples.
Happiness in working life is important. Happy workers have higher productivity, higher sales, higher leadership ratings, better performing teams, etc. Happiness is also a benefit in health. Happier people are healthier and fight off illness faster. There have been empirical studies which have determined that it is because of happiness that these makers are improving and not vice versa.
One of the findings of modern happiness studies is that focusing on happiness day to day will improve an individual's well being. Achor proposes; medidation for just five minutes a day, think about something that you look forward to, exercise, spend money on experiences not items, using a character strength, commit conscious acts of kindness, make your surrounding environment a happy one.
The last one is interesting. In the modern cube farms you often see cube walls decorated with family, drawings by kids etc. This nesting instinct is about making your environment pleasant. Going outside for twenty minutes every day also improved mood, thinking and memory. Finally, if Fox News makes you mad, don't turn it on, even better get rid of your television and remove a negative from your immediate environment.
Exercise and being outside seem obvious. One of the great modern forms of exercise is hiking. Phoenix is fantastic for hikes. There are multiple city hikes like Camelback Mountain and Squaw Peak but for those that want longer hikes there are more challenging ones less than an hour away like the McDowells.
I always say that you have to be fit to be a software engineer as the projects are often grueling and a grinding demand on the brain to come up with working quality code under extreme duress. Being fit and strong is one of the ways that you can fight off the stress of sprints and projects.
The minimalist blogs often post quotes along the lines of experiencing life rather than buying stuff. There is a lot of research on materialism being a fleeting passion. Once someone buys something their mind moves on to the next thing they will buy. However, when people buy an experience, like a vacation, dinner or concert they remember it longer and with more positive emotions. Spending money on others had a similar effect.
The signature strength is an interesting one. When people do something they are good at, they feel better about it and the outcomes. At viasurvey.org there is a series of questions which works out an individuals strengths. Mine are; love of learning; self-control and regulation; creativity, ingenuity and originality; Gratitude; and bravery and valor. The argument is that if I learn something new each day then I am a happier person.
I was given the Steve Jobs biography for christmas. It is written in the modern manner with small and easy to read sentences which makes it a quick and painless read. Steve Jobs' life is pretty repetitious. By the account of the book he found what would be his 'personality' not soon after high school, which is surprising, I wasn't really 'me' until my late twenties. A strong sense of identity may have been what propelled him to succeed at such a young age.
I have to say after reading this; I would never want to be Steve Jobs. His life does not sound fun at all. By the sounds of the book he was not fun to work with either. He seemed a difficult man at the very best of times, prone to out-bursts, jumps in mood and not very gracious in accepting other's input. He is probably like rupert Murdoch and only really happy when working with that level of power and money; like Murdoch, that is his hobby whereas most of us work so we can eat and have fun in other areas outside of working life.
Steve Jobs definitely had an impact on the modern technological world. A lot of engineers do not understand design. Steve Jobs seemed to be more on the design side of things. However, in modern engineering's defense, most management schools and techniques see engineering as piece work that comes out of a factory line and where engineers are inter-changeable parts in a process. Given that mentality it is not surprising the engineering rarely rises above mediocre and un-inspired.
I did not own an Apple product until the second generation iBooks of the early 2000s. I mainly bought it as I had been using Linux on Thinkpads and I went through three Thinkpads in a year and decided the hardware was not good enough. With the adoption of the BSD kernel as the basis of OSX it was easy to switch over to a Mac.
I also bought a first generation iPod. It was a big, clunky thing that cost $500 but it did replace our big stand up stereo with the CD Player, Turntable, Radio etc. Nowadays we have two Macbook Pros, an iMac, several iPods and several airports of differing versions.
Technology goes in waves. I am old enough to have owned a computer where the hard drive space was 128 kilobytes. I am also old enough that the first program I did at University was on a VAX System. I have owned Windows 3.11 systems (and Trumpet Winsock) as well as Windows 95 up through to Vista.
For a while Windows an an Intel driven beige computer was the best thing around. That changed as Windows stagnated under its own monopoly and Linux started improving its UI. For a while Linux on IBM or Dell hardware was a good deal until it was over taken by Apple. This was then taken up a notch as small, sexy appliances such as the iPod and iPhone became peripherals of the computer experience.
But again, technology comes in waves. I am old enough to have lived during a time when a telephone was stuck to the wall and had a dial. Cell phones did not become affordable in Australia until I was in my early twenties and even then they were kind of large and heavy with poor battery power.
I can also recall having a Blackberry when I was working in Virginia. We were giving them to technicians because they were capable of connecting to the internet and accepting email. They could also browse the internet, but it sucked. Websites did not display well and developers were expected to work in WML or some other bogus technology to make things look ok.
The leap the iPhone offered was that the browser rendered web pages correctly. Safari on the iPhone was brilliant in showing a web page the same as a desktop browser would show it. I can recall being excited when I saw that. Yes, the touch screen was cool, but the browser that supports javascript, css and renders exactly the same as its full size brethren was a major step forward.
Where to put Steve Jobs in all that? He made the products coming out of Apple the best things going around. He also expanded what is a peripheral for a computer. More and more people are using their computers for music and movies instead of the old productivity applications like spreadsheets and word processers.
I am ambivalent on a lot of things Apple has done. Apple makes nice looking hardware, but their software is often pretty dodgy. iTunes is not particularly good but there is nothing that can compete directly with it at the moment. I have no doubt there will be one day, too many people have an interest in selling a mass market item like music to tonnes of consumers.
I don't see much of a future in the app market, on OSX or the iPhone. As James Gosling said the home runs are amazing, but for most developers it returns nothing. The iPad is really nice, but the ability to type on a laptop is hard to give up. I bought a first generation iPhone but I only updated it because the screen smashed not because I wanted to. There isn't anything compelling me to upgrade, the form factor and touch screen are the same, even if the upgrades are degrading the phones performance.
Supposedly Jobs wanted to leave the design DNA in Apple the company. It may or it may not. Industrial design is usually driven by a single person or designer in the mass market. Arguably Dieter Rams and Steve Jobs have this claim in the industry they worked, but like Braun being directed by Rams, it is hard to see Apple maintaining that kind of focus without Jobs.
Apache Wicket has some trade offs, the control of URLs is one of them, though you can get around it by building a good SEO link via the ExternalLink component and having that hit a local URL. To do this you have to get the hostname, port, protocol etc from Wicket. With Wicket 1.5.3 this is actually fairly easy. The Wicket Request object is exposed to anything that extends WebPage.
Request request = getRequest()
Url url = request.getClientUrl();
String hostName = url.getHost();
int port = url.getPort();
String protocol = url.getProtocol();
String context = request.getContextPath();
Which is more than enough to build a valid ExternalLink that will hit the right URL which has been specified in the WicketApplication's mountPage().
This is amusing as the company I worked at in the late 90s and early aughts had the same problem. The Microsoft projects all used Visual Source Safe which had poor multi-developer abilities. It shared code poorly and often caused as many problems as it solved.
By contrast, the Java projects and projects in other languages went on the CVS server, which didn't have the same restrictions as Visual SourceSafe and was far superior.
The Microsoft developers didn't switch over, it is too easy to remain in the Microsoft stack as the whole Visual Studio productivity and mindset is a lot easier if you don't rock the boat and use outside technologies.
The
anecdote that reminded me of this:
In the late 1990s I worked at Creature Labs. We were changing from Visual SourceSafe (commercial, made by Microsoft) to CVS (open source, made by a bunch of hippies).
There was frankly disbelief that it could do its main magical promise - let multiple people edit the same file at the same time, and be able to flawlessly merge their changes together without breaking anything.
The exclusive locking of SourceSafe was a real problem when we were making Creatures 3. I remember a particular occasion we were adding garbage collection which meant editing most code files, and the lead programmer had to check out every file exclusively over the weekend while he implemented it.
More recently I put my next generation version of
my blog up on github so I can play with some of the new technologies like Wicket. It is amazing how far software development has come in just over a decade.
When deploying an ear built by maven with client, ejb, and two war files bundled in the error, "java.lang.NoSuchMethodError: log" kept popping up when it was deployed. Sfl4j 1.6's log() method is incompatible with the 1.5 and 1.4 versions. So obviously there was an old version of sfl4j floating around in the dependencies of dependencies. The problem was a dependency was adding slf4j 1.4 into the APP-INF/lib which was causing the runtime conflict. Using the m2eclipse dependency view I was able to exclude these sfl4j artifacts from the build.
java.lang.NoSuchMethodError: log
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:120)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:465)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:175)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1786)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3000)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1371)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:471)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:205)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:201)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:118)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:205)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:28)
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:636)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:16)
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:140)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:106)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:820)
at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1227)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:436)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:164)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:181)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Rafe Coburn links to an article on
strict coding standards. He also notes that "adherence to coding standards ... produces higher quality diffs." From the linked article:
The big difficulty in programming is that the space of the ways to write something are too large. We can get lost in that space.
One of the problems is simply the intellectual overload.
Smart coders can mistakenly believe that they can handle it, but it is a burden on everyone. Every time you write a line of code, if you have to think "should I use lower case or mixed caps?" , or "should I make this a function or just write it in line?" , your brain is spending masses of energy on syntactic decisions and doesn't have its full power for the functionality.
Strict coding standards are actually an intellectual relief because they remove all those decisions and give you a specific way to do the syntax.
I predominantly work in Java and standards were made easy in that space because Sun specified coding standards. When java was starting to become popular the Apache projects added their own standards over Sun's which is what we used as our coding standards at the last three places I have worked at.
Currently we don't have a formal coding standard document because most developer adhere to the Sun and Apache style. There are some exceptions - for instance the one liner if statement - but they tend to get eradicated for bug reasons as they can create poor quality code.
We usually enforce the coding standards via social and cultural pressure. For the most part it is working. A lot of our code is boiler plate-ish anyway as there are well laid out standards for writing the code and the unit tests with JMock.
So the patterns are very common and largely repetitive which helps in making the code more uniform. One of the issues we have at the moment is that some developers are cramming too much cyclomatic complexity into methods making them messy and difficult to read though this is isolated to a few developers and is not a function of the language, environment or how we have chosen to develop.
Test Driven Development argues that writing a test first and then making it pass as a development philosophy and practice will lead to less unnecessary code being written and consequently improve productivity. Additionally, since all code is covered by tests quality will be improved and maintenance made easier.
In the early days of extreme programming when the advantages JUnit brought to development were being explored the TDD folks were very dogmatic about this practice. The test first methodology found its way into many of the popular agile processes as well such as scrum.
Jacob Proffit wrote - three years ago now - on a study to determine if test first or test later development was more productive and obtained higher quality. Which is interesting as even now half the battle it getting all developers to unit test. However, the report seemed to find that:
The control group (non-TDD or "Test Last") had higher quality in every dimension--they had higher floor, ceiling, mean, and median quality. The control group produced higher quality with consistently fewer tests.
This is how I develop and only because I find it easier that way. I write the code and then ensure it is working through functional tests before slapping 100% unit test coverage over all the code that has been written.
For instance I am currently reworking the engine in this blog and moving it from python to java. I have functional tests that I write which hit the servlets directly and then i build the feature underneath it.
I make sure that the black box testing is correct and once it is I go over all the internal code that supports it and put unit tests over everything to make sure I haven't let through any bugs that the functional testing did not find.
At work we are currently building a new order capture system and this is the same process. I have orders flowing in through a remote interface which drove development. The first asynchronous part of it is complete and is now unit tested. The second part is still have some design and functional issues, but once that is hammered out then the unit tests will go over it.
I guess the thinking on my part is that once code is no longer volatile then it should be tightened up and made maintainable by unit tests.
But, like any ideal process, this is never always true in practice. Some methods become non volatile quickly and have no design issues. So they can be unit tested immediately. For instance we have some restrictions on what data must be presented with an order so that we can bill and fulfill the order.
These don't change and if they are wrong can destroy all functional testing, so they were unit tested as they were written to make sure there were no bugs from the restrictions. So the whole thing is fluid and comes down to the individual developer and how they are more comfortable writing code for a particular situation - as long as they unit test.
The downtown area of Phoenix is actually quite nice and has a good feel to it. The downtown corrider follows Central Avenue from about Camelback Rd to Washington St. The light rail is on central for this section and most of the buildings are high rises.
The light rail turns east at the bottom of downtown running past the Baseball and Basketball stadiums before heading out into the suburbs of Tempe and Mesa. The light rail turns west at Camelback before terminating at a mall on Bethany Home Rd a couple of blocks later.
Apparently the attempts by the city council to bring the downtown back to life followed several stages. Andrew Ross writes:
City Managers, desperate for new sources of revenue, saw the downtown revival primarily as a vehicle for economic development. After the flight of industry began in the 1970s, and city tax receipts went into steady decline, they tried out a succession of turn around strategies.
The first one the Phoenix tried was putting in stadiums. The baseball stadium was built and then the basketball stadium at the southern end of downtown. There was a push for the NFL team in Phoenix to get a stadium nearby as well but it was defeated by public opinion. Stadiums are bad deals for tax payers and do little to revitalize an area economically or culturally.
The second strategy was convention centers, business class hotels and other large government buildings such as new jails, courts and offices. Modern buildings for museums and theaters were built close together in the southern downtown area just north of the stadiums.
The next one that as tried was "meds and eds" which gave public subsidies to biomedical research and services industries as well as Universities and Colleges. The large ASU campus on central was made possible by this process. ASU has traditionally built itself out in Tempe along Mill Avenue.
The latest policy has been to follow Richard Florida's creative class proscription. Florida's consulting company did a review for Phoenix in the 1990s. The arts community in the downtown area has flourished more recently with the popular First Fridays and Third Fridays along Roosevelt. The light rail has been a positive addition and made the downtown an easy mix of accessibility and walkability.
Florida argues for pursuing liberal policies in support of the creative classes but the city area is liberal anyway, which makes it an easy sell. It is the state and suburbs that are drowned in political red which lead some of the repugnant legislation that came out of the State Assembly and Senate.
Most Popular on South Sea Republic
The articles that have been viewed the most:
Most Popular Restaurants in Phoenix
Phoenix Eats Out is the restaurant review site for
Phoenix,
Scottsdale and
Old Town Scottsdale which lists the modernist and contemporary restaurants, taverns and bars in the greater Phoenix area.
This is the list of the most popular restaurants pages from phoenixeatsout.com that have been viewed the most;
My personal favourite restaurants in Phoenix are
AZ88,
Postinos,
Bomberos with
Grazie,
Humble Pie,
Orange Table,
The Vig,
Fez and others coming close behind. View the complete list with the photo-journalistic style images on
phoenixeatsout.com
Most Popular Hikes in Arizona
Arizona is an outdoor state and has lots of hiking in the city and around the state. Phoenix is unusual for most cities in having several large mountains in the center of the city with great hiking. Anyone who comes to Phoenix has to do the
Echo Canyon trail on Camelback and the
Summit Hike on Squaw Peak or Piesta Peak. The views of the city, suburbs and surrounding mountains are wonderful from Camelback and Piesta Peak.
For more experienced hikers there is the McDowell Mountains in North Scottsdale that has several difficult and strenuous hikes in
Tom's Thumb and
Bell Pass. Alternatively, you can hike the highest mountain in Arizona. At 12,600 feet
Humphrey's Peak is a long and difficult hike.
Alternate Australian Constitutions
Between 2004 and 2009 this site,
southsearepublic.org, was a constitutional blog based on scoop which focused on Australian and global constitutional issues.
One of the strongest aspects of it was the development of constitutions by those involved in the blog. These constitutions are the outcome:
The constitutions were built using principles from Montesquieu's separation of powers, the enlightnment's universal political rights and the ancient Athenian technology of sortition and choice by lot.
Archives For South Sea Republic
South Sea Republic started in 2004 as an Australian constitutional blog in 2004 based on scoop software. It was an immigrative outgrowth of Kuro5hin. The archives for each year since then;
The articles are ordered by views.
Who Is Cam Riley

I am an Australian living in the United States as a permanent resident.
I am a software developer by trade and mostly work in Java and jump between middleware and front end.
I originally worked in the New York area of the United States in telecommunications before moving to Washington DC and
working in a mix of telecommunications, energy and ITS. I started my own software company before heading out to
Arizona and working with Shutterfly. Since then I have joined a startup in the Phoenix area and am thoroughly enjoying myself.
I do a lot of photography which I post on this website, but also on flickr. I have a photo-journalistic website which lists
the modernist and contemporary restaurants in phoenix. I have a site on the
Australian Flying Corps [AFC] which has been around since the 1990s and which I unfortunately
lost the .org URL to during a life event; however, it is under the
www.australianflyingcorps.com URL now.
The AFC website has gone through several iterations since the 90s and the two most recent are
Australian Flying Corps Archives(2004-2002) and
Australian Flying Corps Archives(2002-1999) which are good places to start.
Websites Worth Reading
Websites of friends, colleagues and of interest;