Archive for the ‘Uncategorized’ Category

BIL 2010 PARTICIPANTS - WELCOME

Saturday, February 13th, 2010

Today I attended the fantastic event BIL. It is an “un-conference”, and was originally conceived as populist way of crashing/synergizing with the event known as TED.

(Though TED is awesome at spreading great ideas across the web, the speakers are by invite-only…and uninvited people must pay thousands of dollars to attend!!)

The incomparable organizer Todd Huffman gave me a minute to make an announcement after the talks had finished. I said something along these lines:

Hi there. My name is Brian. I love open source, and started a web site to support it called hostilefork.com. I also love Wikipedia—and I love events like BIL. So if you are doing something awesome and write me, I’ll do my best to offer any insights I can to help. My time is yours.

ALSO… I have an extra ten of these drinking glasses that need to find happy homes. As an added incentive, for each glass that is adopted I will donate $10 to BIL. So if you want to talk to someone technical–who will make time for you and your great idea, at no charge–find me and adopt a glass.

I hope to help you, but if for nothing else, do it for BIL!!

Yet while I and the other final announcers were speaking, the enthusiastic attendees were voluntarily packing up chairs. After all, we had to make our deadline for exiting the venue!! But I don’t think hardly anyone could hear me, and I think “something about open source and a glass” is about the gist of what anyone got out of what I said. :)

Thus only four glasses were claimed by the time we left the pavilion for lunch. But as lunch was wrapping up and I was about to hand Todd the $40 and head on home… people began to express curiosity about what was up with the glasses. Suddenly they were in demand, and the tenth was even contested over who would get it! I’m glad that the result is that every glass found a home, and I could give $100 to a wonderful cause that I supported wholeheartedly all the way back to when I attended the first BIL two years ago!

SO IF YOU GOT A GLASS: My hope is that you will keep it, and some night you will be enjoying a drink and be reminded that “The Fork” humbly offers his time and insights free-of-charge to the very sort of good people who think BIL is important!!! (I want not only good ideas to flow, but also that we all be vigilant in ensuring there isn’t an ever-increasing barrier to participation in that flow…)

MY PROJECTS: I know my WordPress theme is the default and lame, but if you look over in the right hand column you’ll see I’ve tried to make pages for my various open source projects. The one I’m most excited about is BlackHighlighter, which I’d like to develop further. (I’m especially interested in changing the balance of power in communications between people with little influence who send messages to those who get a lot of messages…and my goal is to employ BlackHighlighter to the communications between the electorate and Congressional representatives.)

I’M OPEN TO YOUR IDEAS AND CRITIQUE: This site is still in its formative stages, and it’s only one of my projects. But I did manage to get #1 Google rank for “hostile fork” and “hostilefork” and that makes me happy. (Because I want to STOP hostile forks, see my about page for more on my wish that open source developers push toward synergy, as if they were a company even though they are not!)

I invite you to talk with me about anything you’re working on. Leave a comment and I’ll write you back, or write me on Gmail… or follow me on Twitter.


I’d like to give thanks again to Todd, and to all the speakers and participants who gave their time the last two days. As much as I respect institutions and gatekeepers of clarity in knowledge, *someone* has to stand up and be the arXiv to the ACM… the Wikipedia to the Citizendium… the BIL to the TED!!


The Story behind the Glasses

These were a batch of 10 that had been in storage and difficult to give away, because the printer had screwed up in applying the third color (the white in the eyes):

I’d thought many times of just tossing them into the recycling, as they didn’t meet spec. But BIL has revolutionary thinkers—who share stories like beer bottles being presciently designed as interlocking bricks to build houses! How could I be throwing out these perfectly functioning highball glasses?

Once my carpool arrived in Long Beach, I ponied up the paltry (not to mention purely optional) suggested BIL donation of $20. Then I noticed there was exactly $100 left in my wallet, and ten glasses in my backpack. An idea formed:

What if I suggested that I would donate $10 to BIL for each glass that people would agree to give a safe and happy home? I mean, why not? I could use a dry-erase marker to write my website on it and it would be like a “business” <cough> card!

The idea rolled around in my mind as I listened to the speakers. I hesitated, BUT a talk regarding the 4 steps to accomplishing “virtually anything” made me realize the actual difference between “I can’t” and “I won’t”. Like Wikipedia, here was a case where I could—and more importantly should—lend financial support!

I’m very happy with the results. So thank you all!

.Trashes, .fseventsd, and .Spotlight-V100

Wednesday, December 2nd, 2009

Merely plugging a removable drive into a mac (when it has write access) makes OS/X think it can take the liberty to write a lot of hidden garbage onto that disk. If you want to stop this from happening, you have to put some special files on that disk before you plug it in.

To stop OS/X from doing Spotlight indexing, you need a file called .metadata_never_index in the root directory of the removable drive.

To stop OS/X from making a .Trashes directory, you need to make your own file that *isn’t* a directory and call it .Trashes

To keep it from doing logging of filesystem events on the drive, you need to make a directory called .fseventsd and inside that folder put a single file named no_log

The contents of these files don’t matter, so you can make them empty files using touch. Even better, you could make it a text file with a link to this post, so that you (or someone else) wandering across the files will know what they’re for.

