Klib, a new way to manage Kindle highlights and notes - <AUTHOR> https://itunes.apple.com/app/id1196268448?mt=12&at=1000lv4R&ct=klib_yc <comment><AUTHOR> Klib changes the way to manage highlights & notes for Kindle, help you to gain more from reading.

Live For Notes:

\- Import from Kindle or Amazon.

\- Review notes in Kindle for macOS.

\- Copy notes in Markdown format.

\- Export notes to Evernote.

\- Modify or search the title, author, notes, etc.

Great Experience:

\- Support multiple keyboard shortcuts.

\- Thanks to native interaction, you're already Klib expert.

Learn more: [http://klib.me](http://klib.me)</comment>


Best Enterprise Scheduler - <AUTHOR> Hi guys, Could you please recommend enterprise Scheduler. Currently, we are using Activebatch.
my colleagues were recommending Control-M. <comment><USER2> I like all of the spam in your submission history.

<comment><USER3> Wow... yeah, pretty bad.</comment></comment>


Hubble Breaks Record in Search for Farthest Supernova - <AUTHOR> http://hubblesite.org/newscenter/archive/releases/2013/11

<comment><AUTHOR> This is of maximal relevance to the determination of the expansion of the universe / dark energy.

The supernova observed was of Type Ia; the "standard candle" by which the Hubble constant is frequently measured.</comment>


Ask HN: Is the Accounting Space Crowded at the Moment? - <AUTHOR>

Would doing an accounting product at the MVP level be a bad idea currently with free products out there like Wave? <comment><USER2> I have been thinking of same being a 1 man small business owner. I m using wave right now but it just doesn't solve my problems.

<comment><USER3> Hey, I'm a product manager at Wave. Would love to learn how we can do a better job. Could you shoot me an email? yosephATwaveaccounting.com</comment></comment>


A hospital charged a woman $39.35 for "Skin to Skin" after a C-section (2016) - <AUTHOR> http://www.vox.com/2016/10/4/13160624/medical-bills-birth-delivery <comment><USER2> A side effect of the crazy insurance system.

It's a charge for the extra nurse, but the level of specificity required for billing doesn't allow for a normal line item like that.

You would think, for example, that "contact with nonvenomous marine animal" was already crazy specific, and didn't need further breakdown, right? Nope. [http://www.icd10data.com/ICD10CM/Codes/V00-Y99/W50-W64/W56-/...](http://www.icd10data.com/ICD10CM/Codes/V00-Y99/W50-W64/W56-/#W56.22)

</comment><comment><USER3> This is a post from [2016]

The hospital and various people working in the industry have explained the reasons. This story went out of proportions because everyone was busy being outraged and no one wanted an explanation. The father himself tried to calm people down by saying he wasn't outraged and he doesn't find it unreasonable but that too was ignored by some media outlets.

"During a caesarean, many people become shaky, nauseous, uncomfortable, even faint. These are normal physiological reactions. In order to facilitate skin to skin in the OR, an extra nurse needs to be available to assist. And before people scream that 'there's a nurse for the baby', there is, but that nurse has other responsibilities in the OR. They aren't either holding the baby or twiddling their thumbs. So yes, an extra nurse is needed." [0]

"Only in the case of a C-section birth is an additional nurse brought into the operating room," the statement said. [1]

\</comment><comment></comment><comment></comment><comment></comment><comment>-----

[0][https://blogs.babycenter.com/mom_stories/why-you-might- get-c...](https://blogs.babycenter.com/mom_stories/why-you-might-get-charged- for-skin-to-skin-after-a-c-section/)

[1] [https://www.nytimes.com/2016/10/06/business/how-much-is- it-w...](https://www.nytimes.com/2016/10/06/business/how-much-is-it-worth-to- hold-your-newborn-40-apparently.html?smprod=nytcore-iphone&smid=nytcore- iphone-share&_r=1)

<comment><USER4> In most (?) European countries giving birth is completely free, there is no bill that you have to pay at all; with or without c-section and independently from the number of nurses and/or doctors that are assisting you

<comment><USER5> It's not free, it's covered by either taxes in countries with a single payer system like the U.K. Or Franace or your mandatory insurance in countries without one like Germany or the Netherlands.

</comment></comment></comment><comment><USER6> Billing in the US is insane.

I know we're pretty adjusted to not knowing how much going to the doctor is going to take out of our wallet, but that's ridiculous considering how important to us that is just about everywhere else (e-commerce, Bank fees, phone bills).

Can't find the reference, but I read that general practitioners barely even know how much _they 're_ going to be reimbursed for care. It takes their staff an average of three back and forths with the insurance company to settle on the "appropriate" coding and billing for anything of a "moderate complexity" visit or above.

Shameless plug mode:

My employer (Rally Health) has a provider search and cost transparency tool you can access if you have a UHC health plan at [https://connect.werally.com](https://connect.werally.com) . It has uses information about your plan to estimate cost for procedures and even multi- stage treatments.

To be fair this doesn't really solve the problem of unnecessary complexity behind the scenes of healthcare which are actually responsible for driving up costs, but it does help consumers in the current state of things.

</comment><comment><USER7> How did the hospital come up with that number, i wonder. Why not 98.99 for example?

</comment><comment><USER8> 11,000 to have a baby, I could buy a decent used car for that.

<comment><USER9> $250,000 was the total cost I saw somewhere to raise a child to adulthood. So $11,000 is just the beginning.

<comment><USER8> it's about a mil for a child born today if you account for inflation. imagine having a million dollar baby. Imagine how luxurious your life can be without a child.

[https://www.todaysparent.com/family/million-dollar- babies/](https://www.todaysparent.com/family/million-dollar-babies/)

"Ward pegs the all-in cost of raising a child to 18 in the U.S. at around $700,000, or closer to $900,000 to age 22, which is a more realistic picture for today's families."

<comment><USER6> It is interesting to see the numbers increase _also_ because of the growing definition of "adulthood".</comment></comment></comment></comment>


"Hello, world" in Assembly. - <AUTHOR> http://asm.sourceforge.net/intro/hello.html <comment><USER2> _"System calls in Linux are done through int 0x80. (actually there's a kernel patch allowing system calls to be done via the syscall (sysenter) instruction on newer CPUs, but this thing is still experimental)."_

This is no longer the case. While int 0x80 still works, this is not how well behaved binaries should syscall on Linux.

The proper way is to call a magic address on a magic page in own process space, which contains the proper code to do the system call. It will execute int 0x80 on CPUs that don't support sysenter/sysexit and sysenter on those that do.

The page (vdso) is inserted in all processes' address space by the kernel. Although its address is probably fixed, the proper way to find it is to examine the ELF auxilliary vector, which in turn is passed by the kernel via the initial process stack.

<comment><USER3> Intel archs have support for call gates that allow jumps to privileged code (ring 0/1/2). It maps nicely to the notion of syscalls, but I wonder why it hasn't been used.

<comment><USER2> Not sure about the times before the sysenter mechanism (maybe int 0x80 was more portable?), but now that sysenter is in place it is faster than call gates, because most of its behaviour is hardcoded in the CPU itself.

</comment></comment></comment><comment><USER4> Yesterday I submitted "A Problem Course in Compilation: From Python to x86 Assembly". An 80 page book with worked examples. It got ZERO up votes.

<http://news.ycombinator.com/item?id=1662430>

Yeah, I am jealous.

<comment><USER5> Not anywhere in any non-trivial population of people will you ever see anything of serious depth and novelty (aka, not some kind of cargo cult "classic") get nearly as much recognition as LOLcat/Hello World type material.

This is one of my favorite communities, but it's not exceptional in that regard.

That said, I like your link.

<comment><USER6> I think it may be when a site transforms from basically being a resource to being considered a community. I effectively just said goodbye to Less Wrong, which I have followed longer than HN.

</comment></comment></comment><comment><USER7> For those interested in how this translates to Win32, there's a site with a wealth of tutorials for Win32 assembly that I had used just about 10 years ago. I just Googled and it still exists.

<http://win32assembly.online.fr/tutorials.html>

</comment><comment><USER8> If you test it under OS X you need to use the OpenBSD/NetBSD instructions using the FreeBSD code but you will use a 'macho' object file.

<comment><USER5> I take it you mean Mach-O?

Mach-O is mach microkernel object format.

<http://en.wikipedia.org/wiki/Mach-O>

In general, BSD assembler tends to be pretty stack heavy for cultural/engineering reasons. I don't think it ultimately matters all that much if you're fiddling around on your personal machine.

<comment><USER9> _In general, BSD assembler tends to be pretty stack heavy for cultural/engineering reasons. I don't think it ultimately matters all that much if you're fiddling around on your personal machine._

I'm not sure I follow?

</comment></comment></comment><comment><USER10> Can someone give some insight on the last line?

 _That's it. Simple. Now you can launch the hello program by entering ./hello. Look at the binary size -- surprised?_

Without being able to compile the executable myself, is the binary surprisingly large or small? A few months ago, someone posted this article:

<http://blog.ksplice.com/2010/03/libc-free-world/>

Which leads me to believe that the executable is surprisingly _large_ given the content. Am I understanding that correctly?

<comment><USER11> I am only guessing but I suspect the binary will be tiny. The earlier article you mentioned described how hello world is surprisingly large with libc overheads. It then sets out to eliminate those overheads and concentrates on the problems involved in doing that. But it doesn't mention how small the binary gets once those overheads are successfully eliminated, My expectation would be just a handful of bytes.

<comment><USER12> In my case the binary turned out to be much larger than I would have expected. I was expecting a couple hundred bytes tops, but 8k?

      osx-box:dev esa$ nasm -f macho hello.asm && ld -e _start -o hello hello.o

      osx-box:dev esa$ ls -lh hello*
      -rwxr-xr-x  1 esa  staff   8.1K Sep  5 22:43 hello
      -rw-r--r--  1 esa  staff   721B Sep  5 22:39 hello.asm
      -rw-r--r--  1 esa  staff   389B Sep  5 22:43 hello.o

</comment></comment></comment><comment><USER13> Also, <http://www.int80h.org/smallest/>

The rest of int80h is also interesting, but is FreeBSD oriented. The site presents its own Hello World - <http://www.int80h.org/bsdasm/#first-program>

<comment><USER13> And here's a Linux version of smallest - [http://www.muppetlabs.com/~breadbox/software/tiny/teensy.htm...](http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html)

Edit: previously submitted - <http://news.ycombinator.com/item?id=68056>

</comment></comment><comment><USER14> Here's the "Hello, World" written in VAX Macro32 assembler:

<http://labs.hoffmanlabs.com/node/1435>

And if you're so inclined, there are (free) OpenVMS licenses for hobbyists, US$30 CD media kits, and (free) VAX hardware emulators for most any OS platform.

</comment><comment><USER15> Why is this news -- or even interesting? Perhaps assembly feels exotic to a dilettante, but to anyone with a computer science degree this was simply a part (and an early and basic part) of their education...

<comment><USER16> Computer science curriculums vary wildly. And just because you were taught assembly and how a cpu works, doesn't mean you learned how to do it on unix or even x86. (My college taught with the spim mips emulator. I also taught myself dos assembly when I was younger, but this is the first time I've seen unix assembly.)

<comment><USER17> Nah, what you're seeing here is relatively poor, old, IA32, AT&T-style (which means GCC targeted), Linux-targeted assembly code.

This is not the article I would use to learn about Linux, operating systems, or assembly (although it's more accurate to say you learn "an ISA" instead of "assembly").

<comment><USER18> The article uses Nasm not GCC (or rather, not Gas - though Gas supports Intel syntax too now, afaik), and is definitely using Intel syntax. Note for instance the unintuitive order of source and destination in the MOV calls and the lack of delimiters on the operands, amongst other things.

[edit: clarification]

<comment><USER19> I strongly object to your characterization; it's highly dependent on what you're familiar with. MOV calls map intuitively to assignment, and with assignment, the LHS is the destination and the RHS is the value. And Intel syntax uses type inference to deduce the width of operands, and only requires DWORD PTR / WORD PTR / BYTE PTR etc. to disambiguate when it's necessary.

(I have a very strong personal preference for the Intel syntax.)

<comment><USER18> I prefer Intel syntax too, in every other respect other than order of operands. That's really just because it differs from the only other assembly language I've ever used (68k). I still think it's unintuitive, but it's no worse than, say, the order of arguments to the Unix 'ln' command. You get used to it.

The comment about the lack of delimiters was not a value judgement; I was just pointing out one of the obvious signs that the article wasn't using AT&T syntax. I think that having to stick $ on immediate operands is particularly annoying, for instance.

<comment><USER20> And the trick to getting used to things is finding the right mnemonic.

I used to get tripped up by 'ln -s' all the time, until I realized that if I thought about 'cp src dst' but with 'cp' replaced 'cp' with 'ln -s' it suddenly made sense.

Likewise Intel assembly's mov statement and its similarity with assignment statements that barrkel mentioned.

Whether something seems intuitive or not depends on the analogy you prefer, or even your choice of words. E.g. look at 2D coordinates for a terminal character cell: if you think of them in terms of (x, y), you will find that order intuitive, but if you think (row, col), you'll find the opposite order intuitive.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> i would say it's a nightmare programming in assembly without going through your tutorial.!!!

</comment><comment><USER22> Sweet.

We're covering Hello World in my software dev. class on wednesday.</comment>


From Ruby to Go: a rewrite for the future - <AUTHOR> http://blog.scoutapp.com/articles/2014/09/25/from-ruby-to-go-a-rewrite-for-the-future

<comment><USER3> I find it a bit funny to see concurrency dragged out in a case that's pretty much a perfect example of where Ruby handles concurrency quite decently, both in term of performance, and compact, simple code.

E.g. his URL example:

        require 'net/http'
        require 'uri'

        urls =     ["http://www.cnn.com","http://espn.go.com/","http://grantland.com","http://www.newyorker.com/"]

        urls.collect do |url|
          Thread.new do
            response = Net::HTTP.get_response(URI.parse(url))
            puts "#{url}: #{response.code} #{response.message}"
          end
        end.each(&:join)

I'm not so convinced about the performance argument, though. I have a pure- Ruby statsd implementation collecting massive amount of metrics from dozens of servers and calculating averages, feeding time series to Redis, pulling them out and rolling them up back into Redis and to a Couchdb server for longer term storage - it was a "hack" I threw together to replace our (admittedly simplistic) usage of Graphite because Graphite does things to your disks that no hard drive should have to suffer through, and it's not breaking a sweat. I'm sure you can squeeze out a bit more with Go, but for a monitoring setup, if you're not spending most of your time waiting on IO in the kernel, I'm not quite sure what you're doing.

I can see their point on packaging and delivery, though, having had to deal with packaging up three sets of patched gems for three different Ruby versions just in our office environment + servers internally for an internal tool. One of the reasons I'm experimenting with my ahead-of-time/"mostly static" compiler for Ruby is that I'm very much for static binaries.

But we also already do have jruby which makes packaging a lot easier too. Granted I can understand people not wanting to deal with the JVM.

<comment><USER4> Could you elaborate on the negative hdd aspects of Graphite? I'm evaluating using it and would love to know more!

<comment><USER3> (the short-ish version: make sure you test it with a realistic number of metrics and updates coming in from a realistic number of servers; if it can keep up on hardware you're willing to throw at it, then by all means go for Graphite - it has tons of flexibility that makes it a convenient way to get started. Just expect it to need a fairly hefty amount of disk IO compared to the amount of data you feed it in; the interfaces to Graphite are simple enough and narrow enough you can replace it later if need be, once you know what parts of it you're using)

Graphite essentially assumes that disk is cheap. Even fast disks. And either you're not collecting very big data sets, or you roll up to more rarely updated series very rapidly, or you have a hefty high performance RAID to put it on, or you distribute it over multiple servers.

And for a lot of people it's probably true it'd be cheaper to just buy a suitable set of SSD's and doing RAID10 and/or spreading it out over multiple servers or something than spend time putting together something else.

But if you start seeing yourself needing to scale up substantially, it may be worth thinking through exactly what your needs are and whether you can get away with less by giving up on some of what Graphite offers.

And one outcome of the expectation of fast disk is simply that Whisper - <USER2> underlying storage code - makes some assumptions that leads to lots of unnecessary system calls; lots of seeks that turns out to be no-ops, and small reads and writes. All of them are common problems that people tend to be unaware of, but they were painfully obvious after some strace usage. Just fixing that would improve Graphite performance substantially even without ditching functionality, but I really did not feel like digging into unfamiliar Python code to get halfway there when I could just as quickly replace the whole thing.

That assumption of being prepared to use a fast RAID just for some metrics for our dashboards and monitoring didn't sit well with me in general.

And given that we basically just used it to aggregate a set of time series over relatively recent history and don't need most of Graphite's features, and that we don't particularly care if the occasional server crash takes out some of the most recent history with it on one server when we can cheaply run a second collecting most of the same data (and would've ended up with more than that with Graphite), it seemed like worth doing things differently. I basically replaced Graphite (the subset that we use of it) with this, in the course of a few days:

* A tiny statsd implementation in Ruby, that flushes data to a Redis with disk snapshots turned off. It does this every 10 seconds.

* An aggregation script that's a couple of hundred lines that uses key based filtering to aggregate all 10-second data for any five minute interval into a new time series, and again aggregate all five-minute interval data into hourly time series, and so on, and that moves all data older than a few hours to a disk backed CouchDB (could put it into "anything" really)

* A tiny Sinatra app that provides a somewhat Graphite compatible JSON output (but with no attempt to support the Graphite query syntax or server side image rendering.

* A slightly modified Graphene version to build our dashboard on.

It does by no means do everything Graphite does, but what it does, it does without brutally hammering disk. It consume a tiny fraction of the resources Graphite used too.

</comment></comment></comment><comment><USER5> For completeness sake, here is an example of how to make it parallel in ruby:

        require 'net/http'
        require 'uri'

        urls = ["http://www.cnn.com","http://espn.go.com/","http://grantland.com","http://www.newyorker.com/"]

        threads = urls.map do |url|
          Thread.new do
            response = Net::HTTP.get_response(URI.parse(url))
            puts "#{url}: #{response.code} #{response.message}"
          end
        end

        threads.each &:join

<comment><USER6> Is that really parallel? I thought Ruby had a GIL.

<comment><USER7> MRI has a GIL, but the GIL doesn't block on I/O like HTTP requests (but you'll still be pegged to one core unless you do process forking yourself). JRuby and Rubinius use native threads so you can use all cores with just Thread.new.

<comment><USER8> > JRuby and Rubinius use native threads so you can use all cores with just > Thread.new.

Almost. JRuby uses JVM threads so the actual threading model depends on the underline JVM.

<comment><USER9> What versions of the JVM don't map JVM threads directly to Os threads? I thought green threading was removed a long time ago. I would love more info, thank you.

</comment></comment></comment></comment></comment><comment><USER10> I think go's approach to readability is comparable to "simple English". Both have a minimal set of words (tokens) and syntax constructs. You lose some witty constructs, and you often find yourself writing in a stupid way.

But, since the code is always plain and stupid, you go through very few mental twists when you are parsing the language. Since code is usually read much more than written, this advantage is a huge.

<comment><USER11> I agree. I find it far more valuable to have a language with minimal constructs that can be easily read by everyone on the team rather than a language that tries to include every functional bell and whistle. Think I'll start giving Go a serious look.

</comment></comment><comment><USER12> I'm a huge fan of Go, but moving from Ruby to Go can't be a decision based on performance gains only.

There are a lot of advantages the Ruby language and ecosystem provide. What about programmer happiness and productivity? What about the experienced Ruby devs you surely have? Are they wanting to switch to Go? What about the lack of experience using Go? Are you sure you're going to avoid all the pitfalls of the new and shiny language? Isn't better hardware cheaper than your devs' time?

I'm not saying that your decision is wrong, and probably you have put a lot of thought into it, but most of time, developing software is using tools you know well, that are battle hardened and have been proven to deliver fast.

<comment><USER13> When the performance you're considering is your own machines, I wholeheartedly agree with you. But when the performance you're considering is that of your customers, the story changes.

The guys who wrote the story are building a monitoring product and their agent code will be installed on all of their customers' machines. Every CPU cycle and byte of RAM should be sacred to them because it takes those resources from their customers' applications.

</comment></comment><comment><USER14> Go is faster than Ruby, but trying to show that with a benchmark that spends most of its time blocking on HTTP responses is kind of daffy.

</comment><comment><USER4> I shall never understand this "Ruby is slow and difficult to parallelize so let's use Go!" mindset. People knew about the negative aspects of Ruby in advance (i.e. GIL + performance) but still chose to use it even though back then (whenever that was) there were other alternatives - no doubt without the big userbase that Ruby had thanks to Rails. Now there comes Go which makes parallelism easy(er) but introduces challenges of its own and also has some downsides (i.e. polymorphism) which Ruby solved better - but whatever: "a good developer can always work around such challenges". So in the end, most people are just following the hype and (IMHO) exchanging one bad apple for another...

<comment><USER15> Go wasn't an option then. Obviously the languages that WERE options, weren't preferred. The article mentions the authors lack of Java love specifically. There are plenty of other situations where Ruby (or something else) was eventually a bottleneck, and people moved to Java, or wrote their own PHP compiler, or moved to .NET version of ColdFusion... Now that Go's an option, some of the folks looking for speed are going to choose it.

</comment></comment><comment><USER16> The Scout team developed a tool based on languages they knew, they proved that there was value and demand in the marketplace, and then they decided to implement a performant architecture that can be optimized to handle a larger volume of traffic.

Hopefully this post can help some HN startups from making the mistake of pre- optimization. You're not Google until you are Google.

</comment><comment><USER17> Probably a really stupid question, but does Go have a Rails like framework for web apps?

<comment><USER18> There are a bunch of them available. This list is not complete. [1] [2]

I'm currently looking at Negroni [3], but haven't actually used it yet. Written by the same guy that did Martini, one of the popular frameworks.

[1] [https://code.google.com/p/go- wiki/wiki/Projects#Web_Applicat...](https://code.google.com/p/go- wiki/wiki/Projects#Web_Applications)

[2] [http://codecondo.com/4-minimal-web-frameworks-go- golang/](http://codecondo.com/4-minimal-web-frameworks-go-golang/)

[3] [https://github.com/codegangsta/negroni](https://github.com/codegangsta/negroni)

<comment><USER19> I'd hesitate to call Negroni a framework. In fact, from Negroni's readme:

> Negroni is _not_ a framework. It is a library that is designed to work > directly with net/http.

</comment></comment></comment><comment><USER20> i've not been paying a lot of attention to golang because it never seemed to solve a need i had, but the recent discussions around the blogosphere about how well it does cross-compilation have got me excited. every time i've tried compiling ocaml code on windows it's been a horrible experience.

<comment><USER16> I've cross-compiled several programs I've written in Go, and it has been painless.

What is even more exciting is that the binary includes everything your program needs to run, so runtime installations are no longer a barrier of entry.

I've been able to spool up a VM, grab my bins, and do what I need to do in extremely short order. It's great!

</comment></comment><comment><USER21> "One thing that was getting our nerd juices flowing: Go."

I have a hard time believing that statement. Ignoring whatever "nerd juices" may be, surely something that was entirely designed for dead simple imperative syntax isn't getting them flowing.

You want something different, I get that. What you really want is something statically compiled and cross-platform.

<comment><USER15> You have a hard time believing that statement, or you'd rather not? 'cause other than calling the author a liar, you're saying it's not possible for someone to be excited about the language. That's awfully presumptuous.

</comment></comment><comment><USER22> If you're so serious about your web stack and know it is going to need all these fancy and performance features, why build on Ruby in the first place? Why not use something that is performant with a history of successful apps behind it like Java?

It seems that everyone in web is just blindly following whatever flavor of the month tech stack tech bloggers who probably spend more time writing about software than they do writing software are hyping. CRUD apps(IE 90% of web based companies) are probably one of the most solved problems in tech. Why is it that every week there is some post by some inane startup nobody has ever heard of about "why we rewrote our stack from Ruby/Python to X shiny new language that people use buzzwords I probably don't even know the meaning of to describe"? This sort of lines up with that post from yesterday I think about companies just wanting to push out the product as fast as possible rather than caring about the actual quality of it. Why wait until you need to scale and hire 10 100k/year engineers to rewrite your app into a capable language and migrate it with 0 downtime instead of just doing shit right the first time? Seems like it would be a lot less headache, even if VCs were throwing piles of cash at you. Snapchat, for whatever other things you can fault them technically for like being hacked or whatever, did this right. They built on Java and deployed to App Engine and their application scaled right up.

I can understand extreme cases like Twitter(went from Ruby/Rails to Scala), where it was essentially a trivial CRUD application that eventually got so enormous that language performance features became an issue.

Also I don't understand why web people are so obsessed with "concurrency". How does concurrency help webapps that are just getting a request, doing some stuff with databases(which have their own well implemented concurrency mechanisms) and sending a response back so some tween can look at pics of their friends and send gossipy messages? Unless you are doing something that requires long running processes like video streaming or an online MMO type game, what is the point of it? Oddly the the parent posts' link's application in question is some kind of server monitoring service, so I really don't know why they chose Ruby.

<comment><USER16> Probably because they knew Ruby and it doesn't always make sense to pre- optimize unless you know there is demand for your product.

<comment><USER22> >because they knew Ruby

If the only language I know is Visual Basic should I code my web stack in Visual Basic and deploy it to Microsoft Azure?

A surefire way to tell if a developer is lazy(and not in the good way) and takes little pride in their work is if they show an interest in a platform or language solely because its in a language they are familiar with, instead of picking tools that are the best for the job at hand. I mean this reasonably of course, if your app is a reasonably good fit for Ruby and you're familiar with Ruby more power to you. I just don't understand companies developing odd domain specific/specialized software in languages and platforms not meant for it and then complaining that it runs too slow.

Something I'm also unsure of is why almost every company these days seems to be choosing Rails to build on. It doesn't seem to be that they are just picking the language which has the largest available pool of developers available; from what I've read Ruby as a language was completely obscure until Rails came along, and even now isn't used much outside of Rails and the occasional script. Python is really popular and used in many domains ranging from web to scientific computing to interfaces for stuff like Arduinos and has a batteries-included de-facto web framework, Django, so I would imagine there were more Python programmers available, but you see far fewer companies using a Python stack. Java also has lots of battle tested web systems and there is a sea of cheap Java developers(might as well hire a cheap dev if your initial product is going to be a rushed piece of shit), though it is verbose, has a longer dev cycle, and is considered to be for the enterprise type businesses run by Wall Street fat cats everyone is trying to "disrupt".

Is it because Rails is just trendy, or some other reason?

<comment><USER15> Rails is excellent for building CRUD apps, what it was designed for, and as you say that covers a lot of ground. Plenty of code available for all sorts of common features on the web. I learned Ruby specifically to run Rails, and mostly, Ruby is a lot of fun to write. That it's staggeringly, hideously, Godot-level slow is eventually problematic but by then you've got enough traffic to pay for multiple servers. :)</comment></comment></comment></comment>


Making Keywurl work with Safari 5 - <AUTHOR> http://hacketal.com/making-keywurl-work-with-safari-5 <comment><USER2> I would ask the keywurl developer, but I'm sure he'd be fine if you went ahead and did it .. I am desperate for a keywurl extension here :P

</comment><comment><USER3> I'm curious if it would now be possible to make Keywurl a legit extension with Safari 5.

<comment><AUTHOR> Keywurl[1] and Safari 140[2] are both extensions that I want to recreate with the new framework. Mostly for learning, don't want to step on anyone's toes.

[1] <http://alexstaubo.github.com/keywurl/>

[2] <http://www.newsfirex.com/safari140/>

</comment></comment><comment><USER4> Please do this! I need my keywurl back!

</comment><comment><USER5> that is not possible with the current safari api</comment>


NSA Interception in action? Tor developer's computer re-routed - <AUTHOR> http://www.techdirt.com/articles/20140124/10564825981/nsa-interception-action-tor-developers-computer-gets-mysteriously-re-routed-to-virginia.shtml

<comment><USER2> A key point to recognize is that the salient aspect of State Surveillance isn't competence, it's impunity.

That's not to say that agents of state security _aren 't_ competent, only that the needn't be, and that their real power is that they can act without fear of sanction.

As The Daily Show's John Oliver noted: "We're not saying anyone broke any laws, we're just saying it's a little bit weird that you didn't have to."

Similarly, citizens of the USSR and Eastern Germany were well aware that there was constant surveillance. What they lacked was any legal power to oppose it (though the other measures undertaken were ... interesting).

</comment><comment><USER3> She should secure her laptop for detailed hardware analysis by experts. This could be fun!

</comment><comment><USER4> Hanlon's razor

Never attribute to malice that which is adequately explained by stupidity.</comment>


A Craigslist for Currency Markets - <AUTHOR> http://www.freakonomics.com/2011/11/01/a-craigslist-for-currency-markets/ <comment><USER2> This happens in many countries like Iran that try to artificially keep their currency overvalued.</comment>


The NSA's Spy Hub in New York, Hidden in Plain Sight - <AUTHOR> https://theintercept.com/2016/11/16/the-nsas-spy-hub-in-new-york-hidden-in-plain-sight/ <comment><USER2> >... 33 Thomas Street is the only location in New York City where AT&T has an FCC license for satellite earth stations.

That licence is for transmitting (uplinking). You wouldn't normally want to have a satellite surveillance installation in a place with active transmitters, even if those transmitters are on bands different than what you are interested in. You wouldn't want such an installation in a major city where there could be interference. Since it could be placed pretty much anywhere you would normally just pick some place out in the country. The result of that monitoring could then be sent somewhere less remote.

Perhaps the reference is to the monitoring of AT&T satellite traffic that happens to pass through that particular communications nexus.

</comment><comment><USER3> The blank building is common globally for its period as they allowed good temperature control and a lot of telecommunications equipment with 12 foot high racks and overhead busbars and cabling. However they're terrible places to inhabit all day long and one building I know has a window put in, bearing testament to the strong willed manager and their concern for staff. It really helped make it tolerable.

<comment><USER4> I've always wondered why telco central offices don't have windows. (I always assumed it was for security.) Thanks!</comment></comment>


Memoize – a replacement for make relying on strace - <AUTHOR> https://github.com/kgaughan/memoize.py

<comment><USER2> I played around with this a few years back when looking at build tools. strace is ungodly slow, and I wouldn't recommend using this for anything real. When I looked into why, it's basically the time it takes to print and read from strace - printing to stdout every time there is a syscall is obviously very slow.

Instead you can use tup, though someone mentioned it now requires Fuse, which obviously isn't good. So instead you can use an LD_PRELOAD to record all the file accesses, which is what I think tup used to do.

There is also some filesystem thing added to git that let's introspect file access, though I don't recall the details.

That said, I think memoize is the first use of this technique (record actual file accesses dynamically for dependency tracking), which is utterly genius. I worked with Bill McCloskey who wrote it, and he is an incredibly smart dude. He did a lot of work on making Firefox's GC better over the last few years.

<comment><USER3> Isn't it sufficient to just track open() and stat(). Maybe access()? That shouldn't be too slow.

<comment><USER4> Rename tracking is what undoes a lot if the more naive variants.

<comment><USER5> Hard links as well, which are nastier because they introduce aliases for the things you want to track.

</comment></comment></comment></comment><comment><USER6> See also fabricate, a script inspired by memorize that works on Windows:

[https://code.google.com/p/fabricate/](https://code.google.com/p/fabricate/)

I tried to contribute OS X support years ago but was too lazy to spend the time to polish it - sorry!

Neither tool supports any sort of parallelism, which caused me to eventually give up on them. (It is possible in theory! Though in the worst case it requires killing compiler invocations and rerunning them.)

Edit: Apparently fabricate does support parallel execution now, which is neat, but only with explicit markers, which I expect is somewhat detrimental to the magic feel of these tools... maybe I should try it. In the previous parenthetical I meant automatically detecting what can be run in parallel.

<comment><USER7> Any serious build tool can support such a thing if needed, here for example in Waf: [http://waf-devel.blogspot.se/2015/02/using-strace-to- obtain-...](http://waf-devel.blogspot.se/2015/02/using-strace-to-obtain- build.html)

</comment></comment><comment><USER8> This has nothing to do with Memoization [1] that Python already have out of the box through `functools.lru_cache` [2]

This is just a very bad naming choice for this library that seems to be an OK alternative to Make.

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

[2] [https://docs.python.org/3/library/functools.html#functools.l...](https://docs.python.org/3/library/functools.html#functools.lru_cache)

<comment><USER9> If you think of a build step as a function, taking some files as input (the source) and returning a result (the compiled artifact), then this tool is memoizing the that function.

<comment><USER10> Agreed - from the name and the mention of strace, I immediately got how it worked.

</comment></comment></comment><comment><USER11> I believe tup [1] uses a similar technique for compile dependency tracking.

[1] [http://gittup.org/tup/ex_dependencies.html](http://gittup.org/tup/ex_dependencies.html)

</comment><comment><USER12> If you're interested in a make replacement, check out redo (designed by djb):

[http://cr.yp.to/redo.html](http://cr.yp.to/redo.html)

[https://github.com/apenwarr/redo](https://github.com/apenwarr/redo)

</comment><comment><USER13> Nice, but a problem with this approach is that strace is not "re-entrant". That is you can't strace a program that uses strace (or more precisely, the ptrace syscall).

</comment><comment><USER14> I believe MSBuild is doing something similar (but on Windows) - [https://github.com/Microsoft/msbuild/tree/master/src/Utiliti...](https://github.com/Microsoft/msbuild/tree/master/src/Utilities/TrackedDependencies)

<comment><USER15> MSBuild uses Tracker.exe (or Tracker.dll) which depends on Microsoft's Detours IAT hooking library, which works much differently. Sadly it has to be purchased separately.

<comment><USER14> Oh, is it hooking certain critical functions related to file I/O? Thanks for the info!

</comment></comment></comment><comment><USER16> Every few years someone tries to reinvent make, and they usually end up with some unholy mess that complicates build systems or causes maintenance nightmares, and is never quite as good.

It turns out that make's syntax is actually quite simple and appropriate if you take a day or so to learn it properly. It's such a fantastic tool that if its syntax was really that problematic, someone would have created a new syntax front-end to GNU make by now. The fact that they haven't speaks volumes: by the time you learn enough to be able to do it, you realise you can't really come up with anything better.

</comment><comment><USER17> See also these things. But memoize.py looks more flexible; building anything.

        ccache - https://ccache.samba.org
        fastbuild - http://fastbuild.org

Also for the besodden remaining ClearCase users, they have nice feature which seems rarely spoken of these days: clearmake and wink-ins.

<comment><USER15> ClearCase has a clearaudit command that can be used to kick off any other arbitrary command and get dependency information (clearaudit /c <foo>). This is much better than using clearmake, because you otherwise depend on a users ability to (correctly) write makefiles upfront.</comment></comment>


How to Find Hidden Cameras in Your Airbnb - <AUTHOR> https://isc.sans.edu/diary/How+to+Find+Hidden+Cameras+in+your+AirBNB/24834 <comment><USER2> Or just go to a hotel! I have a condo in a building where most of the units are listed on Airbnb or Booking.com, quality of life for residents like me has been drastically reduced by noisy tourists that come for a weekend trip and have no regard for keeping it quiet or keeping the shared spaces clean. I hope more cities begin to ban Airbnb. Tourists belong in hotels not in buildings where families try to live their daily lives and have to go to work. I've had to call the police on party goers and notoriously have to knock on noisy doors, I seriously hope Airbnb goes bankrupt and that cities ban the whole business model.

<comment><USER3> This is one of the reasons I don't stay in airbnbs - the system breaks the social contract.

The reason hotels are more expensive is because they have to follow a bunch of rules that makes everyone's life a bit better by having insurance for risks and zoning and so on. However you have to pay a bit more.

So, if you ever find yourself complaining "I wish people did something in a not the absolute cheapest and effortless way" so that society in general would benefit - don't stay in airbnb.

<comment><USER4> >This is one of the reasons I don't stay in airbnbs - the system breaks the social contract.

But it doesn't. People are breaking the social contract by not respecting the area. If I invite friends from out of town over for the weekend, is that breaking the social contract? If I'm going away for 2 weeks, and I have friends house sit for the duration, is that breaking the social contract? Tourists and visitors existing in a space (unless it's too many) isn't inherently violating the social contract. Their selfish behavior is the issue.

I understand what you mean. I have neighbors down the road who throw a massive family gathering once per year that I'm certain breaks noise, traffic and safety ordinances[0] due to the sound system still going at 10PM and parked cars littering both sides of the streets. That's not due to Airbnb or any other hospitality broker.

If you have an issue with visitors, talk to them. It's possible that they don't even know they're being a nuisance. I have had cops called on me for a noise complaint. It would have been a better use of everyone's time to knock and let us know.

[0]: As far as I know, no one reports the reunion/gathering. I like to think that since we're all very respectful of each other's property and space, breaking the rules for a special event once in a while is no big deal.

<comment><USER5> > It would have been a better use of everyone's time to knock and let us know.

Sadly, too many people now are afraid of conflict, even small conflict, they prefer to call the police rather than deal with others directly. They don't want to deal with it themselves.

That anxiety I'm sure goes up with unknown Airbnbers, and so raises the likely good that people will probably call the police instead.

<comment><USER6> Sadly, too many people have become toxic. My first action is usually to talk to people, asking them to turn things down until I can't hear it. It works increasingly less over time. Instead I get people that turn the volume up. I am slowly moving towards calling the police first lately.

<comment><USER7> I would be very hesitant to call the police in the US given their reputation.

</comment></comment></comment></comment></comment></comment><comment><USER8> I had a couple of situations where airbnb was a life saver (victim of abusive relationship). There are not many places where a male can seek a shelter as most of them are being targeted towards women and children. In my city hotels are extremely expensive so airbnb was a good option to have. I understand that tourists can be nuisance but I wouldn't like it to be banned.

<comment><USER9> What about hostels? Sure you're in a share room, but you can often tell by reviews if a hostel is a "party hostel" or more all ages. And if it's not, just book for one or two nights.

I practically lived out of different hostels, and one a few peoples' couches, for about 11 months once:

[https://khanism.org/perspective/minimalism/](https://khanism.org/perspective/minimalism/)

<comment><USER10> I'll second the hostels, and don't dismiss them just because apparently in the US they imply bunk beds in large rooms. I've stayed in hostels quite a bit, and every one had places rented by the _room_ , not by bed, and plenty of single and double rooms.

Hostels, at least in (most of?) Europe, are essentially cheaper hotels, usually without a minibar and with much less upselling. Or, in terms I know from US cinema, they're like motels without the car culture aspect.

<comment><USER11> From my experience in Europe: hostels imply a bunk bed in shared room here too. I just made a quick search on booking.com for a hostel in Warsaw and nearly all of the offers were shared dormitories.

<comment><USER10> Interesting. Could be that booking.com uses the US meaning of the term?

I must have stayed in something like 30 different hostels in Poland over the course of last decade; it was always in single bed or two-bed rooms, with the whole room rented for me. I never used booking.com, though, but always did a Google search for "hostele w $city", and reserved room via phone or web form.

<comment><USER12> hostelworld.com is based out of Ireland and they specialise in allowing you to search for shared dorm type hostels.

</comment></comment></comment></comment></comment></comment><comment><USER13> If you are concerned about cameras in Airbnbs, consider picking up a camera detector off Amazon for ~$30.

They are basically a ring of super bright LEDs with a colored lens in the middle you put up to your eye and scan around the room. The light reflects off the curved glass of the lens and the filter helps you see it.

The less effective but impromptu version of this is just holding a super bright flashlight between your eyes (facing out), but you kinda need to have to done it before to know what to look for.

<comment><USER14> Could this be improved creating an app for smartphones? They have light source and camera with zoom, so suspicious reflections can be identified for manual inspection later. Probably integrated WiFi scanner also doable. Is there market for this?

<comment><USER15> There was a video clip the other day showing just this - it was basically a plastic sheet / filter you could hold over your phone's camera and flashlight that made camera lenses stand out.

</comment></comment></comment><comment><USER16> Airbnb is not evil. Tourists that don't care or follow the rules are. Without Airbnb, they will bring the same problems just to other people in other places.

Many hotels do charge unjustified amounts of money, so I am personally happy there is an option to pay reasonable money for good service. Also, it's not like hotels don't have their share of problems. Many hotels in many countries offer you pure garbage when you arrive, mix rooms, bad food, etc. And in many hotels, you can't sleep because of loud tourists or your hotel neighbors. With Airbnb when you find a listing with 30+ 5star reviews, at least you are sure it matches pictures and description.

So obviously, Airbnb has its flaws, just like any other service. But hotels are definitely not the solution to them, at least from a tourist's point of view, though I absolutely see how they are for some local residents.

<comment><USER10> Now for the counterargument:

Airbnb is evil, because it facilitates and profits from rule and lawbreaking, up to and including turning whole apartment buildings into pirate hotels, while spinning the tale that it's all about individuals occasionally renting out their primary place of residence for a couple of days. It's evil because while occasional random temporary sublets aren't a problem, they become a problem when they stop being random and instead become a coordinated, frequent phenomenon.

It's evil because its whole business model is making money by encouraging people to break social contract and do wrong against their neighbors.

Sure, hotels, motels, hostels, and all other legit accomodations aren't perfect. But this isn't the way to fix them.

<comment><USER17> I agree with this, and I think there is an interesting generalisation that can be pulled out of it: something's which are fine (harmless, neutral, or even good) at a small individual scale become problematic or terrible when done at the scale that modern software and the internet can provide.

VRBO isn't inherently bad, hijacking VRBO into a stealth hotel business and breaking the social contract of residential neighbourhoods is.

<comment><USER10> Exactly.

And what's extra sad here is that once a company like Uber or AirBnB gains large-scale success, there are only two things that happen. Some places accept it and eat the social externalities. Others try to ban the practice, but legislation is expensive, enforcement is expensive, and it also hurts the society by making illegal what was previously just fine on a small scale.

I think societies need to learn to recognize this pattern ASAP, because the best outcome is nipping such companies in the bud, before they grow and leave only two bad options on the table.

EDIT: Related is this post I read once:

[https://www.ribbonfarm.com/2013/04/03/the-locust- economy/](https://www.ribbonfarm.com/2013/04/03/the-locust-economy/)

It calls "sharing economy" a locust economy - an economy based on making money off leading masses of people to destroy other businesses, and ultimately each other.

<comment><USER18> >> "I think societies need to learn to recognize this pattern ASAP, because the best outcome is nipping such companies in the bud, before they grow and leave only two bad options on the table.."

Who are you specificities referring to when you say 'societies'? Government? Consumers?

<comment><USER10> Both!

</comment></comment></comment></comment></comment></comment><comment><USER19> Just to be clear, AirBnB has rules about cameras: [https://www.airbnb.com/help/article/887/what-are-airbnbs- rul...](https://www.airbnb.com/help/article/887/what-are-airbnbs-rules-about- security-cameras-and-other-recording-devices-in-listings)

Note that you can get a full refund if the host breaks these rules.

<comment><USER20> > we require hosts to disclose all security cameras and other recording > devices in their listings, and we prohibit any security cameras and other > recording devices that are in or that observe the interior of certain > private spaces (such as bedrooms and bathrooms), regardless of whether > they've been disclosed.

<comment><USER21> Banning them only in bedrooms and bathrooms is insane. Common spaces aren't public spaces if you rent out the whole place.

If you can't rent out your place without recording your renters, you dont need to be renting.

<comment><USER19> I completely agree with you.

My point in including the link to the help article is to point out that AirBnB is on the side of disclosure -- so you as a consumer can make that choice for yourself.

Somehow, I don't think many hotels would be that transparent.

<comment><USER21> You think hotels put cameras in your room?

AirBnB is on the side of disclosure for this specific problem, which isn't a problem in hotels unless someone is breaking the law.

</comment></comment></comment></comment></comment><comment><USER9> Hmm .. I had a friend recently who rented out a room on Airbnb and had guests that trashed it. Airbnb did pay damaged on his claim.

He rented again and the girl asked if she could rent for a few more months. So they signed a standard city lease outside Airbnb and she hasn't left or paid. He's had to file eviction. That obviously isn't AirBNB's fault, but it's now 2 for 2 bad experiences that started with AirBNB.

I wonder how many people install cameras in just the entrances/open areas more as a general liability thing. It probably goes against Airbnb policies, might be unethical or illegal in some jurisdictions, but considering the horror stories on both sides, I can understand why it happens.

<comment><USER22> > I wonder how many people install cameras in just the entrances/open areas > more as a general liability thing.

Can you clarify that? How does adding a camera near the entrance avoid liability? The examples given it wouldn't have helped, particularly if positioned where suggested.

Plus in that scenario they should be overt cameras not covert. If for no other reason that there's no real concept of the entrance area being any less private than anywhere else in the abode.

<comment><USER23> One scenario is if you specify your listing is for 2 persons and you rent to two guests, but then there is a party of 14 and you get back the place trashed. You can prove they lied.

</comment></comment></comment><comment><USER24> I guess requiring a license to run a hotel or a cab company do have a reason after all. /s

<comment><USER25> The license in no way guarantees this can't happen in a hotel.

<comment><USER24> No but a license requires a regulatory body and that body should be tasks to inspect such things. Of course if the system is corrupt and broken it won't make a difference.

Why have companies require FDA approval/inspections if it doesn't guarantee that there isn't some poison in your food?

<comment><USER22> What regulatory body currently inspects hotel rooms for hidden cameras or listening devices?

<comment><USER26> If there is a regulation that says you can't do something, it's not there to make sure it doesn't happen, it's there so when when it does happen you have legal recourse to sue the fuck out of them.

If a hotel is required to maintain a standard of privacy, then you better believe the brand tries to maintain some compliance to that standard. If Marriott found out that one of it's hotels was putting recording devices in their rooms, you better believe the corporate office would come down on that hotel. If not for legal reasons, public image and brand reputation.

<comment><USER22> It is illegal already. It doesn't require regulation, it is criminal. For example:

[https://www.azleg.gov/ars/13/03019.htm](https://www.azleg.gov/ars/13/03019.htm)

</comment></comment></comment></comment></comment></comment><comment><USER27> What is your recourse if you do happen to find a hidden camera? I mean, is it illegal for someone to hide a camera in their own house and not tell you?

<comment><USER28> Regardless of local law, it's against AirBNB's TOS to have an undisclosed camera in the room. You should contact them. [https://www.airbnb.com/help/article/887/what-are-airbnbs- rul...](https://www.airbnb.com/help/article/887/what-are-airbnbs-rules-about- security-cameras-and-other-recording-devices-in-listings)

I ran into a situation where there was an undisclosed camera inside a room I rented (with the bathroom in its field of view, no less!). It put me in a tough spot because in an unfamiliar city, I don't want to cancel my room and have to look for another, but I also don't want to be spied on either. I covered the camera and disclosed it to AirBNB after the fact. I'm not sure what happened to the hosts, if anything.

<comment><USER23> For this kind of offense if you are uncomfortable staying any longer, Airbnb can try to relocate you in a similar priced listing for the rest of your stay.

In any case you should also say so in the review so other guests are warned. The host can't see your review until after they review you themselves.

</comment></comment></comment><comment><USER23> Here is an evil idea: hotels could start providing smart speakers integrated in the rooms. Call it Smart Room™. This way you can ask the room where the nearest supermarket is or whatever, that would be convenient for an out-of- town trip wouldn't it? Obviously the hotel would record all the requests and then sell the data to local shops / marketers, or even customize the answers for a fee.

There is currently a debate on some Airbnb forums about smart speakers, whether they are a nice-touch or just creepy.

</comment><comment><USER29> AirBnB has destroyed the housing market in Tasmania. We now have tent cities (ok, hyperbole, but tent villages) of people who have been turfed out of long term rental to make way for short stay tourist market.

</comment><comment><USER30> Google cache: (couldn't find it on archive.org): [http://webcache.googleusercontent.com/search?q=cache%3Ahttps...](http://webcache.googleusercontent.com/search?q=cache%3Ahttps%3A%2F%2Fisc.sans.edu%2Fdiary%2FHow%2Bto%2BFind%2BHidden%2BCameras%2Bin%2Byour%2BAirBNB%2F24834)

</comment><comment><USER31> > Here are some of the innocent devices you may find: smart TVs

lol... many smart TVs are not innocent devices

If it was me I would start by disabling the local modem and router. That doesn't take care of cameras that have on-board SD cards, but it is a good start.

</comment><comment><USER32> Fascinating & Frightening Shodan Search Queries [https://jarv.is/notes/shodan- search-queries/](https://jarv.is/notes/shodan-search-queries/)

<comment><USER33> Thanks for posting my weird collection!

A personal spy cam in a rental home is bad enough, but the fact that there are so many open to the world (and therefore indexed on Shodan) makes it infinitely worse.

</comment></comment><comment><USER31> The site was down for me, here is a mirror: [http://archive.is/KI59h](http://archive.is/KI59h)

</comment><comment><USER34> I find it ironic that someone so concerned about hidden cameras is advocating hack attacks on the host's network. I run an Airbnb, no cameras, not even on the door. The only sensor I have is on the Nest thermostat to automatically turn off heating when no one is present. I expect the courtesy of my network not being hacked into by some wannabe hacker.

</comment><comment><USER35> Someone on an Airbnb put me up in their place for next to nothing when I was fleeing a hurricane. Hotels were booked and upcharging people huge amounts. There are pros and cons to the system, anyone advocating banning it, however, is only seeing their own side.

<comment><USER36> I'm not at all for banning it. But stories like these, from a consumer standpoint, make me want to increasingly avoid Airbnb. Hosts need to be at minimum banned from the platform for having cameras in housing they're offering to guests. And "disclosing" them is not enough.

<comment><USER35> I'm anti surveillance, but if it's disclosed in the ad that there are cameras and where they were then it seems like something a person can decide whether or not that bothers them. No cameras seems a little excessive.

<comment><USER37> Cameras outside of housing like exteriors is fine.

Cameras INSIDE a home is just not OK. I cannot imagine a single legitimate purpose where that is OK, can you?

</comment></comment></comment></comment><comment><USER38> I'm always nervous when I went through Airbnb because you are never really 100% certain until you arrive. While it is significantly cheaper than a hotel or even hostel sometimes it is just better to pay a bit extra and be secure with your choice.

<comment><USER23> What makes you "really 100% certain" about hotels?

</comment></comment><comment><USER39> AirBnB has also helped many low income minorities make additional income, because usually these are the people building and maintaining local culture.

Most AirBnB guests are not doing what you describe. Call the police, and let AirBnB ban the loud ones.

</comment><comment><USER40> Whoops hugged the site to death

</comment><comment><USER41> How to be extra paranoid brought to you by Hotel Industry Fear Porn (tm).

<comment><USER42> If an article comes out this year about hidden cameras in hotel rooms, scanning for brands/logos and/or running facial recognition for law enforcement, I won't be shocked.

<comment><USER43> Yeah, and trhey also run child prostitution rings out of their evil hotel pizza parlors.

Lengths to which the SV crowd would go to pretend that it is not absolutely, thoroughly, and irredeemably morally bankrupt are truly scary...</comment></comment></comment>


Technology in the world: canvassing on the iPhone - <AUTHOR> http://techpresident.com/blog-entry/dems-iphone-app-now-equips-field-organizers-canvassing-tools

<comment><AUTHOR> Full disclosure: I developed this app, and Nancy's article really gets to the meat of why I'm excited about it.

<comment><USER2> I like the interface - how you mimic the original canvassing clipboard. Are you going to sell to the other side (Republicans)?

<comment><AUTHOR> Thanks! I love how it came out graphically as well. I think it succeeds at physicality without being too kitschy. Maybe.

It relies pretty heavily on a lot of internal DNC technologies, though I'm sure the Republicans have similar systems.

Also, I'm not sure the Republicans could afford it… [http://www.huffingtonpost.com/2010/08/16/rnc-re-assigning- ne...](http://www.huffingtonpost.com/2010/08/16/rnc-re-assigning-new- medi_n_683802.html)

</comment></comment></comment><comment><USER3> Didn't they just kill this article in a different form?

<comment><AUTHOR> We linked to the product page in an earlier submission and it was killed, which seems odd to me—people link to their iPhone apps all the time, and honestly this is a pretty nifty and interesting one. If someone feels this is inappropriate for HN I'd love to hear why.</comment></comment>


We are all trapped in the "Feed" - <AUTHOR> https://om.co/2018/05/26/we-are-all-trapped-in-the-feed/ <comment><USER2> May, 2018</comment>


Show HN: Analytics / CRM hybrid - <AUTHOR> https://www.dailycred.com/tour

<comment><USER2> I'm slightly confused about what this product does. From what I could gather, you have a central auth-hub, that gives one integration point to a multitude of OAuth services (Facebook, Twitter etc.), which makes integration easier for developers. But then you have an analytics/crm system built on top of that? It seems very potent, but also slightly scary in the sense that your platform has a huge lock-in. Am I understanding this right?

<comment><AUTHOR> It appears we've confused just about everyone with our new homepage. :)

Yes, we sit between you and your oauth providers. This makes it easier to manage many oauth providers, because you just call us and we take care of the differences in their APIs.

On top of that, we build a dashboard for you that contains all of the user info we've seen and tie it to events on your site.

There is no lock-in. To migrate away, you simply send users directly to the OAuth provider, instead of using us as a proxy. Your users will not notice a difference either way.

</comment></comment><comment><USER3> Very interesting. If it were me I would create plugins for the major CMSs that embed your solution in a dashboard page.

Try to eliminate as much friction as possible.

Have you consider email delivery options for the data?

<comment><AUTHOR> Yeah, we'd like to get Wordpress out first. Perhaps Drupal and MediaWiki after that. Let me know if there's something else you were thinking of.

By email, do you mean like a weekly summary?

</comment></comment><comment><USER4> I personally enjoyed the demo/example, but I know others will probably be more motivated by a singular focused call to action (eg, a landing page that is less busy).

Good Luck.

</comment><comment><USER5> This is the kind of product that would benefit from having a video on the landing page. Thirty seconds max.

Also, test the pricing from $25 to $24.99 or $29.99.

</comment><comment><USER6> This is nice. Are you using a framework for this tour or is that custom?

<comment><AUTHOR> jquery joyride -- it's super cool

[http://www.zurb.com/playground/jquery-joyride-feature- tour-p...](http://www.zurb.com/playground/jquery-joyride-feature-tour-plugin)

</comment></comment><comment><USER7> This looks like a product that is trying to do/show too much.

The 1 API for 12 OAuth providers, by itself sounds like a killer feature, and a product all by itself.</comment>


DoubleDollarJS.com - <AUTHOR> http://doubledollarjs.com/ <comment><USER2> The author here. This project was not ready for public release or review. Examples and docs need to be created etc. Should have been behind a firewall. Thanks for all your feedback.

<comment><USER3> What exactly is the reasoning behind embedding a bunch of HTML as template strings? Wouldn't it make way more sense to separate those out?

Why would one choose something like this over Angular or Ember?

</comment></comment><comment><USER4> I can't get passed the way the code is formatted. Please just write it the way people normally write JavaScript:

        $$ ({
          home: {
            route: {
              defaultOnly : true
            }
          }
        })

Or in CoffeeScript:

        $$
          home:
            route:
              defaultOnly: true

Other than that, this is sort of interesting. Reminds me of Couch Apps, which I could never get the hang of and eventually had to stop messing with. Everything is declared according to a specific structure, but its hard to figure out what structure you are supposed to use for a given task. High learning curve and difficult translation from imperative thought to this type of patterned declaration.

<comment><USER5> Taste is subjective. I write my JS pretty much the way DoubleDollar does. Of course, CoffeeScript makes it moot. :)

</comment></comment><comment><USER6> Geez, a lot of jerks on HN today. jv22222, thanks for making this. You're obviously putting a lot of work into it. I can't say that it particularly interests me at this point, but I'm glad that you and people like you work hard on things and open-source them.

</comment><comment><USER7> Is this a parody? I'm genuinely having trouble discerning.

<comment><USER5> I like the $$ syntax, but DoubleDollarJS is not a great name, so I can see why you would think that.

<comment><USER8> I prefer "bling bling JS"

<comment><USER5> Not bad! BlingJS is more succint though. ;)

</comment></comment></comment></comment><comment><USER9> It's awesome. Really, I love it.

The core of it: dealing with the DOM kind of sucks, and as much as keeping 3 main file types around (.html, .css, .js) for web development isn't too much of a pain, the fact that HTML sits between everything muddies the water quite a bit.

Sure, $$ needs some more love and a community to pick it up and run, but kudos to you for getting it out there and having a solid philosophy (tiny robust kernel, super extensible, consistent docs). And yes, I'd write the code more compactly (the de facto js notation mentioned in another comment), but whatever, that's easy to translate.

I say all this because our team is working on an app ( <http://luunr.com> ) and toggling back and forth between HTML and JS is borderline silly (we looked at things like Angular and couldn't get behind them, feels to rigid and baked in my book). Would have loved to experiment with this a few weeks ago when we started.

Keep up the good fight and continue developing $$!

</comment><comment><USER10> Scrolling the homepage gave me a strong WTF feeling. This looks really really confusing.

<comment><USER11> I don't see why everyone here say this is terrible or bad. What problem it have?

<comment><USER12> Feels like trying to hammer a nail with a screwdriver.

</comment></comment></comment><comment><USER13> JS Devs - I think if you can open up your minds and take a look at what is actually a new and interesting approach to a JS framework, you'll be glad you did. Take a look at the examples. There's definitely some potential with this one.

<comment><USER14> Not to be harsh, but can you give an explanation/argument that includes substantive reasons for why there's potential?

The above seems awfully close to a dogmatic sort of "if you don't get it, the fault is with you" kind of statement.

<comment><USER15> There is potential because it is very simple to set up and works for the _small_ tasks. I developed something similar a couple years ago called Jig.js (I've since pulled it offline and relegated it to small internal apps, and also quick browser-based presentations) because I wanted to be able to easily throw together quick apps, only having to include one <6kb (uncompressed!) JS file with no dependencies.

Here's an example slideshow application's source: <http://oinksoft.com/static/js/jig.example.js>

And here's Jig.js, use at your own risk: <http://oinksoft.com/static/js/Jig.js>

Erm, license ... how about MIT? MIT license it is.

The `slides' array is my data store, and the `presenter' object handles clearing out the page for the next slide. The actual app logic is _tiny_ , but right away you get hash URLs, easy dispatching to actions, and a very simple controller/action model that can actually be even lighter than this example shows (for instance, you can choose to define no controllers at all, and just have an action list, kind of like Sinatra).

It doesn't use HTML5 History, and I'm sure it has all types of subtle issues because, like I said, it's only for internal use. But I see people are interested in tools like this, so I thought I'd let you all see :^)

The current popular offerings are HEAVY (Backbone, Ember, Angular) but I'm not going to release something that isn't industrial strength.

People shouldn't be so harsh to independent authors. I feel differently about large companies like Google and Microsoft, who get extreme value out of open source.

There's a reason I don't release many handy tools like the one linked in this comment, and it's because I expect a torrent of criticism to follow (which I can handle) and I'm not interested in changing it at all except for my own purposes (and so I'd just feel guilty).

<comment><USER14> > People shouldn't be so harsh to independent authors.

The mantra of the critique culture is that you are not your ideas. Criticism of the idea does not imply criticism of the author – at least not in my world.

<comment><USER15> That's fine, but there's a difference between a critique and a flame. There are an awful lot of flames in this thread. Also, as Hegel says, anything that exists is reasonable, and an "unreasonable" reason for not releasing code is still a valid one.

In any case, my main reason for withholding things is the "guilt" factor I mention at the end of my previous comment.

</comment></comment></comment></comment></comment><comment><USER16> I'm curious as to why numerous JS frameworks create DOM structure via string concatenation, or by putting markup in script tags. That's an automatic fail, in my books. No matter how interesting or useful a JS framework looks, I just can't get past the need to mix markup and code.

<comment><USER17> The script-markup mixture used by DoubleDollar or Backbone is really just a necessary quirk to achieve templating functionality. I haven't seen it done better honestly.

Try it, you're refusal to "get past the need to mix markup and code" is restricting you from some pretty helpful functionality if you build JS heavy web apps!

<comment><USER16> Thanks. I do build very JS heavy single-page web apps. Where I work we separate markup from code completely, and use MVVM to glue the things together. I've given an example above in reply to another comment.

People who write business code and logic often have little to no concern about tables vs divs, CSS quirks, and markup structure in general. Conversely, our UX people have no concerns whether we use MongoDB or SQL Server to serve records. They shouldn't have to. Our concerns are separated by using proper design and architecture, and we can work on things together while focusing on implementing our particular skillsets.

The script/markup mixture of DD and Backbone is not necessary at all, and it's a quirk because these frameworks (and others) make it one!

</comment></comment></comment><comment><USER18> That's one awful lot of parantheses for a hello world.

<comment><USER19> Towers of power should be discouraged all around, let alone in hello world examples.

</comment></comment><comment><USER20> The entire thing doesn't work in Linux/Chromium

    		$$.js:28Uncaught SyntaxError: Unexpected token default
    		$$.(hooks).js:11Uncaught ReferenceError: $$ is not defined
    		$$.(core).js:246Uncaught SyntaxError: Unexpected token delete
    		$$.(router).js:1Uncaught ReferenceError: $$ is not defined
    		$$.(bindings).js:23Uncaught SyntaxError: Unexpected token default
    		$$.content.js:1Uncaught ReferenceError: $$ is not defined
    		$$.home.js:9Uncaught SyntaxError: Unexpected token default
    		$$._bootstrap.js:26Uncaught ReferenceError: $$ is not defined
    		Uncaught LiveEdit Failure: Failed to compile new version of script: SyntaxError: Unexpected token :

</comment><comment><USER21> Looks awfully familiar:

<http://agilityjs.com>

<comment><USER22> I much prefer AgilityJS! :-)

</comment></comment><comment><USER23> I'm having trouble understanding what the framework offers. Though I appreciate seeing code quickly, I'd like a better overview of what it does.

<comment><USER24> Same here. It looks like a loader plus some extensions that offer routing, and history/back/forward management plus a lot of conventions.

A comparison of what it offers compared to at least a couple of the major libraries offering those things would've been useful...

</comment></comment><comment><USER25> I can't imagine writing in that, just... so much whitespace.

<comment><USER26> It follows Allman style of indentation:

<http://doubledollarjs.com/#convention>

<http://en.wikipedia.org/wiki/Indent_style#Allman_style>

<comment><USER27> I hate when people choose a standard that has cases where it shouldn't be followed. See the return semicolon injection JS bug/feature.

I roll with BSD KNF across all of my brace-based langs.

</comment></comment></comment><comment><USER28> In Chrome/Chromium, $$() is a shortcut for document.querySelectorAll().

<comment><USER29> Only in the Webkit Inspector console, nowhere else. $ is also a shortcut (I forget for what though).

They're over-written by a page if that page defines that variable globally in some way.

</comment></comment><comment><USER30> While the visual style of the code may be perplexing to most of us, I imagine it might make javascript far easier for a dyslexic person to read.

</comment><comment><USER31> Hm, this is a very particular way of working with Javascript. The formatting is very strange.

</comment><comment><USER32> Its... I... um... Why?

</comment><comment><USER33> Another day, another ho-hum JS doo-hicky thing-a-ma-jigger...</comment>


Show HN: Knomad – A Social Platform for Podcasts - <AUTHOR> https://www.producthunt.com/tech/knomad

<comment><USER2> So there's two things that have totally delighted me about this app so far. And they're a little obscure but I think are worth noting.

1\. I'm an audible junkie, and love to put audio on 1.25x and 1.5x, but itunes doesn't offer this. And that's literally why I pay audible every month. Knomad comes standard with this and I'm hooked.

2\. I'd like to spend more time consuming quality intellectual content, but find it impractical to 'schedule' listening time, and there's a terrible signal-to-noise ratio on the itunes store, etc. Knomad sends me a notification when my friends listen/like a good podcast, reminding me to get out of my content bubble. I've upped my intake, and love what I've discovered through this.

Anyhow, that's my two cents. Keep it up Knomad.

</comment><comment><USER3> As a sales rep, I'm in my car driving the majority of the day. (About 100 miles a day on average.) Despite all the ways to explore and consume music, sometimes one just needs a change of pace. I was not previously a listener of podcasts, but someone recommended Knomad to me as an alternative form of entertainment during my work-day/commute.

I have since become an avid user and fan of this app. It's easy to use, and I appreciate the social aspect of the app. I can favorite and share podcasts I enjoy with friends/followers on the app and on other social media platforms. This is an app for everyone! I'm constantly learning and discovering through Knomad, and I've since canceled my Sirius XM subscription.

Two thumbs up for this app! Cheers.

</comment><comment><USER4> For someone like myself who just started listening to podcasts, this app is awesome. Friends were able to share recommendations for great shows with me, and now I'm listening to a bunch of great shows every day. Knomad is easy to navigate too, which was another bonus to someone new to using podcast apps.

Functional, simple, and social!

</comment><comment><USER5> Love this app. Easy to use, easy to discover new content, and can listen at 1.25x. I use this app every day and cannot recommend it enough!

</comment><comment><USER6> As a newbie to podcasts and good audio content, I love this app. (Full disclosure - I invested as well.)</comment>