When new is worse: MacBook Air 2012 screens

This is another guest post by my friend Tobi. —Jörn

It has been a few weeks since I bought a brand new Apple MacBook Air Mid 2012. As far as I tested it is a very solid piece of hardware. Nevertheless, there is one annoying point I want to show up within this post.

All began when I noticed a gray gradient starting in the lower region of the display close to where it ends. This gradient is well visible if the display is dimmed to around 4 points in the brightness settings and if you are looking at a white area in fullscreen mode. It is around 3-4mm thick. After I compared it with the MacBook Air 2010 of Jörn we found out that it only affects the MacBook Air 2012. So I called Apple Care and they told me that it shouldn’t be like this but to be sure I should go to an Apple Store.

So I went to the closest Apple Store and explained my concern. After the sales guy agreed, we compared it with the other MacBook Air 2012 in the store and found out that each of them has this issue. So I did some research investigation and as far as I cantell based on my personal experience and from what I found on the web, the quality of the panels in the MacBook Air of the current 2012 generation decreased compared to the MacBook Airs built in 2010.

There are three manufacturers supplying panels for the MacBook Air 2012. Here is a short break down of the facts:

Samsung: Best white and black levels, best contrast, best color gamut
LG: Best color accuracy but the colors appears to be washed out. This can be handled by the color settings
AUO: Used in the 11″ MacBook Air, but I couldn’t find any information about this panel.

To find out which panel you have type this into the terminal

ioreg -lw0 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -p -r | strings -6

The first to letters are relevant:

LP = LG
LT = Samsung
B = AUO

Unfortunately, all of those panels have the issue I described above – some more and some less visible (even the replacements). If you can’t life with it, don’t buy a MacBook Air 2012.

Some references:

Release: Validation Plugin 1.11.0

A new version of the jQuery Validation Plugin is available. Once again this release brings more stability (bug fixes!), better localization (new: Malay) and improved html5 compability (min/max attributes on type=”date” now work with the min/max methods). More details on the code and feature changes in the changelog below.

Backwards compatibility is still going strong: The plugin should work with anything from jQuery 1.4.x to 1.9.x.

This is the first release to make it to the new jQuery Plugins site.

Download this release.

If you use the plugin, please donate or ask your boss to make a donation!

Click here to lend your support to: jQuery Validation Plugin and make a donation at www.pledgie.com !

The full changelog:

  • Remove clearing as numbers of `min`, `max` and `range` rules. Fixes #455. Closes gh-528.
  • Update pre-existing labels – fixes #430 closes gh-436
  • Fix $.validator.format to avoid group interpolation, where at least IE8/9 replaces -bash with the match. Fixes #614
  • Fix mimetype regex
  • Add plugin manifest and update headers to just MIT license, drop unnecessary dual-licensing (like jQuery).
  • Hebrew messages: Removed dots at end of sentences – Fixes gh-568
  • French translation for require_from_group validation. Fixes gh-573.
  • Allow groups to be an array or a string – Fixes #479
  • Removed spaces with multiple MIME types
  • Fix some date validations, JS syntax errors.
  • Remove support for metadata plugin, replace with data-rule- and data-msg- (added in 907467e8) properties.
  • Added sftp as a valid url-pattern
  • Add Malay (my) localization
  • Update localization/messages_hu.js
  • Remove focusin/focusout polyfill. Fixes #542 – Inclusion of jquery.validate interfers with focusin and focusout events in IE9
  • Localization: Fixed typo in finnish translation
  • Fix RTM demo to show invalid icon when going from valid back to invalid
  • Fixed premature return in remote function which prevented ajax call from being made in case an input was entered too quickly. Ensures remote validation always validates the newest value.
  • Undo fix for #244. Fixes #521 – E-mail validation fires immediately when text is in the field.
As usual:
  • Please post questions to the official Using jQuery Plugins Forum, tagging your question with (at least) “validate”. Keep your question short and succinct and provide code; a testpage makes it much more likely that you get an useful answer in no time.
  • Please post bug reports and other contributions (enhancements, features, eg. new validation methods) to the GitHub issue tracker

