Although it could do little about the state of the economy, N. W. Ayer suggested that through a well-orchestrated advertising and public-relations campaign it could have a significant impact on the "social attitudes of the public at large and thereby channel American spending toward larger and more expensive diamonds instead of "competitive luxuries.
<p>I think every marketer on the planet should read this article. Most articles on diamonds tend to vilify the players involved, but this article is very level-headed. It tells a decades-long story, and what I find interesting about it is this deliberate patience of its characters. They knew it would take a decade to change the public's perception of diamonds, and then yet another one to change it again. But, they were undeterred and calculated in their efforts.</p></div>
When Zune first got started, I was desperately hoping to link its functionality with Xbox: both would be on the same network at home and the Zune offered the best device at the time to be able to control my Xbox's functionality. Why ship a remote with the console when you could control it with the portable device that's already in your hand?
While I hacked up a prototype a number of years ago controlling my Xbox devkit from my PC, I never got enough traction between the two teams. I wish I could have explained better why I think it was a critical mistake not making these two devices work well together, but I'm going to try to do so ex post facto:
Say my dumb TV idea comes true. As I've said before, the ability to transport your media is very valuable. AirPlay is the best technology available to do this today. Some day, everything might be streamed from the Internet, and Apple has created a brand and associated technology that users would trust no matter how the delivery of the bits happens. What will make users comfortable with the experience of transporting media will be their early use of AirPlay enabled devices.
It might not take that long for others to catch up. After all, Windows has ad-hoc networking technology also. However, users will have invested in an ecosystem they will not want to leave.
I've been working on my latest project since April. That is a long time, but life gets in the way. Regardless, this period of time means that my app has had to make the transition to iOS 4.2. If you'll recall my post about caching media, my app loads a fair amount of media from the web and displays it all to the user. On iOS 3.2, the images I was loading would gradually show up on the screen one by one. Once I upgraded my iPad to 4.2, this functionality suddenly changed: the images would load all together at once. This is bad because it takes a long time to display, decode, and render these images. The user would have to wait many seconds before they were seen. Since my app is so visual, this was unacceptable, so I started debugging.
My first inclination was that something might have changed about how the resources were being downloaded due to differences in the way NSOperation was being handled. I placed a bunch of debug output to find out that images were downloading the same way as before, so the problem was happening after I set the image property of the target UIImageView. I wrestled with what could be happening for a while until I realized that I was setting the property on a thread other than the UI thread. I was also setting it within an @synchronized block. So, I thought the lock might be causing the problem. However, I found the entire locked area was taking 4ms of time. When you have synchronous debug prints coming over a channel, this is a small amount of time. So, Apple had changed the way image rendering was happening to queue things up to run in some batched run loop mode on the UI thread. I ran with this and changed the rendering operation to flip the render over to the main thread with performSelectorOnMainThread. It worked! I was lucky that this solved the problem as it was only a hunch. While I had played around with performSelectorOnMainThread before, I found memory management with it is tricky and so I had stayed away from it. I'm sure there are some reference counting issues in the code now as a result of the change. Lesson learned: on iOS, perform UI changes on the main thread only. The pain of retainCount management is worth it.~shttp://www.next-gen.biz/news/kinect%E2%80%99s-japan-sales-detailed
This should shouldn't be a surprise: Japanese play spaces are very small. In Japan, the sales kiosks include a tape measure for play space requirements. Even Americans are having trouble finding the space for Kinect. However, it's undeniable that Kinect is awesome. Hopefully, my cronies over at Xbox will find a way to make smaller play spaces viable for certain types of games... ~s