tech

Unofficial, machine-generated summaries, as of 2026-11-09.

Technology and FriendsShannon Kuehn on Workload Identity Federation [TECHNOLOGYANDFRIENDS 704]
  • Workload Identity Federation removes the stored secret from outside-Azure deployments. Kuehn, a senior program manager on Microsoft's identity advocacy team, says managed identities only help workloads hosted on Azure. With federation you tell the Azure application to trust an external system such as GitHub, so the repo holds only the client ID, subscription ID and tenant ID. Her case for it is that rotating a password or secret is what breaks automated workflows, and with no secret there is nothing to rotate.
  • Setup is a federated credential on the service principal. She says you create the service principal in the portal or with the Azure CLI or PowerShell, then use a new Federated Identity section under its Secrets tab, scoped to a specific scenario such as a PR. The three IDs are then referenced from the GitHub Actions YAML. She points to an Azure CLI and GitHub CLI script by Microsoft engineer Jon Gallant that automates the whole trust setup, and to his video walking through the token flow.
  • It is a young preview with no known production users. Kuehn says it reached public preview around late November and covers GitHub Actions, Google Cloud, Kubernetes and compute platforms outside Azure; she has worked mainly on the GitHub side. She does not know the GA date and guesses "probably this calendar year", without official knowledge.
  • She expects it to carry Azure identity security into hybrid and multi-cloud. She reads the "compute platforms outside of Azure" support as implying on-premises use, but says she has not yet read that documentation closely. Her view is that because full cloud adoption is "a ways off", extending the same identity controls beyond Azure is what will help customers adopt it.
Technology and FriendsMary Grygleski on Event Streaming and Processing with Apache Pulsar [TECHNOLOGYANDFRIENDS 703]
  • Pulsar is one platform for streaming, queuing and stream processing. Grygleski, a streaming developer advocate at DataStax, describes Apache Pulsar as a unified, event-driven messaging platform that does pub/sub streaming and message queuing at once, plus message transformation and processing. She says Yahoo built it around 2014–2015 for workloads such as Yahoo Finance and Mail, donated it to the Apache Software Foundation in 2016, and it became a top-level project in 2018.
  • Its typical use is change data capture feeding a pipeline into sinks. She describes Pulsar listening for database changes, transforming them and depositing them in a "sink" through connectors: Elasticsearch, MongoDB, Kafka, email, or back into a database. Her argument for the event-driven approach is that independent pieces hook together "like Lego pieces", and the broker-based pub/sub model scales easily across one-to-many and many-to-many flows.
  • It runs as a managed service or locally in Docker. Grygleski, who says she does not mean to be marketing her employer, points to DataStax's Astra Streaming, with a free tier and $25 credit, hosted on Azure, AWS or Google Cloud, with more providers planned. The alternatives she gives are installing the binary and managing topics yourself, or running the Docker image.
  • Basic flows need no code; custom processing uses Pulsar Functions. She says simple sinks and data flows can be configured in the cloud console, but filtering, transformation and external connectors use serverless Pulsar Functions written against its APIs. She lists Java, JavaScript, Ruby, Python, Go, C++ and C# as supported, with community support for other JVM languages such as Scala.
Technology and FriendsJoe Kunk on Windows UI Testing with FlaUI [TECHNOLOGYANDFRIENDS 702]
  • FlaUI sees the app's real controls, which Appium could not. Kunk, at a consulting company working on a client's commercial WPF application, says their first Appium-based tool saw only what was on screen, so data-grid rows that were off screen were invisible and the tests were fragile. FlaUI, an MIT-licensed NuGet library wrapping the Windows accessibility API, exposes native controls with click, type and expand commands, plus whether an element is visible or enabled. You install FlaUI.Core plus UIA2 (for WinForms) or UIA3 (for WPF and Store apps). He says it succeeds TestStack.White, deprecated in December 2019.
  • He writes every test by hand in C#, without a test framework. The suite is a separate .NET Framework 4.7.2 project with no recorder: he finds each element's XPath with Microsoft's WinAppDriver UI Recorder (out since 2018) and codes against it. He skips NUnit for flexibility. Each test stages a preconfigured file, then repeats act, read back, fail immediately, because "a click doesn't tell me if it clicked".
  • Keep every test fully independent, even at the cost of duplication. Kunk says having one test call another made failures too hard to untangle. Reuse now lives only in a shared library of "interactions" (one click or keystroke) and "actions" (a login made of several interactions). He calls timing his biggest challenge, such as logging in before the login screen appears. Nightly runs can take 30 minutes, but runs on his development machine must be faster.
  • Results come from parsing the log, plus screenshots and a tracking database. Several dozen tests run nightly and log every step to a text file. A second pass parses that log to build the email to business users and developers, so the email is accurate because it comes from the log. A "test tracker database" records each test's duration and result for planned Power BI trend analysis, and Snagit takes a screenshot at the moment of any failure.
  • Manual testers now feed the suite, and a support tool is planned. The roadmap so far has been silent install, builds pulled from an FTP server, happy-path tests, then regression tests that manual testers specify with staging files. He says automation "never completely eliminates manual testers and shouldn't." Still planned are DevOps pipeline integration and a developer smoke-test subset. The last goal is a tool where support staff pick a version and a test, and a server installs that version, runs the test and sends them a video.
GCastIngesting Into an ADX Table From an Azure Storage Blob [GCast 123]
  • One .ingest into table command loads a blob into ADX. The syntax is .ingest into table <table name>, then a parenthesized list of blobs, each written h"<blob URL>?<SAS token>", with an optional with clause setting the format. Giard notes the full syntax is in the help under the ingest-into command.
  • The blob's columns must match the target table's structure. His demo table, customers, has full name, last order date, sales, expenses, city and postal code. The comma-delimited .csv file he uploads to a blob container has about 10 rows in the same layout (a string, a date, then numbers), and he calls the match important.
  • Scope the SAS token narrowly: one container, read-only, short expiry. He takes the blob URL from the file's Properties, then uses Generate SAS on the container rather than the storage account. He grants only read permission on the blobs and sets the token to expire in about an hour.
  • Several blobs can go in one command, but not a whole container. Multiple blobs are listed comma-separated inside the parentheses. Giard says there is no command to ingest everything in a container, so each blob has to be listed individually.
  • The format clause is optional when the file extension shows it. Rerunning the command without it still ingested the .csv, and the table went from 10 to 20 rows, the same rows repeated. He says to state the format explicitly when the extension does not make it obvious, and points to the ADX supported-formats documentation, which lists JSON, multi-JSON and Parquet among others.
Crosstalk SolutionsDHCP Reservations / Static Mapping - UniFi & EdgeOS
  • A DHCP reservation pins a dynamically assigned address to one device. Without one, a device that is offline for a while, such as a phone off for a week, can come back to a different address after its old one goes to another client. The host reserves addresses for devices that apps must always find at the same IP, such as an OctoPrint Raspberry Pi and a Lutron hub.
  • Split a /24 into gateway, static range and DHCP pool. The host's example: 192.168.1.1 as gateway, .2–.50 set aside for manually assigned static addresses (switches, servers), and .51–.254 as the pool DHCP hands out automatically.
  • In UniFi, enable "Use fixed IP address" on the client. On a UDM Pro running 1.12.15, which the host says was current in April 2022, you open the client, go to settings, pick the network and keep or set the address. UniFi then stops handing that address to any other client.
  • In EdgeOS, map a lease to a static IP. On an EdgeRouter 4 running 2.0.9 hotfix 2, the host goes to Services, DHCP Server, opens View Leases on the network and uses Map Static IP, which ties the device's MAC address to the address. Existing mappings are listed, and can be deleted, under the Static MAC/IP Mapping tab.
Technology and FriendsMihai Tataran on the Microsoft Azure Well Architected Framework [TECHNOLOGYANDFRIENDS 701]
  • The framework's value is completeness and a shared vocabulary with customers. Tataran, whose company does Azure consulting and custom development, says it works as a template that forces you through every aspect so nothing is forgotten. Because it comes from Microsoft, it also ends arguments with clients over why his team does things a certain way. He uses the well-architected review as a conversation opener: expert on-premises IT staff who doubt his team answer "no" to many of its questions. He thinks it appeared about two years ago, and says a new version is due in a few months.
  • Reliability means choosing targets and trading them against cost. His example is a multi-tenant ISV promising enterprise customers an RTO of one hour while standard customers get less. He tells clients that 99.95% availability with a good disaster-recovery procedure and small RTO and RPO is often enough, since beyond a point uptime costs too much for what it gains. Giard sums up the framework as asking the questions rather than giving the answers. Tataran adds that its docs separate cost-driven non-production environments from production.
  • Cost control is the problem his cloud-adopting customers most often lack. He guesses cost is its own pillar because on-premises capex is fixed and known, while cloud self-service lets people create too many, too large or forgotten resources. Customers already in Azure, he says, can often see their costs but have no mechanism to bring them down. A prospective customer with 2,000 developers had a good operations manual written by on-premises experts, which lacked "the lens of cloud".
  • Operational excellence forces developers to think past deployment. He says developers usually ignore how an app will be run in production. This pillar makes them consider updates, versioning and monolith versus microservices. It also covers modern CI/CD, automating deployments, failovers, backups and testing, Azure-specific monitoring, and above all infrastructure as code.
  • Every production workload should use it; only extreme urgency excuses skipping it. Tataran says the motive for migrating decides which pillars matter: leaving a data centre whose contract is expiring calls for speed and a lift and shift, while a goal of faster time to market makes performance and scalability central. Teams in a rush may defer the framework but should come back to it. Sandboxes and proofs of concept are exempt. He would like the technology-specific guidance, such as for containers and AKS, to grow into decision trees across Azure's many hosting options.
Crosstalk SolutionsNEW Wyze Gun Safe - quick overview
  • Wyze's new handgun safe is sturdy and opens four ways. The host, who doesn't own a handgun, describes solid metal construction weighing about 20 pounds. It opens by code, fingerprint, key or the Wyze app, and has a USB-C auxiliary power connector so it can still be opened if the battery dies.
Technology and FriendsA Celebration of Friends! [TECHNOLOGYANDFRIENDS 700]
  • Episode 700 is a montage of guest clips, not an interview. Dozens of past guests, mostly unnamed in the captions, each give a short message on the show's title theme; most say the developer community is where they found their friends, and the clips span COVID lockdowns ("stuck at home", the "downward slide of the Omicron variant") through in-person KCDC and CodeMash.
  • During lockdown, guests credit technology with keeping friendships alive. Several describe reconnecting remotely, one with childhood friends, and missing conference hallway time. One speaker says they flew home from Europe on 13 March, two hours before the travel ban, and started a blog series on what technology meant in earlier decades as a lockdown project.
  • One guest argues technology helps friendship but cannot create it. The guest contrasts social-media "friends" never met with people who show up at 2 a.m. when the power is out, citing a friend who drove 45 minutes with a chainsaw to clear a fallen tree from the guest's driveway. Another guest says industry friendships are built on games, places and food away from the screen, not on shared technology.
  • Several guests turn "friends don't let friends" into technical advice. One says friends don't let friends right-click publish, whatever is being deployed: an application, a database or a predictive model. Another says friends don't let friends use slow Wi-Fi, and urges viewers to help friends set up good Wi-Fi remotely, not in person.
  • Some guests say technologists should build for, and do good by, people. One challenges developers to weigh their work's effect on humanity or seek side projects that do good; another asks the industry to make technology more equitable "for our friends that don't look like us". A third builds as if demoing to a friend, because friends will ask why a part is so complicated.
Crosstalk SolutionsUniFi U6 Mesh Access Point - Setup and Testing!
  • The U6 Mesh is the host's new favourite UniFi access point. He puts it at the top of his recommended UniFi APs for its soda-can form factor, which looks unobtrusive indoors yet is IPX5-rated (low-pressure water from any direction) for outdoor use, with the caveat that he had not yet tested the U6 Pro.
  • It is Ubiquiti's first Wi-Fi 6 mesh access point. Specs given: 4x4 MU-MIMO on 5 GHz, 2x2 MIMO on 2.4 GHz, one 1 Gbps Ethernet port, 802.3af PoE; a PoE injector, ceiling-base mount and pole mount come in the box.
  • It costs slightly more than the U6 Pro. MSRP is $179, about $30 more; the trade-off against the U6 Pro is the form factor and weatherproofing in exchange for about 1 dBi less antenna gain.
  • It performed very well in his single-client speed tests. On a 600 Mbps home-office connection, a Wi-Fi 6 laptop got 376.7 down / 41.7 up and an iPhone 390 down / 45.6 up; he notes one client does not show Wi-Fi 6's real benefit, which is dense environments such as a stadium.
  • The unit runs warm, and configuration in UniFi is standard. He measured 109°F on the front and 108°F on the back; the LED ring colour is configurable (a change takes about 8–9 seconds to reach the AP), and a specific mesh uplink AP can be set when it is deployed outdoors.
Crosstalk SolutionsTP-Link Switch Overview - My Favorite Switches!
  • TP-Link switches fall into three management tiers. Smart managed switches have a local GUI and can be centrally managed by the software, hardware or cloud Omada SDN controller; Easy Smart switches have a web GUI but cannot join Omada; unmanaged switches are plug-and-play with no GUI. The video makes no sponsorship disclosure.
  • TP-Link model numbers decode systematically. TL-S = TP-Link switch, then speed (F fast Ethernet, G gigabit or 2.5G, X 10G), then layer (1 unmanaged, 2 L2, 3 L2+ with static routing, ACLs, sFlow/OAM, console port), then uplink count and total ports, then suffixes; in the TL-SG3210XHP-M2, X means 10G uplinks, HP high-power PoE, M2 2.5G ports.
  • His Omada-capable picks span backbone fibre to the desk. The TL-SX3016F (16x 10G SFP+, redundant PSUs, 320 Gbps, $499.99) and 8-port sibling (160 Gbps, $229.99) for backbone, NAS and servers; the TL-SG3210XHP-M2 (8x 2.5G PoE+, 2x SFP+, 240 W, $399.99) for 2.5G APs such as the EAP660 HD; the TL-SG3428MP (24x PoE+, 4x SFP, 384 W, $465.99) as the standard business switch.
  • Smaller Omada and Easy Smart picks cover a few PoE devices. The TL-SG2210MP (8x gigabit PoE+, 2x SFP, $239.99) suits a handful of phones, cameras or APs; the TL-SG2008P ($89.99, 4 of 8 ports PoE+) is his desk switch; the Easy Smart TL-SG1016PE gives 16 ports, 8 PoE+, 110 W, for $229.
  • Unmanaged picks are for cheap, quick connectivity. A 5-port 2.5G desktop switch ($169) ties together 2.5G PCs; 8- and 5-port 10G models (TL-SX1008 about $433; 5-port $337) link 10G NAS and workstations; the TL-SF1008P (under $50, 4 of 8 fast-Ethernet ports PoE) suits a garage; and the sub-$20 TL-SG108 lives in his gear bag as a spare.
Crosstalk Solutions31 - Inbound Routes - FreePBX 101 v15
  • Inbound routes match on dialed DID, caller ID, or both. FreePBX imposes no limit on the number of routes beyond the server's CPU and RAM, and a route can send a call to an IVR, extension, queue, ring group, announcement or call flow control.
  • Always keep a blank catch-all default route. With DID and caller ID left empty it takes every call; in the series it sends the main number to the "weather" call flow control, then holiday and business-hours time conditions, then the main IVR, which the test call followed.
  • A dedicated DID route bypasses the whole call flow. The host adds a "sales queue" route on the sales DID that drops callers straight into the sales queue, skipping call flow control, time conditions and IVR; the test call showed the "sales" prefix and went directly to hold music.
  • The DID pattern length depends on the trunk. It may be 10 or 11 digits in the US (11 for the SIP trunk used here), other lengths abroad, or 3–4 DNIS digits on a PRI; Asterisk logs an informational message giving the exact DID when a call falls through to the catch-all.
  • Per-route options mark where a call came from. Alert info sets a distinct external ringtone (native only on Sangoma/Digium phones, workarounds for others such as Yealink), alongside ringer volume override and a caller ID name prefix ("main:"); privacy manager forces callers without caller ID to enter one; call recording can be forced, but the host warns recording laws vary by state and country.
Crosstalk Solutions30 - Call Flow Control - FreePBX 101 v15
  • Call flow control is a manual switch between two call paths. Unlike time conditions, a CFC is toggled by a person, like a railway switch sending a train down track A or B; in the series' design it sits first on the inbound route so an inclement-weather closure can override everything downstream.
  • The host advises against CFCs for daily day/night mode. Relying on staff to toggle it every morning and night means it will sometimes be missed, so he automates schedules with time conditions and keeps CFCs for ad hoc diversions, such as a client's daily noon team meeting greeting.
  • *Each CFC is toggled by 28 plus its index. FreePBX allows up to 99 (indexes 0–99, so *280 through *2899); an optional password stops users who discover the code from toggling it, and the GUI's "day/night" labels simply mean normal and override mode.
  • The test confirmed the weather override path. Normal mode passes to holiday then business-hours time conditions and the main IVR; with *280 activated, a simulated inbound call (7777) heard the weather-closure announcement and went to the general voicemail box.
  • A BLF line key makes the toggle easy for receptionists. Configured in the phone's model layout with value *280, the key shows green in normal mode and red in override, and pressing it toggles the CFC.
Crosstalk SolutionsNEW - Aruba 1960 Switch Series - Stackable Switches!
  • The 1960 series brings stacking to an SDN-managed lineup. The host believes the Aruba Instant On 1960 switches are the first and only switches stackable within such a central management portal: up to four switches per stack, with unlimited stacks, linked over the 10G Ethernet or fibre ports rather than proprietary stacking cables, in series or a ring for redundancy.
  • The 24-port PoE model is quiet and well equipped. The JL807A has 24 gigabit PoE ports, two 10G Ethernet and two 10G SFP+ ports, and a single non-redundant power connector; its fan never ran in his office testing, and he believes the non-PoE models are fanless. The range has five models, including 48-port and non-PoE variants; all are Layer 2+.
  • Cloud and local management are mutually exclusive. The free Instant On cloud portal offers only basic stack settings (no spanning tree, no cross-switch link aggregation); STP, ACLs, LLDP and routing require the much richer local GUI, chosen at first boot, and his Aruba contact says cloud features are being added. Its plug-and-play stacking beat the local GUI's port selection and reboots.
  • The host values the choice of management mode. As an integrator selling switches, he can stock one model and move a customer from cloud to local later without replacing hardware; and since the cloud has no on-premises option, a factory reset to local mode would keep the switches running if Aruba's cloud disappeared.
  • They carry a steep premium over UniFi equivalents. Over 50% more: at B&H the 24-port PoE model was $1,275, against $800 for UniFi's 24-port PoE enterprise switch, and was unavailable until about June; there are no licence fees, unlike Cisco. He recommends the 1960 only for businesses needing Layer 2+ features with IT staff to run the local GUI; vanilla SMBs can use the 1930 ($425, 24 ports, four SFP+ uplinks).
Technology and FriendsJean Lange on the History of JavaScript [TECHNOLOGYANDFRIENDS 699]
synopsis

Lange, a technical program manager at the lender Kiavi, concludes that JavaScript is the way it is for two reasons: it grew up with the web, and it was designed to lure in non-experts. Lange also holds that it remains a reasonable choice, provided frameworks are chosen by the needs they were built for.

Where the talk came from. Pittsburgh Tech Fest wanted a more complex talk. At the Academy of Pittsburgh boot camp where Lange volunteers, students who meet C# and Ruby first keep asking why JavaScript is so different. Lange expected the talk to be about choosing among frameworks, but the history was what interested speaker and audience.

The timeline. It was invented at Netscape in 1995, and the name rode on Java's popularity. ECMAScript is the standard and JavaScript an implementation of it. Standard releases came in bursts: early ones, then 2009 and 2015. Giard suggests the gap reflects Netscape's decline and Internet Explorer's dominance. Lange's answer is that people were still working out what the web could be used for. jQuery filled that gap. Node.js, Electron, TypeScript with transpilation, and single-page apps followed, and WebAssembly is the first real break.

Who shaped it. Lange contrasts JavaScript's community-wide development with the central stewardship of Ruby or C#.

Making choices. Lange advises judging frameworks by origin: React suits many teams working on one app, as at Facebook, and Angular suits a single uniform product, as at Google.

  • JavaScript is strange because of the web and its "lure". Lange set out to answer boot-camp students' question "why is it this way?" and landed on two answers: it grew up inseparably from the web, and it was built to lure in non-professionals ("you too can do this"). Only gradually did it get wrapped in conventions and frameworks.
  • Despite its quirks, JavaScript is everywhere. Lange cites it as the most popular programming language every year since 2012 (checked through 2021, not yet 2022) and in use on 97.5% of websites, and argues the history explains how something so "screwy" got there.
  • The language changed in fits and starts, with libraries filling gaps. Lange dates it to 1995 at Netscape, written in 10 days and named by marketing to ride on Java. ECMAScript is the standard and JavaScript an implementation of it, named apart to avoid more Java confusion. Releases bunched early, then in 2009 and a big one in 2015. In the long gap, which Lange puts down to people working out what the web was for, jQuery supplied new functionality and smoothed over browser differences. Much of it later went into the language. Node.js and Electron took it off the browser, and Lange sees WebAssembly as the first big change in about 25 years.
  • JavaScript was shaped by everyone, not by a central owner. Unlike Ruby or C#, Lange says, standards bodies, open-source authors and companies such as Microsoft all contributed, and this helped its popularity. Lange describes TypeScript, from Microsoft, as the second lasting implementation of ECMAScript, transpiled into JavaScript to add compile-time checking while still running anywhere.
  • Pick a JavaScript framework by why and for whom it was built. Lange calls JavaScript itself a reasonable choice and says frameworks should be judged like any tool, on quality attributes, resources and rate of change. React came from Facebook, where many teams work on one app, so its components update independently. Angular came from Google, built for something more uniform like Gmail, though Lange says they are not sure of that origin.
Crosstalk Solutions29 - Time Conditions - FreePBX 101 v15
  • Time conditions replace staff manually opening and closing the phones. The host prefers them because people forget to switch the system at the start and end of the day; they also handle holiday routing.
  • Time groups define the hours; time conditions route on them. The example business-hours group is Monday–Friday 08:00–17:00 plus Saturday 08:00–12:00; the holidays group lists whole days by date, such as January 1, July 4, and Thanksgiving as November 24–25, 2022.
  • Floating holidays need yearly maintenance or a calendar. Because dates like Thanksgiving move, the host sets a reminder for his first day back each January to update the time groups; alternatively a time condition can run in calendar mode against a local, CalDAV, Outlook or iCal calendar with recurring events.
  • The two conditions are stacked, holiday check first. The holiday condition sends matches to the holiday announcement and non-matches to the business-hours condition, which goes to the main IVR or the "closed" announcement and voicemail; business hours must therefore be created first, as it is the holiday condition's destination.
  • Each condition gets a feature code for manual override. Here *271 (business hours) and *272 (holidays), which can be put on a phone button; an optional PIN stops employees guessing the code, and an override reverts at the next scheduled change. Test calls (7777) followed the IVR, closed and holiday paths as toggled.
Crosstalk Solutions28 - IVRs - FreePBX 101 v15
  • The series builds the IVR last, tying together prior pieces. Voicemail boxes, announcements, ring groups and queues were built first, so the IVR entries only map digits: 0 to the receptionist ring group, 1 to the sales queue, 2 to the customer service queue, 3 to the accounting ring group.
  • Direct dial can be limited through a directory. Besides enabled or disabled, direct dial can use a directory such as "all employees"; deleting an entry (the CEO) blocks external callers from dialling that extension, and an entry can be redirected to another extension, such as an assistant's, or given alternate spellings.
  • The host cuts the default timeout and retries. He lowers the timeout from 10 to 5 seconds and the invalid and timeout retries from the default 3 to 1, with "append announcement" enabled so the main greeting replays; a second failure goes to the receptionist ring group.
  • Hidden IVR entries add unannounced options. He adds a "*" entry mapped to the dial-voicemail feature code (equivalent to *98), so staff calling in from outside can enter their mailbox number and password to check messages.
  • Every option should be tested by calling in. After pointing the main inbound route at the IVR instead of extension 200, the host's test call reached the sales queue; he advises manually checking each option's destination, and notes after-hours routing is still to come.
Crosstalk SolutionsPiVPN + WireGuard Complete Setup - Build Your Own VPN Server!
  • PiVPN turns a Raspberry Pi into your own remote-access VPN. Unlike a commercial VPN proxy, it sits on the home or office network, so you can reach internal files and services from outside and browse from your home IP rather than a hotel's; the host rates it a 4 out of 10 for difficulty and 30–60 minutes of work.
  • Use the 32-bit Raspberry Pi OS Lite. The host found the 64-bit version did not work perfectly with the PiVPN installer; Lite avoids the desktop GUI's CPU and RAM cost, and his 2 GB Raspberry Pi 4 ran fine on it. He recommends a class 10 microSD card of about 32 GB, SSH enabled in Raspberry Pi Imager, and a wired rather than Wi-Fi connection.
  • The server needs a fixed address and a forwarded UDP port. Set a static IP outside the DHCP range (he used .30, below his .100–.254 pool) or a DHCP reservation; choose WireGuard, recommended for speed and mobile battery life; forward UDP 51820 to the Pi; use dynamic DNS if the ISP's public IP changes. He enabled unattended security upgrades because a port is open to the internet.
  • Run pivpn -d if clients connect but pass no traffic. His phone tunnel reached only the Pi itself until the debug session flagged the iptables masquerade, input and forward rules as unset; after fixing them and rebooting, he could reach the gateway, his Synology NAS and the internet.
  • Create one client profile per device and back up. A separate profile per device lets a lost phone be revoked without affecting others; phones import via pivpn -qr, Windows by copying the config file off with WinSCP. pivpn -c lists connected clients, and pivpn -bk creates a backup to download after any significant change.
Scott HanselmanClient-side vs Server-side, Front-end vs Back-end? Beginner Explanation of JavaScript on the Web
  • A self-contained command-line script has no client or server. Prompted by a nephew in computer science 101 who was being taught JavaScript through Node, Hanselman runs a one-line console.log file with node myapp.js on Windows 11. He says it runs inside Node's JavaScript engine on the local machine and exits, with nothing connecting it to the outside world.
  • A Node web server is server-side code; the browser is the client. His server.js uses Node's HTTP module to return HTML for /, /student and /admin and listens on port 5000 (ports, in his analogy, are windows in the house that is the computer). Browsing to localhost:5000 returns those pages. Client and server share one machine here, but he asks viewers to picture the server in Azure or Amazon and the client on a phone.
  • The client receives only the HTML output, never the server's code. View Source in the browser shows the strings the server wrote to the response, with none of the JavaScript that produced them. The server's own console.log lines appear only in the server's console, as logs for developers to debug with; he says the user on the front end never sees them.
  • JavaScript can run on both sides at once. He embeds an inline script in the home page's HTML, calling it something "you shouldn't do" and shown only for teaching. On each refresh the server logs "in the server" to its console, and the browser, which understands JavaScript out of the box, runs the embedded script and logs "in the browser" to the F12 developer-tools console.
Technology and FriendsGodfrey Nolan on Drone SDKs [TECHNOLOGYANDFRIENDS 698]
  • Drone apps have taken over his mobile-development consultancy. Nolan says about 75–80% of his firm's work is now drones, a niche it picked up more than five years ago through its habit of trying three new things each quarter to see what sticks. Clients such as drone-software vendors (he names Skyward, Measure, Mapware and DroneDeploy) want custom apps instead of the manufacturer's own app. The firm was founded in 1998, has about 60 people in Troy, Michigan, and he started a Canadian arm last year, he says purely to widen recruiting; drones make it easier to recruit developers and interns, whom the firm keeps for two or three years and converts to employees.
  • Machine learning on drones is the next stage, automating boring jobs. He calls today's work "level one": capturing images, sending them to the cloud for 2D or 3D stitching, and live streaming. Three or four years ago the firm combined TensorFlow with the drone SDK to count sheep and cows in real time on a phone with TensorFlow Lite, then stitched images in the cloud with OpenCV or OpenDroneMap for a total count; interns train models by counting cars in parking lots because friendly farmers are scarce. Uses he names include spotting trees near power lines in storm-prone Michigan, reading container text at ports, detecting intruders, and a weed-detection app for a group in Virginia that he calls small-scale so far.
  • The drone SDK is a headless version of the manufacturer's app. Nolan says almost anything the DJI app does can be done through the SDK in Kotlin or Swift, added like any other library: Gradle in Android Studio, a pod install in Xcode, plus a Windows SDK. His firm converted about a dozen DJI Java examples to Kotlin and the Objective-C ones to Swift; the entry-level DJI Mini that Giard owns runs the basic examples, but automated flights are harder on small drones than on a Mavic Pro or Parrot Anafi.
  • Most, but not all, drone vendors offer an SDK. He says DJI, the market leader, supports iOS, Android and Windows; Parrot supports iOS and Android and gives away much of its code; Autel's works much like DJI's; and open-source PixHawk controllers can be programmed through QGroundControl or directly over the MAVLink protocol. Skydio, which he calls one of the big drones, has no SDK now, though it had one in the past and he hopes it returns this year or next.
  • Regulation, not technology, holds back drone delivery. Nolan says the rule against flying beyond visual line of sight means a pilot must watch a delivery drone the whole way, defeating the point of automating it; he expects regulators to catch up and cites a former schoolmate's delivery business in Ireland. Regulation does not block his own projects: near airports (within five miles, he says) flights need FAA approval, and his firm has built the LAANC authorization APIs into client apps so pilots can get it without calling the tower or leaving the app.
Technology and FriendsRuss Fustino on Blockchain [TECHNOLOGYANDFRIENDS 697]
synopsis

Fustino, a developer advocate at Algorand, argues that blockchain's immutable, distributed ledger suits far more than finance. In this account, building on it means SDKs plus careful smart-contract design that leaves no crypto stranded. The interview was recorded live and virtually alongside ETHDenver, with questions from the audience chat.

What a blockchain is. Fustino describes a ledger anyone can copy, holding transactions grouped into time-based blocks that cannot be changed once written, which makes it auditable and hard to tamper with. Proof of work is slow and power-hungry. Fustino says delegated and bonded proof of stake carry attack and incentive flaws that pure proof of stake avoids. Public chains can still host permissioned solutions if developers build identity management on top.

What gets built. DeFi leads, and Fustino also names copyrights held as NFTs, charity tracking, voting, health records and car sensors. Coins are fungible, while NFTs are unique and work like collectibles or property. Answering the chat, Fustino says an NFT's uniqueness is its asset ID, and its legal standing depends on the evidence checked when it is created.

How developers build. Developers use language SDKs and REST APIs, but private-key operations stay in the SDK. There are three account types: individual, multi-signature and logic signature. Smart contracts run as TEAL on the Algorand Virtual Machine, or are written in Reach to target several chains.

What goes wrong. Fustino's main warning is a contract that finishes holding a balance nobody can reach. The remedies offered are Reach's verification or an outside audit.

  • Blockchain's value is an immutable, distributed ledger. Fustino, a developer advocate at Algorand for almost three years, describes a ledger anyone can copy by running a node, where recorded transactions cannot be changed, which leaves a clean audit trail. A block is a span of time, such as five seconds, holding that period's transactions. Fustino pitches blockchain as a remedy for ransomware attacks on centralized data stores.
  • Consensus methods differ in cost, speed and attack risk. Fustino counts over 2,000 blockchains. Proof of work (Bitcoin and Ethereum, as he describes them) uses expensive machines and a lot of electricity, at over 10 minutes per block. Delegated proof of stake exposes delegates known in advance to denial-of-service attacks. Bonded proof of stake fails when cheating pays more than the bond, for example a million dollars staked against a trillion to gain. Fustino says pure proof of stake has no denial-of-service exposure.
  • Uses go well beyond decentralized finance. Fustino names DeFi as the biggest market (Circle, Yieldly, Tinyman), saying it opens banks' financial tools to anyone. Other uses he names are global copyrights held as NFTs (publishers have posted thousands, by his account), tracking charity donations, tamper-proof voting, patient-controlled health records and car-wear sensors. An NFT is identified by a unique asset ID and points to a file on storage such as IPFS. Asked whether NFTs would hold up in court, Fustino says that depends on the evidence checked when they are created, and Giard adds that neither of them is a lawyer.
  • Algorand development runs through SDKs, with private keys never sent over REST. Algorand provides SDKs for Java, Go, Python and JavaScript, and the community adds C#/.NET, Dart, PHP, Rust, Swift, Unity and others. Anything involving a private key goes through an SDK, not the REST API. A smart contract is a logic signature that signs only if its program returns true, and it runs on the Algorand Virtual Machine as TEAL bytecode. Reach, a partner company's tool, compiles one codebase for Algorand or Ethereum, which Fustino compares to Xamarin.
  • The big smart-contract risk is crypto locked away for good. In Fustino's example, a contract funded with 1,000 algos from escrow that ends holding 500 has stranded them, because its private key cannot be reached once the contract has executed. Fustino says Reach checks for this with mathematical proofs, and otherwise you should hire an auditor. Fustino points beginners to developer.algorand.org and Algorand's Discord community.
Crosstalk SolutionsUnifi Mesh - Fix Your WiFi Issues!
synopsis

The host remotely rescued a friend's poorly performing UniFi mesh network by fixing channel plans and forcing every mesh AP to make a single hop to one wired AP, raising Wi-Fi experience scores to 88% and above and one site's speed from 2 to about 30 Mbps, while insisting hardwiring remains the real fix.

The problem. On a half-acre Los Angeles property, an installer had put in two wired APs and three mesh APs. Coverage maps looked ample, yet scores fell as low as 70%, the guest-house AP double-hopped through a bedroom AP, and Sonos struggled. The host calls the HD APs overkill for a home and the extra bedroom AP counterproductive interference.

2.4 GHz. UniFi meshes only over 5 GHz, so 2.4 GHz just needs non-overlapping channels. Finding nearly every AP on channel 6, he spread them across 1, 6 and 11 at 20 MHz, leaving transmit power on auto.

5 GHz and mesh links. Mesh links must share a channel. The non-meshing house AP went on 48; the wired patio AP and all three mesh APs on 149 at 40 MHz. The patio accepts downlinks but cannot uplink; each mesh AP's uplink is fixed to the patio, avoiding bandwidth-losing double hops. Uplink-and-downlink APs suit layouts with more wired points.

Result. He expects the bedroom AP can now be switched off, and plans a return trip to hardwire the property.

  • Mesh should be used only when hardwiring is impossible. A mesh AP spends its radio both serving clients and backhauling to another AP, so a wired AP always performs better; adding more APs to a struggling mesh can worsen it by adding 2.4 and 5 GHz interference, as the friend's redundant bedroom UAP-AC-M did.
  • The friend's half-acre property was badly configured, not under-equipped. Two wired APs (an HD and a Mesh Pro on a US-8-60W) and three mesh APs gave ample coverage on the design map, but Wi-Fi experience scores were as low as 70%, the guest-house AP double-hopped through the bedroom AP, the man cave got about 2 Mbps, and Sonos struggled.
  • The HD access point was overkill for a home. The host says HD models add no range and are built for many simultaneous clients such as an auditorium; for this deployment he would have recommended the LR or, best, the Pro series.
  • Separate 2.4 GHz channels; UniFi meshes only over 5 GHz. He found almost every AP fixed on channel 6, and spread them across 1, 6 and 11 at 20 MHz width, leaving transmit power on auto; at 40 MHz on 2.4 GHz channels overlap, and 2.4 GHz now mainly carries IoT and Sonos.
  • Every mesh AP should make one hop to the wired AP. On 5 GHz at 40 MHz, the non-meshing house HD went on channel 48 while the wired patio AP and all three mesh APs shared channel 149, with the patio accepting downlinks only and each mesh AP's uplink fixed to it. Scores rose to 88% and above and the man cave went from 2 to about 30 Mbps; he calls this temporary, pending hardwiring.