Enjoy!

Cologne.js 2012

Cologne.js is this little user group that a few people founded in June 2010. Michael Bumann, offered to host the event at Cowoco, and has been regularly around since then. After half a year, we crowd-funded a projector and donated it to Cowoco, which meant that everything we needed was right on site. For quite some time, Matthias Luebken ran most of the time, recruiting speakers and advertising the events through Twitter and the mailing list. Its probably been a year now since Frederic Hemberger and myself took fully over. It has been challenging and frustrating at times, but especially our latest meetup in December was a very special success, and I wanted to write some more about that.

For the second time this year, we arranged a sponsored speaker to come to our event and speak there, with a local company paying the travel expenses (big thanks to Railslove and Denkwerk). We had Felix Geisendörfer come from Berlin to talk about NodeCopter. He told us how the idea came together, how it went from a singular event to a whole series with more planned for the summer next year. He live demoed his nodejs based library to program the drone, then went on to even write a custom firmware to execute directly on the drone itself. It was a lot of fun, mixed with learning about binary encodings to write a drone firmware.

As a kind of warm-up, Sebastian Golasch, by now a regular at our event, talked about what he dubbed Dirty Little Helper. Walking us through various hardware-browser setups, including his MakeyMakey based Simon-Says clone, he eventually presented his custom home automation setup. Remotely turn off lights and use your laptop camera to check on things, all DIY-style with cheap and simple components. I’m ordering a MakeyMakey!

The third talk, with which the evening started, was by Jan-Christoph Borchardt talking about Unhosted and Remote Storage. His colleague and founder of Unhosted told me about the ideas behind Unhosted last year at a beer.js event in Berlin, so it was quite interesting to me how far they came along. The remoteStorage specification, along with a reference implementation, can be used today to build applications where you control where your data is stored, instead of having to buy-in to editors attached to storage like Google Docs forces you to. Its unclear how much mainstream traction this will be able to achieve, but its an important idea worth spreading.

Those were the three talks that we advertised with. We ended up with a record number of visitors of 50! A lot of people also followed our beer.js invitation and stayed around after the talks, forcing Bumi to refill the beer fridge, since also a record number of drinks were consumed. Thanks to 5apps for sponsoring that.

I’m excited about next year. We’ve got one talk lined up for January already, but are, as usual, looking for more. If you want to present something, let us know (Twitter, email).

Release: Validation Plugin 1.10.0

Wow, 11 months. It really has been 11 months since the 1.9.0 release. Interesting freelance times!

Anyway, the jQuery validation plugin 1.10.0 is here! While the very recently launched Pledige.org campaign is just at the start, I hope this release helps convince you that the project isn’t dead. On the contrary, this release brings you all the improvements that were built during those 11 months. A big chunk was contributed by Max Lynch, kudos to him!

What changed? One cool new feature is the ability to specify messages with data- attributes. The next release should bring more html5y support like that, but for now you can put data-msg="Please please fill out this field!" into your markup, or specify one message per method: data-msg-required="Really need this" data-msg-minlength="Moar characters please" (please don’t use these messages in your application…).

Apart from that we’ve got a ton of updates on the outskirts: Localized messages now use their correct ISO codes, a lot of language files got added or improved. Additional methods got a few new citizens and updates to existing methods.

Backwards compatibility is still going strong: The plugin should work with anything from jQuery 1.3.x to 1.8.x.

Download this release.

Don’t forget to donate and spread the word!

Click here to lend your support to: jQuery Validation Plugin and make a donation at www.pledgie.com !

