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

There's definitely a number of reasons, but I vividly remember _struggling_ with Ember data at the time. The framework itself was already complicated and the data management story felt immature and rigid in addition to complex. That definitely pushed me towards and a number of others towards backbone and eventually React.


> The best part about blog feeds? It's just an idea. There's no central authority. There's no platform.

I think this is blessing _and_ a curse. I had an idea that I built a while back that centralizes RSS feeds so you get the centralized benefits of social media while authors can own and control their own content.

If anyone's curious, I built it out here: https://onread.io but I never had the time to really share it out or push it beyond the SUPER basic MVP that it currently is. I was thinking about pivoting it more into a tool that I could turn into an RSS feed for myself, but I haven't found the time, really.

Either way, I don't think RSS feeds as-is are as useful as they once were, and social media still has significant value over feeds due to conversation, sharing of content to folks with similar taste and interests, etc.


I'd argue RSS more relevant and mostly void of the abuse of other systems and platforms.

The social component is exactly the problem for many.


You can have a modular monolith with multiple entrypoints that enable autoscaling of independent "deploys".


That’s always made sense to me in theory, but practically speaking a lot of logical units of service just don’t scale independently of your core service. Obviously this isn’t always true but I think it’s too easy to talk yourself into popping off new services and once you’ve built out the infrastructure for it and the incidental complexity is costly.


I had the same thought when reading the article too. I assumed (and hoped) it was for the sake of the article because there’s a stark difference between idiomatic code and performance focused code.

Living and working in a large code base that only focuses on “performance code” by default sounds very frustrating and time consuming.


Great article, memoization is pretty complex and full of trade-offs. We recognized a lot of these same pitfalls as we worked through making memoization a consistent and common pattern in our (very large, monolithic Rails) codebase via a `memoize def...` helper. The `false` and `null` pitfall is _surprisingly_ common, enough that it (and other pitfalls) warranted us writing our own memoization DSL.

We took the opposite approach of most libraries though (and a reason we rolled our own instead of pulling in an existing gem) by avoiding handling the complex edge cases that hide trade-offs:

1. Class methods can't be memoized.

2. Methods with arguments can't be memoized (so no LRU caches, weak refs, tracking arguments, handling default args, hash/deep object equality, etc)

The thought at the time was that those more complex scenarios deserve more thought than "prefix it with `memoize`". It's been a few years since we introduced the helper and after seeing it all throughout our codebase with no issues I'm even more confident this was the correct decision.

I haven't revisited it in a while, but I'd love to add some extra niceties to it, like hooking into `ActiveRecord`s `#reload`, although I dislike memoizing in models.


In TXR Lisp, I implemented an original invention of mine called Paremeter List Macros (Parameter Macros for short).

A parameter macro works in any lambda syntax. Methods, macros.

The documentation for Parameter List Macros shows an example implementation of rudimentary memoization.

https://www.nongnu.org/txr/txr-manpage.html#N-C9CAE162

You can use :memo in a method if you like, in a lambda expression, defmacro, macrolet, labels, ...: anywhere you have a lambda parameter list.

There is a predefined parameter macro called :key which implements keyword parameters. (Common-Lisp-like keyword parameters are not native to the language run-time at all: you have to use this param macro if you want them.)

Another predefined parameter macro called :match allows you to express a function with pattern matching. :match will take stock of your patterns and implicitly generate a parameter list which can take any of those patterns, and a function body which then further handles the cases.


I’m not sure if it changed, but Crystal was limited to a single core which I imagine made it easier to choose Go over Crystal.

That and I’ve found that folks often aren’t very receptive to Ruby like syntaxes initially.


This thread's context is large rails userbase around 2008'ish (people were changing computers from pcs to macs with textmate to do rails, perception of devs changed from nerds to cool kids - the whole thing was quite huge) that dissolved substantially. Crystal's syntax in this context feels like huge wasted/missed opportunity.


If we can’t have native macOS on the iPad this would be the next best thing. Imagine having Linux or macOS on the iPad that is treated like any other app (sans memory limits and etc.). You could have a full blown desktop at the ready when iPadOS isn’t up to the task.

The iPad could finally utilize the m1 processor to its fullest.


FWIW this is how it works on ChromeOS today. From the Linux terminal app (crostini lxc container) qemu launches macOS, Windows and Linux vms. They even support nested virtualization on my Framework Chromebook - so vms can run inside those vms.

I agree if Apple implemented virtualization on iPad/iPhone this same way it would be a huge for unlocking their full usefulness and capabilities while still maintaining host isolation/sandbox.


The irony of a monolithic kernel to use containers and VMs inside VMs all over the place.


I think this may miss the point of the article, which is pointing out that you can get a lot of value for very little effort by using a timestamp instead of a boolean. I don't think it's intention is to replace a complete change history/audit log implementation, which would require a significant amount more time/effort to implement.


The beauty (and horror) of Ruby is that you can do almost anything with it. I think this is a really interesting and clever use of the "can do anything" aspect of Ruby, although I think I'd prefer not to run into it in a production app.

Still, it's really cool to see how far we can push/mold the language to accomplish different tasks and patterns.


I'd even be happy with a performant VM app that I could run linux on at this point. It would be so nice to be able to swipe up and go from linux VM -> imessage, etc.


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

Search: