hacker news with inline top comments    .. more ..    11 Aug 2012 News
home   ask   best   7 years ago   
Bash Initialisation Files - what gets executed solipsys.co.uk
14 points by ColinWright  58 minutes ago   3 comments top 2
gosub 7 minutes ago 1 reply      
It would be very cool if there was a similar graph for the entire boot process: from grub to init to rc.d/systemd to login to bash.
ColinWright 55 minutes ago 0 replies      
Prompted to submit this because of this item:


Gertboard, for Raspberry Pi to interface with sensors raspberrypi.org
38 points by wiradikusuma  4 hours ago   13 comments top 2
FrojoS 33 minutes ago 0 replies      
> Gertboard is packaged as a kit. It doesn't come preassembled; you will have to solder it together yourself.

I hope it won't take to long until there will be pre-assembled ones, too. For an open source design, all you need is someone who invests some money to get the board assembled in China and then sells it in a web store.

Here is an example, to show how affordable assembling low quantities of boards in China has become. For one of our designs, buying all the parts online in the US or Switzerland, was about $150. If you buy about a dozen of them in China, they are about the same price point. But then, they are already assembled according to our design! Once you buy around one hundred, you save considerable money. In our case, the offer we got is about $100 per board (33% savings!).

The lower the transaction cost, the better. If you think soldering has minimal transaction cost, compare the price of a soldering station with a Raspberry Pi.

option_greek 3 hours ago 1 reply      
I was really looking forward for something like this. I hoped the price would be a bit low though.
Show HN: Eligible API for 700+ Health Insurance Companies eligibleapi.com
181 points by kategleason  13 hours ago   60 comments top 13
ammmir 9 hours ago 2 replies      
I applaud the initiative, but I think the JSON needs to be friendlier.

* Use REST.

* Use HTTP Basic auth instead of cluttering the URL query string with the API key.

* Use ISO 8601 for dates, no exceptions.

* Use lower_case or lowerCamelCased keys.

* Don't use spaces or other non-alphanumeric/underscore characters in keys, otherwise you can't easily index child objects with dot notation in many languages.

* Instead of liberally using dictionaries, use arrays with a type field. For example (I couldn't finish the example because the example JSON on your site is indented too poorly to comprehend):

    active_coverage: [
title: "Item #1",
description: "Choice Fund HRA Open Access Plus",
free_text: "Member is in network based on NPI ID provided in request",

* Why are percentages expressed as a string? Instead of ".1" which will need to be parsed again by the consuming app, use a raw number, or to avoid floating points, multiply by 100 to ensure whole numbers.

* Same goes for balance, make it a number (use cents to avoid floating points), and provide units like "USD".

The JSON example at https://eligibleapi.com/overview/how-it-works is incomplete and invalid. I'd be interested in seeing the entire JSON envelope to see how to actually get at the data and what other metadata is exposed.

This looks like a straight up EDI translation into JSON, and thus not natural at all. I'd try to abstract it out a bit more into what people might use it for, and build a truly consumable REST API.

chime 12 hours ago  replies      
If I understand it correctly, this is an EDI to JSON API? At 5c/call, it seems like one of the most expensive APIs out there but I'm guessing it does something that is very difficult to setup on your own. Reading the front-page, did not make it clear what is it that it really simplifies. And how can I as a developer (who might want to make a mobile app for the medical industry) make use of this service?
6ren 9 hours ago 1 reply      
The deeply nested JSON (9 levels) seems difficult to understand without some kind of schema/detailed docs - though maybe domain users are already familiar with the underlying data's schema? Part of the problem is intrinsic data complexity, aside from EDI format. https://eligibleapi.com/restful-json-api/response

Also, it's simulating JSON [] lists as objects with fields named "Item #1", "Item #2", ... Seems an odd choice. e.g.

  "Deductible": {
"Item #1": {
"Calendar Year": "1500"
"Item #2": {
"Remaining": "500"

EDIT: To clarify, below is the same snippet using JSON lists. The list syntax gives schema information (i.e. that it is a list), and is standard, readable and concise. Most parsers will map it to a list in the destination language, making it more natural to address and loop over; i.e. easier to process in general.

  "Deductible": [
"Calendar Year": "1500"
"Remaining": "500"

seltzered_ 12 hours ago 0 replies      
Just fyi, there's a "mint for healthcare" startup called simplee.com that's been around for a year or two. You link the site up to your various health insurance plans.

I've used it but haven't really gotten any interesting out of it before.

edd_dumbill 11 hours ago 0 replies      
Just one nit: tell us more about who you are.

When dealing with something like health insurance data (or really any service, to be honest) I like to know there's a human or corporation behind it. Your contact page just lists an anonymous email address.

Knowing who the team are that built this thing would give some assurance " particularly because your signup page asks quite a lot of information, way more than you give away about yourselves.

Danieru 12 hours ago 2 replies      
I am impressed by this site's use of Bootstrap. Most Bootstrap sites look like exact clones of the example templates with some colors swapped. The Bootstrap origin on this site is obvious yet not tired.

All they did was add a background and position one element yet it looks unique. I think the key thing was that they avoided the Bootstrap's black navigation bar.

buss 11 hours ago 1 reply      
I've been using Eligible API for just over a week and I must say that I'm loving it so far.

Kate & Patrice have been extremely responsive and improving incredibly fast.

jasonkolb 11 hours ago 1 reply      
I wish the raw data was available (is it, somewhere?). I'd love to do some statistical analysis on this and get some real insight about how different insurance companies treat claims.
technotony 12 hours ago 1 reply      
Anything involving health data is interesting and has the potential to improve lives, however there isn't enough information on the landing page here to indicate what this data is or why I might want to use it. Could do with a better landing page.
daigoba66 9 hours ago 0 replies      
Some questions that immediately came to mind after reading through the docs:

1. Does the response contain more than just the 271 EB segments? The demographics segments are important, as are payer contact segments.

2. How do you deal with payers that require provider registration? Do you have a standard registration form that can be used to expedite the process. Do you, can you, register on behalf of the provider?

3. JSON is web service friendly and stuff, but your output sure is verbose. Is there any reason you choose to print entire descriptions of codes instead of just returning the code? (for example "Diagnostic Lab" instead of simply "5"). Personally I think sticking to the standard X12 codes would make the data easier for software to consume. In my honest opinion it's hard to beat X12 for EDI transactions given its well defined structure. Though it's very unfortunate that it's not "open".

4. Do you accept multiple service type codes on a single request?

5. Can you accept a Service Date in the request? Often times it is useful to retroactively check for coverage. A good example is Medicaid: providers often batch eligibility requests for their self-pay patients at the end of the calendar month to see if they now have coverage (new Medicaid coverage can be retroactive in some cases).

6. How reliable are your connections? Have you setup your own direct payer connections, or is mostly hopping through other EDI vendors (Emdeon, ENS, Meddata, etc)?

dfc 12 hours ago 1 reply      
I was surprised by the read-only aspect of the API. How do doctors/medical providers/employers submit records and or update billing information? I guess I am under the impression that when I visit the doctors office that they transmit data to my insurance provider.

Nota Bene: I dislike the malicious sentiment that often pops up in threads like this. My question is driven by pure curiosity.

colinsidoti 10 hours ago 1 reply      
My father's a chiropractor and I just asked him about this. Apparently checking insurance eligibility is a "pain in the ass" and involves a phone call with wait times.

I'm excited to see if I can quickly put something together for him.

cllns 11 hours ago 0 replies      
It would be cool to provide a sample API with test data.
You could either require sign-up (as individual or organization, but not necessarily a registered company) or don't. This would enable someone to hack something together before they establish a company.
Creepy Spying System Revealed by Wikileaks, Which Then Gets Hit by DDOS Attack reason.com
133 points by wmeredith  10 hours ago   35 comments top 13
andreyf 8 hours ago 3 replies      
RT is, as usual, full of shit. TrapWire is no secret, but a public product, available to any company who wants to pay for it (see www.trapwire.com).

"more accurate than modern facial recognition technology"

"recorded digitally on the spot"

"encrypted and instantaneously delivered to a fortified central database center at an undisclosed location to be aggregated with other intelligence"

"the corporation's ties are assumed to go deeper than even documented"

It sounds a bit ominous, but what does any of that even mean? The security video cameras have encrypted feeds into a central server, which does facial recognition? Sounds nice, but I'd be surprised if it works well enough to be useful (esp. if someone is wearing sunglasses), but not nearly as alarmed as the tone of the RT article encourages. Sounds more like fantasy technology and wasted tax money than anything else.

oconnore 9 hours ago 2 replies      
Wikileaks needs to start distributing files encrypted before they announce what's inside them. It wouldn't provoke a DDOS and distributing the password after the announcement is much simpler.
zobzu 9 hours ago 3 replies      
i'm a little scared that indeed, all mirrors are offline.

Why? because it means it's actually powerful people and not "random patriots in the USA". Thus, I feel like it's a more direct hit to our freedom of speech, etc.

It's also pretty obvious that no one would think Assange actually committed crimes. You'd need to be both blind and deaf to not figured that he's been framed into this ridiculous sex affair.

ps: hello trapwire auditors, have a nice day!

Xcelerate 9 hours ago 0 replies      
I'm not sure if the system is as bad as it's made out to be. Check out http://trapwire.com. It seems it's really just used for preventative measures in high security areas (although any company can participate).
smashing 10 hours ago 1 reply      
Sounds like a big waste of money for me. Too bad AI is so hard, and we are experimenting with a human flagging system. Unlike DMCA notices in business sector, this apparently doesn't even seem to depend have context to the significance of the transgressions, as it appears to depend on automated content collection from whatever sources they can muster.

I wish it was a big conspiracy by the EVIL GOVERNMENT. But alas, it is probably a huge waste of the taxpayers' money.

taybin 10 hours ago 0 replies      
It is getting harder to tell who is actually suffering from paranoid delusions and who is on to something. :(
phreeza 3 hours ago 1 reply      
Is there any way to verify externally that there is actually a DDoS of the scale that WikiLeaks is claiming going on? Seems like it might just be a PR stunt on their side... As mentioned in other comments, there are so many other ways to distribute this type of info if you really want, and anyone savvy enough to DDoS on this scale should be aware of that, plus the information doesn't seem to be as hot as they make it out to be anyway.
saurabhnanda 1 hour ago 0 replies      
I don't know how modern DDoS works, but couldn't Wikilieaks just start repeatedly broadcasting files over UDP streams. Like how it's done in Carl Sagan's Contact?
NHQ 9 hours ago 4 replies      
Has wikileaks ever heard of bit torrent?
fluxon 10 hours ago 0 replies      
Internet Archive now seeds torrents of all new content, at honkin' speeds. But weren't these files released in February? Or is this a new set?
tchunin 7 hours ago 0 replies      
I'm sorry, but whats the point of DDOSing this release? Aren't there just a million ways to push something out? How is this effective at all?
thatusertwo 7 hours ago 0 replies      
This is science-fiction coming alive, TrapWire seems to be a little like 'Minority Report' and 'Person of Interest'.
How you eat corn on the cob predicts whether you're an analyst or algebraist bentilly.blogspot.com
159 points by JumpCrisscross  13 hours ago   51 comments top 24
Sniffnoy 2 minutes ago 0 replies      
I'm very confused by the idea that OOP would be considered somehow more "algebraic". Functional programming seems way more algebraic to me. I mean, writing Haskell seems about as algebraic as programming gets even without using monads or other such very-high-level abstractions. Also, odd where he puts emacs/vi compared to where he puts programming languages, considering that emacs uses Lisp. (FWIW, I prefer algebra, and I tend to eat corn in patches.)
m0nastic 9 hours ago 6 replies      
Apparently I'm screwed; I cut it off the cob in sheets.

So I guess that means I don't care about efficiency, but need things super neat and orderly. I have always liked Prolog though...

gpmcadam 1 hour ago 0 replies      
I buy corn in a can and heat it quickly in a microwave.

Not the tastiest, but it's quick and it gets the job done.

And yes, I'm a PHP programmer.

gxs 8 hours ago 1 reply      
This is the kind of article that makes me love HN.

While I'm not a mathematician, I was a math major. I always preferred algebra, and sure enough I eat my corn in rows - so one more data point!

tptacek 8 hours ago 1 reply      
Nailed it. I can't stand cooked corn, and I suck at math.
pirateking 7 hours ago 2 replies      
I eat in both spirals and in rows. Sometimes sticking with one method all the way through, sometimes alternating along the way. Additionally, sometimes I take great care to cleanly peck each and every kernel out of its socket. Other times I mow through it like a wild animal, bits of corn strewn around my mouth.

I have always loved math, and I always want to dive in deeper, but can never quite figure out exactly what area to jump into...

jboggan 8 hours ago 0 replies      
Weird. I got heavy into algebra, algebraic topology, and graph theory early on and never cared a whit for analysis. I eat like a typewriter.

In my home state of Georgia the two major public universities are very lopsided in their math departments. University of Georgia is very strong in algebra and Georgia Tech is very strong in analysis. I went to both but fit in much better in the former department.

I have a bunch of job interviews coming up - I'm going to ask my interviewers how they eat their corn as a wedge into discussing problem solving strategies on their teams.

carterschonwald 8 hours ago 1 reply      
Hehe, I'm on both sides and it shows in all three directions. I like all areas of math once I get to know them, and I'm currently rolling numerical computation tools in Haskell :p
(as my job! its pretty great. shoot me an email if that sound fun and you'd like to learn more )

Great silly post to end the day with

pguertin 8 hours ago 0 replies      
I grow my own corn that has just one extra-wide kernel per row, so that eating it in spirals or in rows is the same thing.

Yes, I am a Forth programmer.

jawns 2 hours ago 0 replies      
Fascinating! I've made this the daily poll question on Correlated (http://www.correlated.org). Let's see what other surprising correlations we can make from this!
MaysonL 6 hours ago 2 replies      
A much better split than Yegge's.
radicalbyte 4 hours ago 1 reply      
I prefer to eat my corn-on-the-cob quickly, with lots of butter and salt, whilst making as much mess as I can.

It's one of the few meals where its' socially acceptable to eat like a pig :)

tel 6 hours ago 0 replies      
I eat my corn in rings, fix a z and then scrape through theta before choosing the next z. It's efficient and it sort-of follows the cornkernel grid.

I'm also more of a statistician who edits in vi and emacs every day and I'm challenging myself with some category theory and abstract algebra because I find it intoxicating.

So, I don't have a clue how to fit into this divide.

msg 6 hours ago 0 replies      
Spirals, functional, ... Emacs. I haven't done such high math but analysis seems more like how I approach design problems (domains more unique, beauty and intuition for guidance).

I have noticed that when each kernel is firm and can be cleanly separated from the cob, I am more likely to do rows. When I do, though, I usually take a horizontal chunk at a time.

lani 7 hours ago 0 replies      
I eat corn on pizza. I'm a manager
cperciva 7 hours ago 0 replies      
I don't like corn, but I checked with my parents and they both followed this rule.
dfc 8 hours ago 0 replies      
Was the title changed in order to not violate Betteridge's Law[1] or just to be more linkbaity?

[1] http://en.wikipedia.org/wiki/Betteridges_Law_of_Headlines

rdtsc 6 hours ago 0 replies      
It is akin to choosing a breadth-first or a depth-first exploration (or corn consumption in this case) strategy.

Analysts want to try and explore depth first hopefully to get to the result while algebraists go in breadth first -- to leave no kernel un-eaten in a nice systematic way.

logicalmind 8 hours ago 0 replies      
Very interesting. Now I am very curious how some famous physicists and mathematicians eat corn.
xfhai 3 hours ago 0 replies      
I once saw a girl who separated each kernel with her fingers and ate it. I have not seen anyone else do that. She was eating in spirals, but I thought this is something worth mentioning because I have not seen anyone else do that.
dbbolton 9 hours ago 1 reply      
He predicted me pretty well: spirals, functional, vi. But even though I have a decent amount of upper-level math experience, I can't say whether I really prefer analysis over algebra. I think it just depends on the problem at hand.
begriffs 8 hours ago 1 reply      
Sure enough, I prefer algebra and eat in rows. Creepy.
Turing_Machine 9 hours ago 1 reply      
I'm wondering if recursion v. iteration might be a better test than OO v. functional.
gauravsc 7 hours ago 0 replies      
I eat my corn in spiral and I love analysis part of maths. I am doing my masters in data mining. I guess, it adds another data point to your findings.
Next generation Unix pipe by Alex Larsson gnome.org
128 points by jobi  12 hours ago   60 comments top 17
snprbob86 10 hours ago 1 reply      
Neat! I've commented about this very problem before on several of the many threads regarding "object pipes", ie. REPLs.




Since that last comment, I've been working a bunch with Clojure, which has a far more expressive variant of JSON, as well as some heavy duty work with Google's Protocol Buffers.

A few points:

1) Piping non-serializable objects is a BAD IDEA. That's not a shell, that's a REPL. And even in a REPL, you should prefer inert data, a la Clojure's immutable data structures.

2) Arbitrary bit streams is, fundamentally, unbeatable. It's completely universal. Some use cases really don't want structured data. Consider gzip: you just want to take bytes in and send bytes out. You don't necessarily want typed data in the pipes, you want typed pipes, which may or may not contain typed data. This is the "format negotiation" piece that is mentioned in the original post. I'd like to see more details about that.

3) There seems to be some nebulous lowest common denominator of serializable data. So many things out there: GVariant, Clojure forms, JSON, XML, ProtoBuf, Thirft, Avro, ad infinitum. If everything talks its own serialization protocol, then none of the "do one thing well" benefits work. Every component needs to know every protocol. One has to "win" in a collaborative shell environment. I need to study GVariant more closely.

4) Whichever format "wins", it needs to be self-describing. A table format command can't work on field names, unless it has the field names! ProtoBufs and Thrift are out, because you need to have field names pre-compiled on either side of the pipe. Unless, of course, you start with a MessageDescriptor object up front, which ProtoBufs support and Avro has natively, but I digress: Reflection is necessary. It's not clear if you need header descriptors a la MessageDescriptor/Avro, or inline field descriptions a la JSON/XML/Clojure. Or a mix of both?

5) Order is critical. There's a reason these formats are called "serializable". Clojure, for example, provides sets using the #{} notation. And, like JSON, supports {} map notation. Thrift has Maps and Sets too. ProtoBufs, however, don't. On purpose. And it's a good thing! The data is going to come across the pipe in series, so a map or set doesn't make sense. Use a sequence of key-value-pairs. It might even be an infinite sequence! It's one thing to support un-ordered data when printing and reading data. It's another thing entirely to design a streaming protocol around un-ordered data. Shells need a streaming protocol.

6) Going back to content negotiation, this streaming protocol might be able to multiplex types over a single stream. Maybe gzip sends a little structured metadata up front, then a binary stream. ProtoBufs label all "bytes" fields with a size, but you might not know the size in advanced. Maybe you need two synchronized streams on which you can multiplex a control channel? That is, each pipe is two pipes. One request/response pair and the other a modal byte stream vs typed message stream.

Overall. This is the nicest attempt at this idea I've seen yet. I've been meaning to take a crack at it myself, but refused to do it without enough time to re-create the entire standard Unix toolkit plus my own shell ;-)

yason 1 hour ago 0 replies      
I wonder where this comes from. There's no need for next generation.

People have, for thirty years or so, successfully printed their data into a suitable textual streams for processing with programs glued together with pipes, and optionally parsed the results back into some native format if so required.

Meanwhile, none of the "next generation" pipes have gained any momentum. Obviously they solve something which is either not a problem or they do solve some problems but create new ones in greater numbers than what they solved, tipping the balance into negative.

Any object or intermediary format you can think of can be represented in text, and you're back to square one. For example, even if there's XSLT and XQuery, you can just serialize trees of XML elements into a row-based format of expression and use grep on the resulting stream to effectively make hierarchical searches inside the tree.

mongol 3 hours ago 0 replies      
For certain types of unix pipeing, I have found it useful to pipe from tool to CSV, and then let sqlite process the data, using SQL statements. SQL solves many of the sorting, filtering, joining things that you can do with unix pipes too, but with a syntax that is broadly known. Especially the joining I have found hard to do well with shell/piping.

I think a sqlite-aware shell would be awesone, especially if common tools had a common output format (like csv with header) where that also included the schema / data format.

veyron 10 hours ago 2 replies      
That is a terrible idea: sometimes the app can take advantage of a constraint to minimize work done.

