I’ve had per week off from Swift Package deal Index this week as I wanted to do some work on this article. Curated (the e-mail service I exploit) has had some issues not too long ago, and I’m investigating what it will take to self-host my e-newsletter once more. It began over 13 years in the past as a easy Jekyll website with an ESP account, and that’s the place I believe it’ll find yourself once more quickly.
You received’t see massive modifications when it transitions again to being self-hosted, so why am I speaking about it? Effectively, it’s been an important probability for me to play with a few AI developer instruments that I’ve been that means to take a look at.
First, OpenAI’s new o1-preview mannequin that you simply may need examine. It’s designed for bigger duties that take extra “enthusiastic about” earlier than the mannequin provides a response. One of many issues it’s good at is writing code, so I assumed I’d give it the duty of turning the structured JSON export of my Curated information into. I spent about ten minutes writing a reasonably prolonged specification and included a pattern of the JSON information.
It spent about two minutes “considering” after which produced code for me. It ran first time with out errors and did precisely what I requested it to… which is the place the one flaw was. 😂 I spent one other couple of minutes writing up a bulleted listing of amendments, clarifications, and additions to my unique spec, and aside from one small blip, I had a working program that did what I wanted. It solely took two prompts and fewer than thirty minutes, and the code was higher than I’d have written.
I additionally checked out Cursor this week, as I stated I’d, and it’s good. I’ve extra to put in writing than what I’ve room for right here, however I can’t go with out mentioning one function that seems like a step ahead for inline completion. All AI code completion I’ve used to date has been additive, suggesting both a line or block of code. Cursor gives that, in fact, however it could actually additionally supply to edit different components of a file which may not be a part of the identical contiguous block of code.
I’ll clarify. Think about you will have some inline logic in a variable task, and also you determine that it’s getting too advanced for that line. You would possibly determine to make a brand new intermediate variable on the road above. Cursor will discover that, and as you declare the brand new variable with partial logic from the road beneath it received’t solely full the road you’re typing, but additionally supply to take away the now duplicate code from its unique location. It could sound easy, however it’s placing when it occurs.
That clarification may not be tremendous clear, so I made a 20 second demo video which could make clear issues. Cursor carried out that edit in two consecutive presses of Tab, however it could actually additionally mix two strategies like that into one. I assume if it feels assured sufficient that you simply’d need them each. It’s not 100% clear to me but the way it decides what sort of completion or edit it’s going to counsel, however it bought it proper again and again as I used it. There’s a free plan that’s greater than able to displaying what it could actually do, so there’s no purpose to not give it a attempt for those who’re on this space.
This function is what felt like a giant step ahead to me over line-at-a-time and block-of-code strategies. It felt like having true help fairly than completion or era.
I may speak extra about how Cursor additionally takes benefit of recent LLM fashions having such big context home windows by utilizing all open tabs as context. It could even embrace each file in your repository for those who select. I’ll depart that for one more time, although. That is already too lengthy.
We reside in fascinating instances.