[Home]SunirShahArchive

MeatballWiki | RecentChanges | Random Page | Indices | Categories

The new Wikix parser which I talk about below is also coming along strongly. I can't wait until I have built a WYSIWYG editor that can work with arbitrary WikiSyntax styles.

Have a look at where the current design rests. I'm very proud of it in its current incarnation. http://www.bibdex.com

In other news, as it turns out, MeatballBackups had failed since 2008. Good thing nothing bad happened last year. I now have two redundant backup systems in place. I'll be working harder to test backups on a more regular basis.

I was hoping to get rid of Apache2 and simplify the server, but that was unsuccessful. As it turns out, nginx does not do CGI (CommonGatewayInterface?), so I have to proxy all the CGI scripts in the old setup to Apache2.

Bottom line: That means that MeatballWiki, UseModWiki, and BibWiki are now being proxied through nginx to Apache2.

If you notice any instabilities, email me at sunir splat sunir point org.

I've had quite a bit of success. I've combined ideas from ChrisPurcell's InfiniteTypewriter regular expression descent parser that was cleverly constrained by the acceptable XHTML in the current context, and my InfiniteMonkey line-oriented parser which is ridiculously fast, plus some new razzle dazzle. The biggest new idea was to abstract the syntax description into a DomainSpecificLanguage? (which is actually expressed in JSON).

Here's a taste. Of interest, you can make this XHTML conforming by changing the hierarchy so ul and ol only contain lis, and lis contain lists, but browsers do not render this correctly. But do you see how simple it is to totally change the parser structure by using a DSL?

  root: {
    children: [ 
      'lists', 'blockquote', 'monospace', 'table', 
      'headers', 'hr', 
      'p'
    ]
  },

  lists: {
    children: [ 'ul', 'ol' ]
  },

  ul: {
    scope: 'multiline',
    tag: 'ul',
    starts: '*',
    children: ['lists','li']
  },

  ol: {
    scope: 'multiline',
    tag: 'ol',      
    starts: '#',
    children: ['lists','li']
  },

  li: {
    scope: 'line',    
    tag: 'li',
    children: ['inline_styles']
  },

Also, I'm in New York this week for Web 2.0 Expo.

I'll be visiting AlexSchroeder, but missed the chance to visit HelmutLeitner. Maybe next time!

In other news, I'm incredibly bummed about the net.death of _why (aka Why the Lucky Stiff). I know it's a GoodBye in the worst sense, and it's apparently in reaction to having his identity outed, but I don't hold _why to the same standards as average contributors because the _why identity was always a game. Still, it does leave me with a singed final impression of him.

Meanwhile, I'm very close to launching a useful version of BibWiki / Bibdex. However, sailing season is still going on strong, so priorities, priorities! Life is too short, right?

I'm still very curious if anyone has any feedback on BibWiki. See previous diary entry for links. I'm excited to finally be out of the heads down development period!

UPDATE (up again). I've put the server up again. You can play with it [here]. You may find it more enlightening to go straight to a [public test wiki].

I'm on the road this weekend. If the server crashes again, I'll reboot it from my iPhone and leave BibWiki down.

A couple notes:

Feedback would be appreciated!

The server has been remarkably stable since my recent changes to Apache. Cross your fingers. However, has anyone found the site to be excessively slow? That was one of the risks with the new configuration.

This problem would be greatly alleviated by using nginx as it has a better process model. I'll get around to porting the server sooner or later.

The problem would also be greatly alleviated by upping the RAM on the server, but I'm reluctant to do that quite yet.

I've also upped how much I am monitoring the server. It now text messages me when the server runs out of memory. I dread the next server crash, as I'm sure it will happen during a dinner party. ;)

There's a nice line now, arguably, from Piny the Elder to Jimmy Wales. That and other stories about how and why Wikipedia exists abound in Andrew Lih's new book, The Wikipedia Revolution.

Wikipedia exemplifies so many of the principles of change we're living these days: commons-based peer production, openness, online community, the wisdom of crowds... you get the picture. And it's not all goodness and light, either.

With Andrew, let's discuss:

Date: Monday, April 13, 2009
Time: 10:30 PST, 1:30 EST
Dial-in Number: 1-712-580-1100
Participant Access Code: 778778

Wiki goodness at www.yi-tan.com

Please feel free to forward this note to people you think would be interested in these calls.

I am experimenting with wiki input methods, and I have to say that ChrisPurcell's [JavaScript markup spike] is brilliant.

Thanks! Fun factoid: the live render also works on the iPhone. -- ChrisPurcell

There are two problems. One, I had to take down the [The Design Bibliography] once again as it is being spammed to death. It uses a similar file system to UseModWiki, but without KeptPages. Some pages are now so large that loading the history are killing the server. Rather than fix it, I'd rather work on the new Ruby on Rails code base.

Two, massive traffic spikes from robot download scripts (or perhaps DenialOfService attacks) were causing a ton of forked Apache child processes, each eating up available RAM and eventually swap space. Since the site is on a shared server, the ISP throttles the system if it thrashes the swap too heavily. My solution was to install mod_cband, a SurgeProtector. Hopefully that will keep things under control.

In other news, I'll be in San Francisco from January 5-10 for MacWorld?.

Here is the long story. I have fixed the monitrc script, but I haven't been receiving the alert emails. I spent Friday figuring out what was going on. For some reason, the nameservers that belong to the ISP, VPSColo, are no longer reachable from the usemod.com server, although I can ping them from my laptop. That's stupid. That means that the server can no longer send email because exim cannot resolve domains like sunir.org in order to send the email.

I try putting OpenDNS?.com nameservers on the /etc/resolv.conf, but that doesn't work. Obviously the server is blocking the DNS protocol. I email VPSColo and they tell me to blow away the firewall. Not knowing what to do, I first stupidly do a /etc/init.d/network stop, which turns off the ethernet card on the machine. I ask VPSColo to reboot the machine, and then I next try service iptables stop. After that, all hell breaks loose.

