164 comments

[ 2.8 ms ] story [ 175 ms ] thread
God forbid if Google lifted their hands some day, can you even imagine how many million people will be impacted due to how many services ranging from emails to map apps to cloud services to web services, etc? Is it wise to give one entity power over so many things or its better to encourage a decentralized structure where multiple organizations control only bits of the pie?
At least with takeout I know I have regular backups.

That's more than most places offer.

Have you looked through the takeout outputs though? They are completely worthless to most users. It's funny to me that a bunch of Google devs built the functionality and thought "ya this will do".
I doubt the devs have much influence over the scope of the data output. The goal there is minimum for legal, compliance, or pr reasons.
What's wrong with the data?

I mainly care about Google Docs and Sheets, they're exported as Word and Excel (and there are other options if you don't like this formats), and the random sample of docs I tried in the output worked fine in Word and Excel.

How are the takeout outputs useless? Mail for example comes as a nice standard mbox
Takeout doesn't work for users with substantial data.
What does it do?

Does it not provide the data?

From when I last tried (and retried several times), it fails to export everything so you only get a partial snapshot with random pieces missing.
Takeout is useless without Google. Also: gsuite doesn't really have a backup feature. You're locked in for all that it's worth.
Why is it useless?
Try restoring it. A backup is only good if you can make it work again, and an export function is only good if there is something else that you can import it back into.
I guess I'm missing how that relates to the comparison I made.

Google at least lets me back things up.

Most services do not allow it at all.

So there's no restoring anywhere else at all, no chance.

Having the data I could at least have a chance that some service might offer a rebuilt import option to pick up those google users ... or I could build it myself / at least have the information.

To me that's still leaps and bounds better than any other options that I know of.

The GDPR obliges all companies to provide an option for users to receive all data held on them; takeout and FB'd equivalent were implemented in response to that.

For all other companies, at least if you are in the EU, you should he able to request the data by eg email and they are obliged to send it. You just don't know what format you'll get.

I believe takeout predates the GDPR ... by a wide margin.

As for all other companies they might be obliged to send it, but I don't see many ways to do so.

That still make's google's method way better IMO.

Yeah, a lot of exported data is basically unidirectional.

Google Voice exports your texts into a clumsy pile of HTML files. That's why I wrote a parser to convert all of your Google Voice messages into structured data.

https://github.com/unqueued/googlevoiceparse

Absolutely agree. Unfortunately I don’t think nations like the US will ever have the balls to break up their wonder children.
Nations are ultimately made up of people and they are subject to peoples' pressure. Its the people who we must convince and wake them from their deep slumber.
You mean like the US did with AT&T? I'm not sure if they 'have the balls' currently, but they have in the past and it's not inconceivable they would do so again. Microsoft came close to it as well.
I do point out that US vs AT&T did first major anti-trust settlement in 1913, and the breakup ultimately happened in 1984, or about 70 years later. So maybe we'll see Google breakup too in 2084 or around that time..
AT&T reformed as regional monopolies in far less time than it took the government to break up the national monopoly.
Sure, it is a genuine concern. But I find the context for the comment here bit funny considering how much the world runs on top of gdocs etc, the risk of losing the source of personal blog is drop in a ocean.

And while there of course are no guarantees, I at least would expect fair warning before stuff like docs is killed.

Well, I don't need to trust Google's employees, I trust its shareholders wanting to make money, which will never stop.

Since Google's popular products all contribute to making money in the end, they're not going to stop. Shareholders just wouldn't let it happen. There's a chain of accountability here that goes employees > C suite > board > shareholders.

So I don't quite see what situation you're worried about here.

if by some magical event Alphabet/Google is able to shut down their free versions of their Office apps and rely solely on G Suite/YouTube/Waymo/etc without losing money, I don't doubt they would do it. If that event will ever happen is still a mystery and is probably unlikely to happen within my/our lifetimes.
Google's shareholders don't hold substantial voting power. Accountability practically ends at CEO.
That's just so factually untrue it's hard to know what to tell you.

Do you understand how corporate boards work? How large shareholders get their own board seats? How boards hire and fire members of the management team?

The idea of a toothless board is a complete fiction. I don't know where you got the idea, but it couldn't be more wrong.

(Perhaps you're confusing it with boards where a single shareholder has more than 50% of shares, thus making the board largely irrelevant because the shareholder controls it. But even in that case, the CEO effectively reports to that shareholder, and there have been many, many, many cases of underperforming CEO's being fired. It happens all the time.)

