CommentComment

Iā€™ve had a week off from Swift Package Index this week as I needed to do some work on this newsletter. Curated (the email service I use) has had some problems recently, and Iā€™m investigating what it would take to self-host my newsletter again. It started over 13 years ago as a simple Jekyll site with an ESP account, and thatā€™s where I think itā€™ll end up again soon.

You wonā€™t see big changes when it transitions back to being self-hosted, so why am I talking about it? Well, itā€™s been a great chance for me to play with a couple of AI developer tools that Iā€™ve been meaning to check out.

First, OpenAIā€™s new o1-preview model that you might have read about. Itā€™s designed for larger tasks that take more ā€œthinking aboutā€ before the model gives a response. One of the things itā€™s good at is writing code, so I thought Iā€™d give it the task of turning the structured JSON export of my Curated data into. I spent about ten minutes writing a fairly lengthy specification and included a sample of the JSON data.

It spent about two minutes ā€œthinkingā€ and then produced code for me. It ran first time without errors and did exactly what I asked it toā€¦ which is where the only flaw was. šŸ˜‚ I spent another few minutes writing up a bulleted list of amendments, clarifications, and additions to my original spec, and apart from one small blip, I had a working program that did what I needed. It only took two prompts and less than thirty minutes, and the code was better than I would have written.

I also checked out Cursor this week, as I said I would, and itā€™s good. I have more to write than what I have room for here, but I canā€™t go without mentioning one feature that feels like a step forward for inline completion. All AI code completion I have used so far has been additive, suggesting either a line or block of code. Cursor offers that, of course, but it can also offer to edit other parts of a file that might not be part of the same contiguous block of code.

Iā€™ll explain. Imagine you have some inline logic in a variable assignment, and you decide that itā€™s getting too complex for that line. You might decide to make a new intermediate variable on the line above. Cursor will notice that, and as you declare the new variable with partial logic from the line below it wonā€™t only complete the line youā€™re typing, but also offer to remove the now duplicate code from its original location. It may sound simple, but itā€™s striking when it happens.

That explanation might not be super clear, so I made a 20 second demo video which might clarify things. Cursor performed that edit in two consecutive presses of Tab, but it can also combine two suggestions like that into one. I guess if it feels confident enough that youā€™d want them both. Itā€™s not 100% clear to me yet how it decides what type of completion or edit it will suggest, but it got it right over and over again as I used it. Thereā€™s a free plan that is more than capable of showing what it can do, so thereā€™s no reason not to give it a try if youā€™re interested in this area.

This feature is what felt like a big step forward to me over line-at-a-time and block-of-code suggestions. It felt like having true assistance rather than completion or generation.

I could talk more about how Cursor also takes advantage of modern LLM models having such huge context windows by using all open tabs as context. It can even include every file in your repository if you choose. Iā€™ll leave that for another time, though. This is already too long.

We live in interesting times.

Dave Verwer  

News


Tools

Code



Design

Jobs

Senior iOS Developer @ komoot ā€“ Develop innovative new features from the first idea and concept over to road map planning, implementation, testing, release and monitoring. Team up with six team members to build a state of the art iOS app with more than 5 million installations. ā€“ Remote (within European timezones)

 

And finally...

My gosh, this took me back. Not just to Delicious Library, which I remember made a huge splash when it debuted, but to that whole era of Mac software. Those apps are the reason Iā€™m here writing this on a Mac today.

Via John Gruberā€™s post and, unfortunately, this news.