Going beyond Tiki Wiki CMS Groupware
Server, Web, Desktop and Mobile suite
- Tiki Suite is a selection of Free / Libre / Open Source Software (FLOSS) server, web, mobile and desktop apps with a concerted focus on greater interoperability, security and adaptability, which is aimed at small & medium-sized organizations.
- The Tiki Suite is especially suited to decentralized and knowledge-centric organizations and offers most (80%+) of the features all organizations need, such as: Email, Website & Blog, Shopping Cart, Intranet & Project Management, E-learning, Social Networking, Knowledge base, File sharing, Issue Tracker, Video-conferencing, LDAP, VPN, Gateway, Network, etc.
- You can install anywhere (home, office, laptop, data center, etc.)
Think of an organization you know of with a staff of 10 to 100
- When will 80% of them be using just Web Applications 80% of the time?
- When does the main unit of information becomes a web page instead of a file?
- Now? 1 year? 2 years? 5 years 10 years? Never?
"Skate to where the puck will be" --Wayne Gretzky
Why the name?
- It's a suite of applications around Tiki
- Suite means "next step" in French, so "next step for Tiki"
- But what is Tiki?
Tiki: The general idea
Software made the Wiki Way
- Like Wikipedia, but for code instead of content
- The general direction of computing -> everything is going to the browser (Firefox, Chrome, Safari, Explorer, Opera, and mobile browsers) -> The client.
- Tiki is the Free / Libre / Open Source Web Application with the most built-in features. It runs on top of other software (MySQL, PHP that the user doesn't see)
Tiki Wiki CMS Groupware
Hundreds of built-in features
Action log Alert Articles & Submissions Backlinks Backup Banner Blog Bookmark Browser Compatibility Cache Calendar Category Charts Chat Comment Communication Center Compression (gzip) Contact Address book Contact us Content template Contribution Cookie Copyright Custom Home (and Group Home Page) Date and Time Debugger Console Directory (of hyperlinks) Documentation (Help System) DogFood Drawing Dynamic Content Dynamic Variable External Authentication FAQ Featured links File Gallery Forum Friendship Network (Community) Game Gmap Google maps Group Help System Hotword HTML Page i18n (Multilingual, l10n, Babelfish) Image Gallery Install Integrator Interaction Inter-User Messages InterTiki Karma Live Support Login Lost edit protection Mail-in Maps Menu Meta Tag Mobile Module Multimedia MultiTiki MyTiki Newsletter Newsreader Notepad OS independence (Non-Linux, Windows/IIS, Mac, BSD) PDF Performance Speed / Load Permission Poll Profile Manager Quicktags Quiz Rating Registration RSS Score Search Engine Friendly Search Security Semantic links Shadowbox Shoutbox Site Identity Slideshow Smarty Template Smiley Spam protection (Antibot CATPCHA) Spreadsheet Stats Survey System log Tags Task Tell a Friend + Social Bookmarking TikiTests Theme Trackers TRIM User Administration User Files User Menu Watch WebHelp Webmail Wiki 3D Wiki History, page rename, etc Wiki plugins extends basic syntax Wiki syntax text area, parser, etc Wiki structure (book and table of content) Workflow, WYSIWYCA WYSIWYG XMLRPC
Over 1200 settings/options in the admin panel!
The Free / Libre / Open Source Web Application with the most built-in features. There are so many, we had to add a search engine in the admin panel!|
Other popular apps have a different model: small core + loads of functionality in 3rd party add-ons.
- No hunting around to find the best 3rd party module
- No needing to re-install 3rd party modules at every upgrade, hoping they all still work!
- Because, in Tiki, everything is built-in and developers collaborate on and extend features, instead of just cooperating around a core (when they are not just outright competing...). And upgrades are easy!
- Do you have two wiki pages for the same thing? No. Why would it be so for features?
- More later about the model, let's describe some features!
Permissions & groups
- Users can be in any number of groups
- Groups can be included in groups
- Registration system
- Over 200 permissions, which can be:
- System-wide (global)
- by item (object)
- by category (workspaces)
- Powerful wiki syntax
- Powerful version history and diff engine
- Book and table of content
- Email notification of changes
- Advanced plugins
- Advanced translation synchronization
Tracker & form generator & reports
- Create custom application
- Bug tracker, application forms, contact forms, etc.
- Can create reports in wiki pages
- Can link to other trackers
- 20+ field types
- text field, text area, checkbox, numeric field, drop down, radio buttons, user selector, date and time, image, category, email, auto-increment, Google Maps, computed field, attachment, etc.
- Several calendars
- Recurring events
- RSS feeds
- Distinct permissions
Blog & news articles
- Several blogs
- Tags & categories
- RSS feeds
- Can use wiki syntax
- Version history
- Can use wiki syntax in calls
- Can embed sheets & charts anywhere in Tiki
- You are currently watching it!
- Made from wiki pages
- Slide notes, for a second screen
- Uses S5 standard
- Threaded or flat forums
- Mailing list integration
- Can use wiki syntax
- File Attachment
- Email notification of replies
File & image galleries
- Hierarchical galleries
- Categories for files
- Watch (notification of change by email)
- WebDAV support
- Vector drawing
- Shapes & lines
- Stored in SVG
Screencapture and Screencast
- Select screen area
- Capture screenshot as PNG, JPG, etc.
- Record video
- Audio from microphone
- Pause during the recording
- Play before upload
- Post-recording editor to remove frames
- Pick splash frame
- Generates a .swf file
- Integrates jCapture applet
- Translated to 40+ languages
- Wiki has awesome i18n change tracking
Plugin disabledPlugin flash cannot be executed.
- Stakeholders collaborate
- IT departments
- Commercial eco-system based on services, not code.
- No free / community code vs proprietary code situation
The Tiki model
- Wiki community
- Do-ocracy, P2P
- Wiki way participation to the code
- All-in-one codebase
- Inherent synchronized releases
- Lots of features, but no duplication
- Do you have two wiki pages for the same thing? No. So, why would it be so for features?
- *.tiki.org sites are upgraded before a .0 is released
- Scheduled releases (twice per year)
- LTS every third release, with 5 year support
Benefits & challenges
- Tons of features, without duplication, excellent code re-use and code review, more collaboration, tight integration, easy upgrades, excellent interaction between features, etc.
- Permits huge changes between versions because we don’t have to worry about breaking 3rd party extensions.
- Less code for the community to maintain: http://en.wikipedia.org/wiki/Technical_debt
- No abandoned module, because a new shiny one just came out
- No dependency hell (needing to re-install 3rd party modules at every upgrade, hoping they all still work!)
- No hunting around to find the best 3rd party module
But does bring challenges
- Huge code base to maintain
- Admin panels with hundreds of features for a total of over 1200 settings/options! (we had to add a search!)
- Learning curve: 1200+ pages of documentation
- What should be sensible defaults?
More about complexity and files
Tiki 12.2 ships with 14 803 Files (and 1 979 Folders)
Included from other projects (/vendor & /vendor_extra): 7511 Files, 1316 Folders
Maintained by the Tiki community: 7,292 Files, 663 Folders
So Tiki contains about 15k files and the FLOSS Web application with the most built-in features (by far)
About half the code in Tiki is maintained by the Tiki community and the other half is re-using code from external libraries like Smarty, Zend Framework, jQuery, etc. Maintaining code from other projects is work. We need to keep it up to date, and upstream fixes and enhancements. But it's a lot less work than maintaining ourselves. We are counting on the experience, energy and expertise of a larger community.
So say we maintain about 7 or 8k files. Sounds like quite a bit, but let's put this into perspective:
Tiki covers the vast majority of features that these 3 systems offer via the thousands of extensions. So just about any project you could do with Joomla!, WordPress or Drupal, you could also do it with Tiki.
Yet, they have more extensions to maintain than we have files! (and since they can't possibly maintain them all, it leads to dead-end extensions and disappointed end-users).
Instead of having thousands of extensions, we collaborate on the code base, and can make very specific apps thanks to profiles.
- Value of a free source project
- Beyond code: the community and the experience
- Combining the different features, producing new benefits never imagined by the authors
- How to share this knowledge?
- Profiles to configure your Tiki
- On wiki pages (collaborative, version history, etc.)
- Can be used not just at install, but at any time and can be combined
- Not just for settings, but also for data
- Since there is no extra code, can be designed for very specific, long tail uses
We can have hundreds of profiles for an out-of-the-box experience, with a single code-base!
How much is it "worth"?
- $20 million according to the Basic COCOMO model
- "Beyond just development time, COCOMO is meant to include the design, specification drafting, reviewing and management overhead that goes along with producing quality software."
- Yet, the Tiki Software Community Association (TSCA) has no employees
- Tiki doesn't depend on any funding from any company, foundation, government or anyone. It thrives thanks to the community.
- Profiles: can use, share and build recipes to cater to diverse use cases
- Easy commit access
- Commit to trunk, stable within 6 months
- Collaborative community
- See https://tiki.org/Framework
- Profiles: can build very specific applications, without custom code
- Designed for shared hosting (PHP/MySQL)
- LTS versions
- Tiki12LTS supported until November 2018
- Can go from LTS to LTS or even skip one or two LTS (5 year support)
- Easy upgrades
- See benefits for https://tiki.org/Hosting+Company
- Tiki Remote Instance Manager -> TRIM
- In other web apps, if you have 300 projects, you can have up to 300 code bases, because of various extensions (or you have unhappy users because you didn't install their favourite extension). If you have 300 Tiki projects, you have 1 shared code base
- You can restrict or force features or preferences thanks to the System Configuration tool
- Profiles: can deploy a configuration to hundreds of instances
Why this evolution?
- Tiki: the Free / Libre / Open Source Web App with most built-in features
- Tiki is PHP / MySQL / Zend Framework / Smarty / jQuery (and Bootstrap in Tiki13)
This represents millions of organizations
Challenges of IT systems
- Multiple systems
- Dozens & dozens of software, most of which are not interoperable
- Difficult to upgrade
- Diverse needs
- Desktop & file centric, even in 2014
- Difficult to do tech support
- Interoperability is very difficult
- Zawinski's Law of Software Envelopment (also known as Zawinski's Law) relates the pressure of popularity to the phenomenon of software bloat.
- "Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can."
Coping with Zawinski's Law: When planes crash, do we blame gravity? We must cope with this! Even if you don't like a law, it doesn't mean it doesn't apply
- 37 signals in the book "Getting Real" : "Goodbye to bloat. Simple, focused software that does just what you need and nothing you don't"
- In an Community FLOSS project, it'll be difficult to get consensus on what is "needed" and what is bloat.
- EVERYTHING IS DEEPLY INTERTWINGLED. In an important sense there are no "subjects" at all; there is only all knowledge, since the cross-connections among the myriad topics of this world simply cannot be divided up neatly.
- Hierarchical and sequential structures, especially popular since Gutenberg, are usually forced and artificial. Intertwingularity is not generally acknowledged—people keep pretending they can make things hierarchical, categorizable and sequential when they can't. --Ted Nelson
Overlap & interoperability & the Trend to suites
- Best of breed vs. suites vs. feature bloat
- While Ted Nelson coined "Intertwingularity" to express the "complexity of interrelations in human knowledge", it's the same problem for software. There will always be overlap.
- Apple controls both the hardware and the software which make it much simpler (drivers, UI, etc.)
- Every app claims interoperability (ex.: via open standards)
- It's very hard! Even within apps of a same publisher!
- Because of Zawinksi's law, intertwingularity and the progressive move to Web Applications, more & more apps and SaaS will offer "everything".
- "It's best to do one thing really, really well." –Google
- Google started just with search. And now?
- A number of companies are offering (or will one day offer) "manage your organization in the cloud"
- Google Apps, Zoho, NetSuite, Salesforce, Microsoft, SAP, IBM, Apple, Facebook, Oracle, Yahoo!, etc.
- Interoperability will remain a challenge.
- If you want to use FLOSS, there are no readily available complete solutions. You need to make you own "cocktail" of applications.
Second half of the Chessboard
The more features / systems there are, the more interoperability is desired / needed and the complexity increases faster and faster. How can we keep the complexity level on first half of chessboard?
- "In technology strategy, the second half of the chessboard is a phrase, coined by Ray Kurzweil, in reference to the point where an exponentially growing factor begins to have a significant economic impact on an organization's overall business strategy."
The delicate balance
- "Make things as simple as possible, but not simpler" --Albert Einstein
- Use as few apps as possible, but as many as needed. Bonus points to all-in-one apps and libs that maintain the interoperability of their components (ex.: Openfire Meetings, Zend Framework)
- As technology evolves, push things to the browser (ex.: spellchecker, HTML5, jQuery)
"In later discussions Torvalds explained the reasons for its choice: a fully modular architecture, like the one adopted for HURD, would have posed problems to a degree of complexity that it could have compromised the accomplishment of the project. To avoid such risks and keep the degree of complexity of the project as low as possible, Torvalds decided to design a monolith and he actually wrote all the architectural specs himself, avoiding all the problems related to collective projects (e.g. division of labor, coordination, communication). On the other hand, the HURD micro–kernel, a project in direct competition with the Linux kernel, has paid for the choice of pursuing a fully modular approach from the beginning in terms of the continuous delays that have plagued its development. Nowadays, it is still under active development and still lacks the stability and performance assured by the Linux kernel."
Source: Modular Design and the Development of Complex Artifacts:
Lessons from Free / Open Source Software by A. Narduzzo & A. Rossi
- Some content management frameworks offer a common platform with thousands of extensions, which you pick & tailor to your needs.
- Better than "best of breed approach", but still suffers from "Combinatorial explosion" for interoperability. Drupal: 27000+ modules Joomla!: 8000+ extensions Almost each install with have a different combination of modules and versions. In Tiki, the code base is identical, and only the preferences configuration differs.
- Distributions are helpful here. However, "Paradox of choice" for extensions (compatibility and abandoned modules, upgrade difficulties, etc) leads to a 2-4 year release cycle for the core, which is too slow.
Tiki NIH Syndrome?
"Not Invented Here (NIH) is a term used to describe persistent social, corporate or institutional culture that avoids using or buying already existing products, research or knowledge because of their external origins. It is normally used in a pejorative sense, and may be considered an anti-pattern." Source: Wikipedia
Half of the code in Tiki comes from other projects!
- BigBlueButton Web conferencing
- OPcache, XCache, Memcached and APC
- R (statistics & maths for any science)
- GD & ImageMagick
- Zotero (references)
- OpenLayers (OpenStreetMaps, MapServer and GoogleMaps)
- Cclite (community currency)
- Various authentication (phpBB, LDAP, Shibboleth, CAS, OpenID, etc.)
- Kaltura video platform
- 40+ examples at https://doc.tiki.org/Interoperability
What is status of Tiki Suite?
- The good
- Each component is fantastic, and the future is bright
- All risky / major / strategic components have been selected, and they all fit well together, with minimal overlap
- The bad
- It's still a manual process to assemble all the parts of the Suite (we are working on this)
- Some less critical components (like Desktop virtualization) still need to be picked (but there are many good options)
- The ugly
- Some components don't yet interoperate well even though they should (It proves the relevance of this project!)
How to pick apps?
- This is a long-term strategic decision
- Sound architecture/technology?
- Compatible license?
- Compatible community model?
- Active community?
- Same programming languages as us?
- Is SaaS available?
- Will the project be doing well in 5-10 years?
Black Duck OpenHub
- Best place to discover & analyze FLOSS projects
- Compare software by tag, check activity level, number of contributors, recent commits, code analysis
- Users add software to their "stacks"
Backed by the ClearFoundation||
- IMAP Mail & Webmail
- Address book
- Virus & Spam filters, server-side filters, etc. (from ClearOS)
Kolab support for ClearOS should be restored to get more features: ActiveSync for offline access on any mobile device, etc.)
- Full standard XMPP feature set (ex.: Presence)
- WebRTC videoconference
- Web chat interface (so you don't need to install XMPP client if you don't want to)
- PDF Presentations
- Screen sharing (for Firefox and Chrome)
- File transfer
- Collaborative text editing
- Collaborative drawing (whiteboard)
- Post-it scrum board
- SIP integration: Phone-in & call out phone numbers to the conference
- Meeting planner (email notifications of upcoming meetings)
- Recording a conference
- Active speaker identification
- Fastpath (managed queued chat requests, such as a support team might use)
All this, with a fantastic web admin panel.
- Integrates Openfire, JitsiMeet, CandyJS and TogetherJS
- Full-featured telephony server
- SIP telephony
- Voice Mail
- extensions, etc.
- FusionPBX GUI
- License: MPL
Kaltura video platform
- Full-featured platform
- Recording from webcam
- Handles transcoding
- HTML5 player
- License: AGPL
- SaaS available.
- Integrates with Tiki (SSO)
- PHP/MySQL Web analytics GPL
- Easy to integrate, nice feature set, nice UI.
- There is a mobile client
- By default, Tiki uses MySQL, but if/when your site has high performance requirements, you can easily replace with ElasticSearch
- Natural Language Processing (More Like This, etc.)
- Stored search
- Federated Search (to include search results from various apps)
- Super fast & scalable
- Easy to deploy
- Already integrated with Tiki
- Also see Kibana, Elasticsearch's data visualization engine
- Any modern Web browser
- Take advantage of HTML5 anytime possible
- Used to connect to Openfire Meetings, Kaltura, Tiki, etc.
- Used to connect to most apps, and admin panels
- Firefox has a rapid release cycle (a new version every 6 weeks or so) and thus, we will take advantage of the new features as they come out.
- Alternatively, you can use any modern Web browser.
- Offline email, etc.
- Connect to OpenLDAP (which is part of ClearOS) for the address book.
- Platforms: Windows, Mac, GNU/Linux
Jitsi (previously SIP Communicator) is a cross-platform VOIP, videoconference, desktop sharing and chat client.
Protocols supported include SIP, XMPP/Google Talk/Jabber/Facebook chat, AIM/ICQ, Windows Live, Yahoo! Messenger and Bonjour.
Other features include: Call recording, Call & chat encryption, Noise suppression, Echo cancellation, File transfer, multi-user chat, Desktop streaming, Presence, Conference calls, Integration with Microsoft Outlook and Apple Address Book, Support for LDAP directories, Support for Google Contacts, On-line provisioning, Systray notifications, IPv6 support, Spell checker and many more.
Will also act as System tray notifier (receive alerts, etc.)
Platforms: Windows, Mac, GNU/Linux, Android
Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.
- Efficient sync between Windows, Mac, GNU/Linux and Android
- Bootstrap GUI
- Goal is to use for offline sync of File Galleries (developers or sponsors needed!)
KeePass is a popular, full-featured FLOSS password manager. Beyond passwords, you can also attach files to password entries (ex.: PGP signature files, sensitive spreadsheets, contracts, etc.), which is immensely useful.
LXDE and LXLE
- LXDE is a lighweight GNU/Linux desktop environment with the "classic desktop" metaphor"
- LXLE is a respin of Lubuntu with LXDE and a lot of included software. Suitable for old PCs
- Support for mobile browsers (via jQuery Mobile for Tiki and ClearOS features. Next version: Bootstrap)
- Piwik client for Android and iOs
- WebODF will permits minor edits of ODF documents
- Any missing features will progressively be added
- All major components are picked. Get communities collaborating.
- Compatibility challenges are discovered (workaround, fix, etc.)
- First a recipe, then a scripted install and eventually a Tiki Suite Appliance (replace our current live Tiki CD)
- More features
- Deploy TogetherJS to all Tiki features
- Password management
- More ERP & Human Resource Management features (ex.: payroll)
- Building automation, access cards, etc.
- Source Control Management
- Digital currency
- Distributed Social Networking / Friend to Friend (F2F)
How to participate
To participate, simply create an account on tiki.org and start participating. This site is a wiki. If you need/prefer to contact someone in private (ex.: media inquiry), please write to marclaporte at this domain name.
You should also create an account and join Tiki Wiki CMS Groupware & Tiki Suite group on the ClearOS site
Tiki Suite: suite.tiki.org
The Tiki model: tiki.org/Model