Getting started ~ how to scratch that itch

Many approach programming for the desire to 'scratch an itch'. You have an idea for a program; perhaps inspired by something you've used or perhaps you have unique needs and there's nothing out there for you. The tricky part for those of us without computer science degrees is where to start, especially on Linux where the choices seem endless.

This wiki post aims to point developers towards the tools and resources needed to start development on Ubuntu Mate.

Web development

Creating websites and web applications arguably has the lowest technical barriers to entry and is a great place to start if you are new to programming. With relatively little effort (and a good static site generator) you can develop an attractive, fast and modern HTML web site. With some knowledge of programming you can build a rich, database-driven web application that's ready to deploy locally or with the myriad of cheap web hosts and virtual private server services like DigitalOcean.

Ubuntu Mate makes a great web development platform because:

  • The great selection of development and design tools
  • Support for most open-source web programming languages and frameworks including PHP, Ruby-on-Rails and Node.js
  • Availability of powerful command-line tools like SSH, Git, Rsync
  • Your local server environment can be set up to match your production server 100%

Creating static web sites

Using a static-site generator

A static-site generator is an ideal tool for anyone who wants to create a basic website without fiddling around with HTML, databases or Wordpress. They are ideal for creating anything from a personal blog to a company marketing site.

Static-site generators are typically written using interpreted languages such as Python or Ruby. They work by transforming content into HTML and CSS using a template. Most use markdown to create content which is very easy to learn and is highly portable.

Following is a list of some popular free generators:

  • Nikola
  • Jekyll
  • Pelican

For a comprehensive list of static site generators check out https://www.staticgen.com/

Hand-coding

TBC

Creating web applications

TBC

Setting up a LAMP server

A LAMP server comprises Linux, Apache, MySQL and PHP (or Perl, Python) and provides almost everything you need to test and deploy a database-driven web application.

There are several tutorials on the web for setting up a LAMP server on Ubuntu, but by far the easiest way is to use Tasksel.

Tasksel is a Debian/Ubuntu tool that installs multiple related packages as a co-ordinated "task" onto your system.

Source: Tasksel - Community Help Wiki

  1. Install Tasksel
    sudo apt-get install tasksel
  2. Start Tasksel with superuser privileges
    sudo Tasksel
  3. You will be presented with a Ncurses interface:

    a. Use the arrows keys to highlight the LAMP Server package and press spacebar to select it.
    b. Press the Tab key to jump to OK and press Enter to continue.

The installation process will begin and you'll be prompted for input when required, for example setting your MySQL root password.

When the process is complete, open your web browser and navigate to http://localhost. If you see the Apache2 Ubuntu Default Page, pat your self on the back, you've just installed your LAMP server.

Read the page carefully as it tells you where Apache's configuration files and default document roots are located.

Setting up Ruby-on-Rails

Ruby on Rails is a popular web development framework that couples the Ruby language with the Model-View-Controller design pattern. Setting up and deploying Rails applications on Ubuntu is a little more difficult that an equivalent PHP-based application.

You can find an installation tutorial here: Install Ruby On Rails on Ubuntu 14.04 Trusty Tahr | GoRails

Desktop development

TBC

Command-line tools

TBC

GUI programs

TBC

Ubuntu Quickly

Ubuntu Quickly is a collection of tools that help you develop a PyGTK program using pre-defined templates. It's a very useful place to start because it makes a lot of tedious decisions for you and guides you through steps of your project from the initial creation through to packaging and deployment.

Ubuntu Quickly is in the 14.04 repos and can be installed with the following command:

$ sudo apt-get install quickly quickly-ubuntu-template

You can get more information from https://wiki.ubuntu.com/Quickly and there's several tutorials on YouTube if you care to search.

5 Likes

I’ve created a basic post to point new developers towards the tools they need to get started for the web and desktop.

I’ve asked @Wimpy to convert this to a wiki so other can contribute.

Very much work in progress and I invite others to help and share their knowledge.

2 Likes

Looks like a great start!

LAMP installation through tasksel went fine, other LAMP stack installation methods works fine too. Though, I have troubles installing phpmyadmin on latest Ubuntu Mate LTS

You just reminded me I need to flesh that post out more (hint: it’s a wiki so anyone can contribute!)

What was the problem with phpmyadmin? There’s a lot that can go wrong but in my experience it’s usually a problem with mysql credentials or the socket php uses

The problem was that there wan’t any dialogue after apt-get install phpmyadmin, though
I’ve managed to fix the installation through dpkg-reconfigure