Planet OTI

July 29, 2010

Mike Wilson

Eclipse 4.0 SDK

Woot! Eclipse 4 is out! Everyone involved put in a huge amount of effort to pull it together so that we could ship on time. WTG, all!

If you’re looking for more info, check out the rather lengthy blog post I wrote on my “official” Eclipse blog. There’s a good overview of the the cool features, and (of course) a plea for your participation. :-)

Now I’m going to go get some sleep…

by McQ at July 29, 2010 02:58 PM

Coreen Tyers

Lions and moonshines and walls, oh my!

Last night we spent the evening in the park with four enchanted lovers, a fairy or three, a king, queen and an ass. A Company of Fools dropped by for a performance of Midsummer Night's Dream, and as we've come to expect it was entertaining for kids and adults alike. They certainly have a knack for 'de-stuffing' Shakespeare by doing the little things like a bit of MC chat, describing one of the actors as a long-form census taker (unemployed) and popping balloons over each other's heads. I'm fairly sure I heard a 'that's what he said' (and not just in my head):



V was captivated by the whole thing. She watched the audience, she watched the picnickers (note to self: Bring a snack next time. She was watching two boys behind us so intently they finally offered her one of their crackers - little mooch!), she watched the show. She stood on my lap and clapped every time they popped a balloon. I was amazed that she didn't lose it during the 1.5 hour show. We sat back far enough that she had room to play in front of us, and that kept her happy. She could 'read' her book, stuff and unstuff her purse, and wander a bit. She brought her own camera so she could take pics of the show, but finally decided that the purse that she'd used to carry the camera would make a better prop when she decided to hit the stage:



This was the first year our park was part of their official schedule, we've been one of their dress rehearsal locations for the past couple of years and it appears that we'll be in their audience for many years to come. Their shows in Ottawa parks only run until Aug 2 so if you were thinking of hitting one of them this weekend's your last chance!

July 29, 2010 02:42 PM

Ian Skerrett

ianskerrett

Every once in a while I am reminded of the lunacy of the Internet, especially headline writers.  On Monday of this week, Oracle released an update to the Java 1.6 update 21 that fixes a problem in a previous version that broke Eclipse.   All the details can be found in the bug or Neil’s good summary.  The good news is that Eclipse is no longer broken!!

The irony however is that the issue just yesterday shows up on Ed Burnette’s ZDNet blog ‘Oracle Rebrands Java, breaks Eclipse‘ and the pillar of all Internet lunacy, slashdot Oracle Java Company Change Beaks Eclipse .   Credit to Ed for actually reporting and testing the fix.  However, the slashdot posting is the following:

crabel writes “In Java 1.6.0_21, the company field was changed from ‘Sun Microsystems, Inc’ to ‘Oracle.’ Apparently not the best idea, because some applications depend on that field to identify the virtual machine. All Eclipse versions since 3.3 (released 2007) until and including the recent Helios release (2010) have been reported to crash with an OutOfMemoryError due to this change. This is particularly funny since the update is deployed through automatic update and suddenly applications cease to work.

No mention the problem has been fixed and wrong on the fact the update was deployed through automatic update; update 21 hadn’t been pushed out yet via automatic update.  Of course the typical slashdot comment ensued, granted some of the comments do point out the reality.  However, as with anything on slashdot, people repeat the headline “Oracle’s Java Company Change Breaks Eclipse” on things like twitter, so the meme continues.  Let me be clear, the problem is fixed:  Oracle Demonstrates Great Community Support and Fixes Eclipse

Eric has already praised Oracle’s response to the situation.  I would like to add my thanks to Oracle for quickly resolving the issue.  I spoke to Oracle about the issue and I can tell you they had already decided to fix it before I spoke with them.  Oracle should be applauded for their response to the bug.  This type of bug could have easily lead to lots of finger pointing but Oracle just did the right thing for the community.  THANK YOU


by Ian Skerrett at July 29, 2010 12:44 PM

July 28, 2010

Ian Skerrett

ianskerrett

Today is a very exciting and important day for the Eclipse community.  The Eclipse Platform project has released Eclipse SDK 4.0, the next generation of the Eclipse platform.  For technical perspective on the release I point you to Mike Wilson’s excellentt blog post ‘Growing the future’.

Congratulations to the entire Eclipse 4.0 team for shipping the release (which of course was on schedule :-) )!  It has been a long journey to get to this day.  What started out as a ‘blue sky’ BOF at EclipseCon 2007, followed by some more concrete ideas at EclipseCon 2008, the details began to emerge via a series of summits and community discussions.  It has been a great community effort.

Not everyone will agree with the decisions, ideas or architecture of Eclipse 4.0.  That is to be expected in a healthy community with lots of passionate participants.   It is a credit to the team that they have made the tough decisions and ‘shipped the code’.

The journey is far from complete.  The next step is to get Eclipse Foundation projects and Eclipse plugins to migrate to Eclipse 4.0.   This is why we have named Eclipse 4.0 an ‘early adopter release’.  Over the next number of months I am hoping every Eclipse project will migrate their code based to the new platform.  There is binary compatibility so it should be a straight forward process.  It is great to see some people have already started.

At this time, we don’t expect Eclipse IDE users or even companies to ship products based on Eclipse 4.0.  These groups tend to rely on a number of different Eclipse projects/plugins that will need to migrate to the 4.0 platform.  In 2011, I would expect the Indigo release train will include an end user release based on Eclipse 4.x.

Congratulations again to the e4 team for shipping Eclipse 4.0.  Now it is up to the rest of the community to continue the journey towards the Eclipse 4.0 platform.  Make sure you tell us your stories as you begin the process.


by Ian Skerrett at July 28, 2010 07:07 PM

Boris Bokowski

Eclipse 4.0 Overview

Since I don't have enough energy left to also write a thousand words, here is just an overview picture of the Eclipse SDK 4.0 Early Adopter Release that we shipped today. I hope you find it useful.

by Boris Bokowski (noreply@blogger.com) at July 28, 2010 02:47 PM

July 27, 2010

Ian Skerrett

topdown

The Eclipse Marketplace Client (MPC) is getting nice reviews from people using the Helios release.   I think Zoltan Ujhelyi sums up MPC very nicely:

This solution [MPC] is great, because I don’t have to remember/google for the various update site urls, and then manually select the features – if I don’t want to.

MPC makes it easy to discover and install different Eclipse plugins.

So what are people downloading?  Well we are keeping track: Subclipse, Maven Integration for Eclipse, Subversive, Findbug Eclipse Plugin, Pydev and eGit are the more popular downloads.


150 different solutions have been installed at least once using the MPC, so there is a lot to discover.   Of course we are also seeing more and more solutions being added each day.  Why not give Marketplace Client a try and see what you can discover.  Just look under the Help menu in your Eclipse installation.


by Ian Skerrett at July 27, 2010 05:37 PM

July 26, 2010

Ian Skerrett

Helios

Helios has been out for just over 1 month and it looks like our more successful release to date.   As of today we have over 1,373871 download requests, not bad for 33 days after the release.  Last year we did 1 million downloads in 27 days.

If you are looking for more information about Helios projects there are a number of resources:

- the recordings from the Helios Virtual Conference are now available.

- a number of the projects created demos of what is new for their release.

- some great blog reviews of Helios from people in the Eclipse community

We are also into our last week of the Friends of Helios campaign.  The response has been fantastic and thank you to everyone that has joined to become of Friend of Eclipse.   We just need 16 more people to hit 500, so tell your friends!


by Ian Skerrett at July 26, 2010 05:57 PM

July 25, 2010

Ralph Mueller

Picks of the Night

Just couldn't sleep, so I thought I check out the Eclipse Summit submission system for the last submissions.

Here is what I found:

Extreme Software Evolution with Object Teams, Stephan Hermann

DTD 2 Ecore Converter, Annamalai

Eclipse Ecosystem in India, Annamalai

Eclipse UOMo - From Wall Street to Wall·E, Werner Keil

After reading through the abstracts I decided Werner's talk is my winner of the night:

Developers who work with physical quantities (such as developers in the scientific, engineering, medical, and manufacturing domains) need to be able to handle measurements of these quantities in their programs. Inadequate models of physical measurements can lead to significant programmatic errors. In particular, the practice of modeling a measure as a simple number with no regard to the units it represents creates fragile code. Another developer or another part of the code may misinterpret the number as representing a different unit of measurement. For example, it may be unclear whether a person's weight is expressed in pounds, kilograms, or stones. Problems multiply for mobile, embedded or distributed clients having to communicate with multiple servers or services in a Cloud. This session provides an overview of Eclipse OUMo, the UCUM standard and prior implementations like Java Mobile Sensor API (JSR-256) or OSGi Measurement. It outlines use cases ranging from semantic web, robotics through healthcare to financial services or green energy. Plus a look at selected dynamic languages with proper Units of Measure support like Fantom, Grails, CURL, Scala, F# or Smalltalk. Exploring how Eclipse OUMo and the UCUM standard allow all these to exchange unit consistent information across distributed ecosystems.

Tell me if you disagree

Ralph

Comments

by ralphmueller at July 25, 2010 11:33 PM

July 24, 2010

Chris Laffra

laffra

In the week of July 21, 2010, I attended my first OSCON conference.

The lineup of presentations is normally quite impressive already, but this year it was even more so with the inclusion of the Emerging Languages Camp. Kudos go to Brady Forrest (O’Reilly Media, Inc.) and Alex Payne (BankSimple) for recruiting such excellent speakers.

As the organizers put it in their own words, “new programming languages are born all the time. Some languages are created to tackle new problems. Some languages are evidence proofs towards a better way of programming. Some are created just for fun or to scratch an itch. The Emerging Languages Camp is a gathering of the creators of recent programming languages, their peers, colleagues, interested programmers, technologists, and journalists.”

The event was spread out over two days at OSCON 2010, with a dedicated room filled to maximum capacity of 120. The event was inspiring due to the enthusiasm with which each and every of the two dozen speakers presented their language, how they made a historical comparison with other languages, how they explained the motivation behind why the world needs yet another language, and the way they gave compelling demos of sample code written using their programming language.

The only problem with events like this is that I now feel inspired to design another language of my own, just because it would be cool and just because I can :-)

A running inside joke of the 2 day session was how to write an accumulator in the speaker’s proposed language. Next time you develop a language, forget “hello world”, and show an accumulator function, if you want to get recognition from your peers!

Some random twitter quotes:

  • “Q: What kind of programs do you imagine writing with this language? A: I have no idea.”
  • “There goes Lisp’s Last Great Hope”, as Rich Hickey dashed across the road in front of traffic.”
  • “When facing a new problem, you may look for the best language to solve it, or create your own”

