Hacker Newsnew | past | comments | ask | show | jobs | submit | asamarin's commentslogin

Not sure about saving but, more importantly for me, it can read sqlite DBs, which has been a godsend whenever I need to take a quick glance at some random DB just to see what kind of tables it holds and what does the data look like. I know my SELECTs but I can't, for the life of me, remember what are the commands to check schemas and DB metadata on sqlite ("Was it .describe? Maybe .schema? Or perhaps \t? Gah, let's check the help once again..."), so knowing that visidata gets me there much faster feels good.

> Also looks powerful in it's own right

If you aren't convinced of that yet, I'd simply suggest to take a look at this lightning demo (~5 mins): https://www.youtube.com/watch?v=N1CBDTgGtOU


> and they're not screenshots

That over there blew my mind, and I had to go back to the page to double-check that. And indeed, it's all clever CSS trickery. Digging further into the source, I found that this was generated using the ansi2html [1] library which I had never heard about before. Thanks for the TIL!

[1] https://github.com/pycontribs/ansi2html


Article written in 2016, mind you


The latest addition to my renaming-toolbelt has been `perl-rename'. This thing is just wonderful: I can unleash all the power of perl-based regexes to rename things in bulk.

Case in point: I had a directory containing thousands of .jpg images imported from a foreign filesystem, and all of those files had tildes in them, something like:

  $ ls -1
  EL+�CTRICO_0001.jpg
  EL+�CTRICO_0002.jpg
  EL+�CTRICO_0003.jpg
  ...
You get the idea; note those ugly unrepresentable characters over there. On the original filesystem they read as "ELÉCTRICO", but that tilde was saved using who knows what encoding, and I simply wanted to get rid of them and have nice ascii "ELECTRICO_xxxx.jpg" files. After finding out that the strange unrepresentable character was the byte 0xEB (so, in order to form an "É" you needed those two characters together: a literal '+' and 0xEB), I could do the bulk renaming with just:

  $ perl-rename 's/\+\xeb/E/' *.jpg
Felt so good!


So what happens at the very first boot (e.g. after system installation, or cloud instance just being spawned)? Is that the only circumstance where it would be OK to block? Does OpenBSD trust RdRand for such occasions?


You can set /etc/random.seed (or /var/db/host.random for spawned instances) prior to first boot. That's what cloud providers do IIRC. It also mixes in hardware random (if available).


> Does OpenBSD trust RdRand for such occasions?

It is used as one source among many to seed the PRNG, so I think the answer is no.


A new cloud instance seems like a small problem. The host could just generate an entropy file for the first boot.


Yes - the hard case is a little flash-based low power ARM router, cloned by the million.


From 2012, but still at least somewhat relevant (https://factorable.net/weakkeys12.extended.pdf).

> RSA and DSA can fail catastrophically when used with malfunctioning random number generators ... network survey of TLS and SSH servers and present evidence that vulnerable keys are surprisingly widespread ... we are able to obtain RSA private keys for 0.50% of TLS hosts and 0.03% of SSH hosts, because their public keys shared nontrivial common factors due to entropy problems, and DSA private keys for 1.03% of SSH hosts, because of insufficient signature randomness ... the vast majority appear to be headless or embedded devices ...


You pray for rain


Yes; C++20 seems likely. See https://isocpp.org/std/status


You can see this in action on musl source code, which is arguably a much more readily understandable implementation of libc:

- Function that actually parses /etc/hosts is name_from_hosts(), implemented here: http://git.musl-libc.org/cgit/musl/tree/src/network/lookup_n...

- Which is called by __lookup_name() on the same file: http://git.musl-libc.org/cgit/musl/tree/src/network/lookup_n...

- Which is, in turn, called directly from getaddrinfo() [http://git.musl-libc.org/cgit/musl/tree/src/network/getaddri...], the actual function exposed to you as libc user.


It's currently sitting at #1 feature request by vote count on GAE issue tracker: https://issuetracker.google.com/savedsearches/559750


Bear in mind this article was written back in March 2017; quite a few things have changed/improved in GAE-land since. To name a few, off the top of my head:

- Java 8 is already generally available on GAE standard and, on top of that, previous limitations wr/t class whitelisting, threading capabilities and others have been lifted

- appcfg is pretty much outdated these days; all GAE management operations have been progressively integrated into gcloud app subcommand, which also fully supports newer GAE features like Flex, firewall rules, etc.

- GAE standard instances are indeed limited in computing power, but it should be enough for most web-based applications. Again, GAE Flex fills in the gap here in case more muscle is needed, since it leverages GCE-class instances

- Besides the already mentioned background work options (background threads, task queues, cron jobs), there's also Pub/Sub which can be used to inter-communicate GAE services or even other GCP services like GCE or GKE


Java 8 became available on GAE about 3 years after it was released. If Google continues that trend, Java 9 won't be available until 2020.

Slow adoption of new Java versions is a pretty big downside. Even if you are satisfied using Java 8 on GAE today, you may want to use Java 9 in the near future, and you won't be able to. By choosing GAE you are committing yourself to being stuck with Java 8 for a long time.


The entire sandboxing model was swapped out between Java 7 and Java 8 on GAE. That's why it took so long. No such major change is needed for Java 9, which won't lag nearly so far behind.

Also, not having access to Java 8 was painful. Not being able to use lambdas or streams for that long really sucked. There's no similar pain from not having access to Java 9 yet; it's not nearly as big of a change in the language.


The thing is Java 9 will be end of live and receive no further updates after March 2018 (yes, that's three months away).

> it's not nearly as big of a change in the language

True, but there were quite dramatic changes to the JDK.


In the very same post where Google announced Java 8 being generally available on GAE standard [1], they also stated Java 9 support was already in the works. Of course, actual timelines are not publicly known yet, but I wouldn't bet my money they'll take another 3 years to get this ready.

[1] https://cloudplatform.googleblog.com/2017/09/Java-8-on-App-E...


If you sign an NDA with Google, you'll get more up to date info about future features/roadmap etc. I think you'll be happy to know those plans.

Disclaimer I work on GAE.


If I signed the NDA, would I also be happy to know the roadmap for Python 3 on GAE-Std?


That's a good question but I'm an engineer and not authorized to talk about any future plans :-)

We do monitor the public issue tracker (https://issuetracker.google.com/savedsearches/559750) and will prioritize appropriately according to vote number.


OMG! Python 3 support was brought up 10 years ago (it is 2018 now depending on your timezone) in 2008 and comments were closed in 2012 for unknown reasons...

Tack this on as one of the reasons people don't trust google cloud...


Not really unknown reasons IMO - the comments were clearly unuseful that just served to spam the people who starred the issue.

No more information from users is needed to implement it, so the only useful comments can come from Google employees who can still comment.

This is standard procedure on Google bugtrackers.


If you work on GAE can you give a timeline for: https://issuetracker.google.com/issues/65104189

for me that is a big blocker.


I've bought this to the attention of some of our engineers, and I hope to get you an update soon.


thank you really much


You have to sign an NDA just to get the roadmap

Is it that volatile that they don't want to go public with their intentions? That's not really a good sign, IMO.


I use Clojure* on the GAE Java SDK instead and don't think about the version of Java that's running underneath. It Just Works. https://github.com/nickbauman/cljgae-template

*(Just one of many reasons not to use Java on the JVM in general)


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: