snorman.tech tech, science, and more

CSS

By Samuel Norman on 5/8/2021


Many people know about HTML. If you've ever been on the internet then you've definitely interacted with HTML in one form or another. "HTML" is an acronym that stands for "Hypertext Markup Language". Essentially, HTML is a special flavor of XML (Extensible Markup Language) that is used for creating websites. The main premise of XML is tags (< >), which are used to express a chunk of data with its own identifiable name. Here's an example of some XML:

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

As you can see, these blocks of contents begin with a regular tag, and are closed with the same tag but with a "/" following the "<". Tags can also be closed inside of other tags, like how "to" is enclosed inside of "note". Anyway, plain HTML isn't too appealing as it looks like this: No CSS That's where CSS comes in. With CSS, we can fine-tun the looks of the elements of an HTML page by changing colors, backgrounds, borders, fonts, and more. Here's a quick example of how CSS can be used to style a div element:

See the Pen CSS Example by sam (@teknowafel) on CodePen.

(You can click on "HTML" or "CSS" to view the HTML or CSS for this example.)

Anyway, hopefully this has been a useful quick explaination of CSS and HTML, how they work together, and a little bit of history.

Sphero

By Samuel Norman on 3/5/2021


What is a Sphero?

This week, we're learning about the Sphero, a spherically shaped robot that rolls on the ground and can be controlled from a mobile device. Various Sphero models exist, from the original to the 2.0 and the Bolt, which we have. Simply pair the Sphero to your smartphone or tablet, and you can connect to it via the app. The Sphero has various methods of movement, but the simplest is the joystick mode. Simply aim the robot using the app and the sphero will indicate its direction via an LED or the dot matrix screen (on the Bolt). You can then move the Sphero as you please in any direction using the virtual joystick.

The Sphero The Sphero Bolt can display its battery status via the dot matrix display

What else does it do?

In addition to the standard joystick mode, you can also control the Sphero with a few other modes such as the golf mode, where your device acts as a golf club. My personal favorite is the scream drive mode, where you literally yell to make the Sphero move faster.

The Sphero app in joystick mode The Sphero app in its default "joystick" mode

Besdies that, there is a rudimentary programming language using a sequence of blocks where you can write out your instructions in advance for the sphero to follow. While the standard sphero play app doesn't have much in terms of programming, the EDU app has a porper block coding language which is much more capable and useful. The Sphero is definitely a fun little robot. I can see how it would be useful in classrooms as a more modern sort of turtle robot to teach the fundementals of coding with a fun physically manipulative visual.

GameSalad

By Samuel Norman on 3/25/2021


GameSalad is a platform to teach students about programming in a fun and educational manner. The online web editor includes a convenient pane on the right to read interactive tutorials which show you how to make games based on templates.

GameSalad tutorial

The tutorials are broken down into easily manageble steps, so that you can easily view your progress. There are 3 basic building blocks of a GameSalad game; scenes, actors, and behaviors. Scenes are backgrounds which can contain different actors and images in order to... well... set the scene. Actors are basically sprites which can have a texture based on an image, and can execute behaviors or scripts. There are also tables, which is a sort of database which can be used to store various information which can be used in scripts.

The community page

GameSalad also has a community page where you can view and play cool games that people have created with GameSalad for inspiration. From what I have observed, it seems that GameSalad is somewhat of a more advanced version of Scratch with the main idea being educational programming using intuitive blocks. I can definitely see GameSalad's use in the classroom, but Scratch is free and provides most of the same functionality.

Processing

By Samuel Norman on 12/19/2020


Processing?

Processing is known as somewhat of a programming "language" to be used by students and teachers in technology education. However, it is actually a library that has been built atop several languages including Java, JS, and Python. Presumably, this is to maintain function names, classes, etc across platforms so that students can more effectively carry over their knowledge of the library to these languages. OpenProcessing is an implementation of processing with a fancy editor and a goal to attract students who are more artistically inclined rather than mathematically. In any flavor, it seems that Processing is a compelling and interesting way for students to learn to code. Thanks to the power and simplicity of Processing, I was able to make a very basic example which you can view here

https://processing.org/

Amazon Web Services (2020 Update)

By Samuel Norman on 11/12/2020


What is AWS?

AWS is Amazon's cloud platform running on their own servers. You may be surprised to know, as was I, that AWS was actually started roughly 15 years ago, when black friday shoppers overloaded their servers with traffic. They realized that they needed a more robust solution, so they decided to start running everything on their own servers. Many large corporations now have AWS servers sitting behind their popular websites, but providing web hosting is not the only purpose of AWS today.

What are uses for AWS?

AWS is a relativly cost-competitive solution for various backend needs, such as machine learning, web hosting, databases, and a multitude of other things which I don't quite understand right now (that was a joke, sort of). One use for AWS which we looked at today was the machine learning aspect, specifically the creation of chatbots. Using AI, we can create text-based chat bots which also accept voice input. Unlike the telephone trees of yesteryear, these chatbots are actually somewhat useful, and use AI to parse the English language into various parts so that it can understand what you're trying to say in a scientific manner. As of now, you won't be able to have a full conversation over dinner, but you may have already used a chatbot backed by AWS if you ordered a plane or train ticket online. (you most likely haven't in the last 7 months). Not only are AI's useful for taking your money; they can also be used to help you when something you spent money on doesn't work. Thanks to the fact that the AI can somewhat understand your motive based on "human-like" conversation, it should be able to help you resolve your issue much more quickly than other solutions. Robots haven't taken our jobs yet, but they can prevent waiting on the phone for an hour before being transferred only to wait on hold for another.

The AWS Website

Migrating to Statyc

By Samuel Norman on 10/13/2020


The time has come.

I have finally migrated my blog from Wordpress to statyc-py. Unlike Wordpress, statyc-py generates the site's HTML in advance using Python. I created statyc-py myself as an alternative to bloated solutions which used PHP and similar methods of dynamic generation. Other static site generators already do this, but I wanted a less complicated solution, and so I took the much more difficult approach of making my own. Irony. An archived version of the old site will live here soon, and you will be able to browse all of my articles from last year.

But, how?

statyc-py is written in the Python programming language, hence the "-py". It takes blog posts written in the simple Markdown language, which is basically plain text surrounded in different characters such as ** to denote different formatting such as bolding or italics. Blog posts along with the python code used to compile them into readable HTML are stored in a GitHub repository where they can be accessed anywhere. GitHub Pages is a great way to host HTML with sites such as this one, with the small caveat that you have to run the script to generate the HTML on your own computer before pushing to the repository. Netlify is the solution to this problem. Since I already had a requirements.txt file with statyc's dependencies, I only had to create a plain text file specifying which version of Python for Netlify to use. Netlify lets you specify a command to run in your own private linux environment when the repository is updated, and so i was able to have it run render.py, the script which does the heavy lifting by generating the HTML. Voila! It worked with minimal "tinkery", and you are currently reading from it. I am aware; it is magical.

A Netlify subscription starts at the tantalizing price of $0.00

About

By Samuel Norman on 10/13/2020


This is a blog about technology, science, and many other things. However, it is mostly about technology. I plan to post weekly about different current events, as well as new technologies and cool projects. I built this blog on statyc-py, my own static site generator written in Python, and am hosting this site on Netlify for free. You can visit statyc-py at https://github.com/teknowafel/statyc-py