HNHacker News
TopNewBestAskShowJobs

jmcdonald-ut

120 karma · joined September 15, 2012

submissionscomments
jmcdonald-ut··on Starcraft: Ashfall
Great work on this, had a blast!
jmcdonald-ut··on Pi 1.0
I've only used it at home a little on personal projects. My usage is probably odd -- I connected it with Bedrock, but otherwise used it the same as I do Claude Code (mostly). My basic flow was simple:

  - Ask it to accomplish some coding task
  - If it fell short, and I determined that was due to the harness, ask it to patch
  - Otherwise proceed to next task
  - Rinse + repeat
I run it within a sandbox, so I've been comfortable with the lack of native "approvals". So far my personal usage hasn't really needed subagents, but I think this is one thing I'd need to sort out were I using it professionally[1]. I'm aware of oh-my-pi, but I think half the fun is hacking from the base.

The light weight prompt and simple harness design are a lot of fun. I don't mind Claude Code, and I think its well designed for the problem domain, but Pi is a lot of fun to hack with.

Hope that helps!

[1]: https://mariozechner.at/posts/2025-11-30-pi-coding-agent/#to...

jmcdonald-ut··on O1 isn't a chat model (and that's the point)
The article links out to OpenAI's advice on prompting, but it also claims:

    OpenAI does publish advice on prompting o1, 
    but we find it incomplete, and in a sense you can
    view this article as a “Missing Manual” to lived
    experience using o1 and o1 pro in practice.
To that end, the article does seem to contradict some of the advice OpenAI gives. E.g., the article recommends stuffing the model with as much context as possible... while OpenAI's docs note to include only the most relevant information to prevent the model from overcomplicating its response.

I haven't used o1 enough to have my own opinion.

jmcdonald-ut··on JavaFX: Call to ARMs
I'm not sure what this comment is trying to insinuate? I mean sure they might have a financial interest, but they're also writing about stuff they know well since they use it.
jmcdonald-ut··on A year and a half with Alexa
I'll add my two cents on top of the author's. I have both the Amazon Echo and the Amazon Tap. This article was spot on. I'm perhaps less forgiving than the author. If Alexa can't answer a question on the first try I'll just give up. When Alexa does answer a question or a request she usually does a phenomenal job and it's just really cool. It really feels futuristic.

Echo is cool, it can be pretty useful, but it hasn't realized its full potential yet.

I bought the Tap as a portable speaker to take with me on bike rides with friends. Well I took it out the other day and the minute it lost WiFi connection it just wouldn't work. I'm sure this was a problem on my end, but I had already paired the devices and I wasn't going to spend time fiddling with it while I was out with friends.

EDIT: Also it doesn't happen too often but Alexa has definitely accidentally triggered. It even woke me up at 2 AM after the power went out temporarily to tell me that it had no WiFi.

jmcdonald-ut··on Interview with Matt Might
I got to take Matt's compilers course. He was a really exceptional professor who had a way of presenting pretty mundane and rigorous material in an interesting way. His lectures were always engaging. If your interested in understanding programming languages at a lower level I can't recommend enough perusing his blog.
jmcdonald-ut··on An 'in' operator for Ruby
He addresses this in his post.

  if x.in? my_set   # very ugly
With that said, I personally don't agree with the post.
jmcdonald-ut··on Uber: Disability Laws Don’t Apply to Us
Thank you for this quote. I often think that this gets overlooked in our industry, and I'm no exception. A recent Hanselminutes podcast[1] touched on this. It pointed to a great resource[2].

1. http://hanselminutes.com/475/accessibility-a11y-with-opendir...

2. http://a11yproject.com/

jmcdonald-ut··on Ask HN: Differences you've noticed between CS students and the self-taught?
I'm a current CS student, finishing this year. I work with both people who are self taught and people who have degrees. I think pretty highly of those I work with who are self taught. All in all the differences are minimal when getting the job done.

CS emphasizes theory and mathematics. Programming and coding is usually discussed in the introductory courses, but from there students are expected to teach themselves to keep up.

jmcdonald-ut··on Make Your Own Programming Language
Heh, not so complicated. It's just used to generate boiler plate code. Kind of like data object files in C#, Java, PHP, etc. That would be really cool though :).
jmcdonald-ut··on Make Your Own Programming Language
This was a really cool read :). I'm working on my own DSL for generating code. I'll make a Show HN soon, but it was really cool to see someone else doing something so similar.
jmcdonald-ut··on List of Computer Science Courses
I'm taking the class this upcoming semester from Matt. I'm excited to understand what tools like gcc, clang, and so on are doing under the hood.
jmcdonald-ut··on I lost 60 pounds this year. How can I best share what I've learned?
I agree with the idea of motivation. An anecdote for the OP:

In the past when trying to workout it would generally go something like this:

* Immediate motivation, go strong for 1-3 weeks.

* Work or lack of interest interferes with workout regimen.

* Eventually interest dies out and I stop going.

What helped me break this cycle was finding motivation by:

* Doing things I liked to supplement the 'work' part. This meant playing racquetball, ultimate frisbee, and cycling while lifting.

* Learning about the benefits beyond looking physically attractive.

* Going consistently that a habit has formed.

Seriously, I feel different if I miss my gym routine for a day. Hope it helps as you think about your own material to write about.

jmcdonald-ut··on Why I Hate Frameworks (2005)
We should always remember to not think in black and white.

My first complaint to the article is that it paints a framework as a universal hammer that tries to do many things. This simply isn't a fair comparison. I am not a builder, so I'm sorry if this analogy falls flat, but it's less like a universal hammer and more like the framing of a house. While there might be different approaches of framing a house for the most part the goal of framing is to ensure the house is structurally stable and can then be built into what the owner wanted. This is exactly what a framework attempts to do. My second complaint is similar.

If I'm building a simple "spice rack" such as a contact form then a framework is certainly overkill. However if one uses a framework to solve such a simple solution then the complaint should be targeted towards the developer. Quite frankly given the hardware available, and the fact that I could develop something like this quickly with or without a framework, it almost makes this point moot.

Finally it's the job of engineers/developers to understand that each problem has multiple solutions. As such it is up to the engineer to choose the solution that best fits the problem and execute. Frameworks will not always be a good solution, but at times they will be absolutely the best decision one can make. Good engineers don't think such black and white terms.

jmcdonald-ut··on What Undercover Boss and The Jetsons Tell Us About the Future of Jobs
The belief that the future will be this dark and gloomy place where one struggles to find work is understandable. Certainly there are things that can indicate this is right. Manufacturing is becoming more heavily automated for example.

I think that we will see a period in the coming years that could be regarded as a "growing pain" for the human species. Jobs and professions could shift to be more inline with rapidly advancing technologies. During this time there will probably be people who find themselves either out of work, or unqualified. After this time I think that jobs and professions will again be available and that many people will be qualified for them. Perhaps even more jobs.

Who knows, maybe I'm an optimist.

jmcdonald-ut··on Fat arrow functions in Javascript
Is there a reason why the author is referring to them as fat arrow functions instead of lambdas? I am not trying to be snarky, this is genuine curiosity if there is something differentiating.
jmcdonald-ut··on Ask HN: What is the best technology to learn right now?
Note that this post is in context of building a web application.

Learning how to build a web application from scratch is not an easy undertaking. Certainly there is the actual task of learning how to program from the ground up that is challenging but I will warn you of the more subtle challenges you will face. Existing packages, libraries, frameworks and more are there to help you but can be a crutch. Understanding the trade-offs of writing your own library verse using a preexisting library is important. The second problem is knowing how to parse information you find online. People learn new things and love to share those things online all the time. Tutorials and screen casts will likely be plentiful, but beware that there may be holes in what you are learning. A fantastic example would be a basic tutorial on storing information to a database--it likely will not show you how to sanitize the data. In my opinion learning how to build solid web applications should then follow a basic formula to overcome these challenges: Learn the basics of web programming, pick up a framework, and then seek knowledge where needed.

Stay away from a framework in the beginning. Rails, Django, and other popular frameworks are absolutely essential tools for building web applications but they abstract a lot of the little things. Not understanding the little things can make debugging tricky. It can also lead to security flaws in your code. A good example of the little things includes parsing form input, interacting with a database, and routing traffic to its intended destination. Having an astute understanding of the building blocks will help you architect, debug, and develop solid web applications.

Once you are comfortable with the basics and could build a complex web application without the help of a framework you are paradoxically ready to use one. I suggest that your first framework be one that is highly popular so you can find tutorials and help as needed. Rails or Django are fantastic to pick up. Since you understand the basics you can then focus on using the best practices that these frameworks declare in their documentation to build a web application that can scale and is secure. You will not need to handle what will now be the mundane task of parsing form input or interacting with the database.

Now that you are comfortable using a framework you can seek more relevant knowledge that is applicable to what you want to do. Perhaps you are hoping to build a web application that shows real time updates for game scores and so you look into advanced AJAX techniques (or web sockets) for feeding the data to the user in a lively manner. Maybe you want to tackle something truly challenging such as converting m4a formatted files into mp3 formatted files. Programming really gets fun once you start tackling challenges that aren't quite as well documented. From here you will find the material more advanced, but with a solid understanding of the basics and a good framework to keep the basics out of your way you will be able to commit the mental capacity required to tackle the more challenging tasks.

In the end my advice is to have fun and work hard. Don't skip the basics, but understand that they are not the end point in programming. It is similar to learning calculus in mathematics. If you do not have a solid understanding of algebra you will struggle more than you need to. Build trivial things. Re-invent the wheel. This is how to best learn.

Best of luck!

TLDR: Pick a language, learn it, and then find a relevant framework and learn how to wield it.

jmcdonald-ut··on Apple Unveils The iPhone 5S
Non techies that I know hear 64 bit and immediately think that it's better. When friends show me a new lap top or whatever else, they say it's 64 bit. When they're shopping they ask if something is 64 bit. They don't understand why it's important, but they think it is.
jmcdonald-ut··on Windows 8 more widely used than OS X, IE still on the rise
I use it by choice.

My desktop has both Ubuntu 12.10 and Windows 8, and I love both operating systems. My work computer is loaded with OS X, which I also love. Perhaps I'm a techie, but I think that a lot of the hate we see with Windows 8 is just growing pains.

So for people who perhaps want a look at some of the pros and cons of Windows 8, here is a list I can come up with after using it for a while. Please note that these are mostly subjective.

Pros:

  - Sand boxed applications.  The implications here are fantastic, and it means less tech savvy users can be safer using Windows.  
  - Full screen apps, and snapped apps actually work fairly well.  
    - These full screen apps are per screen for setups with multiple screens.  This is coming to OS X Mavericks which I'm really excited about!  
  - Hot keys allow for fast work!  (I can't say what is and isn't new in Windows 8, because I didn't try to optimize my work flow in 7 with hot keys)
  - The start menu UI is awesome once you are used to it, and much better than the old menu.  
  - HTML5 native applications.  From what I have seen it is not as easy as building a website though, which is too bad.  
  - Hooking up to a large screen TV is AWESOME.  With their design paradigm nothing is ever too small, and it feels so natural on a TV.
    - This is an area where both Linux and OS X have failed to me.  
  - Far better task manager (subtle, but awesome!)
Cons:

  - Failure on Microsoft's part to help users differentiate between a Windows 8 targetted app, and a "Desktop" app.  
    -  A proposed solution here would be to allow Windows 8 store apps to act as a desktop app, while remaining sand boxed. 
  - Desktop apps aren't sand boxed (see above).  
  - Windows store sucks.  
  - Full screen shouldn't be forced.  They made some good UI moves, but this is one that I wish they hadn't done.  
  - Command line (I mean, I just love bash way more, and no git bash isn't a fantastic replacement).  
  - Microsoft tries hard to force the use of GUIs.  Seriously I love using a shell to do most things.  
  - Start screen can be hard to manage for an average PC user.
EDIT Sorry for the formatting, I'm not really sure how to make the lists look pretty!
jmcdonald-ut··on Shopify POS
That's a great question that I don't have the answer to. I have done some development work for a Shopify site recently. As I recall Shopify's default inventory system would likely be limited for a company with multiple locations.
jmcdonald-ut··on Shopify POS
The one key advantage that Shopify has, as I see it, is that merchants who use Shopify already have their inventory loaded into the system. Synchronizing their online stock and physical stock now has little barrier to entry beyond the cost.
jmcdonald-ut··on Comments in JSON
I'm sure there are counter points to what I'm about to bring up, but three observations:

1. In my experience JSON is frequently output programmatically, and taken in programmatically. Comments are not useful in these cases.

2. The only time comments could be perceived as useful then would be when parsing JSON by eye or hand. However, it is not difficult to parse JSON and understand it unless the keys have used obfuscated names. If key naming is obfuscated, comments aren't really the correct solution.

3. "An object is an unordered set of name/value pairs", as mentioned by jasonlotito and others earlier. There is no guarantee that a JSON parser will give you the right value if there are two of the same keys in the same scope.

jmcdonald-ut··on How Apple Gets At-Home Workers To Work
I worked at eBay customer service back in the day, and this was exactly how it worked. In fact, they had automated call statistics not surprisingly. If you had calls within the average handle time (AHT), and high satisfaction and resolution scores you were mostly ignored. Managers pick a random call or two from the team, screen it, and move on. If you're struggling they're likely to listen to your calls and give you advice. If you're doing well, they tend to pull a call and analyze it in a group meeting for others to pick up your tricks. The managers at eBay at least (and Apple I suspect) are only concerned about their overall team statistics.

Many managers think fear works to improve stats.

jmcdonald-ut··on I'm learning to code by building 180 websites in 180 days. Today is day 115
I don't think most newbies can dedicate 10 hours a day, seven days a week for six months either. When I first started programming it was hard to sit still for more than an hour and remain focused. Really in the end her time elapsed over the course of six months will probably be equivalent to my time elapsed over my first year and a half, and I was dangerous by then.

So I agree, this isn't a good measuring stick for newbies who don't have the same time or focus.

jmcdonald-ut··on Probably not for hackers
I don't know the specifics, but perhaps the company's target market isn't hackers in the true sense of the word. Example: many people are "techies" but when you push their knowledge a bit further most of what they know comes down to trivial knowledge about product specs between two or three devices.
jmcdonald-ut··on Facebook news feed ads generate 49 times more clicks at 45% less cost
I read through the article pretty quickly, so forgive me if I missed something, but what qualifies as a click? Do "Likes" count as a click (for example)?
jmcdonald-ut··on CppCMS – High Performance C++ Web Framework
How did Java fail? Java servlets are still very much so in use. This is for back end code, and I can certainly see this being useful.

Edited to add that they mention that this won't satisfy every use case, and also what use cases they think it does satisfy. http://cppcms.com/wikipp/en/page/when_to_use_cppcms

jmcdonald-ut··on What it really means to be a “junior” developer.
As a student almost done with school something that I've noticed or watched is that a lot of CS students tend to get egos at a certain point about their work, myself included. I recall from my experience that I did group work with a good friend and pushed a lot of my ideas without really listening to all of his--because I was so confident in my ideas. After self inflection I realized that my doing this led to two problems: First it is just downright rude, and the second is that I limited my learning experience by not hearing other ideas and learning how to merge ideas to create a superior one. Even funnier is that in retrospect some of my ideas were downright stupid or would have been difficult to maintain.

My main takeaway from the experience was that every time my ego starts to inflate I should take a step back and breathe. I'm not some God coder, I have three years of experience. I realize that this doesn't quite parallel what the author was talking about, but I felt like sharing it because it was a hard lesson for me to learn.

Also, as an aside, my step dad has been developing for 25+ years. He's a really quiet guy, but when he gets talking I realize just how brilliant he is at this stuff. To those already in the field with careers just blossoming, watch out for those who are quietly smart, if he's anything like other developers sometimes they just don't feel the need to prove themselves to you.

jmcdonald-ut··on Redis-V8
This isn't true. Once you have tens of thousands of records, a poorly written algorithm or data structure is going to lead to O(n^2) behavior. That hurts. Even small sites can hit this amount of database records with ease.
jmcdonald-ut··on Report Shows Just How Wrong Silicon Valley Is About A Tech Worker Shortage
This is why things like internships or personal projects are so important for those pursuing a CS degree. Companies actively recruit from my campus, but lose interest quickly if the only thing you can talk to is your class or homework experience. What I find interesting is that, at least in my area (Utah), internships are readily available.
Page 1 of 2Next →