Hacker Newsnew | past | comments | ask | show | jobs | submit | edbrown23's commentslogin

I don't know how this actually works, but this can't _always_ be the case if they run national ad campaigns [1] for $5 meal deals, right? Unless they're baking a lot into "pricing and participation may vary"

[1] https://www.mcdonalds.com/us/en-us/full-menu/5-dollar-meals....


If you scroll down, in small text you'll see:

*Prices and participation may vary.

That said, McDonalds corporate isn't running promotions unilaterally. Instead, promotions are proposed by committees elected by franchisees and voted on by franchisees themselves, so participation rates tend to be high.


I've been slowly working on a web app that keeps track of cocktail recipes and all the liquor bottles in my home bar, then it tells me what drinks I can make right now. It's been a fun way to spend way too much money at the liquor store buying "just one more bottle", and I've found some new favorite drinks via these recipes.

It doesn't do anything amazing yet, but it's been fun to tinker with it over time and get back to coding as I do more and more management at work.

The website itself is here: https://barkeep.website, and I've been blogging about it here: https://edbrown23.github.io/blog/


Salsify | Boston, MA / Remote | Remote | Senior/Staff Software Engineer

Salsify is a leading CommerceXM platform that serves as the system of record and work for brands like Mars, L'Oreal, Coca-Cola, and many more across 80+ countries.

We're hiring a Senior/Staff Software Engineer to join our core data modeling and search/indexing team, working especially on scaling our most demanding services and APIs.

Apply via the job description here: https://ats.comparably.com/api/v1/gh/salsify/jobs/6172445002..., or reach out to me directly at ebrown@salsify.com


This definitely seems like the "Kafka" way to solve this problem, but I fear there are implications to this partitioning scheme I'd love to see answered. For example, partition counts aren't infinite, and aren't easily adjusted after the fact. So if you choose, say, 10 partitions originally, for a SKU space that is nearly infinite, then in reality you can only handle 10 parallel streams of work. Any SKU that is partitioned behind a bit of slow work is then blocked by that work.

It's doable to repartition to 100 partitions or more, but you basically need to replay the work kept in the log based on 10 partitions onto the new 100 partitions, and that operation gets more expensive over time. Then of course you're basically stuck again once your traffic increases to a high enough level that the original problem returns. If the unit of horizontal scaling is the partition, but the partition count can't be easily changed, consumers eventually lose their horizontal scalability in Kafka, from my perspective.


On the other hand Kafka partitions are relatively cheap on both broker and client side; 100 partitions does not require 100 parallel consumers so over-provisioning is not so risky.


Some of this may be valid, but you don't have to go very far to disprove your first point. A picture critical of Chinese investment in Reddit is in the Top 10 posts of all time on one of the biggest subreddits, r/pics [1]

[1]https://www.reddit.com/r/pics/comments/aohpmo/given_that_red...


For what it's worth, I don't think ruby achieves this goal either. I've been programming full time in Ruby for nearly three years and things like this [1] still surprise me. Ruby feels less surprising than C++, sure, but that's a pretty low bar to clear.

[1] https://makandracards.com/makandra/46939-ruby-a-small-summar...


Principles of least surprise (or astonishment), is one of cornerstones of Ruby. However, the language itself is dynamic, so take the end result with a pinch of salt: The language's OO syntax is beautifully simple, incredibly easy to structure into classes/mixins and have tons of useful libraries, to write code with. Not always so much for reading code, refactoring or discerning what REALLY goes on in a Rails application..


I think there is a great middle line for a language that is easy to work with, and provides enough safety to be maintainable for a long time. Environments like C++ and enterprise Java miss this middle line by being too cumbersome. However, Ruby equally misses this middle line, just in the other direction - it's too simple and dynamic leading to lack of maintainability in the long run. The best solution will be somewhere in between.


In my opinion, Kotlin, C#, and TypeScript all come pretty close.


My pet-peeve in ruby:

  '//'.split('/') # => [] instead of ['', '', '']
  '/'.split('/') # => [] instead of ['', '']
  ''.split('/') # => [] instead of ['']

  '//'.split('/', -1) # => ['', '', '']
  '/'.split('/', -1) # => ['', '']
  ''.split('/', -1) # => [] instead of ['']
In comparison:

  "".split("/") # => [""] in javascript
  "".split("/") # => [""] in python


But if "instead of" means "I expected," doesn't that also mean that Javascript and Python don't do what you expected?


JS & python both have:

'//'.split('/') => [ '', '', '' ] '/'.split('/') => [ '', '' ] '',split('/') => [ '' ]

so they indeed produce what parent expected.


To be fair, blocks, procs, and methods are fairly fundamental to Ruby. After a bit of study, they stop being surprising. I'm sure there are other examples, though.


This is such an interesting topic that is extremely difficult to discuss as people on both sides rapidly devolve to name calling. There's this[0] episode of This American Life which discusses some of this, but I haven't found many others.

The point of linking that is only to question whether there are people who want their culture to change more slowly for reasons other than prejudice. Should "obviously wrong" dramatic cultural shifts like gay marriage somehow be slowed so people can get used to the idea? Even in the linked example, there are clearly other forces at work (anti-Muslim propaganda) which seem to exist purely to make it appear that the culture itself is changing entirely, when in reality it's just becoming more mixed race.

[0] https://www.thisamericanlife.org/radio-archives/episode/600/...


I've had one for a couple months now, and it largely goes unused on a daily basis. I remapped caps lock to escape for vim usage, so my most common theoretical use of it isn't necessary anymore.

I will say, however, there are moments when it shows promise. The 3rd party app BetterTouchTool lets you put custom shortcuts on it, so I created some utility shortcuts for things I never remember how to do, like taking screenshots. In those moments it's very nice, but I don't think I'd think less of the computer without the touchbar.


I totally agree that things got pretty uncomfortable at times during the show, and the Brian Reed covered some perhaps excessively personal things, but I'm curious if you can go into detail on the bisexual erasure you mention. Are you referring to the perspectives on John's sexuality, or were there other instances I missed?


I'm referring specifically to how Brian talked about John's sexuality. While it's true that he eventually reports John's own words on the subject, otherwise Brian treats it as a dichotomy between gay and straight, and doesn't even talk about bisexuals, or even men who have sex with men (MSM), which is a distinct and important orientation in its own right.


I didn't think it was his role to explain this. The listener can draw their own conclusions from the material, I think.


Sorry for believing that journalists should report responsibly even in an informal podcast setting.


Generally systemd manages enabled/disabled services through symlinks in /etc/ (/etc/systemd/system/ on my Fedora 24, for instance), which you can add/delete in the shell if you want to. It's admittedly not plain-text, but manipulation-wise it's about equal.


It's using the default database (the filesystem) for it's configuration in that instance.


Nice - learned something new. Thanks!


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: