ASK HN: Interview Process in Sweden? - <AUTHOR> I am very early in the interview process with a company in Sweden. They have asked me for a expected salary before we proceed.
I am currently making a decent amount of money (in the US), but I also realize there are huge differences in culture/taxes/negotiation tactics that could seriously effect the potential of an offer down the road.
The HR guy I was talking to (he was in the UK) mentioned that he thought an intern in New York making 90k a year was way too much money. I have never lived in New York, but that seems appropriate for someone paying New York cost of living.
I guess what I am looking for is advice on how to proceed. I really want the offer (and the job) but I don't want to end up making signifigantly less money because I suck at international negotiations.
Does anyone here work in Sweden as a Software Engineer? Is the cost of living different? I heard that finding a rental place is hard, but people say that about everywhere, what does "hard to find" mean? Am I locked in at this point to the expected salary I offer up? Are salaries offered as before taxes or after taxes?
I did already tell them my current salary, is it reasonable to say that I just don't have enough information about Sweden to venture up a guess?
Is it rude to ask for figures about what other people (with similar positions/backgrounds) at the company make? Can I ask for more information about the posisiton that they want me for first?
What is the public transport situation? Do people own cars or is transit enough? Will rental places have washer/dryers/kitchens?
I have read some information online about salaray negotiations, but the ones I have read kind of seem to contradict each other.
TL;DR: What is an expected salary of a iOS Software Engineer in Sweden?
PS: I know that the market in the US is driving the fact that I get a high salary currently, is the market different in Sweden? <comment><USER3> I work for the NYC branch of a Swedish company.

1\. Salaries will be lower in Stockholm compared to NY. You are also taxed more but you will end up saving more because cost of living is cheaper than NY.

2\. Finding an apartment in Stockholm is hard. Not SF hard. But hard. Typically apartments are furnished and as a New Yorker, look bigger to me than the ones here.

3\. Public transport (within Stockholm) is pretty damn good. Most people either live close by to our Stockholm office and walk, take the train or some even bike. I believe I know some who have cars.

4\. Swedish culture is typically very egalitarian. This is after all the land where you can in theory find out your coworker's salary. So I don't think you are likely to get paid significantly less than your peers. However, negotiations depend more on the culture of your company.

Good Luck!

<comment><AUTHOR> Thanks so much for the reply. It is good to hear it from someone with info from both sides. I am cautiously optimistic :)

</comment></comment><comment><USER4> I work as an SE in Stockholm, moving from Australia.

1\. Cost of living \- Compared to Australia (Perth) the pricing isn't that high, but I think some things might be more expensive than the U.S. Alcohol can be expensive, going out to eat can be expensive. Whenever I visit the states it takes me a while to get used to how cheap everything seems (a lot of that is the currency conversion too of course). At the same time though if you need to visit a doctor you might pay like 100-200SEK and the rest is paid for by government. I feel "safer" here (at least in my case) even though I am making about half the money I was as a freelancer in Australia.

2\. Rental places. \- Rent (at least in Stockholm) can be expensive for a very small place. Sodermalm is prime real estate in Stockholm and it is hard to find places. The farther out you go the cheaper it gets, obviously. Depending on the company they can set you up in a temporary apartment and arrange the rent for you for the first few months or maybe a year - companies often have connections. It IS hard for people to find rental places here, many people are starting to buy to avoid the hassle. Banks give loans easily (too easily, imo..) and the amount you will pay for a mortgage (amortized + interest), even with the monthly condo board fees, can be lower than for a rental for sometimes twice the space.

3\. Salary \- Salaries tend to be lower than the states. However if you are being brought over from a non-EU country your visa will probably not be accepted if the salary is too low to live on - Unions are a big deal here. My visa almost got rejected because they deemed my monthly salary (that I was living comfortably on) was too low for my title. Better work/life balance than in the states from what I've seen - more public holidays, more relaxed work environment, make the lower salaries worth it.

4\. Taxes. \- Salaries are offered as before taxes, at least that was my experience. But when I got the offer over the phone I asked specifically about what my monthly salary would be after tax. They understood the question because here taxes are high and the taxation system can be confusing - you are taxed more or less not just based on your salary but even your neighborhood plays a role. A lot can go to taxes, so it is important to find out. I think it is a great system - the higher taxes employees pay really goes to benefit everyone - but it can be a shock to see such a high tax % on your paycheck the first time.

5\. Public transport. \- Public transport is great in Stockholm. Three main ways to get around: subway closer to city suburbs, train if a bit farther away, buses everywhere. It takes me about 10 minutes to get to my office on subway. Public transport prices are reasonable - something like 800SEK per month for unlimited subway/train trips (my employer has a system that automatically takes out the fee for my train card from my salary so I can't remember the exact cost, sorry). People do own cars, but many do not - <USER2> transport is usually enough. Many people cycle, too - there is excellent cycling infrastructure here.

6\. Dryers/kitchens/washers \- I haven't heard of a rental place without a kitchen. Most places will have either a washer/dryer in the apartment OR a shared laundry area for the building, but I would definitely ask.

7\. Market in Sweden \- Sweden (at least here in Stockholm) has a lot of tech and gaming companies and startups. Programmers always seem to be in demand here. I'm not sure how much salary is driven by this market vs the unions (which like I said seem to have a very large sway here - they are important. Most people are in a union and you will likely be affected by union salary standards even if you are not in one, which is good - it is protection).

In general I have been loving living in Stockholm despite making less than I used to. Great infrastructure, great health benefits, various government- supported work perks (like a health allowance), very animal friendly, great bike infrastructure, nature always within walking distance, etc. It has its problems - the Sweden Democrats party, for example. I also worry a bit about the housing market and how easy it is to get a loan here. All in all though it's been my favorite country to live and work in so far (out of 4).</comment>


VR team presents infinite walking in virtual environments (w/ video) - <AUTHOR> http://phys.org/news/2013-04-virtual-reality-team-infinite-environments.html <comment><USER2> I don't see how it's infinite? Does anyone know?</comment>


Ask HN: Cheap and Cheerful Laptop for BSD/Linux: what are my options? - <AUTHOR> In the title. I have a 11" 2011 MacBook Air (which I feel is one of my best consumer decisions to date, and isn't going anywhere) but I'm looking to purchase a cheap laptop that I can just run into the ground. It should be compatible with Linux/BSD out of the box. That means integrated graphics and solid network interface cards. What are my options?<p>Edit: Battery life is not an issue. I am tempted by a cheap desktop, but I hate the idea of having cables everywhere and a great big stinking tower under my desk. <comment><USER2> I've never had a problem with any Thinkpad, be it your Linux distro of choice or BSD (PCBSD is probably the best desktop BSD distro).

System76 also makes amazing laptops that "just work" out of the box with Linux (most distros). They even have full support sine they sell with Ubuntu pre- installed.

Dell has a good track record for me as well, although I personally prefer the T series Thinkpads myself.

</comment><comment><USER3> A second hand Lenovo is what you seek. X or T series, I'd recommend staying in the 220 series or earlier, if you really want cheap. They are indestructible as laptops, have great keyboards, decent specs and good Linux support out of the box (depending on distro, of course).

<comment><USER4> I saw this deal recently - $399

Refurbished: Lenovo T420 Intel Core i5 2520M 2.5GHz 8GB / 128GB SSD

[http://www.neweggflash.com/Product/9SIA3TX2064547?icid=WP_0_...](http://www.neweggflash.com/Product/9SIA3TX2064547?icid=WP_0_10292014)

Edited: price.

<comment><USER5> Nice deal.

I have a T420s that was bought new and I love it as a computer -- but when I go to grab a laptop to work on 'on-the-road' I nearly always grab my old X201s + big battery that I bought on ebay for 80 bucks total.

If I was to buy a T420 now-a-days i'd check out eBay. Great deals on older hardware, especially if you don't mind repairing small problems yourself.

<comment><USER4> Yeah, I was tempted to pull the trigger on that. I recently acquired a Dell Precision M4400 for a good deal and put an SSD in it, so I'm using that with Xubuntu as my primary now.

</comment></comment></comment></comment><comment><USER6> I've had a handful of successful Dell Vostro laptops.

They are dirt cheap and this Vostro V130 I'm writing this on is fast, cool and light. Found it on ebay for 75$ about a year ago.

Running Latest Arch_64 without any special mods.

</comment><comment><USER7> I have been using a dell XPS 13 (got it on a deal for $500) and currently dual boot Ubuntu and Windows 10 Preview. I highly recommend the XPS 13 and you can even buy it will Ubuntu pre-installed.

<comment><USER2> Sadly, the pre-installed Ubuntu version (Sputnik) is $100 more expensive than the Windows version. (I suspect some sort of back-room deal with Microsoft).

With that said, it is a great choice for a Linux laptop.

<comment><USER8> Can't you just buy the Windows one and then wipe the hard drive? That's what I did with my Dell.

<comment><USER2> Absolutely can. But you don't get Dell support :/

<comment><USER8> I did actually. In 2012 I wiped my hard drive to install Linux on it. 6 months later the screen of my computer started to act funny, and I could use the guarantee to have my screen replaced.

FWIW it was in UK, maybe in other countries the regulations are different, and probably they would have refused to change, say, my hard drive if there were a problem with it.

</comment></comment></comment></comment></comment><comment><USER9> I picked up a cheap Thinkpad T420 from the Lenovo outlet. It's a few years old model but has the great keypad, touch pointer and runs Linux Mint w/no issues.

</comment><comment><USER10> I'd got for a Chromebook and install Ubuntu on it.

</comment><comment><USER11> Does it have to be new? What about second hand Lenovo X230 models and their ilk? Running Ubuntu just fine on an old X201 to satisfy a similar itch.

<comment><AUTHOR> Nope. I'm actually looking at second hand ThinkPads, T series.

</comment></comment><comment><USER12> if procssing power is the thing you are looking for go for a desktop, else you can choose a cheap chromebook it can run BSD but it needs some tinkering, unfortunately there are very few linux boxes that come out of the box, inedeed Dell XPS 13 is an amazing laptop period. may be the only one ;) also you can go through raigs list and buy a server for lessthan 100 bucks</comment>


GNU Make Guile Integration - <AUTHOR> https://www.gnu.org/software/make/manual/html_node/Guile-Integration.html <comment><USER2> GNU Make's Guile integration is such a cool feature.

The one hiccup with it is that isn't included in the default GNU Make package on any system I've ever used (although it can be installed as make-guile in a few distros).

I'm guessing it's because Guile is around the same installed size as Python, and it needs a lot of external dependencies - one of which (the garbage- collection library) is a little oddball. A tool as foundational as Make probably doesn't want to pull in a huge dependency tree if avoidable.

If we want to see Guile support added to Make by default, we'll need to reduce or eliminate Guile's external dependencies and slim down the install.

<comment><USER3>
      : fred@tara ~ $; cat /etc/fedora-release
      Fedora release 31 (Thirty One)
      : fred@tara ~ $; make -p | grep FEAT
      make: *** No targets specified and no makefile found.     Stop.
      .FEATURES := target-specific order-only second-expansion else-if shortest-stem undefine oneshell archives jobserver output-sync check-symlink guile load
      : fred@tara ~ $;

guile available -- so, its enabled in Fedora.

      : fred@tara ~ $; ls -l `which make`
      -rwxr-xr-x. 1 root root 248624 Dec 10 17:34 /usr/bin/make
      : fred@tara ~ $;

and, just to validate guile availability:

      : fred@tara ~ $; ldd `which make`
       linux-vdso.so.1 (0x00007ffce61cb000)
       libguile-2.2.so.1 => /lib64/libguile-2.2.so.1 (0x00007fc423432000)
       libdl.so.2 => /lib64/libdl.so.2 (0x00007fc42342b000)
       libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc423409000)
       libc.so.6 => /lib64/libc.so.6 (0x00007fc423240000)
       libgc.so.1 => /lib64/libgc.so.1 (0x00007fc4230e1000)
       libffi.so.6 => /lib64/libffi.so.6 (0x00007fc4230d6000)
       libunistring.so.2 => /lib64/libunistring.so.2 (0x00007fc422f50000)
       libgmp.so.10 => /lib64/libgmp.so.10 (0x00007fc422ed3000)
       libltdl.so.7 => /lib64/libltdl.so.7 (0x00007fc422ec7000)
       libcrypt.so.2 => /lib64/libcrypt.so.2 (0x00007fc422e8c000)
       libm.so.6 => /lib64/libm.so.6 (0x00007fc422d46000)
       /lib64/ld-linux-x86-64.so.2 (0x00007fc4235ed000)
       libatomic_ops.so.1 => /lib64/libatomic_ops.so.1 (0x00007fc422d41000)
       libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fc422d25000)
      : fred@tara ~ $;

