Porting the Unity Editor to Linux: Stuff I Wish We'd Done Then - <AUTHOR> http://natoshabard.com/post/122670082502/porting-the-unity-editor-to-linux-stuff-i-wish <comment><USER4> Wow, I wouldn't have thought that folks would be sloppy about case, but I guess it makes sense if all one's used to is a case-insensitive system.

> Same policy as with our runtime; in order to keep our own sanity, we will > officially support Ubuntu Linux.

…

> Installer will (most likely – it's one of the things we didn't do yet) just > be a .deb package.

I really wish folks would support _Debian_ first, and let Ubuntu support flow from that.

<comment><USER5> I agree in both cases. There would be no Ubuntu today without Debian (although I've never installed it because I tried years ago and found it to be too difficult which is why I went with Ubuntu after becoming less than enchanted with RedHat) and really I thought case issues were a thing of the 90's, early 2000's at the latest. I've read that Debian has gotten easier to install though but I'm not sure from their web site which one. They need to get someone with a marketing background to help them with their web site.

<comment><USER6> I can totally sympathize, and we'd like to support every distribution. :-( But the simple statistics show that we get the most bang for our buck by supporting Ubuntu because of its desktop market share.

The great thing about the Linux community is that it's full if crazy smart people who will go out of their way to make sure stuff is working on their distribution. And of course if something isn't working on your distro, it'll be just like the player -- send us a bug report or poke us on the forums, and we'll do what we can. But in order to not spread our resources too thin (especially considering that this is starting off as an experiment), we have to set some boundaries, and we need to do what will make sense for the largest number of users.

And case sensitivity problems will exist as long as we have a mixture of some platforms (Windows/OS X) using case-insensitive filesystems by default, and others (Linux) using case-sensitive filesystems by default.

<comment><USER7> You haven't been asked to support every distribution, just Debian, and possibly Ubuntu. Please pay attention to this advice. Supporting Debian practically gets you Ubuntu support for free, as well as a number of other popular distributions.

<comment><USER8> Steam and most Linux games can be run on any distribution with a bit of work on the user's part. The problem with officially supporting something is that suddenly the vendor is responsible for the game not working. That shit costs time and money. You say Debian, but sooner or later someone will demand support for Damn Small Linux. It's better to just stop at Ubuntu and let users of other distros install the right dependencies themselves.

<comment><USER7> Perhaps you're new to Linux. Let me assure you that Debian is a very popular distribution upon which many other distributions are based, and is in no way equivalent to suggesting support for one or a number of niche or less popular distros. I don't even use Debian myself, but I suggest it because I know that if Debian is supported then getting support for my preferred distribution will be effortless; the same is true for Ubuntu.

</comment></comment></comment></comment></comment></comment><comment><USER9> I worked on the Linux version of a large program and after some years of it I mostly concluded that it's hard to know in advance which things work everywhere and which won't, unless you ensure your programmers are familiar with the quirks of all the platforms you intend to run on (which isn't really practical).

(I was working on the Windows -> Linux path, but for some cross-OS examples that aren't that I was surprised to learn that while toupper follows your locale on Linux, OS X uses the "C" locale by default. Or that shm_open has a tiny size limit on OS X.)

I think the best you can do is (1) write a lot of tests; (2) whenever you add an OS-specific snippet, use the same ifdef string so it's easy to grep for.

</comment><comment><USER10> > it's the place where case sensitivity problems really show up

Who made the decision to have case insensitive file systems? If I had a time machine they would be high on the list of people to visit and give a stern talking to.

<comment><USER11> I don't think the problem is having case insensitive file systems, the problem is having both on different platforms. A similar problem as with different endians. If everything were case insensitive, it wouldn't cause issues.

While as a programmer, I prefer the level of precision case sensitivity provides, I'm hard pressed to make the case that it is better for an average computer user.

<comment><USER12> ... which exact type of case insensitivity would you do? Only for latin letters in ascii? or such letters plus just one accent type? or also less familiar symbols used in other writing systems? Did you know that different languages can contradict one another? [1] Are you also going to normalize unicode representation, like Mac OS X does? (it uses a _variant_ of NFD normalization, which is arguably the wrong one to do but that's life) (I only know this because I've been tripped up by it)

Basically, you can't "just do case insensitive everywhere", that doesn't fix the confusion and inconsistency.

[1] [http://www.i18nguy.com/unicode/turkish-i18n.html](http://www.i18nguy.com/unicode/turkish-i18n.html) (see table titled "English vs. Turkish Case Mappings") (this is just the first example I could find with a quick search)

<comment><USER11> Point taken; I made the mistake of writing a prescription for the world based on my narrow English speaking world view.

I stand by what I said for ASCII, but in a Unicode world, I think you're right. When the mapping stops being simple, the principle of least surprise reverses in the favor of case sensitivity.

</comment></comment></comment></comment><comment><USER5> I gave Steam (should be Valve) credit for their work to bring games to Linux, I should have mentioned Unity. Some of the best games I've played in the past 2 years were based on Unity. The Unreal platform brings new promises and will be nice to see games unfold from those on Linux. My money is good for Linux games for my lifetime which hopefully is still decades.

</comment><comment><USER13> Having switched to OS X about a year ago after years of Linux usage, I can say that personally I really like the case insensitivity OS X has by default. It doesn't whine every time I accidentally (don't) press caps lock. Case sensitive file systems must be the dumbest invention ever. Who is seriously going to distinguish his/her files by capital and non-capital letters? "Test.txt" and "test.txt" should be the same!

<comment><USER14> This only applies to ASCII (at best). Case insensitivity is very annoying.

</comment></comment><comment><USER15> So this is framed as a "things we should have done back then", but I think that the part about case-sensitive filenames show why that wouldn't work:

"Of course we tried to be smart in the early days, but if you don't set up a way to actually verify that what you're doing works on a case-sensitive file system, then it will never fail that some well-intentioned programmer throws a toLower() in somewhere and ruins the party."

Because yeah, if nobody's running or testing a code path, it will absolutely decay. You can't write anticipatory code to work for hypothetical future requirements that you don't necessarily understand and are never testing.

<comment><USER6> Right, it's in the category of "things I wish we would have done back then" because it would have been easy to solve: we could have simply had everyone install OS X (which is what Unity was originally written on) on a case- sensitive HFS+ filesystem, but we didn't do that. Ooops. Oh well. :-)

</comment></comment><comment><USER16> "The C++11 standard is, ahem, vague in some places and different compilers choose to interpret the standard, well, differently."

I'm a little curious to know what they were doing.

EDIT: Dammit, I should have kept reading, the very next sentence has: " Lots of compilation errors that involve this-c++-template-thingy-with-lots-of- angle-brackets does not match that-c++-template-thingy-with-lots-of-angle- brackets-that-has-a-const-somewhere-in-the-middle."

and personally I would have thought that of course you need the consts to match and it would have been this way for literal decades now.

</comment><comment><USER17> Gtk does sound like a better choice than raw X11, particularly as Wayland, Mir, and friends continue to grow.

<comment><USER18> Just curious. Why not go for QT for the whole GUI on all platforms?

<comment><USER5> It seems Gtk has won, why don't the QT developers and supporters move to the Gtk camp and work to make it better rather then keep QT alive which just wastes efforts.

<comment><USER19> Because for professional development, there's really no comparison; Qt is on a different level from GTK entirely. I just did a keyword search on Monster India - Qt: 69 jobs, GTK: 3 jobs.

<comment><USER20> Yeah, just about the only reasons to use GTK+ in new projects are the plain C API and slightly better bindings. Qt bindings support deteriorated a little from Qt 4 to Qt 5 (python is there but still no java bindings as far as I can tell), whereas GTK+ isn't expanding in features so it doesn't get to have such problems.

</comment></comment></comment></comment></comment><comment><USER21> About 12 years ago I worked on porting pretty large C/C++ codebase from Unix to be compiled also on Windows. What helped is that C/C++ part of the software had no GUI components (that was handled by Java) and by that time it has already supported Linux, Solaris, and HP-UX, which later were dropped, but we already had some experience of multi-platform support.

Yes, file system case-sensitivity and dispersed strictly hardcoded pre- processor directives were the problem, but they were the least of the problems for me (every codebase is different, so I am not doubting posted article). The differences between POSIX and WinAPI, GNU-isms in the code (Windows version was compiled by Visual C++ 2002 at the time), and support differences between C++ STL version were bigger problems.

My approach was to choose a C library specifically designed to support multiple platforms - Apache Portable Runtime (I also considered QT, NSPR, and GTK at the time). This helped tremendously and I would recommend doing the same to anyone doing similar effort or - better yet - start using something like that at the design stage.

</comment><comment><USER6> So based on all of the feedback we've gotten, I'm going to look at making a platform-agnostic installer as well as a .deb package, for people who want to run Unity on non-Ubuntu installations.

We're probably going to still only offer "official" support for Ubuntu, since that is what we build/test on, but we'll try to fix what we can when problems are supported on other distros.

</comment><comment><USER22> I still don't understand why so many are jumping on the Linux gaming bandwagon. I mean, it's nice for me and all, I just don't really see the business gains for them.

<comment><USER8> Costs are slightly lower than sales, I would expect. It's also a political issue when it comes to Humble Bundles and crowdfunding.

Costs have dropped with C++11, Unity and Steam for Linux. Sales have risen since Linux' market share is rising (very _very_ slowly). Also of note is that Linux users seem to have beefier setups than their Windows peers, according to Steam Survey (12GB RAM vs 8, 2GB VRAM vs 1, bigger screens and more cores). More money spent on hardware correlates with more money being spent on games.

</comment></comment><comment><USER23> Looking forward to this but given the fact that Unity is not the most stable piece of software on it's main platforms, i am still a bit skeptical.

</comment><comment> white-flame Their biggest failure is not self-hosting the editor as a Unity application itself. Any target they support could have become an editor platform.

<comment><USER6> The Editor needs to do all kinds of complex window management, and other stuff, and also uses all sorts of 3rd party middleware (like Enlighten, for global illumination) that wouldn't work as being part of the runtime itself.

The editor is, however, largely written in Unity (uses the same APIs, etc, in addition to a bunch of private ones).

</comment></comment><comment><USER24> I'm scratching my head after this article, not really sure if the author really believes in what he's complaining on fully? For me, those are kinda nice "wishes", in that if they happened, the porting team would have less work to do now, sure. But, actually, especially those specific things listed - <USER2> sound to me like things, which would be unnecessarily hard and _really_ costly things to do "in the past", assuming they were initially aiming just for Windows (and maybe OSX, don't know it well). So, like, I feel like doing them that way originally was actually a _very good decision_. I'm even starting to think: if the author has _just_ those things to complain about, then maybe actually the codebase should be described as written fairly portably and future-proof...

To explain my argument, I'll try to elaborate a bit more on the points raised by the author:

 _1\. Case sensitivity in paths._

So, as others mentioned too: on a case insensitive filesystem like Windows, you'd have no chance to verify (i.e. test) "case-sensitive-correctness" anyway. So, you'd fail on this here and there anyway. Ok, maybe using the OSX FS with case-sensitive option would be a guard. But, OTOH, I believe OSX has it case-insensitive by default anyway, no? So, by testing in case-sensitive, you're actually testing the "least used path", which sounds not so smart, actually... especially given that switching from case-sensitive to case- insenstive (i.e. the other way) has its own surprises, then...

 _2\. No OS #ifdefs_

Um;... so... like... what else to use instead?...

 _3. "Assumptions":_

 _3.1. Compilers._

This point seems actually to be more "no C++11". OK; yeah; sure; but remember: then you'll get maimed for being backwards, "corporate-ish", you'll get no "smart young hackers", people will get more frustrated...

Not that you'd really have a good alternative to C++ (Java/Python need huge and messy runtime env; and if you need performance of C++, you need performance of C++; if you started now, you could _maybe_ at least try using Go as a kinda compromise, but depends on your actual needs).

You know, whichever way you choose, you have pros and cons. And, supposedly, some time ago when the decision was made, the pros were actually outweighing the cons; so, it wouldn't sound so smart to me to choose otherwise...

 _3.2. & 3.3. "Assumptions about [GUI]"_

Sorry to say, but: GUIs are just _not portable_. _Every_ GUI environment has different "idioms", "interface guidelines", etc. Windows has different. OSX has different. Linux has different. Heck, different _versions_ of the OSes have them different! On Linux, even in the same "OS version" (um, distro? kernel?) you have multiple "desktop environments" with different widgets, layouts, etc (KDE, Gnome, ...). Conversely, on Windows, Microsoft likes to sometimes pull you in multiple directions at the same time too, e.g. when new MS Office introduces new widgets, or new Explorer does the same, or you have Metro+classic, or whatever. Dunno about OSX; I dare suppose it's not all roses there either.

I seem to believe now, that if you want to have a cross-platform app with a GUI, you should really write the GUI for each platform from scratch (only trying to reuse some parts). Or, consciously break with staying consistent with any OS interface guidelines.

As to "copy & paste": on Linux it has actually _totally different_ underlying mechanism(s) than on Windows. So, you probably have to rewrite even low level parts of it very differently. Not just menu entries.

So - I don't really see what's there to complain on. The app was written for some 2 OSes; now guys port it to a third one; awesome! just, sorry, you know, there's gonna be some work needed in order to complete that. <shrug>

<comment><USER6> Hi! I'm glad to see that the post is promoting constructive dialog about what does or doesn't make portable code, which is what the point actually was (in addition to shedding a bit of light about the state of porting Unity to Linux).

I'll clarify a few things:

1\. Unity was originally written for Mac OS X, then later ported to Windows (not the other way around). Given that it's more than possible to have a case- sensitive HFS+ filesystems (since, I think OS X Panther released in 2003?), IMO it would have been more future proof for us to be sure to develop on a case-sensitive filesystem. Unity users over the years have tried to run Unity on a case-sensitive HFS+ filesystem and failed, so it would have been nice for all of those guys. :-)

2\. Note that the point in the article was not to avoid using OS-specific defines (that's impossible), it was to make sure to do something sane (like #error) in the #else case that would make it immediately clear something need to be implemented there.

3.1. Yes, the higher-level point is indeed, "Be smart/cautious about what language features to use for the sake of portability".

3.2 & 3.3. Of course it's just a matter of opinion, but I wish that we'd considered a more platform-agnostic approach to GUI handling when the number of platforms that Unity was ported to went from 1 to 2. I (and others) are still a fan of the menu-system-written-entirely-in-Unity-GUI idea, but others (within Unity), for very good reasons, disagree. Fair enough.

Anyway, thanks for sharing your thoughts; when I write about anything I'm always looking forward to hearing a different perspective, and one of the main goals I had in writing the post was to promote constructive dialog about what it means to write "portable" code. :-)

<comment><USER24> Thanks for the reply! Most of them make much more sense now. As to 1. and 2., I'd say you could want to consider merging those clarifications into the original article. In 1., arguably some background knowledge of Unity could be expected from the reader, and maybe I'm just not the intended target. But especially in 2., I'm afraid I can't agree that those clarifications are there, just hidden between words. There are very little words in 2. in the article. As to 3.2 & 3.3, I don't really get the clarifications unfortunately; I think it shows even more that I don't really have knowledge of Unity, so I'm starting to think maybe that wasn't really an article for me to start with. Thanks for the interesting and insightful discussion!

</comment></comment></comment><comment><USER25> With .NET Core, is there any reason to not just drop IL2CPP completely?

(The whole thing only existed in the first place because they are stuck on a completely outdated Mono version, due to Xamarin changing the license of newer Mono versions trying to extract money from Unity.)

<comment><USER26> Can we kill off the Mono libel already?

Mono changed the license _so that it could be used in Unity to begin with_. Mono was available under a copyleft license. To everyone. Including Unity. Unity couldn't/wouldn't accept it under those terms, so folks at now-Xamarin said, "We'll offer it to you under a commercial license if you won't take the copyleft offering." That's standard fare. Unity said, "Okay, deal." Mono continued to improve over the years. Unity was interested in those improvements. Mono said, "Okay. You can get those under a commercial license, too." Unity balked.

So what we're really talking about is that Unity wants the improvements that have been made to Mono, but doesn't want to pay for them.

Get this: They're still free at any point to accept Mono under the copyleft license that's available to _literally everyone_ , but they won't accept it under any terms other than their own. That's it.

<comment><USER27> That seems like a very unfair description of the situation.

Do you know the specific licensing terms that Xamarin offered to Unity? Probably none of us here do. Given that, why would you assume Unity was the unreasonable party, and not Xamarin?

Regarding the copyleft license, while it is an option for everyone in general, it isn't an option for Unity, which needs to ship on platforms that do not allow such licenses (iOS, game consoles). Products like Unity will always need a commercial license as long as such platforms exist.

<comment><USER26> > Given that, why would you assume Unity was the unreasonable party, and not > Xamarin?

I don't know what this means. What we know of the situation is that Unity doesn't want to pay a commercial license for Mono. This is even the way that pro-Unity/anti-Mono folks frame the situation. What do you have in mind here?

> Regarding the copyleft license, while it is an option for everyone in > general, it isn't an option for Unity

That's all well and good, but it doesn't have much to with any obligations Mono has. Those are completely synthetic restrictions that the platform vendors are placing on the people targeting them. How does Mono get the blame for Apple and Nintendo's choices here? Why do Apple and Nintendo get treated as bedrock? Even so, that's bedrock that Unity knows they're working with. It's their choice to target those platforms.

EDIT:

> That seems like a very unfair description of the situation.

Unfair. Every reference to the Unity/Mono relationhip I've ever come across has been from someone who heard Unity's creative retelling of the conflict and parroted it exactly, down to overtly identifying Mono as the bad guy.

<comment><USER27> It means: Xamarin offered a commercial license to Unity for $X under Y terms. We don't know what X and Y are, since this was not a public negotiation. X and Y could be reasonable, or they could be totally unacceptable. They could be offered in good faith, or they could not.

We just don't know the answer, and you're assuming the party offering X and Y is reasonable. But it might not be. We don't know.

edit to your edit: if you heard people on the internet being wrong in some way, that doesn't justify you being wrong in the opposite way.

<comment><USER26> There's no "opposite" emanating here. I'm making no assumptions beyond what we do know, and what I describe is what we do know, sans Unity's spin. There's only me saying, "I'm a little sick of seeing Unity's going swallowed without critique." You characterize that as unfair somehow.

Companies A and B couldn't come to agreement to license something under terms Y that include $X in payment. Okay. There's neutrality in that statement. My comment says that (and no more).

What let's not do is say, "That makes company B a bunch of jerks." That _is_ what the comment I'm responding to does, and it exists in a sea of others with the same tack.

Overton window and that.

<comment><USER27> You said

> So what we're really talking about is that Unity wants the improvements that > have been made to Mono, but doesn't want to pay for them.

which paints Unity as the bad guy, when for all we know, it might not be. Perhaps Unity is totally OK with paying for a license, but the Xamarin terms would have bankrupted it.

But thank you for clarifying what you meant. I agree there is no point in saying either party is the bad guy, since there is not enough public information to know.

<comment><USER26> > which paints Unity as the bad guy

 _In what way at all?_ Entity A doesn't want to pay entity B $X. That's the only thing the comment of mine that you quote says.

There are shops around that sell quadcopters for hundreds of dollars. I want a quadcopter. I don't want to pay hundreds of dollars. Have I just painted myself as a bad guy?

I repeat: the _only_ reason my comment sounds pro-Mono is because, at neutral, it resists the spin of the one that paints Unity as a victim and Mono as a fiend.

<comment><USER27> "X wants Z, but doesn't want to pay Y for Z" implies several things. Perhaps you didn't intend them. But almost every reader will make those assumptions.

In particular, it sounds like Y is offering Z at a standard rate, as in "Sam wants a Chipotle burrito, but doesn't want to pay Chipotle for the burrito." Sam doesn't look good here - does Sam expect to get the burrito for free? Why does Sam think he is entitled to that?

Readers may not realize that there isn't a standard, objective rate for commercial licenses for Mono. Especially for the single biggest consumer of Mono, Unity, which uses it in products that its customers ship - <USER3> particularly complex situation.

Again, maybe you didn't intend to, but it sounded like you were saying something very negative about Unity. A less biased way to say it might be

"Unity and Mono could not arrive at mutually acceptable terms for Unity to license newer versions of Mono."

<comment><USER26> The only thing I'm saying are very negative things towards people who read (or heard the story of) Unity's PR-level attempt to make it sound like the people behind Mono are jerks, and then bought in to it full force and now repeat the line at every opportune moment (and then some inopportune ones, too, like the comment I replied to).

What we also don't know are the terms for the first negotiation. It's as possible that Mono made one offer and Unity countered with an insultingly lower one, then Mono accepted due to being a poor position to negotiate something "reasonable", but are no longer in a position to have to accept whatever is offered, now that Xamarin is off and running.

We don't know. Hypotheses non fingo.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


RiveScript – A Simple Scripting Language for Chatbots - <AUTHOR> https://www.rivescript.com/ <comment><AUTHOR> Here you can find some samples: [https://www.rivescript.com/about](https://www.rivescript.com/about)

<comment><USER2> This is a nice example to use RiveScript in python, as I found the docs on pypy a bit lacking: [https://github.com/aichaos/rivescript- python](https://github.com/aichaos/rivescript-python)

</comment></comment><comment><USER3> This looks cool, but there doesn't appear to be a way to get info about where the user ended up in the script. It would be nice if there was a way to tell an external system what happened in the chat.

<comment><USER4> You can! Use the functions `get_uservars()` and `set_uservars()` to export and re-import variables from your program.</comment></comment>


How Uber Plans to Conquer the Suburbs - <AUTHOR> https://www.buzzfeed.com/priya/how-uber-plans-to-conquer-the-suburbs?utm_term=.kpWnzo6bxV#.klgdjWYDeL <comment><USER2> Is anyone else slightly apprehensive about Uber substituting as public transport? What if their motive is to bankrupt public transport agencies and then raise prices when people have no alternative?

<comment><USER3> I agree. It's also a risk for people living on very limited budgets; what do they do if Uber raises prices? How do they get to work? The grocery? The doctor?

Private enterprise relies on business failure and distribution of resources to those who can pay the most for them. Some things can't fail (police, fire, transportation, water, medical, etc.) and are needed by everyone regardless of income.

> What if their motive is to bankrupt public transport agencies and then raise > prices when people have no alternative?

Uber prides itself, IME, on very aggressive business tactics, concerned only for profit and not, for example, its own workers, local laws, etc. I would be surprised if they did otherwise than what you say.

<comment><USER4> It sounds like the city described in the article (and others mentioned) is subsidizing Uber fares for people in the city. So, if Uber displaces public transport agencies, I suspect it'll end up being the city which gets stuck with the bill.

That said, I don't think the situation is as dire as you're describing. Getting around in smaller American cities is _already_ difficult for many people- as you mentioned, those living on very limited budgets, but also the elderly and other people that can't drive themselves around and must rely on family and friends.

So, in the end, I think it's less a matter of "replacing public transportation", and more a matter of "creating a realistic model for publicly-funded transportation in suburban and semi-rural America".

This is not to say that I'm super chuffed with Uber being the one to do it. But I can see a future where municipal governments become comfortable with the idea, which would open the door to competition, just as we've seen in major cities where there are plenty of alternatives to Uber.

<comment><USER5> It's cable cars being torn out for cars all over again.

<comment><USER6> No. It's cable cars that don't exist being torn out for cars all over again. Suburban/exurban mass transit is pretty much non-existent other than commuter rail (in many areas).

My adjacent city just spent something like 2 years and who knows how much money putting in a new parking garage for one of the MBTA stations that have been notorious for insufficient parking for pretty much forever. With no parking at all during the construction. Assuming the numbers and logistics worked out, something like this would have been very interesting.

<comment><USER5> To have your mass transit beholden to corporate interests is the problem.

I'd be much less concerned if governing bodies created a non-profit that built and ran the technical infrastructure for ridesharing.

</comment></comment></comment></comment></comment></comment><comment><USER7> TLDR as the facts in the article were hard for me to divine at first glance:

\- People ride the train in Summit NJ to work in NYC / elsewhere \- It's a pain to park at the train station and wastes a lot of time in the AM \- It costs $4 to park in the lot currently \- Uber will offer $2 each way rides to 100 residents within the city \- Summit will reimburse Uber for the difference between the flat fares and the true cost of a ride, which drivers will receive up front \- Summit NJ is about 6 square miles

</comment><comment><USER8> I see this as Ubers endgame- it doesn't have to beat lyft or other rideshare options, it has to outlast insolvent public transportation options and fickle taxpayers and be the biggest network such that they can get these government contracts. We are seeing more and more of these local deals as it is a superior option in quality and cost to public transportation except in certain mass transport situations.

<comment><USER9> Uber will never outlast urban public transit. Because bigger vehicles and fixed routes are simply more efficient at transporting a lot of people in dense environment.

It can easily replace inefficient minibus lines in the suburbs though, and riding your own car to real public transit (in this case, the train). That's potentially a significant market, but I doubt it's as big as the taxi market they're trying to take over.

<comment><USER10> You're not thinking of 'externalization'

Externalization is the key to Uber disrupting mass transit. It doesn't matter how much more efficient busses and trains are if Uber can continue to push the costs of its operations onto the environment, taxpayers, and the less wealthy who drive for the company.

(I know this article isn't about that directly, just wanted to chime in)

<comment><USER9> It's about basic geometry, not cost. You simply cannot fill the streets of San Francisco, Seattle or New York with all the people who would take the bus (not even speaking about trains), with 4 people per car max (often 1 or 2), and not expect streets to be clogged to death. It takes way less space to transport people by public transit.

</comment></comment></comment></comment><comment><USER11> Normally, I'm wary of Uber and it's business practices, but I am soooo ready for this. The cabs where I grew up were awful - they took forever to come and the drivers were often rude and unhelpful. I could never count on them. Plus, drop-offs and pickups at the train stations were always a nightmare.

<comment><USER12> I have bad news for you: those cab drivers are now your local uber drivers.

<comment><USER13> The difference is that there's now a rating system for them, and because Uber's broken the protectionist medallion racket, even if they're rude and unhelpful, at least you can get a ride reasonably quickly, and they can't take kooky routes without being accountable. It's pretty clear that even if the driver pool includes all cab drivers that this is a major net positive for riders.

</comment></comment></comment><comment><USER14> Didn't see this as I skimmed the article but: What happens when people return? The train lets off a bunch of people at once that need rides, but will there be enough uber drivers to meet the demand?

<comment><USER15> I work near Dulles Airport and Uber sends pings to drivers throughout northern VA that a bunch of flights are about to come in, in some cases offering a bounty if they go.

This town itself may not have a ton of Uber drivers, but they can come from anywhere in the area.

<comment><USER16> Aren't there a bunch of flights coming in every minute, all day at a major airport like Dulles? If the pinged them when flights were coming it'd be pinging all day.

<comment><USER15> There are a few big rushes. The morning east coast shuttles get in at about 8:30, and the evening ones at about 6. The big bunch of intercontinental flights get in around midnight.

</comment></comment></comment></comment><comment><USER17> The city is about 6 square miles in area and the general layout appears to be a central hub with major routes as spokes around it to each edge.

Anyone living between the spokes can probably get to a spoke by walking 0.75 miles or less.

Just two or three continually circling vans/buses could go from the city center, down a spoke, then back via another spoke. Probably could return every 20 minutes, give or take.

Can it be done for less than the $167,000 per year this Uber plan will cost the city?

<comment><USER18> Yeah, assume the city is 2 by 3 miles and the station is right at center, then one'd only need to walk at most ~1.7 miles to the train station. That's like half an hour walk before and after work. Do your cardio a favor and start walking and leave the parking space for less fortunate people who are not able to walk.

<comment><USER6> And people should also eat their vegetables and floss daily. Even ignoring bad weather, the city needs to plan for transportation the way people actually behave rather than how they ought to behave.

<comment><USER19> Except the city can have policies that encourage healthy habits. For example, no tax on vegetables, $1 tax on soda.

<comment><USER20> Sure, in theory they can. In reality the same people who are too lazy to walk 1.7 miles also get to vote on whether those taxes go into effect.

<comment><USER19> This is why the benevolent dictator is the best form of government.

</comment></comment></comment></comment></comment></comment><comment><USER3> With Uber's massive political and PR operation, now I always wonder:

* Did Uber influence the politicians somehow?

* Did Uber place or pay for the article?

* How many of the anecdotal cab complaints (EDIT: And anecdotal Uber raves) in every HN Uber story are part of that PR operation (my apologies to all the legit ones)?

<comment><USER13> * Did Uber influence the politicians somehow?

Yes. They influenced them by convincing them that this was a better option than a major capital expenditure on a parking lot.

* Did Uber place or pay for the article?

Almost certainly not. This is a newsworthy story. They may have given the writer an exclusive, however.

* How many of the anecdotal cab complaints (EDIT: And anecdotal Uber raves) in every HN Uber story are part of that PR operation (my apologies to all the legit ones)?

Anecdotal cab complaints are probably real, and for verification, just be a person who has had to deal with cabs.

<comment><USER3> Could you back up these claims?

In fairness, I don't know Uber did the things I am concerned about in this case, but I do know that they've done them in other cases.

> Anecdotal cab complaints are probably real, and for verification, just be a > person who has had to deal with cabs

I am, in several towns, and am a very satisfied customer. I've almost never had any of the problems described so regularly here. That doesn't make them impossible, of course. Also, I don't think anyone would say Uber was above astroturfing on HN.

</comment></comment></comment><comment><USER21> Can't read the article at work but I'll just add this anecdote: Uber is so aggressively adding promos in my city that it's actually cheaper for me to to take a 15-20 min ride in an Uber in a suburb than using local transit.

And just two days ago, my friend took an Uber from the suburbs to downtown (25-30 min ride), which only cost him an extra two bucks compared to taking public transit (1.5 - 2 hours commute).</comment>


Dividing Droplets Could Explain Origin of Life - <AUTHOR> https://www.quantamagazine.org/20170119-active-droplets-cell-division/? <comment><AUTHOR> This article is 20 years old, but it provides some good background on David Deamer and the "membrane first hypothesis":

First Cell - [http://discovermagazine.com/1995/nov/firstcell584](http://discovermagazine.com/1995/nov/firstcell584)

The droplet idea examined in the article could be described as "droplet first" and Deamer is quoted, since the droplet model is clearly a competitor to "membrane first".</comment>


The Case of the Radioactive Toothpaste - <AUTHOR> http://www.atlasobscura.com/articles/thorium-toothpaste-alsos-world-war-wwii-manhattan-project <comment><USER2> Both Goudsmit and Pash wrote books about their Alsos mission to find out about the German atomic bomb program. Goudsmit opens his book with a drawing of the German experimental station for atomic bomb research - a house-sized wooden building.[1] The US's Manhattan Project involved building as much plant as the prewar auto industry. The US intelligence people knew there was a German atomic program, but couldn't find out anything about it, so they assumed it must have really good secrecy. Goudsmit mentions that the V-2 rocket project made no sense unless it could carry an atomic bomb - accuracy was so bad that it couldn't hit a target smaller than Greater London, and it cost as much as a fighter plane.

No, it was just a tiny program.

[1] [https://books.google.com/books?id=3v2ttYJ_d2kC&pg=PA2](https://books.google.com/books?id=3v2ttYJ_d2kC&pg=PA2)

</comment><comment><USER3> A few days ago there was an article on HN about putting Radium in everything. It's good for you! It even shines in the dark.

[https://www.theatlantic.com/health/archive/2013/03/how-we- re...](https://www.theatlantic.com/health/archive/2013/03/how-we-realized- putting-radium-in-everything-was-not-the-answer/273780/?single_page=true)

<comment><USER4> It makes you wonder what current fads will make future generations cringe in the same way...

<comment><USER5> Organic: a ton of copper replacing a gram of glyphosate.

<comment><USER5> Also, glyphosate.

Probably, meat.

<comment><USER6> Humans have ate meat for thousands and years. They did not cost stuff in radium for thousands of years.

</comment></comment></comment></comment></comment><comment><USER7> Literally read about the radioactivity craze of the early 20th century in A Short History of Nearly Everything. Entertaining read.

<comment><AUTHOR> It's high on my list! If you liked that book I have a suspicion you'd also like Sapiens: A Brief History Of Humankind[1], in case you haven't read it already.

[1]: [http://www.goodreads.com/book/show/23692271-sapiens](http://www.goodreads.com/book/show/23692271-sapiens)

</comment></comment><comment><USER8> Whenever I buy toothpaste for sensitive teeth I always do a doubletake when I see strontium listed as in ingredient. I have to think for half a second is that right? Its name alone I guess is what makes me think that but I guess I am confusing it with other nasty radioactive elements.

<comment><USER9> Natural occurring strontium is harmless and not radioactive. It fine to have it in toothpaste.

The reason you often hear about is strontium as something radioactive is because of Strontium-90, which is one of the longer lived products of nuclear fission, with 30 year half-life. Thus radioactive strontium-90 is always present after a nuclear accident or explosion.

<comment><USER8> Yeah but it takes a second for me to clue in.</comment></comment></comment>


Ask HN: Is this a Python bug? - <AUTHOR> The run method below never executes in Python 3.5:
from threading import Thread
import time
class MyThread(Thread):

    def __init__(self):

        Thread.__init__(self)

    def run(self):
        while True:
            print("Forever")
            time.sleep(10)

        return

        yield from None
 if __name__ == '__main__':

    mt = MyThread()

    mt.start()

    mt.join()
 <comment><USER2> It is a feature [http://stackoverflow.com/questions/26595895/return-and- yield...](http://stackoverflow.com/questions/26595895/return-and-yield-in-the- same-function)

</comment><comment><USER3> I dont have access to python 3.5 but i tried above code with some modifications and it worked!

1\. `while True` has no break condition and that intentional but `mt.join()` basically waits till all threads are completed? are you looking thread that keeps on running? i suggest look at daemon thread? if yes, check this [https://pymotw.com/2/threading/#daemon-vs-non-daemon- threads](https://pymotw.com/2/threading/#daemon-vs-non-daemon-threads)

2\. `return` & `yield from None` are not required! I had commented those lines, also 'from' is a reserved keyword

<comment><AUTHOR> See [https://www.reddit.com/r/Python/comments/4fhels/is_this_a_py...](https://www.reddit.com/r/Python/comments/4fhels/is_this_a_python_bug/)

</comment></comment><comment><USER4> Shouldn't the yield be inside the while loop?</comment>


Rot8000 - <AUTHOR> http://rot8000.com/Index <comment><USER2> In case the author sees this, some comments about Rotator.cs.

1\. This algorithm will break if the number of valid characters in the BMP becomes odd.

EDIT: As user platforms pointed out, there is an unit test for this.

2\. There is an overflow in line 39 because of the check i <= BMP_SIZE in line 37.

3\. The web server at rot8000.com exposes at least some errors with stack traces, try rotating the string <script>.

4\. In line 42 you are performing a linear search for every character you transform, that is very inefficient, especially with characters at the end of the BMP. At least use a hash map or even better just use an array mapping the input code point directly to the output code point.

5\. rot8000.com does at the very least allow rather long inputs which paired with the inefficiency of the linear search makes a DoS attack pretty easy. I tried a 10,000 word lorem ipsum, it was not rejected and the request took a minute to complete.

<comment><USER3> Thanks -- added an issue for the linear search [https://github.com/rottytooth/rot8000/issues/2](https://github.com/rottytooth/rot8000/issues/2) \-- will place a limit on chars in that textbox as well

<comment><USER2> For reference, I created an optimized implementation and tested it with a string containing all characters from U+0000 to U+FFFF in order and got the following times. The original implementation took 5202.766 ms, the optimized implementation took 0.079 ms for a speed-up of about 65858. That this is pretty close to 65536 is probably a reflection of the cost for the linear search through almost that number of characters and the test pattern I choose but I am not entirely sure, intuitively I would have expected a factor of 0.5 in there to account for the average case. But I am too lazy right now to do the math.

<comment><USER3> I've updated it to use a hashtable and the tests run quite a lot faster

<comment><USER2> I took the array approach which should be still faster because it avoids the hash calculations. Just build an array Char[65536] containing at every index i the character the character i should be mapped to. Rotator.Rotate() then simply becomes the following where Rotator.map is the precomputed array. Probably very similar to an implementation using a hash table. I also got rid of the string builder but did not profile the difference. If one uses a string builder it would most likely help to specify the capacity in the constructor call so that the internal array does not have to be resized repeatedly as the result is constructed and grows in length.

      public static String Rotate(String input)
      {
        var result = new Char[input.Length];

        for (var index = 0; index < input.Length; index++)
        {
          result[index] = Rotator.map[input[index]];
        }

        return new String(result);
      }

</comment></comment></comment></comment></comment><comment><USER4> Interesting! I made a very similar tool earlier this year.

It comes with presets for various different areas of Unicode, and some example text, although the intended use case was very different, I looked at it from a steganography perspective rather than an honours-system obfuscation perspective.

[https://incoherency.co.uk/mojibake/](https://incoherency.co.uk/mojibake/)

I initially thought it would be able to decode the rot8000 output without any modification but I think the utf-8 escaping that my tool expects (from its own output) gets confused by the output from rot8000.

<comment><USER5> It may also be that you're rotating by 0x8000 and this code is not. It's creating a mapping that's restricted to non-control, non-surrogate, non- whitespace characters and rotating by half the size of that mapping.

[https://github.com/rottytooth/rot8000/blob/master/Rottytooth...](https://github.com/rottytooth/rot8000/blob/master/Rottytooth.Rot8000/Rotator.cs)

<comment><USER2> This will break, i.e. two consecutive rotations will no longer be the identity, if the number of valid characters in the BMP ever becomes odd. And there are still a few unallocated code points in the BMP. There is also an overflow in line 39 because of the check i <= BMP_SIZE in line 37 which, I guess, previously used Char.MaxValue instead of BMP_SIZE. But it does no harm here, U+0000 just gets filtered out twice.

<comment><USER6> There's a test for BMP characters being even: [https://github.com/rottytooth/rot8000/blob/master/Rottytooth...](https://github.com/rottytooth/rot8000/blob/master/Rottytooth.Rot8000.Tests/MappingsTests.cs)

More critically, if the # of valid chars changes, previously rot-8000'd text will no longer be reversible through the tool

</comment></comment></comment></comment><comment><USER7> This certainly is what I would call a "neat hack". Out of curiosity I had to check what it rotates Japanese into. Turns out, mostly Korean: "日本語はどうかな?" becomes "ື걅갿개갡걀等".

</comment><comment><USER8> It meticulously refrains from rotating emoji. Somehow this feels like failure.

<comment><USER9> ROT-8000 is only touching the first 65536 Unicode characters (UCS-2). Unicode has >1M code points. [0]

Most emojis seem to be above the first 16 bits. [1] But there are a number of emojis in the first 16 bits, like the "frowning face" emoji at U+2639 -- it rotates just fine -- plus others in the first 16 bits.

(TIL you can't paste emojis into HN comment threads. Probably all for the best.)

[0] [https://en.wikipedia.org/wiki/Unicode](https://en.wikipedia.org/wiki/Unicode)

[1] [https://unicode.org/emoji/charts/emoji- list.html](https://unicode.org/emoji/charts/emoji-list.html)

<comment><USER10> > TIL you can't paste emojis into HN comment threads. Probably all for the > best.

I'm gonna make a HN where you can only speak in Emoji!

Sorta unrelated, does anyone remember the social network where you could only write in Emoji? [http://emoj.li/](http://emoj.li/)

<comment><USER11> Are the rules for what it does allow written down somewhere? I know country flags work: 🇩🇪

<comment><USER12> If your question isn't answered, you could post all of them in a comment and see which ones remain unfiltered.

[https://unicode.org/emoji/charts/full-emoji- list.html](https://unicode.org/emoji/charts/full-emoji-list.html)

[https://unicode.org/emoji/charts/full-emoji- modifiers.html](https://unicode.org/emoji/charts/full-emoji-modifiers.html)

You might need to split the text over multiple comments. Don't remember whether or not there is a limit to the length a comment can have. Probably there is.

<comment><USER11> I may try that. It seems a little arbitrary.

I can post, for example: ↙ ↩ ⌚ ⌛ ⌨ ⏏ ⏩ ⏰ ⏱ ⏲ ⏳ ◾

</comment></comment></comment></comment></comment></comment><comment><USER13> I was curious as to how one might implement this with a familiar language, and fetched up on this interesting python github script, specifically "rot32768"[0]

[0] [https://gist.github.com/terrorbyte/7967039](https://gist.github.com/terrorbyte/7967039)

</comment><comment><USER14> FYI: Here's a static JavaScript version I whipped-up ( as a lunch-time challenge ) that will reversable rotate everything except whitespace...

[https://github.com/jeffallen6767/rot0x8000](https://github.com/jeffallen6767/rot0x8000)

<comment><USER3> Don't see how this will work without checking for control characters, surrogates and chars above 0x10000 (try 𝄞 for instance)

</comment></comment><comment><USER6> 籝籱籮 籺籾籲籬籴 籫类籸粀籷 籯籸粁 米籾籶籹籼 籸籿籮类 簹粁籁簹簹簹 籭籸籰籼簷 [http://rot8000.com/Index?%E7%B1%9D%E7%B1%B1%E7%B1%AE%20%E7%B...](http://rot8000.com/Index?%E7%B1%9D%E7%B1%B1%E7%B1%AE%20%E7%B1%BA%E7%B1%BE%E7%B1%B2%E7%B1%AC%E7%B1%B4%20%E7%B1%AB%E7%B1%BB%E7%B1%B8%E7%B2%80%E7%B1%B7%20%E7%B1%AF%E7%B1%B8%E7%B2%81%20%E7%B1%B3%E7%B1%BE%E7%B1%B6%E7%B1%B9%E7%B1%BC%20%E7%B1%B8%E7%B1%BF%E7%B1%AE%E7%B1%BB%20%E7%B0%B9%E7%B2%81%E7%B1%81%E7%B0%B9%E7%B0%B9%E7%B0%B9%20%E7%B1%AD%E7%B1%B8%E7%B1%B0%E7%B1%BC%E7%B0%B7)

</comment><comment><USER15> Reminds me 锟斤拷 due to Unicode replacement character misinterpretation problem. When placeholder 'U+FFFD' decoded using GBK it will displayed as these characters. Some of glitches can still be found online, e.g., [https://docs.oracle.com/cd/E19199-01/817-4244-10/preface.htm...](https://docs.oracle.com/cd/E19199-01/817-4244-10/preface.html)

</comment><comment><USER16> If you are just starting to get interested in cryptography, try and make a program that can break ciphers like this one or similar. Hint: Use frequency analysis on sample ciphertext and compare to known letter frequencies in english letter to match to plaintext. Then you can determine the offset and decrypt

</comment><comment><USER17> Can someone explain what this is doing please?

<comment><USER18> See: [http://rot8000.com/info](http://rot8000.com/info)

It's essentially a Unicode version of the old "Rot 13" cypher.

In Rot 13, you translate each letter 13 places down (as if on a code wheel), such that 'A' becomes 'N', 'B' becomes 'O', wrapping such that 'Z' becomes 'M', and so on.

This version, instead of using the simple 'A=1...Z=26' number space, uses the Unicode range and rotates by 32,768 (0x8000).

<comment><USER19> One key aspect you skipped over is it's self-reversible. 'A' becomes 'N', and applying it again 'N' becomes 'A'.

"rot13 is reversible" -> "ebg13 vf erirefvoyr" -> "rot13 is reversible".

"rot8000 is also reversible" -> "类籸籽籁簹簹簹 籲籼 籪籵籼籸 类籮籿籮类籼籲籫籵籮" -> "rot8000 is also reversible"

Rot13 is English-alphabet only so it skips numbers, while rot8000 doesn't have this limitation because it uses the larger unicode set.

</comment></comment></comment><comment><USER20> Reminds me of the infamous 畂桳栠摩琠敨映捡獴.

<comment><USER21> For anyone not getting it: [https://en.wikipedia.org/wiki/Bush_hid_the_facts](https://en.wikipedia.org/wiki/Bush_hid_the_facts)

</comment></comment><comment><USER22> Fun, but outputs unprintable or non-used characters and only functions on the BMP?

</comment><comment><USER23> Reminds me of [http://base91.sourceforge.net/](http://base91.sourceforge.net/).

We could go further, straight to Base8000!

<comment> ar-nelson Already exists: [https://github.com/qntm/base65536](https://github.com/qntm/base65536)

It's actually pretty useful for compressing data in Unicode-aware environments, like Twitter. Which makes me wonder if Unicode support is universal enough now that an encoding like this could replace MIME/base64 in email.

</comment></comment><comment><USER24> Should also change spaces to zero-width spaces, which would then make it less obvious where the word breaks are.

</comment><comment><USER25> 籖粂 籶籸籽籱籮类 籪籽籮 粂籸籾类 籬籱籲粀籸粀籸粀籸粀粀

</comment><comment><USER26> Noone is concerned by the fact this is sending your text using POST requests. The guy could not use DOM/JS.

<comment><USER18> No, no one is concerned by this. Not every toy website needs to have JS.

<comment><USER27> I think the point the tuttle7 was trying to make was that this site could be implemented client-side quite easily. There's no real reason to make the translation server-side and require more server CPU resources and bandwidth.

I feel the same way about [https://www.base64decode.org/](https://www.base64decode.org/) . By default, everything gets translated server-side. I wonder how many people use this site on a regular basis for translating secrets. I'd bet my life that the number is greater than zero.</comment></comment></comment>


UC Berkeley Center for Human-Compatible AI - <AUTHOR> http://humancompatible.ai/ <comment><USER2> "Russell is quick to dismiss the imaginary threat from the sentient, evil robots of science fiction."

This is interesting, since I was on a panel with Russell a few weeks ago, and he argued that a "hard takeoff" scenario with sentient AI was a risk worth taking seriously. I guess he tones down these comments for the press.

<comment><USER3> He may just think that "evil robots of science fiction" is not a reasonable summary of the hard takeoff scenarios he worries about.

<comment><USER4> It really isn't.

If you have a full AGI, and it has the wrong value function, the scenario isn't Terminator, it's "you've already lost and have zero hope before you know what happened". Science fiction AI problems have absolutely no relation to real AGI problems.

For one thing, a real AGI would have to hit a very narrow target (nearly as hard as the one for success) to do anything _understandably_ evil, warlike, or in any way recognizable to humans as an adversary; that would require understanding human value systems and then acting against them. The far broader target is simply that the AGI has a goal function, you're not part of the goal function, and you're made of matter that isn't optimally organized to meet the goal function.

And the reason why, despite that, AGI is not only worth contemplating but in fact critically important and valuable, is that the success path for AGI solves literally every single problem humans currently face, leaving only challenges like "does the universe have a finite amount of entropy to make use of?".

<comment><USER2> My favorite part of this scary tale is the assumption that a general AI would be highly motivated. I think Marvin the robot from Douglas Adams is a much more realistic outcome of GAI than anything Yudkowsky or Vernor Vinge has nightmares about. Or an autistic thinking machine that doesn't even want to talk to us, and gets lost in contemplation.

Based on how the truly scary smart people I know behave, a GAI would spent much its time panicking about meta-GAI, and how to make it safe for AIs like itself.

<comment><USER5>
      My favorite part of this scary tale is the assumption
      that a general AI would be highly motivated.

Largely by definition, we can't stop a superintelligent agent from doing what it wants to do. We could build 9 strong agents in a row that just gazed at their navels and proved graph theorems all day, but if the 10th one managed to turn the "motivation" dial all the way up during hyperparameter tuning, then it'll wipe us out in its quest to build more computers so it can prove more theorems.

</comment></comment></comment></comment></comment><comment><USER6> For those that don't know, Russell co-authored the seminal book on AI with Peter Norvig, who was also a Berkeley professor and is the head of research at Google.

<comment><USER7> One of the few books I kept when I left school was a reference manual called ANSI Common Lisp from Russell's CS 289. There was something special about the author's writing - not only did he clearly "get it," he was able to communicate "it" through written English. Years later when I heard about YC, I thought the name Paul Graham sounded familiar, and sure enough, same guy.

</comment></comment><comment><USER8> I was expecting a rant about how natural language is an inefficient interface for AI, and I got Friendly AI propaganda instead.

Does anyone buy into this at all?

It seems inherently anti-intelligent to limit AI to what we think is smart. Are we going to make AI inherit our very limitations? That seems backward.

I don't see any objective value in artificially constraining progress as a mean to preserve humanity. However, if I did seek to preserve humanity, I would do so by coming up with a strong case for humanity's necessity, which I would make available to AIs.

Thinking of AI in terms of anything other than Aliens is a mistake.

</comment><comment><USER9> Human compatible? That sounds complicated, how about taking the set of In- Human-Behaviour, and test for any new behaviour wether it is inherently in it?

</comment><comment><USER10> Joe Halpern is involved? Awesome! Great guy, although I haven't seen him since grad school.

If nothing else, he may be the best songwriter I personally know. ;)</comment>


Drugmakers allegedly inflated prices over 1k% and 44 states are now suing - <AUTHOR> https://www.cnbc.com/2019/05/11/us-states-accuse-teva-and-other-drugmakers-of-colluding-to-inflate-prices-over-1000percent.html <comment><USER2> Glad that they managed to find individual defendants. The corporate veil is too often present to protect malicious actors.

</comment><comment><USER3> Considering that many people have literally died as the result of this, what are the chances they'll get any more than a slap on the wrist?

</comment><comment><USER4> Gosh, you could just knock me over with a feather.</comment>


Genes, Race, And IQ - <AUTHOR> http://andrewsullivan.theatlantic.com/the_daily_dish/2009/04/genes-race-and-iq.html

<comment><USER2> Oh, I thought the submission was going to be an article from The Atlantic, and not just a short Andrew Sullivan blog entry about a new book,

<http://www.wwnorton.com/catalog/winter09/006505.htm>

[http://www.amazon.com/Intelligence-How-Get-Schools- Cultures/...](http://www.amazon.com/Intelligence-How-Get-Schools- Cultures/dp/0393065057)

which does happen to be well worth reading.</comment>


Marshal Zhukov's Pocket Knife - <AUTHOR> https://blogs.harvard.edu/houghton/the-castane-collection-series-three-marshal-zhukovs-pocket-knife/ <comment><USER2> Zhukov is actually very controversial nowadays. A lot of the early historians accepted his autobiography as a the main source pretty uncritically.

There is another historical view of Zhukov:

\- He wasn't the military genius he portrayed himself to be and actually stole the credit for the achievements of other officers. For example he supposedly saved Stalingrad yet was nowhere near it, he came to Halkin Gol when the battle was beginning and didn't credit the staff chief for the excellent planning and so forth.

\- He was a Stalin yes-man, and in stark contrast to his autobiography, there is no proof he ever challenged him on any decision. This is what Stalin liked, he needed talented commanders, but also people who will follow his orders to the letter.

\- His handling of the Red Army in the summer of 1941 while he was Chief of Staff, was absolutely disastrous. He lost millions of men in ill planned counter attacks. Stalin kept him around because he followed orders (see above).

\- Besides being a yes-man, by all unofficial accounts he was a brute and enjoyed humiliating his soldiers and officers. He was often in fights even with other marshals.

\- He didn't care much about his soldiers lives, this is why Stalin sent him to capture Berlin as soon as possible.

\- He wasn't demoted because of paranoia (he probably wouldn't be alive). He was actually demoted because he allowed his troops to pillage Eastern Germany for months, and took a huge share of the booty. Not that Stalin was particularly humanitarian, but this meant that discipline had become nonexistent.

\- Far from being apolitical and not involved in intrigue, he actually participated in a coup against Malenkov and Beria. He almost became the leader of the Soviet Union, however was cleverly outmaneuvered by Khrushchev who put him in retirement.

\- His mythos began during the time of Brezhnev, when he needed to rewrite the history of WWII to suit his ends. His autobiography was certainly not written by him, as are its subsequent 15 editions which hilariously contradict each other often. His daughter supposedly finds forgotten pages that just happen to complement the evolving views of Kremlin for over 40 years.

<comment><USER3> I never understood why there is this tendency to make military leaders into heroes. They are not better and not worse than leaders in any other area. The top leaders most likely are just very good politicians.

If we want heroes then it should be the poor guys who have to go to battle for no payoff and often loss of life or limb.

<comment><USER4> >>>I never understood why there is this tendency to make military leaders into heroes. They are not better and not worse than leaders in any other area. The top leaders most likely are just very good politicians.

Historically, casualties in war were far higher than they've been lately, so successful military leaders _USUALLY_ were lauded for their ability to not bring home friendly troops in bodybags repeatedly. Now, I'm not even sure we've seen them accomplish that. With a few exceptions they are mostly energetic, charismatic, yes-men who deliver mediocre results.[1]

Having worked in a 3-star headquarters....flag officers are definitely cut from a different cloth, personality-wise, even compared to many of the Colonels I've worked for directly under them.

>>>If we want heroes then it should be the poor guys who have to go to battle for no payoff and often loss of life or limb.

It's not like we ignore them, almost all medals for valor are awarded to junior ranks (enlisted guys and a few junior officers). As a rough estimate, look at the living Medal of Honor recipients from Iraq & Afghanistan[2]. The only exception in recent memory is maybe the field-grade Marine officer who organized the defense of Camp Bastion[3], and he was given a much lower medal (still, a Silver Star is very impressive).

[1][https://www.theatlantic.com/magazine/archive/2012/11/general...](https://www.theatlantic.com/magazine/archive/2012/11/general- failure/309148/) [2][https://en.wikipedia.org/wiki/List_of_living_Medal_of_Honor_...](https://en.wikipedia.org/wiki/List_of_living_Medal_of_Honor_recipients#War_in_Afghanistan) [3][https://www.stripes.com/news/marine-awarded-silver-star- for-...](https://www.stripes.com/news/marine-awarded-silver-star-for-response- to-camp-bastion-assault-1.257138)

</comment></comment></comment><comment><USER5> > As we know, there was no invasion of the Japanese home islands—not by the > Soviets, nor the Americans, nor the British. Fearing massive loss of life > both among Allied forces and the Japanese civilian population, President > Truman ordered nuclear bombs dropped on the cities of Hiroshima and > Nagasaki. These bombings quickly brought the war to a close.

Why do American scholars have to justify the bombings each time? "President Truman ordered nuclear bombs dropped on the cities of Hiroshima and Nagasaki." would have been sufficient. It feels like newspeak in 1984.

<comment><USER6> Well hindsight is 20-20, and anyone commenting on the bombs has the luxury of decades of historical analysis of the war.

My understanding is that the nuclear bombs were approximately as destructive as the fire-bombing technique. (Commonly used in the war) If we fire bombed Hiroshima and Nagasaki, just as many lives would be lost but we would never talk about it.

The difference is that fire bombing required many more planes and many more bombs, thus increasing American military risk. Enemy civilian casualties would be similar.

<comment> daniel-cussen Firebombing would also fail to intimidate the Japanese command. They knew what firebombing was and were prepared for it. But not for nuclear bombs. Nuclear ordnance was the only reason the Emperor Hirohito cited for the surrender.

<comment><USER4> Firebombing would also fail to intimidate the SOVIET command. I've frequently read postulations that was an additional impetus for dropping the 2nd bomb: to demonstrate to Stalin that we could mass produce them, lest he try to make any more aggressive moves in Europe. It was also a convenient way for the Japanese Emperor to "save face". People also postulate that the overwhelmingly successful Soviet invasion of Manchuria had the Japanese leadership worried: the Soviets had a reputation for brutality and a possible Soviet invasion of the Home Islands would turn out even worse than an American one (for the Japanese people). It looks much better to say "we threw in the towel due to America's wonder-weapon" than "we threw in the towel because we were terrified of Stalin".

</comment></comment></comment></comment><comment><USER7> By the way the legend of the picture in the middle of "Four Commanders of the Allied Forces in Berlin" says that the 4th general is de Gaulle but it is clearly not. I think it is de Lattre.

<comment><USER8> I'm sure you're right; those cheeks are de Lattre and I think de Gaulle always had a moustache.

Plus the five stars.

</comment></comment><comment><USER9> Dissapointing that this text about a historical figure should end with the trope about the bomb ending the war before anyone invaded, when the historical consensus is that the best that can be said is that the bomb and the soviet entering the japanese theatre by invading manchuria had about _equal_ importance.

[http://blog.nuclearsecrecy.com/2013/03/08/the-decision-to- us...](http://blog.nuclearsecrecy.com/2013/03/08/the-decision-to-use-the-bomb- a-consensus-view/)

</comment><comment><USER7> If you have not watched it, the movie The Death of Stalin is great, mostly historically accurate, though not in the depiction of the characters, and extremely funny. Zhukov is represented as a hilarious bully who intimidates the whole politburo.

<comment><USER10> Later Zhukov was on his track to become a dictator in 1957, flaunting his personal command over Soviet military on multiple occasions. It took a combined pushback of (otherwise feuding) Soviet elites to bring him in check.

<comment><USER7> I am not praising Zhukov himself. The way he spent men to win Stalingrad is another questionable aspect of the character.

<comment><USER11> Stalingrad was the decisive turn of fate during WWII, if the allies had lost it, the Axis would probably take over the all of Europe. Sure, a lot of men were sacrificed, but this was total war, those sacrifices saved tens of millions.

We live with this slight propaganda that the USA was the responsible to liberate Europe, but in fact, USA showed up here at the end of the war when the Russians had already inflicted a major defeat on the German army, and it was the sacrifice of Russian men at Stalingrad (together with any material help the British could afford to spare to that front), that ultimately won the war for the Allies, not D-day.

<comment><USER12> The Allies weren't exactly sitting on their hands. Just taking the strategy of picking off North Africa and Southern Europe before hitting Western / Central.

Trying to reduce the war down to any one side is, IMHO, wrong and suspect.

<comment><USER13> They were letting the Soviets do the heavy lifting, contributing more materiel than manpower until late in the process.

I don't blame the western allies for the strategy but the soviets don't get adequate credit for the privation they suffered.

<comment><USER14> > soviets don't get adequate credit for the privation they suffered.

this old trope? the soviets were horrible monsters. they killed jews (many pogroms). during peacetime they killed at least as many people as the nazis did.

the great trick that the soviets managed is to make us belief they were on the right side of history, when in reality they were on the worst side, every single time.

one of the greatest mistakes of WW2 was the US support of the USSR. they should have left the two madmen to kill eachother. the world would have been a much better place. what did we get in return? USSR dominating half of Europe, murdering, scheming, destroying the social fabric of the continent for half a century.

<comment><USER15> Towards the end of the war there clearly wasn't US support for the USSR; we were racing them towards Berlin (and lost) and raced them to get Japan to surrender (won that one). The optics of completely abandoning someone you are ostensible allied with are poor.

All of that is orthogonal to the fact that over a third of the people who died in WW2 were Soviets, and many people do not realize it, which is the point the grandparent comment was making.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> Brodsky's poem On the Death of Zhukov brilliantly reflects his controversial life. The english translation isn't very good, but it carries some of the flavor-- [https://link.springer.com/chapter/10.1057/9780230373396_3](https://link.springer.com/chapter/10.1057/9780230373396_3)

</comment><comment><USER17> I didn't know that the Soviet made pocket knives,they look quite similar to swiss army knives!

This part really struck me hard because my tools are all mint, despite being bought years ago:

> For me, the knife's most compelling quality is that it clearly saw hard use, > most probably by Zhukov himself: some of the blades are stained; a slot that > once contained a toothpick is empty; and a couple of tools appear to be > broken off, including what was once a small pair of scissors.

<comment><USER18> First Swiss army knifes were produced in the late 19th century, and the idea of combined blades and tools existed long before. Folding pocket knives were in wide use everywhere, so surely Russians manufactured and used them even before USSR.

</comment></comment><comment><USER19> I only noticed wine opener

<comment><USER20> I noticed the same.

I wonder when the pen knife changed from being a simple folding blade to the multitooled wonder we have today?

Also does it say something about generals and the military that the two missing/broken tools are the scissors and tooth pick?

Edit: Apparently they have a longer history than I would have thought

"The Swiss Army Knife was not the first multi-use pocket knife. In 1851 in "Moby Dick" (chapter 107), Melville references the "Sheffield contrivances, assuming the exterior - though a little swelled - of a common pocket knife; but containing, not only blades of various sizes, but also screw-drivers, cork-screws, tweezers, awls, pens, rulers, nail-filers, countersinkers.""

[https://en.m.wikipedia.org/wiki/Swiss_Army_knife](https://en.m.wikipedia.org/wiki/Swiss_Army_knife)

<comment><USER21> How about this one from ancient Rome?

[https://www.fitzmuseum.cam.ac.uk/collections/greeceandrome/7...](https://www.fitzmuseum.cam.ac.uk/collections/greeceandrome/70534)

<comment><USER22> The tulip motives on the knife makes me wonder if it was actually Roman and not from the Middle East.

<comment><USER23> The Roman Empire covered a huge area, including some of the Middle East and North Africa so it's highly likely that people, objects, and ideas all moved around. They could well have taken inspiration from something seen at one of the outposts.

</comment></comment></comment></comment></comment><comment><USER24> I used to have one of these knives :)

</comment><comment><USER25> "an American general at the time expressed the desire that Germans would henceforth be a "nation of shepherds", incapable of playing a major part in world affairs—yet shortly after the war's end, it was well on its way to accomplishing the Wirtschaftswunder, the economic miracle that it maintains to this day. Japan arose the ashes in a similar fashion. And the United States…the country that for the entire postwar period served as a source of aspiration for people the world over, a model of domestic stability and good governance, and a guarantor of its allies' military security, is now riven by toxic political discord and stands at the brink of social collapse."

<comment><USER26> I don't agree with that last statement at all. Americans have seen too little hardship to have an idea what "social collapse" and "toxic political discord" is.

<comment><USER12> Considering my family lived through WWII in the thick of it and later came to America, and this is not a unique occurrence, to say "Americans don't know" is just wrong.

<comment><USER27> I think by "Americans" he means "the upper middle class Nth (N>=4 or so) generation Americans that dominate political discourse the 364 days of the year that aren't election day"

</comment></comment></comment></comment><comment><USER28> > _As we know, there was no invasion of the Japanese home islands—not by the > Soviets, nor the Americans, nor the British. Fearing massive loss of life > both among Allied forces and the Japanese civilian population, President > Truman ordered nuclear bombs dropped on the cities of Hiroshima and > Nagasaki. These bombings quickly brought the war to a close._

According to other narratives by historians, the main cause of the Japanese surrender was the Russians entering the Pacific war.

[https://www.history.co.uk/shows/x-company/articles/why- did-j...](https://www.history.co.uk/shows/x-company/articles/why-did-japan- really-surrender-in-ww2)

[https://apjjf.org/-tsuyoshi- hasegawa/2501/article.html](https://apjjf.org/-tsuyoshi- hasegawa/2501/article.html)

Is worth remembering that not everyone buys into the idea that nukes are ultimate weapons that definitively ended the second world war. There are actually a variety of views on the subject, which from a game theory perspective creates dangerous instabilities within the doctrine of Mutually Assured Destruction.

<comment><USER29> >>These bombings quickly brought the war to a close.

>According to other narratives by historians, the main cause of the Japanese surrender was the Russians entering the Pacific war.

Both - USSR entering the war and the nuclear bombs caused the Japanese surrender. It would have happened soon even without the bombs anyway. The main role the bombs played is to avoid USSR actually invading Japan territory. Ultimately that saved Japan from the Korea and Germany fate.

[https://en.wikipedia.org/wiki/Soviet%E2%80%93Japanese_War](https://en.wikipedia.org/wiki/Soviet%E2%80%93Japanese_War)

"The invasion of the second largest Japanese island of Hokkaido, originally planned by the Soviets to be part of the territory taken,[18] was held off due to apprehension of the US' new position as an atomic power."

<comment><USER27> >"The invasion of the second largest Japanese island of Hokkaido, originally planned by the Soviets to be part of the territory taken,[18] was held off due to apprehension of the US' new position as an atomic power."

I checked the citations for that part of the article and they do not back up that claim. They are talking about what territory the USSR will get and which surrendering troops will become Soviet POWs. There is no discussion of "well, we better hold off because the 'mericans are just gonna glass 'em all for us".

Furthermore, the Americans had a shovel ready invasion plan with a start date in November. The soviets didn't have a real plan yet. It's not like they called off an invasion because we started lobbing nukes.

Anyone who says that showing the USSR what we were capable of was more than just a side benefit understand the Pacific campaign. If we didn't nuke them we were going to firebomb them. It was basically common knowledge that these people were dedicated enough to follow their cause to the death. What was learned on Iwo Jima and confirmed on Okinawa was that they were going to make us fight for every inch. In lieu of that it's hard to justify not using every available means to kill them dead enough that they surrender without invasion or soften them up prior to invasion. Imagine the scandal has Truman just decided "this whole atom bomb thing is barbaric, we're going to invade them and/or let the soviets burn half a million lives invading them".

<comment><USER30> Before the bombs were dropped the Japanese had already intimated that they were willing to surrender with one condition: that the emperor would stay emperor. The U.S. wanted an unconditional surrender, but in the end accepted a conditional surrender while calling it unconditional in public. Stalin's entrance in the war sharpened minds on both the Japanese and American side, as neither wanted Stalin involved anymore.

It's hard to prove exactly, but Stalin's entrance into the war is almost certainly the precipitator for it's quick end without an invasion. For the Japanese, partial occupation by Red Army troops was a much worse prospect than occupation by American troops. For the U.S., giving Stalin a say in Japan was utterly unnecessary and very much undesirable at that point (as opposed to much earlier in the war). The A-bombs wouldn't have moved the Japanese military or emperor very much: they weren't more devastating that fire bombing already had been, and there weren't any notable cities left to devastate in Japan.

<comment><USER28> I may not have stated this well enough, but my original interest was sparked more by the fact that there is a variation of beliefs in the story, than neccesarily what the original motivations truly were in history, as I was wondering about the resulting implications in strategic game theory. MAD only works if all sides have the same standard for destruction in their beliefs and probability measure for the word assured. The US political culture has a general view that nukes end a war, if the political culture in other countries think that it is possible to develop strategies where you can get nuked and still continue with the war, then that is very important thing to be aware of.</comment></comment></comment></comment></comment>


Arkansas Strengthened Its Noncompete Law - <AUTHOR> https://casetext.com/links/88h2af0qh2u6fkpr40u5lwlah <comment><USER2> Surely this has nothing to do with the fact that Walmart corporate headquarters are in Bentonville, Arkansas.</comment>


Ask HN: Why did Aaron Swartz commit suicide? - <AUTHOR>

<comment><USER2> Suicide is complicated. Not talking about Aaron here.

Some people engage in self harm behaviour. They do not intend to die. They die by accident.

Some people engage in self harm behaviour. They have mild intent to die, and they do die. Sometimes these attempts are repeated often, for years, before completion.

Sometimes people feel themselves to be in an impossible place. And thoughts of suicide are comforting. At least there's a way out. And when someone has decided to try suicide they often appear calm and happy. Things are decided and they know what to do.

There are many things that contribute to people committing suicide. These things include mental ill health, relationship breakdown, debt, legal pressure, societal pressure.

</comment><comment><USER3> That's not really possible to answer definitely. Most of the speculation is centered on his pending criminal charges.

</comment><comment><USER4> I do not believe that even Aaron Swartz could have given you a full answer to that question.</comment>


Ask HN: What the hell libpcre1 is ?( a horror story for sysadmins ) - <AUTHOR> demo video : https://youtu.be/AnwAl25MxMU<p>I tried to remove libcpre1 on SLES 12SP1 and install again to downgrade. We are using cluster management software which automatically send yes to all zypper commands. After hitting enter on cluster management system it deleted about 700 packages in a few seconds and we lost tools from ssh to rpm which is crucial to reinstall lost packages. We can only access system via console connection. The only option is left to reinstall from yesterday backup but I wonder why this package remove all software on the system <comment><USER2> libpcre1 is a C library that implements parsing and execution of regular expressions. A lot of packages need some kind of regular expressions, so rather than implement that themselves they use libpcre. Without libpcre they can't function, so when you uninstall it you must also uninstall everything that requires it.

If you were downgrading in order to install some application which isn't compatible with the current versoin of libpcre, then you should be aware that most of the rest of the system may not function with that older version. You should fix your application instead so that it can use the version that comes with SLES12. If you can't you might be able to manually install a second copy of the libpcre1 package, but arrange for it to be in a different location than the normal version.

Have fun!</comment>


The Time For A Stateless Global Reserve Currency Is Fast Approaching - <AUTHOR> http://www.thegenesisblock.com/the-time-has-come-for-a-stateless-reserve-currency/

<comment><USER2> This is an article about the ideal world. The actual world will be using the Dollar for the next 50 - 100 years. Why? Two main reasons, the UN would never agree on something new and because the Dollar works well for _enough_ of the world as is.

Yes, there are valid criticisms of the current system. But what is required to supplant it requires so much power and authority that one group can not amass it. And even if they did such power would corrupt and ruin them.

The Euro is interesting, but the ECB does not have the same powers that the US federal reserve and treasury dept. do. The ECB shares a lot of policy making with the sovereign member states.

<comment><USER3> The US $ may stay the official reserve currency but I expect many pairs of countries to start dealing directly in one of their own currencies. The effective transition off of the dollar as the reserve currency will probably be gradual as more alternative currencies are used by trading partners.

<comment><USER2> Many countries already do that today and this is not 'a reserve' currency use.</comment></comment></comment>


32-Bit Integers and Why Old Computers Matter - <AUTHOR> http://motherboard.vice.com/read/32-bit-integers-and-why-old-computers-matter <comment><USER2> time_t is 64-bit on openbsd since last year, [http://www.openbsd.org/papers/eurobsdcon_2013_time_t/](http://www.openbsd.org/papers/eurobsdcon_2013_time_t/)</comment>


Gears API Blog: Hello HTML5 - <AUTHOR> http://gearsblog.blogspot.com/2010/02/hello-html5.html <comment><USER2> More evidence for Google not being evil. I certainly can't imagine any other company of Google's size cheerfully abandoning a technology that has been supplanted by open standards. Google just seems to reflexively prefer open standards, whether it suits their corporate interest or not.

<comment><USER3> I don't disagree with the premise. But the phase-out of Gears is because it wasn't a revenue stream, but rather a means of enabling new scenarios on the web that weren't otherwise possible. Its standardization is a win for everyone, including Google.

</comment></comment><comment><USER4> Hopefully Google keeps Gears alive long enough for HTML5 to really take root. Though relying on any kind of plugin is undesirable, Gears supplied a functionality that was useful and unattainable any other way. I'm glad to see that the innovations spurred by Gears will soon be ubiquitous without the need of the plugin itself.

</comment><comment><USER5> this has been their stated direction for a while now, just wish they'd hurry up and release the updated version of gmail that doesn't require gears..

</comment><comment><USER6> My kingdom for gCal to be available offline in Chrome on Ubuntu-64! Hopefully this will be a step towards that.

</comment><comment><USER7> this is awesome news, the introduction of gears always worried my as it looked to be fighting web standards as opposed to leveraging them, nice to be proved wrong.

I wonder why gears wasnt initially a plugin that let you use html5 apis in browsers that didnt have support?

<comment><USER8> Were those apis set in stone in 2007 when Gears first came out?

<comment><USER7> they arent ever set in stone, browsers can quite happily ignore web standards from time to time. Would have made upgrading from gears just happen by magic though.</comment></comment></comment>


Nick Carr: Everybody's appy nowadays - <AUTHOR> http://www.roughtype.com/archives/2010/01/everybodys_appy.php

<comment><USER2> _And then Apple opened its iPhone app store, and in a Cupertino minute everything changed. Suddenly, the idea of tethered software seemed normal again. (Ironically, when Apple was struggling to survive in the 90s, the Web's run-anywhere ethic had served as an important lifeline for the company, reducing the importance of Microsoft's control of the PC software market.)_

Ironically? Hells no. This is just how it works, and Apple knows how to play smart. When you're at the bottom, you want everything open and free, but when you start getting more control and market share you want things locked down.

</comment><comment><USER3> _The battle between universal software and proprietary apps is also, in other words, a battle between two models for the future of personal computing. While both models will almost certainly survive, only one will be the dominant model._

Why does one have to be "dominant"? What does that really mean? Are mainstream movies and books "dominant" and why should I care? Actually the answer is, "yes they are dominant." But the following "why" is the interesting part.

So long as there's a choice, the forces of openness are winning.

</comment><comment><USER4> Ah, but are they bulletproof?</comment>


Ask HN: Please review my Mac App - <AUTHOR> http://goto11.net/oneway <comment><AUTHOR> Hello HN,

In my limited spare time I have been working on a small side project, it is an application for Mac OS X called OneWay. To sum it up, it is a contextual FTP, SFTP uploader (upload only) that integrates into the Finder's Context Menu. It allows you to upload any files and folders in your Finder simply by selecting them and right-clicking. You can also easily add frequently used locations to your context menu for future use! _And You don't even need the application open!_

Basically my goal was to create the easiest possible uploading solution that is light-weight and doesn't require me to open a Terminal. While applications like Cyberduck and Transmit are great, they really offer way more functionality than I need. I found that 90% of the time when I use FTP/SFTP I am only uploading, and secondly I find that I am often uploading to the same places (host, directory).

Of course, there are bugs... But how will I find them if I don't push it out the door already! With that said here are some helpful things to keep in mind.

#10.5 (Leopard) Users#

Unfortunately there are a few known issues for you. Firstly, it is out of my control but your contextual menu items will be added to your Finder under the "More -> OneWay" menu. If you do NOT see them there at all for some reason, please try restarting your Finder. You can do this by opening a Terminal, and typing `killall Finder`.

#10.6 (Snow Leopard) Users#

Your contextual menu items will live in the top level of your Finder menu! Though please note that in order to SEE the menu items you MUST have at least 1 file or folder selected. Also note, that if you add enough menu items, OSX will group them all under the "Services" menu instead of in the top level.

Thanks for checking out my app guys. Please post any feedback or bugs that you find.

Nick

</comment><comment><USER2> I'm sure those example files were legally obtained if you're posting them publicly :)

<comment><AUTHOR> Of course! :)

</comment></comment><comment><USER3> Nice! This is a perfect little utility for uploading files to a backup server. I regularly post family photos to a remote server via sftp. ExpanDrive has been my goto solution for ease of use, but OneWay presents even less friction. When my needs are a little more complex I tend to hit the command line.

<comment><AUTHOR> I use it for this as well. I've also been thinking about adding support for a one-directional rsync.

<comment><USER4> If you were to add a "rsync to" context item to a folders ctrl-click, you'd officially be my hero.

</comment></comment></comment><comment><USER5> I tried your app -- nice app. I like the idea.

A suggestion: One thing would be nice is the ability to have the url of the file copied into the clipboard once the file is uploaded. Like with TinyGrab, when you take a screenshot and it uploads the image. It would probably mean adding a new textfield (for the base url) in the form for adding a new bookmark. Might be useful for sharing files that you just uploaded.

Edit: i didn't think about when you upload multiple files, though. Maybe it would be the last file uploaded?

<comment><AUTHOR> Yea, I have been thinking about how to do this right. It would be easy to allow a user to optionally add a "Public Base URL" for a bookmark that you upload to, but like you said, that would really only work if you are uploading 1 file.

Definitely open to suggestions on this one.

<comment><USER6> Automatically copying the URL to the clipboard could irritate some users. They may be using the clipboard for something else. A couple of alternatives:

* Right click on an item in the list and have an option to 'Copy URL'?

* Hover over an item in the list and a 'Copy URL' button appears? (Similar to how more information is provided when you hover over a youtube comment.)

<comment><AUTHOR> >> Right click on an item in the list and have an option to 'Copy URL'?

This is precisely what I was thinking, but how does this work if you have uploaded a folder containing 100 files? Or 100 individual files. I really would like to implement this feature I'm just not sure the best way to deal with multi-file uploads.

<comment><USER6> I havent tried the app so I'm not entirely familiar with how it works, but surely right clicking on the folder and coping will copy a link to that folder. If however, you right click on one of the files within that folder and select 'copy url' then it will copy the url that points directly to that file.

It sounds like it should be fairly simple to design.

</comment></comment></comment></comment></comment><comment><USER7> Neat idea. Honestly? I'd find it more valuable to have a "copy to dropbox public folder & copy public url" shortcut.

</comment><comment><USER8> Thanks for making it open source! I'm learning iPhone dev and this small app will be great to me to jump on OS X dev later on.

</comment><comment><USER9> Very nice and Lifehacker picked up your app via the One Thing Well blog. Congrats!

[http://lifehacker.com/5537304/oneway-puts-ftp-uploads-in- you...](http://lifehacker.com/5537304/oneway-puts-ftp-uploads-in-your- right+click-menu)

<http://onethingwell.org/post/592716083/oneway>

</comment><comment><USER10> For those who have just purchased Transmit 4, it has been overhauled with many Applescript additions. Using that on Snow Leopard, it would be very easy to create your own contextual items with Automator.

That being said, if I didn't already have a nice FTP solution, this would be a great little app.

</comment><comment><USER11> Good show mate. I was using cyberduck for something just like this usecase and was getting annoyed at how many clicks it took to upload a couple files many times and thinking to myself I should fork it and add in my usecase to cyberduck. I will be watching this.

</comment><comment><USER12> One suggestion, an option to use it like tinygrab. Right click, 1) it uploads the file 2) Moves it to trash 3) copies a bit.ly URL to the file

Like TinyGrab for files, this would make large file sharing much easier

</comment><comment><USER13> Very nice app, nrj!

Windows users can use WinSCP for similar functionality:

[http://tinyapps.org/blog/windows/200710220700_send_to_sftp.h...](http://tinyapps.org/blog/windows/200710220700_send_to_sftp.html)

</comment><comment><USER14> I've been thinking about building something like this for years, I have just never had the bandwidth to get around to it. Thank you for doing it for me!

</comment><comment><USER15> Somewhat off topic CSS suggestion. Add this to your header :)

       border-bottom: 1px solid #C7C9CB;

<comment><AUTHOR> Nice, I like it. A couple friends have pointed out some design oddities.. definitely where my skills are lacking.

</comment></comment><comment><USER16> This is cool, thanks! I wish it supported Amazon's S3 -- the tool I'm currently using is terrible. :-)

<comment><AUTHOR> Be sure to "Check for Updates" in the "OneWay" menu. Amazon S3, and SCP will be coming soon.

<comment><USER17> Looks like a great app. I'm a dev for Rackspace Cloud Files, and I'd love to see Cloud Files support in OneWay. Let me know how I can help. My email address is in my profile.

</comment></comment></comment><comment><USER18> I will definitely use this. Going to install it when I get home [no Mac at work :( ].

</comment><comment><USER19> tried OneWay out, works great, really easy to use. Great work. Thank you.

</comment><comment><USER20> I'm not a mac user, but I really think this is a great idea. Your website does a good job at informing the visitor about the software and I think the benefit is clear to the right visitors.

Good luck.</comment>