skysight-inc/HackerNews huggingface dataset:
I think of it like that, but then relativize it to the motion of the reference frame.

To see how, take the usual visualization of the gravity well and mark on it where you are. Then take a tangent plane at that point. The gravity well is below that plane, and hence falls away from you, along the line towards and away from the gravity source, but is above the plane in the fore/aft direction. This explains why tidal forces act inwards in a plane perpendicular to a line joining you with the gravity source, but outwards along that line.

It's a useful visualization.
I think it's cos they don't want to get hurt landing on their back.

Now how they do it is a different question all together.

Ps, awesome video http://www.youtube.com/watch?feature=player_embedded&v=R... , article is pretty useless.
Young Rewired State to Silicon Valley
A large portion of my math courses in school were Statistics courses (as they were requirements). Spending 4 weeks learning how to use R every single class got old quick. The actual meat of the topics could have been more interesting with a proper approach.

My favorite topics that I have messed with so far are probably Number Theory and Logic. Pointers to resources or book recommendations welcome.
The GVariant/dbus typesystem has both "string" which is a UTF8 text string and "bytestring" which is an array of bytes. The later is what you would use for filenames and would avoid problems with weird characters in filenames, etc.
Kazushige Goto
I suspect not. This technique works by assigning values to variables at random, lots of times, and then keeping the ones that happen to make the first equation true. You then somehow breed them into another large set, and winnow with the second equation.

However, the number of elements in the fields involved there are so large that you need a huge number of equations to have even the smallest chance of any of them happening to be true "by chance", so I can't see how it could work as stated, but it's certainly an interesting question.
Just because I "can" do something doesn't mean I "want" to do something or that it's the best way to use my time. That's like saying that we don't need expressive function names in code because we can just refer to the documentation.
Child-friendly computer books (made-up, nsfw language, somethingawful)
They had a financial interest in the deaths of their employees. Bob in Housewares in Dubuque dies in a car accident, and his employer profits. That just creates all kinds of messed up incentives.

It's just plain f'ed up.

And they weren't just insuring key persons, whose untimely demise could actually result in costs to the company that would be worth hedging against.
what if they open sourced all of their components on github..
When I said black magic[1] the last thing I was trying to convey was that using coreutils/bsdmainutils was complicated. Typed data is easy to work with, but creating a sophisticated unix pipes 2.0 is not. No matter how complicated you think coreutils/bsdmainutils mastery is, you have to admit its a lot easier than building unix pipes 2.0.

If you throw in numutils and moreutils you can go nuts with columns of data. What tasks would you like to accomplish on the command line with columns of typed data and pipes 2.0?

[1] On a side note I was surprised that we had different conceptions of what black magic. I was going for evil, nefarious, and/or unorthodox. Have I been using the term wrong? That's an honest question, it would not surprise me if I have been oblivious.
"Let's replace `cd` with a macro that knows some things about my workflow!". Runs script KABOOM. Oh crap, guess I need to make that macro only run for interactive shells. How do I do that? 2 hours later [expletives deleted].

"I want ssh-agent to start if it isn't running, and only for my login shell. How do I do that?" 2 hours later [expletives deleted]

Not so sure about .bashrc_script, but the above two are more than justification enough.
Don't other shells have similar issues? ZSH sources .zshenv, .zprofile, .zshrc and .zlogin (and corresponding /etc files) depending on the exact situation.

Only difference is that it does not source .profile unless it's in compatibility mode (invoked as `sh`)
> UTF-8 is a variable length Unicode encoding like UTF-16, but defaults to a small one-byte code unit and has a famously elegant algorithm

... that is 100% compatible with ASCII, and, therefore, is the only Unicode encoding scheme you can safely use in filenames and to send text through applications that don't know about Unicode at all.

The primary reason is that in UTF-32 and UTF-16, the byte 0x00 may appear in the encoding of characters other than '\0'. This is not something pre-Unicode applications can deal with, because in ASCII the byte 0x00 always means '\0', which was always used for string termination.

Therefore, any application that processes ASCII and leaves non-ASCII alone (common in the real world) is instantly compatible with UTF-8.

Here's a fascinating discussion about character encodings in filenames, including comments from Linus Torvalds and Theodore Ts'o:

http://yarchive.net/comp/linux/utf8.html

The upshot is, Linux, like most if not all Unix-like OSes, speaks bytestreams, and doesn't try to interpret characters. The only rules you need, therefore, are that filenames can't contain the byte 0x2f ('/' in ASCII) except as a path separator and can't contain the byte 0x00 at all. Therefore, you need a character encoding that will not use the bytes 0x2f or 0x00 to represent characters other than '/' and '\0', respectively. The only Unicode encoding that meets that constraint is UTF-8.

Also: The elegant algorithm means that it's statistically highly, highly improbable that any text that can be interpreted as valid UTF-8 isn't UTF-8. Given that it's entirely valid to treat ASCII as UTF-8, defaulting to UTF-8 is, as you say, a good thing to do.
And the scoffers say the singularity is not near...
I almost always ask how they are doing too, and never have I noticed (or don't remember) someone being annoyed by me asking.
They seem to be identifying and banning active bots. I don't think they worry about fake accounts that just sit around and follow others without generating a lot of tweets.
man grep:

-Z, --null
Output a zero byte (the ASCII NUL character) instead of the character that normally
follows a file name. For example, grep -lZ outputs a zero byte after each file name
instead of the usual newline. This option makes the output unambiguous, even in the
presence of file names containing unusual characters like newlines. This option can be
used with commands like find -print0, perl -0, sort -z, and xargs -0 to process
arbitrary file names, even those that contain newline characters.

-z, --null-data
Treat the input as a set of lines, each terminated by a zero byte (the ASCII NUL
character) instead of a newline. Like the -Z or --null option, this option can be used
with commands like sort -z to process arbitrary file names.

man xargs:

--null
-0 Input items are terminated by a null character instead of by whitespace, and the quotes
and backslash are not special (every character is taken literally). Disables the end of
file string, which is treated like any other argument. Useful when input items might
contain white space, quote marks, or backslashes. The GNU find -print0 option produces
input suitable for this mode.

man find:

-print0
True; print the full file name on the standard output, followed by a null character
(instead of the newline character that -print uses). This allows file names that con‐
tain newlines or other types of white space to be correctly interpreted by programs that
process the find output. This option corresponds to the -0 option of xargs.
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.
Regarding order. The dtools approach uses a stream (i.e. potentially infinite) of variants. Each variant is a self contained typed data chunk which is by itself not "streamable" (i.e. you have to read all of it). The data chunk is strongly typed and the type is self-described.

The supported primitive types are: bool, byte, int16, uint16, int32, uint32, int64, uint64, double, utf8 string (+ some dbus specific things).

These can be recursively combined with:
arrays (of same type), tuples, dicts (primitive type -> any type map), maybe type, and variant type

In my dps example I generate a stream of dictionaries mapping from string to variant (i.e. any type). The type of each item in the map differs. For instance cmdvec is an array of strings, whereas euid is an uint32.
> This problem is simply a flaw in sh (and its descendants)

Indeed, although it's not just sh; if you want to, say, make a table of filenames and some attributes of each file, you're in trouble if the filenames contain spaces (awk, cut, sort don't work as easily) and screwed if they contain newlines.

What does Plan 9 use instead of find?

> As for your second questions, the answer might be structural regular expressions:

I've actually been meaning to write a clone of the command line portion of sam, tack on some slightly more powerful features, and try living with it... it would be able to solve much of that use case, but I think it would be cleaner if all the normal tools just knew that the output of grep -C is, in fact, a list of multiline strings.
Show HN: Twitter Bootstrap modal responsive (mobile) fix with jQuery
weird, I see 5 different domains (in incognito mode in chrome and private browsing in Firefox). The first three are all from one site, but after that there's fujitsu, amazon, lawyerist, and some kind of "snapsnapcommunity". There are more than a few decent looking reviews on the second page, too, which I'm not used to seeing in review searches...

There are quite a few from that one site, though.
Yes, in other words, the parent is right that zero termination is currently not automatic.
He did not say automatic, he said "knew about" nulls. When you talk about automagically detecting nulls I have this image of an ascii-art Clippy with a cowsay bubble that says "I see you are using null terminated data, I have enabled --null for you."
Most commercial/industrial/military grade components will break permanently after a short while (weeks) due to charge deposit from impacting ions, or from ion induced short circuit. They will also malfunction regularly because of soft errors caused by the radiation (this could at least be solved with different types of redundancy).
And you didn't even touch on fixed and variable-width asian character sets, like Shift-JIS (variable 1 or 2 bytes) or Big5 + extensions (ETEN or CP950, fixed 2 bytes)
Another algebraist here. I eat corn in rows. Quite amazing!
Edge of reason
The hex stuff is binascii.hexlify().

But I agree with you and with Armin; removing string -> string and unicode -> unicode encodings and decodings were a mistake. I said as much when the discussions about Python 3 and codecs were going on ~5 years ago.
Weird. Interesting. Thanks.
This is easily resolved. Did American education system or the education system of any other country which you consider developed now, underwent similar stages?

There are grave dangers in justifying our current systems and saying that in time, we will get there. For one, the products of this system may no longer wish for a better system to emerge.
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.
I was thinking about the old continuous tractor-feed paper, some kinds are really thin, almost slightly translucent, for that extra subtle low-contrast retro design! ;-)
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 :)
StreamServer: A stream server in your browser
Yeah, you can annotate fields to make them work, I'd forgotten that.

If you're writing good OO code then you write objects whose state gets set on creation. In wicket, if I want to redirect the user to another page (say after a form submission) passing in a parameter I can do setResponsePage(new MyOtherPageClass(parameter)). In tapestry that looks like randomAnnotatedField.magicMethod(parameter); return MyOtherPage.class . IIRC.

There's no type safety; if you misspell a tapestry magic method name it will just silently not be called. You can't step through your components in a debugger because your fields won't show up properly. It's particularly bad if you're just learning, because it seems to actively discourage good OO design, and because tapestry classes have subtly and not-so-subtly different semantics from real Java.
Ask HN: One World One Simcard
Hi everyone. I would like to get feedback on an idea I had to gauge its viability:

The Problem:
As a frequent traveler (on a budget) to different countries I always find myself having to buy new sim cards in each country I visit to get network and data access while I'm in that country.

This involves keeping tracking of all my different sim cards for each country and taking them with me everywhere I go. Using the roaming features is just not viable due to the insane charges that are incurred. There are currently providers that offer a "one-sim" service but these services still dictate the prices that you have to use and have somewhat limited offerings / selections when it comes to packages.

The Solution:
Why not create a service (website / app)that allows you to use one generic sim card all the time, but manage the networks you belong to via a website / app?
For example, when currently visiting a new country, you would have to go into a shop / contact call center and get a new sim card to use any of a network provider's services.

Instead, now you would just log into your "One-Sim" account, select the network and package you want to join from a list of networks available in that country. The service would then register you on that network and then add that network to your global list of available networks. You then just switch to that network via the website / app and voila you are on the new network using one of their packages / contracts.
When you return to another country, you simply go back to the app, select the network for that country and then the app connects you to that network.

Advantages / Disadvantages to follow...
As Marissa Mayer Annoys Investors By Keeping $4.2B In Dividends
Advantages:
- Let's you choose your own network provider(s) in a country
- Let's you take advantage of a network's specials (for example a cheap 20GB data bundle)
- Let's you switch network providers by visiting a website/app instead of changing sim cards.
- The networks still get their full rates

Disadvantages / Problems:
I'm sure there are some so feel free to add. The main obstacle that I can think of is that you might have to contact and create relationships with all the network providers around the globe, which may be a very political process. I don't have much knowledge in this area but maybe someone in the mobile industry could fill in the possible setbacks and problems related to the mobile industry.
Russian people of Soviet era had the same complex.

We were taught that we have best science, culture, sport, military and most progressive state. Also we were strong but good, not as "prokliatye imperialisty" ("cursed imperialists")

It evaporated in '90s, but not completely - I often hear "we were ...."

Jerome K. Jerome wrote about the same complex in British people. If I recall correctly that must be in "Diary of a Pilgrimage"
> Westerners can't get over their superiority complex.

We don't need your racism here.
Thanks for mentioning it. I wasn't quite sure, but we're probably not penalized, so I haven't done a reconsideration request. Apparently it's now indexing slowly again.
Pretty damn well! I wonder what the decompression and parsing time is...
> I managed to crawl [..] more than 300k movies from IMDB in just a few hours

I suppose IMDB already has a pretty good architecture to handle that load, but please, if you're crawling from a single site, be careful. I host a similar database myself, and the CPU/load graphs of my server can tell me exactly when someone has a crawler active again. That's not fun if your goal is to keep a site responsive while keeping the hosting at low cost.
It's less convenient, it's a different API for every type of transformation, and the change has made code demonstrably worse.

Further, the use of encode/decode is explicit. The only thing that was implicit was the automatic transformation of string -> unicode when people mistakenly used unicode codecs on string objects, or the reverse for string codecs on unicode objects. The proper answer to both of these is to just not do automatic type conversion... which is what was done in Python 3.

So actually, had we left all of the codec machinery intact, those codec errors described by Armin wouldn't ever occur again! Instead, you'd get a TypeError caused by passing the wrong type of object to the underlying encoder/decoder.
I don't expect every user to create unix pipes 2.0, so the difficulty of that is not really what needs to be compared. It will only have to be done once.

And once this is done any user can avoid having to painstakingly construct pipelines that try to cut out the right columns to treat as numbers, or avoid all the problems parsing strings that may contain spaces or other control characters. You can do an operation like:

filter out all processes with %cpu > 20 with uid > 1000 and sort by second cmdline arg as:

dps | dfilter pcpu ">" 20 uid ">" 1000 | dsort "cmdvect[1]"

Obviously a made up example, but something like this is easy to read and write, whereas something working on tabular ascii data would be quite long and complicated.

