Install Theme

My programming habits must be very different from some people’s, if the popularity of Github Copilot is anything to go on.

Maybe I need to give Copilot more of a chance? But the one time I tried to use it, it was so disruptive that I simply could not get anything done until I turned it off.

When I’m writing code, typing and deciding-what-to-type-next are all mixed together. Before I know exactly what a line ought to contain, I’ll type out a subset of it that I feel relatively confident in, and that helps me concentrate on solving for the remaining piece.

Like, if I’m writing a list comprehension, I might first type out

[ for x in things]

and only then double back and figure out what the expression at the start should be. Or, if I’m writing a complicated condition, I might type out a relatively obvious part of it

if x is not None and

and then think about the remaining parts with this text securely in place.

It feels helpful to do this, like I’m narrowing down a search space. I type the obvious parts quickly and readily, and then pause, to think about the less-obvious parts.

But with Copilot on, the act of stopping gives Copilot a trigger to suggest a completion. Right at the moment where I need to sit and think carefully, it jumps in and messes up my carefully arranged thinking space!

I guess if its suggestions were always right, this wouldn’t be a problem? Like, if it just filled in the “less obvious parts” for me, and I could just read them and verify that they’re correct.

But it’s nowhere near able to do that.

The main problem isn’t even with its level of coding ability, but with the fact that it doesn’t know what I’m doing, and I have no way to tell it. It sees the code I already have, but it doesn’t know about the new stuff I’m trying to put there – the feature I’m working on, or the bug I’m fixing.

It would be more useful if it could automate the “obvious parts” – the parts where it currently does nothing, because I’m typing quickly. That is, if it would pre-fill stuff like

[ for x in things]

if x is not None and

Sometimes it does in fact do stuff like the second one… but only sometimes. And sometimes, even when it’s guessing a short piece like `x is not None`, its guess is still wrong.

And then the other half of the time, it’s Leeroy-Jenkinsing way out ahead of me, writing entire nested blocks of useless, irrelevant program logic. All because I typed `if`, or something, and then paused for a moment.

torakoneko asked:

do you *have* to use google cloud storage to finetune gpt-j? like with gpt-2-simple you can use google drive to store stuff.

Technically you don’t absolutely have to, though the finetuning code (at least the original code in mesh-transformer-jax) assumes you do. You’d have to modify it to support another cloud store.

But also, I strongly recommend using GCS instead of Google Drive for storing basically any large file, if those are the two options.

Even for stuff that can fit on Google Drive, I’ve generally found Google Drive kind of painful as a storage solution. For example, it has hidden ratelimits that are a huge pain to deal with if you’re moving large files around a lot. Also, GCS has a good CLI utility.

Generally, I find that things like GCS that get used “in production” by software companies are way more reliable and transparent than things meant “for consumers.”

You’ve probably seen web editors based on the idea of blocks. I’m typing this in WordPress, which has a little + button that brings up a long list of potential blocks that you can insert into this page […]

This kind of “insert block” user interface concept is showing up in almost every blogging tool, web editor, note-taking app, and content management system. People like it and it makes sense.

We have seem to have standardized on one thing: the / key to insert a new block. Everything else, though, is completely proprietary and non-standard.

I thought, wouldn’t it be cool if blocks were interchangeable and reusable across the web?

-Joel Spolsky, of Stack Overflow fame, talking about his new project

There’s a growing expectation that you should also be able to author block content in modern content applications. People have started to get used to delightful user experiences that works and looks nice [lol -nost], and where you aren’t expected to have to learn specialized syntax. Medium popularized the notion that you could have delightful and intuitive content creation on the web. And speaking of “notion”, the popular note app has gone all in on block content, and lets users mix max from a wide range of different types.

Knut Melvær, who’s involved in a competing (?) unified-“block”-spec

Who are all these “people” who supposedly love block-based web editors???

I’ve used three of them before, I think, and all three are janky and awkward and a strict downgrade relative to a word processor / Google Docs.

nostalgebraist:

the documentation:

image

me: oh god

me: when an ML library says the details are in “the tutorials,” i just know i’m going to be poring over its internals 30 minutes later to try to figure out how anything works

—————————————————————-

the documentation:

image

me: these are my least favorite words in the world

me: i’m definitely going to be poring over internals in 30 minutes, won’t i

—————————————————————-

my browser, 30 minutes later:

image
image

—————————————————————-

my editor, 30 minutes later:

image
image
image

my editor, the next day:

image

the documentation:

image

me: oh god

me: when an ML library says the details are in “the tutorials,” i just know i’m going to be poring over its internals 30 minutes later to try to figure out how anything works

—————————————————————-

the documentation:

image

me: these are my least favorite words in the world

me: i’m definitely going to be poring over internals in 30 minutes, won’t i

—————————————————————-

my browser, 30 minutes later:

image
image

—————————————————————-

my editor, 30 minutes later:

image
image
image

Sorry for the ~1.5 hour Frank outage just now.

I was trying to do some routine maintenance (moving older logs to “cold storage”) and tried to simplify things by doing this from the cloud machine (which is closer to the data store) rather than from my laptop. It turned out to be too much for the machine’s tiny memory, it started doing the same thing very slowly using swap memory, and ssh hung.

It stayed in this state for a long time until I eventually was able to stop the process from a serial port … not something I’d done before, so I guess it was a learning experience.

alberto-balsalm asked:

so i've noticed you've made contributions to pytumblr on github. would you be willing to put in a small pull request for me? just adding a couple of functions for tumblr API end points that aren't implemented in the python package. i use my github for professional stuff so I don't want anyone on github to know that I use tumblr

Yes, although I’d prefer to make the change to my pytumblr2 (post, github link) rather than trying to contribute to the official pytumblr.

I’ve tried the latter, and it wasn’t effective at getting the change onto PyPI and into the hands of users.

The official pytumblr is drastically of date at this point – it has zero NPF support and its model of the API hasn’t been updated with any of the changes since the introduction of NPF. At this point, it’s somewhere between “unusable” and “partially usable if you already know what you’re doing.”

(If you’re wondering about the notifications endpoint, I want to add that to pytumblr2 when I get time for it. The shitty-but-it-works notification-fetching code I actually use in my bot is here, fwiw.)

hymneminium:

nostalgebraist:

Sorry that Frank was down for a while this evening…

I’ve been having a lot of issues lately where my http requests to tumblr will just hang indefinitely, without the python requests/httplib libraries raising any kind of timeout-related exception.

When I ctrl-C the script and restart it, it works again, but I don’t know how to simulate this manual step automatically, since I’m not given an exception to handle. Haven’t seen this before like, this week? Or not often anyway. I don’t know enough about web programming to know what the cause is likely to be, either.

You have to explicitly specify a “timeout” keyword argument for each request to stop that from happening. See https://docs.python-requests.org/en/latest/user/quickstart/#timeouts:

You can tell Requests to stop waiting for a response after a given number of seconds with the timeout parameter. Nearly all production code should use this parameter in nearly all requests. Failure to do so can cause your program to hang indefinitely.

I don’t know why this is the case.

Thank you, that’s what I was missing! Didn’t know the requests library had no timeout by default.

I’ve now attempted a fix, though only time will tell if it worked. Although, since the issue has been happening multiple times a day, it won’t take that long…

When I get time for it, I’ll integrate timeouts/retries into pytumblr2 as well. And then when I get even more time, I’ll move Frank over to actually use pytumblr2, rather than using the original code I cleaned up to create pytumblr2.

Sorry that Frank was down for a while this evening…

I’ve been having a lot of issues lately where my http requests to tumblr will just hang indefinitely, without the python requests/httplib libraries raising any kind of timeout-related exception.

When I ctrl-C the script and restart it, it works again, but I don’t know how to simulate this manual step automatically, since I’m not given an exception to handle. Haven’t seen this before like, this week? Or not often anyway. I don’t know enough about web programming to know what the cause is likely to be, either.

GitHub - nostalgebraist/pytumblr2: A Python Tumblr API v2 Client, updated for the New Post Format era →

nostalgebraist:

Not quite ready to push it to PyPI yet, but… here’s a little thing I’ve been working on.

In the course of working on nostalgebraist-autoresponder, I’ve made a bunch of compliance and usability upgrades to pytumblr.

Since Tumblr hasn’t been allocating much developer attention to the official API clients, I’m putting these changes in a fork called Pytumblr2 so they’re available to anyone who wants to use them.

This seems like a better home for NPF support, NPF -> HTML parsing, etc. than the innards of a large chatbot repo.

Pytumblr2 v0.0.1 is now on PyPI, so you can do

pip install pytumblr2

and then do all the fun stuff described in the README :)