Rebooting the server after that no longer brings up Apache. Also, the machine is running at a crawl. I do a top, and it takes 10 minutes to show up over the wire.

At this point, I'm at a loss. If you think the above sounds hairbrained, just picture it all with me sending dozens of emails to VPSColo, and them not responding for over 12 hours. I finally figure out how to log in and escalate my tickets to emergency, which they impolitely reset back to low priority and continue to ignore me, meanwhile the server is basically dead in the water.

Finally, like echoes when I was repairing the server from from Internet cafes in India on vacation after a botched VPSColo "upgrade", they restore the server with Apache, but they break Postgres. I finally got Postgres going by downloading a sshd client to my iPhone, and rerunning /etc/rc.local while out at a dinner party with a bunch of Shannon's friends.

Yes, I am a winner. I'm shopping around for another solution.

Hello Sunir, do you get any mails from monit? I didn't get one during last few days -- MarkusLude

MarkusLude set up a monit script, I'm glad to see. However, it wasn't running on start up, and the email alerts don't work since the server is outgoing SMTP disabled, somehow (no sendmail?). I've fixed the monit start up script and made it more pro-active in rebooting the named and sshd servers, at least.

Thanks so much, guys!

I've been working on BibWiki 2.0 sloooowly but surely for the past year. I really regret using Ruby on Rails. I just hope to get through this hell and to a stable release.

I've been traveling extensively for my job at FreshBooks?. I know a lot of Web 2.0 now, especially in my role as Chief Handshaker. My current focus at the company is Integrations, meaning I am the product manager for the API. This job brings me back closer to what MeatballWiki has always been about, which is cool.

The server keeps conking out. I don't normally have any time to deal with it. I'm at the point with this project where I could almost let it die because it is an albatross. I don't really want to do that, so while I have some time now, maybe I can do something to improve the situation.

I haven't been HackingAtNight in a long time. This is what I was born to do. I wonder why I am in marketing. ;)

I met the guys from http://sezwho.com/ at SXSW. I can't decide if I love it or hate it. I don't think there can be any feeling in between. SezWho? is a method of tracking an author's posts across multiple fora. So, consider someone like me. I post on a lot of different blogs on behalf of FreshBooks? as Fresh Sunir. If you wanted to trace my path through the blogosphere, using SezWho?, you'd click on my name and see a set of my posts. Kind of like the user profile page on KuroShin. The problem is that they only want to do this on participating sites, I assume for revenue reasons.

I assume there will be more competition around user profile tracking in the future. Kind of like FriendFinder? and SocialThing?, inverted. The good news is that it's easy for people to build solutions to these problems. (I wonder where http://spinn3r.com fits into this.)

I'm not sure how "sketchy" it is, so forgive me if I comment on something that is just not ready yet. I like the top, it's very clear and obvious. The search form should be centered the same way as the top bar -- with margins on both sides, I think. I'm not sure if mixing white-on-black with black-on-almost white is a good idea -- maybe saturating the yellow background more would help keep the contrast lower. I don't know what does the "connecting" of the right menus and the page communicate -- is it intentional? The rounded corners should be consistent -- either don't round them, or round them all -- including the menus. I'm completely baffled about the +/- links -- what do they do? Are they too small to click? There is a lot of different text colors and font sizes -- do they all need to be different? -- RadomirDopieralski

This is good feedback. Thanks, Radomir. I've fixed the contrast in my working mockup. The fonts are a little over the place because I was playing with different fonts. I've settled on Tahoma. The actions I just made up for the mockup. The idea of connecting the menus is to convey that these are actions on the page object. I want to raise the yellow section using a drop shadow when I have time, but that is not really important right now. I may pull them out from the page object, though.

The +/- means add or remove a tag. Maybe it's not clear the red links are tags? -- SunirShah

My biggest take away from the FutureOfWebApps? and SXSW Interactive was that the Future of Web Apps is in fact not on the 'web', but rather a move to get closer the original conception of the Internet as a set of NetworkService?s tied together (SmallPiecesLooselyJoined?), and thus a move to re-emphasize MachineInterfaces over graphic design. I.e. beautiful websites, fading yellow AJAXy boxes, and all that non-sense is just a temporary phenomenon. Concepts like DataPortability? and PervasiveComputing are super-large concepts that overwhelm any form of centralized marketing. ContentOverForm.

That may seem like a big claim, but looking at the relative growth of companies selling centralized subscriptions vs. the rapidity that NetworkProtocol?s used to be adopted suggests there is something broken about the current approach.

DistributedComputing concepts are quiet in the market now, but I think it will have to return once again as issues of scalability return. The real problem was making money off a distributed network, which is trivial for centralized subscription services, and hence why centralized services are growing rapidly now.

By the way, I don't mean to say that form doesn't matter. Our marketing efforts at FreshBooks? are very style conscious. Our brochures, for instance, were a big hit at SXSW. I believe that form matters between competitors, not between product categories.

In bigger news, after all quite an epic saga these past few years, I finally know where I'm going to live. Shannon, my fiancée, matched to pediatrics at Sick Kids in Toronto, which is unbelievably amazing. I get to stay in Toronto and I can finally relax (a little) about my future.

Tangentially, I'm currently reading SocialLogicOfSpace?. Notes to follow.

Some life updates. As some may know, I've had some health problems for several years. Although I have brought them to manageable levels, they remain chronic. But I finally have a diagnosis. It's not serious. The specialist suggested I reduce my stress and I cut out from my diet coffee, alcohol, garlic, pizza, onions, Italian sauces, spicy food, citrus fruits, tomatoes, seeds, chocolate, curries, and fun. In other words, go to a strict Jain diet. Can I blame my ancestors for being evolutionary unfit? Or maybe it's my soul pushing me towards enlightening the hard way?

In other news, the fiancée will find out on March 6 where we'll be moving to for the next 3-5 years. I surmise 50% chance Toronto, 25% Ottawa, 15% Hamilton, 9% Vancouver, 1% Edmonton/Halifax/London/Kingston.

Meanwhile, I will be inconveniently incommunicado from Feb 27 to March 22 while I'm off cavorting from Miami to Austin, with another trip in New York, on behalf of FreshBooks?. Do something interesting, like refactoring some of the messy old pages. This place is getting dusty. ;)

Once I get BibWiki shipped, I'm keen to get it integrated with MeatballWiki. It will be fun to write content again instead of just coding all the bloody time.

P.S. I really liked this post, even though it's Digg bait. http://www.copybrighter.com/blog/social-media-in-the-1990s

I've been working on BibWiki all day, which is less time than I would have liked for this long weekend, but decent progress. Cleaning up my unit test debt.

For instance, last year, I was very serious and focused, as I was working hard to accomplish three major victories workwise. You can accomplish a lot with this amount of dedication. But there's a price: life becomes serious and focused, which is bleak and stressful. As I've said before, if it isn't fun, it isn't worth it (cf. MeatballMantra). Because I was working alone for most of last year, I could "muscle through" the non-fun with focus, motivation, and energy. But one of my victories was putting a hiring plan in place for FreshBooks? and executing it. We went from marketing being just me to a comparatively massive team of six. When you have that many people working togetherl, the major hurdle is not your own focus, motivation, and energy, but everyone else's focus, motivation, and energy.

Suddenly, being serious and focused is not such a good idea. If I'm not having fun, sure has hell no one else is. Right now, though I hired my own boss (an interesting experience), I still feel it's important to set the pace for the team to be positive, engaged, and active if that's the team I want.

Now I'm enjoying finding examples of other people who embody the way they want to world to be. It's not enough to just accomplish things in life. You have to find a transcendent purpose. A deeper narrative. A better story, as Yann Martel wrote in The Life of Pi. When I was most depressed--homesick, lovesick, forelorn--in my first year of undergrad, I had a friend in high school that taught me the secret to happiness to find one beautiful thing a day. I'm thinking now that if I want other people to show me something beautiful every day, I have to be first. That's why I'm impressed by efforts like Sam Javanrouh's [Daily Dose of Imagery], which was deservedly awarded the best photoblog in Toronto by [Blog.to].

Life really is a PerformanceArt. All the world is a stage, and we are all actors playing for each other's amusement. If you want a wonderful world, see something as wonderful every day.

I'm talking to a lot of SocialMedia? PublicRelations? people these days. One theme that I keep hearing reoccur is that social media is completely different. You have to treat bloggers with kid gloves. They aren't like MSM. I'm dubious. First, while there is a small set of people who identify as bloggers, most are more like "people who blog." Second, like any media industry, there are hierarchies of professionalism. The few professional news bloggers are like main stream media. They live and die by being to the go to people with news, so there is a symbiotic relationship. Other people who blog are just average folks expressing themselves. Their purposes for blogging may be mercenary, but it's not directly mercenary. At best, they are trying to drum up new business for themselves.

Consequently, they are consumers, really, and should be treated with the respect due to customers. That isn't a huge sea change. And there you go, new media PR is old media PR. After all, the type and quality and purpose of PersonalRelationships hasn't changed, only the method of communicating with the other party.

In other news, here's a great [presentation] by the ever excellent AmyJoKim? on bringing game mechanics into mainstream applications. Collections, Points (LeaderBoards?, Levels), Feedback (fun, builds mastery), Exchanges (explicit scheduled conflicts like chess, implicit like ratings, trading, gifting), Customization (aka personalization)

Also a good [article] by BillBuxton? on how long it takes to take an idea into the mainstream (The Long Nose of Innovation).

Second, while the obvious corollary is to totally ignore people who are not also active in your particular line of research, that corollary is wrong. It's insufficient to just come up with the good idea. Even if you found a gold mine, it's useless until you can trade it. It's important to cultivate connections with a potential market as well, so your ideas can actually go somewhere. Now, here's the rub. Some people are born networkers. TheTippingPoint calls them Connectors. They spend their lives meeting and knowing everyone, and then connecting people together. That's fine as far as it goes, but it's really expensive. It takes a lot of time. It's much more efficient to become a magnet for attention by making real, tangible, shocking changes than proactively building thousands of PersonalRelationships with a potential market.

The exception to the last rule is after you have established yourself and defined what value you're adding to the world, then it's worth going out and establishing thousands of relationships with people to sell it.

Third, to be a magnet, you need to treat life as a PerformanceArt, and you need to be a spectacle to attract attention. People friendly use strange but identifying wardrobe choices or have key catchphrases they make their own to build their PersonalBrand?. The problem with this is that good research requires the freedom to discuss ideas, even if they are crazy, and thus you can damage your brand. I don't know anyone who is good at this. I suspect they use a trusted circle of friends to bounce ideas off of in private, and stick to their performance in public. This just emphasizes that it's important to cultivate a group of trusted friends that share your research interests.

Fourth, none of this is rocket science. Humans know what they are doing. New mediating strucures like collaborative filters do not change the core process, only change the dimensions of time, space, material, energy, size, and access--which is nothing to sneeze that.

The article reminded me that my aspiration for MeatballWiki was to be a shining beacon of democratic interchange of ideas. We wanted to change the Internet culture to combat the prevailing patterns of technolibertarianism/anarchy and technocracy (see CryptoNaut). I gave up on that as it became too difficult to deal with threats, but I have been meditating on it since then. My strategy was to LimitTemptation by leaving MeatballWiki for a while until was boring again (BeBoring?), which is a core value after all.

More later.

