"This change deletes the C implementations of the Go compiler and assembler" - <AUTHOR> https://github.com/golang/go/commit/b986f3e3b54499e63903405c90aa6a0abe93ad7a <comment><USER2> So what is the bootstrap process going to be? Other than already have a Go compiler I mean. Or is it have a Go cross compiler?

Maybe it matters less, you used to always assume bootstrap from C but that more or less died with C++ based compilers, although you can do a multistage bootstrap from the last gcc before C++ still.

<comment><USER3> It is explained in the design document: [https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdw...](https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdwTuF7WWLux71CYD0eeD8/edit)

Basically, you start from the last C version, and every version is supposed to be able to compile the next one.

<comment><USER4> So if you want to avoid trusting trust, you need to audit not only a C compiler and the source code for the Go compiler you plan on using, but also every past Go compiler as well?

<comment><USER5> You can't avoid trusting trust. "Ken was here" :)

<comment><USER4> You can. You just have to bootstrap all the way up.

<comment><USER6> What if any intermediate version is found to contain the violation of trusting trust? Every go maintainer has to build every version sequentially from that version to current version.

</comment></comment></comment></comment></comment></comment><comment><USER7> I still just don't understand why they insist on building their own toolchain. It just doesn't make sense to me.

When you set out to build a programming language, what is your objective? To create a sweet new optimizer? To create a sweet new assembler? A sweet new intermediate representation? AST? Of course not. You set out to change the way programmers tell computers what to do.

So why do this insist on duplicating: (1) An intermediate representation. (2) An optimizer. (3) An assembler. (4) A linker.

And they didn't innovate in any of those areas. All those problems were solved with LLVM (and to some more difficult to interact with extent GCC). So why solve them again?

It's like saying you want to build a new car to get from SF to LA and starting by building your own roads. Why would you not focus on what you bring to the table: A cool new [compiler] front-end language. Leave turning that into bits to someone who brings innovation to that space.

This is more of a genuine question.

<comment><USER8> What's your counter-proposal?

If you're building a new language, you need a new AST. You can't represent Go source code in a C++ AST.

There _are_ alternate compilers for Go, in the form of gccgo and llgo. But those are both very slow to build (compared to the Go tree that takes ~30s to build the compiler, linker, assembler and standard library). And the "gc" Go compiler runs a lot faster than gccgo (though it doesn't produce code that's as good), and compilation speed is a big part of Go's value proposition.

<comment><USER7> I would never set out to build a language I wanted people to use and not build it as a front-end for LLVM. I don't want to write an optimizer or assembler.

I don't doubt for one second that llgo takes a longer time to compile. And in exchange for slower compile times you benefit from many PHDs worth of optimizations in LLVM. And every single target architecture they support.

It's easy to build something faster when it does less. I'll admit there's no blanket right answer to that tradeoff.

<comment><USER8> Yes, that's why there's both gc and gccgo (llgo came later). Apart from the rigour of having two independent compilers, they are seeking different tradeoffs. gc is very interested in running fast, and gccgo benefits from decades of work that have been put into gcc's various optimisations.

Does that answer your original statement that you didn't understand why we build our own toolchain?

<comment><USER9> Well I still don't understand. Russ says it was for segmented stacks, but doesn't explain why those were necessary. You say it was for compile speed, yet gcc and llvm can crank out millions of lines a code a second at similar optimization levels as the Go compiler. Neither of these are convincing explanations.

</comment></comment></comment></comment></comment><comment><USER10> Wow, github doesn't handle big diffs well. Some sort of automatic pagination would really help.

<comment><USER11> I would make the case the "big" diffs are a problem. Unless there's a _really_ good reason (and bad dependency management is not a good reason) then commits should be smaller and more logically related.

<comment><USER12> This is a merge commit, which means the diff is going to include all the changes on the branch being merged. Even if all the individual commits are small, a merge diff can still be very large.

</comment></comment></comment><comment><USER13> Congrats to the Go team, but that link kills the browser....

<comment><USER14> You can read the original commit on Gerrit, it's less explodey.

[https://go-review.googlesource.com/#/c/5652/](https://go- review.googlesource.com/#/c/5652/)

</comment></comment><comment><USER15> Nice. That's a step forward. Another bit of legacy code bites the dust. Another step forward to the post-C world we need.

(If you want to compile with a different compiler as a check, there's an LLVM- based compiler for Go.)

<comment><USER16> Go is also supported in GCC, as GccGo.

</comment></comment><comment><USER17> RSC is awesome.

</comment><comment><USER18> And the boy pulled up his bootstraps and became a man.

</comment><comment><USER19> So, if I'm understanding this correctly, they are to re-write the Go compiler in Go, and compile it using the currently published compiler (i.e. 1.4)?

Could someone, kindly, explain how future versions would be built? Thanks!

<comment><USER20> My understanding is that they wrote code that translated the C code for the original Go compiler into Go code. This translation wasn't fully general -- it made assumptions about how the C code was written -- but it allowed the port from C to Go to be very precise (i.e. bug for bug). So now that the Go compiler written in Go can compile Go, that's what they'll use going forward, and they will slowly work to make it into more idiomatic Go instead of machine-generated Go.

So to answer your question, this new Go-written-in-Go compiler will initially be compiled by the Go-written-in-C compiler. The output from that will be an executable Go-written-in-Go compiler, and _that_ will be used to compile itself in the future. I.e. Go compiler version 1.4 will be used to compile Go version 1.5 will be used to compile Go version 1.6...

Keep in mind that this is not at all unusual. The C compiler GCC has been compiled using older versions of GCC for a long time. Having a compiler compile itself is a sort of milestone that many languages aspire to as a way of showing that the language is "ready."

<comment><USER21> Its generally called "self-hosting" when a compiler can compile itself[1]. It was a pretty big deal when Clang became self-hosting[2] in 2010.

[1] [https://en.wikipedia.org/wiki/Self- hosting](https://en.wikipedia.org/wiki/Self-hosting)

[2] [http://blog.llvm.org/2010/02/clang-successfully-self- hosts.h...](http://blog.llvm.org/2010/02/clang-successfully-self-hosts.html)

<comment><USER19> Thank you both for your inputs.

</comment></comment></comment></comment><comment><USER22> So this means the go compiler is completely written in go?

<comment><USER8> In source control, yes. There's not yet a stable release where that's the case though; Go 1.5 (due later this year) will be that release.

</comment></comment><comment><USER23> congrats gophers! That's a big step for the language.

</comment><comment><USER24> Anyone else seeing this post as the 1st and 2nd link on the front page of HN?

<comment><USER25> In case is gets fixed, here's what I see, to help diagnose the bug [1]. Both posts point to [https://github.com/golang/go/commit/b986f3e3b54499e63903405c...](https://github.com/golang/go/commit/b986f3e3b54499e63903405c90aa6a0abe93ad7a), have the same HN item id=9097404, but different comments counts.

[1] [http://i.imgur.com/xATOXPb.png](http://i.imgur.com/xATOXPb.png)

<comment><USER26> This must be the new and improved "eventually consistent HN" that dang has been talking about.

</comment></comment></comment><comment><USER27> Great news!

</comment><comment><USER28> Once you go Go, you never Go back!

<comment><USER29> Then, clearly, the right path is to never go Go.

</comment></comment><comment><USER30> One does wonder if the register re-naming from their abstract (but misleading) names to their proper machine names (e.g., from "SP" to "R13") wasn't at all a reaction to the (in)famous polemic on the golang build chain.[1]

[1] [http://dtrace.org/blogs/wesolows/2014/12/29/golang-is- trash/](http://dtrace.org/blogs/wesolows/2014/12/29/golang-is-trash/)

<comment><USER31> SP, FP, and PC are all still there. What we did was make the conventions more uniform across all architectures. The rules for certain corner cases for when SP and PC were references to the virtual register and when they were references to the real register were inconsistent. As part of having a single assembly parser, we made the rules consistent, which meant eliminating some forms that were accepted on only a subset of systems, or that had different meanings on different systems.

I'm a little surprised you brought that post up to begin with. It completely misses the point, as I explained in my comment here at the time ([https://news.ycombinator.com/item?id=8817990](https://news.ycombinator.com/item?id=8817990)). When I wrote that response I also submitted a comment on the blog itself with a link to the HN comment. That blog comment has not yet been published. If you're going to keep sending around links to such an inflammatory blog post, could you also try to get my comment there approved?

Thanks.

</comment></comment><comment><USER32> Here we go again. _Another_ compiler that can't be bootstrapped from source code. It's a packaging nightmare. Another magic binary to trust not to have a Thompson virus.

<comment><USER33> > Another compiler that can't be bootstrapped from source code.

It _can_ be bootstrapped from source - it just needs to be bootstrapped either using gccgo[0], or using the 1.4 compiler (which is guaranteed to work for all 1.x compilers, not just 1.5)

> Another magic binary to trust not to have a Thompson virus.

"Reflections on Trusting Trust" gets posted on HN regularly, and it's an interesting exercise, but you are _far_ more likely to have an exploit hiding in plain sight in a compiler compiled from source once than you are to have one that only appears after multiple iterated compilations.

It's a good concept for security experts and compiler developers to be aware of, but the likelihood is incredibly small.

Also, for what it's worth, "Trusting Trust" is over three decades old, and there have been numerous response to it in the interim, with lots of study. It's like saying "Your problem reduces to 3-SAT, and satisfiability is NP- hard, so you can't solve it', throwing your hands up, and leaving it at that. In reality, solving 3-SAT in the general case is NP-hard, but it is well- studied enough that, in practice, solving SAT/3-SAT is actually pretty easy most of the time. Some of these responses have even been posted elsewhere in this thread, though they're also pretty easy to find online as well.

[0] which is written in C++ - frankly, I'd be much more concerned about a single-compilation bug in _any_ C++ code than I'd be about a multiple- compilation bug in Go.

<comment><USER34> [http://www.dwheeler.com/trusting-trust/](http://www.dwheeler.com/trusting- trust/) < David A. Wheeler's Page on Fully Countering Trusting Trust through Diverse Double-Compiling, for an example.

Though the diversity available for a go compiler written in go isn't very tremendous.</comment></comment></comment>


Widespread AWS DNS issue. Status dashboard is green - <AUTHOR> http://status.aws.amazon.com/?awsDown=true

<comment><USER2> Yup, we're seeing massive connectivity issues across EC2, SQS, etc behind 99designs.com.

<comment><USER2> Seems limited to us-east.

<comment><AUTHOR> Yep, seems that way to me. As usual us-east is the least reliable...

<comment><USER3> Thats why we moved to US-WEST(oregon).

</comment></comment></comment></comment><comment><USER4> My services are working in us-west. What issues are you seeing?

<comment><USER2> Looks like internal DNS resolution is failing, e.g: ec2-XX-XX-XX- XX.compute-1.amazonaws.com.</comment></comment>


Moving Away from Puppet: SaltStack or Ansible? - <AUTHOR> https://blog.ryandlane.com/2014/08/04/moving-away-from-puppet-saltstack-or-ansible/ <comment><USER2> Glad you landed on Salt, I've used both as well and came to many of the same conclusions. But once I got to grok salt, it's been serving us pretty well for over a year.

For deploys, I've thrown a slack bot in front of the salt master; this lets our engineers deploy from slack, get a quick summary of what's going out with a link to github, and then post back the result of the deploy with a final success/fail message.</comment>


EllisLab Seeking New Owner for CodeIgniter - <AUTHOR> http://ellislab.com/blog/entry/ellislab-seeking-new-owner-for-codeigniter

<comment><USER2> I love CodeIgniter, I wish my PHP skills were better than they currently are so I can help take this on. Of all the PHP frameworks I have TRIED to use, CodeIgniter has been the easiest for me to grasp. They documentation is great and easy for me to follow.

Other PHP frameworks just fly over my head and leave me glassy eyed. I hope the right people take this on.

<comment><USER3> Have you tried Laravel out?

<comment><USER2> I have gone through the documentation but nothing has been as straight forward as CodeIgniter (for my level). Some of the language is hard for me to understand. I am very impatient and like to start hacking right away.

Have you tried CodeIgniter? Is it an easy transition from CodeIgniter to Laravel?

<comment><USER4> I've tried both. I considered Laravel far superior / simpler. Wasn't even close.</comment></comment></comment></comment>


Show HN: NumRace - Can You Count From 1 To 9? - <AUTHOR> http://numrace.com/

<comment><USER2> I liked the concept but I found the game had a couple of annoying issues.

1\. The clickable area around the number needs to be a little bigger. I am using a HTC One M7 and it often wouldn't register the clicks.

2\. After this first game, a full screen ad popped up and that really annoyed me. I don't mind the banner ads at the bottom, but full screen ads are VERY, VERY annoying.

<comment><AUTHOR> Hi there!

1\. Ok, thanks for the feedback. The annoying thing with Android is to be able to test on many devices, so thanks a lot for the feedback.

2\. In principle you should only see a full screen ad every 4 games, not right after the first one. So apologies if this happened to you, again I'll investigate.

</comment></comment><comment><USER3> Nice game! Simple, quick to learn but yet difficult to master.

One nitpick, though: the game should support other orientations than the default one (on an iPad). At least the "other" landscape orientation. I had to rotate my device 180 degrees to a more uncomfortable position with the cover I have.

</comment><comment><USER4> Haven't see a game like this yet. The concept is very simple and the game design is very cool & well made

</comment><comment><USER5> fun! well made, I see that you are using Unity, did you have to buy the full version to publish an app with it?

Also, the app store description says that it requires iOS 4.3 and later. Does this depend on the version of Xcode you are using? I recently released an app and it requires iOS 7.1 and later!

<comment><AUTHOR> Thanks!

I'm using the (free) indie version, which requires you to have the Unity splash screen at startup.

I find Unity to be really nice and efficient as a cross platform development tool (I developed this game over a week-end).

Regarding iOS requirements, I don't know, I think I used the default settings to be honest!

<comment><USER5> My high score so far is 30. You should have a leader board perhaps in the next update.

I've been pondering Unity for a while,. BTW, how long would it take to get the hang of it? (I am an intermediate programmer)

<comment><AUTHOR> There is a game center leaderboard (just click on the cup).

Unity is pretty easy to understand - I'd say a couple of days?

<comment><USER5> Ah yes just saw it!</comment></comment></comment></comment></comment>


Our new search index: Caffeine - <AUTHOR> http://googleblog.blogspot.com/2010/06/our-new-search-index-caffeine.html <comment><USER2> old index: problem: parts of the index were refreshed at a faster rate than others; the main layer would update every couple of weeks and to refresh a layer of the old index, Google would analyze the entire web first. impact: there was a significant delay between when Google found a page and made it available to its users.

new index: solution: caffeine, Google's new index will analyze the web in small portions and update its search index on a continuous basis, globally. As Google find new pages, or new information on existing pages, Google can add these straight to the index. improvement: user can find fresher information than ever before—no matter when or where it was published.

recent changes in Google search result page suggested that the searched results appears to be categorized further to the different structured data. This could be inline with the rolling out Caffeine.

<comment><USER3> Hmmm... come to think about it I have been getting quite a lot of results from CodeWeblog.com in my search results. Unfortunately, that site seems to be a link farm and its so useless that I reported it to the Google spam page. Maybe its appearance in the top sites was a result of the Caffeine changes.

<comment><USER4> Ah! Its not only me who is annoyed by these codeweblog.com results.

Is there a way to remove domains form google results as a preference? I know I can always add "-site:codeweblog.com" But can I save this preference for future search queries?

</comment></comment></comment><comment><USER5> Wow is that ever a terrible infographic.

<comment><USER6> I couldn't tell if it was a joke... "magic internet stuff here"

<comment><USER7> Considering they had that page with pigeons to explain how pagerank works, I would assume it's not supposed to be very serious.

<comment><USER8> The pigeon ranking page was an April 1st joke. It's exactly funny in one day of the year. Saying how you'll rank 85% of web searches is a little bit more serious business.

<comment><USER9> This shouldn't affect the ranking; updated data will just get to the ranking algorithm faster, is all.

</comment></comment></comment></comment></comment><comment><USER10> 100 petabytes of information (100 million GiB) feeding their index is more than I would have expected.

<comment><USER11> On the other hand it doesn't seem that much when you consider todays storage density.

You can fit around 0.5 PB into one rack nowadays. 200 racks then sounds a bit less impressive than 100 Petabytes.

However, that ofcourse doesn't account for redundancy, nor for doing anything useful with such a pile of data. Both of which impose some interesting challenges at that scale.

<comment><USER12> You think Google's mainline storage of their index is on _disk_?

 _It is to laugh._ I don't think that's been true since around the time they stopped building server shelves out of lego or cardboard.

They've been keeping the full text of the web in RAM (for the snippets), with indexes, several times over. With independent live siblings in multiple datacenters.

<comment><USER13> Well, the serving part of their index is in memory (or largely so) as has been publicly announced. But are you really suggesting they might do the same for indexing?

Let's suppose for a second that they can get 8GB sticks of RAM for 1/3 the retail price of around $600, and for the sake of the back of the envelope calculation, let's round it up to ten GB. So let's call it $20/GB of RAM. Four gigabyte sticks might seem cheaper until you consider they'd have to double the number of machines to hold them. Now they mentioned that the size of the index is 100,000,000 GB, which means that they would have spent $2 billion on this RAM alone, not to mention all the other components that are required to house it.

Especially considering how much their capital expenditure has fallen lately ([http://www.datacenterknowledge.com/archives/2010/01/22/googl...](http://www.datacenterknowledge.com/archives/2010/01/22/google- capex-edges-higher-in-q4/)), it doesn't seem very likely that they could afford to spend even $2 billion on this. And the assumptions I made about the price of RAM are pretty generous, considering they'd have had to have been acquiring this for some time, and therefore that the RAM would have been more expensive previously.

<comment><USER12> Your retail RAM prices are inflated about 3x, but I think your point is correct.

You know how Google has always had that little blurb about how long it took to process your query on the results page? Back when they were for sure running everything out of RAM, it was usually something comically small like 0.00025 seconds. I just checked and it's now more like 0.25 seconds.

Perhaps they've done testing and found that absurdly fast results don't matter (or no longer matter) as much as they thought?

<comment><USER13> Sorry, that's just what I saw on Newegg for 8GB sticks. I did not intend to mislead.

I am under the impression that most of Google's index is still served out of ram. Certainly I never saw any announcements to the contrary. The other poster also pointed out that sub-millisecond latencies are pretty unlikely. Considering all the diverse sets of data they need to pull from, it would be similarly difficult to believe that tens or hundreds of disk seeks could be carried out in a timely manner for each query to yield a 200 ms total calculation time. If I had to guess they have probably just started taking factors into account that they did not before. For example, perhaps they are measuring total internal latency rather than just the latency of a particular sub-system. Or maybe there are components that go to disk while the posting list lookups are done in RAM.

</comment></comment></comment></comment></comment></comment><comment><USER14> What I dislike about Google's current algorithm is that when I search for a common term such as "javadoc simpledateformat", the API documentation for Java 1.4.2 (as opposed to 1.6) comes up as apparently, that is what most documents on the web link to. I hope this new index will allow more recent and more up- to-date documents to get to the top of the results list.

<comment><USER15> In Firefox I have the following quick-search to fix that (and make searching the API a little faster):

[http://www.google.com/search?q=java+6+%s&ie=utf-8&oe...](http://www.google.com/search?q=java+6+%s&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en- US:official&client=firefox-a)

This should also work in Chrome.

<comment><USER14> Yep, I've done exactly that for the Java 6 docs in Chrome and FF. The general point of how do you keep the latest version of a set of documents the most relevant still applies however. I hope Google can fix this :)

</comment></comment></comment><comment><USER16> Nice to see they reference an iPod instead of a Nexus One. Somehow I feel that if it was a Microsoft announcement, the company would reference Zunes.

<comment><USER17> Nexus One total internal storage: 512MB 'the largest iPod': 160GB

The Nexus One is a phone, not a device with a large storage capacity. If Google made one of those, I'm sure it would be referenced.

edit: the Nexus One box also includes a 4GB micro SD card, but that'd be comparing flash memory with harddrives, and is hardly an intuitive explanation.

</comment></comment><comment><USER18> That is an _enormous_ amount of data.

I wonder how much is junk?

<comment><USER19> You're new to the Internetz, right? :)

<comment><USER18> I meant junk like search engine cheating forum and usenet posts and sites registered to repeat stock phrases and content of spammy aggregator sites, rather than making judgements against lolcats and breakfast time tweets.

</comment></comment></comment><comment><USER20> huh? 40 miles of iPods.

+5 for an intuitive analogy. Priceless!

<comment><USER21> hopefully iPod-miles (iPm?) will become a new ISO standard for measuring storage capacity.

<comment><USER22> Would nicely complement a station wagon full of tapes for bandwidth.

</comment></comment></comment><comment><USER23> I'm waiting for Google to open up an API or dashboard on top of Caffeine to compete with some of the monitoring tools like Radian6 and Jive. They could own that space and it's growing like crazy right now. Plus, we don't need any more companies coming out with "social web" search engines.

</comment><comment><USER24> Why is every measure of storage always "demystified" with a paper stack analogy? I find it funny that when the paper stack would not provide the right scale, the used a stack of storage devices...

</comment><comment><USER25> they could be using in-memory compression. they could be storing hot parts of index in memory. they could be using both.

</comment><comment><USER26> code or it didn't happen...

</comment><comment><USER27> Seems like the target group of this blog post are teenagers, not even students. Some street slang would look well near the size measurement in ipods. =)

</comment><comment><USER28> Aren't we all using Duck Duck Go anyway?

</comment><comment><USER29> Java or C++

<comment><USER30> Google uses only four languages in their codebase: C++, Java, Python and Javascript. Yegge has covered this pretty extensively in the past. Go Google him.

<comment><USER31> And Go, presumably.

<comment><USER29> I asked what this project was probably written in...</comment></comment></comment></comment>


We Stole Your Pictures, Now We're Going To Sue You - <AUTHOR> http://www.jeremynicholl.com/blog/2010/05/03/afp-steal-photos-then-sue-photographer-2/

<comment><USER3> What a disgusting story, big corporations act like this all the time simply because they don't expect the 'little guy' to step up and bite back.

The gall to do this sort of is incredible, what bugs me is how people that come up with this sort of thing sleep at night. Corporate accountability is really rare.

<comment><USER4> _When Mr. Morel posted his photographs on Twitter, he made no notation that he was in any way limiting the license granted to Twitter or third parties or that he was in any way limiting the ability of Twitter and third parties to use, distribute, or republish his photographs._

Wow, this is _really desperate_ on AFP's part if this is what they are relying on to justify their alleged right to use the pictures. It is way beyond doubt that a copyright holder retains rights to his copyrighted works even though they might be posted to the internet. In posting them, he gives at least an implied license to the internet host to display them publicly in the venue itself but it is utterly absurd to conclude from this that any third party can simply hoist them for his own profit. The fact that a sophisticated news organization would resort to such an argument strongly suggests that they have no defense to the photographer's claims.

This issue came up on HN not long ago when the idea was floated for publishing comments from this site in a monthly magazine format and the question came up whether the person who sought to do so had to get individual permissions from each of the posters. My comment on why individual permissions were needed (with some legal citations for the copyright law) is here: <http://news.ycombinator.com/item?id=1262546>.

The AFP lawsuit filed in Manhattan is for declaratory relief and for commercial disparagement. Most people, when victimized by others, have no idea that an adverse party can take their attempts to fight back and use it as a basis for suing them in a distant forum. Here, the photographer made claims that his copyrights had been infringed. This allowed AFP to file its lawsuit asking a court to consider the photographer's claims, to weigh them against its contrary claims that no copyrights had been infringed, and to render a judgment one way or the other on the issue (with AFP asking the court for a judgment that the copyrights had not been infringed). This sort of legal action can be used as a bullying tactic by a big player to force a smaller player to settle up or incur significant legal expense (on the other hand, for what appears to be a legitimate use of the same tactic by Google, see [http://www.billboard.biz/bbbiz/content_display/industry/e3i8...](http://www.billboard.biz/bbbiz/content_display/industry/e3i8f1f42046a622bda0da37f7b3ad8a680)). Here, the tactic has obviously backfired on AFP, since the photographer, in effect, responded with both guns blazing with counterclaims that put AFP at risk for some serious liability.

By the way, this piece sorts through the legal issues fairly astutely. It is well written from that perspective (and otherwise).

<comment><USER3> I was actually surprised at the level headed tone of the piece and the solid legal footing, most of the time stuff like this is 'shooting from the hip'.

Wouldn't it be nice to have a 'tit-for-tat' law, stating that if you sue someone on wrongful grounds that the rest of the world can use your arguments in court against you as precedent in the future.

That would make companies and individuals alike tread a lot more careful before bringing nonsense like this to court.

Don't do to others what you don't want done to you...

Btw, it's great to have you back as a regular contributor on HN, we don't see eye to eye on some stuff but that doesn't mean I'm not always parsing your comments and learning from them every chance I get. Between you and patio11 you could start a site of your own!

</comment></comment></comment><comment><USER5> I am glad to see this guy fighting back, I hope he wins. Trial by jury is a nice touch, nobody likes big corp screwing the little guy.

<comment><USER6> If he wins it will set a nice precedent. But I'm afraid that not everybody would go to all that trouble (trials are long and expensive), and so "little guys" will only be marginally safer in these kinds of situations.

</comment></comment><comment><USER7> 5 years ago I took a picture of a cup of coffee and uploaded it to Wikipedia. It's been the picture used on English Wikipedia's coffee page for quite a while.

I see it used EVERYWHERE. When using TinEye I can find hundreds of places using it, only a fraction actually giving attribution like the license requires. But, I don't really care.

However, recently I noticed a hotel was using the photo in an advertisement at SeaTac airport, clearly breaking the CC license I put it under. A friend thinks I should send them a bill. What do you guys think?

<comment><USER8> Presumably you put it under CC-BY-SA, not one of the noncommercial-use-only CC licenses, or Wikipedia wouldn't be able to use it. The hotel could have used your photo legally in their ad if they had properly attributed you.

However, under the Federal Circuit precedent set by Jacobsen v. Katzer, I think they're still liable for copyright infringement, and you're still entitled to monetary damages.

</comment></comment><comment><USER9> _On March 26th AFP responded, filing suit in Manhattan federal district court claiming Morel had "made demands that amount to an antagonistic assertion of rights"._

I don't think this is well phrased. From what I can tell "antagonistic assertion of rights" is a legal phrase that appears in the counter suit, but is not the reason AFP is filing suit. "Antagonistic" is being used as a purely descriptive, and not a judgemental term (more like, say "declaratory" than "malicious").

That said, I can't say I'll be too torn up if the phrase "antagonistic assertion of rights" hangs around AFP's neck like an albatross.

<comment><USER10> Good catch--- it appears in a paragraph discussing why the court should consider the case at all, so is mostly a jurisdictional comment. Courts are by default reluctant to issue declaratory judgments, because the U.S. legal system requires an "actual case or controversy" to consider a case. So AFP is arguing that, by setting up an "antagonistic assertion of rights", Morel has initiated an actual controversy over the matter that the court should consider, i.e. it's not just AFP asking for a declaratory judgment on a purely hypothetical issue. Of course, Morel's countersuit dispenses any doubts on that point.

</comment></comment><comment><AUTHOR> I hope that AP get screwed big time if only so that they learn a lesson. They have been such jerks with regards to C&D and the bogus copyright claims.

<comment><USER11> It's not AP, it's AFP (Agence France-Presse) that's accused of stealing the photos.

<comment><AUTHOR> Oops. Good catch. I obviously misread that big time. Wishful thinking I guess..

</comment></comment></comment><comment><USER12> Supposing he does win, I hope he gives a significant amount of the profit to aid Haitian victims.

<comment><USER13> I think it's important to realize that he _is Haitian_. Imposing your demands on a Haitian in matters dealing with his own catastrophe is kind of presumptuous, don't you think?

<comment><USER12> These are not my demands, these are my prayers. Presumptuous? ...possibly, I am not here to pass judgement but if the same were to happen to me then I would donate it without a blink. Also I feel that natural disasters, while the majority are localized, do not belong to the nation of their happening - <USER2> belong to all of us. We are all on Spaceship Earth and we are all humans. When I peronally give donations I do not consider it an 'imposition', so why should campaigning others to follow suit be considered as such? You can downvote me all you like but I personally think the world would be better if everyone were more generous, and I will stand by my view.

<comment><USER14> If natural disasters belong to all of us, should this particular photographer be more generous than other people with some dough to spare? Wealthy people are mentioned all the time on HN. What prompted you to state your prayers in this case?

</comment></comment></comment></comment><comment><USER15> Stupid idea that you can "own" the pictures of a major world event.

<comment><USER16> Of course you can, if you took them.

<comment><USER17> What happens to the woman on the picture displayed, though. If she survived, hopefully she deserves a share, too? Did she have to give consent to having her picture published?

<comment><USER18> In general, photojournalists don't need consent forms.

In fact, in most places in the western world you don't need consent forms if the photos are taken in public, period. It gets a little trickier when it's a portrait or something. But if you go out on the sidewalk of a busy street where people have no expectation of privacy and start snapping photos, they really don't have any claim to the revenue from those photos.

<comment><USER17> I guess being half naked in the rubble of your house could be an interesting case then. Private or not?

<comment><USER18> Journalism has different rules. But in general in the US the law deals with "Expectations of Privacy." If the party in the picture has a reasonable expectation of privacy then yes, consent would be required.</comment></comment></comment></comment></comment></comment>


Deploying full fledged flask app in production - <AUTHOR> http://kracekumar.com/post/71120049966/deploying-full-fledged-flask-app-in-production

<comment><USER2> Great resource. I've only ever used Flask in production on Heroku, was yet to seriously try my hand at a full-on dedicated server like DO. Aside: in your experience what's better? dedicated hosting or going with a PaaS (for Flask apps)

</comment><comment><USER3> It's actually a wrong way of doing things.

We are almost in 2014, you must use a configuration manager. It's better and simpler.

<comment><USER4> can you provide some insight on how you would setup your flask stack using a config manager?

I've heard people using Nginx + Gunicorn + Flask combo. Can someone explain why you need Nginx + Gunicorn?</comment></comment>


Google Teases a Big Gaming Announcement for March 19th - <AUTHOR> https://www.engadget.com/2019/02/19/google-will-unveil-gaming-project-at-gdc/ <comment><USER2> If it is the streaming thing the article mentioned, I just don't get it. How do they get around the fact you introduce round trip delay to every input? Do they somehow have a way to do client side prediction and reconciliation?

<comment><USER3> I don't think they get around it. For most genres except FPS the round trip delay doesn't cause any issues in gameplay. What's an extra 60ms roundtrip when most people have reaction times around 300ms?

<comment><USER4> Here we go again, someone is conflating reaction time with latency sensitivity...

Try the following: write a simple snake game in JS or whatever your preferred language is. However, instead of turning the snake in the keyDown/keyUp event handlers, start a 60ms timer and change direction only when the timer fires. Experiment with various time intervals and snake speeds to find out what's the acceptable latency/speed region.

<comment><USER5> Have you by any chance done this? Care to share the results?

</comment></comment></comment></comment><comment><USER6> Project Stream will probably allow those on Linux, macOS, and especially ChromeOS to play most games, including recent ones. Which may let people switch platform more easily and/or avoid dual-booting.

</comment><comment><USER7> I wonder if the industry eventually plans to address In-App Purchase fees, it is always worth it for small companies since it offers payment process, presence at global level, marketing tools, international transactions and some protection against fraud. But if you are a big game development company those benefits don't add-up and you already would have those tools/frameworks already in place.

<comment><USER8> I've implemented IAP on Android and it is absolutely disgusting garbage looking API, worse than win32 api. Now it sits at 400 lines of ugly boilerplate spaghetti code. It turned me into firm believer that Google (at least Android branch) don't know how to do good API.

</comment></comment><comment><USER9> If it is Project Stream, Google better announce some serious partnerships alongside the service. Their best bet would probably be to outright buy a major publisher - maybe Ubisoft or Take-two has a price tag?

<comment><USER10> Why would they need to buy a publisher? I'm guessing they would just launch it as a subscription service which gets you access to stream games and then you would have to buy each game individually to play them.

<comment><USER11> That's a dubious proposition. Spend a fair bit of money on games only to have Google cancel the product later.

I mentioned Nvidia in another thread but they partnered with Valve/Steam to stream games you purchase there. Steam is unlikely to suddenly fold up and vanish.

<comment><USER10> Maybe, maybe not. I played assassins creed during the beta and they are actually giving me a full copy of the game soon so I don't see why they wouldn't be able to give users full copies to the games they bought if they ever shut it down.

<comment><USER12> If that's not an explicit commitment in their terms and conditions though, yeah, it'll be a pretty hard sell. (At least for me anyway. I take my gaming seriously.)

Google has an uncomfortable tendency to cancel projects.

</comment></comment></comment></comment></comment><comment><USER13> Probably Google's version of Twitch?

<comment><USER14> Actually they've had youtube gaming for some time now. Pretty sure Twitch is far far ahead but still, they have their version already

<comment> forgot-my-pw > Pretty sure Twitch is far far ahead

Stream quality is still far better with Youtube, especially outside North America. Twitch has better community and highlight clip feature.

</comment></comment></comment><comment><USER15> Will anyone trust google after the number of projects they've dropped?

<comment><USER16> Will people ever stop making this comment on HN?

It's just not adding anything to the conversation anymore. I've seen it 50 times across the past 50 announcements of even the smallest thing Google launches.

Reader was discontinued five and a half years ago. Code search six years ago. Wave seven years ago. Plus wasn't discontinued, it just pivoted to paid G Suite-only. Sometimes well-intentioned products just don't make money. Let's move on.

<comment><USER15> I'd say, That's a bit hyperbolic. I don't think google has launched 50 things in the past half year, and that's the time it's taken me to shift positions and begin to consider this question.

It's for Games and gamers. Gamers, especially PC gamers are a very different market than your general genial HN-going techie or casual content consumer. For them a well intentioned product which may "disappear" is something they have increasingly had enough of. Further google doesn't have the brand reach of Sony, MSFT, valve, Nintendo etc.

If it is a concern I have, then it's a concern other gamers will have.

while I admit it's easy to dismiss my 1 line comment as matching some sort of pattern, it wasn't written with that history in mind. It was written spontaneously and without an agenda.

</comment></comment></comment><comment><USER17> Headline from February of 2021

"Google Announces The End Of Project Stream"

I can't help but think there's a good number of people who just won't use this because it's Google and they will assume it'll be gone in a year or two. I guess the same goes for game developers as well.

<comment><USER18> I think a lot of people _really_ overestimate how pervasive this view is outside of this website.

<comment><USER19> And inside this web site. Who cares who's streaming your games? What matters is that it works and that the price is reasonable. It's good to have options.</comment></comment></comment>


Product Blast: Get blasted to exciting products you don't know - <AUTHOR> http://productblast.net/ <comment><USER2> Doesn't seem to work. I checked only IoT and got accessories for my Tesla.</comment>


FbStart – A new program designed to help early stage mobile startups - <AUTHOR> http://fbstart.com/ <comment><USER2> Yeah does anyone remember the facebook App ecosystem?

Remember when facebook was encouraging developers to make apps and then they jammed them all?

Remember how much time/money and effort 100's if not thousands of developers lost? Thanks but no Thanks.

<comment><USER3> As not a FB app dev, what did FB do to screw over everyone?

<comment><USER4> Really, they chose users over developers, which IMO was the right choice. In the early days of the Facebook Platform, games spammed up feeds with useless content - games like Farmville would require you to share to get things, for example. Facebook would take steps to restrict this, and they'd find a new way to promote themselves at the expense of user experience.

<comment><USER5> I never understood why Facebook let that happen, just give users a spam score that's displayed on their account page. People would soon stop sending requests for completely unsolicited things.

<comment><USER4> Facebook rightly puts the burden of compliance on the developers, not the users. Spam scores would just lead to user experience and customer service nightmares. "Why does it say I'm spamming?! I'm just playing a game! Fix it!"

<comment><USER5> I think messaging on Facebook could be an excellent ecosystem for a lot of things. A spam score would work or allowing people who make shitty requests to be blocked from doing so on the request.

Users know exactly how annoying it is to receive such invitations having received them themselves.

</comment></comment></comment></comment></comment></comment><comment><USER6> Great way to get hooked on a bunch of monthly service fees when the introductory free period runs out. Reminds me of the Columbia Record and Tape Club.

<comment><USER7> I hate it when that happens too, but I don't think this is will happen in FbStart's case. We're a program partner and companies who get accepted get a code they can redeem on our site for 6 or 12 months free, depending on the track. No credit card is required (at least for our service, not sure about other partners), so if they decide not to subscribe at the end of the program, they can just go.

<comment><USER8> I think what Patja is saying is that after 6 to 12 months the users will have developed a dependency on your platform and will have to either cough up cash or replatform.

<comment><USER7> Makes sense, but that scenario is true for any freemium model though, not just free packages like FbStart.

</comment></comment></comment></comment><comment><USER9> We got approved for the accelerate track, and frankly it's awesome. And they keep upping the benefits. Parse credits just got bumped to $20K which we use, so it's like free money. I don't quite get what FB is getting out of this, but they are certainly earning a lot of developer goodwill.

</comment><comment><USER10> Kind of ironic that the iPhone in the background header has Google+ visibly installed, but it doesn't show a Facebook icon

<comment><USER11> Reverse image searching that stock photo reveals the rest of the screen, still no Facebook icon: [http://i.imgur.com/fnFGbtX.png](http://i.imgur.com/fnFGbtX.png)

[1] [http://measurecp.com/category/mystery- shopping/](http://measurecp.com/category/mystery-shopping/)

</comment></comment><comment><USER12> They could fix their terrible app approval process if they really want more people on their platform. I tried to fix up a hackathon entry and submit it as a production app recently, I annotated what every permission was used for, submitted the review request, and got declined with them stating, "please annotate what every permission is used for". I suspect they are just paying people minimum wage in a foreign country to do the reviews nonsensically. Android is destroying iOS in market share in part due to having an easy to submit to app store, they really need to take notes.

<comment><USER13> "Android is destroying iOS in market share in part due to having an easy to submit to app store"

For instance, they are absolutely CRUSHING the "flashlight apps that utterly pwn your privacy" space.

</comment></comment><comment><USER14> They're rather vague about the details, but it looks like it's all about advertising credits on Facebook.

</comment><comment><USER15> Seems like the FB version of Microsoft's long running Bizspark program. [http://www.microsoft.com/bizspark/](http://www.microsoft.com/bizspark/)

</comment><comment><USER16> I was recently approved for FBStart's bootstrap program.

So far, I've only used the UserTesting.com credits (which are awesome) but I plan to use the adobe trial

I ran a FB ad campaign once in the past so I'm not sure that I'm eligible for their ad credits which is the biggest perk in my eyes.

I'd argue it's a good program that gets fledgling apps/companies to build an early connection with Facebook. That's their ROI; introduce you to FB ads early and you'll want to use them later

</comment><comment><USER17> For some of these services, I would likely choose to not lock myself into something that is quite expensive per month after the 3 or 6 months provided by the program. Obviously, if you were gonna use them anyway, it makes sense to get them free. But, with subscription services, I tend to think long and hard before going down that road, if there are one-time cost alternatives.

And, it's easy and cheap for subscription services to give away a few months for free; it's a proven marketing model, in fact.

That's not to say there's no value here. For people that will use these services and get real value out of them, it's a win-win; the companies providing the services get a new qualified lead who will likely turn to a paying customer in 3 to 12 months, and the developer gets to launch with less capital invested.

</comment><comment><USER18> Wouldn't the best thing Facebook could do for apps be to get their API breakage and docs under control?

</comment><comment><USER19> This seems interesting. My initial reaction was "what's does facebook get" from this. I had originally thought that this was only going to be open to apps that somehow incorporate Facebook's api (or their wholly owned company's APIs). So I was surprised to read that it essentially said "no facebook required". Which seems nice.

The 30 day live requirement is also telling. I'm guessing that facebook can judge if any initial uptick is occurring and then use this in their acceptance criteria.

Th fbstart program seems to be some sort of way for facebook to get a grip into the very early stage mobile ecosystem. Primarily for their acquisition strategy (think early instagram, whatsapp, etc.). It also seems like a direct competitor to the accelerator programs?

<comment><AUTHOR> > Th fbstart program seems to be some sort of way for facebook to get a grip > into the very early stage mobile ecosystem.

I think so, too. I just submitted one of our apps and it literally took less than 10 secs. And they were like submit any other app too you may have.

</comment></comment><comment><USER20> People who are baffled by:

* "what Facebook could gain from this?" (must be an evil ploy, yada yada)

* what seems to be a wordpress blog

* the free photo (in spite of Facebook's stock photo deal)

* the G+ icon on the iPhone

* etc

are missing the simple fact that Facebook is not a single giant apparatus of propagating the One Way from top to bottom, but it's instead a conglomerate of regular Joes (and Joannes) like you and me, except smarter on average (probably). It's a good sign I'd say that some of these people care about startups, and get OK'd to start scruffy 20%-style projects such as this.

As I always say about Facebook: I deeply dislike their product‡, but the company is friggin' awesome.

‡ _too much noise and unethical shit to put up with for questionable value_

<comment><USER11> The 'baffled' responses in this thread actually present valid arguments, unlike your response.

</comment></comment><comment><USER21> I'm sorry for being a bit OOT, but does anyone have a list of these kinds of things, sort of like "goodies to grab when I start my startup somewhere in the near future"? E.g free AWS/Google Cloud credits and stuff.

Not the one like $10 voucher, at least few hundreds or thousands. Cash is king esp in early stage, but you don't want to cut coupons as it'll distract you from building your product.

<comment><USER7> Check out the deals page on F6S: [http://www.f6s.com/deals](http://www.f6s.com/deals)

</comment></comment><comment><USER22> Is there a company that is pre-packing these benefits packages for startup accelerators? Most of them look suspiciously similar to one another.

<comment><USER7> Not that I'm aware of. We're a FbStart partner and have been on the partner side of these kinds of benefits packages a few times, and each time, we worked directly with the organization that was giving away the packages (Facebook in this case).

</comment></comment><comment><USER11> I was hoping they provided more information regarding the IPR if you were to be accepted to the program.

My first impression was that the site itself did not seem official (by that I mean in direct affiliation with Facebook). AFAIK Facebook often reuse the same design/colors on the their projects (documentation, available positions, FAQ and so on), however not on fbstart.

<comment><USER23> Official (and several months old): [https://developers.facebook.com/blog/post/2014/05/14/fbstart...](https://developers.facebook.com/blog/post/2014/05/14/fbstart- accepting-applications/)

<comment><USER11> I do not claim it is not official. Just making an observation from my first impression of the site. Considering they are asking me for personal information I would _at least_ like to unconsciously be aware that they are affiliated with Facebook.

Yes, I see the irony in that last sentence.

</comment></comment></comment><comment><USER24> For a company with a market cap of almost $211 billion dollars, and a deal to use Shutterstock photography in their advertising, it's odd to see that they chose a free (and overused by startups who can't afford stock photography) image from unsplash.com as their header picture.

<comment><USER25> I don't think that'd odd at all. There's nothing wrong with that image. It does it's job perfectly fine, despite high market cap or fancy partnerships.

<comment><USER26> I couldn't help but be distracted by the dark line behind "early stage" \-- it looks like a strikethrough.

</comment></comment></comment><comment><USER27> It would be very interesting for our company to get involved with this at a partner level as we often work closely with startups during the earliest stages. Is there anyone from Facebook here who can get me in touch with the right people to discuss this? Thanks!

</comment><comment><USER28> Even $60K is such a ridiculously small amount, what do you do with it? It not even enough to hire a junior developer for a year.

EDIT: it looks like they don't want anything in return, so it looks good to me.

<comment><USER29> it's $60k in benefits, not actual cash. This is a freebies pack for startups not an accelerator or seed funding.

</comment></comment><comment><USER30> Looks great but where is the catch? Are all those perks free or do startups need to give away equity or something like that? (I'm not a native speaker so I maybe miss something here.)

<comment><USER23> Doesn't look like there's any equity involved. I suspect this is a way for Facebook to spot "the next big thing" as early as possible..?

<comment><USER31> Timeo Danaos et dona ferentes, which roughly means "Beware of Greeks bearing gifts."

One doesn't build a multi-billion company by giving things away.

<comment><USER32> Maybe a modern version: beware of geeks bearing gifts?

<comment><USER31> The saying is almost 2000 years old [1], so I think if somebody wanted to modernize it they've had the chance :P

[1] First writing appears in a text from AD 49

</comment></comment></comment></comment></comment><comment><USER33> Curious thing the site lacks of og meta tags

<comment><AUTHOR> Yes - it's built on top of Wordpress VIP. Seems to me they are simply interested in curating a list of the next next big apps.

</comment></comment><comment><USER34> A Wordpress blog, what is up with that?

A way to show that it's not just about sucking us further info the Facebook vortex?

</comment><comment><USER35> What's in it for Facebook ?

<comment><USER36> The ability to buy these companies _before_ they cost a billion dollars.

</comment></comment><comment><USER37> what's the catch? they only talk about benefits, what do they want in return? fb isn't a charity.

</comment><comment><USER38> What does Fb get in return for this?</comment>


The Design Behind Arabic Calligraphy - <AUTHOR> http://creativebits.org/inspiration/arabic_calligraphy

<comment><USER2> Shame you don't see more of this around, it's really one of the most elegant artistic expressions I've ever encountered. It's a fascinating example of working under constraints, as if the artists said 'No picturing living things? No problem!'

I think one of the big reasons that the Semitic scripts in general haven't caught on in western design is that they tend to be very 'dense', particularly the calligraphy. It's easy to point to a Kanji symbol and say 'Ohh that's Kaze, that represents Wind', whereas Arabic calligraphy tends to look like just a cursive jumble without knowledge of the language. Couple this with the strong capacity to offend by including the wrong religious symbolism, and you have a recipe for disaster without considerable special knowledge.

I'm a pretty quick transliterator of Arabic, but some of the Calligraphy (and, for that matter, many modern squared out fonts) is still quite challenging. Hopefully as the Arab world as a whole grows wealthier (by Median not Average) the design tools will catch up and allow for more of this stuff to filter in to the western design world.</comment>


Editor-independent advice for working with Lisp - <AUTHOR> https://groups.google.com/group/comp.lang.lisp/msg/6e91e20f2f371b52?&noredirect

<comment><USER2> As an emacs user, one of the biggest contributors (other than SLIME method list prompts and the like) to my appreciation for Lisp is Paredit[1]. If you ever find yourself frustrated with counting parentheses, this is the thing for you. Essentially, it only adds delimiters in pairs - so you never delete closing parenthese, and provides functions for (| indicates cursor location)-

1\. 'slurp' the token on either side of a list

(|a b c) d -> (|a b c d)

a (|b c d) -> (a |b c d)

2\. 'barf' elements from either side of list

(a |b c d) -> (a b c) d

(a |b c d) -> a (b c d)

3\. 'drill down' into nearest list

(|a b c (d e f)) -> (a b c (|d e f))

4\. 'break out' of current list

(a b c (d e |f)) -> (a b c |(d e f))

5\. And more, like 'jump across next list', 'delete next list', etc.

Using any of these commands re-indents the code. It is the best method I have ever encountered in any language environment for doing 'code surgery' like placing existing code inside conditionals. I even use it for C (although it is not nearly as smart about C/C++ as it is about Lisp, so the benefit is not as great - c'est la vie. Perhaps one day I will attempt to hack decent C/C++ support into paredit). If I ever switch to vim, attempting to port paredit will be the first thing I do, and, if I fail, no switch.

Well, that got long. Too bad the original poster on the newsgoup will never see this.

[1] <http://www.emacswiki.org/emacs/ParEdit>

[2] 'slurp' and 'barf' are the "official" terminologies, by the way

<comment><USER3> Yes, this is the right way to edit Lisp. It gives most of the benefits of a structure editor without the downside. Balanced-delimiter editing makes Lisp actually easier to edit than any other language. (I've been editing Lisp this way since about 1980, when David Chapman and I implemented balanced-delimiter commands for Zmacs.)

(BTW I'm sure Rob is aware of Paredit. He's been around comp.lang.lisp a long time.)

<comment><USER2> By, 'the original poster,' I meant the poster whose question Rob was answering. I guess that was unclear. I know he's a veteran!

</comment></comment></comment><comment><USER4> The "killer feature" that Emacs brings is automatic indentation. Parenthesis matching is important, but an easy feature for non-progammable editors to support. Knowing how much whitespace belongs at the beginning of each line is harder, and pretty much requires programmability in the editor. Once you have had it, you will miss it when it is taken away. Manual indentation breaks your "flow" while composing code. This is true in C-like languages, but it is much more critical in Lisp, where there are fewer punctuation cues.

<comment><USER5> No, the killer future that Emacs brings is Slime.

<comment><USER6> The killer feature is the editor knowing what's going on in the image. For example typing (blah - he can check from the current package - whether that's function, special symbol, etc. - and if it's in a table of specially formatted ones (if, when, unless, etc.) it can do better formatting. Not only that but you can inform about this in the actual.

Same goes for Lispworks, and maybe for AllegroCL.

Difference is emacs communicates with slime to the swanked image, and if that image hangs, your editor is still there - not the same with LispWorks and AllegroCL (but if you are careful, and know when it can explode then it's ok).

</comment></comment></comment><comment><USER7> People complain about Lisp's parenthesis all the time. I _almost_ never found them bothersome and this comes from a Lisp newbie. My editor is vim though, not emacs.

The only occasion that parens have bothered me is when I have to read code printed on paper. Some code pieces are too beautiful to resist the temptation of taking a print out for a weekend reading, comment out bits with a pencil, scribble arrows all over it etc. Its then when I have to match tiny parens printed 2-up on a piece of paper that it gets frustrating, my eyes not being what they used to be (but I still print 2-up).

A thought just occurred to me: maybe add a pretty printing mode to a2ps that draws the parens in different sizes and gray scale values. May be some day.

</comment><comment><USER8> Can someone recommend a Lisp that will behave properly as a scripting language? By that I mean run quietly without a REPL, and honor this convention:

#!/usr/bin/lisp

<comment><USER9> I believe clisp will.

see section 32.6.2. Scripting with CLISP in this document <http://clisp.sourceforge.net/impnotes/quickstart.html>

<comment><USER8> Thanks for the suggestions everyone! I had a bad experience trying this with some Lisp a couple of years ago -- I could not for the life of me turn off the stupid banner printout, but I did manage to disable the REPL. At the time I just gave up and moved on, but I'll give it another try.

The last time I actually programmed in Lisp was back in the mid-80s for my AI classes at GA Tech. I liked it then.</comment></comment></comment>


Ask HN: Does MacBook Pro is really worth its price? - <AUTHOR>

I am a developer from India, working on a project which could be my first startup. Financially I am dependent of part time freelance gigs, So buying a laptop is a big deal for me.
I have heard a lot about merits of MBP, but I'd like to have opinions from Hacker Community.
Does MBP really worth its premium ? Or should I buy a modest Laptop and save money which I could use in my startup.
It'd be great if you guys could tell me about your primary work machine.
Edit : This would be my first MAC, so I don't really know much about MAC. Its just the buzz around it, because of which I am considering buying it. <comment><USER2> I think it is worth it. But it depends on what you sacrifice for it. This is by far the best computer I've ever had : amazing screen quality, amazing battery life and every Apple's neat improvements on usability.

Mac OS X is a great OS which comes loaded with a lot of high quality apps.

You can count on superior customer service too (if you have access to a genius bar)

Do you need a Macbook pro ? Probably not. Would you enjoy having one ? Definitely.

</comment><comment><USER3> Personal Opinion follows, your millage may vary:

Depends I heard (please correct me if I'm wrong) that Apple products in India are pricier and often a generation behind then I'd say no.

I have one but I wouldn't buy a new one personally. The build quality is good but other companies are starting to equal it. (And somehow I managed to bend the case near the Ethernet port in the first week. I don't know what I did to do that, I'm sure I applied pressure there by accident but I never hold it from there)

Software wise, I live in a shell be it on linux or on the Mac. I don't develop for iOS. I triple boot the machine and that works alright.

I've ran into some issues with the laptop too. My battery after a year and a half is now dead and from the Apple site this is common. The mini display port is a pain and now that display port/hdmi is becoming standard it might be easier than carrying 3 dongles.

You can also get better specs and hardware elsewhere for cheaper.

In all if you don't want OSX look elsewhere if not, it's still a very good laptop just not far above the rest as it's claimed to be.

<comment><AUTHOR> Ya they are little costlier, but it is the case with almost all laptops. We have to pay a little extra. Secondly, in India atleast MBP are not generation behind, however they are still selling iPad 1 in India.

And thanks for your opinion.

</comment></comment><comment><USER4> MBP is ideal for working on iOS. It also serves as a reasonable *nix for any non-Win-specific task..

Whether one is worth the cost is ultimately up to you. I do my corporate work (mostly python stuff) on a MBP and I rather enjoy it. I run my side projects on a Lenovo x120e running OpenSUSE. If I ever need to work on iOS on the side, I'll likely buy a mini for compiling while writing all my code on my x120e.

It really comes down to form-factors and what your ideal dev environment looks like. If you're sitting in front of Vim/emacs all day, you'll run into some issues with OSX. I enjoy doing my off-hours work in coffee shops, so I work with a smaller form-factor with a more reasonable screen at home.

</comment><comment><USER5> Don't buy it if your only reason for doing so is 'buzz.'

Have you considered trying out a "Hackintosh"-type setup first? If that doesn't work for you, you could still sell the PC easily and then buy a Mac. I make very good money in the US, and I still took several weeks to talk myself into buying a new Macbook Pro to replace an '05 Powerbook (in part because I already have a 27" iMac as my main computer.) Apples are expensive. To me, it is the software that makes them a great value, though. If you bought the MBP, would you still have the funds to spend on software and to complete your freelance/startup work without major sacrifices? I think it is ridiculous to ask a question like this on HN since we don't really know your financial circumstances. Are you really just wanting us to help rationalize a decision you've already made? ;-)

[And now...my first HN cross-post ever:]

RE: Fusion vs. Parallels

I just bought a new MB Pro and am getting ready to install Parallels on it for the first time. I've always used Fusion on my Macs (to triple-boot with Win and Linux) in the past. I thought Parallels was currently the leader in the shootouts regarding speed/features? Anyone keep up to date with their VM horse race or have a good reason to use one over the other? I already have licenses for both. Thanks.

</comment><comment><USER6> I use a 17" MBP as my primary computer, but I see it as more of a luxury than a necessity. I'd say to spend your money on a more modest laptop and save the money for your startup.

On a similar note, I think it's crazy to see all of these startups using Apple Cinema displays. Two examples that come to mind are Color and Milk. Don't get me wrong, they're very nice monitors, but waaay overpriced when compared to monitors with the same specs.

<comment><USER7> There really aren't many other monitors with "the same specs" as an ACD. The ones that do have the same specs (from Dell, NEC) are just as expensive, if not more. There are plenty of cheaper 24" monitors, but the resolutions do not compare.

Additionally, if you have an MBP, not having to use a mini-DP adapter and having a built in power adapter is pretty awesome.

</comment></comment><comment><USER8> I've found my MBP worth the price for the following reasons:

\- I enjoy the 8 hour battery life (This alone may have been worth it)

\- The light up keyboard

\- The feel of the keyboard

\- It can drive my high resolution external display

\- The screen works outside in the sun

\- Extra large track pad, with gesture recognition

\- It's thin

\- The speaker quality

<comment><USER6> Battery life is maybe the only thing on that list that has anything to do with productivity. I'll even be generous and throw in the high res external display as an added productivity perk. The rest of the things on your list are nice to have, but many of them are available in much cheaper laptops. The screen working outside in the sun is also debatable unless you're talking about the matte screen, which costs extra.

Again, I use a MBP as my primary computer and I wouldn't trade it for anything.

<comment><USER8> I would argue that a satisfying keyboard is also important for a software developer.

Some of the things I mentioned are probably not important for productivity. But in my case my work laptop and my personal laptop are the same. So a light- up keyboard and good speakers are nice to have when watching movies on a Friday night with my wife (For example).

</comment></comment></comment><comment><USER9> Just like a carpenter, your tools are worth their weight in gold.

So yes. I believe the Mac Book Pro is worth it's price.

</comment><comment><USER10> If this would be a big investment for you, don't do it. You can find ThinkPads with similar specs at better price.

</comment><comment><USER11> Don't buy it. I don't know how applestore ou imported products are in india, but in Brazil are fucking expensive.

I can easily get the same hardware/display/everything for half of the price, at least here.

Only buy that MBP when the MBP money isn't a real big issue for you. For now it seens that you need money for that future startup.

I know that everybody here will tell about quality, OSX(which is good!) and so on... but it's not worth it for you, for now.

I've been in that dillema for the last months. I ended up not buying anything.

Money for us, in third world countries is harder to get, you aren't making 100k/year like most of people here seens to make after they have just graduated.

Have much success in your venture! And maybe buy that macbook pro later, if you have success in it!

</comment><comment><USER12> If a laptop is a major purchase you should probably hold off until you can save for it unless you require mobility (e.g. client visits) or a smaller form factor (e.g. small apartment). However, be sure that those requirements are actually bringing in enough money to justify the cost. If you need to make client visits, but a laptop purchase is a big deal, should raise your rates.

I bought a late 2009 MBP because I wanted a modern consumer operating system as well as easy access to linux tools. I've been very happy with it. Previously, I had been running Ubuntu on a Dell Inspiron 9300 and was fed up with the poor support for everyday things. I recommend unless you do Windows dev work or think it's a big purchase.

</comment><comment><USER13> No. Unless you really prefer the Mac environment, it's not worth it. Most day- to-day coding activities are easier on Linux.

I've used Windows, Fedora (my fave), Ubuntu, and have a new Macbook Air.

</comment><comment><USER14> Well, The new 2011 MBP's are phenomenal. I have one.

I have been a Mac user for over 15 years and those that say Mac's are only good for iOS and Mac specific stuff are sort of naive. You can run Windows or Linux as well. There are also Virtual Machine possibilities.

The 2011 models support up to 16gb of RAM..in a laptop.

I think that good tools help productivity and a MacBook Pro is a GREAT tool..

<comment><USER15> _> I have been a Mac user for over 15 years and those that say Mac's are only good for iOS and Mac specific stuff are sort of naive._

Well, are you going to back up your statement?

 _> You can run Windows or Linux as well. There are also Virtual Machine possibilities._

I'd rather build a Linux box if virtual machines are the "attracting" features of Macs.

 _> I think that good tools help productivity and a MacBook Pro is a GREAT tool.._

Again, define "good tools." I've never owned a Mac, but I find it hard to believe its hardware is the main reason for success. I thought the software takes much of the credit.

<comment><USER14> Sure. besides iOS stuff there is graphic design, normal business/productivity stuff, web development, Mac/Windows/Linux development, almost any task you can think of.

The hardware is definitely up there in quality. I have never had a motherboard just "go south". The only issues I have ever had in 15 years is hard drives and one Superdrive...

</comment></comment></comment><comment><USER16> Unless you are working on an iOS app, I would recommend a Windows laptop.

<comment><USER17> That seems like an ridiculous distinction. 90%+ of the developers I work with use a MacBook, the rest use some kind of Linux distribution. The only Windows users I know are corporate slaves grinding out C# apps.

<comment><AUTHOR> I might disagree with that. Back in India you won't find that many Mac users, many of the developers have Windows (even on their personal laptops). May be this is because of high price, and may be because of easy availability of Pirated Windows.</comment></comment></comment>


10.7 Lion drops support for PowerPC applications - <AUTHOR> http://www.9to5mac.com/53977/10-7-lion-drops-support-for-powerpc-applications

<comment><USER2> One thing I have always admired Microsoft for is the huge effort they put into maintaining backwards compatibility. This may come largely from my days watching business clients forced to run old legacy apps that had been around forever. Despite Window's many (many) shortcomings, whenever I hear people complain about the time it takes to roll a new version out I try to point out the task at hand. The broad hardware support (try to find PC hardware Windows won't work on), the ability to run (until 64bit OSs recently) 16bit apps from 1993, virtualized XP, etc. Windows certainly hasn't been perfect but for the above I will always applaud Microsoft's dev team. I feel for the Mac IT guys this change is going to affect.

<comment><USER3> Personally, I am going to argue the other direction.

Windows is a pain to program for and use largely because it's filled with assumptions and code that date back to the eighties. It is very difficult to innovate with the boat anchor of the past shackled to your ankle.

Think how much easier it would be for Microsoft to improve security if, for example, they could remove the assumption that it's okay for apps to blithely write stuff to the \Windows directory. Well, Mac OS X has done exactly that. Most of its system directories are tightly locked down.

In fact, Apple has completely chucked their entire operating system from the eighties and started over. The result is a much more modern OS that is far more pleasant to use. Yes, there was a real fear there that, since people had to chuck OS9, they might move to something else entirely, but that didn't happen, for the most part.

Think about it this way. Which customers would you rather have: the people who are willing to buy new computers and software every few years, or the guy who is stubbornly holding on to his DBASE app from 1984? For me, the choice is obvious.

<comment><USER4> Back in 1999, at the start of my career, I did a bit of "catch all IT" for a company, which included help desk and desktop support.

There was one fellow who hemmed and hawed at having to use Windows 2000. He wanted to stick with Windows 95. He ended up migrated, but he spent a furious amount of time getting the Windows 3.1 File Manager working. Apparently on his Windows 95 laptop he had brought it over as well.

He also was using a release of SideKick from 1992.

\-----

How is this relevant? I recently talked to someone who does provide IT support for that same company. That same person? Still running SideKick. Still complains about not having File Manager. Also is hemming and hawing about having to upgrade from Windows XP to Windows 7.

Company is also still on 10Mbps networking. The owner still refuses to use copper, since they're a fiber optic distributor (multimode fiber is run to each and every desk).

</comment></comment></comment><comment><USER5> From the point of view of an IT professional, this is a big deal.

Apple is sliding forward the lower bound on software that can be expected to run on a newly-purchased computer by several years. There's no indication to the average user which of their applications will stop working on their next computer, and there _are_ oodles of copies of PowerPC applications out there in the wild.

<comment><USER6> You got to ask yourself how many PPC apps there really are that have not got an update and been recompiled for Intel by now. The indication would be if they have manually downloaded Rosetta on Snow Leopard.

<comment><USER7> 1) AppleWorks 6 - which while mostly replaced by iWork, is still in use by quite a few people. iWork has yet to implement a database module.

2) compiled AppleScript scripts - a certain number of those were compiled, and generated PPC binaries, and not UB. beware.

<comment><USER8> I thought Bento was supposed to be the replacement entry-level database?

</comment></comment></comment></comment><comment><USER9> You can check out all of your applications to see if you're running any PowerPC software. System Profiler -> Applications -> sort by Kind. Only culprit on my system is some random CS4 stuff.

<comment><USER10> Microsoft Office 2008 installer still requires Rosetta, meaning Office 2011 is the only version of Office that will be able to run on Lion.

Combine that with requiring CS5, and Lion will be a very expensive upgrade for many people.

<comment><USER6> No it doesn't, I have it installed here and I don't have Rosetta. System requirements on the box says nothing about Rosetta and there's a big Universal binary icon on it as well.

[http://en.wikipedia.org/wiki/Microsoft_Office_2008_for_Mac#R...](http://en.wikipedia.org/wiki/Microsoft_Office_2008_for_Mac#Release)

<comment><USER10> The application itself is a universal binary, but the installer requires Rosetta. It auto-installs Rosetta when you run the Office installer, unless you installed using Terminal ([http://www.mactalk.com.au/11/72330-install- microsoft-office-...](http://www.mactalk.com.au/11/72330-install-microsoft- office-2008-snow-leopard-without-rosetta.html))

If you didn't use Terminal to install Office, then you must have either upgraded Snow Leopard instead of doing a clean install, which would allow you to use Office without running the installer again, or you have Rosetta installed without realizing it.

<comment><USER6> Yes, I'm absolutely sure that I don't have Rosetta. It seems like an oversight on Microsofts part to require it for a universal binary, 3 years after PPC was continued.

</comment></comment></comment></comment></comment><comment><USER11> This is an interesting turn up for the books. While I use some universal binaries here and there, I don't run any PowerPC code on any Mac kit.

I wonder though, if Apple were to transition to their A4 chips for Macbooks whether we'll see Rosetta come back in an ARM compatible flavour.

</comment><comment><USER12> This is going to make my life miserable.

I wish it were possible that we could say goodbye to Rosetta and Universals Binaries yesterday. However, there are a good number of "Universal" pieces of software out there in common use, that have vestigial PowerPC components. I just ran into one yesterday, on a business critical piece of software at my company - supposedly UB software, that has a command-line utility that is compiled for PowerPC, and that in the most current version of the software. Quite a number of times, I have run into software that is UB, and yet part of the install process relies on Rosetta.

Oh, and I have to run Acrobat 7 for a couple business-critical websites, because we make templates using an old build of PDFLib, and since it's legacy software, we won't be upgrading to a newer build.

I believe I will have to setup an instance of Snow Leopard in Parallels, if I move to Lion.

Well, I don't fault Apple for this. Perhaps it will force this nonsense to stop sooner than later.

<comment><USER13> Welcome to enterprise computing, and to the world of zombie software management.

Other OS vendors can carry decades of cruft and baggage for reasons of compatibility with older applications, and that really slows down development, and the testing costs scale upward for whatever you can't retire. You end up implementing the Windows XP box in Windows 7, the pain that has been IE6 replacements and upgrades, and various other forms of API and run-time and source-code compatibility, and translators.

Some of this zombie software lives on ten and twenty years past expectations, and longer.

Apple throws features and hardware under the bus when it gets in the way of their skating to where they think the puck will be.

</comment></comment><comment><USER14> I wonder if they'll stick to this for the final version. They tried to remove 256-color mode support in 10.5.something but backpedaled when the Mac Starcraft players went nuts.

</comment><comment><USER15> If you want to reuse your old PowerPC hardware, you still have the option to run a recent version of GNU/Linux. Ubuntu 10.10 (Maverick Meerkat) has a recent version (ubuntu-10.10-desktop-powerpc.iso) for PowerPC Mac.

<comment><USER16> Many ppc Macs use nvidia graphics. There is no proprietary nvidia driver for powerpc.

On the other hand, 10.5 runs fine on ppc. As a poster above noted, your old OS does not magically stop working after release of new version.

</comment></comment><comment><USER17> A lot of complaints ignore one simple solution: Don't buy/install/upgrade to Lion. Your copy of Tiger/Panther/Leopard/Snow Leopard won't magically stop working when Lion is released. Don't buy that shiny new MBP with Lion pre- installed. We're in a recession anyway--and your current laptop still works. Save your money.

My Dell netbook is still running 10.6 because 10.6.2 broke support for Atom processors. Yeah, it's annoying not to have the latest version of 10.6, but 10.6 still works.

</comment><comment><USER18> Interestingly there's an unreleased Intel version of Mac OS 9 that you see at Apple stories - it's used via Netboot for testing batteries (amongst other things I imagine, but when I saw it it was for testing). Looks like they still (as of late 2010) haven't gotten around to porting some of their old diags to OS X.

<comment><USER19> It's actually just a tool that runs in EFI; kinda like the AHT. Looks like OS 9, but it isn't.

<comment><USER18> I wonder why they used the OS 9 L & F? Was very odd seeing it start on a MacBook.

</comment></comment></comment><comment><USER20> This makes me sad because some of my old fun games won't work anymore (well, without a VM at least), but since I rarely play those, I like the fact that all the other stuff I use will be forced to "go native".

</comment><comment><USER21> Some non-programming related examples: It would be nice to have all AMAs on reddit be non-anonymous, but it would not be backward-compatible with the organizations out there who still try to control the message. I never advocated requiring non-anonymous Glassdoor reviews for a similar reason.

</comment><comment><USER22> Looks like I'll be repurposing the quad and dual G5's here onto debian PPC, when I can scrape up enough for an intel big-mac /cries/

<comment><USER23> Why? Nothing changes for you. Developers can still create universal binaries that run on your macs if the choose to do so. The only thing that changed is running PPC-only apps on intel machines, which is something nobody really cares about since there really aren't any PPC-only apps on the market. You already weren't able to upgrade to the latest OS, as Snow Leopard is Intel- only.

You could be worried about developers creating intel-only apps, which you won't be able to run, but that already happens on a big scale because almost nobody uses PPC macs anymore. This has nothing to do with Lion.

The bigger problem with Lion may be the dropping of 32-bit macs. Most people don't really know if their mac is 64-bit (Core 2 and up) or 32-bit only (Intel Core's, which is mostly the early Mac Mini's, iMacs and Macbooks I think). It's good for developers who want to write 64-bit only apps though, because once Lion has been adopted and SL support is dropped, they can just say 'Requires Lion', instead of the somewhat awkward 'Requires Snow Leopard on a 64-bit Mac' right now.

<comment><USER24> I stopped using my G5 because there is no ppc support in v8 and hence node.js. Most of the new JITs dont support ppc. I havent got rid of it yet though and I dont see the point in installing Linux until Apple stop security updates for 10.5 which is some way off... Useful for testing code where endianness matters.</comment></comment></comment>


Meet The Computer Virus That's Trying To Blow Up Iran - <AUTHOR> http://www.motherboard.tv/2010/10/28/stuxnet-the-weaponized-computer-virus-that-s-trying-to-blow-up-iran-s-nuclear-power-plant Everything you need to know about Stuxnet, the world's first weaponized computer virus. <comment><USER2> "killing people with C"

this is scary yes.</comment>


How communist Bulgaria became a leader in tech and sci-fi - <AUTHOR> https://aeon.co/essays/how-communist-bulgaria-became-a-leader-in-tech-and-sci-fi <comment><USER2> Bulgarian here. It is probably a long story but the IT industry is one of the very few not-heavy-regulated here and it flourishes. There is a growing start- up culture, companies are fighting over talants and people with various backgrounds are just pouring in the industry. I know a few dosens of architects, layers and medical doctors that made that step. Also a flat 10% tax certainly helps :)

<comment><USER3> Is there a data on the average salary? Do employees forced to work as contractors like in Ukraine?

<comment><USER4> I don't work there but do know several people working in Sofia for startups or corps like VMWare, SAP, etc. I'd say that you'd get about 2-2.5k euro net if have 5+ years experience. Junior is probably 1-1.5k

<comment><USER2> Since the lack of talent is a huge problem, there are tons of _academies_ that claim to be producing developers in just a few months. This generates a lot of people with no experience, close to zero knowledge but yet eager to join the industry. A viable strategy for companies is to hire as many of those as possible, hoping that there are just a few diamonds there. That's the main reason Jrs are terribly underpaid. If one prooves to have potential - it is not uncommon to have a salary doubled in a few monthsm, otherwise other organization might snatch the person.

I had interviewed a little more than a hundred people for regular and senior roles only to eventually give up and train a couple of juniours.

</comment></comment></comment></comment><comment><USER5> Interestingly [1], Bulgaria was a major supplier of computer tech to the entire Eastern block. (I wonder if anything's left of its technological leadership...)

[1] [https://en.wikipedia.org/wiki/History_of_computer_hardware_i...](https://en.wikipedia.org/wiki/History_of_computer_hardware_in_Bulgaria)

<comment><USER6> Bulgarian here, my mother used to work in a factory that produced hard drives. Specifically a company called DZU.

She told me about a joke the president made when they opened:

"Today we are proud to have developed semi-conductors, we look towards tomorrow, when we will have full-conductors"

<comment><USER7> I am sure that your mother's tale is apocryphal. A similar apocryphal tale that goes around the former Eastern Bloc countries is a Communist official boasting that his country "has now built the world's largest microchip!"

<comment><USER8> Naturally, soviet microchip would have four pins and two handles to lift it up.

</comment></comment></comment></comment><comment><USER9> I've been to Sofia. Its a good place to start a business and has the best coworking space in Eastern Europe (look up Puzl Coworking).

Downside is that English is not at all widespread (except among the IT elite and some young people), air pollution can be pretty bad, and there are problems with street dogs. They use the Cyrillic alphabet, so you at least have to learn that to get by.

Like most European countries you also have a byzantine mess of taxes if you want to hire a worker or pay yourself. You also have royalty withholding taxes if a US company pays you.

<comment><USER10> I have found from the opposite way that the English alphabet is not so dissimilar to the Cyrillic. Once you get past that a bectop is a vector, and everything is nearly the same. I find there is a vitality in the region that I cannot find anywhere else, but it feels like living when I am there. I have been to many countries in the region and they all feel close to home.

<comment><USER11> > bectop is a vector

BEKTOP (K everywhere where you're used to C) just like the use of B,K,P in modern Greek, e.g. coma is κώμα rho is ῥῶ, B, βήτα (beta character) is pronounced "vita."

</comment></comment></comment><comment><USER12> Pinkos or not, sci-fi writers have been emerging independently of latitude and longitude just because of tech progress: Stanisław Lem, Boris Strugatsky, Isaac Asimov.

I wanna share my tiny observation.

Typical USSR-originated sci-fi story tells you about space travels, space ships, interstellar journeys, aliens, valuable resources discovery. This aligns well with USSR and Russian space achievements and ambitions and fossil deposits development, and treating cybernetics as a pseudoscience or just funny crap.

On the other hand, non-pinko sci-fi is biased to soul, thinking machines, different lifeforms, artificial intelligence, coexistence of human and robot.

Interestingly, the concept of Information Society emerged in Russian Empire before revolution by Pitirim Sorokin[1], he was expelled from USSR to USA. He wasn't sci-fi writer per se, but the point is the way of thinking renders itself into everything including fiction.

[1] [https://en.wikipedia.org/wiki/Pitirim_Sorokin](https://en.wikipedia.org/wiki/Pitirim_Sorokin)

<comment><USER13> I don't think it's that simple. If you look at the Golden Age of Western sci- fi, it was so full of spaceships and travels that a space rocket - as seen on countless book covers - became the symbol of the genre. Western sci-fi was also much heavier on aliens, and especially on conflict with aliens - thousands of alien races bustling around is very much a Western trope with no equivalent in Soviet sci-fi.

On the other hand, the closest sci-fi prediction of something like Wikipedia was the Grand All-Planet Informatory from Strugatsky books, complete with an index and search queries and pervasive use in day-to-day activities to "look things up".

</comment></comment><comment><USER14> I've associated Bulgaria with 3D rendering and graphics (V-Ray)

<comment><USER15> And I'm associating it mostly with expert assembly masters.

The best early virus writers were all Bulgarian, esp. the advanced polymorphic ones. With advanced electronics HW in the Eastern block I would mostly associate the GDR (rev. engineered the 8086 and 80286>, and Russia, not Bulgaria who did mostly only the peripherals. But in SW and hacking techniques they outshined the GDR and Russia.</comment></comment>