Skip to main content

Glossy Laptop display

My laptop has a glossy display (HP calls it a BrightView display). It is marginally annoying when there are bright surfaces behind you. When the screen is off, you would think, from the reflections, that its impossible to use, but the LCD displays pretty bright images, so they usually drown out the background behind.

I had never been able to use the laptop outside, because of reflections, until today. I decided to try again and this time, instead of sitting facing the sun I sat at an angle to it. It was amazing! At the proper angle, the back of the display diffusely reflects the sunlight, causing the screen to now act like an old fashioned LCD with no back-light.

It looks a little weird, because the letters clearly float above the greenish background (like the LCD on a clock or watch), but I was able to use it in bright sunlight, on battery (i.e. dimmed display). It was amazing.

So the trick to using the BrightView LCD in sunlight is to turn so that the sun is not reflecting directly off the screen, but is otherwise illuminating it.

For a nice description of how this works look here.

(Thanks to Ben for pointing out original post was obtuse in parts)

Comments

Popular posts from this blog

A note on Python's __exit__() and errors

Python's context managers are a very neat way of handling code that needs a teardown once you are done. Python objects have do have a destructor method ( __del__ ) called right before the last instance of the object is about to be destroyed. You can do a teardown there. However there is a lot of fine print to the __del__ method. A cleaner way of doing tear-downs is through Python's context manager , manifested as the with keyword. class CrushMe: def __init__(self): self.f = open('test.txt', 'w') def foo(self, a, b): self.f.write(str(a - b)) def __enter__(self): return self def __exit__(self, exc_type, exc_val, exc_tb): self.f.close() return True with CrushMe() as c: c.foo(2, 3) One thing that is important, and that got me just now, is error handling. I made the mistake of ignoring all those 'junk' arguments ( exc_type, exc_val, exc_tb ). I just skimmed the docs and what popped out is that you need to return True or...

Store numpy arrays in sqlite

Use numpy.getbuffer (or sqlite3.Binary ) in combination with numpy.frombuffer to lug numpy data in and out of the sqlite3 database: import sqlite3, numpy r1d = numpy.random.randn(10) con = sqlite3.connect(':memory:') con.execute("CREATE TABLE eye(id INTEGER PRIMARY KEY, desc TEXT, data BLOB)") con.execute("INSERT INTO eye(desc,data) VALUES(?,?)", ("1d", sqlite3.Binary(r1d))) con.execute("INSERT INTO eye(desc,data) VALUES(?,?)", ("1d", numpy.getbuffer(r1d))) res = con.execute("SELECT * FROM eye").fetchall() con.close() #res -> #[(1, u'1d', <read-write buffer ptr 0x10371b220, size 80 at 0x10371b1e0>), # (2, u'1d', <read-write buffer ptr 0x10371b190, size 80 at 0x10371b150>)] print r1d - numpy.frombuffer(res[0][2]) #->[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] print r1d - numpy.frombuffer(res[1][2]) #->[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] Note that for work where data ty...