tech

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

Crosstalk SolutionsUniFi Building Bridge
  • The Building Bridge is a 60 GHz short-range gigabit link with 5 GHz fallback. The UniFi Building Bridge sells as a pre-paired set of two antennas for $499 MSRP. The 60 GHz radio reaches up to 500 m (1,640 ft) with clear line of sight, and the 5 GHz backup covers rain or snow fade. Each unit runs on 802.3af (an injector is included) or 48 V passive PoE. Rated limits are −40 to 70 °C and 125 mph (200 km/h) wind.
  • Setup on his UniFi Dream Machine failed; a Cloud Key Gen 2 worked. On the Dream Machine, only one of the two units would take a firmware update and the link would not come up. Adopting to his Cloud Key Gen 2 worked, at 97/100 link quality. While both units sat in his office, the host suspects they were interfering with his other wireless.
  • His iperf tests at about 9 m gave roughly half a gigabit. He measured about 500 Mbps one way and 550–575 Mbps the other, and about 750 Mbps combined with both directions running at once. UniFi reported 1.75 Gbps capacity, which the host calls ambitious: the link is not full duplex and the Ethernet ports are only gigabit.
  • Widening the 60 GHz channel hurt the reported link but not throughput. Moving from HT1080 to HT2160 dropped reported link quality to 66/100 and capacity to 1.17 Gbps, while iperf held at about 550 Mbps; he reverted the change. Only the access-point side can set channel width, and the 5 GHz backup allows only a manual channel. The LED ring colour can be changed, which the host calls cool but unnecessary.
  • The host likes it but finds it overpriced against MikroTik. He puts the MikroTik Wireless Wire at about $200, also out-of-the-box. In his view, the Building Bridge's extra $300 buys looks and easy UniFi integration.
Technology and FriendsEpisode 589: Tobiah Zarlez on Gender Identity
  • They are non-binary: neither male nor female. Zarlez uses they/them pronouns and prefer "non-binary" as an umbrella term, with "genderqueer" as a more fluid alternative. They say the status is legally recognized in California, where they live, and in Washington State, and appears on their birth certificate and driver's license. It is not on their passport because the US does not recognize it federally.
  • Meeting another non-binary person showed them it was possible. Zarlez says they were never taught non-binary was something you could be, and their experience did not fit the stereotype of "a woman trapped in a man's body". Passing as male was easy, and being affirmed takes active effort. Since starting therapy about three years earlier and coming out a couple of years before the interview, they say they have found much of their lifelong anxiety came from gender dysphoria, and that hormones and laser hair removal, which they call technology, have helped.
  • They rejected the idea that biological children show a male side. Giard raised their marriage to a woman and their biological children. Zarlez answered that families come in all combinations, that their son is adopted, and that people overemphasize biological genetics in family structure.
  • Tech's exclusive-club culture pushes out people who aren't straight white men. Zarlez says tech is steeped in a self-reinforcing toxic masculinity, and that people who are not straight white men leave tech much sooner. They say escaping toxic co-workers is the number one reason women in tech change jobs. Some colleagues have become closer since they came out and others the opposite, and they choose their own comfort over others' discomfort. They credit Microsoft with a strong stance on inclusion and call this conversation itself progress, recalling that about 10 years earlier same-gender marriage was still being debated.
  • Allies should listen, learn the history and question "new". Zarlez argues transgender people "have been around forever" and were written out of history. Their example is a German institute for transgender care and research that the Nazis raided and burned in the 1930s, and they cite third genders in many Native American cultures. Their advice is to question where an assumption that something is new comes from.
Crosstalk SolutionsUniFi Dream Machine
  • The Dream Machine undercuts buying the equivalent UniFi parts separately. At $299 it combines a 4x4 802.11ac Wave 2 MU-MIMO access point, a Cloud Key-style controller, a USG-style firewall and a four-port gigabit switch (no PoE) with one WAN port; the host prices a nanoHD ($172), Cloud Key ($179) and USG (~$139) at just under $500. The trade-off is that the built-in access point sits wherever the internet terminates, though extra APs can be adopted.
  • The host aims it at home users and SOHO, not medium businesses. He sees it as an entry point to UniFi for enthusiasts and for small businesses with "vanilla" needs, such as a tanning salon. Criticisms he has heard online but not tested (no adoption to a hosted controller, no multi-site, no JSON file editing) matter to IT people like himself, not to that audience.
  • Its CPU should beat the USG, but he could not test gigabit. He does not recommend the USG above about 300 Mbps with IDS/IPS and DPI on; the UDM has a 1.7 GHz quad-core ARM Cortex-A57 and ships with DPI enabled by default. Turning on threat management shows a note citing 850 Mbps maximum throughput, which he could not verify on his roughly 400/20 Mbps connection.
  • Setup supports two-factor login through the Ubiquiti account. The host believes 2FA was not yet available in standard UniFi controllers or Cloud Keys. The UDM ran UniFi Network 5.12.22 as of November 26, 2019, and he advises home users to leave automatic firmware updates on, judging security fixes worth the risk of a buggy release.
  • There is no backup slot and no battery, so download backups. There is no microSD card for auto-backup, so a failed unit could take its backups with it; he advises downloading one after initial setup and any major change. Pulling the plug shut it off instantly, and he says it remains to be seen whether it avoids the Cloud Key Gen 1's database corruption.
Technology and FriendsEpisode 588: Walt Ritscher on Try .NET
  • Try .NET turns static C# documentation samples into live, editable code. Ritscher says Microsoft built it for authors of technical documentation and announced it at .NET Conf "a couple weeks ago": the reader gets an editor beside the sample, can change it and press run, and sees compile errors in the browser. It is written in Blazor and runs as WebAssembly; his guess, since he has not seen the code, is that each edit is recompiled to WebAssembly and rerun.
  • For now it supports only C# and a single runtime version. Ritscher says it works only with C# on .NET Core 3; F# is planned and he does not remember whether VB is. All the demos in his roughly 30-minute LinkedIn Learning course on it, released alongside .NET Conf, were console applications; he has not tested ASP.NET Core or UI projects and does not know whether they work.
  • Authors pair a markdown page with a real, compiling project. Ritscher says you wrap the code to show in a #region, and code outside it, such as database setup, stays hidden but still runs on every execution. In the markdown you extend the usual triple-backtick code fence with parameters naming the project, the class and the region, so one project can feed several samples on a page.
  • A local command verifies and runs the docs, so deployment can wait. Ritscher says you install a few pieces from try.net, including a local runtime and project templates; running the try .net command from PowerShell checks that the code fences resolve, the assemblies are found and the code builds, then opens a browser with it running. He has not been through the deployment process himself. Asked by Giard whether powerful C# code could do harm, he says he does not know, though WebAssembly runs in a sandbox.
  • Power Apps suits forms over data, not full line-of-business systems. Ritscher, previewing his VS Live talk, says a developer can build a small team app in an hour or less instead of a full Visual Studio project, though its main audience is Microsoft's "citizen developers" among what he puts at 750 million Excel users. Like Excel, he says, it becomes a trap when people build entire applications on it; Giard, whose son built complex Power Apps for an employer, agrees.
Technology and FriendsEpisode 587: Robert Green on Microsoft Graph
  • Microsoft Graph lets you query Microsoft 365 information as data. Green describes it as a RESTful API over 65 services, including mail, contacts, tasks, calendar items and SharePoint folders and files, plus Azure Active Directory and, he thinks, some Azure services. The point, he says, is that the processing happens on the server where the data lives and only the answer comes back.
  • Small queries replace context switches into Outlook and SharePoint. Green's examples: an app that checks on vacation for high-importance mail from his manager and shows a smiley or frowny face without opening Outlook; a query for contacts with a recurring all-day "birthdays" category event; and a customer app that checks whether a SharePoint folder named for the customer holds a contract file. None of this does anything you could not do by hand, he says, but it automates it.
  • Earlier Office automation needed Office running; Graph does not. Green, who did a lot of Office development, says VBA, Visual Studio Tools for Office and COM automation suited a world where you lived in Office or did not mind starting it, but they work poorly on a phone or a server.
  • You can use the .NET SDK or build the query string yourself. Green says the Microsoft.Graph NuGet package gives a fluent client (along the lines of me.messages with a filter on importance and sender), usable on phones through Xamarin, while from another language such as Ruby you append the query to the URL and send it over HTTP. Field selections are strings rather than strongly typed and casing matters; filtering support is not the same across all data types, which he expects to converge as product teams build out their APIs.
  • Start with Graph Explorer, the docs, and explicit permissions. Green says Graph Explorer, linked from the docs, runs sample queries and shows the query string and the JSON returned, including obscure Outlook contact fields. The docs include sample apps and walkthroughs for UWP, ASP and Xamarin with Azure Active Directory sign-in, and each app must declare permissions, such as sending mail on your behalf, that the user approves at first login. He says OneDrive and Teams files are SharePoint behind the scenes, so the same reads and writes apply.
Crosstalk SolutionsClearlyIP Now Available!
  • Crosstalk's own web store now sells the full ClearlyIP lineup. It joins the Sangoma and Yealink phones the store already carries, with free shipping. The host, who calls this a sales video and promises a proper review later, says the people behind ClearlyIP are familiar names from the FreePBX community.
  • The ClearlyIP 710 server suits small businesses, not its rated maximum. It costs $610 and is fanless, with a 2 GHz quad-core Celeron, 4 GB RAM, a 64 GB SSD and four gigabit ports. It is rated for 100 phones and 50 concurrent calls, but at that scale the host would buy an enterprise-grade server or run two 710s as primary and warm standby.
  • Every phone shares community-requested features and free provisioning. All have gigabit pass-through, a stand that doubles as a wall mount, OpenVPN, the G.722 and Opus HD codecs and a two-year warranty, extendable by three years for about $90. ClearlyIP's phone apps and Clearly Device Manager are free, so the paid FreePBX endpoint manager is not needed.
  • The range runs from receptionist phone to utility handset. The 270 ($179), the host's daily phone for months, has 10 programmable keys with four pages, a 4.3-inch colour LCD, Bluetooth and Wi-Fi. The 250 has a 2.8-inch screen and eight keys, the 230 the same screen and four keys. The 200 sidecar ($179) adds 40 keys and works with the 270 and 250.
  • Bundles were on offer through the end of 2019. A phones bundle (270, 250 and 230) is $349, about 15% off, and a complete bundle adding the sidecar and 710 server is $999. The host asks volume buyers to contact him for discounts, and says the company is young, lacks some phone apps so far, but has a strong roadmap.
