Yeah, I also get confused with references. I was annoyed from the start, when "Mojo" was announced as a Python family language. Mojolicious uses the "Mojo" namespace and is referred to as that quite often. I know Perl is not as popular as it used to be, but Mojolicious is probably the most popular framework of a language that is roughly in the same "space" as Python, so that naming choice was very ignorant IMHO.
The book Beautiful C++: 30 Core Guidelines for Writing Clean, Safe, and Fast Code recommends initializing/providing default values for member variables in default member initializers intead of the initializer list used here.
"""
Default member initializers define a default value at the point of declaration. If there is a member that cannot be defined in such a way, it suggests that there may be no legal mechanism by which a default constructor can be defined.
"""
I use copilot through VSCode. The copilot plugin lets me either ask questions or ask for edits to my code. I can choose which files to include as an additional context to the prompt. I can additionally choose which model to use. Some models are unlimited, others have some monthly quota. GPT-4o is unlimited and quite good with short tasks.
It has also shortcuts for instance fixing errors in the code by just selecting "fix with copilot". Its a bit hit or miss but for simple things work well.
It is very good and seamless. Cannot think of ever copy pasting multiple files of code to some web chats and back.
I think the Coplit plugin is probably the closest thing to an AI IDE that actually works. As per my other comment, I don't actually use any IDE to begin with, but one of my coworkers who uses VSCode has been very fond of the latest iteration of the Copilot plugin.
From your description of how this plugin works, I see why it works so well. It is basically just focusing on the essentials (populating the appropriate context) and then does as best as it can to get out of the way ( <- this part is really important I think)
But you aren't just asking for edits to your code, right? Copilot will actively suggest code completion as you type. This is the real benefit over chat as it's like pair programming.
That, and the way it generates commit comments, I don't think I will write another commit message even again.
The first paragraph implies that they are. I’m doing the same, works really well for writing new code or refactoring. Then polish it up by pointing out bad parts in the chat. At the end I step in and do some manual polish.
I use VS Code too and in agent mode I can say things like “move the database querias into a new module called models.py and convert the SQL into SQLModel classes”. It’s pretty awesome to do chores.
VSCode has been good enough for markdown blogging for me. Hugo compiles pages on save so its quick to iterate. The markdown preview plugin brings same experience to misc markdown editing.
No new editors to learn and one gets instant access to copilot etc.
Personally, I’m a lot better at recognizing good writing than producing it, and LLMs are great at being a “calculator for words.”[1] Writing posts became a lot easier once I got an automated editor I could tell to “break up this run-on sentence to make it less confusing” or “rearrange these paragraphs so I introduce concepts before I start using them”. The end result is still the same, but this way I save a lot of time I used to spend glaring at Roget, Strunk, and White.
I found it very useful for proofreading. It's easier than copying/pasting the content into ChatGPT or similar, as it's right in the editor. I disabled the autocomplete though, as I found it breaks my flow of thoughts
I just like keeping all my writing in one place, separate from coding. Obsidian gives me that focused space, and I’ve set it up with a nice font and minimal theme that fits how I like to write.
The most effective thing for me has been reducing distractions on phone and computer.
I systematically turn off notifications and consciously avoid sites/apps with algos to keep me in. I also keep distracting sites away from favorites or quick links.
I learned Erlang at school and used to prefer its syntax for years. However, after giving Elixir a chance and writing 1000 loc I was converted. Now I look at snippets of Erlang in docs with mild disgust.
I usually just reject mail from the address or even the whole domain on the email server level. This causes them to receive mail rejection notifications and my inbox stays at zero. Zoho workspace makes this easy to do.
I could just block them silently, but reject notifications add to their spam score on email provider level and may help them reconsider their approach.
Curiously, one spammer rotated over 10 similar domains in a span of 6 months as I kept blocking them. Assuming their spam software did it automatically.