Point here is that in Alphabet the voting power is for the largest part within the founders. Other shareholders can't do much against them.
I don't think the cost of losing things is as high as you imagine. You can use X until it fails and then you can use Y.

I also don't think your doomsday scenario makes much sense either. What do you mean "lifted their hands" and why would it happen out of the blue with zero warning? Though I'll repeat: so what?

I don't think a decentralized system is much better in this regard. It just means things rot at a more staggered pace. Service A shuts down on year 0, service B shuts down on year 10, etc. It's just a different trade-off, not the panacea we like to pretend it is.

After building a number of [1] projects that are powered by Google Docs, I recently realised that it also means that countries (like China) where Google is blocked, won't be able to access your content.

https://upstart.me (powered by Google Docs)

FAQ not expanding.

Console errors: Blocked loading mixed active content “http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.mi... upstart.me Request to access cookie or storage on “<URL>” was blocked because it came from a tracker and content blocking is enabled. 6 ReferenceError: $ is not defined script.js:1:1 Blocked loading mixed active content “http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.mi... upstart.me Loading failed for the <script> with source “http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.mi.... upstart.me:179:1 ReferenceError: $ is not defined

Have you visited the Cloudflare main website by chance? cdnjs doesn't serve cookies unless you've visited cloudflare.com yourself. Either way the cdnjs jquery isn't a tracker.
mixed active content was why the browser blocked it. the cdnjs link is http, while the site is https.
This isn't directly related to the post but the root of this website is hilarious: https://benwiser.com/
Came here to say the same thing. It's weird, I loved the effect. I showed it to my partner and she found it terrifying though!
On mobile I just see a broken static image of the person's head.
I love it! I think the rendering could be improved by projecting the image to compensate for screen tilt, in addition to rotating the head.
seeing secrets.txt in the repo gave me a fright for a second and it's not even my project
It’s a bit strange hitting the google redirect notice when linking from the site.

You also might want to put your .idea directory and secrets in a .gitignore

If I were to fork his code I'd fix that the first thing, I'd hate to annoy my users like that.

Reminds me of this jwz post (you have to copy and paste manually since he doesn't like HN as a referrer: https://www.jwz.org/blog/2008/02/looking-forward-into-the-pa... ).

(comment deleted)
This feels like such a weirdly specific block... You have a blog that you want people to read, but not people who come from a specific source
This is why browsers are working to remove user-agent and referer. Almost all real world use is tracking and nonsensical blocks.
I was familiar with removing user-agent work, but what's this about removing referrer? Can you give a link?
If one place is a source of much more annoyance than delight, then why not block people coming from there?
Right-click -> Open in Private Tab/Window also strips the referrer, FYI.
I wish IDEs (with collaboration from git) made it clear what should and shouldn’t be checked in to source control (or rather they had a way to do both) - where I want to store per-person level settings as well as shareable settings.

In this particular case though - IntelliJ itself would have prompted him to add these files - so those are in fact shareable files

Note: I do know IntellJ purposely excludes workspace.xml , but these things should be handled much more explicitly and IDE should provide better conventions and guidance.

The .ignore plugin and the GitHub repo it is built around I think do the job well enough by having a list of suggestions. I may actually have a private repo and have all the settings on both computers that I use.
Hah fortunately those secrets were never actually in use. I just did the unspeakable and quickly rebased master to update that though so thanks for that!

I wasn't planning on sharing the code at first so I probably didn't give it as critical an eye as I should have. This was also a learning project for me to try out Kotlin so I'm sure there are a million things others would do far better.

It is soooooo easy for something that was just an experiment to get published somewhere, that I have learned (the hard way, multiple times) to never commit any secrets to a git repo. Well, intentionally that is... but if I do it by mistake, I treat them as compromised and change them.

Instead I just create a .env file and put them there. It's a bit more boilerplate but it is worth it when I don't need to decide between keeping secrets and having code history before publishing. And env vars are supported everywhere afaik.

I recently used Google Sheets as a CMS for a couple of projects.

In my case I had a server-side script which read the sheets, converted the data to JSON and saved it on a file which was then fetched by the JS client. The conversion only had to run when there were updates (e.g once a day).

It was really convenient in my particular case because all users where familiar with Google Sheets, already had users and passwords, and I had good granular control over permissions.

How does it work when you have a lot of text and you need to put that in one cell? Doesn't that get a bit too unruly?
I dont think we need to care about google sheet's looks while using it as a DB. This approach is pretty good and fast
Ah, fair enough. I totally forgot that reason, haha.
What about just using Google Sites? They have updated UI and improved functionality quite a bit. You can even link your own domain.
Google put an annoying link on there called "Report this site". Maybe there's a way to take that off now but that really sucked. What happens if some idiots report your site for no reason?
The URL to your GitLab project goes via a Google redirect. I'm guessing this in an unintentional side-effect of using Google Docs as CMS?
This is a nice idea, especially for a case where a website is collaboratively edited. I don't love Google Docs for solo projects, and I don't enjoy using it, but its collaborative editing features are so good and reliable that I can't escape it. Being able to suggest and accept changes with commenting among a group of people would be really nice for a website for a collective, say.

That said, a bit of small, hopefully constructive feedback. The impact of this would be a bit bigger if there were more blog posts, so that by the time you reveal you're using google docs it feels more like a practical application and less like a very quick demo. Also, while I understand that there's a sort of "coder who doesn't do design" aesthetic, it might be good to at least change the colors a bit so that there's a bit more magic of transformation. This looks a bit too much like, well, a Google doc, and you want to establish that something cool is going on that couldn't be done with just an index of publicly visible google docs.

(comment deleted)
(comment deleted)
It's a really cool idea Google codelabs has been using for a few years to provide a unified way to write development tutorials[1].

1. https://github.com/googlecodelabs/tools/

Not to be confused with Google Colab! Which provides shared Jupyter Notebook, which also can be great for writing markdown cells, with graphs and code interspersed.
We’ve been using a shared Google Docs folder to manage our app’s release notes. We parse the folder in reverse chronological order, paginate 5 at a time and use their doc to HTML converter API. We then cache in Redis for performance. Works great and keeps the development team away from having to update it. Product/support can edit to their content!
That's actually a really cool idea. We currently use a rendered Markdown doc but as a team who can forget and then have to do another commit, this would remove the friction required.
You mean your app's release notes go beyond just "- Bug fixes and misc. enhancements"? Good on you!

(Sorry for the seemingly drive-by, this really annoys me in Play Store update release notes!)

Oh yes. We used to be lazy developers and do the bare minimum. We sell a SaaS to the SMB field and the feedback we got was that they wanted to know _exactly_ what we were changing in the app. So now we produce full sentence (or paragraph) explanations for every JIRA card that gets into production for our users, including links to updated documentation, training videos, screenshots, etc.
Would be interesting with more details on how this works. Like how the URL works and how the pages are styled. Is there any services needed beside google docs, etc.
My first encounter with a docs -> website was the now-defunct joelewis' hexopress.com. The code; however, is opensource [0].

There's a dated, unmaintained Google Docs to Markdown converter [1] which can be used as a source for a static site generator like Hugo [2]. This is particular interesting since folks can style content as they normally would from within Google Docs and have it show up with the same styling on a webpage, rather than write HTML themselves.

[0] https://github.com/joelewis/hexopress

[1] https://github.com/mangini/gdocs2md

[2] https://gohugo.io/content-management/formats/

Hey all, keep in mind that this is an experiment and the OP is therefore looking for input from users. Don't look at it from a finished product point of view but as a starting point and give your ideas. I think this is a great solution a quick in office CMS for in house projects.
It would be cool if it was 100% live... Ie. with every keystroke the website is updated. Does the Google Docs API have some kind of event based notification of new keystrokes you could hook into?
As a reader, i don't want to be anywhere near somebody's half-finished first draft.

different personalities, I suppose.

>wordpress (I really don’t like wordpress).

I really don't like your blog

This website: https://www.fgbg.art/, is powered by this spreadsheet: https://docs.google.com/spreadsheets/d/1W8RE885PVF2z3L9KU9LS...

The spreadsheet not being normalized is a bit annoying, but I could fix that if I really wanted to. All in all, I actually find using Google as a data source like this works pretty well.

What add-on are you using to do that? I've been playing around using Lovely Table and Awesome Table for this purpose but not really sure which one I ultimately want.
Awesome Table product manager here, let me know if I can help.
I just spent 20 minutes browsing your site, revisiting these epic scenes. Thanks for sharing!
I run my wishlist from a Google Sheets document. It's a bit annoying that you can't have gaps in rows in the spreadsheet, since fetching as JSON will only return up until the first gap.
Cool idea, but I worry about over reliance on Google or other big tech players, especially after their recent steps to ramp up censorship. Another example is that Medium blocked many informative COVID-19 posts recently despite them being thoughtful and necessary discussions, especially given the repeated failings of the WHO. What’s a great blog platform that features a lack of censorship or protection against censorship as a feature?
Blot.im does this but with dropbox and its amazing. Since you use word docs instead of g docs the formatting transfers over perfectly. Super easy setup and $20/yr. I’ve been using it for 2 or 3 years and it’s great.

Npzero.com is my blog if you want to see an example. There are much prettier themes you can choose from as well. I have a chrome book so sometimes I write in g docs, export to word, and upload to Dropbox’s webapp and make final adjustments in their online editor. No affiliation, just a great product.

I use Blot as well and have been very pleased with it.
I’ve been thinking about going the other way a bit recently: having bots consume input from and add their output to a Google Doc.

There are so many processes in most businesses which involve many humans collaborating on templatised documents. Google Docs/Sheets fits into these workflows very well, but there’s often scope for some partial automation in there too - pulling information from databases and outside sources and keeping it in sync, etc. Developing custom web apps for each case is too much effort for too little reward, takes users out of a familiar (and well-liked) interface which updates in real-time, makes you reimplement permission models, etc.

Not something I’ve explored properly yet so I don’t know if the APIs are rich enough to make this easy, but I would really like to give it a look.

I used that approach for a reporting system and it worked pretty well. It was easy to hit the sheets api rate limit but it was just a matter of waiting a bit between requests.

The node script was triggered hourly with Heroku scheduler.

Way back I considered using Microsoft Word as my content editor for my blog, and wrote a PHP script that converted .docx files to static HTML. To publish all I had to do was upload a new .docx file to a given directory on my shared host and wait for the script to run.

It converted the Word "Heading 1" etc styles to some CSS class, and had support for extracting inline images etc. I relied on convention for certain things like post title, and it didn't support too fancy things in the Word document.

At that time .docx was rather new, so I wasn't sure if it would stick around. Also I wasn't sure this was the best idea ever, so I ended up with something else. But it was a fun adventure.

is there any benefit of that over the built-in html export function (which also works terribly)?
Well the key point was to use Word for basic content editing and layout, but have control over the styling on the website part of things (ie via my own style sheet). As I recall the generated HTML from Word was quite a mess, and it would be non-trivial to change the styling of it.

It also allowed the pages to be easily integrated into my blog, with first paragraph being visible on the main page etc.

Mostly though it was just a "can it be done" experiment :)

