A toilet paper run is like a bank run. The economic fixes are about the same - <AUTHOR> https://theconversation.com/a-toilet-paper-run-is-like-a-bank-run-the-economic-fixes-are-about-the-same-133065 <comment><USER2> > Stocking up to prepare for a crisis isn't 'panic buying'. It's actually a > pretty rational choice

That's because stocking up in preparation for a crisis happens when there is no crisis and you buying a thousand rolls doesn't trigger other people to do it; they just shake their heads and mutter 'prepper'.

Panic buying something when the crisis has already started just means that uncritical people will also panic buy that thing and everyone, including you, suffers because now there are queues just to get in to the supermarket even if you don't want to buy that thing.

So it's only rational if you discount the rest of the system.

</comment><comment><USER3> It is anecdotal but this morning I have stoped by the local supermarket and everything is fully stocked including toilet paper. Not many customers. If I didn't read the news I wouldn't notice that there is something going on.

We had few days of intensive buying here in Poland last week but it is over now.

<comment><AUTHOR> I live in the UK and panic-buying is not anecdotal. Just today, the government pleaded with shoppers to show responsibility and think of emergency personnel, such as NHS staff, who can't go shopping early in the day and are left with nothing in the evening:

[https://www.theguardian.com/world/2020/mar/21/coronavirus- uk...](https://www.theguardian.com/world/2020/mar/21/coronavirus-uk-panic- buyers-urged-to-think-of-frontline-workers)

Also, supermarkets are imposing limits on goods to stop hoarding:

[https://www.theguardian.com/business/2020/mar/18/asda- puts-r...](https://www.theguardian.com/business/2020/mar/18/asda-puts- restrictions-on-shoppers-to-limit-stockpiling-coronavirus)

And the governemtn is relaxing trade rules so that supermarkets can work together to face the unfolding crisis:

[https://www.theguardian.com/business/2020/mar/19/food- retail...](https://www.theguardian.com/business/2020/mar/19/food-retailers- urge-government-to-relax-regulations-coronavirus)

So in the UK at least, panic-buying is a thing.

Edit: and, btw, it's a thing that's hitting me hard because I refuse to go mad along with everyone else and hoard. Unfortunately for me, the government and supermarkets have plans in place to ensure vunlerable people have access to goods, but there's no such provisions for people who have just not gone mad yet. So I fear I might want for basic stuff as time goes by.

People are such shits when they're running scared.

<comment><USER4> It's bad in the U.S. as well. At least in Wisconsin, toilet paper, bleach, etc. Are nowhere to be found. Not in the supermarkets, not in the corner stores, not in the hardware stores... Milk, flour and eggs are also scarce. The limits are there but it's hard to say if it's helping.

Radio hosts are pleading with people to stop hoarding and just be reasonable.

Fortunately, my wife is a soapmaker, so we won't run out of at least that.

<comment><USER5> Pleading with people shouldn't be part of the solution. Everyone responds to incentives. The government can and should fine people for hoarding, fine them for reselling, and fine companies for allowing it all by not having sensible limits. This would eliminate the profit incentive (for both suppliers and consumers) of bad behavior.

<comment><USER4> A radio host is just a person, not the government.

There are limits being placed to combat hoarding and strict penalties against reselling on major marketplaces. Attempts are being made. But I don't think it's as simple as you suggest, at least in the U.S. (Which government? How do you identify the hoarders? Where is the line which continues hoarding vs. having sufficient stock?)

There was a case of someone hoarding massive amount of sanitizer with intent to resell, who then couldn't resell any of it. I hear the government compelled them to donate it (don't have a source, that part is just hearsay). But that's an individual case. At scale I think the problem quickly changes.

<comment><USER2> The solution is neither fines nor radio hosts pleading. It is solidarity.

Unfortunately it is in shorter supply than toilet paper and takes generations to build up but only decades to destroy.

People need to set an example to their neighbours and friends, make it socially unacceptable to panic buy. It's not hoarding that is the problem it is is the unnecessary high rate of purchase. You could hoard all you wanted if you did it slowly in times when there is not a crisis.

Here in Norway we have a little more solidarity than most countries I believe but even here there was a one or two day period at the beginning when people went out to buy large quantities of toilet paper.

<comment><AUTHOR> It's like you say. Noam Chomsky has published a book a while ago, called "Requiem for the American Dream: The 10 Principles of Concentration of Wealth & Power". Chapters are given titles implying "laws" for the concentration of wealth and power.

One chapter is titled "Attack Solidarity" and it describes how social solidarity in the US was eroded in the previous decades, resulting in a poor social state with almost no public health insurance, with no public higher education and so on.

But it's not just the US. This is happening in some other developed countries also (though hopefully not all, like you say). What is happening now in the UK, with the stockpiling situation, is absolutely the result of broken societal bonds that has led people to mistrust authorities and each other and adopt an attitude of "every man and every woman for themselves".

I should probably not blame people to be honest. They are acting like little shits, but they are right to believe that, if anything happens to them, nobody will take care of them and that they have to fend for themselves, in this selfish, greedy society that is governed by incompetent idiots.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I'm wondering how long it will take everyone to be at capacity for toilet paper. I mean I can fill entire rooms with it but then it physically gets in the way. There has to be a point of diminishing returns soon.

<comment><USER7> It also seems crazy for it to be toilet paper in the first place.

Its (1) easy to make, (2) mostly produced in-country with no long, integrated supply chain and (3) relatively new (talk to someone over 80 who grew up rural, they probably switched from the sears catalog to toilet paper in their life).

<comment><USER8> It's one of the bulkiest consumable products people buy. Which means a whole shelf is only equivalent a few families worth of demand. So it only takes a few buyers stocking up for a few weeks of use to empty the shelves. And once the shelves are empty the panic sets in.

<comment><USER9> Also due to its bulkiness, there is a limit on how many units can be delivered per truck.

In short, toilet paper is a low margin, least-stocked product with difficulty in transportation. Logistics matters.

</comment></comment></comment></comment><comment><USER10> Uh, what? Did this get cut off somewhere? [1]

It sounds like the author's concluding that the fixes _aren 't_ the same. Daley says that the fix for the bank run is for the government to step in as a guarantor and provide the cash to depositors withdrawing, then says that that's not possible for toilet paper, and thus it should do a quantity limit ... with no further economic analysis except that it worked somewhere.

Those are, like, the _opposite_ solutions. Government (or the central bank, in this case[2]) can easily loan money out of thin air, but it can't do the same for toilet paper. At most, it could commandeer suppliers or initiate its own manufacturing, which breaks the economic similarity.

Similarly, the solution for toilet paper (quantity limit) doesn't apply to the bank run case, as bank insurers don't do a quantity limit. Arguably, the deposit insurance maximum is a kind of quantity limit, but Daley doesn't offer it as such, and it's known in advance, and unrelated to customers' legal right to how much they can access, so is non-analogous in several respects.

Since no defense of quantity limits is given beyond (as above) that it worked once, the title is bad and the argument isn't well supported.

[1] For the record, here's what I see as the last paragraph so you know if I'm missing something:

>The second solution is to ration the commodity – putting limits on the amount a customer can buy. Imperfect though these buying limits are, they are feasible, as shown by the restrictions put in place by Australia's supermarkets. [https://www.afr.com/companies/retail/coles-joins- woolworths-...](https://www.afr.com/companies/retail/coles-joins-woolworths- in-rationing-toilet-paper-20200305-p5471r)

[2] Let's not break into the debate about whether the Federal reserve is private or not; it really doesn't matter for purposes of this topic.

<comment><AUTHOR> >> Those are, like, the opposite solutions. Government (or the central bank, in this case[2]) can easily loan money out of thin air, but it can't do the same for toilet paper.

If I may offer a brief moment of levity to relieve the tension of the moment, I must point out that if the government can print money then it can create toilet paper.

<comment><USER11> That might not work here in Australia as our money is plastic!

<comment><AUTHOR> Plastic as in synthetic banknotes, or plastic as in credit and debit cards? The latter might be a bit of a problem, indeed.

<comment><USER11> Plastic notes

</comment></comment></comment></comment></comment><comment><USER12> TP hoarders bemuse me.

I cannot imagine a scenario where things have gotten so bad that we can't make toilet paper but our biggest problem is wiping our asses.

It's like, "Civilization is falling but at least I have a year's worth of TP!" !?

\- - - -

There are all kinds of ways to clean your crack (bidets, showers) and making paper is pretty straightforward.

The internet is failing me, but the old "rag trade" was all about collecting old clothes and reprocessing them into new cloth and paper.

[https://en.wikipedia.org/wiki/Rag-and- bone_man](https://en.wikipedia.org/wiki/Rag-and-bone_man)

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

<comment><USER13> I dunno, imagine being locked in your house for a month. Pretty much the only absolutely necessary behavior is to eat, drink, sleep, pee and poop. If you stock up on food for eating, you are going to need TP for pooping. You can survive without TP, but it would be unpleasant.

</comment></comment><comment><USER14> It's a fun and silly article, but it would take a vasty greater disruption to actually cause a toilet paper shortage. The "problem" right now is that deliveries don't happen every 3 hours, so if people buy out all the TP at a store they have to wait for that TP to get restocked. It's not as if the trucks have stopped coming or the toilet paper factories have shut down. People just need to wait a few days, which is unusual but not really a problem.

<comment><USER15> _> People just need to wait a few days_

I have been unable to find TP at any store within a half hour's drive from my house for about a week and a half now.

<comment><USER16> I got desperate this morning and woke up early to wait in line outside of a store before it opened (which on its own was insane), only to find that they didn't have any stock come in overnight. Rushed over to the next store -- queue of people around the block waiting to get in. Drove to another town at 7:30am and tried their store, and they had TP but only small packages, limit of one, and I got one of the last ones. Not looking forward to doing this again in a week or so, but at least we got some.

</comment></comment></comment><comment><USER17> > The second solution is to ration the commodity – putting limits on the > amount a customer can buy. Imperfect though these buying limits are, they > are feasible, as shown by the restrictions put in place by Australia's > supermarkets.

The restrictions do not work, if not heavily supervised. And even then it's still a gamble. People would queue again at another cashier to buy another pack of TP. I don't think there is a solution, if actors are invested in gaming it.

<comment><USER18> Or implement surge pricing like uber so only the rich have toilet paper and it's cvs receipts and three sea shells for everyone else.

Issuing ration cards like WWII would be an option also and that solves a number of the problems you mentioned, you could use the existing electronic benefits infrastructure for that.

You'll never have a completely unbeatable system but you can go a long way to keep honest people honest. Even forbidding the resale of TP so people realize they are stuck with whatever they buy can do a lot of good - people wont buy eight thousand rolls of toilet paper if they know they'll be stuck with it.

<comment><USER18> Along that thought I imagine that if TP resale was forbidden then people would have to pay the moffia to take the stuff and insert it into the supply chain someplace so then it would be double penalty - you lock up significant resources in TP or you take a loss to have someone sell it for you.

</comment></comment></comment><comment><USER19> I am particularly disturbed by emergent behaviors and life decisions that are now laid bare in this crisis.

As a Bay Area resident, it is _incumbent upon me_ to maintain, in perpetuity, several weeks of food and drinking water as well as various other life essentials. _I owe this_ to my family and everyone in my community as we all live in a place where a tremendous natural disaster and accompanying social dis-integration could occur _at any time_.

Of course I have had my suspicious ...

Now we see that most residents of the Bay Area are barely prepared to make dinner _tomorrow_ and have supplies on-hand for a day or two. They don't have contingency plans for the absence of water, electricity or gas and I suspect very few are certified and practiced in even _basic_ CPR.

Shame on you.

There is going to be a day when even the grocery stores aren't open and the water isn't going to flow. Possibly for weeks. I plead with you to spend your quarantine time getting your shit together the way you've always been expected to.

<comment><AUTHOR> >> As a Bay Area resident, it is incumbent upon me to maintain, in perpetuity, several weeks of food and drinking water as well as various other life essentials. I owe this to my family and everyone in my community as we all live in a place where a tremendous natural disaster and accompanying social dis-integration could occur at any time.

Sorry, but I'm missing the context to understand your comment. Can you explain? What is the tremendous natural disaster that compels you to maintain sevearl weeks of food and drinking water?

<comment><USER20> Earthquake

</comment></comment></comment><comment><USER21> Create more toilet paper by fiat?

</comment><comment><USER22> all this toilet paper nonsense got me thinking about how much TP people actually use. I looked up the statistics and it said the average US person uses 1 to 2 rolls per week!! I was floored. What are these people eating?

I'm mostly vegan and i do fast a lot, due to a slow metabolsim. But, I barely use 1 roll per 2 months. We shop for costco TP, maybe once per year, if that much.

Conclusion: people use a lot of TP.

<comment><USER23> I guess you are a male. Half of the population uses 10x TP than the other half due to using it for both #1 and #2.

<comment><USER22> as a male, i also use it for #1 and #2. but, i guess as a male you use less on the #1.

<comment><USER13> In crisis situation, to save TP, men may want to limit themselves to tapping.</comment></comment></comment></comment>


A new core playlist for VLC 4 - <AUTHOR> https://blog.rom1v.com/2019/05/a-new-core-playlist-for-vlc-4/ <comment><USER2> Since this has turned into a "dump on VLC" thread: thank-you, VLC devs, for all the work that you do. I've been a diehard VLC user since 2006/2007, when I happily discovered a single .exe program could handle all of the files that I was continuously updating the ever-growing K-Lite Media Pack in order to handle. It found additional use as a Portable App that lived on the flash drive in my pocket, allowing me to pull it out at late-night piracy parties and confidently play the unviewable file that someone had grabbed off Kazaa.

To this day, it's the one program I can recommend to friends and family to install, regardless of OS/platform, that I will be confident can handle anything they throw at it. You guys do great work.

<comment> munk-a VLC is amazing, I love the work you guys are doing and heartily recommend it to my friends and family as well!

</comment></comment><comment><USER3> > The randomizer stores a single vector containing all the items of the > playlist. This vector is not shuffled at once. Instead, steps of the Fisher- > Yates algorithm are executed one-by-one on demand.

Fisher-Yates is the generalization of what is known as the "7-bag randomizer" in the Tetris community (same problem: you want to distribute 7 pieces randomly but want to avoid repetition). It's funny how what you think as inconsequential trivia about your niche hobby can turn out in unexpected places !

<comment><USER4> Fisher-Yates was one of the first algorithms my CS course exposed me to; nicknamed the knuth shuffle, not 100% why but it is in TAOCP.

I implement it relatively frequently (~once a year) as it is often quicker to write than find an implementation.

Surveying some peers I was very surprised to find they weren't aware of it!

<comment><USER5> IIRC, Knuth made it famous (because TAOCP). Often with the naming of these things there is a misalignment with who discovered/published it first and who popularized it first.

(I personally think naming the algorithm after both is a good compromise)

</comment></comment></comment><comment><USER6> _> But here, we're in C, so there is nothing_

there's your problem.

I mean, I'm sure your `vlc_vector` you've spent so much time optimizing and securing is as good as or even better than `other_project_vector` and `some_library_vector` or maybe even `some_other_vector`

All of which were implemented by various projects out of necessity because the language they chose doesn't have such an essential data structure in its standard library and because the culture around the language values NIH more than anything else.

Remind me again, why C is a good thing and not a liability these days?

<comment><USER7> c and c++ are still great choices when you care more about performance than correctness.

a media player doesn't (or shouldn't at least) modify any of my essential data, so the worst it can really do is crash every now and then. for a program like vlc, mild instability is not a bad trade-off if it means less dropped frames on old computers.

<comment><USER8> I wouldn't agree with that---media players are often fed untrusted content from the Internet, so a security issue in a shared media player API can be critical. See the Android StageFright vulnerability from a few years back.

Writing it in C for a marginal performance gain just isn't worth it.

</comment></comment></comment><comment><USER9> Will their ever fix the infinite loop you get when you open a broken file and VLC just try to read the 1-file playlist indefinitely and the UI gets stuck forever ?

<comment><AUTHOR> Definitely, we are aware of this stupid behavior, it will be fixed (at the latest) in 4.0.

<comment><AUTHOR> I just proposed a patch to fix the problem on VLC 3: [https://mailman.videolan.org/pipermail/vlc- devel/2019-May/12...](https://mailman.videolan.org/pipermail/vlc- devel/2019-May/124882.html)

(proposed != merged)

<comment><USER9>
       Instead, wait some delay before starting the next item,   depending on the
      number of consecutive errors

That's smart !

What if I have two items on the playlist that both fails, is it going to remember the number of consecutive errors ?

<comment><AUTHOR> > What if I have two items on the playlist that both fails, is it going to > remember the number of consecutive errors ?

Yes, it will, the counter is reset only on successful playback.

</comment></comment></comment></comment></comment><comment><USER10> I used VLC for years, but more recently have found the Mac app IINA [https://iina.io/](https://iina.io/) to be a (not perfect but) substantially nicer tool in the same niche (i.e. an open-source video player that handles whatever I throw at it). VLC is just too full of incidental complication.

<comment><USER11> Two things that convinced me to switch to IINA was integrated subtitle downloader and ability to position those subtitles onto lower matte in letterboxed videos.

<comment><USER12> VLC has a plugin called VLsub which works almost perfectly as subtitle downloader.

<comment><USER13> And it is inside VLC by default.

</comment></comment></comment></comment><comment><USER14> > User interfaces need random access to the playlist items, so a vector is the > most natural structure to store the items. A vector is provided by the > standard library of many languages (vector in C++, Vec in Rust, ArrayList in > Java…). But here, we're in C, so there is nothing.

I so do not miss working with C.

Having higher level abstractions and a working, useful standard library is just too nice.

<comment><USER15> This was the one that got me:

> model.get(4); // out-of-range, undefined behavior (probably segfault)

</comment></comment><comment><USER16> This sounds interesting. I personally would be more interested though if it would introduce some concept of an infinite queue, because that is usually the way I listen to music. I want to be able to select some music and to queue that, but when that finished, it should continue playing, with related/similar songs, or maybe according to some other rules/genre or so.

Many other music players have this. Also e.g. Spotify. Or iTunes DJ mode. Amarok had this. Sometimes it was called PartyShuffle.

I like the separation of the playlist/queue and the UI. But if it is an infinite queue, it is not possible to get a full copy of it. Only maybe to the finite preselected upcoming queue. But maybe that is not much of a problem then. The core infinite logic usually is implemented like: If the queue of songs contains less than N next songs, select some more songs from some database, according to some probability distribution.

I implemented my own music player at some point, where my main focus was around this concept of an infinite queue. ([https://github.com/albertz/music- player/blob/master/WhatIsAM...](https://github.com/albertz/music- player/blob/master/WhatIsAMusicPlayer.md#intelligent-automatic-queue) [https://news.ycombinator.com/item?id=4771999](https://news.ycombinator.com/item?id=4771999)) One reason was that I wanted to take this concept much further than any existing music player. E.g. even introducing some clever machine learning models to guide the infinite music queue.

I was actually quite happy with it, but it took too much time to really polish, to make it cross platform, etc. Now I mostly use Spotify, which gets close to what I wanted to implement in the first place. And they are working to improve the intelligent infinite queue, or generate playlists automatically in other ways.

So, now that there is some work by VLC on the playlist, I was wondering, how easy is it to extend that? E.g. maybe some Python interface, so I could maybe plugin some neural network, and add new songs to it when it runs out of songs. That would be really nice.

Related to that, what is the current state in VLC about other music player related features, like e.g. gapless playback?

<comment><AUTHOR> IMO, an infinite queue does not really apply to VLC.

If all songs are correctly tagged (which cannot be assumed in VLC), what Spotify does is interesting: [https://labs.spotify.com/2014/02/28/how-to- shuffle-songs/](https://labs.spotify.com/2014/02/28/how-to-shuffle-songs/)

<comment><USER16> Is there some API to be able to script VLC? E.g. that I can develop a plugin/module or external app/script, where I have a DB, and maybe a GUI (maybe web interface) for the DB as well.

For the API, I would need:

* Some way to get the current playlist. * Some way to get which item in the playlist is currently being played. * Some way to add items to the end of the playlist.

Also, maybe in addition:

* Some way to mark that the logic about playlist handling (adding to it, shuffling, etc) is handled by this external module (such that VLC does not do shuffling as well).

The logic of this external module is pretty simple then for the infinite queue: When the currently played item reaches almost the end of the playlist, it would add some more songs to it. For this logic, it would maybe also nice to remove some of the earlier played songs (otherwise the playlist would just grow and grow).

<comment><AUTHOR> > Is there some API to be able to script VLC?

[https://wiki.videolan.org/Documentation:Building_Lua_Playlis...](https://wiki.videolan.org/Documentation:Building_Lua_Playlist_Scripts/)

(I recently changed its implementation to use the new playlist/player [1], but the API was kept unchanged not to break existing scripts)

[1]: [https://code.videolan.org/videolan/vlc/commits/3b46a2c42c5c1...](https://code.videolan.org/videolan/vlc/commits/3b46a2c42c5c14d7ace68f1fab3846d88d23b4ef)

> Some way to mark that the logic about playlist handling (adding to it, > shuffling, etc) is handled by this external module (such that VLC does not > do shuffling as well)

Not supported.

</comment></comment></comment></comment><comment><USER17> > Thus, the playlist may not be bound to the event loop of some specific user > interface. Moreover, the playlist may be modified from a player thread; for > example, playing a zip archive will replace the item by its content > automatically.

As you probably figured out, this is quite hard to do correctly :) I have a similar design in some software I've written, but sadly I get a number of crashes that tell me that I've haven't done it quite right…

</comment><comment><USER18> Edit: It's online again.

The website seems to be unreachable right now, here's the archived version: [http://web.archive.org/web/20190522045257/https://blog.rom1v...](http://web.archive.org/web/20190522045257/https://blog.rom1v.com/2019/05/a-new- core-playlist-for-vlc-4/)

</comment><comment><USER19> I dumped VLC due to the simple reason that when a video is paused, it will stop the computer from going to sleep. The developer thinks this behavior is OK and refused to fix it so I just found a nicer and minimalist player called [https://mpv.io/](https://mpv.io/)

<comment><AUTHOR> > when a video is paused, it will stop the computer from going to sleep

This seems to be fixed:

\- [https://trac.videolan.org/vlc/ticket/3724](https://trac.videolan.org/vlc/ticket/3724)

\- [https://trac.videolan.org/vlc/ticket/19463](https://trac.videolan.org/vlc/ticket/19463)

\- [https://trac.videolan.org/vlc/ticket/20092](https://trac.videolan.org/vlc/ticket/20092)

</comment></comment><comment><USER20> Last time I downloaded VLC on Windows, an ad on the download page started download for "VLC Torrent Streamer" or something equally confusing. I never launched that EXE but started wondering what kind of crapware I would have gotten if I had.

I thought VLC was better than scams like that.

<comment><USER21> When I look at the download page now, there are no ads (disclaimer: I use an ad-blocker and I use noscript). Furthermore, VLC is available from the Microsoft Store, so that you don't have to fetch untrusted executables anyway.

<comment><USER22> Here is what the official Videolan download page looks like on Windows Chrome without adblocker: [https://imgur.com/a/ZWZdtk5](https://imgur.com/a/ZWZdtk5)

The VLC download is started in the background, but the "Download Now" buttons are highly misleading. This time it's Avast rather than "VLC Torrent Streamer".

Videolan should be ashamed using dark patterns to trick people into installing adware.

<comment><USER21> Jeez, it's easy to forget how unusable the web is without an adblocker nowadays.

</comment></comment></comment></comment><comment><USER23> VLC continues to be riddled with crashes in the menus, because of a bug in how they use A List, that is almost 10 years old.

The only way I can make sense of it, is that they must build VLC against a modified Qt distribution, or something they just never update.

I've totally switched to SMPlayer and MPV.

<comment><AUTHOR> > VLC continues to be riddled with crashes in the menus, because of a bug in > how they use A List, that is almost 10 years old.

Could you be more specific, please? Which menu, in which circumstances?

<comment><USER23> I'd have to install it again to reproduce it, but I believe there are several menus that don't expect certain things to be empty.

I think one triggers when selecting "Open Capture Device".

There is a closed bug report for this, that was closed I think as unable to reproduce. Years old.

I'll see if I can get back to exactly what it was.

</comment></comment></comment><comment><USER24> Why does a video viewer need a "playlist"? Isn't that feature already accomplished by the file open dialog?

<comment><USER25> Why does an HTML viewer need history and tabs? Aren't these features already accomplished by the xterm window the user must be invoking it from?

<comment><USER26> You're being sarcastic, but there's a grain of truth in your argument against tabs. It does feel like the kind of thing the OS should provide for _any_ app.

</comment></comment></comment><comment><USER27> The VLC Android App is unusable since an update earlier this year. Any plans to fix that? I reverted to an older version and would like to come aboard again once the bugs are fixed & bad UI decisions corrected. There was plenty of feedback on the playstore to act on and there was at least one bug fix release, but current reviews are still negative :/

<comment><USER28> Unusable in what way? It's still working just fine for me.

<comment><USER29> It can't play some videos properly for me but otherwise, it works for me too.

</comment></comment></comment><comment><USER30> Just downloaded the nightly build...it's horrible. I hope there is a way to reverse everything to how it is at the moment.

There is a point in software where the UI reaches it's optimum. It is at that point with VLC atm. I never had any issues with the playlist. The playlist is not a especially relevant part in the whole thing. I drag files/folder in there and it does what it does.

Please don't overdo it...

I'd rather see the render to chromecast issues fixed. Can't pause with VLC or the video stops after a few seconds resuming and I need to start over.

<comment><AUTHOR> > I never had any issues with the playlist. The playlist is not a especially > relevant part in the whole thing.

The playlist rewrite I detail in this blogpost is an internal technical refactor, so you're absolutely right, it's not a relevant thing for the users.

It is independant of the UI. In theory, it could have been used with the old UI, but technically a big part of the old UI code would have needed to be rewritten to use the new core playlist.

Since a new modern UI is being developed, this was not worth the effort to do the work twice. So only the new UI will use the new playlist/player.

> Just downloaded the nightly build...it's horrible. I hope there is a way to > reverse everything to how it is at the moment.

The master branch is a development branch. Everything has been merged recently to avoid that everyone work on their own branch and resolve conflicts all the time, and the new components need to interact (playlist, player, clock, media library, qt ui…). But it's in development, it's not a release.

<comment><USER31> 12 years ago I wrote a blog post being annoyed that when using Xine in "random shuffle" mode - pressing "previous track" did not replay the previous track.

[https://blog.steve.fi/it_eats_the_pain.html](https://blog.steve.fi/it_eats_the_pain.html)

If VLC can now do that properly, which I think is what I took from your blog post, that's a huge change which makes me very happy, and would make me switch back.

<comment><AUTHOR> I'm glad that supporting "previous" in random mode will not be useless, then :)

</comment></comment></comment></comment><comment><USER32> Did VLC ever lose it's reputation of being the worst video player of all time?

<comment><USER33> It never had it. It had, and probably still has, the reputation of being the _best_ video player on Windows - it was bullshit-free, and the only one that worked OOTB with whatever you threw at it, without making you install these things called "codecs".

<comment><USER32> VLC being the worst thing ever was a meme back in 2007. Everyone saying that he used it got flamed into oblivion.

<comment><USER34> The Internet is a big place, we were probably hanging out in different circles cause I never heard that.

<comment><USER33> Indeed. In my circles around that time we were all switching _to_ VLC.</comment></comment></comment></comment></comment>


I present you the Linux kernel poster - made from the Linux source code - <AUTHOR> http://postertext.com/products/linux-kernel

<comment><AUTHOR> I had posted this on Reddit (see: [http://www.reddit.com/r/books/comments/cmw9k/i_just_launched...](http://www.reddit.com/r/books/comments/cmw9k/i_just_launched_a_business_that_sells_posters_to/) and [http://www.reddit.com/r/programming/comments/cp1wj/made_a_po...](http://www.reddit.com/r/programming/comments/cp1wj/made_a_poster_of_the_linux_kernel_code_with_tux/))

Someone from Reddit pm'd me suggesting to post the Linux poster here. So, here you go.

I hope you guys like it :)</comment>


Silicon Valley's Hottest VC Is A Rug Dealer - <AUTHOR> http://www.forbes.com/global/2012/0409/companies-people-pejman-nozad-entrepreneur-capitalist-silicon-valley-cinderella.html

<comment><AUTHOR> Only in the Valley, where merit matters so much more than your education or background, would this kind of success story happen.</comment>


Show HN: Roost – Safari push notifications via drop-in JavaScript - <AUTHOR> http://roost.me

<comment><USER3> If your application/website asks me to enable desktop notifications without my specific request for such a feature, or without explaining that this will become another spam source, I will blacklist it and never come back. On my phone, if an app causes spammy notifications, I uninstall it. Apps and websites can't spam without my permission, and I'm not about to start letting them.

This might be nice for you as a marketer, but as a user, I want nothing to do with it.

<comment><AUTHOR> The opt-out controls are built into the web push system, which should keep the channel relatively clean. If marketers are abusing it, users will very quickly deny their future pushes (after the fact, Safari -> Preferences -> Notifications). If email had such a built-in opt-out feature, I doubt spam would be what it is today.

Beyond that, we're definitely aware that there needs to be a steward of the channel. If people abuse it, we lose. There are things that can be done with throttling that we hope to implement soon. Hasn't been necessary to this point.

</comment></comment><comment><USER4> It's very interesting, how are you going to implement this for other browsers (Chrome, Firefox) and other OSes. Safari push notifications are safari-only and os-x-mavericks-only. I am not aware of any new standard being in works, which millisecond is talking about in comments.

</comment><comment><AUTHOR> One of the founders here, open to any questions!

<comment><USER5> Looks pretty sweet, just installed it on one of my WP sites. Do you know when you will finish Chrome/Firefox integration?

<comment><AUTHOR> We're waiting on some tech inside Chrome / FF. Our stuff relies on a new standard that the browser manufacturers have to integrate. We know they're all (even MS!) working on it, but hard to give a definitive timeline - <USER2> measured in a few months.</comment></comment></comment>


Boston Companies Using Ruby on Rails - <AUTHOR> http://bostinnovation.com/2011/03/22/boston-companies-using-ruby-on-rails/

<comment><USER2> If you're a company or organization in Boston and using Django, please submit your company to this form by 3/29 so we can include you in Kevin's next article "Boston Companies Using Django" coming out this thursday. Thanks! [http://noderabbit.wufoo.com/forms/companies-using-django- in-...](http://noderabbit.wufoo.com/forms/companies-using-django-in-the- boston-area/)

<comment><USER2> @kmccarth's BostInnovation article "Boston companies using Django" can be found here: [http://bostinnovation.com/2011/03/31/boston-companies- using-...](http://bostinnovation.com/2011/03/31/boston-companies-using- django/)

Thanks @jtauber for planting the seed for this article.

</comment></comment><comment><USER3> Geezeo.com should be on that last, as I wrote their first version in Rails for them ~4yrs. ago.

However I believe they've moved their official headquarters somewhere to the wilds of Connecticut.

</comment><comment><USER4> Next up we need Boston Companies Using Django

<comment><AUTHOR> You got it jtauber. email me at kevin @ bostinnovation.com so we can talk about this further. thanks for reading

</comment></comment><comment><USER5> The article came out well, happy to debate the merits of Rails as a platform in the comments here.

</comment><comment><USER6> I have been hearing so much about Ruby on Rails lately. I must be badly behind the times.

<comment><USER7> Just think of it as having missed RoR's Bad Old Days. :)

<comment><USER8> I've been using rails since alpha and have always found it awesome for my use cases. A crm system I wrote on it is still on 1.x. (written over 6 years ago). Sure, some things sucked and some things are now better, but always was awesome and that's why it has become so popular.</comment></comment></comment>


MIT Students' SookBox Aims to Sync All of Your Media, brings Cloud into the Home - <AUTHOR> http://bostinnovation.com/2011/06/30/mit-students-bring-the-cloud-to-your-home-with-sookbox-aiming-to-sync-all-of-your-media/

<comment><USER2> Reminds me of Orb, now called Orb Caster - <http://www.orb.com>. It was pretty awesome to play with and a good combination with a WinTV PVR card, but I never found myself in a situation where I would actually use it. I never really needed most of my media outside of the home. Admittedly, that was before 3G and smartphones became commonplace, but I doubt it would have changed much. At least not for me.

<comment><USER3> Agreed. I set up Orb about 5-6 years ago to stream my music and videos, but it was always too much hassle to make sure I left my desktop on (and that it didn't go into sleep mode).

For music, it was more trouble than it was worth - I always had enough to last me on my MP3 player.

For videos, Orb didn't work well on my internet connection (I think 5mbps at the time). Also, I never had a good enough reason to actually stream a personal video, other than to show off the Orb service to someone.

Especially now, with the proliferation of Pandora and Hulu and Netflix and YouTube and other always-on media services, is there really a need for this type of product? I say no.

</comment></comment><comment><USER4> Seems like the world is trending away from people owning this kind of hardware. As a consumer I want to be as hands off as possible. Not sure I want to deal with the overhead of putting a server in my house.

<comment><USER5> I'd like to not host this stuff myself as well, but in the meantime I've got a Synology device doing a damn good job for very little time investment and not much money. I don't have to stream my media from the internet, I don't have to leave my PC on, it doesn't draw as much power and it has some reasonable redundancy features.

Now my phone, laptop, boxee, etc can all sync from that central store and pull data from it on the fly, at 802.11n or gigE speeds. So I'm not burning battery life waiting on Comcast and burning through my wired and wireless data caps.

As long as consumer internet is slow and battery life limited, and particularly as data caps become increasingly common, there's going to be a market opportunity for a local media store that can be used to sync your various devices.

</comment></comment><comment><USER6> I would definitely be interested in something like this. Most apps sync with either some proprietary cloud or at best Dropbox. Universal as Dropbox is, I just don't trust it.

An even better solution would be to sync all my devices over ssh. In that sense, I already have a private "cloud".

</comment><comment><USER7> So it's just Boxee plus streaming? I can see media companies loving the piracy capabilities behind this one...

</comment><comment><USER8> About time.

You could build your own, but not sure if your home ISP likes you hosting servers.

</comment><comment><USER9> I have wanted something like this for years.

I really hope these guys apply to Y Combinator!</comment>


Rare Persian manuscripts dating back to 13th century now online - <AUTHOR> https://www.loc.gov/item/prn-19-036/ <comment><USER2> Wow! This is great.

For those who are not familiar with Persian, it helps to understand that Persian went through _Old - > Middle -> New_ transition long before English did. While a 10th century English text, e.g. Beowulf, is completely foreign to a modern English reader, a 10th century or newer Persian text is accessible to modern Persian readers. These are not ancient books only academics can understand and care about. You can find copies of Shahnameh and Hafez in many Iranian households, but some of the lesser-known ones are indeed rare.

<comment><USER3> That implies that Persian is changing slower than other languages? Or is Germanic/English/Latin the outlier?

<comment><USER4> Language development changes in speed with the linguistic landscape. Persian saw its fastest changing in the 8th century during the Ummayad conquest, when Arabic became the dominant language of the ruling class.

Similarly, English saw its fastest changing in the 12th century during the Norman conquest, when French became the dominant language of the ruling class.

In both cases, most of the core vocabulary and grammar survived, but with enough influence and new words that it is hard for speakers after the change to understand writings before the change.

My understanding from Persian friends is that Rumi is about as understandable to modern Persian speakers as his contemporary, Chaucer, is to modern English speakers.

Whan that Aprille with his shours soothe

The droughte of March hath perced to the roote

And bathed evry vein in switch liquour

Of which vertu engendyred is the flour...

<comment><USER5> Yes, but on the other hand, original lyrics by Hafez, Rumi, and others are commonly used, unchanged, as lyrics for contemporary Persian songs, even for full-on rock songs, dance music, love songs, etc. I haven't heard any songs in the Hot 100 using lyrics by Chaucer lately.

<comment><USER6> In part, this is probably because old Persian poetry/song traditions were more modern, compared to english poetry from the same period. They had a strong, very old literary tradition. The English didn't, until a bit later. Chaucer was part of building it.

The musical/poetic sensibilities of old/middle English are way too different to ours.

The Bible (especially in Hebrew) can also easily be plagiarized, and you'll find lots of lines/poems that work "as is" in a pop song.

Eg, rivers of babylon, boney m.

</comment></comment></comment></comment></comment><comment><USER7> wow, this is amazing. Reading Qazwini's Padshahnama.

Even though I am a full time engineer like most others here, I had an interest in history so I learned to read Nastaliq hand written script and basics of Persian grammar online (had no knowledge of Farsi when I started). A lot of collections are now online so the first-hand sources are much more accessible now.

I still have issues deciphering the full meaning or reading an old hand which is beyond my basic skills. Anyone willing to help or know a good book/site that will help me in deciphering these old manuscripts (Persian or Arabic)?

<comment><USER5> You should be able to use a site like ganjoor.net, which contains most classical Persian texts, in Persian only, but in modern type (as opposed to simply being a picture of an ancient or modern manuscript page). We've made heavy use of these sites over many years and been very happy. Errors seem to be extremely rare. Keep in mind though, that there will almost certainly be differences, often major, between whatever manuscript you are looking at and whatever modern edition is the one that's been typed into ganjoor.net (or another similar site). For another approach, there are academic texts to help you learn to read old handwritten scripts. As for deciphering the full meaning (bearing in mind that there may be many layers of meaning and lots of puns and other wordplay), that just takes a whole lot of work. We (my partner in reading for 13 years and I) just start at the beginning of a work (say, Nezami's Khosrow and Shirin) and take it line by line, using dictionaries, grammars (though we pretty much have all the grammar down now), and translations. We use the footnotes, too, in the back of the contemporary editions in Persian. We get the Persian books from Persian on-line bookstores, most of which seem to be in LA. Congratulations for getting as far as you have on your own. Amazing!

<comment><USER8> That is a great site.

Also see: [http://www.sufism.ir/MysticalBooks.php](http://www.sufism.ir/MysticalBooks.php)

English translations are here: [http://www.sufism.ir/MysticalBooks(11)-en.php](http://www.sufism.ir/MysticalBooks\(11\)-en.php)

</comment></comment></comment><comment><USER9> For anyone who hasn't studied it, I highly recommend picking up a few history books on the Mughal empire. If you've ever wondered why there's so many Farsi words in modern Urdu and Hindi, there's your answer...

<comment><USER10> Any recommendations?

<comment><USER11> "Emperors Of The Peacock Throne" by Abraham Eraly

"Rebel Sultans" by Manu Pillai is a great complement, focusing on the Deccan, with a lot of material on how Iranian culture and politics influenced Indian history.

</comment></comment></comment><comment><USER12> Treasure. Shah Namah alone is essential literature.

Would be even interested also in digital collections of Persia circa 500 BC. During Achæmenian dynasty, Zorastrian priesthood, Kingdom of Bactria, the origins of Dualism ;)

<comment><USER13> Any preferred english translation for shahnameh? Would love to gain some exposure to foundational Persian literature.

<comment><USER5> Most current-day readers might prefer Davis, but the best in my eyes is that by the two brothers Warner: "Between 1905 and 1925, the brothers Arthur and Edmond Warner published a translation of the complete work in nine volumes, now out of print." [https://en.wikipedia.org/wiki/Shahnameh](https://en.wikipedia.org/wiki/Shahnameh) I read classical Persian, I've read most of the Shahnameh in Persian and taught parts of it to English-speakers, and have been amazed by the art of the Warner's work and the depth of their understanding.

<comment><USER5> I should have mentioned that the Warner's translations are available on-line. Here's V 1: [https://archive.org/details/shahnama01firduoft/page/n6](https://archive.org/details/shahnama01firduoft/page/n6)

</comment></comment></comment></comment><comment><USER14> Digitization projects like this are such a boon to scholarship. I haven't combed through the list of codices yet to see if there's anything I might like to investigate—but hey, now I can whenever I find the time. I've had to plan international trips to visit manuscript libraries, without being sure what awaited me. (Don't get me wrong, that's a lot of fun in its own way. But what if I come across something unexpected, and I only have a week in town, and I'm not allowed to photograph any of the materials?)

</comment><comment><USER15> If this kind of thing floats your boat, I can highly recommend Peter Hopkirk's "Foreign Devils on the Silk Road: The Search for the Lost Cities and Treasures of Chinese Central Asia".

[https://www.bookdepository.com/search?search=Find%20book&sea...](https://www.bookdepository.com/search?search=Find%20book&searchTerm=Foreign+Devils+on+the+Silk+Road%3A+The+Search+for+the+Lost+Cities+and+Treasures+of+Chinese+Central+Asia)

</comment><comment><USER9> One of the interesting historical tidbits about the greater Persian empire... Until it became a Russian/Soviet client state, the area that is now Tajikistan used Farsi script for all "educated" written word records, books, letters, etc. It was well within the boundaries of the greater historical Persian empire.

The spoken dialect of Persian in Dushanbe today is not extremely different from what they speak in Kabul. Mostly differences in accent, pronunciation, some casual slang.

But starting around 1920, the russians mandated an official government and school system switch over to the Cyrillic alphabet, along with teaching Russian language as the language of "math, science and higher learning". So now Farsi is written with Cyrillic there.

Music videos produced in Dushanbe remain highly popular in Afghanistan.

</comment><comment><USER16> I wonder if this is a good faith effort on part of the current administration to find new common ground with the Iranian gov't. Nevertheless, an incredible contribution.

<comment><USER17> The head Librarian of Congress is appointed for 10 year terms. The present one, Carla Hayden, was appointed by Barack Obama in 2016.

</comment></comment><comment><USER18> Any standout medical texts?

</comment><comment><USER19> more interest in the Persian influence to Jews and their religion, as it is the Persia that allow them to go back home after Babylon occupation. Bible mostly dated back to this time at least the final editing. Wonder any good lead to this era culture.

<comment><USER8> "A comparative study between the Babylonian Talmud and the Middle Persian texts": [https://spectrum.library.concordia.ca/984143/7/Ehsani%20Chom...](https://spectrum.library.concordia.ca/984143/7/Ehsani%20Chombeli_PhD_F2018.pdf)

"Encyclopedia Judaica: Talmud & Middle Persian Culture": [https://www.jewishvirtuallibrary.org/talmud-middle- persian-c...](https://www.jewishvirtuallibrary.org/talmud-middle-persian- culture)

"The Iranian Talmud: Reading the Bavli in Its Sasanian Context" [https://www.upenn.edu/pennpress/book/toc/15179.html](https://www.upenn.edu/pennpress/book/toc/15179.html)

</comment></comment><comment><USER20> I wonder if the modern day Iran would allow publishing a book with a cover like the one shown. Gives you something to think about...

<comment><USER21> A while ago I read that after the revolution the new Shiite run government found themselves in charge of a lot of 'non Islamic art'. The interesting thing is they stuffed it all away in a warehouse instead of destroying it. And now recently have been making it available.

Edit: [https://www.bloomberg.com/features/2015-tehran-museum-of- con...](https://www.bloomberg.com/features/2015-tehran-museum-of-contemporary- art/)</comment></comment>


Kivy 1.9.1 released - <AUTHOR> http://kivy.org/planet/2016/01/kivy-1-9-1%C2%A0released/ <comment><USER2> "Kivy is an open source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps."

In case anyone else didn't know.

<comment><USER3> Thanks, because the website, pretty as it is, didn't say anything on the blog page, home page, even the "About" page. I clicked on five pages on the website before getting this.

<comment><USER4> It's right there on the homepage: [http://kivy.org](http://kivy.org)

<comment><USER5> Which isn't linked from the blog. If you click on the main blog title, it takes you to the main blog page at kivy.org/planet. There is a link to the website in the actual post there but it links to the download page, which doesn't have the description. From _there_ you can click to the main page which has the description.

Are they ashamed of the software or something? I honestly can't comprehend why so many projects are so shy about telling us what they actually are!

Every page should have "an open source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps." on it. There is no reason _not_ to. Put it in small text under all main titles or something.

<comment><USER6> _Are they ashamed of the software or something? I honestly can 't comprehend why so many projects are so shy about telling us what they actually are!_

I think the thinking is that, "Hey, this is an announcement for us, and our friends, you know, the folks who know all about this software already!". In general, do you care about an update to some software you don't use?

But, surprise surprise, someone in the in-crowd throws this up on HN and it blows up, and suddenly they have a ton of new, confused, visitors.

I think your idea of putting a summary on each page (including, or perhaps especially, the blog!) is a great idea. Why don't you tell them?

<comment><USER7> Actually this was exactly my thinking when I wrote it, but having read this thread I'll certainly try to have some clearer introduction on every page.

</comment></comment></comment></comment></comment></comment><comment><USER8> Having been introduced to Kivy earlier this year as my first python mobile framework I was impressed by how easy it was to prototype with.

</comment><comment><USER9> From the FAQ:

"be aware that while Kivy will run in Python 3.3+, packaging support is not yet complete. If you plan to create mobile apps for Android or iOS, you should use Python 2.7 for now."

[http://kivy.org/docs/faq.html](http://kivy.org/docs/faq.html)

<comment><USER7> It's been a long time coming, but I expect to merge python3 support into python-for-android within the next couple of days. I'll make an announcement about it at the time.

<comment><USER9> Thanks!

</comment></comment></comment><comment><USER10> How are pseudo-native widgets coming along?

</comment><comment><USER11> How is the Android support in practice?

<comment><USER7> It works fine, and includes things like the ability to access the Android API (with pyjnius and plyer) but there are some problems that are difficult or impossible to fix. In some cases these aren't important or you can just not care, in others they are an issue.

The major ones that come up are:

\- Relatively large APKs, minimum size is about 7MB due to the size of the included python interpreter.

\- Non-native widgets, Kivy draws its own widgets using OpenGL. They're quite customisable, but of course you never get behaviour quite like the native ones.

\- App startup time. This is down to about a second on newer devices, but on older ones (or if the app does inefficient things before starting up) can be quite a bit longer, especially on the first run when some unpacking is performed.

I've seen some nice examples recently of apps that do a good job with Kivy itself (e.g. demonstrating more themeing than most and using android api functionality), like Kognitivo [1] and Barly [2]. I think these do a good job of showing what Kivy can do in practice. Used the right way it's also very performant for e.g. games (the low level graphics api is a cython layer over opengl), especially with the ability to add your own cython and use libraries like chipmunk. A good example for this is Boardz [3], which uses the Kivent game engine for Kivy [4].

[1] [https://play.google.com/store/apps/details?id=org.kognitivo....](https://play.google.com/store/apps/details?id=org.kognitivo.kognitivo)

[2] [https://play.google.com/store/apps/details?id=org.topbanana....](https://play.google.com/store/apps/details?id=org.topbanana.barly)

[3] [https://play.google.com/store/apps/details?id=org.chozabu.bo...](https://play.google.com/store/apps/details?id=org.chozabu.boardzfree)

[4] [http://kivent.org/](http://kivent.org/)

<comment><USER12> > \- Non-native widgets, Kivy draws its own widgets using OpenGL. They're > quite customisable, but of course you never get behaviour quite like the > native ones.

And this can make the application entirely unusable for some users. I'm thinking in particular about accessibility for blind users, who need to use a screen reader, though other disabilities are also impacted. Basically, to be accessible, an application's UI components need to implement the platforms' accessibility APIs. Most non-native widgets don't do this, because it's a lot of work that most developers just don't even think about. As far as I can tell from a quick scan of the source, that currently includes Kivy. So beware that if you use Kivy and its non-native widgets, you'll be locking some users, admittedly a small minority, out of your app. Probably OK for a game; not so much for an application that's going to be used in a job or education.

<comment><USER13> File a bug! They might not even realise.

<comment><USER7> As a Kivy dev, I've thought about it before on the desktop (it's come up before and a gsoc student did some preliminary investigation for the best way to do it), but I'll admit I didn't realise the implications on Android where actually this support might be harder due to the mismatch with the normal java widget mechanisms. I do think it's important and will try to take a look at it, but it's certainly true for now that Kivy does not have much support for standard accessibility tools, probably particularly on android and ios.

</comment></comment></comment></comment></comment><comment><USER14> Anyone have any examples of a desktop application created with Kivy?

<comment><USER15> There are a lot on their showcase web site.

<comment><USER14> link?

<comment><USER15> Here: [http://kivy.org/#gallery](http://kivy.org/#gallery)</comment></comment></comment></comment>


Weddar Report: iPhone App Is Twitter for Weather - <AUTHOR> http://www.wired.com/gadgetlab/2011/04/weddar-report-iphone-app-is-twitter-for-weather/

<comment><USER2> Great concept with a fantastic execution. You should try it if you haven't done so yet.

</comment><comment><USER3> Impatiently waiting for an Android version.</comment>


Go enjoy Python3 - <AUTHOR> http://blog.surgut.co.uk/2015/08/go-enjoy-python3.html

<comment><USER2> There are several ways to solve this in Go. The first that comes to mind, assuming you want to truncate to the first 12 runes, not bytes:

            func main() {
                v := []rune(os.Args[1])
                if len(v) > 12 {
                    v = v[:12]
                }
                fmt.Println(string(v))
            }

Or more in the spirit of the C example in the post:

            func main() {
                    res := make([]rune, 12)
                    copy(res, []rune(os.Args[1]))
                    fmt.Println(string(res))
            }

Note that res will stay on the stack, just like C.

I expect the author is trying to say something about Go that I'm not quite getting. Perhaps that it is not an expression-based language, so to make code readable you need to make use of multiple statements. That's by design, but I understand it may be unappealing if you want to program in an expression-heavy style.

<comment><USER3> "I expect the author is trying to say something about Go that I'm not quite getting."

I assume "Go sucks because, look, this one weird case is a bit ugly." (that is, as rhetoric, not dialectic; it is not literally claiming "one case bad" -> "Go is bad" in the logical sense.) A weird case that I've programmed many thousands of lines of Go code in but never once encountered. Taking a slice out of a string blind like that is actually a bit rare; usually in some way it turns out you actually have length information somewhere in the environment. It's hardly like "slice index out of bounds" is some sort of terrible error... it is, at least, arguable that Python is in the wrong here for being so willing to return a string generated by [0:12] that is not 12 bytes/characters in length, which seems like a reasonable assumption to make of such an operation.

Now, if we want to talk about little examples like this, let's talk about sending on something like a channel in Python, to say nothing of Python's implementation of the "go" keyword... oh, yes, I see, suddenly this is an unfair way to compare languages.

Yes, it is.

<comment><USER4> This posts shows two very common issues that programmer have with the GO language when they start using it (that includes me), especially since go is advertised as compiled with the feeling of a dynamic language :

A low-level feeling when manipulating arrays (or slice), and a poor support for generic functions ( that would be math.min in this example).

<comment><USER3> If it said that explicitly, I'd be fine with it.

But given the last paragraph, I don't think that's the most likely interpretation.

And it's still a terrible way to judge languages without a _lot_ more context. All langauges have gotchas that fit into 3-5 lines. Python's got a pretty decent set: [https://www.google.com/search?q=python%20gotchas](https://www.google.com/search?q=python%20gotchas) It's still a good language.

And let me be very clear: I'm not "defending" Go here... I quite like both Python and Go. I've got no trouble saying Python is incrementally easier than Go when it comes to dealing with strings (but both are beat by Perl). (Especially since the incremental advantage comes at a _stiff_ performance price. Sometimes that's fine, sometimes that's not.) I'm specifically saying as computer language polyglot, this _metric_ for measuring languages is terrible. It's a rationalization, not a rational argument.

<comment><USER4> I see your point, but after having coded a full (minor) project in Go, i can assure you that those two points alone (cumbersome array data structure and lack of generic code) made me rethink twice about using this language for the common "web service for CRUD to DB" use.

Then i tried to see how did go data access layer libraries look and it finished to convince me not to use it unless performance and memory usage were a crucial matter.

</comment></comment></comment></comment></comment><comment><USER5> > Simple enough, in essence given first argument, print it up to length 12. As > an added this also deals with unicode correctly

That's not true, Python 3 uses codepoint-based indexing but it will break if combining characters are involved. For instance:

        > python3 test.py देवनागरीदेवनागरी
        देवनागरीदेवन

because there is no precombined version of the multi-codepoint grapheme clusters so some of these 10 user-visible characters takes more than a single you end up with 8 user-visible characters rather than the expected 10.

edit: the original version used the input string "ǎěǐǒǔa̐e̐i̐o̐u̐ȃȇȋȏȗ" where clusters turn out to have precomposed versions after all. Replaced it by devanāgarī repeated once (in the devanāgarī script)

<comment><USER6> That's a shame, it works as you'd expect in perl6:

      sub MAIN($s) { say $s.substr(0,12) }

      $ perl6 test.p6 ǎěǐǒǔa̐e̐i̐o̐u̐ȃȇȋȏȗ
      ǎěǐǒǔa̐e̐i̐o̐u̐ȃȇ

<comment><USER5> Turns out there are precomposed versions of these clusters, so your system might just be using these.

Could you retry with the input "देवनागरीदेवनागरी"?

<comment><USER6> I'm not quite sure how to interpret the output as it doesn't render particularly kindly in my terminal:

      sub MAIN($s) {
      	say "{$s.chars}: $s";
      	my $b =  $s.substr(0,12);
      	say "{$b.chars}: $b";
      }

      $ perl6 hn-test2.p6 देवनागरीदेवनागरी
      16: देवनागरीदेवनागरी
      12: देवनागरीदेवन

<comment><USER5> So apparently perl6 is also "wrong" and operates on codepoints, your system composed my original string and each (base, diacritic) pair was pasted as a single precomposed character (I expect that if you try out the Python version on your system you'll also get the "right" answer).

The new string is composed of 10 user-visible characters (5 character repeated twice) but 16 codepoints (and this time I carefully checked that there was no precomposed version):

        DEVANAGARI LETTER DA
        DEVANAGARI VOWEL SIGN E
        DEVANAGARI LETTER VA
        DEVANAGARI LETTER NA
        DEVANAGARI VOWEL SIGN AA
        DEVANAGARI LETTER GA
        DEVANAGARI LETTER RA
        DEVANAGARI VOWEL SIGN II
        DEVANAGARI LETTER DA
        DEVANAGARI VOWEL SIGN E
        DEVANAGARI LETTER VA
        DEVANAGARI LETTER NA
        DEVANAGARI VOWEL SIGN AA
        DEVANAGARI LETTER GA
        DEVANAGARI LETTER RA
        DEVANAGARI VOWEL SIGN II

Operating on codepoints, both versions cut after the second DEVANAGARI LETTER NA (न) breaking that grapheme cluster (it should be ना) and not displaying the final two clusters ग and री.

<comment><USER7> > I expect that if you try out the Python version on your system you'll also > get the "right" answer.

I don't think so. In my tests standard python (2.7 and 3.5) ignores grapheme clusters.

<comment><USER5> Python ignores grapheme cluster, that point was about my original test case using grapheme clusters I later found out had precomposed equivalent, so a transfer chain performing NFC would leave the test case with no combining characters (or multi-codepoint grapheme clusters) left in it.

<comment><USER7> Gotchya.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Doesn't the C version have a serious bug? If the input string has 12 or more characters, the destination string will not be zero-terminated.

From the strncpy docs:

"No null-character is implicitly appended at the end of destination if source is longer than num. Thus, in this case, destination shall not be considered a null terminated C string (reading it as such would overflow)."

<comment><USER9> I'm usually sticking +1s to the storage for any strings for this purpose. So if I want to operate on MAXLEN number of characters, I'll allocation MAXLEN+1 for the character array.

And often times I'll be memset()'ing the destination to all NULLs when doing a string copy operation. I'm not real happy with string handling in C... as if that should be surprising to anyone.

Say, is there nice, small, suitable for embedded use string library anyone would care to recommend in C? I just want a nice string type that carries around its length and storage length, handles copies properly, and has the usual utilities. I suppose I could just write one...

<comment><USER10> You might look at the one from Redis:

[https://github.com/antirez/sds](https://github.com/antirez/sds)

<comment><USER9> That's interesting. Thanks for the link.

</comment></comment></comment></comment><comment><USER11> The author awards some arbitrary points to C even though his implementation of the solution is broken. His similarly poor Go implementation receives zero of these arbitrary points.

Why does this deserve the attention of everyone here? The author did not compare languages, he compared his aptitude with these languages, and considered broken implementations to somehow be comparable.

A more meaningful comparison would be to implement simple, efficient, _working_ solutions to these problems and comparing them. This, as it stands, does not lead to any useful discussion.

</comment><comment><USER12> I'm not sure what the takeaway is from this blog entry. Is it that Python 3 can do substrings easier than the other languages therefore we should use Python 3? That was what I thought it was, anyway.

Seems silly to pick a language based off this single, silly criteria otherwise why not JavaScript or probably other languages that can make the code even smaller?

console.log(mystring.substring(0, 12));

So it just seems arbitrary and weak in my opinion.

<comment><USER13> The entire scenario seems to have been constructed to highlight the runtime panic caused by out of bounds slices in Go. Either that or the well-known and well-discussed lack of generics.

</comment></comment><comment><USER14> There are at least three major flaws in the 7-line C program, even ignoring character set issues. (main returns int, argv[1] can be null, and strncpy doesn't always null-terminate the target). If you're going to compare languages, you should find someone who knows each of them well.

</comment><comment><USER15> The Unicode situation in most languages is dismal.

Honestly though, the lack of generics for that Math.min function makes me happy I'm not programming in Go.

<comment><USER16>
        if a > b {
            // use a
        } else {
            // use b
        }

<comment><USER17> Oh dear. You had one job, min!

</comment></comment></comment><comment><USER18> Article content aside, the slide out side menu that covers the scroll bar is incredibly annoying. Is that Blogger? Whatever it is needs to stop. Now.

</comment><comment><USER19> The C code there fails if the unicode string includes characters whose width is greater than one octet.

<comment><USER20> Which is noted right in the post:

> This treats things as byte-array instead of unicode, thus for unicode test > it will end up printing just 車賈滑豈.

<comment><USER21> Which is useless then, because the output can't safely be considered a string anymore. I don't really see the point of writing the C "equivalent" and giving it any point when it doesn't even do the right thing.

<comment><USER5> None of the snippets comes even remotely close to doing the right thing so it doesn't really matter.

</comment></comment></comment></comment><comment><USER22> Rust version:

        fn main()
        {
            if let Some(arg) = std::env::args().nth(1)
            {
                println!("{}", arg.chars().take(12).collect::<String>()); // chars() iteraters over codepoints
            }
        }

<comment><USER23> Idiomatic Rust would probably avoid allocations, which means something more like

        fn main() {
            if let Some(arg) = std::env::args().nth(1) {
                println!("{}", {
                    match arg.char_indices().nth(12) {
                        Some((idx, _)) => &arg[..idx],
                        None => &*arg
                    }
                });
            }
        }

With the `unicode-segmentation` crate[1], you can just swap `char_indices()` with `grapheme_indices(true)`.

[1] [https://crates.io/crates/unicode- segmentation](https://crates.io/crates/unicode-segmentation)

</comment></comment><comment><USER24> How is this on the front page of hacker news? What a shit post.

</comment><comment><USER25> A mandatory smart-ass Haskell response

        import System.Environment (getArgs)
        main = do
          [str] <- getArgs
          putStrLn $ take 12 str

<comment><USER26> Well, for smart-ass (and I know you meant it as a joke) is not very impressive. Don't do anything more than the others, and the syntax is not so great either.

<comment><USER23> On the contrary, his is the only one that crashes when more arguments than expected are passed. Hooray progress!

</comment></comment></comment><comment><USER27> Of course, the C version could be just

        printf("(%.12s)\n", argv[1]);

<comment><USER28> Assuming using 7 bit ASCII

<comment><USER14> No, it merely assumes one byte per character. For example, it would work correctly in Latin-1 or EBCDIC.

In any case, the problem statement (though it's a bit vague) requires building a truncated string, not just printing it.

<comment><USER28> It is enough to have mixed 8 byte code pages and then it is worthless.

</comment></comment></comment></comment><comment><USER29> why can't I downvote this!!! erhhhh

</comment><comment><USER30> Now try distributing your Python code as a single statically linked exe.

<comment><USER31> [http://nuitka.net/pages/overview.html](http://nuitka.net/pages/overview.html)

</comment></comment><comment><USER32> Completely off topic, so if you are looking for discussion about the article skip this.

The low contrast ratio and bright colors on this blog are a bit hard to read. I normally switch to readability mode in safari when I encounter this, but the sites layout prevents this from working.

<comment><USER33> The text is black on white... Am I missing something?</comment></comment>


Cloudflare Registrar - <AUTHOR> https://www.cloudflare.com/products/registrar/ <comment><USER2> My experience with Registrar has been 4/5 okay and 1/5 horrible so far.

I transferred five domains from Namecheap, and four of them went through within an hour. The fifth was in a pending status. I was charged a one year renewal for each domain as part of the transfer process.

The fifth domain hadn't transferred after a few days so I filed a support ticket. They told me it could take up to 15 days.

After roughly 30 days, I was billed _again_ for a one year renewal of that domain which is still on Namecheap (unlocked), and still pending transfer. Registrar has now charged me $90 (.io domain is $45/year) for a domain _which they do not control_, and this has obviously not been reflected in the domain expiration date.

I contacted support again and they issued me a $45 refund, but the domain is still not transferred... not sure what to do at this point. (ticket #1657921 if anyone from CF is reading this)

<comment><USER3> This is precisely my fear. Cloudflare is using price as a selling point. For people with just a few domains, price isn't important. I have 5 domains with hover.com. I'm happy to pay a couple of bucks extra per year to know that there's real support. I can call and get an answer in 10 seconds.

Granted, I've never needed to call support, but losing my domain would be a huge disaster with no website, no email, and cost me hours of time. I see no reason to risk anything to save $5 a year

<comment><USER4> Every time I've thought about moving away from Namecheap to something else I've remembered those once in a blue moon times I've actually needed to reach out to support for mission critical type of events. The support I've received has been absolutely stellar. Above and beyond what I would have expected to be their scope of service. I don't know any other providers I hold as highly in support, especially anything coming from a tech company.

My main gripe is that I wish they would include free SSL and they give their UI some love but that's minor as I only access it on certain occasions.

<comment><USER2> I dislike Namecheap for a few reasons. They don't let you log in with a _valid_ username and password if you are using a VPN. Their UI is pretty bad, too. If you have an adblocker, you don't see "Submit" buttons on a lot of forms (editing WHOIS information, etc.)... lots of small annoyances with their service.

<comment><USER5> Submit button problem sounds solvable if people keep bugging the support.

It's 1 day job, probably button image or form URL includes 'ad' or something.

</comment></comment></comment></comment></comment><comment><USER6> One drawback to using Cloudflare Registrar that wasn't obvious to me at first is that you have to use Cloudflare's nameservers. Not that I blame them for it, but it'd be nice if the marketing page made this detail more obvious.

I've chosen to pay an extra $0.50 or so per domain to Porkbun for the option of using other nameservers.

<comment><USER7> I've moved some domains to Cloudflare Registrar not knowing this limitation. I asked them about it and the support person said they are targeting Q1 2019 for this feature. Now that we're approaching that date I'm not sure they'll hit that.

I've also had a billing issue with Cloudflare Registrar. I transferred two domains and paid the renewal fee, and two months later was charged for the same domains again. They've since issued a refund after I raised a support ticket (still waiting on that to hit my card), but the fact that it happened at all is worrying to me.

Granted I was in early access so I expected some things not to be polished yet, but these are pretty critical areas to get right as a registrar. And since my billing issue happened just last week I doubt that issue has been fixed with the general release.

So I'm going to hold off on transferring more domains until it matures, or just stick with Gandi.

<comment><USER8> I apologize for the billing issue. I understand how frustrating that would be and it's well below our standards. We're working as a team to make that right and earn back your trust now.

<comment><USER7> Thanks Sam for the reply, I've been otherwise happy with Cloudflare services for several years. The support with this issue was very helpful.

</comment></comment></comment></comment><comment><USER9> I had a good experience moving a domain to Cloudflare, but one thing is still bugging me:

To allow a third party to modify the DNS (eg pfSense dynamic DNS client) you have to use an API key that has full access to modify everything in your Cloudflare account. You can't limit the type of operation and you can't scope it to a domain. That's nuts.

</comment><comment><USER10> Note that for some reason, Cloudflare charges substantially more for .io domains than other registrars. Cloudflare charges $45 whereas Dynadot charges $26.99 and Porkbun charges $28.97.

[https://community.cloudflare.com/t/io-domain-price-not- whole...](https://community.cloudflare.com/t/io-domain-price-not-wholesale- price/54709/13)

[https://tld-list.com/tld/io](https://tld-list.com/tld/io)

<comment><USER8> .io is heavily subsidized by most registrars for a couple reasons: the .io registry offers substantial volume discounts and .io domains are associated with a higher spend on add-on services. In most cases, they discount .io domains because they hope users spend more on other upsell products.

</comment></comment><comment><USER11> I've been in the beta for months, but it's a bit annoying...5 months in and you still can't register new domains. The domain management is also pretty confusing, because it's all jumbled together with the DNS interface. They need to have 2 interfaces, even if they are interconnected.

<comment><USER8> Thanks for the feedback. Working on new registrations now; focus at launch was to help users of Cloudflare's DNS services find a better alternative to domain registration.

</comment></comment><comment><USER12> Does Cloudflare Registrar support U2F authentication yet? I don't trust any service with mission-critical stuff that doesn't have U2F. Domains are way too valuable to keep them in registrars without U2F.

<comment><USER13> Just curious, what are the domain registrars currently support U2F?

Also, just to be sure U2F is an additional methods of 2FA, not the only method of 2-step, so to me having U2F is not necessarily making accessing your account securer.

<comment><USER12> > _Just curious, what are the domain registrars currently support U2F?_

Google, Amazon, Gandi (and some others I can't remember off the top of my head) support U2F.

> _having U2F is not necessarily making accessing your account securer._

I don't agree with that at all. There are numerous cases of various 2FA methods being taken advantage of. No one has yet managed to crack U2F.

<comment><USER14> I think devy means that you usually cannot add a U2F as the only second factor - you usually need to first add TOTP or phone number as backup.

So, an attacker can just target the weaker factor and ignore U2F.

I certainly had the same thought.

<comment><USER15> The prime thing U2F mitigates is phishing attacks. You literally cannot be phished with U2F, you try to auth against the wrong domain and you get a different secret - so they can't then pass that on the backend (i.e. the real site) and login as you.

Sure your TOTP might remain, but you're not using it, so it's not liable to be taken.

<comment><USER14> Construct a phishing site that gives some vague error message about being unable to connect to your device, and offer the TOTP fallback. How many people will fall for it?

"Literally cannot get phished" is woefully far away, because the phishing- resistant property of U2F has a giant hole in the side of it (fallback factors) and therefore still relies on human vigilance.

I do use U2F though, because it is pretty convenient.

</comment></comment></comment></comment></comment></comment><comment><USER16> Meta: "support for hundreds of TLDs"

* [https://www.cloudflare.com/tld-policies/](https://www.cloudflare.com/tld-policies/)

Crikey there's a lot of stuff out there. Seems that ICANN has approved just about any random word in the English language.

<comment><USER17> But they still haven't got .dev :(

<comment><USER18> .uk domains still not supported either

<comment><USER19> I can't see Nominet letting it happen.

<comment><USER20> Why in particular? Plenty of other registrars offer .uk or the public suffixes under it like .co.uk and .org.uk

The Nominet requirements do cause these to break mysteriously much more often than some generic TLD spun up yesterday by people convinced this is a gold rush (e.g. my registrar offered me a great renewal deal for a .co.uk I control, I pressed "Yes please" and then their system believed I had taken the deal but didn't renew the domain, after a few days they confirmed that the deal makes no sense for .co.uk and refunded the money, they had forgotten to blacklist Nominet when adding their deal feature), but it works well enough most of the time.

<comment><USER21> "Some registries do not allow domains to be registered with WHOIS Redaction or WHOIS Privacy. Many of these are country TLDs (ccTLDs) like .uk. Cloudflare does not yet support TLDs that prohibit WHOIS redaction, but we will in the near future."

\- [https://developers.cloudflare.com/registrar/domain- registrat...](https://developers.cloudflare.com/registrar/domain- registration/whois-redaction/)

<comment><USER19> Thanks for the link, although whois has become something of a non-issue with the advent of GDPR.

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> New GTLDs may cost considerably more at Cloudflare Registrar.

For example, the annual cost of a .space domain during transfer is $15.18 (it was $17 two months ago), while renewal for the same domain at Namecheap costs $9.06.

To be fair Namecheap lists it as a discounted offer, but that appears to be always the case for the .space TLD renewals.

<comment><USER8> If you can find it for $15.18 without having to buy other services, that's a deal and you should take it. Most discounts like that are offered as loss leaders in the hopes that you'll buy other add-ons.

<comment><USER22> For a customer it's irrelevant that the discount is a loss leader. The end result is that I can renew a .space domain for half the price at Namecheap, without having to buy other services.

<comment><USER23> ... which is why sam told you to take that deal as it makes sense to take it.

<comment><USER22> > If you can find it for $15.18 without having to buy other services, that's a > deal and you should take it.

I was told to take the $15.18 Cloudflare deal, not the $9.06 Namecheap deal.

</comment></comment></comment></comment></comment><comment><USER24> ive been using njalla for some time now with good results. Not too keen on being told what nameservers i need to use, and they do an excellent job with privacy (PGP encrypted messages and bitcoin payment for example)

[https://njal.la](https://njal.la)

<comment><USER25> But njalla isn't a registrar, they're a reseller.

</comment></comment><comment><USER26> The page is really confusing, can we register our domain with them or only transfer an existing domain?

<comment><USER27> At the moment you can only transfer existing domains which are already using Cloudflare's DNS

<comment><USER28> But you will be able to buy domains directly from us.

</comment></comment></comment><comment><USER29> Off topic, but something I've wondered for a while. Maybe someone here knows :)

Years ago (13, to be exact) when I was young and didn't know anything and couldn't afford to buy a parked .com that made more sense, I registered a .ws domain at Godaddy of all places. It has subsequently become the e-mail address I use for everything.

Unfortunately, .ws doesn't really allow transfers. Now that there are all these non-evil registrars popping up, I'd like to switch to one of them, but I can't. Does anyone have any ideas about what if anything I could do? I suppose I could by another domain and forward the e-mail, but the whole point of having my own domain was that I wouldn't have to switch again :(

<comment><USER30> [http://samoanic.ws/faq/index.dhtml](http://samoanic.ws/faq/index.dhtml)

> Can I transfer my domain to another registrar?

> Yes, .WS domain transfers may take place in accordance with ICANN's "Policy > on Transfer of Registrations between Registrars". Please contact the > registrar you would like to transfer to for instructions on how to proceed.

<comment><USER29> Unfortunately nobody actually supports it. Dreamhost doesn't, Namecheap doesn't, etc.

If you try, they all give you the same "The WS registry doesn't allow transfer of domains." error, because historically they have not.

<comment><USER31> Uniregistry does ... [https://uniregistry.com/pricing](https://uniregistry.com/pricing)

I personally would never trust anyone else.

</comment></comment></comment></comment><comment><USER32> Quite a large list of TLDs, would be more helpful if somehow sorted by popularity too and showing which ones are not available.

[https://www.cloudflare.com/tld-policies/](https://www.cloudflare.com/tld- policies/)

</comment><comment><USER33> This has made news a few times but I will not use them for my domains.

It's been a few months since launch, but I still can't use my own nameservers for the domains.

While the registry-pricing can often workout cheaper, some registrars negotiate nicer deals with the registry. I have a .me domain for 8 years that I never paid the registry standard price, it has always been sent discounted rate.

</comment><comment><USER34> While I'd love to switch, I switched to google's a couple years ago, and the killer feature for me, is free mail forwarding with the domain (no mail server setup). I've got a bunch of domains I don't really use anymore, but want to be able to receive the mail for a couple addresses.

May consider moving most of my domains over all the same though.

</comment><comment><USER35> Any timeline they actually allow Registration of New Domain. Or do they expect us to register somewhere else and do the transfer?

</comment><comment><USER36> Can anyone tell if they offer privacy? I'll move all of my parked domains here in a heartbeat if that's included.

(I'd move my other domains here if I could use non-Cloudflare nameservers, even temporarily. I don't want downtime or other interruption.)

<comment><USER8> We do - all whois information is redacted by default for every domain on Cloudflare Registrar.

<comment><USER36> Out of curiosity, where is that listed on your site? I promise I looked and I'd like to know what I overlooked. Thanks!

</comment></comment></comment><comment><USER37> They don't support even .us, which is a pity. When I start a new project, I register with another registrar and wait 60 days to move it to Cloudflare - what a nonsense! NameBright has similar pricing - for .com at least.

</comment><comment><USER38> Given that they're selling this at cost, what does cloudflare get out of this?

<comment><USER28> We hope you'll buy other services from us.

</comment></comment><comment><USER39> If they don't charge for themselves, what's the motivation to do this?

<comment><USER40> They get you to sign up, give your credit card, use their nameservers, and then if you get any serious traffic, they will conveniently be there to offer extra features with a paid plan. In my opinion, this is exceptional marketing.

</comment></comment><comment><USER41> The major issue with this is that the transferred domain must use CloudFlare NS and be on the platform. Really not worth the lock-in for like $1/year you save off other places.

</comment><comment><USER42> previously (announcement): [https://news.ycombinator.com/item?id=18083641](https://news.ycombinator.com/item?id=18083641)

</comment><comment><USER43> Been looking to transfer my domains away from Godaddy but can't find a registrar I like that accepts .ws, which is my main domain. Cloudflare doesn't either :\

<comment><USER44> Here are all the registrars that support ws: [https://www.website.ws/registrars.dhtml](https://www.website.ws/registrars.dhtml)

<comment><USER43> ah, thank you! didn't occur to me to go to .ws itself.

</comment></comment></comment><comment><USER45> I have domains on namecheap and would like to transfer to CF. Does the transfer process involve disabling whois, temporarily exposing my personal details to the internet?

<comment><USER8> Some registrars will block transfers if certain types of privacy protections are enabled (or they'll require you expose your data to the public in order to give you your auth code).

Namecheap can block transfers with WHOIS Guard enabled in some cases; as soon as it is transferred to Cloudflare, though, the info will be redacted.

</comment></comment><comment><USER46> I transferred one domain to Cloudflare, and I didn't have any issues. I admit that it's just one data point, but I am happy.

</comment><comment><USER47> How long until you guys allow for Master/Sub accounts?

Would be great to allow users to purchase domains for use on a platform...

</comment><comment><USER48> Can you hide your contact details? The service is super cheap but that spotlight has a hidden cost.

<comment><USER49> Contact information is redacted by default. I've moved a bunch of domains over, they're all redacted in the whois without me taking any action. It lists the registrar as Cloudflare. It shows the domain updated date, the creation date and registry expiration date. There are no contact details listed at all. And it shows the DNS servers (in this case the Cloudflare LOU and MAY name servers).

In fact the sole problem I've had, is with another registrar. I've had my domains with GoDaddy for 15 or 17 years. I've never had a problem with them, so it was fine, but they've begun seriously pushing their prices up (now about double what Cloudflare is charging). All the transfers from GoDaddy to Cloudflare went super smooth, took minutes, except for one high-value domain I've owned since the 1990s. GoDaddy is quasi attempting to hold that hostage, they put it through some kind of manual transfer intervention that will take a week to complete (hopefully).

<comment><USER48> Awesome, thank you. I have the same situation with godaddy, recently purchased 10 years to avoid yearly gouging.

</comment></comment></comment><comment><USER50> Be cool if I can use their API to register domains for myself or on behalf of my clients.

</comment><comment> sahin-boydas dup: [https://news.ycombinator.com/item?id=18093215](https://news.ycombinator.com/item?id=18093215) [https://news.ycombinator.com/item?id=19319935](https://news.ycombinator.com/item?id=19319935)

<comment> sahin-boydas many more about Cloudflare Registrar

[https://hn.algolia.com/?query=cloudflare%20registar&sort=byP...](https://hn.algolia.com/?query=cloudflare%20registar&sort=byPopularity&prefix&page=0&dateRange=all&type=story)

</comment></comment><comment><USER51> who charges the wholesale registry fee?

<comment><USER15> The owners/operators of the TLD, e.g. for .com thats Verisign, for .uk thats Nominet, for .dev that's Google etc

</comment></comment><comment><USER52> Before you register your domain with Cloudflare, please consider who their other customers are. Cloudflare today provides services for many white supremacist websites; they kicked off the Daily Stormer in 2017 after widespread criticism, but still receive money from many others.

From what I can see, their senior leadership genuinely believes that, morally, they have an obligation to provide services for horrible people in exchange for money[1]. If you agree, use them! But if you think it's bad to defend these sites in an era of white nationalist terrorism, look elsewhere.

[1] [https://www.wired.com/story/free-speech-issue- cloudflare/](https://www.wired.com/story/free-speech-issue-cloudflare/)

<comment><USER34> You don't change peoples opinions by shutting them out, all that does is drive them deeper into their own echo chambers. It's usually a bad idea in practice.

Freedom of speech means freedom of speech you don't agree with. There is no need to protect speech most people disagree with. FYI, the ACLU has also protected the same people you refer to. The problem with taking away civil liberties, is that eventually it will come down to losing your own.

For example, if you want the government to shut down speech it doesn't like, what happens when opposing views are in power, and Donald Trump decides he doesn't like what _YOU_ are saying. Do you really want to go there?

<comment><USER52> I support the First Amendment wholeheartedly, and believe it's important that the government refrain from shutting down speech it doesn't like.

You may note that Cloudflare is not a government.

<comment><USER34> Considering how much traffic flows through it, you really think they don't have the more power than most governments?

And while, the First Amendment doesn't provide protection from private parties, it is still possible to agree with Free Speech rights as a private company, even if you disagree with the message. The problem is when you start shutting down conversations, you become part of the problem.

The likes of Twitter and Facebook, as an example are _FAR_ more powerful than any government or localized platform traditionally protected, and may be considered Private Spaces for Public Use, which have been defined before (ref: Occupy Movement).

Just because you are a private entity does not mean you are free to do anything you want. The government has _LOTS_ of limitations on what businesses can or can't do. Unless you are suggesting that businesses should never have to comply with disability laws, or laws regarding other protected classes too?</comment></comment></comment></comment>


Ask HN: How to keep track of all my email subscriptions? - <AUTHOR> Hi HN,
I'm subscribed to a dozen of blogs, and they send me on average one email per week each. I love reading this content, but it's starting to clutter my inbox.
Do you know any app/website that let you manage all of these subscriptions? Being able to see these emails without actually getting into my inbox would be awesome.
Thanks! <comment><USER2> If it's blogs, then they will have RSS or Atom (XML) feeds and you can subscribe via [https://feedly.com/](https://feedly.com/) or [http://www.feedreader.com/](http://www.feedreader.com/).</comment>