As per black magic, I have about the same interpretation as you. I didn't really misunderstand it to be about how complicated it was. However, "black magic" certainly has a feel of "you should not do this", and arguing that you can then use that in order to do something which could instead be simple and obvious in a typed system seems kind of weird.
So I admit it's a 10 minute hack done on my way home on the train, but the issue is real even if you understand the man page. Here's roughly the way these work normally.

Starting with "login" bash invocation- which means:

* On linux, usually only when you first ssh into a machine or boot up into a terminal- and then _never again_ as you open various terminals or su etc. If you boot into gdm or something like most desktops/laptops do nowdays, you may hardly ever see your local machine invoke bash as a login shell.

* On a mac, "login" mode is invoked on pretty much every terminal you open.

* The login mode of a shell is _orthogonal_ to the shell being interactive (in theory. In practice, and in the gist, a login-shell is almost always a small subset of interactive shell invocations [or larger subset on mac]).

The rules for the login shell invocation are to load:

('/etc/profile' THEN (~/.bash_profile OR ~/.bash_login OR ~/.profile - one and only one, the first one it finds)) (and nothing else)

UNLESS bash is invoked as a login shell with the 'sh' name, in which case it does:

('/etc/profile' THEN ~/.profile)

IF the shell is NOT a login shell but IS interactive, don't load any of the profile stuff but load ~/.bashrc (ignored if bash is invoked as 'sh')

Finally, a shell in posix mode and a shell invoked by a script- i.e., non-interactive, will first load any file specified in the BASH_ENV environment variable and nothing else.

On a mac, the default for new home directories is to have a ~/.profile sitting there. Should you unwittingly drop a ~/.bash_profile or ~/.bash_login in there one day, you would find (and many have found) that the ~/.profile suddenly stops working (more likely you suddenly notice your PATH isn't set anymore). Except sometimes, when bash is being invoked as sh, in which case ~/.profile is alive again.

And, note that .bashrc isn't loaded at all for a login invocation, even if it is interactive (true the vast majority of the time). On a mac, .bashrc seems useless, then on linux, .bash_profile seems useless. So many on linux end up filling up their .bashrc with the good stuff and then realize that when they log in remotely nothing gets loaded so they troubleshoot, read the manpage, and end up sourcing .bash_profile from their .bashrc. On mac, people tend to do the reverse. Oh, and when you are trying to remember what is what and why you should care-- the manpage is almost 5,000 lines long. AFAIK, it's the only manpage the size of a book.

Anyway, I was putting my dotfiles into github and spend a lot of time on OSX and Linux so was merging the two sets. I also have seen (and written) so many rc scripts that liberally mix stuff that is relevant for interactive-mode with stuff that should really only be done at login, etc. That said, it _is_ a 10 minute hack so forks + fixes appreciated.
"automatically knew", in a post which talks about format negotiation. It was fairly obvious to me he meant that it would use the format negotiation to automatically enable the --null switch.
I believe possibilistic was talking about stuff like BIOS firmwares rather than graphics drivers.
Strange. A common complaint among Swedes is that we don't talk to strangers... like they (supposedly) do in Greece (or Spain or France).
It actually has a reasonable amount of flash. Two gigabytes, empty of experimental data, should be able to hold multiple versions of the OS fine. They can't be particularly squeezed for space when they tossed in four times that much per camera.

I'll be baffled if they're doing this for any other reason than pushing the most recent and polished code.
$ man bash | wc
5375 41026 312785

"From the Earth to the Moon" by Jules Verne has 39,985 words
"Neat and orderly" makes you think Perl?

I absolutely love Perl, but "neat and orderly" is not the first thing that comes to mind. I think you'd need to have some sort of literary preference indicator (something like how you brush your teeth indicates whether you like Hemingway or Steinbeck, and Perl or Java), rather than a mathematical preference indicator, to determine one's propensity for Perl.
As you admit your system is not simple to implement but you are correct the onus is on you to create pipes 2.0. But it also means that every other developer is going to have to implement pipes 2.0 compliant output for their program. Unless pipes 2.0 is going to auto-identify everything in addition to nulls?
BASIC programmer?
Portin TextMate 2 to Linux
Behind the Great Firewall of China
> a certain level of success

From the outside. On the inside, I think most Britons identify more as English, Scottish, or Welsh than British. Scotland and Wales live under the semi-official delusion that they are actually "countries" in some meaningful way, not just autonomous subdivisions of the UK, and even compete separately in international sporting events outside of the Olympics. Even forming a unified soccer team for the Olympics that the UK itself is hosting was a source of significant controversy.
null-terminated strings are hard to read in a shell window. and isatty(3) does not work for pagers.

content nagotiation only works with bi-directional data transfer (i.e. not with pipes).
I tend to agree, on my own personal scale of liberal/conservative (which has little to do with type systems), I'd rank Haskell as fantastically liberal. You could probably enumerate the companies that use it in production on one hand.