Ask HN: Best ways to accept donations? - <AUTHOR> So I have a page on my website that effectively provides all the information to fix a very terrible AT&T modem. Apparently AT&T themselves have internal documents pointing to my website to fix problems with their modem.
I get tons of "thanks" comments and such, so I would like to try adding a donation button to just this page. Traditionally, I think donation buttons are tacky, but it'd be very nice to effectively break even on my (cheap) hosting.
The only donate options I really know of are paypal and bitcoin. Are there other players in the field and/or things to be wary of with these two? <comment><USER2> Put up an ad for a better modem. Or maybe some Amazon affiliate link.

Or compile all the info into an ebook/pdf and put a "support this site and get all the info in a printer-friendly pdf" link to some self-publishing platform. I think they usually handle payments for you.

There was a project featured on HN just yesterday that allows you to sell documents stright from Dropbox/Drive[1]. Although they seem to be just using PayPal.

There's also Flattr[2] for small donations to websites. But they're probably more popular in Europe.

[1] [https://sellboxhq.com/](https://sellboxhq.com/)

[2] [https://flattr.com/](https://flattr.com/)

<comment><USER3> I second the PDF option. Create a PDF of your article and sell it with Gumroad's 'pay what you want'/flexible pricing feature. You can select the minimum pricing to even $0. So, people can pay whatever they think your advice is worth.

Another advantage of this is, you get to collect the email addresses of people who purchase. You can easily email them later if you update your tutorial or something.

</comment></comment><comment><USER4> To try to give you a different answer than the other comments here, let's try working backward from the goal. You want money. Who has money to give in this scenario? It's not the people fixing their own modems; if they did, they'd pay someone else to fix their modem, or they'd buy a new modem, or what-have-you. You probably won't see much in donations from them, if you go that route. No, the people with really ridiculous amounts of money in this scenario are AT&T.

So, next step: how can you cause AT&T to give you money? Well, what do you have that they want? They certainly might be _depending_ on your documentation internally. They might not even know how much they make use of it (which means they have to assume the worst.) So "continued access to your documentation" can be something you can provide them in exchange for money.

Conclusion: revoke access to your documentation from AT&T's IP block (or just be lazy and take down the site entirely), and send them a legal notice requesting that they purchase a license (one-time or recurring, whatever suits you) for continued use of the documentation. Hold your documentation hostage, in other words.

Large companies deal with IP licensing all the time; for them, this is just one more thing to expense. For you, though, this will probably outweigh all the donations the page would ever make you. _And_ you'll be making it from the people who made the crap modem, instead of the people who unknowingly purchased a crap modem. :)

<comment><USER5> Sounds interesting, but it might be an idea to install Google Analytics (or anything similar) to see if there is really significant traffic coming from AT&T in the first place before going to this trouble.

</comment></comment><comment><USER6> Aside from Paypal & Bitcoin...

Stripe = [http://viget.com/advance/accepting-donations-online-and- how-...](http://viget.com/advance/accepting-donations-online-and-how-stripe- can-help)

Dwolla = [http://help.dwolla.com/customer/portal/articles/217452-dwoll...](http://help.dwolla.com/customer/portal/articles/217452-dwolla- buttons-for-your-website)

Flattr = [http://flattr.com/](http://flattr.com/)

Could you show us the page? I'm curious.

<comment><USER7> Also wepay... [https://www.wepay.com/payment- buttons](https://www.wepay.com/payment-buttons)

I use their invoicing services and they are excellent. Have never tried their payment buttons though.

</comment></comment><comment><USER8> I know in the UK, the sites below were popular. However, they aren't a button but a site you have to set-up.

[http://uk.virginmoneygiving.com/giving/](http://uk.virginmoneygiving.com/giving/) [http://www.justgiving.com/](http://www.justgiving.com/) [http://www.paysimple.com](http://www.paysimple.com) [http://www.wepay.com](http://www.wepay.com) ...and maybe Google Checkout?

</comment><comment><USER9> If you want to add microdonations you could add [https://flattr.com/](https://flattr.com/)

</comment><comment><USER10> What's the page? I want to fix my terrible AT&T modem.

<comment><USER11> I guess [http://earlz.net/view/2012/06/07/0026/rooting-the- nvg510-fro...](http://earlz.net/view/2012/06/07/0026/rooting-the-nvg510-from- the-webui)

</comment></comment><comment><USER12> [http://wepay.com](http://wepay.com)

I _think_ they're designed specifically for this.

</comment><comment><USER13> Litecoin is another option.

[https://litecoin.org/](https://litecoin.org/)

<comment><USER14> And how many donations are you going to get with that?

<comment><USER13> How many donations is he going to get in the first place with PayPal or whatever else he may choose? If I had to guess, probably not too many.

</comment></comment></comment><comment><USER15> [https://spacebox.io/](https://spacebox.io/) would be a beautiful and simple way to go. its built on top of Stripe.

</comment><comment><USER16> I'd recommend gumroad.com [1] as a simple button to accept micro payments.

[1] [http://gumroad.com](http://gumroad.com)

</comment><comment><USER17> Have had a very good experience recently with givlet.</comment>


iPic could automatically upload images and save Markdown links - <AUTHOR> https://itunes.apple.com/app/id1101244278?ls=1&mt=12 <comment><AUTHOR> It's so free to insert images anywhere.

\- Upload images by drag & drop.

\- Upload images by services (support shortcut).

\- Automatically upload copied images.

\- Support Imgur, Flickr and other image hosts.

\- Support image link of Markdown format.

Video introduction: [http://toolinbox.net/en/iPic/](http://toolinbox.net/en/iPic/)</comment>


Ask HN: a service that needs SMS - <AUTHOR>

I wanted to create a service that needs send SMS to people (Brazil). I know that Google Agenda, for example, has integration with some cellphone companies, so they provide these APIs to Google. But how could I, a no one with no BigCo behind me, do something like this? <comment><USER2> Take a look at CellTrust:

[http://www.celltrust.com/Products/SDKAPI/CellTrust-API- Overv...](http://www.celltrust.com/Products/SDKAPI/CellTrust-API- Overview.html)

I don't know if they have support for sending SMS to Brazil, but we did have success with them here in Canada.

</comment><comment><USER3> Twilio is great for that stuff. <http://twilio.com/>

</comment><comment><USER4> Give <http://tropo.com> a try. It also does voice, IM and Twitter along with SMS.

<comment><AUTHOR> I wish there was some service that would allow me to send SMS for free, and they could add a 30-char ad along...

<comment><USER5> <http://www.zeepmobile.com/> and <http://www.textmarks.com/>

Although I'm not sure if they support Brazilian carriers.

</comment></comment></comment><comment><USER6> <http://www.clickatell.com/>

<comment><AUTHOR> Surprisingly, this allows sending SMS to all operators in Brazil, and just tested on mine. I wonder, how they did it? Did they have to contact each operator and make a deal, or I'm missing something?</comment></comment>


Building Real Time Analytics APIs at Scale - <AUTHOR> https://blog.algolia.com/building-real-time-analytics-apis/ <comment><USER2> (Ozgun from Citus Data)

What really excites me about this blog post is how PostgreSQL is becoming central across diverse workloads - including real-time analytics.

A few Postgres resources that relate to this blog post are the following.

1\. TopN: Several Citus customers were already using the TopN extension. Algolia contributed to revising the public APIs in this extension. With these revised APIs, we felt pretty comfortable in open sourcing the extension for the Postgres community to use: [https://github.com/citusdata/postgresql- topn](https://github.com/citusdata/postgresql-topn)

2\. Postgres JIT improvements: Postgres 11 is coming with LLVM JIT improvements. For analytical queries that run in-memory, these changes will improve query performance by up to 3x. This will significantly speed up roll- up performance mentioned in this blog post: [https://news.ycombinator.com/item?id=16782052](https://news.ycombinator.com/item?id=16782052)

3\. For those interested, this tutorial talks about how to build real-time analytics ingest pipelines with Postgres: [https://www.youtube.com/watch?v=daeUsVox8hs](https://www.youtube.com/watch?v=daeUsVox8hs)

<comment><USER3> Thanks Ozgun. Thats a great video in 3.

</comment></comment><comment><USER4> I think the choice to not go with Clickhouse deserves a bit more explanation than what was given in the article.

Instead of writing all this code to do roll ups they could've used an AggregatingMergeTree table over their raw events table and... gotten back to work.

Cloudflare is using Clickhouse for their DNS analytics and (maybe even by now) soon their HTTP analytics. And the system they migrated off of looked a heck of a lot like this one in the article.

Edit: I should add that I am _not_ saying their decision was wrong. I just think the sentence that was given in the article does not justify the decision by itself on an engineering level.

The data load process of Clickhouse and Citus (in this configuration) are nearly identical. Clickhouse takes CSV files just fine like Citus. The default settings are fine for the volume mentioned in the article of single digit billions of records per day. This would probably fit on a single server if you age out the raw logs after your coarsest aggregate is created. Queries over the AggregatingMergeTree table at five minute resolution will finish in high double digit to low triple digit milliseconds if the server is not being hammered with queries and the time range is days to weeks.

<comment><USER5> Hey, sorry if that wasn't clear enough (author here).

We decided not to go with ClickHouse because we were mostly looking for a SaaS solution. That's pretty much why we also didn't spend too much time on Druid either.

Choosing Citus meant we could leverage a technology that we already had a bit of experience with (Postgres) and not have to really care about the infrastructure underneath it. We're still a fairly small team and those are meaningful factor to us.

At the end of day I'm sure all those systems would do the job fine (ClickHouse or Druid), we just went for what seemed the easiest to implement and scale.

<comment><USER4> That makes sense. If you do ever want to check out Clickhouse and want someone to run it for you, Percona or Altinity [1] can probably help. Not affiliated with either, I just read their Clickhouse-related content.

[1]([https://www.altinity.com](https://www.altinity.com))

</comment></comment></comment><comment><USER3> A great article, and I am a big fan of algolia, Citus and Redshift. However this article ends up making an odd apples to oranges comparison.

They state that "However, achieving sub-second aggregation performances on very large datasets is prohibitively expensive with RedShift", this suggests that they want to do sub-second aggregations across raw event data. However, later in the article, the solution they build is to use rollup tables for sub- second responses.

You can also do rollup tables in Redshift, and I can assure you (if you enable the fast query acceleration option) you can get sub-second queries from the rolled up lower-cardinality tables. If you want even better response times, you can store the rollups in plain old Postgres and use something like dblink or postgres_fdw to perform the periodic aggregations on Redshift and insert into the local rollup tables (see [1]). In this model the solution ends up being very similar to their solution with Citus.... and I would predict that this is cheaper than Citus Cloud as Redshift really is a great price point for a hosted system.

So the question of performing sub-second aggregations across the raw data remains unanswered... however that really is the ideal end game as you can then offer way more flexibility in terms of filtering than any rollup based solution.

Right now, research suggests Clickhouse, Redshift or BigQuery are probably the fastest solutions for that. Not sure about Druid, I dont know it. GPU databasees appear to the be the future of this. I would be interested to see benchmarks of Citus under this use case. I should imagine that Citus is also way better if you have something like a mixed OLAP and OLTP workload (e.g. you need the analytics and the row data to match exactly at all times).

Aside: It would be great to see Citus benchmarked against the 1.1 billion taxi rides benchmark by Mark Litwintschik. Any chance of that?

[1] [https://aws.amazon.com/blogs/big-data/join-amazon- redshift-a...](https://aws.amazon.com/blogs/big-data/join-amazon-redshift-and- amazon-rds-postgresql-with-dblink/) [2] [http://tech.marksblogg.com/benchmarks.html](http://tech.marksblogg.com/benchmarks.html)

<comment><USER5> That's a fair point. Indeed we started looking at doing aggregations across raw events, before realizing this was probably ill fated.

It's very possible we could have done the same with RedShift but it didn't seem obvious how. With Citus offering extensions like topn and hll we however quickly saw how that could work for us.

Thanks for the link btw!

<comment><USER3> Yeah, thats a good point. Redshift does not have the same level of 'probabilistic counting' functions, that can be used from rollups. Redshift does have HLL (SELECT APPROXIMATE COUNT(*)) however that can only be applied when scanning the full data, I am not sure its possible to store a HLL object in a rollup and later aggregate them.

</comment></comment></comment><comment><USER6> Most of the discussion (rightly so) focused on DB optimization. The decision to build the API in Go was barely mentioned. I'm curious if you evaluated any other frameworks / languages or was Go just an automatic choice?

<comment><USER5> Pretty much automatic. With the exception of our search engine which is in C++ (as performance is paramount there), Go is becoming our language of choice for most of our backend services. We found in Go a great balance in terms of productivity and performance.

After building the aggregation and ingestion services in Go, sticking with this language for the API sounded like a good idea as well since Go makes it trivial to build an http server and the logic of the API is simple enough that we didn't see the need for any web framework.

<comment><USER6> Thanks! I asked because i'm looking at the same problem, though at a smaller scale than you guys.

I decided to build our personalization API using Python's Flask, worked great at the start because it helped us move quickly adding new features. 6 months later, we have more clients and hence more traffic, the response times have gone up significantly. I ran a benchmark doing a simple db query which returns the result as JSON with the apache benchmark tool and found my Golang implementation to be in the order of 20-25x faster, compared to falcon which is meant to be a lot faster than Flask.

Decided to just go ahead and implement the most performance sensitive parts of the API in Go.

</comment></comment></comment><comment><USER7> "A request targeting a single customer app will only ever need to target a single Postgres instance."

This seems remarkably dangerous to me. Isn't hotspotting a big concern? I suppose they are large enough at this point to know what a "large" customer app looks like, but anytime I see sharding done in this manner alarm bells go off.

Happy to see another positive citus case. I was skeptical a year ago but they're building up great success stories. We need great options like Citus!

Also, a happy algolia customer. If you're not using them yet, give it a try!

</comment><comment><USER8> Seems similar to the approach used by Process Historians in industrial control world i.e store at native frequency out of the PLC then periodically aggregate.

</comment><comment><USER9> Just use Keen.io and be done with it :)

<comment><USER10> Paying $10 per 1 Million events streamed and $1 for each 100 Million properties scanned, Algolia would be dead.

<comment><USER11> (working at Algolia) The biggest reason not going for Keen was indeed related to the cost.</comment></comment></comment>


Show HN: made a game you can play safely at work - <AUTHOR> http://williame.github.com/ludum_dare_23_tiny_world/

<comment><USER2> I'd also offer up schemaverse <https://schemaverse.com/>

<comment><USER3> That could actually be used to improve your SQL knowledge!

</comment></comment><comment><USER4> Of course, we Emacs users have always had that sort of thing. That's why Agile folks at Lean startups tend to favor Vim these days. True story.

<comment><USER5> When I first used Emacs, unsure what it was for, I spent all my time playing games. Took me ages to realise it was a text editor.

<comment><USER6> There's a text editor in there? I've always thought it was a great operating system but it's annoying to fire up vim every time I need to throw together a few lines of text.

</comment></comment></comment><comment><USER7> Well, this part might certainly attract attention.

<http://i.imgur.com/l9KHT.jpg>

Partially, because I'm on a mac.

<comment><USER8> Does Windows Eclipse then show letters like that?

</comment></comment><comment><USER9> I really liked it. I understand the point is not to actually play this game at work (what if you use a Linux distribution or Mac OS?), but to have some fun playing it :)

</comment><comment><USER10> Just to add some background (I'm not the author!) this game was made for Ludum Dare 23, an awesome 48 hour game development contest that takes place 3 times a year. There were over 1000 entries this time :-) Learn more at <http://ludumdare.com/> (I don't represent LD or anything but am just an avid participant.)

<comment><AUTHOR> Link to your entry?

<comment><USER10> [http://www.ludumdare.com/compo/ludum- dare-23/?action=rate...](http://www.ludumdare.com/compo/ludum- dare-23/?action=rate&uid=7243)

I didn't come up with an idea till the last few hours, sadly, so it's super simple and super rough :-) (And has music.. so not one for the workplace!)

</comment></comment></comment><comment><USER11> While I do enjoy the odd game from time to time, I do have a penchant for using IRC at work. This game reminded me of an old irssi theme I used to use: <http://irssi.org/themefiles/c0ders.png>

</comment><comment><USER12> ... what do you mean I can't take the hedgehog?

</comment><comment><USER13> That music is super annoying and there's apparent way to turn it off (without playing the SFW version)

<comment><AUTHOR> Does the tracker not appear bottom right? Which browser and OS?

<comment><USER13> It does, I just didn't see it since it's a similar colour to the background and tucked away right in the corner.

</comment></comment></comment><comment><USER14> most interactive fiction clients run in a terminal and already look like work, no?

</comment><comment><USER15> This is really cool, thanks for sharing. I will have to try to get ye flask.

</comment><comment><AUTHOR> The illustrated version is much prettier - switch between them with ctrl-b

<comment><USER16> Not only is it prettier, but it is also more functional, helping you navigate the world.

I think this is the first time I've seen a text adventure illustrated like this (although perhaps it is not the first), and to me it makes the game more noteworthy than the 'boss mode' which I've seen many games have.

While it isn't a game, the boss mode reminded me of Facebook in a spreadsheet: <http://hardlywork.in/>

<comment><AUTHOR> Glad you liked it! Yes the spatial thing in the illustrated version is deliberate. It is possibly unique - we certainly haven't seen it before; but then, we haven't played text adventures since we had 286s.

(Never played Myst neither; didn't have CDROM drives either...)

</comment></comment></comment><comment><USER17> Neat! Had fun trying it out.

</comment><comment><USER18> Now if you could choose for a Windows 7 skin, or even multiple editors...

<comment><AUTHOR> Fork it on github!

Also, fun to try and make it indent and look like code so it even better at the bosses squint test..

Wanted to add a classic "boss" hotkey too - a dialog saying "compiling" pops up and when dismissed its one of these new html5 code editors instead... but ran out of time

<comment><USER19> I wonder how hard would it be to do it "the other way round", i.e. embed it into eclipse...</comment></comment></comment>


On the foolishness of "natural language programming" - <AUTHOR> http://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667.html

<comment><USER2> The creation of artificial languages is about finding new ways to express patterns we humans have hallucinated from our man-made sea of 1s and 0s. Shortcuts for expression. Languages will continue to become more dynamic. It's really a gradient from "artificial language" to "natural language". The evolution of programming languages has them approaching natural language as higher-level languages are developed (as opposed to, say, assembly), but it's rather silly to think that the ideal for an artificial language would ever be to embody the state of a natural language. Will artificial language ever embody natural language? What happens when the utility of artificial languages exceeds that of natural languages? Will our daily conversations one day be held in Ruby 3.1?

\- "Make me a sandwich." ~ "Make it yourelf." \- "Sudo make me a sandwich." ~ "Okay."</comment>


Testing the Ballmer Peak: Ballmer Peak-a-Thon SF, open bar hackathon - <AUTHOR> http://www.ballmerpeakathon.com <comment><USER2> See, now this is how you promote something like this without coming off as a tool.

Well done!

<comment><AUTHOR> I'm not sure when the last time a HN post made me actually laugh out loud. Well done yourself!

Also, it helps to be part hacker :)

</comment></comment><comment><USER3> Haha my team and I tested the peak in San Antonio on the StartupBus following 3 long days of coding and a long day at Rackspace. Result of Initial Trial: Night ends down one developer (sleeping at the hotel at this point) while the remaining three of us walk to McDonald's which we soon discovered was located in a "less than desirable" area. +1 to the cop who got us safely out of there.

<comment><AUTHOR> We're going for more of a party in SF, and get discounts at a bar after the event.

No McDonalds though, sorry.

</comment></comment><comment><USER4> I know the organizer. It should be a fun event.

</comment><comment><USER5> Relevant: <http://www.youtube.com/watch?v=-Zj50DmBFp0>

</comment><comment><USER6> Will breathalyzers be provided? How will programming ability be measured? :)

<comment><AUTHOR> Haha we're still looking into that... though the test might be less than scientific for legal reasons.

Programming ability might have to be more subjective, but we've also built a Ballmer Calculator based off well established formulas.

Basically, you put in your weight and sex, we tell you how much you 'should' drink to get to the Ballmer Peak.

<comment><USER7> I personally like to drink and code because it is a natural way to alert me when to call it a night.

Also, I am a bit of an obsessive 'pre-thinker' so it helps get over that hump and get me coding.

Strangely, I wake up more refreshed after those nights than when I 'just want to get through one more TODO'.

Remember: Lots of checkpoint commits to your local repo...you'll probably have to trash the last couple. and you should avoid committing to the master until you've had a chance to clean up in the morning. Alarms are good for this.

That might be a good time to use a BAC calculator and post your findings...one 'measurement' per commit and judge the code later. If you do this, please post a graph. I would be interested in seeing this data.

And may your Ballmer peak become a Ballmer plateau!

</comment></comment></comment><comment><AUTHOR> As a thank you to the HN community that made Hacker Fair (for the Hacker Dojo) so great, I'm giving $5 off... which means it's $10 for an open bar on Cinco De Mayo.

Use HackerNewsLovesBeer (not case sensitive)

</comment><comment><USER8> I've been to the Peakathon in Los Angeles. Unforgettable evening!

</comment><comment><USER9> These guys are super epic, looking forward to another fun event.

</comment><comment><USER10> Just signed up. Looking forward to it!

<comment><AUTHOR> Sweet! See you there!

</comment></comment><comment><USER11> Fantastic! I'll be there</comment>


Ask HN: Prepaid mobile hotspots with no expiration? 3G, 4G, or LTE. - <AUTHOR>

I'm wondering if anyone has a good solution to this problem:
I want a mobile hotspot so that I can browse the Internet on my MacBook while riding the train/bus/whatever. I want to prepay for data transfer with no expiration. e.g., pay $50 for 5gb of data transfer that I can use whenever I want.
From my research, it seems like the major carriers all offer hotspots, but either confine you to a monthly contract, or offer prepaid plans with expirations. So yes, you can pre-pay $50 for 5gb of data, but you need to pay it again the next month even if you did not use all 5gb of data.
It seems like the best solution is a USB modem with a SIM card slot, coupled with a prepaid data plan loaded onto a SIM card. But this raises many questions: Which USB modem? Which bands should it support? Where to buy the SIM card?
I imagine this is a problem someone on HN has already solved. But the literature online is surprisingly sparse. So... any recommendations? <comment><USER2> Depending on your level of risk taking, you may be interested in something like this from eBay: [http://www.ebay.com/itm/MOBILE-HOTSPOT-FLASHED-TO- VERIZON-PP...](http://www.ebay.com/itm/MOBILE-HOTSPOT-FLASHED-TO-VERIZON-PP- UNLIMITED-3G-INTERNET- MIFI-2200-4510L-4620L-/221275158155?pt=US_Mobile_Broadband_Devices&hash=item338506f68b)

The units are flashed and use Verizon's prepaid Internet plans but are effectively unlimited - if you prepay your account for a year - you get unlimited 3G data during that time for about $100/yr.

I couldn't quite believe when I stumbled across it - but it reminds me of hacked satellite encryption back in the day. Hard to believe this would actually work - or keep working for a long time - but based on some questioning - these eBay vendors stand behind their products....

Perhaps someone has a better idea of how these actually function....I don't.

<comment><USER3> They may be using a plan which was not intended for mi-fi or smartphone use. I guess they reprogram the IMEI or equivalent of Sim ID of a 'basic phone' onto the Android phone.

</comment></comment><comment><USER4> "Internet on the go" at Walmart.

<comment><USER5> that's actually very nice to have in the wallet for when t-mobile/att has no coverage and you have to work. any idea which network it uses?

any first hand experiences?

<comment><USER4> I believe it's an MVNO for Sprint.

I haven't used Internet On the Go, but I have used TruConnect which is the same company. TruConnect worked alright. I have a personal connection to the company and did some work for them at one point in time so I'm not completely impartial, but their average customer was a 200 MB / month customer. Any more and a subscription would makes sense.

</comment></comment></comment><comment><USER6> I was looking at [this]([https://yourkarma.com/](https://yourkarma.com/)) the other day. It looks like this is what you're looking for.

$14 per GB is pretty expensive though, but the data doesn't expire.

</comment><comment><USER7> T-Mobile $45.00 per month "unlimited" +$5.00 more for HotSpot

<comment><USER5> that is exactly what OP is not looking for</comment></comment>


Crypto for kids - <AUTHOR> https://sustrik.github.io/crypto-for-kids/ <comment><USER2> I hate to be "that guy" but, I don't think this is really what people want their kids reading:

"SMUGGLER: Do you like booze?

CITIZEN: Sure I do. And who are you?

SMUGGLER: I'm the person who will sell you some booze.

CITIZEN: What about cigarettes?

SMUGGLERS: Sure thing. Cheap Ukrainian variety for $1 a pack. Also Slovenian Mariboro brand."

<comment><USER3> I'm rereading the Harry Potter books, they get _dark_. Blood, death, and stabbing all happened in just what I read yesterday.

<comment><USER4> The characters are supposed to grow along with the audience in the Harry Potter to my knowledge.

<comment><USER5> Nothing says healthy life for a 11 year old like living with your abusive aunt and uncle and having to fight the dark wizard that killed your parents.

</comment></comment></comment></comment><comment><USER6> People who want the younger set interested in this thing should check out The Manga Guide to Cryptography [1]. (Warning: Not yet published)

[1]. [https://www.nostarch.com/mangacrypto](https://www.nostarch.com/mangacrypto)

</comment><comment><USER7> Written by the creator of ZeroMQ, for those who are unaware.

<comment><USER8> _> Written by the creator of ZeroMQ, for those who are unaware._

How is this relevant? Why is it important to be aware of that fact?

Does this mean that the author is specifically well qualified for writing such a book? Does this imply he has deep knowledge about cryptography, or that he is trained to explain things suitable for children?

Maybe it's just me, but to me this sounds as strange as assuming that a good actor is automatically also a good politician.

</comment></comment><comment><USER9> I'm inclined to believe that there is some secret message encoded in the string "1 13 20 32 54 78 99"...

</comment><comment><USER10> I'm stymied about parable 99. The nomenclature implies that Mr. Xi knew the basics of encryption. No mention whether the decryption function was provided or previously agreed upon (e.g. "let's agree on GPG").

I think the decryption function or method is the key to answering the question. Am I missing something else?

<comment><USER11> There are encryption schemes which allow you to choose the key to produce any arbitrary decryption from a given ciphertext. For a trivial example, consider the one-time pad scheme that's simply "plaintext XOR key" and "ciphertext XOR key"; by choosing a key that's equal to "plaintext XOR ciphertext" you can construct a key for _any_ ciphertext from a plaintext or any plaintext from a ciphertext. Mr. Xi uses this to produce the just-released lottery numbers from the ciphertext regardless of the numbers or the ciphertext.

<comment><USER12> yup! they should have used a commitment scheme instead - for example, SHA256(winning numbers || 512-bit nonce). To reveal, reveal the winning numbers and the nonce and Mr X can check that the hash matches. The nonce is to introduce more entropy so Mr X can't just bruteforce the hash, but since finding any collision is difficult, it doesn't let the alien cheat by trying different nonces (unlike with different keys with encryption schemes).

</comment></comment></comment><comment><USER13> The Cryptoclub: Using Mathematics to Make and Break Secret Codes: [https://www.amazon.it/Cryptoclub-Using-Mathematics-Break- Sec...](https://www.amazon.it/Cryptoclub-Using-Mathematics-Break- Secret/dp/156881223X)

My guess is that it would be a nice read for adults too.

</comment><comment><USER14> That font is neat but not something I'd like to read for an extended period of time.

<comment><USER15> Agreed. Try installing Reader extension for your browser, they usually let you set a font, its size, foreground and background colors, margins, etc. to your liking.

</comment></comment><comment><USER16> yo damn kids and your composites primes and abelian groups, GET OFF MY LAWN</comment>


Show HN: Egg Gradients – Gradient color inspirations - <AUTHOR> https://www.eggradients.com/ <comment><USER2> The webflow ads have piqued my interest. A lot of nice little projects are shown on Show HN but I don't know if I've ever seen any to feature any sort of sponsorship right off the bat. Pretty clever to throw that in there. Do you have any lessons learned to share about the process behind it? (If it came from an easy personal connection just to show proof of concept, that's cool too!)

<comment><AUTHOR> Thanks for the feedback. In fact, they affiliate links. I put it to try the Egg-ads concept.

<comment><USER3> I also like the ads, nice job. Some tips:

You should increase the surface area of your <a> tags in the ads. Ideally they would cover the whole card and the egg, too. Also, consider adding a hover effect and a "pointer" cursor. I was _trying_ to click your ads and I couldn't figure out how to!

<comment><USER4> Agreed that I was very confused in not seeing a pointer cursor on hovering _anywhere_ on the Ad card... any way this could have been made as a conscious decision to minimize the whole impression of the page being too invasive with its ads?

<comment><AUTHOR> I added hover over shadow animation and working on adding External Link fon icon from fontawesome.com [https://fontawesome.com/icons/external-link- alt?style=solid](https://fontawesome.com/icons/external-link-alt?style=solid)

Thanks for the feedback.

</comment></comment></comment></comment></comment><comment><USER5> Most of the gradients are slight variations of magenta and turquoise.

All the websites go for that now. I see a lot of hipstery designer stuff with that look. Vaporwave / aesthetic whatever. It's all magenta and turquoise.

So dull.

Your names for the color combos are worse than urban decay eyeshadows.

</comment><comment><USER6> Nice page, Seems very similar to [https://webgradients.com](https://webgradients.com)

<comment><USER7> I would say a little too similar.

</comment></comment><comment><USER8> This website on my mobile browser is the most visually pleasing experience I've had today. Bravo.

</comment><comment><USER9> Those are... unique names.

<comment><AUTHOR> Thanks. It was the most time-consuming part of the project.

<comment><USER10> "Obama's resignation"...?

<comment><USER11> Resignation obviously can mean resigned to, eg

"having accepted something unpleasant that one cannot do anything about"

<comment><USER10> Certainly, but I don't think that's the first interpretation of the word people think of when it's associated with the President.

</comment></comment></comment></comment></comment><comment><USER12> Very nice! Instantly made me think of that receptionist girl in _Total Recall_ , Schwarzenegger version.

Edit, this: [https://www.youtube.com/watch?v=in7QyUBV6Fk](https://www.youtube.com/watch?v=in7QyUBV6Fk)

</comment><comment><USER13> I'd love if I could filter this by target color(s), and see a subset that approximate that selection. Being able to select "red to orange" or "blue to green" would be great! Even some approximation of hex codes would be cool too.

<comment><AUTHOR> Thanks for the feedback. I am working extensively on the filter feature. Like this [https://www.eggradients.com/category/red-orange- gradients](https://www.eggradients.com/category/red-orange-gradients)

I will add it to the interface as soon as possible.

<comment><USER13> That's _exactly_ what I was talking about. Nice work!

<comment><USER14> You mean _eggsactly_ :)

<comment><AUTHOR> welcome aboard [https://prnt.sc/ixey41](https://prnt.sc/ixey41)

</comment></comment></comment></comment></comment><comment><USER15> Another [http://uigradients.com/](http://uigradients.com/), but with some very, um, brogrammer-y naming decisions. I'm somewhat confused as to why this is on the front page.

<comment><USER16> It's on the front page because someone posted it to HN, and HN users decided it was interesting enough to vote it up.

<comment><USER15> I suppose I deserved that.

What I should have said, is that I'm a little disheartened that this is getting the attention that I would prefer go to a site like uigradients with better UX and a less divisive tone.

<comment><USER17> The solution to that is submit, upvote, and comment substantially on better articles and flag those you think are inappropriate. On balance, things should work out and improve. Help make HN the place you want it to be :)

</comment></comment></comment></comment><comment><USER18> Couldn't read them all, but I'm curious if there's a name referencing the company Stripe?

... These gradients always remind me of their website

<comment><AUTHOR> actually does not exist. But it can be added. How about "Stripe Transaction" Not funny enough. I will think a little. Do you have a suggestion?

<comment><USER11> API is nowhere to be found in the names. So...

Stripe's API

It was one of the things that made them.

</comment></comment></comment><comment><USER19> This is cool! One of the top comments on Indiehackers (if I remember correctly) was to click on an egg to change the background color - I'm gonna echo that here.

Love the "remember to bookmark" label!

</comment><comment><USER20> Number nine is "Homeless Man's Joy". That's a great look for our community.

<comment><USER21> Ugh, yeah. There's a whole bunch of names that are incredibly shitty. Fuck this site.

<comment><AUTHOR> hahah thanks

</comment></comment></comment><comment><USER22> You should add a search bar at the top that will filter based on similar colors.

I usually know in general what color scheme I want when building something, but need to search online to find the exact colors that look good.

<comment><AUTHOR> Thanks for the feedback. I'm currently working on filter like [https://www.eggradients.com/category/purple- gradients](https://www.eggradients.com/category/purple-gradients) I will add the homepage soon

</comment></comment><comment><USER23> Those names are really something. Love it.

<comment><AUTHOR> If the name comes to mind, please share it.

<comment><USER24> "For magic consists in this, the true naming of a thing." ― Ursula K. Le Guin, A Wizard of Earthsea

</comment></comment></comment><comment><USER25> Sorry, I must be missing something. Is this is a page full of gradient fills on egg shaped circles, infused with ads, with completely random names?

<comment><USER26> Vote-rigging, perhaps?

<comment><AUTHOR> funny

</comment></comment></comment><comment><USER27> Is there any easy way to share an egg? I showed this to my colleagues at work and was trying to share a particular egg, but couldn't spot anything clickable for this. Inspecting the HTML, it doesn't look like any of the eggs have ids on them that could be used as anchors.

</comment><comment><USER28> I've seen variations on this dead-simple concept so many times I made my own two months ago:

[https://codepen.io/fenwick/pen/YYdXXb](https://codepen.io/fenwick/pen/YYdXXb)

</comment><comment><USER29> It would be great if there was a button to set gradient as background for preview.

<comment><AUTHOR> You're the second person to suggest this great idea. I got a note first when I heard it. I'm going to apply now. I have to :)

</comment></comment><comment><USER30> Like them a lot. A button to make the background #333 would be nice.

<comment><AUTHOR> Many thanks, I will add that feature as soon as possible.

</comment></comment><comment><USER31> The alias cursor on the text seems a bit strange. Especially since clicking doesn't do anything.

<comment><AUTHOR> Fixed.

</comment></comment><comment><USER32> I see plectrums! ;-)

</comment><comment><USER33> nice project, love it! The copy in the hero is full of typos/english mistakes, FYI :)

<comment><AUTHOR> Thank you for the warning. My English learning process is still going on. Somehow. I think it's time to buy Grammarly premium. :)

</comment></comment><comment><USER34> The eggs are oddly appealing!

</comment><comment><USER35> they are really nice.

</comment><comment><USER36> Why the egg shape?

<comment><AUTHOR> because I learned to do egg shape in CSS. Ironically, I add all as SVG so that it's easier on CMS.</comment></comment>


Ask HN: Why are there no front end languages for desktop GUIs - <AUTHOR> In a webapp, you have your separation of concerns, a backend that does backend stuff, a server that interacts with that backend and sends stuff to a given frontend, and the frontend which only really knows about and interact with the server. The backends and frontends don't need to be the same languages/stack (in fact, they mostly aren't). Why isn't this the case in the desktop world (ignoring electron), where every GUI seems to be married to it's language without any real room for a clean separation? I wish I could write something with Rust as a backend and have some equivalent of Elm or some sort make up the frontend, and have those communicate through an API like any webapp. <comment><USER2> My take is that you're thinking like a web dev, and not like a desktop dev. Why would you want to use 2 languages? If you use a single language, testing/debugging is waaaay easier.

There may be some places where you'd be inclined to use another language for speed, but that's where the .net ecosystem comes into play. Even then, with proper profiling, you'll usually find that you don't need to switch language.

</comment><comment><USER3> The frontend-backend pattern is actually very common in traditional GUI programs as well. It just doesn't have a "language" associated with it, because literally all you need is some IPC mechanism for the GUI to interact with its backend. For instance, xcdroast is a pure frontend to cdrecord (now mostly replaced by wodim). See e.g. [http://www.catb.org/esr/writings/taoup/html/ch11s06.html#id2...](http://www.catb.org/esr/writings/taoup/html/ch11s06.html#id2958899)

</comment><comment><USER4> > Why isn't this the case in the desktop world (ignoring electron), where > every GUI seems to be married to it's language without any real room for a > clean separation?

I think the separation is in the code itself with View classes or markup like XAML, and checked at compile time. I mean, if you didn't want the client code compiled with the backend code, why not just write a webapp in the first place? otherwise, just write your client app in another tech (gwt, qt, swing, win32) and call rust over HTTP?

</comment><comment><USER5> A lot of non-network programs work in that way. There are many ways to implement it, from having a background process responding to calls, to spawning new process on button press.

</comment><comment><USER6> Even if writing it all the in the same language, you could still separate the concerns - having different modules for e.g. fetching data and rendering.

Is there a particular application you are working on?

</comment><comment><USER7> Every GUI is married to its language, regardless of whether it is a desktop or browser based application. You can 'easily' implement the backend and frontend in different languages and manage the interface through a socket, an API, DB, or MQ.</comment>