Warby Parker Grabs New Investment, Closing $41.5M Round - <AUTHOR> http://techcrunch.com/2013/02/25/warby-parker-grabs-new-investment-from-american-express-j-crew-ceo-closing-41-5m-round/ <comment><USER2> I don't get it - warby parker seems to already be killing it, brand and mindshare wise. I could easily see them following a path similar to any number of fashion brands - closely held and reliably growing and profitable for decades.

But now, to shoot for the half a billion minimum exit in 7-8 years or less because these venture firms financial models only work one way. Since the probability of a young eyeware company organically arriving at a five hundred million dollar rain is essentially zero, it almost guaranteed they've got to plot a new course or ten. Now every decision you make has to include evaluating if it would alienate one of few potential suitors, or if it can provide growth and market numbers that would look good on a prospectus.

I'm not privy to their numbers, so maybe I am just a victim of a really good hype machine. But my impression is that they've got strong sales growth, margins that most ecommerce shops would die for, strong customer loyalty and would be profitable if you limited spending to core business and traditional customer acquisition models.

Considering how overheated the commercial bond market is (and shows no serious signs of waining) I think there's a real possibility somebody like Warby Parker could do a debt or convertible debt deal at surprisingly nice terms. You could do a lot with say $20M for 7 years at 6% and still own a company you don't hate working for at the end of it all.

Sure, conventional wisdom says it's impossible to raise for web/tech outside of the specialized PE cliques. But that truism developed in an age where a) sovereign debt paid 5% and equity markets were reliably bullish in decade based timescales.

Ecomom almost certainly could have been a reliably profitable company at some level and contribute a number of high paying american jobs to the economy. But because that's the last thing any venture investor is looking for they went down a rabbit hole of wasteful gambles where growth trumped logic.

</comment><comment><USER3> Slick website and nice service providing first world convenience, but still Made in China.

SZDaily: _"It is said that at least 60 percent of the spectacles on the earth are made in Shenzhen... At present, there are nearly 500 spectacles manufacturing companies in the city, mostly in Henggang Subdistrict, Longgang District, producing nearly 200 million pairs of spectacles a year. Ninety-five percent of their products are exported to more than 130 countries and regions, accounting for more than 70 percent of market share in Europe and about 60 percent on the global market."_

