John

Feb 28, 2022

Please welcome Dr. John Samuel, @jsamwrites Associate Professor, Computer Science, CPE Lyon

February 28 to March 7 on @imakefoss

Interview: https://t.co/YjzAx59h6O

@imakefoss is a rotation curation account. https://t.co/22joHH2tZt

Feb 28, 2022

Hey all, I will be taking over the IMakeFoss account this week. I will be sharing about open-source, open science, and (multilingual) open data.

I will also share some posts about operating systems, programming languages, and Wikidata.

Stay tuned.

John Samuel (@jsamwrites)

Feb 28, 2022

Besides industry, open-source also plays a significant role in the education sector. One such application that has caught the attention of educators during the last few years is Jupyter Notebook (@ProjectJupyter).

John Samuel (@jsamwrites)

Feb 28, 2022

@ProjectJupyter @jsamwrites Jupyter notebook lets you demonstrate small code snippets in action with its simple notebook-like web interface. A very large code can be split into multiple cells mixing code and textual descriptions.

John Samuel (@jsamwrites)

Feb 28, 2022

@ProjectJupyter @jsamwrites I find a notebook-like interface useful for live programming in Python and teaching data-science-related concepts.

The students can check the different steps of a data processing pipeline in a single file.

#Jupyter #Python #OpenSource

John Samuel (@jsamwrites)

Feb 28, 2022

@ProjectJupyter @jsamwrites A simple example of a Jupyter Notebook with both text (headers) and Python code.

John Samuel (@jsamwrites) https://t.co/7E1O17KcRw

Mar 1, 2022

Continuing with education, another interesting open-source library effective for teaching machine learning with Jupyter Notebook is the Python library Scikit-learn (@scikit_learn)

John Samuel (@jsamwrites)

Mar 1, 2022

What is data science without data visualization?

One particular Python library that I would recommend is Matplotlib (@matplotlib). It offers a vast number of static and interactive visualizations.

#OpenSource #Python #dataviz

John Samuel (@jsamwrites)

Mar 1, 2022

@matplotlib @jsamwrites A lot can be done with just points, lines, and colors using Matplotlib.

I particularly like the large open-source community that shares its visualizations here on Twitter. Check @matplotlib Twitter account for these amazing visualizations. #dataviz

John Samuel (@jsamwrites)

Mar 1, 2022

Which open-source libraries do you use for data visualization?

I will start. Usually, I use Matplotlib (@matplotlib).

I have also used Bokeh (@bokeh) , seaborn, HoloViews (@HoloViews) .

#OpenSource #dataviz

John Samuel (@jsamwrites)

Mar 2, 2022

Open-source software is developed using one or more programming languages. And paradigms help to distinguish these languages.

Some programming paradigms are very popular, like object-oriented, functional programming, etc.

#programming #OpenSource

John Samuel (@jsamwrites) https://t.co/S617h1vcCx

Mar 2, 2022

@jsamwrites And the recent trend is to support more and more paradigms into a single programming language.

Hence we have multi-paradigm programming languages with five or more paradigms.

#programming #SoftwareDevelopment

John Samuel (@jsamwrites) https://t.co/Ve1DaAN571

Mar 2, 2022

@jsamwrites Some programming paradigms disappear too fast and some stay.

Procedural, imperative, functional paradigms have been around for quite a while.

Some interesting insights from language analysis on Wikidata: https://t.co/3fAcN2LBW2

#programming

John Samuel (@jsamwrites) https://t.co/jQrAdN0LnP

Mar 2, 2022

Which programming language should I learn next?

Should I go by the popularity of a programming language on Twitter?

If I consider their Twitter follower count, I may need to learn Go, Kotlin, Scratch, Rust,..

#programminglanguage #OpenSource

John Samuel (@jsamwrites) https://t.co/fwlaHKSLCq

Mar 2, 2022

@jsamwrites I am using Wikidata to crunch these numbers.

If you are interested in knowing how I got these numbers, check the SPARQL query: https://t.co/RlqmwotAcz

John Samuel (@jsamwrites)

Mar 3, 2022

Documentation of open-source software is important and one important piece of information is its license.

GPLv2+, GPLv3+, APL, MIT License are some of the commonly used licenses.

Source: Wikidata https://t.co/jTpBQ1JE2R