We got to talking about the state of affairs in the core wiki community. It was the same discontented discussion as usual, so I won't repeat the particulars. What matters most is thinking what's next? What's the next most valuable thing to do?

For the rest of 2008, I'm focused on word of mouth marketing and further developing my leadership skills. My personal interest in the dynamic between people, groups, and media continues. That's what I'm going to be investigating. I'm uncertain about the medium. I really need to do a lot of this through a blog because blogs are where the primary community is. Any ideas how Meatball can play into this?

I have to say, I spend 100% of my Meatball time just keeping the server running and defending against spam. I need help there.

I feel compelled to write an article on SuicideNote?s, the great GoodBye. They are sadly very commonplace on the Internet.

What has changed is that I have a new appreciation for blogging. I have come around to seeing how blogging is superior to wikis for efficiently participating in a conversation with other people, even though the conversation never coalesces on importance. Joining a conversation is way more important because it's necessary to PersonalRelationships, which are more important than actual truth. Twitter is amazing for this because it strips away the pretense of saying anything important. You just have to be saying something to somebody.

I think it's interesting that blogs out-perform wikis for conversations and relationship-building because blogs rely heavily on the technical infrastructure built up around them in order to support conversations, whereas wikis seem to only thrive when the participants focus heavily on the network of PersonalRelationships between themselves. Looking back at this outcome, I have shifted my belief that culture is more powerful than form.

It's not that I don't think a strong culture will dominate any form. It's just that I now think of the expense of culture. The cost of maintaining a culture is so high, the most effective approach is to solidify culture in external artifacts that represent what was previously embedded in the relationships between people and the people themselves. There is a book called CognitionInTheWild? that takes that further. RichardDawkins? also possibly touched on this in the ExtendedPhenotype?, not to mention KarlPopper in TheOpenSocietyAndItsEnemies? and JurgenHabermas? in TheStructuralTransformationOfThePublicSphere?. I haven't read any of these books, though, so I don't know.

The BibWiki design has finally come in. Now I have to colour within the lines and finish the thing in the next couple of months (hopefully). FreshBooks? has eaten a lot of my downtime with overtime lately. I'm resolved to maintain life balance between BibWiki, FreshBooks?, the wedding, and my writing interests.

Meanwhile, we are giving away an iPhone at FreshBooks?: http://www.freshbooks.com/blog/2007/09/20/iphone-contest/

Meanwhile, in other wiki news, I am chugging along with BibWiki, and I have outstanding work re: WikiMarketing? from RoCoCoCamp? to follow up on. It's hard to make time to do that when it is a background priority, but I have to get on it soon.

It's so awesome to work for FreshBooks?. All the ideas I had for StartupInABox? they are already on top of. I'm beyond pumped.

Tomorrow is RoCoCoCamp?. I'll be arriving around 10am if my flight goes well. I am also very excited about that. My goal is to get advice about setting up BibWiki as a sustainable (i.e. revenue generating) OpenContent / OpenSource project.

The presentation, [Debunking third-world myths with the best stats you’ve ever seen] by Hans Rosling is really worth seeing if you either a) want to feel good that the world's problems can be dealth with, b) the Enlightenment project is still awesome, c) believe in EdwardTufte?'s ideas about how to present information, or d) want to see a really amazing presentation.

Anyway, I'm working on MeatballBackup today.

The same day, University of Toronto awarded BibWiki a grant to develop a site across all of http://www.kmdi.utoronto.ca! A very good week, indeed.

The system outages have been to low disk space again. I have deleted 1GB of crap data from the server, so that should alleviate problems. Nevertheless, MeatballBackup needs to get done in the next couple of weeks.

I have totally flubbed someone close to me for two months now. I think I am seriously overworking myself. How often do I write any longer, simply because I cannot assimilate all the disparate thoughts and problems domains in my life into a coherent narrative? As always, a journey of a thousand posts begins with a single keystroke.

Also interesting is http://www.shiftspace.org which is yet another meta-critic tool; video here: http://shiftspace.org/next-idea/demo.mov

Anyway, maybe I should be paying more attention to UseModWiki, where Abitbol was doing weird stuff as it turns out. He saw the page, and voila. Yet I don't really care about wikidom's social problems anymore anyway, so I don't really know why I would want to be watching where he is.

Oh well. We had a wonderful Sunday brunch with my sister and her husband who just flew in from Cuba, and then another wonderful Sunday dinner with the gf's parents. This was the first time her parents came over to my apartment. Stressful. Murphy's Law had to strike, of course. My brother-in-law ripped the bathroom door off the hinges first thing this morning! AprilFools?, indeed. ;) We had to put up an impromptu curtain.

It was an awesome day! And it's good to finally be back after being away for the past half year.

Meanwhile, I've kind of punted a bit on my side work marketing TinderBox, but that will resume on March 20 when I return to Toronto. I've also been slowly pushing forward my BibWiki stuff, trying to land a small contract at the University of Toronto.

I feel pretty good about looking for work again. I suppose it helps to deliver a solid chunk of work in a short period of time.

The reason why I created the DesignBibliography was that I like reading, even if I have a hard time reading. My Master's degree burnt me out on all the ideas that form the core of Meatball for the very simple reason that I only like reading when I can integrate the ideas into my brain. A Master's degree is like drinking from the firehose. I don't like taking in information without assimilating it, as I feel guilty like I am wasting time and thought. Eventually I stop thinking about things that I like thinking about because I am already juggling so many unintegrated ideas as it is. Then I just start wasting time doing mindless things like watching television and reading http://www.digg.com endlessly, which is further depressing. The reason why I haven't posted much in a year is that I couldn't bring myself to want to think about anything related to my degree.

Yet, amazingly, I spent my listless mindnumbed couch potato existence in 2006 building BibWiki to overcome InformationOverload. Well, it's done, at least to start. I think it's a pretty good accomplishment for a burnt out hacker. All because every step has been a ton of fun. Those tabs still make me smile! (Thanks Chris!) And TheProgrammersBooklist will finally be done as a bonus!

I really hate being a couch potato. I prefer to be getting things done. A long time ago, I came to the conclusion that my motivation for getting things done in my career has been out of whack. I've been determined since the dot.com bust to protect myself against unemployment, and so these past few years have whizzed by on adrenaline preparing myself to survive in the future. Fear is a powerful way to motivate yourself, but it does terrible things to your soul. While the pressure makes you strong like a diamond, it squeezes the FunFactor into a tarry achy pit in your stomach.

Well, I have experienced what it's like to live my entire life through the lens of Western project management. I have used more to do lists, action plans, dependency managers, and spreadsheets than I care to recount all to manage a constant barrage of real and imaginary and forced deadlines to keep things moving forward in my insane overachieving career. Here's a tip: They're called deadlines because you're supposed to die. It's all about fear, and therefore terrible. I know almost everyone works this way in our society, but let's face it, you all hate it.

I've increasingly abandoned all of that in the past three months as I have discharged all of my deadlines. I haven't really supplanted it with anything coherent yet, but the holidays gave me time to unthink a bit. I'm aiming for a more Tao-of-Pooh / Agile lifestyle for 2007. The most fun I have ever had in my life was using this holisitic natural system of prioritizing by my heart, and consequently the most productive time. As the MeatballMantra goes, If it isn't fun, it isn't worth it.

Looking forward, the only major career doubt I have in 2007 is employment in my target field of endeavour, which is developing and marketing web applications, particularly with usabilityesque strategies. I think that's doable, especially if I just do what I love and forego the rest.

So whither go my two major career community projects, Startup-in-a-Box and StartAWiki? Well, I give up on the idea of building them up by myself beyond what I immediately need. I'm a SelfishVolunteer, not a FirstServant. I'll do what's useful to what I'm excited about doing and let others do as they please.

That being said, my next Meatball project now that spam is somewhat tackled is to improve the SignalToNoiseRatio. There may be some pain involved for folks here, but it will be better in the end. Indeed, the reason I'm revamping the code is that I hate the UserInterface here and I'm keen to improve it.

I have a side project to refactor all the references to the DesignBibliography. This will require some sort of NearLinking strategy.

I'm curious about the motivation behind the ModeAccord and other assorted non-spam vandalism attacks. It doesn't make sense to me. It may not be a spammer or someone with a rational motivation; i.e. the person could be insane. Or it could be a badly written bot. It seems to be human generated. Who knows?
I was under the impression it was a stupidly-coded 'bot, attempting to attack guestbooks and 'blogs by simply pattern-matching any form fields against known names. "Text" would get the cutesy "great site", "URL" would get the payload. We don't have a "URL" field, but it still posts because it doesn't care: bandwidth is cheap. We could probably catch it out by simply bouncing any edit with a blank digest back to the editor. -- ChrisPurcell

I have been assuming it was a poorly coded 'bot too, but I am beginning to suspect its a person. In any event, this comment is simply a to say a sincere "Thank you!" to you both for your efforts in putting a stop to this. (I really would feel silly adding a barn star to eaither of you, otherwise I'd award my first one.) -- HansWobbe

If I take the job, I'd keep my apartment in Toronto. It would give me something to do to pay the bills while I build up my design skills. Plus I could finally go cross-country skiing. My girlfriend is one hour closer from Ottawa than from Toronto as well. I could also build up my reputation in the more active Ottawa startup community.

The risk is that there could be something just as good in Toronto. In fact, there is a contract in Markham that is more lucrative, but will take forever to close. Also, I may not want to move back to Toronto, in which case my really cool apartment goes to waste. ;)

I only have a few days to decide, as I am parachuting into the job. My C++ skills are quite rusty, and although I'm sure I've replaced large parts of the Brocha's area of my brain with ANSI X3J11 and the Stroustrup book, I'm a little anxious about my ability to deliver on their timelines, which are really short.

On top of that, I have another small contract (1 day a week) for the MacBook?.

What should I do?

I certainly won't presume to answer "What should I do?" but you might want to consider...

 -- Hans

Hans, thanks for the advice. I don't really want to be contracting for a long period of time, but for right now, it's ok while I sort a) what I want from my career, b) what I need to achieve it. I've accomplished a), and now I am working on b).

In this case, the travel cost is mostly time, hassle, and distance from my stuff (especially my library). They'd give me a travel budget and a car. Presumably, I could get more money if I didn't have the travel budget, but the money is still good enough. -- SunirShah

Update. Well, that went bollocks. I went to http://www.carbonation.com. I'm never going there again.

So, I had a very simple and direct order. I wanted the mid-range MacBook?, with 1GB of RAM, Windows XP, Parallels, and a VGA adapter. For the sake of it, I asked the sales guy to compare it against the MacBook? Pro, and he didn't know what the real difference was. I asked him what the external monitor resolution was, and whether or not the MacBook? could span monitors? He didn't know. Already, I was getting a bad sense. He didn't really care about the sale, so I just hijacked one of their Internet stations to find out for myself. Having got the answers I needed, I got the quotes and waited for confirmation that the prices were cool with my contractee. The quotes were wrong, however. They only ordered one extra 512MB RAM stick and they ordered a mini-VGA to VGA adapter, when the MacBook? has a mini-DVI. I repeatedly (about six times), asked to confirm that this was correct, especially about the RAM, since you need two 512MB sticks to get to 1GB. I even explained why it was wrong, but he insisted he was right, and so as a Apple neophyte I decided to defer.

Later that day after getting confirmation I called back to place an order. Little did I know that the name on my quote was not the sales guy I was talking to, but someone completely different who wasn't working there. So, I get forwarded to voice mail. I thought that was stupid since there was a sales guy available, and they apparently don't work on commission, so I call back and place the order. Later, I get called back by my sales guy and I say I placed the order and I was told it should be ready the next afternoon, and that they would call me back. I make him confirm this before we end the call.

I'm waiting and waiting the next day. I called back, left voice mail, but they didn't return my call. I find that obscene since there are usually 5 people in that store doing nothing at any time. I called again an hour before they closed, got someone, and find out they forgot my order! But they said they had it in, and they'd get it ready for me to come down. I taxi down (expensive), only to find out that they forgot it again in the intervening half hour. Holy shit.

So, I'm standing there, pretty pissed. I insist they get it done, since they said it was going to be ready earlier that day, and I just shelled out big time to get to the store before it closed. He comes back and says proudly it has 712MB of RAM in the machine. I only asked and reconfirmed with him that this would be 1GB a dozen times because I knew this would happen. I am naturally unimpressed. So he says, do you want 1GB? I say, of course, that is what I ordered, so go do it. Meanwhile, one of his coworkers comes by to say he's leaving the store (not sure if quit or fired), which is always a vote of confidence.

He leaves to sort it out, but in truth he just disappears and never comes back for the rest of the night. I have to grab another sales guy, who sorts it out for me (he was awesome). I get him to verify the MacBook? has the right specs, since I don't trust anyone at this point. Ok, it's good. At this point I'm 10% on this place. I might still buy if the manager of the store would finally show up (after asking for him 1/2 hour ago) to tell me why his customer service imploded on this sale, and why it wasn't a normal occurence so I could make this my local Mac store.

The manager comes out hostile and condescending. He doesn't even let me get 3 sentences into my story. He says to me, condescendingly, "So, do you want me to empathize with you?" Um, no. I want to know that I can give you $2500 and my credit card and not end up with a boat anchor. He also says they did everything they could for this sale, and that it was my responsibility to make sure the order was correct. (Um, didn't I just do that?). I wonder what his sales guys are for.

Imagine if someone who didn't know what they were doing walked into that store? They would go home with the wrong machine, the wrong parts. Would you be able to return your equipment? I doubt it, since the manager doesn't give a crap about repeat business. Or in this case, business.

I'll try the Apple store next week. I hope my experience will be better.

Internationalizing Ruby on Rails

I spent a good portion of yesterday investigating the horrible mess that is internationalization (cf. CategoryGlobalization) in RubyOnRails?. The current state of the art is ungood, but the current versions of Ruby and Rails in development are much more solid. There may be some pain in the future, but with a good set of Wiki:UnitTests, it shouldn't be a problem.

The next two steps are sorting out the various bibliographic data formats so I can build a data model and learning the Rails unit testing framework. This week I hope to do a coding sprint to get something up and running. Maybe I'll just start coding like a monkey.

Writer's block.

Since getting back from my vacation in India and Europe, I've been cleaning up big piles of bleh in my life. Going back onto the job market, rebuilding my laptop, organizing my incredibly huge todo list, cleaning up Meatball, fixing my diet have all been awesome. It makes me feel better.

There are two creative endeavours that I've kind of let slide during my graduate school years: coding and writing. I've been particularly keen to get back to coding because I love coding and it's been a while since I was rockin' out the keyboard. (Some days I like coding more than I like people, but that's a secret so don't tell anyone.) The DesignBibliography is a fun project and it's moving along slowly.

The other is writing interesting stuff (on MeatballWiki). During my degree, I felt like I was drinking from the firehose, and I didn't have time to reflect to write down what was in my head. But I knew it was good stuff, so I've been carrying it around with me hoping I'd get around to writing it down. That's a guaranteed way to fubar your mind. No matter what the activity is in life, it's key to get it out of your head. So I've felt kind of idea constipated. For the past year, I didn't even know where to start, so I kind of kept quiet.

Now that I'm getting things out of my head, I recognize there are a few key pages that are blocking me, because I've left messes on them: ContentOverCommunity and HypertextGame. There are other messes, but for whatever neurotic reason, those are the two that are pissing me off. I also have a half dozen memo pads of content to transfer that I keep shuffling from my office to my home and to Kingston and back. It's dumb. I just need to Get It Done so I can move on with my life.

So, the crass moral of the story is: Writing is like digestion. You just got to do it every day or things get backed up.

I don't know why y'all would care about this, but I felt like describing the situation so if I get stuck again to me in the future, I'll have a past experience I can reflect upon to guide my way.

I have so many open loops right now I think I'm rughooking. I can't even keep them all in my head. My kingdom for a map.

This is awesome. http://www.autoblog.com/2006/10/12/madds-new-dwi-awareness-posters-are-a-smash/#comments

The lesson here is to make it incredibly clear what the overarching goal of the project is, no matter what current circumstances may demand. People will self-select whether or not they agree with the goal, and consequently the level of conflict will be much reduced.

I think my vainglorious plans for CHI Camp have been defeated in lieu of UsabilityCamp?, which is much better.

So my new best plan for getting MeatballWiki over to InfiniteTypewriter is to work at it in two directions: rewrite and refactor. From the rewrite direction, it makes sense to build a very thin spike of a wiki in RubyOnRails? first; preferably something that can work against our existing database schema. The thinner the spike the better, because ultimately we will want to refactor bits from MeatballWiki's monolith over. So, from the refactor direction, the task will be to break the big Perl script down into smaller chunks: subroutines, files, modules, and ultimately scripts. By breaking the big script down into small scripts, we can swap out one small script at a time for new InfiniteTypewriter components with the same functionality--all by simply by redirecting the URLs.

There is a lot of work to do that has been sorely neglected. Next on the list is to clean up the MeatballServer. Holy moly, is it a mess. It's time to apply some geek fu and get that done.

I suppose I should get around to updating http://sunir.org, eh?

The first order of business from WikiSym 2007 was to kick of the creation of the MeatballBoard. As someone wisely wrote on the [Rules of Open Source Programming], "As long as the project looks like one person's work, it is one person's work." SunirResigns? was a disaster because it created a vacuum. It was incredibly naive to hope people would step in constructively to take ownership of the site. It's much more wise to proactively create a structure to DevolvePower.

Regarding the two new Meatball properties, The DesignBibliography was only marginally liked. I have to do more work on it. Really, the problem is people. I need to form a CriticalMass? of users. The FutureOfWikis wiki now has two years of experience behind it. WikiCreole is a step forward, but I'm still more interested in WYSIWYG. Speaking of which, I still have to summarize the WYSIWYG session.

Blathering Rant. In random news, I truly hate air travel now. I took 10 flights this trip. Most of my souvenirs have been destroyed (smashed) from having to put them in checked baggage. (That's alright; I've still got the rain and a nasty head cold as a souvenir.) Airport security is incredibly disorganized now. While I'm used to American airport security being totally incompetent (forget racist, that's not even important), Charles de Gaulle was pretty bad. I know exactly what to do to remove every bit of metal from my body before I go through the metal detector, and yet it went off and I was frisked (that is not really the big deal). What happened? (This is the big deal:) People were just walking to and fro through the metal detectors like it was a mere doorway. For pete's sake, what's the point of having airport security if anyone can just walk right into the middle of someone else's screening on the way to the toilet or to buy a newspaper or whatever. Meanwhile, no one knew if I had to have my bags manually searched or not, or if my bag had actually passed screening. The people doing it weren't even looking while they were poking their hands through my girlfriend's bags, but rather just gossiping with one another. In India, they're just totally confused. Every airport is a different policy. At least one thing they all agree on is to systematically feel up women's breasts (admittedly, in a curtained off Ladies' booth).

I mean, seriously, you can get anything through airport security now, it is so chaotic. What the hell are they thinking? The growing personal indignity of air travel is frankly disturbing, but the shear incompetence is unacceptable. But why would I expect any different from the French and Americans anyway? Both countries have a bureaucratic culture that thinks a problem is solved the moment a policy is written. But they both hire the cheapest employees they can find to implement it.

If the security doesn't matter, get rid of it. But of course that would "look" bad, because public appearances matter more than effectiveness. Talk about bureaucratic rot. If you want people to be less paranoid about air travel, stop pretending that we need more fake, useless security.

WikiSym this year was a lot better for me than last year. For starters, I wasn't personally running 40% of the program, and no one in my family died. However, beyond the obvious, last year I was still quite burnt out on wikis and Internet stuff in general, between the general crappy state wikidom was in (particularly due to spam and discord) and my masters degree in everything Meatball. This year, I've been working on my own focus in life one step at a time. WikiSym was my opportunity to reset my approach to wikis to be appropriate to the current situation.

While I was a total goof as usual, I did spend most of my time just addressing one thing after another that was pissing me off. I came away from the conference with a certain sense of calm. I have only one more major thing in wikidom to free myself of and then it will be fun again, and if it isn't fun, it isn't worth it. (FunFactor)

To summarize, roughly, I have come to the conclusions:

My Internet connectivity will be spotty. While I am gone, ChrisPurcell is in charge of keeping the server from melting. The rest of y'all fight it out Lord of the Flies style.

Please, please, please keep an eye on the DesignBibliography. Or, heck, start using it! It's launching in August at the ParticipatoryDesign conference in Trento, Italy.

I spent all of today upgrading the DesignBibliography. It's already a week late. Check it out: http://www.meatballsociety.org/cgi-bin/design. It's at the point where it can use a bug list, not to mention a source code repository, but it is what it is. I've abandoned unit testing just to get it done in time for my departure. I look forward to migrating this thing to a database in the fall, and then RubyOnRails?.

P.S. Chris, I fixed the Safari crashing bug, kind of. For some reason #search { display: table-cell; } was crashing Safari. I'll have to fix that better later.

I started thinking about how I would solve the problem if I wasn't a computer scientist. I've been fantasizing about building an email spam filter based on SocialDistance? for a long time now. For me, I think it's assinine that email systems don't pay attention to whom I am talking to currently, have been talking to, or who those folks have been talking to in my presence. It took 25 years before we could group by thread in email clients. Holy. Crap.

LinkSpam is a bit harder, but I would really like to use behavioural analysis. Presumably spammers behave differently than non-spammers in a way that should be exposed on the public Internet. After all, their work has to be in the public. Market analysis systems like Blogdex and Daypop spend all their time trying to remove spam from their results. Suppose, however, you inverted those systems to remove all the non-spam from their results?

That guy from Spam Karma wants to build a p2p blacklist, which is sounds like my own proposal to build a PeerToPeerBanlist?. Wikipedia would love to help.

I really need to spend more than 1/2h a day on this.

Oh well. The OpenProxy detector is getting pretty resilient. There is only one major element left to build before I'd say it's done.

Congrats! -- ChrisPurcell

I'm working on a better OpenProxy filter now, as well as end of quarter stuff for work. I should be doing laundry, but I hate laundry, and so there it is.

On the plus side, living with so much instability for so long has built 'character'. Translation, I'm more crotchety than ever.

Also, Chris has an interesting idea to deal with the UgLy problem of CamelCase, as discussed on FreeLinks. Opinions? (Please keep the pins in your holy grenades.)

My goal this week is to get into the habit of writing or refactoring one page a day (at least as long as I am near the Internet).

This was [not] computer-generated..

The worst possible thing you can do while group facilitating is use group facilitation jargon. I know many people who are new to group facilitation are excited with all the tools, techniques, concepts, armchair psychiatry, and games. However, it creates a "language gap" or a "trust barrier" between the facilitator and the victim, er, client. Or, in other (actual) words, it's pretentious.

You can hardly be empathetic if you are using a lot of WordMagic to distance yourself from the people you are trying to communicate with. You can hardly facilitate a group if you are constantly trying to gain attention for yourself by showing off.

Of course, facilitators do this because it creates a sense of authority around themselves when they do not have the personal presence to do it naturally. However, the result is that the facilitators are too busy watching themselves perform than listening to what people are saying. But once you realize the emperor has no clothes, it's easier to just relax and focus on listening and making it easier for others to be listened to.

ContentOverForm.

A key corollary is that 98% of the time you don't need a facilitation game to get people to say interesting things. They already have ideas they want to say. All they want is to be heard.

(Admittedly, this is easier said than done.)

"Everyone should have a blog. It’s the most democratic thing ever." Ever, Sunir. Don't you forget it! -- StephenGilbert

I've learnt my lesson. Blogs are better than sex, candy, and freedom. -- SunirShah

Also, congratulations to MartinCleaver, who if all things have gone well, is now married.

Thank god! Just as I am able to pay attention again, the hype is dying down. Although, I wonder about that.

Congratulations to CommunityWiki for a job well done.

I am also amazed that anyone ever wants to hear the word 'wiki' again after all these conferences. ;)

SisterSites, WikiPractices, OmidayarNet?, WikiIndex, Meatball and other things I can't think of off the top of my head got advanced. There was also a lot of mixing with analog wiki types. Good community building event to add to the awesome WikiSym! really. Wiki makes people giggle. ;-) MarkDilley

Hans gave the good advice to focus on doing what I love and ignore everyone else.

I am currently reading http://meatballsociety.org/cgi-bin/design?Kraft1977 (perhaps I should make links of the form [[Foo, 1969]] automagically link over to "Meatball's" annotated bibliography? I should also somehow, um, launch it as a "MeatballProject". fingers collar nervously). Kraft, 1977 may be 30 years old, but it describes the software industry fairly accurately, at least its fundamentals. It doesn't cover the twin adaptations of copyright and copyleft in the industry, not to mention the impact of globalization, because they hadn't happened by the time he wrote the book, but that doesn't make what he says untrue or unuseful or unimportant.

Standing now recently reborn(e) at the end of my two year wander in the academic woods, I have been left wondering what exactly I have just done to myself. I'm not longer the guy you'd go to create the algorithms which give you a competitive edge. However, I do have new skills in group facilitation, project management, pedagogy (and elearning), social analysis, research methods, ethnography, and other "people stuff" that is stereotypically divorced from HackerCulture.

Yet, my degree didn't create any obvious job opportunities. I don't feel more secure in my marketable position than when I started. I actually feel less secure.

So, reading this book reminds me of why I did this to myself. The engineering industry (and its child, the software industry) is oriented around the singleminded purpose of eliminating the need for as many people, as quickly, and as cheaply as possible. Engineers themselves "start high and end low," for the simple reason that engineers spend a lot of their time trying to eliminate other engineers. (Hence the culture of 'meritocracy'.)

In a world where you have to compete not just against other programmers in your city, but other programmers around the entire world, that's a battle that is not worth winning. Software will increasingly demand more of your life and spiritual existence if you are to survive past the 10 year shelf life of the typical techie. That means that good programmers will become increasingly lacking in advanced, management-level social skills, which are learnt skills (at great expense). The real opportunity is to fill the gap. Filling the gap is a non-destructive, NonViolent profession; rather, it's constructive and pacifying.

However, I like the hard core comp sci stuff. So, if I were to focus on what I am good at, I am good at precisely two things: I understand how the computer (and the math) works (although I'm right now a bit rusty); and I understand how people work. I don't much care for anything in between. The idiosyncracies of particular operating systems (/var/etc/pr0n/what?), applicationware, software libraries... all of that involves negotiating the pitched battle of the software industry, which is something I care to avoid. For instance, I care (deeply) to avoid Java.

I also care to avoid meritocratic developers whom I find to be incredibly unproductive for all their bluster. How do you get anything done if you are constantly threatening your teammates? Time and time again I have seen the pants beaten off of meritocrats by team-oriented professionally minded developers. Compete in the market, not amongst yourselves.

I particularly like (ok, love) the Internet (which for the sake of brevity, includes PervasiveComputing and MobileComputing?). So, if I were to focus on doing what I was good at and what I wanted to do, I would be either a) building Internet stuff for managing the people stuff, or b) managing the people stuff to build Internet stuff.

Currently, I am not doing either. I am, however, learning how to structure a business, which may be the necessary path to follow if I have to do what I want to do the hard way. I feel like this is a distraction, however, since I'm only doing it to cover my ass in a future bear market.

I will also be publishing, shortly, my final report on using wikis in a classroom. The project didn't go so well, but it was an interesting project. I'm also working with another classroom project right now.

I have too many things on my plate. I am trying to divest myself of as many as possible so I can focus on sorting out my own life. I don't feel like I am on top of my life right now. Mostly, I am feeling caught in between things right now:

At times like these, it's best to anchor myself to what I'm most committed to. Professionally speaking, Meatball is always a good bet.

It's unfortunate for both Meatball and me that I'm now a professional wiki dude. It's too much 'wiki' for me. You know me. I always had my best insights by relating what we talk about here to other, novel experiences. I think there is also a huge difference between being excited by wikis and building your identity around wikis. I refuse to do the latter.

So, anyway, that's why I'm now interested in something different. That is, design; in particular, ethnomethodological design.

I think I need to be honest with myself. Do I really want to go to these conferences? I am not very fond of conferences to begin with, and they generate too much distracting work that doesn't seem to do me any good.

Oh, I'm bailing on RecentChangesCamp. The SocialText retreat has been restricted only to the devs, so I'm not longer going to be on the west coast.


Discussion

MeatballWiki | RecentChanges | Random Page | Indices | Categories
Edit text of this page | View other revisions
Search: