[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [school-discuss] OSI Incubator Project - FLOSS Desktops for Kids



Good to see some conversation on the list about this topic.

On Fri, Jul 28, 2017 at 6:44 PM, Damiano Verzulli <damiano@xxxxxxxxxxx> wrote:
> Il 28/07/2017 22:06, Carpinello, Nicholas ha scritto:
>> I think our idea is to equip under-privileged kids with computers, teach
>> them "baby" computer science, and future iterations/expansions of FLOSS
>> Desktops would be putting them on course to do something like Summer of
>> Code when they get to college.

I personally really haven't seen good results from some of the summer
of code projects out there.  One project that participated in it has
code that looks really poorly designed (spaghetti code).  It needs to
be completely refactored to work with it properly and avoid
intermittent crashes.  Wouldn't be surprised to see that in several
other projects that participated in summer of code.

If I were going to pick a goal, it would be to get something useful
accomplished for the organization I work for.  Some examples might be
working on/maintaining a District's web site or creating a mobile app
for the District or modifying/maintaining some useful IT software.  If
you use Open Source programs in IT (such as a student information
system or BI reporting tools), you could have students look into
adding needed functionality that is currently missing.  Students could
also add functionality to Open Source programs that are useful on a
desktop such as multimedia editing programs (graphics, video or
document editors).  Patches can be sent back to the Open Source
project and the projects can choose whether to incorporate them back
into the main project or not.  The goal would be to work on something
that the School District or teachers or students might actually need
or could use, not just some project out there that doesn't directly
benefit your community.

> Don't take me wrong: I'm not saying your approach is not correct. I'm only
> saying that by "pushing" HTML and CSS you can achieve great commitment by
> your students... but as soon as they start mastering such "languages", they
> will quickly recognize that they need additional skills (Javascript and
> related web-development frameworks). To acquire such new skills, basically,
> they have to re-start from scratch (as they will need "learning programming").

I'm not seeing the average web developer as proficient in HTML and CSS
these days.  Most use tools instead of doing this themselves.  The
original developer of HTML (Tim Berners-Lee) had in mind using tools
not having people code in it directly.  Our school is switching to
using Wordpress to put up all web pages rather than doing any HTML
coding.  I think mainly places are switching to using content managers
these days.

On the other hand, I personally find knowing HTML and CSS very useful.
With CSS, if I don't like the way a web page I'm working with looks, I
can customize it.  (For example, these are my CSS customizations for
Google Mail:  https://userstyles.org/styles/60535/google-mail-old-look-for-lm
).  Instead of learning something like Latex for typesetting, I use
HTML and CSS to create ebooks and PDF files (with wkhtmltopdf).  I
also find my custom HTML/CSS pages are more streamlined than what a
tool can write and they do better in search engine results.

I personally, like the idea of starting off with JavaScript (just as
some earlier programmers started with BASIC).  It can be used in
conjunction with HTML and CSS.  It can be used server side with
servers like NodeJS or Apache/Nginx and a fastcgi JavaScript
implementation.  It can be used with projects like Cordova, Mosync or
React Native to create mobile apps.  JavaScript is very similar to C
like languages, but it can also be used to learn object oriented or
functional language development.

I believe once a student gets the basics of programming down, it's
easier to learn other languages as needed.  Unfortunately, what's
popular as a language now probably won't be when the students are
ready for the workforce.  It's better that they learn the concepts of
programming than a particular language that may be in at the moment.
I feel the same about programming trends.  A particular way of
programming or a specific application framework or current software
engineering practices may be in favor now, but will be out of favor in
a few years.  Better to understand the basics and what's good for a
particular situation rather than go with what's in style.  Using the
right tool for the job is more important than using what's trendy.  I
remember when a lot of developers switched to using Java when it first
came in only to find it wasn't good for everything after all.

>> I was actually thinking something along the
>> lines of Arduino/Raspberry Pi, making code for them to do various things.
>> I'll freely admit that I'm a newbie when it comes to both of those.
>
> As for Raspberry, things are very easy to understand: it's _EXACTLY_ a
> _COMMON_ computer, where you can run whatever you want. You can push on it
> a "normal" DEBIAN (or other linux distribution) and use it... normally.
>...
> The problem (as for your "mission") is that.... it might be much cheaper,
> for you, to buy a brand-new RPi instead of fixing an old/broken PC.

I keep hearing within my District that not everyone owns a computer,
but everyone owns a smartphone.  I know that's not true, but it does
make a point.  The desktop computer is being replaced by smartphones
in tablets.  You see them in doctors offices, where people sell things
(in order to take credit cards).  As a matter of fact, anywhere I go,
I see someone on a phone or tablet these days even in movie theaters.

A device like a raspberry pi or a simple android mobile device could
be cheaper than a desktop computer.  Remix OS was selling a small
device that could replace a desktop for about $35 at one point.
That's certainly affordable.  It was minus a monitor and other
peripherals, but building a desktop from scratch would require those
types of things as well.  If you already have the parts donated and
can create the desktops, price may be a toss up.  However, older
desktop machine parts may not have the compatibility, memory and
features of newer systems.  A mixture of handheld/mobile and rebuilt
desktop machines might be a good way to go for a project.  If someone
wants to learn how the hardware works (electrical engineering skills
instead of programming skills), it's useful to have them rebuild a PC
from parts.  However, even the hardware technology is changing
quickly.  So even though I built a computer from scratch with the
latest technology 5 years ago, if I were to do so today, I'd have to
go back to the drawing board and research what parts I'd need all over
again.

I definitely think looking into lightweight operating systems (like
Android which uses the Linux kernel) such as RemixOS
http://www.jide.com/remixos-for-pc and Android-x86
http://www.android-x86.org/ is a good option.  You can also create
lightweight versions of Debian, Ubuntu or other Linux systems if you
have a good idea of what works well on low resource computers.  For
instance, many Docker users are now working with Alpine Linux (which
uses the musl C library) because it takes less resources than other
base Linux operating systems.  Also, the BSD systems are typically
lighter than the Linux systems.  The drawback is that their hardware
support isn't as extensive as Linux, but you can run Linux on BSD
systems in emulation mode.  I also see examples on the Internet of
people taking their mobile gaming devices, wiping them and putting
Linux or some other free operating system on them.  If you can get
lightweight, well written applications and an efficient operating
system working on a device, you have several choices for inexpensive
devices you can run these things on.  Another advantage to efficient
systems is that they can use less power.  You may even be able to run
them on solar similar to the OLPC project ( http://one.laptop.org/ ).

As I mentioned, it's nice to see some conversation about projects like
these on the list.  Will be interested to read about what others are
working on and how their projects progress.  Would love to add my own
programming and web skills to some useful Open Source projects that
have similar goals.

Best wishes.
Laura
http://www.distasis.com/cpp
###
To unsubscribe from the schoolforge-discuss mailing list:
Send an e-mail message to majordomo@xxxxxxxxxxxxxxx with no subject
and a body of "unsubscribe schoolforge-discuss"