Saturday, February 28, 2004

Java Serialization Framework

I'm so excited right now. I started the Java Serialization idea 2 years ago! Now, it should not have taken this long to write it, but I've change jobs twice and lots of overtime at my real job doesn't help. Well, I finally got some free time and got it working. I'm still not 100% happy with it, but I plan on making that better over time. The next mission is to be able to run the Java byte codes in the class loader. Should be fun! But, I can at least say that I finished what I set out for part 1. Anyway, check it out here. I've already found it great to debug serialized java object streams (especially, if the classes had changed and someone forgot the serial version UID!). It now does read/write of serialized streams.

Wednesday, February 25, 2004

Camp Smalltalk, Here I Come!

I just sent in my deposit and I can't wait to make the journey to this year's Camp Smalltalk. It will be the first one I've ever attended. So, who's coming with me?

Monday, February 23, 2004

Why Smalltalk is so freaking great

Go directly to Alan Knight's post. AMEN BROTHER! AMEN! Can I add a few?
  • Metaclass The most fun one person can have. Their power is enormous. For example, by taking advtange of metaclasses, I can write compilers inside of Smalltalk! I can also browse the code and debug it with my Smalltalk tools! WOW! Smalltalk/X has several examples built in (Prolog, Java, etc), Squeak has several to download, and not to mention that any other Smalltalk allows it. I can do this on a per class basis. There's a lot of sick things that you can do like have compile each of your classes differently or even have them "behave" differently. Recently, I heard they were adding instance-based behavior (ala Self) to Squeak so you can add methods and variables to instances and not just classes. So, you could have instances with different behavior. How COOL is that!?

  • become Yeah, yeah, yeah, I know...Every book tells you not to use it, but when you're developing, it comes in very handy. And I still contend it's good for proxies. It's something to use sparingly and I will always look for other solutions. But, it's nice to have it when you need to get rid of instances in your image.

  • IDE is a running Smalltalk system Now, the Eclipse folks will say that this is true for it as well. But, can I change the way I look at classes and see my change immediately without restarting the environment? No is the answer in Eclipse and yes in Smalltalk. It's an amazing thing to taylor your IDE to you and do it while you're in it without shutting down.

Well, that's all I could add since Alan did such a great job. Go read his excellent post now!

Saturday, February 21, 2004

Excellent Article On Business and Lisp

There's simply nothing more that I can add, except go read this blog post from Bill Clementson. I think we should do the same for Smalltalk as well since I think it's equally suited for the same reasons Bill gives for Lisp.
Definition of Stupid

I've never seen this definition before, but I like it:
    A stupid person is a person who causes losses to another person or to a group of persons while himself deriving no gain and even possibly incurring losses.
I gleemed this from a post from James Robertson's blog.

Friday, February 20, 2004

I want to go!

Here's the details on Camp Smalltalk 2004!
    I'm pleased to announce that we will be holding a Camp Smalltalk from
    July 18-23 2004 in the vicinity of Portland, Oregon, USA.

    To finalize our space reservation, we need to place a deposit on a
    minimum of ten sleeping room reservations. We expect more than that to
    attend, but we need at least ten definite attendees to step forward
    and send in a deposit now. We must receive the minimum number of
    deposits BY MARCH 5. If you want to make a reservation, see below
    for details.

    The basics:

    What:
    Camp Smalltalk. Smalltalk enthusiasts spending several days in small
    groups collaborating on a number of open-source projects to benefit the
    Smalltalk community. All Smalltalk dialects welcome. For more details,
    see http://campsmalltalk.com.

    Who:
    Smalltalk enthusiasts. All experience levels are welcome, from "Using
    Smalltalk for more than 20 years" to "Fascinated by Smalltalk, but never
    really used it."

    When:
    Afternoon of Sunday, July 18, through midday Friday, July 23

    Where:
    McMenamins Edgefield
    Troutdale, OR, USA
    http://mcmenamins.com/Edge/index.html

    How Much:
    The main cost is the lodging and meals package at Edgefield. You're
    responsible for getting yourself there. All prices given include room,
    meals, gratuities, and tax for all five nights, and are in $US.

    Single-occupancy King or Queen or Double Queen room: $600
    Single-occupancy King or Queen or Double Queen Suite with bath: $952.50
    Double-occupancy King or Queen or Double Queen room: $530 per person
    Double-occupancy King or Queen or Double Queen Suite with bath: $787.50
    per person

    There are very few rooms with two beds -- if you want one of these
    rooms register soon.

    We're looking into high-speed internet access, which would have some
    additional cost. We will not commit to additional cost without the
    approval of those who have registered.

    ---------------------------------------------------------

    Facility Details:

    Location

    McMenamins Edgefield, Troutdale, OR, USA
    http://mcmenamins.com/Edge/map.html
    A 15 minute drive east of PDX, the Portland Airport
    It's right on the edge of the Portland Metro area, five minutes from the
    hiking and waterfalls of the Columbia River Gorge. It's easy to reach by
    public transit from either PDX or downtown.

    -------------------
    General Feel

    A private brewpub-based resort at a lovingly and quirkily restored
    historic campus of buildings -- lodgings, restaurants, brewpubs,
    winery, gardens, movie theatre, and more. Even a little golf
    course. Filled inside and out with interesting artwork
    (http://mcmenamins.com/Edge/art.html). Even a working hot glass studio
    on the grounds. Hillside location with views across the Columbia River.


    --------------------
    Work Room

    We'll be in the main ballroom, which is generously sized (36x68 feet,
    11x20m), on the second floor of the main lodge, with many windows on
    three sides and a huge mural on the walls.
    The view is away from the river.

    ----------------------
    Sleeping Rooms

    Mostly European-style rooms, with private baths down the hall. Some
    suites with bath are available at a higher rate (see above). Most
    rooms have one bed. A few two-bed rooms are available -- send in a
    deposit soon if you want one of these.

    -----------------------
    Meals

    Meals are included with room. If we eat in fairly small groups in their
    restaurants, they'll give us vouchers good for up to a specified amount
    for each meal. The Black Rabbit Restaurant
    (http://mcmenamins.com/Edge/brabbit.html) is very good, and the Power
    Station Pub (http://mcmenamins.com/Edge/pub.html) also has good stuff.
    Voucher amounts will be $10.50 for breakfast, $16.95 for
    lunch, $26.25 for supper.

    -----------------------
    Activities

    On-site: Golf, evening movies, wandering around looking at interesting
    stuff (brewery, winery, distillery, artwork).

    Fairly short drive: The Columbia River Gorge
    (http://www.fs.fed.us/r6/columbia/forest), with hikes and viewpoints
    for amazing waterfalls and volcanic cores, Bonneville Dam, mountain
    viewpoints and more hikes. About the same distance to downtown Portland.

    Longer drive: Mount St. Helens, Mount Hood, boardsailing or kitesailing
    on the Columbia, etc., etc.

    ==========================================
    Registration
    ==========================================

    To register, print out the registration form available at
    http://wiki.cs.uiuc.edu/CampSmalltalk/Camp+Smalltalk+Oregon+2004
    and send it with your deposit to:
    Martin McClure
    GemStone Systems
    1260 NW Waterhouse Ave, Suite 200
    Beaverton, OR 97006 USA

    To help us reach our minimum, and to guarantee you a room, we must
    RECEIVE your deposit by MARCH 5.

    For details, check the FAQ below, or the latest info at
    http://campsmalltalk.com

Wednesday, February 18, 2004

Reading List

OK, I just found this recommended reading list from the Squeakland website. It was compiled by none other than Alan Kay. What shocks the hell out of me is that I've never heard of any of these books. Crap, just as I'm getting a little bit of head way on my reading, this comes up. Looks like I'm going to have my nose in a few books soon...=) Should be a lot of fun!
Master of Fine Computing And Mentorship

Alright, I've been thinking of the idea of aprenticeship lately (shocker, right?). And it got me thinking about the mentors that I've had in the past. Several people have taken me under their wing and mentored me. I am thankful to every one of them. I learned different things from each of them. Everyone of them have made me not only a better developer, but a better person as well. Mentors can teach things that a book will never ever do. They teach experience via horror stories of their own past. The writing style of Andy Hunt and Dave Thomas reminds me of being around a great mentor without being physically there. I love their books, but back on topic... I am thankful that I've studied under the best. They made me understand objects, taught me all sorts of cool tricks, and discipline. But, I feel like I have so much more to learn. Which brings up to my next question. Who would you want to be a apprentice under? I've already be an apprentice under Steve Wessels, Richard Manning, John Sarkela, Paul McDonough, Leroy Mattingly, and many more than I can think of. So, here's a list of people I would love to be an apprentice to: Paul Graham, Andy Hunt, Dave Thomas, Rebecca Wirfs-Brock, Allen Wirfs-Brock, Dan Ingalls, Alan Kay, Jill Nicola, Mark Mayfield, Mike Abney, Robert Martin, Martin Fowler, Kent Beck, Ralph Johnson, Gerald Sussman, Harold Abelson, Joe Armstrong, and many more. I'm sure I'll think of more that I missed later. The list grows every year. But, it's fun to think of. There's just so many people that have helped me and will help me. I'm thankful to them all. So, who would you pick if you could pick anyone to be an apprentice for?
Harvesting Party For Squeak

Ken Causey just announced 100 hour parties for harvesting Squeak bug fixes. I think this is simply a brilliant idea and I hope to attend at least one of these:
    Also posted as a story at
    http://people.squeakfoundation.org/article/29.html

    No, I don't mean one party that is 100 hours long. I mean a recurring
    party every 100 hours.

    I'm sure everyone has noticed that the Harvesting process has
    bottlenecks. We are largely a community of Doers. It's difficult to
    find the time to settle in and take care of some of the mundane issues
    associated with harvesting. We also don't have enough eyeballs looking
    at code right now even at the best of times. So I would like to borrow
    a page from other open source communities and schedule our version of a
    bug squashing party. To steal from Kent I would like to 'turn the knob
    up to 10' on this concept. Let's have a regular event scheduled in such
    a way that everyone has an opportunity to attend at least once a month
    or so. 100 hours = 7 days * 24 hours - (3 days * 24 hours) + 6 hours.
    By scheduling a 4 hour party every 100 hours each party will occur on a
    different day of the week during a different period of the day. With an
    average of 7 parties each month taking place on different days and at
    different times everyone should be able to find a time to attend at
    least one each month.

    We can develop the details of what happens at a Harvesting Party over
    time but I envision that everyone that has some free time during the
    party come to the Squeak IRC channel (#squeak on irc.freenode.net) for
    companionship and virtual refreshments. You will start up a Squeak
    image with BFAV2 loaded and pick out a BUG or a FIX or an ENH that needs
    reviewing or approving or fixing (depending on your abilities and
    preferences). When you run into a snag or a question the others
    attending the party will be there to provide support and advice.

    I floated the idea first to Göran on #squeak and he mentioned that he
    had just sent an email to Marcus Denker suggesting a 24 hour harvesting
    party to try to move 3.7a along to beta status. So we threw the idea
    together and so here's the bang:

    The first Harvesting Party will take place from Noon GMT Friday February
    20th, 2004 to Noon GMT Saturday February 21st, 2004. A 24 hour party
    with a goal to replace that 'a' with a 'b'.

    The next Harvesting Party will take place at 16:00 (4 PM) GMT on
    Wednesday February 25th, 2004 (100 hours after the end of the big
    party).

    Each regular schedule Harvesting Party will last 4 hours.

    The schedule for the next 7 harvesting parties is (each 100 hours after
    the start of the previous party):

    20:00 (8 PM) GMT Sunday February 29th 2004

    24:00 (Midnight) GMT Friday March 5th 2004

    04:00 (4 AM) GMT Tuesday March 9th 2004

    08:00 (8 AM) GMT Saturday March 13th 2004

    12:00 (Noon) GMT Wednesday March 17th 2004

    16:00 (4 PM) GMT Sunday March 21st 2004

    20:00 (8 PM) GMT Thursday March 25th 2004

    I will handle announcing the parties regularly.

    So put on your party hat, limber up your fingers, prepare your mind, and
    show up!

    Ken Causey

Tuesday, February 17, 2004

Insanity

I've always been bothered with the notion that programmers are interchangeable parts. Technical managers that I have had seem to think we are all the same. Cut from the same tree if you will. Am I the only one that thinks this is hog wash? Like anything in life, there will be people that rise to the top of their field and be the best there is. But, it seems people think that programmers are all the same. I find this bothersome. I've known managers that thought they could pull anyone off the street and in 6 weeks have a good programmer. Would we expect to do the same with musicians? Just pick anyone off the street that knows nothing about music and expect them to play a mozart concerto flawlessly after the same period of time? I think the answer would be no! Would we expect to take even a first year english student and expect them to write poems the caliber of William Shakespeare? HELL NO WE WOULDN'T! So, why do we expect the same from programmers? I think like anything in life, those that have passion for programming will be better because they simply practice more (and read more too). We all know great programmers are hard to find (and I always pick their brains when I find one). Not every programmer is the same. We all have strengths and weaknesses. Why should we treat software engineers as interchangeable? It makes for nice marketing, but leads to mediocre software. I hear a lot of complaints about that. Well, I think one path away from mediocre software would be to stop treating us as interchangeable equal parts. Some people will be just better (either through talent, brain power, or sheer knowledge) at certain programming tasks. We should listen to them more when we are doing those tasks. The expert will not always be the same person. We should give them work that matches those talents. There is room for every skill level of developer on a project (and for each task), but we should make our better programmers be the mentors for their respective expert area. The best way to learn is by example and everyone can improve their code-fu. Thinking of programmers as being on the same footing leads to laziness and never offers a way for junior developers to learn from the more talented developers. Apprenticeships should be our path. Programming is not a simple task and has many facets. Why don't we just acknowledge it? I seemed to be all over the map on this one, but there's a lot to be said.

Sunday, February 15, 2004

Updgraded to Squeak 3.7a

WOW! It looks pretty! I love the new font and a lot of the graphics to make things look a little bit more mature. I like it! It took awhile to update my 3.6 and it looks like there has been a LOT of changes! Squeak changes a lot from release to release and it's simply amazing. I've also decided to work on my Java Serialization framework again and to finish it up!

Saturday, February 14, 2004

Silly

Do you love peanut butter and jelly? Well, it peanut butter and jelly time! Go here to prepare!

Thursday, February 12, 2004

Great article

I just finished Dave Thomas' and Andy Hunt's excellent article, The Trip-Packing Dilemma. I wish I had the knack for boiling concepts down like they do and making them easy to understand. I've been questioning the YAGNI (you ain't gonna need it) concept lately of XP and they have written an excellent critique of it. It's full of food for thought. Right now, they might be favorite programming authors (better watch out Mr. Fowler). They don't know how much I get from their wisdom. I am eternally grateful.

Wednesday, February 11, 2004

Smallblog

I just read via the comments on James Robertson's blog that Avi is working on a new version of SmallBlog! I've been looking at adding cookies for a little while (but I got too deep and screwed everything up). And well, I must admit I can not wait till Avi is finished so I can see how he did it! I haven't made any new updates to Smallblog because of this and I keep finding myself in trouble in the code. But, I've been learning a lot about Comanche and Seaside (always a good thing).

Monday, February 09, 2004

Great Joke

My grandmother-in-law sent me this great joke:
    Three Southerners and three Yankees are traveling by
    train to the Super Bowl. At the station, the three Northerners
    each buy a ticket and watch as the three Southerners buy just one ticket.

    "How are the three of you going to travel on only
    one ticket?" asks one of the Yankees.

    "Watch and learn," answers one of the men from the
    South

    They all board the train. The three Yankee men take
    their respective seats but all three Southerners cram into a toilet
    together and close the door. Shortly after the train has departed, the
    conductor comes around collecting tickets. He knocks on the toilet
    door and says,
    "Ticket, please."

    The door opens just a crack and a single arm emerges
    with a ticket in hand. The conductor takes it and moves on.

    The Yankees see this happen and agree it was quite a
    clever idea, so after the game they decide to do the same thing on
    the return trip
    and save some money. When they get to the station
    they buy a single ticket for the return trip, but see, to their
    astonishment, that the three Southerners don't buy any ticket at all.

    "How are you going to travel without a ticket?" says
    one perplexed Yankee.

    "Watch and learn," answers the men from the South.

    When they board the train the three Northerners cram
    themselves into a toilet and the three Southerners cram into another
    toilet just down the way. Shortly after the train is on its way, one
    of the Southerners leaves their toilet and walks over to the toilet in which
    the Yankees are hiding. The Southerner knocks on their door and
    says, "Ticket, please."
More Alto Dorado Music Posted

Well, it's old stuff that was mainly written on my qy-70 when I first learning midi sequencing. Fun stuff. I dragged it back out and had forgotten how much I enjoyed it. So, I decided to put it on the web. Hell, I figured somebody out there might like it. Go here to listen and scroll down to the bottom (it's the oldest stuff, thus it's on the bottom).
Nothing cleanses the soul

Like a day of listening to nothing but Zakk Wylde. I can not wait for his new acoustic album. If it's anything close to Book Of Shadows. The man is a rare breed: a great guitarist and songwriter. Something that you don't see too often. Plus, you gotta love that southern rock vibe coupled with heavier than hell guitars. It doesn't hurt that he puts down Limp Biskit every chance he gets too....Hehehehehe...=) Just preparing myself for some great southern metal tomorrow: DAMAGEPLAN! This is going to be the year that the southern boys teach everyone what an ass kicking truly is. I know, I know, Zakk is not southern, but damn, I make him an honorable member of the club of southern metal gentleman. Hint: Zakk's the real deal and not that wuss kid rock....=) Now, if Dimebag and Zakk would make one album together....Metal would be over as we know it.
New Agent Remote Control

I decided to spend a little bit of time and make some much needed updates to my agent remote control software. It's a fun little project that I do for just me. I've now added the capibility to load/store your own tapes for the agent to run. The next version will have the capability to edit the event list and the delays. I also fixed several bugs that had been nagging me and a basic clean up of the code. I'm still not happy enough with the code to release it yet. Anyway, have fun.

Sunday, February 08, 2004

Collections, messages, and blocks

I've been seeing a lot of code lately that uses select: and collect: messages to collections and you might be thinking, "yeah, Blaine what's the big deal, that's the way we do things!" Now, doing a collect:, select:, or anything else on small collections is fine, but what about when the collections get big? Things like a collect:, select:, or reject: become time consuming and huge memory suckers, since Smalltalk has to create a new collection for the new copy. Or does it? Since, we are just sending messages around and are encapsulated from the implementation of the collection that is returned by collect: or select:. Why not delay the calculation? Keep the block around and avoid calculating the new collection until absolutely necessary. I want to play around with this idea and see what happens. I'm thinking for small collections, it will cost more, but as the collection grows to be very large, the performance gain of not creating a new collection will be enormous. Or maybe not...Stay tuned...At the very least, having a language with lambdas (blocks) and dynamically typed gives one a lot of flexibility to think thoughts like this and try them out.

Wednesday, February 04, 2004

YAFSS

More snow coming (I'll let you figure out the acronym) and we're expecting 6-10 inches. There's already like a foot on the ground. This is the third major snow storm is less than 1 month. Oh joy, more shoveling...=)
New Damageplan kicks ASS!

Well, I just couldn't resist the temptation and listened to the entire new Damageplan tonight on vh1's site. The sound was crappy, but the songs came shining through. There's more diversity in the songs (I would have liked a little more) than in Pantera and I think I'm going to love it with each listen. It's cool to see southern brothers doing good and still making kick ass music. Alright, Crowbar you're next for kicking my southern ass...=)
Space Music Retreat

I WANT TO GO! Check it out:

SYNAPTIC CONFLUENCE
space music retreat
May 3-7 2004
Sky Lake Lodge, Rosendale NY

There will be a retreat for electronic musicians at a secluded lodge in
the Catskills of NY state.
Anyone who is interested in sharing 4 days of space, ambient, electronic
and experimental music is invited to participate. Musical activities
will include individual performances, group improvisations, and
collaborations. This is a great opportunity to develop creative ideas
and broaden your musical community, while relaxing in a peaceful,
natural setting.

Non-musicians are also welcome.
The registration fee of $320 will cover 4 nights lodging and 3 meals per
day.

Details are available here:
http://spacemusic.us

We are also planning a one day space music festival in Philadelphia, on
the Sunday after the retreat (May 9). Priority for performances at the
festival will be given to those traveling longer distances to the
retreat, and collaborations formed there.
Happy Birthday Alice

Well, it's the master's birthday! Let's hope he enjoys more! Which reminds me...when is that new tour coming around? I need my Alice fix!

Sunday, February 01, 2004

March 9 is going to kick all ass

The Judas Priest box set is coming out on that date and it has something that I have been waiting for a long time. The 1983 Memphis concert from the Screaming For Vengeance tour!!!!!!!!!!!!!!!!!!!!!!!!!!!!! OH MY GOODNESS! Now, all I have to wait for is the new Alice Cooper remastered discography! This is going to be the year of music!
More Snow

Another 6 inches is to fall upon us. Oh joy...

Amazon