HN user

lostintangent

993 karma

I build dev tools @ GitHub (prev. Microsoft), and like to explore ideas by creating silly-named projects (GistPad, CodeTour, CodeSwing, WikiLens, GitDoc, etc.)

Posts22
Comments184
View on HN
news.ycombinator.com 4y ago

Ask HN: Are you using actors in production? Why/Why not?

lostintangent
56pts27
github.com 5y ago

Show HN: CodeSwing – A CodePen-like interactive playground, built into VS Code

lostintangent
159pts24
marketplace.visualstudio.com 5y ago

Show HN: FlashCode – Create and review developer flash cards within VS Code

lostintangent
10pts1
news.ycombinator.com 5y ago

Ask HN: When and why do you choose to use a desktop client vs. a web client?

lostintangent
12pts15
github.com 6y ago

GitLand: A Multiplayer game controlled using GitHub

lostintangent
84pts13
twitter.com 6y ago

Show HN: Record and playback interactive walkthroughs of your codebases

lostintangent
7pts1
twitter.com 6y ago

Show HN: Taking interactive programming tutorials within VS Code

lostintangent
5pts0
twitter.com 6y ago

Show HN: Creating Interactive D3 Data Visualizations Within Visual Studio Code

lostintangent
3pts0
twitter.com 6y ago

Show HN: Browse and edit CodePens entirely within VS Code

lostintangent
8pts0
twitter.com 6y ago

Show HN: Using VS Code and GitHub Gists as a Web Development Playground

lostintangent
10pts0
dev.to 6y ago

Show HN: VS Code + GitHub Gist = Developer Micro-Blogging (aka a “GistLog”)

lostintangent
1pts0
marketplace.visualstudio.com 6y ago

Show HN: Live Share Spaces – A Virtual Team-Room Within VS Code

lostintangent
5pts0
github.com 6y ago

Show HN: GistFS – Using VS Code and GitHub Gist as a Cloud-Based Scratchpad

lostintangent
8pts0
aka.ms 7y ago

Providing a Real-Time Compliment for Git-Based Collaboration

lostintangent
1pts1
twitter.com 7y ago

Real-time code reviews in VS Code

lostintangent
6pts0
aka.ms 7y ago

Awesome Live Share: List of VS Code extensions that enhance dev collaboration

lostintangent
1pts0
aka.ms 7y ago

Visual Studio Futures: Intelligent Productivity and Collaboration from Anywhere

lostintangent
3pts0
dev.to 7y ago

Collaboratively Browsing the Web Within Visual Studio Code

lostintangent
1pts0
dev.to 7y ago

Collaboration Doesn't Come in “One Size Fits All”

lostintangent
2pts0
devblogs.microsoft.com 7y ago

Live Share now included in Visual Studio 2019, available for VS Code

lostintangent
72pts29
dev.to 7y ago

Localhost Isn’t Local Anymore

lostintangent
3pts0
dev.to 7y ago

In Pursuit of Enjoyable Developer Collaboration

lostintangent
2pts0

Out of curiosity: what size do you think constitutes a “team” vs. a “department”?

GitHub Next is 18 people (inclusive of all roles), which seems appropriately-sized to be called a “team” (certainly in a large engineering company).

But apologies if that came off as misleading.

We (the GitHub Next team) use and love Apache Spark. So we made sure to connect with ASF before releasing GitHub Spark, and confirm they were comfortable with us using this name.

We felt like there was sufficient difference between the two products, that there wouldn’t be any confusion. Especially with the target audience that GitHub Spark ultimately intends to reach.

That said, we plan to validate this during the Technical Preview phase. Since we absolutely want to be respectful of Apache Spark, and its impact on software.

If folks want to see what Copilot Workspace looks like, here’s a sample session where I addressed a feature request in an OSS VS Code extension I maintain: https://copilot-workspace.githubnext.com/lostintangent/gitdo....

You can see the originating issue and the resulting PR from there. And note that while the initial spec/plan/code was mostly good, I iterated on a couple parts of the plan, and then made a minor tweak to the code manually (everything in CW is editable). Which is a key part of our goal with CW: to help bootstrap you with a task (or think out loud with AI), and then provide the iteration primitives to explore further.

We definitely intend to explore a VS Code extension in the not too distant future. And we decided to build a web client + integrated cloud terminal, simply because that allowed us to create an experience that is one-click away from an issue, and could be accessed from anywhere and any device (i.e. we’ve deeply optimized CW for mobile, and I do quite a bit of code thinking in that modality).

In the meantime, when you open a Codespace from Copilot Workspace, you could open that Codespace in VS Code desktop. And use that as a companion editor to the web client (since we bi-directionally sync file changes between them). But totally agreed that a more integrated VS Code experience will be compelling!

I can definitely echo the challenges of debugging non-trivial LLM apps, and making sure you have the right evals to validate progress. I spent many hours optimizing Copilot Workspace, and there is definitely both an art and a science to it :)

That said, I’m optimistic that tool builders can take on a lot of that responsibility, and create abstractions that allow developer to focus solely on their code, and the problem at hand.

One of our main goals with Copilot Workspace is to help offer a "thought partner"/rubber duck for developers, and potentially even other members of a software team (as you said, PMs, designers, etc.). And code generation is obviously just one means of helping you think through a problem, along with a fleshed out spec (what are you trying to accomplish?), and plan for how to approach the problem (how might you actually accomplish it?).

And so while we want to help generate code for tasks (e.g. from issue->PR), we also find that it's just super helpful to take an idea and make it more tangible/concrete. And then use that Workspace session to drive a conversation amongst the team, or spark the implementation. Especially since that might only take a couple clicks.

Within the GitHub Next team, I'll often file issues on one of the team's project repos, and then pause for a moment, before realizing I'm actually curious how it might be accomplished. So I'll open it in CW, iterate a bit on the plan, and then either 1) realize it's simple enough to just fix it, or 2) understand more about my intentions and use a shared session to drive a discussion with the team. But in either case, it's pretty nice to give my curiosity the space to progress forward, and also, capitalize on serendipitous learning opportunities.

So while AI-powered code generation is clearly compelling, I agree with you that there are other, more broadly interesting benefits to the idea->code environment that CW is trying to explore. We have a LOT of work to do, but I'm excited about the potential :)

No one interacts with my tweets anymore. Meanwhile, I get response on Mastodon that reminds me of the early days of Twitter, before they betrayed their developer community and hired a legion of people to cut ad deals.

Out of curiosity: is your excitement about ActivityPub, based largely on a greater amount of perceived engagement, as compared to other channels?

Wow, this looks awesome! I noticed that the sample notebook doesn’t include SD 2.0 by default, and says that it’s too big for Colab. Is that a disk size/RAM limitation?

As an aside, it would be cool if you versioned that notebook in the repo, so that it could be easily opened with Codespaces.

Understanding Michael Porter: The Essential Guide to Competition and Strategy

This is a commonly cited book about “strategic thinking”. But despite that, it’s one of the few business books that I actually read every page (as opposed to spotting fluff and selectively skipping pages), and it had a notable impact on the way I think/write/communicate.

Then how do any of these distributed systems tools/frameworks write a meaningful or concise landing page? Making informed trade-offs are obviously important. But in a world of saturated information, it seems like there’s even more value in being hyper clear about what the purpose of a thing is? And even better, what it’s _not_. Unfortunately, many of these tools claim to be broadly applicable, in a way that makes it hard to understand their true purpose, without also investing significant time into them. That seems kind of unfortunate.

How much of the value in actors do you think is related to the awesomeness of the Akka framework specifically? I only ask since it seems like there’s a decent correlation between people using Akka, and those that identify as using “actors”.

In general, I’m curious whether there’s significant value in someone who is using Node or Python (for example), to look for a way to use the actor pattern. Or if actors are primarily great when used along with platforms that specifically “elevate” this concurrency model? (e.g. Erlang/Elixir, Java/Scala, .NET)

I _really_ appreciate this reply! Naively speaking, when I look at actors, I just can’t think of why they’d be superior to coordinated queues/channels, except for within an arbitrarily configurable, rules-based system (e.g. game NPC behavior, network routing). But I couldn’t help but assume this was dramatically oversimplifying the problem/missing the point.

If someone were using Go routines and channels, what do you think is the “clear” moment that they would benefit from actors? When the sequence of steps in a workflow are non-deterministic?

Very dumb question: when you say backed by Akka, what exactly do you mean? That you’ve configured a “binding” between Flint/Spark and Akka, which spins up actor instances (Java/Scala classes?) whenever some events occur? Or that Flint/Spark use Akka behind the scenes?

Yeah good point! Though I was also thinking about the ability to easily create/edit/delete gists, by means of file system operations. For example, it would be pretty cool if you could create a directory in some “gists” mount point, and have it transparently create a gist for it. Then, as you add/edit/delete files in that directory, those changes are reflected in the gist’s repo.

Very cool! I love using GitHub repos and gists for managing my personal notes/code snippets, and currently use GistPad as an editor-level virtual file system (for VS Code). But having an OS-level equivalent is _super_ useful.

Any plans to add support for gists to Hubfs?

This is awesome! And it’s so exciting to see folks investing energy into this problem space.

Out of curiosity: did you add support for multiple backends because you don’t think Git will ultimately be sufficient for the experience you want to create? Or did you just want to ensure that the tool didn’t become unnecessarily coupled to Git?

Is cloud storage anywhere near as opinion-inducing as note taking workflows though? :) There are like a dozen new entrants each month, and so it’s probably meaningful for folks to get super clear on their core requirements. Otherwise, you’d spend all your time evaluating tools, as opposed to actually writing.

It’s a little bit clunky, but you can use GitHub.dev/<repo> on your phone. I do a lot of browsing/quick edits that way, and it works well enough. That said, I also use Working Copy for iOS to sync my notes repo, and will use that sometimes as well.

Personally, I don’t find that I do a lot of “deep writing” on my phone, as opposed to quick recall or in-the-moment scratch padding. So as long as I have a way to access my notes, make quick edits, and then sync them with my laptop (where I’ll do my primary thinking later), then I’m pretty content.

Congrats on the release! I _really_ love the simple approach this tool takes. Though personally, I view note taking as “commodity” enough, that I prefer to own my data, and use my existing editor setup. If folks are looking for a productive, yet low-ceremony note taking workflow, GitHub.dev might be worth a look, since it provides the benefits of using Markdown, a GitHub repo, and VS Code, all from the browser: http://aka.ms/githubdev-fun, https://twitter.com/lostintangent/status/1429483662257446916.

I also _really_ like the concept of “spells”, so congrats on this experience as well. It would be interesting to explore implementing the same behavior using GitHub Actions (many of which, probably already exist?), with push/cron triggers. The benefit of that is that you could share your note taking workflow as a repo template, and then others could fork it and be up-and-running without any new accounts/tools/etc.

Vscode.dev 5 years ago

Speaking of education/CS50: we (the Codespaces/Live Share team) have actually been very excited/privileged to collaborate with the amazing CS50 team, as they've built their student experience on top of VS Code/Codespaces (http://code.cs50.io). Lowering the barrier of entry for learners, and supporting student success, is a huge goal of ours, and so I'm looking forward to getting our tools in the hands of more developers, and iterating based on feedback.

Vscode.dev 5 years ago

I'm really sorry to hear you had this experience :( I'm not sure who you spoke with, but this perspective definitely isn't representative of the team and/or how I'd ever want to see us talk with developers.

I'm actually a PM for both Live Share, Codespaces, and some of our education-related experiences (e.g. the GitHub Classroom extension for VS Code). A web client for collaboration, with zero-install/onboarding, has always been our north star, and so your intuition/feedback was 100% right back in 2018.

Now that we have Codespaces, vscode.dev/github.dev, and Live Share support for the web, we're actually looking to further optimize our support for education, since we believe we have a lot to offer. In fact, I'd love to connect and hear your thoughts, to make sure we're going in the right direction. If you'd be interested in letting me make up for that terrible conversation in 2018, you can reach me at joncart@microsoft.com. Thanks for sharing this feedback, and letting us know where we can do better.