Below follow the presentations I attended, as short description of each, and some personal highlights. Some I attended but could not make notes for due to brain overload.

Go
Rob Pike (Google, Inc.)

“Go’s approach to concurrency differs from that of many languages, even those (such as Erlang) that make concurrency central, yet it has deep roots. The path from Hoare’s 1978 paper to Go provides insight into how and why Go works as it does.”

Rob gave three presentations at OSCON 2010, and in the first one he specifically focussed on concurrency. The real breakthrough in parallel programming came in 1978 when Tony Hoare published his seminal paper on Communication Sequential Processes (CSP). Communication is fundamental. Parallel composition is multiprocessing. CSP has guarded commands, which allow you to express the willingness to execute a command based on a given expression. Furthermore, the composition language is very similar to the “pipe” construct in UNIX, but not used in any language up to 1978.

From the theoretical basics of CSP, we forked off into many different more practical applications, such as Occam, Erlang, Squeak (SIGGRAPH ’85), Newsqueak, Alef, Limbo, and Go. The important discovery along this evolution was to make communication channels be first class citizens. That means you can send channels over a channel. Process composition works by naming channels to allow goroutines to communicate with each other.

loke/Seph
Ola Bini

“Ioke is a dynamically typed language – a language experiment with a focus on expressivity. It’s prototype based, object oriented, homoiconic and have powerful macro facilities – and runs both on the JVM and the CLR. Seph is a language currently being developed, based on Ioke. It’s a functional object oriented hybrid with explicit concrrency features inspired by Erlang and Clojure.”

Perhaps the most distinguishing contribution of Ioke (pronounce: eye-oh-kee) is the notion of a formalized “decision system”. It is similar to continuable exceptions from Smalltalk, and much unlike exception handling in Java, where developers have to constantly unroll stacks.

Ioke cares less about concurrency, as that was not the topic of study that led to Ioke. Interestingly, Ola reported on that fact almost apologetically, and I kind of agree he should feel a bit embarrassed. Modern languages should be *based* on concurrency as that is the main problem to solve in the near future, with the increasing emergence of multi-core chipsets. My current desktop at work is a 12-core CPU, and at best I can exercise maybe 3 or 4 cores, while most stay dormant
because the programming languages we use to develop contemporary programs have a hard time expression concurrency across processes.

Ioke has a nice mechanism for DSLs. If you are into developing your own language, Ioke may be a language to investigate. Ioke allows you to change the underlying AST while the program is running, which greatly improves expressiveness, at a grand cost of performance, of course.

Ioke has no floats, just BigDecimals. Kudo!

Thyrd
Phil Mercurio (Thyrd Informatics)

“Thyrd is an experimental visual programming language built as a proof of concept. Thyrd is reflective (a Thyrd program can inspect and modify itself) and concurrent. Visually, it resembles a spreadsheet. Underneath is a stack-based functional language in the same family as Forth, Joy, and Befunge. This talk will present the key concepts in Thyrd and some of the directions it might take.”

Thyrd is heavily based on spreadsheets to combine the same representation for both the user interface and the underlying data model. This allows you to define variables, lists, tables, and tree datastructures, based on simple addressing semantics on the Thyrdspace. From a given cell, you can use relative addressing to get to other nodes.

Cell nodes are like spreadsheet functions and are constantly evaluated when dependent nodes change value. Expression evaluation uses a stack execution model, very similar to Forth (and Postscript). Using the “Fold” operator, you can easily develop a MapReduce equivalent.

Debugging is extremely visual by dragging a breakpoint into the code wave viewer. Similar tools have been developed for displaying the internal execution, allowing you to watch the execution stack being animated in a visual display.

I really enjoyed this presentation. At lunch I spoke with Phil and grilled him on scalability of visual programming techniques and performance, and he eluded to both of those being hard problems to solve. Even something as simple as TicTacToe becomes a wieldy set of colorful boxes. Phil remarked that the hierarchical nesting that the spreadsheet metaphor offers does help with navigation, as it encourage the brain to use its specialized spatial memory abilities. That
sorting routine is somewhere to the top right, then 3 down, right next to that purple box.

Parrot
Allison Randal (O’Reilly Media, Inc.)

“The Parrot virtual machine hit 2.0 in January of this year, and the 2.6 production release will be out the day before this talk. A virtual machine like no other, Parrot targets dynamic languages such as Perl, Ruby, Python and PHP. It incorporates an object-oriented assembly language, is register-based rather than stack-based, and employs continuations as the core means of flow control.”

A core component of Parrot is a parsing expression grammar (PEG), plus tree transformations to generate the instructions to run on the virtual machine. The transformations are heavily based on attribute grammars.

The work being focussed on now is “Lorito” (Spanish for ‘small parrot’), to reconsider and refactor the existing VM and improve startup time, resource consumption, and targetting clouds and mobile architectures. Parrot now has 1,200+ static opcodes. That makes it hard to write a JIT. Lorito limits itself to 20 opcodes. Higher level opcodes are encoded in lower-level opcodes to allow JITs to do a better job. Other improvements focus on improved garbage collection algorithms and reduce cost between the various memory spaces. Lorito has only one object system, and hence no cost for going between C and the VM.

Allison gave a passionate and enjoyable overview of Parrot and it inspired me to read up some more on it. Although Parrot is not a language per se, I think the topic was quite appropriate for the audience, as environments like Parrot solve many challenges language designers face and don’t want to necessarily focus on, such as parsing, garbage collection, and JIT compilation.

Ur
Adam Chlipala (Impredicative LLC)

“Ur/Web is a new domain-specific language for programming Web applications, based on a new general-purpose language called Ur. Ur features new abstraction and modularity features that make serious code reuse and metaprogramming possible within a strong static type system.”

The main goal of Ur/Web is to enforce entitlements on subsets of datastructures, in particular related to web applications, such as controlling accress to a subtree of a given web document. It is one of the various approaches to solve the “browser problem”. A great side-effect of Ur is its highly optimized packaging technology that automatically compresses code before sending it to the browser.

Frink
Alan Eliasen (Frink)

“Frink is a practical programming language and calculating tool designed to make physical calculations simple. It tracks units of measure through all calculations, ensuring that answers are correct. Back-of-the-envelope calculations become trivial, and more complex physical and engineering calculations become simpler to write and read, and allow transparent use of any units of measure.”

This was an awesome presentation. Alan started with explaining how he got to design Frink many years ago. A friend of him claimed that 9,5 years of farting creates the same amount of energy as an atomic bomb explosion. Alan had his doubts and set out to disprove the theory using C++. He quickly got stuck and realized he needed a much better language to reason about the numerous units of measure and conversions between them. The end result is a system where you can simply request the output of a nuclear explosion in kilotons, convert that to joules, convert to calories, and simply divide that by “9 years and 6 months”.

Frink empowers such computations by including a smart parser, lots of trivia, and a vast library of conversions between countless physical metrics, such as kilograms, meters, miles, etc, etc. The transformation rules in Frink remind me of peephole optimization tools for IR optimization and use an elegant DSL that is very similar to regular expressions as I used myself to optimize IR opcodes in the Amsterdam Compiler Kit, some 20 years ago.

Another innovative contribution offered by Frink is the adoption of interval arithmetic. Try this: load your favorite compiler or interpreter and add 0.1 to itself 1,000 times. In systems that store 0.1 as a float, you are guaranteed to end up with a number that is unequal to 100, as 0.1 cannot be stored reliably as a binary number. Alan contributes to the IEEE  standard that suggests a different type of math that allows you to compare numbers in ranges. Rather than saying x=0.1, you can say x=[2,4], which means that x can be any number in between 2 and 4. In other words, x is all those possible values at the same time. This is almost as cool as quantum computing!

With interval math, Alan convincingly showed how much more reliable complex computations can be, as error margins can be controlled and reflected upon. In this way, we can explicitly compute not only the result, but also the risk behind a certain computation.

Thoughts on the F# Productization
Joe Pamer

“F# was already a fairly mature language with roots in Microsoft Research, Cambridge, and a steadily growing user base when the decision was made to officially support it in Visual Studio 2010. Having just shipped F# 2.0, the goal of this talk is to outline the experiences, both positive and negative, we had in transitioning the F# language and its implementation.”

This presentation was a bit different from all the others, as it did not talk at all about F#, showed no sample code, and did not relate it to any other languages at all. Instead, it was a great meta-topic discussion on the perils of success. Joe elaborated on his personal experience what things the F# team needed to worry about to allow adoption to a larger (and more commercial) audience of the original research project:

  • books/forums/evangelising
  • much better error/warning messages
  • a well-written and well-maintained spec
  • dog-fooding (use your own language to implement your compiler)
  • be a first-class CLR language, no shortcuts
  • clean up the crud collected over the years in the runtime DLL (camelcase vs underscores)
  • binary compatibility between different versions of runtimes
  • modern tooling support (debugging, etc)
  • writing documentation, automatic generation
  • high quality, localizable diagnostics (changes how you print errors)
  • figure out runtime deployment
  • improved experience on alternative platforms (i.e., test on Mono)

It’s amazing how generic this list is. Substitute F# for your own language, platform, or product and the list of lessons learned apply directly to your own project to make it prime for successful adoption. I have been involved in quite a few large projects that went through this very same transition, and it was interesting to see how many deja-vus I had during the presentation. In return for his great talk, I showed Joe the direction to the beer at the local Python User group :-)

CoffeeScript
Jeremy Ashkenas (DocumentCloud)

“CoffeeScript is a little language that compiles into JavaScript. It’s a thought experiment that aims to test how far we can stretch JavaScript semantics without adding any runtime libraries or outputting reams of generated code. Recommended for folks who are interested in languages that run in the browser as well as the server.”

Coffeescript has been self-hosted since version 0.5 and solves some of the biggest problems with JavaScript.

As far as the syntax goes, CoffeeScript looks a lot like python :-) It is an awesome language and implementation. Not only is Jeremy a natural presenter, his materials were nicely presented, and various explanations and demos looked very nice. I bet many languages would be envious and hope to have such a great evangelist.

As CoffeeScript translates into Javascript, debugging has to happen on the generated code. I had a discussion with Jeremy afterwards, and explained how we solved that problem in EGL, where we generated two forms of JavaScript code, one with line number information and breakpoints, and one without that. Our tooling used the meta information to support debugging in the original source language. I also suggested Jeremy talk to John Barton of IBM who is working on
improved debugger integration with Firebug. This may help in debugging CoffeeScript.

Mirah
Charles Nutter (Engine Yard, Inc)

“Mirah (formerly Duby), is a Ruby-inspired, statically-typed, lightweight, platform-agnostic language with backends for JVM bytecode, Java source, and more platforms planned. It borrows features from several static and dynamic languages, but with a twist: no runtime dependency on any additional library; everything is done at compile time.”

The goal is to have the best of Ruby, but be as fast as Java, and see where the ship sinks. Very small code base. Only 10K lines of Ruby code.

For almost all samples, the generated JVM bytecodes are much more condensed for Mirah than they are for JRuby. Requires function arguments to be typed. Uses type inferencing to propagate type information to declare locals and fields of more specific types that a dynamically typed JVM implementation could ever get.

It reminded me of the research work on “typed Smalltalk”. I myself have implemented a Smalltalk to Java byte code translator in the late nineties, and the opportunities for optimization are huge when generating to the JVM when type signatures are available. Lookup through reflection API is horribly expensive both in code size and in CPU consumption.

Kodu
Matt MacLaurin (Microsoft FUSE Labs)

“Kodu is a new, purpose-built programming language designed as a first programming experience for kids or folks who want a very accessible intro to programming. Kodu is a visual language embedded in a 3D world, with language features specifically aimed at game design and interactivity programming. While deceptively simple, Kodu also introduces advanced concepts such as concurrency and arbitration.”

Kodu was designed to make it very easy to develop XBox games, assuming an underlying rendering engine.

Motivation is to reduce the impedance mismatch when going from gameplay to editing. Using simple metaphors that are close to the kids’ vocabulary, such as “score” instead of “int”. Furthermore, Kudo provides instant gratification by giving immediate feedback on scripts you just wrote. A debugger is not really needed as recoding is really easy.

OK. I cannot wait to get home, and download Kodu from XBox Live and sit down with my 13 year old and buy our own game. In the past, I have played with systems like Alice from Carnegie Mellon, but it is amazing to see what the latest generation of game engines allow you to do.

I also think the commercial/business software industry has been categorically ignoring lessons from gaming. I have yet to see an XBox 360, PS3, or Wii game that really needs a manual. All UIs are extremely intuitive or simplified to not overwhelm the user and sit in the way of the real aim: shoot monsters. Most commercial software thinks the business function is subordinate to the application framework and applications are over-engineered in the wrong areas. How
many games do you think get 5 stars when they take 4 hours to install, or when it takes 5 minutes to start up?

Update: I told my son about Kodu this afternoon. Half an hour later, he had downloaded by himself from the Indie game category at XBox Live, and had his first game implemented already. Amazing.

Clojure
Rich Hickey (Clojure)

“This talk will provide a brief experience report on Clojure, a dynamic, functional language targeting the JVM. It will detail the challenges faced in providing a practical and approachable programming language featuring pervasive immutability on top of the commodity infrastructure of the JVM.”

Rich talked about a topic he is working on right now that may make it into Closure, and yet again, may not. I think it should as the concept is very similar to the project I am now working on at Bank of America/Merrill Lynch, and we agree on need for such and approach.

Rich’s goal is to implement persistence as a stored graph, where each node is immutable. As soon as you write to a node in the graph, a new path is created to provide you a new view of the world with the updated value. Only you will see your changes. Others use their own access paths, which takes them to the old values, not your new values. This persistence model strongly encourages concurrent modifications to the graph, facilitating caching, and replication and redundancy.

Clojure remains an extremely elegant system. I just cannot get used to the syntax, as my mind has been too polluted by C, Java, and more recently Python.

E, Caja
Mark Miller (Google, Inc.)

“E is a clean slate no compromise language, built for object-capability security and distributed computing. JavaScript is one of the leakiest languages ever, created almost by accident, whose massive success imposes severe legacy compatibility constraints on its evolution. Caja is the surprising discovery of E-like security in a simple compatible subset of JavaScript.”

The main goal behind Caja (aka, Dr.SES) is to make JavaScript more secure by making the reference graph be identical to the access graph, and allowing for ‘safe mashups’.

The second goal is to improve concurrency. Tradeoffs are shared state vs. message passing in one dimension and blocking vs. non-blocking in the second dimension.

Mark explained the various meanings of the word Caja, and reinforced another lesson. If you are designing your own programming language, platform, or framework, spend at least as much time at choosing the right name as you do in implementing it.

AmbientTalk
Tom Van Cutsem (Vrije Universiteit Brussel)

“AmbientTalk can best be summarized as “a scripting language for mobile phones”. It’s a dynamic, object-oriented, JVM-compatible, distributed programming language. AmbientTalk’s focus is on applications to be deployed in so-called “mobile ad hoc networks” – networks of mobile devices that communicate peer-to-peer using wireless communication technology, such as WiFi or Bluetooth.”

I thought the coolest takeaway from AmbientTalk is the notion of message queues and the fact that network failures are not exceptions, but are to be expected and anticipated. A lot of the plumbing in AmbientTalk concerns itself with talking to partners that we have no physical connection with yet, and dealing with messages that time out after a certain time.

OK, that wraps up my brain dump of a subset of the languages being presented at the Emerging Languages Camp 2010. I am hoping we will see many more of them in the future…


by laffra at July 24, 2010 02:41 AM

July 22, 2010

Nick Edgar

EclipseCon talk accepted

Looks like our talk on the Eclipse e4 programming model, which includes a demo of our work on embedding web UIs into Eclipse, has been accepted for EclipseCon (March 23-26 in Santa Clara). Woot!

by Nick Edgar (noreply@blogger.com) at July 22, 2010 06:44 PM

Ralph Mueller

Eclipse Summit Registration

Just received the first Eclipse Summit Europe T-Shirt. It is still in Alpha - but you will be able to purchase the real thing when you register for the conference.

EclipseSummitShirt

They come as normal T-Shirts and as a sports version and will be shipped to you within a few days after registration!

Ralph

Comments

by ralphmueller at July 22, 2010 04:29 PM

July 19, 2010

Rick DeNatale

Ubuntu TimeMachine server for Snow Leopard

I've been contemplating improving my backup strategies lately.

Last year, I signed up with Backblaze to back up my MacBook to the cloud. There are a few players in this arena, another is Carbonite.

But off-site backup is only one leg of the backup stool. The wisest course for backup is a 3, 2, 1 strategy. That is to have three copies of your data, on two media (i.e. at least one of the copies should be on a different medium than the others), and one of the three should be offsite.

I consider on-line backup (a la Backblaze) to be a different medium, where rather than the medium just being a hard disk it's the whole off-line backup company's infrastructure.

Offline/offsite backup is really targeted for disaster recovery, if the building housing my on-site backups was destroyed by fire, or some other calamity, along with those backups I could recover the data from backblaze, but it would take a while to get it, either by downloading or getting them to ship me an external hard disk.

And for certain important data, I also use DropBox which can not only save data to the cloud, but sync that data between multiple machines. To make sure I've got a copy of the contents of this blog, I have a cron job on the Linux server where it runs which does a sql dump of the database to a dropbox folder, along with any new files (images, documents, etc) used by the blog. This runs in the wee-dark hours, and every morning, my MacBook informs me that DropBox has copied that data down to my MacBook.

But I've been feeling a gnawing need for better on-site backup, with faster access for either full recovery, or to get back a mistakenly deleted, or corrupted file.

One requirement is that the backups be done automatically. I've got too many other things on my mind than to remember to backup frequently, that's what I have computers for. Also I want the backups of my Macbook to work anywhere it can access the LAN. I tend to use my MBP in various areas of the house, upstairs in my office, where it's next to the server, and can be jacked into the same ethernet switch as the server, but also in the family room and even the bedroom, where it's connected by wi-fi.

TimeMachine

I've been wanting to use Apple's TimeMachine for a while, but haven't had the necessary hardware. I'd been thinking about buying a TimeCapsule, but I've been just a little leery since several of my friends have had their TimeCapsules die within a year.

I did a bit of research, and came up with the idea of looking at using my Linux server to hold a TimeMachine backup. The box has several available drive bays, and I could get a 2TB WD SATA drive for $120. With the cable and tax it came to just around $150.

But first I wanted to make sure that it would really work.

Existing How-Tos

I asked my friend Google about TimeMachine and Ubuntu and the first hit was a detailed how-to on kremaliscious.. Unfortunately that how-to is about two years old. Fortunately it still pretty much applies, but things have been simplified a bit.

That how-to, which was last updated when the latest Ubuntu was 8.04, "Hardy Heron" and the latest OS X was still 10.5.x, "Leopard", describes building a custom debian package for netatalk to add support for ssh connections. Netatalk is an open source implementation of Apple's AppleTalk Protocol Suite. I also encountered a much more succinct article by my old OTI friend Andrew "Roo" Low, which did the same.

For context, I'm running Ubuntu 10.04, "Lucid Lynx", on the Linux box, and OS X 10.6.4, "Snow Leopard" on the MBP.

A comment near the end of a long string of comments in that first article indicated that a custom netatalk package was no longer necessary, since the standard debian/ubuntu netatalk package now has ssh support. But following the rest of the instructions got me to the state where my Mac could see the shared volumes on the server, but when I tried to connect to them, I couldn't authenticate.

Figuring that I really did have to build a custom netatalk package, I followe Roo's article and built one. But it ended up in the same place.

It turned out that the crucial bit was a change to the configuration of netatalk's afp configuration.

The article gives the following configuration line in /etc/netatalk/afpd.conf

  - - transall -uamlist uams_randnum.so,uams_dhx.so -nosavepassword -advertise_ssh

But with the current netatalk this needs to be changed to:

  - - transall -uamlist uams_randnum.so,uams_dhx2.so -nosavepassword -advertise_ssh

This is actually mentioned in comment 330 (of 670!) but I missed it.

After making that change, I could connect to the shares. So I removed my custom netatalk package and installed the standard one, and it still works.

Avahi setup

Netatalk is one half of what's needed to have a Linux box participate in an Apple friendly network. The other half is Avahi which is an open source implementation of the Zeroconf standard or what Apple calls Bonjour. Bonjour/Zeroconf is how Macs find services on the local network.

Most current linux distributions include Avahi, as does Ubuntu 10.04, so it was just a matter of configuring it. The instructions in the kremaliscious article are fine. However, while I was at it, I also configured Avahi to publish a VNC server which allows me to easily start a graphic login to the server from the Mac finder. Bonjour uses the service type rfb (remote frame buffer) for the VNC server. To get this working I followed this article. I combined the configuration of both the afpd and rfb services into a single configuration file in /etc/avahi/services/multi.service

Here's that file:

  <?xml version="1.0" standalone=&aposno&apos?><!--*-nxml-*-->
  <!DOCTYPE service-group SYSTEM "avahi-service.dtd">
  <service-group>
    <name replace-wildcards="yes">%h</name>
    <service>
      <type>_rfb._tcp</type>
      <port>5901</port>
    </service>
    <service>
      <type>_afpovertcp._tcp</type>
      <port>548</port>
   </service>
    <service>
      <type>_device-info._tcp</type>
      <port>0</port>
      <txt-record>model=Xserve</txt-record>
    </service> 
  </service-group>

File Server Setup

First I configured netatalk to give me a test 'drive' by publishing a directory in my own home directory on the linux box. Once I'd proved to myself that TimeMachine could in fact connect to this, it was time to buy that drive and hook it up.

I make it a standard procedure to install disks on Linux under control of LVM. Here's a pretty good and succinct guide on getting started with LVM on Ubuntu.

So I installed the drive, and set it up as an LVM Physical Volume called FileServer, I then added a couple of logical volumes to the group:

  sudo lvdisplay
    --- Logical volume ---
    LV Name                /dev/FileServer/TimeMachine
    VG Name                FileServer
    LV UUID                VIdN7y-0gDa-1Azr-0oYB-MRj3-Woxt-Utyef8
    LV Write Access        read/write
    LV Status              available
    # open                 1
    LV Size                1.50 TiB
    Current LE             393216
    Segments               1
    Allocation             inherit
    Read ahead sectors     auto
    - currently set to     256
    Block device           251:3

    --- Logical volume ---
    LV Name                /dev/FileServer/MunimulaClone
    VG Name                FileServer
    LV UUID                Y36agh-Tgnk-1dcf-34tw-AJLm-1Mc2-jcqsuk
    LV Write Access        read/write
    LV Status              available
    # open                 0
    LV Size                320.00 GiB
    Current LE             81920
    Segments               1
    Allocation             inherit
    Read ahead sectors     auto
    - currently set to     256
    Block device           251:4

I gave TimeMachine 1.5 terabytes to play with, and reserved enough to hold a snapshot of my laptop drive in MunimulaClone. Munimula is the name I gave my MacBook pro, inspired by it's construction and a childhood memory. I then installed an ext3 filesystem in both of these logical volumes.

I set up /etc/fstab to mount these in to mount points in the /var directory

  /dev/FileServer/TimeMachine /var/TimeMachine ext3
  /dev/FileServer/MunimulaClone /var/MunimulaClone ext3

Following Roo's suggestion I created an empty file “/var/TimeMachine/.com.apple.timemachine.supported” with the touch command, and on the Mac I executed the command:

  defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

Then I added the following two lines at the end of /etc/netatalk/AppleVolumes.default to publish the two network volumes:

  /var/TimeMachine TimeMachine allow:rick cnidscheme:cdb options:usedots,upriv
  /var/MunimulaClone MunimulaClone allow:rick cnidscheme:cdb options:usedots,upriv

I did run into the problem encountered by others of TimeMachine giving an error that it couldn't create the backup disk image, but IIRC this only happened once, it created a file called munimula.tmp.sparsebundle, and removing the .tmp from the file name seemed to allow TimeMachine to proceed.

Results

With the MBP connected via an ethernet cable through a switch to the linux box, the first backup (about 290GB) took around 11-12 hours. It had just finished when I checked this morning. The second 'hourly' backup took just a few minutes. I then disconnected the hard-wired connection and brought the laptop downstairs.

It didn't seem to automatically start a new backup cycle over wifi when it should have, but getting it started by holding the mouse down over the TimeMachine icon in the dock until the menu appeared and then selecting "Back up now" got things kicked off, and it's been taking hourly backups wirelessly all day so far. The hourly backups take a bit longer, may 10-15 minutes. I'm not sure if that's because of lower bandwidth over wifi, or just because I've been using the laptop, and there's more delta data than there was first thing in the morning.

So far I'm pretty happy with the setup, I'll update this article should any surprises occur, good or bad.


Original article writen by Rick DeNatale and published on Talk Like A Duck | direct link to this article | If you are reading this article elsewhere than Talk Like A Duck, it has been illegally reproduced and without proper authorization.

by Rick DeNatale at July 19, 2010 08:32 PM

Brooke Kuhlmann

Resourcer 0.3.0

Ruby

I’ve just released version 0.3.0 of the Resourcer Ruby Gem. Here are the changes:

  • Added the csrf_meta_tag helper which provides Rails 3 support for Rails 2 apps.
  • Moved jQuery AJAX setup to the jquery.rest.js file.
  • Removed the JavaScripts controller and related views (use jquery.rest.js instead, everything happens there now).

To upgrade to v0.3.0 from previous versions, perform the following steps:

  1. Delete the app/controllers/javascripts_controller.rb file.
  2. Delete the app/views/javascripts directory (especially the ujs.js.erb file found within).
  3. Remove the <%= javascript_include_tag "ujs" %> from your app/views/layouts/application.html.erb layout file.
  4. Add the <%= csrf_meta_tag %> line to your app/views/layouts/application.html.erb layout file.
  5. Rerun the setup generator: script/generate resourcer_setup.

by Brooke Kuhlmann at July 19, 2010 12:33 PM

July 18, 2010

Bjorn Freeman-Benson

Archived

I've archived the 431 posts from this blog. If you're interested in a specific post, don't hesitate to contact me and I'll pull a copy out of storage for you.

by Bjorn Freeman-Benson (noreply@blogger.com) at July 18, 2010 12:01 PM

Coreen Tyers

That kind of day.

On a recent Friday, a day of storms:



it was dark outside, dark inside. By 9am I had reached the chocolate point. There was no way the day could proceed without an infusion. Little did I know the day needed to darken before the bliss. We're a healthy lot at the office. Apparently so healthy that we don't consume enough to have a junk candy vending machine on each floor, so now I had to *gasp* traverse floors. I did so, bitching and moaning and kicking kittens all the way. There's nothing to get my pout on more than moving my chocolate!

I get to the machine, find the chocolate that I want (that isn't hiding behind some lame selection, man I hate that!), insert correct amount, very carefully punch in correct digits and wait. I may have pressed my nose to the glass and drooled a bit as I watched that twirly spring uncurl until...the candy stopped right at the edge. You've got to be kidding me! There it sat, taunting me, leering at me even. A co-worker, alerted by the high pitched screams, came to offer some advice, 'hit it' she said, and then she proceeded to beat the hell out of the machine. I was afraid we were going to be those people that the warning labels represent. Seriously, I took a step back for fear of being crushed, but this 5' tall woman sat there smacking and rocking the machine with all her might, sadly to no avail. She clearly understood my desperate need for chocolate. Her parting note, although glib on the surface, actually demonstrated the true depth of her understanding, 'just buy another one, you know you'll eat both'.

Genius! And luckily I had the change to do so (seriously who carries cash these days?). Purchase repeated, and two, two magical packages dropped out of the machine and into my desperately clutching hands. Now, at this time, I didn't fully appreciate the wisdom of her words, so I kicked a few puppies on my way back to my PWA (go ahead, ask me what it means I know you want to). Once ensconced, I peeled back the wrapper...only to discover this bonanza:




That package needed to read 3.75, not 3! The difference was soon moot as it quickly (as if by magic) turned to this:



And the day was allowed to proceed.

July 18, 2010 01:58 AM

July 17, 2010

Brooke Kuhlmann

Returning to Torrey

OverlookOverlook
(click to view)

Overview

I recently tweeted about heading back to Torrey, Utah to ride for three days with fellow BMW riders this September. It has been five years since I last rode in Torrey with a great group of experienced and well-traveled riders. I’ll be looking to meet up with Brant - an old friend and fellow rider (arriving from the south). Actually, its due to Brant’s influence that I got into riding and if I didn’t have to code as much as I do, I would spend all my days traveling every scenic road this world has to offer (paved or not)!

Details

Anyway, if you are interested in joining in on the fun, here are the details:

  • When: September 24-26, 2010 (Friday, Saturday, and Sunday). Departure is at 8am at either my place or some central location that works for everyone involved.
  • Where: Torrey, Utah
  • Lodging: The options are many. I prefer to camp, so will be looking to book a camp site at the Wonderland Resort RV Park (435-425-3775, Junction of Highways 12 & 24). I’ve stayed there several times. Great place. They have shower facilities if you need them.

Route

The whole point of Torrey (as with any trip) is not the destination but the routes to get there and back. Here is a rough idea what I’m thinking about taking to get there. I’ve traveled many of these roads, so if you haven’t experienced these roads yet, you’re in for a real treat:

Overlook
(click to view)

Registration

If you are interested in joining and are based in the Front Range area (Boulder, Denver, Colorado Springs, etc) let me know and I’d be happy have you along. The more the merrier! It does help if you are on a BMW bike but any type of rider is welcome as long as you are comfortable traveling 500+ mile days.

Resources

More news can be found on the discussion boards.

by Brooke Kuhlmann at July 17, 2010 08:18 PM

July 16, 2010

Mike Wilson

New digs

As a result of some new hiring we’re doing, we’ve finally gotten around to re-organizing our office layouts. I ended up in a nice office, with an interesting shape, that used to be the one Nick was in. Unfortunately, Nick ended up on the “puny” end of the office lottery as a result. :-( Sorry, Nick.

Here’s a pic of my new space…

My new office.

And I even have enough room for my couch (just off camera to the right).

by McQ at July 16, 2010 08:22 PM

July 15, 2010

Coreen Tyers

Morning Silence

Since the start of July hubby has been starting work at 7am. From March until the end of June he was working the evening shift. Before that he was working insanely early, and before you say it, even the morning people I know thought it was insanely early. What's the point? The point is that all of those shifts mean that I am the one that takes V in to school in the morning. The daycare doesn't open until 7 so the timing didn't work any other way. My morning routine, since last September has always involved V.

This morning though, as her daddy headed to the door, V piped up with a, 'Daddy drive me.' Not a demand as much as a statement of fact from a growing vocabulary. Much scrambling ensued and off they went. Hubby will be a bit late, but his little button asked so how could he say no?

I sat in the window, as I do every morning, and waved as the car drove off. This time there was no little blonde head beside me, curls bobbing as she waved her little arm off. This time the little arm was waving from the car.

The silent morning now stretches before me. There will be no parade while she 'plays' the recorder and stomps around in her squeaky shoes. There will be no 'why?, but why?' heard, no requests to read a story, no firetrucks zooming and crashing, no hide and seek.

What do I do? Delicious calm. Wonderful time. What do I do?

Pet the dogs, feed them, chase them a bit...

Bathe, read, have another coffee...

Read some blogs, do a bit of writing, play a game...

Pick up toys, put in another load of laundry, wash the dishes...

Feel guilty.

July 15, 2010 11:42 AM

July 13, 2010

Coreen Tyers

4-day weekend (pt 2) or will this weekend ever end?

Bullet points for those about the TL:DR -

  • Was tired before the weekend started, because I have the dum

  • Crazy lady burned my brain.

  • V kicked up the cuteness everywhere (of course)

  • I ate way too much and my brother is a kick-ass cook (but not a bear)

  • V learned that too-ripe berries are perfect for painting on her pants

  • And now Friday's over


Having fully managed to make the long weekend long before it even started, we headed to our first Canada Day event, a pool party at B's co-workers' house. We brought swimsuits for me and V. Let's go over that again. It was a pool party. It was hot and sunny. Children were invited.

First thing V did when she hit the back yard was head for the pool. She was 'very good' and lasted about 5 minutes before going in past hem length, at which point we changed into our swimsuits. Apparently a co-worker of B's didn't get the message about the 'pool' part of the party. And they brought their two sons. Two sons who don't know how to swim. Two sons who really, really, really wanted to join all the other kids in the pool. Or at least get their feet wet. Two sons who had a mother who didn't swim either (I can't figure out why else she was so uptight about the pool).

This translated into her shouting (that is the nicest word I have for it) out their names ever 20 seconds or so. All. Afternoon. LOOOOONG. I never fully understood the term  'helicopter mom' until I saw this woman in action. Her children could not breathe right. They were in mortal danger at every moment. And let's be clear here, they weren't 2 or 3, they were maybe 5 and 8. They were on a tighter leash than V. You'd think that everyone in that backyard was just waiting to do harm to those children, that if one of them fell in the pool everyone would have sat around watching. Her absence from the backyard was noticeable,  not only in decibel level, but also as it was the only time her kids were allowed to play and do so happily. Their names are burned into my brain so at least I'll be able to address them by name if we ever run into them again.

Much face-stuffing also ensued. La vache qui rit is laughing at me, I must have eaten about 467 of those little party cubes (and I made sure to pick up some wedges at the grocery on Saturday.) Then home to walk the dogs, and off to my brother's for the second bbq of the day. My brother may look like a blue collar sorta guy (or some might say a bear) but man he loves to cook! The main event was sliders, but not just run-of-the-mill sliders, but sliders with brie, alfalfa (why did I try to spell that with two phs?) sprouts and some lemon balm/basil aioli...I may have eaten 20 or so. V's two cousins as well as her friend W (who travelled to Jamaica with us in Jan) were at this 'que so there was much kiddie happiness. I'm sure the frozen fruity treats and cupcakes helped in that department.

Friday hubby had to work, but V and I headed out bright and not-so early (give me a break I'm on vacation!) to pick strawberries. Did you know people actually get territorial about the rows they're working on? Like full-on stink eye. Two year olds stepping into 'their' row had the potential to induce a heart attack. (No berries were harmed in the making of this blog - well other than the ones I mashed and boiled then poured in jars) I made the mistake of telling V that she couldn't eat any berries until we paid for them, so after she'd picked about 4 she headed for the end of the row to go pay. I explained we needed to fill the basket, but it was a lost cause at that point. She was pretty much focussed on paying and eating for the next hour. We managed to get about 4L of the berries, and I picked up a pre-picked basket at the checkout so we'd have a decent batch for the jam.

I did not count on the berry monster that is my daughter! Not only did she wolf them down in the parking lot:


She ate them on the front step:

(I know it's a horrible pic, but after this she had to go potty, and things went downhill.)
She had them for lunch, at dinner and every time you asked her what she wanted for the next 3 days the answer was, 'strawberries'.

July 13, 2010 11:10 AM

4-day weekend (pt 3 - the last one) or OMG more family?

Saturday's big event was a barbeque at my Uncle and Aunt's. It served a couple of purposes - they like to have the family over a couple of times a year, so this checked summer off their list, and hubby was able to return the golf clubs he'd borrowed the week before...did I mention that hubby's first day at the new job consisted of a golf tournament? Nice life!
Anyway, we'd chatted the visit up a bit with V, which meant she was in no mood to go for her nap. Law was laid down, 2 hour nap or no visit. She was unfortunately in orbit at that point so the nap involved a cuddle with a parental unit. Not that we're complaining.

Our local 7-11 must think we have some sort of gingerale and diet coke problem that we just can't kick. This was the 3rd time in 2 days we'd stopped there to fill our pop order. I can't do 'bring nothing'
V and A and L spent quite a bit of time in the pool. I'm so happy to see how comfortable she is in the water now. She'll lie on her back just staring up at the sky, or flip over, blow some bubbles then roar around the pool pretending to be a shark. Yes, in our world sharks roar:



I swear we aren't weirdo parents who only put two inches of water in the pool. This was the pool after many hours of in and out. After they discovered that holding down the sides flooded the lawn. They were still clinging to every opportunity to show off their sharkdom.

Other highlights of the day included the kid's painting area, which as advertised produced many children covered in paint. Neighbours closed up their garage sale by the time we arrived for the 'que so we were able to root through the free stuff for kid's books and boots - SCORE!

We are on a path to totally sabotage her nap and sleep patterns, I think she finally hit the hay around 10 that night, but woohoo! she slept in Sunday so I didn't complain that much. Hubby took her shopping (aka out of the house) Sunday morning so I could do this:



Note: I will pay babysitters in jam. Taking all applications. I need a vacation from my vacation. Luckily the countdown's on!

July 13, 2010 11:05 AM

July 12, 2010

Mike Wilson

Brazil copyright law significantly better than Canada

I saw this link this morning, and I though I’d pass it on:

Brazil’s copyright law forbids using DRM to block fair use

To me, the critical point is that (as it says in the article title) they do not allow “digital locks” to block your fair use rights. Just so everyone is aware, this is not true for the new Canadian copyright law that is currently being introduced.

(I know this is the kind of thing that we tweet, in this modern age, but I wanted to keep the link around for future reference (and I still like the “link of the day” concept).)

by McQ at July 12, 2010 05:45 PM

Ian Skerrett

eweek

Earlier this month eWeek published a list of the top 25 Best and Brightest Eclipse projects.   Congratulations to all the projects that made it on the list!  As with any top ## lists, some worthy projects are missed.    What other projects deserved to be in the list?


by Ian Skerrett at July 12, 2010 02:52 PM

Boris Bokowski

Reminder to submit proposals to ESE 2010

The submission system for Eclipse Summit Europe has been open for a while now, and the deadline is approaching. Now that the Helios release train has successfully shipped1, it is time to think about talks or tutorials that you want to submit.


The main topics for ESE 2010 will be Embedded, Modeling, Runtime, and e4. If you have something to say or teach about these subjects, then great. But don't be discouraged if you have a proposal that doesn't quite fit in these categories. Make a submission anyway.


Eclipse Summit Europe is a great conference, at a really nice location. To make it a success, we need quality content from the Eclipse community, in other words: from you!

1 What a weird image, a train that is shipping. It's been done before, though :-)

by Boris Bokowski (noreply@blogger.com) at July 12, 2010 10:35 AM

July 11, 2010

Brooke Kuhlmann

Memorial Park

After our adventures yesterday at the Bear Creek Dog Park and spending time in Old Colorado City and Manitou Springs, we attempted to head out to the Cheyenne Mountain State Park to hike but there were two problems: a major bike race was consuming most of the park trails and dogs are not allowed. We ended up goofing around in Memorial Park instead. Here are a few random shots from our time there:

Prospect LakeDucksVeterans MemorialFlower BedJust a Tree
(click to view)

Afterwards we headed off to the Cheyenne Mountain Zoo for the afternoon. This was mom’s first time there and the second time for me as I had been there almost four years ago (crazy to think its been that long).

by Brooke Kuhlmann at July 11, 2010 06:30 PM

July 10, 2010

Brooke Kuhlmann

Protected: Jake and Tellys

This post is password protected. To view it please enter your password below:


by Brooke Kuhlmann at July 10, 2010 09:30 PM

Protected: Bear Creek Dog Park (Extras)

This post is password protected. To view it please enter your password below:


by Brooke Kuhlmann at July 10, 2010 06:10 PM

Bear Creek Dog Park

Bear Creek Dog Park is probably the best dog park the city has to offer. It is large and it has space for large and small dogs. We took Ein out for the morning to play with the other dogs. Here are a few shots from our morning adventure:

EinCreekEinEinEinEinEinEinLittle ParkEin
(click to view)

by Brooke Kuhlmann at July 10, 2010 06:00 PM

July 09, 2010

Brooke Kuhlmann

Protected: Rocky Mountain National Park - Day 2 (Extras)

This post is password protected. To view it please enter your password below:


by Brooke Kuhlmann at July 09, 2010 08:10 PM

Rocky Mountain National Park - Day 2

Our second day in the park where the weather was sunny and nothing like the previous day. This time we headed to the Bear Creek Lake trail entrance and hiked up to Emerald Lake. The following are pictures from our hike:

Longs PeakBear Creek LakeLilly PadsLilly PadsGreen GooMountainsTrailStreamEmerald LakeBirdEmerald LakeMarmotEmerald LakeDream Lake
(click to view)

by Brooke Kuhlmann at July 09, 2010 08:00 PM

Estes Park - Day 2

We awoke in our condo (as mentioned earlier), to the sound of a chirping marmot. He was heading to the lower balcony to bask in the sun as you can see here (the river is roughly 30 meters away):

Marmot

Here is a short video (31 seconds, 61MB, right-click to save and download) of the crazy critter chirping.

by Brooke Kuhlmann at July 09, 2010 03:00 PM

Protected: Estes Park - Day 1

This post is password protected. To view it please enter your password below:


by Brooke Kuhlmann at July 09, 2010 04:00 AM

Protected: The Stanley Hotel

This post is password protected. To view it please enter your password below:


by Brooke Kuhlmann at July 09, 2010 03:00 AM

Protected: Rocky Mountain National Park - Day 1 (Extras)

This post is password protected. To view it please enter your password below:


by Brooke Kuhlmann at July 09, 2010 12:10 AM

Rocky Mountain National Park - Day 1

We arrived in Estes Park just before lunch, ate, and then continued on to the Rocky Mountain National Park. We ended up going through the gate near the Beaver Meadows Visitor Center. From there, we headed up the Old Fall River Road which is a narrow, one-way, dirt road (not for the faint of heart). Unfortunately, the weather took a turn for the worse as a heavy thunderstorm rolled in. By the time we reached the Alpine Visitor Center, it was sleeting. The Trail Ridge Road, which is paved, is how we looped back out of the park to the exit near the Moraine Park Visitor Center. We probably would have attempted more hiking if the weather wasn’t so wet but getting a partial scan of the park from the car was interesting at least (despite the pictures, below, being rather gloomy).

Moraine ParkMoraine ParkMoraine ParkMountainsChasm FallsChasm FallsChasm FallsChasm Falls Flower BudsChasm Falls - AspenAlpine RidgeAlpine RidgeOld Fall River RoadOld Fall River RoadAlpine Ridge
(click to view)

by Brooke Kuhlmann at July 09, 2010 12:00 AM

July 08, 2010

Mike Wilson

No, I don’t want to install Google Chrome!

I’m talking, of course, about this




… bit of lame-and-obvious marketing that appears in the top right corner of my home page — the Google search page.

Now, it used to be that I could click on the close box on this ad and it would set a cookie that prevented it from re-appearing until the next time I reset my local browser state (or it may just time out; I don’t know). In any case, that meant that I’d only see it once every few weeks or so which was unpleasant but bearable.

In the last few days, either Google has changed the code, Safari has changed in some incompatible way, or my local configuration has been corrupted somehow, but whatever the cause, the result is that I now see the add every time I open the page.

To be blunt, I can’t take it.

I. Use. Safari.

I guess I’ll go set my home page to Bing for a while. Somebody let me know when Google figures out that alienating their consumers isn’t smart.

by McQ at July 08, 2010 07:29 PM

July 07, 2010

Brooke Kuhlmann

Protected: Colorado College Campus Branch Sculpture - Extras

This post is password protected. To view it please enter your password below:


by Brooke Kuhlmann at July 07, 2010 10:10 PM

Colorado College Campus Branch Sculpture

My mom flew into the Colorado Springs Airport to spend some time with us and meet Ein for the first time (although he’s much bigger now). Upon arrival we took her to eat at Wooglins and then take a quick tour of the Colorado College campus branch sculptures before heading to our place. The following are few shots via the iPhone 4:

DoorwayTops
(click to view)

by Brooke Kuhlmann at July 07, 2010 10:00 PM

Andrew Low

When Android Fails

I really have myself to blame.  Android is the right smart phone platform for me: provided you have a rooted phone, you can get inside the device and tinker and there are community created ROMs which let you change the base system.  It is effectively an embedded Linux platform with a java like application stack.  I tend to follow the CyanogenMod crowd.

On my ADP1, I’ve got the developer friendly “fastboot”.  Using this you can install what is called a “recovery image” – a secondary boot mode which lets you get in and do maintenance etc.  Recently I found myself in a state where I had lost my recovery image.  The forum has some good basic advice if this happens to you.

As I found myself needing to reinstall.  The recommended recovery image is Amon_RA.  I used the fastboot flash method, from my Ubuntu desktop using the fastboot binary.  Once I had the binary, it really was as easy as booting into fastboot mode (hold camera button while phone is booting) and runnning the fastboot program.

fastboot flash recovery recovery_of_choice.img

Now what got me to this state of no recovery image, was most likely a finger fumble while I was trying to recover the phone from a bad state.  (Did I mention I was to blame here?)  Now I suspect there is some sort of latent bug in the Dalvik cache management that leads to this bad state, but I don’t yet have enough data to make a strong statement here.

What happens is at one point, apps stop opening properly for me.  Specifically things like the web browser.  The 1st time this happened, I ended up wiping the phone and starting again from scratch. While this is a recommended step if you’re going to play in the ROM scene, it is annoying to lose all of your state.  To my dismay it happened again.

The symptom is a boot loop when you reboot.  Using some of the tools from the Android SDK, you can watch things as they happen on boot.  I use ddms for this.  In the most recent failure, the loop looked like this in the log:

07-04 16:17:28.114: DEBUG/AndroidRuntime(249): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
07-04 16:17:28.114: DEBUG/AndroidRuntime(249): CheckJNI is OFF
07-04 16:17:28.284: DEBUG/AndroidRuntime(249): --- registering native functions ---
07-04 16:17:28.544: ERROR/AndroidRuntime(249): JavaVM unable to find main() in 'com.android.internal.os.ZygoteInit'
07-04 16:17:28.544: DEBUG/AndroidRuntime(249): Shutting down VM
07-04 16:17:28.544: WARN/dalvikvm(249): threadid=3: thread exiting with uncaught exception (group=0x4001e178)
07-04 16:17:28.574: DEBUG/dalvikvm(249): DestroyJavaVM waiting for non-daemon threads to exit
07-04 16:17:28.574: DEBUG/dalvikvm(249): DestroyJavaVM shutting VM down
07-04 16:17:28.574: DEBUG/dalvikvm(249): VM cleaning u
p

Not good.  Something can’t be found that is fairly critical, so the Dalvik system is continually bailing out on its start-up, then trying again.

The fix was quite easy (if we ignore the step where during the investigation, I mess up my recovery image).  The adb tool found in the Android SDK is much more powerful than I initially understood it to be.  We can use it to stop the Android sytem.

> adb shell stop

This effectively stops the boot loop from spinning around and around.  Now issuing:

> adb shell

Gets you into the device, and we can go and fix the filesystem.  I located and cleared the Dalvik caches (deleted the contents of the directories).
cache/dalvik-cache
sd-ext/dalvik-cache
data/dalvik-cache

You may only need to clear the 3rd one, but that is the list I cleared out to get back into a working state.  Much easier than a full wipe and reconfigure.

by Roo at July 07, 2010 04:19 AM

July 05, 2010

Coreen Tyers

4 day weekend part 1

See what happens when I get a 4 day weekend? I don't write a damn thing for almost a week! In my defense, I did lose my marbles a little bit. Canada Day was...Thursday last week, so on Wednesday night I decided that V needed a new outfit, you know something a little red and white (hey I'm getting it out of my system while she's too young to fight back!). At first I thought I could just get away with a skirt and have her wear her Joe teeshirt, and I merrily started on my way, trashing my entire crap craft room to find and wash all the red, white and red and white fabric I owned. After getting the washer humming along nicely, and the room somewhat re-assembled, I realized I needed a pattern. Disassembly part 2. Patterns in hand (no I didn't decide at that moment, I just narrowed the field) I hauled the sewing machine, cutter, pattern paper and weights, iron and table ironing board out to the dining room (you don't think I actually have enough room to work in the craft room do you?).

After finding, tracing and then cussing the pattern out for a good long while, and a sanity check with my favorite coop mama, I finally got the skirt assembled and hit the hay around midnight.

Thursday morning crawled around, and sadly my brain decided to take a vacation. I looked at the tag on V's teeshirt, and while it was all maple leaves and cute sparkles on the front, it seemed like a bit of a cop-out. Besides, it was made in Bangladesh. I mean, how else would they be able to sell it for $5? If there's one day that she should be decked out in stuff made in Canada, I figure Canada Day is the day.

So I dove back in to the disaster area (disassembly #3 for those keeping track)  looking for a shirt pattern, and ended up pulling this together (the top used 2 snaps so yay! only 999,998 left in my stash *g*):


(If anyone's interested it's the Mary dress from B&B Blueprints as a top and the Girly Skirt from Pink Fig both of which are the easiest patterns in the history of patterns). My marbles were thankfully found before I could launch in to making myself a matching skirt or attempt to applique a maple leaf on the shirt.

Yes we are at Uncle Bub's and no we didn't have to threaten her with the cages at any point in the day.

Do you know what damage a 2 year old will do to a white skirt? She played in the sandbox, went swimming in the pool, put on sunscreen, ate cheese, sat in the mud, ate watermelon and who knows what else, drew with markers and played with puppies. I'm not sure if it would be quicker to clean it or make a new one.

July 05, 2010 08:28 PM

Mike Wilson

Still no iPad camera connection kits?

For those who don’t know what they are, here is what the iPad Camera Connection Kit looks like:


picture of the kit from Apple Site
(Image is on Apple website; if it gets moved, follow the link above to see them.)

It’s basically just two plastic doingles with iPod connectors on one side and a USB port and SD card slot (respectively) on the other. Not exciting, and presumably not particularly difficult to make.

So, why is it that still, months after the iPad was released, these things are basically impossible to find? I just polled the Rideau Apple Store, Carbon Computing and Best Buy/Future Shop. Result: Nada — and several places indicated that there was a waiting list when they did show up. Even the online Apple Store is saying 4..6 weeks delivery. WTF?

Maybe Apple misjudged the popularity of this add on initially, but surely in the first few days it must have become obvious that nearly every person who has an iPad wants one.

I’m too sane — now, be nice — to believe that there is some kind of conspiracy here, but maybe Apple just doesn’t want us to have these, for some reason. In any case, I’m tired of waiting, so if anybody sees aftermarket versions out there, please let me know.

by McQ at July 05, 2010 07:31 PM

July 01, 2010

Mike Wilson

How to read any document on your iPad

MacFixit has a nice little workflow for simplifying the task of getting a document onto your iPad for offline reading. It’s not surprising what’s going on — you just create a PDF and then copy it to iTunes to make it available in iBooks — but did you know it was trivial to add a “Save PDF to iTunes” menu item in the standard print dialog?

Easily save Web pages, documents in iTunes for use with iOS devices

by McQ at July 01, 2010 12:08 PM

Andrew Low

Review: Cooler Master Elite 335

When I initially planned my upgrade to a Core I3 system I was going to re-use my existing mid-tower case.  I knew I needed a larger (and more modern) power supply, but assumed wrongly that the new motherboard would match up.  The plan changed when I realized that the front mounted USB connectors and power button were not going to match up to the new motherboard without some surgery.

Having already invested in a new power supply, I decided to pick up just a case.  In hindsight I could have probably found a good deal on a case + power supply.  This post was inspired by the fact that I really couldn’t find any reviews of the case I did select: CoolerMaster Elite 335 – currently $42.99.  There was a review of the CoolerMaster Elite 330 which is a very similar case.

Summary: After using this case for some time I’m quite happy with it, especially given the price.  There are some minor improvements that could be made, but you get a nice looking case with a useful feature set and high level of compatibility.

Read on for a full review..

(...)
Read the rest of Review: Cooler Master Elite 335 (731 words)

by Roo at July 01, 2010 01:57 AM

June 30, 2010

Brooke Kuhlmann

Reeder

Reeder Icon

Introduction

I’ve been looking for a great syndicated feed reader for my iPhone for whats seems like ages and I finally found one: Reeder. I stumbled upon this while reading iPad Opinions as, yes, there is an iPad version as well. After reading Ken’s review, checking out the Reeder screenshots, and noticing the Google Reader synchronization support, I immediately spent the $2.99 for the app and have been happy ever since. Besides, OmniFocus for the iPhone, Reeder is my second favorite app on the iPhone. In fact, I enjoy the app so much that I actually find my reading habits have changed to where I prefer to read the news via Reeder on the iPhone rather than via a desktop client. Its that good!

Screenshots

Reeder (Starred)

This is the main or initial page of all items you have stared for reading later, etc. Clicking on “Starred” gives you a list of all starred items in all folders. Otherwise you can click on a folder in particular to read specific starred items. The circular arrow icon (lower right) is for manual syncing with Google Reader. This isn’t a bad habit to get into, once you have finished reading your feeds, to ensure Google Reeder stays in sync.

Reeder (Unread)

This is the second page of unread items only. As with the first page, click “Unread” to read all or delve in each folder for specifics.

Reeder (Folders)

This is the third page of just your folders, notes, etc. Well, this is out I organize/categorize my feeds at least.

Reeder (Unread in Development)

This last screen is of a few unread items within my “Development” folder. You can tap on each headline to read in detail.

Design

The design, as Ken mentions in his article is very spartan. I would argue that controls are not the most intuitive but you only need to stumble a few times before you’re off running.

Synchronization

The synchronization with Google Reader is really, really good. I’ve not seen synchronization work so well for a feed reader. Then again, I’ve really only used NetNewsWire (both desktop and iPhone app) which are somewhat pathetic. In fact, NetNewsWire for the iPhone is downright awful. Then again, the app is free. Perhaps that is why.

Workflow

As mentioned earlier, my work flow has really changed. I used to read my feeds morning, noon, and night via the desktop (and still do for the most part) but the sheer convenience of being able to read my feeds while on the balcony, traveling, eating lunch, in bed, etc. is a lot of fun. If I need desktop access for downloads, video feeds, etc. I can star those news articles for later reading and quickly move on to next unread items.

Final Thoughts

If you enjoy your feeds, love being mobile, and appreciate really good synchronization, then buy this app!

by Brooke Kuhlmann at June 30, 2010 03:40 AM

June 25, 2010

Rick DeNatale

Making RSpec, Rake, and Bundler play well together

I'm working a project which uses RSpec, Bundler, and Rails 2.3.4.

The team has been struggling with the changes in gem management with Bundler. The "Old School" rails way to configure gems for different rails environments is to conditionally execute gem.configure based on the rails environment. Then use the rake:gems:install task to gem install the gems, one for each environment.

Bundler does things a bit differently. It uses groups to segregate gems by environment, so you name the gems needed for the test environment in a :test group. When you run bundle install, it installs all of the gems for all of the groups (unless you opt out of some groups. It uses the groups at run time, to selectively expose only gems applicable to the current environment.

This cause problems for things like the spec rake task. If you run

rake spec

without explicitly setting the Rails environment.

The way the spec rake task works is that it depends on a rails provided rake task called :environment, which 'boots' the rails environment, then the spec_helper file which each spec whould require, sets ENV['RAILS_ENV'] to 'test' if it's not already set, then it requires needed gem code, like 'spec/rails'.

In the old school approach this works, since those gems are installed and visible. With bundler, it fails since they won't be exposed, since the bundler environment got set up using the development environment, so gems in the :test group aren't available.

In an attempt to fix this, other members on the team were mixing things up, doing things like putting conditional tests of the rails environment in the Gemfile, and then running the bundle command with different overrides of the RAILS_ENV environment variable.

But that way lies madness.

This morning I worked out a solution which involves deferring setting up the bundle environment.

  1. I needed to keep the spec task from running the environment task. The project was already using a variation of override_rake_task, so I added an override in a task within the lib directory:
          override_task :spec do
            Rake::Task["spec:original"].execute
          end
        
  2. The next step was to bootstrap the rails environment in spec_helper. To do this I started it with:
          ENV["RAILS_ENV"] ||= 'test'
    
          RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
          environment_path = File.expand_path(File.join(RAILS_ROOT, 'config', 'environment'))
          require(environment_path)
            require 'spec/rails'
            #... any other needed requires
        

    It's crucial to expand the path which ensures that the same string is used whenever the environment file is required. Before I did that I was having problems with the environment being required a second time, presumably for the second spec. If you have any code which patches anything using alias_method_chain, or a similar technique, loading that code a second time can cause infinite loops which can be mystifying.

So this seems to be working. I'll try to update if I find anything else, but in the meantime I hope some folks find it useful.


Original article writen by Rick DeNatale and published on Talk Like A Duck | direct link to this article | If you are reading this article elsewhere than Talk Like A Duck, it has been illegally reproduced and without proper authorization.

by Rick DeNatale at June 25, 2010 12:30 PM

June 24, 2010

Ian Skerrett

ianskerrett

by Ian Skerrett at June 24, 2010 08:45 PM

Mike Wilson

WTG, D-man!

This morning I saw something that made me happier, and more proud, than just about anything that’s ever happened to me: My son graduated from high school.

Here’s the important bit…



codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="288" width="480">

Apologies for the blurry-cam, cell phone video. It’s hard to hold it steady when you’re clapping that hard. :-)

by McQ at June 24, 2010 05:49 PM

June 23, 2010

Ian Skerrett

7years

The Eclipse Helios release is now available for download.  Each year I am amazed how the Eclipse community is release on such a predictable schedule.  Congratulations to all that help make it happen.

Helios is the biggest Eclipse release ever!  We have over 39 different project teams participating, more than 33 million lines of code, 490 committers, 108 of those committers were individuals and the rest of commiters work for 44 different organizations.  The amazing thing is that this is the 7th year in a row the Eclipse platform has been release the last week of June, never missing a schedule release date.  What other software organization can make that claim!!

Helios Highlights

Each year we highlight some of the new and interesting technology that is being released.  We also ask you to tell the community what you think is cool and interesting. For instance, Ian Bull has done the definitive top 10 list. Here are some of the things I think are interesting in Helios.

1. Git support.  EGit and JGit 0.8 release are part of Helios.  As many know Git and GitHub have a lot of interest in the developer community, especially at Eclipse.  These two projects are well on the way to providing great Eclipse tooling for Git.

2. Linux IDE.  The Linux Tools project has done a great job improving Eclipse for Linux developers.   They have also created a new package for the download page, called the Linux IDE.   As we reported in the Eclipse survey a lot more developers are using Linux as their desktop operating system, so the Linux IDE is meeting a growing demand.

3. JavaScript IDE.   JavaScript is becoming more and more popular, so great tooling from Eclipse is important.  The JavaScript Development Tools project has done some nice improvements to the JavaScript debug framework and the JavaScript editor.   Like JDT, PDT, CDT, Eclipse is quickly becoming home to a great JavaScript IDE.   We have also created a new JavaScript package for the download page.

4. Xtext 1.0.  Xtext has great momentum. If people are interested in domain specific languages, they are looking at Xtext as a solution.  For instance, Morgan Stanley did a case study of using Xtext at the recent Code Generation conference.

5. Acceleo 3.0.  Acceleo is another popular Eclipse modeling project that implements the OMG Model to Text standard.   This is another great example of a modeling project that makes Eclipse the leader in the modeling community.

6. Marketplace Client.  OK, I am biased on this one since I was directly involved with this project but the Marketplace Client is looking great.   We will have over 100 Eclipse products that can now be directly installable into your Eclipse installation.  We are very close to having an Eclipse AppStore for the entire Eclipse ecosystem.

New Projects for the Release Train

This year we have a number of new projects on the release train.   People often lose sight of the fact that projects volunteer to participate in the release train, no one forces them, so it is great to see the continued interest.

Learn More About Helios

There are a number of information resources setup to help you learn more about Helios.  Check out any of the following:

  • Helios Virtual Conference on June 24 will feature 10 speakers on different topics related to Helios.
  • Helios Demos features different project demos highlighting what is new in their Helios release, including ECF, JDT, JSF, PDT and more.
  • Helios Blogathon features reviews of the Helios projects from the Eclipse community.

Next Year

The release train is called Indigo and I am confident it will be available the last week of June.


by Ian Skerrett at June 23, 2010 01:07 PM

Coreen Tyers

Sequins and subterfuge

I spend the first part of every morning sneaking around. I wake up in the morning and creep to the bathroom, hoping not to wake up the dogs. When I fail miserably at that I attempt to slip them out the door to walk them before they wake V up. But the bastards are traitors I tell ya! I don't care what anyone says, Huskies are noisy. Okay, so they may not ever scare off an intruder with their ferocious barking, but they will drive you insane with the wooing, oh the wooing. Someone really needs to tell my big dummy Chet that if I'm standing at the front door in yesterday's clothes, shoes on, ball cap serving double duty to hide bedhead AND raccoon eyes, leashes in hand, poop bag stuffed in a pocket, he really doesn't need to stand at the top of the stairs yelling his fool head off that he wants to go out. See that description up there buddy? It sorta means I know.

And what does the wooing bring? Why it brings V to the top of the stairs, still in jammies, expecting to 'help' with the walking. And she knows I'm powerless to her crying while trying to tame the wooing...at 5:45 am. 5:45 is way before coffee kicks in.

Why all the sneaking you ask?


Leopard print jammies, pink sparkle-toed sneakers and a poofy hat with a sateen ribbon. Yep, I let her dress herself. Nope, she doesn't get her fashion sense from me, I'm more of a jeans and teeshirt sorta gal. I managed to convince her she didn't need her purse to walk the dogs, but still. The women's walking club actually had a few members stumble when they encountered us, we're lucky none of them broke a hip.

June 23, 2010 02:20 AM

June 21, 2010

Coreen Tyers

neeroc @ 2010-06-20T21:08:00

Since starting at this office I've often been warned not to enter the elevators with a full bladder, as you'll never know how long your trip will take.


Tuesday I stepped in the elevator and things had taken a turn for the worst. Now, not only will you be trapped in the elevator of doom, but you won't be able to call for help. Sure you can hit the 'having sex in the elevator' alarm (seriously Hollywood, the alarm always goes off when you stop the elevator) or use your cellphone....uh wait no you can't in the elevator!



I guess patience is really all you can have when you're trapped in an elevator.

June 21, 2010 01:02 AM

June 20, 2010

Brooke Kuhlmann

Protected: Bear Creek Canyon Park - Extras

This post is password protected. To view it please enter your password below:


by Brooke Kuhlmann at June 20, 2010 01:11 AM

Bear Creek Canyon Park

In celebration of a few family members birthdays (not to mention the upcoming Father’s Day), we spent the day at Bear Creek Canyon Park eating and drinking. The Bear Creek Canyon Park is also catacorner to the Red Rocks Amplitheater (of which I have not been yet but will later this year for the RUSH concert). We also played frisbee, volleyball, and other games. Craig, who is a homebrewer, brought in a rather tasty coconut porter. Nicely done, Craig! The rest of us brought homemade side dishes, extra drinks, deserts, etc.

For a day in the sun with excellent weather and hardly any additional traffic through the park, I can’t complain. I ended up in the trees and bushes a few times while chasing after an errant frisbee. Good fun all around. The following are a few pictures from the area:

SignSignSignSignSignSignSignSignSignSign
(click to view)

by Brooke Kuhlmann at June 20, 2010 01:08 AM

June 18, 2010

Mike Wilson

Mac Tip: MobileMe, passwords, iPhoto

After changing my Apple ID password (which is used by MobileMe, iTunes, developer connection, etc.) I found that I could no longer publish pictures to MobileMe from iPhoto. Even though I was logged into MobileMe — sync was working; iDisk was available — iPhoto would tell me that “an error occurred with the publication of an album” because my “MobileMe account information is not correct”.

If you’re hitting this, the fix is:

  1. exit iPhoto
  2. open Keychain Access
  3. find the key publish.me.com
  4. delete it

Next time you restart iPhoto, all should be well.

by McQ at June 18, 2010 01:27 PM

Brooke Kuhlmann

AppleCare

apple_care
© Apple

I’m not one for buying warranties. In fact, I usually ignore them altogether as most warranties are excuses for companies to pilfer more of your money (and sometimes used as a scare tactic at the end of your purchase depending on the type of business). However, there are times where warranties are a worthy investment but do your research and weigh the odds.

In my case, AppleCare has proven to be worth the money. Back in 2007, when I bought my first Apple MacBook Pro laptop, I was offered a warranty and ignored it at first but a friend convinced me to reconsider (as Apple gives you up to a year to decide from original purchase). I’m glad he did because it payed off in the end. During the life of the warranty I ended up replacing the following:

  • Graphics card (burnt out, lost all display) - $400 repair parts and labor (roughly)
  • Hard drive (overheated) - $300 parts and labor (roughly)
  • Optical drive (broken, wouldn’t read disks anymore) - $200 parts and labor (roughly)

Those prices are estimates as I only have rough figures from what AppleCare claimed the cost was during those repairs (so I could be a little low or high). Regardless, the point is that AppleCare, which costs around $250, paid for itself and then some.

If you are a developer, like me, who uses a laptop 10 to 12 hours/day in all kinds of conditions (as I did travel to San Francisco and through Chaco Canyon in 50+ miles of rough rock road with my laptop in the top case of my motorcycle) then you might want to consider buying this plan.

by Brooke Kuhlmann at June 18, 2010 02:29 AM

June 15, 2010

John Duimovich

42


Arrived at work today and noticed the "the Answer to the Ultimate Question of Life, the Universe, and Everything." on my odometer.
Then, The Daily WTF had an awesome post on a spectacular use of binary.
Nice. Twice

by John Duimovich (noreply@blogger.com) at June 15, 2010 12:15 AM

June 11, 2010

Ian Skerrett

ianskerrett

We are pleased to announce the  Eclipse Day at the Googleplex, being held on August 26 at the Googleplex in Mountain View CA.   Each year we put together an agenda the includes Eclipse and Google related topics.  This year we are featuring talks about Android, Helios, GWT, EGit, Linux Tools, Eclipse 4.0, EMF, XText and much more.    It is shaping up to be another great agenda.

New this year, we are going to experiment with an Eclipse Ignite session.  We want to give everyone an opportunity to present on their Eclipse related topic.  The Ignite format is a great way to inform people about a specific topic.   The format gives each presenters, 5 minutes, 20 slides and the slides automatically change every 15 seconds.  It can also be a fun way to finish a day. :-)    Details on signing up as an Ignite speaker are on the wiki.

There is no cost to attend the Eclipse Day at the Googleplex but you do need to pre-register.   Each year we have had a full house, so I would suggest you register early.  I hope to see you there.


by Ian Skerrett at June 11, 2010 05:40 PM

Brooke Kuhlmann

Entrepreneur Resources

I was attending the The Colorado Springs Web Design Meetup Group last night and a round table debate started on the basic things you need to know as an entrepreneur (for a primer, read my Business page). During these types of debates, I usually ask “what feeds are you subscribed to” or “what podcasts are you listening” to. When I get a puzzled look or the sound of silence from the crowd, I become concerned. For those hungry for more information, here are some good feeds/podcasts/pages to study in order to broaden your knowledge:

  • Paul Graham - If you haven’t read any of this work, then time to start.
  • Fred Wilson - A VC out of New York. Has lots of wisdom and shared experience worth paying attention to.
  • Startups for the Rest of Us - A couple of entrepreneurs/developers who are sharing their start-up experiences (failures and successes). Perhaps on of the best I’ve listened to in some time.
  • TechStars - Boulder, as they say, is the San Francisco of the Rockies. David Cohen, Brad Feld, and others are helping foster startups and seem to be doing a rather good job of it.
  • TWiT - There are many shows here worth checking out, browse through and pick the ones that are of interest to you.
  • The Dev Show - A good show if you just want to pick up a few good links, tips, news, etc. in a range of languages.

There are many others I could list but that is probably a good start. Again, read my business page for even more info.

by Brooke Kuhlmann at June 11, 2010 01:24 PM

June 10, 2010

Coreen Tyers

Whirling dervishes

Or why the adults must always outnumber the children. This is what happens when you take a 3, 2 and 1 year old out for dinner and try to photograph them after they've had dessert (All photos taken by my sis, she just choses not to blog so I'm stepping up as the older sis and stealing them from her):


2 of the 3 crawled up on the barstools themselves. We decided we needed a pic, seeing as we won't find it nearly as cute 15 years from now. There was no way my sister could stop laughing long enough, and they could sit still long enough for a decent shot. This one shows them in the same general area (note L's arm peeking out from behind V)


Stella went outside, you know where there are no walls! by herself with the 3 of them. I finished my coffee inside with Willy and we paid. She paid too, only in tears, trying to get the group shot assembled

(I have no idea where A went to in these next 2 but I did see her get loaded into her carseat)


I'm sure the diners loved the peepers


Goodbye squeezes

June 10, 2010 02:49 PM

June 09, 2010

Ian Skerrett

ianskerrett

Each year the Eclipse community delivers a lot of great new technology as part of the annual release.   Each year we get great reviews from the community about what they find cool and interesting in the release.  For instance, Ian Bull did a great top 10 list for Galileo.

The Helios Blogathon is to encourage everyone to write a review about the Helios release.  As a token of our appreciation, each blogger will receive an Eclipse shirt and the best review will receive a pass to Eclipse Summit Europe 2010 or EclipseCon 2011.

Go here for more details.   Helios is coming is just 2 weeks, so let us know what is exciting you about the release.

btw, we are also organizing a Helios Virtual Conference, so you can see first hand some of the cool new features coming in Helios.


by Ian Skerrett at June 09, 2010 01:00 PM

June 08, 2010

Coreen Tyers

neeroc @ 2010-06-08T09:33:00

Inspired by the square foot gardens my brother and sister-in-law set up last year, I decided to rearrange my perennial beds and make room for some veggies. First order of business, removing the approximately acre and a half of ribbon grass from my shade garden.



Look closely at that picture. That's my Malamute Sasha drowning in those evil, creeping, want-to-take-over-the-world weeds. If I didn't take action my house would have been next. After breaking my back and a rake on those suckers, I hauled out my hoe and pitchfork and finished the job. Then I moved many of the shade plants that had previously been planted in the sunniest part of my garden to the vampire section. That which didn't get moved was placed out at the curb this past weekend, which just happened to be our city's first Give Away Weekend of the year. I think I get to count those in my 730 in 365 declutter challenge too!

As I brought home the plants I wanted for the garden, I quickly realized that we had a problem. A cute problem:



but a brussels sprout-devouring problem none the less.

This would call for drastic measures. Reflecting back on my brother's garden, I recalled that he had an elegant, yet effective solution:



A removable cover that we considered never once considered as our backup daycare option. (in it's theoretical secondary use it's not nearly as effective at protecting the carrots.)

Seeing as I had no specific ambition to go slicing up 2x2s or tracking down chicken wire, I devised a plan to use rebar and bird netting, both of which we either had or I could easily access at our local Canadian Tire. I'd mentioned my gardening ambitions to my husband on several occasions, and was generally met with apathy at best. Until assembly time. Suddenly my design was severely lacking. It would have no doors and not be removable so would need to be low enough that I could reach over and work in the garden. Apparently our very athletic rabbits would also pole-vault into this den of yumminess, gorge themselves on the buffet and not be able to leave.

Shopping was done, tools brought out and assembly progressed until the garden fortress was up:



Even with just netting across the entrance, door to be constructed, the bunnies appear to have been foiled 2 days running. Now, they could be constructing a trebuchet or tunnelling in from behind the hedge, but I'm ready to defend my lettuce and broccoli by any means necessary!

Note: I know this isn't a square foot garden. It was the *idea* of the fresh veggie goodness that inspired me. 1 foot squares of veggies is way too regimented for me. Mine is more a sprinkled assortment of that which I picked up, begged, borrowed and traded.

June 08, 2010 06:55 PM

Mike Wilson

iOS and the iPhone 4

As I’m sure everyone knows by now, Apple finally announced the new iPhone yesterday. There are much better sources than here for all the details so, just for grins, I’ll point you at Gizmodo’s summary.

Some of the more interesting points:

  • The processor has been bumped up to be the same as the one in the iPad. That’s good, because it will help with sluggish web page loading, but also because the display has been increased in resolution to the point where it needs the horsepower just to paint it.
  • Speaking of the display, the resolution is now 960×640 which gives it >300 dpi resolution. To keep that in perspective, that’s better than a cheap laser printer. I’m not sure how they have pulled off changing the dpi without effecting the way applications look, but the claim is they’ve got it to work. Let’s hope it’s not the “2x” mode from the iPad. ;-)
  • Really for me, the best new feature is an improved camera. I actually use the camera on my 3GS, but it’s absolutely terrible in low light conditions. The new one is supposed to be better resolution, better low light behavior, and it has an LED flash. I guess we’ll see. Any of the example pictures I’ve seen so far still seem to have a fair amount of noise in them.
  • They’ve also added another camera on the front of the display, for doing video conferencing. There’s an app called “Facetime” (ugh.) to support iPhone-to-iPhone calling, but for the life of me I can’t figure out why they didn’t just put iChat on it. If I could video conference with Deb on her Mac, I could actually imagine using it. Also, currently at least, it only supports calling over wifi. boo.

The device will, of course, be running the new version of the iPhone OS, which has been renamed “iOS”. I suspect this was in keeping with the rumours of the new Apple TV box, which is purported to be running this OS. They probably have dreams of running it on other devices that don’t look anything like phones.

The good news about iOS 4 is that will be a free upgrade for any iPhone/iPod that can run it, and should be available June 21. The bad news is that won’t be available for the iPad until “this fall”.

by McQ at June 08, 2010 05:16 PM