HNHacker News
TopNewBestAskShowJobs

bbb

433 karma · joined March 6, 2008

http://www.cs.unc.edu/~bbb
submissionscomments
bbb··on Ask HN: Do you recommend Open Office?
I use Open Office and iWork on a Mac, and Open Office on Linux. On the Mac, Open Office's GUI sticks out as ugly and buggy. I think it's ok, but not great, on Linux, though. (This probably reflects that the Open Office port to Mac is still relatively new.)

I prefer Open Office Writer to Word because the way that it handles styles and document hierarchy make more sense to me. Also, the document layout seems to be relatively stable; at least I haven't observed many cascading layout catastrophes in Open Office Writer yet (as opposed to Word).

A big downside of Open Office Writer is its inability to embed many file types as figures (for example, you can't embed PDF). Apple's Pages is much better in this regard.

I dont use spreadsheets much, but even my light use brings Apple's Numbers to its knees. Open Office Calc is much better in this regard. However, Open Office's charts looks like crap, and Excel's chart feature is powerful but a pain to use. Numbers' charts are easy to use and quite pretty, but Numbers breaks down in flames for even moderately-sized documents (as in click, click, draw chart, go get coffee, come back in 5min, Numbers still not responding). I now crunch my data in Open Office Calc or Python and render down-sampled graphs with Numbers.

Open Office Impress is terrible. You are pretty much limited to bullet points, images, and ugly transitions. I hate PowerPoint. Keynote is great; there is no way I am ever going back to a presentation package without a "magic move" transition.

bbb··on Ask HN: Do you recommend Open Office?
I beg to differ. On a Mac, Open Office's export to PDF is broken in weird ways (line weight sometimes wrong, fonts rendered incorrectly, other glitches), but printing to PDF from Pages (or any other application that allows you to print, including Open Office itself) has not yet let me down so far (and I use it a lot). NeoOffice, when I was still using it, did not have this problem, but failed in other interesting ways.
bbb··on TSA Response to XKCD “Bag Check” Cartoon
Same thing happened to me; I had the Swiss Army knife in my backpack between a whole bunch of CDs. I wonder if the edges of the CDs somehow concealed the knife, or if the security person simply wasn't paying attention.

By the way, what's the likelihood of TWO people bringing a knife/bomb on board the same plane? Pretty small, huh? Hence, you should always bring your own bomb to fly safely! ;-)

bbb··on Apple Pulls the Plug Completely on ZFS
According to Gruber, yes.

http://daringfireball.net/linked/2009/10/23/zfs

Here's your chance in building the better alternative. ;-)

http://jobs.apple.com/index.ajs?method=mExternal.showJob&...

bbb··on Ooc - modern object oriented c
Minor question: what's the RSS feed for the blog?

Safari lists two:

  feed://ooc-lang.org/feed.php
and

  feed://ooc-lang.org/feed.php?mode=list&ns=
The former one appears to be empty and the latter one doesn't appear to include blog posts (or at least it includes a lot of other stuff; I'm not sure). It would be nice to have a regular RSS just for the blog for us non-Twitter-aficionados.
bbb··on Ooc - modern object oriented c
True, but it wasn't exactly Ruby/Python/IO inspired. ;-)
bbb··on Ooc - modern object oriented c
Uh, no. I guess I picked the wrong declaration; I meant Tm. There is a bracket/scope opened after 'struct tm' that, as far as I can tell, is never closed.
bbb··on Ooc - modern object oriented c
The second to last example looks like it is incomplete:

    include time // equivalent to #include <time.h> in C
 
    TimeT: cover from time_t
    Tm: cover from struct tm {
       tm_sec, tm_min, tm_hour, tm_mday, tm_mon, tm_year, tm_wday, tm_Tm*
 
    main: func {
      timestamp := time() // timestamp is now a TimeT
      t := localtime(timestamp&) // t is now a Tm*
      printf("It's %dh%d.", t@ tm_hour, t@ tm_min)
    }
I would have expected a closing } in the definition of the TimeT cover.

Generally speaking, ooc looks really promising. Compiled to plain C, hence fast and super compatible, and with syntactical treats borrowed from Python and Ruby. I wanted this for a looong time. :-)

bbb··on Ask HN: What do you think of GitX?
First of all, thanks a lot for GitX! I use it pretty much daily and like it a lot.

One thing that I'd like to see improved would be its support for bundles. I use GitX to manage (among other things) Latex documents that include vector graphics created with OmniGraffle. I keep both the exported PDF and also the .graffle "file" under version control. It would be nice if GitX (optionally) would recognize the bundles as such and not display their constituent files individually.

bbb··on Apple's sleek upgrade
x86_64 == more registers available than on i386

more registers == fewer spills

For the average compiled program, fewer spills == faster.

=> Average programs run faster under x86_64.

bbb··on Sentdiff: Diff for Writing
Git has something very much like that already built in. Try

git diff --color-words

bbb··on Redundant. Bored. I'm coming to SFO. Tight budget.
In the startup scene and among anyone with a technology-oriented college education, it won't be a problem at all. Almost all Germans learn some English in high school, and most retain enough to at least a have basic dialog.

