10,000 Matching Annotations
  1. Jun 2026
    1. Premise 1: Humans hand-edit content. Markdown was designed for people who write and revise their own text. That’s how blogs, docs, and READMEs still work. But agent output is different. You send a prompt. The agent generates a 2,000-word analysis, a code review, a project plan. You read it, maybe share it. You almost never open it in an editor and start rewriting paragraphs. The format’s core value proposition — easy to edit by hand — no longer matches the use case.
    2. Premise 2: Content is small. A 500-word blog post renders fine in Markdown. A 3,000-word agent-generated implementation plan with architecture decisions, trade-off tables, and code samples does not. Past about 100 lines, Markdown becomes a wall of text. No navigation, no collapsible sections, no way to jump to the part you care about. Thariq’s observation is blunt: “Nobody really reads a Markdown file longer than 100 lines.”
    3. Premise 3: Output is read-only. The old workflow was linear: prompt, generate, read, close. But the agent era is pushing toward something different. Users want to interact with the output: filter a table, adjust parameters, compare options side by side, export a subset, feed the result back into the next prompt. Markdown can’t carry interaction. It’s a one-way street.
    4. The second wave was knowledge workers. Through the 2010s, tools like Notion, Obsidian, and Jekyll built their entire editing experience around Markdown. It became the default for wikis, note-taking, and static sites. The appeal was the same: human-readable AND machine-parseable. You could write it in any text editor and render it anywhere.
    1. Yeah, and it's like -- that is an interesting potential possibility, I guess... Talking to people about partnerships, or "Do we want to have an official hosted version?", open sourcing is a little bit risky, because somebody could technically go along and do that. We talked about licensing issues, maybe there is a license that I could use to prevent that... But really, when it comes down to it, after talking to people, there's not really -- I think you burn more goodwill with weird licensing issues like that, than trying to prevent that. \[01:00:01.19\] So I think the best thing to do is just to get out in front. And if we're going to do that, then we just need to do this sooner rather than later, and prevent some side company from trying to take this and do that.
    2. and it's like "You're almost making half of what I make." But when you think about it as a business income stream, suddenly if I have to hire one developer even just part time, there goes almost all that money. That's not even enough to hire a developer part-time, somebody who would be really skilled enough to work on Actual. And so money from a business perspective, having to set aside $20,000 to invest in development for a couple months - if you're a business and you can't afford that, that's a huge problem. But 20k for a personal -- you know, if I'm about to buy something for 20k, I agonize over that for week. I hate buying cars, because they are so freakin' expensive. But 20k in business money is nothing, right? I mean, for most businesses, that shouldn't be anything, if you're doing it right. So 3k - a lot of people were like "Dude, you're giving up $3,000 a month." To me, it's just like, you don't understand the burden, because I was lonely, and the next thing I really needed to do is either find a co-founder, which I couldn't do, or hire somebody else to help development. Like, properly hire; don't outsource some cheap labor. Properly hire somebody to help development. And $3,000 a month is not anywhere close to being able to hire somebody out. So you're kind of stuck in this awkward middle phase, which I think happens with bootstrapping, right? You've got to really bear through that awkward phase where you make enough money, to get to the point where you can start hiring out.
    3. So it wouldn't have felt good to have this small exit, plus maybe alienate some of your most loyal users... I understand why that is not the best route. And so open source is the path that you chose. And of course, that's the opposite of alienation. It's inviting everybody in, right? To a certain degree. You do have the ones that don't want to set it up and can't code, and all that. But instead of spending your goodwill with a sale, you're almost buying goodwill with open sourcing, because now you're just giving a gift to the world.
    4. I bet if I had sold, it would have been even... Like, there's a lot of people who reacted to open source where they are worried about not being able to set things up themselves, and it totally makes sense, because they're not technical users, but they're happy for that direction. I think if I had sold, it would have been a very similar response from a lot of people, where they're going to leave the app... But it would have been like an angry response, which - I mean, honestly, a lot of apps do that. Things change and things happen. But I think it would have -- I think there's a lot of trust in there that it's like I've been saying I'm in it for the long haul, and then you turn around and sell it... Which, you know, it would have been my right to do to be honest, but it still would have pissed off a lot of people, and I didn't really feel like dealing with that.
    5. But to be honest, somewhat groundbreaking innovations to use SQLite in a persistent way in the browser, but it stores the file chunks in IndexDB, and it actually blows away IndexDB's performance. It's a significant undertaking; we're dealing with writing C code to optimize file disk access, so that it works better with IndexDB. So it's not something that's a typical SaaS app that a company is going to come in and buy, and then suddenly like "Let's ramp it up to get 20,000 users and just scale it out in all of the ways that are normal, that we're used to."
    6. one thing that I would say is if you are building a product, or if you are trying to achieve anything, try to do it quickly, and make quick decisions, and move fast... Not just so that you will make progress fast, but when something kind of slows down... Like, if I was a year into Actual - when you've been doing something for a while, it's really easy to just keep that pace. It's really hard to -- I don't know, if I have a problem on my house, like fixing a toilet that's been broken for a year, there's something about the psychology of it that's like "I'll fix it next week. It's already been a year, I'll fix it next week." Whereas if it broke yesterday, I'll probably go out to Lowe's this weekend, come back, it's a 15-minute fix, and I'll fix it, right? There's some psychology there that's interesting, where if you aren't acting on things fast, they just sort of become this pile of responsibility behind you that you just sort of ignore. I think that's one thing that sort of happened, to me at least. It's like, "I've already been working on this for so long... Let's just keep building a couple more things."
    7. The start of the idea is if you've got a broken window, you can fix it right now. Because if you leave that broken window broken, I think it's a signal, and maybe a signal to the outsiders that no one's taking care of this house, or something. But also, it's kind of like, you know, then the next thing breaks, and you're like, "Well, the window's already broken, too." It's kind of like "Well, I'm already not taking care of this, and so..." Adam Stacoviak: \[32:18\] Yeah. Jerod Santo: Oh, here, we've got "Neglect accelerates the rot faster than any other factor." That's Jeff Atwood talking about the broken window theory, so I've found it a little bit. So there's a little bit of that going on there. I definitely understand how that is. Adam Stacoviak: It's a metaphor that leads to the disorder, essentially. If you have a broken window here, in this house - well, then your neighbor is gonna be okay with their lawn being not so good. Or your neighbors don't want to deal with their landscaping, so you don't... It's almost like osmosis, in a way. You sort of do things based upon other things happening around you... It's disorder that happens because of other disorder. It's kind of like that.
    8. I finally found a good service, who helped me find a personal assistant, a virtual assistant, who helped manage support. And she was amazing. I was feeling very guilty, because I had, I think, 200 unread emails that I just lost track of over a month or so, that I hadn't responded to. In two days, she brought that down to zero. Just answered everything, and categorized everything, and just really cleaned it up. And then at that point, she would take on support, and that was a huge help. So that was good. It's not development, where it was super, super-expensive. I think you can find places to pull off and get help that isn't going to drain your whole finances like hiring other developers, or something.
    9. I tried out a contributor model where people were just interested; people would ask a lot, actually, "How can I help contribute?" And so I'd bring on some people, and then obviously, as just a free contributor, they do a little bit of work and then they just kind of fade away. It's just how it is. And then at that point, it's something even else more for me to manage, helping them, getting them running, sort of mentoring them and helping
    10. For example, local-first. The app is just -- Jerod Santo: Fast. James Long: ...fast by default. I mean, it's no question. That's the first thing that everybody always says when they try the app. They feel it. They feel their data sitting right there on the hard disk. And I don't have to think about it. I can run 100 queries straight from the frontend, not even in the backend. So there is kind of a frontend and a server process running, but that process is always a local process. I can run queries, send them to the server, and I can fire off 100 right from the frontend, and you don't feel that at all. It's one of those things that just changed the whole experience of the app. There's no - you do a bulk edit of your 3,000 transactions in an account, because you're doing something crazy and you're really restructuring things, and you bulk-edit things to add a note to these 3,000 transactions, so you select them all and type "archived". It happens in 200 milliseconds. Whereas you go to any other app and there's this huge cliff of anything that's outside of the ordinary workflow that they've specifically manually optimized - suddenly it has to span their five database clusters, and it takes you'll see the loading spinne
    11. So that was Mint's deal. That's what really put them on the scene. And then they started just layering on kind of upsells and other things. I eventually was like "Yeah, I'm done with Mint", because it got yucky for me as a user.
    1. I'd vote against this change. It can be really useful as-is for certain groupings. For example, I often type "inc" when categorizing to bring up the income categories. The current behavior is also how it works in YNAB: The "which are not selectable" point in the original comment is valid though. YNAB handles this by shrinking the text size of the category group names, as you can see in the above screenshot. Maybe this Issue could be modified to be a UX change (shrinking the category group name text) instead of a functionality change, such that it's clear the category group names are no selectable.
    1. This repository uses lodash style issue management for enhancements. That means enhancement issues are automatically closed. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution).
    1. Using Hold for Next Month will ensure that the funds are no longer available to budget in the current month but can still be allocated to the budget in any subsequent month. This will be particularly useful for those who are looking to stop living paycheck to paycheck and instead gradually get one month ahead i.e. living on last month's income rather than this month's.
    2. We find the best way to track your money is rooted in something called envelope budgeting. Instead of predicting how much you'll make and spend and trying to reconcile that with what actually happened, envelope budgeting embraces real income as the source of your budget instead. This means you can only budget money that you already have. You can think of categories as little funds that you deposit money into. Combined with our rollover system, it provides an intuitive way to handle a lot of things that come up in life. And you know it's always accurately depicting your finances — there's no made up numbers.
    3. That's why we automatically sync all of your data to your selected server in the background. You get the best of both worlds: all data is local by default, but if internet is available, your data is seamlessly backed up and synced to all other devices. This is the opposite of most apps which heavily rely on the internet to be available.
    4. In February 2025 the actual-server repository was merged into the Actual repository. The reasons for this change are as follows: Streamlines Development: Developers will only need to clone/sync one repo instead of two. Improves Debugging: It makes end-to-end debugging for server/client easier as they will be in the same workspace. Simplifies Desktop App Packaging: Enables the desktop app to embed the sync server. Ensures code consistency and reduces the maintenance burden. Simplifies the release process
    1. YNAB expects you to put your money into budgets based on whatever money comes in. But that's not how Firefly III works. Firefly III works the other way around. At the start of the month, you decide what you want to spend. If everything is OK, your budget should at least match what you earn. So that's easy. But if everything is better than OK, you budget less than you make, and you save the rest. You can use the rest of the money to fill piggy banks or donate to me (kidding ;)).

      But that's really not so different from Actual Budget approach!

      At the start of the month, you decide what you want to spend. If everything is OK, your budget should at least match what you earn. So that's easy.

      Same. Every dollar coming in has a purpose.

      But if everything is better than OK, you budget less than you make, and you save the rest.

      Same. The only difference is that you explicitly decide (or change your budget after you realize you have extra -- this is allowed and encouraged) that the purpose for the "remaining dollars" is "savings". Seems the same to me.

    1. Actual is local first; the database that powers Actual Budget, and ultimately your budget, lives on your device. It is not stored on a server. "Actual server" allows you to sync changes to your budget on different devices. To do this, only the changes to the budget are sent to the server. The server stores the messages, and the local client pulls down the change(s).
    1. One thing to keep in mind: Actual is not like most other apps. While your data is stored on a server, the server does not have the functionality for analyzing details of or modifying your budget. As a result, the API client contains all the code necessary to query your data and will work on a local copy

      why doesn't it?

    1. Meaning: Happening without interruption. Think of a smooth, unbroken line moving upwards. It implies a constant flow of small improvements happening all the time. Focus: Maintaining momentum and making incremental changes consistently. It’s about embedding improvement into daily work.
    1. When two transactions are merged, one is determined to be the 'kept' transaction and the other is the 'dropped' transaction. Any empty fields in the 'kept' transactions are copied over from the 'dropped' transaction and the 'dropped' transaction will be deleted. So, if the 'kept' transaction is uncategorized or has no payee, the payee and/or category will be copied over from the 'dropped' transaction before it is deleted.
    1. For decades, code contributions have been how open source projects learned who to trust. People would show up, do the work, take responsibility for their changes, and stick around. Over time, trust emerged from the work itself. AI tools have changed the economics of this very quickly. We use them ourselves every day, but a pull request no longer tells us as much as it used to about the person submitting it. A substantial patch used to imply substantial effort, and that effort was a reasonable proxy for good faith. That assumption no longer holds. For a browser, this matters. A browser runs untrusted input from the entire internet on the user’s machine, and one well-disguised vulnerability is all an attacker needs. We have already seen patient, well-resourced campaigns in open source to earn maintainer trust and abuse it. What has changed is how much faster and cheaper it has become to produce work that looks like a serious contribution.
    2. At the same time, every change that enters Ladybird becomes our responsibility. It has to fit the architecture, survive future refactoring, interact correctly with the rest of the browser, and be understood by the people maintaining it. Whether code was typed by hand is beside the point. What matters is who is responsible for it once it enters the browser. Ladybird is becoming a browser for real users. The people introducing changes to it must be the people who decide those changes belong in the project, and who will answer for the consequences.
    1. We're hoping that together in the open-source, local-first community, we can build something better than any closed-source alternative. The code is open-source because I believe that fundamental tools shouldn't require trusting a black box. Companies pivot, get acquired, or shut down. But open source is forever.
    2. I really like hands-free voice dictation. For years, I relied on transcription tools that were almost good, but they were all closed-source. Even those claiming to be "local" or "on-device" were still black boxes that left me wondering where my audio really went. So I built Whispering. It's open-source, local-first, and most importantly, transparent with your data. ​​Your data is stored locally on your device, and your audio goes directly from your machine to a local provider
    1. This is why I am very careful about how I make "useful" software and release it to the world without any solid way for me to get paid for my efforts. I simply do not want to be in a situation where my software that I develop as a passion project on the side is holding people's companies together. That's why I make software how and where I do. Like, no offense, but I really do not want to go unpaid for my efforts. The existing leech culture of "Open Source" being a pool of free labor makes it hard for me to want to have my side projects be actually useful like that unless you pay me.
    2. If you want me to make you useful software, pay me. If you use software made by others in their spare time and find it useful, pay them. This should not be a controversial opinion. This should not be a new thing. This should already be the state of the world and it is amazingly horrible for us to have the people that make the things that make our software work at all starve and beg for donations.
    1. 3. Each follower develops behavioral patterns of frequent and regular accountability for obeying God's instructionsand passing them on to others in a loving environment. This requires a participative small-group approach.

      This seems to mostly be referring to small accountability groups. It's not entirely clear to me whether "requires a participative small-group approach" could also be referring to gathering in house churches.

    2. 4. Each disciple is equipped in comprehensive ways (such as interpreting and applying Scripture, a well-rounded prayerlife, functioning as a part of the larger Body of Christ, and responding well to persecution/suffering) in order that theymight function not merely as consumers, but as active agents of Kingdom advance.
    1. Disciples make disciples. That’s one generation. When a disciple makes a disciple who makes a disciple, that’s two generations. By the time you reach the third or fourth generation, the disciples may not know the name of the original disciple in the chain. Churches generate new churches. That’s one generation. When disciples who are part of one church make disciples who establish another church, and disciples from the second church make disciples who become yet another church, that’s two generations. This is how movement happens. This is how disciples and churches multiply into neighboring tribes and countries as the Spirit moves.
    1. Our Disciple Making Intensive (DMi) is a training pathway designed to equip emerging leaders with a vision to catalyse disciple-making movements (DMM). Throughout this journey, participants will learn to embody the core values, principles, and practical tools of DMM, gaining the “DNA” needed to lead effective disciple-making teams. This training transforms participants’ “head, heart, and hands” as they prepare to multiply new mission works in the specific fields—people or places—where God has called them.

      training -> teams

    1. Outreach Canada is made up of several ministry teams – all with their own unique contexts and specific focuses, spread across our country. What’s the common thread? How do we all fit together?  At Outreach Canada, we refer to ourselves as a “Family of Ministries”.  One of our newest additions to our family is our Disciple-Making Movements team (aka Becoming Disciples Who Multiply).

      This seems to be a different usage of disciple-making team, more of a centralized team within an organization that trains others or promotes DMMs? Hard to tell...

    2. Our Disciple-Making Movements (DMM) team in also active globally. One example of this is a missionary involved in DMM training in two Asian countries serving 178 churches and 1500+ leaders.

      This seems to be a different usage of disciple-making team, more of a centralized team within an organization that trains others or promotes DMMs? Hard to tell...

    1. This is a very important step. As I’ve talked to people connected to movements overseas or read some of their writings, I continue to hear something very surprising. They often say that their greatest resistance in making more disciples comes from “traditional Christians.” By traditional Christian, I think they just mean Christians who go to traditional churches and think everyone should do things the way they do things. The truth is that traditional Christians often resist what they don’t understand or don’t like.
    2. In Revelation 2-3, Jesus says one thing to all seven churches: “Anyone with ears to hear must listen to the Spirit and understand what he is saying to the churches” (Rev 2:7, 11, 17, 29; 3:6, 13, 22, NLT). How might this apply to us? We must listen to the Spirit and understand and obey what he is saying to the church. The Spirit still speaks! Do you know what the Spirit is saying to your church?
    1. The New Testament provides substantial instruction to guide church leaders but stops short of mandating some of the rituals the American church holds, such as meeting on Saturday or Sunday mornings and delivering a 40-minute message to a group of people sitting in rows. Organizations of any kind must embrace adaptability in order to navigate the constant change that is inherently a part of the global society in which they function. If a church’s current form is not leading to disciple making and flourishing, leaders can be encouraged that the Holy Spirit empowers churches in many different shape and forms. Two practices church leaders can undertake to cultivate an openness to adaptability are engaging in collective discernment and becoming a student of other church forms.
    2. Farah (2020) makes the distinction that DMMs are not anti-institutional but anti-institutionalization. Institutions add structural value to movements but, when applied improperly, can stifle multiplication (Farah, 2020). Disciple making movements are polycentric, characterized by multiple centers of sending and receiving (Farah, 2020; Handley, 2022). The central identity points are Jesus and the Bible, not a specific denomination or source church (Farah, 2020).
    1. Home fellowships are the heart of our movement. In places where traditional church buildings cannot exist—whether for cultural, security, or political reasons—small groups of believers gather quietly in homes. Families and friends open the Scriptures, pray, and share meals together. It is in this context of family and friend groups that the Kingdom of God is transforming lives. These simple fellowships are multiplying, becoming self-propagating, self-sustaining, and self-governing discipleship movements rooted in the New Testament pattern.
    1. Jesus was walking by the Sea of Galilee and saw Levi sitting in a tax booth. “Follow me,” Jesus commanded. “Levi got up and followed him” (Mark 2:14, NIV). The next scene is at Levi’s house. Levi has invited all his business associates and sinners to a large meal to introduce them to Jesus. Levi was a person of peace.
    2. I should note—a person of peace may not have accepted Jesus as their Lord and Savior but still be open to the Gospel message. It’s this openness to those sharing the Gospel that shows God is already working within their lives.
    1. It is our prayer that this training will help you in your personal efforts and in your church’s efforts to make disciples for the Kingdom of God. We hope that you will view your experience with eLife and beyond as helping you expand the work of Christ’s Church, and not as serving as a representative of eLife, trying to carry out eLife’s programs or to promote eLife in any way. What we have shared and will share with you does not belong to eLife, but is intended to be given away for the good of the Body of Christ. Please do so with our blessing towards the goal of fulfilling the Great Commission.
    1. In The Fall of the Evangelical Nation: The Surprising Crisis Inside the Church, Christine Wicker writes, “Evangelical Christianity in America is dying. The great evangelical movements of today are not a vanguard. They are a remnant, unraveling at every edge. Look at it any way you like: Conversions. Baptisms. Membership. Retention. Participation. Giving. Attendance. Religious literacy. Effect on culture. All are down and dropping. It’s no secret…”
    1. Strict No LLM / No AI PolicyNo LLM-generated content, whether it be code or prose.No paraphrasing LLM-generated content.No LLMs for editing, including fixing spelling or grammatical errors.No LLMs for translation. English is encouraged, but not required. You are welcome to post in your native language and rely on others to have their own translation tools of choice to interpret your words.No LLMs for brainstorming and then sharing the results of that brainstorming, even if you create the prose. If you use a chatbot to give you advice on a comment on the issue tracker, that comment is unwelcome.No LLMs for finding bugs.

      Seems kind of extreme. But https://www.youtube.com/watch?v=pkndFYSTr0Y gives some more context (an interview) that kind of explains their stance (limited maintainer time/attention; education).

    1. Deploying modern web apps – with all the provisions needed to be fast and secure while easily updateable – has become so hard that many developers don’t dare do it without a PaaS (platform-as-a-service). But that’s ridiculous. Nobody should have to pay orders of magnitude more for basic computing just to make deployment friendly and usable. That’s a job for open source, and Rails 8 is ready to solve it.
    1. Are native iOS and Android apps available? Campfire is designed to work beautifully on the mobile web — either as a tab in your mobile browser, or as a PWA (Progressive Web App) which you can launch right from your mobile device’s home screen like all your other apps. And like native apps, you’ll get badges on your icon and push notifications if you’d like.
    1. See, all programmers are equal, but some programmers are more equal than others. If you're a programmer being assisted by AI, you're not a real programmer. Therefore you aren't entitled to the same supposedly universal open source rights. Or so the self-serving thinking goes in the growing number of anti-agent camps springing up as part of a modern Luddite movement.
    1. Because that's the enterprise sales game. The haggling, the hoodwinking, the game-playing. The let's-see-what-we-can-get-away-with bullshit that brings meaning to the life of suits duking it out in a negotiation contest. That's what WINNING the deal is about. Snookering the other side.I can't stand it. In fact, I loathe it.
    1. It's hard to know what'll stick around when shopping for software online. Popular services and crucial products get shut down all the time. You can't even trust that major conglomerates like Google to provide something you can count on two-five-ten years from now. And if you're betting on something backed by venture capital, well, you know that the odds of permanence are as long as can be. It needn't be this way.
  2. May 2026
    1. Accessibility barriers in research are not new, but they are urgent. The message we have heard from our community is that arXiv can have the most impact in the shortest time by offering HTML papers alongside the existing PDF.
    1. Browser tools are different from adding elements to AI chat. Element selection lets you manually pick page elements as context for a chat prompt. Browser tools let agents autonomously interact with web pages to complete tasks.
  3. Apr 2026
    1. There was a time that whenever you looked at search results on Google, you could click the "Cached" button to view an archived version of the page. Unfortunately, Google has decided to remove the feature. The company's stated reason is that the feature was created to allow users a way to see the content at a time when sites would go offline frequently, and that the basic functionality of the internet has improved to the extent that it's no longer necessary. Whatever the reason, it means yet another useful feature has found itself in Google's graveyard.While Google may profess that feature isn't relevant any longer, that's not the case. Posts are deleted all the time, link rot is very real, and entire sites are regularly purged from existence Any time you want to access a post that has been removed due to corporate or political censorship, you now have one less tool to see what was published. Google's cache was also among the most reliable ways to access pages that would take a long time to load or keep going down frequently, something that still happens with smaller blogs or with sites run by the government in plenty of regions in the world.Any time a web page failed to work as expected, you could easily access Google's cache directly from the search results, but that button has now been removed—if not the functionality itself. Because at the time of this writing, there remain a few easy workarounds that allow you access Google's cached webpages.
  4. Mar 2026
    1. I had the same confusing experience here too! I was looking for a way to quote and reply to a comment. The closest action I found was the "Reply to comment" button, so I clicked that, hoping and expecting that this would copy the comment I was replying to into the text box below. (Prefixing it with quote/cite marks (>) for me, of course, so I didn't have to painstakingly prefix each line with a > manually.) I clicked "Reply to comment" several times, expecting it to append something (the quoted text) to the text box, but when the text box remained empty, it was really confusing. I was like, "Why didn't that button work? Why didn't it do anything? I did just press it, right? Or did I miss and press a different button?" Finally it dawned on me that all this "Reply to comment" was doing was focusing the text box at the bottom of this discussion thread. That might be obvious if there were no text box there before and it made one appear there when I clicked this button. But that only helps if I can actually see it appear where it wasn't before. But when the comment you are replying to spans multiple pages (similar problem mentioned here, and you click this button that is above that comment, then you don't have the benefit of even seeing whether there is/was a "reply" box below this comment(s). So it felt like nothing happened when I clicked the button. I think adding a new "Quote and reply" icon next to the current "Reply to comment" action would make it less likely to mistakenly hope that the "Reply to comment" button was the "Quote and reply" button.