Ask HN: What are the OSS alternatives to iOS/Android? - <AUTHOR> <comment><USER2> Long-term (1-2 years or so), keep an eye on Fuchsia. Nobody yet knows what Google's intentions are with this project relative to Android (which has a staggering installed base, btw, and is going to stubbornly stick around like a slightly less terrible Windows Mobile 6); right now it's just a research project. But it can apparently scale from tiny IoT sensors to ARM phones to x86 PCs.

[https://lwn.net/Articles/718267/](https://lwn.net/Articles/718267/) / [https://news.ycombinator.com/item?id=14002386](https://news.ycombinator.com/item?id=14002386)

EDIT: This just got downvoted to 0, unsure why...

<comment><USER3> My guess is that Google's intentions are to get rid of the GPL.

<comment><USER4> Maybe not directly - _my_ guess is that they want to get rid of the Linux kernel: the Linux driver model leaves Android upgrades held hostage by OEMs and SoC manufacturers who are incentivized _against_ old phones getting OS upgrades (planned obsolescence).

With Fuchsia, Google has a clean slate and can choose to have 'write-once' drivers with a stable driver interface across kernel/version upgrades.

<comment><USER3> > With Fuchsia, Google has a clean slate and can choose to have 'write-once' > drivers with a stable driver interface across kernel/version upgrades.

Which makes it easier to write proprietary drivers.

<comment><USER4> Writing once-off proprietary drivers for Linux is equally easy, no more, no less. Proprietary Linux drivers have the added downside of not supporting later kernel versions.

<comment><USER3> And most likely not supporting future kernel versions.

<comment><USER5> > > Proprietary Linux drivers have the added downside of not supporting later > kernel versions.

> And most likely not supporting future kernel versions.

Huh?

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Am I the only one who has decided that I'm more comfortable with iOS and an AppleID than I am with something like LineageOS and still having to have a Google account - even though I prefer Android?

I'm operating under the assumption that Apple is more privacy friendly than Google under pretty much any circumstance.

I've done the Cyanogen + F-Droid thing and it's just miserably inconvenient, and none of the "proprietary" alternative app stores have any sort of catalog to write home about.

<comment><USER7> >I'm operating under the assumption that Apple is more privacy friendly than Google under pretty much any circumstance.

I'm curious as to why...?

<comment><USER8> Because Google is primarily (not solely) an advertising / information company, so there's a financial incentive to sacrifice privacy.

Apple is primarily (not solely) a hardware / product company, so the financial incentives are different.

There's also a stronger history of Apple fighting for user privacy against government requests, etc.

<comment><USER6> Yes, this. If it's free, you're the product. Same reason I pay for Fastmail.

<comment><USER9> interesting phrase. did you coin it?

<comment><USER6> No, think I saw it on here first..but it's a pretty powerful phrase.

<comment><USER10> I saw it first on this comic: [https://www.ethannonsequitur.com/wp/wp- content/uploads/2011/...](https://www.ethannonsequitur.com/wp/wp- content/uploads/2011/09/facebook-and-you-pigs.jpg) (not on that site though, I searched for it on Google Images)

<comment><USER11> My understanding is that Andrew Lewis first said it.

[http://www.metafilter.com/95152/Userdriven- discontent#325604...](http://www.metafilter.com/95152/Userdriven- discontent#3256046)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> We need hardware that doesn't need to get upgraded every two years. AOSP doesn't cut it since Google inevitably stops building isos for their hardware and the community can't support a million devices. The whole market is sorely in need of generic drivers. The fact that I can pick up a PC from the nineties and install an up to date Linux proves that we're not there yet in the mobile world.

Is there a way currently to install baremetal Linux on a phone without emulating it? A small Linux, usb microphone and VoIP would get me 90% there.

<comment><USER13> > the community can't support a million devices

If anything the open source community is a lot better in supporting large numbers of devices than closed source has ever been. Witness the incredible hardware support in your average linux kernel. The only reason they're a bit behind the times is because hardware manufacturers are loath to open up their specifications to open source implementers.

> The fact that I can pick up a PC from the nineties and install an up to date > Linux

See, that's exactly the reason why this works.

<comment><USER14> As someone who still has an HP Touchpad, the unfortunate pattern of AOSP / Cyanogenmod / LineageOS support is the following:

1) One volunteer spearheads the development effort towards keeping phone/tablet/device X supported. 2) Various other people draw on the 90% base work already done by Lead #1, add their own wrappers, tweaks, etc, such that the community on the whole appears to be vibrant and bustling around development for device X. 3) Lead #1 eventually stops supporting the project because he gets a newer device. 4) None of the developer's behind Lead #1's forks have sufficient technical knowledge to continue the base development without him, and all of their forks stop updating as well. 5) Community on the whole for Device X fizzles out.

I've seen it happen multiple times on XDA-developers forums. That dozens/hundreds/thousands of people are using an AOSP-based ROM on a device does not mean that the community necessarily has the technical knowledge to continue it without someone to steward the project. The volunteer leads do an incredible job, but at the end of the day, they usually only last as long as the device is the lead's daily driver--after that, they usually stop.

</comment></comment></comment><comment><USER15> I'm personally using LinageOS together with microG and F-Droid. MicroG is necessary if you don't have Google apps installed, to get push notifications. Unfortunately, it is still rather complicated to install.

[http://lineageos.org/](http://lineageos.org/) [https://microg.org/](https://microg.org/) [https://f-droid.org/](https://f-droid.org/)

<comment><USER16> I use lineage, but not microg. Things like Conversations poll effectively enough and it keeps me off the Google.

I feel like this isn't a solution for the planned obsolescence inherent in mobile devices though. Every release after Google officially drops support (and provides their own image) gets exponentially harder. The amount of things moving out of AOSP and into Play services grows every month too.

<comment><USER17> Conversations keeps open a TCP connection and the server pushes new messages. The only kind of polling is a ping to keep the connection alive which can be scaled based on how often it proves to be necessary on that connection. It works the same way as GCM. GCM isn't inherently more efficient than an app doing it, but with GCM it's one connection across all apps using it for push vs. each app doing it on their own. Conversations is also one of the few doing it very well without GCM. Most have a much lazier implementation of push or worse they don't do push at all and really do poll.

<comment><USER16> Thanks for the update and sorry for the misinformation. The performance is much better than the few apps I've seen advertise "non-GCM" so I definitely believe it.

</comment></comment></comment></comment><comment><USER18> The alternative is Android. Unfortunately the "alternative android" ecosystem isn't very good.

My dream would be an android "distribution", that doesn't rely on some murky "update by getting a new image somewhere if you're lucky enough that someone built one for your device". WOuld work more like a linux distribution (packages and updating) and is generic over a variety of phones. Challenge is probably how to handle drivers.

<comment><USER3> > My dream would be an android "distribution", that doesn't rely on some murky > "update by getting a new image somewhere if you're lucky enough that someone > built one for your device".

LineageOS ([http://lineageos.org/](http://lineageos.org/)) has OTA updates with UI: [https://1.f.ix.de/scale/geometry/710x500/q75/imgs/71/2/1/3/6...](https://1.f.ix.de/scale/geometry/710x500/q75/imgs/71/2/1/3/6/5/2/2/08-9193144f71369d06.png)

So your dream has already came true :)

<comment><USER19> Wow, that homepage provides zero information on what the project is/does.

Much more info on wikipedia - [https://en.wikipedia.org/wiki/LineageOS](https://en.wikipedia.org/wiki/LineageOS)

<comment><USER20> The 'About' page is a dictionary definition of the word 'Lineage': [http://lineageos.org/about/](http://lineageos.org/about/)

Wow

<comment><USER3> I think they are still working on the homepage (LineageOS is pretty new as it was CyanogenMod previously).

</comment></comment></comment></comment></comment><comment><USER21> SailfishOS [https://sailfishos.org/](https://sailfishos.org/)

UPD:

Jolla -- company behind SailfishOS (ex-Nokia people) [https://jolla.com/about/](https://jolla.com/about/)

<comment><USER22> I have not touched one of these myself but friends who did had many positive things to say about it.

Nevertheless, if Samsung can't push their Tizen into mainstream I doubt a tiny company from Finland can.

<comment><USER23> > a tiny company from Finland can

Based on what a _single person_ from Finland has achieved, I wouldn't be so sure. ;)

Seriously, though, why even mention the country of origin?

<comment><USER24> > Seriously, though, why even mention the country of origin?

Here's a zany answer: maybe they're proud of their country of origin. Hi- larious, I know, right?

</comment></comment></comment></comment><comment><USER25> The problem is that most of the hardware is not open. It is hard to get fully open software running in proprietary environments like mobile phones and networks. The fairphone might be worth a look though: [https://www.fairphone.com/en/](https://www.fairphone.com/en/)

<comment><USER26> I've wondered lately what exactly "not open" means in the hardware context, and why so many manufacturers do not make "open" hardware.

Can someone enlighten me? I do understand what blobs are, but I guess I'm not clear on why they're needed.

<comment><USER27> "I've wondered lately what exactly "not open" means in the hardware context, and why so many manufacturers do not make "open" hardware."

What you need to understand is that your mobile phone is not a single computer. There are _at least three_ computers inside your phone that have their own CPU, memory and ability to run code.

First, there is your SIM chip. Your SIM chip is a fully functional, standalone computer with its own CPU and memory. Your SIM card can (and does) run arbitrary java applets that can be forced onto it by your carrier _without your knowledge_. Yes, that is indeed as terrible and horrifying as it sounds.

Second, there is the baseband processor which handles all of the tricky real- time radio comms with the cell towers and which could not be preempted by your browser or other apps you would be running on the AP (see below). The baseband processor is not controlled by you, can be controlled by your carrier, and in many cases _has DMA control_ over the memory in your application processor (what you think of as your "phone"). Yes, you read that right - many, many mobile phones can have their physical memory directly manipulated by a baseband processor that they do not control. Remember that next time some cute "secure" messaging/encryption/marlinspikey/secretive communications app gets released.

Finally, there is the application processor which is the "actual" CPU and memory that you think of as "my phone" which runs things like the uber app and chrome and facebook.

We are sort of, kind of, getting closer to having a free/open stack on the _application processor only_. There are two other very powerful agents in your telephone that we have made almost zero progress in opening up. There are very powerful financial interests that stand in the way of opening those up.

<comment><USER28> You could get rid of two of those three computers, could you not, if you went for say an iPod Touch, as opposed to an iPhone. And then separately you got a dedicated WiFi hotspot. At least this decouples those functions into two devices and breaks the DMA link that you referred to.

<comment><USER29> I've heard long ago that the government (or whatever agency is responsible for this) won't license you to produce a phone if you don't put a baseband chip in your device. Don't take my word for it, I'm only sharing a vague memory.

Sounds pretty logical though. As @rsync said, there are very powerful financial interests behind the hardware backdoors in phones.

</comment></comment></comment></comment></comment><comment><USER3> Android (without Google Services) is FOSS. Check out [http://lineageos.org/](http://lineageos.org/) (successor of CyanogenMod).

As a replacement for the Play Store, check out [https://f-droid.org/](https://f-droid.org/)

<comment><USER30> F-Droid is cool but will lack lots of applications, even open source ones. I recently checked what it would require to publish my app there -- alas, can't do that since my app includes an API key that can't be published (according to the rules of the service in question), and F-Droid would need that[1].

[1] [https://f-droid.org/forums/topic/what-to-do-with-private- api...](https://f-droid.org/forums/topic/what-to-do-with-private-api-keys)

<comment><USER22> I think the response krt gave was fair enough:

\---

I dont get all that API key nonsense, you can search this board for our opinions on API keys. I'll keep this short:

If your app requires an API key and you withhold it (because you entered an agreement with the service provider), this basically makes it not buildable for 3rd parties in a useful manner. F-droid will not sign an agreement with whatever service provider you use nor will we withhold build information.

There are actually only two solutions:

1) Provide a way for the user (!) to enter API key or account information at runtime.

2) Provide a way for us to get the key at buildtime, e.g. there was one app where I had to download a pre-compile APK file, extract the key from it and re-use that key in our builds.. which sucked. Anyway, I dont see what's the difference to just providing the API key. If you distribute an APK, you distribute the API key (in one form or another) — since without it the app would not work… sigh.

<comment><USER22> Should also add the f-droid tries to build software that are truly open, i.e. can function without 3rd part closed services.

I think many times you can limit the FOSS version to not include functions such as leader boards to avoid such issues and no one will complain.

</comment></comment></comment></comment><comment><USER31> There is Tizen which is being led by Samsung

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

However news that one researcher has found 40 0-days for it doesn't really sound good:

[https://motherboard.vice.com/en_us/article/samsung-tizen- ope...](https://motherboard.vice.com/en_us/article/samsung-tizen-operating- system-bugs-vulnerabilities)

I remember reading about Plasma Mobile

[https://plasma-mobile.org](https://plasma-mobile.org)

But it looks like the latest phone they use as a Dev device is a Nexus 5x so it may be stalled/dead

<comment><USER32> Someone linked to two daily wtf on hn the other day and that to me shows tizen under the current management is not simply useless but actively harmful.

<comment><USER22> Didn't find it on HN, is this the daily wtf post you mentioned?

[https://forums.thedailywtf.com/topic/21368/samsung- insisting...](https://forums.thedailywtf.com/topic/21368/samsung-insisting-on- tizen)

<comment><USER32> Sorry, was on Mobile*

The story was Samsung's Tizen is riddled with security flaws, amateurishly written

[https://news.ycombinator.com/item?id=14036965](https://news.ycombinator.com/item?id=14036965)

</comment></comment></comment></comment><comment><USER33> The [http://puri.sm](http://puri.sm) people are trying to make an open source phone running their distro PureOS (based on debian). They even said on a podcast that they have removed or mitigated the binary blob issues. Apparently they are already working with Gnome developers to make Gnome work on a small screen and build the specialized phone software like a dialer.

[http://www.omgubuntu.co.uk/2016/10/purism-wants-make- truly-o...](http://www.omgubuntu.co.uk/2016/10/purism-wants-make-truly-open- source-linux-phone)

<comment><USER34> Sadly, it will fail. I spoke to the founder about the project and in my opinion he's underestimated the challenge. He said something to me like "all we need to do is solve the battery life issue". That's like saying, to get to space all we need to do is build the space shuttle. As far as efficiency is concerned, android is the only show in town. Debian won't cut it. What he does works for stuff you plug in, not for battery operated gadgets.

</comment></comment><comment><USER35> Jolla on a Sony Experia?

Sony put everything you need to run your OS on some of their Xperia phones on GitHub as part of their Open Device Program. Jolla which is going to become open source sometime has been successfully (in feburary 2017) run on one of the devices.

So in the near future, there is hope in that direction.

<comment><USER36> I second this, I'm pretty happy with my 1st gen Jolla, though it desperately needs an hardware update. To be able to get a terminal either on the device or by logging in with SSH to fix things or make changes is great.

Not all the UI components are open source (yet?) though it's pretty close to stock Qt; at least the base system is open-source, and that's more important to me – I think they want to prevent full rip-offs rather than lock down the system from their own users.

I've been critical of these computer-in-your-pocket claims a few years ago, but I can see now that if the hardware keeps improving at the rate it does, having a full Linux system based on something like Sailfish or Ubuntu Phone with a keyboard and screen attached could work out for a lot of scenarios.

</comment></comment><comment><USER37> If you want community based FOSS mobile operating system that is actively developed [0], Plasma Mobile is the answer.

I think the biggest issue is still device support.

[0] [https://mail.kde.org/pipermail/plasma- devel/2017-April/threa...](https://mail.kde.org/pipermail/plasma- devel/2017-April/thread.html)

<comment><USER38> Have you actually used Plasma? I would be curious to know your experiences if so.

</comment></comment><comment><USER39> My best bet would be to restart/re-instantiate a community around CyanogenMod/Lineage OS, Android being F/OSS after all. Though maybe the community around CM is still strong (I honestly don't know).

Question is, are you willing to spend money (or testing/integration efforts) on a community O/S for your phone in exchange for _knowing_ that you're not being spied on all the time?

I could imagine a model where you pay a reasonable price for a tested/supported third-party O/S, but maybe CM has shown this isn't economically feasible.

<comment><USER40> I don't remember android being floss since google bought it. My exprience of cyanogenMod is bad: support for the devices I owned was shaky to inconsistent through time. Then it turned into a commercial attempt at maximizing profit.

IMHO the effort put into cyanogenmod would have been better used if put into building an actual OS. Though this is a mostly unreachable moving target as devices get obsolete faster than one can add support for at best manufacturers do not help.

Right now I'm considering jolla/sailfish for the next time I buy a phone which hopefully will not happen before 4 or 5 years.

</comment></comment><comment><USER41> Well how about the PiPhone? :P [http://www.davidhunt.ie/piphone-a-raspberry- pi-based-smartph...](http://www.davidhunt.ie/piphone-a-raspberry-pi-based- smartphone/)

</comment><comment><USER42> My vote goes to [https://copperhead.co/android/](https://copperhead.co/android/)

I've been running it for some time now and I like it a lot. Support for a lot of phones? No. Wide range of apps available via F-droid? Decent.

I'm not a very appy guy though. Most of my needs are browser based.

<comment><USER43> It is not FOSS anymore

<comment><USER44> How do you mean?

<comment><USER45> The project has transitioned to a non-commercial license ([https://creativecommons.org/licenses/by-nc- sa/4.0/](https://creativecommons.org/licenses/by-nc-sa/4.0/)) until sustainable funding has been acquired. The code is still open source, but apparently asking to be compensated for work that improves the security of the entire Android ecosystem is too much for FOSS fanatics.

</comment></comment></comment></comment><comment><USER46> I was just reading about webOS[0] lately and it turns out LuneOS[1] exists and is supposed to work wherever cyanogenmod did.

[0]: [http://www.openwebosproject.org](http://www.openwebosproject.org)

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

<comment><USER47> I performed numerous security reviews of WebOS and frankly it was a bit of a problem. I never actually made it to the point of doing kernel exploitation since the numerous XSS vuln discoveries kept me pretty busy. What was unfortunate at the time is that the WebOS team didn't seem to take the XSS situation seriously even though XSS on that platform effectively compromised the entire UX. I made at least one POC which emulated WebOS trust dialogs. There's no need to break out of an application sandbox when you can make the application look like WebOS, complete with authentic looking authentication dialogs. I've not looked at it in several years, however. Maybe LuneOS has solved some of the core issues but I'd be skeptical as the whole OS was pretty well designed if your intention was to introduce XSS vulnerabilities.

</comment></comment><comment><USER48> To me the best alternative is [https://neo900.org](https://neo900.org). However, expensive it is.

They truly care about the privacy and redesign the hardware according to this goal.

<comment><USER49> This is what I'm waiting for, but in the meantime I'm still running Maemo 5 on an N900.

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

There's still a relatively active community going:

[https://talk.maemo.org/](https://talk.maemo.org/)

</comment></comment><comment><USER50> I placed a preorder for a Pyra [0]. I'm hoping it works well enough to allow me to replace my locked down Pixel.

[0] [https://pyra-handheld.com/boards/pages/pyra/](https://pyra- handheld.com/boards/pages/pyra/)

<comment><USER51> In mobile FOSS computing, Pyra is The Handheld PC, and GTA04 is The Smartphone. Both being developed partially by same people. Both working with generic recent ARM Debian Linux and recent kernels. Kernels have some non- mainlined parts due to scarcity of engineering resources, but all features are forward-ported on each release and even RC of mainline Linux.

My personal expectations from Pyra are very high.

<comment><USER40> I still have my openpandora from the first preorder batch, it delivered almost all expectations I had for it and sometimes even went beyond battery life got pushed further than 10+hours and had a memory upgrade.

I have no doubt the pyra will deliver.

</comment></comment></comment><comment><USER52> Ok, so Android is open-source as mentioned already by other comments.

Now the thing with Android is that, it is just a framework, so saying Android is Open Source is missing big points There are two major limits: 1\. What about apps? 2\. What about drivers?

Today, if you get an Android phone with Google Apps, especially Google Play Store, you have access to many tools that can be considered useful for everyday use, which you won't have with FOSS Android. Here are some examples:

With Play Store, you can have (mostly?) any IM, as long as you install the app going with it. The only possibility I know to do that with FOSS Android, is to use matrix or IRC, and have server-side libpuprle connectors.

With FOSS Android You don't have factorized push socket: Most apps pushing notifications on Android require GCM. But even if it doesn't require GCM, there is nothing fully open-source an app developer can use. All they can do, is open a socket to their own server, and deal with it, which is a huge battery-killer.

Many people are mentioning f-droid as an alternative to Play Store. I'm sorry, but I consider this a joke. I highly respect the work done on f-droid, but this is not a usable alternative. For instance, you want to save your SMS. We call that backup, but not every knows that. Well you search for "save sms" on f-droid. No result. You search for "save sms" on Google Play Store, the second result is SMS Backup+ which is open-source! You search for SMS, the result is on the first page. Same thing happen if you just search for "sms", QKSMS (an opensource SMS application) is much easier to find with Google Play Store than f-droid. Even to look for open-source apps, you're better off with Google Play Store! Again, I totally respect F-Droid devs, this is this way because of their choice of not tracking or saving any user information at all, which is legit. But then, some people might want something intermediary. Just counting the number of installations of an app can be really useful to better sort apps (SMS Backup+ and QKSMS really deserve to be among the top in the results for SMS).

Now, about the drivers. Yes Android is open-source, but good luck running a phone with a FOSS Android! At the moment, you have the choice with either replicant, which is old and missing gpu acceleration, or running a mainline Linux kernel with Mesa & stuff, but then you have no radio.

Though I have to mention that on the drivers side, Sailfish OS and Ubuntu phone have also those problems.

<comment><USER40> > Ok, so Android is open-source as mentioned already by other comments.

Is it ? I thought that only the AOSP part of Android was actually open source and not that useful by itself. I might be wrong here but my understanding is that the opensource in Android is mostly for show/marketing and is getting worse with time.

</comment></comment><comment> gingerbread-man It would be nice if there were a 100% free-software version of Android available, or a way to remove all of the proprietary blobs from an Android phone.

<comment><USER53> See Replicant: [http://www.replicant.us/](http://www.replicant.us/)

Unfortunately it is not well supported yet, as porting it to any given device seems to require rewriting several proprietary Android drivers.

<comment><USER54> Latest release notes are interesting. Latest supported Android seems to be Samsung Galaxy S3.

Looks like the core maintainer could benefit from donated android devices for Replicant to run on newer devices.

[http://blog.replicant.us/2017/02/replicant-6-0-development-u...](http://blog.replicant.us/2017/02/replicant-6-0-development- updates/)

</comment></comment></comment><comment><USER55> The ZeroPhone is based on the raspberry pi.

[https://hackaday.io/project/19035-zerophone-a-raspberry- pi-s...](https://hackaday.io/project/19035-zerophone-a-raspberry-pi- smartphone/log/51839-project-description-and-frequently-asked-questions)

Reddit AMA: [https://www.reddit.com/r/raspberry_pi/comments/5nwmfx/im_mak...](https://www.reddit.com/r/raspberry_pi/comments/5nwmfx/im_making_a_pipowered_opensource_mobile_phone/)

$50. Calling, SMS. Alarm clock, calendar, calculator, phonebook, file browser, web browser and music player. I expect these will be very simple given the screen.

</comment><comment><USER56> Well, it isn't Tizen [https://motherboard.vice.com/en_us/article/samsung- tizen-ope...](https://motherboard.vice.com/en_us/article/samsung-tizen- operating-system-bugs-vulnerabilities)

</comment><comment><USER57> This one could be an option [https://pyra- handheld.com/boards/pages/pyra/](https://pyra-handheld.com/boards/pages/pyra/)

</comment><comment><USER58> LinageOS + OpenGapps for a minimal Google Play Services installation (the "nano" flavour). Just make sure to buy a device that has a large userbase and good LinageOS community support [1]. I am using a $170 Xiaomi Redmi Note 3 with LineageOS and could not be happier with it.

[1] check out [https://stats.lineageos.org/](https://stats.lineageos.org/) for popular devices and also check the devices subforum on the XDA forums

</comment><comment><USER59> I've been using OmniROM ([https://omnirom.org/);](https://omnirom.org/\);) it was a fork of Cyanogenmod when they went commercial initially. Not sure what the difference is between it and LineageoOS or why the lineage people didn't just start developing for omnirom; maybe they still have political differences or something. Regardless, it seems to work well.

</comment><comment><USER60> You are at the point of 2002-2004 of Desktop OS - if you want to use a mobile OSS OS, you're just have to deal with lots of inconveniences. It depends on what are you looking for and what you find tolerable. I have been annoyed with the current paradigms of modern mobile OSes where I'm constantly bombarded with notifications and things that I need to keep up with. So for me, an usable OSS can have lots of drawback that I'm willing to sacrifice - I don't need any of the notifications or apps.

If you don't care about the aesthetic, your best bet is Lineage. It is Android without Google and you can still get lots of stuff done.

Personally, I came back to a cheap WebOS phone with a cheap plan and after I installed WebOS 2, it has been really usable. LuneOS is supposed to be the continuation of WebOS, but it's just not that usable yet - I see no way to sync with my Google account (which syncs fine with the 10 year old WebOS instance via Exchange). So I would keep an eye on the LuneOS development. For such a niche and small dev team, they have been continuing making improvements. Totally impressed by that.

</comment><comment><USER61> I've faced the same dilemma and ended up stuck in Android bc of one single app: Whatsapp. A phone is (still) mostly a communications tool and 99,99% of my contacts use Whatsapp as the primary tool to chat/call/share. So, unless I want to be an e-hermit I need a phone that runs Whatsapp.

(For a little while, there was an unofficial Whatsapp API which I used to bridge chats to my Firefox OS ZTE)

<comment><USER62> I read comments like yours and wonder what the other side looks like. I have never, ever installed WhatsApp on my phone. My life hasn't disintegrated, or even degraded - but that's exactly why I wonder.

Would my life be better if I use it?

<comment><USER61> I guess it depends on your cultural background. We latinos tend to be a lot more _connected_ with family and friends. It is also the economic incentive. In a poor country, a Whatsapp over wifi call is basically free. Furthermore, a key selling point for most carriers down here is: unlimited Whatsapp and Facebook.

</comment></comment></comment><comment><USER63> * FreeRTOS Pebble (Pebble LIVES!) [https://github.com/ginge/FreeRTOS-Pebble](https://github.com/ginge/FreeRTOS-Pebble)

* Tizen OS [https://developer.tizen.org/](https://developer.tizen.org/) [https://en.wikipedia.org/wiki/Tizen](https://en.wikipedia.org/wiki/Tizen)

Alternatively you could use Termux on Android to use the GNU/Linux ecosystem on your phone.

</comment><comment><USER64> Maru OS. It installs a debian system along-side Android, not sure if it's alternative enough though.

[http://maruos.com/](http://maruos.com/)

</comment><comment><USER65> [http://wiki.openmoko.org/wiki/Main_Page](http://wiki.openmoko.org/wiki/Main_Page)

Project seems to be abandoned?

</comment><comment><USER66> LineageOS with your choice of google apps. Easy to do with opengapps config file or "aroma" gapps: [https://github.com/opengapps/opengapps/wiki/Advanced- Feature...](https://github.com/opengapps/opengapps/wiki/Advanced-Features-and- Options#include-or-exclude-gapps)

</comment><comment><USER67> Plasma Mobile: [https://plasma-mobile.org](https://plasma-mobile.org) [https://community.kde.org/Plasma/Mobile](https://community.kde.org/Plasma/Mobile)

</comment><comment><USER68> Thought experiment: Say that I have a raspberry pi or similar. What hardware do I need to plug a sim card in and connect to a mobile network? Can I order it from a commodity supplier?

<comment><USER69> The Pyra is attempting to do this. [https://pyra- handheld.com/boards/pages/pyra/](https://pyra-handheld.com/boards/pages/pyra/)

</comment></comment><comment><USER70> Was there an official announcement on the killing of Ubuntu Phone? There was an official pause announcement, and it might as well be dead - is there an official status update?

<comment><USER71> [https://insights.ubuntu.com/2017/04/05/growing-ubuntu-for- cl...](https://insights.ubuntu.com/2017/04/05/growing-ubuntu-for-cloud-and- iot-rather-than-phone-and-convergence/)

</comment></comment><comment><USER72> Ubnutu Phone just works fine on a FairPhone2

</comment><comment><USER34> There is a group called Mediatek Android Developers. They make android work with some pretty low cost handsets.

</comment><comment><USER73> The next big OS is going to be Google Fuchsia, which runs on the Magenta kernel (not Linux) and runs apps built with Flutter.

Inb4 nay-sayers, but if you have followed Fuchsia for a few months and have seen the speed of development and just how many people and new technologies are involved, you will see why this isn't even a question.

<comment><USER38> Given Google's current track record for AOSP with bringing active development into Google Play and deprecating open source components, I am skeptical that it will be good for openness.

</comment></comment><comment><USER74> How easy would it be to mod the loading screen and basic UI/UX on Android?

</comment><comment><USER75> The problem isn't software. Let's say I have a dozen engineers to develop a mobile UI on top of BSD. What do we use? Nothing, Nada, rien. There is no real hardware. Even Linus can make a kernel, if there is hardware to develop it on! So software isn't the problem.

</comment><comment><USER76> Am I the only one who misses Web OS and now Ubuntu Phone?

<comment><USER77> Great point. I didn't know that Web OS was released as Open Source by HP, or that LG bought it... [http://www.openwebosproject.org/](http://www.openwebosproject.org/)

</comment></comment><comment><USER78> Android is open source: [https://source.android.com/](https://source.android.com/)

<comment><USER79> Portions of it, lots of it is not.

<comment><USER22> If you think that, how do you define Android?

<comment><USER79> There's AOSP admire android. AOSP is open source which is some components of the Android system - however a lot of Android is not just AOSP. A lot of it is Google web services and other proprietary stuff.

<comment><USER80> You don't have to use "Google Android" to use Android. LineageOS + F-Droid + microG is a very good setup, I use it on my phone.

The real problem is the hardware driver blobs.</comment></comment></comment></comment></comment>


Causing Terror on the Cheap - <AUTHOR> http://www.schneier.com/blog/archives/2010/11/causing_terror.html

<comment><USER2> The broken window fallacy <http://en.wikipedia.org/wiki/Parable_of_the_broken_window> as a parable was new to me. A good debunking of the justification that all this security activity is a net economic benefit to the US.

<comment><USER3> I read that comment too, but I am not sure 'broken windows' truly applies here. Although I believe there is net public harm from US post-9/11 "security" policies, when you consider that: a.) the spending being done on security is entirely public deficit spending not offset by tax increases or cuts in other departments, b.) the economy has been well below full employment (~58-62% employment-pop ratio during the period) and full capacity utilization (~68-81% capacity utilization during the period), c.) no other expansion of public employment and spending would have likely occurred in the past decade absent the 9/11 attacks (arguable, but there really isn't a political consensus for expanding the US welfare state), and posit that the 2000s growth rate would have taken essentially the same path absent the 9/11 attacks, then it would appear that much of the security theater policies have had a small medium-term stimulative economic effect (small because it is largely offset by increased consumer travelling expenses and time, dampening productivity). The three keys I mention above violate the pretext of the broken window fallacy (at least in the medium term, and probably in the long-term because of historically low interest rates). In a full employment situation, there would be significant deadweight loss, and in a balanced budget situation, there would be significant economic impact due to either increased taxation or offsetting spending cuts. But neither of those conditions applies to the recent US situation. The BWF assumes that the money would have been spent doing something else (more profitable), and I am pretty certain that will not be the case until the debt needs to be paid, which is unlikely to ever occur (I think the assumed future policy is to continue to roll the debt over until the singularity).

</comment></comment><comment><USER4> John Robb has been writing about these kind of tactics for a while, he calls it "Open Source Warfare": [http://globalguerrillas.typepad.com/globalguerrillas/2010/11...](http://globalguerrillas.typepad.com/globalguerrillas/2010/11/note- on-innovation-in-warfare.html)

</comment><comment><USER5> For a long time I've debated writing an article in a similar vein of this one by Schneier. I studied structural engineering in University and you would not believe how easy and cheap it is. With a solid iron pipe and the right knowledge you can kill hundreds of people and delay hundreds of thousands.

<comment><USER6> For the longest time, I thought about terrorism from a security standpoint. If you treat the US as a system to break, then you see a lot of weak points: bridges, trains, malls, etc (in other words, the stuff you see on 24). If you damage these, you could do a whole lot of damage to the US economy, kill a lot of people, etc. But then I realized something: destroying bridges doesn't cause fear in the same way that, say, flying a plane into a landmark building does.

I used to think that the terrorists were idiots that couldn't pull off a simple attack... now I realize just how good they are at what they do: causing fear. The point of terrorism isn't to kill, it isn't to cause direct harm in any way. Those are tools to make us scared, and we've all played right into it. I'll never forget exactly where I was when I found out about the attacks on 9/11, or any of the resulting protection mechanisms; they succeeded in their goals, probably more than they ever thought they would.

<comment><USER7> I think it's a mistake to lump all terrorists into one group. Different terrorist groups have very differing goals, moral systems, and levels of sanity.

The IRA, for instance, while an evil bunch of fuckers, would never attempt to kill thousands of people in a single attack, because they had clear and fairly realistic political goals and a strategy for pursuing them.

Islamic terrorists, on the other hand, for the most part appear to just like killing -- it's not too much of an exaggeration to say that their goal is more or less the genocide of every non-Muslim on the planet, and individually their goal is to die for Allah. This gives them a very different set of priorities to old-school terrorist groups like the IRA or ETA.

To summarize: the IRA wants to terrorise you to achieve a goal, but Al Qaeda pretty much just wants to kill you.

<comment><USER8> Then why have their attacks so far had the primary effect of creating panic when a couple dozen random bombs would both be easier to execute and cause more destruction? Why continue to attack planes — the area in which our paranoia is most concentrated — when legions of American-born madmen have proven that just pulling out a gun in a public place and shooting people is plenty effective?

It seems to me that they don't necessarily want us to die, at least not on any particular schedule — just to be so afraid that we won't be able to oppose them with any strength.

</comment></comment></comment></comment><comment><USER9> Terrorism is just guerrilla warfare against civilians and infrastructure. The goal is to get the most bang for the buck from cheap attacks.</comment>


Thunderbolting your video card - <AUTHOR> https://blog.codinghorror.com/thunderbolting-your-video-card/ <comment><USER2> If anyone is interested in eGPU for TB2, I recently wrote an article on my hassle- and hack-free Macbook build. Not nearly as powerful as this one, but still 4x as fast as my integrated 750M!

[https://news.ycombinator.com/item?id=13303912](https://news.ycombinator.com/item?id=13303912)

<comment><USER3> I thought I had read about a TB2 build here in the past. Thanks for the link! I've been considering a mid-level Mac mini to get back into the macOS game, and something like this would allow me to do away with my gaming rig (I don't do AAA games, but the ones I do play tend to require more than Intel graphics).

<comment><USER2> Caveat: the 1050 Ti is still an entry level card, but at least I can play modern games now. :)

When I upgrade again, I might opt for a molex-powered SFF card and hack up a Dell DA-2 adaptor like some people do.

<comment><USER4> Caution for the OP considering using it with a Mac Mini: there are no nvidia OS X drivers for the 1050Ti. You're stuck with 9xx or earlier cards.

And TBH, if you want this solution to boost a desktop computer, you're better off just building a Hackintosh. It may make some sense for a laptop, but i think it's still cheaper to build a separate gaming computer.

<comment><USER3> > _Caution for the OP considering using it with a Mac Mini: there are no > nvidia OS X drivers for the 1050Ti. You 're stuck with 9xx or earlier > cards._

Yep I'm aware, and most of my games don't have native macOS ports. The ones that do would run fine on the Mac's Iris graphics. I would be dual-booting via BootCamp for heavy lifting.

> _And TBH, if you want this solution to boost a desktop computer, you 're > better off just building a Hackintosh. It may make some sense for a laptop, > but i think it's still cheaper to build a separate gaming computer._

I already have A Windows 10 gaming desktop, my goal would be to consolidate into macOS for workstation duties and Windows 10 for gaming, and free up space on my desk. I'm not keen on building a Hackintosh or turning my current gaming rig into one; I've been there done that and it's just not worth the hassle. I also would prefer to run macOS on a real Mac just for the support side of things.

I would then be able to give my 16 year old niece the "old" gaming rig (it's a Skylake based system I just built a few months ago) as a massive upgrade from her Core 2 Quad. She's getting into computer animation and 3D modeling and needs something better.

<comment><USER4> I don't know about you, but I used to dual boot and i still have the Windows installation on my Hackintosh (which is beefy enough to handle gaming. Hint: don't buy the gaming hardware and try to make OS X run on it, buy hardware that works well in a hackintosh and is good enough for games instead.). In time though, I simply stopped playing the games that required me to reboot and now I only get stuff that runs on OS X.

Of course, it's easier if you have a very strong dislike for the current AAA games. I stopped touching anything from EA/Ubisoft long before i stopped rebooting for gaming.

</comment></comment></comment></comment></comment></comment><comment><USER5> What keeps the price high on these enclosures? In the past the assumption had been that it's because Intel is charging a lot for the TB3 controllers, but unless I'm reading it wrong, the prices on those look to be very reasonable (sub $10) at this point: [https://ark.intel.com/products/codename/56890/Alpine- Ridge](https://ark.intel.com/products/codename/56890/Alpine-Ridge).

Does anyone have a BOM estimate of this (or any of the competing) Thunderbolt 3 enclosures?

<comment><USER6> There are GPU enclosures with a lower price, for example the AKiTio Node for 270 dollar[1]. Since the new Macbook Pro, new GPU enclosures have been popping up everywhere.

[1] [https://www.bhphotovideo.com/c/product/1303819-REG/Akitio_AK...](https://www.bhphotovideo.com/c/product/1303819-REG/Akitio_AK_NODE_T3IA_AKTU_Thunderbolt3_External_Pcie_Box.html)

<comment><USER7> Good to know but doesn't really answer the question. The BoM of just the signal adapter is what I really want to know. Is it $5 or $80? The price of a power supply is a known factor, and boxes are cheap.

<comment><USER8> Add the PSU, box and other parts + assembly all at low volume and factor in fixed cost such as design - I can see them staying above 200$ if they suddenly don't start selling a lot more.

<comment><USER7> But that's the question. How much is fixed costs? I'm not surprised at a high cost for a low volume part, but I want to know if it's going to eventually drop to $40 or $140.

</comment></comment></comment></comment></comment><comment><USER9> Expensive is putting it mildly. $500 is pretty much the budget for an entire desktop system minus GPU. So I could buy a laptop with TB3, then drop another $1000 on eGPU, or take that $1000 and by a whole nother gaming system.

</comment><comment><USER10> Maybe the next step is putting the graphics processor in the display, and extending the processor's I/O bus out to the display with Thunderbolt/PCIe.

<comment><USER11> I don't see many usecases for that - besides the cable length problem mentioned in the article, it would have the effect of reducing choice for the consumer.

I could perhaps see displays including a very basic GPU and advertising it as a plug & play display, no need to check if your video card has enough ports, but I believe (citation needed) multiple display outputs have been standard for years now.

If that's the usecase you're after, I'd also suggest that you're better served by USB - there have been basic USB external GPUs available for years now that would do the trick.

</comment></comment><comment><USER12> I am fully on this thunderbolt 3 GPU bandwagon as well. I pre-ordered an Akitio node, and I'm quite bummed out that it hasn't been delivered yet. I'm very much looking forward to playing some games on my MacBook Pro with it!

Though if the Mantiz Venus starts arriving before my order is shipped, I may need to switch.

Ps: If anyone else is interested in doing an e-GPU with their mac, [https://egpu.io/setup-guide-external-graphics-card- mac/](https://egpu.io/setup-guide-external-graphics-card-mac/) is a great place to start.

</comment><comment><USER13> There is a missing product in the market right now. These high-end GPUs are all designed to fit into decade old computer cases. The pcb and chips are tiny and thin, you should be able to throw the actual guts of a GPU like a frisbee. GPU manufacturers should be designing external GPUs, instead of consumers having to purchase enclosures and power supplies for GPUs still designed to go into pc cases.

<comment><USER14> The current modularity is important, because the market thrives on it. TB3 enclosures are expensive; to duplicate that cost across every graphics card sold would be expensive.

Yes, it'd be smaller. But the increase in cost would not be worth it for the current niche market. Until TB3 penetration across regular consumers (as compared to the techie niche) goes up, there's no point in making slick consumer-market pre-builts.

<comment><USER13> Modularity is a fast horse. The current state of external GPUs is like phone blocks, and I'm waiting for the iPhone. A gpu enclosure with power costs about $300 USD. An Nvidia 1060 6gb gpu also costs about $300 USD. From my perspective I don't understand why I wouldn't just cough up a bit more money and build an entire pc. An Ncase M1 pc case is practically just as portable as any of these gpu enclosures.

<comment><USER14> It's a product people don't know they want. Currently, the fast horses are fast enough. When enough people are using "fast horses" where cars would be more appropriate and where volume pricing would favor cars, we'll see cars on the market.

The market just isn't ready for the car. And you mention wanting an iPhone. The problem is that you'll more than likely get a Newton MessagePad.

edit: also, I've come to the same conclusion wrt PC cases. I'm considering building a "portable desktop" that I can take with me, that mirrors video over a network connection. Then I can use a laptop to interface with it.

</comment></comment></comment></comment><comment><USER15> I'm not in the market for a Mac Pro, but I keep thinking that something like this is the future for high-end computers—a capable base system with the ability expand virtually infinitely by attaching another Thunderbolt 3 component.

<comment><USER16> What's wrong with eSATA/SATA/PCIe/USB/other existing technologies? I don't fault Intel for wanting to try their chops in the data transfer tech market but it's saturated enough as it is and real high end computers will make use of eSATA/SATA.

<comment><USER17> Thunderbolt - all of the versions - can be summarized as "External PCIe". It's just that ePCIe isn't nearly as marketable a name as Thunderbolt.

<comment><USER18> It's not. Thunderbolt is a very very closed standard by Intel. With standardized protocols, like regular PCIe, to start building a device, getting started is pretty much a case of ordering a few chips, reading the datasheets, and starting up in a design program. Thunderbolt, on the other hand, in order to even start looking at the datasheets, you have to apply to the developer program, and wait an unknown amount of time for intel to decide if you can even start to develop. Once your device is ready, you have to wait again for intel to approve it, and there is a chance they won't -- the first Thunderbolt GPUs were promised 5+ years ago, but Intel wouldn't approve for them being sold.

<comment><USER19> > _Thunderbolt, on the other hand, in order to even start looking at the > datasheets, you have to apply to the developer program, and wait an unknown > amount of time for intel to decide if you can even start to develop._

That sounds excellent. Fewer amateur hour broken, incomplete and potentially computer damaging implementations!

</comment></comment></comment></comment></comment><comment><USER20> I would like to "thunderbolt" my CPU, memory and GPU. I don't like to be stuck with the low power laptop CPU when sitting at my desk. Nor do I want to pay for and carry the workstation class laptop with lousy battery life.

</comment><comment><USER21> My interest in this is adding a 10 GbE SPF NIC to my 2016 MBP running macOS (you can find drivers for 10 GbE, but tradically not yet for 25 GbE cards). I don't know if has been tried yet.

</comment><comment><USER22> This stuff is the future, most people are going to be happy with a T470 or MBP13 hooked up to an Atikio Node + AMD RX480 8GB.</comment>


Good way to learn encapsulation with Python? - <AUTHOR> I'm teaching a 12 year old girl Python and want a tutorial to show best practices for separation of concerns, encapsulation , use of functions and classes. Most articles I've seen deal with theoretical recommendations. I want a step-by-step tutorial that is almost all code snippets and not very much text other than the code snippets. I'm looking for things like, put libraries in /lib, when to use from libname import function, when to create a class verses function. As this is for a 12 year old girl, I don't want a long essay on object oriented design, just a set of examples on what's a good way to do things. any help finding these types of tutorials for Python would be great. She's using Pygame <comment><USER2> I searched for "python encapsulation" and got this if you are interested: [https://pythonspot.com/en/encapsulation/](https://pythonspot.com/en/encapsulation/)

<comment><AUTHOR> Thanks man. I'm going to try and incorporate some of this for my 12 year old daughter. If there's a simpler explanation of this for kids, that would help. Otherwise, I'll power through and make something myself. BTW, if you have a daughter that you're teaching to program, I wrote some articles here: [http://pychildren.blogspot.com/2015/01/tiled-map-creation- fo...](http://pychildren.blogspot.com/2015/01/tiled-map-creation-for-4th- graders.html) I'm working on some new lessons. Peace.</comment></comment>


The 10:23 Challenge 2011: Homeopathic Overdose - <AUTHOR> http://www.1023.org.uk/ <comment><USER2> Ah, but homeopathy is based on the idea that the smaller the dosage, the stronger the effect. So, the easiest way to overdose is to not take any at all. It's a wonder any of us are still alive at all....</comment>


Making Flappy Bird Game with Unity3d - <AUTHOR> http://harunurhan.github.io/unity3d/2014/02/10/making-flappy-bird-game-with-unity3d/

<comment><USER2> game at page [http://harunurhan.github.io/flappybird- unity.html](http://harunurhan.github.io/flappybird-unity.html) says that it failed to download the data file. can't play it.

<comment><AUTHOR> sorry, now it is available you can test it.</comment></comment>


The half strap: self-hosting and Guile - <AUTHOR> https://wingolog.org/archives/2016/01/11/the-half-strap-self-hosting-and-guile <comment><USER2> I've built the new Guile from source a handful of times now. It's definitely a slow process, but I'm very grateful that Guile doesn't require an older version of itself in order to build like a lot of other self-hosted languages. Self-hosting is good, but it's imperative that users can bootstrap on their own so that they don't have to place trust in a pre-built binary of the compiler in order to build the compiler. For example, Go has a self-hosted compiler now, but you don't need to trust a pre-built Go compiler binary to build Go, because you can bootstrap it using gccgo.

<comment><USER3> It's good that it doesn't require it, but it sounds like it would be nicer if the Guile build system offered the option of using a trusted build of the compiler to compile itself, if you have one lying around.

<comment><USER2> It does. You can set the GUILE_FOR_BUILD environment variable.

</comment></comment></comment><comment><USER4> I like Chicken Scheme's take on this. Since Chicken's compiler always generates C code, which is then compiled by GCC (or Clang), one just releases both the source and the compiled scheme files(which are C sources).

Then, it's just "make" as usual.

I've even used this strategy to run a scheme program on iOS, trivially. You just have to ask it to stop at the C code generation and not invoke the C compiler. You then insert both chicken's C code and your program's in the xcode project, and call libchicken's initialization code from Objective-C. And then compile the whole blob with clang.

EDIT: :%s/compiled C/compiled scheme/g

<comment><USER2> >like Chicken Scheme's take on this. Since Chicken's compiler always generates C code, which is then compiled by GCC (or Clang), one just releases both the source and the compiled C files.

Shipping a pre-built binary is what Guile purposely doesn't do to avoid the trust issue. Chicken's technique doesn't cut it.

<comment><USER4> Sorry, my bad. I said "compiled C files" when I meant said "compiled scheme files", which are C sources, not binaries.

<comment><USER2> They are binaries, effectively. They are not source code, just like minified JavaScript code is not source code. Thanks for pointing this out to me. I work on a package manager with a Chicken package where this sort of thing is unacceptable, so I've filed a bug.

Does anyone who works on Chicken know how bootstrap it?

<comment><USER4> You may want to ask on the chicken-users list (firstname.lastname@example.com, subscribe at [https://lists.nongnu.org/mailman/listinfo/chicken- users](https://lists.nongnu.org/mailman/listinfo/chicken-users)). The current list of maintainers is at ([http://wiki.call- cc.org/maintainers](http://wiki.call-cc.org/maintainers)), you could also contact them directly. Or on free node's #chicken

Now, the C source is not included in the repository itself, so if you are (somehow) building from that(for instance, you already have a working chicken), you are ok. They are only included in the "release tarballs".

How does your package manager get around bootstrapping compilers, in general? Guile's approach requires maintaining a one-shot interpreter/compiler in C, that's only ever used once. I don't think all projects do that.</comment></comment></comment></comment></comment>


Destiny 2's Google Stadia Population Has Dropped by More Than Half Since Launch - <AUTHOR> https://www.forbes.com/sites/paultassi/2020/01/03/destiny-2s-google-stadia-population-has-dropped-by-more-than-half-since-launch/#10ef3fec2604 <comment><USER2> Impossible to say without all the data, but I'd bet that this has more to do with low Stadia sales than performance issues (though the two are related). I also imagine that Stadia purchasers are different from console owners in ways that might lead to higher natural churn rates.

<comment><USER3> Its probably due to Destiny 2 being one of two free titles at launch.

</comment></comment><comment><USER4> I'm not very interested in this until they figure out how to make the games free or subscription based. I really don't see the point otherwise. Sure there are use cases but not for me as a entrenched gamer.

</comment><comment><USER5> There's a number of youtube videos and probably written reviews which explain why: It just never lived up to the hype, in multiple ways. People have different experiences and lots end up with unusable amounts of lag. The first people on Stadia had to actually buy hardware too, so these are people who were already a little bit invested.

<comment><USER6> Saw the same thing with Microsoft's xcloud. Apples to apples comparisons are pretty lackluster right now, but it looks like Stadia has lower input latency. That might be in part due to the controller connection design. People using their Xbox controllers are going through bluetooth, then their phone. Overall, the normal laws of physics latency caused by distance look to be deal breakers for a lot of players, meaning cloud gaming in general might stay niche for a lot longer. Stadia is getting the bad press because it's first to expose the issue what would affect all the services. Xcloud has the potential to steam from a local xbox which might make things a bit more interesting, but the whole thing is still in beta.

<comment><USER7> Xcloud is still in beta for a reason...so they can work out the kinks.

Stadia needed another year or two itself to work out the inevitable problems.

<comment><USER8> I saw people that decided to not jump into Stadia claiming it was another one of Google's abondonware projects. I really hope they fix the issues and try to push gaming forward. I personally think it can be huge here in Japan if done right.

<comment><USER9> _"If done right"_ but they haven't shown that they can, since they launched it in a half baked state, with a tiny game library and high cost (having to pay for the subscription _and_ games).

<comment><USER9> To add to that, stadia has claimed teraflop _"power"_ that is almost double of the XBox One X yet runs red dead redemption 2 at half the resolution of what the Xbox does.</comment></comment></comment></comment></comment></comment>


Rust 2018: an early preview - <AUTHOR> https://internals.rust-lang.org/t/rust-2018-an-early-preview/7776 <comment><USER2> Rust is getting too complicated and noisy.

It's not that it's difficult to use, but there's just too much stuff shoved into the drawer, and I really just need some silverware.

my two cents. All the rust I've written is just rewrites of things I originally wrote in other languages. I'm a little disappointed to realize that I'm glad I don't have to write Rust for a living.

I also think the 6-week release cycle is WAY too fast for a language with the low-level ambitions of rust. Granted, it's not like stuff is being broken every six weeks, they're doing a wonderful job with backwards compat in mind, but just the sheer volume of language delta is a lot for the average programmer, I think. Maybe I'm just a below average Rust hacker and maybe I'm just not "getting it"

</comment><comment><USER3> These are welcome improvements, but I worry that they will continue increasing complexity to the point that we have another C++ on our hands. There's a balance between new features and improvements, and simplicity and stability. I hope the Rust team finds that balance.

<comment><USER4> _but I worry that they will continue increasing complexity to the point that we have another C++ on our hands_

I am currently teaching a course where Rust is the main language and this is already a problem. Some recent changes have made Rust more difficult to understand. E.g. impl in argument positions have are really opaque. For example, it is quite easy to explain and understand the difference between

        fn foo<T>(t: &T) where T: SomeTrait

and

        fn foo(t: &SomeTrait)

because the type parameters are explicit in the static binding case. On the other hand,

        fn foo(t: &impl SomeTrait)

is really opaque. I know that it is an ergonomic win and provides consistency between impl in argument and return positions, but it makes Rust more difficult to understand for new language user. Other magical/difficult to understand semantics: automatic derefs in pattern matching, deref coercion, different drop orders for structs/local variables, impl coherency rules, the distinction between copy/move types, etc.

Don't get me wrong, Rust is my all-time favorite language. But I agree that increased complexity is the most dangerous pitfall for Rust. I fear the day higher-kinded types are added and the catogory-theory fest will be added in addition to the existing complexity.

<comment><USER5> Note that in Rust 2018, trait object syntax moves to using `dyn` (see [https://rust-lang-nursery.github.io/edition- guide/2018/trans...](https://rust-lang-nursery.github.io/edition- guide/2018/transitioning/traits/dyn-trait.html)), so that your second code block will actually be:

        fn foo(t: &dyn SomeTrait)

&dyn SomeTrait and &impl SomeTrait are then more directly comparable. "&impl SomeTrait" should be read as "a reference to a type implementing SomeTrait".

It's different from the angle-bracketed generic syntax you may be used to, but I _think_ it's generally superior. I certainly find it _much_ easier to write and read than the generic syntax or generic-syntax-with-where-clause versions. Well, I say generally superior—but its potential downfall is the turbofish issue, that impl in argument place is _not_ just sugar for the generic syntax. And thus that for now impl in argument place is arguably unsuitable for library code and only suitable for application code. We'll see how that pans out.

You mention higher-kinded types: there is actually a plan now for a feature equivalent to HKT, generic associated types (associated type constructors), [https://github.com/rust-lang/rfcs/pull/1598](https://github.com/rust- lang/rfcs/pull/1598), and I'm glad; note when I say _that_ that I was one of the few that campaigned before Rust 1.0 for explicitly _not_ touching HKT for a few years purely for marketing reasons—they're scary and will put people off Rust. But certainly I have encountered a couple of situations where generic associated types would substantially improve ergonomics in my HTTP and web work, and this is a proper Rust-flavoured take on the concepts behind HKT. I believe it will be good to have.

I am still a bit anxious about the volume of change happening, just as you, others, and graydon just now on the forum post.

<comment><USER6> I still haven't used it enough to have a real opinion, but I think `dyn` is the one thing in all this I feel is a bad change. Otherwise the module system is going to be much nicer, `impl Trait` has been a thing needed since day 1, and some new forms of elision are nice. I'll be curious to see if I like the `match` changes though.

<comment><AUTHOR> Incidentally, the match changes work in stable today.

The audience for the edition isn't just those who follow Rust closely, but for those who don't. And even for those who do, we want to take a look at some of the things that make writing Rust feel differently in the last few months. Turns out the match stuff was good enough to stabilize a bit earlier, even though it was designed with all of these other features.

<comment><USER6> Yea fair point, just haven't been writing enough rust over the last few months :(

There remains a small part of me that enjoyed the explicitness of fighting the compiler to understand what type I was actually dealing with (forced learning).

<comment><AUTHOR> Have you read [https://terrytao.wordpress.com/career-advice/theres-more- to-...](https://terrytao.wordpress.com/career-advice/theres-more-to- mathematics-than-rigour-and-proofs/) before? I find it _extremely_ interesting. Sounds like you may be on the "rigorous" stage. This kind of feature helps the pre and post stages, at the expense of that one.

<comment><USER6> I hadn't. It's a great peice though. The rust programmer who adds and removes `&` and `ref` blindly is in phase 1, the part I'm claiming to like is more or less phase 2, where some real thought goes into it, "here I have a &Option, so here it must be &Some(...)" and so on. Phase three is practical, much like how I might tell someone in casual conversation that something took orders of magnitude more time, without worrying too much about what magnitude I'm really talking about. This can give you the head space to tackle "real problems". As rust matures (and its users with it) I can understand the desire for these conveniences. I do feel the language loses some of its educational prowess. I'm always arguing in favor of more Racket like ideas, but the whole family of languages thing helps in this regard, but makes for quickly divergent communities. </ramble>

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Yeah I can't see myself ever writing "crate struct Foo" or "crate use foo". :/

<comment><AUTHOR> There's no plans to remove pub(crate), so you can still use it if you like.

<comment><USER7> Plain `pub` was concise and local and simple. :<

<comment><USER8> I think I saw something about a lint for bare `pub` that isn't visible to the user. I think one of the intents is to make it easier to audit for what is publicly exposed and what isn't.

Found it: [https://github.com/rust- lang/rust/issues/45521](https://github.com/rust-lang/rust/issues/45521)

<comment><USER7> Yeah, that's gonna be seriously annoying. :/

</comment></comment></comment></comment></comment><comment><USER9> Please don't make Rust harder to read and code. I am almost done with the long tutorial/documentation and it's already a lot. The genetics syntax with the ownership and the strut/impl/trait is already a lot to eat. For me if you have to break the past version of the language for the better it's great. Just build an as simple and readable language as you can.

<comment><USER10> When you've written Rust a bit longer (over two years for me now), these changes address issues we face every day, making it now much easier to reason about your code. Before the introduction of `impl Trait`, splitting a large function using Futures to smaller ones either required you to have a ridiculously long type signature or take a performance hit with dynamic approach using a `Box`.

The introduction of NLL will make beginner's life easier, so will the changes to the lifetime variables and if writing async code, you should be counting days to get the async/await and pinning to the stable rust.

I'd like to know what changes here you think will make it harder to read and code Rust?

<comment><USER9> From where I am now and so not far in the world of Rust, I am struggling to learn all the new paradigms and ways of doing things with a special syntax. Maybe the syntax is easier for others or it will get better for me after a while but when I see the new dyn it's hard for me to place it in an already crowded things to know.

The other thing is how past and future features/syntax are supported, like for the new modules systems. I will prefer to break things when it makes sense with new features well thought out rather than support different ways of doing something and have as many ways of writing it. At the end of the day with a full team it's as many way we have to read and so to understand. And even thought your team has the same guideline it's the same problem when we start to read open source projects all with different ways of doing things. I won't want to have a language that don't break things and features stack themselves across the years but rather a language that refine itself over time with only one way of doing things. We can see how it turned for C++ where the language is so big that you have different ways of writing it and like how Google has its own guidelines and others too. On the other end look how Swift look now.

Right now my feelings are not to add new features but to refine the language and the syntax. But I can be all wrong. I mean I have just starting to learn Rust. A syntax with some ideas from ReasonML for instance will maybe make it better.

On a side note I hope this comment comes not too raw I see many down votes. I am just expressing my point of view as a beginner. Right now I know many of my coworkers will be turn down with what I said in my first comment. And they will turn to Go instead. Which I am sure can be fine technically but I really want to see Rust succeeds and have even more Rustaceans!

<comment><USER11> FWIW, I would consider a good chunk of Rust 2018 to be refinements on the language and the syntax. The amount of thought that has gone into those changes is enormous. I mean, if you just look at the new things in Rust 2018[1], then basically every single one of those is a refinement or clarification on an existing idea. The major exceptions are async/await, SIMD and _maybe_ impl Trait. SIMD isn't a language change though; just an incredibly large std::arch library module. :-) impl Trait has fairly limited scope in my view. I think its primary advantage at this point is to make it easier to write compositional code when dealing with futures.

It is hard to say "no" to _some_ new language features because many of them are very very strongly motivated by incredibly compelling use cases. async/await is the big one. Rust's direction is nothing if not pragmatic, and async/await is kind of the obvious direction to head in if we want people to be able to write asynchronous code happily.

[1] - [https://rust-lang-nursery.github.io/edition- guide/2018/statu...](https://rust-lang-nursery.github.io/edition- guide/2018/status.html)

<comment><USER5> `impl Trait` syntax has been used casually in conversation on irc://irc.mozilla.org/#rust since _long_ before Rust 1.0, and some at least of us had hoped to have it before Rust 1.0. It took a while, but we finally got it, so now we're fairly happy. (I think the turbofish issue hadn't occurred to those of us that casually wrote it before, but once it was being implemented it became obvious.)

<comment><USER11> I know. I was there. ;-) What I meant was that `impl Trait` hasn't existed yet on Rust stable, and it gives folks legitimately new powers, so it seems like it was on the line between it being a refinement and it being a legitimately new language feature. But this is splitting hairs; the classification doesn't matter much.

</comment></comment></comment></comment></comment></comment><comment><USER6> I'll be really curious to see how the async/await stuff plays out. I'm still a bit unclear as to why it needs to be a language feature and not something in STD or an external crate. I'm sure if I read the RFCs/Issues I'd understand better, but it's been a while. Regardless, most of the changes so far are welcome in my eyes :)

<comment><AUTHOR> The PR to add it just landed in nightly, incidentally!

But yeah, if you care, reading the RFC _should_ explain that. It's been a while since I read it, but we had a procedural macro based version, but ended up with real language support for a reason.

</comment></comment><comment><USER12> Stupid question on `Box<Foo>` vs. `Box<dyn Foo>`: does this syntax apply to any other places where a trait is used as a type parameter?

E.g.

        //do we write the type of MyBox like 'MyBox<dyn Debug>'?
        struct MyBox<T : ?Sized>{
            inner: Box<T>
        }

<comment><USER5> Yes. The unsized trait object type is being renamed from `Trait` to `dyn Trait`.

</comment></comment><comment><USER13> I recently found out about volt. I was so glad i found this language, which has everything i want, basically an improved c.

Then I learned it was garbage collected. I felt disappointed.

</comment><comment><USER7> Using JavaScript to remove certain lines from the code examples in the book is such a weird choice.

<comment><AUTHOR> It's primarily so that tests can still be run, while presenting only the info you want to show to those who read the docs.

<comment><USER7> You should filter those lines before they hit .html files.

<comment><USER14> There's a button to toggle whether these lines are shown or hidden. Implementing this button's behavior using JavaScript seems perfectly reasonable to me.

<comment><USER8> I appreciate this. There are too many times that example code omits things and as someone new you get confused as to what the boiler plate is you should use.</comment></comment></comment></comment></comment>


Neuroscientists create 'atlas' showing how words are organised in the brain - <AUTHOR> https://www.theguardian.com/science/2016/apr/27/brain-atlas-showing-how-words-are-organised-neuroscience <comment><AUTHOR> The 3d brain map is at [http://gallantlab.org/huth2016/](http://gallantlab.org/huth2016/)

</comment><comment><USER2> Nice. I'd like to see a 4D map of a brain listening to music.</comment>


Former Tor developer created malware for the FBI to hack Tor users - <AUTHOR> http://www.dailydot.com/politics/government-contractor-tor-malware/ <comment><USER2> This is sort of a sad story.

On one hand, I have nothing against Matt Edman at all. He's just a programmer (like many of us), working for a business to make some money. There's nothing at all wrong with that.

If Matt didn't work for the government helping break Tor hidden services, someone else surely would -- so it's a moot point to call him out for acting against pro-privacy ideals.

On the other hand: it's a bit sad that we (the professionals who make up the tech community at large) can't all stand together and help push security, privacy, and anonymity forward by our actions.

I think that the real lesson to be learned here is that more of us need to get involved with contributing to and donating to projects like Tor. By making these pieces of software stronger, we can hopefully one day prevent the ability for _anyone_ to compromise client security. I think that's the long term ideal thing to do.</comment>


Where are the fast dynamic languages? - <AUTHOR> http://www.martincmartin.com/blog/?p=77

<comment><USER2> Lua? It is very simple language. Unfortunately, there is a performance penalty with dynamic langues, which wont go away.

<comment><USER3> Here is a good discussion about using Lua to script stuff for embedded or cell phone development: <http://lua-users.org/lists/lua-l/2007-11/msg00248.html>

Its an interesting read. Lua seems pretty sweet!

<comment><USER2> maximilian, we are already doing that.

<comment><USER3> doing..? hacking cell phone software in Lua? I'd love to have at some embedded stuff with a non-c language. So much less to worry about screwing up. Although a lot of embedded stuff is hardware level stuff that has to be done in c anyway, so no lua there.

<comment><USER2> yes. Maybe we will release the interpreter part open source., but it is not done yet. Basically a J2ME and C++ (for brew and palm), interpreter for lua. The whole idea, is that you can build an app once in Lua, and run it everywhere (for reals). This is a company thing, (we are not a small startup), so I am not sure how much of it will be realeased open source.

</comment></comment></comment></comment></comment><comment><USER4> Does anyone here have a single example of a performance problem caused by using a 'dynamic' language rather than a 'static' language? The only performance problems I've ever encountered 'in the wild' have been down to things like database access, I/O, bad sorting algorithms, string concatenation, etc.

<comment><USER5> Fundamental limitations of Python are responsible for most of the memory footprint and performance difference between the old official Python implementation of BitTorrent and C++ implementations like libtorrent. The kind of obsessive optimization that made uTorrent so tiny and fast is just not achievable in Python, due to things like per-object memory overhead and reference counting.

I've also done audio processing projects in Python, and ended up switching to D because Python couldn't do floating point additions and multiplications across large lists fast enough.

</comment></comment><comment><USER6> Here, for starters:

<http://www.strongtalk.org/> <http://rubini.us/> <http://www.cons.org/cmucl/>

</comment><comment><USER7> Solving this problem is the main goal of the Cobra language:

<http://cobra-language.com/docs/why/>

I'll be curious to see if it succeeds.

<comment><USER8> Thanks for the link, that is an interesting language. It seems like it's mostly a lot of C# features / programming style with python syntax and optional dynamic typing. Generally a good idea, though the code samples didn't feel right to me - lack of punctuation, perhaps? Maybe I've just gotten used to symbol-filled code.

</comment></comment><comment><USER9> <http://www.factorcode.org>

</comment><comment><USER10> Objective-C?</comment>


New Firefox Test Pilot Experiments - <AUTHOR> https://blog.mozilla.org/blog/2017/08/01/new-test-pilot-experiments/ <comment><USER2> For those who don't want to install add-ons, one of their new additions is available to anyone at [https://send.firefox.com/](https://send.firefox.com/)

It's an easy, disposable, encrypted file sharing service.</comment>


Random Darknet Shopper: A Live Mail Art Piece - <AUTHOR> https://wwwwwwwwwwwwwwwwwwwwww.bitnik.org/r/ <comment><USER2> The dark web/deep web/dark net/whateveryouwannacallit has many legal things sold on it. My favorite story was a few years back, a vendor there was selling drugs. However, they also had their own coffee blend, and they would send a bag of their coffee with every purchase. Turns out the coffee was phenomenal. The vendor started getting so many requests to buy the coffee directly that they were able to just start selling coffee. I don't remember if that got them to stop selling their illegal merchandise, but at least they had one avenue of semi-ethical income.

<comment><USER3> (White takes a sip) "This is incredible... what the hell are we making meth for?!"

<comment><USER4> Different perspective / explanation:

Coffee works and tastes better while on other drugs.

<comment><USER3> In this case, it was because the character (Gale Boetticher) was really good at making both meth and coffee.

</comment></comment></comment></comment><comment><USER5> I loved the "Mastering the Art of French Cooking" book. I mean it must something subversive to be sold on the darkweb.

Edit: the other object are interesting: credit card, spy camera...

<comment><USER6> The Darknet has many recipe books for cannibals, often with disturbing (but almost delicious) photos of the resulting meals.

<comment><USER7> Source/link? I'm not saying you're wrong, but I've heard a lot of crazy stories about what's supposedly on the darkweb, but a lot of it seems to be just that: stories.

<comment><USER6> _Source /link_? It's the dark web, you can look yourself. I'm not going to go spelunking for it.

<comment><USER8> You won't do the work to back your own claim? Ok, well add me to the list of people calling bullshit then. Besides, who, but s cannibal would know the different between a leg of veal pork, and a... leg? Occam's Razor says the books are jokes, pranks, or scams, and/or that you're bullshitting. In the absence of evidence at least.

 _Well for starters you can try checking the watchpeopledie subreddit and look for human stew. I don't work for free, I'm barely giving a fuck away._

If you can't back up an extraordinary claim, and "lots of cookbooks for cannibals" is pretty extraordinary, don't make claims. If you don't give a duck, are lazy, whatever, don't waste your time making claims. It's really simple, unless you're wasting everyone's time for amusement, and there's a name for that.

<comment><USER6> Well for starters you can try checking the watchpeopledie subreddit and look for human stew.

I don't work for free, I'm barely giving a fuck away.

<comment><USER7> Here's an example of copy/pasting a link to your claims:

[https://www.reddit.com/r/watchpeopledie/search?q=human+stew&...](https://www.reddit.com/r/watchpeopledie/search?q=human+stew&restrict_sr=on&include_over_18=on&sort=relevance&t=all)

That wasn't difficult. Unfortunately, that link doesn't support your claims.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> It's worth reading the bit where it orders ecstasy and gets the exhibit shut down.

<comment><USER10> Yeah I imagine that in the US, they'd be indicted and accused of using the art project as an elaborate cover-up for a drug importation conspiracy.

<comment><USER11> Just file an LLC as the owner for the script, sit back, and watch the show.

</comment></comment></comment><comment><USER12> I honestly expected it to be 90% drugs, but I was pleasantly surprised to see the diversity of the items.

<comment><USER13> Perhaps the other items are sold as a kind of cover-up, somehow?

<comment><USER14> Knock-offs, and stolen merchandise are often sold by the same criminals who sell drugs. Aside from street dealers who are dealing to get their next fix, it's not as though drug dealers have some need to restrict themselves to one lucrative market.

</comment></comment></comment><comment><USER15> A 1oz [Counterfeit] Canadian Gold Coin for $30

The description doesn't indicate it was sold as a counterfeit, but no way you can buy an oz of gold for $30 on the dark web...

[https://wwwwwwwwwwwwwwwwwwwwww.bitnik.org/r/021-canadian- gol...](https://wwwwwwwwwwwwwwwwwwwwww.bitnik.org/r/021-canadian-gold-coin/)

<comment><USER16> That's a lot of "w."

</comment></comment><comment><USER17> All these items seems remote, sometimes funny or interesting until I recognize my friend's very passport.

<comment><USER18> pics or it didn't happen

</comment></comment><comment><USER3> I wonder what those "triangle crackers" were and what was so risky about them.

<comment><USER19> Firecrackers from Poland, glad they didn't ship explosives in the regular mail often it is shipped on passenger aircraft in the cargo hold. You would go from petty smuggler to interpol's most wanted terrorist really fast if something happened. IIRC the darknet exhibit also shows the packaging, maybe the firecracker guy didn't want that on display.

<comment><USER3> Oh, THOSE kind of crackers. I was thinking rice cakes...

<comment><USER20> Rip-off doritos anyone?

</comment></comment></comment></comment><comment><USER21> At least they used the correct numbers of w's in the URL.

<comment><USER22> What does 22 w's mean?

<comment><USER23> W for Web server, behind seven www proxies. /s

</comment></comment></comment><comment><USER24> Cool to see the prosecutor demonstrate a profound understanding of the possible purpose and utility to which art can be applied.

</comment><comment><USER25> See also: Institute of Illegal Images

</comment><comment><USER26> Relevant xkcd: [https://xkcd.com/576/](https://xkcd.com/576/)</comment>


How Algolia Built Their Realtime Search as a Service - <AUTHOR> https://stackshare.io/posts/how-algolia-built-their-realtime-search-as-a-service-product <comment><USER2> Algolia had a great 8-part series of 'under the hood' blog posts:

Part 1: [https://blog.algolia.com/inside-the-algolia-engine- part-1-in...](https://blog.algolia.com/inside-the-algolia-engine- part-1-indexing-vs-search/)

No affiliation, just thought they were really interesting.

<comment><USER3> I just skimmed through those posts. Indeed interesting, but I couldn't find what type of data-structure they use for their main search (as opposed to instant search suggestions).

<comment><USER4> An inverted index ? From part 2:

        For each document, we extract the list of words and build a hash-table that associates words to documents
        When all documents are processed, we compute an on-disk binary data-structure containing the mapping of words to documents. This data-structure is the index we will use to process queries.

</comment></comment></comment><comment><USER5> If you have never used Algolia, I'd recommend doing so. For any reason.

They are one of those great companies that you want to emulate, their entire setup is polished and perfect.

<comment><USER6> Don't they provide the HN search? I have never found it particularly effective.

<comment><USER7> The HN search implentation is a bit sad, because it lacks the most magic part of Algolia : the real time search.

Using Algolia in a full-page-load HTML request is using a Ferrari do drive to the grocery store. You can, but what a waste

<comment><USER8> Have you tried [https://hn.algolia.com](https://hn.algolia.com)?

<comment><USER7> Yes I had, but I forgot about it, thanks. Much better than HN own implentation.

Algolia also implemented a linkedin contact search infinitely superior to Linkedin own search.

I remember thinking that both demos were really brilliant growth strategy because it showed clearly, by contrast, how much the status quo was painful

</comment></comment></comment></comment></comment><comment><USER9> "The problem with Zookeeper is that a change in the topology can take a lot of time to be detected. For example, if a host is down, it can take up to several seconds to be detected. This is way too long for us, as in one second will have potentially thousands of indexing jobs to process on the cluster and we need to have a master that attributes an ID to be able to handle them. So we have built our own election algorithm based on RAFT."

Thats a bold move. Afaik the timeouts in Zookeeper can be tuned, no?

</comment><comment><USER10> Shameless plug: if you are looking for a simple, fast, fuzzy search engine that you want to host yourself, take a look at Typesense: [https://github.com/typesense/typesense](https://github.com/typesense/typesense)

<comment><USER11> Only tangentially related, but...

If you're looking for a front-end library for autocompletion, Twitter's typeahead.js is a nice one: [https://github.com/twitter/typeahead.js](https://github.com/twitter/typeahead.js)

If you want one that works seamlessly with your React setup, React Autosuggest is pretty neat: [https://github.com/moroshko/react- autosuggest](https://github.com/moroshko/react-autosuggest)

<comment><USER12> Careful though because typeahead.js is not maintained at all even if not said clearly on the GitHub repo

</comment></comment></comment><comment><USER13> I noticed that Google (who know a bit about search I think) link to Algolia as the recommended way to do search if you are using Cloud Firestore.

That seems a good recommendation.

<comment><USER14> Yeah it's solid and easy to setup by using cloud functions on firestore events.

Querying on Firestore is really limited though and quite surprising really. They even have geopoint data types but you can't query on them.

I'm sure they'll add a lot more soon but Algolia has been great for filling in those gaps and adding robust search.

<comment><USER15> Straying OT, but I find Google Cloud's array of database options to be hopelessly confusing. Particularly with the Fire* offerings that are all really cool, but seemingly limited to mobile use cases.

</comment></comment></comment><comment><USER7> Every time I need to use Algolia in a project, there is this sense of "wow". It's such a magical feeling. Every single time.

</comment><comment><USER16> Well honestly, when searching through HN posts, their fuzzy search deature can be annoying.

<comment><USER17> It can be turned off.

</comment></comment><comment><USER3> Offtopic: isn't it about time that Linux distros get a serious "built-in" search engine?

I mean, there's the "locate" command, but many people disable it because it's a performance hog. Shouldn't "search" be an integral part of OS and/or filesystem architecture?

<comment><USER18> I actually use mlocate a bit, one benefit is that it's a simple system, easy to understand. And it's seen some use, so it tries to keep permissions consistent between the index/search and the filesystem.

There's also been a few attempts at integrating search with the various desktop projects, generally backed by xapian or some other full-term search library. I'm not sure what are currently the best/best maintained options.

I seem to recall gnome "tracker" had the most traction last I checked, not sure if eg the kde project has something similar. Looks like canonical booted tracker from the default install in 18.04 lts:

[https://community.ubuntu.com/t/install-tracker-by-default- in...](https://community.ubuntu.com/t/install-tracker-by-default- in-18-04-lts/1483/28)

Microsoft had its aborted attempt at a new fs built on top of sql server, for "proper" search at the fs level. I'm not aware of any real file systems that do full search out of the box. And I guess it's not clear that it'd be any better than initial indexing+index refresh on change/on a schedule.

<comment><USER19> KDE has Baloo [0]

[0] [https://community.kde.org/Baloo](https://community.kde.org/Baloo)

</comment></comment></comment><comment><USER20> I've always thought they were using elasticsearch!

<comment><USER21> The speed was a telltale that it's not the case ;)

<comment><USER3> Does anybody know where statistics/benchmarks are posted for elasticsearch? This would be useful for performance comparisons with other products, and to see if anything is wrong with the configuration in case of slow queries.

<comment><USER4> [https://benchmarks.elastic.co/index.html](https://benchmarks.elastic.co/index.html)

[https://github.com/elastic/rally](https://github.com/elastic/rally)

</comment></comment></comment></comment><comment><USER22> Can the concept of distributed consensus be seen as an alternative to block chain? [https://raft.github.io](https://raft.github.io)

<comment><USER23> No, blockchains are built on top of distributed consensus. You can have distributed consensus without a blockchain, but not the other way around.</comment></comment>


Electrical brain stimulation helps people learn math faster | KurzweilAI - <AUTHOR> http://www.kurzweilai.net/electrical-brain-stimulation-helps-people-learn-math-faster?utm_source=KurzweilAI+Daily+Newsletter&utm_campaign=76ed674559-UA-946742-1&utm_medium=email&utm_term=0_6de721fb33-76ed674559-281895037 <comment><USER2> Here are a few previous submissions of this story. Some are from a long time ago, so it's obviously come to life again for some reason. For some reason, it appears none have any discussion.

<https://news.ycombinator.com/item?id=1869772> (guardian.co.uk)

<https://news.ycombinator.com/item?id=1870798> (sciencedaily.com)

<https://news.ycombinator.com/item?id=1871276> (independent.co.uk)

<https://news.ycombinator.com/item?id=1872308> (bbc.co.uk)

<https://news.ycombinator.com/item?id=1875650> (esciencenews.com)

<https://news.ycombinator.com/item?id=1876231> (ox.ac.uk)

<https://news.ycombinator.com/item?id=1886156> (nationalgeographic.com)

<https://news.ycombinator.com/item?id=1891318> (usatoday.com)

<https://news.ycombinator.com/item?id=1894925> (newscientist.com)

<https://news.ycombinator.com/item?id=5720296> (wired.com)

<https://news.ycombinator.com/item?id=5723276> (bbc.co.uk)

<https://news.ycombinator.com/item?id=5734209> (bbc.co.uk)</comment>


GE Ships Ready-Made Drug Factories from Berlin to Beijing - <AUTHOR> http://www.bloomberg.com/news/articles/2015-11-01/ge-ships-ready-made-drug-factories-from-berlin-to-beijing <comment><USER2> This is fucking dope.

Since watching the Ted talk about patient capital from jacqueline novogratz I've been fascinated with the concept of pharmaceutical manufacturing in Africa, for consumption in Africa.

It'd be really cool to study what kind of impact could be achieved on the disease epidemic in Africa if more pharmaceuticals were produced there. "Pre- FDA" approved plants at cheaper costs look like a nice large-scale step.</comment>


A Gender Gap in Bicycle-Riding - <AUTHOR> http://www.buzzfeed.com/jsvine/these-maps-show-a-massive-gender-gap-in-bicycle-riding

<comment><USER2> Author here. Thanks for posting! HN might be interested in the related repos we open-sourced today:

\- Data-processing scripts and HTML/JS/CSS for the maps and charts: [https://github.com/BuzzFeedNews/2014-06-bikeshare-gender- map...](https://github.com/BuzzFeedNews/2014-06-bikeshare-gender-maps)

\- Python parsers for the various bikeshare services' published data: [https://github.com/BuzzFeedNews/bikeshares](https://github.com/BuzzFeedNews/bikeshares)

\- General guide to getting data from these services: [https://github.com/BuzzFeedNews/bikeshare-data- sources](https://github.com/BuzzFeedNews/bikeshare-data-sources)

<comment><USER3> Thank you for generous well-positioned citations to OpenStreetMap -- the community thanks you!

</comment></comment><comment><USER4> Men perform physically dangerous work far more frequently than women.

Riding a bike in a large city is dangerous - I've never done in it New York, but in London altercations between bikes, pedestrians, taxis and buses are quite frequent. There are few real continental-Europe-style bike lanes.

Perhaps same gender differences in appetite for risk also affects one's decision to ride a bike in a large city?

<comment><USER5> Last summer, in NYC, I was in central park almost every weekend. After I started counting, I counted like eight low-impact bicycle accidents involving twenty-something girls before it started getting cold in September (it averaged to nearly once a week). I'm going to estimate that prior to counting it was about three or four (it had to be more than two), before it struck me that it was getting repetitive. Once I started paying attention, I was kind of surprised at how frequent and consistent it was. None of them drew blood or broke bones or anything, but the ones that I noticed were usually accompanied by a surprised yell, and enough to make people stop and check for concussions. As far as I witnessed, I did not see any similar accidents involving males in their 20's, or adult women of other age groups. On the other hand, lots of 40 and 50 something women are always out riding bikes with their kids and husbands.

Bicycles in NYC are serious business though. I've known people who were slapped with hundreds of dollars in violations _and_ summonses in one sitting. I know one guy who was car-doored on a narrow street and woke up hospitalized and missing teeth. I've also heard similar stories of males and females drunk bicycling home at night that also ended in serious hospital visits.

More often than not, males in their 20's are on skateboards, and certainly falling a lot, but usually with a degree of anticipation and a strategy for absorbing and surviving the fall. Otherwise, males under 40 and not on skateboards seem to be keenly aware of their own lack of athletic inclination and poorly trained physical coordination (myself included; I like my teeth).

</comment></comment><comment><USER6> Interestingly they don't mention helmets and hair as one possible contributor of the gender gap in bicycle ridership (and motorcycles too).

Bicycling is an activity where you should be wearing a helmet for safety, and this is at odds with styling your hair in the morning since that helmet with mess up many styles of longer hair.

However, that being said, this data comes from city bikesharing services, which often don't involve helmet usage.

I also wonder how much clothing choices impact ridership. Unisex clothing choices (pants, shorts) are more convenient for bicycle riding than skirts and dresses.

I'm curious, if you normalize the data to discount women who spend a lot of time on their appearance (particularly their hair) and discount the percentage of women who are not wearing unisex clothes, do the numbers more closely hit a 50-50 distribution.

Lastly, I'd love to see what data Google has on bicycle ridership for Google Bikes on its Mountain View campus (relative to the ratio of men-to-women at Google of course)

</comment><comment><USER7> I, a male, don't bike for exercise because it's bad for the main vein. I wonder how big the gap would be if this weren't the case.</comment>