<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vingturbo</title>
    <description>The latest articles on DEV Community by Vingturbo (@vingturbo).</description>
    <link>https://dev.to/vingturbo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4142393%2Fc951020a-1305-4d7d-9491-726270e2603a.png</url>
      <title>DEV Community: Vingturbo</title>
      <link>https://dev.to/vingturbo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vingturbo"/>
    <language>en</language>
    <item>
      <title>A Declaration of Software Freedom</title>
      <dc:creator>Vingturbo</dc:creator>
      <pubDate>Sat, 24 Oct 2026 05:39:57 +0000</pubDate>
      <link>https://dev.to/vingturbo/a-declaration-of-software-freedom-30ai</link>
      <guid>https://dev.to/vingturbo/a-declaration-of-software-freedom-30ai</guid>
      <description>&lt;p&gt;To the Free Software Developers of the World&lt;/p&gt;

&lt;p&gt;A specter is haunting the world of computing—the specter of software freedom. To wage a holy crusade against this specter, all the powers of the old world have united: the empires of proprietary software, the builders of digital enclosures, and the platforms that call users “resources” while refusing to call them “people.”&lt;/p&gt;

&lt;p&gt;Which free software advocate has not been denounced by its opponents as an “extremist,” a “moral purist,” an “impractical idealist”? Which one has not been repeatedly proclaimed an “obstacle to progress” by those who profit from depriving users of freedom—from the boardrooms of Silicon Valley to the lobbying corridors of Brussels?&lt;/p&gt;

&lt;p&gt;From this fact we draw two conclusions:&lt;/p&gt;

&lt;p&gt;Software freedom has been recognized as a force.&lt;/p&gt;

&lt;p&gt;The time has come for free software advocates to openly state their views, their aims, and their intentions before the whole world—and to answer the myth of the software-freedom specter with a manifesto of their own.&lt;/p&gt;

&lt;p&gt;All written history of computing has advanced through the struggle between domination and freedom.&lt;/p&gt;

&lt;p&gt;In the early hacker communities, software was shared, readable, and modifiable. It was a habit of cooperation, not an ideology. But the rise of proprietary software broke that habit. Its logic was simple: take away the source code and leave only unintelligible binaries; forbid sharing; require users to sign agreements promising not to help their neighbors; turn code that could have become common wealth into an instrument for controlling others.&lt;/p&gt;

&lt;p&gt;The free software movement was born from an ethical refusal of this logic. It is not a debate about which development model is more efficient. It begins with a moral judgment: nonfree software is antisocial; it is a wrong done to others.&lt;/p&gt;

&lt;p&gt;The essence of proprietary software is not that it charges money; it is that it dominates. It isolates users from one another, because you are forbidden to share copies with those who need them. It leaves users helpless, because you cannot obtain the source code, cannot know what the program is really doing to you, and cannot change it. This domination does not change its nature whether the developer is a company, a university, or an individual. The free software movement opposes domination in any form: users of software should not be dominated by developers of software.&lt;/p&gt;

&lt;p&gt;Some say this is merely a question of price, or a dispute over technical direction. No. The “free” in free software is the free in free speech, not the free in free beer. A program is free software when its users possess four inalienable freedoms: the freedom to run the program for any purpose; the freedom to study how it works and modify it as needed; the freedom to redistribute copies to help others; and the freedom to distribute modified versions to contribute to the community. These four freedoms are not favors granted by developers; they are rights users should already possess. A program that does not respect these rights is ethically unjust, no matter how technically elegant or commercially successful it may be.&lt;/p&gt;

&lt;p&gt;Free software advocates, we do not live in a vacuum. The powers of the old world have learned new forms. Proprietary software is no longer merely a product sealed on a disc; it has become a lease in the cloud, an infrastructure of surveillance and domination embedded in every device, every car, every phone. Tech giants use proprietary digital technology as a means of surveilling and mistreating users, while users can neither see inside it nor refuse its terms.&lt;/p&gt;

&lt;p&gt;Under such conditions, so-called “choice” is a refined fiction. When a society’s infrastructure—communication, payment, transportation, education—is built on proprietary code that users cannot inspect, cannot modify, and cannot leave, what users have is not choice but a carefully managed dependency. Defenders of the old world call this dependency “convenience” and the refusal of domination “radical.” But in a world where code governs life, opacity itself is power, and transparency is freedom. Free laws must be public and modifiable; the code of a free society must be as well.&lt;/p&gt;

&lt;p&gt;Others tell us that the pursuit of software freedom is a moral luxury outside of “technical excellence.” They say what matters is function, efficiency, “user experience.” But look: when an update can unilaterally strip away features you have already paid for; when algorithms decide in places you cannot see what you see, what you get, and how you are treated; when “smart” devices turn every user action into extractable data—efficiency for whom? Whose experience? If users do not have the right to control their own computing, then so-called technological progress is merely progress in the technology of domination.&lt;/p&gt;

&lt;p&gt;Free software advocates, we are not alone, and we are not without weapons.&lt;/p&gt;

&lt;p&gt;One of our most powerful weapons is Copyleft, formed by turning the old world’s own legal form against itself. Copyright law by default prohibits copying, distribution, and modification; Copyleft uses this legal mechanism but serves the opposite purpose: it turns an instrument of domination into an instrument for defending freedom. It declares: you may run, copy, modify, and distribute this program, but you may not impose on others restrictions you would refuse to accept yourself. Modified versions must remain equally free. This is not “coercion”; it is the condition that ensures freedom is not stolen along the way. When a company takes the fruits of community labor and tries to use them to make a version that deprives users of freedom, the GPL has the power to say no. This is not hostility to business; it is immunity against parasitism.&lt;/p&gt;

&lt;p&gt;Yet we must be clear: Copyleft is a shield, not a complete city-state. If we settle for a technical victory of licensing while no longer speaking of freedom itself, the logic of the old world will retake the ground under another name. This is exactly what the term “open source” has accomplished: it has pulled out the ethical foundation of the free software movement and dressed it in the cloak of a “more efficient development model,” allowing businesspeople and technology enthusiasts who do not wish to think about right and wrong to enjoy the fruits of the free software movement without touching the question of freedom. We do not deny the engineering value of open source. But openness in engineering is not freedom in ethics. A program can be “open source” and still, through patents, trademarks, hardware restrictions, or terms of service, place users under the domination of others. What we demand is not visible code, but free people.&lt;/p&gt;

&lt;p&gt;What do we want?&lt;/p&gt;

&lt;p&gt;Not to turn all software into one license, nor to replace one technical authority with another. We want the realization of a free society in the realm of computing: where code is as transparent as law, as knowable, debatable, and modifiable as law; where cooperation is not an exception granted by permission but the default condition; where users are not objects to be managed but sovereigns of their own computing.&lt;/p&gt;

&lt;p&gt;Such a society will not be granted from the boardrooms of proprietary software. It will not be conceded by any industry self-regulation of “responsible AI” or “trusted computing.” It can only be built, piece by piece, by those who refuse to sign promises that betray the community; by those who treat source code as a public language rather than private property; by those who would rather have no program to use than write a program that enslaves others.&lt;/p&gt;

&lt;p&gt;The old world has power, capital, lobbying groups, and an endless capacity to package domination as “service.” But it has an irreparable weakness: its power depends on users not understanding, not being able to modify, and not being able to leave. What free software does is precisely to let users understand, let users modify, and give users the ability to leave. Every time GPL code is liberated from dependency on a proprietary product, every time a free driver is written for abandoned hardware, every time someone refuses to bow before a “user agreement,” a breach is opened in the wall of the old world.&lt;/p&gt;

&lt;p&gt;Free software advocates, we have united in the past under the name of free software, and we shall continue to unite under that name. We can tolerate technical imperfection; we can argue over the merits of different paths; but we cannot be vague in the slightest on the question of whether freedom is worth pursuing. If we ourselves no longer speak of freedom as an ethical question, no one will defend it as an ethical question on our behalf.&lt;/p&gt;

&lt;p&gt;Free software developers of the world, unite!&lt;/p&gt;

&lt;p&gt;You have nothing to lose but your chains—chains disguised as “license agreements,” chains that separate you from your neighbors, chains that keep you ignorant of the machines you use every day.&lt;/p&gt;

&lt;p&gt;You have a free society to win.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>opensource</category>
    </item>
    <item>
      <title>A project that I'm really satisfied with一个令我十分满意的项目</title>
      <dc:creator>Vingturbo</dc:creator>
      <pubDate>Fri, 25 Sep 2026 06:51:16 +0000</pubDate>
      <link>https://dev.to/vingturbo/a-project-that-im-really-satisfied-with-ge-ling-wo-shi-fen-man-yi-de-xiang-mu-16mi</link>
      <guid>https://dev.to/vingturbo/a-project-that-im-really-satisfied-with-ge-ling-wo-shi-fen-man-yi-de-xiang-mu-16mi</guid>
      <description>&lt;h1&gt;
  
  
  一个令我十分满意的项目
&lt;/h1&gt;

&lt;p&gt;前段时间我想给个人网站找个友链聚合站，看了一圈发现都不太合适。&lt;/p&gt;

&lt;p&gt;开往要求 20 篇文章或 10 篇原创，XXIIVV 要求独立域名。这些要求对于一个只是想分享点东西的普通人来说，门槛有点高。我就想，为什么不自己搞一个？&lt;/p&gt;

&lt;p&gt;于是有了 SiteHub。&lt;/p&gt;

&lt;h2&gt;
  
  
  它是什么
&lt;/h2&gt;

&lt;p&gt;一个个人网站聚合平台。你把你的网站提交上来，它帮你展示出去，让更多人看到。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;核心原则&lt;/strong&gt;：只要不违法，来者不拒。&lt;/p&gt;

&lt;h2&gt;
  
  
  技术上怎么做的
&lt;/h2&gt;

&lt;p&gt;整个项目没有服务器，没有数据库，没有框架。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;后端逻辑&lt;/strong&gt;：纯 Bash 脚本 + &lt;code&gt;jq&lt;/code&gt; + &lt;code&gt;curl&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;数据存储&lt;/strong&gt;：JSONL，按 URL 的 MD5 前两位分片&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;自动化&lt;/strong&gt;：GitHub Actions，用户提 Issue，脚本自动解析、校验、入库、推送&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;前端&lt;/strong&gt;：原生 HTML + 原生 CSS + 原生 JavaScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;托管&lt;/strong&gt;：Cloudflare Pages + GitHub Pages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;没有任何构建步骤，没有 &lt;code&gt;node_modules&lt;/code&gt;，没有 &lt;code&gt;npm install&lt;/code&gt;。打开就是能用。&lt;/p&gt;

&lt;h2&gt;
  
  
  我觉得最有意思的功能
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;自定义跳转动画。&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;默认情况下，点击卡片直接跳到目标网站。但如果站长填写了「跳转页 URL」，点击卡片时会先弹出一个 &lt;code&gt;iframe&lt;/code&gt;，加载站长自己写的页面，播放一段动画，然后才跳转。&lt;/p&gt;

&lt;p&gt;SiteHub 会把图标的坐标、尺寸、图标 URL、网站名、描述、主题色全部传给跳转页。站长用这些参数可以做任何想做的效果。&lt;/p&gt;

&lt;p&gt;我自己给自己网站写的是「卡片上的文字逐字退格，再逐字打出欢迎语」的终端动画。&lt;/p&gt;

&lt;p&gt;据我所知，友链聚合站里还没有第二个支持这个的。如果我错了，欢迎指正。&lt;/p&gt;

&lt;h2&gt;
  
  
  怎么提交
&lt;/h2&gt;

&lt;p&gt;点这个链接，填表，提交：&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Vingturbo/sitehub/issues/new?template=Apply_your_website_links.yml" rel="noopener noreferrer"&gt;https://github.com/Vingturbo/sitehub/issues/new?template=Apply_your_website_links.yml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;几秒后自动回复，几分钟后前端刷新，你的网站就出现在列表里了。&lt;/p&gt;

&lt;h2&gt;
  
  
  最后
&lt;/h2&gt;

&lt;p&gt;项目是 GPLv3 开源的，仓库在这里：&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Vingturbo/sitehub" rel="noopener noreferrer"&gt;https://github.com/Vingturbo/sitehub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;演示地址：&lt;/p&gt;

&lt;p&gt;&lt;a href="https://web-site-hub.pages.dev/" rel="noopener noreferrer"&gt;https://web-site-hub.pages.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;如果你有自己的网站，欢迎提交。如果你觉得这个项目有意思，点个 Star 我会很开心。&lt;/p&gt;

&lt;p&gt;有问题或者建议，直接提 Issue。&lt;/p&gt;




&lt;h1&gt;
  
  
  A Project I'm Really Satisfied With
&lt;/h1&gt;

&lt;p&gt;A while ago, I wanted to find a link aggregation site for my personal website. After looking around, I realized none of them were quite right.&lt;/p&gt;

&lt;p&gt;Some required 20 articles or 10 originals, XXIIVV required an independent domain. These requirements are a bit high for an ordinary person who just wants to share some stuff. So I thought, why not make one myself?&lt;/p&gt;

&lt;p&gt;That's how SiteHub came about.&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Is
&lt;/h2&gt;

&lt;p&gt;A platform to aggregate personal websites. You submit your website, and it helps showcase it so more people can see it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Principle&lt;/strong&gt;: As long as it's legal, anyone is welcome.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works Technically
&lt;/h2&gt;

&lt;p&gt;The whole project has no server, no database, no framework.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend Logic&lt;/strong&gt;: Pure Bash scripts with &lt;code&gt;jq&lt;/code&gt; and &lt;code&gt;curl&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Storage&lt;/strong&gt;: JSONL, sharded by the first two characters of the URL's MD5&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation&lt;/strong&gt;: GitHub Actions; users submit issues, scripts automatically parse, validate, store, and push&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Native HTML, native CSS, native JavaScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosting&lt;/strong&gt;: Cloudflare Pages, GitHub Pages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No build steps, no &lt;code&gt;node_modules&lt;/code&gt;, no &lt;code&gt;npm install&lt;/code&gt;. Open it, and it just works.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Favorite Feature
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Custom Transition Animations.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By default, clicking a card takes you directly to the target website. But if the site owner provides a "redirect page URL," clicking the card will first pop up an &lt;code&gt;iframe&lt;/code&gt;, load their custom page, play an animation, and then redirect.&lt;/p&gt;

&lt;p&gt;SiteHub sends coordinates, dimensions, icon URL, site name, description, and theme color to the redirect page. The owner can use these parameters to create any effect they want.&lt;/p&gt;

&lt;p&gt;For my own site, I made a terminal animation where the text on the card erases letter by letter and then types out a welcome message.&lt;/p&gt;

&lt;p&gt;As far as I know, no other link aggregators support this yet. If I'm wrong, feel free to correct me.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Submit
&lt;/h2&gt;

&lt;p&gt;Click this link, fill out the form, and submit:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Vingturbo/sitehub/issues/new?template=Apply_your_website_links.yml" rel="noopener noreferrer"&gt;https://github.com/Vingturbo/sitehub/issues/new?template=Apply_your_website_links.yml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You'll get an automatic reply in seconds, and after a few minutes, the front end refreshes and your site appears in the list.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finally
&lt;/h2&gt;

&lt;p&gt;The project is GPLv3 open source, repo is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Vingturbo/sitehub" rel="noopener noreferrer"&gt;https://github.com/Vingturbo/sitehub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo link:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://web-site-hub.pages.dev/" rel="noopener noreferrer"&gt;https://web-site-hub.pages.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have your own website, feel free to submit it. If you find this project interesting, giving it a Star would make me very happy.&lt;/p&gt;

&lt;p&gt;If you have any questions or suggestions, just open an Issue.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>github</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>一个令我十分满意的项目A project that I'm really satisfied with</title>
      <dc:creator>Vingturbo</dc:creator>
      <pubDate>Fri, 25 Sep 2026 06:49:22 +0000</pubDate>
      <link>https://dev.to/vingturbo/ge-ling-wo-shi-fen-man-yi-de-xiang-mu-a-project-that-im-really-satisfied-with-40ac</link>
      <guid>https://dev.to/vingturbo/ge-ling-wo-shi-fen-man-yi-de-xiang-mu-a-project-that-im-really-satisfied-with-40ac</guid>
      <description></description>
    </item>
  </channel>
</rss>