In short: working in the startup scene won't be a problem; grocery shopping might be an adventure. ;-)

bbb··on No more tail calls in Javascript?
> To write robust code, you're forced to use iteration instead.

That's exactly the point. You can use nice functional idioms in Python as long as you make the main loop(s) that crunch data iterative. Same thing in Javascript.

Adding tail-call optimization adds little to Javascript; it's nice to have but has no high return on investment (in terms of the effort you put into the language vs. what becomes impossible if you omit it).

Case in point: Think of all the criticism directed at Python. The lack of tail-call optimization is not voiced very frequently.

bbb··on No more tail calls in Javascript?
In my opinion, that's not really such a big deal.

For example, Python does not optimize tail calls, but supports many functional idioms anyway and is quite pleasant to use.

So, yeah, having tail call optimization be a mandatory part of Javascript would be cool from a language nerd point of view, but it would have very little practical impact.

bbb··on The world *has* changed: Why we should be afraid
No, that just means "damage startup."
bbb··on Suppose I wanted to write a C++ based web application...
What is wrong with "the app being the server?"

There are plenty of C/C++ HTTP libraries and frameworks out there. Just proxy your homebrew app server behind squid, lighttpd, apache, nginx, or $YOUR_FAVORITE_PROXY and you are set.

In fact, it makes it really easy to develop and test your app that way. There is no web server to configure and you can easily stick in printfs all you want. I use CherryPy (standalone HTTP framework for Python) that way exactly for these reasons. I'd do the same with C++.

bbb··on Zeitgeist 2: Addendum
I tried, but I couldn't watch the movie.

Even assuming for one second that their claims are true (which I highly doubt, they barely present any evidence in the first 30 minutes), why on earth would you make your movie look like a propaganda film from the 1930ies? It has pseudo flicker and a narrator voice that will haunt you in your nightmares. In. fact. the. narrator. talks. extra. slow. so. that. you. really. understand. their. crazy. theory.

Terrible. I'd be interested in an intellectually honest criticism of the reserve banking system, but this is just pure rubbish. It explains nothing. It just creates fear, uncertainty, and doubt. Just thinking about it makes me angry. Some people will undoubtedly fall for this. It is sad.

The answer to right-wing propaganda cannot be left-wing propaganda. Movies like this contribute nothing. They don't even provide a basis for discussion. They are a waste of human effort and bandwidth.

PS: I just realized I'm feeding the trolls; this has nothing to do with hacking. Sorry.

bbb··on Do Good Grades Predict Success?
UNC Chapel Hill has an interesting grade system for grad students that emphasizes that grades don't matter much. There are only three major grades:

H (high pass),

P (pass), and

L (low pass).

Well, and and F, technically, but you are kindly asked to leave if you get an F.

You can have at most one L. You need to maintain a slightly above P average to be admitted to the PhD program.

bbb··on 10 Books that will Substitute A Computer Science Degree (debate?)
And not to mention shared-memory parallelism. Multicore anyone? Ever heard of it?

Going the 10-books-will-do-route will also make sure that you won't get exposed to specialized fields such as embedded and real-time systems, machine learning, computational geometry, bio informatics, etc.

A degree is also about knowing that certain fields exist; you don't necessarily need to have studied everything. You can read up on them when you need specialized knowledge, but if you've never heard of some obscure field because your "ten books" didn't mention it, then you are screwed.

At a good university you will be exposed to a much wider variety of topics than any (reasonably sized) set of books will do.

bbb··on A hacker's loneliness
Statements like the above always frustrate me.

I'm in school (and have been for a long time). Many people that I respect told me: grad school was the best part in their lives, that I should enjoy my time, and that it only goes downhill afterwards (no more research, family obligations, boring jobs, administration work, etc.).

Great. But what if I don't like my situation right now? What if I don't like grad school that much? What if I don't like most of the people around me? If the sentiment that grad school is the best part of life is correct, then what else is there to look forward to? What's the point?

(sorry for being all gloomy, but the parent's post really struck a nerve)

bbb··on Palin Hacker Caught - Son of Democratic TN State Rep.
Good point.

But if there are a lot of laptop-using customers even a security camera shouldn't be too much of a problem. After all, just being there is not a crime in itself. And wiping your system will delete all evidence that could link you to any log files.

bbb··on Palin Hacker Caught - Son of Democratic TN State Rep.
Because the library is more likely to have their computers controlled tightly: they may keep a record of who requested to use a computer, use some kind of logging proxy, keep a copy of your ID, and you leave finger prints etc.

Also, a library may not let you install the tools that you need. If you bring your own laptop then you can do whatever. Also, a busy coffee shop offers more anonymity than a library most of the time.

Additionally, explaining why you went to a coffee shop may be easier than explaining why you went to the library (if you are like most people). Having to explain why you diverted from routine is what gets you caught.

bbb··on Ask HN: How to store user/pass securely in the browser?
Exactly, and use public key crypto:

1) Generate public/private key pair for user.

2) Send public key to client.

3) Encrypt PW on client, store as cookie.

4) Store (user, private key) on your server.

5) Client now sends the encrypted PW whenever it is needed.