The full changelog:

  • Corrected French strings for nowhitespace, phoneUS, phoneUK and mobileUK based upon community feedback.
  • rename files for language_REGION according to the standard ISO_3166-1 (http://en.wikipedia.org/wiki/ISO_3166-1), for Taiwan tha language is Chinese (zh) and the region is Taiwan (TW)
  • Optimise RegEx patterns, especially for UK phone numbers.
  • Add Language Name for each file, rename the language code according to the standard ISO 639 for Estonian, Georgian, Ukrainian and Chinese (http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
  • Added croatian (HR) localization
  • Existing French translations were edited and French translations for the additional methods were added.
  • Merged in changes for specifying custom error messages in data attributes
  • Updated UK Mobile phone number regex for new numbers. Fixes #154
  • Add element to success call with test. Fixes #60
  • Fixed regex for time additional method. Fixes #131
  • resetForm now clears old previousValue on form elements. Fixes #312
  • Added checkbox test to require_from_group and changed require_from_group to use elementValue. Fixes #359
  • Fixed dataFilter response issues in jQuery 1.5.2+. Fixes #405
  • Added jQuery Mobile demo. Fixes #249
  • Deoptimize findByName for correctness. Fixes #82 – $.validator.prototype.findByName breaks in IE7
  • Added US zip code support and test. Fixes #90
  • Changed lastElement to lastActive in keyup, skip validation on tab or empty element. Fixes #244
  • Removed number stripping from stripHtml. Fixes #2
  • Fixed invalid count on invalid to valid remote validation. Fixes #286
  • Add link to file_input to demo index
  • Moved old accept method to extension additional-method, added new accept method to handle standard browser mimetype filtering. Fixes #287 and supersedes #369
  • Disables blur event when onfocusout is set to false. Test added.
  • Fixed value issue for radio buttons and checkboxes. Fixes #363
  • Added test for rangeWords and fixed regex and bounds in method. Fixes #308
  • Fixed TinyMCE Demo and added link on demo page. Fixes #382
  • Changed localization message for min/max. Fixes #273
  • Added pseudo selector for text input types to fix issue with default empty type attribute. Added tests and some test markup. Fixes #217
  • Fixed delegate bug for dynamic-totals demo. Fixes #51
  • Fix incorrect message for alphanumeric validator
  • Removed incorrect false check on required attribute
  • required attribute fix for non-html5 browsers. Fixes #301
  • Added methods “require_from_group” and “skip_or_fill_minimum”
  • Use correct iso code for swedish
  • Updated demo HTML files to use HTML5 doctype
  • Fixed regex issue for decimals without leading zeroes. Added new methods test. Fixes #41
  • Introduce a elementValue method that normalizes only string values (don’t touch array value of multi-select). Fixes #116
  • Support for dynamically added submit buttons, and updated test case. Uses validateDelegate. Code from PR #9
  • Fix bad double quote in test fixtures
  • Fix maxWords method to include the upper bound, not exclude it. Fixes #284
  • Fixed grammar error in german range validator message. Fixes #315
  • Fixed handling of multiple class names for errorClass option. Test by Max Lynch. Fixes #280
  • Fix jQuery.format usage, should be $.validator.format. Fixes #329
  • Methods for ‘all’ UK phone numbers + UK postcodes
  • Pattern method: Convert string param to RegExp. Fixes issue #223
  • grammar error in german localization file
  • Added Estonian localization for messages
  • Improve tooltip handling on themerollered demo
  • Add type=”text” to input fields without type attribute to please qSA
  • Update themerollered demo to use tooltip to show errors as overlay.
  • Update themerollered demo to use latest jQuery UI (along with newer jQuery version). Move code around to speed up page load.
  • Fixed min error message broken in Japanese.
  • Update form plugin to latest version. Enhance the ajaxSubmit demo.
  • Drop dateDE and numberDE methods from classRuleSettings, leftover from moving those to localized methods
  • Passing submit event to submitHandler callback
  • Fixed #219 – Fix valid() on elements with dependency-callback or dependency-expression.
  • Improve build to remove dist dir to ensure only the current release gets zipped up
  • Bumping version to 2.0.0pre
As usual:
  • Please post questions to the official Using jQuery Plugins Forum, tagging your question with (at least) “validate”. Keep your question short and succinct and provide code; a testpage makes it much more likely that you get an useful answer in no time.
  • Please post bug reports and other contributions (enhancements, features, eg. new validation methods) to the GitHub issue tracker

Enjoy!