64Zbit.com
Tech is way, WAY interesting

I wish my web server were in the corner of my room (Interconnected)

Back in college I used to run part of my website from a Linux box in my room. I made it into a speech synthesiser, and people could connect to the machine to talk into my flat.

(Retrospective apologies to my flatmates.)

This is way back in 2000 so before smartphones, and before texting, and before always-on internet (college was an exception), and before camera phones or being able to reliably email photos let alone video. Decent text-to-speech still felt novel. We had a friend who was travelling in Australia at the time and he would visit internet cafes and type in messages to talk to us. Of course there was no way of talking back. It felt impossibly magical.

But what I remember feeling most magical was the idea that there was somebody visiting that server on my desk. There was somebody coming from a long way away and going inside. An electronic homunculus.

Link to the original article


Pong Was Boring—And People Loved It - IEEE Spectrum

NOVEMBER MARKS THE 50th anniversary of Pong. Why should we care?

For starters, Pong is the first video game that millions of people welcomed into their homes to play on their own televisions. Pong kick-started a global video-game industry that is now worth upwards of US $300 billion. And Pong still has a place in active research, for training AI algorithms, strengthening neural networks, and developing the brain-machine interface called Neuralink, among other things.

And yet as a Gen-Xer born too late to have enjoyed Pong as a child, I have trouble fathoming how anyone could sit in front of a TV watching a square dot—not even a round ball—bounce back and forth across the dark, featureless screen. Was this really fun? To celebrate the half-century persistence of Pong, I set out to discover why so many people love the most boring video game of all time.

Link to the original article


A Plant That Swings A Machete

This installation enables a live plant to control a machete. plant machete has a control system that reads and utilizes the electrical noises found in a live philodendron. The system uses an open source micro-controller connected to the plant to read varying resistance signals across the plant’s leaves. Using custom software, these signals are mapped in real-time to the movements of the joints of the industrial robot holding a machete. In this way, the movements of the machete are determined based on input from the plant. Essentially the plant is the brain of the robot controlling the machete determining how it swings, jabs, slices and interacts in space.

Link to the original article


The outrageous electric Audi S1 Hoonitron stars in new Ken Block video | Ars Technica

Now, you don't just go hooning any old EV around the strip, at least not if you're Ken Block. In this case, his ride is a stunning one-off electric Audi, the S1 Hoonitron, inspired by the 1987 Audi Sport quattro S1 Pikes Peak car.

"Developing a fully electric prototype for the unique requirements of our partner Ken Block was a big and exciting challenge to which the whole team rose with flying colors. It is great to see how ‘Vorsprung durch Technik’ is presented in an all-new environment," said Oliver Hoffman, Audi's board member for technical development.

Link to the original article


Running Lego Engines with Air - YouTube

Building and testing different types of Lego Pneumatic Engines that run on compressed air.

Chapters:

00:00 Concept 02:13 Starter Motor 02:35 Modifying Parts 03:20 Sliders 04:00 i2 05:06 Crank Radius 06:00 i3 07:15 i4 08:00 V6 09:27 V8 10:24 R12 11:26 Experiments 11:55 Montage

Link to the original article


Students broke the world record for 0-60 mph acceleration in an electric vehicle

A university group named the GreenTeam, from the University of Stuttgart set the Guinness World Record for the fastest 0-62 mph (0-100 kph) electric vehicle acceleration in a 1.461-sec 0-62 mph run.

For almost a year, the 20 members of the GreenTeam have been preparing for the world record.

The GreenTeam E0711 is a genuinely powerful device. The carbon fiber racer has in-house-built motors that drive all four wheels and combine to produce 180 kW (242 horsepower) when powered by the new high-voltage battery pack.

Link to the original article


Manage your Raspberry Pi fleet with Ansible | Opensource.com

Whether they are used for powering information displays, automating testing, controlling machinery, monitoring an environment, or doing other tasks, enterprises see Raspberry Pis as serious devices for doing serious tasks. Each model has a long product lifecycle—even the older models (1B+, 2B, 3A+, 3B, and 3B+) will remain in production until at least January 2026. There is little risk that they will go obsolete, so you can maintain a sufficiently large stock and treat them as modular components that you replace rather than fix.

Stable hardware vs. changing software

While you can rely on the hardware to remain constant, the same is not true for the software. The Raspberry Pi's official supported operating system is Raspberry Pi OS (previously called Raspbian), and it should be updated regularly to get the latest security and bug fixes.

This presents a problem. Because Raspberry Pis provide a bridge between the physical and virtual worlds, they are often installed in difficult-to-reach locations. They also tend to be installed by hardware folks, typically electricians for plants and assembly technicians for products. You do not want to waste their time by requiring them to connect a keyboard and monitor, log in to run raspi-config, install software with apt-get, and then configure the software.

Link to the original article


GitHub Next | Visualizing a Codebase

How can we “fingerprint” a codebase to see its structure at a glance? Let’s explore ways to automatically visualize a GitHub repo, and how that could be useful.

Link to the original article


Why do the spikes that shoot out of stars form perfect crosses? | Science Questions with Surprising Answers

The crossed spikes that you see in some images of stars are not actually parts of the stars. They are imaging artifacts that are created by the telescope itself and are called diffraction spikes. Certain telescopes have a large primary mirror that focuses the incoming beam of light onto a secondary mirror or a sensor that is held over the primary mirror. The secondary mirror diverts the light out of the telescope so it can be seen or further processed. Or, alternately, a sensor held above the primary mirror converts the image to an electrical signal that is delivered to a computer.

Link to the original article


Git - Book

The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com.

The version found here has been updated with corrections and additions from hundreds of contributors. If you see an error or have a suggestion, patches and issues are welcome in its GitHub repository.

Link to the original article


When life gives you lemons, write better error messages | by Jenni Nadler | Sep, 2022 | Wix UX

When life gives you lemons, write better error messages When it comes to error handling, it truly is a team sport Error messages are part of our daily lives online. Every time a server is down or we don’t have internet, or we forget to add some info in a form, we get an error message. “Something went wrong” is the classic. But what went wrong? What happened? And, most importantly, how can I fix it?

Link to the original article


List of SOC Occupations

May 2021 Occupation Profiles Major groups 00-0000  All Occupations 11-0000  Management Occupations 13-0000  Business and Financial Operations Occupations 15-0000  Computer and Mathematical Occupations 17-0000  Architecture and Engineering Occupations 19-0000  Life, Physical, and Social Science Occupations 21-0000  Community and Social Service Occupations 23-0000  Legal Occupations 25-0000  Educational Instruction and Library Occupations 27-0000  Arts, Design, Entertainment, Sports, and Media Occupations 29-0000  Healthcare Practitioners and Technical Occupations 31-0000  Healthcare Support Occupations 33-0000  Protective Service Occupations 35-0000  Food Preparation and Serving Related Occupations 37-0000  Building and Grounds Cleaning and Maintenance Occupations 39-0000  Personal Care and Service Occupations 41-0000  Sales and Related Occupations 43-0000  Office and Administrative Support Occupations 45-0000  Farming, Fishing, and Forestry Occupations 47-0000  Construction and Extraction Occupations 49-0000  Installation, Maintenance, and Repair Occupations 51-0000  Production Occupations 53-0000  Transportation and Material Moving Occupations

Link to the original article


s l o w  r o a d s

Slow Roads - Endless Driving

Link to the original article


Transferable skills - Chris Coyier

At a macro level, you learn programming concepts that are largely transferable regardless of language. The syntax may differ, but the core ideas are still the same. This can include things like: data-structures (arrays, objects, modules, hashes), algorithms (searching, sorting), architecture (design patterns, state management) and even performance optimizations (e.g. eager vs lazy evaluation, memoization, caching, lazy-loading etc). These are concepts you’ll use so frequently that knowing them backwards can have a lot of value.

At a micro level, you learn the implementation of those concepts. This can include things like: the language you use (JavaScript, Python, Ruby, etc), the frameworks you use (e.g. React, Angular, Vue etc), the backend you use (e.g. Django, Rails, etc), and the tech stack you use (e.g. Google App Engine, Google Cloud Platform, etc). There involve details that can be valuable to gain expertise in to be effective, but are not always transferable.

Software Engineering – The Soft Parts

Link to the original article


JSON Feed

JSON Feed

I ran across this today and liked the idea so I added it to this Pelican site thanks to Andrew Heiss and his JSONFeed Pelican plug-in. GitHub - andrewheiss/pelican_json_feed: Pelican plugin to add a JSON Feed file to your site

json logo

Manton Reece and Brent Simmons — have noticed that JSON has become the developers’ choice for APIs, and that developers will often go out of their way to avoid XML. JSON is simpler to read and write, and it’s less prone to bugs.

So we developed JSON Feed, a format similar to RSS and Atom but in JSON. It reflects the lessons learned from our years of work reading and publishing feeds.

JSON Feed


Python - Multithreaded Programming

The Threading Module The newer threading module included with Python 2.4 provides much more powerful, high-level support for threads than the thread module discussed in the previous section.

The threading module exposes all the methods of the thread module and provides some additional methods −