Yes, libgc and libgmp are needed (182k for libgc, 1.3mb for libgmp, 1.3mb for libguile itself) as opposed to 3.3m for python3. Seems comparable, including dependencies.

<comment><USER2> Awesome, I didn't know it had landed in F31. Thanks for the comment.

Re: size, I'm surprised by the library size. Is it possible that the library needs more files than just the .so? The guile-2.2-libs package is around 40-43 MB on the current Ubuntu LTS, plus a few more MB for supporting Guile packages.

(source: [https://packages.ubuntu.com/bionic/guile-2.2-libs](https://packages.ubuntu.com/bionic/guile-2.2-libs))

</comment></comment></comment><comment><USER4> I have used this in one of my projects, but in the end had to abandon it: the problem is that Guile itself requires GNU make during build, which creates a circular dependency, and thus building it with e.g. FreeBSD ports required manual intervention every time you updated it. This combined with the fact that this integration is only available since GNU make 4.0, and some Linux distributions still have older make, made it a hassle to setup. This should improve over time, of course.

Still a great feature though. Without it there are e.g. manipulations on the file paths that you can not do at all, or can do but only as a hack. Case in point: "GNU Make Standard Library" ([https://gmsl.sourceforge.io/](https://gmsl.sourceforge.io/)) is a collections of such hacks; here's its definition of 'strlen':

        strlen = $(call assert_no_dollar,$0,$1)$(strip $(eval __temp := $(subst $(__gmsl_space),x,$1))$(foreach a,$(__gmsl_characters),$(eval __temp := $$(subst $$a,x,$(__temp))))$(eval __temp := $(subst x,x ,$(__temp)))$(words $(__temp)))

<comment><USER5> _> only available since GNU make 4.0, and some Linux distributions still have older make, made it a hassle to setup. This should improve over time, of course._

That feels like an outdated statement, make 4.0 came out in 2013. The only non-EOL system I can think of off the top of my head that isn't shipping >=4.0 is macOS (because they won't upgrade to anything GPLv3).

However, unfortunately there's a popular CI system ( _cough_ CircleCI _cough_ ) that's still using Ubuntu 14.04 by default, which has been EOL for almost a year now. (And others, such as Travis-CI, used it by default right up until it was EOL).

Oh, if you appreciate gmsl, you might also appreciate a book by the same author ('jgrahamc), _The GNU Make Book_. Some of the things in gmsl are certainly hacks, but a lot of it is quite reasonable if you start reading Make macros as "lisp, but with a bunch of extra dollar-signs and commas".

<comment><USER6> > The only non-EOL system I can think of off the top of my head that isn't > shipping >=4.0 is macOS (because they won't upgrade to anything GPLv3).

RHEL 7 has Make 3.82. Its regular life cycle ends in 2024, and I assume it will have an extended support period after that.

<comment><USER5> TIL that after the 5 year "full support" period (which is what I had in my head), RHEL has a 5 year "maintenance support" period (and that CentOS matches that 10-year total) (and then the "extended lifecycle support" arbitrarily long after that for whoever wants to pay enough).

(Aside: 3.82 is a surprising version to be stuck with... most distros went straight from 3.81 to 4.0, because by the time the show-stopper bugs in 3.82 were all patched, 4.0 was happening.)

</comment></comment></comment></comment><comment><USER7> Guile integration in Make is super useful. I've used it on Windows to replace expensive shell calls with Guile functions and achieved tremendous speed-up. Building Make with Guile-support on Windows seems to be pretty complicated, but luckily ezwinports provides a native build, and it works great.

</comment><comment><USER2> For those of us stuck working with vanilla GNU Make, you can still use $(shell) to accomplish a lot of what the Guile integration provides.

As an example, string-length can farmed out by something like:

        strlen = $(shell printf "$1" | wc -c)

When combined with $(eval), you can use the $(shell) command to do some pretty complex stuff in your Makefile. I've used this for doing checksum-based dependencies on one oddball build.

It's not as nice as working with Guile, but it gets the job done in a pinch. And since the Guile interface doesn't have direct hooks into the DAG or anything, it doesn't really have access to tools that you couldn't provide by calling $(eval) on the result of a shell script.

</comment><comment><USER8> Can someone who has used this featured give an example of what they used it for and how it improved their build system?

<comment><USER9> With a bit of creativity, you can achieve most things with the existing GNU make functions. Often the result is far from readable and relies on side- effects like sorting removing duplicates. But at least you don't need to worry about make being built with guile support.

Guile does give you access to most system calls. The most interesting thing I've done with this is have the gmake process create a fifo, fork and exec tee in the child process to save a copy of the build output. It doesn't entirely work if gmake re-execs itself after building included makefiles.

I've also tried doing a loadable module in C - to output timing to benchmark changes to my Makefile. I have a non-recursive setup which can take a few seconds at startup.

The guile scripts are mostly limited to running during the initial make stage where dependencies are all gathered. You can't avoid the shell forks during the build process. There are also limitations in the strings being passed back to gmake so it didn't help greatly with colourising output when I tried that.

</comment></comment><comment><USER10> make -p -f/dev/null | grep FEATURES

<comment><USER11> Thank you kindly for providing the way to actually do the documented: "You can determine if make contains support for Guile by examining the .FEATURES variable; it will contain the word guile if Guile support is available."

Unix - the documentation is excellent if you already know how to do it...

<comment><USER12> Seriously? Is it really that hard to figure out how to look at values of variables in general?

</comment></comment></comment><comment><USER13> I have been using it with great success, but there has been some bother with portability.

I used it in ways that could have been done with make proper, but since I already know a lot of guile I reached for that.

<comment><USER14> Which platform did Guile have trouble on?

<comment><USER13> Not cross-platform, but cross-computer. It isn't available everywhere, and is quite a fuzz to enable elsewhere.

</comment></comment></comment><comment><USER15> For those of you who don't have make-guile, your GNU make probably still supports loadable modules in C (or your favorite C-ABI-compatible language): [https://www.gnu.org/software/make/manual/html_node/Loading-O...](https://www.gnu.org/software/make/manual/html_node/Loading- Objects.html)

I've been using that at work recently.

</comment><comment><USER16> If anyone is interested in using a Scheme-like language with Make 3.81, take a look at: [https://github.com/bhk/scam](https://github.com/bhk/scam)

</comment><comment><USER17> Oh, like MSBuild with Powershell scripts. Each evil in their own ways.</comment>


Suggestions for engineering recruiters in Bay Area? - <AUTHOR>

We've been trying to build our engineering team in the bay area for awhile now, but we're not having any luck. We've used 5 different recruiting firms to fill our developer positions, but they aren't delivering.<p>Does anyone know of any other recruiting firms in the bay area that you would refer? Greatly appreciate it. <comment><USER2> I've got this lawn I need mowed. I keep shooting at it with my handgun, but it doesn't seem to be working. Does anyone know of any higher caliber rifles I could use to cut this grass? Greatly appreciate it.

</comment><comment><USER3> Are you building really cool stuff? Are you paying enough that a programmer could afford an apartment close to your office? Free snacks, free lunch, free dinner, gym membership? Private offices (with doors!) or noisy, chaotic open plan?

Are you building really cool stuff?

<comment><USER4> I don't disagree with your sentiment, but the sign of a "good" recruiter would be to tell the client when their expectations about compensation are out of wack.

So, that doesn't really answer the underlying question.

</comment></comment><comment><USER5> I would suggest some serious outside-the-box thinking. Here are some ideas:

* Try advertising on Reddit. I think Reddit will let you target specific sub-reddits, and I don't think their advertising is very expensive anyway. Right at this moment, r/programming claims to have "588,311 readers" and "1,059 users here now". Most of these people won't be in the Bay Area, but I would bet a significant fraction are.

* Try advertising on Pandora. I don't think there's any way to target technical people specifically, but I think they may be able to geo-target pretty accurately. And compared to the cost of a recruiter, I can't imagine it would be very expensive.

* Try advertising in your local alternative weekly newspaper. Up here in Seattle that would be The Stranger. In the Bay Area I guess that would be papers like San Francisco Bay Guardian, the SF Weekly, or maybe the Metro Silicon Valley. Even if this doesn't generate much in the way of direct leads, it might generate some notoriety which in turn might benefit your other recruiting efforts. A conventional contact from a recruiter might be more effective if the contactee has already heard of your company. And again, the cost of this advertising is probably a lot cheaper than a recruiter.

OK, maybe that last idea is a little too outside the box. But it still seems like somebody should try it just to see if it works.

<comment><AUTHOR> Thanks for the advice.

</comment></comment><comment><USER6> Tried remote yet?

I'd love to do away with my daily driving grind, but every time I emailed someone I got a "we don't really want remote developers, we just say we do; have you considered moving to SF?". Unfortunately, it's unlikely that I'll be getting the same spacious 2BR2BA (with 2 parking spots!) for $800 in SF (not to mention one block away from daycare), and I don't want my salary to be eaten by rent

</comment><comment><USER7> Your website doesn't list the jobs you're hiring for, the industry you're in isn't very glamorous, nobody want to commute to San Bruno (you either live north or south and driving from one side sucks and driving from the other means you need a car) and I'm guessing low pay and little perks as far as new/fun technology.

Your website is listed on your profile, and I pulled the above together in about 2-3 minutes.

</comment><comment><USER8> OP- I am based in NY but have had success in filling engineering roles in the start-up space. A big factor (arguably the most important) is culture fit. I've had fairly good success understanding my client's needs and parameters and providing suitable candidates.

Feel free to write back and I can send you my email to continue the conversation. BOL!

</comment><comment><USER9> I hate to say it, but you might step back and wonder if the market is sending you a message here; could it be that the high cost of living and low quality of life in the Bay Area, combined with Silicon Valley investors redlining 98% of the land area of the US could lead to investment returns going to 0% or less for Silicon Valley investors?

</comment><comment><USER10> Most recruiting companies do the best they can with the job requirements they're given.

If you're trying to get junior people for $75k and senior people for $125k, no recruiter's going to fill those positions.

Try upping your ranges and I bet most of the 5 recruiters will start coming up with a sufficient supply of candidates to fill out your team.

</comment><comment><USER11> Why don't you use the "Who is hiring?" thread, or at least mention here what profiles you are looking for. Also, as arenaninja asks, have you tried remote? There are some inconvenience coming with it, but you will have access to a larger pool of candidates who will cost you less than SV engineers.

</comment><comment><USER12> 1\. Go to meetups/hackathons/dev conferences. 2\. Hire directly by talking to people you meet there. 3.Engineers have a strong aversion towards HR people and are more likely to pay attention to the founders or early hires. 4.Hire remotely ---> your talent pool increases dramatically

</comment><comment><USER13> If you tried remote, you'd get access to a whole lot of high caliber candidates at a significantly lower price. You'd be pretty surprised at how many awesome developers are available when you're recruiting from the entire nation (or even world, if you're daring).

</comment><comment><USER14> Try Hired.com and careers.stackoverflow.com -- For Careers, I have not used postings, just profile access. Everyone I have talked to that tried Hired loved it (but I have not)

</comment><comment><USER15> Hard to say without knowing more - how big is your team currently, and what specific engineering positions are you hiring for?

Have you gotten any feedback on why engineers are passing?

</comment><comment><USER16> The company site doesn't say much about the working environment, and candidates comparing you to other companies don't know what they get

</comment><comment><USER17> Try Motek Technologies, my friend Marc works there and they are pretty cool. His email is firstname.lastname@example.com</comment>


Show HN: Blueprint3D – Design interior spaces in 3D with WebGL - <AUTHOR> https://github.com/furnishup/blueprint3d <comment><AUTHOR> Hi HN - the makers of Blueprint3D here. We're excited to release this open- source - let us know if you have any questions or feedback about the project!

<comment><USER2> This is very cool. Random thoughts, though more on the example app than all of it:

\- When editing the floorplan, it's possible to push walls into each other and no way to get them away from each other again other than deleting one; even just a minimum distance between walls of of say, 10cm would solve this, in combination with the zoom function.

\- Any idea what makes this slow-ish when moving the camera? It's perfectly useable, but it would be _even_ nicer with 60fps is what I'm trying to say :)

\- How about having the "pan" functionality accessible via a modifier key and dragging the mouse, in addition to the buttons? It would also be neat to be able to resize objects in a similar way.

\- Saving floor plans and designs to local storage would be great, as would be the ability to collaborate with others. And of course, a feature to save the current view as an image.

<comment><AUTHOR> This is good feedback re floorplan editing + "pan" via modifier key, thank you.

The slow-ish feeling whilst moving the camera is due to the processing limitations of your machine, the scene is set to render as fast as possible. Also re saving floorplans + designs, if you want to use this as a tool to collaborate with others checkout furnishup.com, our application built off of this open source - still needs a bit of improvement :)

<comment><USER2> > The slow-ish feeling whilst moving the camera is due to the processing > limitations of your machine, the scene is set to render as fast as possible.

It turns out it's limited to at best 20fps, actually:

        function animate() {
          var delay = 50;
          setTimeout(function() {
            requestAnimationFrame(animate);
            }, delay);
          render();
        };

Replacing that with

        function animate() {
          requestAnimationFrame(animate);
          render();
        };

makes it smooth as butter :)

<comment><AUTHOR> Ahhh yes, now I remember. Anything > than 20fps made it so I could fry an egg on my laptop :) Thanks for digging!

</comment></comment></comment></comment></comment><comment><USER3> Superb! The next awesome addition would be GearVR support (or Oculus Rift or HTC Vive) for entering the spaces.

</comment><comment><USER4> This is great. I'm testing it on an old Core2Duo machine at the moment. Would it be possible for the 3d model to fall back to wireframe when rotating if necessary? I'm getting about 1fps.

Some buttons to jump to standard views would also be nice, especially for slow machines. (Plan view, isometric views.)

<comment><AUTHOR> > Would it be possible for the 3d model to fall back to wireframe when > rotating if necessary? \- Yes, that would be a nice addition for slow > machines. It is possible, just not in the current build.

> Some buttons to jump to standard views would also be nice, especially for > slow machines. (Plan view, isometric views.) \- Yes, that would make for a > nice user experience to default to some standard views.

Thanks for the feedback.

</comment></comment><comment><USER5> This is really cool. Very intuitive. Very well executed in my opinion. I had trouble drawing walls though. Couldn't get it to work at all.

<comment><USER6> Same here. trying to draw walls just ends up panning the floorplan

<comment><USER7> This could probably be more intuitive. Drawing walls is not click and drag. You simply click to create corners. Hopefully that is the issue you were running into!

</comment></comment></comment><comment><USER8> Any plan to add metric system?

</comment><comment><USER9> This is the Cities: Skylines I was looking for. :x</comment>


How a Man-Made Tornado Could Power the Future - <AUTHOR> http://www.livescience.com/environment/080625-pf-vortex-engine.html <comment><USER2> I read the title as "Man-Made Tomato". Quite the letdown.

</comment><comment><USER3> This is the type of thinking we're going to need to get humanity out of the mess labeled as 'global warming', not environmental rallies, or teaching all kids to conserve energy or whatever.

</comment><comment><USER4> The most illuminating phrase in the entire article follows:

"he has not found an investor yet".

Stupid is as stupid does.</comment>


Where are all the Native American restaurants? - <AUTHOR> https://www.reddit.com/r/AskHistorians/comments/7b57sq/where_are_all_the_native_american_restaurants_was/dpfvcw5/ <comment><USER2> Tocabe, in Denver, is very good, I'm a satisfied customer (Tocabe.com)

I grew up in northern New Mexico, and when a friend from a tribe would invite me to a tribal feast day, it was always an amazing experience- both culturally and gastronomically. I would love to see more of those dishes in restaurants.</comment>


Comcast Says It Wants to Charge Broadband Users More for Privacy - <AUTHOR> http://www.dslreports.com/shownews/Comcast-Says-It-Wants-to-Charge-Broadband-Users-More-For-Privacy-137567 <comment><USER2> This actually makes quite a bit of sense if you look at it backwards. "Comcast provides customers a discount if they allow Comcast to sell their information."

If providing cable costs $50 and you sell it for $80 you can provide the second option for $60 if you can make $30 selling their info.

Not that I think my ISP should be anything more then a dumb pipe but logically it's not that crazy.</comment>


'No right to livestream murder': Ardern leads push against online terror content - <AUTHOR> https://www.theguardian.com/world/2019/apr/24/christchurch-call-ardern-leads-push-against-online-terror-content <comment><USER2> Unless of course it's for journalism, then it's completely allowed.</comment>


Marines' LS3 robotic mule is too loud for real-world combat - <AUTHOR> http://arstechnica.com/information-technology/2015/12/us-militarys-ls3-robotic-mule-deemed-too-loud-for-real-world-combat/ <comment><USER2> A friend of mine who was in the Marines ROTC said he had seen one of these being demonstrated a few years ago and I got the chance to ask him about it briefly. He was scant on details but did say there was no chance they would ever use it because it was too loud. I replied that maybe they could make the engine quieter and he said it would still be too loud. He also said that there were limited useful applications and they just wouldn't really need robotic pack mules that much. I was a doubter but I guess he saw this coming from a mile away.

<comment><USER3> I never heard from the military if the heat signature was a problem as well. The article sights noise, but that thing has to stand out on IR goggles or similar monitoring devices.

<comment><USER2> Good point, I would imagine that would be concerning but most of our current enemy combatants probably cannot afford heat sensitive googles. I wonder what the radar signature is and if it can be distinguished from a cow?

<comment><USER4> _most of our current enemy combatants probably cannot afford heat sensitive googles_

This is likely to change as electronics get ever cheaper.

</comment></comment></comment></comment><comment><USER5> So, the conclusion is that there is a market for a really quiet gas powered engine. I was thinking when the first prototype came out that working on a quiet engine was what they were going to spend the money on, the basic robot seemed to be ok for what they needed.

I'm curious why that problem would not yield to a concerted effort. I spent some time quieting my generator motor which consisted primarily of catching and slowing the exhaust gases I stopped refining that solution when I could buy a cheap (and reasonably quiet) generator from Yamaha. For three or four million I'd be happy to restart my efforts on this project :-)

<comment><USER6> Not sure what the required power output is for a robot of this type, but I was impressed by this tiny 400W gas turbine: [https://www.youtube.com/watch?v=Al8elCF816g](https://www.youtube.com/watch?v=Al8elCF816g)

<comment><USER5> That is a pretty cool motor, but the basic physics of a robot of this size suggests closer to 30HP or 22,500W. The fuel cell decomposing idea is an interesting one too. The good news is that the customer is price insensitive so you can charge a lot to cover your R&D expenses.

</comment></comment></comment><comment><USER7> Boston Dynamics, the prime contractor for LS3, has bowed out of the military robotics business since being acquired by Google two years ago.

One feels that this might also have been a major factor, although perhaps it was easier to pin the decision on a technical issue.

</comment><comment><USER8> Or there's always this 1.0 variant. Has a known tendency to kick and bite. But usually quieter. Can haul almost as much.

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

<comment><USER9> Unfortunately Mule 1.0 suffers from reduced payload at higher altitudes ( falling below 100kg for the top breed ) and tire quickly, requiring frequent resets.

They also require 30 to 50 litres of water per day, depending upon climate, so on a three-day mountain patrol they can basically carry only their own water and no other payload. Not terribly useful. Plus fodder...

Courtesy of the Argentinian army, here's a table of the mule resources required to sustain a 171-man company on a six-day mountain march:

[http://fmso.leavenworth.army.mil/documents/groundcombat/char...](http://fmso.leavenworth.army.mil/documents/groundcombat/chart4.jpg)

Yes, 232 mules and 171 men.

</comment></comment><comment><USER10> Marines don't even speak while on patrol, it's pretty obvious that a robot powered by a gas engine wouldn't be a good idea.

MARSOC units apparently use electric dirtbikes to quickly through rough terrain on some missions.

<comment><USER11> ...which suggests a possible solution to the current dilemma.

<comment><USER10> I don't know...I can't imagine a small electric dirt bike being useful with 100 - 120 lbs of gear (typical infantryman payload with full pack), plus the rider. I think the technology needs to come a long way.

<comment><USER11> I could have been clearer. I meant they could pull the electric motor out of the dirt bike and put it into the robot.

<comment><USER3> I doubt that the mule would be of much use then. The range of the fully loaded mule was fairly limited. A battery powered version would have an even more limited range. This is possibly true even with a fuel cell.

I don't think that it's a total waste, provided the Government gets the R&D. The machine can follow a human without direct controll. This could be added to alternative tech.

At the same time it could be useful in non war scenarios like fire fighting or rescue and recovery. In both situations stealth is not important. Getting into remote areas might be possible, and better with these machines. If necessary, depending on environmental factors, fuel deposit could be dropped ahead of time.

<comment><USER11> Something that can transport a grown human quickly, can probably also transport a roughly equivalent weight more slowly? Or at least it will be able to do so given enough R&D? Electric motorcycles have been available for several years, from a variety of companies. Either the right battery is available now or it will be soon.

<comment><USER12> Don't underestimate the brutal efficiency difference of wheeled vs quadrupedal locomotion.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> The noise level was a pretty obviously non-negotiable flaw in the mule from early on. You'd think that someone would have pointed that out before dumping $42M into it.

I wonder if there were plans to reduce the noise in the unit that never worked out.

<comment><USER14> There are electric versions by Boston Dynamics but they carry less weight which probably disqualifies them from the project. I'm sure someone was hoping that the firms involved would pump out an all electric version that could meet everything but it just wasn't feasible within the parameters.

I remember in one of the Ghost Recon Advanced Warfare games, there is a mini cooper sized APC looking thing that would carry supplies. It would either follow the player or could be controlled. I think that would be a better solution. A gas electric hybrid offroad vehicle would be pretty cool. It could carry supplies or serve as an automated medevac and still be silent in electric mode.

</comment></comment><comment><USER15> I went to a few demonstrations of the robot at an army base back in 2012. Whenever they would start the robot up, all the spectators would involuntarily gasp and cover their ears. It was shockingly loud.

</comment><comment><USER16> Human-pulled wagon [1] with smart robot suspension?

may have Dalek [2] limitations ...

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

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

</comment><comment><USER17> Looks like another case of 'we solved the wrong problem'. Too bad they spent all this money without asking anyone, 'hey, is it a problem if this thing is super noisy?' I think the takeaway lesson here is, if you are building something for the military, have an end user - a soldier - involved in the design early on, and listen to what that person has to say. That applies to many different kinds of engineering. Don't solve the wrong problem.

</comment><comment><USER18> I feel bad for the individuals who invested their time into this project, I've been reading about it for years. It's like getting to the Olympics after a lifetime of training and when the gun goes off you trip and fall on your face.

</comment><comment><USER19> Why not a hybrid drive train like the volt. So you run the gas engine to recharge in safe areas and run on batteries in quiet areas?

Also moderns cars seem extremely quiet. Why can't they apply similar silencing here?

<comment><USER20> It only has 400lbs carrying capacity. Batteries to give it a reasonable distance -- maybe a kilometer over rough country? -- would eat into that.

</comment></comment><comment><USER21> i think it can be used for police operations instead of dogs in SWAT situations like this for example [http://www.dailymail.co.uk/news/article-3323495/Hero- police-...](http://www.dailymail.co.uk/news/article-3323495/Hero-police-dog- blown-terrorists-stand-Diesel-seven-year-old-Belgian-Shepherd-honoured-dying- defend-colours-killed-suicide-bomber-sent-apartment.html)

<comment><USER22> There is no technological equivalent for a dog's nose in reliability, form factor, and cost. That, and a Boston Dynamics type robot probably costs several orders of magnitude more than training a dog/trainer pair, and is much less flexible.

Amusing note: at least for ATF, all arson/explosives detection dogs are dropouts from the seeing eye dog training programs (too energetic). Source: relative was involved with the program.

<comment><USER21> >There is no technological equivalent for a dog's nose in reliability, form factor, and cost.

i specifically mentioned SWAT missions. This is where a robot can replace the dog or man "on the point". It just have to enter the room/etc. and burn several flash grenades, even without throwing them :) After that real people&dogs may enter much more safely.

</comment></comment></comment><comment><USER23> $42 million and they couldn't design a quieter engine?

</comment><comment><USER19> Why didn't they look at fuel cells?

</comment><comment><USER24> The need is still there ...

1) American recruits are too fat to carry a pack nowadays

2) Marines in Afghanistan suffered from ankle injuries from carrying 70 pound packs on cobblestone fill.</comment>


The One Startup That Keeps Facebook Awake At Night (2012) - <AUTHOR> http://articles.businessinsider.com/2012-03-07/tech/31131093_1_facebook-ceo-mark-zuckerberg-mobile-experience

<comment><USER2> This isn't even an article it's just BI pumping out SEO links to their own BS.

</comment><comment><USER3>
      Facebook tried, but failed, to buy Instagram last summer.

lol</comment>


Nobel Prize in Economic Sciences 2013: Trendspotting in asset markets - <AUTHOR> http://www.nobelprize.org/nobel_prizes/economic-sciences/laureates/2013/press.html <comment><USER3> I believe that this is fundamentally good research. But beware if anyone thinks that you can use this to build a killer investment strategy.

If one tests a simple rule, for example "buy when the shiller p/e ratio dips below 15 and sell when it hits 20" then indeed, you would have seen some fantastic results - most obviously in the aftermath of the 2008 financial crisis, when after adjusting for inflation and dividends, you could have bought the S&P500 in Feb 2009 for 887.12 and sold it again in December for 1202.03, realizing a 35% return _after inflation_ ).

However, you also would have had the patience and determination to ride out some extremely tough times - you'd be long stocks for the 1987 crash, and completely miss out on the pre-2000 tech bubble, for example). You'd also have to ride out some drawdown that would have wiped out 50% of your capital before the eventual recovery.

In fact, you'd only have placed six trades in about 125 years --

1\. Buy in April 1882 and sell in 1898, realizing 2.62% annualized, inflation- adjusted return over 16 years.

2\. Buy in March 1907 and sell in 1928, realizing 1.01% annualized and inflation-adjusted over 21 years.

3\. Buy in Sept 1931 and sell in 1936, realizing 10.1% annualized over five years (this was a great trade, as you bought in the immediate aftermath of the 1929-1930 crash, and just before the recovery of the early 1930s)

4\. Buy in Jan 1937 and sell in 1961, realizing 6.79% annualized over 24 years (another great trade, but you would have had to hold your position over the second world war, which included some terrifying drawdowns).

5\. Buy in 1973 and sell in 1992, realizing 2% annualized over 19 years. Again, you'd have to suffer losing over half your capital before you eventually came out on top.

6\. Buy in Feb 2009 and sell in December the same year, realizing a 35% return in less than a year (the single greatest trade in the strategy's history, perhaps indicating how thoroughly depressed markets were after the 2008 crash).

<comment><USER4> You are falling into the curve fitting trap that is epidemic in economics.

This is typically what economic "scientists" do, they find a formula that fits a lot of past data, then they publish it as science.

If they actually used it to make money, then it would be better, but that is almost never the case.

People who make money in the financial markets don't publish their winning formulas.

Why? For two reasons.

1) It probably isn't a hard rule or formula. It is probably a combination of factors that go into a decision that ultimately becomes a "gut feeling". Then, the best traders, usually get out if the trade doesn't work right away. This is because something unknown is acting on the trade, and since they have no idea what it is, they get out.

2) They want to use the formula to continue to make money, and since financial markets are very dynamic, they formula might not work if a bunch of people start using it.

<comment><USER3> Believe me, I am more than aware of the perils of overfitting!

The purpose of my comment isn't to say that using Shiller's P/E ratio is a good way to make money. In fact, I'm essentially saying the opposite - <USER2> while I think the research is good, it would be an inappropriate tool for most individual investors, because of the length of the required time horizon, and the length and magnitude of the drawdowns you'd have to endure.

As an aside, I believe that your criticisms of economics are misplaced. Certainly there is plenty of poor research and curve-fitting that gets published in journals of economics. But there are also extremely capable economists whose understanding of data-mining bias and overfitting is far in advance of yours or mine, and who are extremely careful when evaluating models using historical data.

</comment></comment></comment><comment><USER5> I really wished they'd always referred to it as 'The Sveriges Riksbank Prize in Economic Sciences in Memory of Alfred Nobel' to differentiate it from real Nobels.

<comment><USER6> Ditto. Alfred Nobel had no intent to create an Economics Nobel, and his grandson has argued against the economics "Nobel" prize associating with the family name.

