This week has been a blur of last-minute details: fully stocking the bars (that first order is really expensive!); throwing away enough crap to make room in the backstage area for the bartenders to sit and count their money at the end of the night; tweaking the lights; making flyers and newspaper ads; finishing the last of the painting; planning out and (soon) stringing up video cable for the cameras and TVs; getting our very first shipment of keg beer and praying the glycol system works the first time... and so on.

The usual suspects and I have also been trying to figure out why the RealVideo stream sucks so bad lately. We've now ruled out the possibility that this has anything to do with my firewall; it appears that someone upstream of us is rate-limiting UDP traffic or something, which they ought not be doing. Either that, or RealProducer is just totally losing its mind (an option not to be discounted prematurely.)

Meanwhile, our promoters have been... promoting! Which means, among other things, making flyers. I've put the ones we have so far up on the site. Check them out in the Flyer Archive. These are also linked to from the appropriate spot on the Calendar pages.

Still no love on the RealVideo front. It's starting to look like maybe there are actually two problems: we're getting an apparent frame rate of about 5 seconds/frame even when running everything on the same machine (not hitting the network at all!) I say "apparent" because the player claims it's doing 20fps, but the picture only changes every 5 seconds.

And on top of that, when we run over the network, it says it gets 95% packet loss. (There is no reported packet loss on the LAN.) And the picture is differently bad: when running on the LAN, it only updates every few seconds, but when it does, the whole image is there. But when broadcasting over the net, you see blocky compression artifacts too.

We've verified that we can keep up a continuous stream of TCP or UDP packets at sustained high bitrates for hours. So it seems there's little chance that the problem is with something upstream of us. It's looking more and more like the RealVideo software just doesn't work. I don't understand why it seems to work for other people and not us.

The kiosk enclosures are almost complete! The steel guys brought them in, but there were some things that weren't quite what we discussed (they didn't sufficiently enclose and protect the monitors) so they took them back to the workshop to add a few more pieces. So I think we're still on track for having those done for opening. (But just barely, as with so much around here!)

Frederick, Danfuzz, Jonathan and I spent the last two days hooking up the video cameras. We ran over 2000 feet of cable throughout the building! That took a long time, and all of us will be happier if we never have to crimp an F connector onto coax again in our lives. But we got a huge amount of work done this weekend: we have nine cameras mounted and positioned, and hooked into the video switcher, which is now in its new home up by the lighting control gear in the DJ booth (instead of in the back office.) So if you check up on the webcam now, you'll see it cycling through those cameras!

Here's Jonathan adjusting Camera 3, and a shot of what the video switcher looks like from the dance floor. That's actually the front panel of the switcher, with keypad and status display, but since the switcher will be computer controlled, we don't actually need to use the front panel. So we faced it outward, so that everyone can enjoy das blinkenlights.

The plan is for these images to also be available on channels on a kind of private cable TV system throughout the club, so we can display those images (or images from any VCRs or other video gear we bring into the DJ booth) on any of the TVs scattered around the club. That's not working just yet, though, because it turns out that our cables runs are so long that we can't get away with doing this without also installing an RF amplifier. Which is obvious in hindsight, of course. So I spent today drawing schematics and doing the math to figure out how many dB of signal loss are incurred by the various splitters and cable runs in the system, to figure out how many dB of amplification needs to sit at the head-end.

I never realized that buying a nightclub would give me such a grounding in so many different careers.

We still need more TVs, though! I think we need at least a dozen more. Come on, people, I know you're out there: somewhere in your basement is a color TV that you haven't gotten around to throwing away yet. Let us give it a good home, and a second lease on life!

Per my predictions, the Glycol system did not "Just Work" as they promised us. Fortunately, we got the shipment of kegs early enough that we had a few days to let it just sit there, connected, waiting for something to go wrong before we opened. Which it did: somehow there is a leak in the coolant lines inside the beer pipeline, so even though everything is hooked up to the taps, we can't use them yet. It remains to be seen how long it will take them to fix this...

That makes us 2 for 2 on the pipelines: the soda/juice line also had a leak just after it was hooked up, dumping a whole carton of 7-Up syrup onto the pantry floor. It turned out that there was an extra, unused tube in the bundle, so they "fixed" that problem by just hooking up to the unused tube and abandoning the one that has a leak. I hope the beer fix is as simple.

We have really quite a lot of stock now: have a look at these pictures of our "liquid assets": the first picture is the second half of our first order. The second picture is a view from the inside of our walk-in cooler. Each beer line has two kegs connected to it (in series) and there's a third "cold-swap" keg ready to be switched in when those run dry. Next is a shot of the back wall of the main bar. You may notice that only five tap handles are in place right now: that's because Guinness hasn't been hooked up yet (it's from a different distributor, and has to be installed slightly differently, since it uses nitrogen instead of carbon dioxide.)

We had our last pre-opening party last night! This was an industry party, basically, where we handed out stacks of passes to lots of promoters, bartenders, djs, and other folks in the business. In the main room, we had some of our regular saturday night djs: Jonéné & Solar (Shattered); DJ Melanie and Richard Summerhayes (Orbit); Spesh (Red Square); and Fluid (OM.) In the lounge, we had some of our friday night regulars: Ghreg, Ritter Gluck, and Adam Ohana.

Here's the invitation we used.

This was the first time we had djs going in both rooms at the same time. It worked out really well: from the dance floor in the lounge, you couldn't hear the music from the main room. There was some bleed near the doors, but that's hard to avoid...

The worst thing that happened is some savage stole the tip jar from coat check! Get this: they managed to walk off with it, and then at some point, must have realized "there is no way I'm going to make it through the door with a pickle jar full of cash," so -- they threw it in the trash! Money and all! Maybe they took a handful or two, but most of it was recovered.

The next worst thing would have to be the state of the lounge dance floor: it's peeling like crazy already. Oops. Someone hypothesized that when our contractor put the first coat on, he didn't bother to have it cleaned or sanded first, so the paint didn't bond.

Other than that, everything went pretty close to flawlessly. We still have a minor leak that wasn't completely fixed, we've found some spots that don't have enough light, or that need looking after in other ways; and we had a couple of employees not show up, but that was the worst of it.

Some pictures, pulled off of the webcam:

Wow. We're open!

Want to hear the music that was played? Check out the webcast archives.

Friday and saturday nights were a blast. The music kicked ass, the crowd was friendly, and they danced until after 4AM! One of the best moments for me was that first time when it was 2:15AM and there were still a couple hundred of people in here dancing: I spent six months fighting for that, and it was so great finally seeing it actually being taken advantage of!

We got a fair sized crowd on friday, but it wasn't packed; still, not a bad crowd for basically no advertising: we didn't flyer for that event at all. This was good, because it gave us a chance to start off a little slowly, on our first night where the general public was allowed into the building. Saturday was great, we got about twice as many people, and they stayed a lot later.

And, amazingly, we got the kiosks working in time! Jonathan, Danfuzz, and Frederick were an enormous help with this; we put a lot of hours in on wednesday, thursday, and friday running cable and screwing everything together. We finished just in time: we put the drill and screwdrivers away about fifteen minutes before we opened the doors on friday. A lot of people used them. From standing back and watching for a while, I could see that some people found them confusing, so I've got some ideas to improve usability that I'll be trying out over the next few weeks.

We've still got some definite plumbing and paint issues. The auto-flushers on the toilets don't seem to be working a lot of the time, and I'm starting to think that our contractor got us just completely the wrong paint for the dance floor: it's uniformly sticky all the way across the floor, even after we've mopped up. Maybe the paint reacted with the alcohol in the spilled drinks and is breaking down or something.

Jamie Nicolson took some really cool pictures of the fire dancers on friday night: check them out! I saw a bunch of people wandering around with cameras on both nights: if that was you, and you got any good shots, please send them to me, I'd love to include them here on the web site.

The whole staff commented that the crowd on saturday was really friendly. For example, when it was 2AM and it was time to go around and collect drinks (no alcohol after 2 in California), the customers would often thank the staff as they took their drinks away! That never happens, usually there's an argument!

However, on the other side of the spectrum, there was one slack-jawed fratboy gorilla there on saturday who was amusing himself by typing random characters on a kiosk keyboard as it was booting up, and then as soon as the desktop appeared, rebooting it and doing it again. I watched him do this for ten or fifteen minutes! I couldn't believe how long that managed to keep his attention. And every few seconds he'd glance back at his friends to see if they were watching. They weren't.

Later that evening, I saw that half the keys had been ripped off that keyboard. Gosh, I wonder who could have done that. I found all but one of them scattered around on the floor, and was able to re-attach them. Except that someone took Control. Or I lost Control, depending on how you look at it.

I expected to be replacing these keyboards with some regularity, but I didn't really expect it to be quite so soon. Oh well.

Boy, I love it when I hit those nerd hot buttons! I appreciate the suggestions, but you can all stop emailing me saying "I saw these waterproof/ flexible/ nuke-hardened keyboards on Slashdot once, you should get those!" Rugged keyboards are multiple hundreds of dollars each. Low end plastic keyboards are, like, $3-$6 each. I could replace each keyboard once a week for a year before it would have been cheaper to get a rugged keyboard. And that's assuming that rugged keyboards really would last a year, which I also doubt. So, I know I'm going to be replacing the keyboards a lot, but I think it's cheaper to keep doing that than to try and protect them any more than they already are.

Our First Week

We're still having some scary plumbing problems. We got a plumber out here to try and clear out our drain, and he tells us that a few feet inside the floor drain in the womens' bathroom is... concrete. That's right, apparently one of our contractors managed to dump wet concrete down the brand new drain. Yay.

We're also having trouble with the motion-sensor flushers; they don't always flush. I suppose this just means that they're not adjusted right, because they have these things in every airport and casino in the world, so it must be possible to make them work. Still, we clearly shoulda gotten the kind that have the emergency "flush now" button on them.

Other than that, our first week went really well! We've had a bunch of really fun parties, some great music, no serious problems, and we're no longer hemorrhaging money (it's slowed to a mere trickle!) The best part has been that the crowds we're getting have been cool and super friendly: Alexis did a good job of picking our weekly parties; we're getting a lot of people, but not many suburban yahoos, as far as I can tell.

Of course, I'm most excited about our friday parties (N:CODE and D:CODE) since those are the ones that we're directly involved with promoting. Last week was our first N:CODE event, and it was a lot of fun. Phenomenal music, great projected visuals, and cool people. Unfortunately, there weren't very many people: it's getting off to a slow start. But, it's a new event, and we haven't brought in any out-of-town DJs yet, so hopefully it will pick up soon. The theme is dark, hard instrumental dance music, with alternating weeks being 4/4 and breakbeat (so, roughly, the parts of the psytrance and drum+bass spectra that have noisy evil industrial influences.) If you're in to that kind of thing, come down and check it out! This friday is D:CODE, which is the breakbeat-themed side of the pair.

A Message From Our Bartenders

I have some things that our bartenders would like me to pass along to you, the clubgoing public. Those of you who have been going to bars for a long time probably know all this, but experience shows that a lot of people don't understand how it works, so let's just get it all right out on the table.

  • Pay attention.

    When the bartender finally looks your way to take your order, if you're not making eye contact, they're going to move on to someone who is paying attention.

  • Have your order ready.

    When the bartender asks you what you want, you're supposed to know already. The time to ask your friends what they're having is before you've gotten the bartender's attention, not after.

  • Have your money ready.

    The keen observer will note that someone who is holding their money in their hand gets served faster. That's because the bartender knows they're not going to have to wait around while you fish out your wallet. That also makes it more likely that you actually have enough cash to pay for the drinks.

    But one thing you should never do is wave your money at the bartender, or yell at them to get their attention. They really hate that, and probably won't serve you at all. They can do that. They run the show.

  • The bar is closed when the bartender says so.

    When the bartender tells you that you've missed last call and the bar is now closed, there is nothing you can say that will change that, so don't waste their time trying. They don't care what your watch says. They don't care if it is still 3 minutes to 2AM. Maybe you're right: maybe they could still legally serve you a drink. It doesn't matter: they won't. They don't care how cute you are, or how much you beg: when the bar is closed, you are not getting any more alcohol, period!

  • Tip, you bastards!

    Bartenders make all their money on tips; their salary barely covers their taxes. You are expected to tip for every drink, at the time it is served. You may not think this is the best system, but that's how it works: tipping is expected. Deal.

    In this part of the world, you are expected to tip at least $1 per drink. Tip more if it's a complicated drink, or a complicated order, or if you think the bartender is doing a good job. If you don't tip, then they will remember you, and you will get bad drinks and worse service. They can do that. They run the show.

    Some people think that they should only tip for alcohol, and not for soft drinks and bottled water. But you're still taking up the bartender's time! And at an after hours club like the DNA, there's still someone running the bar during the hours after 2AM, and they'd rather not be working for free!

Oh, and you're supposed to tip at coat-check too. It's the same situation. (Except that some people tip when they drop off their coat, and some when they pick it up.)

Hopefully this micro-lesson on bar-going will help get you through the evening more smoothly.

Tech Stuff

Frederick got RealVideo working! And there was much rejoicing. The problem turned out to be that we weren't running a sufficiently bleeding-edge version of the video drivers; upgrading to the latest kernel and bttv driver made the problem go away. So now you should be seeing a decent picture and frame rate on the RealVideo stream. We still don't have audio in that stream, because we haven't quite gotten that working yet (when we turn audio on in the Real stream, it's choppy, though the MP3 stream is fine.)

However, you may be finding that the MP3 streams (live and archived) are hurting. That's because (surprise!) since we've opened, our bandwidth usage has gone through the roof. We're now getting enough people trying to listen to our streams that we're hitting our bandwidth limit. Currently we're paying around $400/month for 2G/day to our colo machine. I'm told that's high, but I don't have any idea what bandwidth costs these days. What I really need is to find someone who will let me put my machine in their rack at AboveNet and let me mooch bandwidth for cheap... It's really expensive to give all this away!

We got our ATM. It's bolted to the floor, so don't you get any ideas! There's not much inside it: it's basically a floor safe with a screen, a circuit board, and a bill dispenser. The dispenser is interesting, though: it's got a "reject bin" where it dumps bills that were in its cartridge, but that wouldn't make it through the dispenser for whatever reason. Interesting ATM trivia: they deduct money from your account based on how many bills they saw leave the slot, not on what you typed on the keypad. So that means that if for some reason an ATM doesn't spit out enough bills, or spits out too many, you still get charged for what left the machine. These guys thought this through! That's so rare.

Frederick figured out how to get audio working passably well in the RealVideo stream. It's strange: if we tell RealProducer to encode both audio and video, then the audio comes out sounding really choppy. However, if we run two copies of RealProducer, one doing video only, and the other doing audio only, and we send both of those streams along to the server, it works much better. (This probably means there's some bogus blocking going on in one of the device drivers, as the machine only has one CPU.)

An unfortunate side effect of this is that we had to change the way the clients connect to the stream: there used to be a .ra file that pointed to one stream on the server that has both audio and video in it; now, instead, there's a .smil file that points to the two streams. But the interesting thing is, the RealPlayer client seems to be smart enough about this that it realizes they're both coming from the same host and only opens one connection.

Anyway, this means that you might have to update your .mailcap file to know that you need to do "realplay %s" for content-type application/smil with extension smil. (Hopefully the RealPlayer installer has already done this for you.)

I'm told that a foot long concrete plug has been extracted from the floor drain in the women's bathroom. I guess we'll find out tonight how well that extraction went...