threading.activeCount() − Returns the number of thread objects that are active. threading.currentThread() − Returns the number of thread objects in the caller's thread control. threading.enumerate() − Returns a list of all thread objects that are currently active. In addition to the methods, the threading module has the Thread class that implements threading. The methods provided by the Thread class are as follows −

run() − The run() method is the entry point for a thread. start() − The start() method starts a thread by calling the run method. join([time]) − The join() waits for threads to terminate. isAlive() − The isAlive() method checks whether a thread is still executing. getName() − The getName() method returns the name of a thread. setName() − The setName() method sets the name of a thread. Creating Thread Using Threading Module To implement a new thread using the threading module, you have to do the following −

Define a new subclass of the Thread class. Override the init(self [,args]) method to add additional arguments. Then, override the run(self [,args]) method to implement what the thread should do when started. Once you have created the new Thread subclass, you can create an instance of it and then start a new thread by invoking the start(), which in turn calls run() method.

Link to the original article


How to import local modules with Python - Quentin Fortier

1st solution: add root to sys.path

We can add the path to the root of the project:

from pathlib import Path import sys path_root = Path(file).parents[2] sys.path.append(str(path_root)) print(sys.path)

import src.c.d view raw

Link to the original article


OpenWonderLabs/SwitchBotAPI: SwitchBot Open API Documents

Open Token and Secret Key

Note: You must update the app to the latest version, V6.14 or later, in order to get the secret key.

In SwitchBot API v1.1, the authentication method has been improved. In order to gain access to private data through the API, you must generate a unique signature using a token and a secret key. When you make a request, the Authorization token and signature will be validated simultaneously.

You as a developer will then be able to add, delete, edit, and look up your data including profile data and data associated with the devices that have been added to your SwitchBot account.

To continue to use SwitchBot API v1.0, refer to the legacy document.

How to Sign?

We have attached a python script for you to quickly generate a sign. If you prefer to write your own script or routine, here is the procedure.

Print the 13 digit timestamp and concatenate it with your token Create a signature using your secret and the string produced in the previous step Convert the signature to upper case

Link to the original article


switchbot-client · PyPI

An unofficial Python client implementation of the SwitchBot API.

Link to the original article


Python 3 - Command Line Arguments

Python provides a getopt module that helps you parse command-line options and arguments.

$ python test.py arg1 arg2 arg3 The Python sys module provides access to any command-line arguments via the sys.argv. This serves two purposes −

sys.argv is the list of command-line arguments. len(sys.argv) is the number of command-line arguments. Here sys.argv[0] is the program ie. the script name.

Link to the original article


Markdown Preview Github Styling - Visual Studio Marketplace

Features

Preview what your markdown will look like rendered on GitHub. Extends VS Code's built-in markdown preview. Includes both light or dark Github themes. Customize styling using your own markdown.styles css

Link to the original article


Peek — The Ultimate macOS Quick Look Extension

Peek — The Ultimate Quick Look Extension Accelerate your workflow with the Quick Look conveniences that only Peek can deliver (for macOS 10.15+): copying, searching, jumping, scroll restoring, syntax highlighting, & more.

Link to the original article


geerlingguy/ansible-for-devops: Ansible for DevOps examples.

This repository contains Ansible examples developed to support different sections of Ansible for DevOps, a book on Ansible by Jeff Geerling.

Most of the examples are full-fledged VM examples, which use Vagrant, VirtualBox, and Ansible to boot and configure VMs on your local workstation. Not all playbooks follow all of Ansible's best practices, as they illustrate particular Ansible features in an instructive manner.

For more interesting examples of what you can do with Ansible, please see the Ansible Vagrant Examples repository, and browse through some of geerlingguy's roles on Ansible Galaxy.

Link to the original article


Makefile Tutorial By Example

Why do Makefiles exist? Makefiles are used to help decide which parts of a large program need to be recompiled. In the vast majority of cases, C or C++ files are compiled. Other languages typically have their own tools that serve a similar purpose as Make. Make can also be used beyond compilation too, when you need a series of instructions to run depending on what files have changed. This tutorial will focus on the C/C++ compilation use case. Here's an example dependency graph that you might build with Make. If any file's dependencies changes, then the file will get recompiled:

Link to the original article


How to install Ansible on Ubuntu Server 22.04 | TechRepublic

How to install Ansible

Because Ansible is found in the standard repositories, the installation is as simple as logging in to your controller node and issuing the command:

sudo apt-get install ansible -y

The installation will pick up a large number of dependencies and will take anywhere from 2-10 minutes to complete.

We’ll also need to install a second piece of software, called SSHpass, which is a non-interactive password provider — otherwise you’d have trouble with SSH authentication. Install SSHPass with:

sudo apt-get install sshpass -y

Link to the original article