Real-Time Log Collection with Fluentd and MongoDB - <AUTHOR> http://blog.treasure-data.com/post/13766262632/real-time-log-collection-with-fluentd-and-mongodb

<comment><USER2> Very nice & all, but... MongoDB?

MongoDB is very popular, but all the (limited) criticisms of it seem to related to insert performance once the dataset it too big to fit in RAM.

Normally the easy-of-development arguments make up for that, but log files is one of those areas that has a tendency to expand quickly beyond any expectations.

There is a reason why most companies are using HDFS and/or Cassandra for structured log file storage.

<comment><AUTHOR> fluentd's greatest advantage is, it's written in Ruby. So, it's really easy to write the plugin for any datastores.

This is HDFS (Hoop, the HDFS REST gateway) plugin.

* <https://github.com/tagomoris/fluent-plugin-hoop>

And also, Cassandra plugin are now in under development.

* <https://github.com/tomitakazutaka/fluent-plugin-cassandra>

You can see the user contributed plugin list here.

* <https://github.com/tomitakazutaka/fluent-plugin-cassandra>

<comment><USER3> If you were going from logs -> hdfs, flume would be a much better chose imho

</comment></comment></comment><comment><USER4> This is SUPER helpful! Just the other day I was wondering how someone like me could get involved in the hard scalability problems I read so much about here on the hackers news. But how to make my boring old highly cachable read-only web traffic into a major scalability problem? Then I read this blog entry, and wow, now each log entry on my site turns into a random btree update in MongoDB made while holding a global write lock. Thanks again hackers news, and thanks again BIG DATA!

<comment><USER5> Or think about it in a different way - instead of adding disk IO on the server itself, you're offloading the log processing to another server which does delay writes (you don't usually need immediate sync for remote logging) and gives you better log processing capabilities (semi-structured data).

If your workload cannot be handled this way - that's another thing. But how did we get from "mongo is webscale" to "mongo cannot be used for anything at all"? What happened to benchmarking and taking serious decisions backed by real data?

<comment><USER6> Syslog works nicely over the network in a client-server configuration, and has done so for ages.

<comment><USER5> For write-only logging from stateless, single machine bound processes - yes. For analytics, automated tracking stateful sessions across many nodes, preserving context, dumping binary fragments... no, at least for me it did not always work.

<comment><USER6> You can reconstruct almost any system flow with good logging. While that's not always ideal (especially if you need to query the data), the more structured your data gets, the less it is a simple log. When you increase the specificity of your tools, they becomes less useful in the general case, turing tarpit notwithstanding.

</comment></comment></comment></comment></comment><comment><USER7> How does fluentd resume tailing the apache log if it crashes? Does it maintain the current file position on disk? What if logs are rotated between a fluentd crash and recovery?

I've had to solve this problem for Yahoo!'s performance team, and ended up setting a very small log rotation timeout, and only parsing rotated logs. There's a 5-30 minute delay in getting data out of logs (depending on how busy the server is), but since we're batch processing anyway, it doesn't matter.

The added advantage, is that you just maintain a list of files that you've already parsed, so if the parser/collector crashes, it just looks at the list and restarts where it left off. Smart key selection (ie, something like IP or userid+millisecond time) is enough to ensure that if you do end up reprocessing the same file (eg, if a crash occurs mid-file), then duplicate records aren't inserted (use the equivalent of a bulk INSERT IGNORE for your db).

This scales to billions of log entries a day.

</comment><comment><USER8> I have a syslog-ng -> MongoDB project that I've been working on at my university.

github.com/ngokevin/netshed

It is written in Python current parses out fields from several types of logs (such as dhcpd). It is initially set up to read from named pipes (it has a tail function as well). Each type of log is dumped to its own database, and each date has its own collection. I have it set up with a master/slave configuration to overcome the global write lock. It has functions to simulate capped collections by days. It is followed with a Django frontend for querying via PyMongo.

This version is several weeks old and I will push out a new one soon.

<comment><USER9> Have you got more details about overcoming the global write lock?

<comment><USER8> Oh sorry, when I mean overcome the global write lock, I don't mean getting rid of it, but simply allowing me to querying a replicated slave database while the master database is getting hundreds of writes a second...so the writes don't block the reads.

</comment></comment></comment><comment><USER10> I'd also suggest looking at both Logstash and Greylog2. They both can use MongoDB as the storage engine for logs, and can also do the field extractions.