Apple’s choice to do this is incredibly self-serving and shameful. At bare minimum, hidden files and features like these should be off by default for any non-mac-only filesystem formats. They should only be enabled when the user has been made aware of them.

Permanently Changing GRUB Menu In Ubuntu

Sunday, November 22nd, 2009

Ubuntu has a nice install screen that lets you press F4 for Modes or F6 for Other Options. If you have an older laptop, you may find that you can’t boot unless you turn on “Safe Graphics” or check “acpi=off”.

(Note: In my case, the failure I was experiencing on boot was accompanied by horrible graphic corruption on the LCD. This made me think I’d need safe graphics mode, but that had no effect. It turned out the acpi=off was the setting I needed to get through the boot. YMMV.)

Yet there’s a catch to getting Ubuntu working this way. It may get you through the install, but once you’re finished and try to boot from your hard disk these options aren’t there any more. As of 9.10, it seems that it does not slipstream these settings into the configuration files on your hard disk.

As more of an exercise than anything else, I looked into how to address this after installing Ubuntu onto an old Pentium III laptop. Hopefully it can help someone else. Here goes…

(more…)

An Enumerated Type For REBOL 2

Saturday, June 13th, 2009

I’ve uploaded a script (enum.r) to rebol.org, which implements enumerated types. Although I typically prefer catching these things at compile-time instead of run-time, I’m pretty pleased with how it works. Especially cool is that I could add a powerful version of this language feature in only about 60 lines of code!!

(Note: That figure doesn’t include the comments and the regression tests. I included those in the script, but they are not necessary to use the enum itself.)

I called it “powerful” because it does more than just ensure assignments to objects use legal possibilities. Here’s a demo to show it off, and bear in mind that there’s no native support for enumerations in REBOL:

>> fruit: make-enum-type [apple orange banana mango]
 
>> favorite_fruit: make-enum fruit 'apple
 
>> set-enum favorite_fruit 'shoe
** User Error: illegal enum value ( shoe ) when 
     possibilities are [ apple orange banana mango ]
 
>> switch-enum favorite_fruit [
     orange [print "orange"]
     mango [print "mango"]
]
** User Error: missing switch-enum cases for [ apple banana ]
 
>> switch-enum/default favorite_fruit [
     mango [print "mango"]
     apple [print "apple"]
     banana [print "banana"]
] [print "other stuff"]
** User Error: switch-enum specifies a /default which is 
   more clearly expressed as case ( orange )
 
>> switch-enum favorite_fruit [
     appel [print "apple"]
     bananna [print "banana"]
     orange [print "orange"]
     mango [print "mango"]
]
** User Error: illegal case values for switch-enum
     [ appel bananna ] when possibilities are 
     [ apple orange banana mango ]

The syntax isn’t necessarily ideal, but that’s a *lot* of features for 60 lines of code!

It makes me reconsider the tradeoffs when compared with gigantic compilers. Although static analysis tools are necessary for huge codebases, the REBOL approach might be able to reduce the amount of code to a manageable size. Perhaps then, one can verify it is correct by actually reading it. :)

(more…)

Major Quirks of the Rebol Language

Wednesday, September 10th, 2008

This is the third of several articles I’m going to write about the Rebol programming language. To learn more about it, you can visit rebol.com. But my hope is to demystify some of its strengths and weaknesses in a way that their website currently does not, so if you read what I write first then it might help. :)

(Clear Warning: Rebol is not “free as in freedom” software, and no commitment has been laid out for how the commercial scaffolding which supports its development would be phased out. I know of no published statement that RT would not sue ORCA or other open-source efforts to implement the language. Until these issues are resolved, I consider it only an interesting thing to study and do *not* suggest its use in important projects. While Rebol may rebel against complexity, I think the rebellion for freedom is more fundamental—and the infrastructure we build on is too crucial to be left in the hands of one company that decides who may use a tool and how.)


We know from the English language that humans are a bit lazy when it comes to expression. We’re always dropping syllables off of words if we use them often, or taking difficult combinations of letters and turning them into something easier to pronounce. Yet of course, this means we live in an environment ripe for ambiguity:

Ambiguity in a Sentence, diagram from Deena Oodles

(Note: Image via Deena Hyatt)

By contrast, computer languages typically make programmers be redundantly clear in their notations. You’re always dealing with syntax… putting in parentheses before a list of arguments to a function, putting a close parentheses to say when you’re done. There are semicolons in many languages to tell the computer when you finished a line.

Yet we get a lot done with English without that symbol soup. Somehow, we communicate to each other with little more than a series of words separated by spaces. Essentially, that’s what a Rebol program is… “words” separated by “spaces”. It has conspicuously few parentheses or semicolons. Or equals signs, for that matter! If you strip out some of the incidental uses of symbols in names, it might be mistaken for human writing.

(Note: Some of the stranger notational aspects are just for show, for instance the function named none? could have just as easily been called is_value_none… you can change it to that if you want to. But the question mark convention is nice for boolean functions.)

So keep that interesting aspect in the back of your mind while I go straight for the jugular in terms of things about Rebol that may seem totally insane. I’m just being up front and honest with you about things you will find surprising. I will talk about the curious upsides after we’ve banged our heads against our keyboards a few times.

(more…)


Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported