Jumat, 21 Januari 2011

Fairlight CMI-30A Prototype Introduced At NAMM

Fairlight CMI-30A
The 2011 NAMM Show saw the introduction of the Fairlight CMI 30th Anniversary Edition – a new digital keyboard workstation, inspired by the classic Fairlight CMI.
While maintaining the hallmark look and feel of the original Series II Fairlight, the CMI-30A harnesses the latest technology to deliver ‘that Fairlight sound’.
Unlike modern samplers which strive for precise reproduction and accordingly produce a sterile sound, the CMI of the eighties made no apologies for imposing its own character. The quirks of this pioneering digital audio technology have been faithfully modelled in the 30A.
Fairlight CMI 30A
In its initial form, the CMI-30A replicates the functionality of the original Series II and Series III CMIs. The user experience is quite different from that of a conventional PC and mouse and like the original is based on a light pen which interacts directly with a screen.
The character of this new instrument is continuously variable in real time. As you crank up the 30A’s unique ‘goodness control’, the quality morphs from pristine 36 bit floating point fidelity into the sound that made music history.
The New Fairlight CMI-30A Computer Music Instrument
Fairlight was displaying a working production prototype of the Fairlight CMI 30th Anniversary Edition at NAMM.
On first, glance, the new Fairlight looks like a nostalgia project. On further inspection, though, the Fairlight CMI-30A feels more like something from an alternate universe, where the 80′s technologies pioneered in the Fairlight kept developing.
We took a look at the new CMI with company founder Peter Vogel and he explained that, while the user interface on the new instrument is retro, the technology it runs on has been updated, making muti-tasking possible and a much more capable instrument.
Fairlight CMI-30A iPod Touch
The Fairlight CMI-30A is also the most expensive iPod dock that we’ve ever seen.
It leverages the iPod touch or iPhone as a relatively cheap multi-touch controller. Fairlight is developing their own application to act as a Fairlight multi-touch controller.
While incorporating an iPod touch is trendy, it’s also clever.
The iPod touch communicates with the Fairlight using MIDI. This means that you’ll should be able to use a variety of applications that run on iOS to control the Fairlight.
Orders are now being taken for the $20,000 production units. While this is out of our price range, it’s clear that an amazing amount of care and craft is going into the creation of the new Fairlight – and you can expect to see elements of it show up in other products. Vogel has already announced an iOS Fairlight, which will put much of the power of the original Fairlight onto an iPhone, iPod touch or iPad.
What do you think about the new Fairlight CMI-30A?

Why and How I Switched to a Standing Desk

I spend about 45 to 50 hours a week working on my computer. Up until a week ago, I did that work sitting on my ever-expanding behind.

Last Monday I adjusted my desk to standing height (pictured right). I spent the week working on my feet, and I'm never going back to a sitdown desk again. Here are some questions and answers about the change.

What made you switch to a standing desk?

Ever since I wrote about a 'treadputer' treadmill desk at Lifehacker in May of 2006, I've been curious about and inspired by alternative desk setups. My workday—which consists almost entirely of typing on or talking into a computer—is completely sedentary, and is a big part of the reason I'm more than 20 pounds overweight. Burning more calories while I work is a better use of that time.

Building or buying a treadputer is too expensive an undertaking for something I'm not sure I'll like or even have the space to accomodate. A standing desk, however, is doable. In July of 2010 I featured an Ikea Jerker treadmill desk, and mentioned I might just adjust my Jerker to standing height. This has been something I've been thinking about a long time.

Three straws finally broke the camel's back. First, I'm using RescueTime to monitor how I spend my time on my computer, and the weekly report made me realize how many hours I really do spend sitting down (week before last: 48). Second, I'm actively working on losing weight right now, and this seemed like a small way to add to the effort (down 12 pounds in 3 months so far). Finally, Macworld posted a guide to setting up a treadmill desk, and unequivocally recommended that you go from sitting to standing to walking, not straight from sitting to walking. That did it.


Why use a standing desk?

Two reasons: Higher calorie burn and better posture. When I'm sitting at my desk, even in a fancy ergonomic chair, I tend to slump, with my back curved and shoulders forward, which closes my chest and makes my breathing more shallow. When standing at a desk where my forearms are at a 90 degree angle on the desk surface, my shoulders go back, which makes my spine concave and opens my chest. Besides the initial foot pain and muscle aches of engaged thighs and calves, it feels great.

I didn't discuss the switch to a standing desk with my doctor, though there have been some studies about the negative health effects of excessive sitting. I'm not a medical professional, but it seems obvious that human beings aren't meant to spend 45 hours a week sitting still in a chair. Now that I'm standing, I pace, dance, and fidget a lot more freely, which is just more natural activity and calorie burn built into my day.

But don't your feet hurt?

Yes, very much. In fact, the first three days were brutal, so painful I doubted the whole endeavor. By mid-day 2, I had to sit down every hour or so. I was distracted and had a hard time focusing on anything but how much my feet hurt. At night I sat on the couch with my feet elevated. I collapsed into bed totally exhausted. I never appreciated sitting as much as I did the first three days.

Then, on the fourth day, it wasn't so bad. On day 5, I got lost in work for 2 hours before I thought about the fact that I was on my feet once. Now it's my new normal.

How did you convert your desk to a standing desk?

I have a (sadly discontinued) Ikea Jerker desk, which is designed to let you set the table to any height you want when you assemble it. So, I put in the 3 hours it took to break down my whole computer setup, dissemble the desk, and put it together at standing height. I don't have a lot of willpower, so I wanted to make the change difficult to undo. Adjusting the desk back down to sitting height will take another half-day of tooling with Ikea furniture, not something I'll want to do again any time soon. Besides, if I want to sit, I always have the dining room table. Here's what my new setup looks like:

Standing desk

If you don't have a desk that you can assemble to standing height, you can always create a temporary standing desk by putting shelves on your current desk.

Or you can use Coke cans, like Marco did:

The Coke-can standing desk on its last day

Or you can use printer paper, like tbone7770 did:


Or you can just buy a standing desk.

What about those treadputers?

They're cool, aren't they? I'm not sure if I'll ever actually make it to the point where I'm walking and computing all day. I'm going to put in several months of standing before I consider it.

What shoes do you wear?

I wear ordinary running shoes, which are fairly new, well-padded and supportive. Changing your shoes seems to help the feet, too. Sometimes I go barefoot, but I don't usually last long.

Do you stand on a soft mat? If so, which one?

Not yet, but I've ordered a squishy mat to put under my desk. It's not one of those fancy $100 kitchen gel mats, it's more like a $25 cash register/factory mat. It arrives this week. I'll let you know how well I like it.

Did you use any other gear in your switch to standing?

I bought a $20 monitor riser to get my screen to the right height so I'm looking straight ahead at it, not down.

How long did it take you to get used to standing all day?

I'm not entirely used to it yet, but I'm through the worst. I started Monday. By Friday I felt comfortable. Monday through Wednesday were pretty tough, though.

Do you take sit-down breaks?

Yup. I sit down at lunchtime, on phonecalls (though I'm more apt to pace), at meetings, and maybe once or twice for 5-10 minutes at other times in the day, as needed. One day I was pretty exhausted and achy so I treated myself to a sitdown beverage at the coffee shop, which was a double treat. But for the most part, I'm not even thinking about it any more.

Update: A few people have pointed out that there are health risks associated with too much standing, like varicose veins. There's usually some health effect associated with too much of anything. I don't stand ALL the time now--I sit, stand, pace, and stretch. The difference between now and before is that I used to mostly sit. Now I mostly stand.

Who else uses a standing desk?

More people than I'd realized, especially techies! Former Twitter developer and founder of BankSimple Alex Payne. Creator of Instapaper Marco Arment. Podcaster extraordinaire Dan Benjamin. Novelist Philip Roth. Former U.S. Secretary of Defense Donald Rumsfeld. Lifehacker editor Jason Fitzpatrick. Now, newly, my fellow San Diego techie Mitch Wagner. Who else?

Any more questions re: the standing desk? Post 'em in the comments.

10 Tips for Proper Application Logging

Our latest JCP partner, Tomasz Nurkiewicz, has submitted a number of posts describing the basic principles of proper application logging. I found them quite interesting, thus I decided to aggregate them in a more compact format and present them to you. So, here are his suggestions for clean and helpful logs:



(NOTE: The original posts have been slightly edited to improve readability)



1) Use the appropriate tools for the job



Many programmers seem to forget how important is logging an application's behavior and its current activity. When somebody puts:



log.info('Happy and carefree logging');


happily somewhere in the code, he probably doesn't realize the importance of application logs during maintenance, tuning and failure identification. Underestimating the value of good logs is a terrible mistake.



In my opinion, SLF4J is the best logging API available, mostly because of a great pattern substitution support:



log.debug('Found {} records matching filter: '{}'', records, filter);


In Log4j you would have to use:



log.debug('Found ' + records + ' records matching filter: '' + filter + ''');


This is not only longer and less readable, but also inefficient because of extensive use of string concatenation. SLF4J adds a nice {} substitution feature. Also, because string concatenation is avoided and toString() is not called if the logging statement is filtered, there is no need for isDebugEnabled() anymore. BTW, have you noticed single quotes around filter string parameter?



SLF4J is just a façade. As an implementation I would recommend the Logback framework, already advertised, instead of the well established Log4J. It has many interesting features and, in contrary to Log4J, is actively developed.



The last tool to recommend is Perf4J. To quote their motto:



Perf4J is to System.currentTimeMillis() as log4j is to System.out.println()



I've added Perf4J to one existing application under heavy load and seen it in action in few other. Both administrators and business users were impressed by the nice graphs produced by this simple utility. Also we were able to discover performance flaws in no time. Perf4J itself deserves its own article, but for now just check their Developer Guide.



Additionally, note that Ceki Gülcü (founder of the Log4J, SLF4J and Logback projects) suggested a simple approach to get rid of commons-logging dependency (see his comment).





