Found 18 bookmarks
Custom sorting
Epoch Semantic Versioning
Epoch Semantic Versioning
A version is essentially a marker, a seal of the codebase at a specific point in time. However, code is complex, and every change involves trade-offs. Describing how a change affects the code can be tricky even with natural language. A version number alone can’t capture all the nuances of a release. That’s why we have changelogs, release notes, and commit messages to provide more context.
I see versioning as a way to communicate changes to users — a contract between the library maintainers and the users to ensure compatibility and stability during upgrades. As a user, you can’t always tell what’s changed between v2.3.4 and v2.3.5 without checking the changelog. But by looking at the numbers, you can infer that it’s a patch release meant to fix bugs, which should be safe to upgrade.
In the JavaScript ecosystem, especially for packages published on npm, we follow a convention known as Semantic Versioning, or SemVer for short. A SemVer version number consists of three parts: MAJOR.MINOR.PATCH. The rules are straightforward: MAJOR: Increment when you make incompatible API changes. MINOR: Increment when you add functionality in a backwards-compatible manner. PATCH: Increment when you make backwards-compatible bug fixes.
However, humans perceive numbers on a logarithmic scale. We tend to see v2.0 to v3.0 as a huge, groundbreaking change, while v125.0 to v126.0 seems a lot more trivial, even though both indicate incompatible API changes in SemVer. This perception can make maintainers hesitant to bump the major version for minor breaking changes, leading to the accumulation of many breaking changes in a single major release, making upgrades harder for users.
The reason I’ve stuck with v0.x.x is my own unconventional approach to versioning. I prefer to introduce necessary and minor breaking changes early on, making upgrades easier, without causing alarm that typically comes with major version jumps like v2 to v3. Some changes might be "technically" breaking but don’t impact 99.9% of users in practice.
There’s a special rule in SemVer that states when the leading major version is 0, every minor version bump is considered breaking. I am kind of abusing that rule to workaround the limitation of SemVer. With zero-major versioning, we are effectively abandoning the first number, and merge MINOR and PATCH into a single number (thanks to David Blass for pointing this out)
In an ideal world, I would wish SemVer to have 4 numbers: EPOCH.MAJOR.MINOR.PATCH. The EPOCH version is for those big announcements, while MAJOR is for technical incompatible API changes that might not be significant. This way, we can have a more granular way to communicate changes.
I am proposing a new versioning scheme called 🗿 Epoch Semantic Versioning, or Epoch SemVer for short. It’s built on top of the structure of MAJOR.MINOR.PATCH, extend the first number to be the combination of EPOCH and MAJOR
The format is as follows: {EPOCH * 1000 + MAJOR}.MINOR.PATCH EPOCH: Increment when you make significant or groundbreaking changes. MAJOR: Increment when you make minor incompatible API changes. MINOR: Increment when you add functionality in a backwards-compatible manner. PATCH: Increment when you make backwards-compatible bug fixes.
For example, UnoCSS would transition from v0.65.3 to v65.3.0 (in the case EPOCH is 0). Following SemVer, a patch release would become v65.3.1, and a feature release would be v65.4.0. If we introduced some minor incompatible changes affecting an edge case, we could bump it to v66.0.0 to alert users of potential impacts. In the event of a significant overhaul to the core, we could jump directly to v1000.0.0 to signal a new era and make a big announcement.
We shouldn’t need to bump EPOCH often. It’s mostly useful for high-level, end-user-facing libraries or frameworks. For low-level libraries, they might never need to bump EPOCH at all (ZERO-EPOCH is essentially the same as SemVer).
·antfu.me·
Epoch Semantic Versioning
Ask HN: Can I really create a company around my open-source software? | Hacker News
Ask HN: Can I really create a company around my open-source software? | Hacker News
I get that you've worked on this for months, that you're burned out generally, and now unemployed. So this comment is not meant as "mean" but rather offered in the spirit of encouragement. Firstly, building a business (especially in a crowded space) is stressful. It's not a place to recover from burnout. It's not a place that reduces anxiety. So my first recommendation is to relax a bit, put this on the back burner, and when you're ready go look for your next job. Secondly, treat this project as an education. You had an idea and spent months implementing it. That's the easy part. The hard part is finding a market willing to pay money for something. So for your next project do the hard part first. First find a market, find out what they will spend, ideally collect a small deposit (to prove they're serious) and then go from there. In my business we have 3 main product lines. The first 2 happened because the market paid us to build a solution. We iterated on those for 30 years, and we now are big players (in very niche spaces.) The 3rd happened as a take-over of a project by another retiring developer. He had a few customers, and a good product, but in a crowded space where there's lots of reasons not to change. It's taken many years to build it out, despite being clearly better than the competition, and it's still barely profitable (if you ignore a bunch of expenses paid by the whole business. ) The lesson being to follow the money, not the idea. (Aside, early on we followed some ideas, all those projects died, most without generating any revenue.) So congratulations to seeing something through to release. But turning a product into a business is really hard. Turning a commodity like this into a business is almost impossible. I wish you well in your future endeavors.
For a major commercial product I visited similar markets to ours, knocked on the doors of distributors, tried to find people who wanted to integrate our product into their market. I failed a lot but succeeded twice, and those 2 have been paying us lots of money every year for 20 years as they make sales. Your approach may vary. Start locally. Talk to shop keepers, restaurants, businesses, charities, schools and so on. Look for markets that are not serviced (which is different to where the person is just too cheap, or adverse to tech for other reasons.) Of course it's a LOT harder now to find unserviced markets. There's a lot more software out there now than there was when I started out. Ultimately though it's about connecting with people - real people not just sending out spam emails. And so meeting the right person at the right time is "lucky". But if you're not out there luck can't work with you. You need to give luck a chance.
·news.ycombinator.com·
Ask HN: Can I really create a company around my open-source software? | Hacker News
Build tools around workflows, not workflows around tools | thesephist.com
Build tools around workflows, not workflows around tools | thesephist.com
Building your own productivity tools that conform to your unique workflows and mental models is more effective than using mass-market tools and bending your workflows to fit them
My biggest benefit from writing my own tool set is that I can build the tools that exactly conform to my workflows, rather than constructing my workflows around the tools available to me. This means the tools can truly be an extension of the way my brain thinks and organizes information about the world around me.
I think it’s easy to underestimate the extent to which our tools can constrain our thinking, if the way they work goes against the way we work. Conversely, great tools that parallel our minds can multiply our creativity and productivity, by removing the invisible friction of translating between our mental models and the models around which the tools are built.
I don’t think everyone needs to go out and build their own productivity tools from the ground-up. But I do think that it’s important to think of the tools you use to organize your life as extensions of your mind and yourself, rather than trivial utilities to fill the gaps in your life.
·thesephist.com·
Build tools around workflows, not workflows around tools | thesephist.com
Wikipedia Grapples With Chatbots: Should It Allow Their Use For Articles? Should It Allow Them To Train On Wikipedia?
Wikipedia Grapples With Chatbots: Should It Allow Their Use For Articles? Should It Allow Them To Train On Wikipedia?
It would be foolish to try to forbid Wikipedia contributors from using chatbots to help write articles: people would use them anyway, but would try to hide the fact. A ban would also be counterproductive. LLMs are simply tools, just like computers, and the real issue is not whether to use them, but how to use them properly.
While open access is a cornerstone of Wikipedia’s design principles, some worry the unrestricted scraping of internet data allows AI companies like OpenAI to exploit the open web to create closed commercial datasets for their models. This is especially a problem if the Wikipedia content itself is AI-generated, creating a feedback loop of potentially biased information, if left unchecked.
·techdirt.com·
Wikipedia Grapples With Chatbots: Should It Allow Their Use For Articles? Should It Allow Them To Train On Wikipedia?
Wikipedia:Guide to addressing bias - Wikipedia
Wikipedia:Guide to addressing bias - Wikipedia
Encyclopedias are a compendium and summary of accepted human knowledge. Their purpose is not to provide compelling and interesting articles, but to provide accurate and verifiable information. To this end, encyclopedias strive to always represent each point-of-view in a controversy with an amount of weight and credulity equal to the weight and credulity afforded to it by the best sources of information on the subject. This means that the consensus of experts in a subject will be treated as a fact, whereas theories with much less acceptance among experts, or with acceptance only among non-experts will be presented as inaccurate and untrue.
Before you even begin to try to raise the issue at a talk page, you should ask yourself "Is this article really biased, or does it accurately reflect the views of authoritative sources about this subject?" Do some research. Read the sources used by the article and find other reliable sources on the subject. Do they present the subject as controversial, or do they tend to take a side? If there's a clear controversy, what field of study would impart expertise on this, and what side do people who work in that field tend to take? Do the claims made by the article match the claims made by the sources? Depending on the answers to these questions, the article may not be biased at all.
·en.wikipedia.org·
Wikipedia:Guide to addressing bias - Wikipedia
Talk:Donald Trump/Response to claims of bias - Wikipedia
Talk:Donald Trump/Response to claims of bias - Wikipedia
Wikipedia's neutral point of view policy requires us to report the bad (negative) with the good (positive), and the neither-bad-nor-good, in rough proportion to what's said in reliable sources, which in this case are largely major news outlets. This is one of the five pillars of Wikipedia—a group of fundamental principles central to the function of this website. Since reliable sources are widely critical of Trump, this article reflects that. Wikipedia policy is not established at individual articles. If you think that a policy should be changed, you could try Wikipedia:Village pump (policy), although you are unlikely to be taken very seriously there without a substantial history of Wikipedia editing.
·en.wikipedia.org·
Talk:Donald Trump/Response to claims of bias - Wikipedia
Digital Garden Terms of Service
Digital Garden Terms of Service
The Learn In Public movement has encouraged thousands of people to write, speak, draw, or otherwise pick up what mentors put down, with the end goal of lifelong L(N*P) growth in personal knowledge and network. A key part of this strategy is maintaining your own Digital Garden. A Digital Garden is your very own place (often a blog, or twitter account) to plant incomplete thoughts and disorganized notes in public - the idea being that these are evergreen things that grow as your learning does, warmed by constant attention and fueled by the unambiguous daylight of peer review. It is in part a trick for creators to play on themselves: For perfectionists who stress over shipping anything less-than-polished and therefore never ship anything, it is a license to trade off self review for peer review and increased velocity. Many report both improved quality and quantity of output after giving themselves the permission to do this.
People with audiences do of course have some obligation to not do them a disservice, else they don’t deserve that audience. However this doesn’t mean that they must do exhaustive due diligence and be authoritative in every context - there needs to be space to experiment, grow, and quite frankly, be ignorant and wrong.
I will “steelman” arguments - the opposite of “strawman arguments” - instead of picking on the weakest piece of their argument, I will confront head on their best argument by seeking first to understand before trying to be understood.
·swyx.io·
Digital Garden Terms of Service
AI Is Tearing Wikipedia Apart
AI Is Tearing Wikipedia Apart
While open access is a cornerstone of Wikipedia’s design principles, some worry the unrestricted scraping of internet data allows AI companies like OpenAI to exploit the open web to create closed commercial datasets for their models. This is especially a problem if the Wikipedia content itself is AI-generated, creating a feedback loop of potentially biased information, if left unchecked.
·vice.com·
AI Is Tearing Wikipedia Apart