Welcome to the Bradford GNU/Linux site; we are a self-help group for GNU/Linux, Open Source and Free Software users in and around the Bradford District, West Yorkshire
Why not come along to a meeting.
John H talked about the background to and the work of Claude Shannon, the centenary of whose birth fell on 30 April 2016. As he was growing up ideas like ‘emergence’ (Charles Broad, 1925), the idea that things can have properties which cannot be deduced from full knowledge of their constituents, ‘uncertainty’ (Walter Heisenberg, 1925), ‘homoeostasis’ (Walter Cannon, 1932), ‘ecosystem’ (Arthur Tansley, 1939), ‘feedback’ (Norbert Wiener, 1943) and ‘network’ (Warren McCullough and Warren Pitts, 1943) were being defined for the first time, even though several had been described before then.
However, his 1937 Master’s thesis in which he proposed the application of Boolean algebra to digital circuits was later to be described as ‘possibly the most important … master’s thesis of the century’ (Gardner, Howard (1987) The mind’s new science: a history of the cognitive revolution, Basic Books, p. 144 ISBN 0-465-04635-5).
His 1940 PhD thesis was on applying mathematics to Mendelian genetics after which he became a National Research Fellow at the Institute for Advanced Study in Princeton, where he was in contact with Hermann Weyl, John von Neumann, Albert Einstein and Kurt Gödel.
After the US entered the war, he worked as a cryptographer at Bell Labs and various papers relating to this work including his ideas about ‘redundancy’ and ‘information entropy’ were published in The mathematical theory of communication (Shannon, Claude and Weaver, Warren (1949) University of Illinois Press).
Fritjof Capra and Pier Luigi Luisi (2014) The systems view of life: a unifying vision Cambridge University Press p. 93 ISBN 978-1-107-01136-6 summarise his work as follows:
> > Shannon realized that, in order to develop an effective mathematical theory of information, communication signals must be treated independently of the meaning of the message. Thus, the term “information,” as used in information theory, has nothing to do with meaning. It is a measure of the order, or nonrandomness, of a signal; and the main concern of information theory is the problem of how to get a message, coded as a signal, through a noisy channel. > > > > To measure the order, and thus the information content, of a signal, Shannon borrowed the concept of entropy from thermodynamics, where it is deﬁned as a measure of disorder ... He used probability theory to express the accuracy of the transmission of a given amount of information under known conditions of noise and was able to derive a formula that shows how the capacity of a channel to carry signals depends on its bandwidth ’(i.e., its theoretical signal capacity) and its signal-to-noise ratio (the measure of interference). > > > > Shannon made the surprising discovery that, even in the presence of noise, signals can be transmitted effectively, and that the capacity of the channel can be increased signiﬁcantly by adopting various coding schemes. Thus information theory became an important theoretical framework for coding and data compression in communication theory and computer science. > >
John H mentioned apropos the discussion at an earlier meeting about indexes based on substrings within columns that his brother had suggested these could be created in SQL by creating a column containing substrings from other columns and then indexing that column and it was suggested he investigate composite primary keys [these, however, are indexes based on more than one column, not substrings of columns].
David S then made another attempt to demonstrate BASH on Ubuntu on Windows but was frustrated by the fact that, even though he had downloaded all the available downloads before the meeting, by the time he wanted to start the demonstration there were fresh Windows updates which were still not complete by the end of the meeting.
So, instead, he tried out a USB WiFi dongle he had acquired at a knockdown sale; first step to run
lsusb to find the Vendor ID and the Product ID which turned out to be 2357 and 0101 making it a TP-LINK Archer T4U. A search on https://wikidevi.com/wiki/TP-LINK_Archer_T4U revealed that there was an open source Linux driver available which could be downloaded with:
git clone https://github.com/abperiasamy/rtl8812AU_8821AU_linux.git
Following the README and, after installing
dkms, David was able to make the driver and demonstrate it working as WLAN1 alongside the existing WLAN0.
David S had hoped to be able to demonstrate BASH for Windows though he had found that he had to sign away all his rights to register on the Windows Insider Program and, when he had done that, found that the relevant option had not being installed on his tablet. So all he could do was point to the BASH on Ubuntu on Windows site.
We then watched the TED interview with Linus Torvalds after which we discussed a wide range of topics which easily filled the remaining time, including:
SHA1 and why support for it is being discontinued (its hash is 40 digits long which is easy to crack and which was all the US would allow US companies in the 1990s which in turn led to all encryption work, e.g. PGP, SSH, moving to Europe);
how to start a program at boot, for example, an SSH session;
how starting a BASH command with a space causes it to be omitted from
.bash_history (true for openSUSE, not for Slackware);
the three alternative menus in KDE Plasma 5, namely, a Gnome style full desktop menu, the more recent KDE 4 default menu or the Plasma 5 default, a single menu displaying all the options available under one heading;
a brief discussion of SUSE/openSUSE covering topics previously covered on Monday,18th February 2013 but not including the acquisition of SUSE from Attachmate by Microfocus which, in the 1980s, was the leading COBOL software house! SUSE’s main business is large enterprise systems such as the London Stock Exchange and no sales figures have been issued for it since it ceased to be a separate company. However, it donates a percentage of its profits every year to openSUSE and this amount has been increasing over recent years indicating that SUSE is making more profits.
Gnome style KDE menu
Default Plasma 5 menu
**John H **picked up on a discussion at the previous meeting to give a presentation on dBASE II. He had never upgraded to dBASE III because it was not backwards compatible with dBASE II (other programs of that era like WordStar and Supercalc had maintained backwards compatibility; so it was possible to use them on both CP/M and DOS machines) and because dBASE II had an operator similar to
LIKE "%<substring>%" in SQL which had not been implemented in dBASE III. As he had made extensive use of this operator in his programs, an upgrade to dBASE III would have involved an extensive rewrite of all his programs.
When it came to migrating to SQL all he had to do was to write a dBASE program that converted all the dates to SQL format before importing the data; because dBASE used a fixed field size format, when he migrated several MB of data from dBASE to SQL he ended up with only around 1MB of data in SQL because it had lost all the blank spaces in the dBASE tables!
The main thing he missed in SQL was being able to create an index on substrings from several fields so that, for example, you could index books on year, author and title.
Stephane wondered why he had not used Lotus 1-2-3 and he said he had not used Lotus or Supercalc because, though they had database functions, the maximum field width was around 112 characters which was not enough for some of the organisation names that he wished to store in his address databases.
Matt asked about the recommendation to read data in and then close the file, manipulate the data and then reopen the file to save the data and John said this had come about because dBASE took advantage of the random access features of disks to write directly to the disk; so any error would be written directly to disk and, with no options for rollback, it could be difficult if not impossible to correct some errors. So, in his programs he had implemented an entry screen followed by a view screen showing what was to be entered in the dBASE table which the user had to confirm was correct before it was written to disk.
then went on to talk about how he used Inkscape and Scribus to produce newsletters. To create banners from logos he used Inkscape’s Trace Bitmap option to create an SVG image of the bitmap logo he had obtained and then removed any unwanted text and replaced it with the desired text. Where he had put a date in the banner, he could then simply edit that for the next edition.
He later added that, when using bitmap images as a source, he would double click on the main colour to bring up a dialogue showing its CMYK values and then use those values for other coloured elements in the newsletter.
The opening dialogue in Scribus allows you to determine the size of the document, for example, A0 for a poster, and the layout, for example, whether folded once or twice or more, as well as the unit of measurement.
The first thing to do after opening the first document is to press F3 and create some paragraph styles; you can set the font attributes, leading and whether automatic or fixed spacing is to be used.
Then you can begin to organise the layout using different types of frame, for example, text for text, image for images and render for displaying material from an external source like some maths from LaTeX or some music from Lilypond. Text frames can be linked so that text flows from one to the other; text is normally best imported using Edit text which allows you to apply the paragraph styles to each paragraph of text. The main constraint is that you cannot have bold or italic in the middle of some ordinary text. Get image loads an image into the frame; normally you then have to Adjust image to frame followed by Adjust frame to image to get the image the right size within the frame.
You can also add a range of shapes and lines and all can be edited using the Properties menu which floats over the document; this, for example, enables line widths to be changed or very precise positioning of frames so that text in adjacent frames is at the same level.
For output, Scribus offers Print which produces colour separations in Postscript format or PDF. Among other things, separations can have registration marks and bleeds while there is a choice of PDF output formats.
Stephane commented that a lot of this is like Adobe InDesign and John said that Scribus, Adobe InDesign and Quark Express are all frame based programs. However, he would not use Scribus for a long document unless he could use the same template for each page because it was time-consuming to lay out each separate page.
Stephane then explained why he would not be buying a Raspberry Pi 3. He began by commenting that single board computers (SBCs) had attracted the interest of those interested in micro-controllers and those interested in servers who wanted to do things differently. The Raspberry Pi, built in the UK using a Broadcom chip, has just celebrated its fourth anniversary.
While the Arduino is more US oriented, the Raspberry Pi is more Europe focused with HDMI, USB, composite video and GPIO connections with the aim of teaching people to code. However, comparing the three versions of the Raspberry Pi, the first one that has been around for four years can run all day; the second one which came with a quad core chip heats up too much; the third one requires a 2.5 amp 5 volt input compared with 2 amps for the earlier ones because it has to support the wi-fi and the 1GB memory. So it can heat up to 100°C as demonstrated by Lady Ada — though some people have got different results — and he does not think that this is a good thing for something which is to be used by children.
Instead, he is thinking about getting the rather more expensive Odroid C2 which comes with a 64bit processor, a big heat sink, 2GB memory and DDR3; though the Raspberry Pi 3 has a 64bit chip, it only runs 32bit programs, there are questions about its GPU and you have to buy codecs for some features. The Odroid will run either Android or Linux and comes with an eMMC module for booting.
**Alice **started us off with Optimising Impala Queries, or a ‘Distributed Lego Community’, a demonstration of the principles behind Parquet, a columnar storage format, and Impala, an analytic database, for the Hadoop ecosystem. Columnar storage formats overcome the burden of reading every row of a table based database such as SQL.
After a container of different coloured Lego bricks had been emptied on the table participants were invited to execute the equivalent of:
SELECT * FROM round_bricks WHERE COLOUR = 'yellow';
It took some time for those around the table to pick out the relevant bricks. So participants were invited to create columns of different coloured bricks and to create the metadata indicating the number of bricks in each column. Not only did this make it easier to locate all the bricks of one colour, when there was a change in the number of bricks in a column, this could be recorded in the metadata obviating the need for a further count. The metadata also made it easy to collect statistics on the contents of the database.
John H asked about the use of indexes which are, in effect, columnar data. He noted, for example, that SQL does not have the flexibility of indexing on different parts of a column which dBASE had. So, for example, he used to store dates as DD/MM/YYYY in dBASE but index them on YYYY+MM+DD so that records appeared in date order.
Alice said that MongoDB, for example, has indexes but suggested that, with so much more computing power, this way of doing things was no longer needed, adding that there are plenty of blogs on related subjects at Sky Betting and Gaming Engineering.
Stephane gave us a demonstration of the uses of
iwlist, which gives rather more information than
ifconfig, before going on to demonstrate Linuxone, the IBM 390 mainframe running Linux. After finding out the cost of paying for access, he discovered that IBM is offering 90 day free access which he demonstrated by connecting to his VM on which he had installed RedHat 7 (with a rather old kernel!), Htop and GlassFish. (See also Stephane’s blog.)
David S first drew our attention to the replace-debian-with_arch.txt, which might be adapted to any two distributions, and then to GCHQ’s MIKEY-SAKKE ’phone encryption software which has a massive backdoor leading Dr Steven J Murdoch, the researcher who revealed this to describe it as ‘Insecure by design.’ He then drew attention to the document authored by Karen Byfield in March 2010 entitled What’s the worst that could happen?, noting that everything in it happened with the Snowden revelations and that, while the PDF version had the GCHQ contact details redacted, they were visible in the browsable version.
Finally, John H put up an example of a dBASE program he had written 25 years ago as part of an IT course.
We lamented the death of Ian Murdock [see Ian Murdock if this link goes down] noting that the Debian distribution he created continues to support the widest range of architectures. [Gabriella Coleman summarises his importance for free and open source software in Ian Murdock In His Own Words.]
Stephane mentioned his interest in software defined radio as he is currently studying for a radio operator’s licence. This led into two related discussions, one about FPGAs and the other about the Open Base Station Architecture Initiative which describes what is needed to set up a mobile base station.
Duncan spoke about Field Programmable Gate Arrays (FPGAS), some of which have the analog-to-digital converters (ADCs) and digital-to-analog converters (DACs) useful in software defined radio. IBM has recently acquired Altera which, along with Xilinx, is one of the main providers of FPGAs. Xilinx produces the MicroBlaze, support for which was merged into the Linux kernel and GCC in 2009.
For learning about FPGAs, he suggested the Arty Artix or Basys boards which come with the Vivado toolkit. Unlike microprocessors which operate on a sequence of instructions, FPGAs are concurrent state machines.
Finally, in response to another comment, he noted that the OpenSPARC T2 had had many features which were later introduced on Intel chips.
From which operating system did Linus Torvalds draw inspiration for Linux? Minix
Which was the first recognisable Linux Distribution? Softlanding Linux System [the Manchester distribution is an alternative answer]
For which chip did Linus Torvalds write a port which prompted him to rewrite many aspects of the kernel so that it became chip agnostic? DEC Alpha
What is the origin of My in mysql and Maria in mariadb? They are both daughters of Monty Widenius, a lead developer of both programs
What links Matthias Ettrich and Miguel de Icaza? They both started desktop programs for Linux (KDE and GNOME respectively)
What does GIMP stand for? GNU Image Manipulation Program
What is the meaning of the Bantu term Ubuntu? humanity, human kindness, human connectness
Which desktop environment was developed specially for the Linux Mint distribution? Cinnamon
Which companies collaborated to produce the version of HTML released in 2011 and often called HTML5? Apple, Mozilla and Opera
After which historical figure is e Bluetooth communication protocol named? Harald Bluetooth, King of Denmark, c. 1,000 AD
What do the initials TOR stand for? The Onion Router
Android uses a Linux kernel but does not use the GNU utilities. In what language are the Android utilities written? Java
What general term is used to describe databases such as CouchDB and MongoDB? NoSQL
Linus Torvalds has created three programs: the Linux kernel, GIT and which other program? Subsurface
What is the name of the program being developed as an alternative to X Windows? Wayland
What was the original reason for developing the Raspberry Pi? To enable schoolchildren to become proficient in coding before they applied for university computing courses.
Which Japanese company has manufactured most of the Raspberry Pis? Sony
Which is the world’s most widely used database program? SQLite
Brian introduced us to the Pine 64, an expandable single board computer starting at $15 for 512MB. Though a 2GB version was advertised, it appeared that only the 512MB and 1GB versions are currently available.
Stephane then recommended the Charbax videos and in particular the interview with Bernhard Rosenkränzer on the Android team at Linaro and Rob Clark of Red Hat who works on the open source GPU driver called Freedreno for Qualcomm’s ARM processors’ Adreno GPU. He noted that ARM GPUs are all bound to specific implementations of the GPU which makes producing common code very difficult.
Matt commented that you really have to write the ARM GPU drivers. This led into a discussion of whether future implementations of ARM GPUs would be in silica or as add-ons.
Brian then shared his experience of attending Linux Malaga where he saw a demonstration of the Cassandra distributed database. For the demo, each person was logged on as a node in a Cassandra database, each given the name of a city like, Paris, Madrid. Data was then replicated to nodes according to its importance.
It was noted that Cassandra needs to be coded in C but is superfast for certain applications whereas MongoDB accepts many languages. There was a suggestion that Cassandra is still too experimental but Brian commented that it had been easy to set up in the room and he had learned how to set up notes from the demo.
Stephane then picked up on a question from the previous meeting about coding the Raspberry Pi GPIO pins with a demonstration of how to do this. Essentially, there are two ways:
the easy way is to access the GPIO directly but then you cannot access all the hardware on the Raspberry Pi because some pins have a second function;
the other way is to use the Python drivers but this is not easily portable.
Note that the GPIO (gpInputOutput) is two way; it can be a transmitter and a receiver. Moreover, some secondary functions, for example, UART, are suitable for transmitting and receiving data.
Morse code requires three units of time between letters and seven units of time between words. So the first step is to define the unit of time (line 7); then the program defines the characters before coming to the routines to print a letter, a word and a sentence.
The program is written in Java and can be used with other devices that have GPIOs.
Stephane then shared another project to access GPG keys. There is a Java library to interact with GPG keys but the code is five to ten years old — something he mentioned to the GPG developers. So he had written his own Java routine based on the more recent GPME library which he compiled from the source of the Guardian Project.
Rename Stephane’s files to give them a
.java file ending as Wordpress would not allow files with this file ending to be uploaded.
John H finished the meeting with his Christmas Quiz:
From which operating system did Linus Torvalds draw inspiration for Linux?
Which was the first recognisable Linux Distribution?
For which chip did Linus Torvalds write a port which prompted him to rewrite many aspects of the kernel so that it became chip agnostic?
What is the origin of My in mysql and Maria in mariadb?
What links Matthias Ettrich and Miguel de Icaza?
What does GIMP stand for?
What is the meaning of the Bantu term Ubuntu?
Which desktop environment was developed specially for the Linux Mint distribution?
Which companies collaborated to produce the version of HTML released in 2011 and often called HTML5?
After which historical figure is the Bluetooth communication protocol named?
What do the initials TOR stand for?
Android uses a Linux kernel but does not use the GNU utilities. In what language are the Android utilities written?
What general term is used to describe databases such as CouchDB and MongoDB?
Linus Torvalds has created three programs: the Linux kernel, GIT and which other program?
What is the name of the program being developed as an alternative to X Windows?
What was the original reason for developing the Raspberry Pi?
Which Japanese company has manufactured most of the Raspberry Pis?
Which is the world’s most widely used database program?
Answers after Christmas.
Stephane, who had joined us for his first meeting, said there were some articles on his blog about using the GPIO on the Raspberry Pi and also mentioned the Ministry of Freedom site where you can get Thinkpads with Libreboot installed so that everything on the machine can be free of proprietary code.
David S shared Wierd new tricks for browser fingerprinting, such as using information from HTML canvas elements or WebRTC, generating error messages that contain crucial data and measuring latency under various conditions to identify different browsers.
John H described the work he was doing on the Heath Old Boys Association website; this was a 2003 vintage frame based website which did not play well with modern devices; after he had explored various options, he had decided that the best option was to build a new HTML5 website on the lines described by Dave Fisher in his 2010 talk to BradLUG in front of the old website so that people could continue to access the old website while the new one was under construction.
He outlined the design of the website using the website documentation, key points being:
current versions of Remy Sharp’s HTML enabling script no longer work with earlier versions of IE (he wanted this compatibility because the school merged with another school in 1985 and so the association’s members may well include some who are still using XP); fortunately, he had a copy of the earlier version which works;
the major change to the layout of the new website was splitting up the material that had appeared under the ‘Heath History’ tab of the old website into five new sections;
he had included all the ARIA attributes for people using assistive technologies along with tags like
<date> which enables a machine-readable date to be used and
<i lang" "> which allows the language of a foreign language extract to be specified on the assumption that members would be of a generation which might increasingly be using assistive technologies;
images under 400 px wide were placed in a float which could be floated left or right depending on the image; in larger devices, text flowed round them; in mobiles, they filled the space and usually appeared centred;
he had used the new
v unit (1% of the viewport) so far only supported by Chrome/chromium in the sizes attribute of the
<img> tag; browsers that support this attribute scale the most appropriate image listed in the
srcset attribute; those that do not, either select the most appropriate size from the list given in
srcset or, if they do not support
srcset, use the image listed in the
src attribute; this is always the smallest one so that mobiles can display it.
Mike wondered why he had not used Wordpress and John said that, for the size of the site, Wordpress was a bit like a sledgehammer to crack a nut; also he had been able to design the website to play well on every type of device and to include all the ARIA attributes, something not possible with other software. In practice, adding a new page is simply a matter of copying and replacing the matter between
</article> in an existing page.
He also mentioned the news item that day about Google’s expectations for mobile friendly websites.
John W asked for some help with Firefox privacy settings.
David S showed off this Windows 10 tablet, commenting that the camera ceased to work after sleep and that he hadn’t been able to partition the storage, problems which he could easily have solved had it been Linux, and noted the recent death of Adrian Frutiger, designer of the Univers typeface.
Darren mentioned his visit to the British Science Association.
Mike shared problems he was having with Arch detecting USB disks and asked about backing up. John suggested that labelling two USB disks
archive_2 and using something like:
rsync -avz --delete /home/ /var/run/media/mike/archive_1/
rsync -avz --delete /home/ /var/run/media/mike/archive_2/
as appropriate. Leaving these in
.bash_history meant he could plug in a USB disk and call up the appropriate command.
A select group of members gathered to celebrate the seventh birthday of BradLUG; there was cake and then John H presented a review of our seventh year which provoked a lot of discussion after which David S celebrated the tenth anniversary of Git with a presentation and a wonderful graphic.