HNHacker News
TopNewBestAskShowJobs

mkyc

219 karma · joined February 27, 2009

submissionscomments
mkyc··on Ask HN:Review my science fiction story.
I've re-written your story to read as I read it:

In the year 3065 of The Future, people not only have all they need to be happy, but are indeed happy. Alas, uploads remain an imminent futurist dream.

Enter a man, a normal man, a man filling in a 10x10 multiplication table. But that multiplication table held not the numbers 1-10, but pi, and i, and all sorts of other crazy future symbols. If you looked at the sheet, you would find that the correct answers were all there to all their decimal places - that's right, the man was a complete badass at math. And logic. And innovation. He was the type of guy who would ask dickish questions in university classes, which he finished when he was 13. At five months old he beat his mom at math, and his mom was pretty awesome.

He read his idea journal, and it was like reading science fiction because he couldn't remember what he wrote at 2am last night. He lived in a research center, where he goofed off but was still awesome. He had a paranoia of doing math in the dark (e.g. at 2am) which he never could justify to others. So on this day of year 3065 of The Future, he went to bed.

And had a nightmare about being surrounded by Big Black Machines (I kid you not). He thought he could use logic to get out, but ended up sweating a lot instead.

You would think he would shower, but no, he just dressed and shaved. Usually, people shave and then dress, but not this man. He felt strange, like that time he thought he proved time travel (but it was just wormholes).

He drove to the office where his realistic and probably conscious submissive fembot greeted him.

He used Google and manually made a database of all the webpages he visited (grand technologies like "Google Chrome" were lost to the ages). As usual, he wasted most of the day reading 1000-year-old blog posts about how crappy DRM was.

He got back to "work" though. Turns out, everyone except him stopped caring about the origins of life, the universe, and all that.

"Hey babe, get me some coffee!" The smack on the ass that he gave his female robot coincided with the exclamation point.

"It's bad for you, sir."

"Don't care."

She brought it.

"What are you working on, sir?"

"You damn well know what I'm working on based on my search queries, which I know you peek in on."

"...any luck?"

"Not on finding out the origin of the universe. But that's because I'm working on finding out what's real. People seem to..."

"Ignore, sir?"

"Stop trying to end my sentences, sugarbuns."

"Sorry, sir. By the way, I was reading Paulo Coelho's The Alchemist and..."

And then it struck him. Maybe he was in the Matrix. A quote floated into his head, "we are someones dream but of whom we cannot know". He decided to get to work.

The story is not good. It's actually pretty bad, but all early stories are bad, so don't worry. My advice is to read a lot of science fiction, and a lot about how to write, how to write SF, and how to write short stories. Pick something and focus on it. In this story, you don't even have anything to focus on - what theory of reality are you actually getting at, and why doesn't it permeate the story? Never describe how awesome things are.

mkyc··on Wikipedia sued by German killers in privacy claim
The problem isn't that the information is available, it's how the information is used. That is, the problem isn't Wikipedia, it's the coworker who treats the reformed and repentant ex-convict like trash, then goes home and beats her kids. Or the neighbor who tells guests that "a criminal lives next door", without being asked and for no good reason.

Our built-in reputation heuristics don't function correctly when our memories are so wonderfully enhanced by technology. I look forward to the days of disposable identities and the Friends of Privacy. Or genetic screening against being a dick.

mkyc··on The Interesting Number Paradox
Were you among the physicists? :) Notability is not an intrinsic property of articles: it's like weight, not like mass. Your argument fails at the "if seriously engaged in by enough people" point, since it's simply false (by definition) that at time T1 the first uninteresting thing is sufficiently popular, at T1. It's also false that people will a) notice and b) care enough to make it sufficiently popular even at time T2.

Same goes for numbers. The fallacy is in confusing intrinsic and extrinsic properties.

mkyc··on Computing in Dwarf Fortress
Exactly.

One of the best things about dwarf fortress is that playing it using that initially-confusing interface rather than shiny graphics is like doing math using symbols and equations rather than paragraphs and paragraphs of words.

mkyc··on The left fold: weekly programming article digest: 2009-11-02 edition
It's nice to have filtered links with a brief summary, but this is not my thing because your comments are too verbose. The issue is about 500 words/18 links, HN's http://news.ycombinator.com/best is 250/30. HN has little context, but the sweet spot for me is between the two. Here are a few relevant articles:

http://www.useit.com/alertbox/headlines-bbc.html http://www.useit.com/papers/webwriting/rewriting.html http://www.useit.com/alertbox/9703b.html

Here's an example:

> Doug Crockford gave a talk on his book "JavaScript: The Good Parts". This article explains what he likes, what he doesn't, and why: Doug Crockford Talk on JavaScript (news.yc, reddit)

This implies that the content is an interpretation by someone else of Crockford, and that his talk was about his book, which it wasn't (it had the same subject). Besides that, it's verbose (in my opinion), and doesn't put the most relevant info at the front of the sentence. I would have edited it to read:

> Doug Crockford Talk on JavaScript (news.yc, reddit) - Author of "JavaScript: The Good Parts" on what's good and bad about Javascript.

or better yet:

> Doug Crockford Talk on JavaScript (news.yc, reddit) - Javascript pro/cons from author of "JavaScript: The Good Parts" (transcript).

I hope this criticism is helpful.

mkyc··on Dustin Curtis's new web app
Dear downvoters,

In this community, we don't vote based on whether or not we agree. We vote up if we think it is worth reading, regardless of whether we agree or not. We downvote when the message is inappropriate - flames and trolls, cheap humor, that sort of thing. I don't go to the comments to see who agrees with me, I go there to see who disagrees, and why.

Sincerely,

mkyc

mkyc··on Hivelogic - Top Programming Fonts
Patterns are easier to identify with a non-monotonous font, as research into word-shapes shows. Some of the fonts I use have wider-than-usual spaces, or—and perhaps you've noticed this—punctuation like the em dash that have the correct width. Patterns, right?

What you're saying only applies if your "patterns" consist of forcing everything into the same length. I suspect that you might not know what you're talking about, but only because of your choice of language ("shape of a form", "code is structure and patterns" - what exactly is that supposed to mean, if anything?). It would really help me if your points were more concrete, and you gave some real examples.

mkyc··on Hivelogic - Top Programming Fonts
I've been using non-monospaced fonts for a long time now. I also have had no issues with things I or others have lined up. "Lining things up" usually amounts to screwing around - like variable names having identical lengths, at the expense of clarity. I actually can't think of any issues that I've had. At all. I have noticed that it's a easier to read, scan, and recognize the code. There is, after all, a reason monospaced fonts are hardly ever used elsewhere - not in technical reference manuals, dictionaries, fiction...

I usually keep my mouth shut about it because a lot of programmers identify with monospaced fonts (especially ugly ones). I suggest others do the same: quietly try it, because after the "this is different, therefore I hate it" feeling passes, you might find you prefer it.

mkyc··on Regular Expression Tool for Live Editing/Testing of RegExps made with jQuery
See also http://regexpal.com/
mkyc··on Google home page even simpler
by entering the following URL

javascript:void(document.cookie="PREF=ID=abac7a90f5a3784b:LD=en:NR=10:TM=1254990196:LM=1254990236:S=uB6F4jDnMP_DuxtT;path=/; domain=.google.com");

mkyc··on The Lost Lesson Of Instant Typing
I've been using etherpad for collaborating on documents. I've found that live conversation often breaks out in the middle of the document itself. I love this, and prefer it to the normal chat area offered on the right side. (The only problem is that the in-document conversation often ends up deleted.)

I'm no longer worried if I'll sound stupid, though this did bother me when I used this feature on ICQ many years ago. I do worry about accidentally typing something rude, but I think I'm getting over this too. Communication really is much faster and more engaging this way. (It's also edifying to see how others compose their messages).

We have a similar problem with letting others see our code. The trick to getting over this is to just put it out there. In that spirit, I've made my writing of this message public at the link below; feel free to watch me stutter and change things. You can also try out live chat there, if you've never tried it before.

http://etherpad.com/hackernews

mkyc··on How not to do regexps
If you don't think it belongs, flag it, move on
mkyc··on Ask HN: Seeing points again?
I don't want to feel connected to the community, I want to feel connected to the content.

I don't like scores. A high score means that a comment was posted early, that it was good or agreeable (which is not the same as being good), and that there was groupthink. A low score means the comment is new, or not useful, or not read.

