Souk's Notes - Unofficial Summaries

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

Crosstalk SolutionsReal World UniFi Deployment - SSFCC
synopsis

Crosstalk builds a redundant UniFi network for the South San Francisco Conference Center, a small convention venue by the airport, and ends with a site survey showing coverage good enough to leave power on auto.

The design. The host explains choosing the EdgeRouter Infinity over the still-beta USG-XG, load-balancing two Comcast gigabit copper handoffs. Two UniFi Switch 48 500 W units, either able to carry the whole load, feed twelve UAP-AC-SHD access points, two on remote 8-port switches. Four SSIDs: full-speed internal and contractor networks, a throttled guest network, and a per-event SSID the venue can sell.

On site. The client had done the physical install; David, a Crosstalk engineer of about two years, dialled it in. He says an on-site controller replaced a Cloud Key because the captive portal takes hundreds of requests at once. The firewall drops inter-VLAN traffic, every VLAN is a /16, and the guest network is client-isolated at 1.5 Mbps with an eight-hour portal expiry.

Tuning and testing. Auto channel selection stacked the 2.4 GHz APs on channel 1, so channels were set by hand. Speed tests stuck near 281 Mbps down wired, even on Comcast's equipment, until the Xfinity test against San Jose reached about 717 down. David's NetSpot survey of the unoccupied rooms showed good coverage.

  • The edge router was picked for being released, not beta. The host says the firm does not deploy beta hardware at an important customer, so the still-beta USG-XG lost to the EdgeRouter Infinity; the Infinity (eight SFP+ ports, one Gigabit port, redundant PSUs, EdgeOS 1.9.7 hotfix 4) load-balances two Comcast gigabit copper handoffs 50/50 and feeds the switches over 10 Gbps fibre, leaving room for the client's possible 10 Gb upgrade.
  • The design buys redundancy by doubling switches rather than consolidating. Under 48 devices would fit one 48-port 750 W switch, but two UniFi Switch 48 500 W units were installed so either can carry everything if the other fails. Twelve UAP-AC-SHD access points (4x4 MU-MIMO, for crowds of hundreds or thousands) are backed by a standard UAP-AC-HD spare in the server room.
  • Four SSIDs separate staff, vendors, guests and a resellable event network. Internal office (untagged) and contractor run full speed; the guest network is client-isolated and throttled, first to 2 Mbps, then 1.5 Mbps up and down; a fourth per-client SSID can be renamed per event and sold throttled or unthrottled. EdgeRouter firewall rules built on network groups drop traffic between VLANs, each a /16, while the main LAN sees all but guest.
  • UniFi's auto channel selection failed; its auto power setting worked. Auto put every AP on 2.4 GHz channel 1 bar one on channel 11, so channels were set manually on both bands. Power stayed on auto, and David's NetSpot survey (about 20 seconds per sample, occupied rooms skipped) showed coverage good enough that the host saw no need to adjust.
  • Slow gigabit speed tests were the test server's fault, not the network's. Wired results of 281 Mbps down and 788 Mbps up persisted even plugged directly into Comcast's equipment; switching from Ookla's speedtest.net to Xfinity's test against a San Jose server gave up to about 717 down and 940 up. Wireless reached roughly 300 Mbps symmetric, which the host assumes is the wireless limit.
Scott HanselmanKubernetes Development in Azure from Visual Studio 2017 - Visual Studio Connected Environment
  • The edit-debug loop runs against a cloud dev environment, not the laptop. Hanselman presents Visual Studio Connected Environment, in preview, as his practice run of a demo announced with Scott Guthrie at Connect in New York. Instead of F5 launching IIS Express on localhost, the code is built into containers, deployed to Kubernetes in Azure and debugged live there with breakpoints, stepping and call stacks.
  • Running a microservice app locally is the problem it targets. His sample hotel-booking site is split into a web front end plus booking, profile, discount and review services written in .NET Core, Node and Python. He argues that reproducing that locally means setting up Kubernetes and every other service, some of which depend on Azure resources a laptop cannot reach, and that even minikube is a hassle.
  • The same loop works from Visual Studio Code, on Mac or Linux. He fixes a type mismatch in the .NET discount service in Visual Studio, then a regex expecting a decimal in the Node profile service from VS Code. He stresses that it is real Kubernetes underneath, so kubectl still works, and says the cloud round trip "feels to me faster" than IIS Express because a laptop cannot match a cloud full of machines.
  • Personal "spaces" isolate one developer's services from the team's. Each developer gets their own pod, container and Kubernetes namespace, which he likens to a source-control branch. Requests through the shared front end route to that developer's copies of the services they are changing, chosen by name in the URL, so a bug they introduce does not break the environment for everyone else.
Scott Hanselman.NET Fringe - Interview with Evelina Gabasova about F# in Emacs and Star Wars visualizations!
  • F# tooling in Emacs is faster than in Visual Studio. Gabasova, a data scientist working mainly in machine learning, shows type annotations and F# Interactive running in Emacs. She says this comes from the open-source F# compiler services, and that Emacs is her most reliable editor on her Fedora work desktop.
  • Co-appearing in screenplay scenes approximates a character social network. For her Star Wars talk she parsed the screenplays of the films, treated each scene as a block, and assumed characters who speak in the same scene know each other. Noisy data meant writing two parsers for differently formatted scripts. The method shows who talks to whom, not family relationships.
  • Data science need not leave your preferred language. Her main point is that she stays in F# and calls R libraries directly from it, using type providers to combine data sources. She compares F# to Python with static typing, which she says helps, and says she has written perhaps 100 lines of C# in her life, all to fix a bug in a linear algebra library.
  • Fable lets F# replace JavaScript for browser visualizations. Her D3.js visualization is about 60–75 lines of F# in a script file, compiled to JavaScript by Fable, which uses Babel. Source maps let her set breakpoints in the F# source from the browser's developer tools; she says she welcomes anything that keeps her away from JavaScript.
Scott Hanselman.NET Fringe - Interview with Glenn Block about ScriptCS. Lightweight Scripting and a REPL in C#!
  • ScriptCS aims to strip ceremony from writing C#. Block describes the roughly three-year-old project as a lighter way to write C# without project files or explicit compiling, with a REPL, influenced by Node and by languages such as F#. It is standard C# plus a few opt-in additions.
  • Script packs and convention-loaded NuGet packages replace usings and references. A generic Require<T> function, modelled on Node's require, loads "script packs" that wrap ordinary NuGet packages; packages present in the folder load automatically. His demo is a one-line Nancy web server started with scriptcs start.csx, which he says hides plumbing rather than removing it.
  • Scripts can now get full Visual Studio debugging. A new, extensible REPL command generates a Visual Studio solution on the fly that runs the ScriptCS host as an exe. He uses it to hit breakpoints, hover and watch variables in a WPF calculator written entirely in .csx files. Editor syntax highlighting in VS Code, Atom and Sublime Text comes via OmniSharp.
  • A rewrite onto .NET Core and Roslyn is the next major effort. Block says migrating to .NET Core across Windows, Mac and Linux is top of the list and will break things, so he is asking the community for help. A recent Windows release on later, not-final Roslyn bits added the most-requested features: dynamic, async/await and C# 6.
  • Need is the test for whether to use it. Asked why anyone would choose it over F# or PowerShell, Block says nobody has to, but people with this problem find value. He also shows a browser-based ScriptCS playground in Docker containers on Ben Hall's Katacoda, and community script packs including an Azure management library.
Scott Hanselman.NET Fringe - Interview with Hakeem Mohammed about Hadoop.NET
  • Hadoop's core is small enough for one person to port. Mohammed, working solo on a side project, argues the large ecosystem (Sqoop, Flume, Hive, Pig, cloud extensions) sits on two core components: the HDFS distributed file system and the YARN processing framework. Those are what Hadoop.NET targets.
  • A machine port "smells like Java", so idiomatic C# is the work. The code was machine-ported first, then rewritten by hand onto .NET Core to use C# features such as the TPL, generics and lambdas. He says the hard part starts there.
  • .NET shops should run Hadoop without JVM expertise. His pitch is that C#-centred enterprises otherwise face hiring Java consultants, setting up a JVM and Hadoop, and adapting to Maven-style dependency management. He would be happy whether or not the Apache maintainers adopt it, and has not contacted them.
  • The project is pre-alpha with a staged roadmap. He agrees it is at the "get it to build" stage. The plan is Hadoop's own serialization data types and Avro first, then the tests, then HDFS. His demo is the existing Java Hadoop computing pi with 16 maps and 1,000 samples per map, which he says shows code being sent to the data.
  • The port doubles as a way in for Java Hadoop developers. He suggests people who know Hadoop from Java but are drawn to .NET Core could learn .NET by contributing. Hanselman adds that it is also a way to learn Hadoop.
Scott Hanselman.NET Fringe - Interview with Steven Kirk about Cross Platform XAML and Avalonia
  • Avalonia is a clean-room, cross-platform XAML UI framework. Kirk named it after Avalon, WPF's early code name; it was previously called Perspex until the trademark forced a change. It targets Windows, Mac and Linux, with experimental ports elsewhere. He says a cross-platform WPF was always considered impossible because WPF is so tied to Win32.
  • Controls are drawn from scratch, so accessibility must be built. It renders through pluggable back ends rather than native controls: Win32 or GTK for windowing, and Direct2D, Cairo or a basic SkiaSharp renderer for drawing. He would like to move to SkiaSharp once it gains missing features. Kirk concedes accessibility is still to do and is often requested.
  • It follows WPF's APIs only where they still make sense. He abandoned an exact WPF reimplementation. Avalonia uses modern features WPF predates, such as reactive extensions for binding, and its own dependency-property system, but picks the WPF way when choosing between that and something different.
  • Simple WPF apps should port, depending on their MVVM library. Asked about Hanselman's own side-project WPF app, Kirk says dropdowns, binding and buttons should port. Its MVVM library is the risk if it is tied to WPF's dependency properties; ReactiveUI is baked in.
  • It is a spare-time alpha whose biggest gap is full-window redraws. Kirk says people are building applications on it and hopes for beta "this year". He asks for help with the website, benchmarking and above all dirty-rect rendering, since it currently redraws the whole window every frame.
Scott Hanselman.NET Fringe - Interview with Adam Dymitruk about Event Storming
  • Event storming is brainstorming requirements as past-tense business events. Dymitruk describes listing the facts a running system would produce, such as a user signing up, purchasing, returning an item or reaching silver status. He argues events hold behaviour and data together and mark transactional boundaries. Data-first modelling and UML's behaviour-first approach were extremes that missed this middle ground.
  • No interesting events means you should not write software. He treats the exercise as a litmus test. A domain without events needs a spreadsheet, and a settled one like accounting needs off-the-shelf software such as QuickBooks, not a custom build.
  • Everyone from CEO to support agrees one shared event language. Getting the whole business into one room maps the full workflow, the data in each event and their order. As a side effect it yields a given-when-then specification for every command sent to the system.
  • He refuses clients who will not do event storming. He gathers requirements no other way and credits Alberto Brandolini, who built on Greg Young's event ideas, as the originator; Brandolini has a book on Leanpub. Dymitruk argues it applies from startups to legacy corporate systems because it shows the business that its technology is an investment reflecting the business.
Crosstalk SolutionsAxis A8004-VE
synopsis

The host unboxes, wires and configures the Axis A8004-VE network video door station and ends up with a single button press ringing a FreePBX softphone, a desk phone and the Axis Companion apps, any of which can open the door. He calls himself deeply impressed with Axis: every device of theirs he has tested has been rock-solid and highly configurable, which he offers as the case for its $1,091.63 Amazon price (about $785 for the smaller model).

Hardware and wiring. The unit is near-solid metal with a 720p camera, an echo-cancelling microphone, two relays, four I/O ports, a line out, DC input, microSD and 802.3af PoE. Cables enter through tight weatherproof grommets; Axis supplies a shuttle for pushing a bootless network cable through, and a faceplate tamper switch.

Axis Companion. The free Companion software adopts the camera, records to a network share and updates its firmware, which took about 10 minutes. It estimates bandwidth and storage per setting: about 1.5 Mbps and 15–30 GB a day for continuous 720p at 30 frames per second, which the host turns into a sizing rule of cameras × GB a day × days, plus 25–50%.

SIP and DTMF. In the camera's own interface he set the time zone, a text overlay and 12 dB of microphone gain, then registered it as FreePBX extension 258, calling extensions 206 and 200. DTMF 99 holds the door relay open for five seconds.

Testing and fixes. At 30 frames per second the video arrived so late that a phone went to voicemail; 15 frames per second fixed it. A sound tied to the DTMF code did not play when the door was opened from Companion, so he triggered it on relay activation instead, and notes the tamper switch can trigger actions the same way.

  • The A8004-VE is expensive but, in the host's view, worth it. He found it on Amazon for $1,091.63, against about $785 for Axis's smaller door station, and links it there as an Amazon affiliate. It has a 720p camera, two relays, four I/O ports, a microSD slot, IP66 and NEMA 4X weather ratings and 802.3af PoE; every Axis device he has tested has been rock-solid and highly configurable.
  • Native SIP lets it call FreePBX phones and open doors by DTMF. The host registered it as FreePBX extension 258, rang a Bria softphone (206) and a desk phone (200) at once, and set DTMF code 99 to trigger the door relay for five seconds; the free Axis Companion desktop and iPhone apps can also answer and open the door.
  • High-quality video made calls go to voicemail before the picture arrived. At 1280×720 and 30 frames per second the video came through so slowly that a phone rolled to voicemail; dropping to 15 frames per second brought the picture up much faster. The host suspected the quality setting rather than a fault.
  • Size storage from Axis Companion's per-camera estimate, plus a buffer. At 720p and 30 frames per second it showed about 1.5 Mbps and 15–30 GB a day of continuous recording; the host multiplies cameras × GB a day × days kept and adds 25–50%. Motion-only recording uses far less, and the paid Axis Camera Station offers more than Companion.
  • Tie actions to the relay or tamper switch, not the DTMF code. An audio clip triggered by code 99 did not play when the door was opened from Companion, so the host re-keyed it to fire whenever the relay goes active; a casing-open tamper switch can trigger calls or sounds the same way. He also raised microphone gain 12 dB, lifting the level from about −20 to −8 dB.
Scott HanselmanTime lapse walking through Edinburgh, Scotland using a Front Row wearable camera from Ubiquiti
  • No summary available: this video has no speech. Its audio track is silent for the full 403 seconds and YouTube has no captions for it, so the transcript is empty; going by the title, it is a time-lapse of a walk through Edinburgh shot on Ubiquiti's Front Row wearable camera.
Crosstalk SolutionsUbiquiti ETH-SP
  • A surge protector shields indoor gear from outdoor-device lightning strikes. The host's example is a PoE-powered NanoStation M5 cabled back to a $200–300 24-port Ubiquiti switch in his office; a strike on the outdoor unit can send a surge down the Ethernet run into the switch. The ETH-SP is an Ethernet pass-through with a ground, so the surge grounds out instead of travelling the cable.
  • The ETH-SP is sacrificial and is best deployed in pairs. The host expects the protector itself to be destroyed by a strike while protecting whatever is on its far side. The best case, he says, is one unit close to the outdoor equipment and a second at the other end of the cable near the switch.
  • The unit is non-directional and grounds through its single screw. Both ports are marked in/out, so it works like a straight-through coupler either way round. The supplied metal screw and washer either go through that hole into a metal pole or, off a pole, anchor a grounding wire run to an appropriate ground.
  • Pole mounting needs a hose clamp and a drilled hole. The host clamps the unit to the pole with a hose (Jubilee) clamp, then drills through the ETH-SP's hole into the pole with a 4.5 mm bit, or 3/16 in. in the US, before driving in the screw. He puts the unit at about $14.