[http://www.szdaily.com/content/2012-07/20/content_6962497.ht...](http://www.szdaily.com/content/2012-07/20/content_6962497.htm)

WarbyParker: _"We design our frames here in the US, then source our material (high-quality cellulose acetate) from a 150-year-old, family-owned Italian manufacturer. Our frames are then crafted in China"_

[http://blog.warbyparker.com/post/12789294212/i-have-a- questi...](http://blog.warbyparker.com/post/12789294212/i-have-a-question- about-where-warby-parker-eyewear-is)

As for the Italian manufacturer, it's likely they are referring to Mazzucchelli founded in 1849 and famous for the tortoise shell look. Well, it appears they may have outsourced acetate production to China too!

[http://www.optiboard.com/forums/showthread.php/47085-Acetate...](http://www.optiboard.com/forums/showthread.php/47085-Acetate- from-China-vs-Italy-Any-major- differences?s=dbb860c8b32cd91deb57daa53785745e&p=403951&viewfull=1#post403951)

[http://www.alibaba.com/countrysearch/CN/mazzucchelli- acetate...](http://www.alibaba.com/countrysearch/CN/mazzucchelli-acetate.html)

<comment><USER4> What's so bad about made in China?

<comment><USER3> Nothing at all, just highlighting the fact that despite all the beautiful marketing, Warby Parker is really no different from other online glasses retailers.

 _"A new concept in eyewear... Warby Parker was founded with a rebellious spirit and a lofty objective: to create boutique-quality, classically crafted eyewear at a revolutionary price point."_ <http://www.warbyparker.com/our- story/>

Given that Warby Parker are most likely using the same supply chain as their competitors, what exactly is their competitive advantage, to justify total funding of $50.3 million? It can't just be a prettier website, can it?

<comment><USER4> Well, much like apple, many people are willing to pay more for a pleasant experience.

I've used several of the cheap Chinese glasses sites and the product quality all seems uniform but some of them have a better curated selection of designs than others. Warby also lets you do the 5 pair try on at home thing which I'd say is worth paying a bit more over the rock bottom price.

As far as the funding, I'd guess it's because they've been quite successful, and also because they're apparently in talks with Google regarding Glass.

<comment><USER3> Agreed, although you could argue that Apple provides something of tangible difference i.e. iOS and OSX, whereas Warby still sells the same Chinese glasses but with a better customer experience.

</comment></comment></comment></comment></comment><comment><USER5> I bought my last pair of glasses at Warby Parker, and I did really like the home try on service. You pick out your top 5 choices, and then send them to you with clear lenses in a box. You can spend an evening (up to 5 days really) trying them on and seeing which look best on you. Then you send them back and get the real pair with your prescription. They are real inexpensive as well. It was a nice "internet" experience, compared to trying things on in some random shop.

<comment><USER6> Same here, the main problem lately is they don't have enough pairs to send out (you frequently see that a pair isn't available for at-home). Hopefully this money will build their inventory significantly.

</comment></comment><comment><USER7> Just for my own curiosity, I'd love to know how much faster the round got to closing after rumors leaked out that Google was partnering with WP to create some Glass concepts.

</comment><comment><USER8> When Warby Parker was first getting off the ground, the idea of buying glasses online was completely new. They've done a great job of validating the model, but now they're facing a lot of competition and I'm not sure their brand is enough to allow them to compete.

I ended up buying my two pairs of glasses from a competitor... The first pair was only $30, and that was only because I opted for a higher end lens. The second pair was a designer brand that was at a similar price point. Since the lens cost has gone down dramatically for all of the online retailers, on what basis is Warby Parker going to compete?

Glasses are an industry that is all about brand labels. For people that care about that sort of thing, they'll go buy RayBan or Gucci or whatever else over a Warby frame at a roughly similar price point. For folks that don't care about that sort of thing, they'll buy a cheaper non-name brand fram for less than the Warby price point.

<comment><USER9> What competitors did you buy from? I ask because I'm getting some new specs and just got the try-for-free thing from WP. If I can spend only $30, I'll gladly do it.

<comment><USER3> You could keep using your old frame and just get new lenses put in if your prescription has changed. 39DollarGlasses offer this service.

</comment></comment></comment><comment><USER10> Warby Parker is so interesting, not because it's a story of an eyewear company, but because it's a story of a fascinating business model by design- savvy people.

I probably wouldn't wear their glasses, but they are beyond compare to their competition in this regard.

Kinda like a Zappos for glasses, with the difference that they make their own shoes.

</comment><comment><USER11> Pulling for these guys. Just a great David vs Goliath and they seem to have a chance making a dent.

<comment><USER12> Who is Goliath in this case? I just got glasses this year so I honestly don't know. My glasses are all made by little Californian, German or Belgin companies that my optometrist stocked.

 _edit_

Answering my own question, it appears Luxottica and Safilo make most of the glasses out there.

<comment><USER13> Goliath is probably Luxottica, who owns a lot of other companies and sells a large share of high end eyewear.

60 Minutes did a piece on them: <http://www.cbsnews.com/video/watch/?id=7424700n></comment></comment></comment>


Writing a Chip-8 Emulator with Rust and WebAssembly (2017) - <AUTHOR> https://blog.scottlogic.com/2017/12/13/chip8-emulator-webassembly-rust.html <comment><USER2> For anyone inspired to write their own Chip8 interpreter, I maintain a repository of modern games and programs for the platform (as well as some extended variants). You can give them a try directly from this gallery: [https://johnearnest.github.io/chip8Archive/](https://johnearnest.github.io/chip8Archive/)

<comment><USER3> I don't really know the chip48/schip differences to chip-8 but I fondly recall Ant.

[https://github.com/erincatto/AntLove/blob/master/OriginalAnt...](https://github.com/erincatto/AntLove/blob/master/OriginalAnt.txt)

</comment></comment><comment><USER4> I'm missing something, I think. What's the big deal with CHIP-8? I'm starting to see people using it as a programming challenge and I guess I don't understand what the big deal is. Is it just a fun project or something? What's prompting this?

<comment><USER5> People ask for programming advice all the time, they say "I want to write a SNES/Playstation/Gameboy/ZX Spectrum emulator, what should I learn?"

Having a standard, and simple, system to suggest elsewhere allows people to get started gently. Sure some people will still find it "too much", but it's nicer to learn that earlier instead of after having weeks writing the implementation of a Z80 emulator.

As the system is simple it can often be implemented in an evening, or a weekend. If you're new to low-level code then maybe a month of part-time work would be sufficient. Because the system is so undemanding you can write it in Python, Javascript, C#, or other high-level languages without the need to touch/learn/understand C, Golang, or similar too.

In short it's a perfectly self-contained small project for those interested in implementing emulators, and for that reason it is often seen as a starting point for places like reddit's /r/emudev

<comment><USER2> And even with all that simplicity, there's enough disagreement and misinformation about the subtleties of the CHIP-8 instruction set to provide a microcosm of the same challenges emulation enthusiasts face for more complex systems.

One of my colleagues published a number of writeups about CHIP-8 portability based on original research which might be interesting: [https://github.com/Chromatophore/HP48-Superchip](https://github.com/Chromatophore/HP48-Superchip)

</comment></comment></comment><comment><USER6> Hmm, since this is WebAssembly I would have expected a demo on the page. Too bad there isn't one, I would have liked to try it out.

<comment><USER7> It's linked with the words "hosted online". [https://colineberhardt.github.io/wasm-rust- chip8/web/](https://colineberhardt.github.io/wasm-rust-chip8/web/)

<comment><USER6> Oh, thanks, I saw "on GitHub" but somehow missed "hosted online".</comment></comment></comment>


Hacker News: Happy Holidays - <AUTHOR> Ladies, gentleman, hackers, entrepreneurs, daily readers, occasional readers, and seldom readers alike:
Whatever you celebrate... enjoy yourself, enjoy your time with family, enjoy time off from work, enjoy the holidays. Relax, be merry, eat good food, and it is certainly okay to indulge with a little dessert and some wine.. or whatever you drink.
Whatever happened to you this year, I hope it was good. If not, I hope going into the New Year, you have learned from your mistakes and are now a better improved version of yourself.
Keep on contributing to the greatness that is Hacker News!
I hope you have a wonderful New Year filled with lots of success. Take care! <comment><USER2> Nope. I'm going to have a lot of dessert. Thank you for the wishes. Have a merry Christmas for you and your loved ones (or happy holidays).

</comment><comment><USER3> Happy holidays to you too! I am looking forward to neko 4.0

</comment><comment><USER4> Happy Holidays Hackers! Sending joy and love from London!</comment>


Pixar Will Make Renderman Available for Free for Non Commercial Use - <AUTHOR> http://renderman.pixar.com/view/DP25846

<comment><USER2> Discussion: [https://news.ycombinator.com/item?id=7819245](https://news.ycombinator.com/item?id=7819245)

Other sources:

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

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

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

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

</comment><comment><AUTHOR> There is also more information here: [http://renderman.pixar.com/view/non- commercial](http://renderman.pixar.com/view/non-commercial)</comment>


Norway tightens IT security to prevent ballot tampering - <AUTHOR> http://www.reuters.com/article/us-norway-election/norway-tightens-it-security-to-prevent-ballot-tampering-idUSKCN1BC4AH?il=0 <comment><USER2> Computer voting was a mistake. It has been shown over and over that voting machine security is abysmal.

Voting is one of the few things that shouldn't be computerized. It's far easier to swing an election by hacking a few voting machines than to forge thousands of ballots.

No matter where you live, do yourself a favor and vote only on paper.

<comment><USER3> I think it's a great example of our governments' misunderstanding of modern technology and security. Our current governmental computer systems appear _extremely fragile_ [1] and prone to tampering.

If governments were actually serious about electronic voting, they need dedicated committees and bureaucratic entities whose sole responsibility is the maintenance and security of these systems.

I expect the United State to be absolutely crippled by cyber-warfare in the coming decades. On a state level, our government is simply incapable of recognizing the many vulnerabilities their systems have and compensating for them.

While personally I think electronic voting is a trash idea (couldn't we instead still vote via paper, and then read the results via ML? This would give us a "margin of error" of votes, but we would always have the paper ballots to fall back on), I think that tightening IT security is a good thing for governments to do. Especially considering just how poor computer security is for government entities.

[1]. Just want to mention I'm not a security guru. This is just my interpretation after visiting many government websites, reading stories, etc

<comment><USER4> There is always major opposition to anything which would cause many more people to vote, because that would utterly change the current political landscape. The turkeys won't be voting for Thanksgiving.

</comment></comment></comment><comment><USER5> The machines used to count votes were Windows machines connected to the internet.

[https://www.nrk.no/norge/teller-opp-stemmer-i-valget-pa- data...](https://www.nrk.no/norge/teller-opp-stemmer-i-valget-pa-datamaskiner- tilkoblet-internett-1.13660659)

<comment><USER3> So when is this gonna blow up for someone?

Like are we gonna read about the U.S. power grid being shut down, or an entire state / nation wide election tampering?

It's absolutely terrifying how incompetent these folks are. Why is there no one marketing their skills to governments who have actual skills? Why aren't governments hiring employees with actual skills?

We used to have the most talented structural, mechanical, and industrial engineers in government positions or as government contractors. Is tech simply too young for that to have happened yet? Or are governments failing to adequately respond to their massive skills' gaps?

<comment><USER6> It already did. Look at the last election.

<comment><USER7> Not obvious enough. Power grid hacked, widespread blackouts = somebody obviously hacked it. Meanwhile, poll numbers slightly off from opinion polls, but enough to sway an election = could he hacks, or could be sampling error. And thanks to the 2 party system, both parties will poll close to 50% it's very easy to hide in the noise.

</comment></comment></comment></comment><comment><AUTHOR> Vivaldi browser developer Patricia Aas has done a terrific job bringing awareness to election security issues ahead of the upcoming Norwegian election:

[https://twitter.com/pati_gallardo/](https://twitter.com/pati_gallardo/) (most links are in Norwegian, but Google translate does a reasonable job).

<comment><USER8> I agree. She raised this concern as a private citizen and debated it on national tv and radio with the ballot bureaucrats who initally dowplayed the issue. If it hadn't been for her, probably nothing would have been done about it.

<comment><USER9> Or someone else would have done it.... ;-)

<comment><USER8> Or not ;)

</comment></comment></comment></comment><comment><USER10> Tightening it by counting manually, hehe.

Was a big deal earlier this week that the keys and stuff for some municipalities were posted online on their web pages. Edit: it was certificates you had to install in the browser to verify that you were in the position to enter the total amount of votes in your municipality. The url for download were unique and random, but got indexed by search engines because they spy on urls you visit.

[https://www.nrk.no/norge/sensitive-valg-filer-for-tre- kommun...](https://www.nrk.no/norge/sensitive-valg-filer-for-tre-kommuner-var- tilgjengelig-for-hele-verden-1.13664601)

Edit, hmm, downvoted?

<comment><USER11> I don't speak Norwegian, but this claims Edge sends all visited URL to Bing?

Microsoft taking a page from Google, how quaint.

<comment><USER12> > this claims Edge sends all visited URL to Bing?

Yes. So if you instead of attachments of large files in email send an URL such as [https://acme.pri/?id=cafe-babe-deadbeeff00d](https://acme.pri/?id=cafe- babe-deadbeeff00d), which is not secured by any other method than obscurity, then Edge will submit it to Bing, which indexes it and then the content is available if you can come up with some keywords that match.

It is fairly well known in Norway, due to having been in the national news earlier this spring, but I have no reason to think it doesn't apply universally.

</comment></comment></comment><comment><USER13> In case you haven't seen this breakdown by Tom Scott about why electronic voting is lunicy, here it is: [https://m.youtube.com/watch?v=w3_0x6oaDmI](https://m.youtube.com/watch?v=w3_0x6oaDmI)

</comment><comment><USER14> Just a wild thought I had:

If you remember the invisible dots that printers add, so the government can track where something was printed. ( [https://news.ycombinator.com/item?id=14501894](https://news.ycombinator.com/item?id=14501894) )

I wonder if some government did/are/could use this technologies to deanonymize voters.

For example they would print your SSN on the piece of paper that you are voting on.

<comment><USER15> It might be possible, but quite difficult in practice given that a voter can show up at any time to any number of voting stations.

<comment><USER14> It's been a while I haven't voted. I'm from Canada and currently live abroad.

But If I remember well, I had to actually vote at a specific place.

The part I don't remember well is if they were giving me a specific sheet of paper, or just take one on the top of a stack.

I remember they were looking for my name, and I have a souvenir that they detached the side of the sheet (but this is vague).

I guess it was a stack :)

<comment><USER15> In Australia, you can go to any polling station in your electorate, where they find your name in a book of paper (of which there are several copies in each station, and several stations in each electorate), cross it off, and give you a ballot paper from a stack. Presumably they process the names lists after the fact to see if anyone voted twice, though by that point there's no way to get the votes out of the mix.

</comment></comment></comment></comment><comment><USER15> Reposting what a few 2nd level comments have already said: voting is still done on paper in Norway; the counting if what is being done electronically.

<comment><USER16> Oh good, so you just have to hack the counting machine?

<comment><USER15> Yes, that's the point of the security overhaul. But at least paper votes can be recounted and verified.

</comment></comment></comment><comment><USER17> Out of interest, with computerised voting do they generally also protect the information of who voted for who?

I might be wrong, but I don't think paper ballots have any identifying information on.

Edit: Hmm, ballot papers do apparently have a unique ID on, which I hadn't noticed before.

<comment><USER18> Here in Norway at least, all voting is on paper ballot.

You receive an election card (valgkort) in the mail to bring to the polling station containing all your info. ID is also required.

If you forget this card, they can print it out for you.

Then you enter the booth containing party lists. You can't "punch" the wrong party as each have their own ballot. You can erase/add/reprioritize names on the party list you choose though.

Then you put this ballot into an anonymous envelope. This envelope is then put into another envelope along with your election card.

When they count it, they pull out the ballot envelope and the election card, register that you have voted, then someone else will open and count the actual vote.

It seems to me to be pretty secure and anonymous.

</comment></comment><comment><USER19> Isn't blockchain tech perfect for voting?</comment>


Chat Bots Aren't a Fad. They're a Revolution - <AUTHOR> https://www.wired.com/2016/09/chat-bots-arent-a-fad-theyre-a-revolution/?mbid=social_tw_backchannel <comment><USER2> A revolution they might be, but so was Betamax. Not all revolutions succeed.</comment>


Show HN: Formgraph – web based art collaboration/remixing - <AUTHOR> https://www.formgraph.com <comment><AUTHOR> This is the first iteration of an idea I've had brewing for a while. The broader vision is to have a hybrid social network/repository with web-based tools that can be used to collaboratively edit any kind of media. I'm starting small with vector illustrations, but the important aspects of this are the ability to openly create and collaborate in real time, and having a corpus of material that you can frictionlessly remix from with attribution.

I wrote a blog post that goes into a bit more detail regarding the intent behind this project: [https://medium.com/@JohnWatson/formgraph-collaborative- creat...](https://medium.com/@JohnWatson/formgraph-collaborative-creation- platform-64a9d69cbb1f)

As for the current state of things, I'm well aware that the experience leaves quite a bit to be desired on mobile. I'm not really sure what my mobile strategy is going to be yet. I could optimize the HTML5 editor or opt to create native iOS and Android apps. Also, I'm making decreasing project load times a priority. There's so much work that could be done to make this a fluid experience, but, baby steps.

For anyone interested in the stack, the app server is written in Go, and uses RethinkDB for real time stuff, and Postgres for CRUD stuff. The client side is pretty light on frameworks, but Vue.js and JQuery make appearances in quite a few places.</comment>


Ask HN: Who wants to partner on my SaaS project? I have revenue and customers - <AUTHOR> I have an existing side project (dndemail.com) that I have no time for. It has 40 paying customers, low churn and converts free trial to paying accounts at a 1.7% rate.<p>Is anyone looking for a side project to contribute to? Instead of starting your own project from scratch, work on mine and earn equity. <comment><USER2> Interesting. What's your tech stack look like? What do you have in mind as far as further work?

<comment><AUTHOR> What the app really needs is marketing. We would work together to define the scope of work, deliverables, ,milestones, etc.

Tech stack is python backend on google app engine. Plus a chrome extension.</comment></comment>


Ham Radio – CQ: Personal Mastery Through Hobbies - <AUTHOR> https://medium.com/@solidi/cq-personal-mastery-through-hobbies-f25aab2e49ad <comment><USER3> The article stopped and made me reflect on what I gained through ham radio:

1\. Piercing the mystery - Taking a handful of parts and building a working device. It gave me self confidence and totally changed how I look at electronics.

2\. Mastery of a niche - I joined a club and found that in certain areas that I gained instant respect as a teenager from guys in their seventies. Where else could a teenager do that? Likewise these elders taught me lots of stuff.

3\. Leading a team - When I went off to college and put together a team to compete in a multi-operator multi-transmitter weekend contest. It was my first time assembling a team and doing something complex. Lots of obstacles to overcome. It is also where I learned to just do something and ask permission later! That rather bad habit both helped and hurt my future career;<).

4\. Being part of a fraternity with it's own language of terms. I would soon find that every profession would have its own rituals and language - <USER2> startups.

</comment><comment><USER4> I have found the best part of taking up amateur radio as a hobby to be the book learning aspect. The world of electromagnetism is fascinating.

When I started communicating locally, my thrill was squashed by uninterested complaining old men who thought my equipment was not expensive enough.

But radio theory and engineering, that's great stuff worth learning.

<comment><USER5> I'm on the path to getting my first license. I have done the studying, but now I need to find a club willing to administer the tests...if the hobby is to survive clubs really need to jump on 'new blood'. It's amazing to me that many of the regional clubs have domains pointing to dead websites, that are still registered as the correct contact by the governing body!

The old man image is going to be hard for the hobby to shake off whilst this remains true.

<comment><USER6> [https://www.laurelvec.com/](https://www.laurelvec.com/) Is a list of places that do free exams.

If you are in Seattle, it happens every month (I know it still goes on as I'm occasionally one of the examiners).

<comment><USER5> Thanks for that. I should have said I am in the UK. Everything else in this thread rings true!

</comment></comment></comment></comment><comment><USER7> Makes is seem more than it is. The existential pleasures of Ham Radio.

Ever been to a Hamfest? Made the mistake of taking my wife once. How about being crushed between a table and scooter by someone who smells like they haven't bathed in weeks.

I do RF/Microwave design for a living. Ham radio has mostly lost its luster.

KD4HSO

<comment><USER8> Huh, sounds like you wouldn't like Field Day. Too amateur. Guess you need to find one set up in _Chez Rene 's_ that only allows _real_ engineers. Or on a yacht in the Caribbean.

</comment></comment><comment><USER9> For those who don't know, CQ means "who's there?" in HAM code. It's an invitation.

[https://en.wikipedia.org/wiki/CQ_(call)](https://en.wikipedia.org/wiki/CQ_\(call\))

<comment><USER10> CQ does not mean "Who's there?" It means "Calling any station." The abbreviation for "Who is calling me?" is QRZ?

And it's "Ham," not "HAM."

</comment></comment><comment><USER11> Super timely as I just passed my tech and am studying for my general. It's been a very long time since I undertook a learning endeavor that was not related to my profession. Really enjoying the process.

I'd encourage anyone interested to take a practice exam for a technician license. I was shocked at how much I picked up over the years via osmosis and got pretty close to passing the first practice test I took.

[https://hamexam.org/exam/12-Technician](https://hamexam.org/exam/12-Technician)

</comment><comment><USER12> I like his perspective and agree with many of his points, but his writing style needs some work.

It's a blog post about ham radio, not a cringy thesis paper.

Short snippet: >Next, as we seek those truths, let's examine what an axiom is. An axiom is short hand for a kernel of truth. A poster sign. It is a spoken reduction of events and their goals that are self evident. Personal mastery and their axioms feed on one another. And the axioms contain vocabularies which allow us to understand skill and culture.

It's far too academic and elevated for the medium (buh-boosh), and frankly it even borders on pretentious

<comment><USER13> It struck me as a poor ripoff of Zen and the Art of Motorcycle Maintainance

<comment><USER14> Funny, I was thinking the same. Although at the same the article put into words what I've been thinking about my photography hobby that has gotten too serious.</comment></comment></comment>


Do we need a web API? - <AUTHOR> https://liaison.dev/blog/articles/Do-We-Really-Need-A-Web-API-yq12wz <comment><USER2> RPC - this isn't anything new.

When I started doing web development in the late 90s for about ~5 years I was the designer, front-end, and backend developer all in one. Then over time things changed to allow for specializations and we now have many different functions, and that's a good thing. RPC has a place, and it's not for web apps, at least most of the time.

I've noticed over the years that JavaScript developers tend to try and put their JavaScript everywhere and I often wonder if it's because they don't want to learn other technologies. Don't get me wrong, I like a little bit of JS too - I even added JavaScript support to an old 2D Game engine using SpiderMonkey (before V8 was a thing) back in the day so that I could make desktop games with JavaScript. I just don't want to do _everything_ with JavaScript. Especially with so many interesting languages and technologies to play with these days.

Are JavaScript developers today the PHP guys of the past?

<comment><USER3> Wouldn't you prefer to talk in your mother language instead of using a new language for every country you visit?

<comment><USER4> At first, but not if it made it harder to communicate in each country I visited if I was visiting those countries regularly. I think the parent is likely onto something in that the spread of JS into backend services is not beneficial to those who spend most of their time on the backend, but it beneficial to those who don't. That's IMO creating an inherent tension.

Personally I have never understood backend JS as you get untyped, weird silent errors, under or completely un-utilized async features that end up causing more problems than they solve, and then all the quirks of JS to boot. I regularly hear the argument of the benefits of keeping the language the same on both ends, but besides slightly easier JSON between them (something handled by clean packages in almost every language these days with minimal effort/LOC/boilerplate) the languages don't end up actually sharing a ton given how you hook into a web framework like Express, database API's, etc. You don't get code reusability and I don't think the JS tradeoffs are worth the slight savings on context switching. If you have a serious project of any scale/long term use and have front end programmers that want to use JS on the backend, either bite the bullet and have them learn now or hire some backend devs in a language better suited to your project.

<comment><USER3> As someone coming from web dev to back-end JS I take with me the love for instant feedback, which allows for extensive manual testing during development. And I also use automatic regression tests before pushing to prod. Node.js is infamously known to use small modules, it however gives you battle tested code run by thousand in production.

I usually take a front-end first aproach, but there are also lots of people taking a backend first aproache where they rely more on static analysis, compilation, unit tests and packaging - rather then manually testing every LOC.

<comment><USER4> Is there anything you said that is specific to JS?

> the love for instant feedback

What languages can you not get this with?

> And I also use automatic regression tests before pushing to prod.

That's 100% language agnostic...

> Node.js is infamously known to use small modules, it however gives you > battle tested code run by thousand in production

Many other languages have extensive packages pulled in, but that says nothing about how battle tested the code is unless all of the packages have high use. Python has plenty of packages with the same use level. Java has tons as well. The list goes on.

<comment><USER3> In the past when people have asked me questions like those they usually knew the answers. So may I ask, Why you are asking?

<comment><USER5> He's calling you out on the wild claims in your post that are not particularly nuanced or unbiased.

You shouldn't try to pull a fast one on HN readers, it won't work most of the time.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> As other have noted, someone caught on to the simplicity of RPC.

It always baffled me how so-called RESTful APIs became popular, despite virtually all of them being RPC APIs with a veneer of rather pointless HTTP semantics.

Virtually none of those APIs do anything to serve the intentions and goals behind REST[1]. Furthermore, many RESTful APIs end up being wrapped into language-specific clients anyway, because they have poor ergonomics in their raw state.

I consider RESTful APIs the most significant anti-pattern not widely recognized as such.

[1] [https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arc...](https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm)

<comment><USER7> > the simplicity of RPC

Simplicity? Have you ever tried to integrate distributed applications that do not share the same codebase?

And calling REST anti-pattern tells me that you aren't that familiar with alternatives.

>despite virtually all of them being RPC APIs with a veneer of rather pointless HTTP semantics.

If you want to do RPC over HTTP and pretend that it is REST interface, it isn't really a problem of REST.

</comment></comment><comment><USER8> this is just JSON RPC? The "constantly serialize and deserialize it" statement is totally untrue too... The frontend makes 6 XHR calls just to render a single page and they're all just JSON. The idea of the frontend 'just calling' the backend with no API boundary is nothing short of atrocious for security.

The only feasible logical end to this is ASP, which was an interesting idea when it was launched 19 years ago

<comment><USER9> This has nothing to do with JSON RPC. Liaison uses Deepr ([https://liaison.dev](https://liaison.dev)) as a communication protocol.

Regarding the number of XHR calls, to be accurate, it is not 6 but 4. Once Liaison is complete and optimized, the number of calls should drop to 2.

Also, please keep in mind that Liaison is made for building single-page applications. So, using it for a simple blog might not be the right choice.

And about your security concern, please head over here: [https://news.ycombinator.com/item?id=21660785](https://news.ycombinator.com/item?id=21660785)

</comment></comment><comment><USER10> In my view you just replaced an explicit API built on top of known protocols, by a semi-magical implicit API.

The problem of serialization, deserialization, versioning, endpoint design... They aren't an artifact, they're intrinsic to how Web apps are built.

But yeah, for small projects I think this could be really neat.

<comment><USER11> Having a properly defined API gives you a nice interface to test.

</comment></comment><comment><USER12> CORBA called, they want their ideas back

<comment><USER13> Even in JS, the Meteor framework was basically created to implement this.

Except they actually implement things like validation, because as much as one may want to unify both environments, the reality is that exposing all your methods to the outside world may have some pitfalls, to put it mildly.

<comment><USER11> What ever happened to Meteor? It was flavour of the month a few years ago, with many a frontend dev ranting about how great it was. Now seems to be forgotten about.

<comment><USER14> Hassles with installing NPM packages (they used their own package manager (!)), it was incredibly heavyweight, baked in reliance on MongoDB, and a weird templating language caused a kind of death-by-a-thousand-cuts situation.

Plus, React came out and blew Meteor out of the water.

<comment><USER15> One of the early Meteor developers, Evan You, went on to create Vue.js.

</comment></comment></comment></comment></comment><comment><USER16> Its good that expensive operations are explicit. Every now and then developers forget this and create garbage applications using frameworks that are set out in similar ways to this.

Don't hide the communication layer pls.

</comment><comment><USER17> There are already frameworks doing this. For example Blazor (.Net core 3) and Phoenix Live View (Elixir).

They write the Javascript for you but you won't even notice it.

I don't have experience with Phoenix, but with Blazor I just write my complete SPA in C#. There is no API for communication between the server and client. Blazor creates all the JavaScript websocket code for me so I never need to write a single line of Javascript.

And when you separate your business layer from Blazor you can always add an API in the future when you need one. Just create some controllers for your API and use the same business code Blazor is using.

</comment><comment><USER18> First Law of Distributed Object Design: "don't distribute your objects"

\--Martin Fowler

<comment><USER9> A Liaison backend is stateless, so there is no shared state to worry about.

</comment></comment><comment><USER19> Pouchdb/firebase/backend-as-a-services were supposed to be the answer to getting rid of CRUD apis. The problem is authorization and validation becomes really difficult if you don't have a backend that you can trust.

<comment><USER20> 10 years of writing web application backends has taught me that yes, authorization is indeed the reason we all still have jobs. And the occasional handling of a transaction failure.

</comment></comment><comment><USER21> As has been noted in other comments, there is a growing list of technologies that implement some variation of RPC such that events on the client trigger server events. Those events persist any data changed and then regenerate the current state of the UI and ship the diff back to the client, ideally via calls to the morphdom library.

What frustrates me is that it's not the API that is the source of complexity. ~80% of the pain of building most apps comes from managing the syncronization of state between the client and server. SPAs are the over-prescribed opiates here making the problem worse. Imagine what could be possible if you walked away from maintaining client state altogether.

We did, and it's wonderful. StimulusReflex let me build a reactive tabular UI with sorting, filtering and pagination with 115 LOC, none of which is custom JS: [http://expo.stimulusreflex.com/demos/tabular](http://expo.stimulusreflex.com/demos/tabular)

I honestly believe that the existence of things like StimulusReflex and LiveView demand we question the ongoing utility of libraries like React. Popularity is not a good reason to use something, especially when you realize you could be radically more productive if you don't use it.

</comment><comment><USER18> Things like this have been tried many times before. (I made one myself back in the day). It always seems like a great idea up front, but never ends up quite working out.

One of the big things is that the benefit declines over time. The amount of code reuse you get is sub-linear with respect to the size of the project. As the project matures, GUI code and back end code diverges. That leaves you stuck in a framework that ends up not necessarily optimal for server side, and not necessarily optimal for client side, and the amount of code you end up writing to coordinate between them ends up outweighing the actual business logic.

The things that are successful tend to focus on problems that increase with greater than linear complexity as your app matures. Spend time focusing on these instead. Don't lock yourself into a framework that prohibits it.

<comment><USER9> Your point is valid, but Liaison allows you to build different layers if you wish.

If you worry about cluttering the business logic and want to clearly separate the exposed API, you can expose subclasses of your domain models instead.

<comment><USER18> I'd still say the established routine of publishing a public API and any shared code can go into NPM or whatever is the better approach.

Liaison and tools like it essentially create a monolith exactly where something is screaming to be two separate services. You want to be able to deploy versions of server side and client side code independently. You want to be able to ensure you don't break clients that have web pages open when you deploy the new server version. You want clients to be able to run where JS isn't available.

<comment><USER9> About API versioning, the problem is the same as any web API. It's possible to add backward-compatible changes, otherwise, you need to fork the backend into a new endpoint.

About interoperability with non-JS environments, I wrote an article about that: [https://liaison.dev/blog/articles/How-about- interoperability...](https://liaison.dev/blog/articles/How-about- interoperability-oy3ugk)

<comment><USER18> I don't mean to knock it. It's a cool project and obvious you've done some good work on it. But, I wouldn't expect it to lead anywhere beyond a couple sample POC apps. It's been tried before and never quite seems to work out (I did something similar with VB6 forms way back when. It didn't work out. Meteor.js is one that probably came the closest to real-world success. It didn't work out.). There was a bit more interest in this approach back when SPAs were just coming onto the scene, but in the time since, the programming community seems to have converged around the idea of well-defined boundaries and interfaces, allowing use of the best tool for the job in each individual service, and abstracting out the distributed communication layer with a metaprogramming tunneling approach has somewhat fallen out of favor.

If your goal is just a brain workout then by all means keep going with it. But if you're looking to do something that gets some larger adoption, then I'd probably wrap this up and move on to the next thing.

(Not that you asked my advice, or that I'm in any way qualified to give it)

</comment></comment></comment></comment></comment><comment><USER22> Having clear API allows to have a clear boundary between trusted and untrusted environment in backend. If you don't check your arguments in REST endpoint, it's obvious bug and easy to spot. If it's just another method, well, you're not treating input in every function as a hostile.

<comment><USER9> Please see my answer here: [https://news.ycombinator.com/item?id=21660785](https://news.ycombinator.com/item?id=21660785)

</comment></comment><comment><USER23> Many years ago I remember using a similar shim on ASP.NET where you'd simply decorate a server-side C# method and you could call it from JS like any other method. Not quite the way done here, but it had similar goals to blend server and client. So far, these things don't work in practice because of the so many things that differ between a browser and server environment.

[https://docs.microsoft.com/en- us/dotnet/api/system.web.scrip...](https://docs.microsoft.com/en- us/dotnet/api/system.web.script.services.scriptmethodattribute?view=netframework-4.8)

</comment><comment><USER24> I wish the "really" wasn't taken out of the HN title. It gives the title a somewhat different meaning.

<comment><USER9> I wish that too. :)

</comment></comment><comment><USER25> lol, coming from PHP, JSP and co, web APIs were the salvation.

Monoliths are a big problem and merging frontend and backend into each other only made it worse...

</comment><comment><USER26> The readme says: "The current state of an instance (i.e., counter's attributes) is automatically transported back and forth."

How does this work? Do you need some cross-network locking mechanism when you need to make sure the shared object's state doesn't get out of sync between client and server?

What about passing object instances between client and server? Does it do what (I think) DCOM does to handle garbage-collection of cross-machine object references – keep-alives and timeouts?

<comment><USER9> A Liaison backend is stateless, so there is no shared state or garbage- collection to worry about.

</comment></comment><comment><USER27> I daresay that if you need to:

a) scale, and

b) adapt over time

you're going to find yourself decoupling and slapping APIs on both ends to adapt to the transport mechanism.

So for a boutique app, you might get away with a client-server model.

<comment><USER9> Liaison allows inheriting layers from each other. So, you can easily separate your API layer with your model layer, and you don't need to build a web API for that.

</comment></comment><comment><USER28> This is an interesting project, but there are very good reasons for having API's.

Its just about is it the right tool for the job.

I don't like their comment : _' They are just a necessary evil so the frontend can communicate with the backend'_

<comment><USER13> I'm sympathetic to your position, but right now your comment doesn't carry much information. Why are they the right tool for the jobs? Which reasons are those?

<comment><USER28> Not to offer information, I'm just objecting to the stance they seem to make that : "Hey we're solving the 'API' requirement problem' when there really is no problem..

If your backend _only_ communcates with an SPA and nothing else, then yup, this is a good tool for that job.

<comment><USER29> Actually this doesn't solve the core API challenges that SPAs have - versioning and compatibility. Clients will simply run outdated frontend code. Imho this is more trouble than worth as it will bring all the problems that we had with WSDL.

If i'd do a SPA that has 'node' backend, i'd just use typescript to model the API and you can have shared models and compile-time type safety.

</comment></comment></comment></comment><comment><USER30> [https://news.ycombinator.com/item?id=21600859](https://news.ycombinator.com/item?id=21600859) seems related.

</comment><comment><USER31> I've used a similar concept about 10 years ago if anyone remembers Wicket[0], and personally really liked it. The challenge was the UI and state were all server side and difficult to keep memory usage down. I'd be interested in how this model works now that client side UI and state are much more capable.

[0] [https://wicket.apache.org/](https://wicket.apache.org/)

<comment><USER32> I liked it as well. Web development had gotten way harder over the last decade.

</comment></comment><comment><USER33> Actually RPC is a good idea for front-end to talk to backend.

Because the separation is more or less obligated if people wanted to do interactive web pages, instead of people want to separate them as different services for different problem domains.

People who don't like write JavaScript can stay tuned, as WASM age comes, there would be a burst of things like this but not in JavaScript (eg: Blazor).

</comment><comment><USER3> Dont trust the client! Serialization should be abstracted. Btw. how does this work without serialization? :P (I guess its abstracted). With an abstraction layer, sending a request can just be an azync function call. There is also the option to keep the front end stateless aka server rendering like in old school web apps.

</comment><comment><USER34> Have a look at Wildcard API[1], it's similar to what you are building.

I'm the author. I'm glad to see that RPC is getting more and more traction.

[1] [https://github.com/reframejs/wildcard- api](https://github.com/reframejs/wildcard-api)

</comment><comment><USER35> A project using Elixir + Phoenix would be way cleaner if one would like to leave out the API in web dev.

</comment><comment><USER36> isn't this a weak ass version of RPC/gRPC?

[https://grpc.io/](https://grpc.io/)

\- and thank God gRPC never took off the way Google hoped, it was pure ego and politics like the majority of OSS projects these days (in the web world)

<comment><USER37> Can you elaborate on the "ego and politics" part?

<comment><USER36> I have a very personal history with gRPC

<comment><USER38> Is it bad? My operating systems class had a project based explicitly around it

</comment></comment></comment></comment><comment><USER39> As someone deploying frontend apps for a large site you should not underestimate how long people have their tabs open. I can get sentry error reports for versions that have not been deployed for months.

Does this handle "API" versioning in any real way?

<comment><USER9> For now, with Liaison, API versioning is no different than usual: preserved endpoint for backward-compatible changes and new endpoints for breaking changes.

</comment></comment><comment><USER40> Seems like a WSDL endpoint from which you can generate eg. a client for .NET.

</comment><comment><USER41> Reminds me of [https://github.com/pkamenarsky/replica](https://github.com/pkamenarsky/replica) for Haskell

</comment><comment><USER7> It's always cute to see JavaScript developers reinventing things that have been in the industry for 30 years. Welcome back RPC.

</comment><comment><USER42> Postgraphile is an example of reducing the number of layers: directly expose PostgreSQL schema (with row-level security) via GraphQL.

<comment><USER43> But now you added the GraphQL layer on top of HTTP.

</comment></comment><comment><USER44> one word: security

<comment><USER9> Liaison doesn't expose anything by default. Only the allowed attributes and methods are exposed.

</comment></comment><comment><USER45> Does this force you to use node for the back-end?

<comment><USER9> For now, yes. Liaison is implemented in JavaScript, but the communication protocol ([https://deepr.io](https://deepr.io)) is language agnostic. So it is possible to imagine Liaison being ported to any languages in the future.

</comment></comment><comment><USER46> >Sorry, this site requires JavaScript to be enabled.

For a flat blog post? Like, seriously?

<comment><USER47> welcome to the web 2.0

cooming soon: web assemply web 3.0 which (I fear) might feel a lot like flash web pages from the early 00s. I hope I'm wrong.

<comment><USER48> Web 2.0 was like 15 years ago now. Web 2.0 was "supposed" to be about separation of style & content and gracefully degrading JavaScript.

I don't know want to call what we have now.

<comment><USER49> Probably the "Web App" or "Web SPA" era, since everything seems to need to be a single page app that exists mostly in the client.

There are some benefits, of course. Stable and standardized UI is finally available as a baseline for devs (much like early Windows/iOS software) and all roads are clearly leading toward a unified design model for phone apps/web/desktop. Bloat and needless complexity are the biggest issues at the moment, but all the frameworks seem to be (finally) focusing on becoming more snappy.</comment></comment></comment></comment>


Ask HN: What's your opinion on Toptal? - <AUTHOR> Hello,
I'm in an interview process with Toptal and I wanted to know if things changed since two years ago [1].
So basically :
1. Does anyone makes good money with the website ?
2. Is the technical interview worth it?
[1] : https://news.ycombinator.com/item?id=10107448 <comment><USER2> It's hard for me to tell. I've expressed interest in working in them in the past, and I have past remote work experience with good collaboration skills online, but they never moved forward for an interview with me :-/

</comment><comment><USER3> I had an awful experience and ended up them having to refund me the fee required to start the job search. My company needed someone with WebRTC expertise and they had no one that knew anything about that technology which is strange seen as it's quite a big deal right now with apple having added into the latest release of Safari etc.

Lots of yeses but really they should of said no no no

<comment><USER4> I was just finishing my application there as a freelance WebRTC developer, and you might have missed me by a day or so. If you are still looking for someone with WebRTC knowledge, my profile has my contact info, including a project I implemented in WebRTC.</comment></comment>


Ask HN: Any math experts? - <AUTHOR>

I've got a site running that links scientists up with freelance work. Occasionally math requests come up that go unanswered. The guy in the link below is looking for someone to prove properties of an algorithm for $500. If you know anyone who might be able to answer him, please pass it on.
http://zombal.com/zomb/scientific-research/prove-or-explore-convergence-properties-of-an-algorithm
Algorithm description:
http://assets.zombal.com/5df9e15c/BLUEBITALG.pdf <comment><USER2> There are a lot of talented math/maths people on HN, and even more who are interested in the topic, but not necessarily trained. It's just not the major focus of this site, but still, a lot of good links show up here on a fairly regular basis.

One of the best people on HN for mathematics stuff is Colin Wright. He's always busy, but if you contacted him privately with your general question (finding math folks), he stands a very good chance of being able to answer it.

<https://news.ycombinator.com/user?id=ColinWright>

His article submissions to HN should give you an idea of the stuff he's into:

<https://news.ycombinator.com/submitted?id=ColinWright>

Also, the person in the following link has a Masters in Mathematics and might be interested in doing some freelance work.

<https://news.ycombinator.com/item?id=3644870>

<https://news.ycombinator.com/user?id=lesterfremn>

<comment><AUTHOR> Thanks for the reply, really useful info. I'll talk to the people you've mentioned.

</comment></comment><comment><USER3> Note that the algorithm description claims to be patented (US Patent 7,991,713 B2), for those who aren't allowed to look at such things.

The algorithm itself has to do with game theory and concerns gradually lowering the duality gap by going through however many iterations of their algorithm.</comment>


Archaeologists explore a rural field in Kansas, and a lost city emerges - <AUTHOR> http://www.latimes.com/nation/la-na-kansas-lost-city-20180819-htmlstory.html <comment><USER3> I visited the Cahokia museum in East St. Louis and although there's still not much to see since most of it has not been excavated yet, it's still fascinating there was such a vast Native American city in the Midwest. For centuries, no one had any idea it was even there, and if you'd told Americans a century ago, they probably wouldn't have believed it was possible. Now this new discovery is a city almost as big with over 20,000 people, which contradicts how we thought the plains had only nomadic tribes chasing the buffalo. For perspective on how advanced some of these Native American cities were, I recommend you visit the ruins of Teotihuacan since half of it has been excavated.

*edit typo

<comment><USER4> Heck, as far as I can tell, even now, a lot of people who live within a few miles of the place don't really know it was there.

I don't know that it's quite accurate to say that it wasn't recognized as a major site for centuries. European settlers pretty much immediately recognized the area as evidence of a large civilization. They just didn't believe anyone related to Plains Indians were capable of monumental architecture, so they instead cooked up legends about the "mound builders" that typically insinuated that they were built by a European culture - one of the lost tribes of Israel is a popular suspect - that had since disappeared.

<comment><USER5> > _one of the lost tribes of Israel is a popular suspect_

As far as I know, this idea is a creation of the Mormon church, which believes (based on their foundational holy text) that all native Americans are descended from a lost tribe of Israel, and which has spent significant resources sending archeologists around North America to prove this theory. (It turns out that if you lead with your conclusions, it is hard to do science. Some of the investigations of physical evidence are alright, but the reasoning and conclusions drawn from them are farcical.)

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

<comment><USER4> The Lost Tribe folklore was already almost 2 centuries old by the time Smith produced the Book of Mormon.

[https://en.wikipedia.org/wiki/Ten_Lost_Tribes#Native_America...](https://en.wikipedia.org/wiki/Ten_Lost_Tribes#Native_Americans)

<comment><USER5> Aha, fair enough. The Mormons have put a lot more work into trying to defend/substantiate this theory than its other adherents have, from what I can tell searching around the web.

<comment><USER6> it's also not unreasonable to assume that the prevalence of these myths was itself a major contributing substrate of the theology dreamed up by Joseph Smith.

</comment></comment></comment></comment></comment></comment><comment><USER7> If anyone from the LA Times is listening, even though I am accessing the website through our US VPN, I'm still fully protected by the GDPR.

The geographic block is futile and ineffective as a liability protection.

<comment><USER8> How would you expect to impose any injunctions or damages on the LA Times for disregarding an EU law?

In other words, to what court will you take your case? A US court won't hold a US company to account for breaking a non-US law. A European court has no jurisdiction to impose any penalties on a non-European company.

Does the LA Times have EU offices? How are you tying the two together otherwise?

<comment><USER9> > A European court has no jurisdiction to impose any penalties on a non- > European company.

In theory can't an european court request the US gov. To hand over the CEO for illegal activities ?

Not that this case would go these lengths and I have not idea of any merit of OP's point.

<comment><USER10> What illegal activities? Tracking users is not illegal in the US, nor is blocking access. You could make wearing purple illegal again and ask the US to extradite folks for it, but we wouldn't do it so you wouldn't bother asking.

</comment></comment></comment></comment><comment><USER11> _French explorers arrived a century later but found nothing. Disease likely wiped out Etzanoa, leaving it to recede into legend._

That is such a sad thing. While a hundred years might seem like a "long time" it really isn't. Imagine some city in 1920 (like say New York) with its population 5 million souls, was now an empty ruin.

<comment><USER12> Certainly archaeology could demonstrate disease if human remains were found. But like all things that outlive us, we forget that cities aren't permanent. Perhaps they moved on because the grass was greener elsewhere (there was a 'Little Ice Age' in 1650), or maybe political strife split their loyalties.

What will become of a hundred thousand towns across the world as the temperatures rise and their water dries up?

</comment></comment><comment><USER13> I live about an hour away and I've been down there recently to look for artifacts. No luck. It's surprisingly difficult to learn where exactly where to look for them.

<comment><USER14> I have to ask since you are the only other Kansan I have encountered on HN.

What do you do and how did you end up there?

<comment><USER13> I get down on the Walnut river a little down stream from Etzanoa. Watching YouTube clips of artifact hunting says on the sand bars and banks after a rain is best.

<comment><USER4> Please don't go collecting artifacts like that; leave it to the pros.

Being able to collect detailed records of archaeological finds, including things like soil stratigraphy that require very specialized knowledge, is an important part of preserving the heritage associated with these artifacts. An artifact that's been stripped of its provenance has been stripped of almost all its scientific value.

It's also potentially illegal - always on state and federal lands, and even on private land you need to get the owner's permission. ([http://www.kshs.org/p/kansas-antiquities-act- statute/14587](http://www.kshs.org/p/kansas-antiquities-act-statute/14587))

<comment><USER12> Genuinely curious, how do archaeologists catalogue items found in sand bars? Through correlation with upstream sites? I can't imagine stratigraphy would be terribly helpful.

</comment></comment></comment></comment></comment><comment><USER15> Cool.

And pronounced "Ar-KAN-zes" City for some reason.

<comment><USER16> It's in Kansas, not Arkansas.

Tradition says the English and French pronounced the same Native tribe differently. Through Wichita, the river is the "ar-Kansas River," but through Little Rock, it's the "Arkansaw." (I see some others say there are potentially two Sioux words at issue)

[https://www.businessinsider.com/why-we-pronounce-kansas- and-...](https://www.businessinsider.com/why-we-pronounce-kansas-and-arkansas- differently-2014-2)

</comment></comment><comment><USER17> Does someone have a non region-locked link?

<comment><USER18> [https://outline.com/Adhn2h](https://outline.com/Adhn2h)

Lots of news websites seem to think they can't function without tracking readers. I wonder how they got by when street corner newsstand were the only way to get views.

<comment><USER19> _I wonder how they got by when street corner newsstand were the only way to get views._

They got by because people paid them money to buy the newspaper.

<comment><USER20> Not really, newspapers made most of their money from advertising. You still see people handing out free newspapers in cities, but the advertising is worth more when someone pays for the paper as it's assumed someone is going to read it vs using it as a free stack of paper.

EX: [https://en.m.wikipedia.org/wiki/Express_(Washington,_D.C._ne...](https://en.m.wikipedia.org/wiki/Express_\(Washington,_D.C._newspaper\))

<comment><USER19> Well here's the fantastic thing about newspapers and newspaper websites - <USER2> have the option of not buying them, and not visiting them. It's much nicer for the rest of us if you exercise those rights rather than complaining.</comment></comment></comment></comment></comment>


Arcade1Up Home Arcade Machines - <AUTHOR> https://arcade1up.com/collections/cabinets <comment><USER2> Anyone know what the quality of these is like? The prices seem awfully low...</comment>


Creating effective ruby gems - <AUTHOR> http://www.slideshare.net/zhangben1/creating-effective-ruby-gems?from_search=6

<comment><USER2> Is there no longer a difference between a "Ruby Gem" and a "Rails Application"?</comment>