Post Interesting Links to Blog 06/30/2009

by Bruce Abernethy 29. June 2009 18:30

Posted from Diigo. The rest of my favorite links are here.

Tags:

General

Dell Latitude 2100 “kidbook” - Detailed First Impressions and Tips

by Bruce Abernethy 22. June 2009 23:51

Kidbook vs. Netbook

I wrote almost a year ago of how I’ve been looking for a netbook that would meet some basic requirements for use by kids for their daily work.  There have been a lot of netbook models which are basically all the same specs, but none have really stood out as something that was designed and intended for kids, especially younger kids, to use on a daily basis.  Enter the Dell Latitude 2100 “kidbook”.  I’m calling it a kidbook because it adds some important features.

05running

The 2100 is designed from the ground up for daily use in schools – it is not generally intended to be a consumer netbook.  This means some important things.  First, it amazingly comes with no promo/demo/annoyware installed.  While this isn’t really a feature, it saves perhaps an hour or more of uninstalling to get up and running.

The unit feels solid, has a rubberized shell, and is somewhat ruggedized – perhaps not to warehouse/government standards, but it definitely feels sturdy.  It immediately makes me think that this is what a “Little Tikes” or “Rubbermaid” laptop would look and act like. Also, the bottom of the unit has no access points for memory or drives, etc.  In fact if you even remove the four screws on the access panel it will not come off – there are three more screw under the keyboard (see below) that need to be removed to access the hardware. This adds a nice level of security from interested eyes, but adds some complexity of adding memory, etc.  Interestingly this also means that desktop spills could avoid damage as there are no access holes or vents on the bottom surface.  The 6-cell battery option raises up the base even more for additional clearance.

The 2100 is a barebones and utility machine.  It is not a tablet (though we did get the touch screen, see below), there is no thumb scanner, or firewire ports (3 USB).  The keyboard is solid and nearly full sized, but there are no multimedia keys other than volume/mute controls.  Did I mention there is no CD/DVD drive – typical for a netbook, but still something to get used to from desktops and laptops.

Finally the 2100 is very budget conscious – starting under $400, about $450 with the additional memory, touch screen, and webcam on these units.  I remember in 1991 when I was teaching computers and we got some Apple PowerBook 100s to pilot with some teachers and students.  These were $2,500 each in 1991 money.  Even the Newton-PDA inspired eMate 300 device was $799 in 1997 and didn’t even run “real” software.  The netbooks are finally a device that has enough power at a reasonable price for 1:1 student use.

Screen

Let’s get right to my biggest concern about the units the screen resolution - 1024 x 574?  Huh?  Computer monitors have traditionally been in a 4:3 ratio (e.g. 640x480, 800x600) and more recently 16:9 (1280x720) but netbooks have commonly chosen WSVGA resolution of 1024x600.  This is trouble enough as it doesn’t match any typical resolutions of monitors, but by the 2100 dropping a mysterious 26 pixels off of this causes additional problems.

screenres

Many web sites are expecting at least 700 pixel vertical resolution, so you end up having to scroll down to get to the active parts of many web sites.  But this is true of all netbooks and web sites are adapting to the netbook trend.

However, software installers can check minimum resolution before installing or setting themselves up.  Some software will see a vertical resolution of under 600 and set up for 640x480 which makes an awkward little box in the middle of the relatively big screen.  Others will not install without at least 800x600 resolution.  To get around this you can temporarily change your screen resolution to 1024x768.  This means you end up scrolling the screen up and down to see the full screen by moving the mouse up and down.  This will allow the software to install.  Then you can change the resolution back and the software will typically run (may clip the bottom a little).

But, 1024x576 is not one of the choices in the typical “Display Properties” dialog box – so how do you switch back.  It turns out it is not that straightforward, but here is the scoop.

06graphics 06aintel

In “Display Properties” Settings, choose the Advanced Button.  One of the Tabs will now be called “Intel Graphics Media Accelerator Driver for Mobile”.  Here there are two things: 1) the button that takes you to the actual screen you need, and 2) a “Show Tray Icon” checkbox that will enable access to this panel directly from the System Tray.  If you find yourself needing to switch resolutions to support certain software, having easy access to his panel will be helpful.

06bintel2

On this screen, finally, you can find the “native” resolution of the 2100 (1024x576).

An additional tip, the new Chrome web browser from Google has a unique functionality (that I hope gets picked up by IE, Firefox, etc.) that allows you to find a page on the web and then “Create Application Shortcuts”. This does two important things: 1) Drops an icon on the desktop, start menu, quick-launch bar, etc. for that web site (and picks up the favicon as an icon for the shortcut) and 2) removes all the UI chrome at the top (i.e. no address bar, tabs, menus, just the window title).  This enables kids to get to pre-selected sites very quickly and maximizes the vertical “real estate” on the screen for maximum use.

09chromewikipedia

Touch Screen

I opted for the touch screen because I am developing some software that uses it, but I was surprised at how the kids started using this feature right away in many of the applications.  The kids must not have the hang-ups I have about touching a screen to get it to do things because they use it all the time.  In fact in some software like Rosetta Stone (foreign language – nice) it is much more instinctive and natural to use the touch screen than maneuver with the touchpad.  Not much more to say about this yet – I am eager to get some software going that will use it even more.

CPU

The 2100 uses the common combination of the Intel Atom N2170 CPU and Intel 950 GMA (graphics media accelerator).  This combination does a very respectable job of running most software very well.

The notable exception is software that requires significant graphics memory and 3D acceleration.  Two failures in this regard were Age of Empires III and Civilization IV.  A general rule, if you considered buying a new video card to run a game or program, then it will probably have issues on a netbook

The 2100 plays video well (avi, mov, mp4, and even DVDs, see below), but don't expect to record or edit videos on the machine itself.  The performance was very respectable with photos (even large ones) consider the higher-end (2Gb) of memory if editing and manipulating images will be important..

Integrated Camera / Microphone

We also opted for the integrated webcam and digital microphone.  I was very pleased when installing Skype (video conferencing) at how well it worked with the hardware with the standard install.  The device comes with software for basic webcam recording and still picture capture.

The one trick we found was actually enabling the integrated digital microphone in applications like Skype and Audacity (audio/podcasting).  There is only one microphone driver/input in the software but there is an external jack for microphones and an internal digital microphone.  I only found one place to switch between the two.  If you open the control panels there will be one called the “Realtek HD Sound Effect Manager”.

07sound

Opening this up you will find a tab called “Mixer”.  Once selected you will have the option to select the radio button for either the external or integrated/digital mic.

07adigmic

Memory

There are really four configurations of memory in the 2100: 512Mb, 1Gb, 1.5Gb, and 2Gb.  The interesting thing is that the initial memory configuration is very important.  The first 512Mb or 1Gb of memory is actually permanent on the motherboard of the laptop – that is, it can’t be removed or upgraded.  There is one slot for memory that can take an additional 1Gb of memory.  So starting with 1Gb maximizes your memory potential.  This is how I ordered the units because additional memory was $29 for 2 1Gb DIMMs online (and I was over budget because of the touch screen and webcam already).

Adding the second sticks of memory turns out to be more involved than any laptop I have ever used or owned, and this is saying a lot.  It turns out that you first need to remove the keyboard (2 screws) to get to the internal screws attaching the bottom cover (3 screws) and then you need to remove the bottom access cover (4 screws).  One note here is to be careful with the keyboard cable clip.

02akeyclip 

This clip opens upwards (see above) and stays attached – or should stay attached.  One one of the units I had this clip (the white part) completely detach which lead to 20 minutes or so of anxiety before my wife (with better eyes and smaller fingers) got the clip to click back on (thanks Laura). 

02bkeygone02keyboard 03aimagelocation

The second 2100 memory upgrade went fine with the keyboard clip but the memory did not “seat” correctly so I had to re-remove the 9 screws, keyboard, panel, etc. and do it all over again – good experience, but, again, not as “friendly” as many other laptops.  Perhaps having Dell install the 1Gb when building the machine is worth saving $10 on memory.

On the plus side, this really keeps curious kids from getting into the device (it’d be nice if you could get a replacement set of outer screws that were Torx or at least not Phillips-head screws to slow them down even more.  On the down side this makes a typically easy memory upgrade a much more involved task.

Operating System

Ubuntu Linux, Windows XP SP3, or Windows 7 – not considering Vista as a practical option right now.

This is actually a pretty easy decision for us. Linux won't run most of the educational software (out of emulation). Likewise Windows 7 won't run much of the software and “Virtual XP” mode is not supported on Atom processors.

Macintosh OSX not available on non-Apple equipment - will Apple release a netbook / kidbook?

So Windows XP SP3 is probably the most stable and understood Windows operating system in use (since Windows 98SE) and runs the important software we use.  Microsoft has stated that the XP downgrade option will be available for 18 months after the release of Windows 7, after that a CPU and memory upgrade will probably be necessary to achieve similar results.

Networking

Unsurprisingly the 2100 supports Wi-Fi and wired connections (no 3G or WiMax, but not needed).  But surprisingly it supports 802.11n high-speed Wi-Fi and 1000 Gigabit Ethernet wired connections which are not common on typical netbooks.  They also have the ability to “wake on LAN” which enables solutions like the upcoming “Managed Mobile Computing Station”.

09mobilestation

This unit enables 24 of the 2100s to be docked for charging, storage/security, and remote updates (even includes it’s own wireless router so you can plug in one Ethernet cable and wirelessly power a room).  But at close to $4,000 this kind of kills the whole “on budget” theme for a classroom – hmm, 10 more 2100s or a fancy cart.

Bluetooth 2.1 is available as an added option (we didn’t opt-in).  This was tempting for use with the LEGO Mindstorms NXT robotics kits, or wireless mouse, but I can imagine the pairing and management of a classroom full of Bluetooth devices could get challenging.

One other thing is the somewhat hyped feature of the Network Activity Light.

10activitylight

This is included on the cover of the netbook and shows if any network interface is being used (i.e. light on if activity, light off if no activity).  I’ll stop short of calling this a “gimmick” but in our experience the light is always on because the network is always on.  If there were an easier way for kids to turn the network on and off, or some software uses this for other purposes (a promised API from Dell for educational software programmers may be coming soon), then this may have a larger use and impact.

Battery

Dell offers a 3-cell and 6-cell battery for the 2100.  The 6-cell adds a little bit of height but is barely noticeable.  One unique feature is that there is a clear plastic “window” on the battery where you can slide in a strip of paper with a particular student’s name (or other identifier) on the unit.  This gives a clear way to identify different machines in what may be a crowded classroom situation.

Keyboard

The keyboard is nearly full-sized and I had no time with my huge hands typing e-mail and other tests.  Another unique option here is an antimicrobial protected keyboard option. In a shared environment could be a real plus with the flu and colds going around.  For 1:1 use this may not be as much of a benefit (did not opt for this either).

CD-DVD Options / Issues

Sometimes there is no getting away from using external media.  Ironically all the backup and recovery software for the 2100 comes on CD, which you can’t ever access from the 2100 directly.  Also, some curriculums include physical DVDs (e.g. One Year Adventure Novel) and others have a lot of media that needs to be accessed from the disc (e.g. Rosetta Stone language software).  In these cases you have two options.

The first is an external CD/DVD drive.  The best of these will require no external power and can be powered directly from the USB port.  Dell has an option for this when building the machines for $90 which includes PowerDVD (playing DVDs) and Roxio Creator software (burning discs).  I was watching for deals and found a Samsung drive on sale at NewEgg for $49 which included Nero 8 (playing and burning).  This has worked well for installing software, running CDs, and playing DVDs – I was impressed that the laptop played the DVDs so well with the limited power.  I am sure when you are running off of battery power that this would significantly reduce battery run time.

04drives

The other option is to use disc images on the hard drive.  Utilities such as PowerISO will allow you to create an image of most CDs/DVDs and store them on the hard drive, and later mount these images as virtual disks.  This essentially mirrors the content of the CD/DVD to the hard drive.  This image can then be run using just the hard drive.  This raises all kinds of copyright issues and licensing headaches.  This is a topic for another post, but make sure your licensing allows for this type of use and that you are covered for the number of simultaneous installs and users that you have. Some discs have copy protection on them and will not work with this method of mounting – this clearly shows the intent of the publisher – contact them directly as I am sure this will be a common issue going forward.

Ideally software will move away from distribution by disc, and even installing locally on the netbook at all (more below on this).  But until then there are still options for curriculum that is distributed and/or must run with a disc.

Pros

Marketing material is one thing, but a well designed “kidbook” is worth lauding.  If I haven’t mentioned it before I am in no way associated with Dell and don’t get any compensation from them.  That being said, I really do like the 2100s.  They are solid and do what they claim to do, and don’t do what they don’t claim to do.  The price point is quite reasonable considering the power and functionality provided.  Unique options like the touch screen, anti-swine flu keyboard, rubberized and secured exterior, etc. are very nice to see.  The touch screen and web cam enable more “natural user interface” options that enable use of the 2100 beyond the keyboard and mouse/touchpad.

Cons

The biggest “con” is the screen resolution (1024x576).  I would predict that this gets a remedy fairly quickly because of the non-trivial impact that it can and will have on software installs and execution.  Unfortunately early adopters will be somewhat left behind by this – but that is one of the risks of being early to any technology.

Recommendations

When I was young and foolish I leased a 1995 Dodge Cirrus based on a popular consumer's magazine "Car of the Year" award (because I had finished my Masters degree, and had a full time school administrator's job, and "deserved" a new car).  I only mention this because it was the worst car I have ever owned, recalled twice, in the shop for mechanical failures 5 times, and all in the 24 months of the lease.  This is/was the last new car I ever bought and I learned an expensive lesson about cost and value (and how leasing is 95% of the time a terrible option).  I also learned not to give or trust recommendations without a significant amount of hands-on time for new models.  Interestingly the said consumer magazine has also adopted a similar policy for new models.

And you probably realize where this is going - I am going to hold off on recommendations concerning the Dell 2100 until we've spent some real-world time using it.  Unfortunately models change so fast with computers that waiting a year to make a recommendation will probably find the Dell 2115 in production with the first or second round of enhancements.  But I am in no way sending them back, and am cautiously optimistic that these will really be helpful going forward. I am also realistic that there will be improvements (1024x576) and tweaks and being on the cutting edge is exciting but sometimes you get a little cut up in the process.

Overall I’d give the 2100 “4 of 5 stars” or a solid B+, which means there is a little room for improvement but it is a solid offering and unique today in the marketplace.

Products Installed / Mentioned Here

 

Implications

This is already 2 or 3 times the size of a good blog post, but I plan to add another post at some point about the implications of netbooks in the marketplace.  Some technology analysts predict that in 5 years 50% of internet connected computers will be netbooks. Software and services targeting (or at least supporting) netbooks will be an important market.  Software distributed via the network, or better yet delivered in real-time over the network, will be in demand.  Also, software that can adapt to the screen size of the user (from 10” netbook to 30” desktop monitor) will be popular to enable use and features based on the power and size of the particular install.  Some examples of recent posts on products of this type are below.  I’ll have to also post some samples of what we are doing with Silverlight and dock panels and view boxes to show some of the latest technology to help enable functionality in installations on different screen resolutions.

http://eeepc.net/netbook-office-suite-launched-by-corel/

http://eeepc.net/thinkfree-office-suite-available-for-purchase/

UPDATE: Had to fix the URL "slug" it was messing things up (never include a quote in a slug).

NECC 2009 Themes

by Bruce Abernethy 15. June 2009 06:04

