Recent submissions

Comment · 6 months ago
It's a unique idea that I could see being useful in select situations. The reliance on wearable microphones sounds like a downside.

Also I guess this might be annoying for pets that can hear well beyond 20 kHz.

Comment · 7 months ago
Can you make some of my repeating settings savable? If I have to send invoices to 5 clients I'd prefer to not have to fill in the same stuff over and over again!
Comment · 9 months ago
Nice project! I built a CLI budgeting project a long time ago, and what made me stop using my own project was the lack of automated integration with my bank accounts. At that point I had many credit cards, multiple bank accounts, in different currencies, and integrating all expenses was just too much manual work.

I wish financial institutions were better at automated exports of your financial data, given the right permissions of course.

Comment · 11 months ago
Of course a bit anecdotal, but not once has either Gemini or ChatGPT suggested me anything with eval or shell=True in it for Python. Admittedly I only ask it for specific problems, "this is your input, write code that outputs that" kind of stuff.

I find it hard to believe that nearly 50% of AI generated python code contains such obvious vulnerabilities. Also, the training data should be full of warnings against eval/shell=True... Author should have added more citations.

Comment · 1 year ago
I've always liked scatter solutions for these kind of problems:

  import numpy as np
  
  def scatter_mean(index, value):
      sums = np.zeros(max(index)+1)
      counts = np.zeros(max(index)+1)
      for i in range(len(index)):
          j = index[i]
          sums[j] += value[i]
          counts[j] += 1
      return sums / counts
  
  def scatter_max(index, value):
      maxs = -np.inf * np.ones(max(index)+1)
      for i in range(len(index)):
          j = index[i]
          maxs[j] = max(maxs[j], value[i])
      return maxs
  
  def scatter_count(index):
      counts = np.zeros(max(index)+1, dtype=np.int32)
      for i in range(len(index)):
          counts[index[i]] += 1
      return counts
  
  id = np.array([1, 1, 1, 2, 2, 2]) - 1
  sales = np.array([4, 1, 2, 7, 6, 7])
  views = np.array([3, 1, 2, 8, 6, 7])
  means = scatter_mean(id, sales).repeat(scatter_count(id))
  print(views[sales > means].max())
Obviously you'd need good implementations of the scatter operations, not these naive python for-loops. But once you have them the solution is a pretty readable two-liner.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton