"Android is reaching EOL in the next 4-5 years" - <AUTHOR> https://twitter.com/DroidAlexandra/status/1119207230782550017 <comment><USER3> As a tech community, we should really rally around a libre/free mobile OS and soon. Being beholden to corporations for our operating systems is antithetical to freedom.

<comment><USER4> It's so much harder to do on mobile, for multiple reasons:

\- Hardware is not very modular (mainly because of size constraints), meaning you have to purpose-build libre hardware if you can't/don't want to run on tech-giant devices (you can right now if you're forking Android; you probably won't be able to once it's replaced with Fuschia).

\- Developers' needs have always been a bastion for keeping desktop OSes flexible and open. No matter how closed-down software gets, someone somewhere has to be able to muck with it so as to build and improve it in the first place. This doesn't apply to mobile OSes; people don't use them for development.

Not that it's impossible for these things to be overcome, but it's a much steeper uphill battle.

<comment><USER4> Also, perhaps even more importantly, you'd be starting from scratch in terms of app ecosystem, which is even more important today (and especially on mobile) than it used to be in the PC era. You could get some mileage out of the web- but first you'd have to build or port a browser. Chromium certainly won't target your open OS, and with its 75% market share, it now strongarms the direction that web standards take. And many app makers don't even have mobile web apps these days (or their web apps are crippled versions of their "real apps"). Good luck getting Slack and Favor, or your bank, to build apps for your new OS. Or even Dropbox and Evernote. Forget about Netflix and YouTube.

Maybe you're okay with going back to the iPhone 1.0 days where a smartphone was just for phone calls, texting, email, a calendar, listening to music, looking up directions, and searching the web. But while you might get an mp3 player app, many people no longer own copies of their music and you won't get Pandora or Spotify. You certainly won't have a decent maps app - maps are one of the most heavily monopolized core features of today's phones, mainly because of the sheer size of the task of mapping the world. OpenStreetMap exists, but it's honestly not very good.

You start to see the problem.

I used an Android fork for about a year without any Google services before I gave up. I was able to grab a few crucial apps from APKMirror, but not many. I tried using OsmAnd for maps; it was awful. I once bought a pair of headphones I literally couldn't use without the app - available only on the App Store and Play Store. I used web apps to fill in some of the gaps; they were spotty and many were ugly and/or slow and/or didn't hook into APIs like push notifications. At least I had a fully up-to-date Chrome fork to use as my browser.

Maybe after the death of Android there would be greater momentum behind building and sustaining this kind of ecosystem. That would help bolster not only app development, but possibly even the value of the open web, and maybe even the contributions to (and therefore quality of) things like OpenStreetMap. It's hard to say.

<comment><USER5> So your complaints are that you couldn't use your preferred commercial services on an open platform. But if you zoom out to Smartphone Global Scale, the vast majority of people don't use those services anyhow. Netflix has 155 million total subscribers globally, which means it _doesn 't_ have about 3,745 million other Internet users.

Smartphones are far, far more about communication and collaboration than passive content consumption. 'Functioning' in our digital society isn't about everyone individually watching the same movies on a 5" screen on the bus. Most people use their phones as a glossier smartphone with navigation capability and that's just fine.

<comment><USER4> "the vast majority of people don't use those services anyhow."

You use Netflix as a stand-in for all "commercial services". The majority of smartphone users in the world may not have Netflix on their phones, but the majority of Americans - the largest market by value - do. And more importantly, I guarantee you that the vast majority of smartphone users worldwide regularly use Facebook and/or WhatsApp. Those are commercial services. I personally have trouble staying in the loop at work without Slack on my phone. That's a commercial service. Plenty of mobile, commercial services are truly essential to modern life. Singling out Netflix is a straw- man.

<comment><USER6> > The majority of smartphone users in the world may not have Netflix on their > phones, but the majority of Americans - the largest market by value - do.

Maybe Americans are the largest market by value. Are they larger than the sum of all other markets, though? Will they be in 5 years? What about 10?

Regarding WhatsApp and Facebook, let's just remind ourselves they did not exist ~10 years ago. Any argument based on their size should only serve to remind us that such a dramatic change is possible over a period of 10 years.

</comment></comment></comment></comment></comment></comment><comment><USER7> My previous guess for a roadmap [0]:

1) Pixels move to Fuchsia, native apps are in Dart/Flutter, compatibility layer for Android. Fuchsia becomes a distinguishing feature of Googles hardware, and allows Google to differentiate vs Android competitors.

2) Google continues to support Android, but only as it affects their business interests (as a funnel for search).

3) Google migrates some service level functionality away from Android and Pixels become a first-class citizen in Google's ecosystem. In my mind, Fuchsia is a direct result of Google's newfound interest in hardware (as a business). I imagine the following:

\- Google sees voice (and maybe AR) as the next frontier, which is actually an existential threat for them--they are harder to monetize via ads.

\- Google decides to start making hardware (for profit), to monetize their services (a la Apple). That is, their Voice Assistant is now differentiated from Android, and to use that service, you have to buy their hardware. Now, they don't need to make money on ads for voice searches.

\- Google will continue to roll out more ML-driven services that are exclusive to their hardware, and eventually, exclusive to Fuchsia. This will allow them to both a) further differentiate their hardware from other Android manufacturers, b) better monetize their services (effectively through HW purchases), and c) steal market share of the most valuable customers from Apple.

[0] - [https://news.ycombinator.com/item?id=16568275#16569138](https://news.ycombinator.com/item?id=16568275#16569138)

</comment><comment><USER8> Would be bizarre if Google went proprietary with Android and Microsoft were the ones to carry the AOSP torch.

<comment><USER9> Chromium might be trending in this direction too, with Electron/VSCode and the new Edge.

</comment></comment><comment><USER10> This isn't an official statement from Google. If you're interested in Android's OS update story (keywords: Project Treble, APEX [0], GenericSystemImages [1]), then the thread [2] has some interesting pointers.

\--

[0] [https://www.xda-developers.com/android-q-apex-biggest- thing-...](https://www.xda-developers.com/android-q-apex-biggest-thing-since- project-treble)

[1] [https://developer.android.com/preview/gsi-release- notes](https://developer.android.com/preview/gsi-release-notes)

[2] mirror: [https://threadreaderapp.com/thread/1119206658423558144.html](https://threadreaderapp.com/thread/1119206658423558144.html)

<comment><USER11> _" This isn't an official statement from Google"_

Yep, he follows on with:

 _" About Fuchsia replacing Android, it's not a secret I leaked lol"_

then...

 _" Also, do keep in mind how Google sometimes randomly kills projects, and starts new ones, nothing is set in stone with Google."_

</comment></comment><comment><USER12> They've said this before [https://twitter.com/DroidAlexandra/status/111934411027040665...](https://twitter.com/DroidAlexandra/status/1119344110270406656)

<comment><USER13> They've never made an official statement or confirmation of what Fuchsia is intended to be used for, if anything. An Android OS dev making this statement is, in fact, significant news.

<comment><USER14> AlexandraSalvaterra's github page shows that she is not a member of the Github Google organization. So I don't believe she is an Android OS Dev working for Google, or that this should be considered an official statement.

The articles that she linked to were old ones which have a note saying that Google denied that the speculations were true. And herself said in a later tweet that she was "putting things together" and that "5 years is a long time".

And also, "Also, do keep in mind how Google sometimes randomly kills projects, and starts new ones, nothing is set in stone with Google."[1]

[1] [https://twitter.com/DroidAlexandra/status/111934632486704332...](https://twitter.com/DroidAlexandra/status/1119346324867043328)

Sounds like a poseur trolling for Twitter followers to me....

<comment><USER15> You're right, it was bizarre to say the least. The entire thread is full of well-sourced, accurate info, and then this tweet was thrown in, then immediately after it was accurately disclaimed.

Anyone who works at a BigCo knows there's no way in hell anyone's made a decision about something 5 years out. There's a lot of risky dev between here and there

I think they meant to suggest Fuchsia could replace the Linux kernel in that timeframe

<comment><USER16> I mean, I know you're suggesting the claim has no merit because the poster doesn't know what they're talking about; but you know, even if the poster were a genius with intimate knowledge of the project, a claim like this is bogus.

If somebody with a modicum of common sense and software experience says some software of this kind of complexity that they're working on "can" be good enough in 5 years that basically means: it's a herculean task, and they have no clue whatsoever as to how long it's actually going to take. Also, they probably don't really know what they're really trying to do, only general aims, not actually how they're achievable.

There's no way in hell anybody can plan something that novel and hugely complex, with that many people involved in an ecosystem that's constantly changing not to mention a business that's not known for its long term perseverance, with any kind of accuracy for 1 year. 5 years is a complete joke.

Who knows - it might happen. It might in just 1 year. Or maybe 50. Or more likely, never. But I cannot believe that estimate to have any kind of sane grounding.

The only way they're actually going to follow through on a schedule that long term is by giving up on scope and quality, which is to say - sure, _something_ will be delivered, but perhaps nothing resembling today's expectations.

<comment><USER15> You seem to be vigorously agreeing with me beyond the first paragraph, but I must be reading you wrong?

<comment><USER16> Nope, totally agreeing with you!

:-)

<comment><USER15> Doh, the poster != me, it's the person whose posts we're discussing :)

<comment><USER16> oh yeah, sorry - that's indeed what I meant.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> What's the context? Maybe knowing who this individual is would help me?

Edit: ah an Android OS dev. I imagine that's a primary party to Android and therefore this individual is kind of an authority.

<comment><USER18> Google is eradicating all GPL from their mobile offering.

Fuschia will let them release a fully closed down platform.

<comment><USER19> Fuchsia is permissively licensed. I swear, copyleft people have the weirdest definition of freedom. How does using a license that lets you do anything with the code, including using it to compete commercially with Google, automatically indicate some nefarious plan to lock down the new platform? If they wanted to do that, why would they release Fuchsia under a permissive license in the first place?

<comment><USER13> The main difference is that copyleft currently requires some components of all new phones to be released as open source. With a permissive license, many Android vendors will not release anything open source. So you might have a much harder time figuring out how to flash the OS on them or get the drivers to work with them. Obviously some manufacturers will probably still do so, but they won't be required to as they are now.

Which is to say Fuchsia may not be closed source, but a lot of devices built on it probably will be.

<comment><USER4> Yeah- this is the only reason there's any openness at all in the mobile space right now. Android forks couldn't exist at all - much less postmarketOS - <USER2> the underlying hardware and drivers weren't open and available.

<comment><USER20> The underlay hardware and drivers are currently mostly closed and unavailable. Especially the radios. That doesn't stop postmarketOS.

<comment><USER4> Surely it still relies on some of the same mechanisms that allow you to flash custom bootloaders and ROMs?

<comment><USER20> A lot of bootloading / unlocking has been figured out by reverse engineering closed systems. It turns out Google is one of the few ones providing easy tools to do this on nexus / pixel phones, even though they didn't have to.

They still provide the binary drivers/firmware from upstream because there's no replacement for those.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> This is lunacy. Nothing is going to replace Android but the next version of Android, for the same reason why Microsoft will forever continue developing Windows: there are (hunrders of?) billions of lines of code written for it, and: 1. Users just want to run their software, 2. Developers just want to sell their software, and nobody is going to give a shit about principled OS design or whatever. If Google doesn't understand this, they're about to learn a hard, and expensive, lesson.

<comment><USER13> Google has already made Android apps run on Chrome OS, and I think are at least planning to do with Fuchsia. Which is to say, Google could kill the Android OS as long as they preserve the Android app platform.

See also: Windows has actually replaced their Win32 app model with UWP which is nearly a whole different app platform, but they still support Win32 apps and have made it increasingly easier to deploy Win32 apps on UWP-based platforms.

<comment><USER22> > Windows has actually replaced their Win32 app model with UWP

This is wishful thinking on Microsoft's part.

> they still support Win32 apps

Because it is despite their best efforts more popular and more important. So it cannot be said that they "replaced" it.

<comment><USER13> The main hold up to new development being UWP is the lack of compatibility with Windows 7, which is going out of support in January. Enterprises will most all have switched by then, and it will be considered pretty safe to develop ew software with UWP over legacy APIs.

<comment><USER22> That works, except for:

1\. The large body of win32 code already written, maybe exceeds the quantity of future UWP apps.

2\. The quality gap between what you can write with new and old stuff.

Maybe they have closed 2, I stopped paying attention a few years ago. But last I knew there was a bit of a chicken-egg problem where nothing substantial was being written with the new thing, thus no means for it to be validated and improve.

Also there is the general problem that 21st century Microsoft cannot compete with Windows NT. Can a new UI framework from Microsoft ever outdo the old stuff? Debatable. There have been several attempts.

<comment><USER21> I actually looked at UWP a couple of years back. To my shock and amazement, at the time the C++ API did not contain anything that would allow you to resize bitmaps. You could resize them for display, no problem, but there was nothing like Core Image available. How this is possible in this day and age on the world's premier desktop OS, I don't know.

<comment><USER22> AFAIK a UWP app can use Windows Imaging Components (WIC) for that task, which is a COM API introduced around the Vista era. Part of the great nebulousness of defining UWP is that they can retroactively say a particular Win32 API is "modern" enough to fit.

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> Can't access the link anymore, "Sorry, that page doesn't exist!"

Can anyone still access? Can anyone throw this in the WayBack Machine?

<comment><USER24> [https://archive.is/ly67p](https://archive.is/ly67p)

</comment></comment><comment><USER25> I don't see how Fuchsia can pull this off without having at least compatibility with existing Android apps.

Even if they do: I could see a ton of smartphone brands continuing to maintain it for their own smart phones (the Chinese have been big on that front!) or even making their own OS like Samsung with their Tizen OS.

<comment><USER26> All they need to do is offer the legacy API in addition to the new one, and write an internal translation layer. Obviously, that legacy API is at huge risk of being deprecated, so you should expect it to be considering. Any app out there that isn't rewritten for the new API will eventually stop working, just like most of Google's products. I am sure they would enjoy seeing this 'cleansing' of less-popular and niche apps.

</comment></comment><comment><USER27> I really wish that Ubuntu project took off

</comment><comment><USER28> Android will lose its corporate sponsor but it being an open source project will continue as long as people continue to develop it.

<comment><USER29> But it's mostly shipped on corporately made, marketed and sold phones.

Without shipments, it's just yet another obsolete mobile OS.

<comment><USER28> Well I'm not aware of any nonprofit phone development cooperatives so without Google driving it is is likely to become less popular but there will probably also be other corporations that continue to develop an ecosystem for it. There are still OS/2 derivatives being developed. I'm also just saying people will continue to use it and something along the lines of LineageOS will be even more important for people to be able to use their existing phones. For most people who continuously discard their phones after a few years to get the latest greatest it may end up being supplanted by whatever fuschia based phones are developed. I'm convinced that fuschia is partially driven by a desire to escape the GPL so with a MIT based licensed manufacturers won't even need to pretend to release the source code for their hackish drivers and kernel mods.

</comment></comment></comment><comment><USER30> Why would Google abandon it?

<comment><USER31> it is going to be replaced with Fuschia OS (i'm sure i probably butchered the name)

My understanding is that it will be a pretty much transparent switch for users going from an Android phone to a Fuschia phone -- not sure though.

<comment><USER32> The mnemonic I use for "fuchsia" is that it's a flower named after a guy named Fuchs.

It is a bit strange that a search engine company would choose a name that's so difficult to spell!

<comment><USER33> In Chinese, the language of the largest mobile market in the world, it's a good opening phoneme: [https://en.wikipedia.org/wiki/Fu_(character)](https://en.wikipedia.org/wiki/Fu_\(character\))

According to Wikipedia total Alphabet assets are around $232B, and Xiaomi's are around $21.6B (ie. ~10% of Google's total net worth). Xiaomi was founded in 2010. Google was founded in 1998.

</comment></comment></comment></comment><comment><USER34> I truly liked webOS and even Windows Phone. I wish there was something new.

</comment><comment><USER27> Who is the speaker?

</comment><comment><USER35> got an OS for you: have no phone

<comment><USER36> Is that really the best solution? I realize that might be sarcasm, but it seems phones are fairly critical for many people.

Obviously it's not a necessity, like food/water/shelter, but even some homeless people with nothing else have cellphones.

<comment><USER35> it was only half sarcasm (and thanks for not firing at me for being overly laconic in my previous comment)

I feel going back to very tech light, very local might be a very plausible future. Maybe phones but not as a platform for life through digital pipe metaphor

different and deeper education, more trustworthy next door social tissue, slower pace

<comment><USER36> Haha no problem, I figured there was more to it than just that ;)

I do agree with you that we would be better off with less tech, but it would be hard for me at least since I love it so much. Although I do stay away from social media (unless you count the occasional HN post) which I think does more bad than good.

</comment></comment></comment></comment><comment><USER37> does this mean Android won't be trademarked anymore by Google? I really hate that such a wonderful word was ruined by Google.

<comment><USER38> Kind of like how Apple ruined "apple".

</comment></comment><comment><USER34> Android EOL was after I tried it for the third and last time a few years ago. It is just crap.</comment>


Ask HN: How do I accept all major credit cards when not based in the US? - <AUTHOR>

I would like to be able to accept all major credit cards in USD, and have the funds transfered to a local bank account (Jamaica).
I have tried Paypal, but they send a check. They don't offer instant transfers to Jamaican bank accounts, only US ones.
I have a US bank account, so I guess I could have it transfered there, but am not sure how to get it from my US bank account to my local one without writing a check (which takes 45 days to clear) or without flying to the US and wiring the funds myself.
What options do I have to streamline this process?
Assume I will be earning recurring income from a subscription-based model, so I would need this to be a sustainable solution.
All suggestions are welcome, including setting up a US company and doing some sort of standing order transfer. Specifics to do the above would be greatly appreciated. <comment><USER3> We're in the UK, so I don't know how applicable this is to Jamaica, but for <http://kutoken.com/> we use HSBC Merchant processing to accept transactions in GBP, USD and Euro.

HSBC give us the option of having the funds deposited into HSBC accounts in those currencies, or converting to GBP (at our expense, not the customer's).

I'm very happy with this arrangement - it stops many customers from being put off by not knowing how much the service is going to cost them month to month, with the minimum of hassle for us.

<comment><AUTHOR> Unfortunately HSBC isn't available in Jamaica :(

</comment></comment><comment><USER4> Virtual XS (Access)(<http://www.vxsbill.com/>) in The Netherlands do all kinds of billing acceptance and are one of the most reliable partners for a lot of companies all over the world. They do adult, gambling, pharmacy etc. Only legit business is allowed, because you get screened to the bone. You've to setup a company in The Netherlands, but they will wire all funds to your account. At least, you can contact them and explain your situation. They are more than willing to provide you with a suitable solution.

</comment><comment><USER5> The absolute fastest way to do an I-can't-believe-its-not-a-wire-transfer is to get your US bank to issue you a debit card with the Mastercard or VISA logo on it, and then take that to an ATM in Jamaica. You'll get soaked like a foreign tourist but, hey, no waiting on the money.

You can also give your US bank instructions to wire transfer it to you. Some of them will let you do this online (Citibank does -- you'll have to clear their Know Your Customer hurdle but otherwise it is fairly routine) and most major ones will do it over the phone (again, if you can clear Know Your Customer).

Know Your Customer isn't that scary, although people make it out to be. Basically they'll ask you for a passport and government issued photo ID.

</comment><comment><AUTHOR> By the way...just to update this thread. So I have both a Wachovia and Bank of America account.

Apparently Bank of America allows you to order wire transfers online - <USER2> their 'transfer' feature. These orders can also be standing orders. I think this will suffice for what I need in the near-term.

BOA's website has this to say about SafePass and transfers:

With SafePass, your daily limit will increase from $1,000 to $10,000.Your weekly limit will increase from $2,500 to $20,000. Note: U.S. Trust, Bank of America Private Wealth Management or Premier clients may have higher transfer limits. Please contact your Relationship or Client Manager for more information on your limits.

Thanks for all the feedback and tips.

<comment><USER6> Just a warning, BofA wire transfer probably won't work. I tried to set this up with a landlord years ago and what happens is that the transfer amount will be locked up for a week or two, the transfer won't go through and then you'll both get charged fees for it not working. Maybe it's better now, but I doubt it.

</comment></comment><comment><AUTHOR> Here is a link to some FAQ's for BOA.

[https://www.bankofamerica.com/www/en_US/eas-docs/cfc- help/he...](https://www.bankofamerica.com/www/en_US/eas-docs/cfc- help/help_faq.html#TransOut9)

Although I can't find the part about the limit of $10K. Maybe it is just for my type of account - free student checking. Will have to upgrade the account some time soon, I imagine.

</comment><comment><USER7> Also looking for payment processors outside US.

About Paypal, AFAIK they can transfer funds to your credit card (not bank account) for about $2 per transfer. You have to authenticate the card before. It involves them making a small transaction from which you take a confirmation code (from the bank statements). Takes about 2-3 days.

</comment><comment><USER8> Not sure if it fits the bill, but check out <http://www.xoom.com>

<comment><AUTHOR> This looks interesting, but I don't see any option about payment processing - i.e. accepting credit cards, etc. from my customers and transferring to my Jamaican bank accounts.

I have emailed them though, in the event that I missed something.

</comment></comment><comment><USER9> we had the same issue as we are in NZ and US based companies often have that panic that everything non US is not controllable. we went with worldpay and have no issues with them. we currently accept visa/master in USD, NZD and EUR via them.

</comment><comment><USER10> I thought you could do a wire transfer over the phone. Is that not the case?

<comment><AUTHOR> Unfortunately...I have been using Wachovia...and I just got off the phone with them, and they confirmed that I can't do a wire transfer without coming into a branch - which sucks.</comment></comment>


Allocated time for personal projects at work: pros / cons? - <AUTHOR> Do/did you have time for personal projects (like Google's 20% time) at your company? How efficient is it, does it help the company become more innovative? Does it motivate employees or help them grow? Would you recommend it? <comment><USER2> I would love to be able to work on my personal projects at work, but I feel I would be less productive because I would rather be working on those than my actual work. I would also be in the mindset of thinking of my personal projects more than real work. Another concern I would have then if my company have a stake in my projects and seeking royalties if anything came of them. I'm curious about this topic though if anyone has more details about it.</comment>


For Tech Companies, Downturn Serves as Cause for Common Ground - <AUTHOR> http://www.nytimes.com/2009/06/30/business/media/30digital.html?src=twr

<comment><USER2> Referring to Bing, Eric Schmidt said _"We benefit from Microsoft's continual re-entering into this market. We encourage them to continue with this strategy."_</comment>


Ask HN: Where do Chinese property investor hang out online? - <AUTHOR> I always hear that one of the problems with the housing market in the US, Canada, the UK and other places is that a lot of "foreign investors" are scooping up the properties. Apparently it's to diversify their portfolio in ways that protects their worth from their national currency price fluctuations.<p>Is there an online community where some of these property investors might hang out? I want to see if I can convince someone to rent to me in exchange for Bitcoin or shares in my startup or something equally unconventional. <comment><AUTHOR> I cross posted this to /r/china to get some input from a different community and this comment was made. Thought I would replicate it here in case anyone else finds it interesting

\</comment><comment>--

From /u/ThomSEN1

Honestly the ones that are buying overseas are probably unwilling to be openly discussing it online. They aren't hedging against exchange as much as they are hedging against having to stay in China in the long run, or simply getting freehold land somewhere in the world or getting some of their net worth out of the country.

The foreigners that have networks to tap into these sorts of guys will be employees of real estate companies. The one thing you may look to do is visit display suites in first tier cities for upcoming developments. In Australia, companies like Mirvac, Sunland etc all set up sales displays SH/BJ/GZ etc to sell apartments off the plan, you might be able to make a connection by chance at one of those sort of events.

They won't be looking for bitcoin but they will likely be interested in owning some of your company, as that means they can get their name on a shareholders register somewhere overseas and as such they might be able to move money out through that. In some cases they won't even care what the company does, as long as its registered offshore. Building high net-worth connections in china is hard, (but fun, if you like long meals and 8 hour baiju/cigarette binges!). Nepotism is the name of the game unfortunately.

If you're looking for investment in the tech sector, focus on SZ/HK. Most of the money is moving to the west via the HK financial sector, and Shenzhen is clearly the tech hub so people may be more willing to adopt bitcoin or similar concepts.

Get personal business cards if you don't have them already, be prepared to hand them to everyone. You might get lucky with a mission like this but it'll be hard if you don't have some connections already unfortunately.

Link: [https://www.reddit.com/r/China/comments/4ohish/where_do_prop...](https://www.reddit.com/r/China/comments/4ohish/where_do_property_investors_in_china_hang_out/)

</comment><comment><USER2> But better fly to Shenzhen and go network around during property sale evenents

</comment><comment><USER2> www.vansky.com =D

<comment><AUTHOR> This is fascinating! From what I can understand with my poor chinese, This is a news portal and forum just for Chinese expats in Vancouver or Chinese citizens who have an interest in Vancouver.

It's such a niche topic and community, but the forum has half a million posts and a peak of 4000 people online at the same time. That makes me think that there has to be over 100,000 registered users.

I need to consider the Chinese market more for niche sites. With so many billions of people, a "niche" site could be amazingly popular.</comment></comment>


Amazon to sell its own lines of food, detergent and diapers - <AUTHOR> http://www.recode.net/2016/5/15/11680080/amazon-happy-belly-mama-bear-private-label <comment><USER2> I'm surprised there's no comments on this... I will say that it isn't exactly surprising, between Walmart, Walgreen's, Kroger, and many others, they all have branded goods, and given Amazon's inroads into local markets, as well as food in general it was bound to happen.</comment>


The Guardian of Golden Gate - <AUTHOR> http://zidilife.com/the-guardian-of-golden-gate/

<comment><USER2> "And just a couple of minutes after he leaped, another person leaped on the north part of the bridge. Two deaths in two minutes. So that was a pretty shocking day"

Fair to say this man has seen some shit...</comment>


Interface Dispatch (2018) - <AUTHOR> https://lukasatkinson.de/2018/interface-dispatch/ <comment><USER2> Some JVMs use fat pointers where the pointer embeds the dynamic type of the class rather than the statically declared type. This permits inline caches to verify the type of the instance without any indirections.

Delphi implemented interfaces like the C++ approach, and in order to be compatible with COM, it didn't have a huge amount of flexibility: interfaces are mandated by the COM ABI to be called like this:

        reference->vtable->method(reference)

This pretty much forces the vtable references to be stored in the object instance, one per implemented interface. Casting an instance to an interface means adding the offset to the vtable in the object data to the instance pointer.

The vtables for every interface point at stubs which subtract the same offset and then jump to the implementation, so that object data is where it's expected for a normal instance method call.

COM influenced the internal design of Java interfaces too - the first three slots were reserved for COM's lifetime management and typecasting methods. I'm not sure anything practically ever came from that though.

I reused the interface calling mechanism when I implemented anonymous methods in Delphi. Anonymous methods can capture variables from their declaring scope; the captured state needs lifetime management in the absence of GC, so I piggy- backed on COM's lifetime management. This reduced the effort to interop with C++ too.

<comment><USER3> I concur with the description of the Delphi implementation, as I've navigated it numerous times myself. I guess I don't understand the author's negative tone with regard to the C++/Delphi implementation. There's going to be overhead with any choice made and C++ and Delphi made the choice to sacrifice memory usage for speed. Furthermore, the only part that really scales with the number of objects is the extra vtable pointer for each implemented interface in each newly constructed object. Hardly a significant overhead in today's memory-prolific computing environment. Also, pointer fixup thunks and unconditional jumps are easy to speculatively handle.

<comment><USER4> The author is interested in PL design, and thinks that while C++ style object implementations are great at offering compatibility with certain systems or interfaces, other approaches allow for far nicer semantics in a greenfield programming language.

For example, fat pointers make it possible to implement interfaces for existing types. I have experienced that as game-changing in Haskell, Go, Rust.

I also disagree that any memory usage can be handwaved as "no longer relevant today". Electron, or garbage collection: perhaps. But object size affects cache pressure, and cache utilization is critical to performance. C++ is typically good at keeping objects small, _except_ when it comes to multiple inheritance.

<comment><USER3> Honest question: do you have a real-world example that indicates that the extra pointers added due to multiple inheritance actually results in performance degradation due to extra cache pressure?

</comment></comment></comment></comment><comment><USER5> With the C++, there is also an optimisation which can be performed: put the method pointers in the object itself, instead of in a vtable. This is beneficial when there aren't so many objects nor methods, since it eliminates one indirection. Instead of obj->table.method() it turns into obj->method(). When I write "OOP" code in C, I usually do this instead of using a separate vtable.

As an aside, I noticed the word "klass", then looked up at the domain name and confirmed my suspicions. ;-)

<comment><USER6> "klass" is a common convention in OOP code when referring to classes, because "class" and "Class" are often reserved already.

<comment><USER7> Java seems to prefer `clazz`.

<comment><USER8> "klass" seems to somewhat outnumber "clazz" in OpenJDK, 1541 to 1021. Wonder if there's a reason they haven't settled on one.

[https://github.com/openjdk/jdk/search?q=klass](https://github.com/openjdk/jdk/search?q=klass)

[https://github.com/openjdk/jdk/search?q=clazz](https://github.com/openjdk/jdk/search?q=clazz)

</comment></comment></comment></comment><comment><USER9> > C# generally follows the same approach as Java, but tries to perform more > aggressive optimizations.

I don't understand this when it doesn't have deoptimization?

The Java example has one condition for fast path, while the C# has two nested loops and a condition inside that!

<comment><USER4> Author here. Both the JVM and CLR do some pretty aggressive optimizations even for normal interface calls. In the Java section I also show inline caching, a standard optimization approach. The CLR calls its approach to caching "virtual stub dispatch". Speculative optimizations and inlining would be more advanced optimizations that I did not cover.

But what about the worst case – the method lookup when the method is not in the cache? There, the CLR introduces an additional level of indirection for calls through interface types, which has benefits for memory usage and possibly dispatch time. But since this is the worst case, the complexity doesn't matter that much as long as the important cases (which _can_ be cached) work well.

<comment><USER9> > In the Java section I also show inline caching, a standard optimization > approach.

Thanks. Does the CLR do inline caching for interface calls which cannot be devirtualised without speculation? Or not because of the lack of deoptimisation? Or does it have self-modifying code instead?

<comment><USER10> It depends very much of which .NET runtime we talk about (NGEN, Pre-RyuJIT, RyuJIT, IL2CPP, Mono, MDIL, .NET Native, .NET Core, Burst), and which version of it.

</comment></comment></comment></comment><comment><USER11> Here's another interesting approach for Java:

[https://dl.acm.org/citation.cfm?id=504291](https://dl.acm.org/citation.cfm?id=504291)

Interface methods are looked up in a hash table containing function pointers (the table index can be computed at compile time). If there's a collision, a small stub is generated that dispatches to the right method.

</comment><comment><USER12> fat pointer cost can be mitigated by doing pointer preunpacking in hardware. That kind of support fell out of favor when RISC started beating CISC architectures, but if dynamic dispatch became a significant performance issue I could see it going into certain processors. We have happily returned to an era of processor experimentation.

</comment><comment><USER13> Speaking of interfaces in Go, can anyone explain this particular result? We've done a benchmark recently at work to test which way we would best represent a set. (Linux, go1.12)

          map[string]bool
          map[string]struct{}
          map[string]interface{} // where we put an empty struct in it.

results:

         BenchmarkBoolSet-4              5886572           223 ns/op          39 B/op           0 allocs/op
         BenchmarkStructSet-4            6716685           206 ns/op          32 B/op           0 allocs/op
         BenchmarkInterfaceSet-4         4299072           313 ns/op         115 B/op           0 allocs/op

(I'm aware this is a bit of a tangent to TFA)

<comment><USER14> Can't really say what's going on here without seeing some code.

<comment><USER13> Well the code is the same for all of them (but when using a bool map we assign true instead of empty struct). So we run this code inside a benchmarking function:

          m := map[int]interface{}
          // or m := map[int]struct{}
          for i := 0; i < t.N; i++ {
               m[i] = struct{}{}
          }

edit: fix code.

<comment><USER15> I'm speculating, but sizeof(bool) == 1, sizeof(struct{}) == 0 and sizeof(interface{}) == 8, so might be as simple as that.

[https://play.golang.org/p/5acy87JLD3i](https://play.golang.org/p/5acy87JLD3i)

<comment><USER13> Yup that well could be it!

</comment></comment></comment></comment></comment><comment><USER16> If you liked this you might also like the COLA system: [https://en.wikipedia.org/wiki/COLA_(software_architecture)](https://en.wikipedia.org/wiki/COLA_\(software_architecture\))

> COLA is a system for experimenting with software design currently being > investigated by the Viewpoints Research Institute. "COLA" stands for > "Combined Object Lambda Architecture". A COLA is a self-describing language > in two parts, an object system which is implemented in terms of objects, and > a functional language to describe the computation to perform.

</comment><comment><USER17> I'm curious about the history of the fat-pointer approach. The first exposition I personally ran across was [http://erights.org/enative/fatpointers.html](http://erights.org/enative/fatpointers.html) in the 90s. Can anyone point out others?

<comment><USER18> The earliest one I know of is in the Emerald programming language. There is a brief description of the technique in [http://www.emeraldprogramminglanguage.org/OOPSLA-86-paper.pd...](http://www.emeraldprogramminglanguage.org/OOPSLA-86-paper.pdf) from 1986.

See [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103...](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.9395&rep=rep1&type=pdf) for more history and description of the implementation. From that paper: "The run-time system constructed an AbCon for each <type, implementation> pair that it encountered. An object reference consisted not of a single pointer, but of a pair of pointers: a pointer to the object itself, and a pointer to the appropriate AbCon". (Called an AbCon because it "mapped Abstract operations to Concrete implementations.)

<comment><USER17> Great find! Thanks.

</comment></comment></comment><comment><USER19> The ascii art is broken.

<comment><USER4> (Author) I am aware of the problem. For me it works on desktop but not on mobile browsers – apparently the Unicode box drawing characters are not really fixed-width on all systems?

One day I'll write a Pandoc filter that pipes these diagrams through a Shaky or Ditaa type tool first…

<comment><USER20> > For me it works on desktop but not on mobile browsers

Looks weird for me on Mac desktop Chrome. It looks like the default monospace font, Courier, lacks box drawing characters. So it probably falls back to some other monospace font which likely has different metrics.

A good CSS font stack for monospace fonts is something like:

        font-family: Consolas, Monaco, monospace;

The first catches almost all Windows users, the second almost all Mac users, and the last fallback to the default.</comment></comment></comment>


Ask HN: Review My Startup, Unikyte.com - <AUTHOR> Hey guys,
We use A.I. to better match people to education. Do you have any feedback?<p>Website : https://www.unikyte.com <comment><USER2> 10-15 minutes is a long time to wait for results, especially when you're asking for feedback. The freeform text box isn't helpful because it lists a bunch of things I should tell it but not _how_ I should tell it.

You can fix both by offering samples, better guidance and structured but unobtrusive input where it matters.

edit... now that I think about the wait time, is there any AI behind it at all? I haven't seen an application of AI that takes this long ever, but have seen ones that push onto mechanical turk (or equivalent) and hope for the best.

<comment><AUTHOR> Hi, thanks for the review, especially for the list of things point. Yes there's ai in it but it's assisted by humans which is also why you get to wait a bit more than other ai apps.

</comment></comment><comment> alex-wallish split up the plaintext box. change that to a number of questions. use these for your model. automate the entire thing. should get a response in less than a minute.

</comment><comment><USER3> It's ok as a startup, you can enhance later</comment>


The Mentat Wiki - A wiki about learning and memory - <AUTHOR> http://www.ludism.org/mentat/

<comment><AUTHOR> This post: <http://news.ycombinator.com/item?id=769659> made me remember this page, which has had a big influence on how I think and remember things.</comment>