NECC is the National Educational Computing Conference put on yearly by the International Society for Technology in Education (ISTE) (http://center.uoregon.edu/ISTE/NECC2009/).  This is the group that sets national standards for technology in education, and brings together creative and intelligent speakers and attendees for a lively discussion each year. I’ve been to the conference twice, presented once, but haven’t been in the last 10 years.  I do remember it fondly and follow the outcomes when I can from afar.

This year I was impressed to see a planned debate at the conference with the provocative topic, “Bricks and Mortar Schools are Detrimental to the Future of Education”.  It will be interesting to hear the outcome of that.

I speed-skimmed the program over lunch and found the following list of topics/themes.  My main goal is to learn a little about the ones that are completely foreign to me, see the themes that never seem to change, and wonder why there are some topics missing at a conference in 2009.

Quick-skim of topics for NECC 2009

1:1 (Laptops)

24/7 Learning

Adobe Captivate 4

Alice

Animation

Art

Assistive Technology

Astronomy

Authentic Learning

Blogging

Bookmarking/'Digg'ing

Cell Phones / PDAs

ChatBots

Classroom 2.0

Claymation / Stop-Motion

Collaboration

Constructivism

Content Management

Copyright/DRM

Cost Control

Data Recovery

Data-Driven Decisions

Datamapping / Analysis

Differentiated Learning

Digital Storytelling

Digital Textbooks

Foreign Language

Formative Feedback

Games / Using & Building

GIMP / Photoshop

Global / Remote Assignments / Projects

Go Green

Google / Google Earth / Google Sketchup

Individual Learning Plans for All Students

Inspiration

Intel Visual Ranking Tool

Interactive Generation HEAT (higher-order thinking, engaged learning, authentic assessment, and technology) - Nintendo Generation

Internet Safety

iPod Touch

ITRT

Jing

Knowledge Management

LEGO Robotics

Making Movies

Marzano's categories of classroom instruction

Math

MindMapping

Moodle

Multimedia pictures, narration, music

netTrekker

NING

Parent-Child Collaboration

Performance Assessments

Personal Finance

Photography

PicoCrickets

Podcasts

Portfolios

PowerPoint

Primary / Quality Sources

Primary Sources

Professional Learning

Project-Based Learning

School Improvement

Scratch

Second Life

Shmoop

Small Basic

SMART Board

SMART Sync 2009

Social Networking / Communities

StarLogo TNG STEM

Synergy

Tablet

Technology Integration into Curriculum

Technology Proficiency

Tux Paint

Video Conferencing

Whole-Class Learning

Wikis

Tags:

Windows 7 Makes Vista Look Like “New Coke” – Tips and Impressions

by Bruce Abernethy 3. May 2009 23:18

Since Windows 7 was released to developers last week I have installed it on my two personal machines – laptop and desktop.  In the short time I have used it in both environments I have been so pleased with it that it is worth noting.  But I realized that most of the features and performance that have been so welcome, are mostly because of the corresponding disappointment with Vista.  My overall impressions follow – technical tips for those installing the Release Candidate are at the end.

In the last three years I bought these two machines with Vista on them.  Even though the specs on these machines were near the high-end of their category, both seemed to perform even slower that older XP machines when running as shipped with Vista.  Both are HP machines and came with the typical demo-ware and expire-ware and general junk software that seems to come with all new machines now.  I rebuilt them with Vista Ultimate x64 (laptop had 4Gb and desktop had 6Gb – wanted to access memory and CPU features) and had an immediate speed increase.  But many of my USB devices would not work with Vista – and less would work with Vista x64.  My printer, phone, and Bluetooth devices were all without drivers, so things wouldn’t work.  Also, much of my 3rd party software would not work with Vista – utilities, anti-virus, and even development tools would not run or were restricted and stopped working because of Vista’s new “security” features.  Even Microsoft software like office and Visual Studio seemed to conflict with Vista – don’t these people work together?  Needless to say, I was nearing buyers remorse with both machines after their showing with Microsoft’s new flagship operating system.  In fact, I passed up opportunities at work to move to Vista and kept working on Microsoft XP until early this year when my work PC was upgraded.

So fast-forward to May 2009 and the release of Windows 7 RC – a completely different experience.  I installed the x64 version on my desktop and the x32 version on the laptop (just to see if x64 was still more of a pain).  The install process was painless and fast and all of the devices on the desktop were found and compatible drivers were found.  Windows 7 even correctly identified my two LCD monitors (one of which is really old) and set them for optimum resolution.  Now boot-up is quicker, sleep actually works on the laptop (Vista sleep/hibernate is terrible), only 2-3 security prompts so far during installs, applications are running.  Overall things seem really tight, fast, and stable.  It is like Vista should have been.  I can’t stress enough how dramatically different these two installations feel and perform.

Why the dramatic difference between these two seemingly similar operating systems?  I think there are at least two reasons: 1) Time and 2) Damage Control.  The immediate analogy to the “New Coke” fiasco in the 80s.  Coke changed their long-time formula for Coke and spent a lot of money on marketing to convince people it tasted better than the old standard.  Nobody bought it, and die-hard Coke fans revolted.  It was a dark time and Coke seemed to be going down, but then the re-released “Coke Classic” and regained their market share and more.  Vista really is Microsoft’s “New Coke”.

Microsoft has had time during the release of Vista to get all the technical bits worked out – the missing drivers, the UAC and data execution blocking issues, and software and hardware vendors have been able to come out with new versions of their software that are more compatible with the new underlying OS architecture.  Remember, Windows 7 is really more like Vista SP3 with “extras” and “junk removed” – which is fine by me.  Vista will get the blame for being so difficult to use and incompatible, but Windows 7 will get the credit simply by being years later in the game.  Microsoft also has recently added the Virtual XP Mode to Windows 7, which is really a huge win for older software in corporate and educational installations where software has been orphaned and will not be updated.  Vista also failed on the new category of netbook machines – small/cheap/portable laptops – where XP has been so popular.  Windows 7 is much more performant on laptop devices.

As for damage control, Microsoft, like Coke, stepped back and looked at all the complaints of their best customers and realized that this wasn’t just “growing pains” and that they wouldn’t just “get used to it” and move on.  These were significant and real problems that weren’t going away.  So what could they remove from Vista that was the most glaring issues, and what could they add back to justify a new operating system.  The combination of removing the most annoying problems of Vista, while adding significant features in, is really an operating system worth looking forward to.

In the end I think Windows 7 will be a big success for Microsoft – like I said, it is what Vista should have been.  But if we all had to go through the pain of Vista to get to Windows 7, I think the short attention-span of consumers will quickly forget and move forward.  Vista may join the ranks of Windows Me, Microsoft Bob, and other well-intentioned mistakes in the evolution of Windows OS.

Here are a few tips and details of what I have installed – in case this helps anyone.

  • Mounting .iso images on Windows 7 - PowerISO is working to mount .iso files, Daemon Tools is not.
  • Virtual XP Mode is a set of separate downloads – not included with the base Windows 7 RC.  They are in MSDN in the Virtual PC area.
  • After installing the base OS, let Windows Update go get all the OS and hardware updates it can find before proceeding.
  • After installing all your Microsoft stuff (e.g. Office, Visual Studio) to the same (updates).

Installed and working:

Development

  • Visual Studio 2008 w/SP1
  • Silverlight 2 Tools / Toolkit
  • Microsoft Expression Studio w/ Blend SP1

Personal Productivity

  • Office Ultimate (Word, Excel, etc.)
  • Visio 2007

Communications / Networking

  • Microsoft Live Messenger / Live Writer
  • TweetDeck / AIR
  • Chrome / GMail

Utility

  • PowerISO
  • AVG Anti-virus
  • VLC Player
  • Virtual XP Mode x64
  • Virtual PC Beta x64

Tags:

Silverlight 101 Presentation and Files from .NET University West Michigan 2009

by Bruce Abernethy 22. April 2009 00:20

I’ve been wanting to post this for going on two weeks, but also wanted to blog details and more info.  I wanted to get this posted now with a link to the presentation materials and code, and then follow up with some individual posts where I wanted to add detail.

So, in summary, attached are the files from the Silverlight 101 presented by Bruce Abernethy and Dan Woolston session from West Michigan .NET University 2009.

Included References with source URLs

Tags:

Tech Trends and Netbooks

by Admin 20. February 2009 01:24

I had the opportunity to attend Keith Brophy's 10th Annual "Tech Trends" Wednesday last night.  It is great to have regular events like this to bring people together and stimulate conversation and ideas - which is exactly what it did.  Talks like this are inspirational and thought-provoking, but are really meant to start the conversation, not be the entire conversation.  So this is my brief addition to what Kieth started last night.

Before, I thought of creating a Lingo Bingo card for the talk as has been a fun trend (http://bingo.keynote.se/ ).  So I scanned headlines for a large group of tech Blogs for common themes.  You need 24 items for a complete Bingo card (middle is Free) so this is what I came up with:

Nanobots, Netbook/OLPC, WiFi/3G/WiMAX, Wii, RFID, ePaper, Twitter/Facebook, Mobile/iPhone/Android, Robots, Cloud/Grid/Mesh Computing, Vision/Camera, Electric Cars / Car Tech, "Hybrid", Home Servers, Google/Chrome, Hulu, Surface / Multi-touch, XBox Live, SSD, Netflix, 3D Entertainment, Electronic Marketplace, Green, Security/Privacy, GPS, SaS/SOA, Voice

 If you were at the event you know what was discussed, if not check out http://www.mlive.com/business/west-michigan/index.ssf/2009/02/cyborgs_robotic_pets_on_the_ho.html for the high-level overview and the predictions.

Keith's predictions that seem to have missed the mainstream ideas were the "New Energy Source" and the "Role of the Elderly".  The items from the "lingo list" that I was surprised missed the top 10 were anything Car/Automotive related, Home Servers, Green Tech, and 3D Entertainment.

Two main themes or ideas have stuck with me that I think are actionable and could lead to new products or even businesses.  They do not come out of any one of the trends but are rather a result of three or more all spun together.

The first is the market that will be created when a majority of peoples' personal computers are netbooks.  Software running on netbooks is of a different character than many traditional mainline applications.  First, it is not necessarily locally installed.  netbooks have very limited local storage, less memory and potentially a bit smaller screen than a desktop or full laptop computer. Also, there is not typically a CD/DVD drive to load software onto the device - software is loaded and run from the network/Internet.  That is, the software comes out of the Cloud, runs on the computer, and can then "go away".  Even data for the application can be stored in the Cloud.  In theory, I could use one netbook one day and run all of my applications off of it.  The next day I could run off of a completely different netbook (or computer or laptop) and the software and files would come out of the Cloud for me to use and run seamlessly.

So first, what will not run in this environment?  First, any big "bloatware" like Office 2007 where you need a big disk and a lot of memory just to write a Word document.  Plus a retail version is 100s of dollars and out of the reach of most people.  Cutting edge 3D games will not have the local power and speed to run in this environment.  Video-authoring and editing software will have issues with local storage and resources.  Anything that runs off of a CD/DVD, like most current Educational software.

What will be useful and popular on netbooks? First, web applications.  Google has a huge lead on this area and will benefit greatly from that.  From e-mail, to documents, to calendars, to news readers, Google has applications that will work today on netbooks.  Beyond this they have a way to make money from the applications through advertising and eCommerce solutions.

Beyond web applications is a layer of Rich Internet Applications (RIAs) which have traditionally run on Adobe Flash and are also now arriving via Adobe AIR for out-of-browser applications and via Silverlight for rich media and line-of-business applications.  A market for small and targeted applications is already here.  Stores like Apples iTunes App store or the new Dell Downloads service can enable authors of software to have a marketplace for their new portable applications.  These applications come right from the store, run on the device, and can "go away" just as quickly when their usefulness is done.  The ability for a company to quickly develop, test, and distribute small targeted applications will become a very valuable skill set.

Combining the netbook technologies with the reviving Educational Technology craze could open an even bigger market with built-in funding through economic stimulus funds and local taxation.  Imagine a "ruggedized" version of a netbook with built-in GPS tracking (don't want to have these get lost or "walk away").  A $300 ruggedized netbook could see the one-child per computer (OLPC) vision of many educationalists become a reality.  Some textbook providers will (and are) provide a digital equivalent of their current offerings.  But a market for niche software that extends and broadens the possible offerings for different students will be huge.  Imagine a modern physics lesson and simulator or Spanish language tutor or even a MindMapping solution.  Even if all an author got was $.99 per student, this could amount to millions of dollars very quickly (and would still be cheaper than textbooks cost now).

Once we have an education-optimized netbook it doesn't take long to consider a business-optimized or health-care optimized netbook/tablet.  These devices will have the same benefits and restrictions. This is all to say that people who start thinking now about developing solutions for the netbook platform will be in very good shape to respond to the exploding need.

Another theme that came out of the Tech Trends talk is the skills that will be needed in the near future and the impact robots/recorders will have on these skills.  But that is another post entirely.

Marie Catrib's Restaurant Review

by Admin 17. February 2009 03:15

For Valentine's Day this year, Laura wanted to have a lunchdate at someplace new.  After a littlesearching she found a place in East Grand Rapids called Marie Catrib's  - http://www.mariecatribs.com/. I checked it out online and figured out how to get there and we were off.

I can't begin to tell you how much we were impressed by theplace (didn't bring a camera - should have). First thing that really struck me was the "local" flavor ofthe place.  Not only is it locally ownedand operated (like to promote the local economy) but most of their ingredientscome from local farms within a "scooter trip" from therestaurant.  This means they use localfarms (and greenhouses in the winter) to get veggies, meat and cheeses.  They even name the farms and offer summertours so you can buy food for home from local places too.  The building itself was eco-friendly - likethe downtown YMCA and new Art Museum it is a LEED-certified building whichincludes a "live roof", passive solar, zero-rain-water shed,etc.  They have a wide variety of foodand offer a lot of vegetarian and even vegan options, but also have home-madesausage (which I had in my Baker's Omelet).

There were probably 4-5 groups ahead of us when we gotthere, so the wait was about 20-25 minutes. During this time they had a cool coffee bar (I had organic vanilla hazelnut)and they came by three times with cinnamon rolls and seasoned pita chips.  During the wait we looked over the Saturday menu(http://www.mariecatribs.com/images/uploads/891Brunch0508.pdf)and the amazing amount of take-home food they had ready-to-go (we took home somerice, hummus, and a monster cookie - all vegan, all good).

We are already planning a return visit - this time with thechildren (looked quite kid-friendly and good options for them).  I had never heard of the place before Lauramentioned it, but can't figure out how we missed it.

Outliers by Malcom Gladwell

by Admin 11. February 2009 08:59

I just got done reading Malcom Gladwell's "Outliers: The Story of Success" and I want to make this as little like a middle school book report as possible. So ...

For my ADD readers:

  • Recommended? Yes, Absolutely
  • Audience? Amazingly wide - not "geek"
    Surprising/Thoughtful?  Anyone who can reasonably link the success of The Beatles, Bill Gates, Hockey Pros, Oppenheimer and others while explaining Korean plane crashes, Asian math scores, and much more is quite talented and thought-provoking.
  • Style? Writes chapters almost like stand-alone stories - I love storytelling rather than just raw facts.  It really draws you in.
  • If you were really ADD you'd either be looking up the book on Amazon or on some other post by now.  How much does Amazon pay to be the top Google match on books?

For everyone else:

I do recommend this book for nearly everyone to read.  Agree with it or not, it will certainly make you think.  If you ever wonder why some people seem to "have it all" or "get a lucky break" or "are in the right place at the right time", then you will love this book.  It is hard to categorize as a book of non-fiction.  It could easily be a business book with many huge business success stories from early clothing peddlers, to lawyers to Bill Gates.  It could be a risk management book with stories of why ignoring one's culture can crash planes.  It could be an evaluation of the educational system and how it sometimes breeds success in spite of the structures in place that make being different very difficult.  It could be an inspirational or self-help book as it shows how high-IQs and Ivy League educations pale in comparison the culture and surrounding environment as factors for success.   One of the items that is reinforced several times is the 10,000 hours number of the time it really takes to be an expert or an outlier in a particular area - better start practicing.

A good book by a good author and storyteller - who also has a good TED talk that is worth viewing.  Check it out if any of this sounds interesting to you.  I actually "read" the audiobook version that the Kent District Library has several copies of.  One interesting note there is that Gladwell reads his own book, and his storytelling voice is actually quite good as well.  There is also an interview at the end that you will not get in the "dead trees" version of the book.

2009 Reading List – Already out of control

by Admin 14. January 2009 06:23

I don’t know how it happened that all of the books that I requested from the library, and pre-ordered from Amazon, all seemed to show up in the same 7 day period.  It doesn’t help that that was the same period of time I was at the CodeMash 2009 conference, and that only lead to more recommended reading. So I physically have all but one of the eleven books below in-hand, and six of them are due within three weeks back to the library.

My purpose for blogging this is to see if anyone else is considering (or already) reading any of these and might be interested in a dialogue or virtual “book club” of sorts this year.  It is always good to discuss new ideas, especially if they are kind of “heady”.  I want to be through this list before summer, and will write more detailed reviews of the best of them.  But if you are interested in “reading along” let me know.

Fiction

  • Ender in Exile – Orson Scott Card. I really loved Ender’s Game (1985) when I was younger and I am always a sucker for a new Ender book. Many/most/all? have been disappointing compared to the original, but I hold out hope for each new effort from OSC.  This book comes sequentially right after Ender’s Game and supposedly gives details and ties up some loose ends from the entire series.

Technical / Design

Faith / Motivational

Strategic / General

  • Outliers: The Story of Success – Malcom Gladwell.  I really wanted to read this book after watching the author’s TED video called “What can we learn from spaghetti sauce”.  I am actually listening to the audiobook of this now (well not right now, but you understand).  It is a book that looks for statistical “outliers” (people that operate well out of the norm (in good ways) than other people in their area – whether it be athletes, scholars, musicians, healthy people, business folks, etc.).  I am really blown away by some of the ideas and information already.  I will review in a week or so when I am done with it.
  • Five Minds for the Future – Howard Gardner. Just shipped from Amazon “©2009” (still in the mail) - from the man who brought us Multiple Intelligences, comes a book to help “delineate the kinds of mental abilities ("minds") that will be critical to success in a 21st century landscape of accelerating change and information overload.” The five minds are “disciplined”, “synthesizing”, “creating”, “respectful” and “ethical” – and I have no idea what to expect beyond that.
  • Made to Stick: Why Some Ideas Survive and Others Die – Chip and Dan Heath. A book related to Gladwell’s previous book called The Tipping Point, it is a study of “memory, emotion, and motivation” to see why some ideas, phrases, products or ideas are very memorable, and why others “go in one ear and out the other”.
  • The Black Swan: The Impact of the Highly Improbable – Nassim Nicholas Teleb. This book flowed out of a discussion on planning and prediction of projects and technology and realizing that so much of what happens in projects (and life) is completely unpredictable.
  • Selling Blue Elephants: How to make great products that people want BEFORE they even know they want them – Howard R. Moskowitz and Alex Gofman.  This book details Moskowitz’s concept of Rule Developing Experimentation (RDE) which lead to the “spaghetti” example in Gladwell’s TED Video.  Basically, how to help people find out what they really want even if they don’t know what they really want.  Wild ideas.

Tags:

What is CodeMash?

by Admin 6. January 2009 00:31

I get regularly chided by some friends on Twitter and Facebook when my updates and messages seem to include things that are quite foreign to many people – and in reviewing a few of the more egregious posts, they are absolutely correct.  So, to head off what will be a small barrage of posts the rest of the week, I wanted to put a quick post together on the CodeMash conference that I’ll be attending Wednesday through Friday.

What is CodeMash?  It is a regional/local conference (Sandusky, Ohio) for software developers (i.e. the “Code” in CodeMash).  But is is quite different in that it offers, allows, and even encourages programmers of all different “flavors” (e.g. Microsoft (.NET), Java, Ruby, PHP, iPhone, etc.) to present – this is the “Mash” or mashup.  A “mashup” is typically an application that takes functionality from different sources and puts them together in new and exciting ways – even if the different pieces were never really designed to work together.  So this, in my opinion, is the genius of this conference – you can have a main focus on one set of technologies (and my “bread and butter” is Microsoft) but still get a great taste and experience of what the rest of the industry has to offer, and come out better because of it.

January has many different conferences and meet-ups like the Consumer Electronics Show (CES) with all the new gadgets for the year, MacWorld with typically new computers, iPods, software, and even the Detroit Auto Show with all the new cars (we need some real excitement there).  But if I could be at any of them in January I would pick something like CodeMash because is the one that really only works well when attended in person.  I can read the press releases from CES and MacWorld and get 90+% of the information that I need. CodeMash is about learning from others, interacting with others, and really following the personal flow of what is important and interesting to an individual. 

There is also the opportunity to attend and even present in the Open Spaces area of the conference.  This is where impromptu presentations and discussions happen around topics that are of interest to the people that are there at the moment, and the content and timing of these sessions can not be predicted in advance.  It is a weird idea if someone is used to just being a “consumer” at a conference, but when you start to see the conference as “collaboration” and “community” then you really start to be fully a part of the group.

Finally, there is the whole “Twitter Tribe” and “Facebook Folks” aspect of the conference.  That is, there are some people that I’ve met only briefly (or never met in person at all) but follow and lightly interact with online. CodeMash is a chance to really put faces together with people and have the richer personal interaction that builds relationships with other people who share the same “craft” and many of the same interests.

So if I stray into “geek speak” over the next few days oblige me a little bit and I can explain more when I get back and see you face to face.

2008 Retrospective

by Admin 2. January 2009 03:08

I wanted to write a 2008 post for a couple of reasons: 1) for “historical” reasons to look back on later, and 2) to let new (and old) people who actually read this blog know a little bit more about me.  So without further ado….

2008 Milestones

  • Space Shuttle Launch at Kennedy Space Center – Saw a live launch of something that actually left Earth.  It’s been a life-long dream and was well worth it.
  • Two new puppies – Kirby and Bella, our little 2-3lb Yorkie-poos.  Bella is sitting at my feet even while writing this.  Very loyal, but tiny.
  • Laura’s ankle-fusion surgery – after years of pain from bone-on-bone rubbing in her feet and ankle, we decided to have the surgery this summer.  Months of no weight-bearing and still in recovery, but should lead to many more options for us this next summer.

Favorite New Gadget - Remote Car Starter

  • Probably the least “hi-tech” of any new technology, but this winter it has really been awesome.   A “must-have” gadget, to me, is one you really didn’t know much about, then you got it, used it, and now can’t figure out what you would do without it.  This definitely fits here.
  • Runner Up - iPod Touch – also a birthday present, and probably the gadget with the most potential.  I’m going to learn a bit about how to program software for the iPhone and Touch next week, and really like the device (far beyond music and videos).
  • Runner Up - Craftsman Snowblower – an early Christmas present saved us from 50+ inches of snow in December, and made it easy enough to help others on our street and help move cars that were stuck in the snow.
  • Runner Up - Wii / Wii-Fit – Really an amazing achievement from both a technical and programming standpoint – you really have to see it or try it to understand.
  • Runner Up - HP Tablet PC – small (12”) portable machine that’s been with me to work, robotics, quizzing, church and really anywhere I’ve needed something.  Looking at the possibility of getting “netbooks” for the kids this year.

Favorite New Technology - Silverlight 2.0

  • I have to pick Silverlight because I’ve been programming in it non-stop for the last 7-8 months.  In short, Silverlight is an environment for programming really interactive applications that can be contained in web pages (much like Flash or Java Applets).  The advantages of Silverlight are technical and would require another post, but I really believe that it will make a big impact on how web and mobile applications are written going forward.
  • Runner Up - ASP.NET MVC – better way to write web applications.
  • Runner Up – Twitter/Facebook – got to meet and interact with several hundred new and long-time friends on an informal basis and keep track of all that is going on with them.  Great way to keep track of people so you can really catch up quickly when you see each other face-to-face.
  • Runner Up – iPhone apps and web apps – I really want to be able to program for people that are “not at their computer” and iPhone and Touch applications may be a very important way of doing so.

Best Movie - WALL-E

  • So I don’t get out much to watch movies – five or less all year (see more on DVD, but not that many more).  I really liked WALL-E for a number of reasons.  A robot “star” (love robot stuff), amazingly limited dialog (movie “says” so much just through “body language”, context and situations.  And the movie actually had some pretty “deep” things to say about relationships, personal responsibility, consumerism, and appropriate use of technology.

Best New Activity - Family Swim Night at the YMCA

  • We’ve been going swimming as a family on Friday nights and Sunday afternoon since Laura started her rehab after surgery.  This has been great as a family activity and for getting some good activity during the winter months.  The YMCA had a promotion where we could start up again at no charge (we’d been members a while ago), so it was a deal we couldn’t pass up.
  • Runner Up - Bots on the Rock -  We wanted to get an informal group going who liked creating, inventing, programming and playing with LEGO robots, so we started a group with some friends to do just that.  We’ve been going for a year now and have even more plans going forward.  Fun and learning all in one.

Most Interesting Book - The Shack

  • Unfortunately I read for pleasure lately even less that I see movies, but I did squeeze in a couple books this year (and have a booklist already started for 2009 to remedy this issue). The Shack was a book that I missed in the “first pass” and heard a lot of people talking about at church, work and on Twitter/Facebook. And when I say people talking is was really a lot more like debating or dialoguing about the book and everyone seemed to have an opinion or idea about it.  So much so that folks wanted to get together and discuss it.  So I picked it up and read it and had a similar response.  In short it is a fictional account of a man who has had some significant loss and tragedy in his life, who through a series of events has an experience, dream, vision, or something where he ends up having a dialog with characters who represent God, Jesus and the Holy Spirit.  Sound strange?  It is.  Worth reading and discussing? It was.
  • Runner Up - The AppealI do like John Grisham, and my mom and grandma both recommended reading it.  It is another book that evokes an emotional response – mostly anger that this is really probably the way things happen in “real life”.
  • Sad note on the book front, we lost Michael Crichton this year – one of my favorite authors growing up.  I’ve read his books like: Andromeda Strain, The Great Train Robbery, Congo, Sphere, Jurassic Park, Disclosure, State of Fear and at least 5 more less popular titles.  He had a great imagination and perspective on technology and issues surrounding technology, and great suspense and action.  He will be missed.

Biggest Bummer - Michigan Economy

  • The down economy seems to have impacted every part of our lives.  From friends losing their jobs, to houses losing value and not selling, to retirement plans dissolving, travel plans changing, and just a general gloomy feeling.  We’ve all adapted and changed and perhaps grown closer because of it.  But a positive change in 2009 would be very helpful.
  • Runner Up - Seeming demise of the Grand Rapids / West Michigan User Group – This is related to the economy as well as many programming jobs have gone away, and many companies don’t have discretionary money to donate to such causes.  So individuals stop attending and can’t support the group and companies stop supporting the group.  Even the leadership of the group is impacted.  Hopefully the new year and new jobs will encourage people to get interested and involved again.  I’ve seen these things go in cycles and soon the should be a void that the group can fill again.
  • Runner Up - Car died – enough said.
  • Runner Up - Detroit Lions – too much has already been said.

I am sure I missed something major or noteworthy in 2008 that failed my mental recall attempt this morning, so I’ll update this post as needed.  E-mail me (bruce@abernethy.com) if you think of something.  Blog comments are “unworking” – yes a blog software update is high on the list for 2009.

What would make a good/great Netbook?

by Admin 24. December 2008 05:26

 PowerBook 100I’ve been hoping and watching for a great portable computer that would be ideal for students (and others) for many years – at least since we tested some PowerBook 100s with teachers in 1991 (only to have some returned to us as almost “unusable” – imagine giving back technology to someone, it was a pretty “underwhelming”).  The PowerBook 170 was much better but cost $5,000 each (in 1991 money) and only lasted a year in production as well.

Come forward 16 years and there is the ambitious “One Laptop per Child” vision of Nicholas Negroponte that brings some of the best minds together to figure out how to build a cheap and rugged laptop to enable students world-wide to gain access to a wealth of information and functionality.  olpcBut this vision misses on several important points, but creates a wonderful market for smaller form factor and lesser functionality devices for students and really anybody that is mobile and wants to stay connected and productive.

In 2009 I would really like to buy 3 Netbooks (one for each of my children) to use daily as part of their educational (and other) pursuits.  This is a non-trivial purchase so I am considering it very carefully.  The market for Netbooks is coming together quickly, though there is even a new challenge this week over whether the term “netbook” is trademarked.  But the issue for this post is a recap of what I would really like to see in a Netbook, and why.

 

The first few things would be related to the “Net” part of “Netbook”

  • The device should be able to operate when not connected to the Internet, but should achieve full potential and functionality when connected to a network.  There should be options for achieving this connectivity including network cable, Wi-Fi, and mobile networks (3G, EDGE, WiMAX, etc.).  For the later, the ability to integrate the connectivity within the main case is ideal (don’t want a “dongle” for each type of connectivity).
  • Bluetooth – not required.  If it is “on the chip” with the other wireless features, then go for it.  But if it adds even $20 to the cost (and/or measurably reduces battery life) then leave it out.
  • Needs to run OS-independent software from “the cloud”.  I don’t care if the Netbook itself runs XP, OSX, Vista, Ubuntu, Android, etc. as its base OS, as long as there is a platform that software can be developed on to run across devices.  This could be Flash/Flex, Silverlight, JavaFX, AIR, etc.  The ability to develop, market, and sell/distribute apps to the different Netbooks is really important.
  • An optical drive should not be required, but could be connected as an external USB/eSATA device.  Installing “full-blown” applications from a CD/DVD should be possible, but limited.  Limiting local storage should be a goal to enable apps running from the “cloud” and saving data back to the network as well.
  • Basic CPU – no quad-core x64 3D gaming rig here.  A nice low-power CPU, optimized for wireless applications would be nice.  Atom processors are the rage right now but VIA and AMD have processors that would work too.

 

The next few things would be related to the “Book” part of “Netbook”

  • First, it should be roughly the size of a book – could be a hardcover, paperback or in between.  This puts it somewhere between an iPhone and a traditional laptop computer.  A target would be 8-10” screen size.  It seems that some are now at the WSVGA screen size (1024x600), better than SVGA (800x600) but full XGA would be nicer (1024x768) (see cost discussion later).
  • It should provide many of the same functions of a book (reading, reference, easy access to information).
  • It should be “dockable” to use a larger display (keyboard, mouse, etc.) if available at a desk or lab.
  • Fairly ruggedized and should not weigh very much (think carry in backpacks) – 2 pounds would be ideal.  This device will share backpack space with other books, be banged around a bit, and will inevitably be dropped or otherwise abused. Netbooks that are engineered well in this area (e.g. rubber, plastics, where appropriate, SSD drives instead of spinning media, etc.) will have a definite upper-hand.

 

Finally things that really have nothing to do with “Net” or “Book” but are things I think of being part of this device.

  • Webcam and microphone input – I really think that multi-media and multi-modal input for so many things is really important that I hesitate to leave this for just those that add external devices.
  • Basic speakers – nothing special.  Headphone jack.
  • Touch/Tablet screen – torn on this one.  There is a lot going on with multi-touch on the iPhone and Windows 7, but nothing really “proven” yet.  I think the expense that this would add would not be worth the money
  • Battery life – probably the biggest hurdle Netbooks face.  Ideally it would last a full work/school day, say 6 hours of use.  Ideally the device could “sleep/hibernate” easily and have it easy to swap in a fully charged battery.  Kind of like batteries for cordless drills and other tools – yes the Netbook is a tool.
  • Now that we are talking money.  The device should be $400 +/-$100.  Under $300 would probably be made so cheaply that it would violate the “ruggedness” need or some of the features.  More than $500 and it is getting too expensive.  I know this is a tight margin for prices.

 

I’ll update this post if/when I decide to commit on which ones to buy.  I’d appreciate any feedback or ideas that others have in this area as well.

Update 1: Added some details, fixed some weird formatting

Another reason I love Woot.

by Admin 4. December 2008 23:35

You may or may not know about the www.woot.com site where they sell one item per day until it is gone at really good prices.  That’s cool, and there are great deals, but they also have a sense of humor which is lacking in most retail situations.  The latest example of this is a status note I got yesterday on a product that was a few weeks late in shipping.  I don’t know if any of it is true, but it is kind of funny, and the order did ship a few hours later …

Dear Bruce,

Our records indicate you purchased the Star Wars Vault 30 years of Treasures item from us on Nov. 21. To better secure the collectible inside the box, we are taking extra precaution. The packaging has under gone several drop tests and throws to make sure that these will hold up during transit with FedEx.


We apologize for the delay and your patience. Tomorrow you will be receiving the tracking email.


Woot Member Services

 

Keeping the internet a little less serious – nice.  Hope the wrong person doesn’t read this post before Christmas … hmm.

Tags:

ImplicitStyleManager – Hidden Gem in the Silverlight Toolkit November 2008

by Admin 28. October 2008 08:05

Sure the AutoCompleteBox, Expander, TreeView, Charts, etc. from the new Silverlight Toolkit (http://www.codeplex.com/Silverlight ) are cool – and will make some Silverlight apps look even better.  But the ImplicitStyleManager (and related Theme classes) will now allow designers to encapsulate their design work into an assembly and xaml resource dictionary, and easily apply the theme to an entire page (or part of a page).

On the surface this is “duh” you could do that before – but not so.  You had to “touch” every control and add a Style and/or Template to it and have that StaticResource appear in a generic.xaml or App.xaml somewhere in your app.  Now you should be able to “style-up” and entire Page/App in a few declarative steps.

This means that there could be a market for professional looking themes for Silverlight apps that developers could apply for a really polished look in their applications.  It also means that custom themes can be created for a company or project that can be easily and consistently applied to many different controls and/or applications.

I am eager to try this out on a larger scale in the next week or so – will report back.

Check it out (with some nifty pre-packaged themes for your use) at http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%203&referringTitle=Home&ANCHOR#ImplicitStyleManager

Tags:

Development

MVC Beta – Non-GAC implementation

by Admin 22. October 2008 00:21

Another “geek post”, sorry.

We’ve been updating some of our MVC apps to the beta and were relying on the non-GAC implementation of MVC (i.e. we didn’t want to have to physically install the MVC .dlls on the shared dev and live servers – we’ll do this for RTW but not the betas).

However, even when we copied the DLLs locally and referenced those .dlls we were still getting a “yellow screen” error that the assemblies could not be found.

It turns out that there is a little-known property on the References themselves that is needed to accomplish the task of copying and referencing these .DLLs.  Select one of the References to the .dlls (say System.Web.Routing) and look at the properties.  You must set the “Copy Local” property to “True” in order to reference the local copy.

Took a little while to find this – hope to save others a little time.

Tags:

Development

World Animal Day – boston.com

by Admin 19. October 2008 08:41

This was such an amazing and surprising picture – Narwhals in Arctic Bay, Canada - that I had to share it.  I honestly didn’t know if it was real or not and that made me feel a little stupid.  Many of the rest of the pictures in this article are also awe inspiring.

http://www.boston.com/bigpicture/2008/10/world_animal_day.html

boston_narwhals

Tags:

Silverlight IRL #2 – Fast Data Access w/ NHibernate

by Admin 18. October 2008 11:54

This wasn’t specifically Silverlight-related, but you really can’t have much of a Silverlight application without some kind of data access.  We chose WCF services and built up some quick models with NHibernate, in 5 easy steps

I’ll use the example of the “Flashcard” object in the quizzing application which had a front, back, competition information, etc.

Step 1) Interfaces

For the Flashcard object first we built the interfaces that would define the main data parts of the object, both on the model side and on the Silverlight side.

   1:  namespace TBC.Interfaces
   2:  {
   3:      public interface IFlashcard
   4:      {
   5:          int PKID { get; set; }
   6:          int? TBCCompetition { get; set; }
   7:          int? TBCYear { get; set; }
   8:          int? KBCCompetition { get; set; }
   9:          int? KBCYear { get; set; }
  10:          string Front { get; set; }
  11:          string Back { get; set; }
  12:          int? DeckID { get; set; }
  13:          IQuestionType QuizQuestionType { get; set; }
  14:      }
  15:  }

A pretty simple object by most standards – a primary key, competition information, strings for the front of the card and back of the card, a “deck id” to allow for multiple flashcard decks to be prepared, and an IQuestionType.  This is the only custom type and interface in this object. The question type is a complex object that is basically like “multiple choice question”, “fill in the blank question”, etc.

Step 2) Build the Objects

Nothing fancy here either – just implement the interface into an object, but with a little twist.

   1:  using System.Runtime.Serialization;
   2:  using TBC.Interfaces;
   3:   
   4:  namespace TBC.Models
   5:  {
   6:      [DataContract]
   7:      public class FlashcardEntity : IFlashcard
   8:      {
   9:          [DataMember]
  10:          public QuestionTypeEntity QuizQuestionType { get; set; }
  11:   
  12:          #region IFlashcard Members
  13:          [DataMember]
  14:          public int PKID { get; set; }
  15:          [DataMember]
  16:          public int? TBCCompetition { get; set; }
  17:          [DataMember]
  18:          public int? TBCYear { get; set; }
  19:          [DataMember]
  20:          public int? KBCCompetition { get; set; }
  21:          [DataMember]
  22:          public int? KBCYear { get; set; }
  23:          [DataMember]
  24:          public string Front { get; set; }
  25:          [DataMember]
  26:          public string Back { get; set; }
  27:          [DataMember]
  28:          public int? DeckID { get; set; }
  29:   
  30:          IQuestionType IFlashcard.QuizQuestionType
  31:          {
  32:              get { return QuizQuestionType; }
  33:              set { QuizQuestionType = (QuestionTypeEntity) value; }
  34:          }
  35:   
  36:          #endregion
  37:      }
  38:  }

 

Nothing different here, except maybe the [DataContract] and [DataMember] tags. These are added via the System.Runtime.Serialization namespace and will be used to enable the WCF services to expose these objects to Silverlight.

So now we have an object with an interface that is ready to be served up by our WCF service.  Now all we need is to get it in and out of the database.  This leads us to NHibernate 2.0 and the Fluent NHibernate library, whcih leads to …

Step 3) The NHibernate Mapping File

Here is the basic mapping file for this object – and yes it is just another class.  It is important to recognize that it is completely separate from the object itself.

   1:  using FluentNHibernate.Mapping;
   2:   
   3:  namespace TBC.Models.Flashcard
   4:  {
   5:      public class FlashcardMap : ClassMap<FlashcardEntity>
   6:      {
   7:          public FlashcardMap()
   8:          {
   9:              TableName = "quiz_flashcards";
  10:              Id(f => f.PKID);
  11:              Map(f => f.TBCCompetition);
  12:              Map(f => f.TBCYear);
  13:              Map(f => f.KBCCompetition);
  14:              Map(f => f.KBCYear);
  15:              Map(f => f.Front);
  16:              Map(f => f.Back);
  17:              Map(f => f.DeckID);
  18:              References(f => f.QuizQuestionType);
  19:          }
  20:      }

 

This is a little confusing at first, but if you go through it step-by-step then you can understand what it does, even if not how it is actually implemented.  It is a brand new class inheriting from ClassMap<T> and we pass in the FlashcardEntity as the generic type.  Then, in the constructor, we simply define which table in the database contains the Flashcard data, and which element is the primary key.  Since we named the columns in the database the same as the property names we don’t need to use the overload with the column names.  Because of that all we need to do is to add all the Mappings with a simple lambda expression.  The References call is cool.  It “says” that “there is a column called QuizQuestionTypeID that references a single QuizQuestionType object, please go get it for me.”

Step 4) Initialize the Connection and Mapping.

So how do we initialize the connection and mappings we’ve defined?  Once they are all entered and mapped we do this …

   1:      IPersistenceConfigurer persistenceConfigurer =
   2:          MsSqlConfiguration
   3:              .MsSql2000
   4:              .ConnectionString.Is(MainController.GetInstance().Settings.ConnectionString);
   5:   
   6:      _cfg = persistenceConfigurer.ConfigureProperties(new Configuration());
   7:   
   8:      var persistenceModel = new PersistenceModel();
   9:      persistenceModel.Conventions.GetForeignKeyName = (prop => prop.Name + "ID");
  10:      persistenceModel.Conventions.GetForeignKeyNameOfParent = (prop => prop.Name + "ID");
  11:      persistenceModel.addMappingsFromAssembly(Assembly.Load("TBC.Models"));
  12:      persistenceModel.Configure(_cfg);

These are more Fluent NHibernate calls that handle implementing the configuration of NHibernate.  Yes this can all be done with configuration files, but now it can be done in code as well – fairly easily.

Step 5) The basic CRUD code

So now that this is all done, what would the code look like to get all the Flashcards from the database …

   1:  public List<T> GetAll<T>()
   2:  {
   3:        ISession session = NHSessionHelper.GetInstance().GetNewSession();
   4:        List<T> e = default(List<T>);
   5:        e = new List<T>(session.CreateCriteria(typeof (T)).List<T>());
   6:        session.Close();
   7:        return e;
   8:  }

or maybe just get one of the cards by ID and Save/Update …

   1:  public T GetByID<T>(object id)
   2:  {
   3:      ISession session = NHSessionHelper.GetInstance().GetNewSession();
   4:      T e = default(T);
   5:      e = session.Load<T>(id);
   6:      session.Close();
   7:      return e;
   8:  }
   9:   
  10:  public T SaveOrUpdate<T>(T saveEntity)
  11:  {
  12:      ITransaction transaction;
  13:      ISession session = NHSessionHelper.GetInstance().GetNewSession(out transaction);
  14:      session.SaveOrUpdate(saveEntity);
  15:      transaction.Commit();
  16:      session.Close();
  17:      return saveEntity;
  18:  }

Even with the error handling removed for brevity, this is pretty simple code.  In fact, you will notice that there is no mention in any of these methods of the FlashcardEntity classes.  This is because these generic methods can be used for any object that is created and mapped in this way.

Looking back at this there is really only 30 lines of code for the objects (interface, object, and mapping) and the rest of this code is reusable for all objects in the solution.  While these 30 lines could be easily generated, it is a nice number of lines of code to continue crafting code “by hand” and knowing as much as possible about what is going on in your objects.

It is also important to keep your objects “thin” when doing a lot of serialization and deserialization – more on that in post #3.

Tags:

Silverlight IRL - Requests

by Admin 15. October 2008 23:00

This is the first in a series of posts that I promised to do after my presentation to the User Group on Tuesday.  These will be details, link and some sample code.  I am in the process of making sure my code samples are functional under the release version of Silverlight 2.0 RTW - this should be done by Monday (getting the paying/work projects moved over first, and it is going really well).

Since the Microsoft Professional Developers Conference is getting underway in about 10 days, and Silverlight released well in advance of that, I figured it would be a good time to get some requests in for the next version(s) of Silverlight.  To put this in context for those not in attendance, most of the work I've been doing in Silverlight is in the health care and medical fields, with a side project of some Bible quiz games, a jukebox and flashcards.

#1) Microphone and WebCam Support: Doctors don't like to type, and while this is a generalization, dictation services are still doing very well in the market.  To support "digital dictation" I really need an ability to record and transfer digital audio files from Silverlight down to the server.  Add in web cam support as well and the kids can upload an avatar picture to personalize their account a bit as well.

#2) Cross-device as well as cross-browser: several of the doctors and company owners that we deal with regularly are proud iPhone owners.  Kids have their iPods, Zunes, and XBOXes.  Doctors are moving to pen-based tablet-based devices (sometimes PCs, sometimes not) to carry from room to room.  Less and less people are sitting down at a computer to do their work or entertainment.  We need to be able to target portable devices and game consoles with Silverlight applications.

#3) Full keyboard support for full-screen applications: Come on! Do you really have to disable all but a handful of "popular gaming keys" when the application goes to full-screen mode.  Isn't there another way to keep people "safe" from deceptive Silverlight apps?  This takes away the ability for data-entry and full-screen apps for educational purposes.

#4) Improve the tools and error messages: This is evolutionary, but to develop now you really need both Blend and Visual Studio 2008 (neither has critical features of the other (e.g. Intellisense, template support)).  And some of the error messages are so cryptic, and can mean so many different things, that they mine as well just be "Syntax Error"  (actually that is even more useful in some cases).  I am sure these are things that will come with time, but they do point to an immature system.

#5) More native controls: But I hear that there may be announcements to this effect even in the next few weeks.  The native (i.e. available in the plug-in or Microsoft-supplied .dll) controls for Silverlight have gone from literally nothing (i.e. make your own textbox) up to a respectable starter set of common controls (better than ASP.NET at launch).  But I always want more.  Some of my top requests (e.g. autocomplete, tree, expander, etc.) have already been announced as controls to be released  coming weeks.  These will allow for some really great user experiences without a lot of expensive and lengthy time being spent on low-level user-interface work.

[Updated - forgot one] #6) Offline and/or out-of-browser execution: This goes away from the traditional use of a "browser plug-in", but it would be great if the Silverlight code could be used while offline (yes there are places without wireless connectivity).  Also, the ability to (optionally) "install" the application so it can run in its own window with a shortcut, icon, etc. would be really useful- ala Chrome application settings and Adobe AIR.  I guess you could get this functionality today by using Chrome to view the Silverlight page and saving it as an application with settings, but it would be best if Silverlight could do this natively without a particular browser.

More coming soon, and I'll post the PowerPoint stack as well - here is a link to the pptPlex site with downloads for those who were interested in trying out that cool PowerPoint plug-in.

Tags:

Someone had to do it!

by Admin 9. October 2008 07:01

Tags:

General

Reason #458 People Don&rsquo;t Like Computers

by Admin 16. September 2008 02:17

After a really busy summer I am making an effort to get back into a routine which includes posting about some interesting things going on personally, professionally, and otherwise.

 

I thought a “soft-launch” back into it would be sharing one of my pet-peeves of the day.

 

search_results_oops

 

The “insult to injury” here is the “Did you find what you wanted?” phrase – because apparently the little doggy did find a lot of things I probably wanted to see, but refused to show them to me.

 

From a Test-Driven Development perspective wouldn’t you do a simple count of the items on the right and match to the “found” number on the left?

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2009 Bruce's Blog