6) Server decrypts on demand, but does not store a local copy.

Since you never relinquish the private key this is pretty much unbreakable for spyware going through a client's cookies. (Nevermind key loggers...)

bbb··on Palin Hacker Caught - Son of Democratic TN State Rep.
Hypothetically, it is really easy get away with something like this:

1) Go to a well-trafficked coffee shop that you've never been to before. Pay with cash.

2) Use a bootable Linux CD or a virtual machine for the actual "attack." (Xen, VMWare, anything.)

3) Spoof your wireless MAC address. (if you are paranoid)

4) Perform your "special investigation." Post your info to wikileaks.

5) Reboot without the Linux CD or securely delete the virtual machine when you are done.

6) Don't brag about it.

See, you don't even need a proxy. It's not that hard.

How can anyone be so stupid to get caught anyway?

bbb··on Wikipedia deletes entry on PBWiki, the biggest hosted competitor with 550,000 wikis
Maybe.

But Wikipedia is not the "list of all businesses in the world." It's not even the "list of all businesses that got mentioned by $X" where $X in Newsweek, Forbes,...

What has the company done that is special? Did it innovate in some special way? Was it involved in some notable affair? Is it the market leader in some domain?

If it's just another wiki farm that happens to have a PR department worth its money then it doesn't necessarily have to be listed in Wikipedia.

Note that I'm not saying that PBWiki shouldn't be listed (I don't know them, after all), but that I'm saying that hits on Google News don't imply that it _must_ be listed.

Deletions occur all the time. If you think an article got unfairly deleted, resurrect it and put in better citations.

On top of that, PBWiki is not even a competitor to Wikipedia. Wikipedia is the wiki. MediaWiki is the software powering Wikipedia. PBwiki's software may compete with MediaWiki. PBwiki's hosting service competes with neither MediaWiki nor Wikipedia --- neither "product" is in the hosting business.

bbb··on Wikipedia deletes entry on PBWiki, the biggest hosted competitor with 550,000 wikis
Maybe it just wasn't notable? I've never even heard of PBWiki.
bbb··on Academia.edu launches, a Geni For Researchers
Yuck. A great reminder why you shouldn't use Flash to build a key navigation element of your site. This particular site is slow, and it behaves in very unexpected ways. Is there any advantage to using Flash in this situation?
bbb··on Laptops: Mac vs WinXP/Ubuntu?
The comment about using them regularly was mostly targeted at rsync, tar, and other backup tools. I never invested the effort to automate my backups even though I am well aware of cron.

Part of the problem is that the manual part of connecting the backup hard drive remains. I don't like online backups since I don't have sufficient bandwidth. So what I was really looking for was a nicely scripted backup solution that integrates with udev, so that I really only have to plug in my hard drive. And figuring out udev -- which tends to change from version to version -- is something that I thought I'd do "later."

bbb··on Laptops: Mac vs WinXP/Ubuntu?
I had been using a Linux laptop for over 6 years until it died last fall. Now I'm using a MacBook and I'm absolutely loving it. Why?

- Power management. Suspend and resume just works. The battery life is great. Linux has catching up to do in terms of power management. (I know ACPI docs are bad/non-existent, and that it's not the kernel hacker's fault, and that lot's of things are improving. But my Mac does a better job right now when I need it, and I didn't have to configure anything.)

- Keynote. I need to give good presentations as part of my job, I need to communicate ideas. Every minute I don't spend fighting my presentation tool is an extra minute that I can spend on content and delivery. OpenOffice Impress and MS PowerPoint drive me nuts. Keynote is so ... simple. It just works. It has a decent interface. Well done animations are suddenly worth the effort (and nothing explains a technical process as good as a well-done animation).

- Presenting works. How many times have I seen people fail to get X11 to talk nicely to a projector? Even (Linux) kernel hackers had that happen to them. If they can't figure out X11, I sure don't want to risk to look unprofessional in front of an important audience. With my MacBook, I just show up, connect my Laptop, and it works. Every time.

- It's still a real UNIX (unlike Cygwin). I've got Emacs, I've got bash, and most of development work doesn't feel any different from what I did with Linux.

- It's got MacPorts. I thought I was going to miss Linux package management tools, but MacPorts is just as good (if you don't mind waiting for the compile to complete).

- Time machine. Yes, I do know rsync. I do know cron. I do know all kinds of tools. Did I use them regularly? No, I was too lazy, as I suspect most people are. Have I lost data because of that? Yes, and it hurt. Now, I do a backup every night when I come home, because it happens automatically. If I break my MacBook, all I have to do to restore my old system (including all installed programs and settings) is to hook up a new Mac to my backup drive. OS X will do the rest, which is great since I bet that my hardware will fail just before an important deadline...

So is all that worth several hundred dollars? For me, it is. Buying a MacBook has taken away one more thing to worry about. I rely on it to just work, and so far it has not let me down.

bbb··on Join us at Hacker News Coffee, San Francisco, Tuesday at 9:15am
Are there any HN readers in the Chapel Hill/Durham/RTP area? And would you be interested in organizing something similar?
← PreviousPage 2 of 3Next →