In your example, if we just wanted to filter for a particular user, dps would have to print out ALL of the information and then you could pick at it. This doesn't seem bad for ps (because there's a hard limit) but in many other examples the output could be much larger than what is needed. That's why having filtering and output flags in many cases is more efficient in generating everything.

As a side note: To demonstrate a dramatic example, I tried timing two things:

    - dumping NASDAQ feed data for an entire day, pretty-printing, and then using fgrep
- having the dumper do the search explicitly (new flags added to program)

Both outputs were sent to /dev/null. The first ran in 35 minutes, the second in less than 1 minute

forgotusername 8 hours ago 1 reply      
I've quickly jotted some thoughts here: http://damnkids.posterous.com/rich-format-unix-pipes

Regarding this version, standardizing on a particular transfer format is a bad idea. If history has shown anything, it's that we like to reinvent this stuff and make it more complicated than necessary (see also XDR, ASN.1, XML, etc. :) pretty much on a 5 year cycle or thereabouts.

Do the bare minimum design necessary and let social convention evolve the rest.

rbanffy 9 hours ago 2 replies      
I find the tendency to repeat Microsoft's mistakes deeply disturbing. Even if, in this case, the author acknowledges PoweeShell goes too far, his own idea goes too far.

I'd be all in with flags that make ps or ls spit JSON or XML, but this typed nonsense? What when I want to output a color? Will I need a new type?

Oh... and the sort thing... its not hard to sort numerically.

rogerbinns 8 hours ago 2 replies      
What would be ideal to solve first is some sort of initial format negotiation on pipes. Otherwise you will end up with the wrong thing happening (eg having to reimplement every tool, spewing "rich" format to tools that don't know it, or regular text to tools that could do better).

We've already seen something like this - for example ls does column output if going directly to a screen, otherwise one per line, and many tools will output in colour if applicable. However this is enabled by isatty() which uses system calls, and inspecting the terminal environment for colour support.

Another example is telnet which does feature negotiations if the other end is a telnet daemon, otherwise just acts as a "dumb" network connection. (By default the server end initiates the negotiations.)

However the only way I can see this being possible with pipes is with kernel/syscall support. It would provide a way for either side to indicate support for richer formats, and let them know if that is mutually agreeable, otherwise default to compatible plain old text. For example an ioctl could list formats supported. A recipient would supply a list before the first read() call. The sender would then get that list and make a choice before the first write() call. (This is somewhat similar to how clipboards work.)

So the question becomes would we be happy with a new kernel call in order to support rich pipes, which automatically use current standard behaviour in its absence or when talking to non-rich enabled tools?

I would love it if grep/find/xargs automatically knew about null terminating.

huhtenberg 8 hours ago 1 reply      
At the risk of stating the obvious - this won't take off for a simple reason of being too complex by Unix standards.
lubutu 3 hours ago 0 replies      
I've noticed that the NUL-termination problem [1] has come up a number of times in these comments. If you want a solution to this that isn't so drastic as an object system, perhaps take a look at Usul [2], non-POSIX 'tabular' Unix utilities which use an AWK-style $RS.

[1]: http://news.ycombinator.com/item?id=4369699

[2]: http://lubutu.com/soso/usul

DHowett 10 hours ago 2 replies      
I like the idea of processes dumping structured objects: pipes are rather often used for the processing of structured data, and while tabulated output certainly makes it easier, we still end up effectively using constants: cut to the third column, sort the first 10 characters, and print the first four lines.

This method is fragile when given diverse input: what if the columns could themselves contain tabs, newlines, or even nul bytes?

Passing objects as binary blobs, on the other hand, doesn't allow for ease of display or interoperability with other tools that don't support whatever format they happen to be. This, of course, can be rectified with a smart shell with pretty-print for columnar data (insofar as a shell could be charged with data parsing; you may imagine an implicit |dprint at the end of each command line that outputs blobs).

I'd also be interested in seeing a utility that took "old-format" columnar data and generated structured objects from it, of course, with the above format caveats.

dfc 10 hours ago 2 replies      
"Even something as basic as numerical sorting on a column gets quite complicated."

    sort -g -k field_num

m_eiman 4 hours ago 0 replies      
rhizome 10 hours ago 3 replies      
If I can do a slight PG impression, "what problem does this solve?"
pjmlp 3 hours ago 1 reply      
Actually I prefer Powershell's approach to transfer objects, as it is more flexible than standardize in a specific transfer format.

But I do concede that it has the downside that if the object lacks the properties you want to access, then it might be painful in some cases.

chris_wot 10 hours ago 1 reply      
What about providing a filter that converts to whatever format you can think of? e.g. outputs in JSON or XML
sprobertson 7 hours ago 2 replies      
I've been playing around with a similar idea - using plain JSON as the message format, you can make a set of pipeable command line utilities for manipulating data from many web APIs.
enthalpyx 6 hours ago 0 replies      
Entrepreneurs Tell The White House To Focus On Innovation, Not IP Enforcement techdirt.com
206 points by mtgx  17 hours ago   46 comments top 10
snowwrestler 16 hours ago 6 replies      
What do these entrepreneurs all have in common? They own, operate, or invest in server-side Internet services. Such innovative products do not need IP enforcement because their core IP assets are protected by the client/server barrier, or they depend on network effects to protect first-mover advantage.

Innovations which must be shipped in whole to the client--like new music, new movies, new games, packaged software, client device software, pharmaceuticals--are not so blessed.

For example: most video game companies ship their entire IP directly to the customer. What keeps from making a copy of Skyrim and selling it on my website for half the price of the original? The legal enforcement of IP protections.

I think it is really easy to fall into a bubble where "innovation" comes to mean "the latest hosted social web service". There's a lot more to innovation than that. Which was more innovative--The Dark Knight, or Triggit? I would say TDK, which was a major cultural event in the U.S. Or how about Gardasil vs. I Can Haz Cheezeburger? One will prevent thousands of cases of uterine cancer, the other hosts user-generated cat pictures.

georgemcbay 15 hours ago 1 reply      
Followup: White House tells Entrepreneurs to Focus on Donating to their Reelection Campaigns.

(Note: This is not a dig on the current White House occupants who I voted for and will vote for again, just politics in general).

blhack 16 hours ago 1 reply      
And the white house promptly ignores it.

Guys, it took a near shutdown of the internet to get congress to back off on SOPA/PIPA. I don't think a mere letter is going to sway anybody that matters.

briandear 16 hours ago 4 replies      
It's a good letter, but I would have appreciated a mention of lowering corporate taxes. With a 35% corporate tax rate, that does encourage innovation -- innovation in tax avoidance. Think of the innovation that could happen if companies had a 15% corporate tax rate.. that would mean 20% available capital to companies. If I suddenly had access to 20% more capital, I would hire more people and build more things. A 35% corporate tax rate is the highest in the industrialized world and it's as big a detriment to company growth as any IP battle.
JumpCrisscross 16 hours ago 0 replies      
This letter needs more distinguished signatories. The people who signed it are accomplished in their domains but relatively unknown outside their niches.
ScottBurson 16 hours ago 0 replies      
I am very impressed with this letter. It summarizes the main points succinctly and forcefully without demonizing ("MAFIAA") or taking on fringe positions ("intellectual property is theft").
electic 16 hours ago 1 reply      
I think it is a great article. I really think that all copyrights and patents do is stifle innovation and sadly, they increase the costs for everyone....including right owners themselves. It makes me cringe to see how much money Google and Apple have to spend to duke it out in court. I am sure they feel this way, but it seems like an ever escalating black hole where only the lawyers benefit.
michaelpinto 16 hours ago 1 reply      
from my years of experience working on policy issues i can tell you this: letters like this never really do anything, sadly what works is lobbying. lobbying requires both organization and money. the people who have a stake in IP enforcement not only have money, but represent well established industries that provide an base of existing jobs. so unless entrepreneurs can get their act together -- or unless you can get the grassroots excited about giving money this really isn't going to go anywhere.
Professoroak 14 hours ago 0 replies      
It's a nice idea, but the White House won't do shit unless they think it will help them get reelected.
propercoil 14 hours ago 0 replies      
yeah no one there gives a crap about entrepreneurs. if you still think they care bout anything else than money then i got a bridge i want to sell ya
The Twitter Underground Economy: A Blooming Business barracudalabs.com
42 points by diego  7 hours ago   13 comments top 7
dsirijus 4 hours ago 0 replies      
Plenty money to be made around with it. Just take a look at this search. http://www.freelancer.com/search/twitter/
Someone with tight insfrastructure of bots, automatic fake user sets, fb pages taken over during the non-existing admin fiasco can do these tasks with few clicks.

That being said, business is not booming as it used to back in, say, 2009. And not nearly as booming as with Facebook likes.

Disclaimer: I am not engaged in such practices, but have dealt with it.

capex 6 hours ago 0 replies      
There are plenty of people selling twitter followers on http://fiverr.com
mot0rola 6 hours ago 0 replies      
Interesting tidbit there about Mitt Romney's account. Nice investigative journalism.
Zaheer 5 hours ago 0 replies      
This isn't unique to Twitter, in fact if you go to fiverr.com you'll find many people selling Instagram followers as well. The people that sell these followers have programmed bots to go around liking and following a bunch of people in effect advertising their service.
Axsuul 3 hours ago 1 reply      
Another reason why I think App.net has potential.
ricksta 6 hours ago 1 reply      
It doesn't look like it's very hard to detect these fake users. Is Twitter actively cracking down on these or do they not care much?
piffey 5 hours ago 1 reply      
Can anyone explain what the benefit is of having hundreds of useless followers? Is there some reputation system on Twitter I'm missing?
Mars to Earth at an average of 29 kbits/s nasa.gov
167 points by kghose  17 hours ago   76 comments top 19
ryusage 17 hours ago 2 replies      
It's awesome that they've been involving the public so much in the details of how the rover mission really works. I'd actually been wondering about this exact question, since it seems to be one of the limiting factors for the quality of images and such. From a physics standpoint, sending data is clearly a lot more complicated than I'd previously assumed.
ChuckMcM 15 hours ago 8 replies      
So one wonders at what point you uplink to a satellite with ejectable flash drives which, when full, detach, make a gravity sling shot pass to leave orbit and then burn for a rendezvous with earth 9 months later. If I did the math right a 1TB drive returned from Mars in 9 months would be an effective bandwidth of 470K bits per second (or 47K bytes per second)
rwhitman 15 hours ago 1 reply      
I read this the other day and found it interesting:

Apparently NASA had plans for launching an orbiter specifically as an optical communications hub for Mars but scrapped it in 2005:

"As of 2005, NASA has canceled plans to launch the Mars Telecommunications Orbiter in September 2009; it had the goal of supporting future missions to Mars and would have functioned as a possible first definitive Internet hub around another planetary body. It would use optical communications using laser beams for their lower ping rates than radiowaves."

Dylan16807 16 hours ago 1 reply      
So those are the lander->earth and lander->sat speeds. How fast can the satellites transmit to earth? If we somehow always had a sat in reach of the lander, how much data would we be able to send?

Edit: Did the research. MRO's antenna can handle .5 to 4 megabits depending on the distance between planets. Wow, having to wait for flybys is a huge bottleneck. http://mars.jpl.nasa.gov/mro/mission/communications/commxban...

vladd 15 hours ago 3 replies      
I'm wondering how do they prevent non-NASA entities from sending commands to the rover - are they using some sort of cryptographic signatures when sending the commands?
ck2 9 hours ago 0 replies      
The high gain system they have for curiosity has an upper end of 2Mbps - to the orbiter.

The orbiter can talk to earth at up to 6Mbps depending on how far away we are at that time.

6Mbps at that distance is a staggering feat of engineering.

DanBC 16 hours ago 1 reply      
Using Sloppy to view websites gives a reasonable idea of how slow this is.


drumdance 9 hours ago 0 replies      
A friend of mine used to work at JPL on transmissions from one of the older explorers. Maybe Voyager?

Anyway, he compared the energy used to transmit from the probe to that of a flower petal falling from a height of six feet.

bwr 11 hours ago 0 replies      
I'm guessing there is a lot of data that never gets sent to earth. Do they send thumbnails of the images to determine what is interesting? Is there a software tool available that creates a thumbnail and then creates a copy of the original image that is dependent on the thumbnail to be recreated. If you can't tell I wasn't really sure how to word that last sentence. Basically, less data would be required to transmit because you are only sending the data required to reconstitute the real image. Depending on the size of the thumbnail this might result in a negligible difference.

For example, a very naive implementation might create a thumbnail from every pixel where x or y is odd and then when/if you want the original image you can get the data required to put the image back together (it would be a similar sized thumbnail but with the even pixels) For this naive approach the thumbnail would likely be much larger than you want and would not help at all :)

nemilar 13 hours ago 1 reply      
This may be a silly question, but I don't understand why the bandwidth is so low. I understand the latency will be high, since you're limited by the speed of light; but wouldn't you be able to get more bandwidth just by increasing the spectrum of light used, as well as the baud of the transmitter/receiver?
darkstalker 16 hours ago 6 replies      
What's the latency of that data connection?
kayoone 15 hours ago 1 reply      
Nice, just like my first modem back in 1996. Now let me host a dedicated QuakeWorld Server on Mars!
fsiefken 16 hours ago 3 replies      
Does anyone know more about the architecture of this space radio network? For example does it use tcp/ip on top over radio or is it packet switched as with amateur packet radio?
xfhai 3 hours ago 0 replies      
My suggestion is a satellite going around the Sun between Earth and Mars, so that there would be more visibility.
bluesmoon 14 hours ago 0 replies      
I love this statement (from the Preventing Busy Signals page): "The Deep Space Network (DSN) communicates with nearly all spacecraft flying throughout our solar system."
205guy 9 hours ago 0 replies      
There must be some amateur radio people out there able to receive these signals, no? With the protocol stacks mentioned in the other comments, I wonder if they're able to extract the encrypted data. Which leads me to think there have got to be people/governments trying to figure those out.
diminish 5 hours ago 0 replies      
what if they open sourced all of their components on github..
Florin_Andrei 14 hours ago 0 replies      
So, it's basically like dial-up back in the day.
oleyb 16 hours ago 1 reply      
It's faster than my work's connection!
You'll never be Chinese haohaoreport.com
259 points by ilamont  22 hours ago   148 comments top 28
tokenadult 16 hours ago  replies      
As Confucius said, 三人行,...有'師焉 ("wherever three persons are walking, my teacher is surely among them"). This is a very interesting article for an American who has lived in east Asia for two three-year stays (mostly in Taiwan) and who has been learning the Chinese language since 1975. Much of what has been said about China in the first decade of the twenty-first century reminds me very much of what was said about Japan in the 1980s--that it was destined to be the leading nation of the world. Today, demographics and looking behind the official economic statistics, and considering that China has not yet democratized as much as Japan had in the era when the Liberal Democratic Party had a lock on national power all suggest that China is most likely to have a "lost decade" that continues into two or more lost decades as China's economic growth fails to keep pace with the Chinese regime's world power ambitions. Political unrest is an ongoing fear of the Communist Party of China regime, and there is little to suggest that Chinese "soft power" can overcome the misgivings of neighboring countries (e.g. India, Vietnam, and South Korea) that remember being invaded by Chinese armies in the recent past.

It is possible to become an American. I have seen it done. My wife, out of all the girls I knew when I first lived in Taiwan, was the LEAST interested in gaining a green card or even living in the United States as a student until we had occasion to enter the United States (her first occasion ever) as a married couple after a year of married life in Taiwan. Over time, she has become a Minnesotan American by choice rather than by birth, and indeed we have spent far more time in the United States than I had ever imagined possible when I first planned my adult life as an American with a university degree in Chinese language. There have been great opportunities for us in America and much that my wife can cherish even though none of her primary or secondary education was intended to prepare her for life in the United States, and none of my higher education was intended as anything but preparation for living in east Asia. The United States is open to immigrants, accepting of cultural diversity, and a second home for many people that becomes a more meaningful home than their first home. That acceptance of outside influence is America's strength, and why the United States and not China will be the superpower of the twenty-first century.

What the United States can learn from China (but even more so from Taiwan, Japan, and South Korea) is better provision of elementary education in government-operated primary schools, particularly in the subjects of mathematics and science. Native-born Americans like me who have lived in east Asia are APPALLED at the wasted opportunities that United States schools have with their lavish resources to provide a truly world-class education. United States schools do not do as badly as they possibly could, but they also don't do as well as they reasonably could be expected to do. Let's learn from China's best examples here in the United States. Meanwhile, I hope that the common people of China eventually learn from other democratized countries of east Asia how to come out from under a one-party dictatorship and to enjoy uncensored mass media, free elections, and a vigorous civil society.

kamaal 7 hours ago 2 replies      
The author seems to be stuck in a country which is rising after coming from a country which had already risen. The path to success is no cake walk, its tiring and it causes fatigue.

As as Indian this article to me on many counts also looks like the story of India. The west will find it difficult to digest but the desperation to grow forces a person to go out of his way to do and achieve things people in the west in all the comfort cannot imagine in wildest of their dreams.

>>Modern day mainland Chinese society is focused on one object: money and the acquisition thereof.

What other dreams do you think poor people have?

>>The domestic Chinese lower education system does not educate. It is a test center. The curriculum is designed to teach children how to pass them.

The issue in Asian countries which are developing is most have only one shot at doing something in life. Study your ass off or perish, there is no social security- Your parents work hard to give you a decent education and you work hard in a once in a life time opportunity to do something in life. There is no other alternative, you don't have money to do business. The national infrastructures, license problems, corruption and other stuff won't give you a second shot at business.

There fore unlike in the west where 'chase your dreams' makes sense, here it doesn't.

>>Success in exams offers a passport to a better life in the big city. Schools do not produce well-rounded, sociable, self-reliant young people with inquiring minds. They produce winners and losers. Winners go on to college or university to take “business studies.” Losers go back to the farm or the local factory their parents were hoping they could escape.

As I said before, opportunities are at a premium here. This is difficult to understand if you come from US and settle down here. You will just never get why there is such a mad rush for opportunities.

>>The pressure makes children sick. I speak from personal experience. To score under 95 per cent is considered failure. Bad performance is punished. Homework, which consists mostly of practice test papers, takes up at least one day of every weekend. Many children go to school to do it in the classroom. I have seen them trooping in at 6am on Sundays. In the holidays they attend special schools for extra tuition, and must do their own school's homework for at least a couple of hours every day to complete it before term starts again. Many of my local friends abhor the system as much as I do, but they have no choice. I do. I am lucky.

Whoa this is nothing. In India while I did by second year of pre university college, I practically slept only for 3 hours a day for the whole year. Before going to the exam I cried. Because my whole years worth of hard work depended on this one exam! During my engineering college days, I've spend endless nights studying without sleeping. Same with school.

As a software engineer I've gone a whole week without sleep. And that was perfectly acceptable. My dad used to tell me, to consider myself lucky to even deserve the opportunity to go and work at a software company. Hence anything was acceptable.

>>An option is to move back to a major Chinese city and send our children to an expensive international school"none of which offer boarding"but I would be worried about pollution, and have to get a proper job, most likely something to do with foreign business to China, which my conscience would find hard.

Good schooling is shit expensive. Hence parents almost always send their kids to a local mediocre school. But warn them sternly to study very hard or they will have no future.

>>China does not nurture and educate its youth in a way that will allow them to become the leaders, inventors and innovators of tomorrow, but that is the intention.

Thats for the next generation. The first generation, like my Dad's. They had only one goal- 'First get your kids somewhere, let them take it from there on.'

The author is clearly stuck in a massive cultural conflict in his brain. He wants China to remain where it was, a mediocre country compared to his original homeland. He doesn't understand the cultural pressures of families in developing nations. He doesn't understand those countries are trying to go to where, his homeland is now. He clearly belongs to his native culture, where bulk of the growth work is already done, and people are just building on top of it. Where you can get to enjoy foreign vacations, passion based work environments, freedom to not worry about basic stuff like food, clothing and shelter.

lionhearted 19 hours ago 6 replies      
Hmm. A strange article. A mix of really good points soaked in bitterness.

I spend the bulk of my time in Beijing, Taipei, and Ulaanbaatar (Mongolia). My take is slightly different.