Instead, scores should be there to tell us what to skip. A high score (0) would mean that I need to give the comment attention - whether it's new or a must-read is irrelevant. (This also means that we wouldn't need a score/time ordering system.) A low score (-30) would mean that the comment adds nothing new, or is otherwise less worth reading. Upvotes reserved for those who are seldom downvoted. Perhaps this is too hostile and negative, but then perhaps it's more honest, and better able to filter out those seeking points and those who cannot stomach criticism (which I've always found has helped me improve much more than praise has - and improving the quality of new-contributor comments is the only way we'll be able to grow).

I also think it's a loss that we can't remove names from comments (though leaving links to profiles). Removing them would emphasize that the score is about the comment, and not about the name.

I understand that developing a large user base is important, and that trying eccentric solutions might aggravate our core group into forever abandoning hn for more predictable and friendly sites... but I really do wish that pg would mess with the site more often and for longer periods of time, and not worry about the community's response. Our system is not so perfect that messing with it is guaranteed to reduce its effectiveness.

mkyc··on Ask HN: Seeing points again?
But this would average out to be (slightly) more accurate than no votes at all.
mkyc··on Ask HN: Seeing points again?
Turn both on. The dot will allow people to skim, the score will inform the overly curious.
mkyc··on Ask HN: Seeing points again?
We should use an orange dot, the opacity of which goes up based on the score, with alt text. This isn't a console. It was refreshing to be able to check scores with hardly a glance, even at the cost of seeing exactly how well it scored.
mkyc··on CodeThatDocumentsItselfSoWellItDoesNotNeedComments
My point is that naming verbosity depends on the code. This is vague but better than saying "cf. Goldilocks" ("choose anything between two crazy extremes"). My other point is that everyday use of names should be a guide for naming in code. The reason Mama Bear is wrong is that she's too formal. She gives a full explanation of the variable each time, but the 'full explanation' is the responsibility of the var setters, not of the name.

Your Momma Bear either misses the last days of several months, or counts extra days. It also fails to count the LastMonthOfYear. Your Baby Bear is nothing like your Momma Bear, though you seem to be refactoring. Momma counts entire months (look at the variable names, last day of month), Baby does something like "sum the totals from the first five days of Feb-May". These are naming bugs, they aren't irrelevant.

The naming depends on the code. If we're iterating a 3d array and the vars are set directly above, Papa Bear is readable and I wouldn't dick around with it (it might be a convention in the codebase).

  // baby bear
  for(y=firstY; y<=lastY; y++)
    for(m=firstM; m<=lastM; m++)
      for(d=firstD; d<=lastD; d++)
        sum += getDailyTotals(y,m,d); // line 4
I'm not writing tutorials here. If you don't understand y, m, d in lines 1-3 (especially having seen line 4), you probably haven't been working with dates enough to be messing with this code anyway.

I'm not saying you should choose single variable names, I'm saying they're sometimes ok, and that it's not as simple as "choose names with 4-8 characters".

mkyc··on CodeThatDocumentsItselfSoWellItDoesNotNeedComments
The moral of the story is not to use shorter names, but to write better code.

  Date start = ;
  Date end = ;
  Iterator i = new DayIterator(start, end);
  while (i.hasNext()) {
    doSomething(i.next());
  }
Your Papa Bear example iterates over a cube in a 3d array. Your Mama Bear example is some seriously broken date iteration code (so you change lastDay from within doSomething?). The Baby Bear is equally broken 'time period' iteration code.

Writing self documenting code isn't about giving everything complete and proper names. It's about choosing comprehensible and trackable names. You introduce Mr. Joseph Harrison as such, but you may thereafter call him Joe.

  BufferedInputStream bufferedInputStream = ... // bad, too formal
  BufferedInputStream bis = ... // bad, too casual
  BufferedInputStream stream = ... // ok
  BufferedInputStream input = ... // good
The Baby Bear code's naming is a bit off too. Is it inclusive or exclusive? I would not be bothered if I saw:

  for (y=firstY; y<=lastY; y++) {
The letter 'y' is obvious (yy/mm/dd), and its scope is small.
mkyc··on Project ‘Gaydar’: An MIT experiment raises new questions about online privacy
Very much related: http://yudkowsky.net/rational/bayes
mkyc··on What Kate saw in Silicon Valley
Modesty. When someone who you respect or look up to inadvertantly contradicts what you have been teaching, this can be embarrassing.
mkyc··on The Fall of Hacking
It's not about the effects, it's about the drive and the feel. A new place, alien and exciting, and you knew, you suspected, you had no idea what could happen there. The things you did, the community you found, all very pure, like thinking code for three days straight. You'd cut your identity down to six characters or so. You could earn your stay, picking off a national company, with the cheapest of your tools. It's not about the effects, yet now you look back and see a petty thief.

Now, the land is settled, everyone and their grandchildren are here, skyscrapers everywhere. You talk to everyone here, you talk business. You use your name - why wouldn't you? Once almost everywhere had the feel. Now, we look for its analogue in dead musicians, business, pleasure - dressed in not-suits, slurping whole-grain ramen, in our exclusive club, HN, no memes allowed.

Like noname123, I'm not sure if I'm doing justice. I think my point is that it's not about what people accomplish. Great and not-so-great people have been doing amazing things for a while now. Once, though, there was a place that seemed to force you to drop that extra crap - your name, your latest grab for cash, your ego. Usenet before the Eternal September, programming before dot-com, the internet before social networking. Now everyone's here, no effort, no stigma, business as usual.

It's not our fault, we didn't mess this up. It's just what happens, after a while. That frontier feel isn't dead though - it's just waiting for us to start going up into space, filtering reality through wearables, hooking circuits into our heads.

mkyc··on The Rasterbator - Create huge, rasterized images from any picture.
When this first came out, I recall bypassing print quotas at my then-campus by finding the ip of and connecting directly to one of the many printers. May I be forgiven, the printer rolled on for what seemed like a half-hour, deposited 100 pages. I took them in a stack to the campus print shop and asked them to cut off the white edges. I'm sure they flipped through - 100 whole pages of dots - and wondered what the hell I was doing, though they didn't ask. A fun time ensued, me carefully taping the whole thing together across the corners. Went ceiling to floor, with a row or two to spare. I later sent the picture in, and was pleased to see it marked "cool" - last time I checked it was in the page 40's.

My friend, she had sent me a picture of Natalie Portman in these sweet retro headphones the day before. I didn't really think far ahead, since I could always print another off. I never did, though. After I put it up, and the sense of accomplishment wore off, I realized I wasn't the sort to put lone wall-high posters of girls up in my room, even with dashing headphones. Not that I didn't think she was very pretty. It should have been Vonnegut, Derek Parfit, Schopenhauer (it's his hair I admire most), David Hume, Licklider, though I didn't know most of them then (not that I truly do now). Natalie remains in one of my boxes of papers, folded into an immaculate stack.

mkyc··on Bill Gates quits Facebook over 'too many friends'
Flagged; this seems to be random gossip.
mkyc··on Dear YC: Please stop downvoting thoughtful comments you disagree with.
This is because many people here still vote by agreement, rather than for comments that are interesting, insightful, contradictory, terse, and so on. This happens on a much larger scale with lower-rated comments. I once saw the word "no" with a score of 50~, which made up for the contributor's running streak of -5~. It wasn't that their contribution quality became better, it was that their comment hit that major "upvote when you agree" fault in our system. It reduces our quality. Seeing even a poorly-composed brute force attack on the ideas in the article is what I come to the comments for, because even reckless disagreement is often a gold mine of those little bits of information that you didn't take into consideration, but should have. (I've said all this before, and it should be repeated.)

Vote for what you think others should see, not for what you agree with.

mkyc··on Confirmed: Digg Just Hijacked Your Twitter Links
There's no rule that says we should use the same vapid title here. I yearn for the day when I come to HN and find that either the submitters or the editors have decided to spoil every teaser and ReMove Those Damned Flow Impeding Capitals.

From "Why Japan’s Cellphones Haven’t Gone Global" to "Hardware bulk prevents Japanese cellphone globalization". Throw on a subtitle! Don't worry, I know where to find the actual article title. Sure, don't change titles to something weird and unrecognizable, but half the time I have no idea what I'm in for. Spoil it for me, summarize the whole damn thing in the title if you can.

