Sunday, November 8, 2020

3 Best Typing Tutor Sites

 I've been looking at YouTube videos about learning how to improve your typing speed. There are 3 websites for online typing practice that are commonly mentioned. 

1. Keybr: this has been selected for its ability to discern patterns in word of which you are weak. Then it will give you practice on selected word fragments to practice. I've tried it and I think it works great. Highly recommend.

2. Typeracer: this site uses user contributed quotes from movies and books for you to practice. The racing portion makes it fun. However, the scoring portion has been ruined by cheaters, thus the numerous 200+ wpm records out there.

3. 10fastfingers: this is an extremely popular site, and I used it heavily until I can't anymore. For some reason, my phone is no longer compatible with it. It works by concentrating practice on lower case letters and most common words. My record here is 95wpm.

If you follow my blog and YouTube,  then you know that my current project is a Typing Tutor program. It doesn't have fancy graphics on it, partly because it runs on bash CLI, and partly because I'm doing it on RaspiZero, the cheap $5 computer. I tried loading Processing, but it occupies 450MB just to load the IDE, so I decided not to use it.

Is Bash bad? I used to think so. I can do the features of 1 and 2 above, but I didn't think that I can duplicate #3 sufficiently enough. I was wrong. 

The "read" command is good enough to read a certain number of characters, while timing out to the exact second. I think there's a bug because the order of the options is significant. 

Anyway, I will probably polish it further to let the UI be at least somewhat friendly. Right now it's too cluttered. Technically speaking, all the coding challenges has been surpassed.  It goes to show you that coding is easy. Design? That's hard.


Monday, November 2, 2020

Boeing 737 Max Crash Analysis

 DW Documentary did an excellent job in detailing the factors involved in YouTube video:

 https://youtu.be/PdYcJldzOdw

However, I disagree with the claim that there is an all encompassing systemic failure on all parties. I think it's strictly Boeing Management.

Think about it: When Boeing ran by engineers, the planes become safer. Nowadays,  Boeing is run by business managers who values money above all. Greedy, you may say.

When engineers pointed out that 2 layers of safety needs another layer, the managers not only eliminated the extra safety margin, but also shut anyone who tried to warn people about it.  There's a segment in there where they blame the pilot for not doing the right thing. Of course,  Boeing has been adamant that pilots do not need additional training! What do I see? I see single point of failure where if something goes wrong and the fix is ineffective, catastrophic failure will occur. That's not safe engineering!

If you compare this with Sully landing on Houston river, as portrayed by the movie starting Tom Hanks, then you can see numerous options available for the pilots to do before it gets exhausted and even then the plane can touch down relatively unscathed.  That's safe engineering!

I don't blame the FAA. Sure they trusted Boeing too much, but as soon as they suspected that Boeing omitted certain info, in other words lying by omissions, then the FAA grounded the whole fleet. I don't think Boeing's claim of 100% legal is solid because Boeing certainly hid some crucial safety data.

In conclusion, Boeing sense of greed caused it to push solutions that are the cheapest and barely passing minimum, thus sacrificing the necessary safety margin and crucial training that could have prevented the planes from crashing. It's not the mechanical problem that is a problem. It's the lack of proper safety procedure to deal with it. Boeing says it's safe enough. After seeing the video, it's obvious to me that it isn't. 

Sunday, November 1, 2020

Conditional Branching #1

 I thought about the minimum elements necessary for it to be a computer programming. Long time ago, I settled to 7 elements or different parts of computer programming. However, when I was trying to build my own TinyBasic version, I revisited the question. The answer I came up with is Conditional Branching. 

So my question is: What does Conditional Branching means to you? Long time ago, my answer was IF-GOTO. However, my answer now is surprisingly rather involved. So, that will have to be for next time.

How about you? Do you have a better answer than IF-GOTO?