Well, a lot is true. The property thing, definitely. The state industry takeovers is scary; you have to get a sense for what industries they don't mind foreigners in, and which they do. Media? Yeah, you don't want to own a media company in China as a non-Chinese. The same is true with energy and raw materials. Probably not true for manufacturing, education, and consumer goods. So, that's a weird and surreal and true point.

But some things seem dead-off. The Chinese seem much more community oriented than the West. On mornings I'm up early, there's always large groups of people doing Tai Chi, or moving around doing a sword-dance, or other group exercises. Likewise, there's huge groups of people singing, dancing, waltzing, in the evenings. Families go out and play together a lot. At least, that's what I see in CBD in Beijing.

The thing about the Chinese loving money and size is true. It's not as bleak as it sounds though, it's probably similar to 1950's America in that sense. You've got people who were raised lower on Maslow's Hierarchy of Needs, so they're very pro-money and pro-security. It's all pretty upfront, and everyone is in to hard work, credentialing, and earning well. My friend is married to a Chinese woman, and we were working something like 12+ hours a day for a while. Since his work/life balance was totally destroyed on the projects we were on, I apologized to her one day at their house. "Hey, sorry we're working so much..." and she replies: "You're making money?" I say, "Yeah, we're making money." She says: "Okay! No problem then, keep making money! I'm glad you two are doing it!" They named their cat "Wangtzai" (spelling?), which translates to "Bring money." Yeah, they named their cat "Bring money." But they're also happy and have a good home life together. She just respects working a lot and wants her husband to work a lot. That's where she's at mentally.

This part struck me as the most off --

> [China] does not welcome intruders"unless they happen to be militarily superior and invade from the north, as did two imperial dynasties, the Yuan (1271-1368) and the Qing (1644-1911), who became more Chinese than the Chinese themselves. Moreover, the fates of the Mongols, who became the Yuan, and Manchu, who became the Qing, provide the ultimate deterrent: “Invade us and be consumed from the inside,” rather like the movie Alien.

It's not like "Alien" -- it's more like, China was so much more artistically and culturally sophisticated that even invaders assimilated the conquered culture, and happily so. It's little known that the Mongols (Yuan) built the Forbidden City at first. It was called "Forbidden" since it was Mongolian-only, preserving some of Mongolian Steppe Culture even within China. Likewise, Mandarin is the Manchu language... the ethnic minority that conquered China and became the Qing. The Han (majority) now speaks the minority's language, since it was widely spoken in courts and high level administration under the Qing Dynasty.

But why did the Manchu become more Han-like and base out of Beijing? Because it was a pretty amazing place, and by and large it always has been.

I don't know, maybe I'll get China-fatigue at some point. I agree with his point that you'll never be really truly Chinese in China, but foreigners also get all kinds of additional respect and benefits for being foreign, along with a tacit okay to break certain customs and decorums because you don't know better. For foreigners in China who speak Chinese, it's even better -- you get delight from everyone you interact with, and lots of respect (arguably, undeservedly so)... so yeah, it's good and bad. The article comes across overly jaded, though I suppose the idea to not start a media company or buy residential housing are both good pieces of advice!

Jd 21 hours ago 5 replies      
"A China that leads the world will not offer the chance to be Chinese, because it is impossible to become Chinese. "

Of course. The British led the world and did not offer (at the time) anyone the chance to be British either. In fact, they actively discouraged interbreeding. It is a dogma of the modern Occident that it is stronger to be multi-ethnic, and that national identity should be open to anyone. History shows us, however, that that is hardly a necessity for world empire.

Full disclosure: I was once in love with a Chinese woman from an elite family, who I am fairly certain loved me but rejected me because I did not belong to the appropriate stock (with influence from her family). Lesson learned: if love is strong, kinship bonds are often stronger.

jisaacstone 19 hours ago 5 replies      
Take a moment and conciser how a similar piece, written of the United states around the turn of the last century, might read.

Remember the 'roaring 20s?' Materialistic society, ambivalence about foreign affairs, widespread corruption, distrust of foreigners. A Chinese who owned a tea shop in a small town may well have to beg for a renewed lease, yes?

Well, China is not the United States, but lets put things in perspective. At the moment neither the leaders nor the people of China want to be a 'world leader' so why do we keep talking about it as if they do? China has its own problems and most Chinese are well aware of it.

China is not yet a rich country. Its Per Capita GDP (PPP) is about the same as Ecuador or Belize.

Right now things in China are not so great. It seems the Conservatives are back in power and so there has been some increased restrictions of freedom after a couple decades of improvement. Corruption continues to be a problem. The price of groceries, as well as property, has been increasing.

But the overall trend is upward. The author of this piece has fallen afoul of the Guanxi networks of business and politics in China. Sorry, yes, they don't play fair. But I am hopeful at the turn of the next century China will be as prosperous and egalitarian as my own United States of America.

strebler 19 hours ago 1 reply      
This is definitely one of the better (and more accurate) articles on the subject. I have been doing business in China and definitely see his view - it's easy to see why most of China's elite send their children abroad. I wouldn't live there for an extended period.

I'd say their education system (and society) tends to hammer the creativity out of people. I see strong evidence that who think differently are ridiculed. Only the strongest personalities could withstand this, and it is obvious that they often leave for greener pastures. Nurturing the free thinkers is not easy.

Superpower & housing bubble aside, first they have to figure out things like why having seatbelts in cars is important - that the individual is in fact valuable.

kaptain 3 hours ago 0 replies      
What does it mean to be Chinese?

Technically, there is no Chinese ethnicity. China is made up of (officially) 56 ethnicities. My parents are ethnically Han Chinese. I was born in Canada, raised in America. I carry an American passport. To my neighbors, I'm a 华侨 (overseas Chinese); one taxi driver told me that I would be Chinese forever because it's in my blood. So what am I? Moving from the questions of ethnicity, is it possible for a foreigner to immigrate to China and become a Chinese citizen? I suspect the answer is 'no' but I have heard (perhaps from the internet) that one can become a citizen at the invitation of the Chinese government. It seems, being Chinese has more to do with ethnicity AND culture than anything else.

While some may deride China for being parochial/uncosmopolitan for this, many countries share this same trait: the majority ethnicity defines citizenship and acceptance. The United States isn't immune from this. Even though I grew up an American (and still consider myself American) I have experienced personal bias and prejudice because of my ethnicity. I got comments from kids about me going to Buddhist church (I'm not Buddhist), using karate in a fight (I don't know any form of martial arts), using chopsticks (this is true), or speaking "Ching chong, ching chong" (I am not familiar with this language). High school was hard. Not that it wasn't for any of my white friends who shared the same weight/height/car/popularity class as me, but none of them were ever told to "Go home."

The big "but" here is that I live/lived in the United States. And though there is a history of disenfranchisement as well as evidence of racial bias today, I am more hopeful that you (whoever you are) /can/ become American... not by becoming 'white', but by participating in a society that has the opportunity to change itself as well as the opportunity to change you.

It's not clear to me that this is possible in China (i.e. social change to embrace differing ethnicities). The average Chinese (pick any of the Chinese ethnicities) person has very strong feelings about one's identity as it relates to race and language (e.g. some people couldn't believe I was Chinese and couldn't speak Mandarin when I first got to China). In my first trip to China, I made a friend who relayed me this interesting anecdote (this was the late 90's): he (an American) was on a college campus and he engaged in a discussion about race relations in America with a Chinese student. The Chinese student told him: "There is no racism in China because there aren't any black people." While the ethnic tensions aren't as visible here, simply ask a Han person how they feel about Uyghers.

timee 17 hours ago 0 replies      
"The pressure makes children sick. I speak from personal experience. To score under 95 per cent is considered failure. Bad performance is punished."

I grew up in that culture in America having a Chinese mother and belonging to the local Chinese community. The interesting aspect to it, is that it represents a curve as everyone gets a 97+ on their tests. It felt like 97 was the median in the class. It just happened to be instead of having scores from 50-100, you had them compressed from 90-100. Scoring below a 90 is equivalent to getting an F in the local Chinese community as only a few ever scored that low.

I personally appreciate having gone through that and all the brainwashing that occurred with that mindset. I know one of my strengths is the ability to work well under pressure, where often my motivation is correlated with pressure. While I never made the connection in college, I innately understood the curve and how to play the game due to being curved at a young age.

The worry I have at times with correlating motivation with difficulty is whether I am creating an invalid proxy for value. Sometimes the work leads to something of value, but they are not directly linked as there are plenty of difficult things out there that generate little value to society and oneself.

That said, bringing it back to the OP's concern about his children's education, I don't know what it's like to go through a full Chinese system as I highly appreciate the mixture of Western education in my upbringing. I had a nervous breakdown in high school after realizing the falseness of my quest I had around accomplishments and achievements. If it weren't for the liberal arts of Western culture (arts, music, and literature), I don't know how I would have came out of that mental breakdown. I began to value the Renaissance man who was balanced in a variety of topics and sought the balance of academics, the arts and social skills. I wonder if it weren't for those concepts, if I would have trained myself to seek higher and higher goals in mastery over academics as I saw with some of my childhood friends who had a stricter Chinese upbringing.

Shenglong 15 hours ago 3 replies      
Bitterly biased.

The China that the author describes is not the China I've seen. Housing prices may be high, but he neglects to mention that it's common for companies to provide housing to their employees. Yes, people will ask you about your money - but that's culture, and it's not impolite.

There are a lot of untruths in his article, but it's too long to pick apart. A big one, though, is about appreciation for foreigners. China does in fact have laws about foreigners, but most are designed to protect them and avoid international incidents. For example, several schools around the Shaolin Temple offer practical training in everything from hand-to-hand combat to spears to swords. Only three, however, have passed safety regulations to accept foreigners. The Chinese also likes to tell you that you're special, because they think it endears you to them, whether it's true or not.

I'll end by saying: it's hard to judge China through a western perspective.

205guy 10 hours ago 0 replies      
Very interesting read of one person's (very credible) opinions about China. Yet...

The title is a tautology. I can't help but feel that anyone from country X will every be integrated into any other country, as long as they still want to be themselves. Which is what the author never really states. Had he bought into the materialistic lifestyle, asked everyone how much money they made, and insisted his kids cram for elementry school exams, and toed the party line (whatever that may be), then maybe he would've been considered Chinese (I bet he'd say you still wouldn't but he didn't even consider that possibility). But no, he wanted to be a Westerner in China, and by definition, never become Chinese.

I lived in Europe for half of my life before age 30. I was fluent and mistaken for a native of the country where I lived. Yet, I could not help but retain my American perspective; I don't think I could give that up even if I wanted to. So even if I blended into the culture and wanted be a native, I could not feel like one myself. I came "home" to the US and don't feel American anymore either--I think that will be the author's fate in Britain. I have American friends still there, native by any standard, yet still consider themselves American by choice.

So I think it comes down to giving up one's identifying culture. The ironic thing, is that Chinese (and many other foreigners) do it all the time when they immigrate to the West. To me, that is the quandary of immigration: how do they manage to embrace the host culture so much that they no longer identify with their native one. It seems so much easier to do from East (India, China) to West (US, mostly). It seems like it's much easier to go from a culture of community to one of individuality than vice-versa. Why is there a lack of symmetry?

iag 20 hours ago 1 reply      
Very insightful article. I feel more worried about the Chinese housing bubble crash than anything else. You think the '07 US recession was bad? That'd be a walk in the park if China's bubble bursts.
vph 17 hours ago 1 reply      
The author seems to suggest that the main problem -- as suggested by the title -- is that the Chinese are strongly anti-foreigners. This might be true. But I don't think it's why his business was robbed.

The main problem, I think, is the Chinese's jungle-ruled platform associated with its single-party tyranny. What happens is they will invite you in and give you lots of promises and flexibilities at first. They will learn from you. And when you get too big, they will change the rules to favor their owns, and kick you out, robbing you if necessary. It's not so much that you're a Caucasian foreigner.

I believe that a lot of outside investors and companies will eventually (unless they are big) find out that doing business with the Chinese will end up looking like this person. I am not anti-Chinese as a people or a culture, but I have seen this type story again and again.

seivan 20 hours ago 0 replies      
" The Party does not want free thinkers who can solve its problems. It still believes it can solve them itself, if it ever admits it has a problem in the first place."

This is not only damaging to society in China, but to the rest of the world as well. So much potential to do good, squandered because of fear of revolution.

peterwwillis 19 hours ago 0 replies      
Hearing about the property bubble and political system in China is a bit like hearing a Greek tell you about how politics and business worked in Greece, pre-economic meltdown.
andrewcooke 19 hours ago 0 replies      
we do tend to project our own desires on other people. i remember a colleague telling me how disappointed he was with chile because the same people who had overthrown a fascist dictator were now interested in worldly things like cars and clothes.

there's something of that in this article, i think.

also, it's very hard to be neutral when you live in a place. and living in a foreign place is hard (more for some than others, of course). it's easy to bear grudges, no matter how aware you are that "it's just cultural differences".

huh. voted down for that? sigh...

wtrk 18 hours ago 0 replies      
analyst74 19 hours ago 1 reply      
Even though Chinese ideals/opinions tend to be NOT as diversified as, say Canadians, doesn't mean all Chinese think the same.

Some of the main causes, and by no means the only causes for "racism":

1, those you don't understand, you don't trust -- vast of Chinese have not met many foreigners and Chinese culture tend to differ greatly from western cultures.

2, as noted, China is a very segregated country, you get discriminated against for all sorts of reasons. But if you are from a powerful American family, you will find your respect in China; if you are a poor China man, even your (slightly better off) neighbours would look down upon you.

Same reason Jd's love could not marry him, she will not marry another China man either, if he is not from a respectable family or occupying a respectable position.

On a final note, I don't believe in racism. Not that racism does not exist, but it's too easy of an explanation for your misfortunes; It's too easy to blame something you cannot change and call it a day. Real life is a lot more complex than that, and it's best to look for resolvable problems and fix them, increasing your chance of success, than to blame someone else.

barkingcat 18 hours ago 2 replies      
Just remember, this too shall pass.

You can't be Chinese right now, but that doesn't mean you'll never be Chinese.

Governments do fall and rise at the drop of a hat in China. People know that right?

sabj 17 hours ago 0 replies      
As lionhearted said, a mix of good points and bitterness, but " and ... always go well together, don't they?

I think the most poignant section was this:

>A deal had been struck. Deng had promised the Chinese people material wealth they hadn't known for centuries on the condition that they never again asked for political change. The Party said: “Trust us and everything will be all right.”
>Twenty years later, everything is not all right.

But I would disagree with the overarching theme that the problem of an ascendant China / China in general / etc. is that China is too inward-looking, that "You'll never be Chinese." I know you'll never be Japanese, but I think China and its people and culture are quite different; I didn't spend as much time living in China or studying Chinese as the author, but in that time and in my experiences I think there is a lot more interest and openness of people (and many elites) than is given credit.

Unfortunately, there are huge structural and institutional barriers too...

pdeuchler 17 hours ago 0 replies      
> Schools do not produce well-rounded, sociable, self-reliant young people with inquiring minds. They produce winners and losers. Winners go on to college or university to take “business studies.”

Scarily reminiscent of education in the U.S.

chubs 3 hours ago 0 replies      
I loved this bit: "Leadership requires empathy, an ability to put yourself in your subordinate's shoes"
diminish 19 hours ago 2 replies      
"blowing your nose in a handkerchief is disgusting."

I am curious, where in the world is that acceptable (especially during lunch) and where disgusting..

grakic 17 hours ago 1 reply      
While the article may have good points, I was once told not to burn any bridges when leaving. It is an illusion that you can change things while giving up the fight. Unless you leaving is an illusion for some other agenda.
chaostheory 20 hours ago 0 replies      
The article isn't loading. Google cache doesn't seem to work either.
fring0 20 hours ago 5 replies      
It's funny to see more of these articles about China where westerners get their panties in a bunch when they find themselves in a similar situation most other people have been in with respect to the west. I should write a similar article about my American/European dream. I hope the Chinese are able to take criticism better than the west. Westerners can't get over their superiority complex.
jfaucett 17 hours ago 0 replies      
are you sure this isn't an Orwell excerpt?
Write any javascript code with just these characters: ()[]{}+ patriciopalladino.com
246 points by alcuadrado  1 day ago   38 comments top 17
dherman 19 hours ago 4 replies      
Arg, scooped! I was working on this exact same thing! :D

Since you've beat me to it, let me offer up a couple additional tricks you might want to use. If you want to make this completely independent of browser API's, you can eliminate the dependence on window.location (or atob/btoa as the sla.ckers.org poster did).

Trick #1 is to get the letter "S".

You can extract this from the source code of the String constructor, but you want to be careful to make this as portable as possible. The ES spec doesn't mandate much about the results of Function.prototype.toString, although it "suggests" that it should be in the form of a FunctionDeclaration. In practice you can count on it starting with [whitespace] "function" [whitespace] [function name]. So how to eliminate the whitespace?

For this, we can make use of JS's broken isNaN global function, which coerces its argument to a number before doing its test. It just so happens that whitespace coerces to NaN, whereas alphabetical characters coerce to 0. So isNaN is just the predicate we need to strip out the whitespace characters. So we can reliably get the string "S" from:


Of course, to get isNaN you need the Function("return isNaN")() trick, and you know how the rest of the encoding works.

Trick #2 then lets you get any lowercase letter, in particular "p".

For this, we can make use of the fact that toString on a number allows you to pick a radix other than 2, 8, 10, or 16. Again, the ES spec doesn't mandate this, but in practice it's widely implemented, and the spec does say that if you implement it its behavior needs to be the proper generalization of the other radices. So we can get things like:

(25).toString(26) // "p"

(17).toString(18) // "h"

(22).toString(23) // "m"

and other hard-to-achieve letters.

But once you've got "p", you're home free with escape and unescape, as you said in your post.


CurtHagenlocher 20 hours ago 0 replies      
This is like a bizarro-world lambda calculus, complete with its own Church numerals.
quarterto 21 hours ago 0 replies      
There are no words to describe how dirty this makes me feel.
dag11 15 hours ago 0 replies      
I made a little script to extract the original javascript from a script obfuscated with OP's tool (http://patriciopalladino.com/files/hieroglyphy/).

And because I felt it was appropriate, I created this extraction script in an obfuscated form!

Use this to extract obfuscated scripts: http://pastebin.com/raw.php?i=Q9TB4wEF

Just save your obfuscated script in a variable called "original" and then run my code. It'll return with the extracted script.

Oh, and it won't work on itself. That's because I didn't use the obfuscation tool to create it. I made it mostly by hand: http://pastebin.com/9LBWCSJs

apendleton 21 hours ago 1 reply      
This post title omits "!" which is also necessary.
stcredzero 12 hours ago 0 replies      
So, basically Javascript is just a superset of an esolang that contains itself.


(Especially true if you're developing with a Javascript interpreter hosted in Javascript. Really, it's esolangs all the way down.)

spicyj 17 hours ago 0 replies      
The article lists [][+[]] for undefined; you can get away with just [][[]].
mistercow 21 hours ago 5 replies      
Man, if you didn't care about performance or bandwidth, this would be a hell an of obfuscation technique.
ctdonath 20 hours ago 0 replies      
Cross this with John Horton Conway's notion of "Surreal Numbers" and you might be onto something.
jared314 8 hours ago 0 replies      
I remember something like this a few years ago. They were using it for XSS.
maartenscholl 20 hours ago 0 replies      
If you like reducing programs to basic expressions you should read into SKI combinator calculus and the X combinator.
Here is a paper that describes the construction of an efficient X combinator[1].
Reading the paper gave me insight in how simple yet powerful combinatory logic is.


alter8 17 hours ago 1 reply      
This guy did it with 6 characters by removing {}. But it lacks the detailed description available in this post.

EDIT: I didn't check properly. You only use {} for a minor detail.


bgeron 16 hours ago 1 reply      
I evalled all pieces of Javascript of <30 characters in Rhino, takes 1 minute on my laptop. 4219 possible values, after stripping out some really uninteresting stuff. Doesn't seem to contain anything interesting, unfortunately.


chris_wot 10 hours ago 1 reply      
I wonder how well gzip would compress this?
bradsmithinc 10 hours ago 0 replies      
Fando 11 hours ago 0 replies      
really cool
mynameishere 19 hours ago 1 reply      
Write any Windows application with just the following characters: 0 1
New York Underground nationalgeographic.com
251 points by sehrope  23 hours ago   78 comments top 23
cs702 21 hours ago 1 reply      
The greatest depth shown in that graphic is 800 feet. At 10-12 feet per floor, that's equal to the height of a 67-80 story skyscraper. This means Manhattan has a 'mirror-image' city under the ground -- its 'citizens' are electric power, water, gas, and trash.

I can't help but be in awe.

msutherl 21 hours ago 4 replies      
So, there are two of those deep underground water tunnels, one which runs down from the Bronx through Manhattan and another that runs from the Bronx through Queens and Brooklyn. These tunnels were completed in 1917 and 1935 respectively. How they managed to do this then is beyond me.

Currently a third tunnel is being built and apparently it's "the largest construction project in New York history". The project was begun in 1970 and won't finish until 2020. It cost 6 billion. When the third tunnel comes online, it will allow for the other two tunnels to be shut down for repairs for the first time in their history. Scenes from Die Hard were filmed in Tunnel 3.

This is big, long-term stuff folks. Makes me feel kind of proud of civilization.

evgen 21 hours ago 0 replies      
Nice image, but if you want to really have fun with a kid dig up the book "Underground" by David Macaulay. It peels back the layers beneath our feet and was a real eye-opener for me when I was younger. Actually grab anything by the same author and have fun...
DanBC 21 hours ago 1 reply      
Tunnelling under cities has a number of odd problems.


I read an article, some years ago, about the problems of getting subterranean tunnels at a depth greater than 100 foot approved. As part of the process the plans get submitted to the security services, who then say "yes" or "no"; and you only get three attempts. I can't find the article (or anything similar) so maybe it's just myth.

The Moscow subways are beautiful, but when I went (April '86) you were not allowed to take any photographs.

I'm fascinated by the complex networks of public tunnels, secret tunnels, and abandoned tunnels.

axefrog 23 hours ago 3 replies      
This is a very old article. One of the pages links to this page - http://www.nationalgeographic.com/nyunderground/docs/myth000... - which suggests using RealPlayer 3.0 and Shockwave 5.0.
gee_totes 22 hours ago 3 replies      
I'm no civil engineer, but why are the sewage tunnels above the clean water tunnels? If there were a leak, wouldn't the sewage seep into the clean water? Or is the clay thick enough to provide a good barrier?
d0ugal 23 hours ago 1 reply      
Tashtego 18 hours ago 1 reply      
If you like this, you'll love Kate Ascher's The Works: Anatomy of a City (http://www.amazon.com/The-Works-Anatomy-Kate-Ascher/dp/01431...). It's slightly out of date (but much more up to date than the OP!).

And if you like that, you'll REALLY love Brian Hayes' Infrastructure: A Field Guide to the Industrial Landscape (http://www.amazon.com/Infrastructure-Field-Guide-Industrial-...). It's porn for people who like to try to figure out what the random towers in a chemical plant do, or how the electrical station you just passed on the interstate works.

ChuckMcM 19 hours ago 0 replies      
Its a fascinating picture. I'd love to see one of the Bay Area, one of the cable technicians installing yet another fiber down the road outside our office joked that if you put big rockets at PAIX and MAE-WEST and launched, they would lift 'silicon valley' [1] into space on a net of fiber optic cables.

Of course no mention of "Beauty and the Beast" [2] which took place in a pretty fanciful world under New York city.

Given the expense these days of tunneling I wonder if we've reached a peak of complexity underground for now.

[1] Actually only the parts between San Jose and Palo Alto but it was the imagery not the accuracy they were going for.

[2] https://en.wikipedia.org/wiki/Beauty_and_the_Beast_%281987_T...

lobster_johnson 15 hours ago 0 replies      
Naive question, but are things like power, gas, water, TV cables and steam always buried like this (requiring digging to make repairs or modifications), or are there cities/systems where they are laid in human-accessible tunnels? Seems like it would be more practical, albeit more expensive.
Alex3917 20 hours ago 0 replies      
For those interested in this sort of stuff, there is a documentary called Dark Days that's all about the homeless people who live in the NYC subway system. It was available on iTunes the last time I checked.
gklitt 23 hours ago 0 replies      
These fascinating Web 1.0 pages prove that content is king. I miss Geocities.
siculars 18 hours ago 0 replies      
Here is an interesting Subway chart from 1904 with a depth chart.


evansolomon 15 hours ago 0 replies      
A friend of mine made a very cool documentary called Under City that you'd probably like if you're into this kind of stuff.


natesm 21 hours ago 1 reply      
This isn't accurate for the entire city. At Astor Place, you can look through the sidewalk grates directly onto the tracks.
yskchu 22 hours ago 2 replies      
The most interesting I found was the steam pipes.
donohoe 18 hours ago 0 replies      
For the record I first got a link to this page in 1997 or 1998.

Its a timeless page.

jyturley 15 hours ago 0 replies      
This was absolutely fascinating. It reminds me of Tokyo's underground sewage system--considered the largest in the world:
dmhdlr 13 hours ago 0 replies      
BLDGBLOG is a gold-mine for these kind of things.


kine 20 hours ago 0 replies      
I love how this is both informative, very cool and a complete Internet relic. I can't remember the last time I saw a message where I had to choose whether I had Shockwave or not to continue. Nice find!
chermanowicz 18 hours ago 0 replies      
this is incredible!
mrclownpants 22 hours ago 1 reply      
This has already been posted several times.
ChrisArchitect 22 hours ago 5 replies      
yeah, seems to be a lot of old links getting shared lately. please stop.
Maybe start using http://isitold.com/ before posting.
NASA Curiosity Mars Rover Will Spend First Weekend Installing New Software nasa.gov
50 points by llambda  11 hours ago   31 comments top 7
robertskmiles 17 minutes ago 0 replies      
I was wondering what kind of security they have on the upgrade system. Presumably the software packages are signed. No hacker on Earth wouldn't like to be able to say they'd cracked a system on Mars.

But then I thought, "Who actually has the hardware to broadcast to Mars in the first place?".

iuguy 34 minutes ago 0 replies      
"Updating your rover is almost complete. You must restart your rover for the updates to take effect. Do you want to restart your rover now?”

Am I the only one having a very nervous moment when the update's applied?

EternalFury 8 hours ago 3 replies      
Amusing, considering I was bashed last night with repeated "you can't patch it once it's on Mars".
SeanDav 10 hours ago 5 replies      
I am fairly amazed that they need to do this because of what looks like space constraints. I wouldn't have thought that programming code would take significant space and the potential for screw ups just seems way too high to my mind.

I hope they get it right...

rowborg 10 hours ago 1 reply      
I find the idea of a bricked Curiosity horribly depressing. Let's make sure to wait a FULL FIVE MINUTES before rebooting, ok guys?
CWIZO 6 hours ago 1 reply      
Is the new software already on curiosity and it just needs to be installed or are they transmitting the new software from earth?
maratd 7 hours ago 1 reply      
Scary! What if they brick it?
Things I didn't know about the WebKit inspector joocode.com
223 points by copesc  23 hours ago   49 comments top 16
simonsarris 22 hours ago 3 replies      
I love tip articles! Here are some more that I use heavily (note that some of these might be Google Chrome only at the moment)

The gear in the bottom right of the Chrome inspector has a lot of useful options, such as emulating touch events and preserving the console log upon navigation.

The Watch Expressions persist across tabs and I keep "this" as the top watch expression all the time. It makes for an easy quick check when debugging to make sure that you're in the scope you thought you were, and you can always use the dropdown to inspect all the properties of the current class.

CTRL+G works in the sources tab (go to line)

You can highlight some code and right click -> Evaluate and it will run that selected line in the console for you. Alternatively you can highlight the code and press CTRL+SHIFT+E

You can remotely use the web inspector for Chrome Mobile: http://www.youtube.com/watch?v=s4zpL4VBbuU

There's a useful shorthand: In the console you don't have to type "document.getElementById('blah')" to get a reference to the blah ID'd element. Instead you can just type "blah" in the console, and even though autocomplete doesn't show it, pressing enter will return the element with ID blah!


As an aside, developer tools like the inspector are the reason my pea brain is allowed to have a love affair with the weird little language that is JavaScript.

Thanks to the console the amount of time it takes to whip up a five-cent program with JavaScript without even leaving my browser, heck without even leaving this tab is just astounding to me even after all these years.

One thing I noticed is that more than the language itself, the tools that I use while building things in the language are what really make them a pleasure to use. If I wasn't using (Chrome's) web developer tools I'd probably consider JavaScript to be a nightmarish corpse of a language that punishes the slightest of typos with a silent malicious grin, as code execution carries on as if A.blah = 5 and A.blsh = 5 were both equally worthy of existing to the JS compiler/interpreter. Only by the grace of tools is JS tame at all.

(So if you're reading this Webkit/Inspector developers, thank you.)

joshuahedlund 23 hours ago 0 replies      
Several cool tips in here I didn't know about.

Regarding the element drag and drop: it's a really awesome way to brainstorm redesigning a UI, but I've found if I mess with it too much it starts behaving weirdly and getting confused about whether the elements are in their old or new spots, and I have to refresh and start over. Still an awesome feature for productivity.

euroclydon 22 hours ago 3 replies      
Speaking of web inspectors, did anyone else notice what a tremendous broken piece of crap the one in the latest version of Safari is? It's downright scandalous!

I had to manually roll back Safari to 5.1.7 to get the old one back.

I will give Apple credit for keeping me hooked on Safari since they're bookmark and history sync across all their devices via the cloud is top notch.

TazeTSchnitzel 22 hours ago 2 replies      
The $0 thing will save me a lot of time. I often spend a while figuring out how to select a specific element with DOM queries, or assign it a special ID and then do the whole document.getElementById malarkey.
jenius 22 hours ago 1 reply      
Command-K also clears the console, just like it does in terminal. Awesome stuff. Unfortunately the `x = _` trick to save the output of the last command to variable x does not work, but that would be really awesome if they put that in!
tszming 22 hours ago 2 replies      
>> Console, write more-than-1-line commands: shift-enter does the trick. Pressing enter at the end of the script runs it.

You need to shift-enter every line, not as usable as Firefox/Firebug. Also tab is still not working. This is the reason why I am still using Firefox for development purpose.


rijoja 21 hours ago 0 replies      
I've always felt that firebug has been a little bit better than the chrome developer tools. Now I might reconsider and start using chrome for development instead. The ability to add new css rules in the element view something I've been dreaming about for a long time. The ability to write more than one line of javascript without enabling a different mode is also absolutely fantastic.

Is there a similar list for firebug? A strong advantage of firebug is of course that it's has a bunch of nifty extensions. Which one do you prefer?

boonedocks 22 hours ago 1 reply      
Can anyone point to a guide for using the web inspector in Safari 6? It looks like it could be powerful, but it is not as user-friendly as the Safari 5 and Chrome inspectors. It feels like a step back.
direllama 5 hours ago 0 replies      
In Chrome when viewing a js file the "{ }" button (pretty print) in the lower left will un-minify the file. Most useful for debugging live sites.
rb2k_ 21 hours ago 1 reply      
It's a long shot, but worth a try:

I loved using Safari's inspector for for trying out CSS selectors. It seems that both for Chrome and Safari, only searching for xpath seems to still work. Am I missing something or did that really get removed?

tterrace 23 hours ago 1 reply      
"Break on DOM modification" is going to be a big time saver for when an ajax call fetches a bit of html with a <script> in it.
MindTwister 16 hours ago 0 replies      
Write "debugger" in your source code, chrome will drop you into debugging mode when that line is read. The console will be in context of your "debugger" statement.
phpnode 21 hours ago 2 replies      
very useful, but i really wish Chrome allowed you to replay a HTTP request from the network tab. I just want to right click on e.g a POST request, and send it off to the server again. Whenever i need to do this at the moment i have to switch to LiveHttpHeaders in firefox, which is a pain.
Mpdreamz 17 hours ago 1 reply      
CTRL+SHIFT+F searches through all the scripts. I use this primarily to navigate through code i.e CTRL+SHIFT+F "function showDialog("
laserDinosaur 23 hours ago 0 replies      
Well damn, I only knew one of those. Good article.
dhucerbin 22 hours ago 0 replies      
Right click in Sources tab on gutter and you can add breakpoint, and conditional breakpoint. Condition is any javascript expression and is evaluated to Boolean. If true - debugger breaks.
Steve Yegge: Notes from the Mystery Machine Bus plus.google.com
319 points by kungfudoi  1 day ago   172 comments top 64
cletus 1 day ago  replies      
As much as some commenters are (weirdly?) railing against this classification scheme I think the underlying idea that software conservatism is about risk aversion is essentially accurate.

Perhaps another way of framing this is to ask the question: are you optimizing for the best case or the worst case? This ultimately is a form of risk management. And I'm not talking in the algorithmic sense, meaning complexity expressed as the asymptotically worst case. I'm talking about people, software and ecosystems.

Let me illustrate this idea with Java.

- C++ has operator overloads. Java does not? Why? Because people might abuse them. That's optimizing for the worst case (ie bad or inexperienced programmers). Properly used, operator overloading can lead to extremely readable code;

- Java has checked exceptions and uses them liberally (pun intended). C#, as one example, only has unchecked exceptions. Why? Philosophically the Java language designers (and many of its users) feel that this forces callers to deal with exceptions. Pragmatically (IMHO) it does not and leads to more cases of exceptions being simply swallowed. But again this is optimizing for the worst case ie programmers who should deal with a particular error condition but won't;

- Java has no multiple inheritance. Same story: it can be abused ("it is known"). But also mixins can be a powerful metaphor.

- Rinse and repeat for duck typing, extension methods, etc.

Putting Python two steps from Ruby strikes me as an interesting choice. I'd say the difference is at most one.

I'll also agree that Google as a company (based on my own much more limited experience than Yegge's) is firmly conservative. The style of writing Javascript that he refers to is about writing Google Closure code with all sorts of directives to aid the Closure Compiler (I describe Closure as putting the Java back into Javascript).

I also see a lot of Python code that isn't really Python. It's Java expressed in Python syntax rather than idiomatic Python and that is kind of sad.

Which isn't to say that any of this is necessarily bad (or good). It's just a (software) political viewpoint you need to be comfortable with (or at least can tolerate) or (to quote the South Park meme) "You're gonna have a bad time".

One of the comments linked Worse is Better [1], which is worth a read too.

[1]: http://www.stanford.edu/class/cs240/readings/worse-is-better...

michaelochurch 1 day ago 4 replies      
I think I'm a software libertarian.

If you like dynamic typing and can write good, legible code in a language like Python or Lisp, do it. If you like static typing, knock yourself out. If you want to use an IDE, go for it. If you want to use emacs, do it. Hell, if you like object-oriented programming, try it out. I think 95% of "object-oriented" programming (as currently practiced) is junk, but the other 5% is legitimately valuable. If you have the taste to pick from that 5%, go ahead.

What you shouldn't have the right to do is impose complexity on other people. Use whatever environment you like, but if your code depends on your environment, that's bad. If people can't get work done because they're cleaning up your messes, that's bad. Be as liberal and as kinky as you want in your own sandbox, but don't impose your wacky, untested DSL on everyone else.

That said, I like statically typed languages. ML is the only language I've encountered where reading average-case code is enjoyable. (Scala's a great language, but average-case code is ugly due to the Java influence. There's a fair amount of spaghetti code written in it due to the cultural legacy of the SpaghettiFactoryFactory Java culture. I can't speak for Haskell because I haven't seen enough.) I think that's neat and very rare in the programming world. How much code is enjoyable to read? 1 percent, maybe? In Ocaml, that number is a lot higher. Probably around 50%. 50 percent of Java code isn't even legible. Being able to actually read other peoples' code is nice, and it's one thing I miss about working in Ocaml.

I'm probably more in line with the hard-line conservative camp in terms of my view of complexity: avoid it unless you need it. The Unix philosophy works. Religious X-oriented programming doesn't. Big Code leads to fail. Small-program methodology's little programs (Unix philosophy) are written to solve problems: do one thing and do it well. Ambitious projects should be structured and respected as systems, not all-or-nothing, massive single-program megaliths with no clear communication policy among modules. Small-program development works. Big Software is written to get promotions. That produces the next generation's legacy horrors. Also, structuring your company around 17-day "iterations" is stupid. Et cetera.

I also tend to think that a lot of the features that scare typical software conservatives are genuinely worthwhile. Macros in Lisp are important and can be very beneficial-- if used conservatively. Cleverness for its own sake is bad, but there are times when macros are very useful. Document what you're doing, and make sure it's tasteful and makes sense before you let anyone else depend on the work, but go ahead and do it. I wouldn't have learned what not to do with macros had I not made a few mistakes when I first encountered them.

So, with a mix of opinions from the "conservative" and "liberal" camps, I can't say where I fall. I like macros (when used by disciplined people) but I also like static typing. Both turn out to be very useful tools. Consequently, I find that I like a lot of different languages and insist not on a specific one, but on small-program methodology so that people can use the right tool for the job.

I'm conservative because I dislike complexity (I think "software liberals" are OK with complexity as long as it's under the hood-- most metaprogramming involves extremely complex solutions that, when they work and the abstractions don't leak, although this is rare, allow clean interfaces-- whereas I'm not comfortable making that distinction) but I (a) understand that liberalism is essential to driving innovation, and (b) can't classify myself as a conservative because management is inherently conservative and is, in software, almost never the solution to the problem. Usually, it is the problem. Most companies fall to shit not because they have some difficult code-- every codebase has some crap in it-- but because management mandates that they use the bad code (often for political reasons, like the original architect being a crony of the manager) as-is instead of taking the time to understand or replace it. I'd like to see how Valve evolves over the next 5 years, because I think management in software is usually a source of undesirable complexity, rather than the safeguard against complexity that it thinks it is being. If Valve can give us a determination either way on whether software can work without managers in the first place, that'd be incredibly useful information.

Not surprisingly, software politics also has a lot of individual inconsistencies and hypocrisy. Corporatism (in politics, not software) is neither socialism nor capitalism but a system designed to give the best of both worlds to a well-connected elite and the worst of both to everyone else. (Consider air travel as a microcosm: Soviet experience and service quality and comfort, mean-spirited and capricious-- but very capitalistic-- pricing.) I think the same exists in software politics and the typical managerial conservatism. People and organizations can identify in name with liberalism or conservatism, but tend to pick and choose as suits them. (For an example of this inconsistency: Google, a bastion of software conservatism, allowed GCL to exist.) What makes 90 percent of software jobs so fucking miserable isn't those rock star, "undisciplined" Rails liberals or stodgy gray-haired conservatives. Rather, it's a corporatist "crony capitalism" state where people who win managerial blessing get liberalism (i.e. the autonomy to do whatever they want and freely impose complexity downstream) while the rest of the drones get stonewalled with a supposedly stiff-lipped conservatism (e.g. "you can't [fix that codebase | use that language | pursue that side project] because we can't afford the risk") that is presented as principled, although the drones see managerial favorites getting through that wall on a daily basis, so they aren't fooled.

nirvana 19 hours ago 3 replies      
I first noticed something like this, though I draw the lines differently, in the 1980s.

What's interesting is that there has been a shift over the years to where "programming" has come ot have a strong ideological bias to only one type.

The types I noticed then I call Cowboys and Architects. These are just terms I'm using for convenience, not meant as pejoratives.

Cowboys are now more common:
Some programmers write a bunch of sloppy code without bothering to ever design anything. Their methedology for making a product seems to be akin to bashing to the code into the shape it needs to be eventually. This group of people tend to advocate policies that assume everyone else is writing crappy code as well- unit tests, agile, etc. For instance, agile rejects design and assumes you can't know what the right shape for the code is going to be more than a week in advance and that all code is maleable without repercussions.

Architects are now rare:
Other programmers will sit for a week and think without writing any code. When they do, they sit down and over the course of an hour (or however long it takes to type it) will write out the code for the complete system or module. It will be bug-free with the exception of typos. Once the typos are fixed (Generally by getting the compiler to accept the code) the programmer can move on to implementing the next bit of functionality. Sometimes there are errors in the code working with other code, generally integration errors, but not errors in the thinking of the programmer. These programmers only accept that Agile makes sense because the business side of things can't make up its mind, so they architect core systems that are flexible to support multiple business needs, but don't need to be rewritten or bashed around, because they did it right the first time.

I'm of the latter type, and I have tested this objectively, by producing a 10,000 line iOS App like this, which has been in use for several years by tens of thousands of people with no crashes or other defects (a few minor conceptual bugs- mismatch between the features and the expectations of the business, which were fixed)... and not a single unit test. It compiled, it worked, and almost all the development time was spent on the UI. It has had major releases (eg: going from being iPad only to a universal app, etc.)

It has built in reporting for exceptions, and all of the reported exceptions are the result of things other than my code (eg: there are several situations where iOS will crash an app if it needs to or due to problems with pre-release versions of iOS, and those are what generate the exceptions.) No customer reported bugs either. (though they do have requests for things working slightly differently and new features, no programming errors reported by customers.)

The industry is so dominated by a culture of "all code is crap" that I think many people think that all programmers are cowboys and even Steve here is delineating types of Cowboys, and nobody believes architects exist.

Can you imagine someone saying "unit tests are a waste of time, they just double the amount of work with no benefit.". It produces a litany of excuses for why this isn't true. ("You need them if other people work on your code!", "maybe for a team of one", "you're assuming you'll never forget a design decision", etc.) I know this message will get responses along those lines-- its because Cowboyism has become an ideology. Yegge is right - programmers are ideological.

I'm not a savant and I'm not rare. Architects like me were about %50 of the programmers out there when I started out. I think the mainstreaming of "hacking" has produced a lot of people who are taught to be cowboys and a culture that encourages cowboyism.

tikhonj 1 day ago 3 replies      
As Yegge mentioned in his post, this is a bit of an oversimplification. As a simple illustration, choosing a statically typed language like Java over Python is certainly a conservative trait. But then choosing Python over Haskell is exactly the same, just with the whole difference translated towards the liberal end of the spectrum.

Put another way, it's the political liberals who came up with OSHA (I hope--I'm somewhat ignorant of the actual history :P). A liberal or conservative outlook is not characterized by some particular processes or tools--it's characterized in an entirely relative way. The conservative approach is in choosing the familiar over the novel and in avoiding change. The familiar could be safer--Java vs Python--or it could be less safe--Java vs Haskell. I've talked to some ardent Java adherents, and they have lucid cases for not going over to Python or Ruby or Clojure or what have you. But--critically--these cases are virtually identical to their cases against going over to Haskell or Scala. There are differences in details, of course, but it's a difference in degree rather than kind.

Another even more extreme example is TDD. In particular, the arguments people have against adopting TDD are essentially exactly the same as I've seen from TDD supporters against using formal methods. Once again, some details differ, but the core idea seems to remain: some people are inherently wary of change.

It's also interesting to note how Yegge categorizes certain concepts in multiple "buckets". Either he's just being inconsistent (which is plausible) or he's making a deeper point: it's not about the particular concept, it's about the philosophy behind it. If he wasn't making that point, I've made it for him :).

That is, anything called "something calculus" is conservative, but lambdas (e.g. lambda calculus) aren't. Type-based functions overloading (like type classes, I guess) is conservative, but Scala implicits are liberal.

In my view, the languages that are the most conservative (at least in my part of the world) are Java and Python. Why? Simple: they are the default language for almost everyone I know. You're at an enterprisey company? You're probably using Java. You're at a startup? You're probably using Python. You're using C or Scheme or Haskell or Erlang? You're crazy. (I should note that I don't know very many people in systems or embedded programming, so my view is obviously rather biased.)

All this rambling (I certainly see why Yegge always writes long posts) has left me with a fairly concise conclusion. Namely, mapping programmer attitudes to a spectrum vaguely inspired by politics is a reasonable idea. Sure, the reality is that there is no total ordering so a one-dimensional representation is fundamentally lacking. However, it's good enough to give some insight.

But I would not map technologies there based on the technologies' innate traits. Rather, I would map them there based on the thinking behind the people who use them. This is similar to how--if you don't know the background--it's hard to guess which political party supports which regulation. Gun control is the opposite of liberal, but it's exclusively heralded by liberals; deregulation seems liberal but, of course, isn't. Yet, on other issues, people on either end of the spectrum behave as expected!

This is why I think languages like Java and Python are fairly conservative. Not because they try to offer some sort of safety but because they are safe choices. This is also why I would probably place C# as significantly more "liberal" than Java--it may be the most "conservative" .NET language, but it is far less afraid of embracing new ideas than Java. So that end is simple: at least for enterprisey companies and startups, it's populated with Python and Java. But what about the other end? I think this is where the languages that most people consider too crazy to use go. Haskell, Scheme, Erlang and so on. Only very brave--very liberal--companies are going to use Haskell or Scheme in actual production. Too many weird features. Even the sentence "Scheme in production" just sounds weird.

So it's not a matter of wanting handrails (Haskell) or not even wearing a helmet (Scheme); rather, it's a matter of being willing to choose something more advanced over something more understood.

7952 11 minutes ago 0 replies      
It depends on context. If you are aware of your own fallibility python is a far more conservative choice than C++. Coding is difficult and the most limiting factor is your own ability. Imagine asking some students to build a Mars rover in 6 months with no experience. It would be far more conservative to use Arduino than ask them to start rolling C code. You are liberal because you are crazy enough to try and build a Mars rover in six months with no experience.
cromwellian 1 day ago 2 replies      
before it started I knew it was going to be another typing rant. I think you continue to present a false dichotomy on typing, as well as missing some of the reasons people desire it.

In particular, I like typing as machine readable documentation, that makes IDEs simpler and more accurate in code navigation and refactoring. Dart in particular shows this false dichotomy really well, but having a type system for human and machine readable docs, making the IDE experience far more pleasant, but which can be turned on or off. Unsound, untyped, programs can still run. Yes, dynamic languages can have nice IDEs too (Smalltalk), but they are harder to engineer.

In terms of optimization, typing is a must for many types of hard real time programming. You can bet that the Mars Curiosity rover isn't using a garbage collected dynamic language. Nor are the inner rendering loops of most mobile games or console games. (Lua is another story when it comes to actual game logic)

Lots of bold claims have been made for Javascript JITs for example over the years, include a lot of hype about tracing JITs, but the reality is, Javascript still doesn't even come close to native performance, and it's hideously slow on mobile platforms in comparisons, with basic, idiomatic programming (e.g. dictionaries with fields) having terrible numeric performance. All this has actually served to threaten the Web with a native-takeover because we don't have a fast web language CPU and memory efficient on these devices.

I don't think that Tim Sweeney or John Carmack are prematurely optimizing when they decide to write a game engine(rendering) in C++, because experience has taught them that it is highly unlikely they'll be able to optimize a dynamic language implementation later to a satisfactory level.

I think many people use a mix of languages depending on the context. I certainly wouldn't write a web service in C++, nor would I write a 3D game in BASIC. I wouldn't use anything but Perl to masage text files, and I'd use R for data analysis. 

postfuturist 19 hours ago 0 replies      
The things he said about the Clojure community are in contradiction with the data from the 2012 State of Clojure survey here: http://cemerick.com/2012/08/06/results-of-the-2012-state-of-... .

Steve claims that Clojure folks come from the Haskell/ML world when the survey lists the "former primary language" of survey takers to be 1% Haskell, 0% SML, 0% Ocaml. Whereas they actually come from Java, Python and Ruby mostly.

The Clojure "replacement" in the survey is all over the map with Common Lisp, Erlang, Haskell, Java, Python, Ruby, Scala and Scheme all performing well. The liberal/conservative thing is a false dichotomy and Clojure community is probably living proof of that.

ezyang 1 day ago 1 reply      
Hidden inside this fascinating screed is an announcement about the "Google Grok" project, which appears to be something of an Eclipse-killer for dynamic languages. It's good to hear that Google is working on this problem, and I'm interested to see what they come up with.
Darmani 1 day ago 1 reply      
This is a brilliant move by Yegge. Now if you call him wrong, you're just like the guy who attacks Aunt Marge's politics at the family dinner.

Unfortunately, your business is not Aunt Marge. You need to be able to make the tough calls and say that, no, banning the color yellow is not a viable policy. Software engineering and programming languages are both seriously-studied disciplines, and all too often, the evidence comes down conclusively in favor of one position.

To pick an easy target, in many languages like Java and C++, null can be passed in place of (almost) any type. But

1) Empirical studies show that values intended to be non-nullable are more common...

2) ...which means that many method definitions are cluttered with is-null checks (to cut down the exponentially-increased state space)...

3) ...and it's just as easy to provide a feature to turn it on when it's wanted (option types/Maybe monad)...

4) ...which many companies hack into C++/Java anyway (various annotations and preprocessors)

This is a pretty solid case. Liberals win -- it's less code. Conservatives win -- there are fewer bugs. Sometimes things really are that one-sided.

parasubvert 23 hours ago 0 replies      
This doesn't actually seem to be all that new of an argument: the debate used to be about "craft" vs. "engineering" or between "software is math" and "software is mechanism".

For example of what's pretty close to a Yegge rant of the 1980's, see Edsger Dijkstra, "On the cruelty of really teaching computing science" [1]. It seems to be bemoaning similar debates in the software field, though from a very "conservative" perspective, since Dijkstra prefers that a formal proof should be required with every program, and one should completely avoid anthropomorphism in discussing software design.

Another thought that's crossed my mind: one of the reasons for the evolution of these approaches to politics and risk over the years has to do with the scale of impact. Liberally messing around with a social and economic systems can lead to widespread human disaster: China's Great Leap Forward comes to mind. How the software is used and how reliable it needs to be is an engineering tradeoff with regards to cost & time. This is often why you tend to see much more liberal approaches to software in smaller companies - the scale of impact is much smaller (in terms of customer base, and investment) when you cock up.

Now, it's clear that larger companies, particularly many IT shops, could learn a thing or two about being "progressive conservatives", as they've "conserved" for far too long and are caught in the trap of special interests (i.e. traditional vendors dependent on their cash). Fear of dynamic languages, open source, or cloud services, or non-waterfall development is mostly a reactionary ideology grounded with some kernels of truth - static typing DOES help codebases scale (but you shouldn't be proud of a large codebase), you can't just pick ANY open source library as some are DOA, or ANY cloud as some are unreliable, and tinkering with your delivery methodology can reduce your performance greatly due to confusion, plus there's plenty of cargo-cult agile consultants waiting to rope you in. So, you need to think these things through. But that's not an excuse for avoidance. Perhaps that means I'm a software moderate.

[1] http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036...

(edit: typo)

austintaylor 21 hours ago 0 replies      
I think this is fundamentally flawed. Take HAML, for instance. It tends to be polarizing, but not along the axis he has laid out. People who don't like it usually point to the unfamiliar and non-standard syntax (conservative), but the thing that I like about it is that it is more structured, and less error-prone than string splicing (also conservative).

In general, when I fall on the liberal side of an argument, I think it is for the reasons he gives (no fear, resist ossification). But when I fall on the conservative side (which happens just as often) it is not because of fear, but because I think that mathematically rigorous abstractions (pure functions, persistent data structures, etc) offer a more powerful way to approach the problem.

I think my attitude toward bugs (which he suggests is the defining issue) is more nuanced than this spectrum allows. Bugs are inevitable, and it's not the end of the world when you have a bug. We need debuggers. But I think that over time, if we are doing anything right, we should be growing a stable core of our codebase that is increasingly flexible and bug-free. I guess maybe this could be considered a centrist view. It is certainly neither liberal nor conservative.

Someone in the thread mentioned pragmatism vs. idealism. I think this is a much more useful distinction. I would definitely consider myself an idealist. But the pragmatic-ideal axis doesn't map to the conservative-liberal axis at all.

grandalf 13 hours ago 0 replies      
While I found the article annoying in its oversimplification, I think the real tension Yegge is feeling is about contracts. At a high level, contracts apply to coding standards, and at a low level they apply to interfaces, etc.

One may find many aspects of a contract annoying yet still prefer a world where contracts are widespread to a world without contracts.

In a sufficiently complex ecosystem contracts make some things easier and some things more difficult. But contrary to Yegge's assertion, it may be that some organizations have a contract that if something breaks, then one of the parties involved does a rewrite/redeploy. This is not a replacement for a contract, as Yegge implies, simply a different contract.

One contract might be: "All code must be unit tested". Another might be "If you don't write unit tests and your code works, that's great, but if it fails then prepare to pull an all-nighter if necessary."

My guess is that most developers, if asked which kind of methodology was appropriate, would generally pick a methodology that was appropriate for the level of risk involved. If the code is going to manipulate a robot arm holding a knife as it jabs quickly toward the programmer's body, few programmers are going to think that the bugfix/redeploy approach makes sense. But when it's a social site then everyone starts to feel more like a cowboy.

I think it is an insult to the professionalism of programmers everywhere to assume that risk decisions are a function of internal constitution rather than a rational risk assessment.

cturner 1 day ago 1 reply      
Broad-brush talk is a step backwards.

Political talk and thinking is poisoned by the ideas of "left" and "right" even though those phrases haven't had a connection to reality since the French First Republic.

It'll probably be fine. Politics is in many respects a zero-sum game, and polarises participants into two camps. Software isn't like that.

kstenerud 22 hours ago 1 reply      
What "politics" I adopt depends mostly on what I'm building.

If it's a library that someone else will use, I try to play as conservatively as possible, and I fully expect that despite my best efforts those developers will uncover lots of bugs regardless.

If it's a mission critical application, I'll also be conservative. The more pain there is in fixing things later, the more careful I'll be up front.

When I'm writing a game, I'll play it more fast-and-loose. So long as any glitches don't crash it or open an exploit or ruin the user experience, it's usually an acceptable trade-off.

When I'm writing stuff for myself, I go crazy, trying out all new fads and methodologies just for the hell of it. This way, I learn new things and get enough experience with them to mark them as conservative-safe and liberal-safe.

My only sticking point is this: If someone competent cannot follow your code, you haven't documented things properly.

kephra 22 hours ago 0 replies      
One thing came up in mind " United States has only one party:the property party. It's the party of big corporations, the party of money. It has two right wings; one is Democrat and the other is Republican. "

From a German point of view both liberals and conservatives are right wing. And his article is totally missing any left wing politics. He is missing the green, the socialists, the communists, and the anarchists point of view here.

And making it one dimensional also does not fit: What about Christian socialists, what about conservative greens, what about anarcho-capitalists, or national socialists?

e.g. I would classify myself (when it comes to programming) as anarcho-capitalist: I'm using the language that best fits the problem, without bias. And I'm earning most of my money with free software.

I also can not agree with how he positioned some languages, e.g. Perl might look liberal at first, but the CPAN community is more conservative when it comes to constraining regression test or documentation than the Ruby or Python people. Also ASM might look liberal at first, but if you ever worked in a closed shop, you know that ASM/370 coders have a really conservative approach to create software.

lispm 18 hours ago 0 replies      
The characterization of Clojure is questionable. A conservative would want to avoid risk and would be against change. About the only really conservative thing of Clojure I would see that it preserves the investments made into the JVM and uses an accepted technology as a base. Other than that it is a radical break for the Clojure user base. The Clojure user base does not come from ML or Haskell. It comes from Java, Ruby, Python and a few other languages. But not from statically-typed functional languages and not even from Lisp. Even Rich Hickey does not come from there.

With Clojure you keep one feet on the ground (the Java ecosystem) and the other feet is in the unknown dark water.

ChuckMcM 13 hours ago 0 replies      
I think the best (only?) point to come out of this essay is that different people have different definitions about what makes code or coding methodology "good".

And because of that you can find yourself in an endless argument with someone.

Why he dressed it up in political satire (allegory?) I don't know, seemed to me to make his point less forcefully.

yaongi 1 day ago 2 replies      
So, this is the culmination of 8 years of rants and blog posts? This is what he's been trying to say all that time? What a peak he has reached. What an insight.

I'm trying to think of an apt analogy for this post that doesn't involve vomit or defecation, but it's hard. From the introduction proclaiming how readers will be stunned by how clearly and resoundingly true the revelation revealed within will be, to the literary diarrhea it's followed by... it's like a little kid proudly telling his parents he finally used the toilet properly only for them to find he completely missed the bowl. Yeah, I failed.

If the political spectrum is deeply flawed, as he said, then why even try to hack it onto something completely unrelated, made of individual technical points where each programmer may have a different approach?

I don't know, I like a lot of his past posts, but I don't dig this one. I don't think it provides any useful insight whatsoever.

fleaflicker 22 hours ago 2 replies      
In his section on Tech Corporations, he classifies Apple as "Diagnosis: no idea."

Is there a reason nobody speaks publicly about Apple's engineering culture? We hear a lot about the culture at Google, Facebook, Microsoft, and Amazon. But I've never met an Apple engineer. And I've never read any detailed accounts by an insider.

Does anybody have any good resources? Or is there a very restrictive confidentiality policy?

thebluesky 1 day ago 0 replies      

"A measurement of length of a piece of writing, particularly when indicating a length excessive for the genre. A Yegge is approximately 4000 words or 25 kilobytes.

Named for well known programmer and technical blogger Steve Yegge, whose blog up to about 2009 was notorious for entries of approximately 1 or 2 Yegges in length, vastly exceeding the typical length of blog entries in the genre."

dsantiago 1 day ago 2 replies      
I'm trying to think of what anti-macros Clojure talk by a "key presenter" he might be referring to. I'm only familiar with the talks from Clojure/conj, so the only one that I can think of is Christophe Grand's (not= DSLs macros) talk from 2010[1]. If so, I think his summary mischaracterizes the content of that talk, but it could be another talk he's thinking of.

[1] http://blip.tv/clojure/christophe-grand-not-dsl-macros-45407...

mononcqc 23 hours ago 0 replies      
I truly fear we'll get into debates of software conservatives vs. software liberals, and at some point some jackass will say "of course but <person x> is a researcher for <liberal/conservative> software engineering" as if it were a contest.

If that happens, I predict a fucking hellhole and I can only imagine myself leaving the industry at once.

brown9-2 1 day ago 4 replies      
Off-topic but does Google Plus offer any way to view a post nearly full-screen, without all the extra margin and white space taking up 2/3rds of the screen?

A bit annoying that the post text only takes up about 33% of my available screen real estate, even on the "view single post" URL: http://cl.ly/image/1p1B2o3D262g

narag 1 day ago 1 reply      
Honestly, I can't see it that way. People that I met and I know how they work and think don't fit in this axis at all. The distinction that I do see is between people that trusts experience of what works and what doesn't (and still willing to test new ideas when it makes sense) and people that rigidly adheres to policies or dogmas.

The type of tools they use and like are circumstantial. It's more of a empiricists vs. authority thing.

ziadbc 1 day ago 1 reply      
Who is more of a 'liberal' programmer, RMS or Linus. Think about it.

In my estimation, if the answer here is unclear, then this metaphor breaks hard.

pshc 1 day ago 0 replies      
My project is accomplishing this lofty and almost insanely ambitious goal through the (A) normative, language-neutral, cross-language definitions of, and (B) subsequent standardization of, several distinct parts of the toolchain: (I) compiler and interpreter Intermediate Representations and metadata, (II) editor-client-to-server protocols, (III) source code indexing, analysis and query languages, and (IV) fine-grained dependency specifications at the level of build systems, source files, and code symbols.

So this is the project that Yegge mentioned would turn "all code [...] into Wikipedia." Man, my ongoing project is more similar to it than I thought.

I find it curious that he would even bother to mention (IV) though. (IV) falls right out if you start from the correct data representation, which I would have assumed from (A). I wonder if he's still listing dependencies explicitly.

darkandbrooding 7 hours ago 0 replies      
Yegge's entire essay seems like an application of JWZ's regex admonition. "I know, I'll present my hypothesis using political terminology!" Now you have two problems.

Political terminology in the United States is MASSIVELY warped by entities who spend literally millions of dollars in an effort to connotatively redefine words. When you (re)define words like "conservative" or "liberal" you risk alienating people who have been conditioned to have an emotional response to either definition. If you define a term in a way that seems pejorative to your reader, the reader will weight every subsequent statement against the rigor they think you brought (or did not bring) to those definitions. Your essay will entirely fail to persuade if it rests on (perceived) faulty definitions.

When writing to a largely US audience, no attempt at honest communication will be aided by the application of political labels.

Here's a test: can the essay be rewritten without that political terminology? Reader "nirvana" used the terms "cowboy" and "architect" to describe his two axes. ( http://news.ycombinator.com/item?id=4367328 ) I very much prefer those terms. Yes, they're also connotative and subjective, but as analogies they map much better onto the subject being discussed.

j_baker 19 hours ago 0 replies      
I think one could make an argument that Haskell is like Fascism. They're both extremely liberal applications of extremely conservative beliefs. This can make categorizing them difficult.

Scheme, Erlang and company are more like communism: extremely liberal applications of extremely liberal beliefs. So much so that people tend to view them as "good in idea, but flawed in practice".

Python and Ruby are more like traditional liberalism. They bring in new ideas, but not in excess.

Scala and Clojure seem remarkably centrist. They both bring in good ideas from both the liberal and conservative camps.

Lastly, C is "old guard" conservatism, C++ is a Bush-style "compassionate conservatism" that tries to please everyone while being labeled "conservative", Java is a neo-con, and C# might be compared to the Tea Party.

sandGorgon 1 day ago 0 replies      
Clojure is tied very strongly to the Java toolchain (note "toolchain" rather than "ecosystem"). The packaging system and package managers use Maven and Java jars instead of a clojure-based one.

This means that promising projects like Clojure CLR have no chance of taking off the ground, unlike say Ruby vs Jruby vs Ruby EE vs Rubinius.

dinkumthinkum 8 hours ago 0 replies      
A political philosopher "he ain't." I still get the hype of Steve Yegge, I guess he's a writer only software blog audience world could love. It was soooo loqacious; he doesn't disappoint. :)

Nevertheless, I don't know which was worse, the claim about what political conservatism/liberal is or the software one. I guess the software doesn't matter because he's just making it up anyway, but still. Before anyone thinks too highly of this piece, I recommend people study some actual philosophy and humanities.

At it's very core this is just an elaborate (not in a good way) dressing up of the static vs dynamic typing discussion; hardly a revolutionary insight. I also don't see how this is "risk" based debate. But in any event, this is just hard to take.

DanielRibeiro 1 day ago 2 replies      
Interesting positioning of languages:

Assembly language: Batshit liberal.

Perl, Ruby, PHP, shell-script: Extremist liberal.

JavaScript, Visual Basic, Lua: Hardcore liberal.

Python, Common Lisp, Smalltalk/Squeak: Liberal.

C, Objective-C, Scheme: Moderate-liberal.

C++, Java, C#, D, Go: Moderate-conservative.

Clojure, Erlang, Pascal: Conservative.

Scala, Ada, OCaml, Eiffel: Hardcore conservative.

Haskell, SML: Extremist conservative

Woud be nice to overlap James Iry's chart[1] with it...

[1] from http://james-iry.blogspot.com/2010/05/types-la-chart.html

brlewis 18 hours ago 0 replies      
Kent Pitman on programming languages as political parties:

2001: http://developers.slashdot.org/story/01/11/13/0420226/kent-m...

1994: http://www.nhplace.com/kent/PS/Lambda.html

eternalban 22 hours ago 0 replies      
"Just as in real-world politics" it is a 'misguided' idea to view the political space as a 1 dimensional space, ...
mathattack 8 hours ago 0 replies      
Great and obvious, but is this really new?

I think the issue he captures has been well known for a while. It is structured versus unstructured. Neither is better in an absolute sense, but one method can be better than another in a given situation. This is beyond just software, but business approaches in general. Startups are generally liberal/unstructured, Dow Jones firms are generally conservative/structured.

exim 2 hours ago 0 replies      
He should invest more time in writing, to make his posts bit shorter.
ericbb 19 hours ago 0 replies      
I just want to add a link for people interested in this discussion.

(Dynamic Languages are Static Languages by Robert Harper): http://existentialtype.wordpress.com/2011/03/19/dynamic-lang...

With HN discussion here:

duaneb 1 day ago 0 replies      
I think that a better parallel dichotomy would be features vs quality, in a world where they are mutually exclusive. However, I think Yegge wasted too much thought on this. It is the software that dictates how conservative a piece of software is: bugs and stability are generally tolerated in user-facing software because at worst the user has a bad experience. However, a database better be as close to 100% reliable as possible, which in turn leads to testing and static analysis, meaning typing... It is not really negotiable.

I think there are way too many variables for a linear scale to provide meaningful comparison.

robocop 1 day ago 0 replies      
I think a better analogy is

Conservative: the existing system must not break!

Progressive: we must add new features!

yevuard 17 hours ago 0 replies      
The difficulty that I have with his linear generalization is that I strongly agree with some points on both sides - sometimes feeling oppositely strongly about two halfs of the same sentence. Another commenter linked to http://james-iry.blogspot.com/2010/05/types-la-chart.html which makes the statement that "the design space is very highly dimensioned, perhaps infinitely so". I suspect that the programmer opinion space is similarly highly dimensioned, and more particularly, that the specific single dimensional analogue that Steve Yegge draws in his post obscures critical features of this topology. If I can come down hard all over the line, then he does not have a good enough mapping from the higher dimensional space. As an aside, using the labels "liberal" and "conservative" inappropriately juxtaposes rather strong emotions in the mix. Hopefully the emotional/visceral reaction was not his intention as a means of ideological persuasion.
EzGraphs 1 day ago 1 reply      
Some of the tendencies depend upon the nature of the organization. Startups tend liberal (want to change the world). Corporations tend conservative (want to avoid major mistakes). The selection of tools does not always reflect this immediately though.

Also some classification of technology as conservative or liberal depends upon the competing technology it is running against. I was a bit surprised to see Python classified as liberal - but it makes sense when comparing it to Java. If it is being compared with Ruby it is very conservative ("do things one way").

There are some non technological risks that influence technology decisions. Visual Basic may be "Hardcore Liberal" from a language perspective, but it is pretty conservative politically (backed by Microsoft, lots of available experienced programmers).

Steve as usual has interesting insights. I am not sure that this is a paradigm that completely fits - but it does provide a perspective for understanding fundamental beliefs that can lead to disagreements in software projects.

swah 22 hours ago 0 replies      
engtech 22 hours ago 0 replies      
I've noticed this divide for a long time, but the way I've always plotted the axis is "urban" vs "rural".

urban - accepts a certain amount of chaos for the benefits of reducing redundancy, wants to centralize code, reuse via shared centralized code

rural - wants to be isolated, wants to "see" everything, wants to have control over everything, reuse via cut-and-paste

swah 22 hours ago 1 reply      
I tend to relate to conservative with "small government", and in that light Lua would be a conservative language, because it has a small core and doesn't try to do too much.

His conservative definition is seems to be "everything that is wrong with the world" or something.


Also, this older rant reads to me as Yegge saying that this "conservative guy" was responsible for Google's success:

"I've been debating whether to say this, since it'll smack vaguely of obsequiousness, but I've realized that one of the Google seed engineers (exactly one) is almost singlehandedly responsible for the amazing quality of Google's engineering culture. And I mean both in the sense of having established it, and also in the sense of keeping the wheel spinning. I won't name the person, and for the record he almost certainly loathes me, for reasons that are my own damn fault. But I'd hire him in a heartbeat: more evidence, I think, that the Done, and Gets Things Smart folks aren't necessarily your friends. They're just people you're lucky enough to have worked with.

At first it's entirely non-obvious who's responsible for Google's culture of engineering discipline: the design docs, audited code reviews, early design reviews, readability reviews, resisting introduction of new languages, unit testing and code coverage, profiling and performance testing, etc. You know. The whole gamut of processes and tools that quality engineering organizations use to ensure that code is open, readable, documented, and generally non-shoddy work.

But if you keep an eye on the emails that go out to Google's engineering staff, over time a pattern emerges: there's one superheroic dude who's keeping us all in line."


gwillen 19 hours ago 0 replies      
The comments yield more or less the response I expected, to wit: The 'liberals' agree that this is a useful distinction, and the 'conservatives' complain that the distinction is bullshit, and serves only to try to justify the misguided beliefs of the 'liberals'.
lani 7 hours ago 0 replies      
I think a good way to classify the two is :"one group feels that others cannot do what I do" and the other group feels "what I can do anyone can do - right away or with learning/time".. and I think this shows up
MaysonL 7 hours ago 0 replies      
The algebraist/analyst corn cob distinction seems much more valid & meaningful than Yegge's split.
stock_toaster 17 hours ago 0 replies      
I found it thought provoking, but I am not sure I agree with the classifications he arrived at. People sure do love putting names on things and classifying things into buckets!

I did find it interesting that he considers himself a liberal (both in software and politics), then then goes on to create a "type system" categorization for programmers (and programming languages) to be placed into.

kator 1 day ago 2 replies      
I know I will regret this but here is a little survey I whipped up quickly. It's static so results are local to your browser.. Enjoy:


shiftb 1 day ago 0 replies      
I agree with this. Although, personally I'd make the analogy closer to religion than politics.
pilgrim689 18 hours ago 0 replies      
Do any other engineering fields suffer from these broad-stroke categorizations? Do Mechanical Engineers have additive VS subtractive manufacturing debates? Or do they just shut up and solve problems?
alinajaf 1 day ago 1 reply      
I think as a Ruby (and occasionally C) programmer I stand firmly in the liberal camp, but is it weird that I sort of like Haskell too? I find the idea of expressing the semantics of my program through types to be useful sometimes.

Then again my actually political views tend to span the liberal/conservative spectrum so I suppose this is not surprising.

abecedarius 16 hours ago 0 replies      
Forth by this light is batshit liberal, but stereotypically conservative in its early binding. I'm not sure how to take this -- libertarianism comes to mind. Or Sealand. (I used to hack Forth a lot as a teenager.)
kstenerud 22 hours ago 0 replies      
notime, your account was hellbanned 15 days ago: http://news.ycombinator.com/item?id=4294279

priestc, your account was hellbanned 26 days ago: http://news.ycombinator.com/item?id=4245644

dusklight 19 hours ago 0 replies      
I don't really think it is fair to characterize Clojure as conservative. If anything Clojure was created out of the motivation to have the cake and eat it too. Most other languages grant you the benefits of type-safety but at the cost of reduced flexibility/increased complexity. Clojure tries as much as possible to give you the pragmatic benefits of both while mitigating the costs.
cheddarmint 16 hours ago 0 replies      
Is the introduction of a poisonous dichotomy into the engineering zeitgeist a good thing? Consider what this has done for politics.
prtamil 1 day ago 1 reply      
Now i understood why i love Common Lisp and hate Clojure.
It has nothing to do with Community or language. Its about Me. I'm a liberal. Knowing that i'm a liberal liberated me.
mark-r 19 hours ago 0 replies      
I think he misclassified exceptions. A true conservative avoids exceptions and uses error code returns instead.
kanaka 15 hours ago 0 replies      
Good response from chouser (author of "The Joy of Clojure"): http://blog.n01se.net/Clojure-is-not-Software-Conservative.h...
guscost 17 hours ago 0 replies      
As with regular politics, it always depends on the project, and the independents know best.
hugoestr 1 day ago 1 reply      
His real argument is that there is a dynamic typing vs static typing divide.

Didn't we know that already?

I would like to believe that the political bit was just a well timed hook to get people to read his blog. He understands that the right incendiary rant will bring readers. If it is sincere, though, it shows a disturbing level of crankiness.

mej10 22 hours ago 0 replies      
Making these arbitrary categorizations into "liberal" and "conservative" for things where we have all of the data is pretty much useless.


anarchotroll 15 hours ago 0 replies      
The bottom line is: everything that cannot be scientifically proved acquires this sort of "religous" attributes. No wonder religions and politics are like that
anarchotroll 1 day ago 0 replies      
What he wrote about Microsoft is completely unrelated to the rest of his post. It says nothing about the company's culture and software development processes.
He could have saved himself the embarrassment of writing that.
sidcool 21 hours ago 0 replies      
Pretty long essay, but worth a read.
Russ Olsen: The Best Programming Advice I Ever Got informit.com
194 points by swannodette  23 hours ago   52 comments top 13
johngalt 18 hours ago 4 replies      
Engineers always present this as a false dichotomy. You can work with other people (and their code) without pissing them off. "Stay the hell out of other peoples code" is no better than "Act with impunity". Thankfully there is a middle ground. It's called talking to people.

People who are the most passionate about programming are the same people who tend to identify with the code their code! If you say the code is wrong, you are also saying they are wrong. You can mitigate this type of territorial response by convincing them to disassociate their identity from a code block. We aren't a group of rockstars writing hit after hit, we are a team of engineers iterating through possibilities and routing around roadblocks.

For dealing with intergroup rivalry you're better off going to the group responsible for that area first to show your results. Get their support before going up the ladder. Let them be part of the success. Otherwise you paint them into a corner when the big boss comes down and says "Why are other teams fixing your problems!?" Now they must attack your solution to justify themselves.

edit: I'm seeing a lot of other threads say "Just don't work at places where this is an issue." When you find robot planet let me know, because this is an issue everywhere. With your customers if not with your co-workers.

gfodor 18 hours ago 3 replies      
Like most engineers, he did the coding part right, the political part wrong. The right way to approach this would be to hack together a proof-of-concept, get buy-in (and/or participation) from the key engineers of the original system, and slowly build consensus. Yes, it's frustrating. Yes, it takes 10 times as long as just hacking it out. But, you end up not looking like an ass and also probably will end up with a better solution anyway because even you, Mr. Superstar programmer, might miss some details that the other people who have been working on the project longer will catch.

In the situation where you come in after a long weekend and show how you've managed to "fix" other engineers work you end up pissing people off because it makes them feel like you're making them look bad. Make them a part of the solution.

The advice of staying out of other people's code is either good or bad depending on what it means to "stay out". Avoid reading others people's code? Avoid trying to come up with alternative solutions to other people's code? Bad idea. Avoid going in and rewriting other people's code without syncing up with them before you demo your improvements to their boss? Yeah, that's probably good advice.

heyrhett 19 hours ago 1 reply      
This is the real advice at the very end: "But the best way to have a future is to be part of a team that values progress over politics, ideas over territory, and initiative over decorum."

The story is cut short though, and he doesn't really provide any evidence to back up that advice. Did the company that favored politics go out of business. Do company that favor ideas over territory consistently work out better? I think, as engineers, we'd like to believe so, but I'm not sure that's what I've seen from my own experience.

ChuckMcM 18 hours ago 3 replies      
Its an interesting anecdote.

There is a lot to be said for the advice "Don't work where egos are more important than the mission." But what Russ didn't learn was "How to get the mission done in the presence of egos." The thing is that there are lots of people with big egos, people who rightfully or wrongfully work against others who threaten their ego, even when doing so is counter productive to the company. What is worse is that as a manager you know these egocentric people are there but sometimes you really can't do a whole lot about that.

However, when you find someone who can get stuff done without rustling the feathers of the prima-donnas, that person should be pretty valuable. A good manager can really appreciate that skill, a poor manager cannot. Allow me to illustrate.

Lets use Russ' example because its out there and we won't get into trouble. Jump up to the corner office and look at what is seen:

1) Product is slow

2) Repeated meetings and updates where the slowness has been raised have been deflected with various plans, arguments about direction, finger pointing, and general lack of progress.

3) Junior programmer rewrites a chunk of the system and shows off an order of magnitude improvement.

4) Meetings where senior people are exploiting that demo to make others look foolish, advance agendas, and generally do damage to others.

Now consider a different scenario

1) Product is slow

2) Repeated meetings and updates where the slowness has been raised have been deflected with various plans, arguments about direction, finger pointing, and general lack of progress.

3) Engineer figures out the problems and, knowing the solution, starts talking to various other engineers about how they decide to build what they build. Asks questions that talk to the bottleneck (Like they might ask, "I'm thinking about using that kind of socket in my code, but I'm not sure about it, how much performance could I expect?" and "I wrote this bit of test code, it just copies stuff around, and it seems to be waiting on the socket a lot, could you take a look and tell me if I'm doing it right?")

Now by planting the questions/seeds around these engineers start to do things a bit differently, the come up with some alternate strategies. The socket gets eliminated and this speeds up the product tremendously. Everyone is excited about how much progress they are making and generally morale improves.

4) Meetings now how have big performance gains, and the product is going to be much better. Congratulations all around.

Now in the latter case the environment gets better, the same result is achieved, but most of the company doesn't know they were the one who 'fixed' the problem. That employee's manager should know, and they should be ready to reward that effort. People who can effect the change you want in an organization without disturbing the politics are really good to have around. Things just 'magically' get better. When they leave it is really obvious that things don't work as well.

dredmorbius 18 hours ago 0 replies      
It's an anti-pattern.

If you're working in a team, on a project, or in an organization in which this is the operational mindset, your first goal should be to get the hell out. You're in a Bs hiring Cs situation. And eventually, if someone inside your organization doesn't solve the problem, someone outside (e.g.: your competition) will. That's a Christensenian disruptive innovation situation right there.

An alternative goal is to figure out how to do the right thing in such a way that you don't get fired / lose standing over it.

Figuring out how to change the culture might be a third alternative, though this calls for very skillful maneuvering to conduct successfully.

There are exceptions to the general rule. Sometimes checks or controls are in place to prevent thigns from going seriously haywire. But even here, simplicity and efficiency should prevail.

And of course, you should take care not to be guilty of this mindset yourself.

Zenst 17 hours ago 0 replies      
If somebody left a sticky saying "stay the hell out of my code" I'd reply "code it so nobody ever has the need to even think about it"; Which would be the polite reponse. You learn so much from others code, what to do and what not to do.

Remember once doing a lovely JSP COBOL program only to have it butched into something with goto all over the place. Turned out that was the standard, no matter how right or wrong, standards help for consitency. Now if you have wild cards who end up obviscating there code, just to stop people touching it then they need help or you will only end up needing alot more help later on when things go wrong and they will. So politicaly the best way and just winning move is to push the standards and if they don't have any then you instigate them. Always some higher up manager who will easily be be swayed, especialy if you can say it will help to eventualy get some standard like BS5750 or ISO9002 or whatever the flavour of the month is on that front. Remember code motivates the CPU, but what motivates your company managers to do the right things. office politics is alot easier when you get it fighting itself and you can just get on with what you like doing peacfuly.

adamio 16 hours ago 2 replies      
The problem is not the author, the code, or the original programmer,
the problem is here:

"First to my boss and then to my boss's boss and then to his boss and then to a whole assortment of higher ups..."

"Many of those boss's boss's bosses were seriously pissed at me...That was when the Biggest Boss of All..."

Too many bosses with bosses

Ingaz 4 hours ago 0 replies      
The best comment was "The counter-measure is to make sure that no code is 'other people's code', and thus there is no good reason to stay out of it"


bluesmoon 14 hours ago 0 replies      
Reminds me of how the performance team at Yahoo! was asked to stop working on mobile performance research because the mobile team decided that they should own it.
xfhai 2 hours ago 0 replies      
Then open source came along. Welcoming everybody to improve the code. But it seems like there some ego issues there too.
thornofmight 19 hours ago 5 replies      
I don't get it.

"Actually it was terrible advice, advice that I've gone out of my way to ignore it in the years since."

mephi5t0 17 hours ago 1 reply      
Misleading title IMHO. Because it wasn't best advise, it was opposite. The bottom line: stay out of the companies/jobs that give you that advise/attitude.

Guy did his job, he didn't dig in the code to look others stupid. He had a very crappy task to go into sewage, find problem and fix it. Yes, there were programmers that knew why it was slow and had other priorities. Well, his priority was to fix it. Not to mention he worked on weekend and evenings.

happywolf 19 hours ago 1 reply      
To be frank, his advice can be generalized to "Don't step on other people's role", be it code or other tasks. Even though you may be more competent or capable in performing the said role, the resulting repercussion will usually be very ugly, and you won't enjoy going through it. Speaking from my 10 years+ experience from an innocent technical nerd to a multi-region Project Manager.
Man Tries to Live an Open Source Life for a Year shareable.net
49 points by blancarro  11 hours ago   39 comments top 10
vasco 2 hours ago 1 reply      
"Open source life for a year"



dbecker 7 hours ago 2 replies      
I don't really understand what it means for physical items like shoes to be open source in the sense that some software is.

Users are already free to modify their shoes. And even if you had a video showing how the shoes were made, that isn't enough to replicate the shoes unless you have the machinery and dexterity to make shoes.

He also claims he wants to be open source in "how I get around." What would it mean for walking to be open source or closed source? Is it "open source" to ride a bus?

Devilboy 10 hours ago 3 replies      
RMS does this every year
mbell 7 hours ago 1 reply      
FTA: "I'm not buying any proprietary or traditionally copyrighted products unless all other options are exhausted."

I'm pretty baffled by his mention of copyright here. The linux kernel is 'open source' by most people's standards yet the copyrights are held by thousands of people. Living a modern life with only open source products is very doable, living with only products which have no copyright would be almost impossible

orangethirty 8 hours ago 0 replies      
I don't go as far as strcitly using open source, but I've managed to improve my productivity with a lot of open source software. To me, the software I use is just well designed, quick, and hackable. The only non-open source software I still use is the one included with Ubuntu, the one in my cell phone (non-smartphone (runs java)), my appliances (Linux probably, not no source), and the code that runs in my cars computer. Could I survive without closed software? Not yet. Though I keep looking for ways to replace closed systems with open ones.
dsr_ 10 hours ago 0 replies      
I suppose he'll have to start with defining which licenses he thinks are acceptable. CC-SA? Probably. CC-BY-NC-ND? Maybe? Maybe not?

How about patents? Trademarks?

jancborchardt 10 hours ago 1 reply      
Got you covered in terms of web apps: http://libreprojects.net
cheap 9 hours ago 0 replies      
... Grows a Beard.
blancarro 9 hours ago 0 replies      
Yes, good point about RMS.

Thinking about hosting a discussion about this. Seems like there's a lot of knowledge out there. Any interest?

Or maybe there is already a forum for this. Pointers welcome.

softbuilder 10 hours ago 2 replies      
Toilet paper. Is there open source toilet paper? I don't think anyone is 3D printing that yet.
Codec Confusion in Python pocoo.org
44 points by easonchan42  11 hours ago   12 comments top 3
csense 9 hours ago 1 reply      
I've glanced at internationalization API's at various times over the years, and I've never understood them.

You have encodings, Unicode, ASCII, UTF-8, ISO 9660, Latin-1, code pages, UTF-16, byte order masks, gettext macros, po files, ... the terminology and model of the problem domain are extremely complex and difficult to understand.

Every time I've dealt with internationalization it's been in the context of it causing strange problems and issues.

For example, one time I downloaded some tarball (I forget what it was) that had a few bytes of binary garbage at the beginning of every file. After some research I found out that it's called the BOM and has something to do with international text, and I ended up having to WRITE A SCRIPT WHICH GOES THROUGH AND DELETES THE FIRST FEW BYTES OF EVERY FILE IN A TREE in order to use the tarball's contents.

Another time, I downloaded some Java source which contained the author's name in comments. The author was German and his name contains an "o" with two dots over it. That was the only non-ASCII character in the files. Eclipse and command-line javac WOULD NOT PROCESS THE FILE and I ended up removing his name from all comments; after that it compiled without a hitch. This was the official Oracle (then Sun) javac. A fricking SOURCE TO BYTECODE COMPILER SHOULD NOT DEPEND ON YOUR SYSTEM'S NATIONALITY SETTINGS -- OR ANY LOCAL SYSTEM SETTINGS! -- TO DO ITS JOB. But it does.

Whenever you debootstrap a new Debian / Ubuntu system, using apt-get causes complaints about using the C locale until you do some magic incantation called "generating locales." Exactly what has to be generated and why the generated files can't either be included with binaries and other generated files, or auto-generated during the installation of the distro, defies explanation.

Playing Japanese import games sometimes requires you to do strange things to your Windows installation.

And of course internationalization issues are often cited as one of the things holding back many Web frameworks and other libraries from porting from Python 2 to Python 3; and of course a lack of library support has been the major showstopper for Python 3 for years now.

My advice to startups: Don't worry about non-English markets until your VC funding and/or revenue is substantial enough to support at least one full-time developer to work on the issue. A working technical understanding of internationalization is going to be a huge sink of development resources and intellectual bandwidth, which you probably can't afford while bootstrapping.

gitarr 3 hours ago 0 replies      
This just got much clearer in Python3, all string literals are now Unicode by default, making it much easier to code internationalized programs in Python.

There is an "Explicit Unicode Literal" (u"string"), to make it easier for library authors to run their libs in one codebase on Python 2 and Python 3. (In Python 3 "string" is the same as u"string")

Codecs are in their own modules, like for example base64, where they belong.

The confusions seems to be with Python 2, Python 3 has fixed it, so move on.

loqi 9 hours ago 4 replies      
That's the most unfortunate Python 3 change I've seen. I use byte codecs like hex, zlib, and base64 quite a bit more than text codecs. In Python 2, a programmer with forward-compatible habits can write

  from __future__ import unicode_literals
from io import open

with the understanding that migration to Python 3 will remove that boilerplate. But taking a similar approach for byte codecs requires knowledge and reference of the right module name (instead of the encoding name) and the names of the corresponding encode and decode functions (instead of just encode and decode). So we've got

  .encode('base64') -> import base64; base64.b64encode()
.encode('zlib') -> import zlib; zlib.compress()
.encode('hex') -> ?

and unlike the text boilerplate, it's a permanent uglification. I don't know of an idiomatic replacement for the last one off the top of my head. Hopefully it's something nicer and more symmetrical than

  ''.join(map('{:02x}'.format, foo)).encode('ascii')

Textmate2 Goes Open Source github.com
742 points by evilduck  1 day ago   292 comments top 40
LoonyPandora 1 day ago 3 replies      
It doesn't appear to be a code-dump to GitHub, which would be indicative of fading interest on behalf of the original developer.

The ReadMe, build process, and licensing instructions all point towards this being a well planned Open Sourcing of a product.

I'm pleased with this, and hopefully it will spur development of TM2, allowing it to truly compete with the up-and-coming Sublime Text 2.

batista 1 day ago  replies      
If we are completely honest, Textmate was always a sub-par editor.

No Vim or Emacs style brilliantness, no BBEdit style tons of features and mature engine, no IntelliJ like, er, intelligence, no ST2 comprehensiveness, etc etc.

Plus, the Textmate 1.x text engine was probably a mess too -- I remember the very first versions being laggy (and that's coming from someone who doesn't find even Eclipse laggy). That he couldn't easily fix the one-character-undo is another pointer to that (and, for all I've seen, the 2.x engine is not that better).

It's main saving grace was the many extensions it had, and looking half-decent and native on OS X. Basically, it caught on because it appeared on the right time, and appealed to OS X users like web programmers etc, that wasn't old-time unix buffs, and wanted something native looking without forking for BBEdit (which itself was/is Carbon based and with a custom text display widget).

I don't think Textmate deserved all that success --it should have happened to a better editor.

thejerz 1 day ago 3 replies      
I don't want to pick on Allan Odgaard, but I think the way he's handled the TM2 project is pretty bad.

Allen is a great guy and I love TM. However, here are some facts. TM2 has taken SIX YEARS. It was "90% done" 2009.

This is a living, breathing case study in why quick customer-driven releases are better than "big upfront plans" and "giant system rewrites." Anyone who has developed a major application knows what I'm talking about. These "big rewrites" almost always take much longer than expected, as has clearly happened here.

I have learned to listen to what your customers want, and just build it. Develop it in a few weeks, release it, and then ask again what your customers want. Some people call it "customer-driven development" and I think that's a good way of phrasing it.

emehrkay 1 day ago  replies      
I've been using Textmate 2 for the past week or so and I still prefer 1 + missing drawer. For me, the only thing Textmate 1 is missing are split views (something 2 is missing as well).

I wonder if there is still enough interest in the app where people will contribute all of the community's desired changes -- I hope there is.

Am I one of the only Textmate users who feel that Sublime isn't the right "upgrade"? I much prefer Chocolat or Vico as they feel more like native OS X applications.

albertzeyer 1 day ago 0 replies      
I created a binary from the current source, if anyone is interested:


willurd 1 day ago 1 reply      
I don't understand the negativity being shown towards TextMate in this thread. This thread is about an extremely popular editor going open source, something people have been asking for for a long time and something we should all be THRILLED about, regardless of whether we use it.

Can we save the editor wars for another thread and maybe, just maybe, actually talk about the code?

