Wednesday, October 27, 2010
Monday, September 20, 2010
TinEye Reverse Image Search
TinEye Reverse Image Search
Tried this out today - you can upload an image, or provide an image URL and it will detect (using image recognition) where else in the web is the picture. It's quite remarkable and works quite well. I'm using it to track where students are copying images and diagrams from, without acknowledgements..
Now only if turnitin does the same thing for essays/reports ...
Tried this out today - you can upload an image, or provide an image URL and it will detect (using image recognition) where else in the web is the picture. It's quite remarkable and works quite well. I'm using it to track where students are copying images and diagrams from, without acknowledgements..
Now only if turnitin does the same thing for essays/reports ...
Wednesday, September 15, 2010
Wednesday, September 08, 2010
Bug in Helios - J2EE Module dependencies KAPUT!
Those idiots in charge of Eclipse WTP have done it again.
Apparently they have removed the J2EE module dependencies feature in Eclipse 3.6 Helios WTP 3.2.0
(see also: http://www.eclipse.org/forums/index.php?t=msg&th=172980&start=0&S=8e1b1230ca41777f3688d6396d0a2c58 )
What this means that if you have user libraries which your project will depend on (like.. say... JSTL or JDBC or something like that) normally under the old Galileo version you would:
1. Add a user library (or external jar or whatever) to the Java build path (Libraries -> Add External Jars).
2. Modify the J2EE Module Dependencies to export this (so it will get copied into the WEB-INF/lib directory or / depending on whether it's a WAR, JAR or EAR project)
Helios way:
They removed J2EE module dependencies, and now have a new feature called "Deployment Assembly" - which by itself looks interesting (directly map the source paths to deployment paths - this is goodness indeed). However, it forgets completely about the Java build path - ahem folks, how the F^*(^ do you mark the libraries to be exported to WEB-INF/lib ?? ooops... bbzzztt... epic fail.
Instead, you now rely on the Quickfix feature to fix it: See
Eclipse community forums /Web Tools Project (WTP)/tomcat and WTP: How to get dependent libraries into WEB-INF/lib
http://www.eclipse.org/forums/index.php?t=msg&goto=552136&S=60071956fefa1bb80b3a32ba65cd0f66
See also:
ClasspathEntriesPublishExportSupport - Eclipsepedia (http://wiki.eclipse.org/ClasspathEntriesPublishExportSupport)
Eclipse community forums /Web Tools Project (WTP)/tomcat and WTP: How to get dependent libraries into WEB-INF/lib
http://www.eclipse.org/forums/index.php?t=msg&goto=552136&S=60071956fefa1bb80b3a32ba65cd0f66
See also:
ClasspathEntriesPublishExportSupport - Eclipsepedia (http://wiki.eclipse.org/ClasspathEntriesPublishExportSupport)
Effectively, the missing libraries will appear due to the "Classpath dependency validator" which will indicate which libraries will be missing from the Webapp. You then select each miscreant and press QuickFix (Ctrl-1) to fix - ie: "Mark the associated raw classpath entry as a publish/export dependency"
(or the negative case: Exclude the associated raw classpath entry from the set of potential publish/export dependencies")
From what I gather, this is the ONLY way to do this until this bug is fixed.
The referenced bug may be fixed in Helios SR1: https://bugs.eclipse.org/bugs/show_bug.cgi?id=306462Pain.
UPDATE: New way around this stupidity
Choose Deployment Assembly:
Click Add > Classpath Container > User Library > whatever
Now it will work. Geez!!
Wednesday, August 25, 2010
Android still sucks - still no WPA2 enterprise support!
Now I am running android 2.1, update 1, and still Google have not updated their fricking UI for WPA2 Enterprise.
Are they mad? Are they INSANE?
Even worse my wireless no longer works - their update overwrote my /etc/wifi/wpa_supplicant.conf with a dummy WRITE PROTECTED one so my old wifihelper app (and wifinder) can't write to it.
This means my Motorola Milestone does not work with most common university/corporate networks. My ipod touch seemlessly works. Android developers - I HATE YOU.
Oh, of course, I could ROOT my phone so I could update it myself (or use wifinder again). Pain in the (*^(*^(!
What is so embarrassing is that we teach android at this uni and our students can't connect to the network here - we use UTS-WPA (a WPA2 Enterprise network - simple set up, just use WPA2 + AES for stage one, and EAP = PEAP for stage 2. Just use student/staff number and your email password)
For eduroam, you use EAP-TTLS, and use the PAP (nnnnn@uts.edu.au, password) instead.
SIMPLE EH?
Are they mad? Are they INSANE?
Even worse my wireless no longer works - their update overwrote my /etc/wifi/wpa_supplicant.conf with a dummy WRITE PROTECTED one so my old wifihelper app (and wifinder) can't write to it.
This means my Motorola Milestone does not work with most common university/corporate networks. My ipod touch seemlessly works. Android developers - I HATE YOU.
Oh, of course, I could ROOT my phone so I could update it myself (or use wifinder again). Pain in the (*^(*^(!
What is so embarrassing is that we teach android at this uni and our students can't connect to the network here - we use UTS-WPA (a WPA2 Enterprise network - simple set up, just use WPA2 + AES for stage one, and EAP = PEAP for stage 2. Just use student/staff number and your email password)
For eduroam, you use EAP-TTLS, and use the PAP (nnnnn@uts.edu.au, password) instead.
SIMPLE EH?
Monday, August 02, 2010
Quality-oriented teaching of programming
Quality-oriented teaching of programming
Worth reading. I see this all the time too.
Why is there a double hump marks distribution with programming subjects?
This post is a good reason why.
mmm...
Worth reading. I see this all the time too.
Why is there a double hump marks distribution with programming subjects?
This post is a good reason why.
mmm...
Tuesday, July 27, 2010
What is your personal organisation style?
Love this quote:
Schlenger and Roesch describe five distinct styles to organizing time:
Schlenger and Roesch describe five styles of organizing physical space:
Schlenger and Roesch describe five distinct styles to organizing time:
- The Hopper quickly and and frequently switches tasks throughout the day. Hoppers often enjoy variety and like to feel the gratification of completing small tasks, but they may be easily distracted by other people or technology. This is the most common of the temporal organizing styles.
- The Perfectionist Plus seeks excellent performance in every activity, sets very high standards for herself and others, and may have difficulty distinguishing between valuable and less-valuable uses of her time.
- The person who is Allergic to Detail enjoys thinking about the big picture and new ideas, sometimes neglecting smaller details or follow-through.
- The Fence Sitter can see both sides of an issue and thoroughly researches upcoming decisions, both large and small, sometimes to the point of forestalling action.
- The Cliff Hanger thrives on adrenaline, deadlines, and external pressure, but sometimes loses track of all the commitments he's juggling.
Schlenger and Roesch describe five styles of organizing physical space:
- The Everything Out likes to have reminders, mementoes, and project materials in plain sight and within easy reach.
- The Nothing Out prefers to have surfaces cleared off and materials stored away.
- The Right Angler enjoys having things look a certain way, with the appearance of precision.
- The Pack Rat keeps almost everything.
- The Total Slob believes that organizing things is a waste of time that could be spent on creative pursuits.
Chinese spam
Recently there have been a large number of chinese spamsters hitting my website with comments about their hackware websites (or some just plain strange ones). naturally these are blocked by me since I moderate every single comment.
But why do they pick on me, not the other ones I am aware of?
If you are a chinese blog-spamster, F*** off!!
But why do they pick on me, not the other ones I am aware of?
If you are a chinese blog-spamster, F*** off!!
Blackboard aka UTS Online - how I hate thee
Our learning management system here at UTS is a pile of dog poo. It's so tedious to do anything and adds a lot of work to make life as an instructor painful.
There are so many websites and blogs (google it) bemoaning the pile of crap Blackboard inc. have written.
Sigh.
There are so many websites and blogs (google it) bemoaning the pile of crap Blackboard inc. have written.
Sigh.
Tuesday, July 13, 2010
App Inventor for Android
App Inventor for Android
Oh dear, does this make us programmers redundant?
Apps for Android made easy - I now see a million iFart applications appearing...
Incidentally, It's amazing how your mind explores links - from this website I got to Kawa, then qexo (Xquery) which then leads back to HTML + JSP vs HTML generation via Xquery (http://www.gnu.org/software/qexo/XQ-Gen-XML.html) ...
Oh dear, does this make us programmers redundant?
Apps for Android made easy - I now see a million iFart applications appearing...
Incidentally, It's amazing how your mind explores links - from this website I got to Kawa, then qexo (Xquery) which then leads back to HTML + JSP vs HTML generation via Xquery (http://www.gnu.org/software/qexo/XQ-Gen-XML.html) ...
Monday, June 14, 2010
Go Ahead: Next generation Java Programming Style
Code Monkeyism: Go Ahead: Next Generation Java Programming Style
here is a brief summary of style changes recommended:
Final is your new love
No setters
Do not use loops for list operations (hint: Use functional programming style)
Use one liners
Use many, many objects with many interfaces (ie: domain driven design)
Use Erlang-Style Concurrency (huh?)
Use Fluent Interfaces (and Domain Specific Languages)
Data Transfer Objects without setters and getters (yeah, makes your code look simpler)
here is a brief summary of style changes recommended:
Final is your new love
No setters
Do not use loops for list operations (hint: Use functional programming style)
Use one liners
Use many, many objects with many interfaces (ie: domain driven design)
Use Erlang-Style Concurrency (huh?)
Use Fluent Interfaces (and Domain Specific Languages)
Data Transfer Objects without setters and getters (yeah, makes your code look simpler)
Friday, June 04, 2010
Sunday, May 30, 2010
Too Smart for good?
Being an academic, I find this article too close to the truth - I see the "honour roll" student and "gifted slacker" students in the same classes everyday.
Both need special motivation techniques. And I find them the greatest students to teach of all!!
What disturbs me is the "completely clueless" student who got in via "alternative" enrolment conditions. Most of these got into their enrolment WELL below the cut off marks.
Most universities offer "bonus" marks - some make sense (eg: 4 bonus HSC marks if you got high marks in Math for an engineering degree), but some of the marks are well ... pure charity...
Enterprise Software Development with Java: Spring and Google vs. Java EE 6
Quote:
Spring and everything around it is heading for the could. Literally with the speed of light. It only takes few weeks between new announcements around this topic. At the end of the day, Spring, VMWare and Google are providing a cloud based deployment platform for Spring based Java applications. That sounds modern, fast, easy and is potentially very interesting. It may provide the easiest, no-comprise way to publish Java applications. If you look at other cloud alternatives they are either more restrictive for the developers ("old" Google AppEngine) or provide services at an infrastructure level like Amazon's EC2.
But: Spring and VMware are going to build their own Java universe where they dictate momentum, their 'standards' and more and more the commercial consequences as well. From an Enterprise Java point of view it's simpler. Too many things are called "Spring". And this makes it easy on the first look. You don't have to talk about 30 something specifications but about one big framework. And while Spring and Rod Johnson in particular have been extremely valuable in influencing the direction of Java (2)EE after the 1.4 release to the new, much more pragmatic world of Java EE 5, Spring has also caused polarization and fragmentation. Instead of helping forge the Java community together, it has sought to advanced its own cause. Which is perfectly valid - but should be recognized for what it is. Spring is not necessarily open, is not free, is not a community or even multi-vendor effort. Lock in with Spring is just another type of vendor-lockin. And that is, why it will never be a replacement for Java EE.
But there is another takeaway for the Java community and the owner of Java. The hype around innovative and integrated solutions is a proof for the Java EE universe moving too slowly along. Bring in more flexibility. Have more courage with changes. Find a way to adopt trends faster and support better modularity.
But: Spring and VMware are going to build their own Java universe where they dictate momentum, their 'standards' and more and more the commercial consequences as well. From an Enterprise Java point of view it's simpler. Too many things are called "Spring". And this makes it easy on the first look. You don't have to talk about 30 something specifications but about one big framework. And while Spring and Rod Johnson in particular have been extremely valuable in influencing the direction of Java (2)EE after the 1.4 release to the new, much more pragmatic world of Java EE 5, Spring has also caused polarization and fragmentation. Instead of helping forge the Java community together, it has sought to advanced its own cause. Which is perfectly valid - but should be recognized for what it is. Spring is not necessarily open, is not free, is not a community or even multi-vendor effort. Lock in with Spring is just another type of vendor-lockin. And that is, why it will never be a replacement for Java EE.
But there is another takeaway for the Java community and the owner of Java. The hype around innovative and integrated solutions is a proof for the Java EE universe moving too slowly along. Bring in more flexibility. Have more courage with changes. Find a way to adopt trends faster and support better modularity.
Thursday, May 06, 2010
Monday, April 12, 2010
All Your Apps Are Belong to Apple: The iPhone Developer Program License Agreement | Electronic Frontier Foundation
UPDATED: All Your Apps Are Belong to Apple: The iPhone Developer Program License Agreement | Electronic Frontier Foundation
Oh boy. Apple have really made me angry. They are forcing this agreement down our throats.
Here is a partial quote:
The entire family of devices built on the iPhone OS (iPhone, iPod Touch, iPad) have been designed to run only software that is approved by Apple—a major shift from the norms of the personal computer market. Software developers who want Apple's approval must first agree to the iPhone Developer Program License Agreement.
Oh boy. Apple have really made me angry. They are forcing this agreement down our throats.
Here is a partial quote:
The entire family of devices built on the iPhone OS (iPhone, iPod Touch, iPad) have been designed to run only software that is approved by Apple—a major shift from the norms of the personal computer market. Software developers who want Apple's approval must first agree to the iPhone Developer Program License Agreement.
So what's in the Agreement? Here are a few troubling highlights:
Ban on Public Statements: As mentioned above, Section 10.4 prohibits developers, including government agencies such as NASA, from making any "public statements" about the terms of the Agreement. This is particularly strange, since the Agreement itself is not "Apple Confidential Information" as defined in Section 10.1. So the terms are not confidential, but developers are contractually forbidden from speaking "publicly" about them.
App Store Only: Section 7.2 makes it clear that any applications developed using Apple's SDK may only be publicly distributed through the App Store, and that Apple can reject an app for any reason, even if it meets all the formal requirements disclosed by Apple. So if you use the SDK and your app is rejected by Apple, you're prohibited from distributing it through competing app stores like Cydia or Rock Your Phone.
Ban on Reverse Engineering: Section 2.6 prohibits any reverse engineering (including the kinds of reverse engineering for interoperability that courts have recognized as a fair use under copyright law), as well as anything that would "enable others" to reverse engineer, the SDK or iPhone OS.
No Tinkering with Any Apple Products: Section 3.2(e) is the "ban on jailbreaking" provision that received some attention when it was introduced last year. Surprisingly, however, it appears to prohibit developers from tinkering with any Apple software or technology, not just the iPhone, or "enabling others to do so." For example, this could mean that iPhone app developers are forbidden from making iPods interoperate with open source software, for example.
...Kill Your App Any Time: Section 8 makes it clear that Apple can "revoke the digital certificate of any of Your Applications at any time." Steve Jobs has confirmed that Apple can remotely disable apps, even after they have been installed by users. This contract provision would appear to allow that.
We Never Owe You More than Fifty Bucks: Section 14 states that, no matter what, Apple will never be liable to any developer for more than $50 in damages. That's pretty remarkable, considering that Apple holds a developer's reputational and commercial value in its hands—it's not as though the developer can reach its existing customers anywhere else. So if Apple botches an update, accidentally kills your app, or leaks your entire customer list to a competitor, the Agreement tries to cap you at the cost of a nice dinner for one in Cupertino.
Overall, the Agreement is a very one-sided contract, favoring Apple at every turn. That's not unusual where end-user license agreements are concerned (and not all the terms may ultimately be enforceable), but it's a bit of a surprise as applied to the more than 100,000 developers for the iPhone, including many large public companies. How can Apple get away with it? Because it is the sole gateway to the more than 40 million iPhones that have been sold. In other words, it's only because Apple still "owns" the customer, long after each iPhone (and soon, iPad) is sold, that it is able to push these contractual terms on the entire universe of software developers for the platform.
In short, no competition among app stores means no competition for the license terms that apply to iPhone developers.
Thursday, April 01, 2010
Oracle purchases Apache foundation
The Apache Software Foundation Receives Approval for Sale to Oracle Corporation for $US1.5Billion.
Tsk tsk tsk.
Apparantly Oracle will change the Apache Software Licence (ASL) to the Apache Full and Open Oracle License (AFOOL) :-)
Tsk tsk tsk.
Apparantly Oracle will change the Apache Software Licence (ASL) to the Apache Full and Open Oracle License (AFOOL) :-)
Wednesday, March 24, 2010
David Siegel discusses the Power of Pull; a different view of the Semantic Web? | The Semantic Web| ZDNet.com
David Siegel discusses the Power of Pull; a different view of the Semantic Web? | The Semantic Web| ZDNet.com
Siegel wrote books such as Futurize Your Enterprise and Creating Killer Websites (both impressive books, though at a view from 10000 feet).
In his new book "Pull: The Power of the Semantic Web to Transform Your Business" he suggests that using Semantic Web (though not just W3c technologies such as OWLS, RDF SPARCQL) can be the savior for web enabled businesses (and those who aren't :-)
What IS interesting is that Google are in an indirect way doing this - "PULLing" past information to make interesting deductions for the present. It's sometimes spooky how their data mining algorithms work - check the advertisements displayed from gmail.
Siegel wrote books such as Futurize Your Enterprise and Creating Killer Websites (both impressive books, though at a view from 10000 feet).
In his new book "Pull: The Power of the Semantic Web to Transform Your Business" he suggests that using Semantic Web (though not just W3c technologies such as OWLS, RDF SPARCQL) can be the savior for web enabled businesses (and those who aren't :-)
What IS interesting is that Google are in an indirect way doing this - "PULLing" past information to make interesting deductions for the present. It's sometimes spooky how their data mining algorithms work - check the advertisements displayed from gmail.
Friday, March 19, 2010
motorola milestone - finally rooted
not in a bad sense, rather I managed to get my phone updated to Android 2.01
(since I have a british milestone from expansys.com.au, it gets its update from europe motorola via the internet),
Menu -> Settings -> System Updates ... & it runs for while....
When complete, you can now root.
Follow instructions from http://news.lehsys.com/?p=7537
1. download http://rapidshare.de/files/49019165/milestone_root.zip and rename to /sdcard/update.zip
2. switch off phone
3. hold camera button. Then power on.
4. When you get the triangle screen, release the power & camera button
5. Now tricky bit: Press Volume+ button & camera simultaneously. I had to attempt this about 10 times to get it to work
6. Now you get a list of options - Open the keyboard, use the navigation pad to select "Update from SD card."
7. Use the centre pad key to select - what ever you do, don't choose the "Format SD card" or "Hard Reset" options!!
8. You should see an updating screen - this may have an error message, but as long as you see the message "Rooting phone" (or similar :-), it has worked
9. Reboot the phone
10. Assuming it all booted up & you get your normal phone scree, start a Terminal emulator (I used ConnectBot or "Android Terminal Emulator (Jack Palevich)" from the Android Market, others use "Terminal Emulator" but this gives me the dreaded Force Close message)
11. Type su to get root access!!! ps: Android throws up a big screen "The following application has requested Superuser access to the phone". Select Yes.
ps: sometimes su hangs. I have to restart the terminal emulator to get it working again.
now for linux tools for android: http://android.modaco.com/content/htc-hero-hero-modaco-com/299984/linux-tools-coming-to-mcr/ & http://alldroid.org/threads/16201-HOW-TO-Root-Extras-Telus-Motorola-Milestone
(since I have a british milestone from expansys.com.au, it gets its update from europe motorola via the internet),
Menu -> Settings -> System Updates ... & it runs for while....
When complete, you can now root.
Follow instructions from http://news.lehsys.com/?p=7537
1. download http://rapidshare.de/files/49019165/milestone_root.zip and rename to /sdcard/update.zip
2. switch off phone
3. hold camera button. Then power on.
4. When you get the triangle screen, release the power & camera button
5. Now tricky bit: Press Volume+ button & camera simultaneously. I had to attempt this about 10 times to get it to work
6. Now you get a list of options - Open the keyboard, use the navigation pad to select "Update from SD card."
7. Use the centre pad key to select - what ever you do, don't choose the "Format SD card" or "Hard Reset" options!!
8. You should see an updating screen - this may have an error message, but as long as you see the message "Rooting phone" (or similar :-), it has worked
9. Reboot the phone
10. Assuming it all booted up & you get your normal phone scree, start a Terminal emulator (I used ConnectBot or "Android Terminal Emulator (Jack Palevich)" from the Android Market, others use "Terminal Emulator" but this gives me the dreaded Force Close message)
11. Type su to get root access!!! ps: Android throws up a big screen "The following application has requested Superuser access to the phone". Select Yes.
ps: sometimes su hangs. I have to restart the terminal emulator to get it working again.
now for linux tools for android: http://android.modaco.com/content/htc-hero-hero-modaco-com/299984/linux-tools-coming-to-mcr/ & http://alldroid.org/threads/16201-HOW-TO-Root-Extras-Telus-Motorola-Milestone
Wednesday, March 10, 2010
Axis2: Why bother?
The BileBlog - Axis2: Why bother?
Bit harsh but very true - axis2 is not really a usable system. Sun's metro stack is way better. Just trying to get axis2's wsdl2java working resulted in me breaking a tooth in anger.
What get's my goat about Eclipse is it's linkages to Apache - the Web Tools Project webservices stuff deals only with Axis and it's ilk.
Oh yeah, there is a new Apache CXF interface which at least implements a marginally better product. But just check out the predic8 blog entry: http://www.predic8.com/axis2-cxf-jax-ws-comparison.htm
I'll quote it here for your reference:
Another post is: http://www.arobs.com/innovationtech/tag/axis2-vs-cxf-vs-metro/ ps: this seems to be mostly a cut and paste from Thomas's blog... mmm ggrr.
And also: http://srikanthnukala.net/devblog/2009/06/29/axis2-vs-jax-ws-vs-apache-cxf-vc-spring-ws/
My problem is that Eclipse only supports the Apache products with the web services client generator.
Bugger them.
Bit harsh but very true - axis2 is not really a usable system. Sun's metro stack is way better. Just trying to get axis2's wsdl2java working resulted in me breaking a tooth in anger.
What get's my goat about Eclipse is it's linkages to Apache - the Web Tools Project webservices stuff deals only with Axis and it's ilk.
Oh yeah, there is a new Apache CXF interface which at least implements a marginally better product. But just check out the predic8 blog entry: http://www.predic8.com/axis2-cxf-jax-ws-comparison.htm
I'll quote it here for your reference:
WS-* Standards
The support of the WS-Standard family can also be decisive for the selection of a SOAP engine. For example, messages sent to services can be secured with signatures as described in the Web Service Security standard (in short WSS). Table 1 shows the support for WS*-Standards of the toolkits.
Standards | Axis2 | CXF | JAX-WS/Metro |
---|---|---|---|
WS-Addressing | X | X | X |
WS-Coordination | X(2) | X | |
WS-MetadataExchange | X | ||
WS-Policy | X | X | X |
WS-ReliableMessaging | X(3) | X | X |
Web Services Security | X(1) | X(4) | X |
WS-SecureConversation | X(1) | X | |
WS-SecurityPolicy | X | ||
WS-Transaction | X(2) | X | |
WS-Trust | X | X | |
WS-Federation |
Table 1: Support for WS-* Standards (stand: Juli 2008)
(1) Supported by the additional module Apache Rampart
(2) Supported by the additional module Apache Kandula2
(3) Supported by the additional module Apache Sandesha2
(4) By Apache WSS4J Interceptor
(2) Supported by the additional module Apache Kandula2
(3) Supported by the additional module Apache Sandesha2
(4) By Apache WSS4J Interceptor
Who just wants to code against the standard is well advised with the JAX-WS implementation. The enterprise pack of the Netbeans development environment supports JAX-WS RI very well. Only a few clicks are needed to build a server or to call a Web Service
Another post is: http://www.arobs.com/innovationtech/tag/axis2-vs-cxf-vs-metro/ ps: this seems to be mostly a cut and paste from Thomas's blog... mmm ggrr.
And also: http://srikanthnukala.net/devblog/2009/06/29/axis2-vs-jax-ws-vs-apache-cxf-vc-spring-ws/
My problem is that Eclipse only supports the Apache products with the web services client generator.
Bugger them.
Tuesday, March 09, 2010
Oscars for former UTS students
From an internal email"
Congratulations to the following computer graphics students:
Glenn Sharah, who is credited on Avatar as a Shader Writer. Avatar won the
Academy Award for best visual effects.
Andre Mazzone, who is credited on Star Trek as a Research and Development
Programmer. Star Trek was nominated for best visual effects.
This is not the first time that these people have been up.
How many gadgets?
How many mobile gadgets did these boys have?
Mark only had 2.
I had 2.
But I also have about another 4 hanging around in various places.
Sigh.
Mark only had 2.
I had 2.
But I also have about another 4 hanging around in various places.
Sigh.
Thursday, February 25, 2010
How Plastic Bottles Are Poisoning Babies | newmatilda.com
Now I understand why Kathmandu are claiming their new water bottles are BPA free...
Thursday, February 18, 2010
Multivitamin Comparison - From Empty Air to Massively Boosting Health
Multivitamin Comparison - From Empty Air to Massively Boosting Health
Good Grief, it seems that Berocca Performance (3%) is just lolly water.
Of all things, Amway Nutriway is 27% and GNC Livewell is 26%.
Wednesday, February 17, 2010
"Epitaph on an Army of Mercenaries" by A.E. Housman
(ending track from the 1980 movie "The Dogs of War", sung by Gillian McPherson)
Epitaph on an Army of Mercenaries
These, in the day when heaven was falling,
The hour when earth's foundations fled,
Followed their mercenary calling,
And took their wages, and are dead.
Their shoulders held the sky suspended;
They stood, and earth's foundations stay;
What God abandoned, these defended,
And saved the sum of things for pay.
A.E. Housman
Tuesday, February 09, 2010
BRW tries to stop copying of it's content
BRW is using a new trick to stop the likes of google and traditional cut and paste:
Bots, bugs and bellyaches
They use stylesheets to mix up the letters! So if you look at the source code, you see junk:
Y u n w h t l a a e b u b i d n a e t r o s
instead of
You know that old adage about building a better mouse
In fact, the actual source code looks like this:
Bots, bugs and bellyaches
They use stylesheets to mix up the letters! So if you look at the source code, you see junk:
Y u n w h t l a a e b u b i d n a e t r o s
instead of
You know that old adage about building a better mouse
In fact, the actual source code looks like this:
Y u n w h t l a a e b u
b i d n a e t r o s t a
l a i g o h i v n i n f
b t e m u e? t a a w l
h v b e w i t n o c m u e s
n c m u e v r s s, h c b g n
s o u p o r m i g l t h s
p e d i C a d a e o p e
a o g i h h t c n l g t u e
u t b u e e y e n i a i a l
t t a s i t e s l e f o
u s s e t n e d s r o n u p c i g n u e .
Subscribe to:
Posts (Atom)