1,915 karma · joined April 30, 2010
I write here sometimes https://ajsharp.com.
Except for static typing and ruby's particular style of metaprogramming (one could argue python enables decorator-based "meta" programming, but whatever), ruby and python are basically the same language, with some obvious semantic differences. Of course there is much about ruby and python that is very different -- adoption, library support, community, vibe, whatever. And you could say that python is at it's core functional with OOP layered on top, while ruby is the opposite, it's all sort of irrelevant, they are basically the same, in the fundamental daily experience of using the two languages, in that ruby/python and go (or java, or elixir, whatever) are very much NOT the same. Minus static typing support.
I'm optimistic ruby will figure this out soon, because the sort of static typing support that has propelled javascript and python is the kind that ruby can and should support. By that I mean neither really have static types. Typescript is another language that compiles to javascript, and python's typing support remains and probably always will be optional, and like javascript, is enabled by external tools (mypy, pyright, etc). Neither python nor javascript have a type-centric/aware runtime, or even one in which types are considered at all. They are still both very much dynamic languages that basically have nice developer tooling to help developers write "type-safe" code, but really, in production, we're just pretending that the types we work with in development exist at all in the runtime.
This is not so much a critique of the approach, but the mass pretending we do when we critique a language like ruby for "not having types" and praising javascript or python for "having types" which they clearly do not. But the approach is good, at least if you agree that optional typing is better than java/go style static typing.
I don't know what's holding ruby back from better supporting optional typing, but i hope they fix it soon. My sense is, to over-simplify, sorbet got too popular, but it's fundamentally an approach you would take if you had to build a type system around the language rather than in the language.
> The agent runs over port-forwarded SSH. It establishes a WebSockets connection back to your running VSCode front-end. The underlying protocol on that connection can:
- Wander around the filesystem - Edit arbitrary files - Launch its own shell PTY processes - Persist itself
When you ssh into a remote server as a client, afaik that server cannot execute arbitrary code on the client. At a minimum, the client would have to explicitly take action for that to happen.
Also, typescript has OOP support for a reason -- lots of typescript codebases make copious use of classes. Javascript tried to remain mostly functional for a long time, and people kept trying to make class-based OOP, so, they added it.
Finally, React is not a full-stack framework -- it's a framework for generating UIs. It has recently added support for server-side rendering, and NextJS has added support for that, but Rails and NextJS are very different. Rails is batteries included, NextJS is bring your own [everything] that happens on the server.
YMMV/to each their own/etc etc etc, but referring Rails as "fundamentally unserious" (github, stripe, shopify, i could go on) reflects the opinion of someone who either has an axe to grind with ruby/rails, or is willfully ignorant of it's capability.
1. Anti-trust activity takes a HUGE portion of the liquidity that does M&A out of the market. That has a dynamic effect -- other players who are not under direct anti-trust scrutiny think twice about their potential M&A activity. This, in theory, should reduce M&A prices (reduction in supply supply), but this is probably largely offset by point 2. 2. Inflated valuations from 2021 era. Lots of companies raised ridiculous late stage rounds around this period. Then interest rates rose. Now your company that raised on 100x ARR is worth a lot less than it was. But the company still has to grow into and beat it's last valuation. Combined with the M&A dynamics, it's much harder to justify a post-money above what your last raise was if that raise was a post-covid valuation, unless the business is just truly on ripping (e.g. Wiz).
Founding Sales https://www.foundingsales.com/
Maybe it's the environment? The language? The community?
I think certain people's brains work better with different languages. Often there's an overlap with community. I started my career in ruby, and still write it as much as I can, though these days, not usually for "work". I love writing it, and it's creator wrote it to be loved when you're writing it. Even though python shares a lot of similarity with Ruby, I find it frustrating in a lot of the little details and design decisions, and I just don't enjoy writing it like I enjoy writing Ruby.
I don't particularly enjoy writing javascript, but I've always enjoyed writing Swift. I also enjoy go, though find some of it's design decisions on the margins perplexing, pedantic and annoying.
Experiment with different languages. Find something you understand, that your brain doesn't have to fight with.
Also, get a hobby that has absolutely nothing to do with computers. Do something tactile -- baking, carpentry, fixing things. The raw difficulty of manipulating things in the real world is both deeply satisfying, and gives me a deeper appreciation for the ease and elegance of manipulating computers with software.
Hope this helps. Good luck.
Their event pricing would require you to log something on the order of tens of millions of events to get at a 10k monthly bill. If you were turning it on in a high-volume environment, how did you unexpectedly run up a 10k bill after doing the math in half a day? Something about this doesn't add up.
FAR better wrt both response times and technical expertise than you'll get with any large public cloud provider.
I was dealing with some annoying cert + app migration stuff (migrating most of an app from AWS to Fly), and Kurt (CEO) was personally sending me haproxy configs bc I'm not smart enough to know how to configure low-level tcp stuff in haproxy. Not to put him on the spot here -- I doubt he'll have time to do that level of support going forward -- but that's my experience of the company's dedication to support and technical expertise.
This is going to sound wild, but believe it or not it takes quite a bit of capital to reserve capacity in data centers ALL OVER THE WORLD in order to, like, deliver on your core value prop of enabling deploying normal apps AT THE EDGE. This used to just be called making a capital investment (because it takes a lot of upfront capital), but then it became en vogue to whine about venture capital.
You may want your hosting provider to be capital poor and running a razor thin balance sheet on the brink of insolvency (aka bootstrapped) but I don't. Or you might want to lease your own space in a colo and rack your own servers and hire your own remote hands and your own sysadmins and dev ops with 24/7 coverage so if you have a hardware failure you can deal with it asap but I don't. Not having to do all that shit takes...capital.
Where would you have them fetch said necessary capital if not from venture capital firms?
Honestly, do you even know what you're bitching about? A theoretical monopolistic reality that a. does not exist and b. would not exist if fly did not theoretically create a product so good it made all their competitors irrelevant (note: this is not a monopoly, it's market dominance; they are very different)?
And honestly, if they're still around in 5 years, they probably should raise prices so they can continue to be around. Fly is literally orders of magnitude cheaper than running on AWS, and orders of magnitude easier.
Take your aimless cope elsewhere.
The only interesting question in these SEC settlements is where the funds go?
Insider trading is not real buy-side demand pricing information because the insider (typically) intends to sell as soon as the price pops, once more market participants have been pulled into the trade because it's going up -- key knowledge the insider knew the market did not.
Markets as a price discovery mechanism relies upon all participants having access to the same information. Insider trading clearly breaks that fundamental rule.
If you're OFFSET-ing, say, 1000 records, I believe the database needs to load those 1000 records in some way, to exclude them from the result set (it's possible mysql does this differently than postgres). With a ranged query and a cursor (e.g. select * from tweets where created_at > CURSOR LIMIT 20) is, generally, more efficient. But cursored range queries don't make sense in a lot of cases and often come with some additional complexity in the code.