Show more

I finally got around to posting updated notes on setting up my IPv6 only server, now with docker-compose to run services (WordPress blog, Matrix Synapse). If you are interested in IPv6 (now 35% of the Internet), have a read at sgryphon.gamertheory.net/2022/

Support Independent Role-Playing Games on Itch.io Creator Day

There are lots of people doing lots of amazing work to support independent role-playing games. If you aren’t sure what to do to support a role-playing game creator, here’s an option. Buy a game. Play that game. Talk earnestly and passionately about what playing that game was like in public.

githyankidiaspora.com/2022/02/

#TTRPG #IndieRPG

Who loves software freedom? We love software freedom! Boost/Toot/Retweet this post to share the word! #fsf #softwarefreedom

What format should be used for dates in URLs for blogposts/dated content.

Directory style or ISO8601?

Boosts are helpful 💜

jeudaism, Islam, and Christianity are just three denominations of the same religion. Yes you heard me.

I recently got a Dragino LPS8 LoRaWAN gateway and set it up on my network. The LPS stands for LoRaWAN Pico Station.

The open source gateway runs a variant of OpenWRT and the latest version supports a range of LoRaWAN features including Basic Station. You can use it for a private network or set it up with a community as I did for The Things Network (TTN).

Unboxing the Dragino LPS8 LoRaWAN gateway

Read on for details of how easy it was to set it up securely.

Initial connection

You first need to decide where you want it located and the network connection it will use.

I have a separate VLAN for my IoT Devices, with access to the Internet, so configured one port of my switch for that VLAN as untagged traffic — this means the end device doesn’t need to know about the VLAN, but all traffic it sends (and receives) will be allocated to that VLAN by the switch.

A bit of fiddling around (I have a fairly small network cabinet) and the network is plugged in.

Unfortunately the LPS8 does not have PoE, so I also need to connect the power (USB-C). I might get a PoE splitter to make this a bit easier.

The LPS8 does also support WiFi for the uplink side, although I just used Ethernet.

Once turned on, I checked my router’s DHCP leases and found dragino-2188e4 listed.

I can then connect to http://:8000/ and log into the device.

For more details, the manual is available for download: https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/

Dragino LPS8 LoRaWAN gateway installed in my network cabinetChange the defaults

First updated the firmware (although the device already has a recent build), as the manual recommends not keeping settings (in case there are any conflicts). https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/

Note that resetting to the factory default changed the radio to EU868 (previously it had been US915) and also to connect by default to The Things Network at eu1.cloud.thethings.network, so make sure to do it before any other setup.

I also grabbed the MAC address, for both the ethernet and WiFi client, and set that up with static DHCP address assignments, so that the device will have a fixed IP address.

Once updated the first thing to do was change the web admin password and the root password. You should also either turn off the WiFi Access Point or at least change the default passphrase.

Set up the gateway registration

There are various options for connecting your LoRA gateway to a network, or use it as a private gateway.

I wanted to connect it to the public The Things Network (TTNv3), so need to register the gateway in my account.

There are instructions for this in the user manual (linked above), as well as on The Things Network website, https://www.thethingsindustries.com/docs/gateways/dragino-lps8/

