29th September 2012 Here is some desktop software that is either commonplace in the world of Linux or needs a bit more publicity, at least in my opinion. The list is sorted alphabetically, in case you are left wondering at its first entry. As with everything in this place, it may grow or contract, but change certainly is a feature of the world of Linux anyway. That’s never a bad thing, even if it upsets some from time to time.
Calligra
This suite comes from the KDE project and includes office and graphical software. The latter includes Krita, which is described separately below, so this is an interesting collection of software.
Choqok
Linux does have a choice of Twitter/X clients and this is one of them. It’s a KDE application that also supports Pump.IO, GNU Social and Friendica instances. There are others on the support list too, though Mastodon is a surprising absence given the recent furore surrounding Twitter/X.
Darktable
The name is a play on that of Adobe’s Lightroom, and that gives you an idea of what it is about. This too allows non-destructive editing of images with the added information being kept in associated files with XMP extensions, one for each image. What the software does not have though is an image management interface like that of Lightroom or digiKam.
digiKam
This is more than an organiser, and may be the KDE project’s counterpart to Adobe’s closed source Lightroom. Its photo organising doesn’t mean automated folder creation from EXIF information like F-Spot, Shotwell or Rapid Photo Downloader. It is for that reason that I combine digiKam with the last entry on the preceding list, since I jumped ship from Shotwell. The image processing part of the application is something that I have to explore.
Eclipse
Other IDE’s have taken over me these days, but this had a use for editing PHP scripts once upon a time. It is better known for what it offers Java developers, though.
Emacs
A long-standing UNIX/Linux text editor that has been doing battle with Vi for longer than many can remember. Like the alternative, it has keyboard shortcuts that do anything but make concessions to Windows conventions, add needless steepening of any learning curve unless you find the appropriate option (CUA) that allows for some emulation of mainstream keyboard shortcuts. Nevertheless, there also is a GUI variant that makes life easier, and I have to concede that it has a history that is longer than even Microsoft itself. As if that weren’t enough compensation, it is a powerful piece of software whose functionality goes much further than text editing, whose surface I have only barely begun to scratch. The logic of the interface may differ from that to which many are accustomed, but it is consistent and well-thought-out nonetheless.
F-Spot
For a while, this was my photo organiser of choice, but it has not seen a new release since December 2010. Maybe that’s because it works well enough as it is, yet you cannot help thinking that a project with no new releases is a dead one, even if that sometime reflects how right they got things at the time.
FileZilla
Before my quest for added automation took over, this was my FTP client of choice, and its advent has made the need to buy such software extinct. That it works on both Windows and Linux is a bonus.
GIMP
The ubiquitous Photoshop challenger is maturing nicely, though its interface may not please some.
GraphicsMagick
This is very like ImageMagick (see below) with its main selling point being that it’s faster than its parent for the purpose of command line image editing; my own testing seems to support this so far. The commands that you use are similar to ImageMagick too, apart mainly from adding the gm command before the likes of convert and others. Speaking of convert, the GraphicsMagick version has yet to support the -annotate switch, so -draw needs to be used in its place.
ImageMagick
Using a command line tool for image processing may seem counter-intuitive, but there are operations where you need not have much user intervention. Included among these is image resizing and conversion between file formats, and yours truly has done both. Processing many files at a stroke comes naturally to this very useful and talented piece of software, too.
KODI
Software media centres lie largely beyond my purview, but this seems to be one of the better known of the breed. It overlays the desktop when it is running and caters for consumption of music, movies, TV, photo slideshows and games. Controversially, there even is PVR capability for recording live broadcasts as well.
Krita
For those with a more artistic bent, this is a digital drawing and illustration package that will work not only on Linux but also on Windows or OS X. The results can be striking, so it looks as if your talent may be the only limitation with this tool.
LibreOffice
Oracle’s takeover of Sun Microsystems meant that some feathers were ruffled in the open-source and free software community, and one example of a change coming from this is the forking of OpenOffice. It is that act that has brought LibreOffice into being, and it then gained so much ground that it eclipsed its parent.
LibreWolf
Mozilla may promote their wares as bing privacy-friendly, yet others are not sure, so Firefox has been forked to give LibreWolf. This removes telemetry, adds a content blocker along with other enhancements.
Mozilla Firefox
There’s no way that I could not include what once was the de facto standard web browser for Linux, though there’s competition from Chrome/Chromium now too. There is also a mobile version for phones running the Android OS.
Mozilla SeaMonkey
The original Mozilla suite still lives on, and this is what it’s called nowadays.
Mozilla Thunderbird
This has replaced Evolution on Linux systems that I use, and it comes close to eclipsing Microsoft Outlook everywhere else, too.
MythTV
The main function of this piece of software is to record broadcast TV, hence that part of the name. It also has media playback capability, and that is what makes it more of a media centre than the digital video recording functionality may suggest.
NEdit
UNIX/Linux offers plenty of text editors, so here’s another of the less well-known ones that I have encountered. Syntax highlighting is part of the offer and some menu customisation is possible too. In essence, it is a straightforward text editor that works with Windows keyboard shortcuts, but that can be no bad thing.
NetBeans
You cannot feature Eclipse in a software listing without having NetBeans too. In fact, it was NetBeans that I first encountered, and that was many moons ago. There is a PHP variant available, but that seemed very sluggish when I tried it and turned back to Eclipse, with which I have stuck ever since. That poor performance may have been caused by the variant of Java that was available to it, so I may give it another ago when I have the time.
OBS Studio
Here, OBS stands for Open Broadcaster Software, and that somewhat says what it does. In essence, we are talking about video recording and live-streaming. With the increasing pervasiveness of video like what once was the case with photography, it is easy to see the use case for this kind of software.
OpenOffice.org
Is this the office suite of choice for Linux? It certainly felt that way before Oracle bought Sun Microsystems and upset a few open-source developers. Now, the appearance of LibreOffice is going to make things look a little more interesting.
PlayOnLinux
This is a far more user-friendly way to run Windows software on Linux, using the WINE libraries in the background. The name seems to originate from game playing, though web browsers like Internet Explorer and Safari are available too, along with a selection of other software. For the adventurous, there also is the possibility of installing something you have yourself.
Privoxy
Here’s the description from the website:
Privoxy is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk.
It’s available for a number of platforms, including Linux and UNIX, and offers a way of blocking ads in Google Chrome, which is how I got to hear about it. Ubuntu users can snag a copy from the usual repositories too.
Configuration is by editing text files, but the default settings have sufficient so far. Setting a browser to use it means searching through settings for the means of making it use IP address 127.0.0.1 and port 8118 for ordinary and secure HTTP connections.
Rapid Photo Downloader
When Shotwell, started to fail to download photos from ever larger memory cards, it was time to look at something else and this became the replacement. You can use it to copy images from any card reader into the directory structure of your choosing. It does nothing more than downloading, and it does it so well that it merits a mention on here.
Shotwell
This was my photo library manager of choice until its limitations when it came to handling large data volumes came to light. It is written for the GNOME desktop environment and worked well for a few years before technology overtook it. Still, it also offers limited photo editing capabilities to go with its organising skills.
UFRaw
This reader and manipulator of raw digital camera image formats acts either alone or as a plugin. It can be used via the command line or using a GUI. That makes it flexible for those times when you need things to happen without much input from yourself.
VirtualBox
All in all, this is an excellent piece of virtualisation software that makes you wonder why you’d pay for something like VMware Workstation. There is a closed source variant, but the open-source equivalent has what you’d want for personal use anyway. Windows 11 support took a while to come into place because of its TPM requirements, but that is steady these days.
VSCodium
Since the widely used VSCode is so available and appears to be open-source in nature, one does wonder why this project exists. Here is their take on that conundrum:
Microsoft’s VSCode source code is open source (MIT-licensed), but the product available for download (Visual Studio Code) is licensed under this not-FLOSS licence and contains telemetry/tracking. According to this comment from a Visual Studio Code maintainer:
When Microsoft builds Visual Studio Code, we do exactly this. They clone the VSCode repository, they lay down a customized product.json that has Microsoft-specific functionality (telemetry, gallery, logo, etc.), and then produce a build that we release under their licence.
When you clone and build from the VSCode repo, none of these endpoints are configured in the default product.json. Therefore, you generate a “clean” build, without the Microsoft customisations, which is by default licensed under the MIT licence.
The VSCodium project exists so that you don’t have to download and build from source. This project includes special build scripts that clone Microsoft’s VSCode repo, run the build commands, and upload the resulting binaries for you to GitHub releases. These binaries are licensed under the MIT licence. Telemetry is disabled.
If you want to build from source yourself, head over to Microsoft’s VSCode repo and follow their instructions. VSCodium exists to make it easier to get the latest version of MIT-licensed VS Code.
Waterfox
This is a fork of Firefox that claims to be faster and more private. From my brief test, it certainly feels faster, though I was not as able to test things on the privacy end.
23rd March 2007 Having been on a web-building journey from Geocities to having a website with my own domain hosted by Fasthosts, it should come as no surprise that I have encountered a number of tools and technologies over this time and that my choices and knowledge have evolved too. I’ll muse over the technologies first before going on to the tools that I use.
Technologies
XHTML
When I started building websites, HTML 4 was not long in existence and I devoured most if not all of Elizabeth Castro’s Peachpit Visual Quickstart guide to the language within a weekend. Having previously used fairly primitive WYSIWYG tools like Netscape Composer and Claris Home Page, it was an empowering experience and the first edition (it is now on its third) of Jennifer Niederst Robbins’ Web Design in a Nutshell took things much further, becoming something of a bible for a number of years.
When it first appeared, XHTML 1.0 wasn’t a major change from HTML 4, but its stricter more XML-compliant syntax was meant to point the way to the future and semantic markup was at its heart at least as much as it was for HTML 4. XHTML 2.0 is on the horizon and after the modular approach of XHTML 1.1 (which I have never used), it will be interesting to see how it develops. Nevertheless, there is a surprising development in that some people are musing over the idea of having an HTML 5. Let’s hope that the (X)HTML apple cart doesn’t get completely overturned after some years of relative stability. I still bear scars from the browser wars raging in the 1990’s and don’t want to see standards wars supplanting the relative peace that we have now. That said, I don’t mind peaceful progression.
CSS
Only seems to be coming into its own in the last few years and is truly an amazing technology in spite of the hobbles that MSIE places on our ambitions. CSS Zen Garden has been a major source of ideas; I wouldn’t have been able to customise this blog as much as I have without them. I was an early adopter of the technology and got burnt by inconsistent browser support; Netscape 4 was the proverbial bête noir back then, fulfilling the role that MSIE plays today. In those days, it was the idea of controlling text display and element backgrounds from a single place that appealed. Since then, I have progressed to using CSS to replace table-based layouts and to control element positioning. It can do more…
JavaScript
Having had a JavaScript-powered photo gallery before my current Perl-driven one, I can say that I have definitely sampled this ever-pervasive scripting language. Being a client-side language rather than a server-side one, it does place you rather at the mercy of the browser purveyors and it never ceases to amaze me that there is a buzz around AJAX because of this. In fact, the abundance of AJAX cross-browser function libraries is testimony to the need for browser-specific code. Despite my preferences for server-side scripting, I still find a use for JavaScript and its main use for me these days is to dynamically control CSS elements to do such things as control the height of a page element or whether it is shown or not. Apparently, CSS may get some dynamic capabilities in the future and reduce my dependence on JavaScript. In the meantime, Jeremy Keith’s DOM Scripting (Friends of Ed) will prove as much of an asset as it has done.
XML
These days, a lot of the raw data underlying my personal website is stored in XML. I did try to dynamically transform the display of the XML into something meaningful with CSS and XSLT when I first scaled its dizzy heights but I soon resorted to other techniques. Browser support and the complexity of what I required were the major contributors to this. The new strategy involved two different approaches. The first was to create PHP/XHTML pages from the precursor XML offline and this is how I generate the website’s directory pages. The other one is to process the XML as text to dynamically supply an XHTML page as the user visits it; this is the way that the photo gallery works.
Perl
This still powers all of my photo gallery. While thoughts of changing it all to PHP linger, there is a certain something about the Perl language that keeps it there. I suppose it is that PHP is entangled in the HTML while Perl encases the whole business and I am reasonably familiar with its syntax these days which is why it still does a lot of the data processing grunt work that I need.
PHP
PHP is everywhere these days, though it doesn’t attract quite the level of hype that used to be the case. It still appears with its sidekick MySQL in many website applications. Blogging software such as WordPress and content management systems like Drupal, Mambo and Joomla! wouldn’t exist without the pair. It appears on my website as the glue that holds my visitor directories together and is the processing engine of my WordPress blog. And if I ever get to a Drupal element to the site, by no means a foregone conclusion though I am spending a lot of time with it at the moment, PHP will continue its presence in my website scripting as it powers that too.
Applications
Macromedia HomeSite
I have a liking for hand coding, so this does most of what I need. When Macromedia (itself since taken over by Adobe, of course) took over Allaire, HomeSite sadly lost its WYSIWYG capability, but the application still soldiers on even though Dreamweaver offers a lot to code cutters these days. Nevertheless, it does have certain advantages over Dreamweaver: it is a fleeter beast to start up and colour codes Perl syntax.
Macromedia Dreamweaver
There was a time when Dreamweaver was solely a tool for visual web page development, but the advent of Dreamweaver UltraDev added server-side development capabilities to the Dreamweaver family. These days, there is only one Dreamweaver version, but UltraDev’s capabilities still live on in the latest version and I would not be surprised if they were taken further in these database-driven times.
Nowadays, Dreamweaver isn’t an application where I spend a great deal of time. In former times, when my site was made up of static HTML pages, I used Dreamweaver a lot even if its rendering capabilities were a step behind the then-current browser versions. I suppose that it didn’t fit the way in which I worked, but its template-driven workflow would have been a boon back then.
However, my move from a static site to a dynamic one, starting with my photo gallery, has meant that I haven’t used it as much since then. However, with my use of PHP/MySQL components on my site. Its server-side abilities could get the level of investigation that its PHP/MySQL capabilities allow.
Altova XMLSpy Professional
Adding MySQL databases to my web hosting costs money, not a lot but it could be spent on other (more important?) things. Hence, I use XML as the data store for my photo gallery and XML files are pre-processed into XHTML/PHP pages for my visitor directories prior to uploading onto the server.
I use XMLSpy to edit and manage the XML files that I use: its ability to view XML in grid format is a killer feature as far as I am concerned and XML validation also proves very useful; particularly with regard to ensuring that DTD’s and XML files are in step and for the correct coding of XSLT files. There are other features that I need to explore and that would also take my knowledge of the XML further to boot, not at all a bad thing.
Saxon
For processing XML into another file format such as XHTML, you need a parser and I use the free version of Saxon to do the needful, Saxonica offers commercial versions of it. There is, I believe, a parser in XMLSpy but I don’t use it because Saxon’s command line interface fits better into my workflow. This is a Perl-driven process where XML files are read and XSLT files, one per XML file, are built before both are fed to Saxon for transforming into XHTML/PHP files. It all works smoothly and updating the XML inputs is all that is required.
AceFTP
If I were looking for an FTP client now, it would be FileZilla but AceFTP has served me well over the last few years and it looks as if that will continue. It does have some extra features over FileZilla: transfers between remote sites, and scheduling, for example. I have yet to use either but they look valuable.
Hutmil
In bygone days when I had loads of static HTML files, making changes was a bit of a chore if they affected every single file. An example is changing the year on the copyright message on the page footers. Hutmil, which I found on a magazine cover-mounted disc, was a great time saver in those days. Today, I achieve this by putting this information into a single file and getting Perl or PHP to import that when building the page. The same “define once, use anywhere” approach underlies CSS as well and scripting very usefully allows you to take that into the XHTML domain.
Apache
Apache is ubiquitous these days and both the online and offline versions of my site are powered by it. It does require some configuration but it is a very powerful piece of kit. The introduction of 2.2.x meant a big change in the way that configuration files were modularised and while most things were contained in a single file for 2.0.x, the settings are broken up into different files in 2.2.x and it can take a while to find things again. Without having it on my home PC, I would not be able to use Perl, PHP or MySQL. Apart from this, I especially like its virtual site capability; very useful for offline development.
WordPress
My hosting supplier offers blogs on Blogware, but that didn’t offer the level of configuration that I would have liked. It is true that this is probably true of any host of blogs. I can’t speak for Blogger but WordPress.com does have its restrictions too. To make my hillwalking blog fit in with the appearance of my photo gallery, I went popped over to WordPress.org to download WordPress so that I could host a blog myself and have maximum control over its appearance. WordPress supports themes so I created my own and got my blog pages looking as if they are part of my website, rather than looking like something that was bolted on. Now that I think of it, what about WordPress supporting user-created themes? I support that there is the worry of insecure PHP code but what about it?
MySQL
I am between minds on whether this is a technology or a tool. SQL certainly would be a technology standard but I am not so clear on what MySQL would be. In any case, I have classed it as a tool and a very useful one at that. It is the linchpin for my WordPress blogs and, if I go for a content management system like Drupal, its role would surely grow. While I do have a lot of experience with using SAS SQL and this helps me to deal with other varieties, there is still a learning curve with MySQL that gets me heading for a good book and Kofler’s The Definitive Guide to MySQL5 (Apress) seems to perform more than adequately in this endeavour.
Paint Shop Pro
As someone who hosts an online photo gallery, it won’t come as a surprise that I have had exposure to image editors. Despite various other flirtations, Paint Shop Pro has been my tool of choice over the years, but it is now set to be usurped by a member of Adobe’s Photoshop family. Paint Shop Pro does have books devoted to it but it seems that Photoshop gets better coverage and I feel that my image processing needs to be taken up a gear, hence the potential move to Photoshop
21st January 2024 OWASP stands for Open Web Application Security Project, and it is an online community dedicated to web application security. They are well known for their Top 10 Web Application Security Risks and late last year, they added a Top 10 for
Large Language Model (LLM) Applications.
Given that large language models made quite a splash last year, this was not before time. ChatGPT gained a lot of attention (OpenAI also has had DALL-E for generation of images for quite a while now), there are many others with Anthropic Claude and Perplexity also being mentioned more widely.
Figuring out what to do with any of these is not as easy as one might think. For someone more used to working with computer code, using natural language requests is quite a shift when you no longer have documentation that tells what can and what cannot be done. It is little wonder that prompt engineering has emerged as a way to deal with this.
Others have been plugging in LLM capability into chatbots and other applications, so security concerns have come to light, so far, I have not heard anything about a major security incident, but some are thinking already about how to deal with AI-suggested code that other already are using more and more.
Given all that, here is OWASP’s summary of their Top 10 for LLM Applications. This is a subject that is sure to draw more and more interest with the increasing presence of artificial intelligence in our everyday working and no-working lives.
LLM01: Prompt Injection
This manipulates an LLM through crafty inputs, causing unintended actions by the LLM. Direct injections overwrite system prompts, while indirect ones manipulate inputs from external sources.
LLM02: Insecure Output Handling
This vulnerability occurs when an LLM output is accepted without scrutiny, exposing backend systems. Misuse may lead to severe consequences such as Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), Server-Side Request Forgery (SSRF), privilege escalation, or remote code execution.
LLM03: Training Data Poisoning
This occurs when LLM training data is tampered, introducing vulnerabilities or biases that compromise security, effectiveness, or ethical behaviour. Sources include Common Crawl, WebText, OpenWebText and books.
LLM04: Model Denial of Service
Attackers cause resource-heavy operations on LLMs, leading to service degradation or high costs. The vulnerability is magnified due to the resource-intensive nature of LLMs and the unpredictability of user inputs.
LLM05: Supply Chain Vulnerabilities
LLM application lifecycle can be compromised by vulnerable components or services, leading to security attacks. Using third-party datasets, pre-trained models, and plugins can add vulnerabilities.
LLM06: Sensitive Information Disclosure
LLMs may inadvertently reveal confidential data in its responses, leading to unauthorized data access, privacy violations, and security breaches. It’s crucial to implement data sanitization and strict user policies to mitigate this.
LLM07: Insecure Plugin Design
LLM plugins can have insecure inputs and insufficient access control. This lack of application control makes them easier to exploit and can result in consequences such as remote code execution.
LLM08: Excessive Agency
LLM-based systems may undertake actions leading to unintended consequences. The issue arises from excessive functionality, permissions, or autonomy granted to the LLM-based systems.
LLM09: Overreliance
Systems or people overly depending on LLMs without oversight may face misinformation, miscommunication, legal issues, and security vulnerabilities due to incorrect or inappropriate content generated by LLMs.
LLM10: Model Theft
This involves unauthorized access, copying, or exfiltration of proprietary LLM models. The impact includes economic losses, compromised competitive advantage, and potential access to sensitive information.
29th September 2012 The world of UNIX appears to attract those interested in the more technical aspects of computing. Since Linux is cut from the same lineage, it is apt to include lists of computing languages. Both scripting and programming appear here despite the title, itself shortened for the sake of brevity. Since much code cutting involves working with databases, especially since data working cannot be avoided these days, these appear here too along with the stub for a list of tools.
In time, there may an opportunity to correct any imbalance between programming and scripting languages that currently exists. The original list was bare, so descriptions have been added and will be more and more needed should there be any expansion of what you find here.
Programming and Scripting Languages
Apache Groovy
My first encounter with an implementation of this language was with that belonging to a statistical computing environment (SCE) and that remains an ongoing dalliance. It is easy to think of Groovy as a way of working with a Java-based API using a scripting language, and it certainly feels like that. Saying that, it all works better if you know Java, though you do have to watch for the development of domain-specific language capability. That last comment probably applies to the aforementioned SCE in that it has its own object and method hierarchy that means that not all standard Groovy functionality is available.
Clojure
Clojure is a dynamic, functional programming language that runs on the Java Virtual Machine (JVM) and is designed for building robust and scalable software applications. It is characterised by its emphasis on immutability, persistent data structures, and seamless interoperability with Java. Clojure embraces the Lisp programming language’s principles, providing a concise syntax and powerful abstractions for managing state, concurrency, and functional programming paradigms. With its focus on simplicity, expressiveness, and the ability to leverage the vast Java ecosystem, Clojure enables developers to create efficient and maintainable code for a wide range of applications.
Erlang
This is a programming language designed for building highly concurrent, fault-tolerant, and scalable systems that was developed by Ericsson in the late 1980s for telecommunication systems, where reliability and performance are critical. Erlang incorporates features such as lightweight processes, message passing, and built-in support for fault tolerance, making it well-suited for developing distributed and real-time applications. Its unique concurrency model and emphasis on fault tolerance have led to its widespread use in industries such as telecommunications, banking, gaming, and web development, where systems need to handle high loads, be resilient to failures, and provide real-time responsiveness.
Elixir
Inspired by Erlang, Elixir is a functional, concurrent programming language designed for building scalable and fault-tolerant applications. It leverages the powerful concurrency model of the Erlang Virtual Machine (BEAM) while providing a more accessible and expressive syntax. It offers features such as lightweight processes, message passing, pattern matching, and a robust ecosystem of libraries and frameworks. With its focus on reliability, performance, and ease of development, Elixir is well-suited for developing highly concurrent and distributed systems, making it a popular choice for building web applications, real-time systems, and software that requires high availability.
Go
Computing languages often get strange names like single letters or small words like this one; that means that you need to look for “Golang” in any online search. In any case, Go was originated at Google and numbered among its inventors was one of the creators of the C programming language. The intent here is massively multithreaded system programming using stand-alone executable components, while retaining or enhancing code readability. Another facet is the ability to function efficiently in distributed computing environments like those at SoundCloud or Uber. Various tools have been written using the language, and these include the ever pervasive Docker and Kubernetes.
Julia
It remains an odd decision to give a computing language a girl’s name, but the purpose is serious. Often, there is a trade-off between speed of code writing and speed of execution, with the result being that data programming involves prototyping in one language and porting to another for production usage. The first group includes R and Python while the second includes C, C++, FORTRAN and even Java, so there is an element of translation involved that often means that different people are involved, which adds an element of error caused by misunderstandings. This gets described as the two language problem and Julia’s major raison d’être is the avoidance of that: its top-line description is that it is as quick to program as Python but runs as fast as C because of its just-in-time compilation, multiple dispatch and in-built multithreading. This also allows for extensive capabilities for scientific computing that go beyond machine learning, and an example comes in the number of differential equation solvers that are available. It also helps that meta-programming makes everything more generalisable.
Perl
It has been around since the 1980’s and still pervades, though it is not as dominant as it once was for creating dynamic websites or system administration. PHP has taken on much of the former, while Python is making inroads into the latter. Still, no list would be complete with complete without a mention of the once ubiquitous scripting language, and it once powered my online photo gallery. It may be an easier language, but there is plenty of documentation on the web with Perldoc, Perl Maven and Perlmeister being some good places to look, and Dan Massey has some interesting articles on his site too. Not only that, but it is extensible too, with plenty of extra modules to be found on CPAN.
PHP
This usurper has taken the place of Perl for powering many of the world’s websites. That the language is less verbose probably helps its case, and many if not most CMS packages make use of its versatility.
Python
It may be Google’s preferred scripting language for system administration, but it is its usefulness for Data Science where it really has shone in the eyes of many. There are numerous packages for data wrangling, data visualisation and machine learning that make the language ever present in any Data Scientist’s toolbox, and looking in the PyPi archive will allow you to find what you need. It also has its place in web scripting too, even if it is not as pervasive as PHP though CMS’s like Plone run on Python and there is the Django framework together with the Gunicorn web server.
OpenJDK
One of the acts of Jonathon Schwartz while he was head at Sun Microsystems was to make Java open source after more than a decade of its being largely proprietary, and this is the website for the project. Of course, his more notable act at Sun was to sell the company to Oracle, but that’s another story altogether…
R
This is an open-source implementation of the S language that is much appreciated by statisticians and is much used in the teaching of the subject. The base language only has so much functionality but there are many packages available that do just that and there are many to find on repositories like the CRAN and others can be found on various GitHub repositories, though these tend to be more experimental in nature. There are commonly used and well-supported mainstays that everyone uses, but there always is a need to verify that a particular package does what it claims to do. Given that, there are possibilities for data wrangling, data tabulation, data visualisation and data science. While quick to code, R is slow to execute compared with others and I have found that Python is faster, but it still has a use for smaller data sets; both keep their temporary data sets in system memory so that will help.
Rust
It came as a surprise that this Mozilla-originated language is gaining traction in scientific data analysis, possibly because it is a fast multithreaded counterpart to C and C++ with some added safety features (though these can be turned off if needed and extra care gets taken). The downsizing of Mozilla led to a sharp reduction in its team of Rust developers, and the Rust Foundation has been set up to oversee the language instead. There are online books like The Rust Programming Language and the Rust Cookbook, with the first of these also having paper and e-book counterparts from No Starch Press. For those interested in a more interactive introduction, there also is the Tour of Rust.
Databases
MariaDB
This essentially is a fork of MySQL (see below) now that Oracle owns it. The originators of MySQL are the creators of MariaDB, so their claims of it being a drop-in replacement for it may have some traction. So far, I have seen no exodus from MySQL, though.
MySQL
After being in the hands of a number of owners until it incongruously came into the custodianship of Oracle (who of course already had and still have one of their own), the database system that powers many dynamic websites almost remains a de facto standard and looks set to remain thus for now.
MongoDB
This may a document-based and not a relationship database like many of us understand them, but it still is being touted as an alternative to the more mainstream competition. Database technology isn’t just about SQL, and MongoDB champions a NoSQL approach; it sounds as if the emergence of XML might be what’s facilitating the NoSQL database technologies.
PostgreSQL
This project may have more open-source credibility than MySQL, but it seems to remain in its shadow, though that may be explained by its being a more complex piece of software to use (at least, that has been my experience, anyway). It so happens that this is what Debian installs if you specify the web server option at operating system installation time.
Tools
Git
Version control has become essential over the decades, and Linus Torvalds developed this for using on the Linux kernel project. Its usage has gone far beyond that to make it possibly the de facto standard for version control these days. The existence of GitHub and GitLab may stand testament to that, and would never have existed without Git either. There is a symbiotic relationship implicit in these.