I've had this desire for some time now to see an entirely new kind of phone/PDA/media player. It hasn't come out yet, and I don't think that I'll get around to making it myself, so I'll just lay it out here.
I'm tired of the ridiculous array of communication devices. I'm tired of obsolescence, crippled features, locked-down networks, and constant compromise. I want a device that does less, and by virtue of that, does more. Huh?
The thing is, many people carry their phones in their pockets and walk around with headsets on. What if we further decoupled it all. What are the main components of a modern phone? Radio, display, key input, and audio. Of course many have cameras and other gizmos, but these are the basics. When you shop for a phone you need to balance one set of features against another, and almost never do you get the ideal set. I would really like to see a new generation of phones that splits up these components to their most basic level.
Radio - A cell phone radio and battery without display, keyboard, etc. could be even smaller than phones are today. Without the bright color display, less power could be used. This could enable very small "cores" that fit in a pocket or clip to a belt less conspicuously. How do you interact with this core? Using the same Bluetooth technology used today.
Display - This is where it really becomes fun. Once the display is separated from the radio device, you can really be creative. How about a flexible e-ink display built into a wrist cuff? A fob hanging from your neck? A soft display on your PDA or laptop? A small LCD embedded in goggles? It could be as big or as small as you wanted. I haven't seen anyone abstract the display like this yet, and I just can't imagine why not. It's not like we're talking about high-resolution. Even better if the display data is sent using data structures and events. Each device could do whatever it wanted with it. Similar to how hands-free devices work today for taking/placing calls, you could browse your contacts, photos, etc. through a Flash, Silverlight, HTML, or any other custom application.
Input - There would be plenty of options here too. Perhaps the display device is a touch screen, or has buttons along the side. Perhaps speech recognition replaces key input completely. Maybe a soft display (PDA/laptop) just has a nice standard-looking point-and-click UI to interact with it along with your full-size QWERTY keyboard. Maybe haptic or gyroscopic sensors in your gloves work with flexing or gestures. Whatever you want.
Audio - Clearly the easiest aspect of it is the audio. We already use Bluetooth for mono/stereo playback and capture. This wouldn't need to change, though I think that stereo needs to be standard.
Innovation like this would lead to crazy phone combinations, which would be very cool for customers, but it also provides a great incentive to the marketplace. Instead of companies burning lots of money on incompatible phones for incompatible networks, they could create radio modules for GPRS, CDMA, whatever, then it would be a world of accessories. Every type of display and input device imaginable. New digital cameras would likely add Bluetooth as standard so you could pair them and seamlessly send regular digital photos (not crappy fixed lens ones) through your phone. Your laptop/PDA could use the modem capabilities for online access (I know -- that's possible now but largely unsupported). New types of screen technology would continue to push the barrier so people would still waste money on the upgrade game! At least though, the core technology would be less likely to change.
This vision seems very straight-forward so I don't understand why it's not already out there. We have phones converging into media players, PDA's, cameras, and web browsers. The component way of doing it would enable people to create the perfect fit for them. For those looking to go cheap, they probably could (and knock-off brand low-cost components would help with that), but the type of people that upgrade their phone with the latest fashions would continue to. It seems like a win-win situation.
What do you think? Would you buy an ArianPhone?
I was just going through Skype settings today and I noticed this little gem:
This was the setting for choosing Skype or IRC style messages in the chat window. Usually they show cute little chat tidbits like "what time is the party tonight" or "did you get that proposal done yet." This one really made me stop and think. Or maybe didn't really. I just don't know anymore... :-)
(Yes, it's from 1984. Still funny though!)
I’ve got a new system setup now. From the title you’ve probably figured out what it is! I bought the Shuttle KPC barebones motherboard (only $99!!). I also got the 650GB SATA drive from Newegg. I already had 2GB of memory from my main desktop, and the processor was only another $40. It runs like a champ and I now have four machines backed up nightly (I’ve never been able to say that before!) and all of my network files on a server-class OS.
Installation was a snap. It’s obviously Windows Small Business Server 2003 under the hood so it benefits from all of that reliability and security. You can remote desktop (RDP) into it, but once you have the client connector installed on each machine the better way to administer it (for most purposes) is using the Windows Home Server Console. This is really a special remote desktop session (it can be active even if an RDP session is going on). It shows at-a-glance screens of machines, users, shares, and disks. Where Windows Home Server really shines though is its add-in architecture.
Like I said, the Console is great for most purposes. There are quite a few things that you can do to Windows Server that aren’t available here, but many of things will lead you into trouble if you aren’t a server expert. If there are other things that you need to do that aren’t available in the console you can download or create an add-in. The add-in API allows you to create snap-in apps that run alongside the other server screens. I’m currently using add-ins for extended disk information, WebGuide, and Firefly media server. The Disk Management add-in works well to see SMART status and more details than the simple color-based health in the standard screen. The WebGuide add-in is wonderful and it creates a better experience for browsing media on the server from inside or outside of the network. The Firefly media server is supposed to expose your music to iTunes, but it only recognizes 57 of my 3000 songs. Not terribly useful yet, but it’s still in beta.
If you need to get your home network in better shape I definitely recommend WHS. It takes a lot of things that are available in one form or another and makes a very nice package tying it all together. Once a few more add-ins are released I’ll be even happier, but maybe I’ll even end up writing a few of my own!
Let me know if you know of any good add-ins or tips and tricks that others would benefit from…
I got an email yesterday from Microsoft letting me know that I’ve been awarded MVP status for Visual C#! I was nominated, but honestly I didn’t hold out much hope that I would get it. There are many people much more active in the community than I am. I’ve done some fun things, but not enough to expect this. So I’m very happy! There are some cool perks, but the best part is being a part of the greater MVP community. These are people who have done some very great things and to be part of that group is the greatest honor.
From time to time I get emails from people looking for ideas for projects. Often they are from students needing a project, but other times it’s just someone looking to try their hand at coding and want something to start with. Sorry to say this, but good ideas don’t just grow on trees! You wouldn’t email Stephen King and ask for a story idea would you? Obviously it’s not exactly the same, but coming up with ideas is a big deal.
Most great projects don’t come out of someone sitting around brainstorming about something to write! There’s a need to fill, so someone with the right skill set, creativity, and time digs in and loses much sleep implementing it. In the end, the project is judged based on the usefulness of the idea, and obviously the skill of the implementation.
I see the problem though. When a professor gives you an assignment to create something original, it’s a pretty tall order. What hasn’t been done yet? It seems like there is little room for innovation in the field of software. On the other hand, though you may not be able to come up with a truly original concept, it’s the implementation where you can shine. If you can come up with a fully functional word processor in 50kB, you’ll probably get an A! Innovation these days comes from two areas: new approaches to existing ideas, and hybrid presentation (mashups). Facebook was just taking a student directory and putting it online. Original? Not really, but it broke the mold for a web application. Mashups are seen everywhere now. Viewing a map of a business used to mean a static image on a web site or a link to MapQuest. Nowadays, you can embed Virtual Earth or Google Maps right in the page, even showing store locations and photos without writing much custom code of your own. It’s not really new, but combining these things together was revolutionary!
The best way to come up with ideas is to always be looking for them. If you are really serious about computers, you probably spend a lot of time in front of them. What bugs you? What could be done better? What’s in your room/dorm that isn’t represented on the computer? Take notes of these annoyances and brainstorms, so when you get that assignment you already have a few things to try. If you don’t have any ideas, you could spend half of your allotted time to coming up with the idea. That’s time wasted that you could be programming!
While I won’t leave you with any actionable ideas, here are some places to look that might inspire someone:
- Converting a real-world game to a computer game
- A fun idea for a screensaver
- Using web services to interact with some shopping sites
- Cataloging a collection of some items (bonus points for using shopping site API’s)
- Using open-source imaging libraries and being creative with a webcam/scanner
- Analyzing files and generating some kind of report(s)
Another fertile area is plugins:
- Windows Live Writer (lots of things here!)
- Vista Sidebar
- Firefox
- An uploader for Google’s Picasa
- Wordpress (blogging engine)
- Microsoft Office (somewhat advanced)
Good luck!
I'm always into gadgets and just thought I'd share two new things I picked up recently. I nabbed a mini-USB Bluetooth adapter from eBay for around $12 and it is just the coolest (like this one)! It fits into the slot and only sticks out a half-inch or so. Unfortunately, my stupid laptop (I hate it, I hate it) is very flaky with USB and keeps thinking that USB devices are being removed and re-inserted, but this device's size helps since it gets bumped less.
The other device that I'm loving is my new PC Card smart card reader that was about $15 on eBay (cheaper version of this one). I had a full-size USB reader before with a several foot cord. This one completely hides in the card slot, and when my smart card is inserted it only comes out about two inches. Without the card I don't even see it.
The best part with both devices is that I don't need to remove them when I throw the laptop into its bag for a trip. I don't need to carry devices around and insert/remove them all the time. I'm so likely to forget things, so this is a great improvement for me!
How can this be so difficult? In Windows Forms applications, you just call Application.Restart() and your app goes away and restarts. What could be easier! In WPF, not only is the Restart method removed from the Application object, apparently the feature is just completely unsupported. Forum responses from Microsoft suggest disassembling the BCL code to see how the Application implements it, but the poster points out that it's non-trivial, and even at that it's not correct. Not that I ever noticed before, but the command line arguments don't get passed into the restarted process. How wild is that! Another message suggests creating a second application. Call Process.Start() on it, exit, and the second application would then restart the first. That's certainly a pretty simple solution, but it seems kludgey to me. Considering WPF applications still support ClickOnce, who made the decision to pull Restart, and why? Inquiring minds want to know...
Sources:
Before the end of the school year (a few weeks ago already!) I took the kids from my Robotics Club to the National Advanced Driving Simulator in Coralville, Iowa. This is a pretty amazing place with the coolest driving game you'll ever see! We went through the control room and there were eight monitors displaying the various views around the vehicle. The vehicle itself is an actual car body inside of a half-dome with six projectors creating a seamless view around the car. Speakers, cameras, and instruments are everywhere to create a perfect simulation and capture every element of the driver's performance. They test the effects of alcohol, sleep deprivation, cell phone usage, people in the back seat, various ages of drivers, road conditions, and other things to see what happens -- but without any risk. Unfortunately they wouldn't let us actually sit in the car for a simulation, but we were able to enter the dome and look around. Very cool!
It was fascinating for me to see their software and hardware setup. The dome is actually sitting on a two-dimensional track to allow it motion and inertia for road handling and accident sensations. The dome can tilt in various ways to create the last part of the motion. Each vehicle that they simulate (we saw three car bodies and a John Deere tractor!) is painstakingly recreated with a physics model captured from the real vehicle. They know every aspect of its handling so they know that they are getting good feedback info.
The computer room was full of servers for the actual simulation, in addition to data capture and analysis systems. Everything was built in-house and certainly looked to rival any game out there. All computer hardware was commodity with rough-looking Java UI's for admin needs. I can only imagine the gigabytes of data that they need to process after a simulation!
I have a feeling that playing Test Drive or Need For Speed in a multi-projector dome setup like that would feel amazing too. Being totally immersed in any simulator is probably more important than the actual quality of the simulation itself. If the simulation is too laggy you can get sick, but even a blocky world, if smooth and responsive, will feel like your reality with sufficient immersion. I'm going to be watching the papers now to see when they put out their next call for volunteers. I'll get a ride in that eventually!
More Info: http://www.nads-sc.uiowa.edu/