</comment></comment><comment><USER7> [https://www.coursera.org/course/financialmarkets](https://www.coursera.org/course/financialmarkets)

<comment><USER8> Wow. I had already signed up for it, but this certainly makes it more interesting.

</comment></comment><comment><USER9> Fama was wrong about everything. I think Nassim Taleb should have deserved it, for actually "predicting" the crises.

[http://www.youtube.com/watch?v=S3REdLZ8Xis&list=PLzfJcwakFwl...](http://www.youtube.com/watch?v=S3REdLZ8Xis&list=PLzfJcwakFwlXX98P1pteZDYHqBUyf3dy2)

<comment><USER5> He predicted the crisis in December 2012?

<comment><USER9> No, he published the Black Swan in 2008, which as a term is now part of the dictionary. He very thoughtful about the term predictions, so it is much more a framework for statistical thinking. Actual help work, as opposed to the nonsense that is currently economics.

<comment><USER5> Umm..ok. But the point of Black Swan is that certain are unpredictable. Yet plenty of people saw the crisis coming [2,3]. Taleb was not one of them - please see [0]

If you are a Taleb fan (or just curious), check out this critique of his work:

[0] [http://quixoticfinance.com/tag/nassim- taleb/](http://quixoticfinance.com/tag/nassim-taleb/)

[1] [http://unpleasantfacts.com/falken-on- taleb](http://unpleasantfacts.com/falken-on-taleb)

People who actually predicted the crisis

[2] [http://www.amazon.com/Greatest-Trade-Ever-Behind- Scenes/dp/0...](http://www.amazon.com/Greatest-Trade-Ever-Behind- Scenes/dp/0385529945)

[3] [http://www.amazon.com/The-Big-Short-Doomsday- Machine/dp/0393...](http://www.amazon.com/The-Big-Short-Doomsday- Machine/dp/0393338827/ref=pd_bxgy_b_img_z)

<comment><USER10> At any given moment there are "plenty" of people who think the sky is falling. How do you account for survivor bias.

<comment><USER5> You know, in billiards (pool) you have to actually point to the hole in which you plan to sink the bal. So that if the ball ends up in _some hole_ (but not the one you anticipated), you don't get credit for it.

Same here - if you read the piece ([http://quixoticfinance.com/tag/nassim- taleb/](http://quixoticfinance.com/tag/nassim-taleb/)) it exlains in detail how Taleb's claim to predicting the crisis is 100% off the mark (and the said thing is that he knows it, which makes him a poseur).

</comment></comment></comment></comment></comment></comment><comment><USER11> "Sveriges Riksbank Prize" != Nobel Price

This is a prize given by the Central Bank of Sweden, not really an unbiased source. They have a clear agenda to propagate, and it is more about how to get more money for them for central planning than about economy.

<comment><USER12> >This is a prize given by the Central Bank of Sweden, not really an unbiased source.

The only people who care about the title of the prize are elitists who clearly miss the point of discussion. This is a prestigious prize in the field of economic research. I don't see it as more or less relevant because it's called "Nobel". But thanks for pointing this out in every Economic Nobel thread.

Now, please, explain to everyone here the biases of the Central Bank of Sweden. Is it because it's run by economists? Who else should be choosing the prize? Clearly unbiased people with minimal economic knowledge?

Maybe you could provide us with a refutation of the works of Messrs. Fama, Shiller and Hansen, rather than just waving your hand and dismissing the work of men, far more accomplished than yourself in the field, as the "propagation of an agenda".

<comment><USER13> This prize was created by bankers to celebrate their own pseudo(mostly)-science.

Everything I've come across suggest that Alfred Nobel detested their ilk, and wouldn't want his name associated with the prize in any way, shape or form. That's why the title matters.

<comment><USER4> Thank you, this award is really a joke.

Economists, generally, don't use their models in the real world. And when they do, they lose billions of dollars.

See Myron Scholes. He did it twice.

Because his "science" was flawed.

It drives me crazy that these guys not only get awards, but influence government financial policy.

<comment><USER14> What should influence government financial and fiscal policy if not economics?

<comment><USER4> Economists, not economics.

The current people who are the "top economists" in the world, are, generally, ill-fit to their jobs.

Their abilities to assess risk are horrible.

They are making the world a more dangerous place, not safer.

Economics is very complicated, much more complicated than most leading economists think.

I am talking about people heading the leading economic and financial institutions today.

They are dangerous because they are overly confident of their horrible "predictions".

</comment></comment></comment></comment></comment></comment><comment><USER15> The term "economic sciences" is about as appropriate as the term "sanitation engineers." No controlled experiments = not a science. Relevant: [https://www.lhup.edu/~dsimanek/cargocul.htm](https://www.lhup.edu/~dsimanek/cargocul.htm).

<comment><USER12> > _No controlled experiments = not a science._

According to whom?

Wikipedia: _Science (from Latin scientia, meaning "knowledge) is a systematic enterprise that builds and organizes knowledge in the form of testable explanations and predictions about the universe._

More importantly: _who cares_?

<comment><USER16> > in the form of testable explanations

i.e. controlled experiments.

> More importantly: who cares?

Anyone who's interested in the truth.

<comment><USER17> > _" testable explanations ... i.e. controlled experiments"_

Explanations can be tested through careful observation of uncontrolled environments.

</comment></comment></comment></comment><comment><USER4> This is a joke. It's not a Nobel Prize. It's a propaganda award given to promote economics.

I have a question, how many "Nobel Prize" winning economists does it take to lose billions of dollars in a hedge fund?

The answer: 2.

Why? Because economists are generally idiots and don't worry about "real world" applications. They just enjoy listening to themselves talk and win awards.

Edit: I just looked over the paper. They make no predictions about the future. They just say "it is possible to make longer term predictions."

Again, since they don't make any predictions, how can this be considered science?

<comment><USER18> > economists are generally idiots

That's the sort of inquisitive, open minded, intellectually curious, fact- based sort of approach to the world that I like to see on Hacker News.

<comment><USER4> My problem with economists is they call themselves scientists, yet have very little actual "science".

Science means, reproducible, testable and predictable ideas.

Economists use curve fitting formulas on past data, then call it science.

And, worse, they defend each other. I have taught economics, worked at hedge fund and studied economics in college.

They work at banks and governments, then use "science" to justify stealing money from the people they are supposed to be helping.

What happened to all the economists after the recent world economic crisis?

They didn't lose their jobs. They weren't held responsible for their horrible risk-analysis.

So, yes, they are idiots.

<comment><USER19> And of course economics==financial economics.

You have a very narrow definition of science as well. If in X years penicillin stops working altogether because of anitbiotic resitant bacteria will you start calling biology/medicine not a science?!

Economics deals with an ever changing enviroment.

<comment><USER4> > And of course economics==financial economics.

Yes, because of the huge influence of the leading economists have on the world today.

Economics, in general, is plagued by poor research, poor results, and bad logic.

They help shape fiscal, monetary and economic policy, yet make horrible risk assessments, horrible predictions and believe their own bullshit.

>Economics deals with an ever changing environment.

Economics is way more complicated than people will admit. How can you model 7 billion people interacting? It's impossible.

Yet, they give these charlatans huge salaries, awards, real power in government and don't hold them accountable.

The leading economists (with a couple exceptions) still don't admit they don't know anything and won't adjust their thinking.</comment></comment></comment></comment></comment>


World's First Solar Cycle Lane Opening in the Netherlands - <AUTHOR> http://www.theguardian.com/environment/2014/nov/05/worlds-first-solar-cycle-lane-opening-in-the-netherlands

<comment><AUTHOR> These solutions are rather flat, so I wonder how much energy is lost by not being able to tilt the panels.</comment>


Redis 6.0 GA - <AUTHOR> http://antirez.com/news/132 <comment><USER2> Thanks antirez for all the work you've done on redis. Personally I can say that no one had such an impact on my work as you did. Reading through your source code is educating and inspiring.

You are a hero.

<comment><USER3> Thanks, to me it means a lot that somebody out there perceives my work as something of positive :-). Live long and prosper.

<comment><USER4> Dude... I do not think you know truly how many people love Redis. For every contrarian armchair quarterback here on HN there are 1000 people who are out using/coding/hacking w/ Redis and not caring about the noise. Myself included. Thank you and all the contributors for the hard work on an absolutely killer tool.

</comment></comment></comment><comment><USER5> "Redis 6 is the biggest release of Redis _ever_ , so even if it is stable, handle it with care, test it for your workload before putting it in production. We never saw big issues so far, but make sure to be careful. "

Congratulations, team!

</comment><comment><USER6> I have a bit of a tangent question for more experienced back-end developers: where do you fit Redis (or other caching mechanisms) in the traditional MVC model? I haven't had a use-case for Redis yet, but I'd like to know how should I approach the architecture of an app using Redis.

<comment><USER7> Redis can be a very powerful tool, it can also be a sign that something has gone wrong.

Redis is a high performance key/value store with adjustable consistency. It can be used as a caching layer, and it can also do a solid job of representing a basic message queue. It typically fits in on the data layer to store computed results for fast retrieval, but it can also behave like a read replica (storing data from outside your domain).

That being said, when Redis becomes a critical part of your stack for performance reasons it usually means something has gone wrong in your data layer. I often times see teams use an antipattern of taking data from their database, changing it's shape to what they want, and then storing that new model in redis. If you're the only consumer of your data, then your data model is incorrect and you're using Redis to paper over that fact.

<comment><USER8> Agree with you, that's bad, there are also places which use redis as a primary data store. That's actually messed up.

<comment> A-Train Is this that bad? At our company we are using redis for real time recommendations. And this is our primary database for storing accumulated statistics about items and users. It has been important to us to have a quick way to share the data between the workers and we chose redis.

<comment><USER9> You're fine. The simplistic interface that Redis provides to sets, and therefore empowering pragmatic recommendation engines, is the perfect tool for this job.

</comment></comment></comment></comment></comment><comment><USER10> > Threaded I/O

Woah, I missed that redis changed their mind about this. Clearly haven't been paying attention.

<comment><USER3> It didn't, but we identified something that could be done without throwing away our vision. Basically Redis remains completely single threaded, but once is about to re-enter the event loop, when we have to write replies to all the clients, we use threads just for a moment in that code path, and return single threaded immediately after. It is not as performant as full threading, but we believe the right thing to do is sharding and share-nothing. Yet this 2x improvement for the single instance was almost for free so... btw it's disabled by default.

<comment><USER11> >btw it's disabled by default

Why is that?

Thanks for the explanation on Threaded I/O, I was about to ask the difference between Redis 6 and KeyDB.

<comment><USER12> KeyDB multithreads the entire event loop from end to end. This provides better performance [1], and combined with MVCC will put us in a place to support more expensive commands like searches without blocking other clients.

1\. [https://docs.keydb.dev/blog/2020/04/15/blog- post/](https://docs.keydb.dev/blog/2020/04/15/blog-post/)

</comment></comment></comment></comment><comment><USER13> Congratulations to the Redis team, it's always nice to see improvements to the cluster story and tooling.

</comment><comment><USER14> Threaded IO, Server assisted client caching, and Redis proxy in my opinion is an important milestones. Threaded IO will fully utilize multiple cores; and improvements are amazing. Server assisted caching will reduce client round- trips. Redis proxy will remove the debate of which client library to use, Jedis for example has not allowed reading from replicas or doing multiplexing distributed commands; proxy is gonna solve all those gripes. I can't wait for it to be stable and production ready.

</comment><comment><USER15> This is great timing. I was just spinning up a new service using redis this morning. Thanks for the constant work you put into this project.

</comment><comment><USER16> One caching pattern I find myself doing a lot on Redis is where multiple clients try to access the same cached value, but if it doesn't exist only one is allowed to revalidate it, all other clients wait until it's revalidated and get notified with the new value. Currently for the clients it involves:

1\. subscribe for updates on the key you're trying to retrieve 2\. retrieve cached value or set a lock 3\. if lock acquired, unsubscribe, then fetch value 4\. set the result in a key and publish event with the value

I wish there was a command that does: retrieve value of a key, if it doesn't exist lock the key and notify me with an id, if it's locked subscribe for the next update on the key. With a second command that acknowledges the lock with a new value

Now I know this can be implemented and I've done so multiple times. It's just that it's tricky to get right and consistent.

</comment><comment><USER17> RESP3 looks very interesting, unfortunately I made the mistake of writing my own RESP2 protocol and now I don't have time to upgrade to RESP3. I guess I'll move to some third party C++ client library.

<comment><USER3> RESP3 is a strict superset of RESP2! You can just add to your implementation and end with RESP3 finally :-) It means also that a RESP3 parser can parse any RESP2 reply without issues, in case you use it against a RESP2 server.

<comment><USER17> Oh that is great to know, because there was a very specific reason why I implemented my own RESP2 client that was not possible with other libraries.

<comment><USER18> out of curiosity, what is that reason?

<comment><USER17> I need to pipeline around 100000 commands every 30 seconds as a transaction. So if any of the 100000 commands fail due to database failure, then I need to crash the server and restart.

That is the easy part though, problem is these commands are coming from 12 different cores with possibly that cores will increase to 24 on future. One core might issue 5000 commands, other core might issue 20000 commands, there is no possibility to predict how many commands will come from a specific thread. It is extremely important that this is done with highest performance possible otherwise my system will have bunch of other issues with catching up on other non-db related client-side commands.

So I devised a special Redis pipeline structure where each of the cores can issue commands without any kind of mutex during the course of a tick (server is tick based), mutexes for the threads are locked only at the end of the tick to compile different pipeline commands coming from different threads into one giant pipeline command along with their asynchronous callbacks.

So practically I'm utilizing a giant redis pipeline with 12 threads on Redis client side where I'm locking only 12 mutexes at the end of the tick, this is extremely high performance as far as letting server process other non-db related client requests while all that data is getting written to server.

Truth to be told it is an over-engineered crap and I guess it might be possible to implement something similar with other redis client libraries but this is something I already build so I would like to keep it as it is.

<comment><USER19> I know you've probably had a look at it and decided it wasn't worth it, but could it be possible to generate a LUA script on the client side and EVAL it once it's completely generated ?

You'd need to periodically SCRIPT FLUSH to not let old scripts linger

<comment><USER17> I think it can be done through LUA, or even just by using "MULTI" command but I would still have to handle asynchronous replies on the client-side where it would get hairy regardless.

In any case I'm fairly certain there are multiple ways to solve such problems, normally I wouldn't even bother writing an in-house database client library but RESP is so amazing and simple that it doesn't take much time build a client library for Redis.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> Congratulations @antirez and the team! Can't wait to play with it.

</comment><comment><USER21> Having client cache a subset of data is very much needed for the most frequently accessed data.. but it seems the various clients will yet have to implement this? (it could have been the best feature in the list)

Previously I had to implement this myself -> [https://github.com/Munawwar/redicache](https://github.com/Munawwar/redicache)

</comment><comment><USER22> We use it also for queueing messages to be consumed by logstash. Not as pub/sub but regular list and has never failed.

<comment><USER23> Redis is a workhorse.

</comment></comment><comment><USER24> Great work. I've been quite critical of Redis for its lack of TLS before.

This is good to see. Well done!

</comment><comment><USER25> Why does redis recommend to not use huge tables? I'd like to experiment with using DPDK with it, but that requires huge tables

<comment><USER3> Because when Redis forks to persist, every write will copy a 2MB huge page, and that's not good. All the memory will end to be copy-on-write-ed: latency spikes, big memory usage, ...

</comment></comment><comment><USER26> What is ACL? Can anybody please explain

<comment><USER26> Looks like content is not available

<comment><USER3> Sorry, link fixed now.

</comment></comment></comment><comment> uhoh-itsmaciek >So what changed between RC1 and today, other than stability?

>...

That's quite the list of changes after a release candidate...

<comment><USER3> Yep I use a non confirming release cycle and even actively backport new features form development branches to RCs or patchlevel releases if they are safe and don't have interactions with other code. This is done to make things available faster. Other times new features are almost like fixes because the old alternative resulted in user pain.

</comment></comment><comment><USER26> Congrats antirez and redis labs!!

</comment><comment><USER27> Noob question - is redis streams completely able to replace the Kafka usecase?

<comment><USER28> Nope - similar concept, different stories.

</comment></comment><comment><USER29> It's actually a big release with a lot of changes!

</comment><comment><USER30> Contrarian view here.

I really liked Redis for a long time. Simple, fast data-structures in-memory. That's it. Along the way there have been some nice enhancements like Lua, which solves a lot of the atomicity issues. But somewhere after 4.0 I feel they have lost their way. First they saw all the attention Kafka/event-stuff was receiving, so they baked-in this monstrous, complicated, stateful streams feature. Now we have SSL (do people really expose Redis on the internet??), ACLs, cluster stuff, and most relevant to me a new wire protocol.

To my thinking, Redis fit very well in the "lightweight linux thing" category. It seems they aspire to be enterprise software, and this may be a good move for Redis-the-Business, but it's not good for users like me who just want simple in-memory data-structures and as little state as possible. Forcing a new protocol that adds very little value (in my opinion) also seems like a great way to alienate your users.

<comment><USER3> I understand the sentiment, but things are a bit different than they may look. About SSL, there is no way out of this. I opposed to this feature for a long time, but simply now because of changes in regulations, policies and so forth, a lot of use cases are migrating to SSL _internally_ even if Redis is not exposed. And frankly it is really a mess to handle SSL proxies now that _everybody_ look like needs encryption. So what I did was the best I could do, when checking for PRs to merge: 1) Opt in, not compiled by default, no SSL libs requirements. 2) Connection abstraction, there is no SSL mentioned inside the code. Everything is in a different file.

About the "Kafka" thing, actually streams were wanted by myself, very strongly, and not suggested by Redis Labs. Let's start thinking at Redis ad a data structure server and at streams without the consumer groups part (which is totally optional). It was incredible we had no way to model a "log" in a serious way. No time series easily, using hacks and with huge memory usage because sorted sets are not the solution for this problem. But then why consumer groups? Because for a long time people had this problem of wanting a "persistent Pub/Sub": you can't lose messages just because clients disconnect in most use cases. Btw this Kafka monster is a total of 2775 lines of code, including comments. 1731 lines of code without comments. In other systems this is the prelude in the copyright notice.

But ACLs, in order to manage to survive 10 years without ACLs we had to resort to all kind of tricks: renaming commands to unguessable strings. Still with the panic of some library calling FLUSHALL for error because the developer was testing it in her/his laptop. Really ACLs have nothing to do with enterprise, but some safety is needed. The ACL monster is 1297 lines of code, and is one of the most user friendly security system you'll find in a database.

Actually all those features have a great impact on the users, huge impact on day to day operations, and are designed in order to be as simple as possible. And Redis Labs actually has only to lose from all this, because those were all potential "premium" features, instead now they are in and every other Redis provider will have it automatically as a standard. So... reality is a bit different, and it's not a conspiracy to gain market shares or alike.

<comment><USER31> My company has no choice- we have to use ssl internally for regulatory purposes. Right now we're using an stunnel solution for having out clients connect to redis- I am super excited that I'll be able to remove this workaround in the future!

<comment><USER32> There is a software named Hitch [https://github.com/varnish/hitch](https://github.com/varnish/hitch) that is super useful for enabling SSL to different services, like Redis.

<comment><USER24> Putting the server behind TLS is a minor part of the process.

If you want any kind of HA, you'll have multiple instances of Redis, with changes replicated from the writable node to the others.

That traffic needs to be encrypted too - and redis (pre 6.0) knows nothing about TLS.

So now you need a tunnel to each other Redis node.

Oh but you also want Sentinel to make sure a failure means a new primary node is elected... and sentinel doesn't speak TLS _either_ , and they need to both speak to each other, and the redis nodes... so that's another set of TLS tunnels you need to setup.

I setup redis on 3 nodes for a customer, if you tried to draw the stunnel setup on paper, it'd look like you're illustrating a plate of spaghetti.

</comment></comment></comment></comment></comment><comment><USER33> > 6\. RDB files are now faster to load. You can expect a 20/30% improvement, > depending on the file actual composition (larger or smaller values). INFO is > also faster now when there are many clients connected, this was a long time > problem that now is finally gone.

Talk about humble bragging.</comment>


No, you can't take open source code back - <AUTHOR> https://www.zdnet.com/article/no-you-cant-take-open-source-code-back/ <comment><USER2> There is in general two main methods for revoking a license:

1), US copyright law (17 U.S. Code § 203), which allow the author to terminate a granted license after about 35-40 years. not extremely relevant in software and the people on the linux kernel mailing list will need to wait an other 7 or so more years before it can become relevant in the kernel.

2) License and legal interpretation. The author can change their interpretation of the license and how it interacts with copyright law. This is much more relevant within the context of the linux kernel since there are proprietary kernel modules that the Linux Foundation members own. Nothing prevents an author to de-facto revoke a implicit/passive/unwritten permission for such combinations.

Beside those two there really isn't any realistic method of revoking a license once legally released under an open license.

<comment><USER3> I have seen some of my favorite free software disappeared by its creator when they decide they want to sell it.

Synergy comes to mind, but at least they are making a minimal effort to honor the GPL. Also AxCrypt. I don't think that creators are obligated to continue distribution, but it still bothers me when that happens, especially if they benefited from the fruits of the community.

</comment></comment><comment><USER4> Some developers seem to engage in _very_ wishful thinking about licensing. I remember seeing, ~15-20 years ago, "licenses" asserting not merely the right to globally revoke the license, but to change the terms _retroactively_ , which is completely absurd.

<comment><USER5> "Absurdity" is not a legal term, to my knowledge. Don't assume that because a contract is absurd, exploitative or even satirical that it won't hold up in court.

<comment><USER4> I use the term "absurd" not to make a legal argument, but to suggest that such an agreement is fundamentally devoid of any sensible meaning in the context of forming a contract. I'm no lawyer, but I suspect that the legal argument would boil down to the offer of a license being illusory [1].

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

</comment></comment></comment><comment><USER6> Wait, I recognise that name. "MikeeUSA".

> I wholeheartedly /support/ sexism, as-long as it is not against men.

Isn't he a known provocateur? Are we being provoked?

<comment><USER5> Finishing that quote for you:

> ...Since men are now being assaulted as thanks for their ceaseless decades- > long work on opensource by people who did not put in the time, men should > /support sexism/ by revoking license to their gratis licensed copyrighted > code from any project that adds a "Code of Conduct".

Basically, this guy is spinning the oppression narrative, just from the opposite angle.

We probably shouldn't be focusing so much on _who_ is fighting this matter and for which ideological reasons, because we're talking about a legal framework. Those who challenge that framework may well be trolls, but the fact that they _are_ troll is orthogonal to the legal outcome. That is, you may well consider Oracle to be trolls, but they're still winning (parts of) their case against Google.

</comment></comment><comment><AUTHOR> If this is a dupe or near-dupe, I'm happy to have a link to the thread where the discussion already happened, I'm just after reading the HN comments.

<comment><USER7> Please click on the 'past' thingie to find that link

<comment><AUTHOR> So it looks like this was posted but had no comments at the time, but thank you for introducing me to that feature which I hadn't noticed before.

</comment></comment></comment><comment><USER8> >No, the real issue is trolls arguing that codes of conduct are wrong [...] Codes of conducts are here to stay.

Calling people who don't want codes of conduct "trolls", i.e. pushing your agenda in the middle of a news article, is the reason journalism is the laughing stock of the world.

(Having said that, I agree that you can't just take back source code, no matter the reason)

<comment><USER3> The problem with codes of conduct is that many of them contain pro-harassment carve-outs, for vaguely defined groups like "marginalized peoples". They specifically enshrine harassment against by some groups onto other groups. (I will provide citations in the next few hours at lunch if anyone wants)

The Contributor Covenant also encourages and protects policing other contributor's activity outside of the community, not relating to the project or anyone connected with the project. This has the effect of encouraging people to dig through your Twitter history trying to find something "problematic" that you said 10 years ago.

If you can't be part of a project without harassing others because they are white and stalking them outside of the community, maybe you should rethink your involvement. I certainly would not want to work with you.

<comment><USER9> > The problem with codes of conduct is that many of them contain pro- > harassment carve-outs, for vaguely defined groups like "marginalized > peoples". They specifically enshrine harassment against by some groups onto > other groups. (I will provide citations in the next few hours at lunch if > anyone wants)

This is simply not true. Harassment is not the same as calling out harassment. Saying "hey, I have a right to exist and be included, stop your exclusionary actions" is fundamentally different from actions to exclude someone in the first place. It is the difference between "we welcome your contributions if you stop attacking others" and "you're not welcome here, leave."

If you believe that anyone seeks to harass you on the basis of being white, I suggest you might benefit from a deep examination of the experiences of actual marginalized groups. There's a good chance you're just not aware of the reality others have to deal with. And there's no way to know without a lot of self-directed study. No one can do it for you. You have to have an open mind, be willing to explore uncomfortable topics, and be willing to come to the conclusion that you've behaved poorly in the past out of ignorance. You know, take the rational approach to one's own ignorance.

<comment><USER3> > This is simply not true. Harassment is not the same as calling out > harassment. Saying "hey, I have a right to exist and be included, stop your > exclusionary actions" is fundamentally different from actions to exclude > someone in the first place. It is the difference between "we welcome your > contributions if you stop attacking others" and "you're not welcome here, > leave."

I'm afraid it is true. "Calling out harassment" as you call it is incredibly vague, and harassment and trolling could easily be framed in those terms. But, even so, they don't even make that distinction. They simply say that you can essentially do no wrong if you make the unverified claim of being a "marginalized person".

Look at these terms:

      * 'Reverse' -isms, including 'reverse racism,' 'reverse sexism,' and 'cisphobia'
      * Reasonable communication of boundaries, such as "leave me alone," "go away," or "I'm not discussing this with you"
      * Refusal to explain or debate social justice concepts
      * Communicating in a 'tone' you don't find congenial
      * Criticizing racist, sexist, cissexist, or otherwise oppressive behavior or assumptions

[https://github.com/dear-github/dear- github/issues/107#issuec...](https://github.com/dear-github/dear- github/issues/107#issuecomment-182791714)

If you are labeled as "oppressive", your trolls get immunity. And who defines what "oppressive" means? Simply expressing gentle disagreement or criticism of a "marginalized persons" pull request can be considered oppressive. Even not sufficiently affirming or validating someone can get you labeled this way.

And trolls DO use this. Trolls absolutely make a game of turning communities against each other. I've seen it happen.

> If you believe that anyone seeks to harass you on the basis of being white.

Gonna have to stop you right there. You don't know anything about my ethnicity, and it does not matter. You need to be able to make a point without falling back on that.

> No one can do it for you. You have to have an open mind, be willing to > explore uncomfortable topics, and be willing to come to the conclusion that > you've behaved poorly in the past out of ignorance. You know, take the > rational approach to one's own ignorance.

These condescending platitudes are not helpful, and say more about you than anyone else.

<comment><USER9> OK, I read your link. I don't see anything in it matching your claims. What I see is a list of dogwhistles being called out as dogwhistles. If you have a complaint based on actual behaviors, they'll still investigate it. What they won't do is waste time investigating the formulaic nonsense spewed by people seeking to attack those who are calling out bad behavior. But pay close attention. They are talking about the _form_ of a complaint. If you have a complaint that takes the form of "this behavior is abusive," it will still be considered.

For what it's worth, I have no doubt that trolls have tried to hide behind claims of being oppressed before. But I have never seen a systemic case of it creating immunity from criticism. I have seen a couple individuals who think they get away with it, but only on venues that don't make systemic efforts to enforce good behavior, like Twitter.

Do you have a specific example of a troll being shielded by github's policies?

> > If you believe that anyone seeks to harass you on the basis of being > white.

> Gonna have to stop you right there. You don't know anything about my > ethnicity, and it does not matter. You need to be able to make a point > without falling back on that.

Gonna have to ask that you read what I wrote. Like, the very first word. "If". I was adding a special note in case your situation matches the hypothetical. If your situation does not match, you have not caught me. I made no assumptions. I added context for a common case among all likely readers on this site.

For further context, I'm a middle-aged white man. I used to think about these issues in a way that would make me say things very similar to what you have been saying.

In my case, that's because I was sheltered and unaware how many advantages I had. I was only aware of a few glaring disadvantages. As I grew up, I noticed there were some groups of people I offended systematically, even when I didn't mean to. By my early 30s, I had finally seen this enough to acknowledge that the problem was me. I made an effort to learn as much as I could about why people disagree with me.

I kept an open mind, I accepted that my ignorance was damaging to people I didn't understand, and I broadened my understanding in order to stop it. You know, the rational approach to one's own ignorance.

Oh, wait, those are condescending platitudes. Except they're also a non- condescending description of exactly what I did.

Heres the thing - your viewpoint is nothing new to me. I used to agree with it. But then I added more information, and I found I couldn't agree with it anymore. I deeply regret how long it took me to finally notice these blatant things about how the world works.

And I've got a structural postscript - I'm not replying to you to try to change your mind. I'm asking you, and everyone else reading who agrees with you a bit, to be willing to question your assumptions. You don't need to change your mind. But at least be willing to accept that some of those who disagree with you do because they started where you are and then learned more.

<comment><USER3> You seem sincere, and I didn't mean to be rude. I'm just wrapping up for the day and have to leave soon, so I can't give a very complete reply.

> For what it's worth, I have no doubt that trolls have tried to hide behind > claims of being oppressed before. But I have never seen a systemic case of > it creating immunity from criticism. I have seen a couple individuals who > think they get away with it, but only on venues that don't make systemic > efforts to enforce good behavior, like Twitter.

If I linked directly to a lot of this stuff, it's probably blacklisted by HN. But yes, entire social justice oriented communities have been brought to their knees by trolls using social justice rhetoric. Check out Atheism+. Trolls pretending to be offended oppressed minorities have absolutely turned communities against each other.

I still remember this one thread where someone demanded that someone else with a "male-coded" avatar respond to their comments first, because they were a woman and deserved to not be answered last or something. And it was taken seriously. I don't KNOW if that person was a troll, but does it matter? When grievances get sufficiently ludicrous, all trolls have to do is copy non-troll users.

Have a look at some of these Github threads, and you will see unreasonable demands on people's communication. It's especially egregious and unfair to non-native English speakers.

Also, I don't know why you're holding Twitter up as a good example of anything.</comment></comment></comment></comment></comment></comment>


Show HN: ListenLater.fm – A read-it-later service for your ears - <AUTHOR> https://www.listenlater.fm/ <comment><AUTHOR> ListenLater.fm works like this:

1\. Send articles, stories, and essays to ListenLater.fm.

2\. We'll turn them into a spoken audio podcast just for you.

3\. Listen in your podcast player whenever you want.

You can send articles via browser extensions, email, and bookmarklet.

I've been using this for a few months, and I love it. Over the past few years, I've found myself with less time to read, and I've found myself quickly skimming more HackerNews headlines thinking "I should read that," but never actually reading them.

I've tried every read-it-later service out there, but they always end up being another dumping ground for articles I'll never get to. With ListenLater.fm, I'm able to put articles I don't have time to read directly into my podcast app. I already make time for podcasts, and I look forward to finding new things to listen to in Overcast (my podcast player of choice.)

I hope you enjoy it as much as I do!</comment>


Ask HN: Review This Week In Domains - <AUTHOR>

I recently started a weekly newsletter that sends out the best curated content about domains. What do you guys think about it? All feedback is Welcome.<p>http://www.thisweekindomains.com/ <comment><AUTHOR> Here is a clickable link, <http://www.thisweekindomains.com/></comment>


Forbes: 33 Great Apps And Tools For Marketing Professionals - <AUTHOR> http://www.forbes.com/sites/allbusiness/2013/10/09/33-great-apps-and-tools-for-marketing-professionals/

<comment><AUTHOR> Some useful apps in this article. For example had never heard about [http://www.similarweb.com/](http://www.similarweb.com/) before, useful for getting full analytics insights of any website.</comment>