jfc

jfc

Elixir alternative to mediawiki?

I am a networking and C veteran and a could-be elixir/erlang programmer. I run 100+ small mediawikis on specific topics. Is/was there any attempt to develop an elixir clone I could use to start extending with new capacities? But first, would that be a good idea? I have a real need but not the PHP competences nor the wish to lock myself in an old non-functional programming context and a big framework like MediaWiki (I am tied by their page format with thousands of pages text). Years ago I started developing a QNX extension to that end. The architecture was interesting, but they kept the OS propriétary.
Thank you for the comments and suggestions.

Most Liked

dimitarvp

dimitarvp

Hello, and welcome to this awesome community.

I am very, and I really mean it – VERY interested in your project. I am an archivist by soul and a senior programmer by profession. :slight_smile: Jokes aside, I love programming. But I quite like information archiving in general.

Lately I am working on bringing in a more contemporary sqlite support to Elixir. There’s a good library but it doesn’t support Ecto 3 which is the upgraded and better version of Ecto 2, which is a data mapper library, or an ORM if you will. Since Elixir is dynamically typed (still strongly typed but not checked at compile time) I’m also pondering adding a stricter typing to my library to make things a bit safer in general. Especially if you keep in mind that sqlite is weakly, or rather, value-typed, and not as strict as Postgres.

Where I am getting with this is that I very much would like to author a Wiki-like software in Elixir, backed by Ecto – which in combination with my other effort, will open it up for being backed by sqlite as well (not only by Postgres and MySQL which are the best supported DB backends for Ecto).

I happen to believe Wikis are way too huge and bloated software packages in general and I’m seeking to bring Elixir’s speed to this area (I mean, it’s not the speediest language but it’s definitely beating Ruby, Python and PHP, and sometimes JS). Fault tolerance and transparent parallelism, too. Elixir is also quite lightweight.

Between Elixir’s releases (self-contained packages) and sqlite (serverless DB) I think Wikis can be made very lean and mean. I’d love working on that.

jfc

jfc

Dimitar,
This is great! My interest is in what I name “humanumerism”, i.e. the way people can take advantage of new tech in the today life.

I started with that idea and the need for an intl network to support the first people and small corps being able to be interested in … 1977. I selected Tymnet to work with (other four I knew off were US ARPANET and French Gov Cyclades, and French Transpac and US Telenet). Tymnet was the only one thinking deep networking (inter processus).

We made it 100% of the public packet switch international services before we were purchased and reduced to the Internet by McDonnell Douglas. My own job was “extended services”, i.e. “the layers above” the 7 OSI layers (in network data processing) while TCP/IP was only 4 lower layers. So I left and tried to build a functional architecture transparent to lower layers in extending QNX. This was very promising but it required dedicated (proprietary) QNX machines.

So I worked (some in the IETF would call it fought) on standardization precautionary concepts to keep the layers above (language, semantic, etc.) independent. In the process I used wikis to document things. More and more wikis as it became clear that the need is for an inter process and human interdisciplinary ontology and a replacement for the concept of only one version "document.” I name it the concept “perligent” (a Cicero’s idea), not the document the author sends, but what the destiny receives, after many may have (directly, indirectly, in parallel) contributed to. Like one does when composing an RFC.

I started publishing one per topic of interest of mine. I named it a “blik” (bliki, book in line, a can of data in Danish/German) and I have 00s I need to sort :-). I focused on the needs I have and anyone working home/independently/in groups may have. You are right: SQLite to be portable, using smart pages, each being independent in the person’s or community’s neb (private nebularity with a gateway on the web). From my QNX days, I know that Erlang/elixir IS the right solution for people (I do not need big power) with a good DNS like (IETF calls it DDDS), a simple accepted (set of) page formats. etc.

I happen to be in Montpellier, France, where there is a university lab which works on smart archiving issues, interdisciplinarity, etc. and the action you do when you write, read what you wrote, formated on the screen, adapt it and mark-it up simultaneously. I am a member of the national archivist’s association.

My idea is to build an entire personal environment to write, read, archive, work, manage, publish, administer, live with it, etc. for a person/couple/family/home/small business under beam. So it can be installed and run the same everywhere. I know it is a huge task. I also know that you cannot succeed it with non-functional architecture. The question is: is it feasible? Technically, and in the open source? I learned a few things in my life, I try to build a team to learn “erlix” (http://erlix.fr), tried to set-up a meet-up to jointly train… Did not rise interest enough, yet! I am trying my last bet: a $10 LLC "senior entreprise,” next week.

mindok

mindok

Hi @jfc, and welcome to the forum.

I’m not aware of any wiki engines built in Elixir / Phoenix (after a brief search, but I’ve also been snooping around these forums for a while and think I would have noticed). The gitgud (GitGud, GitHub clone entirely written in Elixir) has wiki on the to-do list.

MediaWiki is a pretty big codebase so your pathway forward will depend on how you use it and the user base. Search the forums for CMS - you might get inspired by something that isn’t a wiki, but is close enough for what you need (e.g. Changelog.com is open source or GitHub - infinitered/thesis-phoenix: A lightweight, bolt-on, intuitive content editing system for Elixir/Phoenix websites. Star this repo and follow along with our progress! · GitHub).

Converting to/from MediaWiki markup format shouldn’t be too bad, so don’t let that hold you back. Pandoc (https://pandoc.org/) has all kinds of conversion options if you don’t want to code your own. It’s pretty fast too. I use it for quite a few documentation related things - e.g. I can write MS Word docs without using MS Word.

As it happens, John MacFarlane, who wrote pandoc, also wrote a Haskell based wiki - GitHub - jgm/gitit: A wiki using HAppS, pandoc, and git · GitHub

Last Post!

jfc

jfc

Nothing directly came out of this thread yet, but the topic went a step further with GPTs I see as a proof of concept.

Here is my rationale: we start deploying public (was monopoly times) international packet switch services in 1977. We being Tymnet International, the public network by/of Tymshare. From then on I considered the diktyo(net)digital empowerment of the person and started in 1985 Tymnet Extended Services (meaning above basic, value-added and enhanced services). That the destination might receive more information (collateral or generative) than sent by the origin. This was premature and politically blocked (Tymshare had been purchaed by McDD) by the internet. So I proceeded independently (citizen research). Among others things, I identified the need of a capacity based multiactor message passing environment. So I extended QNX, but their license blocked it. Also, I started a project to support on-line city communities. This was also premature, but it taught me that the advisable personal IA xitizen station where I could enter, maintain, collect ideas - independantly and in community - was a wiki-mailing-list tandem + IA related tools (home and on-line). And that after the gesture, speaking, scripting and printing we see, hear, and read we had reached the time when the “we” of us debates what the others bring.

So my idea is the need for a “wixi, as an intelligence eXtended wiki”. I have tested for years the UX of my own mediawiki farm and IETF like mail exchange based communities. I identify beam as a portable multi-OS context to build the environment I need : i.e. a message passing inter-virtual-host environment supporting a wiki/mail/chat user in a community context. But I feel that it might be a step deeper than elixir : a polylog between functional hosts within a data ocean and streams ?

Where Next?

Popular in Questions Top

jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New

Other popular topics Top

JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 55125 245
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 31586 112
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New

We're in Beta

About us Mission Statement