(comment deleted)
(comment deleted)
Shameless plug incoming... I made the equivalent but for APIs using Google Sheets :) https://sheet2api.com/
Want something like this for a long time.

The 50 row limit of the free tier doesn't fit my hobby project unfortunately, but it's glad to see someone developed such thing!

Yeah, this is a great service but the pricing doesn't make sense (even after the free tier). 10$ a month (!!!) and it still wouldn't fit my use case with only 1500 rows. The convenience is nice but considering Google/Microsoft is paying for most of the hosting, cell computation and so on, not sure why a wrapper around an API is so expensive.
Time is money and this saves a tonne of it. You're free to code everything yourself and save that tiny amount of money of course if you like. Different people have different priorities.
You can try this site: https://sheety.co

(it's not mine just found it on PH long time ago and the name stuck in my head)

You can get a Google Sheet in JSON format just by adding alt=json to the URL. What do you do differently?
Unfortunately, you cannot. But don't worry we have sheet2api now for this :)
The NYT uses docs to author interactive articles that don't fit nicely in the CMS.

I've missed that workflow a lot (comments and edits are amazing!); I just open sourced a tiny library that saves a doc as a text file.

https://github.com/1wheel/doc2txt

  npx doc2txt 1StMiAtcY6bY6yEIQp5pVSGdIHSnZG-kFspdmsSzAJdE --outpath gettysburg.txt
In addition to using Google Docs for articles that don’t fit nicely in the CMS, we also have our internal newsroom wiki powered by Google Docs, too. We’ve open sourced the code for that here:

https://github.com/nytimes/library/

I'm finishing up with a simplistic template for Zim wiki. That will enable me to have a website with nice Wysywig interface divorced from web bloat and limitiations, but also some of its convenience.

https://zim-wiki.org/