I had an M1 Pro MacBook and I agree with you about not needing a new computer. However, it seems like things are at best going to be the same if not worse over the next 5 years with AI prices. I went ahead and updated because although I’m still happy with my M1 Pro today, I am unsure how it will fair over the next 5 years.
HN user
powersurge360
I’m sorry. I didn’t mean to come off as adversarial. I don’t feel like you have to get words exactly right to communicate. There’s lots of folks on hacker news and sometimes, for some reason or another, folks just don’t know an idiom, so I thought I’d point it out. Appreciate ya and I hope you have a good week!
I’m sure you can figure it out if you try. I maybe was overexpressive with “exclusive”, that was my mistake. Wrapping thoughts in words is lossy and generally making an effort to be understood implies the listener making an effort to understand, yes?
If you were to anticipate a failure for a soon to launch product, it is entirely appropriate to say “dead on arrival”. A similar metaphor might be calling the product “stillborn”.
You may be unfamiliar with the colloquialism. This one is exclusively for unreleased products.
https://en.wikipedia.org/wiki/Dead_on_arrival#:~:text=In%20a...
I don’t know if it works for windows but on other operating systems if you hold shift while pasting it strips the special formatting. I don’t have a windows machine readily available but I hope even if it doesn’t work there this will be useful to other people reading the comment. I agree though. Basically the only format I ever want to keep is _sometimes_ the link with text. And even then usually not the exact coloring/indicators.
lol I also have had this experience. I played DnD to get to know people and after two years I realized I only knew their characters. Challenging.
Tell your friend to look up the Western Reaches style of play. One of the core ideas is that you begin and end each session in a safe zone so that you can have a rotating pool of adventurers. You can tuck in some rules for having mercenaries for when you have fewer than the encounters are balanced for and you’re off to the races.
It does reduce the possibility of highly on rails campaigns and instead requires more of a sandbox plan with one page dungeons and stuff. Even so, it seems made to solve this exact problem.
I didn’t see it mentioned in the comments so I guess I get to be the person to post the quote!
“We are what we pretend to be, so we must be careful about what we pretend to be”
Excerpt From Mother Night Kurt Vonnegut
This is often quoted from Mother Night but it’s actually in the preface so I don’t know how many people actually see it within the work. Anyways, rather than self aggrandizing in the way the linked article is, the story in the book is a cautionary take. The book is about a Nazi propagandist that is secretly an American agent feeding broadcast lines to the Allied forces in subtleties in communicating his propaganda like pauses in between words and other tics.
The idea in the book is what does it matter to be a good person in private but a driver of evil in public? How much bad does it take to outweigh good and if you do bad things to effect something positive, are you absolved of those bad things anyways?
No, I think not. If you do ill to achieve good you are accountable to both. It is easy, sometimes, to imagine that some thing you’ve done has overridden and eliminated some other thing you’ve done but it isn’t really true. You’ve done both. I recognize I’m speaking in circles a little but I think it’s important to confront the idea that the things you’ve done are not undone by other things you’ve done just because you feel the ends have justified the means.
Remember that who you think you are is a private fantasy. Who you actually are is how you are experienced.
I keep circling this with AI and I'm not really sure what to do with it. They mention that the AI is meant to be used as reference only in the linked article but what does that actually mean? Who is checking who? Is the AI filling out the data from what it sees in the PDF and the user is expected to check it or is the user filling out the data and the AI is expected to check it?
Is the cost of AI useful if all you're doing is something like 'linting' the extraction? How do you guarantee that people really, truly, are doing the same work as before and not just blindly clicking 'looks good'. What is the value of the AI telling you something when you cannot tell if it is lying?
If you don't feel like you need the extra bells and whistles don't worry about it. The great thing about org-mode is it _is_ just plain text and all the magic is in the interpretation of the plain text. If you have yourself a table and one day ya want to do some spreadsheet magic on it or pipe it into a script easily, you can just check the manual for how to do it and KO it right there in the same place the data lives. Remembering how to do it afterwards is optional.
Personally, I use lazyvim in neovim and doom emacs in emacs and just kinda switch between the two based on what I feel like in a given day. NeoVim tends to have better treesitter/LSP stuff as well as marginally better performance, doom emacs has way better test running and org-mode and it is only a little behind neovim in that other stuff.
All the above is to suggest I think the question is flawed. BUT! To answer the question literally, my favorite thing in org mode that I've never seen anywhere else is the ability to dump babel blocks in my notes with code samples that are actually runnable and the output is able to be piped somewhere else.
Seems to be a problem with the gem website, consistently getting a 403 from some kind of GraphQL API.
ETA: I wonder perhaps if the job posting is in some kind of pre-published state? Or maybe something in our resumes is catching on some kind of spam filter. I sure hope not for the latter
I think GraphQL works its best magic when you are building your own unified data access layer for a backend. Your individual services can be backed by Postgres or Mongo or an in memory database, whatever, doesn’t matter. And from there a backend queries that, translates the data into a RESTful one, and passes it along to a front end Backends-for-Frontend style.
In this way services get freedom to define their stack while still neatly fitting into the suite of services, products get a tidy interface from which to query everything, and because the GraphQL consumer is more akin to a regular database consumer, the database muscle memory kicks back in.
I’ve also grown to prefer bespoke backends for each client over a super backend that tries to anticipate all of the needs of all the clients. It just opens too many holes and what it buys in versatility for the client author it also gives to the exploit author.
I used it full time with Doom in a mix of typescript, JavaScript, ruby, and golang for a while. I got frustrated with a few minor things like heredocs not highlighting the inner syntax (which isn’t a standard thing, but a nice to have) and with phoenix live components not having syntax highlighting if they are defined in an elixir file. I messed about with getting the tree sitters for that to work the way I wanted them to but ultimately I’m mostly back on neovim.
I still keep eMacs open every single day though and use org mode religiously and I am not opposed to digging through a project with eMacs because the code navigation is ever so slightly preferable. I think if it was just _slightly_ more popular and there were a few more hands on the doom eMacs project it would be no contest.
This minimizes things a bit. The definitive editions got torn apart for being ugly and poorly developed. It was a better experience to use the originals and mod them in many cases. This original version is still not available and people are still upset about it. Looks like the DE version of GTAIII currently has a 6 out of 10 on steam so it probably hasn’t been improved since release.
Chronic stone former here, requiring surgical intervention a few times a year.
It definitely can be sudden and debilitating but for most of my teenage years I had mistaken the pain for ‘sleeping wrong’. Sometimes when I would bend over and then stand it would feel like someone had stapled my back together at the bend and I had to rip it out. It hurt, but not anything like what I expected. A couple of years later I wound up having a few stones that had grown to larger than an inch.
If you have unusual and unexpected pain it’s definitely worth getting checked out. I didn’t have health insurance at the time and since the pain was intermittent I never suspected anything serious and just chalked it up to sleeping in a poor posture or maybe not getting enough exercise to be limber. It almost killed me!
You may consider using asdf or some other Python version manager to get a newer (or older) Python
It isn't literally the same thing as a company town but the concept from the headline at least is close enough to cause a pretty visceral reaction. Honestly, even as explained in the top level comment I am uncomfortable with my corporate employer having any rights to my property after I leave their employ no matter how 'weak' they may seem. Work should be a fair exchange of labor or product for capital, imo. It's more a symptom of housing being used as an investment than as actual housing for humans that this is considered a good deal. If housing wasn't increasingly difficult to come by, this wouldn't even be on the table as a compelling offer.
This was a concern for me but when the Remote Ruby devs had the AlpineJS guy on last year, he mentioned that you can pull them apart into data components, which provides a separation that I found quite tidy. Did you check this out and find it unsatisfactory?
Thanks for the suggestion. After reading this and messing with my config, looks like doom emacs has a variable associated with the theme that sets comments to have a brighter background to compensate. Thanks for the nudge.
I agree. The biggest thing I dislike about Tokyo night, though, is the comments are not very well contrasted against the background. Aside from that I like everything else though.
This really resonated with me, thanks for sharing. This lines up very well with my perception of success being composed of preparedness and opportunity. To me, Level One represents the cultivation of skill; preparing, said another way. Level Two is in the pursuit of opportunity and Level Three is the capitalization of opportunity. But the funny thing about opportunity is that it's mostly external to you. For sure, you can be in places where opportunity is more likely or try to find people who are passing on opportunities you'd like to capitalize on but I feel the most potent and useful opportunities are the ones that exist outside of your power.
All that to say that I don't think Level Two is fully intractable. I think it depends a lot on the opportunity density. In our field, for example, going through Level Two to work at a desk job where you don't particularly care where you end up or what you're doing is not that bad at all. In fact, it's just plain ole job hunting. But for sure in creative skills like musicians or classical art or any other skills where there are a few elite that have made it into Level Three, it is much more challenging to find your way through Level Two. There just isn't enough opportunity that can hoist you out of it.
Is this using an iPad for coding or is this using an iPad as a dumb terminal and using something else for development?
At the end of the day, that’s what makes an iPad unappealing for me as a development machine. If I am going to pay for an iPad and then rent an affordable VPS just to dev on then why not just buy a computer I can develop on locally right away? Sure, LTE is cool but it probably is more cost effective to go the other way and pay for a hotspot plan for your phone and tether your computer that way.
That being said, I do occasionally feel cool doing dev on my laptop remotely from my iPad using a combination of tailscale, tethering from my phone and using iSH to ssh into an emacs session.
This might actually be the first thing I've seen pop up organically about Elixir that isn't red hot glowing praise. Can you elaborate on what was going wrong and if it was anything specific to Elixir/Typescript?
It's org mode in emacs with the org-roam plugin. If I wasn't using emacs I would probably have a folder full of markdown files instead and leverage a project-based grep to search it. The real power in the system is that it's close to your editor and personal so you can iteratively build up your knowledge.
In particular, every GitHub wiki belonging to an organization or a public project itself is a git repo of markdown files that you can clone and commit to. I probably would use that for per project documentation w/ a separate folder for managing broader notes. I think it's important to separate the markdown from a project's code because otherwise you can have important markdown updates trapped in a branch that hasn't been merged yet and because git works by line rather than by word you can get into complicated merge conflicts by features that touch similar business concepts.
Org mode happens to add some niceties on top in that you can have an example code block (roughly comparable to a triple back-tick code block in markdown) that also can be executed. The example code block can take some arguments like what interpreter to use and will paste the output into another code block underneath the source code block.
Because org mode is also used for organizing tasks it is easy to use it as a scratch pad as you grind through tasks and if something turns out to be useful you can promote it to a top level note (or org-roam node). And even if it's not obvious that it's a note candidate, just thinking through problems 'out loud' in org means you can search and find it later when the same or an adjacent problem comes up.
Another favorite feature I like in org mode is that in any code at any time I can tap out 'SPC n l' and it will capture a reference to the file and the line in the file and allow me to link to it in my notes. It doesn't capture by line number but by copying the literal line, which means that as feature updates push the line number up and down, it still will be able to find exactly the right file in exactly the right line as long as the line's content hasn't changed. It also serves as a rather nice canary because if the docs link to a line that no longer exists, then the documentation has probably gone stale.
The last major win with org mode vs markdown is with org-roam, which borrows the ideas from the standalone program Roam Research (which also is very similar to notion). Every 'node' you make initially is a file and you can fill it in as a wiki type structure. Everything is flat on the filesystem and has a unique id prepended to it so you can't overwrite it with another node of the same name. There's also a UUID associated with each node so if you move from one place to another, none of the links need to be updated. Contrast that with a regular wiki or markdown where when you move a file to a new folder you either have to leave a redirect behind or go through and update all of the back links.
You can also start a node as a subheading and later on promote it to a full file with all the backlinks still working correctly.
I started using org mode years ago with spacemacs, got frustrated with spacemacs, and gave up until earlier this year when I found doom emacs and gave it another spin. I wish I had a better recommendation for an alternative but after looking for 4-5 years for something as good as org mode, I could never find anything. Notion seems like a popular alternative but there's also a lot of shiny bells and whistles in it that can cause 'productivity procrastination' where you spend time configuring and turning knobs instead of actually using the system. Ironically, the second best tool I found was plain pen and paper using a minimal bullet journal technique and taking special care to do indexing. Of course, you can't share plain pen and paper in that way, but the name of the game for personal use is low friction and ready access. The better a system scores on those two in term of note-taking the more useful it will be.
I am becoming increasingly skeptical that good internal documentation is even possible. I've been working in software development for around 12 years and have _never_ seen it done well and asking around the best I've heard offered up is the equivalent of an internal stack overflow.
For a while, I thought that maybe an exception would be having a technical writer on staff but after reading this post I'm significantly disheartened on that front too. I'd be interested to hear if anyone on hacker news has experienced good internal documentation and even more interested if any of you folks have experienced anything truly _great_.
For my contribution, I've found that documentation fails for a couple of reasons. The first is the burden of correctness. The people who most would like documentation are also the people who most need the documentation and they usually are also the people most likely to be reluctant to contribute to the documentation because they don't feel they can accurately represent the information. Imagine someone ramping into a feature and spending a few days reverse engineering how it works, collecting info, etc. Sometimes they'll put it up somewhere but a lot of the time contributing partial information feels 'wrong'.
And the second bit I find to be a big reason why documentation efforts fail is just the sheer friction of putting it into the documentation store to begin with. In confluence, for example, if you have a bit of information it can be tough to work out how to categorize it, where in the hierarchy it should go, etc, etc. Or if it's a GitHub wiki you want to put it somewhere that it is discoverable but also be careful that it's 'correct' because you don't want to break backlinks if it gets recategorized.
I've mostly given up on it at this point. Instead, I take detailed personal notes and make them publicly available. It doesn't have to be correct because being advertised as personal notes means that it's my opinion on the truth rather than objective fact. It isn't far away from my codebase, I can just tap a short keybinding in my editor to type my notes or search them and I can link directly from the notes to lines of code in files to jump back and forth. The particular system I use means that if I write a short snippet of code to solve a one off issue (like calling a path helper to derive a URL that I can't find in the interface) I can even drop it in a code block and execute it right from my note-taking tool. It isn't ideal for sure but I've gotten way farther in having a shareable knowledge base this way than I have in literal years of trying to get a shared, useful documentation store spun up.
I also have a 9 year old w/ ADHD and tried this with the reminders and he just turns them off lol.
It's been great for other things though. Facilitating social connections w/ friends (the cellular watch gets its own number) and the walkie talkie feature is awesome for when he needs to quickly check in for an opinion or if I need for him to come home and don't want to stand on my back porch and yell generally into the neighborhood like a maniac. There even was a mildly scary time this summer where his summer camp called us and said they wanted to confirm we got him early (we hadn't). We were able to shoot them a screenshot of his location data and politely ask them to get it together and they found him swinging on a tire swing at the edge of the camp.
I know linux is a future supported platform but as far as I'm aware, there's not a clear unified way to build bundles in this way across linux distributions. What kind of things are you folks considering if you don't mind my curiosity.
I know this is a Livebook love-fest, but you may also consider setting up org-mode sometime. There's a lot to love about org-mode but to stay on subject, you can write your documents in a plain text syntax akin to markdown and any of the code blocks that you add in as examples are _executable_. And you can take the output from one and pipe to another.
At work, for example, we have to hit a remote API and the secrets are stored in AWS secrets manager. I have some documentation that has a block describing how to get the secrets and some other documentation elsewhere describing how to issue a post request and I can pipe the output from one block into another and receive the output either in the same file or put it somewhere else.
The one downside with this extreme flexibility is I sometimes catch myself squirreling away useful functionality in my own notes instead of adding it in a utility CLI or similar where it can be shared with the team.
If having access to a scripting language is duct tape, piping output from one script to another in this way in a single file is like having inter-dimensional duct tape.
Thanks for linking this. I was interested in how it worked but I didn't know enough elixir to get around the codebase by myself. This entry point is very informative for how they managed to do it.
I just looked at the macOS part, but the tl;dr for that is they seem to have compiled the elixir program into a binary and wrote enough swift to manage the lifecycle of the elixir program and signed it and notarized it and prepared it for shipment using CLI via shell! invocations. I didn't look at the windows way of doing things but I imagine it's similar.
I, too, am interested but I'm not terribly literate in elixir yet. I am aware that you can compile executables in elixir with a release command but I'd be curious to hear more about (or at least be pointed to the specific spots in the code) how the bundling was done to give you a discrete application per platform, with app icon and everything.
Having a script that opens a web browser pages is simple enough, but the extra sugar on top to wrap in an app bundle that shows up in your task bar or dock is something I am very curious about.
EDIT: Someone further down the thread linked to a more specific place and that led me to the macos.ex file[1] (which is what I was most interested in, being on macOS myself.
It looks like at least in the case of macOS it will build the bundle by hand, template in enough swift code to build the application, sign and notarize a bundle, and add the compiled elixir program in there. Pretty interesting. I guess the idea is that you write just enough swift to manage the life cycle of the compiled elixir application. It's an interesting approach but it seems like it would be frustrating and fragile.
[1] https://github.com/livebook-dev/livebook/blob/355527f7e8034e...