jameshiew
jameshiew on Hacker News
I manage them as part of my dotfiles using chezmoi. A `.agents/skills/` directory + a symlink to there from `.claude/skills/`.
> Do you keep improving them over time?
In my global AGENTS.md I have a note to agents to explain any frustrations they had doing a task, and to suggest any skill/tool/AGENTS.md improvements. I am trying to keep AGENTS.md files small but still finding the balance.
Not usually but I've had periods where I've only been listening to AI-generated music (my own and others) instead of using Spotify. Suno is getting really good now.
This is my `mcp.json` in VS Code (requires `uvx` and `npx` to be available):
{
"servers": {
"context7": {
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp"
],
"type": "stdio"
},
"fetch": {
"command": "uvx",
"args": [
"mcp-server-fetch"
],
"type": "stdio"
},
"git": {
"command": "uvx",
"args": [
"mcp-server-git"
],
"type": "stdio"
},
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
],
"type": "stdio"
},
"brave-search": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-brave-search"
],
"env": {
"BRAVE_API_KEY": "${input:brave-api-key}"
},
"type": "stdio"
}
},
"inputs": [
{
"type": "promptString",
"id": "brave-api-key",
"description": "Brave Data for AI API Key",
"password": true
}
]
}
The Sonnet 4 agent usually defaults to using `fetch` for getting webpages, but I've seen it sometimes try playwright on it's own. It seems the brave-search MCP server is deprecated now, so actually it's probably not the best option as a search MCP (you also need to sign up for an API key), right now it works well though!
How do you find o3-pro for coding? I've also been taking the approach of hand building context and copying and pasting it in for complicated tasks where I want lots of reasoning, like bug/security audits.
I found o1-pro unbelievably good for coding, but when o3-pro was released, I saw the response length in ChatGPT was gimped severely compared to o1-pro, so didn't find it all that useful - it couldn't output long enough responses. I actually cancelled my ChatGPT subscription as it seemed like such a downgrade, though I'll probably try using again via OpenAI's API at some point, so long as the response length isn't capped. I'm tempted to try out Grok 4 Heavy.
I've barely tried Claude Code but looking to experiment with it as well after hearing a lot of good things about it. I've had good experiences with the GitHub Copilot agent in VS Code for working with Rust, specifically with Sonnet 4.
Refactoring duplicate code into a helper function should be achievable with current agents. To replace existing code with an external crate , you could try giving the agent access to a browser (e.g. playwright-mcp), and instructing it to browse the crate docs. For anything that involves using APIs that may be past the knowledge cutoff for the agent's model, it's definitely worthwhile to have some MCP tools on hand that'll let it browse for up-to-date info - the brave-search and context7 MCPs are good.
Yes, I've taken multiple - anywhere from a couple months to an entire year during COVID. Travelling, trying my hand at a business, others to just take a break and work on side projects or freelancing before fully jumping back in.
It's good to consider the financial impact seriously in balance with everything else - not only the income you won't earn, but also how that would have compounded across your lifetime.
To address your point about recruiter emails, I still get them. So long as you can provide value to a business at the end of your break it's not necessarily an issue, though you might have to work harder to demonstrate that - I think especially for the soft skills you'd otherwise be using day-to-day in a workplace as opposed to when you're just doing your own thing.
Location: London, United Kingdom - open to working with US timezones
Remote: yes (can work hybrid or full time on-site if there is an office in London)
Willing to relocate: no
Technologies: Rust, Go, Kubernetes, AWS, Terraform, Python, React, Java
Résumé/CV: https://www.linkedin.com/in/jameshiew/
Email: [email protected]
GitHub: https://github.com/jameshiew
Website: https://james.hiew.net
---
5+ years software development experience, mostly working on backend systems at fintechs. Seeking an IC role using the Rust programming language (and other tech as well!)
My previous experience ranges from working in cross-functional teams at larger corps, to being the sole fullstack developer for a startup. Some of the more interesting things I've worked on: an event-driven scheduling service (think dkron), core protocol logic for a blockchain validator in Rust, and complex SQL models for financial pipelines.
Let's talk if I sound like a fit for your engineering team or project: [email protected]
Very cool, hopefully VS Code eventually builds in native support for whatever functionality is missing that is part of the reason for these forks.
The new web search icon appeared for me straightaway in the ChatGPT macOS desktop app, within an in-progress conversation, without even having to restart. Before I'd even seen this official launch announcement. Very smooth!
Great but only so long as you want to use their nameservers. I had a domain with them that I wanted to use with AWS Route 53 nameservers which I was unable to - then I had to wait the standard ~60 days before I could transfer it out which caused a headache in the meantime.
Cloudflare is straightforward to use but watch out, they don’t let you use custom nameservers, which is very unusual for a domain registrar. As great as Cloudflare’s nameservers are, this was a dealbreaker for me and I eventually moved all my domains off of there.
"[Almost]" doesn't appear in the title of the article as currently linked. I would also agree that there is no need for an "almost" anymore - voice cloning can be pretty spot on e.g. this fake Joe Rogan interview with Sam Altman[1].
1: https://www.youtube.com/watch?v=meu0CoYv3z8
Posted by
jameshiew on Thursday April 13, 2023 @08:30AM
from the ask-hn dept.
Such as a concert, open mic night, fitness class - maybe on something like VRChat or Meta Horizons Worlds.I have used VR fairly extensively (on a Quest 2) but rarely to attend these sorts of scheduled events or meetups. I have gone to group meditation sessions in VRChat, which was OK.
I have noticed this as well sometimes, though never thought it might be intentional, I'd doubt it is. You can always hint to ChatGPT which language to use for the codeblock anyway though.
I'm involved in building a backend right now for which I chose to use AWS ECS with Fargate containers for deployment, over some managed Kubernetes service like AWS EKS which would have been my first choice. Using ECS has been dirt cheap (<$5pcm) whereas AWS EKS is ~$75pcm per cluster, before you even start running any containers. I'm not completely sure it was the right decision as it's involved having to spend time getting familiar with ECS, but it seems to work well enough and cheaply for something which isn't making money yet. I probably could have provisioned a Kubernetes cluster myself using something like kops but didn't want to deal with the headache.
Another one is using Heroku (~$7pcm) over Vercel (~$20pcm) for deploying a simple website/CMS for a business (and therefore not eligible for Vercel's free hobby tier). I initially wanted to use Vercel but Heroku is actually fantastic if you're developing solo and don't need all the bells and whistles Vercel provides.
I would mention something to that effect in the modal because it wasn't clear to me why it was asking for card details at that point for "$0.00/mo" (though I guessed the reason). Maybe something like "To prevent abuse, we require card details, but you won't be charged", but worded better.
No, I lean in the opposite direction - I would be more inclined towards employment opportunities which have a reasonable coding challenge as part of the hiring process. In my experience, there is a strong correlation between how technically challenging the hiring process is and how good a place is to work as an engineer. A reasonable coding challenge is a signal that there are competent engineers within the organization (in order to be able to come up with and mark such challenges), and that the organization values engineering capability to some degree.
Of course, there are exceptions to this. I'm also explicitly excluding here employers who outsource the technical challenge to a third party like leetcode.
It has not, although it has greatly changed how I program and learn. We are currently entering a period where "centaurs"[1] - humans using AI - will be the most effective agents for many tasks, including programming. With that in mind, I'm enthusiastic to embrace AI as a daily tool, knowing it will let me do things faster and better - but I don't expect this period to last forever and so it has put a sense of urgency in me to execute rather than just ideate, which I did not have before the dawn of things like ChatGPT.
[1]: https://www.parc.com/blog/half-human-half-computer-meet-the-...
GitHub Copilot for coding, and ChatGPT for sundry tasks, mostly summarizing and explaining written text. I pay for both of these tools now. ChatGPT seems great in particular for summarizing YouTube videos (I copy and paste a YouTube video transcript) and email newsletters. I also use it alongside reading longform articles to expand on or clarify parts of the article I don't fully understand or want to know more about. You can also ask it follow up questions when using it in this way (e.g. for examples of the concept or thing you don't understand).
I would second this. Having interactive examples alongside the documentation (in multiple languages nonetheless) was something that stood out to me the first time I had to read the Stripe docs some years ago.
Since you mention Mail/Messages, I assume you are on macOS. I had a similar issue - wanting to always open links from Slack in Chrome, but links from elsewhere in Brave. I use Choosy[1] which works well for me, but there look to also be some free/libre alternatives, like Browserosaurus[2] (which I've never tried).
[1]: https://www.choosyosx.com/
[2]: https://github.com/will-stone/browserosaurus
I agree, it looks like JB are working on upgrading the default runtime to Java 17, but I think generally they could encourage developers to try out different runtimes anyway and report bugs rather than warning so strongly against it. I understand the JB runtime made some improvements to UI stuff, certainly the font rendering is much better in it, but at least for my setup that's not a big issue compared to things like indexing time. It'd be interesting to see a comparison of using different runtimes for IntelliJ, with proper profiling and the like.
There is an action in IntelliJ - "Choose Boot Java Runtime for the IDE". I first downloaded the Corretto 15 JDK within IntelliJ itself as if I was going to use it as the SDK for a Java project, then it was available to me to select as a boot runtime in that action. Some more details here.[1]
The first runtime I tried was Corretto 17 which crashed on me, and I had to delete some `idea.jdk` file somewhere or other to get IntelliJ to start up again. That file seems to contain which JVM to use when starting IntelliJ, I use Toolbox as well (on Ubuntu).
[1]: https://www.jetbrains.com/help/idea/switching-boot-jdk.html
Posted by
jameshiew on Saturday October 16, 2021 @02:11PM
from the ask-hn dept.
Something I've tried recently is changing from the default Java 11 JetBrains runtime to Amazon Corretto 15. Start up is blazingly fast now and overall the IDE feels faster once running as well, though I haven't profiled so that may just be an impression. There is a message when you go to change the runtime warning that you shouldn't do it unless asked to do so by JetBrains support, but that...
I haven't used Github Copilot but from what I understand it generates a completion from the text already in your file. Since OpenAI Codex can "understand" natural language instructions, I've found putting code into a prompt with extra context in natural language on what needs to be achieved can give decent results. e.g to generate a docstring, you might use a Markdown-ish prompt like
# Writing a good docstring
This is an example of writing a really good docstring that follows a best practice for the given language. Attention is paid to detailing things like
* parameter and return types (if applicable)
* any errors that might be raised or returned, depending on the language
I received the following code:
```{{{language}}}
{{{snippet}}}
```
The code with a really good docstring added is below:
```{{{language}}}
If you wanted a docstring in a particular format, you could add some specific examples as context to your prompt to get even better results.
I've been using OpenAI Codex directly (so not Github Copilot) for some coding tasks and it's been useful enough that I am using it daily at this point, though mostly as like a sort of personal Stack Overflow, especially when working with unfamiliar APIs. Prompting it with a function signature/docstring of what you want to achieve can give a helpful and often functional example that uses that API, even if the code is not perfect.
It's also decent at doing tasks that would be easy for a beginner programmer but perhaps tedious. Like you can give it a function for generating random colors and a task like "expand the variable names in this function to be better", and it will change variable names like `r`, `g` and `b` to `red`, `green` and `blue`. Hardly amazing, and the latency of the API means it's not actually that useful in practice (yet), but with the right prompt it can do some impressive things, and I expect it to get much better in the near future. Pulling magic strings out of functions into constants and adding typehints to Python functions are other simple tasks I've found it OK for.
This is a plugin that adds a few "flows" to Neovim for AI code assistance. The main flow generates and appends a completion for the visual selected text. There are a couple other flows that try to get the AI to generate changes to the visual selected text e.g. add a docstring, or do a freeform task like "make all the variable names longer" or "add typehints".
Currently it only works with OpenAI so you'd need an API key to use it, but the plugin is (over)engineered so that adding a backend for something more open like GPT-Neo should be doable. OpenAI Codex is used by default but other OpenAI engines can be used as well.
Posted by
jameshiew on Tuesday September 14, 2021 @12:10PM
from the show-hn dept.
A plugin for Neovim that uses OpenAI to generate/modify code. I'm really excited to see how the process of "writing" code will change as this sort of AI improves. Currently, my impression is it can do things like lengthening variable names or generating self-contained functions fairly reliably, given enough context.
Absolutely this. I wish I had spent more time learning about the rendering pipeline before jumping into trying out so much as a "Hello Triangle" tutorial.
It's also worth getting familiar with terminology early on, because common terms in the context of graphics programming have different meanings to their common usage. e.g. I've found it helpful to think of a "vertex" first and foremost as an element of an array, which is processed SIMD-style by the "vertex shader". In most cases it is the co-ordinates of a polygon vertex, but usually with other data bundled in the element as well such as texture co-ordinates. The term "shader" seems to be used for any program that runs on the GPU, regardless of whether it does shading of any kind.