First of all you need to create an account on The Things Network (https://thethingsnetwork.org/), then log in and select the console cluster for your region; in my case Australia (Sydney, although I am in Brisbane).

Select the Gateways section, then Add gateway.

You need to give it an ID and name (you can just use the device name). The Gateway EUI is based on the WiFi MAC address of the LPS8; it is also displayed in the LoRaWAN settings on the device.

You also need to record the Gateway Server address, for configuring the device. In my case the Australian server is au1.cloud.thethings.network.

The other thing to select is the Frequency plan. For Australia that is Australia 915-928 MHz, FSB 2 (which is marked ‘used by TTN’ in the setup).

Click Create, and the device appears in your gateways list (initially as disconnected).

Device LoRa setup

On the LPS, in the LoRa > LoRa configuration, you also need to set the Frequency Plan and Sub Band to match the gateway registration, in my case AU915, FSB2. (Although after Basic Station setup this section had a message that it was related to UDP setup, so maybe this is not needed)

I also configured the location (latitude and longitude). Then click Save & Apply.

Dragino LPS8 running with LoRaWAN Basic Station connected to The Things NetworkConnect the gateway

In the LoRaWAN configuration there are options for LoRaWAN — Basic Station and the legacy LoRaWAN – Semtech UDP, as well as a few others.

The Basic Station has better security, but involves some additional steps to set up certificates and keys.

The instructions for Basic Station are on The Things Network (see the child pages for CUPS and LNS), except you need to upload the certificates first and then enter the key directly rather than via a file: https://www.thethingsindustries.com/docs/gateways/lora-basics-station/

TTN preparation

You will need to download the Root Certificate References .pem file from TTN. Download the Minimal Certificate List for Common Installations from https://www.thethingsindustries.com/docs/reference/root-certificates/

Then create a LoRaWAN Network Server (LNS) API Key, and add the key to your gateway settings as the Basic Station LNS key. This key will be transmitted (securely) to the gateway via CUPS.

In the Gateway API keys, click Add API key.
Fill in the details with name “LNS” with the permission to Link as Gateay to a Gateway Server for traffic exchange.
Click Create API key.
Make sure you copy the key, as it will be hidden after closing the create window.
Click I have copied the key.
In the Gateway General settings, paste the key into the LoRa Basics Station LNS Authentication Key.
Also enable Require authenticated connection, to block UDP forwarding.
Then click Save Changes.

Then create a Configuration and Update Server (CUPS) API Key, to apply to your device along with the TTN server certificate (PEM file).

In the Gateway API keys, click Add API key.
Fill in the details with name “LNS” with the permission to View gateway information, Retrieve secrets associated with a gateway, and Edit basic gateway settings..
Click Create API key.
Make sure you copy the key, as it will be hidden after closing the create window.
Click I have copied the key.

You will need to copy the key to the LPS8.

Device setup

On the LPS8, setup LoRaWAN > Basic Station.

In the CUPS Certificate Authority section, select the CA .pem file that you downloaded, and then click Upload CUPS Cert.

It will display some other settings while the browser is loading, but be patient and it will come back showing the CUPS Certificate Authority as cups.trust.

Select service provider The Things Network.

As I am using the Community Edition (not my own tenant) for Australia, my CUPS server address is https://au1.cloud.thethings.network:443

Paste in the CUPS Authorization Key. You don’t need the LNS key, as it will be provided via CUPS.

Click Save & Apply. The Current Mode will change to Basic Station — TTN.

Checking the TTN console, you should now see the device details appear as it connects.

Dragino LPS8 configured in The Things Network as a gatewayHow Basic Station works

The CUPS server provides a bootstrap service.

The device will encrypt and send the CUPS Key using the public certificate of the TTN CUPS server that we loaded in the .pem file (so only TTN can view it).

TTN will then authorize the CUPS Key and provide the LNS details and LNS key for the device to use.

This allows the device to then connect securely to the LNS server.

Next steps

With an accessible gateway, nearby devices can then be added to the community network (you don’t necessarily have to use the same account).

A good test would be to see what range you can get devices to connect from, and if necessary experiment with different mounting options to get better range.

You can also set the LPS8 up as a private gateway and connect either to your own network or direct to one of the cloud IoT offerings.

https://sgryphon.gamertheory.net/2022/01/22/unboxing-the-dragino-lps8-lorawan-gateway/

Welcome to all the Twitter refugees! 👋

Mastodon and the Fediverse does NOT use NFTs or blockchain or cryptocurrencies. No one is on here trying to get rich, no one is promoting anything.

The Fediverse (which Mastodon is part of) is a federated computer network spread across thousands of independently owned and operated servers. The millions of people on the Fedi can interact with each other regardless of which server they signed up on, because the servers talk to each other through federation.

Federation is a proven and stable way to make a network, it's how telephones and email work for example. It's how social networks should be.

We aren't trying to break anything or compete with anyone. There are no shareholders or venture capitalists. Instead, we work together, donating time or money, and collaborate to make a better social network for its own sake.

Here are some hints and tips for new users:

mstdn.social/@feditips/1075370

#Fediverse #Mastodon #FediTips #MastoTips #Introduction

Just received a parcel via post office. Lucky it had an official receipt, from the Thieves' Guild.

I often hear people talk about “waterfall” process software development. But a waterfall process doesn’t really exist.

Well, there are software projects that meet the description of waterfall — the post-publication name give to the project structured described in Walter Royce’s 1970 paper as the wrong way to develop software.

But there aren’t any published methodologies, processes, books, tutorials, courses, tools, or certifications for waterfall. Because it isn’t really a thing you should do.

There are many specific methodologies or processes for software development that are iterative, agile, or product based (Scrum, Unified Process, eXtreme Programming (XP), Crystal, PRINCE2, etc).

But there are no such processes for waterfall. Take a look and search for yourself. If you do find one, let me know, because they don’t appear to exist.

See, it looks like a waterfall. Gantt chart created in Project Libre.Project management

I am PRINCE2 Certified. Some non-software projects might be somewhat sequential, e.g. building a single house you need to build the walls first before the roof, right?

Well, that’s not quite correct; you may need the frame, but not the actual walls. A usual project sequence might be something like: lay the foundation, then frame, then maybe the roof. Modern construction often then wraps the house, so that the internals fittings and exterior walls can be installed at the same time.

Each type of task activity (foundation, frame, roof, walls, etc) is only done once, due to the dependencies between them.

Building a single house with (mostly) sequential types of tasks

But even that is not always correct. On a recent house extension due to delays they couldn’t get a certain part of the frame, a steel support for the portico corner. So they put in a temporary stand and continued building and finishing the roof, plumbing, electrical, and fit out. The frame was actually one of the last items completed!

Isn’t that waterfall?

No, it isn’t called waterfall. It is just called project management. Breaking down the project into a series of steps relevant to the particular project, whether it is constructing a building, organising a conference, or research a new medical drug.

These steps might be mostly sequential tasks of different types, like building a single villa, or be iterative, like building an olympic village with multiple buildings where you might repeat the same tasks multiple times. General project management frameworks (PRINCE2 or PMBOK) support both types, whichever is appropriate for the relevant project.

Sure, in some cases the steps might look vaguely like a waterfall, but then so does an iterative software project look exactly like a waterfall, where it goes from iteration 1 to 2 to 3, etc. Take a closer look at the first diagram, above — while it looks like a waterfall, it is actually a series of iterations.

Someone building a house, planning a conference, or developing a drug doesn’t call what they are doing a waterfall process; they just call it project management.And it is the right type of project management, for the particular project (sometimes sequential, sometimes iterative).

There are also many myths and misconceptions, where I have had people claim particular methodologies are waterfall, but on further investigation they are not. For example Axelos, the owners of PRINCE2, specifically say PRINCE2 is not waterfall. Similar explanations have been made about the iterative nature of the Unified Process. I am still searching for an actual waterfall type process.

Iterative projects

Non-software projects can also be iterative and incremental. e.g. if you were building an estate of multiple houses you might work in iterations, building one block of townhouses at a time. Or building a skyscraper you might build (at least parts of) one floor at a time, iterating up the building.

Building a housing estate with an iterative approach, one block at a time

Building the estate with an iterative approach, one block at a time, allows you to start selling the first block early, earning value sooner, and providing the funding to complete the subsequent blocks.

It would be quite silly in these circumstance to require all of one type of activity (e.g. pouring foundations) to be completed for the entire estate before any of the next type of activity (frames) could be commenced.

It is likewise bad planning on a software project to require all implementation be completed before any testing is commenced. Some projects (whether software or not) simply make more sense to do in an iterative manner.

Even building a single house will have iterative parts, e.g. where the architect provides a drawing and maybe a 3D model, then you make changes, and they produce a new model, and so on, iterating until you are happy with the design. And sometimes people even make changes to the design after the build has started!

So then what is waterfall?

The term waterfall is only used in software development. It is used to name the incorrect arrangement of project steps as described by Royce as “risky and invites failure”.

To use it for anything other than the incorrect way to manage software does not make sense. You can certainly say a particular project plan has been structured with a waterfall approach (i.e. badly), but there is no such thing as a waterfall methodology or waterfall process.

Planning a single design step, then a single implementation step, then a single testing step at the end of a software project for anything but the simplest is “risky and invites failure”. It is planning for a train wreck.

It would be like planning for the architect to present the plans for a house and have them accepted the first time, without any consideration for iterative revisions and changes. It would be bad project management.

You need to plan for multiple design-build-test cycles, preferably organised by product component (feature).

How to manage a software project

I am also a Certified Scrum Master (CSM), and Microsoft Certified Solutions Developer (MCSD) in their Application Lifecycle Management (ALM) products. The best practice way of applying project management to software development is to use an iterative and incremental processing, implementing a bit at a time, testing and deploying in each cycle (or PRINCE2 work package), to gain incremental benefit and allow functionality to be refined.

This has been the case since the 1960’s early NASA space shuttle development, as documented by Craig Larman and Victor Basili in their 2003 article Iterative and Incremental Development: A Brief History, and continues so today.

Instead of having the planning steps as the different types of activities that are done (Requirements, Design, Implementation, Test, Deployment), planning and work packages should be based around the features and use cases required, from high level themes down to specific components. This, like all projects, will depend on the specific project being undertaken.

Plan a software project by feature (sub-component of the full product)

Using such a product based approach, where you decompose the product into sub-components to be delivered, using a product breakdown structure (PBS) is the recommended approach for modern project management methodologies such as PRINCE2.

Even if not iteration based, such a product based approach will still result in similar benefits, with task activities (Design, Build, Test, etc) repeated for each component of the product. Kanban is one such agile approach that is product breakdown focus, not iteration focussed.

If you are using a formal iterative based approach (such as Scrum or Unified Process) then a generic project plan can consist of the iterations and (if using Unified Process) the phases.

A good diagram that shows the relationship between phases & iterations, and the different activity disciplines is this Unified Process overview.

Phases, iterations, and disciplines. Image by Jakob Farian Krarup on Wikipedia.

This shows that even the first iteration, in the Initiation phase, includes all of the disciplines, from requirements through to test and deployment. Although the emphasis may vary (more design in earlier iterations; more deployment in later iterations), all iterations result in ready and tested product components.

Because iterative development also includes iterative refinement of requirements, you won’t know all the specific detailed features at the start, although it would be a good idea to plan (and estimate) at a high level the themes and epics that will be covered.

As the project progresses, these high level components will be further broken down and refined, whether as part of Scrum backlog refinement sessions, or as a part of PRINCE2 detailed planning when executing a stage or work package.

Many iterative projects use time boxed iterations. To use a time box iteration in PRINCE2 , you would specify packages with 0% tolerance for time, but instead have an allowed tolerance for scope variance (if the scope variance is exceeded, the project management action is flagged).

Why would you do anything different?

I was quite lucky in my early career that I worked at a start up, just looked for what was known best practice in education and industry, and used iterative methodologies from the beginning.

The main processes we followed were based around the Microsoft Solutions Framework (MSF), with some influence from the Unified Process, and then eXtreme Programming and early Scrum.

It was only later that I came across other companies that had failures trying to do software projects without following best practice or any published methodology, and had ended up with projects like that described by Royce.

I’ve never really understood why, or found a source of where they got their process from, apart from vague references to Royce’s diagram. I can only presume they never read the paragraph below (“risky and invites failure”), the diagrams on the next page, or the rest of the paper.

Conclusion

Non-software projects might have a sequential structure by task activity (but are not called “waterfall”); they may also have iterative structures (where tasks are repeated) if needed.

The nature of software projects is that they are best managed with an iterative process, based on a product (feature) breakdown; trying to break them down by sequential activity is just wrong and invites failure.

There is no published or documented software development process of the type “waterfall”; it is simply the post-publication name give to the incorrect way to organise a software project (by sequential task activity) in Royce’s 1970 paper.

While individual projects maybe be structured this way, no actual published waterfall methodologies, processes, books, courses, tools, or certifications for software projects exist; and they never will, because who would ever publish “the wrong way to do things”.

Waterfall does not exist.

#prince2 #project-management #scrum #unified-process #waterfall

https://sgryphon.gamertheory.net/2022/01/12/waterfall-does-not-exist/

Waterfall development process does not exist. An individual may have a structure, but no published waterfall methodologies, books, or courses exist, only and sgryphon.gamertheory.net/2022/

Distributed tracing is built in to modern in the default web client, server, and other operations using W3C Trace Context; all you need to do is enable logger scopes. sgryphon.gamertheory.net/2022/

Marruth, Quith-Pa, and Elven Bread from the Heroes' Feast cookbook for the last session of our Curse of campaign.

One thing I do at for customers is . I have written about infrastructure-as-code, comparing Azure CLI vs PowerShell vs ARM vs Bicep sgryphon.gamertheory.net/2021/ for resource deployment.

Am pleased to announce we now have the entire archive of undercurrent and visionontv moving over to #peertube at visionon.tv at one video a hour to avoided being caught you youtube API limits. Should add over 2000 videos back to the #openweb ready for feeding into the #OMN if we ever find some coder focus :)

Ever wanted to connect your tabletop RPG dice to the Internet of Things ? The Pixels dice project is trying to do just that gamewithpixels.com/ -- and it is

Show more
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.