#OpenSource #OpenData

John Samuel (@jsamwrites) https://t.co/3ZBVu8jTJg

Mar 3, 2022

@jsamwrites Open Source Initiative (@OpenSourceOrg) has approved licenses that correspond with Open Source Definition.

And now the picture becomes somewhat different, with MIT license being prominent: https://t.co/bt7kRghSxh

#OpenSource #OpenData #software

John Samuel (@jsamwrites) https://t.co/wtKJTo0IzB

Mar 3, 2022

Linux distributions have significantly evolved during the last 30 years.

I still remember the day when I first tested my first @ubuntu Live CD. Yes, we could test an operating system without installing it (we still can).

#Linux #OpenSource

John Samuel (@jsamwrites) https://t.co/UvowrVM0Dh

Mar 3, 2022

@ubuntu @jsamwrites Several desktop environments made the life of new Linux comers simpler. Users could easily switch from other operating systems to Linux.

Notable examples include KDE (@kdecommunity), GNOME (@gnome) .

#Linux #KDE #GNOME

John Samuel (@jsamwrites) https://t.co/XYYJrxmSMR

Mar 3, 2022

@ubuntu @jsamwrites @kdecommunity @gnome A lot of effort is now being made towards simplifying the package management in Linux distributions.

Snap package is one such example. However, there are many others.

#Linux #softwaredevelopment

John Samuel (@jsamwrites) https://t.co/rugZew6Yp3

Mar 4, 2022

Keeping aside the popularity of programming languages, the question of the commonly used programming languages for developing open-source software brings surprises.

C and C++ top the list, followed by Java, Python, Javascript.

#OpenSource #programming

John Samuel (@jsamwrites) https://t.co/UUW0yoLEKk

Mar 4, 2022

@jsamwrites These numbers are obtained thanks to the documentation of software on Wikidata.

Check the results: https://t.co/hyXjSech4I

John Samuel (@jsamwrites)

Mar 4, 2022

Linux is not the only operating system that is released with an open-source license and C is not the only preferred programming language for kernel developers.

#Linux #OpenSource #Kernel #programming

John Samuel (@jsamwrites) https://t.co/zON9KXZe8Y

Mar 4, 2022

@jsamwrites Several hardware platforms exist offering a wide range of possibilities to kernel developers of different programming languages.

John Samuel (@jsamwrites)

Mar 4, 2022

@jsamwrites For more information on documenting operating systems on Wikidata or if any information is missing, please check the results: https://t.co/yv1t4BPJ0p

John Samuel (@jsamwrites)

Mar 4, 2022

Are you planning to create a new programming language? Which programming language will you use to build it? C/C++ or Python?

Which features will you support? Will you support Unicode characters for function and class names?

#OpenSource #programming

John Samuel (@jsamwrites) https://t.co/3lGJsVPG6c

Mar 5, 2022

Today is #OpenDataDay

All languages are not equally represented on the internet.

Documentation of programming languages on Wikipedia shows such disparity: https://t.co/vsWBQcPMFo

#OpenSource #languages #programming

John Samuel (@jsamwrites) https://t.co/8R87YvSnZG

Mar 5, 2022

@jsamwrites Documentation of operating systems on Wikipedia shows around 321 articles in English, whereas a majority of languages have less than 40 articles: https://t.co/3uX4GlI6Dz

#OpenDataDay #OpenSource #languages #OS

John Samuel (@jsamwrites) https://t.co/rkZfnCheAk

Mar 5, 2022

@jsamwrites This brings to an important question. Which programming language is popular on Wikipedia with multilingual articles?

Thanks to the structured data on Wikidata, we have the answer: https://t.co/x8umvJyGJ6

#OpenData #Java #PHP #Python #programming

John Samuel (@jsamwrites) https://t.co/j1tBjHbPnP

Mar 5, 2022

@jsamwrites And the most popular operating system, based on the number of articles in multiple languages on Wikipedia, is Android. https://t.co/6SHe4tMPEY

I still feel that Desktop OS is not going anywhere soon.

#OpenData #Android #OS #internet

John Samuel (@jsamwrites)

Mar 5, 2022

@jsamwrites Operating systems with more than 30 articles on Wikipedia.

John Samuel (@jsamwrites) https://t.co/JDpa39De9G

Mar 5, 2022

So far, I have been tweeting with images about open-source software, programming languages, and operating systems.

Being a visual person, I love drawings, colors, paintings, designs, photography, data visualization, etc.

#OpenSource #dataviz

John Samuel (@jsamwrites)

Mar 5, 2022

@jsamwrites I guess that explains my data analysis and visualization tweets.

Now, in a series of tweets, I want to share some love for the open-source tools that I use.

#OpenSource #software

John Samuel (@jsamwrites)

Mar 5, 2022

@jsamwrites I love drawing, and I prefer vector images to raster drawings.

I feel that as the quality of our hardware improves, we are able to create and share very high quality images.

#OpenSource #vectorart

John Samuel (@jsamwrites)

Mar 5, 2022

@jsamwrites And vector images ensure this quality for years. Therefore, I use @inkscape and save my images in the SVG format.

SVG, being an open standard by W3C, I feel everybody can see my drawings irrespective of their OS.

#OpenSource #vectorart #inkscape

John Samuel (@jsamwrites)

Mar 5, 2022

@jsamwrites @inkscape Another advantage of SVG format for 2D drawings is that it can also be viewed on web browsers.

My recent discovery related to SVG is another application called @excalidraw.

#OpenSource #vectorart

John Samuel (@jsamwrites)

Mar 5, 2022

@jsamwrites @inkscape @excalidraw Instead of perfectly straight lines, I feel the human touch when creating art with those seemingly curved lines. So, you see Excalidraw drawings in my slides.

#OpenSource #vectorart

John Samuel (@jsamwrites)

Mar 5, 2022

@jsamwrites @inkscape @excalidraw And every year, I participate in #inktober (but unfortunately, I rarely manage to complete all the 31 days).

However, instead of painting images, I use @inkscape for creating drawings on different themes.

#OpenSource #vectorart

John Samuel (@jsamwrites)

Mar 5, 2022

@jsamwrites @inkscape @excalidraw I must confess that the #inktober is a great learning experience for discovering the features of Inkscape.

I also have a long-term project, where I draw all the natural and human-made objects in SVG.

#OpenSource #vectorart #drawing

John Samuel (@jsamwrites)

Mar 6, 2022

During the last two decades, I have used command-line, desktop, web, and mobile applications.

Yet, when it comes to programming and testing some quick code, I still choose command-line.

#OpenSource #Linux #CommandLine #devops

John Samuel (@jsamwrites)

Mar 6, 2022

They say ‘Old habits die hard". I do not know whether this is the reason that I still love command-line.

My second preference, however, is web-based solutions.

#OpenSource #web #CommandLine #devops

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites We have seen a gradual shift from desktop solutions to web and mobile applications.

However, I love open web standards which ensures interoperability and easier sharing.

#OpenSource #web #OpenWeb

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites That’s why I still maintain a blog (call me old-school) and I use a static website, developed using HTML, JavaScript, and CSS.

I also use these technologies for sharing my slides for personal, and teaching purposes.

#OpenSource #web #blogging

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites Back to the command-line (CL). I do not recall how I learned those mnemonics/abbreviations and how much time did I take. The learning curve was not very steep for me, I guess.

#CommandLine #Linux #bash

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites Is the experience the same for all new users of the command-line? And the experience of non-English speakers? How do they relate to it?

The commands are usually abbreviations of English words.

ls: list cd: change directory ..

#DevOps #bash #Linux

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites Command-Line experience has significantly evolved all these years.

We now have shells like fish, which have added colors and complex auto-completion features to those monochrome terminals.

#OpenSource #fish #bash #DevOps

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites If you are a developer, numerous libraries have helped standardize the commands, command-line options, optional and positional arguments.

Is it -v or –v? Is it -version or –version?

#programming #CommandLine #OpenSource

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites If you are a Python developer, coming from languages like C/C++, you have libraries like Typer, Click, etc. making command-line life easier.

From argc/argv in C to argparse(), things are easier now.

#Python #programming #CommandLine #DevOps #C

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites Python developers need to check libraries like rich which add colors and fancy output to the terminal (renderings for markdown, JSON).

The days for textual user interface are not yet over.

#Python #programming #CommandLine #DevOps

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites And finally, to conclude this thread, some perspectives for the command-line:

How to support correctly the Unicode characters? How to support multiple languages, i.e., commands in multiple languages?

#OpenSource #programming #CommandLine #DevOps

John Samuel (@jsamwrites)

Mar 6, 2022

Documentation, maintenance, and sustainability are three significant challenges related to open-source software.

Many open-source projects start as hobby projects with limited initial documentation.

#OpenSource #sustainability #documentation

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites Some open-source projects get the attention of open-source community members. The initial focus is more on increasing and improving the features, but less on documentation.

#OpenSource #sustainability #documentation

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites A couple of my projects started from small scripts, which eventually became big enough to be called web applications.

However, I utilize documentation and test-driven development for some recent works.

#OpenSource #sustainability #documentation #web

John Samuel (@jsamwrites)

Mar 6, 2022

@jeffeb3 @jsamwrites Yes, I agree, especially when it may consume a lot of time (possibly turning into a feature request).

John

Mar 6, 2022

@jsamwrites Another documentation-related challenge is to ensure up-to-date documentation in multiple languages. Quick verification of any popular software on multiple Wikipedia language pages proves this. . #OpenSource #sustainability #documentation #OpenData

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites What if the open-source documentation is data-driven?

Instead of writing ‘Python is a programming language," we may say “Q28865 P31 Q9143”, as done on Wikidata.

Q28865: Python P31: is a Q9143: programming language

#OpenSource #documentation #Python

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites Instead of translating ‘Python is a programming language" in all languages, I translate Q28865 (Python), P31 (is a), and Q9143 (programming language).

For a new programming language, create/translate a new Wikidata item.

#OpenSource #documentation

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites This ‘Subject Property Value" triplet is the simplified foundation of Wikidata.

The structured and multilingual nature of Wikidata items makes them easier to query.

#OpenSource #sustainability #documentation

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites Now, if you wish to query all the documented programming languages on Wikidata, you can write a simple SPARQL query:

?proglang P31 Q9143.

Query: https://t.co/x3ud2gyEKO

#OpenSource #SPARQL #documentation

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites Wikidata community members have documented several KDE (@kdecommunity)and GNOME (@gnome) open-source software.

KDE: https://t.co/p3pA5Izpko

GNOME: https://t.co/yZBpSZMFuB

#OpenSource #sustainability #documentation

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites @kdecommunity @gnome I feel that the future is bright for multilingual documentation.

I conclude this thread presenting you Abstract Wikipedia/Wikifunctions project (@wikifunctions), which will use multilingual Wikidata information.

#OpenSource #documentation

John Samuel (@jsamwrites)

Mar 6, 2022

@jsamwrites @kdecommunity @gnome @wikifunctions Wikifunctions may automatically generate translated text in multiple languages.

‘Z…(Q28865 P31 Q9143)" may generate: English: Python is a programming language. French: Python est un langage de programmation.

#OpenSource #documentation

John Samuel (@jsamwrites)

Mar 7, 2022

Transparency is a principal pillar in science.

  1. Which software was used? Which configuration?
  2. Where are your input datasets and the resulting datasets?

The #OpenScience and #OpenData movements are responding to these questions.

John Samuel (@jsamwrites)

Mar 7, 2022

@jsamwrites Open-source plays a crucial role in ensuring transparency and democratizing science.

Tools like Scholia (@WDScholia) use the open data from Wikidata and show scientific collaborations, authors, awards, research topics, etc.

#OpenSource #OpenScience

John Samuel (@jsamwrites)

Mar 7, 2022

@jsamwrites @WDScholia Open source, open data, and open science have shown great results during the last decades.

However, something still unexplored is their use in the education sector towards the creation of open educational resources (OER).

#OpenSource #OpenScience

John Samuel (@jsamwrites)

Mar 7, 2022

Firstly, I would like to thank Jochen Spang (@josp0001) and the IMakeFOSS team for this invitation.

It was a great experience sharing some aspects of open-source, open data, open science, Wikidata, Abstract Wikipedia and languages.

John Samuel (@jsamwrites)

Mar 7, 2022

@josp0001 @jsamwrites I hope that the open-source community will also play a crucial role in building multilingual open educational resources in the upcoming years.

I also hope that language will no longer be a barrier to programming and sharing knowledge on the web.

John Samuel (@jsamwrites)