mkyc··on Ask HN: How do you see the future of computing ?
You might be agreeing with me, and perhaps are missing my point: more people, especially statisticians, will be engaged in the programming and programming-like tasks that are required to work with ever-increasing data. Not structured-SQL data, but raw and ugly natural-language and legacy-format data. Many programming tasks in the future will be about data, and excel-like "Illustrative" programs are very well adapted, even if not Turing-complete (Interesting discussions on the turing completeness/incompleteness of even something like Excel: http://www.c2.com/cgi/wiki?ProductivityRant http://news.ycombinator.net/item?id=429477 ). Illustrative programming is just dynamic programming plus immediate feedback of program results - perhaps the ability to click on a GUI element, and change its associated code in realtime, perhaps just the ability to change how a data-point is calculated. The tools will be different.

Turing-completeness will always look like Turing-completeness, but this is hardly interesting or relevant. I think that your claim about productivity is entirely false (see something like http://www.cs.umass.edu/~yannis/law.html ), but that's beside the point of my post.

mkyc··on Ask HN: How do you see the future of computing ?
I think that Martin Fowler hits the nail on the head with Illustrative Programming: "When you look at a spreadsheet, the formulae of the spreadsheet are not immediately apparent, instead what you see is the calculated numbers - an illustration of what the program does. [...] Using examples as a first class element of a programming environment crops up in other places - UI designers also have this. Providing a concrete illustration of the program output helps people understand what the program definition does, so they can more easily reason about behavior."[1]

Illustrative Programming will fit particularly well with, and benefit from, programs that collect, crunch, and display data - this being area that I agree will see a lot of growth and attention.[2] "The ability to take data—to be able to understand it, to process it, to extract value from it, to visualize it, to communicate it—that’s going to be a hugely important skill in the next decades,"[3]

Tools that are more suitable for large and complex data sets than Excel, and easier to use than R will become available. These will be used, as many current programming languages are, by people that are not trained in software development. Visualization will become much more important, so programming tool usability will improve. We'll see the influence of statisticians in our programming tools. Chasing down posts by others with similar problems and bugs will become easier. I'm not sure how much headway Illustrative Programming will make into the more hackerish areas of programming, though I hope it's a fair bit. For the best predictions on what languages will be like, just look critically at the languages that are at the start of their lifespans now (http://mythryl.org/ ? Arc?) and also at current research.

I think, though, that the most interesting changes will come from the sort of programs we'll be writing, the sort of people we'll be working with, and the sort of tools we'll have available, rather than from some feature x or y of some future major language.

[1] http://martinfowler.com/bliki/IllustrativeProgramming.html [2] http://flowingdata.com/2009/06/04/rise-of-the-data-scientist... [3] http://flowingdata.com/2009/02/25/googles-chief-economist-ha...

mkyc··on Only 6 of the 20 largest software companies are in Silicon Valley
This list is incorrect. The author asks "just where have most of the great software companies been started?", and proceeds to list headquarters. Three corrections, for US companies (yes, I checked the entire list):

  2. Microsoft: Albuquerque, New Mexico
  6. First Data: Omaha, Nebraska
  11. Computer Sciences Corporation: El Segundo, California
So make that 7, for what it's worth. The list really isn't worth looking at, though. The other problems mentioned here are trivial, compared to the problem of a sample size of 20 being too damn small to have any meaning.

I hate lists like this, and the stupid conclusions drawn from them. Exercise for the reader my ass.

mkyc··on Lamson's Bounce Detection Algorithm
The important part of what I said above is that the spam would not arrive in any inbox. The temptation (and ability) to look through spam is the current problem, and would be eliminated.

If some servers are already doing that, then they are doing the right thing - except, the message body of a spam should not be bounced. The extra traffic on the bounce is worth expending, since it is necessary to keep spam out of sight.

If they can't get their message through, they lose the incentive to send spam. That's all that matters.

mkyc··on Lamson's Bounce Detection Algorithm
I don't check my spam folder. If it's in there, it's not delivered.

Email providers should (optionally) bounce spam, rather than sending it to a spam folder. This would eliminate the problem of false-positives, since senders would be notified. It would reduce traffic, since spammers would know the message didn't get through to any inbox, and so would focus elsewhere. Finally, it would eliminate the temptation of a spam folder for people who don't want spam, but peek 'just to make sure', and thereafter go on to support spammers.

Perhaps someone here is running an email provider, or working on such software?

← PreviousPage 2 of 4Next →