Ask HN: In light of Rails security is now a good time to learn Django? - <AUTHOR>

I'm a little concerned after reading Patrick McKenzie's article. It seems like it isn't that simple to flick a switch and turn off the most vulnerable parts of rails (i.e. stuff related to YAML).<p>Maybe Django/Python has similar issues but it is not as popular as Rails. Should I be concerned and perhaps consider moving to another framework? <comment><USER2> Django also has security flaws that will be discovered with time. All frameworks do. Instead of getting scared by it, you should be pro-active in learning Rails security in order to build more secure Rails apps (and improve the framework itself). I still trust Rails.

</comment><comment><USER3> Every framework has security holes. I have seen and used a lot of frameworks and Django is the best framework for me. Second nice framework is Apache Wicket, but it's stateful.

</comment><comment><USER4> The replies are true, but to your question, yes. Right now would be a good time provided you were on square footing with both.

<comment><AUTHOR> I've never used python, so it would be starting from scratch. I love a lot of things about rails but deployment is not one of them. Is it easier to deploy Django?

<comment><USER4> If you want a good start to Django follow this guy's setup. The virtual env made managing my libraries a lot easier.

[http://www.jeffknupp.com/blog/2012/02/09/starting-a- django-p...](http://www.jeffknupp.com/blog/2012/02/09/starting-a-django- project-the-right-way/)

Rails the framework I think is better than Django. I just found conceptually it had more of what I wanted already in there. However coming from a Java/Perl background, Python was easier for me to grasp and read over Ruby. And timing wise, I wouldn't deploy or upgrade a Rails app until I felt comfortable with the security issues being addressed. Hell, I wouldn't want to surf the internet with an app running on my computer today.

</comment></comment></comment><comment><USER5> Yes

</comment><comment><USER6> Or you could update your Rails version so the problem is gone?

if you want to learn Django, do it, but the Rails World is certainly not in ruins or shattered because of this, "move frameworks" because of this doesn't make a much sense... you could as well have said "in light of Django Unchained popularity is now a good time to learn Django?"

<comment><AUTHOR> There is a very logical reason why I asked the question and mentioned Django, not all of which was spelled out in my post;

1\. I want to use a widely supported framework, and Django seems to be the most likely candidate. There are a lot of things I like about Rails, but perhaps the best thing about it is there are so many gems/plugins that make extending an application very easy.

2\. I have already updated my app so it is running the latest (and patched) version of Rails. The problem is in the article by Patrick Mackenzie (see here - [http://www.kalzumeus.com/2013/01/31/what-the-rails- security-...](http://www.kalzumeus.com/2013/01/31/what-the-rails-security- issue-means-for-your-startup/)) it seemed to indicate there are a lot more gotchas in Rails that will emerge as time goes by which is very concerning.

The couple of things I don't like about Rails is deployment and too much magic. In light of the security issue if there are that many potential issues with YAML then I wanted to know if Django was measurably more secure as well as easier to deploy, and if it had less magic. Perhaps I should have spelled those things out.

One more thing - I found your comment about Django Unchained comment rather snarky and a little insulting. It's as if the the security problems in Rails (2 of them found in the past month and more to come apparently) gives me a chance to change my framework as if it were like a fasion trend. There are a lot of moving parts in rails and I don't understand all of it, I've never read the source code. I've already invested quite a bit in learning Rails but now I am at a cross roads, do I go full monty and learn all the ins and outs of Ruby, or do I consider looking elsewhere.

Your post definitely has a condescending tone and I did not appreciate it. Please think about why you are posting before you add to a thread.

<comment> clark-kent The solution to understanding the Rails magic is to learn the ins and outs of Ruby. You will find out that it's just Ruby programming and it's not magic at all.</comment></comment></comment>


Ask HN: Has anyone successfully upgraded their phone? - <AUTHOR> I wonder if anyone here has managed a successful hardware upgrade of their phone?
The things that come to my mind are:
* camera (provided there's a better model with the same electrical interface)
* CPU (provided there's a higher performance one with the same pinout)
* RAM (provided it's not a PoP SoC or not otherwise integrated to the CPU)
* Flash ROM (seems straightforward, but haven't heard of that, too)
or anything else, really.
Failing that, any steps you tried to that end, but failed?
I googled around, but failed to find any quality discourse on this topic at all. <comment><AUTHOR> Someone managed to upgrade the RAM of the Nexus 5X from 2GB to 4GB; for $60 via some repairman in Shenzhen. [https://hackaday.com/2017/04/18/upgrading- ram-on-a-nexus-5x/](https://hackaday.com/2017/04/18/upgrading-ram-on-a- nexus-5x/)</comment>


Average child born today 'to spend quarter of life watching a screen' - <AUTHOR> http://www.digitalspy.com/tech/news/a459675/average-child-born-today-to-spend-quarter-of-life-watching-a-screen.html

<comment><USER2> When I was a kid, I used to read paper books in bed, at the dinner table, relaxing on the couch, sitting on the toilet, riding the bus, in my room when I was supposed to be doing my homework etc. Apparently that wasn't a problem but now if I use a digital device in much the same way, it's an ominous sign of the collapse of society and the coming apocalypse. Damn those corrosive pixels!</comment>


Recover MySQL root password - <AUTHOR> http://newexception.com/recover-mysql-root-password

<comment><USER2> I hate it when I google how to recover some password only to find hints on how to reset it.

Yes I know that not all passwords can be recovered because of hashing etc, but please don't talk about recovering when all this really does is reset the password.

<comment><AUTHOR> yep, that's true. But this way, at least you can find the hash and then if lucky, find out the real password.

</comment></comment><comment><USER3> So ... this is just a paraphrase of the MySQL documentation on resetting the root password? Why is it here?

</comment><comment><USER4> Changing is not recovering.</comment>


Italy: 101-year-old influenza survivor beats Covid-19 - <AUTHOR> https://www.aa.com.tr/en/europe/italy-101-year-old-influenza-survivor-beats-covid-19/1783890# <comment><USER2> Article doesn't mention if he was actually infected by the spanish flu or if he just survived the times. Anywho, fun happy news, worth the 5 seconds. Maybe not hn material.

Edit: Free from memory of a spanish flu documentary I watched the other day: "As I entered the train, the conductor fell dead on floor. As the journey went on, I saw two more passengers die. Then the train stopped. The loco pilot had died, and I walked the rest of the way home."

Spanish flu was some heavy shit. With young healthy people dying the first day of symptoms.

</comment><comment><USER3> I think some people are just blessed with great genes and great health/immune system throughout their lives. There are stories of 100+ yos who smoke, who eat typical comfort food everyday, who drink in moderation but consistently etc etc, whose lifestyles are what we basically understand as negative for your health but they are unaffected.

<comment><USER4> Survivorship bias.

<comment><USER5> If we are measuring survival, surviving is not a bias, it's a data point

Without taking into account genes can you explain why Japan has 54 centenaries every 100k people, France 34, Italy 33 and US only 22?

<comment><USER6> Supercentenarians and the oldest-old are concentrated into regions with no birth certificates and short lifespans

[https://www.biorxiv.org/content/10.1101/704080v1](https://www.biorxiv.org/content/10.1101/704080v1)

HN discussion: [https://news.ycombinator.com/item?id=20625547](https://news.ycombinator.com/item?id=20625547)

<comment><USER5> Sardinia contains only 1/60 of Italian population.

The post you linked does not look very reliable

Moreover I'm not talking about super centenaries, but basic life expectancy

People who live more in general have probably better genes, we don't care how many die if we are counting those that survive longer than average

In US life expectancy is very low for being a developed country

And we can't really say that crime rate or frauds are higher in Okinawa than in Los Angeles

Nobody would believe that

Btw, what about France?

</comment></comment></comment></comment></comment><comment><USER7> _Surely_ by now we should have enough data to make some serious progress on why this virus has such wildly different effects on different people.

<comment><USER8> We don't even know why seasonal flu occasionally kills healthy people.

<comment><USER9> We do have some increased understanding of that at this point. It's their own immune system reaction that often kills those people. It's happening with Covid as well in younger people that are otherwise healthy.

And we know that 90% of all Covid cases are occuring in areas in a temp zone of 37-64 degrees. Covid hates higher temperatures, as with influenza. The media refuses to report the facts: not all locations are equally susceptible. It's why NY and NJ have 50% of all US cases now. It's why the Phoenix metro of five million people, or the states of Nevada or New Mexico or Texas are not seeing the pandemic. It's why so many of Florida's cases are imported. It's why when you cross below roughly the Pennsylvania line, cases per capita plunge. It's why DC and Baltimore aren't drowning in cases, while NYC is (check out the lack of cases and hospitalizations in Delaware and Virginia). It's why the bay area, despite its near 8m population, has so few cases (which the media breathlessly touts as suddenly about to explode into the trillions - it's not going to happen). It's why Mexico, the rest of Latin America, and sub saharan Africa (as well as hot climates in Asia, including within China), are not seeing the pandemic in the numbers that were expected. It's why NYC, Milan, and Wuhan got hit so hard. It's the climates.

</comment></comment></comment><comment> giovan-ni 101-year-old Italians are making the news so often lately:

[https://www.theguardian.com/uk-news/2020/feb/12/home- office-...](https://www.theguardian.com/uk-news/2020/feb/12/home-office-tells- man-101-his-parents-must-confirm-id)

</comment><comment><USER10> Forget young people, Mr. Thiel should get some of his blood.

</comment><comment><USER11> Perhaps because she had the Spanish flu? That was a theory

</comment><comment><USER12> surviving is one thing. to what degree was the permanent lung damage? [https://www.nationalgeographic.com/science/2020/02/here- is-w...](https://www.nationalgeographic.com/science/2020/02/here-is-what- coronavirus-does-to-the-body/)

<comment><USER12> i think the downvoters don't realize many are not recovering fully because of the collateral damage the immune system does to the lungs to beat covid19.</comment></comment>


Getting developer interviewing right - <AUTHOR> http://blog.simeonov.com/2011/03/30/getting-developer-interviewing-right/

<comment><AUTHOR> Other interviewing techniques that I should probably add:

\- group interviews

\- ask someone to do a presentation

\- role-play, especially around customer interaction/trade-offs

These are fairly heavyweight and not used frequently.</comment>


Where Is My Privacy? - <AUTHOR> https://www.cardlytics.com/marketers/direct/ <comment><AUTHOR> he claims that he can access our purchase record from bank, I thought that should be secret to me?

No one want to let someone you don't know see you secretly buy a bra for your mistress, right?</comment>


Ask HN: Ideas for Building Critical Mass for Taxi Sharing App - <AUTHOR>

Hi HN - I'm working on a side project (also writing a paper on it for class) to help users share taxi rides to save money/time. It lets users enter their trip information ahead of time and matches users with others who have similar trips (they can also chat and see each other on the map to help find each other). It is a mobile app (iOS now, more later) with app engine on the backend.
Of course, the utility of such an app is highly dependent on the number of users using it (a common problem in web businesses).
I have a shortlist of ideas to help build this critical mass but would love some feedback/ideas from HN users.
1) Look for high travel density areas (high number of taxi departures) and market specifically there. Some examples would be getting airports, hotels, campuses, etc to help market the app (value for them is it reduces congestion is a useful service for their customers).
2) Partner with environmental groups or student clubs to get small armies to market directly to users (goto airport taxi stand lines helping to match users and asking them to get the app)
3) Since this app is about saving users money, one way to encourage usage is to simulate this benefit until there is a critical mass of users. The idea here would be that if you tell us about your trip at least 24 hours in advance and we can't find you a match then we will credit your account with $X. Once you reach $Y, we send you a coupon for a free taxi ride. THis obviously has the potential to be very expensive and a target for abuse so both would have to be mitigated.
4) Viral distribution - push a users trips to their social network to match them with friends with similar trips. While an obvious feature, it doesn't seem likely to work as this probably already happens informally and you need a large number of users to actually find a match.
5) One potential way to monetize this app is to charge a lead gen fee to cab/limo companies. However, we could pass value onto end consumers as a discount on their ride. The idea would be that if you use the app to find a match and book a cab with us, you get a discounted fair (because we sell the lead to a cab company in exchange for you getting a lower fare).
I realize these aren't necessarily scalable marketing ideas, but they do have the benefit of being localized to specific geo areas. This is important as you'd rather have your users in concentrated clusters to improve matching.
I'm not as concerned with monetizing the app (I built it because I want to use it), but ideas here are welcome.
Also, I have a prototype built. If there is interest I can record a screencast demo if anyone wants to see it... <comment><USER2> This is what I would call a "micro-groupon". Essentially you have a shareable service that becomes cheaper the more people use it. The time scales are also different since it's more of a "flash" sale than anything.

The one way that people break out of the chicken and egg situation is by using the "Bowling pin strategy" (more info here <http://edgehopper.com/>). So you start with one niche and then scale out intelligently from there. Again, this is what Groupon did by starting in SF and then growing from there.

Based on this my advice would be to start in SF - as they seem to be the early adopters of the world. From my experience there finding a cab is a major pain in the ass. However, the times that you'd use this service are when you're taking a pretty expensive cab ride, usually from the airport. With SF how many people take cabs from the airport vs the BART? If it's not a lot, then you have some difficulty.

Is there a city in the world that has a lot of people taking cabs from the airport?

Actually, now that I think about it. Any "route" where a sufficiently large number of people would regularly be paying a substantial cab fare would almost certainly have an alternative means of transportation. Whether this be public transportation, shuttle services, etc. More often than not I think you'd find that society at large has already implemented your taxi sharing.

In which case you need to identify those very specific places where the market is lagging behind and therefore your app has real utility there. At which point you'd have to aggressively market your app in those markets to gain real penetration and hope for critical mass.

To be honest, the use case is so limited I have a difficult time seeing how you'd get that critical mass.

Though your idea has given me another idea. An app that lets taxi drivers schedule with individuals directly. How many times do you take a taxi where the driver will give you their card and say "Give me a call if you want a ride?" Well, if you have an app that connects drivers with riders in an easy fashion, then you can get into a situation where everybody's incentives are aligned. You can get the driver to give the rider a discount, the driver does this for guaranteed income, the rider does it for the discount, and you do it because you get a small cut. You can then expand into a "group ride" policy because your already having a person plan out their route.

<comment><AUTHOR> _The one way that people break out of the chicken and egg situation is by using the "Bowling pin strategy" (more info here<http://edgehopper.com/>). So you start with one niche and then scale out intelligently from there. Again, this is what Groupon did by starting in SF and then growing from there._

Sorry I was unclear - all 5 of the ideas were meant to be implemented in specific locales then expanding.

 _Is there a city in the world that has a lot of people taking cabs from the airport?_

Every airport that I frequent regularly has this problem: Boston, NYC (x3), SF and Toronto. I think this would not be useful in some of the developing countries. I'd be willing to bet this would be useful for any airport where 1) there is a significant metropolitan core in a small constrained geographic area and 2) Where labor costs are high enough that the majority of the cost of the cab comes from driver wages/compensation.

 _Actually, now that I think about it. Any "route" where a sufficiently large number of people would regularly be paying a substantial cab fare would almost certainly have an alternative means of transportation. Whether this be public transportation, shuttle services, etc. More often than not I think you'd find that society at large has already implemented your taxi sharing._

Agreed but every mode of transport has a cost/convenience tradeoff. Public transit is generally cheap but takes some time. Single occupancy cabs are at the other end of the spectrum. And if you plotted every mode I don't believe the curve would be linear. Take for example shuttle services that are common in the US, specifically one from Boston airport to MIT. They typically serve ~8 passengers and cost roughly $20/person in my experience. This is fairly expensive relative to a cab that shares a ~$35 cab ride even among just two people. At $17.5/person it is much much faster to get to your destination in this method. There seems to be a sweet spot served by shared taxis specifically.

The above is just for airports - another environment where this may work is in dense urban environments for short trips. I'm picturing going crosstown in Manhattan. For it to be useful, there would need to be sufficiently large number of users such that matching friction would be low enough that it didn't impact already low travel distances.

 _Though your idea has given me another idea. An app that lets taxi drivers schedule with individuals directly. How many times do you take a taxi where the driver will give you their card and say "Give me a call if you want a ride?" Well, if you have an app that connects drivers with riders in an easy fashion, then you can get into a situation where everybody's incentives are aligned. You can get the driver to give the rider a discount, the driver does this for guaranteed income, the rider does it for the discount, and you do it because you get a small cut. You can then expand into a "group ride" policy because your already having a person plan out their route._

UberCab? Rather Uber</comment></comment>


The Latest in Web Design? Retro Websites Inspired by the '90s - <AUTHOR> https://www.nytimes.com/2017/07/17/fashion/90s-web-design.html <comment><USER2> A year behind the times.

[https://trends.google.com/trends/explore?date=today%205-y&q=...](https://trends.google.com/trends/explore?date=today%205-y&q=brutalist%20web%20design)

</comment><comment> King-Aaron "The latest".... lol</comment>


Papilio: open source FPGA Arduino for education, hobbyists, engineers - <AUTHOR> http://papilio.cc/

<comment><USER2> The free book "Introducing the Spartan 3E FPGA and VHDL" by Mike Field is a great introduction to FPGA programming, and very hands-on and readable, reminds an O'Reilly of hardware. Its scope is not limited to Spartan 3Es, much is appliable to other Xilinx families/devices. The examples are thought for a choice of two boards, one being the Papilio with a daughter boards ("wing"). The only glitch is that while the book teaches ISE, Xilinx seems to think of Vivado as the toolchain with future.</comment>


JSZip - Create .zip files with Javascript - <AUTHOR> http://jszip.stuartk.co.uk/

<comment><USER2> Having worked with a few Zip libraries, I can't bring myself to use any library that has an O(n) memory requirement as it relates to archive size. I can't see how this would avoid that because of the way the file is delivered to the client.

</comment><comment><USER3> Cute project.

For practical usage in dynamically creating ZIP files, I've found it far more efficient and easy to use the `mod_zip` extension to Nginx[1]. It works really well, is highly RAM efficient, and pushes the logic down to some of the most stable software out there (Nginx).

[1]: <http://wiki.nginx.org/NgxZip>

<comment><USER4> What version of nginx are you using with it? The last time I looked into that particular plugin it did not appear to work correctly.

</comment></comment><comment><USER5> I've been looking at something similiar for huge static HTML files of autogenerated documentation.

I don't see why I can't deflate the tables as javascript data and then use JS to inflate and display them.

Just playing around with it I was able to compress a 120MB HTML file to 3.5MB.

<comment><USER6> Would mod_deflate or equivalent (mod_gzip in older Apache versions, static and dynamic compression can be enabled easily in recent versions of IIS too) not do this for you?

If you are worried about the CPU cost of the compression and added request latency, you can pre-compress static content with most modern web servers (see [http://stackoverflow.com/questions/75482/how-can-i-pre- compr...](http://stackoverflow.com/questions/75482/how-can-i-pre-compress- files-with-mod-deflate-in-apache-2-x) for Apache info).

<comment><USER5> In this case, there are no servers.

There are only local HTML files that are checked in to revision control and shipped alongside releases.

HTML was chosen as the documentation file format because it's easy to find something to view it with.

</comment></comment></comment><comment><USER7> It's odd to me that everyone is talking about the user experience for downloading files created with this. The real awesome use case with a library like this (and what I'm currently using this for in a new project) is providing a user a multi-select to upload files, and zipping then up into a single compressed file before uploading to the server.

</comment><comment><USER8> Fantastic. I already have at least 3 use cases in mind!

I'm interested to look into ways of feature-detection for this that could cause the zip to be generated client-side for supporting browsers and server- side for older..

<comment><USER7> I'm currently using this in a site, I fan post my feature detection line for it when I get back to the office.

</comment></comment><comment><USER9> Pretty cool, but the method for "downloading" looks _painful_ (converting the generated ZIP to base64 in order to use it as an URL).

I wonder what the size limit is?

<comment><USER10> Chrome (last time I checked) will crash if the data URL is over 2MB. Luckily there are the Blob and BlobBuilder APIs now. Using Stuart's code as a starting point I've successfully built >700MB zip files on flixtractr.com. The main downside is that when you request the blob URL not all browser/platform combinations give it an extension that matches the mime-type, so you have to tell your users they may need to rename the file.

The platform is getting there. Slowly.

<comment><USER10> <http://crbug.com/103234> tracks the crash I mentioned.

</comment></comment></comment><comment><USER11> Very nice, I guess this would be pretty useful for online template creation sites, so they can download their modified html/css files as a zip.

</comment><comment><USER12> While it is indeed cool that this is done in the browser, it'd be nice to see some emphasis on using it within Node.js. Presumably, it'd probably work without too many modifications.

<comment><USER13> With Node.js, you should use the built-in zlib support.

<comment><USER12> I thought the zlib support could only handle gzip files and not zip files? This would indicate that it only supports gzip files: <http://zlib.net/zlib_faq.html#faq11>

<comment><USER13> Sorry, I was vague. You should use the zlib library when it doesn't matter what the container format happens to be. If you need zip, you can still do it by simply using an outside process to do it. That will be much faster, easier, and more efficient than using something like this.

</comment></comment></comment></comment><comment><USER13> This is unbelievably useful if you need to have the client download multiple files with one click just using the client-side. This wasn't possible before. Great job!

<comment><USER14> Aren't the multiple files still on the server side? Why can't the server side just zip them?

<comment><USER13> > Aren't the multiple files still on the server side?

No, you can generate a file using JavaScript/Canvas/SVG/etc. and then allow the user to save it to their system.

<comment><USER6> Aye. I once created a "theme generator" for SonyEricsson phones with javascript client-side and php server-side.

Their themes were basically a .tar.gz of files: one listing all the colours and other options and the rest being images for the various interface elements.

With the canvas and something like this, almost the entire thing could be done client-site now.</comment></comment></comment></comment>


Pointermove event latency in web browsers - <AUTHOR> https://rsms.me/pointer-latency/ <comment><USER2> I've done a lot of work testing this type of latency in web browsers: [https://google.github.io/latency- benchmark/](https://google.github.io/latency-benchmark/)

On Windows, DWM's display compositing adds one frame of latency to every window on screen. It's not possible to render a dragged object in any window that sticks to the mouse cursor without at least one frame of latency.

But when you drag whole windows around they _do_ stick to the mouse cursor with apparently zero frames of latency; how does DWM do it? Easy, they cheat by disabling the hardware mouse overlay during window dragging so that the mouse cursor gets that extra frame of latency too. You can prove this by enabling "Night light" in settings; watch the mouse cursor change colors as it transitions from hardware overlay to software rendering when you start dragging a window.

<comment><USER3> Could compositors be optimised to eliminate the extra frame of lag in the case where every window on-screen is being displayed "directly" by invisibly switching to a mode that maps each scanline and pixel column to a window's framebuffer - and non-client areas to the window-manager's UI buffer which is directly read by the monitor signal generator. While this would mean transparency effects wouldn't work, it could supported with some special- casing. Basically a framebuffer-less hardware compositor. I think rendering windows to 3D deformable meshes [makes for cool demos]([https://youtu.be/USedxVrU2Ko](https://youtu.be/USedxVrU2Ko)) but in practice we just don't use it for anything besides window open/close animations.

I had to use a monitor running at 30Hz for a while (4K over HDMI 1.4) and while that was bad enough, the compositor's lag meant all window contents had an extra (unnecessary IMO) delay of 33ms. Add on to that normal monitor input lag.

We'll probably all shift to 120Hz w/ variable-rate refreshing as a new baseline standard over the next 10 years as Apple seems to be heading in that direction - at 120Hz the lag of the compositor would be acceptable - but I'm worried lazy that graphics devs are going to use that as an excuse to add another frame of latency...

<comment><USER2> > Could compositors be optimised to eliminate the extra frame of lag in the > case where every window on-screen is being displayed "directly" by invisibly > switching to a mode that maps each scanline and pixel column to a window's > framebuffer

Yes. This concept is called hardware overlays and there are varying levels of support for it in different GPUs and compositors.

There are tradeoffs. Using multiple hardware overlays may cost extra power and/or memory bandwidth, the number of supported overlays may be very limited, alpha blending may not be supported, and the transforms that can be applied to overlays may be very limited. The extremely hardware specific nature of the restrictions and the lack of good APIs exposing overlays means they get much less use than they should.

<comment><USER4> Technically if your pixel operation is commutative and reversible (as could be with alpha blending), you could store a buffer of pixels at the current position, then undo the previous pixel by current window at that buffer and then re-apply the operation with the new pixel value, and then directly send this to the display?

Am I missing something apart from the fact that alpha blending is not actually commutative and/or reversible; and the fact that nobody implemented this yet?

</comment></comment></comment></comment><comment><USER5> >This happens in a buffer and is normally one display update behind in time.

This assumes compositors perform their work right after each display refresh. Compositors can decide to perform their work later, some amount of time before the next display refresh (e.g. a few milliseconds). This allows to reduce latency because the new buffers submitted by clients (such as web browsers) can be displayed with less than 1 refresh period worth of latency. For instance the browser can update its buffer at last display refresh + 8ms, then the compositor can composite at last display refresh + 13ms, and the new frame can be displayed at last display refresh + 16ms.

Here's for instance how Weston does it: [1]. Sway has a similar feature.

>However since pointing with a cursor is such a core experience in these OS'es, the "screen compositor" usually have special code to draw the cursor on screen as late as possible—as close in time to an actual display refresh as possible—to be able to use the most recent position data from the input device driver.

That's not entirely true. Nowadays all GPUs have a feature called "cursor plane". This allows the compositor to configure the cursor directly in the hardware and to avoid drawing it. So when the user just moves the mouse around the compositor doesn't need to redraw anything, all it needs to do is update the cursor position in the hardware registers.

Compositors don't have code to draw the cursor as late as possible. Instead, they program the cursor position when drawing a new frame. (On some hardware this allows the compositor to "fixup" the cursor position in case some input events happen after drawing and before the display refresh.)

But in the end, all of this doesn't really matter. What matters is that the app draws before the compositor draws, thus the compositor will have a more up-to-date cursor position.

[1]: [https://ppaalanen.blogspot.com/2015/02/weston-repaint- schedu...](https://ppaalanen.blogspot.com/2015/02/weston-repaint- scheduling.html)

</comment><comment><USER6> The neglect for latency in current popular systems such as Linux sickens me.

I suggest experimenting with cyclictest from rt-tests. On all hardware I've tried, I get 30ms+ peaks after running it on the background for not even very long. I can't comprehend how anybody could find this acceptable.

I do run linux-rt for this reason. Then again, while linux-rt provides the tools to make latency reasonable, the rest of the system hardly does use them.

As we move from the likes of Linux to better architected systems, potentially based on seL4, I do hope the responsiveness will return to sanity. Until then, I'll have to keep going back to my Amiga hardware as cope mechanism.

<comment><USER7> Why would a real-time OS help at all with latency? All RT means is that the latency can be reliably upper-bounded (but note that that upper bound might be very high/slow), it _doesn 't_ mean that the latency will be reduced. Real- time OSs aren't _faster_.

<comment><USER8> linux-rt is a patchset that changes the behavior of linux to increase the number of places where preemption can occur (among other things).

Doing this decreases certain types of latency in certain situations. As an example, it tries to have interrupts disabled less frequently and for shorter intervals, and uses mutexes instead of spinlocks.

As a result, using linux-rt can provide a lower latency experience compared plain linux.

<comment><USER7> Ah, that's fair enough, but it isn't 'real time', which is the thing I was assuming from the 'RT' in the name. Perhaps linux-ll would be a better name, for 'low latency'. RT just confuses what it is trying to do.

<comment><USER8> It is trying to make the linux kernel more real time capable. Having periods of time where preemption isn't enabled (due to having interrupts disabled, etc) results in more variation in when tasks are scheduled, including real time tasks.

The reality is that "real time" as a definition covers many "features" and design choices because many ducks need to be in a row for real time tasks to run properly. Decreasing variation in the scheduling of (real time) tasks is one of those items.

As a result, it's entirely reasonable to call "linux-rt" "linux-rt".

</comment></comment></comment></comment></comment><comment><USER9> If you try to "predict the present" based on the past (and when you use previous points to calculate velocity and acceleration, that's what you're doing) it will overshoot when there's a change in direction, and how much depends on how aggressively you try to extrapolate. For the one-dimensional case in signal processing, doing this with a quickly-changing signal like a square wave will result in ringing.

It can smooth things a bit but it's not that good a substitute for actually improving latency.

(There are probably consequences for coronavirus charts as well, since they're based on lagging data.)

<comment><USER2> Although I agree that there's no substitute for actually improving latency, I think it's possible to do significantly better at prediction. Mouse movements are not easily predictable but they are also not completely random; this is a good type of problem to apply machine learning to.

Ultimately you want the lowest possible latency _and_ prediction, because you can never get the latency to zero. Once the latency is small enough, prediction becomes a net win. For example, all VR devices do prediction for head and hand positions after lowering latency as much as possible elsewhere.

<comment><USER10> I totally agree, you want both. Negative latency!

[https://rauchg.com/2014/7-principles-of-rich-web- application...](https://rauchg.com/2014/7-principles-of-rich-web- applications#predict-behavior)

<comment><USER11> That demo looks like the sort of attempt to be helpful that really irritates me on web sites.

</comment></comment></comment></comment><comment><USER12> I'm seeing <2ms in Edge Chromium and ~10ms in Firefox on a 144 Hz display. I'm curious how that compares to what other people are seeing.

I've been doing some WebGL work recently and I've noticed that while it reaches ~144 fps using requestAnimationFrame() in Firefox, there's a lot of stuttering. It's very smooth at 144 fps in Edge Chromium, while Edge Legacy is below 80 fps. As far as I can tell it's not CPU bound, and it's definitely not GPU bound. It would be nice if I could get it running smoothly in Firefox but I don't know what to investigate.

<comment><USER13> > I'm curious how that compares to what other people are seeing.

~10ms on Firefox, Linux, 60hz display.

</comment></comment><comment><USER14> > If you move your pointer left and right (or up and down) in sweeping motions > and follow it with your eyes, you'll notice that the rectangle is trailing > behind the pointer by quite a long distance

that's definitely not what I am observing ([https://streamable.com/9u4cpx](https://streamable.com/9u4cpx)). Enabling the predictive tracking, however, is quite nauseating especially in circular motions. Please don't play with your users' cursors !

<comment><USER8> The article does mention that the predictive tracking feels worse:

> predictive tracking will feel much worse than direct (technically lagging) > tracking when there is no system cursors to match.

Additionally, we can see the lag between the red box and your cursor in the video of your screen that you've uploaded.

[https://i.imgur.com/ZEBcGch.png](https://i.imgur.com/ZEBcGch.png)

</comment></comment><comment><USER15> I didn't read the article, but I did try the checkboxes. What I saw surprised me and I will go read the article to see if it addresses my experience, but in case it isn't:

1\. The predictive checkbox improved tracking my cursor.

2\. Disabling `requestAnimationFrame` improved it more.

This is not what I'd have expected, so I'll include details about my environment:

\- macOS 10.15.4

\- Safari 13.1

\- 2019 16" MBP with maxed RAM and ~25GB swap

I have no idea whether the browser or the memory pressure made same-thread tracking more accurate, but something did.

</comment><comment><USER16> Also great bench for browsers and perf tester [https://www.vsynctester.com/](https://www.vsynctester.com/)

</comment><comment><USER17> I recently experimented with implementing certain pointer-controlled effects on a <canvas>, and was discouraged by the jerky feeling caused by latency.

But I noticed that if I rendered the effect with motion blur, it suddenly started to feel _much_ smoother, and the perception of jerkiness was mostly gone. I felt that it completely restored my sense of control of the motion.

It's surprising considering that motion blur actually adds one half frame of extra latency.

Since trying this, I'm bothered by how jerky fast mouse movement always feels in MacOS. 60 fps leaves these enormous, ugly gaps between the pointer at each frame, and makes it hard to perceive the motion correctly. I can't unsee these gaps now! I'm convinced that system-wide motion blur just for the pointer would be a simple way to make the whole OS feel much smoother and more responsive.

<comment><USER18> I have had a similar experience when first using a 144hz display. I was amazed how responsive the mouse was. How "in control" I felt.

Then, going back to a 60hz display, I couldn't NOT see the gaps left by the cursor's movement. I had never before seen this as a problem, but seeing something better ruined 60hz for me.

</comment></comment><comment><USER19> The dead-reckoning algorithm seems to do well when moving in a straight line but my impression is that it does worse if there are curves because it veers ourside the path that mouse actually traced. For example, when moving the mouse in a circle the predicted squaretrace appears to move in a circle with a larger radius.

What kind of algorithm could be used to improve the accuracy for curves?

<comment><USER20> For just ellipses (which includes circles), a 2nd derivative prediction will work perfectly. Obviously there are paths that are not predictable though

</comment></comment><comment><USER21> I got a bit excited thinking this may go into latency of dereferencing pointers in C.

<comment><USER22> Same! I wrote a blog post that _kind of_ talks about that.

[https://www.forrestthewoods.com/blog/memory-bandwidth- napkin...](https://www.forrestthewoods.com/blog/memory-bandwidth-napkin-math/)

<comment><USER23> Interesting results. Any ideas why the L1 got slower?

<comment><USER24> Ha; there's a little architecture grognard subthread on this unrelated topic.

The Pentium 4 L1 cache was a miracle for its time, and once the P4 was clocked to Peak Netburst levels the 2-cycle latency looks really good.

Tradeoffs on modern system are different - a Skylake cache _may_ have 4-5 cycle latency on access, but is 4 times bigger (32 rather than 8KiB), can execute twice as many loads per cycle, and is write-back rather than write- through (more complex to design, but more scalable with lots of cores).

You can still get your ass kicked by a ancient system if you pick just the right pointer-chasing microbenchmark. This had some real implications for regex implementation, given that a straightforward DFA implementation (and many string matching algorithms like Aho-Corasik) are really just pointer- chasing.

<comment><USER23> Thanks for the info.</comment></comment></comment></comment></comment>


Using Quora to get customers for your B2B startup - <AUTHOR> http://www.helpjuice.com/blog/2012/01/using-quora-to-get-customers-for-your-b2b-startup/

<comment><USER2> I wrote a comment there, but for the sake of discussion I'll copy it here:

I had similar experience with Quora. I answered on two or three questions on quora about POS Software for restaurants, and on one of them, in the comments wrote about POS Sommelier, our soon to be lunched POS Software. I also left link to www.possommelier.com (with launchrock.com signup page) The thing is, we didn't have complete product and was just starting with it, and from there in couple of days we get 50+ signups. It's amazing how niches like ours can get specific users (in our case restaurant owners) from Quora.

Who would thought that there are restaurant owners on Quora looking for the POS Software?

</comment><comment><USER3> Same experience here: 5% of total sign-ups to asaclock (<http://www.asaclock.com>), an elite anti-procrastination web community for startup single founders and people working on side projects, come from Quora with a 20% conversion rate.</comment>


Financial Incentives for Patients - <AUTHOR> https://www.dc.nihr.ac.uk/highlights/patient-incentives.htm <comment><AUTHOR> I'm submitting this because I like the clarity of the NIHR communication. And because these topics are occasionally mentioned on HN.</comment>


What explains the unintuitive numbering of chip pins? - <AUTHOR> https://www.spinellis.gr/blog/20200320/ <comment><USER2> I think this is wrong. Pins really pads that are numbered on the die. The die is square (or was back then). Pads are numbered in sequence around the pad ring. So the concept of columns doesn't exist in the context of the die. As to why number counterclockwise vs clockwise, possibly that's to do with existing convention from valves. However note that in the beginning dual inline packaging wasn't the norm. There were flip chip packages, die on board, circular TO-xx metal can packages etc. So whatever led to the counterclockwise numbering convention certainly predated DIL packages.

<comment><USER3> That's a really good point. So if you wanted a single numbering system for 4-sided and 2-sided chips, the current approach is quite a sensible compromise.

If you have the little key symbol in a corner, you can just "walk the chip" from there, regardless of sidedness

<comment><USER4> These days of SMT chips the trend is towards more QFN and QFP so columns make less sense as well.

<comment><USER5> I'd say the trend is towards BGA on the active components.

</comment></comment></comment></comment><comment><USER6> The only pin numbering I ever perceived as unintuitive is on PLCC packages where pin 1 is in the _middle_ of one of the 4 sides. Especially since there's still a marker dot in one of the _corners_ generally.

Luckily, PLCCs are rare these days.

Example: [https://www.zilog.com/manage_directlink.php?filepath=docs/z8...](https://www.zilog.com/manage_directlink.php?filepath=docs/z80/ps0180&extn=.pdf) (Note that the orientation on the PLCC package is indicated by one of the corners being different, yet that's not where pin 1 is.)

<comment><USER7> Yeah, I've seen those. Do you have any idea why they did that? I had twenty or thirty on a recent board and they took so much extra work to double check because they didn't follow convention. I probably read that pinout in disbelief for an hour before I called them to check.

I think that's why people number them the counterclockwise way, if they didn't they'd get furious engineers calling them and yelling (I didn't yell, I was just very confused) that they aren't following the standard. There are so many ways to make a mistake in a circuit board already, once someone decided on a numbering scheme momentum probably just kept it going to be honest. Why would you change it when there is no functional difference and it makes mistakes less likely?

<comment><USER6> > Do you have any idea why they did that?

No, not the slightest clue. If you find an answer, I'm interested too...

<comment><USER7> All I can find is the definition, which states that pin one is in the middle of the top at least in the 44 pin package.

[http://www.interfacebus.com/ic-package-plcc-dimension- outlin...](http://www.interfacebus.com/ic-package-plcc-dimension-outline- drawing.html)

No idea on the history though, hopefully someone can enlighten us, Google did not.

</comment></comment></comment></comment><comment><USER8> > Why are pins counter-intuitively numbered in a rotating fashion rather than > by columns as one would expect for a rectangular package?

I am not sure why this is counter intuitive, on a 8 pin package, it makes sense to keep pin 5 close to pin 4 to simplify the layout of the wires, and in general, it makes sense to keep consecutive pins close to one another. This applies to vacuum tubes as well.

<comment><USER9> Is there something particularly five-y about pin 5? Surely if you called it 8 nothing else would change. No one is suggesting redesigning the whole thing. Just move a few labels.

<comment><USER8> Yes, consecutive pins are often related in some way. Let say pin 3,4,5 and 6 belong to the same port, and must be connected to a connector on the other side of the PCB.

If pins were numbered by columns, you would have to connect two tracks to one end of the chip and two other tracks to the other end of the chip. Once you've done that, routing the remaining tracks is basically impossible on a single PCB layer.

<comment><USER9> > If pins were numbered by columns, you would have to connect two tracks to > one end of the chip and two other tracks to the other end of the chip.

You have missed my point entirely. All you have to do is re-label them. There is absolutely no re-wiring or re-routing implied by changing the pin numbers.

<comment><USER8> No I haven't, but I've failed to convince you, it seems.

It does make a difference because the chip designer doesn't know or doesn't care how the chip is going to be packaged and where the pins are going to be placed on the package.

With the standard numbering, two consecutive pins are _always_ placed next to eachother no matter the package, and the chip designer can use this information to optimize the placement of related pins.

This is not true with the alternative numbering "by column", where pin 4 and 5 are close on most packages, but far away on a DIP 8 package.

</comment></comment></comment></comment></comment><comment><USER10> Well, we now have packages where pins are on 4 sides (not just 2 sides). For example [1]. So here it certainly makes sense that numbering goes around the package instead of in columns/rows.

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

</comment><comment><USER11> Why would a convention be considered unintuitive? You learn it and it's just a design fact. I'm not sure I agree with the article - it seems like a case of human-pattern matching.

<comment><USER12> What's unintuitive is that it doesn't follow other conventions that could reasonably be applied.

<comment><USER6> Which conventions would that be?

<comment><USER12> Reasonable candidates, per the article:

\- [https://en.wikipedia.org/wiki/Left_to_right](https://en.wikipedia.org/wiki/Left_to_right)

\- [https://en.wikipedia.org/wiki/Clockwise](https://en.wikipedia.org/wiki/Clockwise)

<comment><USER6> By that logic:

\- [https://en.wikipedia.org/wiki/Counterclockwise](https://en.wikipedia.org/wiki/Counterclockwise)

Also, it's clockwise when viewed from what used to be the wiring side, i.e. bottom.

Also-also, mathematical/engineering sense of rotation for positive angles is counterclockwise. ("The mathematician works against the clock.")

Also-also-also, you've listed 2 conventions with no preference between them. If either would have been picked, we would be having the same discussion right now on why it wasn't the other one. The only thing that would give any advantage here is if there were established context or logic giving significant preference to any of them.

<comment><USER12> Yes, you understand correctly. In this case, assume the life and cultural context of the author.

</comment></comment></comment></comment></comment></comment><comment><USER13> Also, when creating wire wrap circuits ([https://en.wikipedia.org/wiki/Wire_wrap](https://en.wikipedia.org/wiki/Wire_wrap)) one works from the underside of the board, so the underside pin numbering image shown in the webpage is the pin numbering one follows while wire wrapping a circuit.

</comment><comment><USER14> It seems like the author just wanted to write about something, and he chose something he's not familiar with but what appears as quirky to him. I expected the article to talk about IC design and peripherals (the placement of which is what is actually something that might seem unintuitive at first to many, well perhaps more annoying than unintuitive).

<comment><USER15> _It seems like the author just wanted to write about something, and he chose something he 's not familiar with but what appears as quirky to him._

Welcome to Hacker News, you must be new here. =)</comment></comment>


Extracting OpenSSL private keys from core dumps - <AUTHOR> http://mcarpenter.org/blog/2013/10/22/extracting-openssl-private-keys-from-core-dumps

<comment><USER2> s/core dumps/heartbleed/

Interesting, i guess it can be modified to search for private key using heartbleed infected server(s).</comment>


Ask HN: Do you develop with the lights off? - <AUTHOR> I have a preference to develop with lights off and headphones on. I find it easier to concentrate.<p>A lot of people find this odd. Wondering if anyone else prefers this. <comment><USER2> I need my monitors to be at the same brightness as ambient light. Otherwise my eyes start to hurt and after some time, I get a headache. I couldn't even think of looking at a monitor in the dark.

</comment><comment><USER3> same here. I prefer darkness with the monitor being the only light source. So I can concentrate.

I always adjust the monitor to the brightest. I don't understand why people tune down the brightness of the monitor in darkness. I can't see anything that way.

</comment><comment><USER4> When there's daylight, that's ideal. Can't code in the pitch dark, though. Even at lowest brightness, the contrast of the monitor with the lack of ambient light means instant headache.

<comment><AUTHOR> Interesting, I never thought about that. For some reason, I don't mind the contrast.</comment></comment>


Linux "greener" than Windows - <AUTHOR> http://www.networkworld.com/research/2008/060908-green-windows-linux.html <comment><USER2> Interesting that there are differences in power consumption between Linux distributions. I guess with the myriad of possible configuration parameters, the various profiles can mean anything.

I measure power consumption of any system I set up, and dynamic CPU clocking (SpeedStep, Cool'n'Quiet) definitely help a lot. Yet another reason why I ended up ditching Xen. The main gains by far are made with picking the right hardware, though. PSUs, CPUs, motherboards. For desktops/workstations, graphics cards. For servers, hard disks.</comment>


The PNG image file format is now more popular than GIF - <AUTHOR> http://w3techs.com/blog/entry/the_png_image_file_format_is_now_more_popular_than_gif <comment><USER2> Now if only animated pngs were more supported

<http://caniuse.com/apng>

<comment><USER3> Webkit's stance is basically "we're only doing it if upstream libpng supports it" (because APNG support basically requires a couple hooks in libpng itself) but the libpng devs refuse to accept the patch for apng support because they are of the opinion that libpng should process only PNG, not derivative formats, which is what they consider APNG.

<comment><USER4> In fairness I can see it from the libpng guy's perspective. It will make their library larger and potentially less fit for a certain purpose.

Why hasn't someone forked libpng, added the apng patch and then made it available for WebKit? Then everyone is happy. Just needs a middle-man.

<comment><USER5> No need to fork libpng. Currently, vanilla libpng and apng patch are both hosted on sourceforge, and it's trivial to automatically download both and apply the patch. In fact, a few distros (Arch, Gentoo, Mandriva, FreeBSD) already do exactly that for their libpng packages.

But keep in mind that apng patch only adds a few functions to libpng API, and it's entirely up to applications to actually use those API calls to request extra frames.

</comment></comment></comment></comment><comment><USER6> And this particular circle is complete.

Of course the patents that were the heart of such controversy are now expired so GIF code is no longer 'not-open' but it has a bad reputation so we don't play with it any more :-).

I like PNG though, the library development, while a bit rocky at first, matured quite nicely and about 5 years ago crossed the point where enough people took the time to figure out how to use it that is dropped into everything that dealt with images. That has been pretty handy.

<comment><USER7> Yup, great point. I think if there weren't patent concerns over GIF years ago, there wouldn't have been nearly as wide support for the format, which means far fewer people would be using it today.

<comment><USER8> Sounds like there's need for a startup that fakes patents for obsolete file formats to create pressure for the industry to switch to technically superior alternatives. Who wants to fund me?

<comment><USER6> You should patent that idea.

</comment></comment></comment></comment><comment><USER9> I know nothing behind the standard that is "GIF". But am i the only one who thinks its completely unreasonable that a few GIF's can turn my browser into a 5fps mess? How is there not a better option for this?

<comment><USER10> I think that's unreasonable, especially because it's never happened to me in recent memory.

<comment><USER11> Maybe not 5PFS but happens to me too when page has many gifs.

</comment></comment></comment><comment><USER12> What happened to JPEG 2000? It supports lossless too, but never seen it implemented on browsers.

<comment><USER13> The image quality improvements with JPEG2000 were mathematical but not really perceptual, see <http://www.stat.columbia.edu/~jakulin/jpeg/artifacts.htm>

<comment><USER14> Those photographic comparisons are pretty subjective and zoom in on muddy/blurred areas of the image for comparison - it would have been nice to see the entire photos. The non-photographic images clearly give JPEG2000 an edge, but he then compares it to PNG. Lossy compression isn't for compressing things like pictures of text, which this guy notes but makes the comparison anyway.

The output quality is also codec dependent, and the one used in those tests has been shown to be towards the back of the pack in a 2005 shoot-out[1].

There is also no comparison between lossless JPEG2000 and PNG on a photograph.

[1] [http://compression.ru/video/codec_comparison/jpeg2000_codecs...](http://compression.ru/video/codec_comparison/jpeg2000_codecs_comparison_en.html)

</comment></comment></comment><comment><USER15> More numerous perhaps, but not more important--going by the insane explosion in animated GIFs in the last two years... I think folks would have stuck by JPEG if it offered transparency.

<comment><USER16> "...going by the insane explosion in animated GIFs in the last two years... I think folks would have stuck by JPEG if it offered transparency."

That does not make sense as JPEG doesn't support animation. Regardless, the blurriness caused by normal JPEG-compression levels makes it a bad option for most non-photo images.

<comment><USER17> I believe parent was saying PNG folks would have stuck with JPEG if it offered transparency.

<comment><USER16> Indeed, it seems that way after reading through it again and inserting a dot.

I would still argue that images used in the layout of the average site, most of which are already prone to having transparent parts, are better off using a lossless rather than a lossy format.

<comment><USER18> You're underestimating the number of non-photographic JPEG files in use despite lacking transparency. It appears a significant number of people don't care about artifacts.

That said, JPEG does today support lossless compression, if you really want to go there. It sort of even supports transparency[1].

[1] <http://news.ycombinator.com/item?id=1772760> for a javascript solution; other approaches use container formats

</comment></comment></comment></comment></comment><comment><USER19> It would have been sooner if 8 bit PNG with alpha transparency had been implemented in Photoshop like in Fireworks.

</comment><comment><USER20> I could have done without the colour "correction" nonsense that PNG introduced: <http://hsivonen.iki.fi/png-gamma/>

</comment><comment><USER21> I really wonder why GIFs are still around. Apart for being used as short videos for funny things they have not a huge use afaik. They really feel like an old technology. They are also a pain to support on android.

<comment><USER8> I wonder what the pain point that is stopping the wider public from switching to a real video format for those short clips is. Given that real video codecs have much better compression at comparable quality, is it just the lack of simple tiny video hosting options comparable to imgur? <video> tags being harder to use on random posting platforms than <img tags>? Chroma subsampling "blurring" clips with sharp edges like from cartoons or 2d videogames? Something less obvious?

<comment><USER22> An <img> tag pointing to animated gif should work on every combination of image host + CMS + browser.

I'm not sure off the top of my head what HTML 5 market share is like (anyone with recent data want to chime in?), but I'm guessing lots of people are running browsers that still don't have <video> capability.

<comment><USER23> <http://caniuse.com/#search=video>

The percentage of users not able to use <video> is roughly equivalent to the percentage of users running IE8, which is about 20% right now, and probably will stay there in the near future, as XP users cannot upgrade to IE9 (thanks, MS!).

The other problem with <video> is that there is still no common format which every browser supports, so even if you would ignore IE8 (or provide a fallback via Flash) you'd still have to encode all videos twice (to H.264 and WebM/VP8).

Sad as it is, but Flash for video and animated GIF will stay with us for some years.

</comment></comment></comment></comment><comment><USER24> GIF still rules on animation (long live memes!) PNG does not do animation however (love it for 32bit alpha)

BUT APNG does: <http://en.wikipedia.org/wiki/APNG>

</comment><comment><USER25> I believe the only reasonable use of GIFs today is to use for all kinds of 1px gradients for background where you can't use CSS3 for that. And even if image is big - it might be better off with PNG.

basically, if you use just few colors and no semi-transparency and you picture is small - yo might be better off with GIF, otherwise - either PNG or JPG depending on if you need semi-transparency or not, and if you need loss-less compression or not.

<comment><USER26> Actually, PNG 8 is better for that 1px graphics: <http://www.phpied.com/give- png-a-chance/>

</comment></comment><comment><USER27> About bloody time.

</comment><comment><USER28> I wish h264 and the upcoming hevc encoded images would become a real alternative. far better quality (for pictures especially), at a lower bitrate from what ive read.

[https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding#M...](https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding#Main_Still_Picture)

</comment><comment><USER29> November 5, 1999: Burn All GIFs Day.

[http://web.archive.org/web/19991127200821/http://www.interne...](http://web.archive.org/web/19991127200821/http://www.internetnews.com/wd- news/article/0,1087,10_232741,00.html)

Anyone else remember this?

</comment><comment><USER30> Although I noticed (accidentally) that gif animated boobs seem to become more popular, that could be a thread to PNG domination.

</comment><comment><USER31> 18 years for that transition to happen. That may be the slowest thing to ever happen on the Internet.

<comment><USER32> I think IPv6 is slower: 20 years since it started being developed.

</comment></comment><comment><USER33> That's why I made Draw![1][2] pixel art animation editor!

[1] <http://drawbang.com>

[2] <https://itunes.apple.com/us/app/drawbang/id578228937>

</comment><comment><USER34> Finally.

<comment><USER35> Or: wow! Only now?

<comment><USER36> poor support/awareness of animated PNGs has been keeping GIF well represented for ages

<comment><USER13> See <http://www.libpng.org/pub/mng/>

<comment><USER37> Which is unsupported in every major browser.

<comment><USER13> Finally a feature browsers can compete on! :)

</comment></comment></comment></comment></comment></comment><comment><USER38> _"The PNG image file format is now more popular than GIF"_... On the Web!

PNG has been more popular than GIF since a very long time for basically anything non-web needing lossless picture compression.

From smartphones icons to OS icons, software logos and icons, etc. I'd say the proportion is about 100:1. Actually I was _suprised_ while just running a "find" on my Linux distro to even find a few .gif files. But thousands of PNGs, of course.

Screenshots taken from OS X and Linux are saved to PNG files (for OS X it actually depends on the version of OS X, sometimes PDF are used, but not GIFs).

And games... Lots of games ship with PNG pictures (as well as jpg of course). But GIF? Common...

It's actually a very, very long time that PNG files are more popular than GIFs.

Glad to hear that it's now true for the Web too.

<comment><USER39> > Screenshots taken from OS X and Linux are saved to PNG files

You can really save screenies in whatever format you like on linux with imagemagick.

It's just $ import -window root screenshot.<imagetype>

Unless you're referring to whatever the DE has implemented, but I've never taken an SS without using the terminal, so I have no idea.

<comment><USER40> I'm sure he is referring to the desktop environment interface, as on OS X you could do the following to save to whatever format you wish as well:

      screencapture -tjpg desktop.jpg

</comment></comment></comment><comment><USER41> Wonder what happened to the WebP format from Google? Last when I tried using it, there were no nice image converters that would convert my PNGs into WebP properly.

Any live websites using it?

<comment><USER42> Mozilla is still against it. Makes me kinda angry, actually. They killed MNG/JNG, because it added like 100kB to the installer and because we should just use Flash instead (seriously). It's now a decade later and we still don't have a lossy RGBA format.

If quantized PNG8s aren't good enough, you can only use gigantic PNG32 files, which are over 5 times larger than JNG or WebP files. I've seen websites which were over 5MB thanks to that limitation. It's ridiculous.

I wish they had at least kept JNG. It's a fairly simple JPG/PNG mashup format. If you already use JPG and PNG libraries, supporting JNG won't add much weight.

<comment><USER41> Actually this is a non-issue. You could always implement comma separated image fallbacks[1]:

 _background-image: image("wavy.svg", 'wavy.png' , "wavy.gif");_ and so on...

It seems that Google lowered emphasis on the project, or is still working on it behind-the-scenes. I'd much prefer to have 'less of images' moving over the web (without cutting back on visuals, you know) and save precious bandwidth.

[1] <http://dev.w3.org/csswg/css3-images/#image-fallbacks>

And then the fact that Google Chrome has over 30% market share. Makes sense to promote WebP.

<comment><USER42> That only works for background images. Plus, the UA will send a request for the webp image even if it can't read the format. It needs the mime type to figure that out.

<comment><USER41> Ah yes. Then probably paste image raw data in the second fallback image? Though I do agree with you that something which benefits the web should be adopted across the board.</comment></comment></comment></comment></comment>


Facebook: people outside America don't understand the "interested in" phrase - <AUTHOR> http://www.vilepickle.com/blog/2011/08/05/00118-facebook-usability-alert-people-outside-america-dont-understand-interested-phr

<comment><USER2> All the quasi-dating stuff in facebook profiles is kind of awkward anyway, they should probably just get rid of it. It's mostly good for a laugh when a facebook noob signs up and fills it out like an online dating profile. I know people use Facebook to meet people, but they usually do so in a more discrete way since you usually communicate with friends and family on the same channel.

</comment><comment><USER3> Lesson #1 if you have an international product: don't use euphemisms. Either be straight (no pun intended), or don't ask the question.

The problem is of course that in some cultures, speaking in euphemisms is so deeply ingrained that the speakers are no longer aware of it.

</comment><comment><USER4> _It would be interesting to know if this confusion happens in other -countries- and not just Africa,_

Opps. I know it's not what you meant, but you should probably make a quick edit.

<comment><AUTHOR> Actually, I think the line in my post is correct, I was specifically referring to this happening in Africa and I am not aware if it happens in other countries.

<comment><USER5> I think what he meant is that your phrase implies that Africa is a country.

<comment><AUTHOR> You're right! I'll make the change.

<comment><USER6> While we're on the subject of nationalities -- "interested in" is pretty clear for people in the UK too. I imagine Irish people, Canadians, Australians, New Zealanders, and many South Africans also know what's meant.

<comment><USER5> I'm from France and this is pretty clear too.

</comment></comment></comment></comment></comment></comment><comment><USER7> Facebook used to have a "looking for" field, and I always thought "interested in" modified that. I'd always been interested in men and women for friendship (on Facebook), before that field disappeared.

... and I still find men and women interesting. Why does it always have to be about sexual preference?

<comment><USER8> Simple: You ask the wrong lesbian (or gay guy, if you're a straight woman) if she's interested in dating, she'll tell you off. At worst. Most of the time, it's not nearly that dramatic.

If I ask the wrong guy, I get into a fight. Most straight men are still offended at "being mistaken for a gay man." I can short circuit this by pre- checking something like Facebook.

<comment><USER9> _Most straight men are still offended at "being mistaken for a gay man."_

I'll note that this even happens with freewheeling Discordians who pretend to flirt with men and pantomime kissing them for lulz. Sure, they can flirt with you and everyone else in some outrageous, campy way, and brag about doing anything on two legs with a hole, but then you extrapolate that to mean they're bisexual (omnisexual?) -- and you get genuine and incongruously out- of-character offense.

</comment></comment></comment><comment><USER10> It's unclear even to some (probably a lot of) Americans. I've known Americans who set it to "men and women" despite being straight. They changed it when it was pointed out what it meant. It's a really poorly-worded option.

<comment><USER4> I don't think it's that awkward with a north american mindset. It's in the Basic Information category, next to Relationship Status. Furthermore, I think some basic questions are reasonable:

1\. How many people are so harshly prejudice, that they're not even interested in one gender?

2\. How many of these people would admit it?

3\. Why would Facebook want to know?

4\. What does it _probably_ mean?

<comment><USER10> I just logged into Facebook to check. It's not next to "Relationship Status" any more, at least not in the "Edit Profile" area where you'd actually set it. This doesn't really matter anyway.

The fact that someone can deduce what it means doesn't mean it's not an extremely poor wording. A user shouldn't have to go through your 4 questions to figure it out. There shouldn't be any confused-user results when searching for "facebook 'interested in'" online (and there are).

</comment></comment></comment><comment><USER11> I can report that my bud studying in Japan says that most of his Japanese colleagues list "interested in Men" due to this very confusion.

</comment><comment><USER12> This isn't just a translation issue, it's also a cultural-attitudes issue as well. Why do we even put sexual preference as one of the primary line-items on your profile? For the US (or at least US college undergrads), this makes sense: it's relevant information that you want to share. But when you take it international, it may not be relevant, or may not be something you want to share. There are a few countries where homosexuality still carries the death penalty, quite a few where it's far more taboo than the US, and plenty of other ones that practice arranged marriages instead of open dating. A social networking site created in countries like those would never consider putting dating preference in their profiles at all, much less how to phrase them. Even if the phrase were translated appropriately, it wouldn't make sense to ask it.

Considering that, it's probably better to leave it open to local interpretation.

<comment><USER13> Facebook caught on, to some extent, as a type of dating service.

I'm Zuckerberg's age and watched Facebook grow while I was in college. For a large majority of people, during the .edu restricted times, it was mainly a way to check if you might have a chance with the girl in your Statistics class.

</comment></comment><comment><USER14> This could be intentionally unclear, defined by the group instead of declared by Facebook. I mean, the "Poke" is intentionally undefined, so various friend groups use it for different things. Maybe the answer is more illuminating when you give people room to interpret the question.

</comment><comment><USER15> I know people who first thought it meant that you're publicly announcing that you're interested in (seeing other) men/women even if you're in a relationship or married. _"No honey, being interested in women just means I'm not gay."_

</comment><comment><USER16> Isn't that what translations are for? Or do translators get it wrong too?

<comment><USER17> It depends on context. The simple phrase "Interested in" would not be translated to "Sexual Preference"

<comment><USER18> That's the key. "I'm interested in men's soccer" and "I'm interested in men" are expressing two completely different meanings of the English word "interested."

</comment></comment></comment><comment><USER19> "Interested in" might also mean in an academic sense, as in "I'm interested in the study of men and women, as a sociologist."

</comment><comment><USER20> Oops,i had no idea it meant "Sexual Interest"!

</comment><comment><USER21> Why don't they change it to "romantic interest"?</comment>


Solving the traveling salesman problem on GoogleMaps with a GA and JavaScript - <AUTHOR> http://www.theprojectspot.com/tutorial-post/solving-traveling-salesman-problem-using-google-maps-and-genetic-algorithms/9/

<comment><USER2> Literally hours ago I was looking through Google Maps documentation for a way to plot a route with waypoints that I needed in a specific order (I'm plotting shipment updates in the order they occur, which may not be in the most efficient path order). I saw that there is a flag to optimize waypoints, which Google described as an implementation of the traveling salesman problem. A few hours later I just happened to see this article on HN. This seems to happen to me on HN too often to be coincidence. Has anyone else noticed this phenomenon?</comment>


Remarkable – a JavaScript Markdown and Commonmark parser - <AUTHOR> https://github.com/jonschlinkert/remarkable

<comment><USER2> A minor nitpick: under the heading "Typographer", apparently setting "paragraph: true" causes "(p)" to be replaced with "§". That's Unicode U+00A7 SECTION SIGN (and it represents a stylised pair of "S" characters), the traditional character for marking a paragraph break is "¶" U+00B6 PILCROW SIGN.

<comment><USER3> In Danish (and probably others) "paragraph" ("paragraf") usually refers to a section of a law text and uses the "§" symbol.

<comment><USER4> "The paragraph mark ( ¶ ) is used when citing documents with sequentially numbered paragraphs (e.g., declarations or complaints). The section mark ( § ) is used when citing documents with numbered or lettered sections (e.g., statutes)."

[http://typographyforlawyers.com/paragraph-and-section- marks....](http://typographyforlawyers.com/paragraph-and-section-marks.html)

</comment></comment></comment><comment><USER5> Awesome project! Just an FYI, your project shares a name with Linux Desktop Markdown Editor

[http://remarkableapp.net/](http://remarkableapp.net/)

</comment><comment><USER6> Looks great! This project shows why we need CommonMark. I want a CommonMark vim syntax. :)

Upvoted to help with this issue: [https://github.com/jonschlinkert/remarkable/issues/34](https://github.com/jonschlinkert/remarkable/issues/34)

</comment><comment><USER7> Well done :) | Just a note that NodeBB recently switched away from chjj/marked to jonschlinkert/remarkable due to its more robust API and better security (at least from the limited tests we've run)

<comment><USER8> how is the security better? Is there a "safe markdown" test suite?

EDIT: a ton of projects allow users to write markdown, but markdown allows, for example, raw html, which means letting a user input "full markdown" means leaving a gaping security hole. The CommonMark spec does not seem to consider the issue at all, but it seems like it should.

<comment><USER9> All user input should go through some manner of filter regardless of the presented form. After all, it doesn't take too much effort to send raw post data without loading the page at all.

<comment><USER8> I disagree, but maybe I am not understanding what you mean.

If the presented form is "plain text" then encoding all html tags is an effective choice, if the presented form is "rich text" than tag/attribute whitelisting is necessary and you need to strip "bad stuff".

The choice of presentation, combined with the choice of who is inputting the data, also poses problems in the UX, i.e. if you use a JS markdown editor in the browser and process data in python on the server stripping HTML than the user sees something going in and something else going out.

A common standard of how to do safe markdown would help.

<comment><USER9> By filter, I meant server-side sanitization. Stripping "bad stuff" as you put it should be mandatory regardless. Someone can simply craft a raw post to the "action" URL of the form (the handler) without loading the page at all.

As for client-side, the user has an expectation that what was entered into the form will be the end result, but this expectation is easy to meet for a vast majority of users. The edge cases tend to be solved most of the time with a live preview that also closely matches the server-side stripping of invalid/malformed content.

When no JS is available/enabled, a preview button before final submission (a la Slashdot) is usually a good idea.

<comment><USER8> > Stripping "bad stuff" as you put it should be mandatory regardless. Someone > can simply craft a raw post to the "action" URL of the form (the handler) > without loading the page at all.

The second sentence is irrelevant, I am not assuming javascript checks, I already know user input is untrusted.

But the first is, AFAICT, wrong: If I escape correctly all user input before using it, I don't need to strip anything (unless I want to let some HTML through). If you think escaping input is not enough, could you give me an example?</comment></comment></comment></comment></comment></comment>


Windows Defender is removing Superfish *and* the cert - <AUTHOR> https://twitter.com/FiloSottile/status/568800260111388672

<comment><AUTHOR> I'd already added this as a comment over here: [https://news.ycombinator.com/item?id=9080834](https://news.ycombinator.com/item?id=9080834)

> Microsoft is currently doing Lenovo's work for them: > [https://twitter.com/FiloSottile/status/568800260111388672](https://twitter.com/FiloSottile/status/568800260111388672)

>

> The latest version of Windows Defender is actively removing the Superfish > software and the cert.

The text of the Defender definition is here: [http://pastebin.com/raw.php?i=us7iXvkn](http://pastebin.com/raw.php?i=us7iXvkn)</comment>


Prototyping app UXPin raises $5M with Typekit cofounder Jeff Veen - <AUTHOR> http://blog.uxpin.com/6974/true-ventures-welcomes-uxpin-leading-5-million-round/

<comment><USER2> Marcin, CEO of UXPin, here. Thanks for posting the news. We're very excited about the investment and having Jeff on board! Now back to work. Time to make design collaboration easy! :)</comment>


Does open source exclude high context cultures? - <AUTHOR> http://stormyscorner.com/2011/09/does-open-source-exclude-high-context-cultures.html <comment><USER2> _So if you start a project and send email to a bunch of folks and ask them to just jump in and contribute, which group do you think will get going more quickly?_

This article is predicated on the premise that most open source projects actively recruit strangers to work on them. This has not been the case for any open source projects that I have worked on. Instead, I normally address my own needs by contributing to open source. I assume most others first participate in a similar manner, so I think the article is built on a faulty premise.

<comment><USER3> Your answer is predicated on the premise that all possible contributors to open source projects are comfortable with the habits and processes of a low context culture just like you are. If anything, your example strengthens the argument of the article, you are comfortable walking up to someone you have never been introduced to wearing weird clothes, ah, sorry, writing code that doesn't do what you want and tell them how to change it.

It is exaclty the point of the article that open source projects are more attractive to people like you and that people who don't behave like that have a harder time joining.

<comment><USER4> There's a difference between fixing a bug because it's getting in your way and helping somebody out with their project. Fixing a bug in code you're running on your own computer is not like walking up to someone and criticizing their clothes. It's like sewing up a hole in your own clothes.

Of course, the actual action of fixing the bug is the same in both cases. It's just a difference in how you see it.

For cases like that — where someone makes a change to some open-source software for their own purposes, not in order to help out the project — the question is not how to "recruit" them, but how to make sure that they can make those changes easily, and then how to induce them to share the changes. Stormy's point about different cultures needing different approaches still holds in that case, but they'll be _different_ different approaches.

</comment></comment></comment><comment><USER5> Good post. Having just started reading Duncan Watt's "Everything is Obvious" (<http://amzn.com/0385531680>) critique on common sense, this looks like exactly what he's talking about... people who aren't familiar with the difference between the cultures (like me) don't even realize there is a distinction, and hence won't realize that there's even a problem. Even if the problem isn't that big, as some of the comments on the blog suggest, it's still good to know that the distinction exists.

<comment><USER6> Thanks for the recommendation, I just started reading the book and really liked the initial parts. The author has a very good discussion of how a result in sociolgy is obvious, and it's opposite is equally obvious which leads people to undervalue the findings in studies.

</comment></comment><comment><USER7> The original title is misleading. The actual thrust of the article is "are you soliciting help in a way which encourages participation by people from HCCs?" That's certainly something to think about, but it's a very different question from whether open source itself excludes them.

</comment><comment><USER8> I don't believe cultures are intrinsically high or low context. The English only became a culture that valued process and communication because it _works_. Victorian England was all about who you know being more important that what you know. The brutal reality that family can be a ball and chain, and that corrupt officials helping out their friends and family is a detriment to society took a while to set in.

China and India are dirt poor. Japan and Korea were dirt poor a generation ago.

OK, low-communication (high context) _might_ be part of a culture, like a preference towards old, white men. But I think it's one that cultures need to jettison if they want to stay relevant.

<comment><USER9> I think you mean Japan was dirt poor a couple if generations ago. A generation ago they were in the middle of their economic bubble. A couple of generations ago, they were rebuilding from the devastation of World War II. Before that, they were already an advanced industrialized nation, far ahead of their neighbours.

</comment></comment><comment><USER10> Good topic for discussion. The article of course simplifies, but it was inevitable. Anyway, being from india, i can see the validity of the point. I am no highly active contributor in any open-source project, but have realized (from participating in IRCs) i usually hold more context in my head than others. Infact, i actively try to avoid that(just respond), and found that, the discussion becomes too painful for others.(I was told there's too much tooth pulling in an IRC forum, once as i tried this).

</comment><comment><USER11> "Typically Asian countries are more high context than Western countries. Think Korea and Japan."

"Low context cultures are process driven. They rely on facts and processes."

Ergo, Korean and Japanese programmers don't rely on facts and processes?

* in response to the downvotes: I'm not trying to be pedantic here. I can kind of guess what the author is trying to say, but this is such a vague, confusing statement as to be completely useless. Perhaps she meant some other phrase besides "facts and processes"?

<comment><USER12> In an unfamiliar situation a westerner is more likely to go it alone, follow the signs and work through the process. Where as an easterner is more likely to seek help and have a knowledgeable person walk them through it. So yeah a western programmer is more than likely going to read the docs, and an eastern programmer is more likely to have a meeting with the stake holders. They both get the job done just in different ways.

</comment></comment><comment><USER13> How much has this author worked in open source? Getting a patch into Linux is pretty damn high-context, indeed git was created specifically as a way for Linus to manage a network of trust instead of just a sea of patches.

<comment><USER14> She has a lot of experience in open source, to say the least. From the author's about page -

"I currently work as the Head of Developer Engagement at Mozilla. I also am an advisor for HFOSS, OpenSource World, and IntraHealth Open, as well as founder and president of Kids on Computers, a nonprofit organization setting up computer labs in schools where kids have no other access to technology.

Previously I have worked as Executive Director of the GNOME Foundation, established OpenLogic's Expert Community and founded and ran HP's Open Source Program Office."

<comment><USER13> Nice, I should have read that. Thanks for the correction. I should read the article again more seriously.</comment></comment></comment>


OOSMOS, the Object Oriented State Machine Operating System, Is Now Open Source - <AUTHOR> http://oosmos.com/?Action=HN <comment><USER2> For background on the semantics of statecharts and a bit of computer science history, see the following papers and book by Prof. David Harel (the inventor of statecharts) and his collaborators:

 _The STATEMATE Semantics of Statecharts_ , 1996

[http://www.wisdom.weizmann.ac.il/~harel/SCANNED.PAPERS/Seman...](http://www.wisdom.weizmann.ac.il/~harel/SCANNED.PAPERS/SemanticsofStatecharts.pdf)

 _Modeling Reactive Systems with Statecharts: The STATEMATE Approach_ , 1998

[http://www.wisdom.weizmann.ac.il/~harel/reactive_systems.htm...](http://www.wisdom.weizmann.ac.il/~harel/reactive_systems.html)

 _The Rhapsody Semantics of Statecharts (or, On the Executable Core of the UML)_ , 2004

[http://www.wisdom.weizmann.ac.il/~harel/papers/RhapsodySeman...](http://www.wisdom.weizmann.ac.il/~harel/papers/RhapsodySemantics.pdf)

 _Statecharts in the Making: A Personal Account_ , 2007

[http://www.wisdom.weizmann.ac.il/~harel/papers/Statecharts.H...](http://www.wisdom.weizmann.ac.il/~harel/papers/Statecharts.History.CACM.pdf)

<comment><USER3> Any software tool recommendations (preferably open source) for creating statecharts?

<comment><AUTHOR> Not open source but this is an excellent free drawing tool that lets you draw very good looking state charts: [http://www-03.ibm.com/software/products/en/ratimode](http://www-03.ibm.com/software/products/en/ratimode)

<comment><USER4> that's the first time I've ever seen a Rational tool recommended by a user.

</comment></comment></comment></comment><comment><USER5> It amazes me how often programmers can talk about state machines and functions while concurrently pretending that mathematics is, largely, something that either need not be discussed or is of secondary concern.

</comment><comment><USER6> Just in time for people realizing that holding onto lots of state is actually a code-design smell and that functional paradigms should be used as much as possible instead!

<comment><USER7> I have done functional programming (FP) with Haskell (including professionally) for years, and I think this notion is misguided.

One of the core principles of FP is about state. However, I believe it is to think very carefully about state and be very explicit about how you handle it rather than performing ad-hoc mutations. That often means avoiding state, but many problems require maintaining state.

State machines can be a great tool to be explicit about state management to the point that you can have a specification for how state behaves.

<comment><USER6> Thanks for the clarification.

Also, constraint of side effects at the language level allows powerful things like... time-traveling debuggers (does GHC provide anything like this, btw? Because it probably could...)

[http://elm-lang.org/blog/time-travel-made-easy](http://elm- lang.org/blog/time-travel-made-easy)

</comment></comment></comment><comment><USER8> So this is just a fancy event loop?

<comment><USER9> As every operating system is, right?

<comment><USER10> I know fairly little about it, but Linux seems to use kernel threads all over the place, so it's not just an event loop.</comment></comment></comment>


Permanent launch of IPv6 at LinkedIn - <AUTHOR> http://engineering.linkedin.com/ipv6/permanent-launch-ipv6

<comment><USER2> Thanks, LinkedIn. Whenever a popular site enables IPv6, that's a bit less traffic for ISPs' carrier-grade NAT equipment to carry, so more resources can be focused on longer-term solutions.

Note that the screenshot of the developer console actually demonstrates a formatting bug; it should say "[2620:109:c006:102::6cae:281]:443" instead of "2620:109:c006:102::6cae:281:443". I think this was just recently fixed in Chrome 37.

<comment><USER3> Unless you're Verizon, who is still working on deploying IPv6.

[http://www.verizon.com/Support/Residential/Internet/HighSpee...](http://www.verizon.com/Support/Residential/Internet/HighSpeed/General+Support/Top+Questions/QuestionsOne/ATLAS8742.htm#)

</comment></comment><comment><USER4> Yet, what seems to be their CDN (static.licdn.com) does not seem to be reachable via IPv6...</comment>


Show HN: Roam – Global co-living subscription - <AUTHOR> https://www.roam.co <comment><USER2> I spent about 3 years full time on Airbnb, living in various places (Shanghai, Berlin, NYC, DC, SF, LA...). I wouldn't call myself a "digital nomad", but I think I'm familiar enough with this concept to formulate an opinion:

\- Without a network of locations, what you have is effectively a boutique hotel (an expensive one at that).

\- If you're starting with Ubud at 1,600 USD/month, how will you make the economics work once you open pricier locations (e.g. Miami).

\- User experience is really bad. Even after getting some hints from the comments here, I struggled to sign up and still have absolutely 0 idea of what's happening or what I should I do after I did.

\- No info upfront is pretty shady. You're literally expecting to sign people up with a logo and a blurry picture.

\- No Instagram pictures? Why linking it then? Why linking to AngelList too? How's that relevant to the average user?

\- Who is the user here? People with very high disposable income who are into Capoeira and creating startups?

The list goes on.

Overall, I'm just confused. It looks like a boutique hotel for yoga/health fanatics, at a high price and with little to no information to explain the value.

If you're serious about it:

\- Hire somebody to rethink your user experience,

\- Rethink your pricing,

\- Maybe wait until you have at least a second location before calling it a network.

</comment><comment><USER3> $1600 for a month? In Indonesia? In that room? No wonder you decided to hide the price until someone actually wants to sign-up.

EDIT: Just took a quick look at Airbnb for Indonesian rentals. I found this: [https://www.airbnb.com/rooms/5021049](https://www.airbnb.com/rooms/5021049) It's cheaper than a room from Roam.

<comment><USER4> $1600 will get you a room in more than 10 locations by the end of the year, that's where the real value is. I am actually staying the the Ubud location at the moment. It's very well done, the community is great and location is just right. This is not something you can find on Airbnb.

<comment><USER5> So can you occupy rooms in more than one location at the same time?

No?

Then it's just a really expensive room with high booking/cancellation flexibility and customer lock-in (you won't pick another room in a city if you've already paid for this).

So this seems to be basically just a premium version of what a youth hostel line membership gets you. Not that there's anything wrong with that, I can imagine that the business model might work.

(If the answer is actually "Yes" then I'm surprised and 1600$ doesn't seem so bad.)

<comment><USER4> Here is one scenario that I see happening - "I leave my $2500 apartment in NYC and I put my freelance developer job in my carry-on. I buy my flights and pay rent for a year at The Roam. I want 2 months in Bali, 4 months in Japan and 6 months Miami." I am taken care of and I don't have to worry about searching for the right location or meeting the right people. It seems pretty good to me.

<comment><USER6> But you could live in a hotel for that kind of money in great part of the world.

<comment><USER7> $1600 is roughly an 8 night stay in Miami, at a decent hotel. I think this is a great deal for me as I can stay anywhere they are available when I want. I already pay over $2000 for a single bedroom apartment in downtown Fort Lauderdale - and I am stuck here in a lease for a year.

<comment><USER8> Just pay for this when you're in Miami then, not when you're in Indonesia

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I know a few people who are (separately from one another) working on the same concept. Good luck. The idea is right, and there can be multiple winners in the space. Paying a monthly subscription to be able to "live" in a few major cities is inevitable. The world is getting smaller every day and this is very feasible now.

</comment><comment><USER10> For $1600 a month I'd expect solo-living not co-living.

<comment><USER11> for that amount i'd rent you my house, quit my job and go on a never ending holiday. it's out of touch with reality.

</comment></comment><comment><USER12> Co-Founder here, happy to answer any questions.

Some of you might know this from last year when we put the idea out there with a wonderfully unpronounceable name [http://www.thecaravanserai.co](http://www.thecaravanserai.co) ...

<comment><USER13> I'm the perfect target for this kind of service — I've been living as a "digital nomad" since July last year, primarily using Airbnb for accomodation, working in cafes and coworking spaces.

The website seems really light on information (at least without signing up) — how much is it going to cost?

<comment><USER12> Update with the price and 1,600, also putting together an FAQ with all the questions that popped up today.

</comment></comment></comment><comment> guard-of-terra It should be cheaper, but more importantly, we've got to own a share.

It should [also] work like that: you deposit say $200k, you get live in any location described, later on you can sell your share at market price that factors in all the property Roam owns multiplied by your share.

It's like instead of buying a home, you buy a slot in Roam.

Of course you can make shares tiered.

<comment><USER14> There is Hapimag of Switzerland, who's been doing that for holidays in Europe for quite some time. Nearly impossible to get rid of the shares we inherited though.

<comment><USER15> That's just a timeshare, right? Timeshare initial deposits are notoriously bad investments; the ongoing fees are sometimes closer to break even vs. other housing/hotel choices, but with less flexibility.

(You can buy timeshares on eBay for close to $0)

From their FAQ: " Is Hapimag a timeshare company?

In legal terms, Hapimag is a public limited company whose shareholders are simultaneously the users of the offer. In this respect, Hapimag is a user- and not profit-oriented cooperative of like-minded people. Hapimag members purchase rights of residence for all Hapimag resorts. This idea has been successful for over 50 years. Hapimag is considered to be the inventor of points-based rights of residence and enjoys the reputation of a professional, trustworthy provider."

</comment></comment></comment><comment><USER16> None of your js or css files are loading for me :/

</comment><comment><USER17> Very interesting concept.

I was surprised that most of the open jobs are not remote, I expected the company to be very open about this and possibly even promoting/preferring this, sort of eating your own dog food.

<comment><USER18> Despite having listed locations, the team is incredibly mobile. Half are dogfooding.

</comment></comment><comment><USER19> If anyone is interested in co-living around the world with other people in tech, Hacker Paradise will be in Bali from March 13 - April 9 with ~30 people.

We've been up and running for a year and a half now, organizing 1-3 month trips for developers, designers, and entrepreneurs all over the world (Bali, Costa Rica, Barcelona, Tokyo, etc.).

Before Bali, we'll be in Vietnam. Afterwards, we'll be in Thailand for a month and then in Portugal for the summer.

Check out our site for more info: www.hackerparadise.org

Also happy to answer questions here.

</comment><comment><USER20> Even if this is a global network, if this is your game it seems like just sticking around Central America and Southeast Asia and you can live at a fraction of the cost with plenty of amenities.

</comment><comment><USER21> I'm sure you could put a nicer picture of the room.

</comment><comment><USER22> What are the intended costs of the program?

<comment><AUTHOR> $1600/mo for a bedroom with en-suite bathroom. Also included are a communal kitchen, co-working space and perfect wifi/internet signal and speed. Some places have a pool :)

<comment><USER23> This sounds like a good idea, but the price seems high for the location you're offering. I'm not trying to be overly critical here, but what else are you bringing to the table? At $1600 in SE Asia, I can get my own 1bdrm apartment, coworking space, and eat out for every meal. I'm currently in Bangkok - I pay $750 for a very large, serviced 1 bdrm, $150 for a coworking membership, and couldn't spend $800 on food if I tried. Admittedly, Bangkok is about the cheapest example - but that is probably why there are so many nomads here.

<comment><AUTHOR> Bali is just the first location we launched and Miami being the next we open soon. Many more to come, any regions in particular you'd like to see one opening up?

<comment><USER24> But why would a user want a subscription if they're going to spend a month or months at locations that don't warrant the price? I don't want to subsidize the nicer places if I'm not currently there.

</comment></comment></comment></comment></comment><comment><USER25> Wow that great!</comment>