A lot of major C# features were first implemented in F#. I think of it as a place for Microsoft engineers/researchers to be more experimental with novel features that still need to target the CLR (the dotnet VM). Sometimes even requiring changes to the CLR itself.
In that lens, it has had a very large indirect financial impact on the dotnet ecosystem.
Yep, and moreover, the combination of most library design and general culture around the language reinforces the dynamic of using mutability only when it's needed or the most straightforward way to implement something, and contain that with immutable interfaces wherever possible.
My biggest issue with GRPC is direct mapping of ip addresses in the config or at runtime. From the docs: "When sending a gRPC request, the client must determine the IP address of the service name." https://grpc.io/docs/guides/custom-name-resolution/
My preferred approach would be to map my client to a "topic" and then any number of servers can subscribe to the topic. Completely decoupled, scaling up is much easier.
My second biggest issue is proto file versioning.
I'm using NATS for cross-service comms and its great. just wish it had a low-level serialization mechanism for more efficient transfer like grpc.
I was a speaker at this years Figma Config (ends tomorrow) and we all had to use keynote since it has way better support for video and animations than goog.
I’m sure that won’t be the case next year with this new announcement.
We use esp32-s3 at my company (smart speaker) but we don't don anything fancy.
Can you explain this? Why use esp as a peripheral if you already have an ARM chip?
We were considering moving off of esp to something that would make it easier do cpu-bound AI inference on-device or to enable more advanced audio DSP algos.
Based on cost and development time, it’s usually just easier to add an ESP and communicate to it using a generic SPI library or something than to add a radio to your PCB and get vendor libraries working on an arbitrary platform.
building a hardware company and shipping thousands of devices doesn't seem like a get-rich-quick grift to me. There are a lot of things rabbit can do that you couldn't do on an app since they own the hardware. Just shipped it too soon.
The product is definitely not super appealing to me yet in the current state.
> There are a lot of things rabbit can do that you couldn't do on an app since they own the hardware. Just shipped it too soon.
I vehemently disagree with both of these statements.
For one, as far as I can tell every single hardware feature on the Rabbit (sans rotary encoder) has been present on every phone I've owned since 2011. Forward and rear-facing camera - check, nice bright touchscreen - check, speaker and mic - check... it's all there. Rabbit's "ecosystem" excuse is just as hollow as when literally any other company does it. They're trying to project a halo-effect, and too many people fell for it. Are there any software features that are exclusively enabled by Rabbit's form factor?
For two, waiting to ship it probably wouldn't have solved it either. Humane got absolutely humiliated last week with their own offering, it was a now-or-never opportunity to stage them up or let them set the tone forever. I don't think interest in AI or AI-focused hardware is liable to skyrocket any more than cryptocurrency-focused hardware was. Both of these things are software solutions; using it to sell you physical hardware is a 100% pure marketing gimmeck.
I will slightly disagree with your first point. I also partially agree though. I agree that every smart phone has most of the hardware of the Rabbit R1. But, just because the hardware is there, that doesn't mean the hardware manufacturer provides APIs/callbacks/hooks to third party developers for every capability of that hardware and operating system. The software developer has to build within the confines of the OEM. Building your own hardware, or at least building your own firmware and OS for open hardware, lets you do more with that same hardware.
Now, if we're talking about the OEMs building Rabbit-like features into their phones then that I agree with, and I hope (and assume) that's what will happen now. Rabbit has already shown some features that our smartphones should be able to do quite easily, such as sending a selected photo by text or email. My hope is that Rabbit pushes Apple and Google to build some of the low hanging fruit into their phones/operating systems soon.
I agree with you on hardware but I'm not talking about hardware. I'm talking about UX. There is a huge difference between being iOS and being an app on iOS as far as access to the user of the device. There is no way to innovate on novel notification mechanisms, for example.
I think at the very least it's a kind of trend-chasing. If the AI hype dies down a bit will Rabbit AI continue supporting their product and customers or are they going to wipe their online presence and move on to the next trend like with the NFT thing?
I don't even think in this case it's a matter of the AI hype dying down (though it is, and will continue to do so as products like these fail to get actually useful) I think this is just a complete nonstarter. Like, there's just nothing here that isn't better executed with existing tech. If I want to ask my phone to order a pizza, I can set that up in a lot of apps with Siri shortcuts, or, and far more likely, just open the damn app and pick what I want. Why the shit do I want to carry around a Rabbit, and make sure it has wifi access, and keep that also on my person next to my phone that does all that shit already?
It's literally just another smartphone, that you only control with your voice which is the worst way to control a smart phone, and it'll offer suggestions I guess? And I guess if you don't want the suggestions you need to have a whole fuckin conversation with it.
Like, we've already been down this road. It's tremendously easy as a customer to just be presented a list of things to buy, pick what you want, and swipe your credit card. Rabbit is a regression to ordering things with a phone, except instead of talking to a person, you're talking to a robot. But that's not an improvement, and in fact in many ways, it's a step back.
I'm a millennial and I hate talking on the phone, but I don't want to talk to a robot, either. Just give me the damn app with menus and stuff and I'll browse them at my convenience and then pick what I want.
And even if I did want to talk to a robot, I'd rather just use the gadget that I already have for talking into, not yet another thing to lug around, keep charged etc.
Well the unit economics don't make any sense. You get unlimited free LLM calls forever? I don't really see the argument for it shipping too soon (although it is too soon for what they're claiming). There's a basic unit economics problem that can't be solved regardless of their future roadmap. They're promising people a no subscription model, claiming it eventually will have a Large Action Model and LLM for question and answering, and somehow those will be available free forever? It's either a get-rich-quick scheme, which sounds likely given their background as crypto grifters, or complete incompetence (somehow no one there ever thought what it might cost to do inference). Neither seems like a legit company that just shipped too soon.
While the rabbit, based on reviews I've seen, doesn't live up to its hype yet, AI assistants won't be able to do anything you can't do yourself on a smartphone or regular laptop.
Instead, the idea is they will be able to do these things for you, similar to a human assistant. Currently only rich people can afford assistants to manage their lives for them. This could be about to change.
But again: why do you want that? The pizza example is downright stupid, in no world would anyone prefer to tell an assistant, robot or otherwise, to order them a pizza. It's such a trivial task that outsourcing it to another entity, irrespective of what kind, is just less efficient, full stop.
And, even going for their big example: why would you want to outsource the planning of an overseas trip?! Planning a trip is the FUN part for goodness sakes! Choosing your destinations and building an itinerary. The only way I could see this is if you're so drowned in money and so utterly dead inside from years of casual overseas vacations that you just don't give a shit where you go anymore, and like, fair enough but a virtual assistant is not going to solve the yawning chasm of meaninglessness in your soul. You should probably see a therapist about that.
All of these things feel like faint imitations of something like JARVIS from the Iron Man movies, and look, if it worked like that as just a disembodied voice built into my home, and my cars, and my armored battle suit and my cell phones, hell yeah I'd have that. But the only way I would accept any technology that invasive is if I was running it on my own hardware, I will never, ever, in a thousand years give over that much hardware and privileged access to another pop-up company from silicon valley.
You're projecting so hard you might hurt yourself.
> in no world would anyone prefer to tell an assistant, robot or otherwise, to order them a pizza.
Sure they would, I'm one of them, I know many more.
> It's such a trivial task that outsourcing it to another entity, irrespective of what kind, is just less efficient, full stop.
Perhaps for you. As someone with a spinal cord injury whom at many times can not work a keyboard or a phone, a far simpler ability to get things done with my voice is something i've been looking forward too for some time and I hope continues to progress, especially as I age and things become more difficult.
> Planning a trip is the FUN part for goodness sakes!
What you enjoy and others enjoy is not the same. Your view of the world and what does and does not constitute a good time is not the benchmark or standard for anyone other than yourself. Again, you're projecting.
> I will never, ever, in a thousand years give over that much hardware and privileged access to another pop-up company from silicon valley.
I'd love for the iPod to come back. I have a small DAP, the Shanling M0, but it has not the iPod ergonomics. A phone can do what the DAP does, but not the way it does it. A better phone ergonomics would probably be a PDA.
(I'm not defending Rabbit R1 and I think it's useless).
I am not sure how active it is still but there was a pretty healthy ipod modding community a few years back if you are eager for those ergonomics with modern functionality.
This track is by an amazing, long-standing musician that goes by the name watson and I listened to their entire catalogue and made a playlist of my favourites to be able to easily select a piece that fits any game I'm working on. Their umbrella website MusMus is https://musmus.main.jp and whilst you'll need to run browser translation on the site you will see all their music sorted across many categories. That said, it is definitely easier to listen to their music through the albums they've released on streaming platforms: Spotify and Apple Music for certain, and probably others. They're also on YouTube.
Of course, there are many more Japanese services and people writing great royalty free music. Another of my games used royalty free music by a young Japanese musician named YuyakeMonster, again picked specifically to fit a particular game: https://soundcloud.com/mac-vogelsang/sets/sparrow-solitaire
It would be nice if I stopped needing to update the fsproj file for imports and hierarchy. If this could be dynamically built using a topological graph approach that would be a huge improvement. I don't use a heavy IDE so it's kinda tedious to need to update the fsproj file when i want to add a new file.
Personally I strongly prefer F#'s way, and I always enable it manually in C# by setting `<EnableDefaultCompileItems>` to `false`. It's so much easier to debug e.g. compiler deficiencies/bugs when you can just binary chop to find the file that's causing a problem, and the reason you can do this is the linear ordering of explicitly listed files. (In C# I generally just give up and hope that someone else will do it, because it takes so much longer; in F# it's trivial.)
What are you using as your development environment? Personally I don't find the overhead in Vim to be too onerous (`yypf"ci"NewFile.fs`), and even in Rider I routinely edit fsproj files manually. (I even create new projects mostly by hand.)
Speaking of LSP, the lsp standard is developed by Microsoft so naturally any dotnet language will have good lsp support.