Live data from Hacker News

Do One Thing

radar.oreilly.com

111–120 of 136 posts

Re: Do One Thing

#111
1. Unix shell solved one thing very well: (unary) function composition based on a text protocol. It gets complicated already when you want to beyond a pipe - e.g. A graph like a makefile. Then you need to leave the pipe metaphor in nost cases and deal with artifacts like files. Even more so, map-reduce was a big shift that went beyond the unic metaphor.

2. There was a different metaphor that had its merits: object composition through standard interfaces, e.g. OLE/COM and the likes. One might argue about its implementation (embedding a Visio object in a Word document still produces crashes, 25 years later), but as a UI metaphor it was very powerful.

3. The web's metaphor is coupling of disparate content through URLs and HTTP (and HTML). One of the most mind-boggling metaphors ever introduced to man (talk about doing one thing well). Today we use REST APIs as the atomic pieces (do one thing well) and Javascript/ObjectiveC/Java as glue. Same thing.

4. As for application it goes, "Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp" (Greenspuns tenth rule). Slightly updated this means that as programs get more complex, they tend to become more integrated abd customizable, to the point where you use a high-level language to glue the different parts. If you're lucky they may have replaced a custom common lisp with a mature V8 engine, but the lore is still the same.

5. Outside of academia, people (product managers in particular) tend to be focused on solutions, not abstractions. And for good reason: solutions are often shortcuts for common applications of abstractions, and therefore they provide lots of value. File.ReadAllLines() vs. doing the same with 3-4 Java classes in the old days is the best example.

6. In the end, we need people to think about abstractions: unix pipes, map-reduce, URLs. And we need other people who think about solutions: The IPhone, the Google world etc.

7. As for the OP: curl might be a good start of a pipe. Add a program that parses tables, and a program that posts to REST APIs...

Re: Do One Thing

#113
economic incentives typically lead firms to look for new sources of revenue. they hope to achieve this extra revenue with minimal cost, ideally by not creating new products or developing new customer relationships. the natural side-effect of this situation for software companies is that they add feature-upon-feature to existing products in an endless quest for growth. at the very end of the road this situation doesn't usually work out well for the product, the user, or the company.

on the other hand there are plenty of services/applications that keep stable interfaces for many years at a time. they do not extend themselves too far beyond solving the problem they originally tried to solve. we can all imagine what craigslist would look like in the hands of short-term profiteers, endlessly tweaking the interface for more ad clicks and "user engagement".

the success of sites like the original google search, craigslist, and HN proves that the "do one thing, keep it simple" model is successful and can often be very profitable in the long term. sadly, it is very easy to forget about such ideals when people are constantly dangling fresh money in your face and/or you have salaries to pay. while page rank might be considered the key element to google's genesis and explosion, we also owe much respect to the people that decided and continually insisted that the UI stay clean and minimal.

Re: Do One Thing

#115
post #91

Earlier quoted context omitted.

But that's how it's presented, not content. Look I dislike 5mb pages with 2 paragraphs of text content as much as the next guy, but if I had to choose between that and 1000 shitty Geocities 'personal homepages' and the vast wealth of information that can be found on the internet today, I'd choose today in a heartbeat. How can someone claim with a straight face "but the web really was a lot more fun pre-dotcom-bubble"…

There is little actual content in present day Internet relative to its size. Look, what is produced on those websites that also tend to carry heavy presentation is not content. Real content is Wikipedia, or Hacker News, or various people and their various topical subpages, personal blogs, up and including stuff hosted at Geocities and Tripod Lycos. What is not content is most of the stuff that's created for money, in…

I don't care about content/download size ratio, I care about content (quantity and quality) in absolute size. Download speeds have progressed faster than page bloat.

Wikipedia didn't exist in 1999 (not for years, and even Slashdot was barely more than a gossip site. Good quality discussion back then was on usenet or irc. The concept of a 'mooc' was just a wet dream of some 'cypherpunks' and 'technoanarchists'. Download a manual for your microwave or car, do online banking, email anyone but your hardcore nerd friends? Forget it. Price comparison shopping, ordering something from another continent? Lol. I remember riding my bike to a local bank branch to pick up foreign currency, which I stuffed into an envelope and snailmailed. Had to ask at the counter of the post office how much the postage was, because there was no way to look that up online.

Mp3? Sort of existed, you could download song by song from geocities pages; that was before the crackdown that led to Napster even. But the "selection" was minuscule, compared to today.

Oh and back then, when you wrote a site, you chose between supporting ie or netscape, or browser sniffing and serving two versions, or sticking to yhe lowest common denominator which wasn't much, to put it mildly. Ffs people won 'best of the web' awards for html that worked on two browsers and didn't look like crap! Like obscure competitions today where you build a file that is both a pdf and a jpg! My first job, back around that time, was to 'port' a website from ie to netscape.

The more I think about, the more convinced I get - any claim that it was better in those days is just rose-colored glasses.

Re: Do One Thing

#116
post #89

> The first person to create a tool that can pipe a table from a browser into a spreadsheet... Wait a minute. This is called the clipboard. Try it -- you can just copy and paste the table into a Google Doc and it Just Works. What's missing?

It's missing the ability to build an automated process. Clipboard operations are designed to be manual.

Or called by a script. Problem solved.

Re: Do One Thing

#117

Earlier quoted context omitted.

This feels like an over-simplification. Life doesn't fit into 4 quadrants, and the only thing models are guaranteed to do is be inaccurate. "One thing" and "well" are fundamentally subjective and based on a particular use-case. You have to focus on the problem(s) you're solving, and be disciplined about the scope of the problem(s) you're solving.

>the only thing models are guaranteed to do is be inaccurate. My model of gmail is gmail. This model is 100% accurate.

I don't mean this negatively, but I don't understand what point you're making...

Re: Do One Thing

#118
post #79

Earlier quoted context omitted.

Eh, there is a lot to be missed from the 'net, yes; but from the web? Like what? I mean, even when we're generous, 'pre-dotcom-bubble' is 'pre-2000' - the web was crap back then.

- It was much lighter; entire websites used to weight less than a single JS file today. We've increased the size of pages by an order of magnitude (and processing expense by at least two) for no real reason except laziness. - The SaaS/cloud model wasn't so popular, which means trying to lock you in by stealing your data, or doing absolutely ridiculous things like IoT does, wasn't something you saw.

Bandwidth was more scarce too. If not for the commercial explosion the Qwests and Level 3s of the world would not have spent billions laying fiberoptics.

Re: Do One Thing

#119
post #115

Earlier quoted context omitted.

There is little actual content in present day Internet relative to its size. Look, what is produced on those websites that also tend to carry heavy presentation is not content. Real content is Wikipedia, or Hacker News, or various people and their various topical subpages, personal blogs, up and including stuff hosted at Geocities and Tripod Lycos. What is not content is most of the stuff that's created for money, in…

I don't care about content/download size ratio, I care about content (quantity and quality) in absolute size. Download speeds have progressed faster than page bloat. Wikipedia didn't exist in 1999 (not for years, and even Slashdot was barely more than a gossip site. Good quality discussion back then was on usenet or irc. The concept of a 'mooc' was just a wet dream of some 'cypherpunks' and 'technoanarchists'. Downlo…

Remember Usenet? Ah the good old days.

Re: Do One Thing

#120
post #35
post #16

On the 'do one thing and do it well' issue, there seem to be two spectrums: 1. suitability of a tool to multiple tasks 2. number of features a tool has This makes for sort of a field with four quadrants: 1. simple but flexible tools 2. complex and featureful tools 3. specialized but simple tools, 4. highly specialized and highly featureful tools So take a tool like grep and it clearly belongs in the first quadrant. Y…

There are quite a few things in the fourth category, and I'd like to say, for instance: Beeminder. Specialized, but there is a lot going on. Honestly, I like it. I could just keep a text file if I didn't want those features, and I honestly can't think of any features I would subtract. Which raises the larger question: are the advocating flexible but simple tools, straightforward but domain specific tools, or are they…

I could just keep a text file if I didn't want those features, and I honestly can't think of any features I would subtract.

But the point about simple & flexible tools is not to miss on features for the user, but to separate those into different tools. The people who prefer a simple text editor to an IDE aren't doing everything else by hand, but using a set of different tools to accomplish the same as the IDE built-in features would.

Taking the Beeminder example, and with the caveat that I've never used it: the graphing system seems cool, but it can't be used by anyone who doesn't have access to a credit card; if the graphs and the commitment payment systems were two separate tools that you could connect instead of a bundle, one could use the former with an alternative commitment system.

Post reply on HN