Friday, February 27, 2009
Remake
Image via Wikipedia
http://www.theregister.co.uk/2009/02/27/total_recall/"Columbia Pictures is in "final negotiations" with producer Neal H Moritz to develop a "contemporary version" of 1990 Arnold Schwarzenegger sci-fi romp Total Recall, the Hollywood Reporter, er, reports.
...
"The original Paul Verhoeven-helmed movie - which grossed $261m worldwide - was based on the Philip K Dick story We Can Remember It for You Wholesale. Moritz described the Dick tale as "prescient"."
I hope it doesn't suck (but what are the odds...)
Tuesday, February 24, 2009
Hardware?
Image via Wikipedia
http://tech.slashdot.org/article.pl?sid=09/02/24/2220209"Microsoft executives have been telling the tech industry that if hardware supports Windows Vista, it will support Windows 7, but it now looks like that may not entirely be the case. According to CRN: 'But after a series of tests on older and newer hardware, a number of noteworthy issues emerged: Microsoft's statement that if hardware works with Windows Vista it will work with Windows 7 appears to be, at best, misleading"
The first thing that went through my mind when I read this was how pathetic it was - you'd never have that problem with Linux.
The second thing that occured to me was how remarkable it was that I had thought that, without hesitation. Hardware compatibility used to be a reason you'd need Windows of Linux. But now it's the other way around!
It was inevitable that MSFT's stategy of building the kitchen sink directly into it's giant, monolethic "operating system" would fail eventually. It's finally happening. What a relief!
Friday, February 13, 2009
Bits
Image via Wikipedia
http://news.opb.org/article/4263-trimet-looks-cutting-routes-reducing-service/"TriMet has just announced cuts of 5 percent across-the-board. That means fewer routes; buses that come every half-hour instead of every 15 minutes; and fewer trains at off-peak times.
"The cuts are coming now because most of the agency's income is derived from employer payroll taxes. Meaning when people lose their jobs, TriMet loses income."
There's something wrong with this equation. At a time when more people may be turning to TriMet, and starting a public transportation habit, TriMet should be improving its service.
* * *
http://news.opb.org/article/4267-elections-divisions-opens-sizemore-investigation/
"The Oregon Elections Division opened an investigation Thursday into Bill Sizemore's campaign activities during the 2008 elections. Kristian Foden-Vencil reports."
It's about time.
* * *
"An internet of things"
Someday I'll get spam from my toaster.
* * *
"The Canadian military is evoking the wisdom of the green, pint-sized Yoda character from Star Wars for a video it's creating to give soldiers returning from Afghanistan tips on coping with the psychological scars of combat zones."
"I don't believe it," Skywalker says.
"That is why you fail," Yoda replies.
They're trying to touch soldiers to lift X-Wing Fighters with their minds?
Thursday, February 12, 2009
Marshalling and Unmarshalling Without a @XmlRootElement
Netbeans has a handy feature off on the palette on the right (usually) of the code editor, where you can drag a marshal or unmarshal object into your Java code and it will generate marshal/unmarshal code for the XML or JAXB object of your choice.
It is interesting that sometimes, although it does not complain when generating these code fragments, there will occur an error at runtime stating that an object has no @XmlRootElement.
@XmlRootElement annotations are not always created in JAXB objects. Here is a nice explanation of why that is:
http://weblogs.java.net/blog/kohsuke/archive/2006/03/why_does_jaxb_p.html
The subject of this post is not why this happens, but rather how to deal with these objects when you don't want to use inline complex types.
Here's a sample marshal method more or less as generated by the wizard of Netbeans:
private String jaxbMarshalToString(MyType jaxbObj) throws javax.xml.bind.JAXBException, java.io.IOException
java.io.StringWriter sw = new java.io.StringWriter();
javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(jaxbObj.getClass().getPackage().getName());
javax.xml.bind.Marshaller marshaller = jaxbCtx.createMarshaller();
marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8");
//NOI18N
marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(jaxbObj, sw);
sw.close();
return sw.toString();
}
Here is an unmarshal method for the same object:
private MyType jaxbUnmarshalFromString(String str) throws javax.xml.bind.JAXBException
MsgQMessageType ret = null;
javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(MyType.class);
javax.xml.bind.Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
ret = (MyType) unmarshaller.unmarshal(new java.io.StringReader(str));
//NOI18N
return ret;
}
This object has "Type" appended to its name. That is a sign that this is a container rather than the JAXB representation of the XSD itself. These methods fail at runtime because the object jaxbObj includes no root annotation.
Here are these two methods changed so they work. In the first method, we create a new JAXBElement (so it will have a root element) and marshal that. In the second method, we unmarshal to a JAXBElement, and return that object's getValue(), cast to our desired type. Also in the unmarshal code, the context is created using getPackage().getName() rather than just the class.
private String jaxbMarshalToString(MyType jaxbObj) throws javax.xml.bind.JAXBException, java.io.IOException
java.io.StringWriter sw = new java.io.StringWriter();
javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(jaxbObj.getClass().getPackage().getName());
javax.xml.bind.Marshaller marshaller = jaxbCtx.createMarshaller();
marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8");
//NOI18N
marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(new JAXBElement(
new QName("http://www.namespace.com/schema/My", "My"),
MyType.class, jaxbObj), sw);
sw.close();
return sw.toString();
}
JAXBElement ret = null;
javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(MyType.class.getPackage().getName());
javax.xml.bind.Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
ret = (JAXBElement) unmarshaller.unmarshal(new java.io.StringReader(str));
//NOI18N
return (MyType)ret.getValue();
}
Tuesday, February 10, 2009
Big Mac Latte Numbers
Image by Getty Images via Daylife
http://pewresearch.org/pubs/1111/starbucks-versus-mcdonalds-choices-demographics"Would you prefer to live in a place with more McDonald's or more Starbucks?" The Golden Arches won the head-to-head contest by 43%-35%"
Some interesting demographic breakdowns...
Monday, February 09, 2009
Sunday, February 08, 2009
Thursday, February 05, 2009
Fire Drill
Image via Wikipedia
http://games.slashdot.org/article.pl?sid=09/02/05/1136228"Researchers at Durham University have modified a video game and turned it into a fire drill simulator using the Source engine (the 3D game engine used to drive Half-Life 2), and created a virtual model of one of the university's departments. Dr. Shamus Smith said that although 3D modeling software was available, modifying a video game was faster, more cost effective, and had better special effects. 'We were interested in using game technology over a customized application and the Source Engine, from Half-Life, is very versatile,' said Smith.
Plus there might be mutants shooting at you during a fire. You never know.
Wednesday, February 04, 2009
Shut
"An icon of the Columbia River Gorge, referred to as the "Waldorf of the West" in its heyday, has become the latest victim of the economic crisis.
"The historic Columbia Gorge Hotel shut its doors Friday, canceling reservations and laying off dozens of employees."
A shame...
Jeff Sexton