Monday, November 23rd, 2009
|
|
11:23 pm - happy 11:23
|
|
|
Monday, November 16th, 2009
|
|
9:47 pm - classic input output cycle: work --> media --> work
|
|
|
Monday, November 9th, 2009
|
|
9:00 pm - more abstract modelling
|
Ok, I managed to make testThatSelfExists() a passing test in Java.
Let's take a stab at getting a little deeper...
I'm just making up the language as I go along now, so please bear with me. I'll see if I can connect it with working code in a bit.
abstract Thing
abstract Thing initialThing()
abstract Thing finalThing()
abstract boolean isSameThingAs(Thing otherThing)
boolean hasChanged( return not initialThing().isSameThingAs(finalThing()))
OK, seems pretty sane so far. We can prove whether a thing has changed or not. But it might not be very easy to implement. We have have three concepts to prove: initial, final, same.
Let's see if we can back off the abstractions a little bit:
abstract ThingInTime extends Thing
abstract Thing thingAtTime(Time time)
abstract Time initialTime()
abstract Time finalTime()
Thing initialThing( return thingAtTime(initialTime())
Thing finalThing( return thingAtTime(finalTime())
Now we can make the whole thing work if we can just implement:
ThingInTimeImplementation implements ThingInTime
Thing thingAtTime(Time time)
Time initialTime()
Time finalTime()
boolean isSameThingAs(Thing otherThing)
Ah, shit, the abstractions just seem to be growing. Now we've introduced Time as a variable. It could be a bumpy ride.
|
|
(comment on this)
|
|
Wednesday, November 4th, 2009
|
|
11:16 pm - Yet Another Big Hairy Ultimate Model of Reality
|
I've decided to work on Yet Another Big Hairy Ultimate Model of Reality for a while just to amuse myself. I think maybe I've got a good first cut this time.
First of all I want to follow the principles of Test Driven Design. There's no point in creating a model unless you can prove that it's correct or at least useful. I've chosen Java as my modeling language for whatever reason. It's not that important. Anyway, let's proceed:
package reality;
import junit.framework.Assert;
import org.junit.Test;
public class TestReality {
private Self self = new DefaultSelf();
@Test
public void testThatSelfExists() {
Assert.assertTrue(self.exists());
}
}
Uh oh, compile errors.
TestReality.java:[8,12] cannot find symbol
symbol : class Self
location: class reality.TestReality
TestReality.java:[8,28] cannot find symbol
symbol : class DefaultSelf
location: class reality.TestReality
OK, just missing a couple of symbols. Let's take a stab at getting this test working:
package reality;
public interface Self {
public boolean exists();
}
...
package reality;
public class DefaultSelf implements Self {
public boolean exists() {
return thinks();
}
private boolean thinks() {
return true;
}
private void think() {
// whew!!!
}
}
Code compiles. Tests are green bar. Whew!!! So far so good. :)
|
|
(comment on this)
|
|
Tuesday, October 27th, 2009
|
|
11:20 pm - steps towards clarity and efficiency
|
make the hidden assumptions obvious make the obvious assumptions implied explicitly define the context of the implicit assumptions ... lather rinse repeat
|
|
(comment on this)
|
|
Monday, June 1st, 2009
|
|
8:28 pm - three things you should do in life
|
pray for the best prepare for the worst expect the unexpected
-- the gospel according to gary busey
|
|
(comment on this)
|
|
Saturday, April 4th, 2009
|
|
7:09 pm - people who do great things
|
|
people who do great things rarely set out to do great things. they just do what they do and eventually sometimes one of those things becomes great. the more they do what they do the greater the chances. persistence is the key.
|
|
(comment on this)
|
|
Wednesday, April 1st, 2009
|
|
2:27 pm - world gone mad
|
|
|
Friday, February 13th, 2009
|
|
1:38 pm
|
|
|
Friday, December 12th, 2008
|
|
5:45 pm - QOD
|
``In all the arts there is an element of controlling other humans by engaging their emotions and forcing them to feel those that are difficult or moving -- most often, the ones that [the] artists cannot cope with themselves.''
-- Oliver James, _They F*** You Up_
|
|
(comment on this)
|
|
|
1:59 pm - RIP Betty Page :(
|
|
|
Wednesday, November 12th, 2008
|
|
9:28 pm - QOD
|
``Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile''
--Hippocrates, ~400 BC
|
|
(5 comments | comment on this)
|
|
|
9:00 pm - ah good ol' r. crumb
|
your daughter --> http://www.heretical.com/miscella/rcnoa.html

The candy bar's slogan was "It's BAD For You!". The wrapper's artwork was printed onto a promotional lapel button: Devil Girl giving a knowing wink and a voluptuous smile to the reader while saying "Eat me!".
The back of the wrapper read "7 Evils in One! 1-Delicious Taste; 2-Quick, cheap buzz; 3-Bad for your health; 4-Leads to hard drugs; 5-Waste of money; 6-Made by sleazy businessmen; 7-Exploits women".
The bottom of the display box featured the following text written by Crumb himself:
“ A word to wholesalers and retailers of the Devil Girl Choco-Bar. It may seem to you the depths of marketing ignorance to state in bold letters on the package 'IT'S BAD FOR YOU', but think about it... this is a brilliant strategy in consideration of kids today; a stupid, know-nothing generation of brain-dead morons who want nothing more than to be 'BAD'. We're certain this morally bankrupt horde of 'slackers' will eat up this low-grade product as fast as you can place it on your candy counter. The sharp, up-to-date business operator will not fail to perceive the beauty - and reap the profits - in the hook 'IT'S BAD FOR YOU!'
|
|
(comment on this)
|
|
Monday, November 10th, 2008
|
|
7:01 pm
|
sooner is better than later
but later is better than never
in other words (to quote the nike ad):
just do it.
|
|
(comment on this)
|
|
Monday, November 3rd, 2008
|
|
9:02 pm - six words to live by
|
|
|
Thursday, October 30th, 2008
|
|
2:41 pm - revolution, coldcut style
|
|
|
Wednesday, October 22nd, 2008
|
|
10:08 am - JSR-311 considered complete and utter crap
|
JSR 311: JAX-RS: The JavaTM API for RESTful Web Services http://jcp.org/en/jsr/detail?id=311
Point 1:
``2.6 Why isn't this need met by existing specifications? The APIs currently available for the development of RESTful services are too low-level and require a deep understanding of HTTP issues and design patterns. We need to enable developers to write these services easily.''
If you don't have a deep, low-level understanding of HTTP issues and design patterns then you're unlikely to be able to develop truly RESTful services. This is just another attempt at dumbing down technology to make it more accessible to unskilled practitioners.
Point 2:
``The goal of this JSR is to provide an easy to use, declarative style of programming using annotations for developers to write REST ful Web Services and also enable low level access in cases where needed by the application.''
This means the framework will attempt to make it natural for you to build RESTful services but you're free to completely mangle your implementation because of your incomplete understanding of REST and HTTP principles.
And finally:
``RESTful Web Services is a relatively new area in the industry and there are still a lot of unknowns in this space. For example, a key aspect of RESTful Web Services is for the service to be stateless. However, this often requires the developer to produce boiler-plate state restoration code that could be avoided with state-aware API help.''
Since one of the fundamental principles of REST architecture is Hypermedia As The Engine Of Application State this makes me wonder whether the authors of this JSR even understand REST principles themselves.
|
|
(comment on this)
|
|
Thursday, October 16th, 2008
|
|
10:29 pm - descartes for pisces
|
|
|
|
7:25 pm - new word
|
|
dysergy: n. when the whole is less than the sum of the parts
|
|
(comment on this)
|
|
Tuesday, October 14th, 2008
|
|
6:24 pm - another fun game
|
|
|