Mis-education

Most schools don’t teach computer sciences, at least computer science lessons which are worthwhile for the students. From the very beginning, many students are perplexed by how computers work.

They said they can use them. What do they really know? They know how to use proprietary made software by a commercial business, made to do one thing. To earn money. These are programs, which are made for people with no sense of logical problem solving or strategical thinking.

This means that the software is not made for power users, but made for the ease of use for the user. Is commonly isn’t a bad thing, but it doesn’t teach the user about computing. Instead, it teaches the user to become at one thing. Using proprietary made software by a commercial business. Computing is made to make complex tasks easy. Not make easy tasks easy.

The problem isn’t alone created by the attitude towards computers in schools. It’s the attitude of the people themselves. They say they can use a computer, and thus are unwilling to learn how it truly functions. In schools, students are limited by the computer setup too. The school actively denies access to core functions of windows to install even the most basic of programs.

To be able to install a program you need either of two things: Have a portable edition of the program, or carry a bootable drive with you. Some software developers release portable editions, such as git and notepad++. If you ask the average student, you will look blindly at you if you tell to get a portable Linux installation or download the portable edition.

There are much better and much more open systems available to give students full access to the computer while still having a secure school network. Software such as Deep Freeze would allow the students to have full admin access to the computers, break the windows installation and be restored after a reboot. This would allow students to experiment with windows and install their choice of programming languages and editors.

In my previous school, in the first year, we had “IT lessons”. These lessons were conducted by a teacher without a clue of how to turn on the computer. What s/he knew however, was how to use a typewriter. These lessons were essentially 40-minute long typewriting lessons advertised as IT. When one started to do something more meaningful, for example, to install a python interpreter, we would have been disciplined in a variety of ways. Of course, those of use that had something better to do would to hide it from the teacher and pretend we were “Learning how to typewrite”.

As it stands right now, after visiting 2 different high schools, they both were actively supressing students from exploring programming and computer sciences. This is a serious problem if students are to first learn about this in college. Personally, I find myself to know more about computers then new college students taking a degree in computer science.

This is a major problem if this generation of people are supposed to be working in the field of computer science and IT. If new students are actively denied access to computer science education, then who is supposed to develop the next big thing?

 

 

Updates

Updates are crucial parts of applications. They offer new feature, bug fixes and new beutiful errors. Auto updates are nice, but they can break your entire linux setup. One simple change can tear down your beloved arch linux installation. I’ve had problems with broken kernels and missing bootloaders, but something as simple as a software update is something that has never broken my setup.

Sxhkd is an important part of my archlinux desktop. Without it, I am unable to do anything. I use it in combination with bspwm. It allows me to create simple keyboard shortcuts to launch applications, change window sizes and control windows. Controlling these windows is very important, as if I cannot do this, I cannot resize them or close them.

The software update wasn’t in Sxhkd, it was in bspwm, my window manager. The change the broke my setup was a very simple command change. Previously, to close the active window, one would type bcspc window -c. The most recent update changed this command to bcspc node -c. It was a very simple change, they changed window to node.

As you might have guessed, all my key combinations were still using the old syntax. This made it impossible to close or manipulate windows. It took me more time to realize what was going on then I’d like to admit, but the fix for this problem is very easy. I simply had to replace “window” with “node” in my sxhkd config file. If you encounter this problem yourself, here is a very simple command to do this.

sed -i -e ‘s/window/node/g’ ~/.config/sxhkd/sxhkdrc

I realize that is my fault alone. If you’re running any linux distro, before update, you should always lookout for any changes that have occurred. Even if you’re about to update over 100 applications. It saves you from countless hours of debugging.

 

Wires

The modern society loves technological devices. Phones, desktops or servers. No matter what the device is, it requires to be plugged into a power source. Desktops and Laptops require external peripherals such as mice and keyboards to be used with any form of comfortability.

The wires will get cluttered very easily. Weather you have two or a thousand, they will always get tangled. No matter what you do, you will always be able to see them. Most people try to hide them, not trying at all to reduce the amount of wires they have. When you try to hide them, you will either be limited to certain positions for devices or you will drill holes into your futiture and try to create good looking facades.

I have set a new goal, to eradicate all use of wires in my room. I take my laptop to school every day so I want to easily remove my laptop from my main setup while still being a fully functioning setup when I do have my laptop plugged in. I have taken some small steps to achieve to goal.

The first thing is bluetooth. Don’t use those logitech mice and keyboards that require an external receiver to use properly. Most laptops nowadays have bluetooth built in. You should take advantage of it. It’s one less USB cable you have to plugin.

Another cable might be your USB audio card or your 2.5mm audio cable. The raspberry pi will easily take care of this. Currently I have my laptop setup to stream all audio from my laptop to my raspberry pi. This allows me to use one audio system for all my devices. My phone, tablet and my laptop. Using the raspberry pi 3, you can use bluetooth to connect your phones and tablets.

This can be setup by using an application called pulseaudio. Pulsaudio is an audio server which receives sound from applications and talks directly to the audio hardware. Unlike ALSA, another linux based audio server, pulseaudio supports multiple audio streams.

To setup network audio streaming with pulse audio is extremely easy. First open /etc/pulse/default.pa with your favourite text editor, eg vim.

Then uncomment the following ine on both the server and the client

load-module module-native-protocol-tcp

This will make force audio load the tcp module on start. Pulseaudio uses something known as cookie authentication to authenticate a client. This is to prevent strangers to connect to your audio system. This means you will have to copy the file stored at ~/.config/pulse/cookie to your server at the same directory.

After you have enable the tcp module and copied over the cookie file, you need to restart pulseaudio on both devices with the following commands:

pulsaudio -k
pulsaudio —start

This will first kill pulseaudio then start it again as the current user. Now you audio stream is setup. To connect to the audio server, enter the following command in the client:

pax11publish -e -S hostnameOfServer

Congratulations, now you can stream audio from your computer to a networked audio server!

 

New

Making things from scratch can be nice, but the fact is, you’re nearly always better off using something someone else has made. Other poeples creates commonly comes with more perks then making something yourself. For example,  if something breaks, you can blame someone else! You generally don’t have to worry about adding new features, others do it for you. It’s also just plain faster. If something else works, my make your own?

I liked my home made blog. But the problem was that is wasn’t semantic. At the core, my blog used ajax requests to load articles. This doesn’t work every well with the semantic web. Making it use ajax and be semantic would have been too much work for me. As this is only a blog I use in my free time I don’t want be adding new features every other day.

A perk my homemade blog was the editor. I used ckeditor which is a full WYSIWYG HTML editor perfect for things like blogs.  The editor worked very well and it was easily integrated into google doc style file sharing and live editing.

Why did I switch? WordPress just simply does more and it supports more than just walls of text.