Scott HanselmanCode Pages, Character Encoding, Unicode, UTF-8 and the BOM - Computer Stuff They Didn't Teach You #2
  • ASCII is just an agreement about which byte means which character. Hanselman explains that bytes were scarce, so the first 128 characters (2 to the 7th) were fit into 7 bits, with "A" as 65 decimal or 41 hex and lowercase "a" at 61 hex. He shows this with a small C# console app that writes bytes 0 to 127 to a file: the editor flags it as an unsupported text encoding, because the low values are control characters rather than printable text.
  • Past ASCII's range, the code page decides what a byte means. When he extends the program to bytes 0 through 255, the upper half depends on which code page is applied. He names 1252 for Windows graphical apps, OEM 437 for the console, and ISO 8859-1, which he says are identical up to 127. Past that, the same byte might be a euro sign, a non-breaking space or an accented "a". His point is that a string means nothing without its code page, and that displaying it correctly also needs a font that supports it.
  • Without the encoding, software can only guess, and guesses wrong. Opened in Notepad, his 256-byte file came up as garbage because Notepad guessed UTF-16. A second editor guessed ANSI (code page 1252). Pasting a Chinese character ("mother") and switching the file to a basic 8-bit encoding brings up a warning, and he cautions that saving without minding the encoding can lose information. His closing line is "when you get a string and you don't know the encoding of the string the best you can do is guess".
  • A byte order mark tells the reader what to expect. Saved as UTF-8, the Chinese character took three bytes. Saving "with signature" added three more bytes in front, the Unicode BOM, which says how the bytes that follow are stored. When he hard-codes EF BB BF ahead of the 256 bytes, the editor detects "UTF-8 signature" and renders the high bytes. The DOS console still showed the character wrongly until he changed its code page, "because that's how things are going to work for a while".
Scott HanselmanWhat's a Carriage and Who's Feeding it Lines? CRLF - Computer Stuff They Didn't Teach You #1
  • CR and LF are typewriter motions surviving as control characters. Hanselman explains that the carriage carried the paper: at the end of a line you pushed it back (carriage return) and turned the knob to advance the paper (line feed). In a hex dump of a file holding "ABC" plus Enter, he shows 61 62 63 followed by 0D 0A, which is 13 (CR) and 10 (LF) on the ASCII chart.
  • Operating systems disagree on line endings, and you cannot see them. As he puts it, Windows text files "even today" end each line with CR LF, Linux with LF alone, and a Mac with CR alone. That matters when files move between systems, because an editor shows no visible mark for the ending. Notepad in recent Windows 10 does label the file "Windows (CRLF)" in its corner.
  • Git on Windows rewrites line endings behind your back. He cloned the same readme from his crlf-examples repo on Windows and in Ubuntu under WSL. The hex dumps showed CR LF on Windows and LF only on Linux, because core.autocrlf was true on Windows and unset on Ubuntu. Git's installer default checks files out Windows-style and commits them Unix-style, so for cross-platform projects "git is lying to you". The stored file is LF everywhere except on your Windows disk.
  • Modern editors cope, so check line endings when things look odd. VS Code lets him switch a file between CRLF and LF in its status bar, and the hex dump changed after saving. He says the new Notepad, Visual Studio and VS Code handle both, and that things have mostly standardized on LF, so "our great national nightmare is mostly over". His advice for puzzling bugs, such as a file showing up on one line: check the endings and your git setting, and avoid editors that are not line-ending aware and may silently switch them.
Crosstalk Solutions35km PTP in Manila
  • The link's line of sight depends on a tall Manila-side mast. A viewer planned a 35 km (about 22 mile) link from a hillside near Calamba, at roughly 500 ft elevation, to a Manila suburb at about 100 ft, partly over water. In the host's airLink simulation, hills block the Fresnel zone below about 72 ft and line of sight is gone by 50 ft, so the viewer's 82 ft (25 m) mounting height is needed. airLink ignores trees and buildings.
  • A Rocket Prism setup gives about 200 Mbps for roughly $1,100. It uses a Rocket 5AC Prism Gen 2 ($209) with a 31 dBi RocketDish ($339) on each end. airLink predicts 100% signal and 545 Mbps, but the host expects about half that in practice. He rejects the airFiber 5 at $999 per side (about $2,000 for 768 Mbps estimated) as nearly double the cost for little gain, needing a 50 MHz channel in likely crowded 5 GHz.
  • The host recommends the airFiber 5XHD (LTU) with 30 dBi dishes. With the AF-5G30-S45 dish, it costs about $1,100 for the pair, only $10–12 more than the Rocket setup. Opened to a 100 MHz channel, airLink estimates 100% signal and 1,094 Mbps, almost three times the throughput. He is unsure a 100 MHz channel would hold up in practice.
  • Licensed 11 and 24 GHz options cost more for similar results. An airFiber 11FX pair with 35 dBi dishes and four duplexers totals $2,754 for 1,376 Mbps at 56 MHz. The airFiber 24 (about $3,000 a pair) predicts 33% signal and 515 Mbps, and the 24 HD 50% and about a gigabit. US use needs an FCC licence; the host does not know the Philippine rules.
  • A nearby university rooftop could replace the tower and serve a neighbourhood. The host notes that a university building near the Manila end has clear sight over the hills. Leasing roof space there would allow point-to-multipoint coverage of the area, potentially as a wireless ISP. He stresses that airLink is a starting point, not a real-world site survey of interference and obstacles.
Technology and FriendsEpisode 586: Jim Wooley on Entity Framework Performance
  • Legacy apps can keep full Entity Framework on .NET Core. Wooley says .NET Core 3 added support for Entity Framework 6.3, which matters because EF Core still cannot model many-to-many without the join table as an entity. Existing object models with such relationships therefore cannot just be copied or upgraded to EF Core unchanged.
  • Don't drop Entity Framework over one slow query; learn its SQL. Wooley says the usual cause of customers' performance problems is not paying attention: you can use EF without knowing SQL, but performant apps need you to understand the SQL it generates and whether queries use the indexes. EF will not tune indexes; he says Azure SQL can, generating indexes from the queries it runs and rolling back any that degrade other queries.
  • Unnoticed lazy loading is the biggest problem he finds. Iterating five customers and touching .Orders costs one query plus five more, and it compounds across levels, though Wooley grants lazy loading helps when you never reach the later records. One customer had loops nested four levels deep, each with about five logging calls that ran .First() against the database and wrote the log to the database, with no business logic; deleting the code fixed it.
  • Several free tools show the generated SQL, with different trade-offs. Wooley's standby, SQL Profiler, shows every statement server-side but cannot tie it to a line of code. EF logging in both Core and full .NET records the generated SQL but omits parameter values by default because they may hold PII; EF Core has a setting to include them, which he would only enable when really troubleshooting. Visual Studio's diagnostic tools can filter to ADO events and jump from a statement to the responsible line, and App Insights can also be hooked in.
  • Start free, but a paid profiler can pay for itself fast. Wooley names EF Prof, from people behind NHibernate, and MiniProfiler among third-party tools, some of them paid. He says a roughly $200 license can easily cost less than the time spent hunting a problem without one.
Technology and FriendsEpisode 585: Angela Dugan on Team Dynamics
  • High-performing teams come down to paying attention to each other. Dugan, who has just moved from directing her consulting firm's Chicago office to a company-wide people role, says the secret is noticing what teammates need to succeed and treating them as whole people, not just "the person next to you slinging code". Her talk rests this on three pieces: understanding your team, building trust, and leadership skills such as active listening, mediation, coaching and assessment, which developers tend to skip as "soft skills".
  • A quiet colleague is not necessarily an introvert. Dugan calls this "the introvert myth": she is strongly extroverted but goes quiet from shyness and social anxiety, and others may be quiet because a past workplace punished speaking up. It matters because introverts and extroverts need different work environments: she thinks out loud at a whiteboard with someone else, while introverted coworkers do better given a few hours alone before they talk. The definition of extroverts as drawing energy from people and introverts as being drained by them is Giard's.
  • Personality tools give a team usable information about each other. Dugan recommends 16Personalities as an approachable version of Myers-Briggs. When she posted her own result on her company's Slack, coworkers posted theirs, and she found the firm has only a handful of extroverts. She also covers CliftonStrengths, DISC, Johari and Nohari windows (comparing the words you pick for yourself with the words others pick, as a measure of self-awareness), and personal journey lines.
  • Teams of similar people cause more friction in the long run. Dugan says a team of like personalities has less friction at first, but an all-introvert team has no one to rally whiteboard brainstorming, and balancing analytical, tactical and user-minded people produces better software for humans. She adds that a team split evenly by gender can still turn out to be all introverts, so personality is one more variable in building a team. The point that diversity inside the team mirrors a diverse user base was Giard's, and she agreed.
  • Personal README files tell teammates how to work with you. Dugan picked up the idea from an attendee at Agile Midwest after asking how she could keep track of the needs of her 34–35 people: each person writes a text file saying whether they are an introvert, what hours they keep, how strict their work-life balance is, and so on. She is writing her own with a few coworkers to settle a format before rolling it out at the company, and says README files and journey lines build trust because people tell their own story.
Technology and FriendsEpisode 584: Phil Japikse on .NET Core Support Cycle
  • .NET Core support is far shorter than .NET Framework's. Japikse contrasts the roughly 10 years of bug and security fixes Microsoft has given the .NET Framework (4.8 being current) with .NET Core's two tracks. An LTS (long-term support) release is supported for three years or for one year after the next LTS release, whichever is longer; a "current" release is supported for only three months after the next release ships, and then gets no patches at all.
  • A higher version number is not a longer-supported one. Japikse says 1.0 and 1.1 were both LTS, 2.0 was current and is already dead, 2.1 is LTS and supported to, he believes, 2021, and 2.2 is current. Since 3.0 shipped on 23 September, 2.2 stops being patched after 23 December. A group of 10 people from one company in his workshop had production code on 2.2, often because Visual Studio's template defaulted to it, and "freaked out" when he told them.
  • The next release line repeats the pattern. 3.0 launched as a current release, and 3.1, scheduled for 5 November, will be the LTS, leaving 2.1 and 3.1 as the supported releases. His own opinion, which he says is not Microsoft's, is that 2.1 was made LTS because it carried GDPR support and enhanced HTTPS.
  • Most teams on the short-lived release should roll back. Japikse advises going from 2.2 back to 2.1, saying the only significant 2.2 feature is IIS in-process hosting, a performance gain, so for most projects rolling back is a project-file change plus a couple of settings: follow Microsoft's 2.1-to-2.2 migration doc in reverse. Moving to 3.0 is a much bigger job, because 3.0 no longer runs on the .NET Framework, internal NuGet packages and other dependencies must move to .NET Standard 2.0, and most of the breaking changes are in EF Core.
  • Whether to roll back or upgrade depends on risk and testing time. For a new, isolated project with no dependencies, Japikse would go to 3.0. With dependencies that cannot be updated in the month or two left, he says roll back now and migrate later, especially for a high-risk line-of-business or financial application where a rushed move to 3.0 would skimp on testing; for something like a conference website it matters less. Recorded around mid-October 2019 at VS Live Chicago.
GCastGCast 65: Artificial Intelligence, Whale Sharks, and WildBook
  • Wildbook uses AI to identify individual animals by their markings. Giard describes the Wild Me application as treating stripes and spots like fingerprints (a zebra's stripes, a leopard's or whale shark's spots) to track individual animals' locations, movements and populations. Sightings can be reported by hand at whaleshark.org, but because that does not scale, Wildbook crawls the web and social media for photos and videos of the animals.
  • The bot turns a found video into a dated, located sighting. In what Giard says is a demo of the process rather than the bot itself, a Spanish-language whale shark video is run through language detection and translation (Azure services), keyword analysis ("whale sharks", "world's biggest fish"), keyframe extraction, detection of the shark in each frame, and text extraction from the frames. The "when" came from the upload date, September 26, 2017, and a "last month" in the text; the video gave no "where".
  • When location is missing, the bot asks the uploader. It posted a reply asking where the shark was seen; the uploader answered that it was while diving east of Isla Contoy, Mexico, which completed the record so the shark's migration can be tracked. The bot then replied that the uploader was helping a research project and linked the shark's own page.
  • Spot patterns are matched against known sharks, with confidence scores. The demo matched the video to a shark catalogued as H019 at a score of 520, with 66% of the spot triangles matching; the next candidate, BZ010, matched only about 23%. A higher score means a higher-confidence match.
  • Adopters can name a shark; the project is backed by AI for Earth. H019's page shows where it was spotted and nearby sharks, and an adopter has named it "John Cena". Giard points to microsoft.com/AI for Earth for the sponsoring program and whaleshark.org to adopt a shark.
Technology and FriendsEpisode 583: Edward Thomson on GitHub Actions
  • GitHub Actions first set out to host repository automation. Thomson, product manager for GitHub Actions at GitHub, says the version announced about a year earlier was aimed at work like labelling or assigning a newly opened issue. Before it, you built an app that listened to GitHub's webhooks and had to provision your own compute for it; Actions supplied the compute.
  • Users wanted CI/CD, so GitHub paused the beta and retooled. Thomson says the original ran inside Docker containers on Linux with little computing power, which suited a small Node.js build but choked on large builds, iOS apps or Windows work. GitHub stopped admitting people to the beta and rebuilt it on real virtual machines running Linux, macOS and Windows, so it now covers build, test and release as well as repository automation.
  • Workflows are YAML; actions are the reusable pieces. A workflow is YAML started from the Actions tab using starter templates, for example running npm build and tests on every pull request or push to master. Repeated steps such as a Docker login-and-push or a Kubernetes deploy can become an action with parameters, published in a repository and referenced by name. An action is either a Dockerfile, which GitHub builds and runs, or JavaScript; Thomson prefers JavaScript because it is cross-platform and comes with a toolkit and Octokit, GitHub's REST and GraphQL client for Node.js.
  • People are using actions well beyond build and deploy. Thomson's examples are a stale bot that runs nightly and proposes closing inactive issues, and a joke action inspired by Untitled Goose Game that deletes any issue lacking the word "honk". Giard suggests that stale issues might be better sent to someone for review than closed.
  • Actions was still in a largely public beta. Thomson says you sign up at github.com/features/actions and GitHub aims to admit people the next day, slowing admissions when capacity is short. He says continued investment in documentation and examples is one reason it is still in beta, and that announcements were coming at GitHub Universe in San Francisco on 13–14 November.
Technology and FriendsEpisode 582: Jeremy Likness on Blazor
  • Blazor runs C# and .NET in the browser through WebAssembly. Likness traces the path from ASM.js, a JavaScript subset targeted by the LLVM toolchain for C and C++ (for example, XOR-ing with zero to signal an integer), to WebAssembly, a bytecode for a stack-based sandbox with no DOM access. A team compiled Mono to WebAssembly in 2017, but that was a black box; Blazor adds the services for a full app and reuses the Razor templating engine in the browser ("Browser, Razor, Blazor"), so Razor class libraries can be shared with server-side MVC apps.
  • Server-side Blazor is production-ready; the WebAssembly version is not. Client-side Blazor was still in preview, with optimization and debugging work outstanding, and Likness says the team was targeting May 2020 for it. As a stopgap, server-side Blazor renders pages on the server and pushes fragments over SignalR to a thin client, and switching between the two is a flag. It comes with .NET Core 3.0; the WebAssembly preview needs Visual Studio 2019 with preview workloads enabled, and blazor.net has instructions.
  • The choice between server and client is a set of trade-offs. Likness says only the client-side version can run offline as a progressive web app. Server-side suits code with .NET Framework dependencies that cannot move to .NET Core, and code you do not want in users' hands, because the client-side version downloads your DLLs, whose IL can be decompiled; he calls obfuscation "a speed bump", not security. Where workloads should scale is the third factor; the example of keeping database-heavy calls on the server was Giard's.
  • Silverlight and WPF shops can carry their view models over to Blazor. Likness says many customers he talks to still run WPF or Silverlight clients and want a modern stack that also reaches Linux, Mac and phones. Code that followed MVVM can port its view models, but XAML UIs have to be rewritten as Razor, and apps with logic embedded in the UI are much harder.
  • WCF RIA Services users have several replacement options. .NET Core does not support WCF out of the box, so Likness lists a community WCF client project, gRPC with contract-based discovery, and OData, which he finds most intriguing. With an OData server, a Blazor client can share the same classes and validations and write LINQ filters that become API calls, so filtering happens on the server and only the needed records come back.
GCastGCast 64: Noise Reduction with Audacity
  • No room is quiet enough, so camera-mic audio needs noise reduction. Giard needs it when his handheld microphones fail and he falls back to the camera's built-in mic, which picks up fluorescent-light hum, fans and voices through walls. He uses Audacity because it is free, open source and cross-platform (download from audacityteam.org); in his words, "I'm kind of cheap".
  • Noise reduction is two passes: profile the silence, then apply. He selects about four seconds where both speakers kept quiet, runs Effect > Noise Reduction > Get Noise Profile so Audacity knows what counts as background noise, then selects everything (Ctrl+A) and runs Noise Reduction again, clicking OK with the default settings. On his interview clip the voices stayed the same and the hum was greatly reduced.
  • Check the result, because reduction also changes the voices. Giard warns the effect alters the voices it brings forward slightly; the settings can be tweaked, and leaving in a little background noise may be preferable to keep the voices as they were.
  • Export to use the audio elsewhere; save the project to keep editing. Edits live only in the Audacity project until File > Export writes a file; he exported a WAV from an imported MP3 and skipped the artist and title prompts, which he says matter more for music. File > Save Project stores an AUP file with supporting folders and files so the work can be reopened later.
Technology and FriendsEpisode 581: Laurent Bugnion on the Ignite Tour
  • Microsoft is taking Ignite's content on a worldwide tour. Bugnion says the Ignite Tour visits 30 cities, starting the week after Ignite (first week of November, Orlando), with Paris first, and runs until June: two-day events with about 100 sessions of 45 minutes, in places including Tokyo, São Paulo, Johannesburg and many US and European cities. He will do 15 stops, which is manageable because he lives in Zurich, and says Ignite itself is pushing to make about 30% of its audience developers.
  • Sessions are grouped into learning paths that each tell a story. A path is five sessions, about a day's worth, that tell one story but can be dipped into. Bugnion's covers modernizing an application in the cloud: moving an on-premises web app and its data to Azure, containerizing it with Kubernetes, monitoring with Azure Monitor and Application Insights, and extending it with serverless and Logic Apps. His informal polls suggest about 30–40% of attendees mostly follow a path, and Ignite sessions are recorded for Channel 9.
  • The sessions are packaged so that anyone can deliver them. Everything is open source on GitHub: session scripts, slides, deployment templates that stand up about 30 Azure resources with one click (he spent about three weeks on his), Camtasia demo recordings that a presenter can fall back on without good internet, and a train-the-trainer video. Microsoft staff, MVPs, regional directors and trainers will deliver on the tour, anyone may use the material afterwards, and the team commits to updating it as Azure changes at least until June.
  • The first tour's results led Microsoft to repeat it. Bugnion says last year's edition drew something like 50,000 attendees worldwide, from about 1,500 at smaller stops such as Mexico and São Paulo up to 6,000 in one venue on one day in Amsterdam. He says Microsoft's metrics showed good Azure adoption after the tour, especially free trials. His team also runs side events, and he asks user group organizers in tour cities to get in touch.
  • Live human translation still has value over machine translation. Bugnion says some stops, such as São Paulo, have human interpreters whom Microsoft trains in technical vocabulary; places like Japan get local speakers; and everywhere has AI-powered live translation in the app, a few seconds behind. He tells of briefing an interpreter in Rome while showing Microsoft's automatic translation, which she said had led her to steer her daughter away from the job, but holds that humans still win on accuracy and nuance. The advice to brief the interpreter beforehand is Giard's, which he credits to Josh Holmes.
Crosstalk SolutionsUVC-G4-PRO
  • The G4 Pro is UniFi Protect's top camera, priced accordingly. The UVC-G4-Pro lists at $449 MSRP (about $1 less on Amazon) for 4K 3840x2160 H.264 at a maximum 24 fps, a 3x optical zoom, a 108-degree field of view with some fisheye at the edges, IP67 rating, a gigabit port powered by 802.3af/at PoE, and a -20 to 50°C operating range. It offers only 720p and 4K settings, and the host wishes it had 1080p.
  • Mount order matters, and the host got it wrong on camera. The cable goes through the wall mount, then the cable gland (circular side toward the lens, needed for the IP67 seal), then the swivel. Aim the camera before tightening the wall mount, because tightening is what locks the position, and fit the optional pole mount before that, not after.
  • Only optical zoom made a face recognizable at 50 feet. Against a 1080p G3 bullet (about $139, outdoors for over a year), set to 30 fps at 6,000 bitrate against the G4 Pro's 24 fps at 16,000, the G3's digital zoom on a figure 22 paces away was blurry. The G4 Pro's digital zoom was better but still not identifying; 3x optical plus digital zoom gave a clear face. The host calls the comparison unfair.
  • The G4 Pro's night vision far outclasses the G3's. In pitch dark the G3 showed only that someone was there, while the G4 Pro lit the scene well, with each camera tested alone so the IR would not interfere. Jumping straight to full 3x optical zoom at night went blurry and did not recover; zooming more slowly worked, giving a rough view of a face at 50 feet.
  • The host rates night vision and microphone highest, 4K least. He calls the camera awesome but thinks 1080p is enough for security and leaves value for money to viewers. He has not tested the G4 Pro with UniFi Video, only UniFi Protect, and assumes but cannot confirm that it works there.
Technology and FriendsEpisode 580: Jason Bock on .NET Core 3
  • Clients increasingly deploy .NET to Linux, especially in the cloud. Bock says this is what his consulting firm sees and that cross-platform reach is a main selling point of .NET Core, along with phones and now the web through Blazor. .NET Core 3 had been released at .NET Conf a week or two before the recording.
  • WinForms and WPF apps can now target the .NET Core runtime. Bock says this does not make them cross-platform, since they still run only on Windows, but they get a faster runtime with fewer memory allocations. Because .NET Framework 4.8 will be the last Framework version and he cites Microsoft telemetry putting WinForms among the most-opened Visual Studio project types, he sees this as extending the life of large legacy apps rather than reviving the technology. Giard frames it as reassurance for companies that would otherwise face a rewrite.
  • .NET now embraces Google's gRPC rather than inventing its own. Bock compares it to WCF or remoting: you define messages and services in a protocol-buffers text file, and generators produce server and client code. Generators exist for other languages, so a .NET service could be called from Java, Ruby, Python or Go, and the format is built to be fast on the wire. He takes it as a sign of Microsoft's openness to adopting what people already like.
  • Blazor server-side ships now; the client-side version follows next spring. In server-side Blazor, which ships with .NET Core 3, rendering happens on the server, and a SignalR channel that is set up automatically routes events back and forth. Bock expects the WebAssembly client-side version around April or May, saying the programming model will be the same and code will not change. On the client, a Mono runtime file (mono.wasm) downloads first and then your assemblies, and .NET Standard assemblies can be shared between server and client.
  • .NET Core 3 can publish a single-file executable. Bock says it bundles the .NET Core runtime into one bigger EXE that runs whether or not the SDK is installed. The first run unpacks itself and is slower, and later runs seem to him a little quicker. He sees it easing deployment of WinForms and WPF apps (compared with ClickOnce) and of console apps for Linux or Mac.
Crosstalk Solutions2.4GHz PTMP Through Trees
  • A 2.4 GHz point-to-multipoint access point costs about $350. The host used a Ubiquiti Rocket AC Prism 2.4 GHz (R2AC-Prism: gigabit port, separate management radio, GPS sync, unused here) at $192 on Amazon, with the AirMax 2x2 10 dBi omni antenna (AMO-2G10) at about $150. He says the 10 dBi omni suits a few miles; past about 10 miles use the 13 dBi omni (roughly 30% larger) or, better, sector antennas on multiple Prisms.
  • At 200 feet through forest, 2.4 GHz performed very well. A NanoStation M2 client saw a -48 dBm signal (chains about -53 and -54 dBm), a 300/300 Mbps link rate and 95% airMAX quality. A fast.com internet test gave 70 Mbps and an iperf LAN test, run because viewers asked for one after his earlier video, gave 61 Mbps.
  • At about a quarter mile, the link failed completely. Shooting through houses and forest down a residential street, the NanoStation connected not at all, and the scan showed many neighbouring 2.4 GHz networks; he cannot say whether distance and obstacles or interference was the cause. A second spot, a logging road about a quarter mile away through trees, also got no signal.
  • Line of sight matters most; height would likely have helped. The host frames 2.4 GHz as the middle ground: faster than 900 MHz, which got through the same forest in his earlier video, but worse at penetrating obstacles than 900 MHz. He did not test from the roof but expects 30 feet of height to clear the 6–10 foot brush that blocks ground-level links, and calls the test unscientific.
Technology and FriendsEpisode 579: Laurent Ellerbach on Diversity and Inclusion Workshop
  • LEGO Serious Play uses bricks as metaphors to express ideas. In Ellerbach's description, each person builds an answer to a question in silence, then explains it while everyone else listens actively, and the group then finds what is common. Any brick can stand for any idea, so one person's TV is another's sofa. He says six bricks of the same colour can be combined 915 billion ways, a figure Giard repeats back as "billion with a B".
  • Ellerbach argues that building draws out more than talking does. He says the hands are connected to about 80% of the brain's neurons against perhaps 5% for the mouth, and that building uses both hemispheres, one to make the model stand and one to make it look good. In his account the unconscious mind takes over while you build and expresses more than you consciously intended, and he says MRI-based neuroscience has shown this.
  • His diversity and inclusion workshop turns hard questions into builds. Ellerbach, an engineer at Microsoft who is a certified facilitator, built the three-hour workshop because Microsoft wanted something more immersive and experiential than a discussion. A question like "what does respect mean for you?" draws a more considered answer when built than when written on a sticky note, and the answers differ widely from person to person. The method was created by LEGO with faculty from Switzerland in 1996 and released openly, with certification offered by consulting firms, but the questions and their flow, which build gradually from easy questions, are his own.
  • The rules protect the unconscious, unhurried thinking the method depends on. Participants stay positive and do not judge anyone, since the builds are personal. They must not supply a word to someone searching for one, because the brain lazily keeps whatever it is given. They give each other time to process, keep phones and PCs away except for photos, and build in silence, so that attention is not pulled to what is happening around them.
  • Ellerbach scales the workshop by training other facilitators, not publishing it. Demand after the first sessions led him to train facilitators and share the material openly with them, unpaid, asking only that changes be discussed with him; for now it is available only inside Microsoft, though he offers to train outsiders. He will not post the content publicly because he wants facilitators trained first. His next session was in London with 80 participants and several facilitators.
Technology and FriendsEpisode 578: Raj Krishnan on Azure Data Explorer
  • Azure Data Explorer productizes the engine behind Microsoft's own monitoring services. Krishnan, who works for Microsoft, says ADX (formerly called Kusto) underlies Log Analytics, Application Insights, Time Series Insights and a security threat analysis service, which are abstractions over it; customers could previously use only those abstractions and can now bring their own use cases. Giard adds that long internal use means Microsoft has already found and fixed many of its bugs.
  • It is built for near-real-time queries over high-volume ingested data. Krishnan describes a proprietary in-memory, columnar store, sharded across compute and automatically indexing everything ingested, aimed at questions about the last 5–10 minutes rather than live streaming (which he leaves to tools like Stream Analytics). He claims queries over 200 billion records in about 1.3–1.4 seconds and petabytes a day ingested.
  • Because it is in memory, keep only active data there. Krishnan says ADX is not for "10 years of data" as in a SQL data warehouse: hold what you are querying now and move older data out to blob storage or a data lake, since cost scales with the data held and the compute needed for complex queries. The cluster is created and sized from the Azure portal by memory and query compute.
  • Raw data goes in untransformed, but you define the schema. The three native ingestion paths offered in the portal are Event Hub, IoT Hub and blob storage, configured by connection strings; other sources such as SQL Server have no direct connector and go through Azure Data Factory's ADX connector into blob storage first. Data is queried with KQL (Kusto Query Language), SQL-like but not SQL, in the portal or the downloadable Kusto Explorer client, and Power BI can connect by direct query for real-time dashboards.
  • A customer's 14–15-hour SSIS batch job prompted a non-telemetry use. Krishnan says the customer's forecasting data from multiple sources took 14–15 hours to process in SSIS before ending as Excel files, and with more mergers and acquisitions they feared one day's run would overlap the next. His approach was to drop transformations, load reasonably denormalized data straight into ADX and query it there.
Scott HanselmanCustomize the Windows Terminal with WSL2, Cascadia Code, Powerline, Nerd Fonts, Oh My Posh and more!
  • Cascadia Code is a programmer's font worth switching to. Hanselman describes it as a new open-source monospaced font Microsoft "just released yesterday" under the SIL Open Font License, on GitHub; he shows its distinct 1/l and 0/o shapes and its ligatures, which merge sequences such as hyphens, arrows and "www" into single glyphs. He sets it as the font face in the Windows Terminal's profiles.json.
  • Oh My Posh plus posh-git gives PowerShell a git-aware prompt. His recipe is three Install-Module calls (posh-git, Oh My Posh and a specific version of PSReadLine), scoped to the current user so no administrator rights are needed, then importing the modules and setting a theme ("Paradox") at the bottom of $PROFILE. He notes Oh My Posh is a couple of years old and only occasionally updated but says it "works amazingly", and shows branch names and tab-completion of git checkout.
  • Cascadia Code's first release lacks Powerline glyphs, so the prompt renders wrong. Users have already asked for Powerline symbols on the font's GitHub repository. Rather than clone the Nerd Fonts repository ("three or four gigs"), he installs FontForge with apt-get in Ubuntu 18.04 under WSL and runs the Nerd Fonts font-patcher script with -c (complete) against the font on the mounted C drive; the patched file grows from about 200K to almost a megabyte.
  • Reference the patched font by its internal name, not file name. After installing the "Cascadia Code Nerd Font Complete" file from Explorer, he points the PowerShell Core profile at the font name shown when the file is opened, removing a space before it renders correctly.
  • Prebuilt Nerd Fonts avoid the patching entirely. He says anyone who does not want to do the work can download any of the many developer fonts already patched on the Nerd Fonts site, though Cascadia Code was "not there yet" at recording.
Scott HanselmanDeveloping on Windows with WSL2 (Subsystem for Linux), VS Code, Docker, and the Terminal
  • Windows 10 is now a compelling place for Linux development. Hanselman, who says he prefers the Windows interface and found Cygwin unsatisfying, now uses Windows full time and moves between containers, Linux and Windows. His prerequisites at recording were a Windows 10 Insiders Fast build, WSL version 2 with the "Windows Subsystem for Linux" and "Virtual Machine Platform" features turned on (via the Features dialog or the PowerShell command shown on a distro's Store page), the Docker tech preview, VS Code's remote extensions and the Windows Terminal.
  • WSL2 runs real Linux in a tiny, fast virtual machine. He shows it using about 500 MB of RAM in Task Manager and starting in two to four seconds cold and under a second hot, with full access to Windows drives under /mnt/c. wsl --list and wsl -d switch between his three installed distributions, including Ubuntu (free from the Store), Debian and a paid WSL-specific distribution with an X server that he recommends.
  • The Windows Terminal is a new console, not a new shell. He stresses the difference: cmd, PowerShell and Ubuntu have all been hosted by the old conhost, and the open-source Terminal, then in preview at "version 0.3 or 0.4", replaces that console with tabs, dropdowns and profiles defined in an editable JSON file.
  • VS Code remote blurs the line between Windows and Linux. Typing code in Ubuntu opens VS Code on Windows connected to WSL, with part of VS Code running as a server inside Linux (visible in htop). He builds a Node app in the Linux file system, browses those files in Explorer through a Plan 9 network server, hits a breakpoint while debugging, and reaches it at localhost:8000 from Edge's Chromium-based Canary build because localhost is forwarded into WSL with no setup.
  • Docker's tech preview works from both Ubuntu and Windows. After starting Docker for Windows, he runs docker images and docker run hello-world in Ubuntu and sees the same images from the Windows side; he notes everything shown is free to download.
Crosstalk Solutions6 Mile Rural PTP Link
  • Rooftop radios cannot see each other across the rolling hills. A viewer's family business wanted to share Spectrum Business internet from its Berlin, Ohio site with its DSL-only Winesburg site 6.03 miles (just under 10 km) away. In Ubiquiti's airLink planner, airFiber 5X HD radios at about 40 feet (12 m) on each roof hit many obstructions, and dropping to 900 MHz Rocket M900s did not clear them either.
  • The link only clears with towers around 100 feet tall. At 30 m (about 100 ft) on both sides the simulated 5 GHz airFiber link showed 100% signal and an estimated 240 Mbps. Because it is only a simulation, the host would build to 120 feet (36 m) for margin, and expects little interference in so rural an area.
  • The towers cost far more than the DSL they would replace. Used self-supporting towers listed at $4,500 (110 ft) and $6,000 (120 ft); with delivery, crane, footings and a climber to mount and aim the radios, the host estimates a bare minimum of $10,000 per side. Against DSL he guesses at $200–300 a month, he recommends staying on DSL.
  • A relay through an existing hilltop tower is the other option. If a tower in between, such as a cell tower, has line of sight to both sites, the business could rent space and dogleg the link over the hill. The host found no such tower on the map and had no information about one.
Crosstalk SolutionsUSW-Flex
  • The USW-Flex is a small, PoE-powered, UniFi-managed distribution switch. It is a five-port layer 2 switch with one PoE-in and four PoE-out ports, retailing at $99 USD, with no separate power supply. In UniFi it is fully VLAN-capable, offers per-port PoE off/on, and appears as model "USF 5P"; firmware was 4.0.54 on controller 5.10.26 as of the recording.
  • Its "weatherproof" claim looks thin from the bottom. The host found no IP rating, and the large opening at the bottom would let water, bugs and spiders in, though rain from above would not get in. Mounting is flexible: a wall/pole bracket, rubber feet, a magnetic mount, and a split cover so cables are run before closing it.
  • Output power depends entirely on the PoE standard feeding it. The quick start guide gives a total budget of 8 W on 802.3af, 20 W on 802.3at, and 46 W on 802.3bt or a 54 V 1.1 A injector. On a US-8-60W (af only) the host's Yealink phone kept rebooting once a NanoHD was added; on a US-24-250W (at) both ran.
  • Even 802.3at could not carry a G4 Pro alongside two devices. With the phone and NanoHD attached, the G4 Pro camera blinked without linking and the NanoHD dropped; alone, the G4 Pro powered up. The host suspects 802.3bt, which Ubiquiti's sales page pairs with the USW-Pro-48-PoE, USW-Pro-24-PoE and USW-Industrial, would do better, but had no bt switch to test.
  • It answers requests for an 802.3af version of the Nano Switch. The host frames it as a UniFi-controlled counterpart to Ubiquiti's 24 V passive Nano Switch, which has no configuration interface. He sees it suiting installs like his own solar setup with several 802.3af devices; it will not supply 24 V passive.
Technology and FriendsEpisode 577: Lorena Mesa on the Python Software Foundation
synopsis

Mesa, a data engineer at GitHub, PyLadies Chicago organizer and third-term director of the Python Software Foundation, describes the PSF as a maturing nonprofit whose job is the Python community rather than the language, and ends on governance: she holds that the PSF board and the core developers' steering committee are two sides of one practice of organizing a global community.

What the PSF is. A US 501(c)(3) that holds the Python trademark, runs PyCon US, maintains PyPI and funds grants. Mesa stresses that directors need not be core developers. The 13-member board is publicly elected; terms moved from one year to three, about a third elected each year, to keep knowledge on the board. She was just made vice chair elect, after serving as communications chair.

Money and grants. PyCon US profits pay staff, then infrastructure, then a global grants program covering things like Django Girls workshops and developer-sprint travel. A new education committee has made its first call for proposals.

Reach beyond the US. Mesa has run PSF Q&As abroad, including in Spanish at PyCon Colombia 2018, and points to visa barriers for travel to the US. Anyone using the PyCon name must contact the PSF and have a code of conduct; the PSF's own is being overhauled with an external consultant.

Services to projects. Legal counsel answers basic questions, the PSF is taking ownership of Requests from Kenneth Reitz, and fiscal sponsorship spares projects from forming their own nonprofit. Voting needs membership above the basic level, earned for example by giving money or about five volunteer hours.

Governance. Mesa cites the steering committee formed after Guido van Rossum stepped down, a translations work group she co-founded, and Brett Cannon's line "I came for the language, but I stayed for the community".

  • The PSF stewards Python's community, not the language itself. Mesa, a GitHub data engineer and PSF director, describes the foundation as a US 501(c)(3) that holds the Python trademark, runs PyCon US, manages PyPI's infrastructure and runs a grants program; she is not a core developer, and the language is the core developers' business.
  • Three-year board terms were adopted to retain knowledge. Mesa says the 13-member, publicly elected board moved from one-year terms to three-year terms with about a third up each year, so it can work on longer-term efforts; beyond attending meetings, directors choose their own committees and work groups (education, finance, code of conduct, trademark, translations).
  • PyCon US profits pay for staff, infrastructure and global grants. Grants can run from a few hundred dollars for a local Django Girls workshop to travel for a developer sprint, and a new education committee has issued its first call for education-focused grant proposals.
  • Any PyCon must meet PSF standards, chiefly having a code of conduct. The PSF owns the PyCon name, but Mesa says the only requirement is to have a code of conduct, while the PSF overhauls its own with an external consultant to make it more enforceable; she ties this to outreach beyond the US, from a Spanish-language Q&A at PyCon Colombia 2018 to the first PyCon Africa in Accra, chaired by a director based in Zimbabwe.
  • The PSF can take over key projects or fiscally sponsor them. Mesa says Kenneth Reitz wanted to stop owning the Requests library and the PSF is moving it under its own GitHub, and that projects can shelter under the PSF's 501(c)(3) instead of forming their own; legal counsel answers basic usage questions, and staff have helped with the Python 2 to 3 move ahead of Python 2 support ending at the end of the year.
Crosstalk SolutionsYealink CP920
  • The Yealink CP920 is the host's go-to small-room conference phone. Crosstalk sells it, at $315 (or $300 for buyers who mention the video), and the host says it costs much less than Polycom conference phones such as the IP 6000. He reports selling "a ton" of them for years without a return or a customer complaint.
  • It covers rooms of about 20 feet and installs without network cabling. Its microphones pick up voice through 360 degrees to 6 metres (about 20 feet). It runs on PoE through a 10/100 port or on a 12 V DC adapter, and has built-in Wi-Fi for rooms with floor power but no network drop. It also has Bluetooth, a 3.1-inch touchscreen, touch-sensitive mute keys, five-way local conferencing and USB call recording to a thumb drive.
  • Registering it to FreePBX takes one screen, not Endpoint Manager. Log in with the default admin/admin and change it. Under Account, set Line Active to enabled (it ships disabled), enter the FreePBX extension's name, user and SIP password, and give the PBX's IP address or FQDN as the host. If the room has a voicemail box, set the voicemail number under Advanced to *97.
  • The CP960 is for large rooms needing spread-out microphones. It has the same form factor but an Android colour display, for $490. For $580 it comes with two docked wireless microphones, which the CP920 cannot take. The host considers the CP920 adequate for most of the SMB and small-enterprise rooms Crosstalk sells into.
Crosstalk SolutionsRacetrack Wireless Install
  • A pieced-together mesh network had outgrown the speedway's needs. Aaron Zufall of Zufall Communications had built it in his spare time for security cameras at the Pennsylvania Motor Speedway near Pittsburgh. He says its Wi-Fi was spotty away from the APs, and the track wanted grandstand Wi-Fi so fans could follow online live timing without cellular data. Cambium Networks sponsored all the equipment for the replacement.
  • One elevated ePMP 3000L feeds four sites from a single fibre line. The track's only internet, a FiOS 150/150 Mbps fibre line, lands in one building, where the AP sits on a 10-foot mast. Force 300-16 subscriber modules link the ticket booth, press box, pit scoring booth and pit concession stand. A Cambium engineer measured 129 Mbps down and 133 up at about −51 dBm RSSI on a barely line-of-sight 40 MHz channel.
  • Sector APs light the stands while guest bandwidth is capped. Four cnPilot e501S outdoor sector APs (90° beam, IP67, up to 256 clients) cover the main and side grandstands, and e410 indoor APs serve the concession and pit areas, all as one network. Guest traffic is throttled to 5/2 Mbps per client and 50/20 Mbps for the whole guest network.
  • The sector APs reached far beyond the stands. On the far side of the track, about a fifth of a mile from the APs, the host's iPhone tested at 40 Mbps down and 20 up, and the Cambium engineer saw 2–3 bars at about 1,000 feet.
  • The track's Wi-Fi contest stress test peaked at 138 clients. The Cambium dashboard showed most clients on 2.4 GHz (105, against 26 on 5 GHz) and a peak of about 74 Mbps throughput. The Cambium engineer reports frame utilization stayed below 30% all evening.
Technology and FriendsEpisode 576: Dan Rey on Microsoft Surface
  • Every Surface device supports touch and stylus input. Rey, a Microsoft Surface specialist selling to healthcare and life sciences, says this sets the six or seven Surface-branded devices apart from other OEM lines he knows of, across desktop, tablet and hybrid forms.
  • The Surface Book detaches mechanically because its base holds hardware. The base carries a second battery and a GPU, so holding the release button for about two to two and a half seconds checks that no software is using that GPU; Rey assumes Adobe video tools or games would block detaching until closed.
  • Surface comes in separate consumer and business versions. Rey's Surface Pro 6 from the Microsoft store shipped with Windows 10 Home, while business versions ship with Windows 10 Pro and may differ in specs and warranty.
  • Rey says Surface firmware is supported longer than rival OEMs'. He says other manufacturers update hardware settings for one to maybe three years, while Surface devices three, four or five years old still get firmware updates; he also pitches Surface as a showcase for Microsoft 365, with sign-in through a cloud identity.
  • The Surface Hub is built for real-time meeting-room collaboration. Rey says agile teams among his healthcare and life sciences customers use it as a touch-first digital whiteboard whose boards save to the signed-in user, and the Whiteboard app is now also on the web, iOS and Windows 10, so he can join the same board from an Android phone.
GCastGCast 63: Sentiment Analysis JavaScript Demo
  • The demo page flags text above 0.5 as positive. A web page with a text area and an Analyze button sends the text to the sentiment endpoint of a service created in West US. If the returned score is above 0.5 it shows "That is a positive thing to say" and a thumbs-up image; at 0.5 or below it shows the negative message and a scowling image. "Life is Beautiful" scored 0.99 and "Life is Terrible" about 5%. "So-so" and "medium fair" phrasings still came out fairly positive.
  • Giard likes jQuery for its elegant web service calls. The script reads the textarea with jQuery and posts to the endpoint. It sends the subscription key in the header (hidden in the video), application/json as the content type, and a documents array. That array holds one document with the language given explicitly, an ID for later reference, and the user's text.
  • The response handler checks errors before reading the first score. It displays any errors and stops. Otherwise it confirms at least one document came back and reads only the first, since the code handles one document at a time. It formats the score to two decimal places with toFixed(2) and toggles the two hidden images' display. With no documents it shows "nothing to analyze", and there is general error handling besides.
  • The code is in Giard's GitHub cognitive services demos repo. It is the sentiment analysis demo in the Cognitive Services demos repository at github.com/davidgiard. The repository includes notes on setup, including getting your own key.
GCastGCast 62: Sentiment Analysis Cognitive Service
  • Sentiment analysis scores text from negative to positive. The service is part of the Text Analytics API, under Language at microsoft.com/cognitive. It returns a score between 0 and 1 for each document: the closer to 1, the more positive. On the documentation page's demo, a sentence about a wonderful Seattle trip scored 0.8372 (about 84%), and one about rain spoiling the trip scored 0.0364 (about 4%). The page's demo also showed the language and key phrases.
  • One POST, with a region-specific endpoint and two headers. The URL is the endpoint for the region where the resource was created (East US here), plus /text/analytics/v2.0/sentiment. An optional showStats true/false query parameter returns extra statistics. The Ocp-Apim-Subscription-Key header takes either of the resource's two keys; Giard says there are two in case one gets compromised. Content-Type is application/json or text/json, and their schemas differ slightly.
  • The status codes tell you what failed. 200 is OK. A 400 means something like a wrong key, a wrong URL or malformed JSON. A 500 means something went wrong, and the response carries information about why. The documentation also has sample code in curl, C#, Java, Ruby and Python (2.7 and 3.2 shown), with the endpoint, key and body left to fill in.
  • The browser console scores several documents in one call. Giard ran the console's default body of three documents, in English, French and Spanish. It returned 200 OK in about 0.15 seconds with no errors, scoring them 98%, 84% and 33%, with character counts included. He guesses the Spanish one says something negative.
Crosstalk SolutionsBackyard PTMP
  • A wireless link design starts from a marked-up map. A viewer asked whether two Ubiquiti M5 radios would carry a new Xfinity line from the main house to a shop 60 yards away and a camper 70 yards away, the two 25 yards apart. The host first asked for a Google Maps markup of the sites. He then ignored the trees on it on the viewer's word that he had clear line of sight.
  • An M5 point-to-multipoint setup would work, and is probably overkill. The design has a NanoStation M5 on the house in point-to-multipoint mode and a NanoStation Loco M5 at each remote site, each behind an ETH-SP-G2 surge protector, feeding a UAP-AC-Lite. The camper's surge protector probably cannot be grounded, and the host says it can be left out. The Amazon parts total $455.53, including $77 for the NanoStation and $124.96 for a Loco two-pack.
  • An AC upgrade adds throughput the job does not need. It uses the same layout with a LiteAP AC (LAP-120, $81.37) at the house, NanoBeam AC Gen2 stations ($92.42 each) and UAP-AC-Pro access points ($134.26 each). Neither total includes the UniFi controller the access points need. The host links all the parts on Amazon and asks viewers to buy through his links.
Crosstalk SolutionsTeslaUSB - Automatic Dashcam Backups with Raspberry Pi
synopsis

The host turns a Raspberry Pi Zero W into a USB drive that sits in the Tesla, recording dashcam and Sentry Mode footage and serving music. When the car reaches home Wi-Fi, footage copies automatically to a Windows share and new music syncs back. He ends with the Pi velcroed in the storage compartment and the car's recording icon showing.

Hardware. He uses marcone's pre-built image of the TeslaUSB project, which began as cimryan's manual build. The parts are a cased CanaKit Pi Zero ($24.99), a 64 GB SanDisk Ultra card ($12.49) and a short right-angle micro-USB cable. He picks the Zero for its size and low battery draw, and skips a USB add-on board that would stick out.

Windows preparation. The Pi's config file holds credentials in plain text, so he creates a local Windows user limited to two read/write shares. The footage share is named "TeslaCam" because viewer programs expect that name.

Imaging and configuration. He formats the card, deletes a leftover 16 MB unallocated partition, and writes the version 1.3 image with Win32 Disk Imager. He warns twice that choosing the wrong drive destroys its contents. He then edits the sample config with the share server and credentials, Wi-Fi details, time zone and an 80% cam-size split, and saves a backup copy. He skips the option to keep the car awake through Tesla's API: opening the app, or running climate for hours, gives long offloads time to finish.

First boot and troubleshooting. Setup runs for 5–10 minutes. He follows it over SSH (default password "raspberry") through marker files and a log. His install stalled twice, and rerunning /etc/rc.local as root resumed it. The result was a 45 GB cam disk and a 12 GB music disk.

In the car. The inner micro-USB port carries data. The Pi appears as a drive after about 30 seconds, with a double-blinking LED.

  • A Raspberry Pi Zero W replaces the Tesla's dashcam USB stick. Running the open-source TeslaUSB project, it stores dashcam and Sentry Mode footage plus a music library. On reaching home Wi-Fi it offloads footage to a Windows share and pulls new music from another, so nothing has to be carried indoors. The host credits cimryan's original manual build and marcone's pre-built image, which he uses.
  • A cased Pi Zero draws little power and stays protected. The host's parts are a CanaKit Pi Zero kit with case and heatsink ($24.99), a SanDisk Ultra 64 GB card ($12.49) and a 6-inch right-angle Cable Matters micro-USB cable, velcroed in the storage compartment. He skips the full-size USB add-on board because it sticks out and can be knocked. His Amazon links are affiliate links.
  • Give the Pi its own Windows account. The config file stores the share password and Wi-Fi key in plain text, so the host creates a local "Tesla" user that can reach only the two shares, with read/write access. He names the footage share exactly "TeslaCam", because footage-viewer programs look for that name by default.
  • Write the card carefully, then set the storage split and keep-awake. The host flashes version 1.3 (the 2019-06-15 image) with Win32 Disk Imager, warning that it and SD Card Formatter will wipe whatever drive is selected. In the renamed config file, setting cam size to 80% gave him about 45 GB of footage and 12 GB of music. Instead of the car-API keep-awake option, he turns on climate in the Tesla app, which he says keeps the car awake for hours.
  • Restart the setup script if first boot stalls. Setup takes about 5–10 minutes. SSH to pi@teslausb.local was hit-and-miss for the host, so he used the IP from his DHCP leases. If the log sits 10–15 minutes on one line, rerun /etc/rc.local as root; his install needed two restarts. In the car, use the inner micro-USB port, which he says alone carries data, and look for the dashcam icon.
GCastGCast 61: Text Recognition C# Demo
  • The demo reads its endpoint and key from app config. The code is the RecognizeText demo at github.com/davidgiard/cognitivesvcsdemos. Before running it you create a Cognitive Service in Azure. Then you add an app config file with an appSettings section holding two keys, the computer vision key and the vision endpoint, filled with your own service's values. You also need a picture of text on disk; Giard uses a Robert Frost poem.
  • The first call posts the image bytes asynchronously with HttpClient. The code posts to the endpoint plus /vision/v2.0/recognizeText?mode=printed, so it assumes printed rather than handwritten text. It adds the key header and turns the file into a byte array using boilerplate Giard says he found online. It sets application/octet-stream and calls PostAsync with await, so the form stays responsive but the code after it waits for the reply. After checking for a 2xx success (he thinks 202), it reads the Operation-Location header, takes the first value because headers can be arrays, and stores the URL in a private variable.
  • The second call is a plain GET, deserialized with Newtonsoft.Json. GetAsync sends the stored URL with the key header and no body, which Giard notes GETs do not support anyway. The response string is deserialized into a strongly typed results class. It holds a status string and a recognition result containing an array of lines, each with text, an eight-integer bounding box and an array of words, each with its own box and text.
  • Large images need polling; a small one returns almost instantly. The demo poem took a fraction of a second to process. Giard says large images take longer, and you may want a loop that pings the second URL periodically. The demo just shows the status and then loops through the lines, one per line.
Scott HanselmanLogitech Brio vs Sony A6000 with Elgato Camlink 4k - No Contest
  • A ring lamp improves webcam lighting, but doesn't fix it. With window light on one side, Hanselman's Logitech Brio left him washed out. The ring lamp's adjustable colour and brightness made it "a lot better" but still a little overexposed, and he notes his three monitors also act as light sources.
  • A used mirrorless camera makes a cheap, much better webcam. He feeds a Sony A6000 over HDMI into an Elgato Cam Link 4K. He says the camera, once about $1,000, cost about $300 on Craigslist, and the Cam Link is about $100. A 1080p version of the Cam Link exists, and he only gets 1080p out of the Sony anyway.
  • Hanselman says the Brio is not even competitive with it. He likens the gap to "shooting a bullet and throwing it" and says the setup looks like "a streaming blu-ray" on Skype, Teams, Zoom and Google Hangouts. He recommends it to remote workers, citing his own almost 13 years of working from home.
Technology and FriendsEpisode 575: Kevin Gates on Cloud Architecture
  • Choose a cloud migration strategy per tier, not for the whole app. Gates, a Microsoft cloud solution architect, draws a sample app with a web tier, a Java and .NET API monolith, a SQL database that also does backups and file serving, and back-end logging and reporting; he proposes microservices for the API, lift-and-shift into platform-as-a-service for the database, and serverless for the back-end work.
  • Split the monolith by domain and align teams to each domain. Gates uses domain-driven design (cart, sales, inventory, printing) so each team can ship independently, then packages each service as a container image in megabytes rather than a VM's gigabytes; Azure Kubernetes Service can raise one busy service, such as inventory, from four replicas to five or ten without scaling the rest.
  • The database and file share can move with almost no code change. Gates lays out SQL Server in a VM (IaaS), Azure SQL Database (PaaS, with automatic backups and transparent data encryption) and SQL Managed Instance in between; moving to Azure SQL needs mainly a new connection string, and Azure Files over SMB 3.0 served a partner whose app hard-coded UNC paths, whereas Blob storage would need REST client changes.
  • Cross-cutting and event-driven work maps to native services and serverless. Application Insights in Azure Monitor combines platform metrics with custom ones such as orders fulfilled and can trigger scripts, webhooks or Azure DevOps items on alerts; a receipt job can become an event chain that queries a new order, writes a file to Blob storage and emails the customer a link.
  • A stateful web tier must move its state out before scaling. With session state on one server, a second instance would show an empty shopping cart, so Gates moves state to Azure's Redis cache service and hosts the site on App Service; he says migration can be phased, often database first, with logic kept close to its data.
Technology and FriendsEpisode 574: Mercedes Bernard on Dev Together
  • Dev Together teaches new developers the skills nobody explicitly teaches. Bernard, a senior software engineer and engineering manager at Tandem, runs the volunteer Chicago community, not incorporated as a nonprofit, to connect early-career developers with experienced mentors for code review, Git and source control, pair programming and job-hunting.
  • Mentors review code in advance, then pair through the feedback. Bernard calls the design "high value, low commitment": mentees say what they want feedback on, mentors spend about an hour reviewing beforehand, and the event on the second Tuesday of each month runs only 6 to 7:30, with mentors matched month to month rather than assigned long-term.
  • The idea came from gaps seen in apprenticeship applications. Reviewing code samples for Tandem's apprenticeship, Bernard saw a gap between bootcamp, self-taught or college code and industry code, and Tandem could not hire all hundred applicants; the community, then a year and almost two months old, draws about half repeat and half new attendees and has added lightning-talk nights and workshops on React state, unit testing with Heroku deployment, and Git.
  • Bernard reports benefits on both sides of the mentoring. One mentor with almost 30 years' experience told her pairing on a for loop versus a while loop restored his empathy for new hires, another now coaches early-career developers at work, and mentees tell her about interviews, offers and freelance clients; a Madison, Wisconsin organizer started a chapter under the same name and branding.
  • Bernard argues gatekeeping computer-science topics aren't vital to the job. Her talk "Fun and Friendly CS" explains topics like big O notation and linked lists with accessible metaphors to tell developers without that education they are still real coders; Giard adds that he first heard of big O in a job interview and never met it in a project.
GCastGCast 60: Text Recognition Cognitive Service with Binary Images
  • Postman can send an image file, which the browser tool cannot. The in-browser test tool from the previous episode only accepts a URL to an image online. Giard uses Postman, which lets you set the URL, HTTP verb, headers and body of a request, to send a picture of text from disk to the Recognize Text API without writing code.
  • The first call is a POST of the raw image bytes. The URL is the service's endpoint, copied from the portal, followed by the documented Recognize Text path with mode=printed in the query string (the documentation gives handwritten or printed as the options). Content-Type is application/octet-stream for binary data, rather than application/json. The Ocp-Apim-Subscription-Key header carries either one of the service's keys, and Giard stresses that the header name must have no spaces. In Postman the body is set to binary and a file chosen from disk.
  • The POST returns no text, only a job URL. The body comes back empty. The Operation-Location response header holds a URL of the form endpoint plus /vision/v2.0/textOperations/ plus a GUID. It matches the documented Get Recognize Text Operation Result call, and it identifies the job just started.
  • A GET to that URL returns the job's status and the text. It needs only the same subscription-key header. Giard notes the status may still show the job in process, or an error, rather than succeeded. On success the result is an array of lines, each with its text and an array of words.
  • Every line and word comes with a bounding box. A bounding box is an array of eight integers: the x, y coordinates of the four corners of the rectangle around that line or word. Giard says this lets you locate a word in the original image to highlight it, blank it out or replace it.
GCastGCast 59: Cognitive Services Text Recognition service
  • The newer Text Recognition service beats the older OCR service. Giard says the Recognize Text operation in the Cognitive Services Computer Vision API is slightly more complicated to use than Optical Character Recognition, but its results tend to be better. It turns a picture of text into the text itself.
  • Recognizing text takes two calls: one starts a job, one collects it. A POST to the endpoint plus /vision/v2.0/recognizeText?mode= sends the image, either as a URL pointing to it online or as the binary image. mode is either printed or handwritten. The call returns a 202 and a URL carrying an operation ID. A GET to that textOperations/<operation ID> URL returns the job's status (complete, in process, or error) and, once it has succeeded, the text. Giard says the split is what lets the service handle large text-recognition jobs.
  • A Cognitive Services resource gives you an endpoint and key. He creates the resource in the Azure portal, East US and the cheapest pricing tier, which takes about 30 seconds. The Overview page gives the base endpoint for all Cognitive Services. The key has to go in the Ocp-Apim-Subscription-Key header of every call, and he says to keep it safe. The Content-Type header says whether the image goes as binary data or as JSON pointing to a URL.
  • The results give lines and words, each with a bounding box. Testing both calls in the documentation's in-browser console on a poem he found online, he got a 202 from the POST and a 200 with status "succeeded" from the GET. The response holds an array of lines, each with its text, a bounding box of eight numbers (the XY coordinates of four corners) and an array of words carrying their own boxes. Giard says the boxes let you highlight, block out or replace a line or a single word in the image.
Crosstalk SolutionsRaspberry Pi 4 Heat Testing
  • Heat sinks only delay the Raspberry Pi 4's thermal throttling. The Pi 4's Broadcom quad-core 1.5 GHz CPU throttles at 80°C; under stress -c 8 with all four cores at 100%, the heat-sinked board showed the throttle icon after roughly two and a half minutes (2:10 on a stopwatch started about 30 seconds late). The host measured 40–50°C on the outside of the CPU heat sink during the test.
  • The Pimoroni Fan SHIM kept the CPU from ever throttling. With the fan alone and no heat sinks, the same full-load stress test ran for 8 minutes 50 seconds without reaching 80°C. The fan cycled on at 65°C and off around 58–60°C. The host allows that some workloads might still push it to throttling, and says he will replace the heat sinks on both his Pi 4s with it.
  • Set the fan to run as a service with hysteresis. Pimoroni's installer script takes an on-temperature and a hysteresis value, which the host set to 65°C and 5°C. The buffer keeps the fan from flapping at the threshold; it stays on until the CPU drops to 60°C. The SHIM costs $10 from Pimoroni, and the host paid about $27 for two plus a case, shipping included.
  • CPU temperature takes more work to read than GPU temperature. GPU temperature comes straight from vcgencmd measure_temp. CPU temperature is in /sys/class/thermal/thermal_zone0/temp as a five-digit figure that has to be divided by 1,000. The host wraps both in a short script credited to Vivek Gite of cyberciti.biz and runs it under watch to refresh every 2 seconds.
Technology and FriendsEpisode 573: Ruth Yakubu on Machine Learning tools in Azure
  • Azure Machine Learning Service replaces Microsoft's earlier ML tools. Yakubu, a Microsoft cloud advocate who works with startups, says it consolidates the drag-and-drop Machine Learning Studio (which she says let university beginners get going in 20 minutes) and the Azure Workbench into a suite for beginners and seasoned data scientists. Work starts in the Azure portal with an experiment, and the coding is done in Jupyter Notebooks that can be generated from the workbench, with Python frameworks such as Keras brought in.
  • Storing every model's history supports teamwork, debugging and auditing. Yakubu argues a model in production is never a done deal, since new data may force refinement, so the service keeps the history of models; teammates can compare whose model worked and why, down to data cleansing and the parameters fed in. Deployed models come in formats such as ONNX and can be consumed from any language able to open them, Java included.
  • MLOps brings DevOps pipelines and source control to notebooks. Giard raises getting Jupyter Notebook code into source control as a standing difficulty; Yakubu says the service has pipelines through Azure DevOps for building, testing and deploying models, with a history of every change.
  • AutoML automates the trial-and-error of choosing an algorithm. Yakubu says a training run can take eight hours and still give poor results; with AutoML the user loads data, sets key parameters and the problem type (such as classification), and the service tries different algorithms and reports the best one along with the factors that actually drive the outcome. Giard adds his own view that cleaning data and choosing a model are where data scientists spend most of their time.
  • Form Recognizer turns paper forms into structured data. Yakubu describes this service, introduced this year, as extracting what people write on forms such as doctor's-office paperwork into a digitized structure for a database, replacing manual re-entry; she says she is flying to Tampa for a project using it.
GCastGCast 58: Creating and Deploying Azure Resources with ARM Templates
  • The portal will write the ARM template for you. Giard says the easiest route is to walk through Create a Resource as usual, here a virtual machine (East US, no redundancy, Ubuntu Server, defaults otherwise), then click "Download a template for automation" at Review and Create instead of Create. This produces the ARM template, a parameters file and sample scripts for PowerShell, the Azure CLI and others.
  • The template describes the resources, and the parameters file supplies values. The template JSON says what to create, its properties and location, and the dependencies that make resources get created in the right order. Values such as location are passed in as parameters. The generated parameters file left the password blank, so Giard fills it in before deploying.
  • The PowerShell script needs only a subscription and a resource group. Giard runs deploy.ps1 with the subscription name and an existing empty resource group. If no template or parameters file is named, the script falls back to default file names, and either can be overridden on the command line. It prompts for sign-in. He deliberately leaves the login out of the script for security reasons.
  • One run deployed the VM and all its supporting resources. After about two minutes the resource group held the virtual machine plus its virtual network, storage account and disks. Giard says the script can become part of continuous integration and deployment, or be handed to others to run with their own parameter files.
Crosstalk SolutionsRaspbery Pi 4 Overview
  • The Pi 4 is not a real desktop replacement. It is being marketed as one, and the new Broadcom quad-core 1.5 GHz CPU gives three to four times the Pi 3's processing power (per benchmarks the host cites from MagPi). In his testing it handled web, email and dual monitors, but stuttered on full-screen 1080p YouTube and is unusable for gaming. He doubts its claimed 4K output (two displays at 4Kp30 or one at 4Kp60) would give a good experience.
  • Buy the largest-memory model; the premium is small. The 1 GB board is still about $35, with 2 GB costing $10 more and 4 GB $20 more. The host would almost always recommend the 4 GB, especially for anyone using the Pi as a desktop.
  • Ethernet now runs at full gigabit, and USB 3.0 arrives. The Pi 3's gigabit NIC shared the USB 2.0 bus, which capped it at 300 Mbps; the host confirmed full gigabit throughput on the Pi 4. The two USB 3.0 ports make a mini NAS possible, and USB 3 boot is rumoured. Moving the NIC and USB ports breaks compatibility with older cases, though the host found the PoE HAT still works.
  • USB-C power fails with some third-party adapters. Others report that many USB-C chargers won't power the board, including Apple MacBook chargers. The official power supply and a Nintendo Switch charger both worked for the host, and he expects the Raspberry Pi Foundation to fix this in a later revision.
  • More power means more heat and higher draw. The Pi 4 throttles its CPU at 80°C, and the host reproduced this under stress testing: heat sinks only delayed it, while a Pimoroni Fan SHIM did better. Idle power draw is about 35% higher than the Pi 3 Model B+, so he suggests older models for battery or solar projects.
Crosstalk SolutionsSimple PTP Wireless Bridge
  • A line-of-sight wireless bridge can replace a second internet connection. For a client job, the host extends a flat /24 LAN (192.168.10.0) to a building about a third of a mile (half a kilometre) away. The link uses two Ubiquiti NanoBeam AC Gen2 radios, roughly $99 MSRP each, which his firm sells below MSRP. His case is that dropping the second site's connection saves its monthly charges. In airLink, at about 30 ft mounting height, 25 dBm and 40 MHz, the path planned as a clear signal.
  • Add a grounded Ethernet surge protector despite the radio's built-in protection. At each end the host puts a Ubiquiti ETH-SP Gen2 between the radio and the switch. The radio's own surge protection doesn't stop a lightning surge carried down the copper from reaching the switch inside.
  • The NanoBeam's second port can power a camera. The radio takes 24 V passive PoE in on one port, from the bundled injector or a switch that supplies 24 V passive. It can pass PoE out on the second port, so a 24 V passive camera can share a pole-mounted radio.
  • Initial setup no longer needs a laptop on the default subnet. Previously the radio had to be reached at its default 192.168.1.20; now its management Wi-Fi radio lets the UNMS phone app find it and set a static IP; the bridge ends were 192.168.10.8 and .9. After that the host configures it in the web GUI: station point-to-point locked to the AP's SSID, with a WPA2 key and an optional backup SSID. He also enables NTP, which UNMS needs, and adds the radio to UNMS for remote monitoring.
  • Bench throughput fell short of what the host hopes for. With both radios in the same room at maximum output power, the link connected at 200–250 Mbps. The host hopes for about 300 Mbps in the field, and may lower the output power because full power may be too loud for the distance.
Network ChuckHey members!!!
  • This post includes paid content that is not available publicly. See the original source.
Technology and FriendsEpisode 572: Whitney Griffith on Azure Blockchain as a Service
  • A blockchain is a ledger every network member shares and polices. Griffith, a Microsoft software engineer on the commercial software engineering team who works with Microsoft's top 400 customers on blockchain and data, likens it to a group text: everyone sees each message at once, and no one can withdraw it or deny sending it. Members help keep the ledger from being compromised under rules the network sets.
  • Azure Blockchain as a Service hosts a consortium on Quorum. Griffith says a creator invites as many members as they like, each with equal rights, who jointly set the business rules; the chain is Quorum, which she describes as a private Ethereum blockchain, and Azure provisions and manages the nodes that run the ledger to the customer's specifications.
  • Logic Apps call smart contracts through an Ethereum connector. Griffith explains a smart contract as a self-executing entity like a Java or C++ class with several functions, for example one returning an account balance in a token-transfer contract written in Solidity. Once deployed, it returns a contract address; with that and the member node's connection string, the connector can trigger the contract's functions serverlessly.
  • One customer built an industry-wide mobility-as-a-service platform. Griffith says the customer's country has a fragmented transport industry of over a thousand providers, forcing travellers to buy several tickets; the consortium lets a user route a trip and get a single ticket, with insurance that, if a train is delayed, extends the ticket so the traveller can switch to an alternate route such as a cab.
  • Blockchain replaced a central intermediary every provider would have to trust. Griffith says the alternative was a new company managing the providers' relationships, whereas the consortium gave every participant a say from day one. She joined the project late and guesses the customer, already familiar with blockchain, proposed it; Giard adds his own caution that blockchain is a buzzword sometimes misused as a silver bullet.
Scott HanselmanA Static Website as cheaply as possible with Azure Storage, Azure CDN, HTTPS and a Custom Domain
  • Static files belong in blob storage, not a dynamic web host. Hanselman, responding to people on Twitter who found the tutorial confusing, contrasts an Azure App Service at "eight nine bucks" (later "20 or 30 or 40 dollars") with "a buck or 20 cents" for a storage account; the free Azure signup gives 12 months of services including five gigs of blob storage, which he expects to be "darn near free".
  • The static-website endpoint, not the blob URL, serves the site. He creates a storage account in its own resource group (so the whole thing can be deleted later), turns on the static website setting with index.html as the default document, and uploads into the $web container. He first hit the plain blob URL and got an error before noticing the separate web.core address ("RTFM my friends"); setting the container's blob access level back to private still left the static endpoint working, so changing public access is not required.
  • Azure CDN supplies the custom domain and a free certificate. He adds a CDN endpoint with a custom origin pointed at the static-website host, points a www CNAME at the azureedge.net name, and enables CDN-managed HTTPS, which registers and renews the certificate at no extra charge. Validation is quoted at up to two hours; after about 10 minutes the custom domain served the site but still showed a not-secure warning because the certificate had not yet been issued.
  • Uploads can be manual or automated through a site generator. He drags files in with the free, cross-platform Azure Storage Explorer and then purges the CDN; alternatives he names are the Azure CLI's blob upload command, or Azure DevOps or GitHub Actions running a static site generator such as Jekyll and pushing the generated HTML to storage, enough to run a whole blog this way.
Crosstalk SolutionsUbiquiti UAP-IW-HD
  • Choose the In-Wall HD for busy rooms or extra ports. The host recommends the UAP-IW-HD ($179 MSRP) for high-density spaces such as conference rooms, restaurants and hotel lobbies, or where more wired ports are needed. For an ordinary hotel room the standard In-Wall or In-Wall Pro is enough. He would pick the HD over the Pro anyway, since it is 4x4 MU-MIMO against 3x3 and $20 cheaper. Crosstalk offers discounts on Ubiquiti orders over about $2,000.
  • The HD outclasses the other in-wall models in streams and ports. Per Ubiquiti's datasheet it is 802.11ac Wave 2: 2x2 at 300 Mbps on 2.4 GHz, 4x4 MU-MIMO at 1,733 Mbps on 5 GHz. It claims 940 Mbps single-client and 440 Mbps 10-client aggregate throughput, against 600 and 130 Mbps for the UAP-AC-Pro. It has four gigabit ports, one passing PoE through, while the In-Wall (2x2) and In-Wall Pro (3x3) have two. It is indoor-only.
  • Disable the spare wall ports or put them on isolated VLANs. Port VLANs only become selectable after enabling the port VLAN option on the device, and the default "All" profile isn't offered, so specific or custom profiles are needed. In a hotel, the host would put the PoE-out port on the VoIP network and disable the rest or make them guest-only. In his test, the AP and a Yealink phone powered through it drew 7.7 W together.
  • Installation is simple and tamper-resistant. The clamshell design fits any single-gang box and comes with Torx security screws, plus ordinary screws as an alternative. Adoption and the firmware upgrade on UniFi controller 5.10.24 took about nine minutes. The back of the AP read up to 122°F, but about 97°F through the case.
  • One AP in a far corner won't cover a house. In the host's NetSpot Pro survey, which he calls anecdotal, the AP was placed in a basement corner. It covered nearby rooms well but left the far side, the garage and most of the yard weak or spotty. He takes this as the case for central AP placement, or for adding a second AP.