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.
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.
- Which software was used? Which configuration?
- 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)