Now that we have released a maintenance update to our third software release and are closing in on our fourth release (likely this Summer), I’ll comment on how our development has changed and how we focus on what to develop and when.
At the start of 2007, the HIPerWall software primarily consisted of two programs: the original TileViewer, which handle big image viewing, and the very interactive NDVIviewer that displayed regular images, movies, video streams and more — I called it MediaViewer (more details on both can be found in this article).
I was lucky to hire Dr. Sung-Jin Kim back to the HIPerWall project as a postdoctoral researcher, and together we set about transforming the software. Note: When I write HIPerWall, it designates the research project, which is distinct from the Hiperwall company.
Sung-Jin developed a new TileViewer that could handle all the MediaViewer features as well as deal with big images much better than the original TileViewer. He added the ability to rotate anything from a playing movie to a billion pixel image in real-time and interactively. This new TileViewer formed the basis of the Hiperwall technology licensed from UCI to the Hiperwall company. Today’s product, however, bears little resemblance to that old code.
Over the years, many of the thousands of visitors we had to HIPerWall expressed their interest in running their software in high resolution on the wall. When told this entailed lots of parallel and distributed computing programming as well as a significant overhaul of their drawing code, people shied away. We decided we needed a way for people to show their applications on the tiled display without having to rewrite their code. We also wanted to provide the ability to use proprietary programs, like PowerPoint, CAD, GIS tools, etc. One way of doing this is to capture the video output of a computer via a capture card, then stream the screen to the wall. We could already stream HD video, so this was certainly a workable solution, but required very expensive (at the time) capture cards that tended to use proprietary codecs. It would also take enormous network bandwidth to stream a high-resolution PC screen. While we have this capability in the Hiperwall software today, we decided it was too brute-force and inelegant (and expensive) for the time.
I decided to use software to capture the screen and send it to the HIPerWall. I developed the ScreenSender (later changed to HiperSender or just Sender) in Java so it can work on Mac, Windows, or Linux, yet have sufficient performance to provide a productive and interactive experience. While the original Sender was fairly primitive and brute-force, today’s Sender software can send faster than many Display Nodes can handle and uses advanced network technology that lets us have tens of Senders displayed simultaneously without seriously taxing the network.
We also started to improve the usability of the software. Initially, the software could be operated by a few key presses, but as we got more content and more capabilities, we knew we had to make a user interface. Sung-Jin and I defined an interface protocol and made a graphical user interface to allow users to choose content to display and to view and changed object properties for displayed objects.
So we had this powerful software that was starting to gain attention. First, the Los Angeles Times published a nice article on the front page of the California section, followed by a radio interview I did for a radio station that broadcasts National Academy of Engineering content, and culminating in a CNN piece that was repeated around the world.
Somewhere around this time, Jeff Greenberg of TechCoastWorks came along to see if he could help us form a company. Because he has been in the computing technology industry for years, he was able to guide our efforts to make the software easy to use for commercial purposes. Around the end of the year, Samsung became interested in licensing our product, so the real software effort began. While it is okay for research software to crash (in fact, if it does, you can claim that you’re pushing the edge), commercial software has to work as expected, and in this case, 24 hours a day, 7 days a week, for months at a time. Therefore, any memory leaks that would have been okay for a short run in the lab were not acceptable, nor were crashes in corner cases. We also had to work hard to improve performance. In the HIPerWall, we used PowerMac G5s with 2 or 4 processors each and advanced graphics cards (for the time). This was a pretty nice environment for our software, but embedded PCs in Samsung’s monitors were not quite as fast and had significantly less graphics horsepower. We used a small 2×2 Samsung wall as a test bench and made the software sufficiently robust that we demonstrated it on a huge 40 panel wall at the Samsung booth at the Infocomm show in Las Vegas in June 2008. We also had to make the software multilingual, which is not as easy as it sounds, even with Java’s support for Unicode characters. The Samsung-licensed version of the software supports 8-10 languages.
Choosing features to develop has changed from making what we think is cool to making things that will help customers and help sales. Our software still handles gigapixel images with aplomb, but for the many control rooms and network operation centers (NOCs) that use Hiperwall, the popular display objects are Senders (for monitoring whatever it is being monitored) and Streamers (to keep an eye on CNN and the weather). For digital signage applications, regular images and movies are popular, along with Streamers and Senders. In order to coordinate these complex display layouts, we provide a way to save the state of the Hiperwall as an Environment, which can be restored easily.
We also added a Slideshow feature that can contain any of our object types with variable timing. It can even have overlays of a company logo, for example. This feature is popular both for digital signage (step through products, etc.) and control rooms where there may be more information than can comfortably fit on the wall at a given time. (Though the right answer is to buy a larger wall! 😎 )
In response to customer requests, we added scheduling capability to show different environments at different times on different days, etc. UCI’s Student Center Hiperwall system makes tremendous use of the scheduler for their very artistic content.
Another example of our responsiveness to customer needs comes from the large Hiperwall-based Samsung UD system installed at the Brussels Airport. They were using 3 infrared cameras to view passengers along the walkways then show the streams on the tiled display along the walkway, as shown below. One camera was on the opposite side, so the video needed to be flipped horizontally. They used another computer to do the flip, which added some delay. Since such a flip is trivial in today’s graphics cards, we added flip options to the Streamer software, thus eliminating the need for extra hardware and delay.
With our next release, we will add many more customer-centric features that will make Hiperwall significantly more powerful, secure, and collaborative, but I will not comment on any here until they are officially announced by the company.
Now that Steve Jobs and co. have spoken on the location tracking controversy, we now know that it was merely a cache of recently (okay, maybe not so recently) connected WiFi nets and cell towers in order to speed location finding. This revelation means that nothing bad was intended, but the worst was assumed (and rightly so – no harm in being paranoid. 😎
As I predicted, Apple will make a patch that will reduce the file contents. It will even remove the file when Location Services are turned off.
The current outcry over the location tracking file in your iPhone (and presumably iPad) isn’t exactly much ado about nothing, but is mostly the news media trying to make hay out of it and counting on Apple’s name to attract viewers.
This location tracking file is present both on the iPhone itself and in your backups that you make when you sync your iPhone. By itself, the file doesn’t do anything. Your iPhone apparently doesn’t send it to Apple or anyone, and you can’t be tracked in real time (using that file – there may be plenty of other ways to do that). The biggest concerns are (1) why is Apple doing it? What benefit is it to them or the user? and (2) it can be exploited by a third party that can access your backup on your PC or Mac.
As to why Apple is doing it, who knows? It may be a debugging tool that was left in place because nobody thought it would hurt anything. Perhaps Apple was planning to use it in the future. Maybe even they have nefarious plans to perhaps anonymously aggregate it and sell the data to location-based ad providers. I doubt we’ll ever get a really straight answer to this one, but for the moment, the file is harmless as long as it stays on the device. It isn’t harmless to Apple’s image, however, so I assume it will go away or be changed soon.
If someone has access to your backups, you’ve got bigger problems than them knowing where you’ve been. They can get your financial information, your passwords (assuming you have your browser save them), and more. I know people are suggesting you encrypt your iPhone backup using iTunes’ encryption feature, but that surely isn’t enough to keep yourself safe. Use FileVault if you’re on a Mac or BitLocker or TrueCrypt for Windows. I’ve used all of these and they all work well and don’t seem to slow things down. So far, I haven’t lost a byte due to these encryption mechanisms. By using these approaches, along with good passwords, you can keep your data safe. If you don’t use something like that, there isn’t any sense in worrying about your iPhone location file. The door is open, so worrying about whether you closed a window isn’t relevant.
While this little Apple controversy makes for fun and exciting news, it is a trivial threat to our privacy, particularly given all the scary things that ad networks and others do to track us and our browsing/buying habits. Anyone who threatens to dump their iPhone over this issue is a little overly reactionary (there are other reasons to be mad with Apple about iPhones, but this isn’t one I’d worry about). I’m sure Apple will issue an update in the next month that either removes or significantly reduces the history kept in that location tracking file.
Many people are confused by the spelling of the Hiperwall® name, often misspelling it “Hyperwall” or even “Hyper Wall.”
The name Hiperwall is a registered trademark owned by the University of California (UC Irvine, in particular) and exclusively licensed for commercial use by Hiperwall Inc.
The goal of the research project led by Falko Kuester and myself when we were UCI professors was to develop technology to drive extremely high resolution tiled display walls. Our approach differed from that of other tiled display systems in that we wanted our system to scale easily to huge sizes, so we needed to avoid the centralized rendering system (read potential bottleneck) that most other had. Therefore, we put powerful computers behind the displays. These display nodes perform all the rendering work for their display and had little interaction with other display nodes. We use a central control node that simply commands the display nodes what to display, but doesn’t get in the path of the rendering, thus doesn’t bottleneck the system.
Because of this very distributed and highly parallel computing approach, our system is much more responsive than most other tiled display systems, therefore we called it the Highly Interactive Parallelized display Wall, or HIPerWall for short. The acronym is a little forced, because we had to ignore the word “display,” but the idea is pretty clear. You can see the research project logo on this image of the desktop screen for the HIPerWall Mini system we showed at Apple’s World Wide Developers Conference in 2006. At 72 million pixels screen resolution, the HIPerWall Mini was one of the highest resolution displays in the world at the time.
You’ll note that the “IP” in HIPerWall is highlighted in a different color. This is because we based our technology on the Internet Protocol (IP) rather than proprietary protocols or networks so we could interoperate and use standard, off-the-shelf equipment. This is one of the main reasons Hiperwall systems are so cost-competitive today: we use our advanced software on COTS computers, displays, and networks to create a powerful tiled display system without proprietary servers, amplifiers, and non-scalable bottlenecks.
About the same time we built HIPerWall, NASA Ames built a much smaller tiled display named Hyperwall, which surely led to some name confusion. NASA’s current Hyperwall is even higher resolution than the original 200 MPixel HIPerWall. In the meantime, Apple has made some displays for their stores to show iOS App sales, unfortunately naming them Hyperwall, too.
So to summarize, Hiperwall is the product derived from HIPerWall the research project. NASA and Apple both have Hyperwall systems, which are unrelated to each other and unrelated to Hiperwall.
Since Apple enabled AirPrint in the latest iPad and iPhone updates, I’ve wanted to be able to use it. AirPrint currently only works with a few HP printers, though some software solutions can make printers shared by your Mac available too. Since I didn’t want to leave my Mac on all the time, and I wanted to replace my Lexmark all-in-one inkjet anyway, I got an HP 6500A Plus from Costco.
The printer hardware looks to be quite good and robust, though HP is always good with hardware. Software has been weak in the past, but the new HP drivers for Windows seem good (the Mac drivers still stink, but more on that in another post where I rant about lousy printer and scanner drivers).
After a quick firmware update, I tried AirPrint, but the iPad didn’t see the printer. I had made the dreadful mistake of hooking the printer to my wired network rather than wireless. Once I switched to wireless, AirPrint worked fine.
So what’s the problem? Printing and scanning over wireless are much slower than on a wired network (I have GigE everywhere in my house). And the printer can’t be on both at the same time. So if I want AirPrint, I can’t have good performance and vice versa.
It seems to me that broadcast is broadcast, so the printer should be just as discoverable on the wired network from my iPad as it is on the wireless bridged network. So it looks like the idea of AirPrint is good, but HP’s implementation is not so good.
Perhaps this will get fixed in an update, but I won’t hold my breath.
I am and have been a huge fan of the powerful Oracle (formerly Sun) VirtualBox, but if you use VirtualBox and want it to continue to work well, wait a bit before upgrading to the shiny new version 4. As with most big upgrades, this one took 1 step forward, 2 steps back, and a step sideways:
Forward: The new user interface is a significant improvement and I look forward to the day I can use it properly. (Bonus half step forward: the new architecture with separate extensions seems to be a good idea, but is perhaps not trouble-free yet.)
Sideways: (This problem existed in the 3.2 releases as well, so is not new.) I use a Windows 7/32 guest on a Windows 7/64 host, and if I enable both the 3D and 2D graphics acceleration, the guest Windows crashes right as it reaches the high-res login screen. This seems to be an interaction with current NVIDIA drivers, as it only started happening a month or two ago when I updated to the latest drivers for my GTX280 card.
Back 1: I need to use USB flash drives a lot, and there was nothing I could do to get VirtualBox 4.0.2 to mount my flash drive in the guest OS. Even after installing the extension that provides USB 2.0 support (perhaps the UI should prompt for that if USB 2.0 is enabled and it is missing), the VB driver captured the drive from the host (it disappeared from My Computer), but any attempts to mount it in the host were met with an error dialog from VB. I tried deleting and recreating the filter to no avail. The latest Guest Extensions were installed (see below), yet nothing proved able to mount the flash drive.
Back 2 (half step): In order for the new Guest Extensions to install Direct3D support (which I don’t really use, but install anyway because I like the idea of having it available), you have to reboot the guest into Safe Mode and install the Guest Extensions. While this ends up working, it’s an unusual and annoying step.
So my solution was to revert back to VirtualBox 3.2.12, which works just fine. My flash drive mounts without trouble and I can insert it as needed.
I tried to check the forums for the solution to any of these problems, but was unable to search the forum, so didn’t see these specific problems amidst the active discussions.
I want to be clear that I think VirtualBox is a good thing and this post is just warning people that the latest version is not trouble-free. I have no doubt that in another update or two, it will be superior to the old 3.2 version and meet all my needs. Keep of the good work Oracle and VB devs!
In mid-December (the 12th to be exact), we had temperatures in the 80s and beautiful blue skies, so we went to Crystal Cove State Park for sightseeing and a walk along the beach. Pictures are at:
Norton Internet Security 2010 quit working on me today telling me that the subscription expired. Yesterday, it told me it had 2 days left. As you can see from the screen capture below, it tells me I have a day left, but it expired anyway. Apparently the Norton programmers were sloppy when it came to deciding it was the expiry date and shut it down early.
Now I have Norton Internet Security 2011 at home ready to install, but after this crappy behavior, I’m very tempted to return the unopened box and just use the free Microsoft security product and never give Norton another penny.
I use Eclipse for my Java development. I used to use JBuilder Turbo, but it’s now so hard to get a license of it for more than one computer, I’ve given up and went to straight Eclipse.
Eclipse is a really good development environment with on-the-fly compilation and generally excellent features and a few annoyances. One of the biggest annoyances is its update/install system that usually doesn’t actually find updates and typically doesn’t do a good job of installing new components. One day, I tried to install the profiling tools and the install system had such a hard time finding the components to install, campus security blocked access to the Hiperwall lab because they were sure only malware would hit 70 FTP servers in a few seconds. No, it was Eclipse, it turned out, after I got us blocked a second time. So clearly no Eclipse component installs on campus. When trying at home, I game up after an hour or so of it not finding the components. This isn’t necessarily the fault of the Eclipse developers – they rely on free hosting for mirrors of the files, but the mirrors may not always be up to date or even complete.
Because of these troubles, I tried and am still using Yoxos. Yoxos creates a custom Eclipse at start time, which delays the initial start quite a bit as the components are downloaded, but if nothing changes, future starts are fairly fast. It allows you to select which components you want and then downloads (from Yoxos’ servers) and installs them for you. It works very well and I haven’t had any trouble with a Yoxos-built Eclipse.
The version I’m using is currently free, but as Yoxos is a commercial entity, they charge for some services and this version may eventually cost something. Whether it will be worth the money to save hassle depends on the cost. But for now, Yoxos is a terrific way to use Eclipse and is highly recommended for Java developers.
I recently upgraded my iPad and iPhone 3GS to iOS 4.2.1 with eventual success, but some problems along the way. In both cases, the OS installation appeared to go fine, but later in the day when I launched the iPod app to listen to some music, nothing showed up. All my music, podcasts, and playlists were missing. When I plugged each back into iTunes, the utilized space graph showed that the music must still have been there, but somehow the iPod app didn’t see it. Another sync for each (with a REALLY slow backup in the case of the iPad) restored the music to its previous state without having to re-download any of it to the units.
iOS 4.2.1 seems like a very nice system, but Steve Jobs’ quote saying “iOS 4.2 makes the iPad a completely new product” is a bunch of crap. The iPad with iOS 4.2 gives almost the exact experience of the earlier iPad OS, but with a few goodies around the edges. The multitasking, for example, is very nice and probably more useful on iPad than iPhone, but most users won’t notice it. Apps launched fast on the iPad before, so the slight improvement of swapping in an app that was in the background is not as impressive as it is on a slower device like my iPhone 3GS. And the iPad’s battery is big enough that it can handle the slight additional power draw of background apps.
I played a bit with AirPlay by sending music and sounds to my home stereo via an original Airport Express. It works well. When I get an Apple TV, I’m sure it will be even better, with the ability to stream video.
I am also very pleased with one particular bug fix. I have a nice Samsung bluetooth stereo headset that is great for listening to music wirelessly, but the play/pause controls didn’t work on the iPad (but they did on the iPhone under iOS 4.1). Under the new iOS, they work on iPad as well! Nice job, Apple!
So far, iOS 4.2 is a big plus for the iPad and a small improvement over iOS 4.1 on the iPhone.