umjames 1 day ago 1 reply      
powerslave12r 1 day ago 4 replies      
Awesome! Can someone comment on how probable it would be to port it to linux (and windows)?
podperson 1 day ago 4 replies      
I stopped using TM1 for one reason: undo (which is one. character. at. a. time.) TM had a lot of fans, but no-one liked its undo (some didn't dislike it that much).

TM2 alpha didn't fix it. Gave up.

drivebyacct2 1 day ago 0 replies      
Found a build from today.

Not sure why this is supposedly so much better than ST2. I've got a Go(lang) bundle installed and a theme that I prefer over my current ST2 theme, but I like the file browser, tabs and menu layout better in ST2.

chmars 1 day ago 1 reply      
I am not sure how to read the statement by Allan Odgaard. It does not include any hint on the future of Textmate: Has Textmate become open source abandonware or does Allan Odgaard intend to lead the future development of Textmate as an open source?

The latter would of course be great, the former rather sad from a user perspective since most former closed source apps do not survive for long after a switch to open source.

DTrejo 1 day ago 0 replies      
TextMate 2 tarball for your downloading convenience: https://dl.dropbox.com/u/10047/TextMate2.tbz Binary uses latest source. [I compiled and tested, works on Lion at very least]
bostonvaulter2 1 day ago 2 replies      
I'm confused as to how he could ever sell Textmate2 if he's linking against ragel, a GPL library. Well of course he could sell it but he'd have to release the source.
MikeKusold 1 day ago 1 reply      
This is going to be a mess initially. So far there has been a pull request changing the license, and issues such as "Improve syntax highlighting performance. It sucks much compared to Chocolat or Textmate 1 currently."
xentronium 1 day ago 1 reply      
Am I the only one surprised by total lack of history in the repository?
briandear 1 day ago 1 reply      
The best part about TextMate is that it led us to Sublime.
rigelstpierre 1 day ago 0 replies      
I think this was something a lot of people had seen coming. Really at this point it was only Hardcore Textmate users left. Most people in our office use either Sublime Text 2, BBEdit, Emacs or Vim. Sublime has made the change from Textmate really easy.

It's good to see that they are sharing their hard work with the community but it's sad to see a legendary text editor basically die!

chucknelson 1 day ago 0 replies      
Uhm...is it strange that comments are no where to be found in the source?
kposehn 1 day ago 0 replies      
Textmate2 needs one thing for me to use it prime-time again: split screen in OS X full screen mode (just like Sublime Text 2).

Now I can code that myself (oh joy :)

happywolf 1 day ago 0 replies      
I am cloning it right now before it is too late!
obilgic 1 day ago 1 reply      
where can i download the precompiled app?
electic 1 day ago 1 reply      
I think this is the right move. In my opinion, TextMate is not that great to ST2 or some other editors. Hopefully, it being open-source can get it closer to being on par. All I can say is thank god I never bought previous versions of TextMate and went with great alternatives.
drivingmenuts 1 day ago 0 replies      
Personally, if I could combine the TM modules into BBEdit (which uses Applescript for scripting), I'd be perfectly happy.
premist 1 day ago 0 replies      
Unexpected. Just awesome.
mjackson 1 day ago 0 replies      
So awesome. Thank you Allan.
debugging 1 day ago 0 replies      
I can't imagine this was because Textmate isn't selling well enough.
I could be wrong but I always looked at Textmate as an example of an app that must be making a killing.
nsomething 1 day ago 1 reply      
Maybe now I can add my own "replace" button in the Find Dialog of TextMate 2. The only button there for me is "replace all"

Does anyone else have that issue?

barbs 1 day ago 0 replies      
Anyone else keen to add vim keybindings?
lr 1 day ago 0 replies      
Where can I donate???
sswezey 1 day ago 1 reply      
What is the motivation for this? Is the developer losing steam / is support for it not strong enough? Either way, this is pretty cool.
rbanffy 1 day ago 0 replies      
Can it be ported to run on GNUStep?
tuananh 1 day ago 0 replies      
a very unexpected news for today! certainly i hope allan won't abandon it but keep leading this open source project.
owenjones 1 day ago  replies      
Is it wrong of me to be a little miffed that I paid $50, admittedly a long time ago, for Textmate?
shell0x 1 day ago 0 replies      
That's great :) I mostly use vim on the command line, but Textmate is great for dealing with Rails applications. I know, there is the nerdtree plugin for [Mac]vim, but the Textmate folder view is much better imho. Also, it's a nice tool for beginners, because you have zero configuration, but a really powerful editor.
agos 1 day ago 0 replies      
Just got a tweet from @macromates, they say they'll still charge for binaries
joewee 1 day ago 0 replies      
Time to go bug hunting...
owaislone 1 day ago 0 replies      
Linux (QT/Gtk) port.. Anyone? Anyone?
rjzzleep 1 day ago 0 replies      
another victim of the second system effect?
ved_a 1 day ago 0 replies      
Alas, there is no linux port.
SmileyKeith 1 day ago 2 replies      
Well TextMate was cool while it lasted. Good thing I switched to Sublime Text 2 a week ago.
Nobody Cares bennesvig.com
94 points by bennesvig  16 hours ago   66 comments top 27
jonnathanson 13 hours ago 2 replies      
"You should care because nobody else does"

Sure. It's a decent enough reason. But it seems born from an overly cynical thesis.

How about a better reason? Care because you want to. Make a conscious effort to give every stranger you encounter the benefit of the doubt. Some will prove you wrong, naturally. But until they do, they're presumed innocent.

It's actually pretty remarkable how much of a difference this approach can make in your daily life. People on HN like to talk about "expanding their luck surface area," and other terms of that nature. Well, being genuinely interested in other people is one of the better ways to do it.

Our lives are stressful. Our patience is thin. Our guard is up. All of that seems to come with the territory of modern life. But resolving to push that crap down, and treat other people respectfully, takes an enormous amount of strength. And it's a mark of good character.

Have something you stand for in life. Have a code. Make being a good, friendly person part of that code. This isn't corny. This is strong. This is badass. James Bond lives by a code. Batman lives by a code. See if you can rise to the challenge, and do the same.

michaelochurch 11 hours ago 0 replies      
There was a meme at Google with a tombstone and the caption "Cared Too Fucking Much". I won't get into the story behind that meme, other than the observation that caring too much can be very damaging.

I think people develop the blah attitude after exposure to the consequences of caring too much. At some point, they overcompensate by getting the attitude that nothing is worth caring about, as opposed to the more reasonable and strategic decision not to care most of the time.

MarkMc 1 hour ago 0 replies      
This article identifies a secret weapon that startups have when competing with a large, established business.

I have worked as a programmer for (a) several large banks and (b) my own startup business: Nothing comes close to the level of care you feel to your users when you run your own business.

When a user gets a NullPointerException, I take personal responsibility and want to fix it as soon as possible. When a user emails me a question, I want to answer it well and as soon as possible. If the software looks ugly or is not intuitive, I get a strong urge to improve it.

They say that a good programmer can be 10 times as productive as an average programmer. Well it is also true that a good programmer can be 10 times as productive as him/herself - it depends on the environment.

code177 15 hours ago 3 replies      
This seems like a very cynical article. On the behalf of everyone in Canada, the UK, and Australia, it's very common for people to reciprocate this sort of courtesy and genuinely mean it. In fact, I'd go as far to say that most people would be downright offended if you didn't reciprocate.

Similarly, most people go out of their way to thank transit drivers, and everyone holds doors. Perhaps an American could share some insight.

randallsquared 14 hours ago 1 reply      
Have a good what? Have a good time? Have a good weekend? Have a good life?

Day. It means "have a good day".

jawr 10 minutes ago 0 replies      
Slightly off topic, but the dollar shave club splash video is brilliant.
kephra 13 hours ago 0 replies      

There is one nice thing about traditional frisian greeting:

The first one greets, moin and the traditional answer is moin,moin. We often confuse people from southern Germany and the rest of the world, because we use that greeting around the clock, even if moin sounds a lot lot like morning.

But the translation of moin is just good. So we avoid all those how are you, fine thank you nonsense, and just greet each other with good and good,good.

sjtgraham 14 hours ago 5 replies      
The first thing I do when interacting with someone who is providing me a service is ask them how their day is going. Why? Because no one does this (I'm in London), more often than not it really makes a positive difference to this persons day, i.e. they are genuinely shocked that someone gives a shit (I do by the way) and it doesn't cost me a single thing to do.

I think it's something everyone should do.

btilly 11 hours ago 0 replies      
The key element is this. Do you view customer support as a cost center or a sales channel? If a cost center, then you as a company are not going to care. If as a sales channel, then you as a company are going to care, and are likely to going to need premium pricing somewhere to pay for that.

Note, one of the offered examples is MediaTemple. I know the people at MediaTemple pretty well, and when I made that comment to them they all agreed with me that MediaTemple views customer support as a sales channel. It also has premium pricing compared to the rest of the web hosting industry. So while I cannot vouch from first hand experience that my comment fits all companies that care, I know it does fit that one.

capsule_toy 12 hours ago 0 replies      
In the US at least, please stop analyzing these types of social interactions literally. The subtext is quite different. Basically, "Hi, how are you doing?" is the equivalent of "Hi, I'm being a pleasant person going through this standard cultural greeting." Expecting something more from this pattern shows a poor understanding of the culture.

Breaking out of this is easy. As other people have mentioned, simply departing from the script is effective. For example, you can follow-up "Hi, how are you doing?" with "How's your day been going?" or "It's pretty busy in here." There's also subtext here and it's basically "I'd like to engage in a conversation."

I'm not even sure how you ask a person how they're doing in a way that lets them know you mean it without sounding condescending.

powerslave12r 15 hours ago 0 replies      
I always genuinely care and end up looking like a smug asshole most of the time but there are a few times when someone does seem to feel really good that I care.

You should see how much meat they pack on my subs at the local sub place. ;)

plnewman 14 hours ago 1 reply      
I return the "how are you?" question with equivalent replies in shops all the time and if recipients were annoyed by it, I don't recall noticing. Being pleasant frequently helps me feel more pleasant. And anyway, I actually do hope they have a great day. I hope everyone has a great day.
nicolethenerd 14 hours ago 2 replies      
"Does your server really care how the first few bites are?"

On first pass, I read this and thought he spelled 'bytes' wrong. ^_^

sgdesign 12 hours ago 2 replies      
Somewhat related: am I the only one who's not in love with the new trend of startups sending fake "personal" messages to new users?

I know you want to show you care, but I haven't had 5 minutes to try out your app and you're already asking me if I need any help and when we can schedule a Skype call so you can show me all your cool features.

I usually just ignore these messages, but always feel slightly bad on the off chance that it actually wasn't an automated message and I just snubbed a real person.

dasil003 14 hours ago 1 reply      
A corollary is there's a limit to what you can effectively care about.

A big part of what makes us geeks is caring too much about the wrong things (according to normals anyway).

ionfish 15 hours ago 2 replies      
I don't care that nobody cares. I care that they pretend that they do. Fake friendliness is annoying, and good service is not formulaic.
hardik988 5 hours ago 0 replies      
Recently, many articles (including this one) on HN have provoked one reaction from me : "Um, yeah. What's so special about this? Maybe if you look harder, you're wrong"

I always ask back, "How are you doing?", and have always received a smile and a "Good, thank you" in response - never offense.

Maybe if you didn't lie to the cashier at Target and told them what you didn't find, you would notice that some people might go out of their way to help you.

Have a good one? If we start being so literal about everything in English, we're going down a very dangerous road.

It's funny that the author is writing on the topic of "caring", but himself comes across as cynical and overtly negative.

mathattack 8 hours ago 0 replies      
If your products are Target priced, it's uneconomical to care too much. If you work at McDonalds, caring too much will drive you nuts.

If your product is Tiffany priced, you'd better care a lot. If you work at the French Laundry, you'd better care a lot, and make sure your peers do too.

In either case, losing touch of the customer will force you to lose touch with the business.

sofal 11 hours ago 0 replies      
Serious question here, not even joking: do you care about the mobile visitors to your site? Do you care that there is an obnoxious floating "contact" widget popping out from the side covering the text I want to read? This sort of thing happens on so many other websites too that I think it ironically fits right into the topic. I think a lot of people need to visit their own websites on a smartphone.
benwerd 14 hours ago 0 replies      
Wait, you're not supposed to ask how the other person's doing? Really? :(
drumdance 8 hours ago 0 replies      
When I get the "how are you" question I often answer "Oh, about an 8. How about you?" Always gets a smile.

Wish I could say I invented that but I stole it.

jack-r-abbit 15 hours ago 1 reply      
When I am interacting with someone who is "serving" me in some way and they ask how I am doing... I almost always ask them back. It is quite interesting the different reactions I get. They pretty much have to be pleasant and I think it throws them off when people are pleasant by choice.
gatordan 12 hours ago 0 replies      
The angst in this post is really off putting. It reads like a series of observations by someone having a bad day after reading a book about existentialism (Mark Cuban is more likely to answer my emails than my friends?). He hints that caring can make you more successful as a business. But ultimately decides that we should care more simply to seperate ourselves from an uncaring world... because nobody cares. I don't find this particularly relevant.
jonny_eh 14 hours ago 0 replies      
When I ask someone how they're doing and they say "good" it makes me a feel a tiny bit better. I don't know if they're lying or not, but I feed off of their good feelings none-the-less.

I usually "pay it forward" by also trying to be generally positive when interacting with strangers.

runawaybottle 10 hours ago 0 replies      
There is truly nothing interesting about this observation, and pretty much a juvenile insight. Yes, give a shit about what you do, it'll be apparent in your work, yadadada.

As for the whole 'care about other people', that's just so ridiculous, I'm not even sure how this is on the frontpage.

bking 16 hours ago 0 replies      
Thanks for the succinct bit of observation! It is something that no one really picks up on, but when you are told about it all you can think is "huh, that really makes sense". For that I thank you. I am going to go really ask someone how their day is going. =)
sneak 12 hours ago 0 replies      
Telling people to care that don't already won't have the effect you are looking for. It's like telling the sky to be green.

Good plan otherwise, though.

Show HN: See Kickstarter successes and failures thekickbackmachine.com
164 points by misener  23 hours ago   62 comments top 23
MicahWedemeyer 21 hours ago 2 replies      
I wish I could upvote this 100 times. I run a website in the tabletop RPG space, and there is an average of 1 new kickstarter per day for someone trying to fund their new game, new module, new idea, new iphone dice roller, new virtual tabletop, etc.

They all point to the massive successes, but very few seem to understand that failure is a definite possibility.

Thanks for putting this together and I'll definitely be talking about it on my podcast: http://hastepodcast.com We're always covering new kickstarter projects, and this is an invaluable tool for people who get all starry-eyed at crowdfunding.

blhack 19 hours ago 3 replies      
"Success" should be more than just getting funded, it should be following through with the project.

I could "kickstart" a trip to the moon with no engineering knowledge, and a budget of $5000, and by this metric I would be "successful". Probably within an hour if I properly attached the ideas of unseating a major tech company, and using android to do it. Also video games.

That doesn't mean I went to the moon. It means I successfully got $5000 out of people.

ChrisNorstrom 10 hours ago 2 replies      


Hollywood Actor Jason Biggs (from American Pie) had his $5,000 goal kickstarter campaign FAIL. F.A.I.L. And he's in Hollywood. People know him. He knows people. Wow.

I guess this goes to show that success is never guarenteed. One cannot predict future success based on past success, or future failure based on past failure. It also makes me feel really good about my own kickstarter campaign failing.

Wow this made my day. Poor guy though, it must have been a huge "wtf" for him.

edit: Changed "oh my god" to "woah" to avoid getting any more downvotes. As an atheist I'm curious to know weather it came from offended christians or vengeful atheists.

Smudge 20 hours ago 1 reply      
As soon as I realized how difficult it was to find a comprehensive list of failed Kickstarter projects, I frantically began building a private database of them so that I have the data if I ever need it. Information on failed and cancelled projects is really quite valuable for anyone wanting to launch a successful one.

If I'd gotten around to it, I might have tried to build something like the KickBack Machine, but seeing as it has already been done, I'll leave the job to Dan Misener. (And he's done an excellent job.)

Edit: seems I was wrong about the launch date being hard to find.

brechin 20 hours ago 1 reply      
This site answers a lot of questions for a lot of people. It's a really great site that closely mirrors the KS design. Nice work!

Things I'd like to see added:

Length of campaign, also search by launch/end date

Search funding goal with upper/lower constraints, not just a "close to $#"

Search success by % of goal reached or $ pledged (again, with upper/lower bounds).

# of backers

# of updates posted

An API for access to the data, so others can do analytics on it

Having scraping experience myself, I'd be happy to contribute code to accomplish some of these if you're interested in outside contributors.

sequoia 20 hours ago 1 reply      
Looking thru http://www.thekickbackmachine.com/browse/all/ it appears the projects are overwhelmingly successful. In the first 163 project, just under 75% were successful. Am I interpreting this incorrectly, or are projects funded successfully an overwhelming majority of the time?

    jQuery('h2:contains("Successful")', 'div.caption').length; //successful
jQuery('h2:contains("Unsuccessful")', 'div.caption').length; //unsuccessful

sidwyn 22 hours ago 1 reply      
Right now the 'Successful' word is glaring at me for each project [0]. I'd like to see the project title instead of whether it was successful or not. Try swapping the word 'Successful' with the project title?


ColinDabritz 19 hours ago 1 reply      
What would be incredibly useful to me is a 'follow-through' indicator for the funded projects. When I read the link I thought 'success' was going to be "funded and delivered on promises".

It would clearly take a lot more work to track, but I could see a Politifact promise-o-meter style 'Delivery Status' with simple indicators like 'In Progress', 'Failed', 'Partial', 'Late', and 'Delivered' or similar.

Also for the funding side, having simple counts on each category and % funded for a given filter would be very informative.

Excellent and clear presentation overall though, very useful as it stands!

danielna 23 hours ago 1 reply      
I love how even simple adjustments can make a twitter-bootstrap site appear more personalized. Maybe it's the black bar, but I tend to groan a little bit whenever I see it on new sites I come across. This design, on the other hand, I really like. Nice work!
acgourley 20 hours ago 3 replies      
That is a shockingly high success rate. It seems like 75% when I would have guessed 20%
danso 18 hours ago 1 reply      
Very cool...what I would like to see is duration of fundraising, if you were able to collect this?

What I mean is to have that in the current view...seems more useful than how many days ago it ended?

ecmendenhall 18 hours ago 0 replies      
This is a great tool! Along with Kicktraq (http://kicktraq.com/) and Kicksaver (http://www.kicksaver.net/ - I made this a while ago), there are now third party projects like this for every stage of a potential campaign, from the planning stages to last-minute rescues.

We're all lucky that Kickstarter's pages are so pleasant to scrape.

iblaine 17 hours ago 0 replies      
Seems like unsuccessful projects get burried. Cancelled ones are quietly swept away. Case in point is glospex. One day the project was there, the next day it was not. No word...maybe kickstarter is too tiny to have a customer service department...maybe they want the unsuccessful projects to remain unseen.
brador 18 hours ago 1 reply      
Any chance of kickstarter releasing a dump of this so we can all have a play? Even at just a month of data it'll stop us all scraping the hell out of the site.
jkbr 21 hours ago 0 replies      
For macro-level research, it would be useful if every category and filtered view featured accumulated stats (e.g., # of projects/successes/failures).
zalew 23 hours ago 1 reply      
is there a way to check which of the 'successful' were actually built, not only backed?
tsieling 23 hours ago 0 replies      
I like this. Simple and focussed, and invaluable to anyone willing to learn from what worked and didn't for others.
nordicnomad82 16 hours ago 0 replies      
I had a friend who started something similar one night when he was drinking. But this is much cleaner looking. ;)

I find digging into stats and broad psychological trends relating to human behavior kind of exciting on one level and depressing on another. From one perspective you can really increase your likelihood of getting people to do what you want with small tricks and tweaks. But then you realize that we're all just a bunch of manipulate-able sheep. :/

pfisch 12 hours ago 0 replies      
This is the best thing I have ever seen on hacker news.
z2600 22 hours ago 1 reply      
Great resource. Would it be possible to have search functionality?
phreanix 22 hours ago 1 reply      
Hmm, is an "events" category possible?
kleiba 10 hours ago 0 replies      
My advice: drop the "the".
sritch 19 hours ago 1 reply      
You have a great radio voice.
Beware the Nocebo Effect nytimes.com
71 points by sew  15 hours ago   22 comments top 6
mistercow 13 hours ago 3 replies      
One really important point about the placebo effect that a lot of people miss is that a lot of it is not a real physiological change caused by the placebo, but is a result of bias in both the subject and the experimenter. Over any period of time, a person will have a great many variations in mood, pain, etc. (which a subject is able to self-examine), and a great many variations of biological function (which a researcher is able to measure). When those variations correspond to effects that a subject or researcher has been primed to expect, the subject or researcher is more likely to notice that effect. This is simple confirmation bias. If you think trained scientists couldn't possibly stumble on that kind of pitfall, you should read about N-rays[1].

This is just as likely to be true for the "nocebo" effect as for the placebo effect. Dizziness, for example, is a very common symptom for people to experience for myriad benign reasons. Orthostatic hypotension (head rush) is a common cause of dizziness, and it is affected by a lot of minor factors like hydration, vasodilation, how long you've been sedentary, how fast you stand up, etc. This may happen to you three times in a week, and you'd never pay it any mind. But if a doctor told you that a medicine you were taking might cause dizziness, you would notice it.

So to this extent, a placebo (or nocebo) effect can be accounted for with absolutely no "mind over matter" style physiological change whatsoever. It is plausible that some specific placebo effects like reduction/increase of pain response, anxiety, and mood could actually be real psychological effects involving suggestion. But if you hear of a placebo doing something and you think "how could a belief in a placebo possibly have that kind of effect", it's very likely that you are at least partly seeing mere measurement error.

[1] http://en.wikipedia.org/wiki/N-rays

typpo 14 hours ago 0 replies      
The nocebo effect is quite powerful. I'm 22 years old and was in chronic pain for a year. I had trouble doing simple things like opening doors. Understanding nocebos helped me cure my carpal/cubital tunnel and thoracic outlet problems.

After wasting a lot of money on ergonomic setups and doctors I read Aaron Iba's post on how he cured his RSI [1]. One of my takeaways from subsequent reading and research was that the nocebo effect played a huge role in how I associated computer usage and programming with pain. When you expect an autonomic symptom, you are much more likely to experience it.

Since treating myself with this in mind, along with other techniques such as those outlined by Aaron, it's been a couple months since I've been in pain from using a computer.


tzs 14 hours ago 1 reply      
Part of this I suspect is that people might already have the symptoms of the side effect but not know it. Almost all of us have random coughs and sniffles and aches and pains, but don't notice them.

Think, for instance, of those times when you've heard a friend or co-worker cough several times over a few minutes and you ask if they are alright, and they have no idea what you are talking about because they were not aware that they had coughed.

When you tell someone the pill they just took might have a side effect of making them cough, they are going to notice those random coughs that they normally ignore, and attribute them to the pill.

dag11 14 hours ago 4 replies      
The example of the suicide attempt with fake medication causing the subject's blood pressure to drop to dangerously low levels got me thinking.

If the belief that (s)he would die was almost enough to actually kill him/her, would it be possible for someone to end their own life with just their thoughts alone?

Jaecen 14 hours ago 0 replies      
The last sentence: "Words are the most powerful tool a doctor possesses, but words, like a two-edged sword, can maim as well as heal."

I would really like to get one of those swords that heal on one side and maim on the other. Think of the possibilities!

vishaldpatel 11 hours ago 0 replies      
Chalk one up for thinking positively.
Show HN: Mapsaurus, the visual map of the Android Store mapsaurus.com
26 points by c0da  9 hours ago   8 comments top 5
DeepDuh 1 hour ago 0 replies      
I really like the idea and I hope you will release it for the iOS appstore as well.

Just a small detail: While sharing it on facebook I noticed that the sharing popup was cut off by the navigation frame and it was a bit hard to complete the message.

comatose_kid 8 hours ago 1 reply      
Neat UI, like the animation.

The idea is well executed, very slick, but I'm not sure how this site would help me discover fun new things as the friction is high (eg, have to remember your site first) - I'd almost want some sort of slide-like toolbar that scrolled apps with their descriptions at random at the bottom of my computer screen (yeah, that's distracting, but if I were into trying lots of different apps and had more time, that might be fine)

One more thing - you have the main headline "Discover great apps for your Android Phone" and a little below in green you say "Also available on Android" which seems unnecessary?

edit: I think my mistake might be that I was using it on my mac instead of using it from an android device (which I don't have) - so that use case makes more sense....

alexvay 1 hour ago 0 replies      
Great stuff!

Your Android app says "Double click an app to start."
I think it would be more fitting to read "Double tap" instead.

ninetax 8 hours ago 1 reply      
Wow, this is awesome! How long did this take? What do you use for the map UI?
zanny 7 hours ago 1 reply      
This http://mapsaurus.com/static/javascript-warning.png is amazing. Best "please turn on JS" ever. Dinosaurs have a tendency to do that.
Javascript Fundamentals: Development for Absolute Beginners msdn.com
103 points by dwynings  20 hours ago   9 comments top 7
zheng 16 hours ago 0 replies      
I only looked at the first couple episodes, but be warned that this is javascript for the absolute beginning developer. They are really slow-paced if you have ever done any coding before.

Not to knock the videos, if you are in the target audience, they are really good, and fill in a lot of gaps that other tutorials may not. Things like "Wait, why am I saving this file like that?" or "What is a DOM?"

dudurocha 15 hours ago 0 replies      
I feel a bit frightened and overwhelmed by this long running time. I now couple hours aren't a long time, but seeing the actual number of minutes gives me second thoughts.

I do prefer something like codeacademy or Udacity, that makes a step-by-step, and even that I spend more time there, it will not look the same.

davidbrent 17 hours ago 1 reply      
Not to take away from this, but I'm currently learning JavaScript via Code Year @ Codeacademy. It is the furthest I have ever been in learning a language. Usually I buy a book and lose interest. I'm really loving the constant exercises.

So if the headline caught your interest and a video series is not what you're looking for, you should really check it out. I'm on the 10th section and on a 25 day streak, and I think about it everyday now, not wanting to lose my streak. I don't know if it is for everyone, but they really hit the mark with me.

lixon 10 hours ago 0 replies      
would be nice if our tutorials mixed with familiar story/fables. just like i tried to mix up jquery and 'Hare and tortoise'


Whats your opinion?

kurrent 15 hours ago 1 reply      
funny to see a js tutorial using notepad and IE for the dev.

you'd be hard pressed to find ANYONE developing like this unless it was a video from microsoft.

rip_kirby 18 hours ago 0 replies      
Thanks for this. I'm still a newbie in Javascript.
brady747 13 hours ago 0 replies      
Thanks for posting this.
So long, silicon: Researchers create solar panels from cheap copper oxide extremetech.com
102 points by maxko87  18 hours ago   37 comments top 6
forgotAgain 16 hours ago 1 reply      
Source article (not so breathless and a more reasonable title):
debacle 18 hours ago 3 replies      
Disclaimer: I am not a physicist, and most of this is from memory relating to DIY experiments ~2 years ago.

* Copper oxide panels are not new.

* They are much less efficient than silicon panels.

* Cu2O is much more expensive than silicon.

alecdibble 15 hours ago 2 replies      
The takeaway from this article is that they came up for a technique to use cheaper materials instead of silicon. This is significant because silicon is very expensive and every increasing demand is also increasing the prices of it at a very fast rate. I took a class on CMOS Digital Design where the professor went over manufacturing overhead for a processor. The cost of the silicon alone was astounding, not even taking into account all the other overhead that comes with the process.

Unfortunately, like a lot of other research in this field, its real world applicability may be relatively limited. One of the reasons for this is that so much time, money, and infrastructure has been put into modern silicon semiconductor manufacturing that no one really wants to touch anything else. It could mean starting from scratch and requiring massive amounts of R&D and process planning to break even.

The real breakthroughs come when someone keeps the existing silicon process in mind and makes discoveries that use the existing infrastructure. That's the kind of research that really "changes" things.

If someone could come up with a manufacturing system that was cheap and easy to swap out or modify the process, they could literally change technology as we know it. If you could have the capability to scale processes easily, a lot of the really cool and cutting-edge research could get implemented on a large scale.

EDIT: I graduated as an electrical engineer and have taken several clean room processing classes, in case you were wondering.

msds 18 hours ago 0 replies      
This article is really very wrong about conventional solar cell manufacture - especially the "Almost every solar panel..." paragraph. Here's a decent resource on standard manufacturing technology: http://pveducation.org/pvcdrom
geogra4 18 hours ago 3 replies      
How about we mine mars to make solar panels from Iron Oxide? Or bring machines to mars that will build solar panels?

Then we could have an entire electrical power source for human habitation or machine experiments.

Shivetya 18 hours ago 1 reply      
I found the picture humorous, reminded me of so many post holocaust games, unfortunately it also reminded me of some cities I passed through that border the Ohio river.
App.net to support activitystrea.ms, pubsubhubbub, Webfinger, feeds daltoncaldwell.com
73 points by abraham  15 hours ago   29 comments top 10
kennywinker 7 hours ago 1 reply      
I find myself more and more hoping app.net DOESN'T get funded. I want the messaging-platform successor to twitter to be an open, distributed platform, not a single-provider closed platform.

I like what they're planning to build, I just want that to be a layer built on the open internet...

kmf 15 hours ago 3 replies      
I understand there's a weirdly huge amount of opposition (like that guy who freaked out on Dalton over comment a couple days ago) about the project, so I'd like to say a bit.

I've been on the site for a good week now (@kristian) and there's some incredible people there. Great conversation, great progress on determining just what this project is. That's not a bad thing " the nature of a project like this is that it is evolving constantly.

In that vein, I encourage people to check out an issue filed at the App.net API page on Github.


The basic idea is a reworking of the API into something more extensible. If I'm understanding correctly (I'm pretty new at this stuff), the API at this point resembles the use case of something like Twitter: users have many posts, posts have text, a date, etc (Rails associations, anyone?). This issue proposes that the access control on those posts be variable, to fit an infinite amount of use cases. A couple examples are Twitter-style DMs (posts visible between two users), mailing lists (posts visible between specific, but multiple users), etc.

I think the thing that is causing App.net problems is that people think they are funding a Twitter clone. The fact is that the basic system of "users" with "things" goes a lot further than Twitter. It's email, it's chat, it's notifications, it's whatever you want it to be. And that's what's fascinating " we're funding an extensible piece of the next phase of the Internet " something decentralized and more or less living and breathing.

So here comes the part where I tell you to fund it. But I'm not going to. It's your call. I'm a huge fan of the service already and I can tell you that within the last two days, we've had a mobile web app, native iOS app, and streaming web app pop up out of nowhere. It's a crazy active community, and now's the time to get in. If you want to fund it, you probably know by now where to do that. There's my 2 cents (though arguably that was like 80 cents).

brajkovic 14 hours ago 2 replies      
I hate to be that guy, but who gives a crap? I don't know of anyone who actually uses any of the first 3 protocols listed here. RSS is somewhat useful, but when would I not want to use a dedicated client or some client library?

I'm not a backer but I'd rather they spend time developing their MVP and building infrastructure so they don't have the same issues that were so pervasive in Twitter's early years (Fail Whale every hour, anyone?).

bslatkin 14 hours ago 0 replies      
As a contributor to PubSubHubbub, OStatus, and friends, I am extremely happy to see this. The protocols themselves aren't the important bits (though I like them); what matters is the commitment to meaningful syndication in and out of the platform.
Steko 13 hours ago 1 reply      
Looks like the deadline is going to be tight.

Here's hoping that sometime Sunday night circa 11:55pm Larry Paige hits pause on the Gangnam Style/Kanye remix he's been marathoning, Chromes his way to app.net and kicks in the last 75 grand to fully fund it. Like a boss.

mcantelon 13 hours ago 1 reply      
At a high level, how's this different from what Diaspora was trying to do (other than having a clearer funding model)?
Todd 15 hours ago 0 replies      
This is definitely a move in the right direction. These are some of the same protocols that the Diaspora* folks have settled on. It will be interesting to see the degree of compatibility they can achieve in federating.
markkat 13 hours ago 0 replies      
Honestly I just want to see this funded because I want to see how it plays out.
AznHisoka 15 hours ago 1 reply      
I have never heard of any of these. Isn't email good enough? We're just transmitting text from 1 person's monitor to another, not curing cancer here (not being cynical, but with ALL the press/commotion over this, you'd think he was doing something very ambitious)
riffic 15 hours ago 0 replies      
       cached 11 August 2012 13:02:01 GMT