Technology and FriendsMatt Eland on How Humans Learn [TECHNOLOGYANDFRIENDS 696]
  • Learning is active practice, not knowledge poured in by lecture. Eland, who teaches C#, JavaScript and SQL at Tech Elevator, a 14-week boot camp in Columbus, Ohio, says students can memorize what a for loop is and still be unable to write a program, because applying, troubleshooting and fitting pieces together are separate skills. He tells students who "understand it in lecture" but stall on homework that coding is a muscle built by practice, ideally with someone experienced as a safety net.
  • Accumulated language features burden new learners with too many choices. Eland says C# now has something like 12 ways to declare a property, and beginners stall on which one is right. He credits Microsoft with making learners a focus of major .NET 6 initiatives, while saying there is a long way to go.
  • Stepping away puts the brain in diffuse mode and breaks fixation. Eland contrasts focus mode, for executing a specific task, with diffuse mode, where big-picture thinking happens; he says he has solved many bugs in the shower or driving to lunch. His boot camp hands students actual rubber ducks, because explaining a problem aloud strips away confirmation bias.
  • Actively try to break your own code before moving on. Spending 15 minutes doing so was his rule when he managed a development team, because a developer who has finished a feature hopes it passes and wants to move on. At best you find the bug before someone else does; at worst you lose 15 minutes and gain confidence.
  • Restate your understanding so others can correct it. Eland advises learners to note only a few key points per lecture (maybe five) and to ask questions, including "can I try to explain it to you?" He does the same on joining a team, drawing a diagram of the systems as he understands them so colleagues can name ones he missed; Giard adds that offering what you know makes the correction specific.
Crosstalk SolutionsTP-Link Omada WiFi 6 Access Points, Business WiFi Lineup
  • The entry 2x2 model suits most homes and small businesses. At $99.99 MSRP the EAP610 is a 2x2 MU-MIMO Wi-Fi 6 access point rated up to about 1.2 Gbps on 5 GHz and 574 Mbps on 2.4 GHz, powered by 802.3at PoE or a 12V adapter; the host notes these are total wireless figures, capped at 1 Gbps to the wired LAN by its single gigabit port.
  • Step up to 4x4 MU-MIMO only for dense client loads. The host likens MIMO streams to highway lanes, with phones and laptops using one or two each. The EAP660 HD, at $179.99, doubles the EAP610's wireless capacity to 2.4 Gbps on 5 GHz and just over 1.1 Gbps on 2.4 GHz, and adds a 2.5 Gbps Ethernet port.
  • The wall-plate model is built for single-room coverage, not range. At $89.99 MSRP the EAP615-Wall fits over a single-gang box, takes 802.3af or 802.3at PoE, and adds three gigabit ports; the third passes PoE out only when the unit is fed PoE+ (802.3at). It matches the EAP610's throughput at lower antenna gain, which the host says suits hotel rooms or dorms.
  • A Wi-Fi 6 outdoor Omada model is coming soon. TP-Link plans it for early Q2 2022. The current EAP225 Outdoor ($69.99) is Wi-Fi 5, IP65, powered by 802.3af or 24V passive PoE, rated 867 Mbps on 5 GHz and 300 Mbps on 2.4 GHz; TP-Link's Wi-Fi 6 successor is to be called the EAP610 Outdoor.
  • The host rates TP-Link's Omada APs as cost-effective strong performers. He says they performed great in his own wireless testing; the video makes no sponsorship disclosure either way, and links to the gear are in its description.
Crosstalk SolutionsPerfect equipment labeling…
  • Always label your equipment. The nine-second short is the host's one-line reminder, with no further reasoning or method given in the captions.
Crosstalk SolutionsUniFi Enterprise Switches - 2.5, 10, & 25 Gbps Connectivity!
  • Ubiquiti's four Enterprise switches are out of early access and shipping. The Enterprise 8 PoE has eight 2.5 Gbps PoE+ ports and two 10G SFP+, which the host pitches at advanced home and small-business users; the Enterprise 24 PoE has 12 x 1 Gbps and 12 x 2.5 Gbps, all PoE+, plus two SFP+; the Enterprise 48 PoE has 48 x 2.5 Gbps PoE+ and four SFP+. The Enterprise XG24 has 24 x 10 Gbps RJ45 and two 25G SFP28, no PoE, and he has not tested it.
  • The Enterprise 24 PoE's single port row is better for racks. Unlike older 24-port UniFi switches with stacked ports, all ports sit in a line suited to a 1U patch panel. It adds the 1.3-inch touchscreen with AR port view, a locking power connector like the UDM SE's, and a USP RPS port; the host guesses from a teardown that a separate upper board handles PoE power.
  • The switch adopts and behaves like any UniFi switch. On a UDM Pro running early-access firmware, it adopted and updated to switch firmware 5.76.7 and uplinked at 10 Gbps over a 10G-SR SFP module, with the usual port profiles, VLAN, PoE and aggregation settings; the host confirmed a 2.5 Gbps full-duplex link to a test device.
  • Their layer 3 switching cannot yet replace true L3 switches. The host says it handles inter-VLAN routing on the switch, offloading the UDM Pro or firewall, but little more as of recording; networks must be designed around Ubiquiti's limits, which he hopes later firmware removes.
Crosstalk SolutionsBreaking the Seal!
  • The short carries no argument beyond its title. Its entire transcript is the three words "Breaking the seal", with nothing to say what is being unsealed or why.