<comment><USER11> FWIW, Graylog2 will be switching to ElasticSearch backend from the existing MongoDB, citing lack of performance constraints(and lack of better FTS functionality) specific to MongoDB. Find the entire comment here - [http://groups.google.com/group/graylog2/browse_thread/thread...](http://groups.google.com/group/graylog2/browse_thread/thread/da6bf5d51ae34bad/0aeaea558efd9568?show_docid=0aeaea558efd9568)

This is something I am working on right now, which is to have a centralized logging system in place for the production servers. Logs will get indexed in ElasticSearch(pretty awesome project, imho!!), where I can run search queries against the indexes. I am using logstash for parsing, routing logs from production servers to elasticsearch instance.

</comment></comment><comment><USER12> Great! If we use Fluentd and MongoDB, we can collect realtime event without writing some codes, but only configuration setting. I also think about more flexible aggregation system using them: "An Introduction to Fluent & MongoDB Plugins" [http://www.slideshare.net/doryokujin/an-introduction-to- flue...](http://www.slideshare.net/doryokujin/an-introduction-to-fluent- mongodb-plugins) . Please tell me if there exists more powerful use-case using Fluentd & Mongo!

</comment><comment><USER13> Do you have a parser for nginx and/or lighttpd? Would like push logs from these to MongoDB.

<comment><USER14> For lighttpd, try the following in your config to log in a format identifical to that of Apache's combined log format.

        accesslog.format = "%h %V %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

See the docs on ModAccessLog for more information: <http://redmine.lighttpd.net/wiki/1/Docs:ModAccesslog></comment></comment>


What should a developer know before building a public web site? - <AUTHOR> http://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site

<comment><USER2> Talk about overwhelming. I could read about everything in just the first guys answer and it'd take me a full day. Not to mention the second guys answer, who seemed to provide more links and content to go over.</comment>


Show HN: Tickers – Your News and Notifications App - <AUTHOR> https://tickers.cc/en <comment><AUTHOR> Hi everyone,

I would really like to get honest feedback from all of you.

I had this idea for my app called tickers about two years ago, put a lot of my free time into it and would like to hear what you think about it. And you can ask my anything about it.

Tickers is a free and anonymous realtime notification app and service. Just think of it as a generic liveticker: Most of you have probably installed a sports app on your smartphone, where you select your favorite team and whenever it scores or wins, you receive a realtime notification. Tickers uses this basic concept and extends it. You select your favorite ticker, subscribe it and receive realtime notifications. But in tickers, everything can be a ticker: news sites, blogs, YouTube channels, etc. And you can even start your own ticker and send realtime notifications to your subscribers.

It's available for Android, iOS and Windows 10.

Thank you Marko

</comment><comment><USER2> This is really amazing!

I'm currently downloading it on my phone now but from what you described its like THE app that I have been waiting for. I love the anonymity aspect and the fact that the app does not require any permissions. Its just great!

What is the best way to contact you?

<comment><AUTHOR> Thank you, I hope you still enjoy tickers after you downloaded it :)

You can contact me via mail: firstname.lastname@example.com</comment></comment>


Librarians in Florida went rogue to save 2,300 books from an algorithm - <AUTHOR> https://qz.com/877961/librarians-in-florida-went-rogue-to-save-2361-books-from-an-algorithm/ <comment><USER2> > He says his aim was actually to save the library money in the long run, by > not having to repurchase books which often go in and out of fashion with > readers. One of Finley's choices, for instance, was John Steinbeck's > "Cannery Row."

Any librarian worth their salt will tell you that every library should have a copy of Cannery Row. Any algorithm that says it should be discarded is simply wrong.

Circulation numbers can be very useful. But they cannot tell you what people will be looking for in the future. Common sense and experience are necessary to put the list in the proper context.

A good librarian can talk knowledgeably about thousands of books. They are community treasures that are not easily replaced by algorithms. They do a lot more than just put books on the shelf. Just as there will always be bartenders, there will always be librarians.

There is a culture war going on in libraries. The old guard -- book reading, book loving librarians -- are being replaced, especially at the top, by hip "Library Scientists" who want to push ebooks, internet access terminals and even rock concerts in libraries.

Ultimately there is a balance to be struck. Budgets are tight and libraries are evolving. But if libraries are going to remain useful and relevant, they will need to provide both internet access AND copies of "Cannery Row".

That said, the guy in the article did a bad thing and he'll likely lose his job at minimum.

<comment><USER3> This effectively boils down to whether libraries should serve what people actually read/do - or what they "should" read. Pretty much all the comments from this article fall on one of the two sides with each person talking past each other.

<comment><USER4> I don't think that the issue isn't the difference between what people "should" and do read, but between what people read now and what they're likely to read in the future (on the scale of years or decades). Collective tastes of the public ebb and flow over time.

The trick would be between finding the difference between _actually_ needing the book later, or just hoarding something that will never be needed again...or at least, that introduces more of a cost to keep than it would cost to dispose of it and buy it again later if it _does_ come back into fashion.

<comment><USER3> Optimizing for future use would generally lead you to purging most older books altogether, as newly released books generally have higher readership. With few exceptions its unlikely for popular taste to switch to a classic book en masse at the same time.

The only exception is if you knew a school were to assign the book as required reading to an entire grade - but that's really a rare and special case.

FWIW I think there is room for curated "should read" sections in a library. Optimizing purely for use is more the purview of a bookstore. But to support that the bulk of the shelf space should be serving the broadest use possible.

<comment><USER4> I had in mind cases where a book might surge from being checked out once a year to being checked out once a month, maybe something like a historical book about a specific Native American tribe when they're in the news for a while, or something.

It seems like one of those "big data things", looking for odd relationships between things, like vampires being more popular during Democratic presidencies and zombies being more popular during Republican ones (as a tongue-in-cheek example: [http://www.mrscienceshow.com/2009/05/correlation-of- week-zom...](http://www.mrscienceshow.com/2009/05/correlation-of-week-zombies- vampires.html))

The librarian in the article cited a future need to re-buy a book that was previously culled. I guess what I'm trying to work toward would be an idea of finding non-obvious signs of when certain _categories_ of books might become more and less popular, what patterns (if any) govern that schedule, and from that, make predictions of expected cost in keeping certain books around, as opposed to selling them off immediately. I'm playing around with the idea of whether there's a better way than "current readership + age of book" to predict, to a useful degree, the probability of it being more or less popular in the future.

</comment></comment></comment></comment></comment><comment><USER5> So, I'm a librarian. Our library uses what's called the CREW method [1]. It does a good job explaining the reasons for weeding and the parameters.

It's important to mention that a well maintained collection gets used more than one that is not reviewed. The "younger" the average age of your collection, the more it gets used. This isn't just because people don't like old books, but they don't like books that are yellowing, grey, worn, irrelevant, etc, etc. I recognize that libraries have many roles to play, but it is not the place of every library to play every role. A community public library should check out books, not store them. (There's obviously exceptions here. For example, my library maintains a local history collection).

Ultimately, for a public library there is much more going on than books. Wireless Internet, meeting rooms and simply its characteristic as a physical place (chairs, tables, etc.) are all part of why people support a library and having a new, clean and well maintained collection is part of increasing the library's appeal across all those areas.

1: [https://www.tsl.texas.gov/ld/pubs/crew/index.html](https://www.tsl.texas.gov/ld/pubs/crew/index.html)

<comment><USER6> > A community public library should check out books, not store them. There's > obviously exceptions here. For example, my library maintains a local history > collection.

I could certainly see the value of each community library having some space allocated to different "specialty" sections. That would make for a pretty rich loan inventory.

<comment><USER5> Absolutely. I've been to libraries with good specialized collections. Most of these focus on local interests or history.

I've also been to many libraries that just _feel_ like dumps and are not using space well. They have masses of cookbooks or old magazines that they call a special collection. There's a fetish surrounding "the book".

In the end this guy is arbitrarily deciding which books have value and which don't, which should ring an alarm bell for us. We might agree with what he saved, but we also don't know what he _didn 't_ feel was worth saving. That's why as systemic approach is so important.

</comment></comment></comment><comment><USER7> > His creation, the fictional Charles Finley,

FYI, that's the alias of choice for Sam Axe, a freelance vigilante in the TV series "Burn Notice" ([https://en.wikipedia.org/wiki/Sam_Axe#Sam_Axe_as_Chuck_Finle...](https://en.wikipedia.org/wiki/Sam_Axe#Sam_Axe_as_Chuck_Finley))

<comment><USER8> Chuck Finley also pitched in the MLB for 16 years[1]. The weirdest part of the whole story to me was that he gave his fake ballplayer the name of an actual ballplayer.

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

</comment></comment><comment><USER9> I do not understand why he loaned them with a fake name. He could just have made the loans in his own name. If they questioned his high loan numbers, he could have told them that he was compiling a bibliography, or researching typography, or something, in his own free time.

He went through a lot of trouble to make what he did illegal.

<comment><USER10> I doubt he knew this was illegal. Charging someone with faking a library card is about the same level as shutting down a lemonade stand for failure to have a business license.

</comment></comment><comment><USER11> And yet no discussion of what books were not carried that otherwise could have been without this distortion in data. It's fine to talk about the merits of what was saved, but it is a false discussion if there isn't some inclusion of what opportunities may have been lost as well.

</comment><comment><USER12> Sounds like if shelf-space is at a premium, free ebooks for everything over say, 50 years old should be the norm. (Broken copyright law is the likely impediment).

Sure, keep a few physical copies for popular classics but ebooks are clearly the solution for the long tail, and so much easier to carry.

<comment><USER13> I don't agree. You can't browse an ebook the same way you can a physical book, and while I very much appreciate Amazon's 'you might also like...' suggestions, I only rate thema round a C+/B- grade. The great value of libraries and bookstores is discoverability as opposed to perfect organization (although that's also very valuable). I can think of quite a few books that I might not have encountered if some librarian or buyer hadn't bucked the prevailing taste; conversely on the rare occasions when I go into a big bookstore now I feel really alienated by the shallowness of the selection and the general lack of awareness among the bookstore staff about, well, anything.

I never encountered this attitude of 'books as product' until I came to the US. I remember going into a Borders and looking for some Dashiell Hammett books - I had been in San Francisco a few months, and Dashiell Hammett was a _very_ famous mystery writer who came from and wrote about SF in the 1930s, so I wanted to learn more about the literary culture of the city I had moved to. the people in the store had never heard of him, didn't understand why interest in local authors would be a thing, and couldn't recommend any other bookstores because they were not really Book People, they just happened to work in a store that sold books but whose corporate culture required staff to refer to them as 'product'. This would be like going to a store that specialized in Computer Science books and having to deal with people who had never heard the names Turing, Von Neumann, or Knuth. Capitalism can be very corrosive of culture that way, Absent a reliable metric for quality, it can only rate popularity and novelty and so discounts long-term relations at the expense of short-term returns.

Amazon recommendations are often semantically on point but it will often recommend books that are merely derivative. 'Frequently bought together' is a great reminder to get some batteries or accessories for some electronic gizmo you bought, but that doesn't work so well for books, where reading one might alter your subsequent buying preferences onto a new path because you read the book and it changed your perspective in some fashion.

Admittedly a lot of my reading tends towards the obscure, so I can't blame Amazon for doing what they do if it works for the vast majority of their consumers. It's great when I want something very specific and I'm a happy regular customer, but I could happily spend _hours_ in a second hand bookstore.

<comment><USER12> Sorry, we're talking about libraries (right?), many of which carry ebooks, and have non-infinite shelf space. I was also trying to make the point that anything over X years should be public domain.

Sure physical books have their benefits (as do ebooks), however I'd much rather have an ebook than nothing, because the book was thrown in the garbage due to lack of space.

</comment></comment></comment><comment><USER14> And, not one comment here or in the story about associating book title viewing activity with a library account with personally identifiable information.

They could have used book activity records, I think.

I guess stripping personal information was too much work.

</comment><comment><USER15> Books book culling reminds me of:

 _1984_

 _Canticle for Leibowitz_

 _Fahrenheit 451_

 _The Name of the Rose_

<comment><USER16> At the same time new books keep coming out, either a library stops buying new books, continually expands so it always has more room, or disposes of some old books. I think an algorithm is a good guide, but I would trust the Librarians to be able to veto it's recommendations and keep some books that are not read often.

<comment><USER17> Yeah, the algorithm probably needs adjustment and flexibility.

As long as a book is available within reasonable time via inter-library loan, the library system hasn't lost the book. The algorithm (or more generally, "the practice") probably needs a "consolidate" outcome in addition to "drop."

<comment><USER18> > As long as a book is available within reasonable time via inter-library > loan, the library system hasn't lost the book.

That's not entirely true, as there is a significant difference between having a book browsable on the shelf and havingnit borrowable with substantial latency via ILL, so there is a loss even if there is still some access available.

</comment></comment></comment></comment><comment><USER16> While I can certainly sympathies with the Librarian in this story and agree that human judgement should trump an algorithm in what books a library stocks the method used here seems inappropriate and counterproductive in the long term.

<comment><USER19> > and agree that human judgement should trump an algorithm in what books a > library stocks

Why? People are much more biased than machines. If this algorithm is well written and unbiased then we may have a case of someone saving books that speak to their biases. What if it was revealed it was books about young earth, anti-vaccination, promotion of Islamic extremism, and white supremacy? Would you be so welcoming of these rebel librarians?

The nice part of the algorithm is that, in theory, it should just be looking at circulation numbers and culling appropriately. Regardless, this is all a stop-gap measure until we can get every library digital so we don't have to worry about shelf space.

<comment><USER20> An algorithm that only takes into account popularity and not reviews nor importance of the work to literature or to its technical field contains its own biases.

<comment><USER19> Says who? It could cross-reference a list of important cultural works and make them exempt, for example. That list can be compiled by a committee instead of a lone guy who may have an agenda.

<comment><USER13> But the whole point of librarians is to allow that to happen, rather than thinking there's one perfect list of books that everyone should just copy from. _For sure_ you would see lots of bias - which you could then measure and challenge, but which could also turn out to be valuable.

It's odd to me that you can't see the inherent bias in saying that popularity is a proxy for literary value and designing your algorithm around that. Sure, it'll give you an unbiased insight into what's popular, but that assumes that libraries are in the business of catering to the popular taste, when we have a bustling private sector to do that for us already, which takes account of the fact that a great deal of the publishing industry's output is disposable and of only short-term interest. I mean, McDonalds is arguably the world's most popular restaurant chain, but that doesn't mean their food has significant gastronomic value, does it?

What is in the public interest, and what the public is currently interested in, are two _wholly_ different things.</comment></comment></comment></comment></comment>


Ask HN: iPhone Helium Freeze – security backdoor? - <AUTHOR> Helium freezes iPhones as discussed here - https://news.ycombinator.com/item?id=18340693<p>I know Apple is big on security, but could this possibly be a vulnerability? Could an iPhone be frozen with helium, and then disassembled to read off the SSD? <comment><USER2> I doubt that killing the oscillator would make the SSD more or less readable.</comment>


Making Love to Webkit - robert-boehnke http://acko.net/blog/making-love-to-webkit/

<comment><AUTHOR> "Just because you can doesn't mean you should".

The end-result is a terrible experience for me. The scrolling is extremely jaggy even after the 3d-fluff has scrolled out of the viewport.

And the initial view with the skewed text is about as functional as those flash websites that were famous in the 90s...

<comment><USER2> I think it's maybe just a bit early? You need at least a beta chrome build for it to work nicely - so stable should be nice in a few weeks... You're right though it's a little extreme, but imagine the type of data visualizations we have in store in the next few years on the web. This is really cool IMO...

</comment></comment><comment><USER3> runs smooth for me on Safari OS X.

And I really like it... but....

It's style over substance and reminds me of the bad old days when Flash polluted every website with something snazzy but superfluous.

I don't really know how to phrase what I'm thinking. It's good to try new things, especially with stuff like CSS3 and WebGL on the horizon. But it's bad to just shoot things down. While I don't think for a second that you're promoting 3d transforms as something that everyone should be using for everything... some people out there really will latch onto it as a "cool thing" and abuse it. Which isn't your fault, it's just the way the world works.

So in summary. Awesome, love it! But I hope CSS3 doesn't become the new Flash.

<comment><USER4> I think the question is: Is it content that I still want to access in a few years?

For example, Facebook with its terrible URLs and JavaScript everywhere is very fragile. Hard to cache, hard to archive, but who cares? If the whole site went bankrupt in ten years, would many people actually export their data? Or a blog on Rails, where every article becomes obsolete after a year. Or a restaurant website. Those sites can use all the magic they want.

But if you write about mathematics or art or other things that should pass the test of time, please make it bare-bones, semantic HTML. If I really like it, I can just archive it and show it to my children later. It's like using hover for menus, who'd guessed that this would break for millions of devices one day?

<comment><USER5> So... did it load fast? Was the content readable, selectable and natively scrollable? Did I break any of your regular habits, like 'back' or 'open in new tab' or copy/pasting links? Did you get a good sense of the site's contents and purpose from your first visit? Does everything remain accessible if you turn off JavaScript?

It's like everyone assumes nobody but them knows how to make websites.

<comment><USER4> My apologies - this site is indeed a masterpiece. The usability is much better than most _HTML_ websites, no need to mention Flash.

But in the sense in which HTML5 is going to replace Flash, I am pessimistic that many websites will go to the same lengths. And where there is more code, there are more possibilities to break in the future.

To be nitpicky about usability of newfangled stuff: Using web fonts disables the built-in dictionary on OS X, both in Safari and in Chrome. (I am so happy that this is one thing Facebook has not yet embraced.)

<comment><USER5> I don't disagree, but I think this is a void easily fixed with the right libraries and frameworks. Remember the web before jQuery? You couldn't get most developers to touch JS with a ten foot pole...

</comment></comment></comment></comment></comment><comment><USER6> Guys, I think a lot of you are missing the point. The purpose of this, I believe, is somewhat akin to climbing Mt Everest. It's there, he wanted to see if he could do it. He did it.

Comparing this to flash, or arguing why it doesn't work in X browser, or why it's bad UX or - is _completely_ off base.

It's "cool". He's experimenting. That's it.

</comment><comment><USER7> Thats disgustingly good. Its amazingly smooth (at least on Chrome on OS X)

<comment><USER8> What channel are you on? I'm on Stable and the site moves very slow for me. On the other hand it runs smooth as silk on Safari. (OS X 10.7.2)

<comment><USER9> OS X 16.0.912.75 here, running smoothly, until I tested the Konami-code version and had also the 3D-editor activated.

</comment></comment></comment><comment><USER10> Despite concerns about compatibility, usability, and future accessibility, this project is ridiculously awesome simply because it pushes the boundary of what's possible in the browser. Bold strokes like this are what move technology forward.

</comment><comment><USER11> Ran for me on Kubuntu (linux distro) using Chrome; but not on any of my other browsers nor on several browsers on WinXP under vbox. Changing page in Chrome crashed the browsers and completely filled my 2GB of swap, which is a first, usually swap is barely used.

Description of the working page/site:

The top half of the page is a series of colored streamers and the site title, giving a feel of the old "pipes" screensaver on MS Windows. A regular page view is presented towards the bottom right of the initial screen-area but tilted in perspective with the top-left corner away and the right edge towards the viewport. As one scrolls down the perspective view of the streamers alters and the page view moves in perspective until it is flat, square-on, to the viewport. It gives the feeling, to me, of moving underneath the title area in a more 3D way.

Hope that helps anyone, who was perhaps searching around to get a look at this thing, to decide if they want to see it or not. There's probably a screencap on YouTube ...

</comment><comment><USER12> Freaking amazing.

My only issue with css transforms is how unfamiliar the world of transforming/scaling/rotating/animating/etc is to the average web developer despite studying the basics of computer graphics. Whenever I look at the source, I feel like it has been written to never be read or understood again.

</comment><comment><USER13> "when you don't create things, you become defined by your tastes rather than ability. your tastes only narrow & exclude people. so create."

\- _why the lucky stiff

</comment><comment><USER14> Seems to love Gecko just fine as well - except it doesn't render anything correctly :-)

Ah the days when the web was standardized.. were.. really, really short.

<comment><USER15> I thought 3D CSS was a standard.

<comment><USER16> it is (well, in working draft) and 3d transforms are working in Firefox 10[1], but not for this site.

The author mentions he wrote it to be forward compatible as Firefox and IE10 add support, but it plainly isn't doing anything in Firefox right now...I'm curious if there's a reason or just a bug.

[1] [http://hacks.mozilla.org/2011/10/css-3d-transformations- in-f...](http://hacks.mozilla.org/2011/10/css-3d-transformations-in-firefox- nightly/)

</comment></comment></comment><comment><USER17> Thanks for sharing.

Btw You are pushing limits and turning people off by it. To me that are usually good signs, looks you are on to something with this approach.

I am pretty sure you just sparked a series of creative ideas coming up the next weeks. Thanks for that!

</comment><comment><USER18> That site made love to my CPU, it got hot.

</comment><comment><USER19> I normally dont comment much here, but this made me came out of my cave to type, Thanks for thinking out of the box, or at least showing me a new path to follow, as a web developer I miss the old days of "Flashy and Tacky" websites not because I miss flash, Its because of the innovation that drived that time, we all know there are some bad examples and bad implementations but when the project is right Its well worth it.

</comment><comment><USER20> The concept is cool. However, I find the 'klavika-web' font quite hard to read.

</comment><comment><USER21> This is a really classy demo. The scene editor (embedded in the post, don't miss it) is a brilliant addition - really very impressive.

</comment><comment><USER22> Fails on my iPad. To be specific the first part of the page renders but nothing more ...

<comment><USER23> It works on my ipad and the ios simulator (both with 5.x)

<http://i.imgur.com/YDP3a.png>

Crazy thing is that it doesnt do the smooth bounce scrolling.

<comment><USER22> ipad2 on ios4. I guess they upgraded safari in ios 5

</comment></comment></comment><comment><USER24> "Move camera: _Ctrl_ \+ _W_ A S D"

...Uncool.

</comment><comment><USER25> I said "Wow" out loud then started sharing the link to your site. It would be an overstatement to call it "breathtaking", but only just barely.

</comment><comment><USER26> I love to see people taking things to the limit and would never harshly criticize or discourage someone from doing something like this but there's a big but coming...

But whenever you do something like this you have to be sure to test it on enough browsers and devices to be sure the vast majority of your audience won't be left with a bad taste in their mouth. Either that testing didn't happen or it was decided that the negatives were worth it in this case. The experience isn't good on iOS (iPhone _and_ iPad) and just a little better in non-Webkit browsers. The scrolling is the big problem. It's okay for a minute but soon it's annoyance become more and more prominent in your mind.

Anyway, this is really really awesome! Having the js backup was good thinking. I hope it works out for the site. It's not something I'd use on a site with an audience that was really important to me but not everyone has the same priorities. In any case, besides the practical considerations, the effect itself is very impressive. Kudos.

<comment><USER27> But don't forget: the best thing about having a personal site is not having to care what others think about it.

<comment><USER26> Right! I'd feel the same about my personal site. See, I'm not familiar with the author so I'm not sure if it's appropriate. I think you have a point but if you have a personal site that's highly trafficked and popular then this might be a bad idea. _I_ could do something nuts like this but imagine if PG did this to his site. I don't think he would. That's the kind of thing I'm getting at.

</comment></comment></comment><comment><USER28> I love Tron</comment>


Ask HN: Where to ask opinionated programming questions? - <AUTHOR>

I often find myself with questions about web frameworks, best practices, etc. that are inappropriate for SO. What are the best places to find discussions like this (if something has already been asked) or start a new topic?
Specifically, I am interested in JavaScript and Python related threads.
Edit Accidentally submitted before entering body... <comment><USER2> StackExchange has a Programmers site which is supposed to be for conceptual questions. However, my experience is that if you can narrow down a question to a few possibilities, you can often get good answers (even better ones) on other SE sites.

then there are other places, forums, etc.

</comment><comment><USER3> www.reddit.com/r/python

www.reddit.com/r/javascript

www.reddit.com/r/webdev</comment>


Software Delivery and Billing: The Butcher Model - <AUTHOR> http://www.accelerateddeliveryplatform.com/PatternButcherModel.ashx

<comment><USER2> When I go to a butcher, all variables involved in the transaction are known. The butcher knows the wholesale price of meat, the overhead she/he carries, and the expected margins that must be maintained for the business to be profitable. I know what I want, or at least how much I am willing or able to spend. The meat itself is known to the both of us - its properties are in no way mysterious or unknowable. Most notably, my purpose and/or intentions in purchasing this known quantity are entirely irrelevant to the transaction. (I can't speak to butcher shops, but I can tell you for a fact that the margins for a bakery [and the grocery sector in general]are razor thin, and anyone doing it on a less-than-industrial scale is in it for the love more than the money.)

I would venture that more comparable model would be that of the general contractor (project manager), with programmers acting as independent subcontractors. In this model, the ability to bid jobs is the difference between financial success and ruin. I have know several highly skilled craftsmen that have lost their ass trying to strike out on their own, as estimating costs, administering a business, juggling workers, legal compliance, etc., are an entirely different skill set than doing the actual work.

As an independent contractor, you the project manager/contractor are paying for my time. If you are not ready for me to work, you are paying for my continued availability, or I am seeking work elsewhere. As an independent contractor, it is not my concern if the house is ever finished. I am paid for what I do. If no one was ever paid until the last nail was driven and someone moved in, we would probably all still live in caves.

</comment><comment><USER3> This article made me want to go break my own knees due to the horrible flaws because you're comparing development to a finished product.

The butcher gets paid per kilo for the finished product which is exactly how software models do currently work.

If at github I want multiple users in my organization I pay PER user.

What this article is trying to imply is that the butcher model can be applied to development as in while the development of the product is being made you're paid only if you deliver.

The problem with this entire article is that the farm is what is the software development NOT the butcher. The farm has to start from nothing, get the cattle, absorb all costs, raise the cattle and when everything is ready & done THEN go out to sell it but during this time the farmer has to pay everyone involved in the process.</comment>


How $99 and four hours every 2 weeks can provide rocket fuel to an Entrepreneur - <AUTHOR> http://terrybeech.com/2012/01/the-startup-diet-how-99-and-four-hours-every-2-weeks-can-fuel-an-entrepreneur/

<comment><USER2> Fried rice is a really simple preparation, and makes for good leftovers.

Heat a little oil in a wok or frying pan. Pour in a can of peas, carrots, or some chopped onions. Throw in a bunch of day old rice. (If it's just cooked, it's too sticky.) Douse with soy sauce. Toss the rice and fry it a bit. Crack in a bunch of eggs. Toss the rice some more. Maybe throw in some chopped bacon, or chopped cooked chicken.

This is really simple, and also a tasty one-dish meal that makes for great leftovers.

[Aside: Last week, I made a batch with 6 cups of brown rice, 6 eggs, and 1 lb of bacon. My friend came over, and while I napped for a few hours, she literally ate the entire batch of fried rice. I have no idea how a 120 lb woman was capable of this, but at least it shows the recipe is tasty!]

<comment><USER3> I'd recommend frozen veg over canned. I also make a little "well" in the middle of the wok for the egg to get it cooked up a bit before mixing with the rice. Otherwise it can get a bit mushy/gooey.

</comment></comment><comment><USER4> From the comments, I get that this is about cooking food for human(s) in batches.

From the title, I thought of the "rocket science nerds" that are often mentioned here, and guessed that this was about some DIY approach to producing small quantities of actual rocket fuel at home. That fuel would then be pooled in order to help with rocket engine testing and development.

That felt cool, but I guess not, then. :)

<comment><USER5> I was expecting some kind of food/drink but I definitely didn't expect normal food but done in a time-saving way. 'Rocket' fuel strongly implies it's giving an exceptional energy boost.

</comment></comment><comment><USER6> A recommended read would be "Artisan Bread in 5 Minutes a Day". Describes how to make no-knead homemade bread in only about 5 minutes of active work a day. Rising is done in the fridge overnight. Take a portion out of the fridge in the morning and bake it while prepping for the day. Nothing beats the smell and taste of home-made bread. The only downside it that it is so superior to supermarket bread that I can't eat supermarket bread anymore, even as toast.

<comment><USER7> The Times has a great recipe as well: <http://www.nytimes.com/2006/11/08/dining/081mrex.html>

It's super easy (don't even bother with the cheese cloth stuff, just dump it into a pot and bake it) and hard to mess up. And most importantly, delicious!

</comment></comment><comment><USER8> Thumbs up for figuring out how to eat healthy on a budget, but thumbs down for cooking all the food at the same time and eating frozen leftovers for 2 weeks.

<comment><USER9> I dunno man. I spend a Sunday a month just cooking a shit-ton of food and freezing it. Fish curry, chicken soup, chili, beef burgers... It is such a damn relief to come home after a long day and just have healthy, tasty food ready to go after 5 minutes of zapping it.

<comment><USER8> I hear ya, I'm sure it's good. For me I just think it would zap some of the joy out of cooking and eating. It's hard to beat freshly prepared food. Although to be honest I do eat a bit of Trader Joe's pre-prepared meals.

</comment></comment></comment><comment><USER10> OT note to ballard: you might want to figure out how your account got algo- killed between 235 and 238 days ago.

 _ballard 19 minutes ago | link [dead]

Michelin-rated food is rife with cream, salt, carbs and worse for the pleasure of frittering away $4,230[1] while simultaneously contributing to chronic heart disease, diabetes and adipose tissue. Make your own food, skip an early grave and save some runway (and avoid giving away more equity) in the process.

[1] conservatively, say $30 with tip for a $$ place [$-$$$$] _ 3 times a week * 47 weeks per year. _

</comment><comment><USER11> Site down for me. Anyone has a cache link?

<comment><USER12> Here is what I managed to extract from Bing's cache (cached page didn't load for me either, so I copied source, and removed css/javascripts from it)

<http://dl.dropbox.com/u/1229269/page.html>

More readable version via Readability: <http://rdd.me/eblpiyaf>

</comment></comment><comment><USER13> I'll just note that there have been several past, rather active HN threads on this topic, for those interested in having a look.

I'll toss in my quick and nutritious suggestion: Microwave a sweet potato. Don't forget to poke it a few times with a knife to vent steam pressure. Slice in half and top with a little brown sugar and cinnamon, or whatever else strikes your fancy (e.g. maple syrup, butter, etc.).

</comment><comment><USER14> Do we really need a cooking article on _Hacker_ News?</comment>


Joining the Ranks: Demystifying Harvard's Tenure System - <AUTHOR> http://www.thecrimson.com/article/2013/4/11/scrutiny-tenure-harvard/

<comment><USER2> Getting hired into a faculty position (and often getting tenure, like at Harvard) are increasingly becoming more and more like show business... a really high ratio of qualified applicants to (scarce) positions ... and so what ends up being deciding factors are often seemingly arbitrary, subjective, or even unknown. "Fit" with the Department. "Significance" of the work. "General consensus" of the committee.

We can complain and complain but what this means from a practical point of view, for young and aspiring academics, is

1\. If you really want it, don't give up. Keep doing good work and keep applying.

2\. If you care more about making money, do something else. Like in show business and sports, the vast majority aren't getting super rich, aren't getting famous. They ARE however living their dream, doing exactly what they love to do.

3\. You will need to make an impression above and beyond the objective "facts" that you list on your academic cv. You will have to be friendly. You will have to impress on intangibles. Scientists are often not good at this.

4\. In today's environment academic Departments care about your potential to bring money into the University (in the form of research grants). You will need to hit this point.

5\. Your motivation (and validation) has to come from within. If you depend on external reinforcement you will not succeed.

I see a lot of graduate students complaining about how difficult it is to get hired into a Faculty position these days, how difficult it is to get research grants, how difficult it is to get published in a decent journal. Not to be TOO much of a grumpy old man, but like any highly skilled endeavour, it should be difficult. 10,000 hours and all that.

Many, many young people end up in graduate school not because they are intensely focused on scholarly work, and intend upon one day being a Professor, because that's what they love to do, that's what they've always wanted to do (this however WAS the case for me) ... rather many, many young people end up graduate school because

a. they are in a holding pattern because they haven't yet attained their actual goal, which is getting into a professional school (law, meds, dentistry, mba, etc)

b. their grades are good and they "don't know what they want to do"

As a Professor, case a. doesn't bother me much, as long as they work hard, it can be a win-win for supervisor and student.

Case b. bothers me a lot. Advanced, persistent scholarly work is an intense, difficult, (rewarding) endeavour. If you're bored, or confused, please don't "try" graduate school. It's not a hobby. It's a very specific undertaking that is well suited to only a very small proportion of the population (even the population of "smart people").

<comment><USER3> > _I see a lot of graduate students complaining about how difficult it is to > get hired into a Faculty position these days, how difficult it is to get > research grants, how difficult it is to get published in a decent journal. > Not to be TOO much of a grumpy old man, but like any highly skilled > endeavour, __it should be difficult__. 10,000 hours and all that._ (my > emphasis).

If we're talking about _should_ , then I think society should place more importance on research -- it provides significant long-term value to society -- and this should translate into more funding for research, and more research positions being available. That is, it should be easier to get a research position.

</comment></comment><comment><USER4> Link to single page view:

[http://www.thecrimson.com/article/2013/4/11/scrutiny- tenure-...](http://www.thecrimson.com/article/2013/4/11/scrutiny-tenure- harvard/?page=single)

</comment><comment><USER5> "Does the faculty balance necessitate someone of the candidate's specific field?" You'd think they could make that decision _before_ they offer a tenure track position.

</comment><comment><USER6> > Following testimonies, the ad hoc committee deliberates: ... What about the > candidate's teaching? ...

I lol'ed. Then I checked the url and it made total sense. Thanks for the hard- hitting reporting, Harvard Crimson.

> ...Harvard's ad hoc process remains among the most thorough and fair tenure > systems in higher education.</comment>


How to draw viewers into Web Video - lessons from porn - <AUTHOR> http://guerillashowrunner.com/2011/02/why-a-good-porn-site-makes-our-web-show-pages-look-like-amateurish-crap/ <comment><USER3> I know a lot of the people at Kink.com _(they're a solid part of the local SF tech scene, regardless of what people think of the content)_ and they have some interesting technology across the board.

However I wouldn't actually use their websites as good examples of best- practice in this vertical. Having disrupted the traditional DVD-based content houses, Kink.com is now getting disrupted themselves a little by the 'tube sites' and they really are not on top of this new era for that industry.

The main issue for video sites - of all content genres - is discovery. The author's premis about 'drawing in the viewer' doesn't really allude to this greater issue. YouTube doesn't really do a great job of discovery - <USER2> only similarity clustering and string search.

I'm not going to link to sites from here, but there are a number of adult content tube sites that have some really quite excellent taxonomy, categorization and deeper search functions - surfacing the content that each viewer wants is a unique experience for each person.

Many of their video player experiences and social features are excellent too - ones that YouTube should really take a look at (in fact I know of YouTubers who gone to work for these sites).

For me, the tube world is yet another example of where the adult website industry is once again leading the R&D in the space.

<comment><USER4> _there are a number of adult content tube sites that have some really quite excellent taxonomy, categorization and deeper search functions - surfacing the content that each viewer wants is a unique experience for each person_

 _Many of their video player experiences and social features are excellent too_

Please name names.

<comment><USER3> _Responding to this cos it got a high vote..._

I don't feel comfortable linking to such sites on Hacker News or really talking about them here in any more depth.

Feel free to contact me offline from HN if you want me to suggest some leading examples. _(details in my profile)_

UPDATE: turns out the original author discovered all of these sites via my partner Violet Blue ([http://guerillashowrunner.com/2011/02/why-a-good-porn- site-m...](http://guerillashowrunner.com/2011/02/why-a-good-porn-site-makes- our-web-show-pages-look-like-amateurish-crap/#comment-293)) -- so the circle is complete. Lol.

</comment></comment></comment><comment><USER5> After reading the article, I am not convinced, we should copy the techniques employed by porn sites when building all "ordinary" sites. On a porn site, the content variability is low - it is easy to pick one video, promote it, and it would probably satisfy all viewers to some degree. On a normal site, each user wants something else and pushing one video may annoy 90% of viewers, because it is not what they are looking for. On a less emotional and more informative site, you have to be less pushy.

<comment><AUTHOR> I agree, this technique is definitely not for all sites. I'm specifically talking about web series, where there are usually some fairly obvious entry points. For a bigger content aggregation site or similar, you'd need another approach.

</comment></comment><comment><USER6> Basically: Put something interesting on the landing page.

<comment><USER7> I think the rabbit hole goes a little deeper than that don't you think?

</comment></comment><comment><USER8> I've never heard of Guerilla Show Runner before - but really like the site. Thanks to whoever posted this. I've picked up the RSS feed.

</comment><comment><USER9> This is a bit harsh, but, based on the author's site design and the design of his other sites, I'm not sure why we should take the author seriously.

<comment><USER10> I honestly don't think it's harsh - his websites for his shows are groin- grabbingly ugly, and it should be no surprise to him as to why they do not attract viewers.

Want to pull people in to your video content? Look at some of the better video sites on the web and see how they do it.

I can think of one off the top of my head: <http://epicmealtime.com/>

<comment><AUTHOR> I think you may be under a misapprehension here. Every major series I've been involved with has been very successful indeed - Google 'em. ;)

But they could have been even _more_ successful - for example, if I'd implemented the techniques I talk about in the article. That's my point.

(Perhaps they'd even have been more successful with visually slicker sites - but the belief that a prettier site automatically equals better conversions is a reasonably well-known business fallacy.)

</comment></comment></comment><comment><USER11> I am pretty sure Porn as an advantage in one aspect. People went out of their way to seek it.

In a aroused state, it wouldn't matter what you're watching, it could be someone just running a hand over their other hand and you'll get viewers, it's just enough to get off on.

<comment><AUTHOR> Ah, but these days, as a porn site you've got to compete with thousands of others.

It's not "will the audience look for porn", it's "Why will they choose your porn over someone else's?"

(Likewise, it's not "Will the audience look for an action-adventure show", it's "Why should the audience choose YOUR action-adventure show?")

<comment><USER12> That site caters to a specific fetish, female domination. There are not thousands of sites competing with it.

Most successful porn sites cater to a specific fetish, instead of a bucket of random porn.

He needs to find his target market. Not sure who it should be, though.

<comment><USER13> Please google your tagword. Better yet, google Female domination Porn. You're going to get a lot. If you go out and use the actual jargon, Femdom Porn, you're going to get quite a lot as well.

Point being: there may not be thousands of sites competing, but when the search returns over a million sites and its nearly straight femdom out to the thirteenth results page (and likely beyond)...I'm going to wager that you didn't do that very simple bit of research, a google, before making such a declaration.

<comment><USER12> "hacker news porn" returns over 286,000 results...

As you yourself said, the actual jargon is "femdom porn", not "female domination porn", or even simply "femdom".

By adding "porn" to any keyword search, you will get many extraneous results (see "hacker news porn" above).

Most importantly, these "alot of results" all have affiliate banners to the same handful of "femdom" sites.

Next time, try looking at the actual content, not just the Google results. I should have taken you up on your wager!

<comment><USER13> Femdom being one of my fetishes, I rather beg to differ on the statement that there are only a handful of femdom sites.

I will cede that there are a few fantastically successful ones, like I suspect in most media, which are rather strongly linked to...</comment></comment></comment></comment></comment></comment>


How Silicon Valley Treats a Trump Backer - <AUTHOR> http://www.nytimes.com/2016/10/20/technology/how-silicon-valley-treats-a-trump-backer-peter-thiel.html?_r=0 <comment><USER2> Have any of Altman's critics taken a step back and realized that they are telling him that he is morally obligated to terminate a productive business relationship over political differences? Are they suggesting that half the country should blacklist the other half and not refuse to do business with them? I think views like this are a result of us segregating ourselves into very narrow filter bubbles - I think it is possible that Marco Arment for example does not personally know any Trump supporters. Scott Alexander has an excellent post about this which I highly recommend (see section III specifically): [http://slatestarcodex.com/2014/09/30/i-can-tolerate- anything...](http://slatestarcodex.com/2014/09/30/i-can-tolerate-anything- except-the-outgroup/)</comment>


Circle offers whole exome DNA sequencing for $189 - <AUTHOR> https://circledna.com <comment><AUTHOR> This is quite big. These tests usually go for $1k+; recently there was a startup selling those for $600 (upselling to 1500 for meaningful reports), but this is even cheaper.

For comparison, 23andme tests provide 50 times less data.

With cheap tests like that, much more people will figure out their chances of getting cancer or hereditary diseases.

<comment><USER2> Are you sure you will get access to the raw SNP data of the exome sequencing? Looking at the comparison of their 4 products [https://circledna.com/services/](https://circledna.com/services/) the emphasize the "reports" but nowhere do I see access to raw data mentioned.

<comment><AUTHOR> They don't, I wonder if you can still get it though (gdpr?)</comment></comment></comment>


If we answered any question of yours in less than 60 mins, would you play ball? - <AUTHOR> Hi all,
We're a legaltech providing answers to legal questions in < 1 hour for the modest price of $ 4.20. We cater to the average Joe and companies alike.
We've been getting traction since the few days we've shifted to this idea, and have been wondering if there are other fields where people would pay $ 4.20 for quick and curated answers.
Thanks! <comment><USER2> Health advice

<comment><AUTHOR> great point! Would that be generic wellbeing/diagnostic?!</comment></comment>


Ask HN: textbooks, references for crawl+ingestion architecture - <AUTHOR>

Hi,
I'm writing a system that ultimately wants to grab lots of data and organize it into a database. I'm currently using a crawl to file, ingest file to database scheme, and I'm just wondering what is some good literature to read so I don't re-invent all the wheels (not just in the task at hand, but also in logging to evaluate performance, etc)<p>Thanks. <comment><USER2> You might want to flesh out your description a bit more, since it's somewhat generic as is.

Maybe Stackoverflow.com would be a good venue for this type of question.</comment>


Get top 40 entrepreneurial books (AppSumo) - <AUTHOR> http://appsumo.com/~vFS2

<comment><USER2> This is great for Appsumo, but not so great for the people trying to win.</comment>


Fixed - The easiest way to fix a parking ticket - <AUTHOR> http://getfixed.me/

<comment><USER2> Saw these guys (at least the same idea) pitch at a local incubator. Good job on getting launched, I've got a couple unpaid tickets.</comment>


Lock freedom without garbage collection in Rust - <AUTHOR> http://aturon.github.io/blog/2015/08/27/epoch/ <comment><USER2> Let's see, a TL;DR, then a table of contents list, then straight to benchmarks...

This man knows how to get right down to business.

<comment><USER3> Looks like the OP took [https://xkcd.com/773/](https://xkcd.com/773/) to heart.

<comment><USER4> This is gold. Just had to say it.

</comment></comment></comment><comment><USER5> I'm extremely excited about posts/libraries like these. They really show off the unique powers of Rust in a way that's a bit more compelling than "Rust is just C++14 with a bit stronger guarantees and more clean semantics."

Also worth noting, and something I missed when I read the draft of this post: this isn't just an implementation of a lock-free structure: it's a whole library, Crossbeam[1] that helps you implement your own lock-free structures.

      > In general, it's possible to take lock-free algorithms "off the shelf" (the
      > ones on the shelf generally assume a GC) and code them up directly against
      > Crossbeam in this way.

1: [https://crates.io/crates/crossbeam](https://crates.io/crates/crossbeam)

<comment><USER6> Is this based on his thesis?

<comment><USER7> No, this isn't an implementation of Aaron's thesis (reagents [1]). It's an implementation of Keir Fraser's thesis :) [2]

[1]: [http://www.mpi-sws.org/~turon/turon-thesis.pdf](http://www.mpi- sws.org/~turon/turon-thesis.pdf)

[2]: [https://www.cl.cam.ac.uk/techreports/UCAM-CL- TR-579.pdf](https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-579.pdf)

<comment><USER8> Wow, I am very impressed with the typesetting on [1]. Jealous, even...

<comment><USER9> Someone procrastinated a lot. :)

<comment><AUTHOR> Not toooo much, but I will say that feeling inspired by the typesetting helped keep my motivation up for all 299 pages...

<comment><USER10> Page 9 has a TL;DR footnote. Degree granted.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Awesome stuff.

I'll echo that Rust really does seem to be something new and exciting in the native land of languages.

I feel like it's still got some rough spots(around FFI and just some APIs still being unstable) but there's so many things to like with the current direction.

<comment><USER12> What do you feel is rough around FFI? Safer, zero-cost bindings to C libraries - what's not to like? :)

<comment><USER11> CString::from_ptr is unstable - [https://doc.rust- lang.org/stable/std/ffi/struct.CString.html](https://doc.rust- lang.org/stable/std/ffi/struct.CString.html)

clib is marked as unstable - [https://doc.rust- lang.org/stable/libc/types/os/arch/c95/type...](https://doc.rust- lang.org/stable/libc/types/os/arch/c95/type.c_char.html)

Most of the intrinsic types are usable but anything involving strings seems to hit unstable/experimental branch pretty quickly.

I'm sure it'll improve I was just a bit surprised to not see it mentioned in the docs.

<comment><USER5> You should use libc from crates.io, which is stable. Not the compiler-internal one you linked to.

<comment><USER11> Ah, the docs around FFI say that libc is a part of the standard library so it wasn't clear that I'd have to pull that from crates.io.

<comment><USER5> Hmm, can you point me to where they say that so I can fix it? Seems bad.

(Also, the error message when you don't have a `#![feature(libc)]` should say "hey, please use the external crate thanks")

<comment><USER11> [https://doc.rust-lang.org/book/ffi.html](https://doc.rust- lang.org/book/ffi.html) at the end of "Interoperability with foreign code"

Yeah, that error message sent me down the wrong path :).

<comment><USER5> Ahh excellent, thank you! [https://github.com/rust- lang/rust/issues/28053](https://github.com/rust-lang/rust/issues/28053)

<comment><USER11> Nice!

Let me add another plus for Rust is the community around it.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> For each use of unsafe in Rust code, presumably the developer sees some safety guarantee that the compiler does not understand but that he thinks will guarantee that the code is indeed safe. Can anyone shed light on what form these guarantees (that are not seen by the borrow checker) take, and whether it will be possible in future Rust versions to write such code without unsafe (either by improvements to the borrow checker or implementation of an additional safety checker)?

<comment><USER14> Usage of `unsafe` generally has to do with subverting the Rust compiler's notion of ownership. Take a look at this snippet from the OP discussing the usage of unsafe code in the client example:

      > The operation is unsafe because it is asserting that:
      >   * the Shared pointer is not reachable from the data structure,
      >   * no other thread will call unlinked on it.

This is only necessary because the library here is concerned with sharing a data structure among multiple owners (the owners being threads in this case) who all wish to mutate the data structure.

There are other places like this where one may wish to subvert the borrow checker, and when such a pattern becomes widely observed it can be placed in the standard library behind a safe interface, (ideally) removing the need for unsafety in client code entirely. The `Rc` smart pointer in the stdlib is one such example of a safely-exposed interface to code that internally uses unsafety to subvert ownership in a specific way. And as long as you trust the compiler to be correct, you can also trust that the "unsafe" code in the stdlib is also correct (or at the very least that the Rust developers are guaranteed to fix any incorrectness that is found).

<comment><USER13> I understant those concepts. My question was more along the lines of, could the code you mention from the article one day be written without unsafe? Somehow the programmer is very confident that neither of the two restrictions you mention will be broken. Is there any way that it can be proven from the code that they will not be broken, and therefore remove the need for unsafe? Or, if safety can not be proven from the code, how is the programmer so certain of it?

</comment></comment></comment><comment><USER15> Isn't there theoretically a risk that one thread could hang indefinitely while accessing (or holding a reference to) the data structure, which would prevent the epoch from ever advancing and prevent all memory from being reclaimed?

(On the other hand, I'm not sure what guarantees GC-based lock-free data structures can make in the same situation.)

<comment><USER16> From the thesis the post linked to:

``` Although limbo lists are accessed using lock-free operations, and garbage collection does not interfere with other mutator processes, this reclamation scheme is not strictly lock-free. For example, a process which stalls for any reason during a shared-memory operation will not observe updates to the epoch count. In this situation the limbo lists will never be reclaimed and memory cannot be reused. Other processes can make progress only until the application reaches its memory limit. This drawback may also affect preemptively-scheduled systems, in which a process may be descheduled in the middle of a shared- memory operation with no guarantee when it will be rescheduled. ```

</comment></comment><comment><USER17> The epoch based approach basically is on of the many variants of RCU (as e.g. used by the Linux kernel - thoroughly documented on lwn.net BTW).

It does mean that a stuck or killed process can cause rather noticeable pain. With a GC you usually have a upper bound of the amount of memory one stuck process can prevent from being reclaimed, not so with a generation based approach.

On the other hand it dies often voids concerns around ABA style problems.

<comment><USER17> Oh, one more thing: often an approach based on hazard pointers allows to reduce the impact of a stick or slowed down process, without using a GC. And while stool protecting against ABA. Another good thing is that luckily the patent application around it was rejected.

<comment><USER18> Hazard pointers aren't any better when it comes to stuck processes, right? If you aren't removing your nodes from the hazard pointer list, you're stopping reclamation just as with this algorithm.

The epoch algorithm strikes me as pretty much strictly better than hazard pointers.

<comment><USER19> HP is much more granular and a stuck thread does not inhibit system wide progress (yes, the slots won't be reclaimed but other entries will continue to be reclaimed).

</comment></comment></comment></comment><comment><USER20> Very nice. RCU like this can be very effective (we have a custom per-cpu version based on [https://lwn.net/Articles/650333/](https://lwn.net/Articles/650333/) here, which scales better than per-thread versions for obvious reasons.) I'm glad to see more wide use of the techniques.

<comment><USER21> Cool! Who is "we" and where can this code be found?

You say "RCU like this", but AIUI RCU and epoch-based collection like in this article are quite different from each other.

RCU involves no-synchronization reads of a data structure and writers that wait for a "quiescent" state to delete old nodes. It is used for data structures that have pure readers (like a frequently read but infrequently- updated list of things).

Epoch-based GC involves lock-free writes but puts garbage in freelists to be collected at a later time. It is used for data structures that are mostly based around writes (for a stack or queue, both push and pop are mutating operations).

<comment><USER22> Could someone explain the big difference between RCU and epoch-based reclamation? It seems that the only difference is that RCU has quiescent periods between reschedules and epoch-based has them when you don't have a Guard struct active. Seems like six of one, half a dozen of the other.

<comment><AUTHOR> They are very similar; I think of the epoch scheme as a particular way of doing RCU that does not impose the need to find quiescent states yourself (RCU can be employed in userspace as well if your application can provide quiescent states in some way).

This paper (linked from the blog post) was very helpful in comparing them: [http://csng.cs.toronto.edu/publication_files/0000/0159/jpdc0...](http://csng.cs.toronto.edu/publication_files/0000/0159/jpdc07.pdf)

<comment><USER21> I think a key property of RCU as traditionally presented is that writers always wait for global quiescence directly after their write, and then immediately delete the garbage. This approach wouldn't make much sense for data structures like stacks and queues where every operation is a write. I see Epoch based GC as an approach that defers the deletion to make the write path cheaper.

<comment><USER17> > I think a key property of RCU as traditionally presented is that writers > always wait for global quiescence directly after their write, and then > immediately delete the garbage.

A rather common, in my opinion, way to use something like rcu is to delay freeing (or reusing) memory to the next grace period, without blocking until then. E.g. in the kernel you can use kfree_rcu(..); instead of synchronize_rcu(); kfree(..); for that. That's basically what the epoch based approach does with a the lists of to-be-freed allocations.

</comment></comment></comment></comment></comment></comment><comment><USER23> I've been something wondering something for a while now. Rust is supposed to be a kind of C/C++ replacement, right? But the last I heard it's still much slower. So what's the roadmap to speeding it up? Googling for it failed me.

<comment><USER24> In general it's possible to write Rust code that is competitive in speed with C and C++. Some safety features like bounds checking do have a small performance cost, though in typical performance-sensitive code it is on the order of 1–2%. You can write unsafe code to avoid the penalty when really necessary.

The programs submitted to the benchmark game currently show Rust faster than g++ in some benchmarks, slower in others, but generally in the same ballpark. Of course this changes as the compilers and the programs improve, and the benchmark game isn't representative of anything in particular, but it illustrates some of what's possible.

[http://benchmarksgame.alioth.debian.org/u64q/compare.php?lan...](http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=rust&lang2=gpp)

<comment><USER25> Rust has also yet to finalize SIMD, which will help a ton on some where Rust is behind.

[http://huonw.github.io/blog/2015/08/simd-in- rust/](http://huonw.github.io/blog/2015/08/simd-in-rust/)

</comment></comment></comment><comment><USER26> as browsing the api docs I kinda like lots of things from rust however, how is the portability ie. target windows/linux/mac at once? is it easy to cross compile? is it easy to include c/c++ header files and use them? kinda like to link with nuance c sdk

<comment><USER27> To the best of my knowledge:

1\. Rust is working on cross compiling support (very hard atm).

2\. Rust can (pretty trivially) interface with C.

<comment><USER28> Some things I'd add:

1\. Cross compiling has worked in rust since before 1.0, but it's required some manual configuration (downloading the platform's stdlib and adding command line switches, etc.). A goal for the future is push-button cross compilation [1]. I'd also add that the standard library has most of what you'd want for cross platform compatibility, from higher-level interfaces that work cross-platform (like std::thread [2]) to lower level bindings for each platform like (std::os::unix::fs [3] or the OsStr system [4]).

2\. Yep, C interfaces are pretty trivial. However, they do need to be manually defined. There is no built-in way to parse C header files or declarations. [5]

[1]: [http://blog.rust-lang.org/2015/08/14/Next-year.html](http://blog.rust- lang.org/2015/08/14/Next-year.html)

[2]: [https://doc.rust-lang.org/nightly/std/thread/](https://doc.rust- lang.org/nightly/std/thread/)

[3]: [https://doc.rust-lang.org/nightly/std/os/unix/fs/](https://doc.rust- lang.org/nightly/std/os/unix/fs/)

[4]: [https://doc.rust- lang.org/nightly/std/ffi/struct.OsStr.html](https://doc.rust- lang.org/nightly/std/ffi/struct.OsStr.html)

[5]: [https://doc.rust-lang.org/nightly/book/ffi.html](https://doc.rust- lang.org/nightly/book/ffi.html)

<comment><USER26> what editor do you guys use? or what editor has the best rust support, yet? In golang code was easily written via st2/st3

<comment><USER29> I've submitted over a hundred patches to the standard library using only st3, for reference.

<comment><USER26> which plugins do you used?

<comment><USER29> Google Spell Check, WordCount, and Wrap Plus for docs.

LLVM for IR highlighting, Rust for Rust highlighting.

I've tried racer in the past but it just doesn't scale with the current compiler architecture. I'm hoping the ongoing refactoring work will get us a great incremental/parallel/continuous compilation system for autocomplete/red- squigglies.

My two biggest pains are: "trivial" errors (syntax, typos, etc) which I ideally would just see as red squigglies as I go (not a compile-fail loop); and the absolute lack of any kind of incremental compilation (which paired with the community's over-use of generics is super painful for codegen time).

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> Stand-alone EBR also available at [http://concurrencykit.org](http://concurrencykit.org)

<comment><USER19> Note that epoch reclamation is only competitive with amortization, otherwise you may as well use hazard pointers for simple structures to benefit from stronger progress guarantees. Of course, QSBR is best if you have quiescent points.

</comment></comment><comment><USER30> Given that about every other line in the example stack implementation is marked as "unsafe", I fail to see how Rust is any more safe or well-suited for this than other low-level programming languages (C++, D, etc.).

<comment><USER31> I see 3 lines/expressions marked `unsafe` in [http://aturon.github.io/blog/2015/08/27/epoch/#treiber%27s-s...](http://aturon.github.io/blog/2015/08/27/epoch/#treiber%27s-stack- on-epochs) and a tweaked `unlinked` API could cut that down to 2, and removing the unsafety from `cas_shared` (which doesn't _strictly_ need it, but is a major contributor to any issues that could occur) would cut it to 1. Those lines are exactly the danger-points of the data structure, i.e. where misuse can cause use-after-free.

In any case, Rust really shines for the Owned and Shared types, where the affine typing & lifetimes allows sharing to be controlled so that most operations are perfectly (memory-)safe, with compile-time guarantees.

<comment><USER32> The number of individual lines marked "unsafe" isn't what's important. The safety of those lines relies on invariants put in play by by the rest of the code. _All_ the code behind an asserted-to-be-safe API has to be correct, or incorrect but lucky, in order for the data structure to be safe.

<comment><USER14> And yet Rust still provides tremendously more type safety in this application thanks to the lifetime system statically verifying the accessibility of the guarded data. It's true that unsafety is a stateful property than a local one, but unsafety still has to involve the unsafe block _somehow_ and that's enormously useful for auditing, debugging, and providing general assurance towards code correctness.

</comment></comment></comment></comment><comment><USER33> I tried Rust about a year ago, and it was pretty horrible. Not intuitive and broken back then. Maybe it's better now, and benchmarks are great, but also show me its community and how practical and easy it would be to use.

I like Mozilla and would like to see Rust succeed, but I just see adoption as too risky right now. It's like when Go was the new-and-shiny; many jumped on the hype bandwagon because it was Google backing it and it was fast, then tried it out and realized it was a language for the <5% of teams that have projects that fit well.

Performance is an awesome thing and there is definitely a place for Rust. But, I don't see it taking the place of C, C++, or Java anytime soon for writing high performance or portable apps. All the same, I look forward to using it in a web browser!

<comment><USER18> > It's like when Go was the new-and-shiny; many jumped on the hype bandwagon > because it was Google backing it and it was fast, then tried it out and > realized it was a language for the <5% of teams that have projects that fit > well.

I don't see that all with Go. Go is getting a good degree of traction, because it's a really useful language for a lot of people.

> But, I don't see it taking the place of C, C++, or Java anytime soon for > writing high performance or portable apps.

Why not, specifically?

<comment><USER33> > I don't see that all with Go. Go is getting a good degree of traction, > because it's a really useful language for a lot of people.

I agree that Go has the traction and community to stay around for the long haul as a niche language.

It's not a replacement for C, and never will be. I can't imagine more than 5% of developers ever using it.

Let's take Java which despite C# is still the number one language in the world to use by number of developers and just compare Go to Java. That's more than fair since the number of Java developers in the world is less than the total number of developers in the world.

Given that, here's data to back my wild claims:

Java is in ~2.7% job postings on indeed.com currently: [http://www.indeed.com/jobtrends?q=java&l=](http://www.indeed.com/jobtrends?q=java&l=)

Go(lang) is in ~0.0035% and the adoption curve has slowed: [http://www.indeed.com/jobtrends?q=golang&l=](http://www.indeed.com/jobtrends?q=golang&l=)

Similarly, in GitHut which compares language use across GitHub, you can see how the amount of Java code dwarfs the Go code currently shared: [http://githut.info/](http://githut.info/)

I know, I know- Go still have a great growing community, but it just hasn't taken off the way they would like you to believe. I still think it's a great language, but it isn't making the inroads we'd all believe it has based on the hype. That's not to say it isn't useful- it is, or that developers shouldn't learn it or use it- they should. But, it isn't one of the top languages nor will it be at the current rate of adoption.

> Why not, specifically?

That's a much bigger question, but the answer is: Go is not AngularJS.

What?!! You may ask. Here's what I mean:

In today's development world of every decent language and framework getting 15 minutes of fame, you have to have something really trendy and seemingly cost- saving to get you there. Go is a practical language written for speed (similar to Rust). That is not the Toyota Camry or Honda Civic of languages, that is the high speed locomotive. A different use case, and tough to market.

<comment><USER14> You don't deserve the downvotes, but I'm still not sure what your concern is. The modern history of the programming languages ecosystem is marked by rapid specialization and fragmentation, in which 5% market share is an _enormous_ quantity. Furthermore, relative percentage of mindshare isn't as interesting as absolute numbers: your language needs only enough active contributors to keep pace with the evolving trends of the industry, which can likely be achieved with less than 20,000 active users (well less than 1% marketshare).

The point of any given programming language is not to be crowned queen of the programming prom, it's to produce useful software and improve the state of software development. As long as your language meets a minimum threshold for notoriety (which both Go and Rust do), the fact that they have less marketshare than Java is irrelevant unless your sole motivation for learning a language is to get a job at an enterprise company (which is a fine reason to learn a language, but I think you might be on the wrong forum if that's your overriding concern :P ).</comment></comment></comment></comment>


Mobile carriers defend early termination fees - <AUTHOR> http://www.computerworld.com/s/article/9162040/Mobile_carriers_defend_early_termination_fees

<comment><USER2> Mobile carriers defend their right to make mutually binding contracts with their client, just like any other business.

[http://techliberation.com/2010/01/26/what-is-all-this- nonsen...](http://techliberation.com/2010/01/26/what-is-all-this-nonsense- about-smartphone-early-termination-fees/)</comment>


Ask HN: Coolest CS Subfields? - <AUTHOR> I've worked as a backend or mobile app developer for 10 years. This type of programming is very monotonous and I'm looking to move into a more exciting and challenging subfield. I have a BS in Computer Science and my math skills are so rusty they might as well be nonexistent. What types of programming jobs are actually challenging and interesting? I am OK with having to go back to school. Please only remark on the jobs you have personally worked.
Potential candidates:
* Graphics programming * Scientific computing * Data science * Quantitative finance development * Machine learning * Embedded development
Thoughts? I am also considering abandoning engineering altogether and going into general business as that seems like a more transferable skill and you don't have the skill rot that occurs in eng. <comment><USER2> Marine science. Not well paid but lots of interesting adventures.

<comment><AUTHOR> I've been fascinated by this forever. It seems like it's mostly for EE and ME people though? Are you working in Marine Science?

<comment><USER2> In my day job I make high tech equipment for ships. My customers are users on all types of ships from arctic to Antarctic and everywhere n between. 1/2 our engineering team is SW. all our engineers go in the field (be it local boat tests for the day or customer visits on the other side of the world). There are 100s of companies that need software engineers in the marine market. My work involves science to make our technology effective but we are not marine scientists. You can find these types of companies all over the place but many within driving distances of universities with marine science/technology programs.

That being said, I've designed lots of field tests for our products. I've worked on joint projects with scientists from academia. And I've been invited to the ice trials on board famous research vessels.

If you want to do more direct science, then you want to work for the users of marine products. These people are in the field a lot more and often performing the "science". Research institutes associated with universities always need professional sw talent. But they don't pay anywhere near industry. Check out institutes in FL, MA, RI, CA, MS, WA, NH.

<comment><AUTHOR> I've often considered going back to school for a MS in Robotics, but I wonder if it's possible to join an outfit like yours as a SW guy and "pick up" some of the prereq knowledge on the job? I'd probably stay more on the software side (state estimation, control theory, route planning, sensor fusion etc).

If you are open to talking more over the phone or email or something I'd definitely appreciate it as I have wanted to break in to this field for a very long time and having some guidance on the actual ins and outs of the industry would be a great help.

I know of WHOI and Scripps, who are the other big players in the scientific realm? I know Paul Allen did some exploratory stuff (not sure about r&d) and Ray Dalio with OceanX is doing something.

<comment><USER2> Robotics MS programs generally have a lot of physics and mechanical engineering prerequisites. If you want to be on the software side, you should look at embedded and firmware technologies.

It sounds like you're looking to make tools for marine scientists more than doing science. You don't necessarily need an MS for that. A lot of those companies are relatively small. IMHO those types of companies want generalists who can learn fast and get things done.

You might consider attending a trade show or conference like: Oceans, OI, Ocean Business to meet some companies.

There are a growing number of research vessel Yachts. Paul's was pretty much the first. Ray's is one of the latest. Ocean Xs new ship is pretty awesome. I was on board at the yard around the time they gutted most of it. Super cool tour! Great team too.

Certainly These types of vessels will contribute to science, but they are still toys for rich people. This has both pros and cons for science.

I'd be happy to discuss more offline if you want.

<comment><AUTHOR> I'm actually more interested in the science, however from what I've seen that's usually reserved for PhD Oceanographers? How do I get in contact with you?

<comment><USER2> Post your email or find me through my profile.

<comment><AUTHOR> __

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> If you care about the amount of jobs in these fields then consider data science or potentially machine learning (which is mostly doing devopsy stuff in reality)

</comment><comment><USER4> * Formal methods or program semantics

* Probabilistic and differentiable programming

</comment><comment><USER5> Distributed Systems!

</comment><comment><USER6> Security</comment>


The mysterious life of birds who never come down - <AUTHOR> https://www.nytimes.com/2020/07/29/magazine/vesper-flights.html <comment><USER2> This is about (common) swifts. I know some things about them.

Because a very long time ago I raised one, which was very difficult, but also enjoyable.

On the way home from last day of school before summer holidays I saw some bird chick on the ground, next to a closed wall of bricks, on the walkway, between one-way street with heavy traffic and a steep hill on the other side. I didn't know what to do, except _not_ to blindly grab it and take it home, because sometimes the parents come and feed them. So I stood back about a dozen meters and waited for half an hour. No bird parents came, traffic on the street roared on and on. Couldn't make sense of where it would have fallen off, couldn't put it back where it came from beacause blank wall of bricks 4 to 5 meters high to some backyard was closed to the street. No doors/gates or something like that. Walked around the block to find entry, unsuccessfully. Walked back to where the chick still was, sitting miserably on the ground, almost no feathers, just some dark gray fluff, pink skin shining through.

Stood there and thought: _Should I, shouldn 't I?_ What will Mommy say?

Knelt down to see if it had anything icky on it, which it hadn't and put it into the left cheat pocket of my shirt. Didn't even struggle. Just looked around with its tiny dark eyes.

Some twenty minutes later, at home, unexpectedly no storm of rage because bringing back strange animals. Instead phoning around for some veterinary who does birds.

I somehow had the feeling that timing was essential here, so I grabbed my street bicycle without having lunch and speeded to the veterinarian. Again with the chick in my left shirt pocket, was afraid it would try to get out, but it seemed content to just look out from there.

The veterinarian examined it under a light and looking glass and found a hand full of tiny mites. Eeek! I haven't seen them! Strangely there were none in my shirt pocket.

Anyways, vet couldn't make out what it was exactly, because too young, settled for mostly some sort of swift and told me what to expect, and that it was a stupid thing to do, because if swift this would never be _my_ bird, because they are wild things, almost always in the air, and nobody ever successfully raised one so far.

I answered that I know it's no Budgie or Canary, that I waited for the parents to show up, which they didn't, couldn't locate where it came from to put it back there, so certain death by car, cat, starvation was imminent.

So I got some tubes with different gels in it, which I had to give the chick with the food. Which was a mix of living mealworms to be obtained from fishing ponds where people use them as bait, deep frozen crickets from pet food stores, raw minced meat with egg white and yolk mixed in, and any living insects I managed to shoot down with the rubber rings from preserving jars :-)

Every _two hours_ , at least! _24 /7_! For _two months_! Ugh!

Anyways, I did it, went to a museum of natural history to speak with an ornithologist there. Drove there by subway with it in my shirtpocket again :-)

Ornithologist confirmed bias of vet towards common swift, and lend me some books, plus a list of more titles from the library for learning the swarming patterns, to which I should release it when they appear in the sky.

So my summer holidays were effectively gone by having to care for it around the clock, without pauses longer than two hours. I didn't really mind, and chick neither. It grew into something very streamlined, very dark brown and shiny feathers. It was primed to me and not afraid. I could put it onto my shoulder and it stayed there.

I worried a little about it being so lazy, so I trained it by putting it into my hands while standing, and then going down fast with my hands, to let its instincts kick in. Which they did, by spreading its wings.

Later, when it made strange rattling sounds by rhythmically spreading its wings to get the feathers out of their growing sheets and I found it on top of the curtains when coming back into the room, I knew it was time to get it to fly.

Which I did by having it sit on my shoulder while bicycling around at 40 to 60 km/h in the forest on excellently paved ways.

At first it didn't let go of my shirt, just spread its wings and lifting it a little, or beating its wings and tickling the side of my head that way. But it wouldn't let go!

I had to go to about 40km/h with the bird in one hand and only one hand on the handlebar, then throwing it _UP_!

Screech! Screech! Back to my shoulders. Hrrmpf. I repeated that I don't know how often anymore until I had it flying after me for some minutes without immediately going back to my shoulders.

I extended these "lessons" to places where I knew there were many insects in the air, like standing ponds, fields with cows on them, and it worked, it just got its flies from the air!

Seeing it doing that really took a burden from my mind.

Took it ontop the tower of some castle ruin, over bridges over rivers, onto watch towers in the forest, tried to show it all it could be confronted with in its life within my means, which meant from my shoulder while racing my bicycle.

It really liked me going downhill from the forest back home at anywhere between 65km/h to 85km/h tops for maybe 20 seconds.

It also liked sitting squat on my chest while I laid on my back, wings half spread, eyes closed, me very lightly stroking its head with one finger... _cheelp, cheelp_ If it were a cat it would have purred.

Also it never shat on me. Neither into the nest which I've built for it into the corner of the room, onto a halfheight cabinet out of some towels. Always nicely outside, onto the old newspapers which I put under and around it. Clean bird!

Then the time came to throw it up into the swarms, like I intended from the beginning. Took me about ten times until I could see it fly towards the swarm without coming back.

Instincts kicking in, Mission Accomplished! Proud and sad at the same time.

Called the vet which wouldn't believe at first, and then told her what I did, how, in which sequence and so on.

Moved away from there shortly after, so I don't know if it came back some time, hope it didn't get caught in the nets which some people in the south raise to catch them for food.

Anyways, about 30 years later I came back home to see a bird on the ground of the long hallway. It was a common swift, somehow got caught in there, with no way out. I tried to slowly grab it, but it panicked, tried to fly away, bumped into the glass, against the wall, so I stopped trying to grab it.

Thought a little, went for a towel to throw that over it, came back, havn't even spread the towl yet, it fluttered again, spread my arms wide to stop it, then it bumped into my belly and clawed into my windjacket there.

I slowly lowered my arms and stood very still for a minute, then tiptoed the long floor, down the stairs, away from the house, stood very still again, looked at it. It looked back. After a minute or so I asked "don't you want to be back with your swarm?"

And it let itself fall down backwards over one wing, and going up to the swarm which was there at the time.

A few days later, me on the balcony, seeing and hearing the swarm again I thought to myself: why not putting back on the very yellow wind jacket I wore when I rescued that swift?

I did so, and one little fellow came down to do some aerobatics a few meters from my face, loudly _cheeping_ and _chirrping_.

They do remember and recognize you. I'm sure of that!

The really strange thing is it looked exactly like pictures of common swifts, except of the white. What is white on them was something like bronze/copper on mine, depending on the light.

<comment><USER3> _They do remember and recognize you. I 'm sure of that!_

Don't want to rob you from that emotion but Swifts can't live for 30 years.

<comment><USER2> I didn't mean to imply it was the same bird. That would be really unlikely, not only by the time, but also the different place i live in now. Just that it remembered at least my signal yellow wind jacket, and deemed it worthy to come down from the high up swarm alone and doing aerobatics for a few seconds while making untypical sounds in front of my face.

Why else should it do that(alone), apart from its swarm maybe 50 to 100meters up, not coming with it?

So what i meant to say was rather something like they(wild Birds in general) do remember you, even though not being grown up with/by humans.

<comment><USER4> Maybe it was morphic resonance.

</comment></comment></comment></comment><comment><USER5> How on earth do you have an entire article about a specific type of bird without a single picture of one? They don't charge more for 4 color prints on the internet people...

<comment><AUTHOR> [https://www.google.com/search?newwindow=1&hl=en&tbm=isch&sxs...](https://www.google.com/search?newwindow=1&hl=en&tbm=isch&sxsrf=ALeKk01vLVeDVDIaQvxmAJUlud6w8Cx6TQ%3A1596138517620&source=hp&biw=945&bih=511&ei=FSQjX_XtItGoytMPnOaH4AU&q=bird+swift&oq=bird+swift&gs_lcp=CgNpbWcQAzICCAAyAggAMgIIADICCAAyAggAMgIIADICCAAyAggAMgIIADICCAA6BAgjECc6BQgAELEDUJsQWKswYI8yaABwAHgAgAGCAYgB4ASSAQM5LjGYAQCgAQGqAQtnd3Mtd2l6LWltZw&sclient=img&ved=0ahUKEwi1zOiq3_XqAhVRlHIEHRzzAVwQ4dUDCAc&uact=5)

<comment><USER6> Holy swift [https://i.imgur.com/e5htNkh.png](https://i.imgur.com/e5htNkh.png)

</comment></comment></comment><comment><USER7> "...birds who never come down"

That's factually incorrect. They nest and sometimes hibernate. They can and usually do spend the majority of their lives in the air, but they DO come down.

Maybe it's too stupid to even bring this up, but they could have added an 'almost never' into that title for the sake of scientific accuracy.

<comment><USER8> I assumed that they must come down to nest, of course, but this quote

> They mate on the wing. And while young martins and swallows return to their > nests after their first flights, young swifts do not. As soon as they tip > themselves free of the nest hole, they start flying, and they will not stop > flying for two or three years, bathing in rain, feeding on airborne insects, > winnowing fast and low to scoop fat mouthfuls of water from lakes and > rivers.

really made it sound like they don't touch the ground at all for two or three years. I suppose this is possible if they only feed on insects, don't need to land to sleep, and can rest their bodies while flying.

EDIT: I found an article which supports the idea that they might stay aloft for months on end ([https://doi.org/10.1016/j.cub.2016.09.014](https://doi.org/10.1016/j.cub.2016.09.014)). They do land, just for very short periods of time and less than 1% of their time outside breeding season.

</comment></comment><comment><USER9> Frigate birds also spend most of their lives aloft. They struggle to take off if they land on solid ground or water.

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

<comment><USER10> The image in that Wikipedia article then must be a rare photo of a frigate on the ground.

<comment><USER11> The article text claims that they "roost on trees or cliffs at night".

<comment><USER12> I think the point was that they have difficulty initiating flight without having something to fall off of.

</comment></comment></comment></comment><comment><USER13> [https://archive.is/qLJXA](https://archive.is/qLJXA)

</comment><comment><USER14> The first paragraph is bizarre. She finds a dead bird and immediately decides to take home and put it in her freezer?

<comment><USER15> ..and for months in the freezer, apparently.

</comment></comment><comment><USER16> And you can eat their nests!

[https://en.wikipedia.org/wiki/Edible_bird%27s_nest](https://en.wikipedia.org/wiki/Edible_bird%27s_nest)

</comment><comment><USER17> We have a pair of swifts that return every year and nest under the roof tiles of our house deep in a forest. I can totally sympathize with this author's awe towards the tiny marvels. It feels like a privilege and a blessing to have them come visit, arriving from some southern African country every year.

Happy to have learned something new too: vesper flights.

</comment><comment><USER18> Not what I expect when I click on a NYT link...

What a strange individual, picking up dead birds and wondering what to do with them, while admitting to polishing the skulls of other dead creatures in the past, then deciding: "yup, my freezer is a good place for this dead animal".

Later on (after the analogies to angels) she admits a past history of bullying and I couldn't help myself but say, "well duh".

</comment><comment><USER19> Sky fish.

<comment><USER20> I do like the idea some animals live in the three dimensional fluid above us.

Why don't we.</comment></comment>