Update.
This commit is contained in:
9
content/learning/getting-started.md
Normal file
9
content/learning/getting-started.md
Normal file
@@ -0,0 +1,9 @@
|
||||
+++
|
||||
title = 'Getting Started'
|
||||
+++
|
||||
|
||||
The Soverign Cloud project is in active development.
|
||||
|
||||
```bash
|
||||
https://github.com/payneio/sovereign-cloud.git
|
||||
```
|
@@ -1,15 +0,0 @@
|
||||
+++
|
||||
title = 'Getting Started'
|
||||
+++
|
||||
|
||||
```bash
|
||||
# See https://k3s.io/
|
||||
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode=644
|
||||
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
||||
```
|
||||
|
||||
## Future
|
||||
|
||||
Consider defaults:
|
||||
|
||||
- [Longhorn](https://docs.k3s.io/storage).
|
@@ -1,5 +1,258 @@
|
||||
+++
|
||||
title = 'Git'
|
||||
title = 'Git: Distributed Version Control for Digital Independence'
|
||||
+++
|
||||
|
||||
## Introduction
|
||||
|
||||
Version control systems are the backbone of modern software development, enabling collaboration, preserving history, and managing complexity. Among these tools, Git stands apart—not just as the most widely used version control system, but as a technology that fundamentally aligns with principles of decentralization, resilience, and user sovereignty.
|
||||
|
||||
For civil society organizations, Git represents much more than a development tool. It embodies a different way of thinking about collaboration—one based on distributed trust, transparent history, and resilience against centralized control. In this article, we explore what Git is, how it works, and why its approach to distributed collaboration matters for organizations committed to digital sovereignty.
|
||||
|
||||
## What Is Git?
|
||||
|
||||
Git is a distributed version control system created by Linus Torvalds (the original developer of Linux) in 2005. Unlike previous version control systems that relied on centralized servers, Git gives every participant a complete copy of the project's entire history. This seemingly simple architectural choice has profound implications for how collaboration works.
|
||||
|
||||
### Key Characteristics of Git
|
||||
|
||||
- **Distributed**: Every repository contains the full history, enabling offline work and eliminating single points of failure
|
||||
- **Content-addressed**: Files are identified by cryptographic hashes of their content, ensuring integrity
|
||||
- **Branching-focused**: Multiple lines of development can proceed in parallel, merging when ready
|
||||
- **History-preserving**: Changes are recorded as an immutable chain, creating transparency and accountability
|
||||
- **Non-hierarchical**: Any repository can synchronize with any other, without requiring a central authority
|
||||
|
||||
These characteristics create a system where collaboration is possible without requiring trust in a central authority—a principle that resonates deeply with civil society's need for resilient, independent systems.
|
||||
|
||||
### How Git Differs from Centralized Systems
|
||||
|
||||
To understand Git's significance, it helps to contrast it with centralized approaches:
|
||||
|
||||
| Aspect | Centralized Version Control | Git (Distributed Version Control) |
|
||||
| ----------------------- | ---------------------------- | ---------------------------------- |
|
||||
| **Network Requirement** | Constant connection needed | Can work offline with full history |
|
||||
| **Failure Points** | Central server is critical | Multiple complete copies exist |
|
||||
| **Control** | Administrator manages access | Each user controls their copy |
|
||||
| **Workflow** | Linear and prescribed | Flexible and adaptable |
|
||||
| **Trust Model** | Trust in central authority | Trust distributed across network |
|
||||
|
||||
This shift from centralized to distributed architecture mirrors many of the broader transitions civil society organizations seek in digital infrastructure—moving from single points of control to resilient networks of peers.
|
||||
|
||||
## Technical Foundations
|
||||
|
||||
Understanding Git's technical approach helps clarify why it's so valuable for sovereign technology practices.
|
||||
|
||||
### The Object Model
|
||||
|
||||
At its core, Git stores four types of objects:
|
||||
|
||||
1. **Blobs**: The content of files
|
||||
2. **Trees**: Directories of blobs and other trees
|
||||
3. **Commits**: Snapshots of the repository at a point in time
|
||||
4. **Tags**: Named references to specific commits
|
||||
|
||||
These objects form a content-addressed database where each object is identified by its SHA-1 hash. This cryptographic approach ensures:
|
||||
|
||||
- Content integrity (changes are immediately detectable)
|
||||
- Deduplication (identical content is stored only once)
|
||||
- Authentication (commits can be cryptographically signed)
|
||||
- Verification (history cannot be silently altered)
|
||||
|
||||
### The Distributed Model
|
||||
|
||||
Git's distributed nature means:
|
||||
|
||||
- Each repository contains all objects and history
|
||||
- No single repository has special status
|
||||
- Changes are exchanged between peers through "remotes"
|
||||
- Any repository can serve as a backup for the entire project
|
||||
|
||||
This architecture creates resilience through redundancy—exactly the quality that civil society organizations need in potentially challenging environments.
|
||||
|
||||
## Git for Civil Society
|
||||
|
||||
For civil society organizations, Git offers specific benefits that align with core values and practical needs:
|
||||
|
||||
### 1. Resilience Against Disruption
|
||||
|
||||
Git's distributed nature means:
|
||||
|
||||
- Work continues even if internet connectivity is limited or monitored
|
||||
- No single point of failure can eliminate access to code or documents
|
||||
- Information can be shared through multiple channels when needed
|
||||
- Organizations can maintain control of their projects regardless of hosting platform decisions
|
||||
|
||||
In contexts where infrastructure may be unreliable or subject to interference, this resilience is invaluable.
|
||||
|
||||
### 2. Sovereignty and Control
|
||||
|
||||
Git provides complete control over:
|
||||
|
||||
- Where and how repositories are hosted
|
||||
- Who has access to what parts of the codebase
|
||||
- How contributions are reviewed and incorporated
|
||||
- What external dependencies are included
|
||||
|
||||
This sovereignty means organizations aren't dependent on the policies or availability of any particular service provider.
|
||||
|
||||
### 3. Transparency and Accountability
|
||||
|
||||
Git's immutable history creates:
|
||||
|
||||
- Clear attribution of changes to specific contributors
|
||||
- Permanent record of development decisions
|
||||
- Ability to audit exactly when and how code evolved
|
||||
- Cryptographic verification of who made what changes
|
||||
|
||||
These transparency features support organizational accountability and help build trust in critical systems.
|
||||
|
||||
### 4. Collaborative Without Centralization
|
||||
|
||||
Git enables collaboration models that:
|
||||
|
||||
- Don't require hierarchical permissions
|
||||
- Allow multiple approaches to develop in parallel
|
||||
- Support both tight coordination and loose federation
|
||||
- Function across organizational boundaries
|
||||
|
||||
This flexibility accommodates diverse organizational structures and coalition-building.
|
||||
|
||||
### 5. Future-Proof Documentation
|
||||
|
||||
Git repositories provide:
|
||||
|
||||
- Complete historical context for decisions
|
||||
- Self-contained documentation that travels with the code
|
||||
- Independence from any particular documentation platform
|
||||
- Resilience against link rot and lost references
|
||||
|
||||
Organizations investing in long-term projects benefit from this comprehensive approach to institutional memory.
|
||||
|
||||
## Beyond Code: Git for Documents and Data
|
||||
|
||||
While initially designed for source code, Git has proven valuable for many other content types:
|
||||
|
||||
### Documents and Publications
|
||||
|
||||
Many organizations use Git for:
|
||||
|
||||
- Policy documents with transparent revision history
|
||||
- Collaborative writing with clear attribution
|
||||
- Website content with staging and review
|
||||
- Reports that show how analysis evolved
|
||||
|
||||
Tools like Markdown, Asciidoc, and LaTeX work particularly well with Git, allowing documents to benefit from the same workflows as code.
|
||||
|
||||
### Data and Research
|
||||
|
||||
Git can manage:
|
||||
|
||||
- Datasets with clear provenance tracking
|
||||
- Analysis scripts alongside their data
|
||||
- Research findings with reproducible methods
|
||||
- Configuration files with documented changes
|
||||
|
||||
While large binary files require special handling, Git-LFS (Large File Storage) extends Git's capabilities to manage these efficiently.
|
||||
|
||||
### Infrastructure as Code
|
||||
|
||||
Git is essential for:
|
||||
|
||||
- Server configurations that can be tested and rolled back
|
||||
- Network setups with documented changes
|
||||
- Deployment scripts with security reviews
|
||||
- Container definitions with audit trails
|
||||
|
||||
This "infrastructure as code" approach lets organizations apply the same governance to their infrastructure that they apply to their software.
|
||||
|
||||
## Common Git Workflows for Civil Society
|
||||
|
||||
Organizations can adapt Git workflows to match their needs and structures:
|
||||
|
||||
### Lightweight Personal Projects
|
||||
|
||||
For individual work or small teams:
|
||||
|
||||
- Simple branching strategy (main branch with feature branches)
|
||||
- Direct pushes for trusted contributors
|
||||
- Minimal process overhead
|
||||
- Local repositories with occasional synchronization
|
||||
|
||||
### Collaborative Open Projects
|
||||
|
||||
For community projects with multiple contributors:
|
||||
|
||||
- Fork and pull request model
|
||||
- Review requirements for all changes
|
||||
- Issue tracking integrated with development
|
||||
- Public repositories on platforms like GitHub, GitLab, or self-hosted Gitea
|
||||
|
||||
### Secure Sensitive Projects
|
||||
|
||||
For projects handling sensitive information:
|
||||
|
||||
- Careful access control with signed commits
|
||||
- Self-hosted repositories with controlled access
|
||||
- Encrypted storage of sensitive configuration
|
||||
- Clear separation between public and private components
|
||||
|
||||
## Misconceptions About Git
|
||||
|
||||
Several misconceptions can discourage adoption:
|
||||
|
||||
### "Git Is Only for Programmers"
|
||||
|
||||
**Reality**: While Git emerged from software development, its principles apply to any collaborative work that benefits from version history. Many non-technical teams use Git for documentation, policy development, and publishing workflows.
|
||||
|
||||
### "Git Is Too Complicated"
|
||||
|
||||
**Reality**: Git's power does come with complexity, but:
|
||||
|
||||
- Basic workflows require learning only a few commands
|
||||
- Graphical interfaces make common operations accessible
|
||||
- The learning curve reflects Git's power and flexibility
|
||||
- Skills developed transfer across projects and organizations
|
||||
|
||||
### "We Need a Central Server Anyway"
|
||||
|
||||
**Reality**: While many organizations use platforms like GitHub or GitLab, these are conveniences, not requirements. Git can function entirely via email, USB drives, or direct connections when needed, and any Git repository can serve as a temporary "hub" when appropriate.
|
||||
|
||||
## Getting Started with Git
|
||||
|
||||
For civil society organizations exploring Git, we recommend:
|
||||
|
||||
1. **Start small**: Use Git for a defined project with clear boundaries
|
||||
2. **Focus on fundamentals**: Learn core concepts rather than memorizing commands
|
||||
3. **Choose appropriate tools**: Use graphical interfaces when they help
|
||||
4. **Create conventions**: Establish clear norms for commit messages and branching
|
||||
5. **Build skills gradually**: Add more advanced workflows as teams become comfortable
|
||||
|
||||
The Civil Society Technology Foundation can provide guidance on Git adoption strategies tailored to organizational needs and constraints.
|
||||
|
||||
## Beyond Git: The Distributed Collaboration Ecosystem
|
||||
|
||||
Git has inspired a broader ecosystem of tools supporting distributed, sovereign approaches:
|
||||
|
||||
- **Decentralized forges** like Radicle provide Git collaboration without central servers
|
||||
- **Offline-first tools** extend Git's model to other content types
|
||||
- **Peer-to-peer synchronization** enables collaboration without central infrastructure
|
||||
- **Signed commits** provide strong attribution even in untrusted environments
|
||||
|
||||
These innovations continue to expand Git's relevance for civil society's digital infrastructure.
|
||||
|
||||
## Case Study: Resilient Documentation in Challenging Environments
|
||||
|
||||
Organizations working in regions with internet censorship or surveillance have used Git to:
|
||||
|
||||
- Maintain critical documentation despite platform blocks
|
||||
- Share information through multiple channels when primary methods are restricted
|
||||
- Preserve historical records that might otherwise be vulnerable to tampering
|
||||
- Collaborate across geographical and technical boundaries
|
||||
|
||||
By distributing repositories across multiple participants, these organizations ensure their work continues regardless of external pressures.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Git represents more than just a tool—it embodies an approach to collaboration built on principles that civil society defends: distributed authority, transparent history, resilient systems, and user sovereignty. By adopting Git and its associated practices, organizations don't just improve their technical workflows; they align their operational methods with their values.
|
||||
|
||||
The Civil Society Technology Foundation recognizes Git as a foundational technology for independent civil society infrastructure, enabling transparent collaboration without creating new dependencies or vulnerabilities.
|
||||
|
||||
In a digital landscape increasingly dominated by centralized platforms and services, Git offers a tested, proven approach to collaboration that maintains independence, builds institutional memory, and creates resilience against disruption—not as a technical preference, but as an expression of civil society's core principles in code.
|
||||
|
@@ -1,4 +0,0 @@
|
||||
+++
|
||||
title = 'The Internet'
|
||||
+++
|
||||
|
BIN
content/learning/internet/featured.png
Normal file
BIN
content/learning/internet/featured.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 MiB |
366
content/learning/internet/index.md
Normal file
366
content/learning/internet/index.md
Normal file
@@ -0,0 +1,366 @@
|
||||
+++
|
||||
title = 'The Internet: Infrastructure for Civil Society'
|
||||
+++
|
||||
|
||||
## Introduction
|
||||
|
||||
The Internet stands as one of humanity's most transformative technological achievements, connecting billions of people and fundamentally reshaping how we communicate, learn, organize, and participate in public life. For civil society—the network of organizations, movements, and communities working for social good outside government and market structures—the Internet has become essential infrastructure.
|
||||
|
||||
Yet the Internet we experience today is increasingly shaped by commercial imperatives and state control, diverging from its original design as a decentralized, open network. Understanding how the Internet works, how it's changing, and how it can be reclaimed is crucial for civil society organizations seeking to maintain their independence and effectiveness.
|
||||
|
||||
This article explores the Internet's technical foundations, its evolution, the challenges to its openness, and how civil society can work toward a more democratic digital infrastructure.
|
||||
|
||||
## Technical Foundations: How the Internet Works
|
||||
|
||||
The Internet is not a single entity but a "network of networks" built on open protocols—shared technical standards that allow diverse systems to communicate. Understanding these foundations helps reveal both the Internet's inherent values and the points where those values are being compromised.
|
||||
|
||||
### Core Protocols
|
||||
|
||||
Several key protocols form the Internet's foundation:
|
||||
|
||||
- **TCP/IP** (Transmission Control Protocol/Internet Protocol): The fundamental communication language of the Internet, which breaks data into packets and routes them to their destination
|
||||
- **DNS** (Domain Name System): Translates human-readable domain names (like civilsociety.dev) into numerical IP addresses that computers use
|
||||
- **HTTP/HTTPS** (Hypertext Transfer Protocol): Enables the retrieval and display of web pages and other content
|
||||
- **SMTP/IMAP/POP** (Email protocols): Allow messages to be sent and received across different email providers
|
||||
|
||||
These protocols were designed with openness and interoperability as core values—anyone could implement them without permission, and they enabled communication between different systems regardless of who made them.
|
||||
|
||||
### Decentralized Design
|
||||
|
||||
The Internet was originally designed with decentralization as a core principle:
|
||||
|
||||
- No central authority controls the entire network
|
||||
- Data can route around damage or censorship
|
||||
- New services and applications can be created without permission
|
||||
- Anyone can connect a new network to the existing infrastructure
|
||||
|
||||
This decentralization was not just a technical choice but a value-laden design decision with profound implications for freedom of expression, innovation, and accessibility.
|
||||
|
||||
### Open Standards
|
||||
|
||||
The Internet relies on open standards developed through collaborative processes:
|
||||
|
||||
- **IETF** (Internet Engineering Task Force): Develops core Internet protocols
|
||||
- **W3C** (World Wide Web Consortium): Creates web standards
|
||||
- **IEEE** (Institute of Electrical and Electronics Engineers): Develops networking standards
|
||||
|
||||
These organizations traditionally operated on principles of openness, transparency, and rough consensus—anyone could participate, decisions were made in the open, and standards were freely available.
|
||||
|
||||
## The Internet's Evolution: From Open Commons to Enclosed Spaces
|
||||
|
||||
The Internet has undergone profound changes since its inception, with significant implications for civil society:
|
||||
|
||||
### The Early Internet (1970s-1990s)
|
||||
|
||||
The early Internet emerged from government and academic research networks, with design principles that emphasized:
|
||||
|
||||
- Resilience against failure
|
||||
- Peer-to-peer communication
|
||||
- Open collaboration
|
||||
- Decentralized governance
|
||||
|
||||
During this period, the Internet functioned largely as a digital commons—a shared resource governed by its community of users rather than commercial or state interests.
|
||||
|
||||
### The Commercialization Era (1990s-2010s)
|
||||
|
||||
With the development of the World Wide Web and growing public interest, commercial entities began playing a larger role:
|
||||
|
||||
- Telecommunications companies became the primary providers of Internet access
|
||||
- Commercial web browsers and servers dominated
|
||||
- Advertising emerged as the primary business model
|
||||
- Proprietary services began to replace open protocols
|
||||
|
||||
This commercialization brought resources and innovation but also introduced private interests into what had been a common resource.
|
||||
|
||||
### The Platform Era (2010s-Present)
|
||||
|
||||
The most recent phase has seen the rise of a few dominant platforms:
|
||||
|
||||
- Social media platforms have become primary communication channels
|
||||
- Cloud services concentrate data storage and processing
|
||||
- App stores create controlled environments for software distribution
|
||||
- Digital advertising enables mass surveillance
|
||||
|
||||
These platforms have created unprecedented centralization on a network designed to be decentralized—a fundamental contradiction with significant consequences.
|
||||
|
||||
## Challenges to an Open Internet
|
||||
|
||||
Today's Internet faces several interconnected challenges that threaten its role as open infrastructure for civil society:
|
||||
|
||||
### 1. Network Neutrality and Access
|
||||
|
||||
The principle that all Internet traffic should be treated equally—regardless of its source, destination, or content—faces ongoing threats:
|
||||
|
||||
- Internet Service Providers seeking to create "fast lanes" for paying content
|
||||
- Zero-rating schemes that exempt certain services from data caps
|
||||
- Technical practices like deep packet inspection that enable discrimination
|
||||
- Asymmetric connections that privilege consumption over creation
|
||||
|
||||
These threats undermine the Internet's function as a level playing field where all voices have equal technical opportunity to be heard.
|
||||
|
||||
### 2. Surveillance Capitalism
|
||||
|
||||
The dominant business model of today's Internet is based on comprehensive tracking and behavioral modification:
|
||||
|
||||
- Pervasive tracking across websites and applications
|
||||
- Detailed profiling of users for targeted advertising
|
||||
- Behavioral manipulation to maximize engagement
|
||||
- Commodification of personal data and attention
|
||||
|
||||
This model creates inherent conflicts with privacy, autonomy, and the trust necessary for civic participation.
|
||||
|
||||
### 3. Digital Enclosures
|
||||
|
||||
Increasingly, open protocols are being replaced by closed platforms:
|
||||
|
||||
- Messaging moving from email and SMS to proprietary apps
|
||||
- Content shifting from websites to social media platforms
|
||||
- Applications moving from locally-installed software to cloud services
|
||||
- Identity systems controlled by a few major providers
|
||||
|
||||
These enclosures create dependencies and vulnerabilities for civil society organizations that rely on digital infrastructure they cannot control.
|
||||
|
||||
### 4. Infrastructure Consolidation
|
||||
|
||||
At the physical and logical levels, the Internet is becoming more concentrated:
|
||||
|
||||
- Cloud services concentrated among a few providers
|
||||
- Content delivery networks controlling much web traffic
|
||||
- Internet backbone dominated by a small number of companies
|
||||
- DNS increasingly centralized despite its distributed design
|
||||
|
||||
This consolidation creates single points of failure and control in a system designed to avoid them.
|
||||
|
||||
### 5. State Control and Surveillance
|
||||
|
||||
Governments worldwide are asserting greater control over the Internet:
|
||||
|
||||
- Mass surveillance by intelligence agencies
|
||||
- Censorship and filtering systems
|
||||
- Data localization requirements
|
||||
- Internet shutdowns during protests or elections
|
||||
|
||||
These controls directly threaten civil society's ability to organize, communicate, and advocate freely.
|
||||
|
||||
## Implications for Civil Society
|
||||
|
||||
These challenges have specific implications for civil society organizations:
|
||||
|
||||
### Organizational Autonomy
|
||||
|
||||
As digital infrastructure becomes more centralized and commercial, civil society organizations face threats to their autonomy:
|
||||
|
||||
- Dependence on platforms that can change rules unilaterally
|
||||
- Vulnerability to surveillance by both corporate and state actors
|
||||
- Limited control over how they reach their communities
|
||||
- Potential conflicts between platform policies and organizational mission
|
||||
|
||||
These dependencies undermine organizations' ability to operate independently and in accordance with their values.
|
||||
|
||||
### Communication and Community-Building
|
||||
|
||||
Civil society depends on the ability to communicate freely and build community:
|
||||
|
||||
- Platform algorithms determine which messages reach which audiences
|
||||
- Corporate content policies may restrict legitimate speech
|
||||
- Surveillance chills participation and trust
|
||||
- Commercial incentives prioritize engagement over substantive connection
|
||||
|
||||
These constraints limit organizations' ability to foster the authentic communication essential to their missions.
|
||||
|
||||
### Information Access and Sharing
|
||||
|
||||
Civil society requires the free flow of information:
|
||||
|
||||
- Search algorithms shape what information seems relevant and accessible
|
||||
- Paywalls restrict access to knowledge
|
||||
- Content filters may block legitimate resources
|
||||
- Data caps and connectivity costs limit access
|
||||
|
||||
These barriers create information inequalities that particularly affect marginalized communities.
|
||||
|
||||
### Technology Choices
|
||||
|
||||
Civil society organizations face difficult choices about their technology use:
|
||||
|
||||
- Using commercial platforms means accepting their surveillance and control
|
||||
- Building alternatives requires resources many organizations lack
|
||||
- Avoiding dominant systems may limit reach and impact
|
||||
- Technical complexity creates barriers to informed decisions
|
||||
|
||||
There are no perfect options in a digital environment increasingly designed to serve interests other than those of civil society.
|
||||
|
||||
## Reclaiming the Internet for Civil Society
|
||||
|
||||
Despite these challenges, numerous initiatives are working to reclaim the Internet as open infrastructure for civil society:
|
||||
|
||||
### Community Networks
|
||||
|
||||
Around the world, communities are building their own Internet infrastructure:
|
||||
|
||||
- Mesh networks that provide local connectivity
|
||||
- Community-owned fiber networks
|
||||
- Wireless community networks in both rural and urban areas
|
||||
- Local data centers controlled by their communities
|
||||
|
||||
These initiatives demonstrate that the physical layer of the Internet can be built and maintained as a community resource rather than a commercial service.
|
||||
|
||||
### Protocol Revival and Innovation
|
||||
|
||||
New protocols are emerging to replace centralized services:
|
||||
|
||||
- **ActivityPub** enables federated social networking
|
||||
- **Matrix** provides decentralized real-time communication
|
||||
- **IPFS** (InterPlanetary File System) offers distributed content storage
|
||||
- **Secure Scuttlebutt** enables offline-first social networking
|
||||
|
||||
These protocols return to the Internet's original design philosophy of openness and interoperability while addressing contemporary needs.
|
||||
|
||||
### Platform Cooperativism
|
||||
|
||||
Alternative ownership models are being applied to digital platforms:
|
||||
|
||||
- User-owned social networks
|
||||
- Worker-owned gig platforms
|
||||
- Community-governed digital infrastructure
|
||||
- Cooperatively developed and maintained software
|
||||
|
||||
These models align governance with the interests of users rather than external shareholders.
|
||||
|
||||
### Digital Commons
|
||||
|
||||
Various initiatives are building digital commons—resources that are collectively owned and governed:
|
||||
|
||||
- Open-source software communities
|
||||
- Open educational resources
|
||||
- Community-maintained knowledge bases
|
||||
- Public domain datasets
|
||||
|
||||
These commons provide alternatives to enclosed, proprietary resources.
|
||||
|
||||
### Policy Advocacy
|
||||
|
||||
Civil society organizations are advocating for policies that protect the Internet as public infrastructure:
|
||||
|
||||
- Network neutrality protections
|
||||
- Privacy regulations that limit surveillance
|
||||
- Interoperability requirements for dominant platforms
|
||||
- Public investment in digital infrastructure
|
||||
- Antitrust enforcement against digital monopolies
|
||||
|
||||
These policy approaches recognize that the Internet's governance cannot be left entirely to market forces.
|
||||
|
||||
## The Civil Society Technology Foundation's Approach
|
||||
|
||||
The Civil Society Technology Foundation works toward an Internet that serves civil society through several interconnected strategies:
|
||||
|
||||
### 1. Self-Hosted Infrastructure
|
||||
|
||||
Our Sovereign Cloud project demonstrates how civil society organizations can regain control over their digital infrastructure by running their own services on hardware they control. This approach:
|
||||
|
||||
- Reduces dependency on commercial platforms
|
||||
- Enhances privacy and security
|
||||
- Builds technical capacity
|
||||
- Creates resilience against censorship or shutdown
|
||||
|
||||
By providing accessible tools and knowledge for self-hosting, we help organizations reclaim their technological autonomy.
|
||||
|
||||
### 2. Federation and Interoperability
|
||||
|
||||
We advocate for and support federated approaches to digital services, where independent instances can communicate through open protocols. This model:
|
||||
|
||||
- Enables community governance of each instance
|
||||
- Allows adaptation to local needs and contexts
|
||||
- Prevents central points of control
|
||||
- Maintains the benefits of network connectivity
|
||||
|
||||
Federation represents a middle path between isolated self-sufficiency and centralized dependency.
|
||||
|
||||
### 3. Digital Literacy
|
||||
|
||||
We develop educational resources that help civil society organizations understand the Internet's technical, social, and political dimensions. This knowledge enables:
|
||||
|
||||
- Informed decisions about technology adoption
|
||||
- Strategic advocacy for better policies
|
||||
- Recognition of threats to autonomy
|
||||
- Participation in governance processes
|
||||
|
||||
Without this literacy, technical and governance decisions are effectively made by default, often against civil society's interests.
|
||||
|
||||
### 4. Standards Participation
|
||||
|
||||
We participate in Internet standards processes to ensure civil society perspectives are represented. This participation helps:
|
||||
|
||||
- Keep protocols open and accessible
|
||||
- Center human rights concerns in technical design
|
||||
- Resist surveillance by default
|
||||
- Maintain the Internet as a global commons
|
||||
|
||||
Standards decisions that seem purely technical often embed important value choices that affect civil society's ability to function.
|
||||
|
||||
## Practical Steps for Civil Society Organizations
|
||||
|
||||
Organizations seeking to reclaim their digital autonomy can take several practical steps:
|
||||
|
||||
### 1. Inventory and Assessment
|
||||
|
||||
Begin by understanding your current digital dependencies:
|
||||
|
||||
- What platforms and services does your organization rely on?
|
||||
- What data do you share with those platforms?
|
||||
- What risks would you face if those services changed policies or shut down?
|
||||
- What information is most sensitive for your community?
|
||||
|
||||
This inventory creates the foundation for strategic decisions about where to invest in alternatives.
|
||||
|
||||
### 2. Prioritization
|
||||
|
||||
Based on your assessment, identify priorities for increasing autonomy:
|
||||
|
||||
- Which dependencies create the greatest risks?
|
||||
- Where would investments in alternatives create the most benefit?
|
||||
- What capabilities do you need to develop internally?
|
||||
- What can be addressed through collective action with peer organizations?
|
||||
|
||||
Given limited resources, strategic prioritization is essential for effective action.
|
||||
|
||||
### 3. Collective Approaches
|
||||
|
||||
Many challenges are best addressed collectively:
|
||||
|
||||
- Pool resources with similar organizations to develop shared infrastructure
|
||||
- Join existing cooperatives or commons initiatives
|
||||
- Participate in federated networks that align with your values
|
||||
- Contribute to open-source projects that meet your needs
|
||||
|
||||
Collective approaches distribute costs while building resilient communities of practice.
|
||||
|
||||
### 4. Incremental Implementation
|
||||
|
||||
Implement changes incrementally to manage transition costs:
|
||||
|
||||
- Start with less visible systems to build experience
|
||||
- Develop internal capacity through manageable projects
|
||||
- Create migration paths that allow gradual transition
|
||||
- Evaluate and adapt based on experience
|
||||
|
||||
Incremental approaches make change sustainable and build internal support.
|
||||
|
||||
### 5. Advocacy and Solidarity
|
||||
|
||||
Address structural issues through advocacy:
|
||||
|
||||
- Support policy initiatives for an open Internet
|
||||
- Raise awareness about digital rights issues
|
||||
- Build solidarity with other civil society organizations
|
||||
- Participate in governance forums where decisions are made
|
||||
|
||||
Individual efforts must be complemented by structural change for sustainable impact.
|
||||
|
||||
## Conclusion
|
||||
|
||||
The Internet remains essential infrastructure for civil society, but its current trajectory threatens the openness and autonomy that make it valuable. By understanding how the Internet works, recognizing the challenges to its openness, and taking practical steps toward alternatives, civil society organizations can help reclaim this vital resource.
|
||||
|
||||
The Civil Society Technology Foundation believes that an Internet aligned with civil society values is both necessary and possible. Through self-hosted infrastructure, federated services, digital literacy, and collective action, we can build a digital environment that genuinely serves the public interest rather than commercial or state control.
|
||||
|
||||
As we face increasing centralization and surveillance, this work becomes not just technically important but essential for preserving the spaces where civil society can function effectively. The Internet we need—open, accessible, and democratic—won't emerge by default; it must be actively built and maintained as a digital commons.
|
271
content/learning/language-models.md
Normal file
271
content/learning/language-models.md
Normal file
@@ -0,0 +1,271 @@
|
||||
+++
|
||||
title = 'Language Models: Understanding AI in the Context of Civil Society'
|
||||
+++
|
||||
|
||||
## Introduction
|
||||
|
||||
Large Language Models (LLMs) have rapidly transformed from research curiosities to everyday tools. These systems, trained on vast corpora of human-written text, have demonstrated remarkable capabilities in understanding and generating human language, powering applications from automated assistants to content creation tools. For civil society organizations, these technologies represent both opportunity and challenge—tools that can amplify effectiveness and reach, but also systems that raise profound questions about centralization, control, and the future of human agency.
|
||||
|
||||
In this article, we examine language models through the lens of civil society values, exploring how these technologies work, their implications for digital sovereignty, and pathways to harnessing their benefits while minimizing risks to autonomy and independence.
|
||||
|
||||
## What Are Language Models?
|
||||
|
||||
Language models are AI systems trained to predict the next word in a sequence, typically through exposure to enormous datasets of text. Through this seemingly simple task, these models develop sophisticated representations of language that enable them to:
|
||||
|
||||
- Generate coherent and contextually appropriate text
|
||||
- Answer questions based on learned information
|
||||
- Summarize lengthy documents
|
||||
- Translate between languages
|
||||
- Carry out conversations that mimic human interaction
|
||||
- Write and debug code
|
||||
- Analyze and extract information from documents
|
||||
|
||||
The largest of these models, such as GPT-4, Claude, and PaLM, contain hundreds of billions of parameters and are trained on trillions of words, giving them capabilities that can seem almost human-like in certain contexts.
|
||||
|
||||
### How Language Models Work
|
||||
|
||||
At a high level, modern language models operate through the following process:
|
||||
|
||||
1. **Pre-training**: The model is exposed to vast quantities of text from the internet, books, and other sources, learning statistical patterns about how language works
|
||||
2. **Fine-tuning**: Additional training with human feedback teaches the model to be helpful, harmless, and honest
|
||||
3. **Prompting**: Users provide instructions or questions that guide the model's output
|
||||
4. **Inference**: The model generates text based on what it has learned and the prompt provided
|
||||
|
||||
This approach—training on vast datasets to develop general capabilities, then fine-tuning for specific behaviors—has proven remarkably effective, enabling these systems to handle a wide range of language tasks without task-specific programming.
|
||||
|
||||
### The Current Landscape
|
||||
|
||||
Several types of language models exist in the current ecosystem:
|
||||
|
||||
1. **Proprietary cloud-only models**: Systems like GPT-4 (OpenAI), Claude (Anthropic), and PaLM (Google) available only through APIs, with the highest capabilities but least transparency or control
|
||||
2. **Open-weight models**: Systems like Llama (Meta), Mistral, and Falcon, where model weights are available for download but may have usage restrictions
|
||||
3. **Fully open models**: Systems like Pythia and BLOOM, completely open for research, modification, and deployment
|
||||
4. **Specialized models**: Domain-specific models for code (Codex, CodeLlama), medicine (Med-PaLM), and law (Claude JD), optimized for particular fields
|
||||
|
||||
These categories represent different trade-offs between capability, control, efficiency, and openness—trade-offs that have significant implications for civil society use.
|
||||
|
||||
## Language Models and Civil Society
|
||||
|
||||
For civil society organizations, language models present unique benefits, risks, and considerations:
|
||||
|
||||
### Potential Benefits
|
||||
|
||||
Language models can enhance civil society work in several important ways:
|
||||
|
||||
1. **Amplifying Capacity**: Automating routine writing, data analysis, and information processing allows teams to focus on higher-level work
|
||||
2. **Bridging Language Gaps**: Improving access to information across languages and technical domains
|
||||
3. **Reducing Knowledge Barriers**: Making specialized knowledge more accessible through natural language interfaces
|
||||
4. **Enabling New Analysis**: Processing and synthesizing large volumes of documents to identify patterns and extract insights
|
||||
5. **Democratizing Technical Tools**: Making programming and technical skills more accessible through natural language interfaces
|
||||
|
||||
These capabilities can be particularly valuable for organizations with limited resources, potentially leveling the playing field between well-funded institutions and grassroots efforts.
|
||||
|
||||
### Critical Concerns
|
||||
|
||||
At the same time, language models raise serious concerns for organizations committed to digital sovereignty:
|
||||
|
||||
1. **Centralization of Power**: The most capable models require resources only available to large corporations or governments
|
||||
2. **Data Extraction Risks**: API-based access creates dependency and potential surveillance
|
||||
3. **Opacity and Accountability Gaps**: How models make decisions remains largely opaque
|
||||
4. **Training Data Biases**: Models inherit biases present in their training data
|
||||
5. **Synthetic Reality**: The ability to generate convincing but false content at scale
|
||||
6. **Environmental Impact**: Training and running large models requires significant energy resources
|
||||
7. **Labor Impacts**: Automation of knowledge work may affect livelihood and employment patterns
|
||||
|
||||
These concerns connect directly to civil society's core focus on distributed power, accountability, and human agency.
|
||||
|
||||
## Sovereignty Considerations
|
||||
|
||||
For organizations committed to digital sovereignty, language models present particular challenges:
|
||||
|
||||
### The Sovereignty Paradox
|
||||
|
||||
The most capable language models currently exist in a paradigm that conflicts with sovereignty principles:
|
||||
|
||||
- Trained on massive datasets that no individual organization can replicate
|
||||
- Requiring computational resources beyond most civil society organizations
|
||||
- Delivered as black-box services through APIs owned by corporations
|
||||
- Controlled by entities whose incentives may not align with civil society
|
||||
|
||||
This creates a paradox: using these tools can advance an organization's mission while simultaneously reinforcing dependency on centralized technological infrastructure.
|
||||
|
||||
### Sovereignty-Respecting Approaches
|
||||
|
||||
Several approaches exist for using language models while maintaining alignment with sovereignty principles:
|
||||
|
||||
1. **Self-hosted smaller models**: Running smaller but still capable models on local infrastructure
|
||||
2. **Federated improvement**: Pooling resources to improve open models without centralizing data
|
||||
3. **Hybrid architectures**: Using local models for sensitive tasks and cloud models for general needs
|
||||
4. **APIs with strong boundaries**: Clear policies on what data can be sent to external APIs
|
||||
5. **Proxy infrastructure**: Community-controlled interfaces to commercial models that protect user data
|
||||
|
||||
These approaches represent different balances between capability, independence, and practical constraints.
|
||||
|
||||
## Practical Approaches
|
||||
|
||||
For civil society organizations considering language models, we recommend a principled, thoughtful approach:
|
||||
|
||||
### Risk Assessment Framework
|
||||
|
||||
Before implementing language model technologies, organizations should evaluate:
|
||||
|
||||
1. **Data Sensitivity**: What information will the system process and what would be the impact of compromise?
|
||||
2. **Task Criticality**: How central is the use case to the organization's mission?
|
||||
3. **Dependency Risk**: What happens if the model provider changes terms, pricing, or availability?
|
||||
4. **Alignment Check**: Does the model's training and operation align with the organization's values?
|
||||
5. **Resource Analysis**: What local capabilities exist to understand, deploy, and maintain the system?
|
||||
|
||||
This assessment helps determine the appropriate balance between capability and sovereignty for each use case.
|
||||
|
||||
### Recommended Approaches by Context
|
||||
|
||||
Different contexts call for different approaches to language model use:
|
||||
|
||||
#### For General, Non-Sensitive Tasks
|
||||
|
||||
When working with public information and general tasks:
|
||||
|
||||
- Commercial APIs may be acceptable with appropriate data policies
|
||||
- Focus on clear boundaries for what data can be shared
|
||||
- Consider specialized interfaces that limit data exposure
|
||||
|
||||
#### For Sensitive Information
|
||||
|
||||
When working with private, sensitive, or strategic information:
|
||||
|
||||
- Self-hosted open models are generally preferable despite capability limitations
|
||||
- Air-gapped systems may be necessary for highest sensitivity
|
||||
- Careful prompt engineering to avoid exposing unnecessary information
|
||||
|
||||
#### For Core Infrastructure
|
||||
|
||||
When building critical systems that will be long-term dependencies:
|
||||
|
||||
- Prefer open models even at some capability cost
|
||||
- Invest in developing internal expertise
|
||||
- Consider federation with similar organizations to pool resources
|
||||
|
||||
## Open Language Model Ecosystem
|
||||
|
||||
A growing ecosystem of open language models offers alternatives to commercial services:
|
||||
|
||||
### Notable Open Models
|
||||
|
||||
Several open and open-weight models provide viable options for civil society use:
|
||||
|
||||
- **Llama 2 and 3**: Meta's model with weights available for research and commercial use
|
||||
- **Mistral**: High-performance efficient models with multiple sizes
|
||||
- **Falcon**: State of the art open-weight models with flexible licensing
|
||||
- **MPT**: Commercially permissive models from MosaicML
|
||||
- **BLOOM**: Multilingual model developed by a global collaboration
|
||||
|
||||
These models continue to improve rapidly, narrowing the gap with proprietary alternatives.
|
||||
|
||||
### Self-Hosting Options
|
||||
|
||||
Several frameworks make deploying language models more accessible:
|
||||
|
||||
- **LM Studio**: Simple desktop application for running models locally
|
||||
- **Ollama**: Command line tool for easy model management
|
||||
- **Transformers.js**: Run smaller models directly in web browsers
|
||||
- **vLLM**: High-performance inference server for larger deployments
|
||||
- **Ollama-WebUI**: Graphical interface for Ollama's language models
|
||||
|
||||
These tools make local deployment increasingly viable for organizations with limited technical resources.
|
||||
|
||||
## Case Studies: Language Models in Civil Society
|
||||
|
||||
Several examples illustrate how civil society organizations are navigating language model adoption:
|
||||
|
||||
### Scenario 1: Documentation Assistance
|
||||
|
||||
A human rights organization uses language models to help draft, organize, and translate documentation. They implement:
|
||||
|
||||
- Local models for initial drafting of sensitive content
|
||||
- Careful review processes before publication
|
||||
- Cloud APIs for translation of already-public information
|
||||
- Clear data policies regarding what can be sent to external services
|
||||
|
||||
This hybrid approach balances practical needs with sovereignty concerns.
|
||||
|
||||
### Scenario 2: Community Legal Aid
|
||||
|
||||
A legal assistance organization develops a system to help explain legal concepts to non-lawyers. They:
|
||||
|
||||
- Fine-tune open models on public legal documents
|
||||
- Host models on their own infrastructure
|
||||
- Create specialized interfaces for common questions
|
||||
- Maintain human review of all substantive advice
|
||||
|
||||
This sovereignty-first approach prioritizes control and alignment with the organization's values.
|
||||
|
||||
### Scenario 3: Environmental Data Analysis
|
||||
|
||||
A climate advocacy group uses language models to analyze environmental impact reports. They:
|
||||
|
||||
- Use commercial APIs for initial processing of public documents
|
||||
- Develop specialized prompts to extract consistent information
|
||||
- Implement clear boundaries on sensitive strategic discussions
|
||||
- Contribute to open model development in their domain
|
||||
|
||||
This pragmatic approach uses available tools while working toward greater sovereignty.
|
||||
|
||||
## The Future Landscape
|
||||
|
||||
Several trends will shape how language models interact with civil society in coming years:
|
||||
|
||||
### Smaller, More Efficient Models
|
||||
|
||||
Models continue to decrease in size while maintaining capabilities:
|
||||
|
||||
- 7-billion parameter models now approach what required 175B parameters in 2020
|
||||
- Techniques like quantization reduce resource requirements
|
||||
- Specialized models outperform general models in specific domains
|
||||
- Browser-based models enable client-side processing
|
||||
|
||||
These trends make sovereignty-respecting approaches increasingly viable.
|
||||
|
||||
### Decentralized Research and Development
|
||||
|
||||
Alternatives to centralized AI development are emerging:
|
||||
|
||||
- Research collaboratives pooling resources for model development
|
||||
- Federated learning approaches that preserve data sovereignty
|
||||
- Community-governed models with transparent decision making
|
||||
- Regional training efforts creating linguistically diverse models
|
||||
|
||||
These initiatives create possibilities for models that align with civil society values from inception rather than as an afterthought.
|
||||
|
||||
### Governance and Accountability
|
||||
|
||||
New frameworks for language model governance are developing:
|
||||
|
||||
- Constitutional AI approaches embedding ethical guidelines
|
||||
- Auditing frameworks for model behavior
|
||||
- Documentation standards for training data and processes
|
||||
- Participatory governance models for model development
|
||||
|
||||
Civil society has a crucial role in shaping these governance approaches.
|
||||
|
||||
## Guidelines for Civil Society Organizations
|
||||
|
||||
For organizations navigating language model adoption, we recommend the following principles:
|
||||
|
||||
1. **Start with clear purpose**: Define specific problems these tools can help solve
|
||||
2. **Maintain human judgment**: Keep humans in decision loops, especially for consequential actions
|
||||
3. **Build internal literacy**: Develop organizational understanding of the technology's capabilities and limitations
|
||||
4. **Practice data minimalism**: Share only the information necessary for the task
|
||||
5. **Prefer open models where viable**: Choose open alternatives even with some capability trade-offs
|
||||
6. **Support community infrastructure**: Contribute to open model development when possible
|
||||
7. **Document and share learnings**: Help build collective knowledge about responsible use
|
||||
8. **Regularly reassess**: Technology and best practices are evolving rapidly
|
||||
|
||||
These guidelines help organizations balance practical benefit with long-term sovereignty.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Language models represent a profound technological shift with particularly complex implications for civil society. While these tools offer significant benefits for organizations with limited resources, they also present risks of creating new dependencies and reinforcing centralization of technological power.
|
||||
|
||||
The Civil Society Technology Foundation advocates for a sovereignty-respecting approach to language models—one that leverages their benefits while working toward a future where such capabilities are available through community-governed, transparent infrastructure. This means making thoughtful choices today about how and when to use these tools, while supporting the development of alternatives that better align with civil society values.
|
||||
|
||||
The path forward is neither uncritical adoption nor blanket rejection, but rather principled engagement that shapes these technologies to serve human agency, community autonomy, and distributed power—the core values that define civil society itself.
|
@@ -1,5 +0,0 @@
|
||||
+++
|
||||
title = 'Language Models'
|
||||
+++
|
||||
|
||||
|
@@ -1,5 +1,209 @@
|
||||
+++
|
||||
title = 'Linux'
|
||||
title = 'Linux: The Operating System for Digital Sovereignty'
|
||||
+++
|
||||
|
||||
## Introduction
|
||||
|
||||
Linux stands as one of the most remarkable achievements in the history of computing—an operating system built by a global community, freely available to all, and powering everything from the smallest embedded devices to the largest supercomputers. For civil society organizations seeking digital sovereignty, Linux represents both a practical tool and a powerful symbol of what's possible when technology development is driven by community needs rather than corporate interests.
|
||||
|
||||
In this article, we explore what Linux is, why it matters for civil society, and how it provides the foundation for technological independence in an increasingly controlled digital landscape.
|
||||
|
||||
## What Is Linux?
|
||||
|
||||
Linux is an open-source operating system—the fundamental software that manages computer hardware and provides services for computer programs. When most people think of operating systems, they think of Microsoft Windows or Apple's macOS, but Linux works differently in several important ways.
|
||||
|
||||
### A Brief History
|
||||
|
||||
Linux began in 1991 when Linus Torvalds, a Finnish computer science student, created a free alternative to Unix, a powerful operating system then limited to expensive computers. What started as a personal project quickly became a global collaborative effort, with thousands of developers contributing code.
|
||||
|
||||
This collaborative development model produced an operating system that now:
|
||||
|
||||
- Powers over 96% of the world's top web servers
|
||||
- Forms the foundation of Android, running on billions of devices
|
||||
- Drives most of the world's supercomputers
|
||||
- Runs countless embedded devices, from smart TVs to automobile systems
|
||||
- Offers dozens of user-friendly desktop distributions for personal computing
|
||||
|
||||
Crucially, Linux developed outside traditional corporate structures, guided by the needs and contributions of its community rather than shareholders or marketing departments.
|
||||
|
||||
### Technical Characteristics
|
||||
|
||||
Linux offers several technical advantages that make it ideal for organizations seeking resilience and control:
|
||||
|
||||
- **Modularity**: Components can be added, removed, or modified independently
|
||||
- **Stability**: Systems can run for years without rebooting
|
||||
- **Efficiency**: Works well on older or less powerful hardware
|
||||
- **Security**: Transparent code review and rapid patching of vulnerabilities
|
||||
- **Flexibility**: Can be customized for specific purposes from tiny devices to massive servers
|
||||
|
||||
These characteristics reflect Linux's organic development process, where improvements emerge from actual use cases rather than product planning cycles.
|
||||
|
||||
## Why Linux Matters for Civil Society
|
||||
|
||||
For civil society organizations seeking digital sovereignty, Linux provides several unique benefits:
|
||||
|
||||
### 1. Freedom from Corporate Control
|
||||
|
||||
Running Linux means your fundamental computing infrastructure isn't controlled by any single corporation. This independence means:
|
||||
|
||||
- No forced updates or feature changes
|
||||
- No data collection for business intelligence
|
||||
- No artificial limitations or tiered pricing models
|
||||
- No risk of being locked out of your own systems
|
||||
- No dependency on a vendor's business decisions
|
||||
|
||||
This independence is particularly important for organizations working on sensitive issues or operating in contexts where corporate alliances with governments may create additional risks.
|
||||
|
||||
### 2. Longevity and Sustainability
|
||||
|
||||
Linux distributions offer remarkable longevity:
|
||||
|
||||
- Major distributions provide long-term support versions with 5-10 years of security updates
|
||||
- Systems can be maintained indefinitely by the community if needed
|
||||
- Hardware can remain useful long past commercial obsolescence
|
||||
- Knowledge investment isn't invalidated by product discontinuation
|
||||
- Migration paths always exist between distributions
|
||||
|
||||
This sustainability aligns with civil society's need for long-term planning and responsible resource use, in contrast to commercial software's planned obsolescence cycles.
|
||||
|
||||
### 3. Security and Privacy
|
||||
|
||||
Linux's security model offers significant advantages:
|
||||
|
||||
- Open code enables independent security audits
|
||||
- Distributed development means more eyes looking for vulnerabilities
|
||||
- Rapid patching cycles address security issues quickly
|
||||
- Fine-grained permissions systems limit potential damage
|
||||
- Transparent operation means hidden functionality can't easily exist
|
||||
|
||||
These security characteristics are especially important for organizations working with vulnerable populations or sensitive information, where privacy breaches could have serious consequences.
|
||||
|
||||
### 4. Global Accessibility
|
||||
|
||||
Linux's accessibility removes barriers to participation:
|
||||
|
||||
- Zero cost for the software itself
|
||||
- Runs on modest hardware, including older computers
|
||||
- Available in dozens of languages, including those often neglected commercially
|
||||
- Works in regions with limited internet connectivity
|
||||
- Adapts to local needs and contexts
|
||||
|
||||
This accessibility aligns with civil society's commitment to inclusion and equitable access to technological tools.
|
||||
|
||||
### 5. Sovereignty and Control
|
||||
|
||||
Perhaps most importantly, Linux enables genuine sovereignty over computing infrastructure:
|
||||
|
||||
- Organizations can inspect and modify any aspect of their systems
|
||||
- Technical knowledge builds internal capacity rather than dependency
|
||||
- Adaptation to specific needs doesn't require vendor permission
|
||||
- Systems can be fully understood rather than treated as black boxes
|
||||
- Community governance replaces corporate decision-making
|
||||
|
||||
This sovereignty is not just a technical preference but essential for organizations that need to control their own digital infrastructure.
|
||||
|
||||
## Linux Distributions for Civil Society
|
||||
|
||||
Linux comes in many "distributions" (or "distros")—different versions packaged with specific software selections, installation tools, and management systems. For civil society organizations, several distributions are particularly relevant:
|
||||
|
||||
### For Desktop Computing
|
||||
|
||||
- **Ubuntu**: User-friendly for those transitioning from Windows or macOS
|
||||
- **Fedora**: Emphasizes latest stable software and security features
|
||||
- **Linux Mint**: Particularly accessible for newcomers
|
||||
- **Tails**: Focuses on privacy and leaves no digital footprint
|
||||
- **Debian**: Prioritizes stability and software freedom
|
||||
|
||||
### For Servers
|
||||
|
||||
- **Debian**: Rock-solid stability with long support cycles
|
||||
- **Ubuntu Server**: Good documentation and commercial support options
|
||||
- **Rocky Linux**: Enterprise-grade stability for critical applications
|
||||
- **Alpine Linux**: Minimalist and security-focused for specific applications
|
||||
|
||||
### For Specific Use Cases
|
||||
|
||||
- **Qubes OS**: Compartmentalized security for high-risk contexts
|
||||
- **PureOS**: Focus on privacy and avoiding non-free software
|
||||
- **Armbian**: For single-board computers and low-cost infrastructure
|
||||
- **OpenWrt**: For network devices and community networks
|
||||
|
||||
The Civil Society Technology Foundation's Sovereign Cloud project uses lightweight Linux distributions as the foundation for self-hosted infrastructure, allowing organizations to run essential services on hardware they control.
|
||||
|
||||
## Common Myths About Linux
|
||||
|
||||
Despite Linux's ubiquity in many domains, several misconceptions persist:
|
||||
|
||||
### "Linux Is Too Difficult for Non-Technical Users"
|
||||
|
||||
**Reality**: Modern Linux distributions offer graphical interfaces as user-friendly as Windows or macOS. For basic tasks like web browsing, document editing, and email, the experience is largely identical. While some advanced functions require command-line knowledge, the same is increasingly true of any operating system.
|
||||
|
||||
### "Linux Doesn't Run the Software We Need"
|
||||
|
||||
**Reality**: Linux supports a vast ecosystem of applications, including LibreOffice for documents, Firefox and Chromium for web browsing, Thunderbird for email, and thousands of specialized tools. Additionally, web applications work the same on Linux as on any platform, and compatibility layers can run many Windows applications when needed.
|
||||
|
||||
### "There's No Support for Linux"
|
||||
|
||||
**Reality**: Linux has extensive community support through forums, documentation, and local user groups. Additionally, many distributions offer professional support options, and a growing ecosystem of consultants specializes in Linux deployment and maintenance.
|
||||
|
||||
### "Linux Isn't Ready for Professional Use"
|
||||
|
||||
**Reality**: Linux powers mission-critical systems at organizations including Google, Amazon, Facebook, NASA, the New York Stock Exchange, and countless governments and universities. It has demonstrated its reliability in the most demanding environments globally.
|
||||
|
||||
## Getting Started with Linux
|
||||
|
||||
For civil society organizations considering Linux, we recommend a phased approach:
|
||||
|
||||
1. **Start with a pilot**: Identify a specific use case where Linux offers particular advantages
|
||||
2. **Choose a user-friendly distribution**: For desktop use, Ubuntu or Mint reduce the learning curve
|
||||
3. **Dual-boot or use live systems**: Allow users to try Linux without committing entirely
|
||||
4. **Focus on training**: Invest in building internal knowledge and capacity
|
||||
5. **Join communities**: Connect with local Linux user groups or online communities
|
||||
6. **Consider professional support**: For critical systems, budget for professional assistance
|
||||
|
||||
The Civil Society Technology Foundation can provide guidance on distribution selection, initial setup, and connecting with relevant communities of practice.
|
||||
|
||||
## Beyond the Operating System: The Linux Ecosystem
|
||||
|
||||
Linux has inspired a broader ecosystem of tools and practices that support digital sovereignty:
|
||||
|
||||
- **Container technologies** like Docker and Kubernetes (themselves Linux-based) enable flexible, portable deployments
|
||||
- **Configuration management** tools allow systematic administration of multiple systems
|
||||
- **Mesh networking** software facilitates community-controlled networks
|
||||
- **Self-hosting solutions** enable organizations to run their own services
|
||||
|
||||
Together, these technologies form a comprehensive toolkit for organizations seeking to maintain control over their digital infrastructure.
|
||||
|
||||
## Case Study: Community Networks
|
||||
|
||||
Around the world, communities are using Linux to build and maintain their own communications infrastructure. From Catalonia's Guifi.net to Mexico's Rhizomatica network to the Detroit Community Technology Project, these initiatives demonstrate how Linux and related open-source tools enable communities to create alternatives to commercial telecommunications infrastructure.
|
||||
|
||||
These community networks typically use Linux for:
|
||||
|
||||
- Network routing and management
|
||||
- Local content hosting
|
||||
- Communications security
|
||||
- Mesh network coordination
|
||||
- Community ownership of technology
|
||||
|
||||
By providing a free, adaptable foundation, Linux enables these initiatives to focus their resources on hardware, training, and community engagement rather than software licensing.
|
||||
|
||||
## The Future of Linux and Civil Society
|
||||
|
||||
As digital technology becomes increasingly central to all aspects of civic life, the relationship between Linux and civil society grows more important. Several emerging trends highlight this connection:
|
||||
|
||||
- **Edge computing** brings computation closer to communities, often using Linux on small devices
|
||||
- **Software sovereignty** movements advocate for public control of critical code
|
||||
- **Digital commons** initiatives build shared technological resources
|
||||
- **Community cloud** approaches offer alternatives to corporate infrastructure
|
||||
- **Digital public infrastructure** creates essential services outside market logic
|
||||
|
||||
In each of these areas, Linux provides a foundation that enables community control, adaptation to local needs, and independence from commercial imperatives.
|
||||
|
||||
## Conclusion
|
||||
|
||||
For civil society organizations committed to digital sovereignty, Linux represents both practical infrastructure and a compelling vision. By choosing Linux, organizations assert control over their fundamental computing environment, build internal capacity rather than dependency, and join a global community developing technology for human needs rather than market demands.
|
||||
|
||||
The Civil Society Technology Foundation recognizes Linux as essential infrastructure for robust civil society in the digital age. By building on this foundation, organizations can create resilient, independent systems that genuinely serve their missions and communities.
|
||||
|
||||
In a world where technology increasingly mediates civic participation, Linux offers a proven path to maintaining autonomy, security, and control—not as a technical preference but as a necessary condition for vibrant civil society in the digital era.
|
||||
|
BIN
content/learning/open-source/featured.png
Normal file
BIN
content/learning/open-source/featured.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.0 MiB |
154
content/learning/open-source/index.md
Normal file
154
content/learning/open-source/index.md
Normal file
@@ -0,0 +1,154 @@
|
||||
+++
|
||||
title = 'Open Source: The Foundation of Digital Freedom'
|
||||
+++
|
||||
|
||||
## Introduction
|
||||
|
||||
Open source isn't just a development methodology or licensing approach—it's a foundational philosophy that enables digital freedom, community empowerment, and technological resilience. At the Civil Society Technology Foundation, we believe that open source principles are essential for building technology that genuinely serves people rather than controlling them.
|
||||
|
||||
This article explores what open source means, why it matters for civil society, and how it forms the basis for digital autonomy in an increasingly centralized tech landscape.
|
||||
|
||||
## What Is Open Source?
|
||||
|
||||
Open source refers to software whose source code is publicly available, allowing anyone to view, use, modify, and distribute it. This approach stands in contrast to proprietary software, where the source code is kept secret and controlled by a single entity.
|
||||
|
||||
### The Four Freedoms
|
||||
|
||||
At its core, open source (or "free software" in the sense of freedom, not price) is defined by four essential freedoms:
|
||||
|
||||
1. **The freedom to run the program** for any purpose
|
||||
2. **The freedom to study how the program works** and change it to suit your needs
|
||||
3. **The freedom to redistribute copies** to help others
|
||||
4. **The freedom to distribute copies of your modified versions** to others
|
||||
|
||||
These freedoms, articulated by Richard Stallman and the Free Software Foundation, establish the basic rights that users should have over their software. When any of these freedoms is restricted, users lose control over their computing environment.
|
||||
|
||||
### Beyond Software
|
||||
|
||||
While open source began as a software movement, its principles have expanded to other domains:
|
||||
|
||||
- **Open hardware**: Physical device designs that can be studied, modified, and manufactured by anyone
|
||||
- **Open data**: Datasets that are freely available for anyone to access, use, and share
|
||||
- **Open standards**: Technical specifications available for anyone to implement without restrictions
|
||||
- **Open content**: Creative works that others can modify and redistribute (like Creative Commons)
|
||||
|
||||
This expansion recognizes that the values of openness, transparency, and user control apply to all forms of digital artifacts, not just code.
|
||||
|
||||
## Why Open Source Matters for Civil Society
|
||||
|
||||
For civil society organizations—the non-governmental groups that form the backbone of democratic participation—open source is particularly crucial:
|
||||
|
||||
### 1. Independence and Agency
|
||||
|
||||
Open source ensures that organizations maintain control over their technical infrastructure. When your tools can be inspected, modified, and maintained independently, you're not subject to the changing business decisions, terms of service, or surveillance practices of commercial vendors.
|
||||
|
||||
This independence is especially important for advocacy organizations working on sensitive issues, organizations operating in politically challenging environments, or those with limited resources who cannot afford constant licensing fees.
|
||||
|
||||
### 2. Security and Privacy
|
||||
|
||||
While "security through obscurity" (keeping code secret) is a common commercial approach, it often masks deeper vulnerabilities:
|
||||
|
||||
- Open source enables **transparent security** where many eyes can review code for flaws
|
||||
- Communities can identify and fix vulnerabilities **before** they're exploited
|
||||
- Organizations can verify that software does exactly what it claims—nothing more, nothing less
|
||||
- Security practices can be independently verified rather than taken on faith
|
||||
|
||||
For organizations handling sensitive information about vulnerable populations, this transparency is not just preferable but ethically necessary.
|
||||
|
||||
### 3. Sustainability and Resilience
|
||||
|
||||
Open source creates sustainable technology ecosystems:
|
||||
|
||||
- Software cannot be "discontinued" if the original creator loses interest
|
||||
- Knowledge is preserved and shared rather than locked in proprietary systems
|
||||
- Communities can maintain critical infrastructure even if companies change direction
|
||||
- Organizations build internal capacity rather than perpetual dependency
|
||||
|
||||
This sustainability is essential for long-term planning and resilience against market fluctuations or external pressures.
|
||||
|
||||
### 4. Collaborative Innovation
|
||||
|
||||
Open source enables collaborative problem-solving across organizational boundaries:
|
||||
|
||||
- Civil society organizations with similar needs can pool resources
|
||||
- Improvements developed by one organization benefit all users
|
||||
- Specialized adaptations can be shared with the broader community
|
||||
- Innovation happens through cooperation rather than competition
|
||||
|
||||
This collaborative approach aligns with the cooperative values of many civil society organizations and allows for more efficient use of limited resources.
|
||||
|
||||
### 5. Ethical Alignment
|
||||
|
||||
Open source creates alignment between technological means and social ends:
|
||||
|
||||
- Organizations advocating for transparency can use transparent tools
|
||||
- Those fighting for equity can use tools available to all regardless of resources
|
||||
- Communities seeking self-determination can use self-governed technology
|
||||
- Movements promoting democracy can use democratically-developed software
|
||||
|
||||
This alignment strengthens moral authority and prevents contradictions between values and practices.
|
||||
|
||||
## Common Misconceptions About Open Source
|
||||
|
||||
Despite its importance, several misconceptions persist about open source:
|
||||
|
||||
### "Open Source Means Lower Quality"
|
||||
|
||||
**Reality**: Many of the world's most reliable systems run on open source software. The Linux kernel powers most of the internet's servers, Android phones, and embedded devices. Studies consistently show that open source development practices often lead to higher-quality, more secure code through distributed peer review and transparent processes.
|
||||
|
||||
### "Open Source Isn't Sustainable"
|
||||
|
||||
**Reality**: Open source has developed numerous sustainable models, from community maintenance to foundation support to commercial services built around open cores. Many open source projects have outlived the commercial alternatives in their space precisely because they aren't dependent on a single company's business model.
|
||||
|
||||
### "Open Source Is Just for Programmers"
|
||||
|
||||
**Reality**: While contributing code is one way to participate in open source, communities also need documentation writers, translators, designers, testers, and users providing feedback. The principles of open source apply to any collaborative creation process, not just software development.
|
||||
|
||||
### "Open Source Means Anyone Can Change Your Copy"
|
||||
|
||||
**Reality**: Open source licenses give you the right to modify your own copy, not to force changes on others. This means you maintain control over your specific implementation while benefiting from the freedom to adapt it as needed.
|
||||
|
||||
## Open Source in Practice: The Sovereign Cloud
|
||||
|
||||
The Civil Society Technology Foundation's Sovereign Cloud project demonstrates open source principles in action. This reference implementation for self-hosted infrastructure:
|
||||
|
||||
- Uses only open source components that can be freely inspected and modified
|
||||
- Enables organizations to maintain full control over their infrastructure
|
||||
- Creates a community of practice where improvements benefit all participants
|
||||
- Provides adaptable solutions that respect the diversity of civil society needs
|
||||
- Builds capacity for technological self-determination rather than dependency
|
||||
|
||||
By combining carefully selected open source tools into a cohesive system, the Sovereign Cloud shows how open source can address practical needs while embodying the values of digital freedom.
|
||||
|
||||
## Practical Steps Toward Open Source Adoption
|
||||
|
||||
For organizations interested in moving toward open source, we recommend an incremental approach:
|
||||
|
||||
1. **Conduct an inventory** of your current technology stack
|
||||
2. **Identify priorities** based on sensitivity, cost, and alignment with your mission
|
||||
3. **Research alternatives** for each proprietary component
|
||||
4. **Develop a transition plan** with realistic timelines and training needs
|
||||
5. **Build internal capacity** through learning and community participation
|
||||
6. **Contribute back** when you make improvements or adaptations
|
||||
|
||||
This approach recognizes that transition takes time and should be tailored to your organization's specific context and needs.
|
||||
|
||||
## The Broader Movement: Digital Commons
|
||||
|
||||
Open source is part of a broader movement to create digital commons—resources that are collectively owned and governed rather than privately enclosed. This movement includes:
|
||||
|
||||
- **Community networks** providing local internet access
|
||||
- **Public interest technology** focused on civic needs
|
||||
- **Digital public goods** accessible to all
|
||||
- **Knowledge commons** like Wikipedia and open educational resources
|
||||
- **Cooperative platforms** owned by their users rather than investors
|
||||
|
||||
Together, these initiatives are creating an alternative vision for technology—one where collective benefit takes precedence over private extraction, and where communities maintain control over the digital systems that increasingly shape their lives.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Open source is not merely a technical choice but a social and political one. By choosing open source, civil society organizations assert the principle that technology should serve its users rather than control them, that knowledge should be shared rather than enclosed, and that communities should determine their own technological futures.
|
||||
|
||||
The Civil Society Technology Foundation sees open source as essential infrastructure for robust civic participation in the digital age. By building on open foundations, we create the conditions for technology that genuinely enhances human agency, protects fundamental rights, and strengthens rather than undermines democratic society.
|
||||
|
||||
As we face increasing concentration of technological power in the hands of a few corporations and states, open source provides a proven alternative—one built on collaboration, transparency, and freedom. It is not just a preference but a necessity for civil society organizations committed to independence, sustainability, and ethical alignment in their technological choices.
|
BIN
content/learning/open-source/self-hosting.png
Normal file
BIN
content/learning/open-source/self-hosting.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.0 MiB |
@@ -1,5 +0,0 @@
|
||||
+++
|
||||
title = 'Open Source'
|
||||
+++
|
||||
|
||||
|
479
content/learning/software-development.md
Normal file
479
content/learning/software-development.md
Normal file
@@ -0,0 +1,479 @@
|
||||
+++
|
||||
title = 'Software Development: Building Digital Infrastructure for Civil Society'
|
||||
+++
|
||||
|
||||
## Introduction
|
||||
|
||||
Software development is not merely a technical activity but a form of infrastructure building with profound implications for human freedom and agency. As digital systems increasingly mediate civic life, the ability to create, modify, and control software becomes essential for civil society's independence and effectiveness.
|
||||
|
||||
In this article, we explore software development through the lens of civil society values—examining how development practices, tools, and approaches can either reinforce dependency or enable sovereignty. We'll address both practical aspects of creating software and the broader implications of development choices for organizational autonomy and mission.
|
||||
|
||||
## Why Software Development Matters for Civil Society
|
||||
|
||||
Software plays multiple critical roles in civil society contexts:
|
||||
|
||||
### 1. Infrastructure for Independence
|
||||
|
||||
Software forms the foundation for independent digital operations:
|
||||
|
||||
- Custom tools that meet specific organizational needs
|
||||
- Adaptable systems that evolve with changing circumstances
|
||||
- Infrastructure resilient against external disruption or control
|
||||
- Alternatives to extractive or surveillance-oriented commercial options
|
||||
|
||||
Organizations that can create and modify their own software maintain fundamental control over their digital environment.
|
||||
|
||||
### 2. Expression of Values in Code
|
||||
|
||||
Software development decisions directly embody organizational values:
|
||||
|
||||
- Privacy by design rather than as an afterthought
|
||||
- Accessibility as a foundational requirement
|
||||
- Transparency in operation and decision-making
|
||||
- Inclusion through multilingual support and cultural adaptations
|
||||
- Sustainability through efficient resource use
|
||||
|
||||
These values-in-code determine whether digital systems empower or constrain the communities they serve.
|
||||
|
||||
### 3. Capacity Building
|
||||
|
||||
Software development builds crucial organizational capabilities:
|
||||
|
||||
- Technical literacy throughout the organization
|
||||
- Problem-solving skills applicable across domains
|
||||
- Understanding of digital systems' possibilities and limitations
|
||||
- Reduced dependency on external vendors or consultants
|
||||
- Ability to evaluate and adapt external technologies
|
||||
|
||||
These capacities extend beyond software itself to strengthen overall organizational resilience.
|
||||
|
||||
## Sovereignty-Respecting Development Practices
|
||||
|
||||
Software development practices can either enhance or undermine digital sovereignty. We advocate for approaches that:
|
||||
|
||||
### 1. Focus on Simplicity and Maintainability
|
||||
|
||||
Complex systems create dependency on their creators. Sovereign infrastructure prioritizes:
|
||||
|
||||
- Understandable code over clever solutions
|
||||
- Maintainable architecture over cutting-edge complexity
|
||||
- Documented designs that enable future modification
|
||||
- Clear separation of concerns for easier adaptation
|
||||
- Appropriate technology choices that balance capability and sustainability
|
||||
|
||||
These practices ensure systems remain under community control over time.
|
||||
|
||||
### 2. Build for Adaptability
|
||||
|
||||
Sovereign software anticipates the need for change:
|
||||
|
||||
- Modular architectures that allow component replacement
|
||||
- Well-defined interfaces between system parts
|
||||
- Configuration over hardcoding for easy adaptation
|
||||
- Extension points for future functionality
|
||||
- Clear migration paths between versions
|
||||
|
||||
This adaptability ensures systems can evolve with changing needs rather than requiring wholesale replacement.
|
||||
|
||||
### 3. Design for Resilience
|
||||
|
||||
Software should function in challenging contexts:
|
||||
|
||||
- Graceful degradation when resources are limited
|
||||
- Offline capabilities when connectivity is unreliable
|
||||
- Low resource requirements for accessibility on older hardware
|
||||
- Data portability for migration between systems
|
||||
- Resistance to common attacks and disruptions
|
||||
|
||||
These resilience characteristics are particularly important for organizations working in constrained environments.
|
||||
|
||||
### 4. Prioritize Transparency
|
||||
|
||||
Open development practices build trust and enable verification:
|
||||
|
||||
- Open source licensing for core functionality
|
||||
- Public development repositories when appropriate
|
||||
- Clear documentation of design decisions
|
||||
- Transparent security practices and vulnerability handling
|
||||
- Accountable processes for incorporating feedback
|
||||
|
||||
This transparency allows communities to verify that systems work as claimed and remain aligned with their values.
|
||||
|
||||
## Practical Software Development Approaches
|
||||
|
||||
For civil society organizations building software, certain approaches have proven particularly effective:
|
||||
|
||||
### Start with Clear Purpose
|
||||
|
||||
Effective development begins with purpose, not technology:
|
||||
|
||||
1. **Identify specific needs**: What concrete problems must be solved?
|
||||
2. **Define key constraints**: What limitations must the solution respect?
|
||||
3. **Articulate success criteria**: How will you know if the solution works?
|
||||
4. **Consider context**: Who will use the system and under what conditions?
|
||||
5. **Establish boundaries**: What is in and out of scope for the solution?
|
||||
|
||||
This purpose-driven approach ensures technology serves human needs rather than the reverse.
|
||||
|
||||
### Choose Appropriate Tools
|
||||
|
||||
Tool selection should balance multiple considerations:
|
||||
|
||||
1. **Community health**: Is there an active, diverse community supporting the tool?
|
||||
2. **Sovereignty implications**: Does the tool create new dependencies?
|
||||
3. **Learning curve**: Can your team develop and maintain expertise?
|
||||
4. **Longevity**: Is the tool likely to remain viable over your project's lifetime?
|
||||
5. **Resource requirements**: Does the tool work within your constraints?
|
||||
|
||||
These considerations should outweigh trendiness or corporate backing when evaluating options.
|
||||
|
||||
### Build Incrementally
|
||||
|
||||
Incremental development reduces risk and enables adaptation:
|
||||
|
||||
1. **Identify minimum viable functionality**: What's the simplest version that provides value?
|
||||
2. **Create end-to-end prototypes**: Build thin slices of complete functionality
|
||||
3. **Gather early feedback**: Test with real users from the beginning
|
||||
4. **Iterate based on experience**: Let real use guide further development
|
||||
5. **Deploy frequently**: Get working code into users' hands regularly
|
||||
|
||||
This approach builds momentum while avoiding overcommitment to unproven designs.
|
||||
|
||||
### Document Thoughtfully
|
||||
|
||||
Documentation creates institutional memory and enables independence:
|
||||
|
||||
1. **Document decisions, not just code**: Explain why choices were made
|
||||
2. **Focus on mental models**: Help readers understand the system conceptually
|
||||
3. **Keep documentation close to code**: Maintain alignment as the system evolves
|
||||
4. **Consider multiple audiences**: Address both developers and users
|
||||
5. **Document limitations**: Be clear about what the system doesn't do
|
||||
|
||||
Good documentation transforms software from a black box to a maintainable community resource.
|
||||
|
||||
## Common Development Challenges in Civil Society Contexts
|
||||
|
||||
Civil society organizations face specific challenges when developing software:
|
||||
|
||||
### Limited Resources
|
||||
|
||||
Most civil society organizations operate with constrained resources:
|
||||
|
||||
**Challenges**:
|
||||
|
||||
- Limited developer time and expertise
|
||||
- Restricted budgets for tools and infrastructure
|
||||
- Pressure to deliver quickly with minimal investment
|
||||
- Difficulty competing with commercial salaries
|
||||
|
||||
**Approaches**:
|
||||
|
||||
- Leverage open source components to reduce development effort
|
||||
- Build incrementally to deliver value sooner
|
||||
- Focus on core differentiators rather than reinventing common components
|
||||
- Invest in developer tooling that multiplies productivity
|
||||
- Consider contributor models that engage volunteers effectively
|
||||
|
||||
### Technical Debt Management
|
||||
|
||||
Resource constraints often lead to accumulated technical debt:
|
||||
|
||||
**Challenges**:
|
||||
|
||||
- Pressure to deliver features over maintaining code quality
|
||||
- Limited time for refactoring and improvement
|
||||
- Difficulty justifying "invisible" maintenance work
|
||||
- Risk of system breakdown as debt accumulates
|
||||
|
||||
**Approaches**:
|
||||
|
||||
- Budget maintenance time as part of regular development
|
||||
- Document technical debt explicitly to make it visible
|
||||
- Address debt incrementally rather than in "big bang" efforts
|
||||
- Emphasize the mission cost of technical debt
|
||||
- Design with maintenance in mind from the beginning
|
||||
|
||||
### Knowledge Continuity
|
||||
|
||||
Civil society organizations often experience higher turnover:
|
||||
|
||||
**Challenges**:
|
||||
|
||||
- Knowledge loss when key contributors leave
|
||||
- Difficulty onboarding new developers
|
||||
- Overreliance on individual "heroes" rather than processes
|
||||
- Institutional memory gaps regarding past decisions
|
||||
|
||||
**Approaches**:
|
||||
|
||||
- Document architecture and key decisions explicitly
|
||||
- Create onboarding materials that explain the big picture
|
||||
- Build a "contribution ladder" with graduated responsibility
|
||||
- Prefer common patterns that new contributors can recognize
|
||||
- Conduct regular knowledge-sharing sessions
|
||||
|
||||
### Security Considerations
|
||||
|
||||
Civil society organizations may face elevated security threats:
|
||||
|
||||
**Challenges**:
|
||||
|
||||
- Targeted attacks from sophisticated adversaries
|
||||
- Limited security expertise on small teams
|
||||
- Difficulty evaluating security trade-offs
|
||||
- Balancing security with usability
|
||||
|
||||
**Approaches**:
|
||||
|
||||
- Adopt secure-by-default frameworks and platforms
|
||||
- Implement defense in depth rather than single protections
|
||||
- Focus on basic security hygiene consistently applied
|
||||
- Document security decisions and assumptions
|
||||
- Cultivate relationships with security professionals
|
||||
|
||||
## Technology Selection Guidelines
|
||||
|
||||
For civil society organizations, technology selection involves balancing multiple considerations:
|
||||
|
||||
### Language and Framework Selection
|
||||
|
||||
Programming languages and frameworks establish fundamental constraints:
|
||||
|
||||
**Key considerations**:
|
||||
|
||||
- Community health and governance
|
||||
- Availability of developers in your context
|
||||
- Learning curve for new contributors
|
||||
- Long-term maintenance outlook
|
||||
- Performance characteristics relative to your needs
|
||||
- Security track record and approach
|
||||
|
||||
**Civil society-aligned options**:
|
||||
|
||||
- Python: Readable, widely taught, strong in data processing
|
||||
- JavaScript/TypeScript: Ubiquitous, large ecosystem, runs everywhere
|
||||
- Ruby: Optimized for developer happiness, strong web framework
|
||||
- Rust: Memory safety without runtime overhead, growing ecosystem
|
||||
- Go: Simple, efficient, excellent for networked services
|
||||
|
||||
### Database and Storage Technologies
|
||||
|
||||
Data storage choices have significant sovereignty implications:
|
||||
|
||||
**Key considerations**:
|
||||
|
||||
- Data ownership and portability
|
||||
- Query capabilities for your access patterns
|
||||
- Operational complexity and maintenance requirements
|
||||
- Resource consumption relative to your constraints
|
||||
- Backup and recovery options
|
||||
|
||||
**Civil society-aligned options**:
|
||||
|
||||
- PostgreSQL: Full-featured, mature, community-governed
|
||||
- SQLite: Zero-configuration, embedded, excellent for smaller applications
|
||||
- Local file storage with structured formats (JSON, CSV, etc.)
|
||||
- CouchDB/PouchDB: Synchronization-focused, offline-capable
|
||||
- Content-addressable storage for immutable data
|
||||
|
||||
### Infrastructure and Deployment
|
||||
|
||||
Deployment infrastructure determines operational dependency:
|
||||
|
||||
**Key considerations**:
|
||||
|
||||
- Control over computing environment
|
||||
- Vendor lock-in potential
|
||||
- Resource requirements and costs
|
||||
- Operational complexity
|
||||
- Geographic distribution options
|
||||
|
||||
**Civil society-aligned options**:
|
||||
|
||||
- Self-hosted infrastructure on owned hardware
|
||||
- Container-based deployment for portability
|
||||
- Static site generation for content-focused applications
|
||||
- Lightweight virtualization for efficient resource use
|
||||
- Peer-to-peer approaches for certain applications
|
||||
|
||||
## Case Studies in Civil Society Software Development
|
||||
|
||||
Several examples illustrate effective approaches to civil society software development:
|
||||
|
||||
### Case Study 1: SecureDrop
|
||||
|
||||
SecureDrop, an anonymous whistleblowing platform, demonstrates several sovereignty-respecting practices:
|
||||
|
||||
- **Air-gapped architecture** protects sources even from sophisticated adversaries
|
||||
- **Clear documentation** enables independent verification and deployment
|
||||
- **Security-focused design** prioritizes source protection above all else
|
||||
- **Simple installation** makes deployment accessible to non-specialists
|
||||
- **Regular auditing** builds trust in critical security properties
|
||||
|
||||
This system enables newsrooms to protect sources without depending on third-party services that could be compromised or coerced.
|
||||
|
||||
### Case Study 2: Community Cellular Networks
|
||||
|
||||
Community cellular network software demonstrates adaptability to challenging environments:
|
||||
|
||||
- **Offline-first design** works in intermittent connectivity
|
||||
- **Low resource requirements** run on affordable hardware
|
||||
- **Local administration** puts control in community hands
|
||||
- **Modular architecture** enables customization to local needs
|
||||
- **Open interfaces** allow integration with existing systems
|
||||
|
||||
These systems enable communities to build their own communications infrastructure when commercial providers won't serve them or do so only on extractive terms.
|
||||
|
||||
### Case Study 3: Humanitarian Data Platform
|
||||
|
||||
A humanitarian data collection platform demonstrates sensitive data handling:
|
||||
|
||||
- **Local-first processing** minimizes data transmission risks
|
||||
- **End-to-end encryption** protects sensitive information
|
||||
- **Consent-driven design** gives data subjects control
|
||||
- **Minimal collection** reduces vulnerability surface
|
||||
- **Anonymization by default** protects individuals
|
||||
|
||||
This approach balances the need for information in crisis response with protecting vulnerable populations from surveillance or targeting.
|
||||
|
||||
## Common Pitfalls to Avoid
|
||||
|
||||
Civil society software projects should be aware of common challenges:
|
||||
|
||||
### 1. Technology-First Thinking
|
||||
|
||||
**The pitfall**: Choosing technologies based on novelty or developer interest rather than appropriateness for the problem.
|
||||
|
||||
**The impact**: Systems that are difficult to maintain, consume excessive resources, or create new dependencies.
|
||||
|
||||
**The alternative**: Start with clear problem definition and constraints, then select technologies that fit those parameters.
|
||||
|
||||
### 2. Reinventing Common Components
|
||||
|
||||
**The pitfall**: Building custom solutions for problems that have well-established, maintained solutions available.
|
||||
|
||||
**The impact**: Wasted development resources and ongoing maintenance burden.
|
||||
|
||||
**The alternative**: Leverage existing components for common functionality, focusing custom development on your unique value.
|
||||
|
||||
### 3. Ignoring Operational Realities
|
||||
|
||||
**The pitfall**: Designing systems that assume ideal conditions rather than the actual environments where they'll run.
|
||||
|
||||
**The impact**: Systems that fail in real-world conditions or require unrealistic operational support.
|
||||
|
||||
**The alternative**: Design for the actual constraints of your operating environment, not theoretical ideals.
|
||||
|
||||
### 4. Perfectionism Over Progress
|
||||
|
||||
**The pitfall**: Delaying releases until everything is "perfect" rather than delivering incremental value.
|
||||
|
||||
**The impact**: Delayed impact, wasted resources on unused features, and missed feedback opportunities.
|
||||
|
||||
**The alternative**: Define minimal viable functionality and release early, iterating based on actual usage.
|
||||
|
||||
### 5. Neglecting Usability
|
||||
|
||||
**The pitfall**: Focusing on technical elegance over user experience, particularly for non-technical users.
|
||||
|
||||
**The impact**: Systems that work technically but see limited adoption or effective use.
|
||||
|
||||
**The alternative**: Involve users from the beginning and regularly test with representative users.
|
||||
|
||||
## Building Your Software Development Capacity
|
||||
|
||||
Organizations can build their software development capabilities through several approaches:
|
||||
|
||||
### 1. Start Small and Focused
|
||||
|
||||
- Begin with well-defined, contained projects
|
||||
- Solve specific problems rather than building platforms
|
||||
- Gain confidence and skills through completion
|
||||
- Learn about your organization's specific challenges
|
||||
- Build on successes rather than overreaching
|
||||
|
||||
### 2. Invest in Learning
|
||||
|
||||
- Allocate time for structured learning and exploration
|
||||
- Build relationships with more experienced developers
|
||||
- Participate in open source projects to gain experience
|
||||
- Document and share learning within your organization
|
||||
- Create opportunities for pair programming and mentorship
|
||||
|
||||
### 3. Engage with Communities of Practice
|
||||
|
||||
- Join communities working on similar problems
|
||||
- Contribute to related open source projects
|
||||
- Attend conferences and events in your domain
|
||||
- Share your challenges and solutions publicly
|
||||
- Collaborate with allied organizations on common needs
|
||||
|
||||
### 4. Focus on Fundamentals
|
||||
|
||||
- Invest in version control practices
|
||||
- Establish testing as a core practice
|
||||
- Create clear documentation habits
|
||||
- Build deployment automation early
|
||||
- Maintain regular code review practices
|
||||
|
||||
These fundamentals provide greater return on investment than pursuing the latest trends.
|
||||
|
||||
## The Future of Civil Society Software Development
|
||||
|
||||
Several emerging trends and opportunities will shape civil society software development:
|
||||
|
||||
### 1. Local-First Software
|
||||
|
||||
The local-first approach prioritizes user control while enabling collaboration:
|
||||
|
||||
- Data lives primarily on user devices, not in the cloud
|
||||
- Synchronization happens peer-to-peer when possible
|
||||
- Applications work offline by default
|
||||
- User sovereignty over data is a foundational principle
|
||||
- Collaboration happens without centralized control
|
||||
|
||||
This paradigm aligns closely with civil society's sovereignty principles.
|
||||
|
||||
### 2. Small-Scale Machine Learning
|
||||
|
||||
Machine learning is becoming accessible to smaller organizations:
|
||||
|
||||
- Pre-trained models reduce resource requirements
|
||||
- Federated approaches preserve data sovereignty
|
||||
- On-device inference enables privacy-preserving intelligence
|
||||
- Transfer learning makes specialized applications viable
|
||||
- Community datasets enable alternatives to corporate AI
|
||||
|
||||
These approaches allow civil society to leverage AI's capabilities without surrendering control.
|
||||
|
||||
### 3. Mesh Networks and Peer-to-Peer Systems
|
||||
|
||||
Distributed infrastructure creates resilience:
|
||||
|
||||
- Applications designed for peer-to-peer operation
|
||||
- Local-first storage with selective synchronization
|
||||
- Mesh networking for communication independence
|
||||
- Cryptographic approaches to trust without centralization
|
||||
- Resilience against network disruption or control
|
||||
|
||||
These architectures align technology design with civil society's distributed nature.
|
||||
|
||||
### 4. Low-Code Development
|
||||
|
||||
More accessible development tools expand who can create software:
|
||||
|
||||
- Visual programming environments reducing required expertise
|
||||
- Component libraries for common functionality
|
||||
- Simplified deployment and operation
|
||||
- Documentation-generating tools
|
||||
- Progressive complexity enabling skill growth
|
||||
|
||||
These approaches make software development accessible to more civil society organizations.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Software development for civil society is not merely about creating tools but about building infrastructure for human freedom and agency. The technical choices organizations make have profound implications for who controls the digital systems mediating civic participation.
|
||||
|
||||
The Civil Society Technology Foundation advocates for development approaches that prioritize sovereignty, resilience, and community control—recognizing that software created with these values will better serve civil society's mission than technologies that create new dependencies or vulnerabilities.
|
||||
|
||||
By building software with these principles in mind, civil society organizations don't just solve immediate problems but contribute to a digital ecosystem that reinforces rather than undermines human agency and collective action—the foundation upon which civil society itself rests.
|
@@ -1,5 +0,0 @@
|
||||
+++
|
||||
title = 'Software Development'
|
||||
+++
|
||||
|
||||
|
Reference in New Issue
Block a user