2) Don't forget, logging levels are there for you



Every time you make a logging statement, you think hard which logging level is appropriate for this type of event, don't you? Somehow 90% of programmers never pay attention to logging levels, simply logging everything on the same level, typically INFO or DEBUG. Why? Logging frameworks have two major benefits over System.out., i.e. categories and levels. Both allow you to selectively filter logging statements permanently or only for diagnostics time. If you really can’t see the difference, print this table and look at it every time you start typing “log.” in your IDE:



ERROR – something terribly wrong had happened, that must be investigated immediately. No system can tolerate items logged on this level. Example: NPE, database unavailable, mission critical use case cannot be continued.



WARN – the process might be continued, but take extra caution. Actually I always wanted to have two levels here: one for obvious problems where work-around exists (for example: 'Current data unavailable, using cached values') and second (name it: ATTENTION) for potential problems and suggestions. Example: 'Application running in development mode' or 'Administration console is not secured with a password'. The application can tolerate warning messages, but they should always be justified and examined.



INFO – Important business process has finished. In ideal world, administrator or advanced user should be able to understand INFO messages and quickly find out what the application is doing. For example if an application is all about booking airplane tickets, there should be only one INFO statement per each ticket saying '[Who] booked ticket from [Where] to [Where]'. Other definition of INFO message: each action that changes the state of the application significantly (database update, external system request).



DEBUG – Developers stuff. I will discuss later what sort of information deserves to be logged.



TRACE – Very detailed information, intended only for development. You might keep trace messages for a short period of time after deployment on production environment, but treat these log statements as temporary, that should or might be turned-off eventually. The distinction between DEBUG and TRACE is the most difficult, but if you put logging statement and remove it after the feature has been developed and tested, it should probably be on TRACE level.



The list above is just a suggestion, you can create your own set of instructions to follow, but it is important to have some. My experience is that always everything is logged without filtering (at least from the application code), but having the ability to quickly filter logs and extract the information with proper detail level, might be a life-saver.



The last thing worth mentioning is the infamous is*Enabled() condition. Some put it before every logging statement:



if(log.isDebugEnabled())
log.debug('Place for your commercial');


Personally, I find this idiom being just clutter that should be avoided. The performance improvement (especially when using SLF4J pattern substitution discussed previously) seems irrelevant and smells like a premature optimization. Also, can you spot the duplication? There are very rare cases when having explicit condition is justified – when we can prove that constructing logging message is expensive. In other situations, just do your job of logging and let logging framework do its job (filtering).



3) Do you know what you are logging?



Every time you issue a logging statement, take a moment and have a look at what exactly will land in your log file. Read your logs afterwards and spot malformed sentences. First of all, avoid NPEs like this:



log.debug('Processing request with id: {}', request.getId());


Are you absolutely sure that request is not null here?



Another pitfall is logging collections. If you fetched collection of domain objects from the database using Hibernate and carelessly log them like here:



log.debug('Returning users: {}', users);


SLF4J will call toString() only when the statement is actually printed, which is quite nice. But if it does... Out of memory error, N+1 select problem, thread starvation (logging is synchronous!), lazy initialization exception, logs storage filled completely – each of these might occur.



It is a much better idea to log, for example, only ids of domain objects (or even only size of the collection). But making a collection of ids when having a collection of objects having getId() method is unbelievably difficult and cumbersome in Java. Groovy has a great spread operator (users*.id), in Java we can emulate it using the Commons Beanutils library:



log.debug('Returning user ids: {}', collect(users, 'id'));


Where collect() method can be implemented as follows:



public static Collection collect(Collection collection, String propertyName) {
return CollectionUtils.collect(collection, new BeanToPropertyValueTransformer(propertyName));
}


The last thing to mention is the improper implementation or usage of toString(). First, create toString() for each class that appears anywhere in logging statements, preferably using ToStringBuilder (but not its reflective counterpart). Secondly, watch out for arrays and non-typical collections. Arrays and some strange collections might not have toString() implemented calling toString() of each item. Use Arrays #deepToString JDK utility method. And read your logs often to spot incorrectly formatted messages.



4) Avoid side effects



Logging statements should have no or little impact on the application's behavior. Recently a friend of mine gave an example of a system that threw Hibernates' LazyInitializationException only when running on some particular environment. As you’ve probably guessed from the context, some logging statement caused lazy initialized collection to be loaded when session was attached. On this environment the logging levels were increased and collection was no longer initialized. Think how long would it take you to find a bug without knowing this context?



Another side effect is slowing the application down. Quick answer: if you log too much or improperly use toString() and/or string concatenation, logging has a performance side effect. How big? Well, I have seen server restarting every 15 minutes because of a thread starvation caused by excessive logging. Now this is a side effect! From my experience, few hundreds of MiB is probably the upper limit of how much you can log onto disk per hour.



Of course if logging statement itself fails and causes business process to terminate due to exception, this is also a huge side effect. I have seen such a construct to avoid this:



try {
log.trace('Id=' + request.getUser().getId() + ' accesses ' + manager.getPage().getUrl().toString())
} catch(NullPointerException e) {}


This is a real code, but please make the world a bit better place and don’t do it, ever.



5) Be concise and descriptive



Each logging statement should contain both data and description. Consider the following examples:



log.debug('Message processed');
log.debug(message.getJMSMessageID());

log.debug('Message with id '{}' processed', message.getJMSMessageID());


Which log would you like to see while diagnosing failure in an unknown application? Believe me, all the examples above are almost equally common. Another anti-pattern:



if(message instanceof TextMessage)
//...
else
log.warn('Unknown message type');


Was it so hard to include thee actual message type, message id, etc. in the warning string? I know something went wrong, but what? What was the context?



A third anti-pattern is the "magic-log". Real life example: most programmers in the team knew that 3 ampersands followed by exclamation mark, followed by hash, followed by pseudorandom alphanumeric string log means "Message with XYZ id received". Nobody bothered to change the log, simply someone hit the keyboard and chose some unique "&&&!#" string, so that it can be easily found by himself.



As a consequence, the whole logs file looks like a random sequence of characters. Somebody might even consider that file to be a valid Perl program. Instead, a log file should be readable, clean and descriptive. Don't use magic numbers, log values, numbers, ids and include their context. Show the data being processed and show its meaning. Show what the program is actually doing. Good logs can serve as a great documentation of the application code itself.



Did I mention not to log passwords and any personal information? Don't!





6) Tune your pattern



Logging pattern is a wonderful tool, that transparently adds a meaningful context to every logging statement you make. But you must consider very carefully which information to include in your pattern. For example, logging date when your logs roll every hour is pointless as the date is already included in the log file name. On the contrary, without logging the thread name you would be unable to track any process using logs when two threads work concurrently – the logs will overlap. This might be fine in single-threaded applications – that are almost dead nowadays.



From my experience, the ideal logging pattern should include (of course except the logged message itself): current time (without date, milliseconds precision), logging level, name of the thread, simple logger name (not fully qualified) and the message. In Logback it is something like:



<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} %-5level [%thread][%logger{0}] %m%n</pattern>
</encoder>
</appender>


You should never include file name, class name and line number, although it’s very tempting. I have even seen empty log statements issued from the code:



log.info('');


because the programmer assumed that the line number will be a part of the logging pattern and he knew that 'If empty logging message appears in 67th line of the file (in authenticate() method), it means that the user is authenticated'. Besides, logging class name, method name and/or line number has a serious performance impact.



A somewhat more advanced feature of a logging frameworks is the concept of Mapped Diagnostic Context. MDC is simply a map managed on a thread-local basis. You can put any key-value pair in this map and since then every logging statement issued from this thread is going to have this value attached as part of the pattern.



7) Log method arguments and return values



When you find a bug during development, you typically run a debugger trying to track down the potential cause. Now imagine for a while that you can’t use a debugger. For example, because the bug manifested itself on a customer environment few days ago and everything you have is logs. Would you be able to find anything in them?



If you follow the simple rule of logging each method input and output (arguments and return values), you don’t even need a debugger any more. Of course, you must be reasonable but every method that: accesses external system (including database), blocks, waits, etc. should be considered. Simply follow this pattern:



public String printDocument(Document doc, Mode mode) {
log.debug('Entering printDocument(doc={}, mode={})', doc, mode);
String id = //Lengthy printing operation
log.debug('Leaving printDocument(): {}', id);
return id;
}


Because you are logging both the beginning and the end of method invocation, you can manually discover inefficient code and even detect possible causes of deadlocks and starvation – simply by looking after 'entering' without corresponding 'leaving'. If your methods have meaningful names, reading logs would be a pleasure. Also, analyzing what went wrong is much simpler, since on each step you know exactly what has been processed. You can even use a simple AOP aspect to log a wide range of methods in your code. This reduces code duplication, but be careful, since it may lead to enormous amount of huge logs.



You should consider DEBUG or TRACE levels as best suited for these types of logs. And if you discover some method are called too often and logging might harm performance, simply decrease logging level for that class or remove the log completely (maybe leaving just one for the whole method invocation?) But it is always better to have too much rather than too few logging statements. Treat logging statements with the same respect as unit tests – your code should be covered with logging routines as it is with unit tests. No part of the system should stay with no logs at all. Remember, sometimes observing logs rolling by is the only way to tell whether your application is working properly or hangs forever.



8) Watch out for external systems



This is the special case of the previous tip: if you communicate with an external system, consider logging every piece of data that comes out from your application and gets in. Period. Integration is a tough job and diagnosing problems between two applications (think two different vendors, environments, technology stacks and teams) is particularly hard. Recently, for example, we've discovered that logging full messages contents, including SOAP and HTTP headers in Apache CXF web services is extremely useful during integration and system testing.



This is a big overhead and if performance is an issue, you can always disable logging. But what is the point of having a fast, but broken application, that no one can fix? Be extra careful when integrating with external systems and prepare to pay that cost. If you are lucky and all your integration is handled by an ESB, then the bus is probably the best place to log every incoming request and response. See for example Mules' log-component.



Sometimes the amount of information exchanged with external systems makes it unacceptable to log everything. On the other hand during testing and for a short period of time on production (for example when something wrong is happening), we would like to have everything saved in logs and are ready to pay performance cost. This can be achieved by carefully using logging levels. Just take a look at the following idiom:



Collection<Integer> requestIds = //...
if(log.isDebugEnabled())
log.debug("Processing ids: {}", requestIds);
else
log.info("Processing ids size: {}", requestIds.size());


If this particular logger is configured to log DEBUG messages, it will print the whole requestIds collection contents. But if it is configured to print INFO messages, only the size of collection will be outputted. If you are wondering why I forgot about isInfoEnabled() condition, go back to tip #2. One thing worth mentioning is that requestIds collection should not be null in this case. Although it will be logged correctly as null if DEBUG is enabled, but big fat NullPointerException will be thrown if logger is configured to INFO. Remember my lesson about side effects in tip #4?



9) Log exceptions properly



First of all, avoid logging exceptions, let your framework or container (whatever it is) do it for you. There is one, ekhem, exception to this rule: if you throw exceptions from some remote service (RMI, EJB remote session bean, etc.), that is capable of serializing exceptions, make sure all of them are available to the client (are part of the API). Otherwise the client will receive NoClassDefFoundError: SomeFancyException instead of the 'true' error.



Logging exceptions is one of the most important roles of logging at all, but many programmers tend to treat logging as a way to handle the exception. They sometimes return default value (typically null, 0 or empty string) and pretend that nothing has happened. Other times they first log the exception and then wrap it and throw it back:



log.error('IO exception', e);
throw new MyCustomException(e);


This construct will almost always print the same stack trace two times, because something will eventually catch MyCustomException and log its cause. Log, or wrap and throw back (which is preferable), never both, otherwise your logs will be confusing.



But if we really do WANT to log the exception? For some reason (because we don’t read APIs and documentation?), about half of the logging statements I see are wrong. Quick quiz, which of the following log statements will log the NPE properly?



try {
Integer x = null;
++x;
} catch (Exception e) {
log.error(e);        //A
log.error(e, e);        //B
log.error('' + e);        //C
log.error(e.toString());        //D
log.error(e.getMessage());        //E
log.error(null, e);        //F
log.error('', e);        //G
log.error('{}', e);        //H
log.error('{}', e.getMessage());        //I
log.error('Error reading configuration file: ' + e);        //J
log.error('Error reading configuration file: ' + e.getMessage());        //K
log.error('Error reading configuration file', e);        //L
}


Surprisingly, only G and preferably L are correct! A and B don’t even compile in SLF4J, others discard stack traces and/or print improper messages. For example, E will not print anything as NPE typically doesn't provide any exception message and the stack trace won’t be printed as well. Remember, the first argument is always the text message, write something about the nature of the problem. Don’t include exception message, as it will be printed automatically after the log statement, preceding stack trace. But in order to do so, you must pass the exception itself as the second argument.



10) Logs easy to read, easy to parse



There are two groups of receivers particularly interested in your application logs: human beings (you might disagree, but programmers belong to this group as well) and computers (typically shell scripts written by system administrators). Logs should be suitable for both of these groups. If someone looking from behind your back at your application logs sees (source Wikipedia):






then you probably have not followed my tips. Logs should be readable and easy to understand just like the code should.



On the other hand, if your application produces half GB of logs each hour, no man and no graphical text editor will ever manage to read them entirely. This is where old-school grep, sed and awk come in handy. If it is possible, try to write logging messages in such a way, that they could be understood both by humans and computers, e.g. avoid formatting of numbers, use patterns that can be easily recognized by regular expressions, etc. If it is not possible, print the data in two formats:



log.debug('Request TTL set to: {} ({})', new Date(ttl), ttl);
// Request TTL set to: Wed Apr 28 20:14:12 CEST 2010 (1272478452437)

final String duration = DurationFormatUtils.formatDurationWords(durationMillis, true, true);
log.info('Importing took: {}ms ({})', durationMillis, duration);
//Importing took: 123456789ms (1 day 10 hours 17 minutes 36 seconds)


Computers will appreciate 'ms after 1970 epoch' time format, while people would be delighted seeing '1 day 10 hours 17 minutes 36 seconds' text. BTW take a look at DurationFormatUtils, nice tool.



That's all guys, a “logging tips extravaganza” from our JCP partner, Tomasz Nurkiewicz. Don't forget to share!



Related Articles :

Update on New Fantasyland at Magic Kingdom Park

The Updated Fantasyland

As many of you know, we’re in the midst of the largest expansion in Magic Kingdom history, which will nearly double the size of Fantasyland. And we’re thrilled about the expansion because it’ll allow us to tell our treasured stories in new ways and give you the opportunity to interact with some of our beloved characters like never before. Today, we’d like to give you a first glimpse of the progress we’re making in bringing these stories to life and a look at some of the art will be sharing with the media later tonight.

Under the Sea: Journey of The Little Mermaid

First, work is already well underway on many of the experiences we’ve already told you about, so let’s start with Under the Sea: Journey of The Little Mermaid. In this attraction, Ariel and all her friends will entertain you in a ride-through adventure featuring favorite songs from the popular animated feature.

Not too far from Ariel’s new home, construction is underway on Beast’s castle which will stand majestically upon a hill. You will cross over a stone bridge as you arrive at Be Our Guest Restaurant. Set in the halls of the Beast’s Castle, this location will seat up to 550 guests and offer “great food fast” service by day and full table service dining in the evening. Just outside the restaurant, you will also be able to explore Belle’s Village, which includes Gaston’s Tavern and Bonjour! Village Gifts.

Nearby at Belle’s cottage, a magical mirror is the doorway to a captivating new kind of experience, where Belle, Lumiere and guests participate in a lively re-telling of the “tale as old as time.” In Enchanted Tales with Belle, the adventure begins at Maurice’s cottage, where you’ll step through an enchanted mirror that magically transports you to Beast’s library for an interactive storytelling session with Belle.

Additions to Dumbo the Flying Elephant

Just across the way is the brand new Storybook Circus, where we’re doubling the fun by adding another carousel to Dumbo the Flying Elephant. While you wait to board this Fantasyland favorite, you’ll have a chance to join the circus and step inside the Big Top for fun-filled interactive experiences for kids of all ages. Alongside Dumbo the Flying Elephant, the existing Barnstormer is getting a new look as well, featuring Goofy as The Great Goofini. This exciting attraction will take you on a twisting, turning, daredevil, roller coaster “flight” high above the circus fun.

The Seven Dwarfs Mine Train

As with any project of this scale, we’ve also continued to look for additional ways to surprise and delight our guests and I think you’ll be pleased. One opportunity we’re especially excited about is the chance to tell Snow White’s story in a fresh new way. The Seven Dwarfs Mine Train will take you on a rollicking, musical ride into the mine “where a million diamonds shine.” The coaster will feature a first-of-its kind ride system with a train of ride vehicles that swing back and forth as they whisk along the track. The journey will be accompanied by music from the classic Disney film and animated figures of Snow White and the Dwarfs.

Our other Disney princesses will also be getting a new home (actually, they prefer to call it a castle) in the all new Princess Fairytale Hall. Aurora, Cinderella and other Disney princesses, such as Tiana and Rapunzel, will greet you in an elegant royal court at the location where Snow White’s Scary Adventures is today. This new experience will be in place of some of the earlier plans we shared regarding opportunities to interact with your favorite princesses.

And Tinker Bell and her fairy friends will be joining the cast at Epcot where they will have special roles bringing the flora and fauna to life during the Flower and Garden Festival.

The New Fantasyland will be constructed in phases with most new experiences open by 2013. We look forward to sharing more with you as our work progresses.

Update on New Fantasyland at Magic Kingdom Park by Thomas Smith: Originally posted on the Disney Parks Blog

Nothing New: 7 modern car technologies that are actually 100 years old

I often say, flippantly, that the industry is just now starting to master the technologies of a century ago. That’s been more an impression than a statement of fact; I recall seeing many things in early publications and thinking, “wow, I had no idea they did that so soon,” but if pressed, I wouldn’t be able to provide examples. Time to remedy that, with a quick survey of some ideas that were before their time.

1. Turbocharging




The idea of turbo-compressing seems to come from the 1890s and became widely known in less than a decade, starting around 1900. By about 1905, centrifugal compression was in use in marine engines and other heavy-duty applications. That same year, Swiss engineer Dr. Alfred Büchi patented an exhaust-driven turbocharger in what we’d consider a modern configuration.

England and France were the hotbeds of turbo research, however, with a large variety of engine configurations and external devices, all creating forced induction. The word “turbo” itself appears more than a century ago, on the English device shown (I haven’t been able to learn more about it). Sold as an add-on, we’d probably call it a supercharger today, as it was driven by a shaft from a friction wheel in contact with the flywheel. Actually, we’d probably call it a waste of money, as it couldn’t possibly have had any benefit, but the idea was sound.



High exhaust motor, 1912

That’s not to say Americans didn’t have the idea of turning a turbine with exhaust gas; devices such as the High exhaust motor replaced the flywheel, hypothetically returning force directly to the crankshaft.

Auburn, Cord and Duesenberg, among others, used supercharged forced induction before World War II, sometimes to great success, but exhaust-driven turbocharging had to wait for the Corvair to see mass production.

2. Hybrids




1900 Elektromobile System Lohner-Porsche

This is my favorite early technology, and no mistake it is very early. The 1900 Lohner-Porsche petrol-electric – which had a Mercedes or Panhard four-cylinder connected to a dynamo, powering two front-wheel hub motors – is certainly the most famous, but despite repeated efforts, hub motors have yet to see practical production. But there were innumerable others with other solutions, one of which, Rambler, had what seems to have turned out to be THE solution: Integrated motor assist.


Rambler developed a motor/generator to replace the flywheel, originally simply as a starter. Early starters were enormous and heavy, but by connecting the new unit directly to the crankshaft in the 1912-’13 (I think) Cross Country, they simplified things. Made by United States Heating and Lighting Company (U.S.L.), it was completely automated: it functioned as a motor when starting, drawing from a 24-volt storage battery, then switched to generator mode when the engine engaged, with a regulator to prevent overcharging. The big spinning armature served as the flywheel.



So far, this is just a clever starter, but there was one difference: Because there was no gear reduction, you could safely use it to get the car under way. In fact, taking the car up to about 5 MPH before starting seems to have been a preferred way of getting it going. That’s right: at low speeds it was an electric, then switched to gas. Right down to the location of the generator, this is the way a Honda Insight works today.

Even that wasn’t original – in about 1898, both Pieper in Belgium and Patton Motor Co. in Chicago had electric assist: A small engine was kept running at constant speed, driving a dynamo and charging a battery. When conditions demanded more power than the engine was putting out – hillclimbing, for instance, the dynamo automatically switched to assist mode.

3. Power brakes


When you drive an early car for the first time, the weak brakes make themselves known immediately. You’re forgiven for thinking they were an afterthought, but the issue was actually the tires. Even a skimpy contracting band could lock up slick three-inch wide rubber, but that didn’t mean there weren’t inventors thinking up better solutions than rods and leather belts.

Like hydraulic power brakes.


That there is the master cylinder from John Unser’s 1904 patent (#794,382) for hydraulic brakes. “Hydraulic,” in this case, meant “operated by the pressure of air or other similar fluid;” his pump and reservoir could be adapted for liquids. For traction engines, there was even an outlet at the end to hook up to your trailer, like you do with a Perterbilt today. This stuff doesn’t spring up out of whole cloth and I could undoubtedly find someone discussing the use of some rail braking mechanism for road trains, but you get the idea.

4. Disc brakes



Because clutch disc brakes were in common use, it’s been very tricky to pin down the first application of wheel disc brakes. However, the earliest version is acknowledged to be the F.W. Lanchester’s 1902 patent,and by 1903 it was being used very successfully in Lanchester automobiles. Given Fred Lanchester’s background and track record of startling invention, it entirely possible he came up with the idea.



Metz multiple disc brakes



Argyl front wheel drums

By 1915, Metz was offering a hub-mounted version of multiplate disc clutch brakes, and Scottish make Argyl had four-wheel internal expanding drums. Lanchester’s experment didn’t last long, but French automakers started playing around with discs again in the Twenties.

5. Fuel injection




Blown, air-cooled, fuel-injected, two-stroke experimental automobile, 1908

Because there was continual interest in oil-burning engines, fuel injection and direct injection were known quantities. The trouble, as manufacturers relearned in the Fifties, is that mechanical fuel injection requires precise timing and metering, and expensive, close tolerance machining. It was first developed in European stationary engines in the early 1890s, and developed for automobiles and other vehicles around the turn of the century – the Wright brothers rather famously made it work in 1903. In America, it was really limited to a small number of independents at the time, however, as there wasn’t enough money in the industry to support a sufficiently developed field of enquiry. In France, M. Levassor had running fuel-injected automobiles by 1903, and may even have sold some for road use.


That was no longer true a few years later, and by around 1907 there were experimental fuel-injected cars running. To address the troubling issue of preignition, many, if not all, were two strokes, and alcohol was often used; this was much less of a problem in the already well-established kerosene (Diesel) engines. By 1910, fuel injection was widely discussed even among layman and everyone expected that the problems would be ironed out soon. But it really wasn’t until the Thirties that it became widely available in the U.S., and then only as speed parts.

6. Rotary and turbine engines


Rotaries of every possible configuration abounded in the 1800s; the idea had been around for centuries, and Pecquer’s self-propelled 1828 steam wagon was a rotary, probably turbine style. They were, in fact everywhere. Most were rotaries in the sense that, familiar from rotary piston aircraft, the pistons revolved around the crankshaft while reciprocating; the other class were turbines.

Single-rotor steam engines were, if not common, at least a known line of inquiry. Adding combustion to a rotating chamber was something else. But in the 1890s a few played around with the idea of abandoning pistons altogether, for a Wankel-style rotor. All of these inventors are obscure to the point I have no idea who they were, but the 110-plus-year-old combustion engines of Chaudin, Garnder and Sanderson, Batley, Vernet, Dodement and Beetz are recognizably non-reciprocating rotaries.



André Beetz’s rotary



Gardner-Sanderson petrol turbine rotary

Some experts saw the reciprocating piston gas engine as a stopgap, assuming that within a few years the problems with turbines – the same ones as with fuel injection – would be ironed out and soon become the automobile powerplant of choice.

7. Automatic transmissions


The earliest automatics were more properly CVTs, some form of variable ratio transmissions, often using belts or flywheels. An automatic tension belt design from Europe, using a belt and spur gears, appeared in 1900, and there were numerous friction drive vehicles available right along, where power was transmitted through the action of one wheel to another at right angles. So from a “you don’t have to shift” perspective, automatics are as old as the car.


But in 1901, the patented Shattuck Variable Gear transmission debuted in Minneapolis. The driver did still need to shift, but the actual gearchange was theoretically automatic – no clutching needed. At the same time, planetary transmissions, as popularized by the Model T, were well along in development. All that was needed was the torque converter, which was 20 years away.



1914 Entz electric transmission

So interest turned to electric transmissions. As in some of the hybrids, a motor-generator was placed behind the engine in the drivetrain, and a magnetic clutch was often used to further simplify operation. The simplest systems, like the R.M. Owen unit above, didn’t use large accumulators; they were designed to be driven solely by the engine, but without the need for shifting; all you had to do was flip the switch to disengage it at a stop. A very similar system was used in the production 1907 Columbia gas-electric.



Lavaud automatic transmission

Work on automatics continued unabated, and by 1923 you could hook your Voisin-Lavaud automatic to an English Constantinesco torque converter.

By 1910, there was no reason a person with sufficient ambition, skill and resources couldn’t have assembled a supercharged, fuel-injected hybrid with an automatic transmission and four-wheel hydraulic discs. But something like that would never fly.

Puckelball Pitch (the world's first!) Johan Strom, Malmö, Sweden, 2009




The world's first Puckelball pitch is in use in Malmö, Sweden, a city notable for its commitment to creating new social spaces that encourage its residents to interact outdoors.

Also called 'Mogul ball' for its resemblance to the moguls on ski runs, the puckelball pitch (made of artificial turf) is a protected design concept by artist Johan Strom, who thinks of it as a metaphor for life:

'Many live under the belief that life is a fair playing field, that both pitch halves are just as big and the goal always has at least one cross. But ultimately the ball never bounces exactly where you want it to and the pitch is both bumpy and uneven.'

As one of those uncoordinated kids that was always picked last for team sports, I would have loved playing in a setting in which 'the pitch’s irregularities neutralise the players’ skills. It is not at all certain that the best football player is also the greatest puckelball hero. If the ball doesn’t bounce where you think it will everybody has a chance.'

The unevenness of the field is intended to invite more imaginative ways to play, and to encourage play between girls and boys, old and young, skilled against unskilled, on equal footings, challenging the physical elitism inherent in most sporting activities. But serious footballers find it useful, too...for practice in responding to unpredictability.

How much do you want a puckelball pitch in your hometown? Yeah, me too. Let's start a movement.

(Malmö has more exemplary playscapes...watch for them in future posts!)

UPDATES: see also photos of the puckelball field construction by Bo Johnsson and a video about puckelball by the municipality of Malmo.

Photo Essay: 20 Amazingly Creative Works of Paper Art


Paper art is about so much more than a finely executed paper plane. Scope these 20 awesome examples.

crane origami silhouette
1. Crane origami designed by Roman Diaz and Daniel Naranjo, and folded from 37 x 37cm paper by artist Emre Ayaroglu.


tiny green frog origami on coins
2. Tiny frog origami designed by Toshikazu Kawasaki, and folded from 2 x 2cm paper by artist Emre Ayaroglu.


paper art flower pattern
3. Seven modular paper pieces forming a flower pattern. Artwork and photography by artist Elod Bregszaszi.


book dissection
4. Book Dissection by artist Brian Dettmer. The book edges are sealed and the artist works through the pages with surgical tools. Nothing is added, only removed as the book’s fragmented hidden memory is revealed. All photos used with owner’s permission.


3D colorful paper illustrations
5. Colorful 3D paper illustrations by artist Yulia Brodskaya.


Wall-E origami
6. Wall-E robot origami folded from an uncut square. Artwork and photography by artist Brian Chan. Photo used with owner’s permission.


circular paper art
7. “Innerings” has four identical sides with circles, which come together to form a whole. Basic elements, such as water and fire, are added to the circles. The work can be folded inwards to a two-dimensional surface. Artwork and photography by artist Ingrid Siliakus. Photo used with owner’s permission.


Sagrada Familia paper art
8. Two pieces inspired by Gaudi’s Barcelona masterpiece, the Sagrada Familia. Artwork and photography by artist Ingrid Siliakus. All photos used with owner’s permission.


Icosahedron II paper art
9. “Icosahedron II” made from paper & adhesive. Artwork and photography by artist Richard Sweeney. Photo used with owner’s permission.


Partial Shell paper art
10. “Partial Shell” made from watercolor paper. Artwork and photography by artist Richard Sweeney. Photo used with owner’s permission.


paper cut sculptures
11. Paper cut sculptures by artist Peter Callesen. All photos used with owner’s permission.


white shadows paper art
12. “White Shadows” made from watercolor paper and glue. Artwork and photography by artist Eleanor Lutz.