Google Maps Error Sees Wrong House Demolished - <AUTHOR> http://www.newsweek.com/google-maps-error-sees-wrong-house-demolished-mistake-440256 <comment><USER2> It's amazing that a demo company has even a whiff of a chance of getting away with this.

<comment><USER3> In short: they instantly lose by acknowledging and gain anything potentially unknown by not acknowledging.

They had no contract with the title owner of the house. But, it's not unheard of to find that there is a problem with the deed to a property. If they can show that this woman doesn't have an actual claim to the property, only the deed owner can complain. Given the enormity of the screw up, lawyers will be involved in every direction.

</comment></comment><comment><USER4> website error prevents page being visible.</comment>


Hierarchical JSON with SQLite / RediSQL - <AUTHOR> https://redisql.redbeardlab.com/rediSQL/blog/hierarchical_json/ <comment><USER2> Too bad that it has a strange custom license.

<comment><AUTHOR> You can use the free version in whichever way you like as long as you don't remove the telemetry.

If you don't like nor what the telemetry, it cost 50€ one time fee.

It could be much worse!

<comment><AUTHOR> But yeah, I guess it won't change much if I do it MIT</comment></comment></comment>


Introducing Supercell: test infrastructure for any open source project - <AUTHOR> http://osuosl.org/about/news/supercell-announcement

<comment><USER2> I'm excited about this project for several reasons. It's a totally open stack (Linux, Ganeti, Django, etc.), funded through a grant from Facebook based on code from Google and OSU OSL (including Google Code-In students). This is a great example of the open source community working together for the greater good.

</comment><comment><USER3> It's a great idea, but free operating systems running on x86 are in practice the _easiest_ test environments to source.

It's environments like solaris-sparc, irix, hpux and aix which are harder to rustle up with limited resources.

<comment><USER4> Not to mention the fact that SPARCs, even under a common OS, are _great_ for finding bugs that just don't happen on i386. Notably, the C standard only allows casting _properly-aligned_ memory (e.g. typically, a chunk of memory with an address that is a multiple of four can be interpreted as a 32-bit integer, but this may not work for "unaligned" memory) - SPARCs will terminate your process with SIGBUS if you try this, whereas i386/amd64 machines will (slowly) perform the requested operation.

There are more differences, many related to multiple CPUs (SPARCs are not "cache-coherent".)

<comment><USER3> You can actually request that x86 machines trap on unaligned accesses too, by setting the AC flag in EFLAGS (pushf; orl $(1<<18), (%esp); popf). Unfortunately, it's common for the C standard library implementation to rely on aligned accesses on x86, so this isn't really feasible.

</comment></comment></comment><comment><USER5> How does this compare for most open source groups to the option of using Hudson on their own servers? Also, I looked at their list of planned hosts--I didn't see windows. A number of the open source projects that I release are cross platform. Does anyone have any insight if they plan to add instances of windows (xp, vista, 7) for testing? I guess I'll have to wait and see when it's open for general testers.

<comment><USER6> It differs in that this isn't just Hudson or some other testing software. We're providing a self service cloud that open source projects can use in lieu of Amazon, Linode or other paid providers.

Eventually windows support will be added. KVM/Xen supports it, so Ganeti does also. Where we're lacking is code to deploy a windows image on demand using Ganeti. We've started talking about how to implement it, but linux and unix based environments remain our primary target.

</comment></comment><comment><USER7> Ganeti?

<comment><USER8> <http://code.google.com/p/ganeti/>

Its basically a virtualization cluster management system. Install it with KVM or Xen on a few servers, give it a lvm volume group to work with on each. You can then deploy and manage (migrate, fail over, grow, etc) virtual machines to the cluster in various configurations, including with mirrored disks using DRBD, all from the master node. It also has an HTTP API.

The OSL (disclaimer: I worked there as a student sysadmin for a few years) is also working on a pretty neat web interface for managing Ganei clusters: [http://code.osuosl.org/projects/ganeti- webmgr/wiki/Screensho...](http://code.osuosl.org/projects/ganeti- webmgr/wiki/Screenshots)</comment></comment>


Ask HN: Terms of Service not in english, a problem? - <AUTHOR>

I am thinking of translating the interface of my brazilian web app to english and "launch", meaning just advertise, in the USA. The terms of service, privacy police, etc, would all remain in portuguese.<p>Is there any legal issue I should be aware of? <comment><USER2> I do not know about legal issues (you should probably ask your lawyer), but as an American who does not speak Portuguese, I would be extremely hesitant to sign up for your service if I could neither read the privacy policy nor the terms of service.

</comment><comment><USER3> You need to contact a lawyer for this kind of stuff. In regards to users, they never read it. So it might as well be in binary.

<comment><USER4> Yeah I would think just stick it in Google Translate and put a disclaimer on it at the bottom that these terms are provided as a convenience only and you're bound by the Portuguese terms. Not a lawyer though.</comment></comment>


Apple Infringes Qualcomm Patent; Judge Recommends Ban on Some iPhones - <AUTHOR> https://www.bloomberg.com/news/articles/2019-03-26/apple-infringes-qualcomm-patent-judge-recommends-iphone-ban <comment><USER2> [https://news.ycombinator.com/item?id=19494684](https://news.ycombinator.com/item?id=19494684)</comment>


Big changes in Goldmans software emerges from small containers - <AUTHOR> http://www.wsj.com/articles/BL-CIOB-9149 <comment><USER2> So how will Goldman's containerise SecDB/Slang? I'm wondering about the DB clusters...</comment>


Mapillary in the OpenStreetMap iD Editor - <AUTHOR> http://blog.mapillary.com/update/2014/10/21/iD-and-mapillary.html

<comment><USER2> Note that Mapillary has some downsides. In addition to the CC-BY-SA license, the Mapillary T&C ([http://www.mapillary.com/terms.html](http://www.mapillary.com/terms.html) 1.3) give them the specific right to reuse user content as they wish, without attribution. (This is different from OSM, which uses the ODbL.)

Also, even though the license is CC-BY-SA, section 1.2 of the T&C prohibits commercial use. Further, I see no data dumps provided (or statement of intent to provide some eventually), unlike OSM, StackExchange, Wikimedia projects.

Last, the smartphone app seems to be closed-source. (If it is open-source, I couldn't find the source.)

It is great news that people are trying to develop a Google Street View replacement, but OSM's will to let people use this data to improve OSM (like they do for Bing satellite imagery) doesn't imply that this project is as free as OSM.

<comment><USER3> Either it's CC-BY-SA or it isn't. Maybe someone from Mapillary could comment.

<comment><USER4> To clarify: * Outgoing license is CC-BY-SA. "Mapillary Photos are available under the Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0)." from [http://www.mapillary.com/legal.html](http://www.mapillary.com/legal.html) * OSM has an explicit right to take data under their contributor terms [http://www.mapillary.com/osm.html](http://www.mapillary.com/osm.html) * The incoming license is per Mapillary ToS because we want to be able to use the photos for 3D/street view/recognition/etc

Also we do give attribution to photographers under every single photo.

(I'm on the Mapillary team)

<comment><USER5> I would like to archive your photo collection for safe keeping at archive.org in the winter. Would you be up to work together on that or should I just write me some scripts and go at it (with reasonable rate limiting)?

Are original files available or is thumb-2048.jpg the maximum public quality?

Are there really no location tags in the files? If so, your CC license is pretty much worthless as the images itself are not useful to anyone. :(

<comment><USER4> Let's figure something out together. Email us.

<comment><USER5> Will do when the time has come. Thanks!

</comment></comment></comment></comment></comment></comment><comment><USER6> Misleading title.

openstreetmap.org doesn't have a Street View function. Mapillary has been integrated into the default _editor_ (the wonderful iD) as an aid to mapping. It's not exposed to non-editing users.

<comment><AUTHOR> Sorry, that is totally right. It's about the iD editor, nothing else.

</comment></comment><comment><USER7> For those who don't know, Mapillary is attempting to be an open source, crowd sourced equivalent of Google Street View. You can download the app on your phone and do some street view today.

<comment><USER8> For varying amounts of "open source".

</comment></comment><comment><USER9> Street view is a ton of data and uses custom hardware, and seems to be done in a fairly systematic way in order to cover most of an area.

So they've got their work cut out for them. That said, at one point I wasn't that optimistic about open street map either, and all of a sudden it seems like they now have very good data - at least where I live.

</comment><comment><USER10> Just installed it on my WP, and I'm really glad there's an app available (most neglected platform).

Congrats to Mapillary for becoming the default street view. I hope to help in my neck of the woods!

<comment><AUTHOR> The WM app is contributed by Tommy Ovesen one of the Norway Mapillary members, see [http://blog.mapillary.com/update/2014/05/15/windows-phone- re...](http://blog.mapillary.com/update/2014/05/15/windows-phone- released.html)

</comment></comment><comment><USER11> Well done Jan Erik and team!

</comment><comment><USER12> Nice pie menus!</comment>


YouTube's New Moderators Mistakenly Pull Right-Wing Channels - <AUTHOR> https://www.bloomberg.com/news/articles/2018-02-28/youtube-s-new-moderators-mistakenly-pull-right-wing-channels <comment><USER2> Its not a mistake and its not a coincidence that this happened. Youtube employed a lot of left wing NGOs like SPLC and ADL and lots of similar left wing authoritarians. Left wing commentators were cheering the news that InfoWars might get banned from youtube. They are extremely short sighted. This very tool will soon be turned against them too.

Damore warned about google hiring policies. Susan Wojcicki, CEO of youtube is sister of Sergei Brins (Sergey Brin, together with Larry Page, co-founded Google) ex wife.

ToS on most of social media are too vague for fair moderation and moderators are too ideologically driven. Social media became largest meeting place humans had in history. Moderation should not be controlled on the whims of CEOs and business interests.

<comment><USER3> If it were the case that Google and Youtube were actively engaged in a campaign of "left wing authoritarianism," and that Google employed "a lot of left wing NGOs like SPLC and ADL" specifically to implement such an agenda (which is what you seem to be implying,) why would they allow right-wing content to be hosted to begin with, or not specify under their terms of service that they only allow left-wing content?

I understand the need for right-wingers to believe themselves to be victims of global leftist persecution, many forms of identity politics do so, but Youtube can legally delete any material from their platform under any terms they choose. There's no need for a conspiracy when you already have absolute and arbitrary power.

<comment><USER2> Youtube publicly stated that they are working with SPLC and ADL on Youtubes Trusted Flagger Program. I am not implying that this was plan of evil CEOs from the start. But they let it happen. They let political bias seep in and steer public discourse on largest communication channels we have. This recent ridiculously vague "hate speech" rules can be used to prevent posting anything negative about arbitrary topics is we define those things as "protected groups" first. This is not partisan problem. Sooner or later this censorship that is normal now will be used against the left too.

I'm more on the side of saying that Facebook, Twitter, Youtube and the like are large enough that they should be thought of as public space. Having as much social interaction as we do on platforms that can be controlled on the whims of CEOs and business interests isn't much different than government control of ideas, and I would argue it's worse because the government is at least elected. They have transcended beyond a business-customer relationship and have become the largest meeting space in history, and as such they should be free and open just like a public square.

<comment><USER4> I think the problem is the right wing stalwarts like Alex Jones are doing stuff like inciting people to send hate mail to the people who lost their kids at the Sandy Hook massacre. Further, hate speech rules are often codified in law, and for good reason. It's not youtube's fault that mainstream rightwing culture is deeply sick, neither is it politicized censorship to censure people like Alex Jones.

</comment></comment></comment></comment><comment><USER5> They're two conspiracy-theory scumbags who should be booted off YouTube. It's a private company, not a common carrier.

<comment><USER6> The problem is that that private company is so big it's basically entangled with most (younger) peoples lifes.

Edit: Talking in general about censorship. Not about those 2 specific conspiracy theorists...

Edit 2: Ok good, calm down. I guess we should censor everyone that doesn't agree with us. Even if "us" is some private company that somehow got control of your kids. Got it :)

</comment></comment><comment><USER7> the last thing the world needs is more censorship

</comment><comment><USER8> "mistakenly"

<comment><USER9> Eh. The explanation they offered that they were hiring a large mass of moderators and some of them made mistakes is more than plausible. When they add that many people it's really inevitable that someone would get over-eager or misread the message of a video.

<comment><USER10> It can hardly be called a mistake when the same doesn't happen to people and channels that align themselves politically with Google's internal policies and culture.

Google can do as they please, YouTube is theirs, but you can't seriously accept statements like these at face value.

<comment><USER9> Of course it can. Taking this action against someone with a political stance opposite from yours may be a mistake you're more likely to make, but it's still a mistake.

Besides that, the point I was trying to make was less about whether it was a mistake, and more that it's plausible that this was something that was done by an individual against company policy rather than in accordance with it.

<comment><USER8> Regardless of whether the actions are against company policy, they were taken on purpose by the "moderators".

<comment><USER9> I don't dispute that. What I dispute is the implication that they had been instructed to do so by Google.

<comment><USER11> So similar to the Wells Fargo account creation fraud.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Good thing DTube topped HN the other day:

[https://d.tube/](https://d.tube/)</comment>


How to bootstrap a social network with Firebase and Ionic - <AUTHOR> https://www.noodl.io/market/product/P201602041823557/firebase-social-network-multi-purpose-social-network-starter-with-firebase <comment><USER2> Your fancy carousel cube thingy is not working in iOS, which does not inspire confidence.

<comment><USER3> Not working very well in Chrome, either. I'm not sure if I'm not supposed to be able to drag it, but my first reaction was to try, and I wound up dragging the transform'ed images around.

<comment><USER4> I don't like being judgemental, but this is a really silly mistake.

To prevent dragging the images, one could obviously use a div with a background-image, like this stupid demo I made: [https://jsbin.com/yaqezo/](https://jsbin.com/yaqezo/)

However,

        .screenshots img
        {
          pointer-events: none;
          -webkit-user-select: none;
          -moz-user-select: none;
        }

would be even easier. Try it.

<comment><AUTHOR> Hi guys. Will have a look and immediately apply the changes. Thanks for the thumbs up!

</comment></comment></comment></comment><comment><USER5> light blue on white, light gray on white. nice site. unreadable.

<comment><AUTHOR> Thank you for the feedback. What would you recommend?

</comment></comment><comment><USER6> Very interesting. The beginning of the commodotization of social networks.

<comment><USER7> The code can be commoditized, but the work of finding the users and getting said users to join is a long way from being plug and play.</comment></comment>


A look inside Ticketmaster's price-hiking bag of tricks - <AUTHOR> https://www.cbc.ca/news/business/ticketmaster-prices-scalpers-bruno-mars-1.4826914 <comment><USER2> Seems odd to complain about TM 'double dipping' on fees since that's how they make their money. It really doesn't matter whether it's a ticket you already bought or one that came from the box office, TM collects a fee per sale. Why would they even want to do business with resellers if they couldn't collect a fee? Hell they could probably get away with charging the seller and the buyer a hefty fee, both parties would probably pay.

It also seems weird to complain about how much money TM makes, like good on them for finding a market with people willing to pay so much.</comment>


How Fast can A Single Instance of Redis be? - <AUTHOR> https://docs.keydb.dev/blog/2019/06/17/blog-post <comment><USER2> IIUC the benchmark did not use pipelines and the numbers show that. Redis itself can outperform this by a factor of 10 with pipelining, and I'm betting the difference from the module won't be that big given such a setup (which is how you should ideally work anyway).

Still, nice to see the modules API being put to interesting use cases.

<comment><USER3> Yeah - be interesting to see the real use case here. Pipelining + scripting if needed normally go a long way. I'm curious who needs even more beyond this in terms of performance and if this module actually provides it.

</comment></comment><comment><USER4> Anecdotally, my experience running Redis servers on AWS (both standalone EC2 instances and ElastiCache dedicated Redis instances) is that network latency is likely to become a barrier before anything else. We struggled with the same performance problems on both small-footprint small-payload Redis DBs and on large ones, and paying for the next tier of network connectivity (between our applications on EC2 and our Redis servers on EC2/ElastiCache) did the most to alleviate delays.

<comment><USER5> This is very accurate. Seeing variations in GET / SET operations with ElastiCache up to 10000μs, which is way longer than the actual execution speed. After moving complex operations to transactions & even Lua scripts, performance is fairly acceptable again.

I assume the AWS network is pretty noisy.

</comment></comment><comment><USER6> I'd like to see the client code, see how it manages backpressure.

(I'm probably being thick; the benchmark code is probably linked and I'm just not seeing it.)

I recently maintained some nodejs & expressjs stuff. Neither the Redis clients (or the original developers of our stuff) have any concept of backpressure (throttling). In our case, HTTP request received would cause a Redis request. For whatever reason, expressjs (or nodejs) event loop thingie processes Request preempt other stuff. So Redis responses would pile up in Redis itself, causing Redis to ABEND (out of memory).

Trying to explain backpressure, queueing, throttling to a bunch of junior devs who _LOVE LOVE LOVE_ nodejs... Definitely was not my favorite gig.

\--

PS- I started using Redis a few gigs ago. I really wanted to hate it. I'm primarily a Java dev and was esthetically offended by the NoSQL fad. But turns out Redis is awesome. And antirez is now a personal hero. I truly wish I was more like him.

<comment><USER7> We've been running into the issue where our redis instance(s) randomly dies. I haven't been able to pin point the problem (nodejs+redis). Would love to hear your thoughts on some gotchas to look out for.

<comment><USER8> Not OP, but I wonder what the collectd plugin for Redis would tell you.

</comment></comment></comment><comment><USER9> Well, to be honest if you are IO/network bound and kernel TCP stack is the bottleneck then user space networking like DPDK can help in every application. It depends on application but sometimes additional complexity of introducing DPDK is just not worth it, and just spinning another instance/server is a better choice. Look also at Seastar used in ScyllaDB with and without DPDK numbers.

Just remember you need to give DPDK one whole NIC and it's using polling so 100% CPU usage on polling cores.

<comment><USER10> DPDK does poll but you can have it sleep in low traffic situations. At the expense of a little extra latency.

<comment><USER8> I always figured the right solution here is a queue that sends any time the request queue is over N elements or every M microseconds, whichever happens first. Haven't seen many implementations though.

Nagle's algorithm for the oldest, maybe a couple others, possibly some code I've written.

</comment></comment></comment><comment><USER11> These numbers seem off. 4ms to store something in memory ? Even if it include network latency it should be able to improve further.

<comment><USER10> Most of the bottleneck is in the TCP stack. That's why user mode networking like this module does helps a lot.

<comment><USER12> TCP latency is on the order of dozens of us, not ms.

Valid question I'd say.

<comment><USER10> TCP latency increases when you have high load and buffers in the way. Over 50% of CPU time is spent in the TCP stack for Redis, with the bulk of the rest in query parsing.

</comment></comment></comment></comment><comment><USER13> How is this different from what Solarflare ([https://twitter.com/Solarflare_Comm/status/11134717313798430...](https://twitter.com/Solarflare_Comm/status/1113471731379843072)) is doing with Cloud Onload? From what I understand they don't require any application changes and they work on any networking application.

<comment><USER14> OpenOnload transparently replaces the UDP/TCP network stack and epoll calls of an applications with highly tunable userspace components. It can work with any application that uses these system calls. Of course, that application could be Redis. If you search around, I've commented on using them together.

This is a Redis module, so will only work with Redis. Although I don't see its implementation (?), it appears to connect Redis' Unix Socket interface to a network stack running on DPDK (a user-space low-level network interface).

In SolarFlare world, ef_vi is their library to DPDK -- it is a packet buffer interface. They then have OpenOnload (transparent acceleration that cooperates well with the kernel) and TCPDirect, a proprietary userspace TCP/UDP library that has its own interface. It's even higher performance than OpenOnload because it doesn't have to coordinate with the kernel and you manage the sharing of the network resources.

SolarFlare has a DPDK driver too. OpenOnload doesn't accelerate UNIX sockets.

One thing this module doesn't accelerate is epoll... I think a properly tuned SolarFlare solution would be higher performing -- especially on the same machine with TCP-loopback acceleration. But you don't know until you try it...

edit: added note about epoll

<comment><USER15> Yep. And Mellanox does it too fwiw -

[https://community.mellanox.com/s/article/vma-improves- redis-...](https://community.mellanox.com/s/article/vma-improves-redis- transaction-rate-and-latency--memtier-benchmark-x)

</comment></comment></comment><comment><USER16> [https://archive.fo/4WMYg](https://archive.fo/4WMYg)

</comment><comment><USER17> Nice! I am also working on developing an extension for Redis and tried creating FlameGraphs as well but am not able to get them to work properly. Could you please share the commands you executed for the Flame Graphs? Would be greatly appreciated!

Already tried using '-fno-omit-frame-pointer' and '-O0'

# $CMD is a command starting a redis-server and creating traffic

perf record --freq=10000 --all-cpus -g -- $CMD

perf script --input=perf.data | ./stackcollapse-perf.pl > out.perf-folded

./flamegraph.pl out.perf-folded > perf-redis.svg

<comment><USER18> I can recommend hotspot from KDAB. Use

      perf record --call-graph dwarf,32768 -f 999 -- $CMD

if the following does not work or you work on something older than Haswell:

      perf record --call-graph lbr -f 999 -- $CMD

Be careful with the frequency. Use cycles:up as the event (with -e) for general cpu time, and other stuff like LLC-load-misses cycle_activity.stalls_l3_miss as an example on a Kaby Lake system. Use

      perf list

to search for the right event name. On the Broadwell i5/dualcore+HT Laptop I see cycle_activity.stalls_l2_miss as the equivalent, due to it apparently not having an L3 cache. cycle_activity.stalls_mem_any highlights code where the CPU is doing nothing while waiting on memory.

For de-inlining I found simpleperf from the android-ndk to be the only tool not wastefully spawning one addr2line for each-single-address. Yes, that takes ages to process. Yes, I gave up and used simpleperf, which caches this. And yes, I considered patching perf-tools to use the pipe-based interface to addr2line.

Hotspot unfortunately appears unable to distinguish time spent in a function between the different inline stacks inside said function, so I had to forego heavy link-time-optimization that got 5-10% without much else, because there was no meaningful insight left into what part spend how long computing.

And please, please refrain from -O0 when you want performance. Either to use the performance or to measure it. Instead add -g or -ggdb in there, to force dwarf debug info to get line info and stack frame unwinding, the latter without relying on the frame pointer. Though, for the unwinding itself, lbr does a great job. Just keep in mind that it's max depth is limited by the CPU generation, and can't by bypassed/increased.

</comment></comment><comment><USER19> Hackernews hug of death already?

<comment><USER20> Maybe they should use this module that I can't read about to power their site. :P

<comment><USER21> Makes me feel a little better about my libµhttp/Objective-C/Objective- Smalltalk server (serving [http://objective.st](http://objective.st)), which held up just fine to the HN hug of death, running on the smallest digital ocean droplet. :-)

<comment><USER22> A simple nginx also holds up very well: [https://xyrillian.de/thoughts/posts/latency-matters- aftermat...](https://xyrillian.de/thoughts/posts/latency-matters- aftermath.html)

</comment></comment></comment></comment><comment><USER23> How does it compare to Redis threaded I/O? ([https://twitter.com/antirez/status/1110973404226772995?lang=...](https://twitter.com/antirez/status/1110973404226772995?lang=en))

Using 4 threads it is simple to get 2x the performances of single-threaded Redis (even if yet the reading part is not threaded).

</comment><comment><USER24> Impressive! Would be great if you could share the SVG of the flamegraphs too.

<comment><USER25> No Problem [https://download.keydb.dev/Redis-Normal- FlameGraph.svg](https://download.keydb.dev/Redis-Normal-FlameGraph.svg)

[https://download.keydb.dev/Redis-plus-Module- FlameGraph.svg](https://download.keydb.dev/Redis-plus-Module-FlameGraph.svg)

</comment></comment><comment><USER26> Well the site is down.

<comment><USER25> We are back up, had to move to a bigger server haha

<comment><USER27> I'm always curious what kind of setup people run that can not handle a thousand people connecting into HTTP.

<comment><USER28> I did a bit of sleuthing in the dev console.

The site is a static HTML site generated by Docusaurus [0]. That seems like it should be very fast and lightweight for serving tons of concurrent requests.

In the page's response header, it shows that the server is NGINX on Ubuntu. Ahhh, and "X-Powered-By: Express". I suspect that's the bottleneck, serving static assets via Node.js+Express, instead of directly with NGINX.

I also see in the document foot that it tries to load a script from [http://localhost:35729/livereload.js](http://localhost:35729/livereload.js). That could be a sign that the site is a development build, not optimized for production..?

[0] [https://docusaurus.io/en/](https://docusaurus.io/en/)

</comment></comment></comment></comment><comment><USER29> To maximize reach, have you explored what would take for a first-class Redis wasm [1] implementation, maybe pairing it with Terra [2] for Lua scripting.

[1] [http://webassembly.github.io/spec/core/exec/index.html](http://webassembly.github.io/spec/core/exec/index.html)

[2] [https://github.com/zdevito/terra](https://github.com/zdevito/terra)

</comment><comment><USER30> "Redis is known as one of the fastest databases out there."

Redis is not a database. Let's begin with that.

<comment><USER31> Depends on how you define database. Wikipedia starts with...

"A database is an organized collection of data, generally stored and accessed electronically from a computer system. Where databases are more complex they are often developed using formal design and modeling techniques." [1]

...which makes Redis sound like a database to me. If I am not technically correct, feel to educate me.

Side note: I try to focus on what problems we're trying to solve, because it's hard enough to get people to sync up on that. I've found focusing on being right is inversely proportional to the health of my relationships.

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

<comment><USER30> Your filesystem then is a database. You can even stretch it to include your text editor. Redis is not a database.

<comment><USER32> I think there is much to be learned by comparing databases and filesystems.

One thing I think that filesystems can learn from databases is the notion of a compound primary key. It would be neat if app-files were identified by an (app, type, id) tuple. This would bring the advantages of both the posix and the windows filesystem layouts.

For instance if we had(app=firefox, type=/usr/bin, id=main). Then we could easily find all firefox files by querying by app. Or we could easily find all binaries in PATH by querying by type.

ps. I think this would work better than the overly general tag-based filesystem people sometimes propose.

<comment><USER2> Well, that's basically what directories are.

<comment><USER32> The posix filesystem layout doesn't provide an easy way of enumerate all files belonging to a given program. The traditional windows (98?) layout of one app in one folder conversely doesn't easily allow enumerating all binaries. Or all manual entries. Etc

<comment><USER2> Ok, so let's say you arrange your folders to acommodate for that. you have /files/$user/$program/$file. That's basically what a primary key in a database looks like. If you want a secondary index, what databases often do is just create a second table with a different primary key, with the value being primary keys of the main table.

We can model that in a filesystem as well, of course. So if I want one filtering by file type and one filtering by month of creation, then I can create /files/$program/$file and then ln -s /files/$program/$file /files/month/$month/$file</comment></comment></comment></comment></comment></comment></comment>


Why UPS trucks (almost) never turn left - <AUTHOR> https://edition.cnn.com/2017/02/16/world/ups-trucks-no-left-turns/index.html <comment><USER2> Never knew this!</comment>


ICE Whistleblower interview with CBS interrupted by government agents - <AUTHOR> https://www.cbsnews.com/news/former-ice-spokesman-james-schwab-opens-up-about-resignation-trump-administration/ <comment><USER2> tl; dr:

1\. ICE [Immigration Control] planned to raid Oakland for illegal immigrants.

2\. Somehow, Oakland's mayor found out and warned the community (Oakland, SF, and California are very pro-immigrant). This obviously gave opportunity for some immigrants to elude the raid.

3\. Feeling undermined, Jeff sessions claimed that "ICE failed to make 800 arrests" because of the mayor's statement.

4\. James Schwab, who this article is about, identifies that as an outright lie, because "We ended up arresting 232, which is 16 percent higher than our highest estimates." Thus the 800 figure would be an outright fabrication. He was asked not to contradict this lie, and morally objected, resigned, and blew the moral whistle on the whole situation.

5\. In the middle of the CBS interview, at his house, some very intimidating DHS officers came by, unannounced, who seemed to suggest that Schwab had leaked the information to Oakland's mayor (which he cooly dismisses is entirely false and spurious).

6\. The officers appear retreat once they realize they are on camera.

<comment><USER3> re: #4, He states 232 out of 1000 in this article, and claims the 'outright lie' was that the mayor was letting people go. [https://www.huffingtonpost.com/entry/former-ice-spokesman- sp...](https://www.huffingtonpost.com/entry/former-ice-spokesman-speaks-out-i- was-asked-to-perpetuate-a-flat-out-lie_us_5b34ca4ee4b0cb56051fecd8)

</comment></comment><comment><USER4> Lies, deception, intimidation, what's next? Is this America of the 21st century?

<comment><USER5> Intimidation tactics like this is how these organizations operate in situations like this. It's been this way for a long time. Read up on the CIA and FBI getting in each other's way in the Hoover era. They pulled all sorts of crap like this. It's not every former administration has been standing in the way of behavior like this and now suddenly the floodgates are open and the departments in the executive branch feel empowered to oppress and intimidate anyone they see as a threat, they've been doing it all along. Maybe they're less subtle now, I dunno.

It's only now that we have a POTUS that everyone hates that people are taking notice how foul the rest of the executive branch really is.

Edit: I know that lunch hour in CA is exactly the wrong time to post something like this but please actually try and refute something I'm saying instead of mashing the downvote button like you're on Reddit. We're supposed to be able to have adult discussion around here.

<comment><USER6> Yeah, I'm not surprised by DHS at all here.

I do think it's less subtle as POTUS has made it very clear he has zero qualms with lying routinely about almost everything, and with strongarm tactics and intimidation. But the culture of secrecy, intimidation, and public misdirection has been there from the beginning, and not just by happenstance but by necessity. If you can convince yourself, as a member of DHS/CIA/FBI/etc. that whatever project you're working on (like, say, wiretapping MLK) is for National Security, then the ends justify the means.

</comment></comment></comment><comment><USER7> > Before the surprise visit, Schwab told Yuccas that both the Obama and Trump > White Houses asked him to "spin" information.

If they would talk about how "both sides of the aisle" were doing this, it would make it non-partisan, more news outlets would discuss it, and maybe there would be actions taken.

<comment><USER8> > If they would talk about how "both sides of the aisle" were doing this, it > would make it non-partisan

He told the reporter that never before had he been asked to actually lie.

There is a difference between truthful statements that deflect attention from one place to another and outright lies (be they lies of omission or commission), and it would be a counterfactual interpretation of the interview to report he said both sides of the aisle asked him to lie. They didn't. That's why he resigned, because this was something new and different and serious.

[edit to add the quotation for context]

</comment></comment><comment><USER9> Was he send to the Gulag or not?

<comment><USER10> In US they put you on a no fly list and set credit score to 0.

<comment><USER11> The Land Of Free.

<comment><USER12> The USA is terrible. Don't come here.

<comment><USER13> Nationalistic flamewar is not welcome on Hacker News. Please don't post like this again.</comment></comment></comment></comment></comment>


How to Hack a Mac - <AUTHOR> http://www.spstechblog.com/posts/how-to-hack-a-mac

<comment><USER2> Pretty obvious. Once you have physical access and can reboot the machine, you own it. This is true for any computer (barring firmware passwords and whole- disk encryption).</comment>


'Alexa' has become a less popular baby name since Amazon launched Echo - <AUTHOR> https://www.recode.net/2018/5/13/17345722/alexa-amazon-echo-baby-name-girls-apple-siri <comment><USER2> How many baby girls have now been named "ok google" instead?

</comment><comment><USER3> For my son, I wanted a name nobody else was using.

We called him Google+

</comment><comment><USER4> I named my dog Siri and whenever I say "Hey Siri" my dog looks at my phone with frustration.</comment>


Why Uber Keeps Raising Billions - <AUTHOR> http://mobile.nytimes.com/2016/06/21/business/dealbook/why-uber-keeps-raising-billions.html <comment><USER2> >> "Uber says it is profitable in North America, Europe, the Middle East, Africa and Australia — if you factor out taxes and interest payments."

There's a level of immaturity in the current definitions of profitability that the Valley is pushing. Being privately held ensures that no sensible accounting system will be anywhere near their books.

<comment><USER3> I highly doubt they don't also have GAAP numbers. For marketing purposes, they use the numbers that put them in the best light.

<comment><USER4> Exactly this^. Hell, Facebook is still reporting misleading non-GAAP earnings next to its GAAP earnings.

</comment></comment></comment><comment><USER5> The network effect of ride-sharing is considerably weaker than that of a social network. A social network's effect is O(n²), as that is the number of meaningful connections.

Ride-sharing networks are O(n). They benefit from _liquidity_ , but I derive only secondary benefit from being "connected" to others on the platform. It's not nothing, but it feels linear, not superlinear.

Ride-sharing apps are just apps, and the barrier for adopting a new one is low, for both sides of the market. Further, Uber's political operations benefit the other apps equally.

Uber can defend its brand and its satisfied users. Size helps here. Think iTunes. But the "network" is replicable by others.

<comment><USER6> IMO you can have network effects that don't have to do with connectivity. According to Wikipedia, a network effect is "the effect that one user of a good or service has on the value of that product to other people."

In this case... \- more passengers lead to more drivers \- more drivers lead to shorter pick up times \- shorter pick up times lead to better UX/value to passengers

So even though passengers aren't connected to each other, additional passengers significantly increase the value of Uber for existing passengers. This is actually very hard to replicate for new entrants.

For example, let's say when Uber started, there were 20 drivers and 1000 passengers, and the average pick up time was 6 minutes. If the average ride was 9 minutes, then a driver could do 4 rides per hour. Those 4 rides had to provide a decent wage -- let's say $20/hour. That means each 9 minute ride was $6.25 ($1.25 for Uber's take rate, $5 to the driver).

Now, let's say 4000 additional passengers signed up over a few months, which led to 80 additional drivers. Now, because there are more drivers all over the city, the average pick-up time might be 3 minutes. That means a driver can now do five 9-minute rides per hour instead of four. That means each ride can now cost $5 instead of $6.25, and the driver still makes $20/hr.

For passengers, this is awesome: their wait times got cut in half while the cost of a ride dropped by 20%. For new entrants, this is awful: the two main levers for competition are cost and waiting time, and Uber broke both of those levers. New entrants can still match fast pick up times and low costs, but they have to bleed much, much more money to do so when they launch in a new market.

In a way, Uber's network effects are like economies of scale, but they're typically classified as network effects because the means of production come from more drivers and passengers signing up, not from Uber doing any "real" work itself.

<comment><USER7> > This is actually very hard to replicate for new entrants.

I've seen many drivers running both lyft and uber at the same time. A third company comes along that pays drivers better? Why not keep all three apps up. There's no cost to running an additional app. Literally none at all. And if it pays slightly better, or has a fairer reputation system...

The same thing works on the rider side as well. If you've got an app (like what's the fair) that can let you query any number of providers and get the cheapest price, maybe you're happy to wait a few minutes to save money.

<comment><USER8> Someone if goes bankrupt and then making the app open source and not a taking cut at all..can it kill Uber eventually?

Or the tech benefit of actively working people in Uber will be much better ROI for drivers to give a 20% cut -- which other industry gives such high a cut? (airlines or movie ticket booking doesnt)

<comment><USER9> > Someone if goes bankrupt and then making the app open source and not a > taking cut at all..can it kill Uber eventually?

Uber and Lyft provide a substantial amount of infrastructure and staffing; they wouldn't function without that. Someone has to keep the server infrastructure running and scaling, and even more importantly, someone has to maintain the support, rating, and qualification system to maintain quality.

</comment></comment></comment></comment></comment><comment><USER10> _Why Uber Keeps Raising Billions_ \- yes, it's trying to build marketshare, and intimidate others from backing rivals.

But the reason isn't because ride-sharing is a network-effect heavy industry.

It's because _logistics_ is an industry that is cheaper at scale.

The long game for Uber isn't ride sharing, it's logistics, and "people delivery" is only one (fairly minor) part. If Uber can pick up enough scale, then every time a delivery is picked up (in one of the driverless vans of course) it can also deliver multiple packages along the way. That's where scale is important, and why the capital is important.

Talk to an UberX driver: here anyway (in Australia) Uber is already sending them on optimized delivery paths when they do delivery.

</comment><comment><USER11> "The ride-sharing industry has long been seen as a zero-sum game because of the "network effect""

I am not sure how true this is, both drivers and riders will always follow the money, and there is not a lot you can do on the experience side that can't be replicated by competitors. This will never be a zero sum game at scale.

When Uber & Lyft moved out of Austin, drivers rallied to make a quick network. In India, drivers already have their closed networks, and many work for both Uber & it's competitor Ola, which just goes to show there is no driver lock- in.

<comment><USER12> But there is a user lock in. After a while users won't switch. No matter the difference.

Also, they are not really on it because of the drivers and users game.

The end game is self driving cars to rent.

<comment><USER13> Just note that in the end game the switching cost is much lower. You don't have to convince users and drivers, only users and buy a bunch of cars in one location.

<comment><USER11> Yup this point is critical. There is no loyalty bonus to stick on.

<comment><USER14> Yet. Who wants to take bets on how long it will be before they get their start a points system and start offering an uber credit card? I'm guessing a year.

</comment></comment></comment></comment></comment><comment><USER15> They want a cash horde that will allow them to continue to invest and expand through the next business cycle.

<comment><USER16> They need money to find a new business plan. Money comes pretty easily due to publicity, and that the people with money to invest are more likely to be people that use Uber, at least that's my guess. So they feel it's a solid business. People tend to believe that products they use are a good investment, because "everyone is using it".

It wouldn't surprise me if Uber is realising that there isn't actually that much money to be made driving people around. Taxies are a artificially limited business, in most places, but you're not seeing a ton of wealthy taxi drivers. Why should Uber be that much better at making money in the taxi business. I'm not saying that there's not money to be made, or room for improvements and increased profits. I just question the size of that potential profit.

<comment><USER17> You are making the mistake of comparing the Uber market size to the taxi market size.

Uber, by providing an easier way to take rides, has made an existing market much bigger, and they are taking over it. The market size has changed thanks to Uber.

<comment><USER16> >Uber, by providing an easier way to take rides, has made an existing market much bigger,

I honestly doubt it. The market size is the same, Uber just made it easier to get a taxi by adding more of them. Taxi drivers often have a second job (at least in some countries), they aren't wealthy people, despite having essentially a monopoly. The only thing Uber can do, and have done, is add more cars, at the right time.

The issue is mostly that you can't get a taxi when you need one, because most of us need them at the same time, at 2AM on Sunday morning or when it's raining. That's a severely limited niche and the only reason you can't a taxi at these time is because there isn't a business case for have those cars on the road for the rest of the week.

<comment><USER18> Maybe you're from Manhattan or somewhere taxis are ubiquitous? Where I'm from (Portland) nobody ever used to take cabs, myself included, because they were so sparse and terrible. I'm talking about regular 30min waits. I take Uber all the time now.

<comment><USER16> >because they were so sparse and terrible

My point is: They're sparse, and terrible, because that's what the market will sustain. Uber is making more cars, better cars, available, but I don't think that sustainable in the long run. It's my belief that Uber, and it's drivers, will come to the conclusion that there simply aren't that much money to be made, unless you restrict the supply of cars.

Honestly, does any one believe that the reason of taxies being sparse or terrible is because the taxi companies doesn't give a shit? If they could make more money by having cars on the road, then why shouldn't they work towards that?

<comment><USER14> > Honestly, does any one believe that the reason of taxies being sparse or > terrible is because the taxi companies doesn't give a shit? If they could > make more money by having cars on the road, then why shouldn't they work > towards that?

No, they were sparse and terrible because of the medallion system limiting the supply.

<comment><USER19> That argument only applies in locations that have such systems.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> I've suspected that Uber and AirBnB know they need a legal warchest.

</comment><comment><USER21> I have a great dislike of Uber. They say they are "breaking the taxi monopoly" but they're literally just building a new one, and they're doing that by starving out the existing taxi services with the billions and billions of dollars they keep fundraising. It's fucking dirty.

<comment><USER22> Why do you choose to label competition and development of a better product as 'fucking dirty'? Criticizing Uber for some imaginary future world where it has captured the market via regulatory mechanisms (like taxis), seems premature to me.

</comment></comment><comment><USER23> I don't understand how this article is claiming that ride-sharing is a zero- sum game. It's not a search engine or social network that "network effect" or customer experience is the main motivation for customer to choose the service.

People will choose another provider if they offer the service for pennies less. Heck people switch to Bing search for a few pennies a week in "Bing rewards".

I'm sure Uber/Lyft competition in the United States is going to be like Coke/Pepsi competition. It's a low margin business and a lot of people can do it. Therefore there is no way you can have a "winner take it all" situation.

</comment><comment><USER24> Seems like Uber has quite a bit of competition in the US market besides Lyft, namely: 1) Juno -- [https://www.gojuno.com/](https://www.gojuno.com/) 2) Gett -- [http://gett.com/nyc/](http://gett.com/nyc/) 3) Via -- [http://ridewithvia.com/](http://ridewithvia.com/)

Seem like all our starting out in NY, but it is just a matter of time before margins are squeezed to zero.

</comment><comment><USER25> The article is quite superficial on many aspects: i) first, Uber is not in the sharing economy but in the on-demand: you don't share and monetize an asset (vs AirBnb), you offer a service activated by demand; ii) in my opinion, Uber keeps raising funds for multiple reasons and some of them are simply overlooked in the article: \- from a global market point of view: money (especially in the form of debt) is historically cheap \- from an investor point of view: investors are looking for proven business models as VC funding is slowing down \- from an employee point of view: the multiple funding rounds maintain/increase the valuation, which preserves the stock-based incentive for employees (and we know that's a key reason why so many great programmers joined Uber) \- from a competitor point of view: Uber opens the market and evangelizes (pays the legal cost, advertises in new markets, etc.) iii) it never really analyses the on-demand transport economics = is it a "winner takes all" market structure? The article keeps suggesting it is while it is clearly not

<comment><USER26> So they raise money and subsidize drivers to use their service.

Makes you wonder if Taxi companies would have increased services / hired more drivers/ lowered prices if the money went directly to them?

Now most of the artificially created suppliers will likely drop out the moment the driving becomes unprofitable or switch provider as the barriers to entry in this market are not that high.

</comment></comment><comment><USER27> One important factor is the TEAM. They have one of the finest workforce. Extremely talented people driving the growth of the company.

</comment><comment><USER28> It's easy to understand why they'd want this, and as for why people invest... hope, greed, the usual things.

</comment><comment><USER29> The second there's a Tesla icon on my phone that summons a driverless car, goodbye Uber. Not sure how they're going to buy and maintain a fleet of cars below Musk's cost.</comment>


Learn Physics by Programming in Haskell - <AUTHOR> https://arxiv.org/abs/1412.4880 <comment><USER2> Bootstrap is working on a high school physics curriculum for ninth graders, which integrates functional programming as a fundamental component. They only have a landing page up at the moment [0], but I attended a very cool workshop they gave this summer. They've designed the programming language to avoid any "incidental complexity"—Physics teachers only have to teach the CS that's absolutely necessary for the physics education goals they're trying to achieve.

[0] [http://www.bootstrapworld.org/materials/spring2018/courses/p...](http://www.bootstrapworld.org/materials/spring2018/courses/physics/)

<comment><USER3> as a note for others, the programming language they developed and use is pyret.

[https://www.pyret.org](https://www.pyret.org)

</comment></comment><comment><USER4> The haskell library is here: [https://github.com/walck/learn- physics](https://github.com/walck/learn-physics) [https://hackage.haskell.org/package/learn- physics](https://hackage.haskell.org/package/learn-physics)

<comment><USER5> Wow this is beautiful! The "main" equation for the physics of projectile motion is less than 10 lines of code: [https://github.com/walck/learn- physics/blob/master/examples/...](https://github.com/walck/learn- physics/blob/master/examples/src/Projectile.hs#L25)

The "state" of the system St is defined here [https://github.com/walck/learn- physics/blob/f6ce9bbaece24f48...](https://github.com/walck/learn- physics/blob/f6ce9bbaece24f481f170bb72b8c6b10500ee383/src/Physics/Learn/Mechanics.hs#L110) It's amazing to see code and implementation details that match the physics language.

I wonder if this codebase is ELM-able? i.e. does it use any specific features from Haskell that are not in ELM? I'd love to see this in the browser. Weekend project anyone?

<comment><USER6> Typeclasses - thought you could use that whole dictionary work around, or write namespaced variants.

</comment></comment></comment><comment><USER7> Related: [https://mitpress.mit.edu/books/functional-differential- geome...](https://mitpress.mit.edu/books/functional-differential-geometry)

<comment><USER4> There's also this one, "Structure and Interpretation of Classical Mechanics" (by the same authors): [https://mitpress.mit.edu/books/structure-and- interpretation-...](https://mitpress.mit.edu/books/structure-and- interpretation-classical-mechanics-0)

<comment><USER8> I had ordered one of those books (don't really remember which of them), and it is to this day the only book I sent back to amazon for a refund.

<comment><USER9> ok?

This comment doesn't really tell us much. Was the book missing its cover? Did you not realize what the book was about? Did you dislike the presentation style?

<comment><USER8> okay, I dug up my amazon review again. It was "Functional Differential Geometry" and my main complaint was, that they claim to replace a fuzzy mathematical notation with a Scheme DSL which would make things more clear. In the end, it all felt like they replaced mathematical notation with one that THEY were just more familiar.

I am a scheme/lisp/clojure fan by heart, so it definitely wasn't the parens.

</comment></comment></comment></comment></comment><comment><USER10> There is also the sequel "Learn Quantum Mechanics with Haskell"[0].

[0]: [https://arxiv.org/abs/1611.09471](https://arxiv.org/abs/1611.09471)

</comment><comment><USER11> "Learn <subject> by Programming in <language>" would be a popular series of books. I hope someone writes them.

<comment><USER12> I recommend "Music for geeks and nerds", which is an intro to music theory/composition with python

[https://pedrokroger.net/mfgan/](https://pedrokroger.net/mfgan/)

<comment><USER11> Looks interesting. Music theory and harmony would be good topics to approach with computers.

I think that there could be books on poetry (analyze meters, language, cross- references, symbolism, poet connections), literature, biology, math, psychology, sociology, economics, ecology, chemistry, etc. through programming.

Some of those exist, but there should be more.

</comment></comment></comment><comment><USER13> So the Haskell version of [1] (in scheme)

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

[Free book] [https://mitpress.mit.edu/sites/default/files/titles/content/...](https://mitpress.mit.edu/sites/default/files/titles/content/sicm_edition_2/book.html)

<comment><USER14> Never heard of that book. I enjoyed SICP a lot so if this is anything like SICP was then I would be very happy.

<comment><USER15> Can you share your experience with sicp? I'm self taught in JavaScript, go, python, ruby and taken Coursera for algorithms and read up on the operating system. Will sicp help me?

<comment><USER16> One odd thing for me was that example problems seem to taken from physics and engineering. Which is natural for the authors and the time -- computer science departments typically started out as part of the Physics or Engineering departments.

One of the first examples is Newton's method for approximation. Which many beginning programmers have never encountered.

<comment><USER17> In particular CS at MIT ~was~is in the EECS department. MIT also begins with calculus (18.01), not algebra or pre-calculus or anything else. Newton's method, at least in my undergrad (Georgia Tech, not MIT), did introduce Newton's method at some point (I cannot remember the context, but I do remember it in my first or second calculus course). Since SICP students would have taken or be taking Calculus at the same time, it wouldn't be a stretch for them to have seen those sorts of problems already.

<comment><USER3> cs at mit _is_ in the eecs department.

<comment><USER17> Oops, yeah. That wasn't supposed to be past tense.

<comment><USER3> haha. no worries. :)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> As a physicist I really really enjoyed this. Really cool. I have a swift library (using Foundation's Measurement API) that I use for so much of my calculations and the one really important thing that has helped me solve problems is the type system. Units are types and I see a lot of young physicists students make mistakes where if they just looked at the units they'd have gotten it right. Physics is some sense just dimensional analysis. This library would be great if it were able to add unit types to really ensure that people understand _why_ a formula is the way it is.

</comment><comment><USER19> Somewhat related, does anyone have a reccomendation for learning Newtonian Physics? I took a semester as an undergrad, but I didn't understand it as well as I would like.

<comment><USER20> Feynman lectures -> Landau Lifshitz, when you can make the jump.

This will show you how to do the physics, then (Landau Lifshitz) show you how to reformulate this physics (again, it is actually in the feynman lectures too) in the terms we use in modern physics (Variational methods etc.)

<comment><USER21> Feynman lectures are excellent for physical intuition but if someone doesn't have a few years of practice with physics it will be difficult to get much out of it. Feynman also doesn't have a lot in the way of problem solving, even with the companion problem solving book.

With that in mind, Landau/Lifshitz is an entirely different class. I'm a practicing astrophysical theorist and I would never claim to have grokked these volumes in anything nearing completeness. A serious post-PhD program of study can be undertaken to understand to the finer points of those books; this is a pursuit that would challenge any practitioner. (I place _Physics of Shock Waves and High Temperature Hydrodynamic Phenomena_ by Zel'dovich and Razier in the same category of extremely information dense Soviet tracts on physics.) They are incredibly valuable, although I do think there is a bit of an element of "if you don't know L/L, you aren't a _real_ theorist."

I think that recommending these texts is great for someone down the road, but if someone hasn't even had a full year of intro physics recommending these is not appropriate. Intro-level textbooks exist for a reason - not all of them are cheap, watered down versions of the "real stuff." (Some are, of course.) There are also some texts I've found (but don't remember, unfortunately) in the computer vision community that introduce some physics that would be great for someone with a computer science/engineering background.

edit: "cheap" as in "cheap feeling" not inexpensive, as most of those intro texts are more expensive than the graduate level

<comment><USER20> The first L&L book is what I'm thinking of: It's actually pretty manageable. I'm talking out of my ass beyond here in the series, I don't have any others in physical form so I've read bits of QM and _The classical theory of fields_

The downside to them is that they don't come into contact with the "mathematical" physics side e.g. Treatment of Lagrangian/Hamiltonian formalism through differential geometry.

</comment></comment></comment></comment><comment><USER22> Matter and Interactions [1] is a great introductory physics course that (among other innovations) makes extensive use of simple simulations (by students).

Here [2] is an example of a program, complete with 3D graphics.

[1] [https://matterandinteractions.org/](https://matterandinteractions.org/)

[2] [http://www.glowscript.org/#/user/GlowScriptDemos/folder/Exam...](http://www.glowscript.org/#/user/GlowScriptDemos/folder/Examples/program/BinaryStar- VPython/edit)

</comment><comment><USER23> " In electromagnetic theory, the type signatures of functions that calculate electric and magnetic fields clearly express the functional dependency on the charge and current distributions that produce the fields"

Maybe a student learning this will go on to make a HDL for analog circuits in Haskell that are easier to get correct or simulate for being in Haskell. Prior work includes using Haskell for digital design (i.e. Bluespec) and non-Haskell HDL's for analog components. There's definitely more possibilities for developing or modelling electronics in Haskell. :)

</comment><comment><USER24> I've seen this before and it's terrible. Haskell's type system is terrible for this, ie. instead of plain vanilla operator overloading they have (^+^)... I once played around with a way to automatically track units when writing code like this, and I gave up on Haskell, doing it in C++ was much easier/sane.

[https://github.com/mtrencseni/physcode](https://github.com/mtrencseni/physcode)

<comment><USER25> > Haskell's type system is terrible for this, ie. instead of plain vanilla > operator overloading they have (^+^)...

Haskell's type system does not prevent you from overloading the + operator. It's the standard library ("Prelude") that defines + to only work on numbers, and not on vectors, but with Haskell's type system allows you to define + to do anything you want.

<comment><USER26> Yes indeed. Not only is it possible to overload + but Haskell's _type system_ has absolutely nothing to say on the matter.

<comment><USER24> Yes but if you want to use libs, and they don't do it this way, you're f--ked. This is one of the things I ran into.

<comment><USER27> Well, no, you're not "f--ked", there's just a pile of boilerplate. Not fun - and likely not worth it for the marginal benefit of being able to reuse + that way - but plenty possible.

And for what it's worth, I certainly agree that the way Num is structured is a wart in Haskell, and I think the previous two commenters agree. It's just that we should be clear about where the blame lies - and that's not the type system.

</comment></comment></comment></comment></comment><comment><USER28> This 1994 paper (using Scheme) might be pertinent:

Fields in Physics are like Curried Functions or Physics for Functional Programmers: [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.49.1...](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.49.1181)

</comment><comment><USER20> I find this is more of a distraction than abstraction at the moment, to be honest.

How would this approach generalize to more modern physics?

</comment><comment><USER29> Haskell seems to be the language to learn if you're into physics, math and blockchains. I feel exactly like I did right before I became a web developer. I felt it was a no-brainer to learn Javascript. Is Haskell a no-brainer for 2025?

</comment><comment><USER30> Very interesting Paper, though i would really want to see if games like Besiege could actually be used to teach classical Physics.

</comment><comment><USER31> Are the lecture notes for the class available anywhere?</comment>


Ask HN: Someone to help Google Maps API financials of a food deliverability app - <AUTHOR> Gday all,
In speaking with Google, it appears we need just 4 of their Maps API suite for our MVP, including:
* native dynamic * geo coding * directions * distance matrix
I'd like to be able to have someone here on HN with experience in this, to be able to publicly do some "back of fag packet maths" to assume we have 1000 users wanting to order food with our app open and notifying them until their food arrives and showing them live in our app, where their food trucks are (north American only for the MVP).
Assuming we have 100 restaurants signed up with us with 2 drivers on the road each..
And assuming we want each restaurant owner to also be able to check the live location of its drivers..
I really need to be able to know how many pings (hits) to those 4 API's are involved for live features, so I can even begin to work out the financial models!
Please HN, you're my only hope..
TIA! <comment><USER2> I really need to be able to know how many pings (hits) to those 4 API's are

Why you just don't expand your assumpsions more ? How many API calls is each persona using ? How many users are each persona ?

And you got some ball park numbers..

All the best</comment>


Introducing Zeal – Breaking the norm of company culture - zeal-technology http://zeal.technology <comment><AUTHOR> This feels a little dehumanizing to me. As a manager and someone tasked with helping build company culture, pushing that work off to a chatbot seems like an abdication. As an employee, I value having a relationship with my boss where I can convey concerns and where he elicits them. Anonymous feedback absolutely has its place, but this seems targeted at replacing regular 1:1 bidirectional feedback, which is an incredibly important part of good culture.

<comment> zeal-technology We do not aim to replace relationship between manager and employee. In fact our goal is to help strengthen the relationship. Believe it or not many managers do not have the proper training when becoming a manager to implement meaningful 1:1 meetings to solicit feedback and gauge how their people are feeling. We aim to better track and improve this relationship with gathered metrics so that managers never miss a beat. We also acknowledge that many people are not comfortable giving feedback in a one on one or publicly so our goal is to provide a channel for them to do so comfortably and productively. We have seen teams address feedback that has come through Ava and even implement and improve parts of their culture that management had no idea was an issue for its employees.

With that said, Ava is meant to strengthen relationships on the team and help the team collaborate when it comes to company culture. She even provides metrics on how relationships are within the company.

</comment></comment><comment><USER2> My two cents: Not sure what "Breaking the norm of company culture" means, but a company culture can be an important way to communicate the core values of a company. "Measure employee engagement" which is elsewhere on the website communicates the purpose much more clearly. Until I read your meetava page I thought this was some kind of replacement for company culture. Best of luck!

<comment> zeal-technology Thank you for the encouragement! :) We are actively working on fixing our message on the website to be more direct and clear.

</comment></comment><comment><USER3> Closed the website after a few unfruitful attempts at figuring out what it was about without watching videos.

Not nice.

<comment> zeal-technology sorry to hear that we will look at making some adjustments to come across more clear without the video

<comment><USER4> Honestly, a paragraph saying something like "Quarterly feedback reports are time-consuming, interrupt workflow, and often get put off or forgotten entirely, and waiting three months to get useful data prevents you from being proactive about changes. Zeal polls your employees via slack, getting data more often and taking less of their time and attention, allowing you to get more feedback faster and respond quicker than ever before."

Other feedback: if you used the Slack feature that lets you put buttons in messages this would get _even more_ zero-friction than before because people could just click the opinion they had. Just a thought.

<comment><USER5> This is absolutely amazing feedback. They should send you a check. I was uninterested until reading your pitch.

</comment></comment></comment></comment><comment><USER6> Suggestion to stop using the same fucking stock images with the same fucking benches everybody else is using to symbolize "cool company".

<comment> zeal-technology Noted :)

</comment></comment><comment><USER7> There is no such thing as good or bad company culture. The culture either supports the strategy or does not. Warm, fluffy and nice is an option, but there are others. A real pity the huge body of literature on this has been ignored.

</comment><comment> zeal-technology Feel Free to ask us any questions here!

<comment><USER8> It sounds like 'Ava' will need to interrupt employees and prompt for feedback on some frequent recurring basis in order to provide what your marketing describes as 'realtime' results. How are you going to balance this distraction and annoyance against your product requirements?

<comment><USER4> My experience with doing our own internal employee satisfaction reports is that they generally tend to be just enough work that I have to go out of my way to do them, or rather, stop saying "I'll do that later".

On the other hand, I go and check Slack every now and then, clear out all my unreads, and then go back to work. If part of that process is typing '4' into one of those windows then it's basically zero-friction from my perspective.

In other words, as long as getting a Slack message doesn't already interrupt, distract, and annoy people, neither will this, and if it does then you can tune your Slack notification settings to handle that. Turn off push notifications for the bot and you'll only see/answer the question when you go into the app to clear out unreads.

</comment></comment></comment><comment><USER9> Your CTA is missing the word "Again" at the end. /s</comment>


Against TDD - roman-holovin http://neopragma.com/index.php/2019/09/29/against-tdd/ <comment><AUTHOR> For as much as I've heard about TDD over the years: in my education, articles, and mentions of it in industry -- I have yet to see anybody I know use it.

You can't design your entire interface up front. Too much handwaving. You'll start coding, and realize you aren't testing the right things, until after you write the code, which defeats the purpose of writing the tests first.

The article says many people don't use TDD correctly, or they try to use it in the wrong situations. If it was more broadly applicable, I think it's safe to say I would've encountered a situation where it was useful. If it's the case where there's a limited set of situations where it is applicable, the topic doesn't deserve as much mindshare as it receives.

<comment><USER2> I've used it for almost 2 decades now. The general rule is:

Don't write tests until you're sure about your design and interface. If you're doing exploratory coding, you write tests later. If you're adding features to something that already exists, you're more likely to write tests first.

The end target is roughly the same: 80-90% test coverage. But you'll waste a lot less time throwing test code away.</comment></comment>


BlackTree Visor 1.6 = a Quake like console (Terminal.app) - <AUTHOR> http://github.com/darwin/visor

<comment><USER2> i love Visor. when I installed it, there is not a day that i do not use it...</comment>


It's OK Not to Use a Smartphone - <AUTHOR> http://www.wsj.com/articles/its-ok-not-to-use-a-smartphone-1461780160 <comment><USER2> I'm finding myself closing social media accounts and leaving my phone at home more and more often. Mainly, it helps me get through a boring day at work. It's nice to have web radio when corporate firewalls exists.

I wonder what the rest of hackernews feels about this. It seems the whole tech economy is switching towards services that are firmly placed in mobile computing.

<comment><USER3> I took the gmail client off my phone, for various reasons. One was that I wouldn't write people back after reading their email on the phone, and it'd be a few days. I'm cutting back on my Facebook time too, trying to limit that to a full size computer.

I ought to do something about this site... ;)</comment></comment>


Virgil: Sentiment Analysis for Chatbots - <AUTHOR> http://www.getvirgil.com/ <comment><USER2> This is a interesting insight into the field of bot related analytics.

Are there any good articles people know of the metrics of interest for bots?

<comment><AUTHOR> Thanks for checking it out. We're bot builders ourselves and are building tools we wanted to exist.

We'll be writing about our learnings from building and using Virgil very soon.

<comment><USER2> I feel like instead of "sentiment analysis", which is the technical purpose, you could reframe it. The idea of bot dissatisfaction detection or bot interaction error detection would seem more encompassing.

<comment><AUTHOR> Thanks for the feedback, it's very much appreciated</comment></comment></comment></comment>


Show HN: Blackgate – A Simple API Gateway Application - <AUTHOR> http://pythonhosted.org/blackgate/ <comment><USER2> some feedback on the documentation...

From the intro, I don't fully understand what this is. Is it a web server, is it a reverse proxy, is it for microservices?

Also, you mention Kong and Nginx+Lua without drawing too much distinction. If those are alternates, why would someone choose to use this over those alternates?

<comment><AUTHOR> Thanks for your feedback. I am keeping on fixing documentations...

And yes, Blackgate is a reverse proxy for microservices. The reason not using Kong is because if you want to start a Kong cluster, you have to run a bunch of dependencies in several nodes, like Nginx, PostgreSQL, etc. Blackgate is much simpler in this case. Write config, and Run instance. Nothing more.

I believe the architecture is not built in one-day. In early state, we can choose a simpler tool to avoid over-engineering.

<comment><USER2> Cool, being a specialized simple tool is a good differentiator. Maybe a link to the source code too. Usually when I check out a new project like this I like to see what language it's written in and look under the hood a bit.

<comment><AUTHOR> First post in SHOW HN. So lack of experience :)

This is the repo: [https://github.com/soasme/blackgate](https://github.com/soasme/blackgate) Written in Tornado.

</comment></comment></comment></comment><comment><USER3> I did not see a link to the implementation on the page.

<comment><AUTHOR> Thank you, brudger.

I have added some useful links in the left of documentation page.</comment></comment>


Essential C (2003) [pdf] - <AUTHOR> http://cslibrary.stanford.edu/101/EssentialC.pdf <comment><USER2> I've gone through a lot of exercises[0][1] from this site especially on how to implement a linked list in C. The time spent from the tutorial was absolutely worth while. I feel happy and satisfied with my self after solving one problem at a time.

For those who already know the syntax of C but wanted to learn more, the links I mentioned is a good exercise and opens up a lot of possibilities on what you can implement. You'll soon be able to realize the importance of linked list and why you'll want to use a linked list instead of just plain arrays.

[0] - [http://cslibrary.stanford.edu/103/LinkedListBasics.pdf](http://cslibrary.stanford.edu/103/LinkedListBasics.pdf)

[1] - [http://cslibrary.stanford.edu/105/LinkedListProblems.pdf](http://cslibrary.stanford.edu/105/LinkedListProblems.pdf)

<comment><USER3> To the contrary, linked lists are cache killers and hardly used nowadays. Or so they say on here, if I understand correctly.

<comment><USER4> > hardly used nowadays

[https://github.com/torvalds/linux/search?utf8=%E2%9C%93&q=IN...](https://github.com/torvalds/linux/search?utf8=%E2%9C%93&q=INIT_LIST_HEAD)

That's unbearable. They should just redo this in JavaScript. That's what everyone uses nowadays. Or so they say on here, if I understand correctly.

<comment><USER3> I tried to appreciate your response, but I cannot fairly judge the code. For example, those could be performance uncritical parts of code or remnants of 20 year old code where the cache was less effective than now. Are 2000 search results a lot in a source of this size?

Cache, as opposed to 20+ years ago, or whenever the pattern was developed, is indeed a thing that everyone is using just now.

</comment></comment></comment></comment><comment><USER5> Don't use this. It's really rusty and teaches bad habits superseded by C99.

Here's a proper reference on C99 and C11:

[http://en.cppreference.com/w/c](http://en.cppreference.com/w/c)

And see also reallocarray.

<comment><USER6> Out of interest can you be more specific about the bad habits it teaches?

<comment><USER7> And is there a similar resource for current C standards?

</comment></comment></comment><comment><USER8> For many of these examples, there's a debugger called "ddd" that can graph structures and can be useful.

<comment><USER9> I want to love ddd, really I do, conceptually it is awesome and beautiful. In practice it is (IME) buggy (almost) to the point of uselessness. It's been a couple of years since I last used it, but it was last updated around 2009 :-(

<comment><USER10> ddd isn't my day-to-day debugger but I sometimes break it out when I need to visualize a data structure or keep track of multiple values when doing some more difficult debugging tasks.

It's far from perfect but still a useful tool.

<comment><USER9> Oh for sure, I've used it a fair bit, it can be an absolute lifesaver for RE work or building simple VMs, for instance where you need to grok a structure in its fullness.

</comment></comment></comment></comment><comment><USER11> This is an enjoyable comment section (rare to say). The arguments about the pronunciation of the char keyword is all part of being C programmers. This is great. :-)

</comment><comment><USER12> This and "C traps and pitfalls" [1] were my favorites back to the days.

[1] [http://www.literateprogramming.com/ctraps.pdf](http://www.literateprogramming.com/ctraps.pdf)

</comment><comment><USER13> Nice to see strlcpy in there. How do we get it into glibc?

<comment><USER14> strlcpy returns offset of dst + len of src which requires strlen(src) which isn't optional and sort of sucks imo. Something very similar but that doesn't do strlen(src) such as [https://godbolt.org/g/Etpuhz](https://godbolt.org/g/Etpuhz) would be better.

<comment><USER15> Well one could argue that in C a string is not a string unless it's NUL terminated...

It's a choice they made to make it easy to detect truncation. If you don't care about the return value of strlcpy you can modify it to skip that part (which IMO will make it worse) but get rid of traversing src until \0 is found.

If you know you're working with non-terminated "strings" then just use memcpy instead.

If you're using proper functions you shouldn't end up with a non NUL- terminated string in the first place, although there are shortcomings in the commonly used libraries here unfortunately yes. It's hard to create a function that solves all problems.

(Side note: IMO The return value of latest OpenBSD version of strlcat (cat not cpy) is a bit weird when size is smaller than strlen(dst))

<comment><USER14> My issue isn't that src is or isn't NUL terminated (strings in c absolutely must be NUL terminated) its that strlcpy requires a call to strlen (probably inlineable with lto) which is going to be a lot slower than not. Also there is a bug in my 'strmcpy' in the last for loop it should be n && *s

</comment></comment></comment></comment><comment><USER16> The "C Programming Cleverness and Ego Issues" is a good bit of advice:

> Build programs that do something cool rather than programs which flex the > language's syntax. Syntax -- who cares?

Otherwise, I'd never heard of/seen the `#pragma once` preprocessor directive. (Not that I do _that_ much C programming!) How common is it to use this over include guards?

<comment><USER10> > How common is it to use this over include guards?

Not very. It works in Microsoft's C compiler but can't be relied on elsewhere.

<comment><USER16> Then why mention it over include guards, which are not discussed. Is Stanford a Microsoft shop, so to speak?

<comment><USER10> They might have used MSVC for their exercises on this course. They're not using some C99 features such as stdint.h, which were not available in MSVC when this article was written.

</comment></comment></comment></comment><comment><USER17> 'char ASCII character -- at least 8 bits. Pronounced "car".'

Pronounced 'car'? Bollocks. Pronounced char as in charred.

<comment><USER18> I've always pronounced it as 'care', not because of how the identifier is spelled but because it's the first syllable of the word 'character'.

I don't think there's a consensus between car/char/care, though, even among C's creators. But if there was, I would vote for 'care'.

I always thought SQL was another weird one. When discussing the language itself, you can say 'sequel' or 'ess queue ell' interchangeably, but when referring to a database that has "SQL" in its name, there is a DB-specific one true pronunciation:

* SQL Server: 'sequel server'

* PostgreSQL: 'post gress queue ell'

* SQLite: 'sequel light'

* MySQL: 'my ess queue ell'

There's no complete consensus on any of those- just a preponderance of one, or an officially endorsed pronunciation in a FAQ someplace.

I've also heard 'my squeal' for MySQL, breaking out of the 'sequel'/'ess queue ell' duopoly altogether.

<comment><USER19> > because it's the first syllable of the word 'character'.

Except the first syllable of 'character' is neither 'car' nor 'care', unless you have a really weird accent or are intentionally making fun of the English upper class.

PS: I always liked "squirrel" for SQL but sadly that one never got much traction.

<comment><USER20> What's going here is that most Americans have what's known as the marry-merry- Mary merger[1]. Virtually all English speakers outside of North America, as well as some Americans, mostly on the East Coast, pronounce the vowels in these three words differently -- marry is pronounced /mæri/ (/æ/ is the vowel in "cat"), merry is /mɛri/ (/ɛ/ is the vowel in "pet"), and Mary is /meri/ (/e/ is the vowel in "bait"). In those dialects, any vowel can proceed an /r/ that's intervocalic (i.e., both preceded and followed by another vowel), so /r/ acts like any other consonant in that sense.

However, in most American dialects, marry-merry-Mary are all merged and pronounced identically (IPA: /mɛɹi/, though the exact vowel isn't important here, and all three vowels generally sound the same to merged speakers). Furthermore, the first syllable of all these words is usually pronounced the same as the vowel in mare (/mɛɹ/).

So let's put this together. The word "care" is pronounced /kɛr/ in both merged and unmerged dialects (or /kɛː/ if you don't pronounce the /r/ there). In unmerged dialects, the word "character" is pronounced /kærəktər/, so it doesn't make sense that you'd truncate it to /kær/, because /ær/ (or /æː/) at the end of a syllable doesn't occur in any English dialect[2]. In merged dialects, however, "character" is pronounced /kɛrəktər/, so it makes sense to truncate it to /kɛr/, which is a homophone of "care".

[1]: [https://en.wikipedia.org/wiki/English- language_vowel_changes...](https://en.wikipedia.org/wiki/English- language_vowel_changes_before_historic_/r/#Mary.E2.80.93marry.E2.80.93merry_merger)

[2]: Except Irish English, see [https://news.ycombinator.com/item?id=11673067](https://news.ycombinator.com/item?id=11673067).

[3]: I speak a merged dialect, and pronounce "char" as /kɛr/ when I'm reading C code.

<comment><USER21> Your post looks interesting and might well be 100% correct but I don't know - nor do I know anyone who knows - what the various little pronunciation guides or whatever they're called mean. It's why people tend to say "car as in carpet".

<comment><USER22> It's IPA. It's the closest thing we have to an actual way to write down how people pronounce things which has any chance at all of being useful.

This "'foo' as in 'bar'" stuff is worse than useless most of the time, as you've just been shown.

<comment><USER21> No, "car as in character" is still. Car as in carpet, char as in chart - simple and doesn't require a course in IPA, which may I remind you precisely nobody understands.

<comment><USER22> > a course in IPA, which may I remind you precisely nobody understands.

Plenty of people understand IPA.

> No, "car as in character" is still.

It's still completely incomprehensible unless you know which vowel sound is meant, which is the whole point of this sub-thread.

<comment><USER21> I don't know what happened to my post but i meant "car as in character is stupid/ambiguous". But it's perfectly possible to understand "car as in carpet" and it's generally possible to find a similar pronunciation of a sound.

"Plenty of people" is misleading. Plenty as in thousands, millions of people worldwide, possibly, not not plenty as a percentage of the english people world. I'd be surprised if more than 5% of english speakers look at an IPA description of a sound and do anything other than go "what the fuck does that mean?".

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> This predates the stdint.h header, which gives you int32_t and so on.

<comment><USER23> Sort of. The copyright is 1996-2003. <stdint.h> was introduced in the 1999 ISO C standard.

But as of 2003, support for C99 wasn't very widespread, so omitting <stdint.h> was understandable.</comment></comment>


Ask HN: Why x-pack like tool is not in opensource yet? - <AUTHOR> X-pack like tool is still not in open-source even after so much popularity of ELK stack? <comment><USER2> X-Pack will be OSS with Elasticsearch 6.3, although you'll still need commercial license to use it. More info at [https://www.elastic.co/products/x-pack/open](https://www.elastic.co/products/x-pack/open)

Code is at [https://github.com/elastic/elasticsearch/tree/master/x-pack](https://github.com/elastic/elasticsearch/tree/master/x-pack)

Edit: If you want to secure your cluster, you can take a look at Community Edition of Search Guard: [https://github.com/floragunncom/search- guard](https://github.com/floragunncom/search-guard)</comment>


Hello browsers, this is how clearing history should be done - <AUTHOR> http://aentan.com/design/hello-browsers-this-is-how-clearing-history-should-be-done/ <comment><USER2> Apparently, Firefox is supposed to handle this for you without any action on your part:

[http://blog.bonardo.net/2010/01/20/places-got-async- expirati...](http://blog.bonardo.net/2010/01/20/places-got-async-expiration)

According to that post, Firefox now detects your system specs and chooses an appropriate history expiration time. The post also details a preference that allows you to tweak Firefox to retain a specific _number_ of history entries (rather than a certain age).

<comment><USER3> Yeah, but that doesn't actually reflect well on Firefox- since the Awesomebar, most computers not specced for development couldn't deal with more than a couple weeks of history without Firefox becoming worthlessly slow.

</comment></comment><comment><USER4> I rely almost exclusively on my history (that's why I can't use Chrome with its "less-than-awesome" url bar (compared to Firefox), but that's another story.)

Anyway, a much better way would be to clear by frequency of visit:

        . all
        . all but visited daily
        . all but visited weekly
        . all but visited monthly

or by date of last visit

        . all
        . all but visited during the last 24 hours
        . all but visited during the last week
        . all but visited during the last month

EDIT: like said below I never, ever, should have to even think about this, the user is not a garbage collector.

<comment><USER5> I ended up writing a query to delete duplicate history entries older than X days from my Firefox history to solve the slowness problem, I would imagine you could do something similar if you really wanted to remove all but visited during X.

</comment></comment><comment><USER6> No, we shouldn't have to remove our old history to speed up our browser. The UI as it is now, is good (like you said, for porn). The browsers should remove the old history by themselves when needed.

<comment><USER7> Better: store all history, but search (from Omnibar) only the recent NNNN items.

<comment><USER8> Indeed. The sensible thing is to use caching and avoid doing long-running operations in real-time. When the user presses a key the browser searches through a small cache of recent urls, if there is a delay before pressing the next key (say a second or so) then that triggers a more thorough search through the entire history.

<comment><USER9> It is incredibly annoying for the suggestion list to change after its first appearance. You may have been about to select a particular URL when it changes unexpectedly, and you end up navigating somewhere you hadn't intended.

<comment><USER4> Wait until there's a significant pause in typing before updating. If the user interact with the list (keys or mouse) then the browser should not modify it, until the user type again.

</comment></comment></comment></comment></comment><comment><USER10> > On Safari, you can only clear all your history.

This is wrong. On Safari, you can open Show All History and delete individual visits in your history (just select it and press delete). Or you can just go ahead and delete each date groupings, use search to delete only certain sites, etc. This is the same for Firefox, but I believe the ability to do this is not present in Chrome.

I found this to be much more powerful than Chrome's, since many times I want to delete browsing history for certain sites, not for certain period of time. (But Safari's UI allows me to delete both.)

<comment><USER11> Safari's history editing is really powerful. Perhaps the confusion arises because this functionality isn't obviously available from the History tab (you have to "Show All History" and edit from there).

</comment></comment><comment><USER12> Browsers already get rid of the oldest pages first. And since pages are refreshed when you visit them, that means the least-frequently visited pages will be forgotten first.

Firefox has a heuristic based on memory size to keep the history fast. [http://blog.bonardo.net/2010/01/20/places-got-async- expirati...](http://blog.bonardo.net/2010/01/20/places-got-async-expiration) But you can go to about:config and change places.history.expiration.max_pages if you want to get rid of old pages faster (or slower).

</comment><comment><USER13> A solution to this would be to not have the omnibar scan through the _entire_ history when typing in it. Instead, if the history does become too big, it should only wade through frequently visited pages and pages visited in the past month (or whatever is the best tradeoff for speed).

</comment><comment> mike-cardwell Why is there a noticeable delay? With a proper index, even slow hardware should be able to deal with histories with millions of items in...

</comment><comment><USER14> Yeah, Chrome's history options are weird. Why would I want to delete newer stuff first? It really should be the other way around--older stuff first. Or better yet, an option to delete individual items.

When I'm researching and clicking links left and right, I often reach a lot of dead ends. Because Google search is so good, I rarely bookmark the site once I find it, instead relying on the omnibar. Unfortunately, the omnibar always suggests the wrong entry in the history. I want to delete those bad entries so they don't show up in the omnibar.

<comment><USER3> You want to delete recent history because you're covering your tracks (porn, "how to get a divorce", etc). Those history clearing options predate private- mode browsing.

They don't have expiry because the browser makers figure if it gets slow, it's a bug, and I'd bet most browser developers wind up trashing their profiles all the time anyway.

</comment></comment><comment><USER15> The fact that you need to worry about history at all for performance reasons is a bug. The fact that typing got slower over time is a regression -- Chrome was carefully designed to specifically not do this. I've notified the appropriate people.

</comment><comment><USER16> "clear last x hours" has been replaced for me with Chrome's anonymous tab almost entirely.

</comment><comment><USER17> Firefox already handles things the way the author wants. One should not assume Firefox functions like Chrome and probably should actually try?

Preferences => Privacy: Clear your recent history * last hour * last 2 hours * last 4 hours * today

And you can select if you want to clear cache, passwords, etc or everything of course.

<comment><USER18> This is not what the author wants. The article includes the sentence "Firefox lets you clear an hour, two hours, four hours and everything." which leads me to believe that they did actually try.

What is desired is clearing everything BEFORE X/Y/Z hours/days ago.

</comment></comment><comment><USER19> I would find it useful to be able to not include sites in the history. I don't need gMail, fb, picassa, sudoku and many others in history.</comment>


Mac System 7 in browser- hand coded, no emscriptem - <AUTHOR> http://www.metamage.com/apps/maxim/

<comment><AUTHOR> This is way smoother than the emscriptem version.</comment>


Messages by Google - <AUTHOR> https://messages.google.com/ <comment><USER2> Sorry Google. Not using yet another of your messaging apps. You'll just kill the product in 18 months or so.</comment>


Safari 4 to Include Site-Specific Browsers and Fastest-Yet JS - <AUTHOR> http://arstechnica.com/journals/apple.ars/2008/06/10/safari-4-to-include-ssb-feature-and-fastest-javascript-ever

<comment><USER2> I'm so torn between FF3 and Safari that I end up running them simultaneously. FF3 for development (firebug ftw) and Safari for speed and OS integration.

<comment><USER3> I pretty much stopped using FF3 when I learned that Safari has the equivalent of Firebug built-in (I run the nightly webkit builds, checkout nightshift)

<comment><USER4> _Safari has the equivalent of Firebug built-in_

Does it? Specifically, does it have a REPL and debugger? I looked a while back and didn't find any.

<comment><USER3> yes, it does, at least if you're running the nightly builds of webkit -- <http://www.macupdate.com/info.php/id/18700>

go to Preferences > Advanced and check the show develop menu.

</comment></comment></comment></comment><comment><AUTHOR> I don't much like the concept of "Site-Specific browsers" - that's what desktop applications and client-server models are for. But you definitely can't deny the appeal it has to Startup and "web 2.0" developers.

<comment><USER5> I think it's handy for apps you use all day, such as Gmail. It shows up in the Dock with a Gmail logo, if you quit Safari your Gmail doesn't go away, etc etc.</comment></comment>