Souk's Notes - Unofficial Summaries

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

GCastJava Services in Spring Boot [GCAST 84]
  • The starting point is a controller method that does the math itself. In the Spring Boot web service from earlier episodes, Giard adds an addNumbers method mapped to an HTTP GET at GCAST/addNumbers/{first}/{second}, each path segment mapped to a parameter; it returns the sum in a ResponseEntity with HTTP status 200. In Postman, 10 and 17 return 27.
  • Logic beyond trivial belongs in a service, not the controller. Giard says that if the method did more than add two numbers (querying a database, running a complex workflow, calling other web services) he would not leave it in the controller; the addition is only a stand-in to show how.
  • Define an interface first, then a class that implements it. He groups services in a package named services (packages show up like folders in Java) and creates an interface MathService declaring int addNumbers(int firstNumber, int secondNumber) with no code. He calls basing the class on an interface good practice, not a requirement.
  • The implementation class carries the moved logic and returns a plain value. MathServiceImpl "implements MathService", so it must have every method the interface defines; IntelliJ can generate the method stub, marked with the override attribute. He pastes in the controller's addition and returns the sum itself rather than a ResponseEntity.
  • Coding to the interface gives flexibility, but swapping still means editing code. The controller declares the variable as the MathService interface, news up MathServiceImpl, and wraps the returned sum in a ResponseEntity with status OK; Postman with 11 and 5 still works. Giard notes that changing the implementation this way requires changing the code, and says the next episode uses attributes to inject the implementation instead.
Scott HanselmanHidden Windows 10 Hotkeys that will make you a better person!
  • Holding the Windows key can show you every Win-key hotkey. Hanselman installs PowerToys, which he describes as Microsoft's new productivity utilities, so that holding the Windows key brings up an overlay of the hotkeys. He notes that many are mnemonic: Win+E for Explorer, Win+L to lock, Win+D for desktop.
  • Win plus a number launches that taskbar slot. Items are numbered left to right, with 0 standing for the tenth, and he says this has been built into Windows "for a very very long time". Shift+Win+number opens another instance, Ctrl+Shift+Win+number runs it as administrator, and Alt+Win+number opens that item's right-click menu of recent files.
  • Arrange the taskbar so the slot numbers suit you. He pins Notepad and drags it to the first position so that Win+1 opens it. His advice to non-developers is to do the same with Excel, and he jokes that the point of hotkeys is to make your co-workers feel bad about themselves.
  • Windows Terminal key bindings are edited in its settings JSON. He shows that Alt+Shift+D, a default binding, opens a new pane, and that he added Ctrl+W to close one so it behaves like closing a browser tab. He opens PowerShell, Ubuntu and a DOS-style shell as panes, then shows that Ctrl+Shift+number, also built in, opens a given shell profile.
Crosstalk SolutionsClearlyIP Panic Button
  • The panic button places a call the phone does not display. The USB button plugs into a ClearlyIP phone and dials a preset extension, ring group, page group or outside number. Whoever answers hears the room through the speakerphone while the phone shows no active call. The host sees it for banks, schools and classrooms, and finds it disheartening that US active-shooter incidents drive the demand.
  • The hardware was an unpriced prototype at recording. Expected MSRP is around $49 but not final, with availability expected within a couple of weeks. It has a six-foot cord for hiding under a desk or on a wall. Production units get a black cable and a 90-degree USB plug, since the phone's USB port sits on top. Crosstalk sells ClearlyIP products, and the host invites enquiries.
  • The same silent call works from an ordinary phone key. The dongle is only needed to hide the button away from the phone.
  • FreePBX's ClearlyIP devices module sets mode, key type and target. Emergency mode drops any call in progress to make the panic call, while normal mode acts as a line key. Silent call hides the call; speed dial shows it, which suits a lobby help button. The host points the button at ring group 550 and prefixes its caller ID with "PANIC" so receivers know it is an emergency.
  • A ClearlyIP feature code allows silent listening on any phone. Dialling *99 plus an extension, for example by a security guard, opens that phone's microphone with no indication on the handset. The host calls it a dangerous feature and notes that access to the code can be restricted.
Technology and FriendsTodd Gardner on Request Metrics [TECHNOLOGYANDFRIENDS 609]
  • Request Metrics measures performance as real users experience it. Gardner describes it as real user monitoring: a JavaScript snippet in the site gathers timings from end users' browsers and sends them back by CORS request, separating how long the server took to deliver bytes from how long the client took to render. It cannot see server internals such as database time unless the server is instrumented.
  • It tells you when to use local profilers, not why something is slow. Gardner says tools run on a developer machine remain the way to troubleshoot, while his product flags production changes, such as a checkout page 40% slower than yesterday, that show when to reach for them.
  • It shows one representative number instead of raw statistics. Gardner says users see a single figure with its trend, then can drill into how many loads finished under 1, 2, 4 and 10 seconds, without needing statistical models or query languages.
  • The bet is that monitoring can be simple and cheap. Gardner argues existing tools are too complicated and too expensive for teams without a large IT organisation, and targets about $9 a month; to be profitable at that price he minimises infrastructure and captured data, storing everything in Redis, which he says makes the product very fast. A HyperLogLog-style unique count, found via a .NET package, was added after a page's spike turned out to be 20 hits from one user on a bad connection.
  • The product is built in the open by a three-person mob. Gardner says the team mob-programs over Zoom every workday from 1 to 4 pm, records with OBS and edits sessions into 15–20 minute YouTube episodes that run about a month behind; work began in mid-January, the 10th episode covered running Redis on Linux, and as of 3 April it was in internal beta on TrackJS's own sites, with outside users expected in three to five weeks.
Crosstalk SolutionsOn the Road #4
  • A Flex switch on a camera's drop avoided a new cable run. For a restaurant needing another access point, the host estimated a new drop at two to four hundred dollars. Instead he put a USW-Flex on the cable already feeding a UniFi G3 camera and fanned it out to the camera and a black-skinned nanoHD.
  • The old UVC-G3 cannot run on 802.3af PoE. It accepts 24 V passive only, unlike the G3-AF, so the install stayed temporary until he could swap the camera head. The owner was pleased enough with the coverage to order a second access point. That one serves a back building cut off by a concrete wall about a foot thick.
  • A NanoStation and airCube rebroadcast a weak outdoor signal indoors. At rental cottages served for five years by a 2.4 GHz-only UAP Outdoor+, a homeschooling tenant could not hold a Zoom call. An airCube ISP (about $29) passes 24 V passive PoE to a NanoStation loco M2 (about $45). The NanoStation joins the guest SSID and the airCube creates Wi-Fi inside. Testing farther away than the final spot gave about 5.7–6 Mbps wired and 8 Mbps on a phone.
  • The host chose low-end gear because the outdoor AP limits the link. He says newer equipment could not pair with the 2.4 GHz-only Outdoor+, and he did not want to replace it. He supplied the equipment and instructions at his own expense for a former client, with no labour charge.
Technology and FriendsChristina Aldan and Jeff Strauss on Dev Around the Sun [TECHNOLOGYANDFRIENDS 608]
  • Dev Around the Sun is a 24-hour developer telethon for coronavirus relief. Aldan and Strauss describe a free stream on Twitch and YouTube starting 12 May at 12:00 UTC, with lighter talks on leadership, soft skills and the human side of the industry rather than deep dives; their case is that it gives free access to speakers people would otherwise pay to see abroad and restores some of the hallway-track connection lost to quarantine. Sessions are recorded, with backup sessions to be posted afterwards.
  • The idea came out of a virtual meeting of conference organisers. Strauss says Meta Conference, an organisers' think tank normally held in a hotel suite at the MVP Summit, went virtual this year and so took in leaders from the Java, data, infosec and JavaScript communities; Claire Novotny, newly executive director of the .NET Foundation, proposed doing something that made a real difference. That was two months before recording, and Aldan says the event came together in four or five weeks.
  • Every donated dollar goes straight to Direct Relief. Aldan says they researched the charity, which Strauss says was founded in 1948 and works in about 80 countries supplying medical help; donations pass through Tiltify directly to its coronavirus fund, with none touching the .NET Foundation, which hosts the event. Corporate "sponsors" such as Microsoft and Quicken Loans are additional donors, and the small streaming and hosting costs are covered by the foundation and others.
  • The line-up leans on well-known community figures and volunteers. Giard reads speakers including Troy Hunt, Jon Skeet and Scott Hanselman from the site; the guests describe an Ask DHH Q&A moderated by Heather Downing, rotating MCs including Richard Campbell and Dylan Beattie, a live Stack Overflow podcast segment, and a streaming setup run by Jeff Fritz with eight engineers. Aldan says they may make it an annual event.
Technology and FriendsChris Klug on Software Development Up Front Planning [TECHNOLOGYANDFRIENDS 607]
  • Think ahead about the parts you understand, so change elsewhere can't break them. Klug, six months into a project whose domain he still does not understand (he says it is the client's description of the domain that keeps changing, not the domain), credits his layers of abstraction for a rewrite the week before: storage was split between Azure and Amazon for legal reasons by adding a shim at the bottom tier, without touching the rest of the code. He dismisses the usual "swap SQL for Oracle" justification as something he has never seen happen.
  • Abstractions also pay off in dev, test and production differences. His team keeps Azure Key Vault swappable so local development does not depend on Azure. He is not a test-driven developer, but writes one read test and one write test for every entity he maps in Entity Framework, so he can work out the mappings without starting the application.
  • Once you take a dependency, use it to the full. Klug would not wrap Entity Framework to make it replaceable, but his team did put repositories over it to simplify use, such as centralising the include statements for eager loading. Giard tells of an architect who designed an abstraction to swap out the ORM and left before any code was written, and adds that abstractions carry a mental cost a short project may not justify; Klug agrees that SOLID needs pragmatism and that an unabstracted monolith is sometimes the right choice.
  • Agile does not mean skipping design. To Klug, Agile means choosing the most important chunk, designing how to build it in that sprint, then re-evaluating; teams that just "start hacking" on their sprint ignore what is likely to come next. He says 20 years of experience lets him predict what a client will ask for in the next sprint and build pieces that fit together, where as a junior his pieces needed "duct tape" to connect.
Crosstalk SolutionsUniFi XG 6POE - 10G Network Switch
  • The XG 6POE suits two roles: high-power PoE distribution or core switch. At $599 MSRP, sold only in the Ubiquiti store at recording, the host sees it powering demanding devices such as G4 cameras and XG access points, or taking a fiber uplink from a Dream Machine or other firewall and fanning out 10-gigabit links to other switches.
  • All four RJ45 ports are multi-gig with PoE++. Each runs at 1, 2.5, 5 or 10 Gbps (the 2.5 and 5 Gbps rates are 802.3bz) and supplies 802.3bt power of up to 60 W per port; power comes from an included 210 W brick or a DC terminal block, and the two SFP+ ports auto-sense 1 or 10 Gbps.
  • Its layer 3 features exist only on the datasheet so far. The host says the layer 3 capabilities are undefined and unavailable at recording, promised for a future firmware update as with the Pro line. It is also indoor-only (−5 to 45 °C, 23–113 °F), not attic-grade, has a fan, and adds a USB-C console port beside the RJ45 one.
  • Adoption over fiber dropped the switch after its firmware upgrade. It disconnected from UniFi until the host unplugged the fiber and connected RJ45; after that the fiber worked normally. He calls it possibly a one-off anomaly or his own ordering mistake.
  • The host's test load drew only 28.2 W in total. A downstream USW-Flex powering a G4 Pro and a nanoHD drew 13.6 W and ran at about 116–117 °F, against 84–102 °F on the XG itself. An EnGenius ECW230 Wi-Fi 6 AP negotiated 2.5 Gbps at 8.1 W (a white link LED marks 2.5/5/10 Gbps, green marks 1 Gbps), and a UniFi LTE on 802.3bt used 5.3 W while powering a G3 Bullet through its PoE output.
Technology and FriendsLayla Porter on Test Driven Development [TECHNOLOGYANDFRIENDS 606]
  • Regression bugs from an untested system drove her to TDD. Porter was a senior developer at a telecommunications company handling millions of minutes with not a single unit test, relying on a team of six testers; nine weeks of regression bug fixes "nearly destroyed" her, and she took up TDD around 2016.
  • Writing the test first ties it to the requirement, not the code. Her example: code written first returns a 204, the developer writes a test expecting 204, and it passes even though the requirement said 200. On a team, tests and interfaces written up front act as a coded contract, so colleagues can build against your code before it exists and are less likely to break it unknowingly.
  • A full test suite is what makes refactoring safe. She says tests for unrelated code can be quieted in the local test runner to save time (her largest project had about 100,000 tests), but all should run on the build server and before moving from UAT to production. Coverage thresholds (80%, or must-never-drop) enforce testing but are fiddly: adding AutoMapper once cut her coverage by about 15%. Giard says he favours looking at coverage over mandating it.
  • Be pragmatic and patient rather than purist. A dogmatic lead developer once threatened to delete her whole day's work after she wrote code without tests; she argues that writing tests after the fact while easing in is a natural way to shift to TDD, which she calls a big cultural change. She works mostly in C# with NUnit, using Rider's test runner on a Mac or ReSharper in Visual Studio.
  • Her Terminator talk teaches TDD through a relatable dummy project. In "TDD and the Terminator," requirements for a T-800 hunting Sarah Connor become test method names; her "aha" was that the minimum code to pass the first test was "return true," followed by red-green-refactor. The T2 switch to protecting John and Sarah Connor serves as the requirements change refactored with SOLID principles. She says the talk is on the JetBrains YouTube channel, with a shorter Microsoft version.
Crosstalk SolutionsAruba Instant On Access Points
  • Instant On trades configurability for simplicity, enough for most businesses. The host, reviewing units Aruba sent him, was pleasantly surprised and judges them right for easily 90% of customers. He says they fall short for the remaining 10% that needs band steering or separate, custom download and upload throttling. He reviews them because they carry no licence or subscription fees.
  • The lineup is five 802.11ac Wave 2 access points. The AP12 (3x3, 1,600 Mbps max data rate, 75 recommended clients) was $133.49 on Amazon and the AP15 (4x4, about 2,033 Mbps, 100 clients) about $160. The rest are a 2x2 indoor, a 2x2 outdoor and a 2x2 desk/wall unit; the host would like a higher-capacity 4x4 outdoor model.
  • The APs are cloud-managed only, with no onboard GUI. Setup runs through the Instant On web portal or phone app, and the AP15 was found and added immediately. The portal supports multiple sites for MSPs, scheduled firmware updates (his run Sundays at 3 a.m.), VLAN tagging or a routed NAT network with its own DHCP, SSID schedules, basic DPI and a customizable captive portal.
  • Bandwidth limits are fixed, symmetric, per-client tiers. The choices are 1, 5, 10 or 25 Mbps or unlimited, and the same limit applies to download and upload. In his test a 25 Mbps guest network gave exactly 25 Mbps down and 19 Mbps up (his upload tops out near 20 Mbps). The captive portal appeared on his iPhone but not on his computer.
  • The AP12 delivered his full internet speed on 5 GHz. He measured 540 Mbps on fast.com, 448/17 Mbps on speedtest.net and 429.9/19.1 Mbps on Ubiquiti's test from a phone, and it had been rock-solid for two days. Its metal back reached about 114 °F at idle; the AP15's wall mount stands roughly two inches off the wall, against about ¾ inch for the AP12.
Technology and FriendsAndrea Salterello on Accessibility [TECHNOLOGYANDFRIENDS 605]
  • Salterello's commitment to accessibility comes from his deaf father and guilt. His father lost his hearing to acute otitis and surgery in the 1970s and heard through bone-conduction glasses, which could not handle loud volumes, so concerts, cinema and plays were closed to him. At a 2004 TechEd keynote in Amsterdam, watching a blind man struggle to browse with a narrator left Salterello ashamed that he had done nothing to make his own software accessible. He has since run Accessibility Days, a two-day Italian conference on accessible software, for four years.
  • Everyone is impaired at some point, often temporarily. He argues for designing for inclusion broadly, citing a broken arm and his diabetic mother, whose yearly eye test leaves her unable to see for hours.
  • "Pervasiveness over invasiveness": let users reach software through their own devices. His team built a bot on Microsoft Bot Framework over an ERP system last year so users can ask questions such as how much the company netted; an open-source proof of concept on GitHub also supports an Alexa skill and Skype.
  • Use prebuilt cognitive services rather than training models from scratch. He teaches AI and cognitive services at the Polytechnic of Milan using both business and inclusion scenarios, arguing products should focus on user value. Since January he has been building "Rossi," an open-source clone of Microsoft's iOS-only Seeing AI app aimed at both iOS and Android, named after the blind woman who guided him, blindfolded, through Bologna streets to a conference dinner; he says he was more frightened than he had ever been in the ring as a French kickboxer.
  • An accessible conference starts with the venue. He holds Accessibility Days at the headquarters of Italian unions of blind and deaf people, which are accessible by default, and uses light colours and sounds to mark paths. He recommends newcomers find events around Global Accessibility Awareness Day, the third Thursday of May; his 2020 conference, set for 22–23 May, would likely be online on Microsoft Teams, where he says meetings cap at 250 and live events at 10,000.
GCastSupporting POST HTTP Requests with Spring Boot [GCast 83]
  • POST suits larger, more complex input than GET. Giard's reason is that POST carries data in the request body, not only in the URL. The episode adds a POST endpoint next to the GET methods built in the previous video's Spring Boot RESTful service.
  • Simple Java model classes define the JSON in advance. He puts them in a models package: a greeting input class with one personName property, and a greeting output class with one greeting property. Each has a getter and setter, a default constructor, and a constructor that sets the property when the object is created.
  • @RequestBody maps the posted JSON onto the parameter. The controller method returns a ResponseEntity of the greeting output type and takes the greeting input as its parameter. @PostMapping sets the path ("Hello", uppercase H) and both consumes and produces as application/json. The method reads the person's name, builds "hello" plus the name into a greeting output object, and returns it wrapped in a new ResponseEntity with HttpStatus.OK.
  • Postman sends the test POST with a JSON body. Giard describes Postman as a free, quick download for Windows, Mac or Linux. He posts to localhost:8080/gcast/hello, sets the Content-Type header to application/json, and sends a body with personName set to his own name. The demo returned HTTP 200 and a JSON greeting of "hello, David Giard". He adds that a real application will do more than join strings, but the principle is the same.
GCastCreating a RESTful Web Service with Spring Boot [GCast 82]
  • Two annotations turn a class into a URL-mapped REST controller. Building on the project from episode 81, Giard adds a controllers package (a package maps to a folder on disk) and a controller class. He marks it @RestController and gives it @RequestMapping("gcast"), so requests to the domain followed by /gcast reach the class. IntelliJ adds the import statement when he tab-completes the annotation.
  • A method returns a ResponseEntity and gets its own mapping. A ResponseEntity<String> is an HTTP response: a status code (200 OK, 404 not found), headers and a body. His sayHello method returns new ResponseEntity<>("hello", HttpStatus.OK) and is marked @GetMapping("greet"). GET is the verb a browser uses when a URL is typed in, and @PostMapping would serve POSTs. The app runs on port 8080, and localhost:8080/gcast/greet returned "hello".
  • A path variable makes the route dynamic. A second method maps greet/{personName} and takes a parameter marked @PathVariable("personName"), returning "hello" plus the name with a 200 status. The path and parameter names need not match, but he keeps them the same so the mapping is easy to read. /gcast/greet/David returned "hello David". He calls this the gist of a REST API, which could go on to return JSON or look data up in a database or another service.
Crosstalk SolutionsUSW-Flex-Mini
  • The USW-Flex-Mini is a $29 managed switch with trade-offs. It has five gigabit ports, is about the size of a deck of cards, and at recording was sold only in the Ubiquiti store and was consistently out of stock. It is powered by 802.3af/at PoE or USB-C (the host prefers PoE), and its other ports offer no PoE pass-through.
  • Hosted-controller adoption relies on DHCP option 43, because there is no SSH. Adopting to a local Cloud Key Gen2 Plus on the same LAN was a simple click. For his hosted controller the host had to put the switch on a separate network and point DHCP option 43 at the controller, which he calls hit and miss. SSH refuses connections, so a manual set-inform is impossible.
  • Controller version 5.12.35 adopts it, contradicting a claimed 5.12.60 minimum. The host adopted it to controllers on UniFi 5.12.66 and 5.12.35, and both updated it to the same firmware. He does not know the true minimum version.
  • Custom VLAN port profiles do not work on the Flex Mini. Ports take only the All or Disabled profiles or a single untagged network, so a profile carrying the native LAN plus only the IoT VLAN tagged is unavailable. In testing, a Raspberry Pi on an All port took addresses on both the native LAN and VLAN 107. That suits putting a TV's devices on an isolated IoT network.
Scott HanselmanTips & Tricks: Preparing your Windows 10 machine for a virtual/remote/Zoom/Teams/Skype presentation
  • Size the screen for the smallest viewer, not your monitor. Hanselman drops his 4K display to 1080p and suggests 720p if viewers may be on a small Android device, tablet or older phone; he also weighs 100% against 125% scaling, enlarges code in Visual Studio Code with Ctrl + +, and checks that selected text and the theme have enough contrast.
  • Be deliberate about everything on screen. He calls being "as conscious as possible" of what is on screen his number one tip: hide desktop icons via right-click, turn off the clock in system icons so the content stays evergreen, auto-hide the taskbar, reconsider the wallpaper, and check that his own picture-in-picture does not cover content (or drop it entirely).
  • On-screen annotation makes a talk interactive and clean. He shows ZoomIt (zoomit.exe, "not to be confused with Zoom") running from the tray: drawing on screen with Ctrl+Shift and click-drag, G or Y for green or yellow, Ctrl+1 to move around and circle what he wants, and Escape to clear it.
  • Hotkeyed scenes let a talk be recorded without editing. He says this video was made in about 5 or 10 minutes with zero editing using Open Broadcaster Software and ZoomIt, with scenes bound to hotkeys and a name or Twitter handle overlaid; he points to setup notes in the description and on his blog.
Technology and FriendsSarah Lean on Adjusting to the Pandemic [TECHNOLOGYANDFRIENDS 604]
  • Grounded by the pandemic, her advocacy work has shifted to content. Lean, a Microsoft cloud advocate focused on Azure for IT pros and hybrid infrastructure, had talks for the following month cancelled or postponed to next year, and none moved online, which she puts down to volunteer organisers juggling day jobs and families at home. She plans to record the talks and release them with YouTube's Premiere feature so she can answer questions in the chat as viewers watch.
  • Cheap DIY sound panels made her home audio far more professional. She built three insulation-filled panels for her small room for "a couple hundred bucks" of DIY-store materials, a project the lockdown accelerated, and says the before-and-after difference is remarkable.
  • Azure's European capacity strain is, in her view, a good sign. She acknowledges the capacity issues reported in the press, but says organisations long blocked by security worries or IT-team knowledge are now adopting Azure; she expects the issues to be addressed internally within a couple of months.
  • She predicts lasting changes in remote work and event attendance. With her husband's office-only employer now working from home productively, she expects many organisations to rethink work-from-home policies, and more to pay for employees to attend events afterwards because of what remote work misses. Giard adds that he expects pent-up demand for face-to-face contact.
  • Freezing Windows Server 2008 upgrades during lockdown is a security risk. She says friends in frontline IT have put change freezes on projects including upgrades from Windows Server 2008, which went out of support in January 2020; with no end date to the lockdown, she argues organisations should keep planning such work rather than pause it.
GCastSpring Boot Quick Start [GCast 81]
  • A web page generates a complete Spring Boot project for you. Giard, who calls himself a C# developer who has almost never written Java, goes to start.spring.io (linked from Quick Start on spring.io). He keeps a Maven project, Java as the language and the default current Spring Boot version. He sets the group to com.gcast ("kind of like a namespace in C#") and the artifact to gcast. Clicking Generate downloads the project as a zip file.
  • Dependencies are chosen on the same page before generating. He searches for "web" and adds the Spring Web dependency now, because the next episode turns this project into a web service. He describes Spring Boot as built on the Spring framework, a set of tools for enterprise Java development.
  • The generated project is configuration plus a one-line bootstrap. Opened in JetBrains IntelliJ (he uses the free edition; any IDE will do), pom.xml holds the Spring Boot version, the Java version and dependencies such as Spring Boot Starter Web and Spring Boot Starter Test. The only code is a main method that calls SpringApplication.run. It compiled as generated, and after he added a print line ("gcast rocks") it ran and printed it.
Technology and FriendsBrent Stineman on Remote Recording [TECHNOLOGYANDFRIENDS 603]
  • Scheduling guests is the biggest challenge of remote recording. Stineman has run an internal podcast for Microsoft's globally spread commercial software engineering team since October, remote from the start, with 24–25 interviews recorded at roughly one a week. Without the in-person "ambush," guests are harder to pin down and easier to reschedule, so he keeps a queue (about 15 people to follow up on); three were postponed when the guests were moved onto Microsoft's COVID-19 work. This is the first episode Giard has recorded remotely.
  • Record each side locally, not through the conferencing platform. Platform recordings go over the wire compressed and depend on both connections, so each person records their own audio: his runs through a Focusrite converter into Audacity, and Mac guests use QuickTime because he says the current Audacity does not work on the latest macOS. The meeting recording is kept as a backup, and guests need headphones to stop laptop-speaker echo.
  • Prep up front makes recording and post-production smoother. His invite lists the topics in a shared file (about eight points for this interview), he walks the guest through the recording software, counts in "3, 2, 1," and spends the opening minutes on the person, often surfacing non-traditional backgrounds such as music and theatre. Guests share their file via Teams.
  • Separate tracks allow clean editing, then several tools finish the episode. He syncs tracks in Audacity and mutes one side for coughs or bumps, exports a rough cut, and runs it through Auphonic, free for up to two hours a month, whose levelling adds a slight echo. Because Microsoft Stream accepts only video and the show must stay internal, he uses the paid Wondershare to put the audio over a title slide for upload to a Stream channel. Each 30-minute episode takes him two to four hours, which is why he has no plans for a public show.
  • Do it out of passion, not for fame or money. Stineman, who says he was inspired by how his kids consume social-media personalities, argues the shows that take off are those where the creator's enthusiasm comes through, and passion is what keeps you publishing weekly. Giard adds that he would rather have great audio and mediocre video than the reverse.
Scott HanselmanCollaborating with a digital whiteboard using Microsoft Whiteboard + your iPad or Windows 10 PC
  • The whiteboard works independently of your meeting tool. Hanselman presents Microsoft Whiteboard, in a remote-work series, as a free app from the Microsoft Store and the iOS App Store that participants can join whether the call runs on Zoom, Teams, Skype or Google Meet.
  • A pen device can join alongside the machine you share. With his iPad and Windows PC signed into the same account, ink and moves made on the iPad sync live to the Windows app, so he can share his Windows screen while drawing with the iPad pencil.
  • Ink is converted into shapes and tables. He shows rough squares and circles snapping to clean shapes, and a hand-drawn grid becoming an actual table that he then moves on the iPad and watches move on Windows.
  • Templates are in preview and may be buggy. On the iPad he applies preview templates such as brainstorm and a Kanban board with swimlanes, which open on an infinite-scrolling canvas; he warns preview features "might have a couple of bugs".
  • The apps beat the web version. He says a web-based version exists but "isn't as good as the app version", and recommends the iPad/iPhone app with the pencil plus the Windows 10 app for classrooms, kids and work.
Scott HanselmanTech Support: How to get your webcam, microphone, and speaker working in Zoom, Meet, Skype, or Teams
  • Pick the camera yourself; two apps cannot share one webcam. Hanselman says every meeting app (Zoom, Teams, Skype, Google Meet) has video settings, usually "near your face", with a drop-down of cameras; one already in use by another program greys out or fails. Devices like a Surface have front and back cameras, so choose the one you can see yourself in — if you cannot see yourself in settings, the call will not work either.
  • Check your bandwidth before turning on HD video. He suggests testing at fast.com: around 4–5 megabits gives decent video and 10–15 is ideal, and HD only makes sense on good connections. Household streaming competes for the line, so he suggests having kids pre-download movies, putting their iPads in airplane mode, or having a technical friend set router quality of service (QoS) to prioritise the work computer.
  • Microphone and speaker are separate choices; test both. In the app's audio settings, speak and watch which microphone's meter moves — if it does not move, no one can hear you. He uses one microphone for input and a speakerphone for output only, because its own mic "doesn't sound good", and recommends a lightweight Logitech over-ear headset. Windows defaults live under right-click on the taskbar speaker → Open sound settings, where input and output devices (e.g. a built-in Realtek mic, a webcam mic, headphones) can be set once for every app.
  • Light your face from the front, not behind. He contrasts himself on a good camera in the dark against the same shot lit; fancy lights are unnecessary, and facing a kitchen window beats sitting with the light behind you.
  • Browser meetings need camera permission, and a block must be undone. Google Meet runs in the browser (unlike the Zoom app), so the browser asks to use the camera and shows a red dot while it does; he notes it is not watching you all the time, and suggests a physical camera cover for anyone uneasy. If someone clicks Block, the fix is the browser's camera or privacy settings, removing the site from the block list, then refreshing and choosing Allow. Meet also lets viewers turn down the resolution of incoming video, down to one video at a time, which he recommends for connections under about 4 megabits.
Crosstalk SolutionsHow To Share Wifi with Your Neighbors
  • Share internet through a separate guest VLAN, not your LAN. The host's demo uses an EdgeRouter X (about $59 new) with the LAN on 192.168.100.1/24 and guest VLAN 101 on 192.168.101.1/24, each with its own DHCP range and DNS listening on both interfaces. He adds no extra firewall rules, saying the same approach works on a USG or pfSense.
  • A wireless bridge is optional. It only adds distance. An outdoor access point on a long cable with a "free Wi-Fi" sign is enough. For the far end the host recommends the UAP-AC-M, cheap and pole-mounted, over the wall-mounted UAP-AC Pro he demoed with. His bridge pairs a NanoBeam M5 (NBE-M5-16, about $65 on eBay) as access point with an older NanoStation Loco M5 as station.
  • With no PoE switch at the remote end, chain power instead. The full-size NanoStation M5's secondary port passes 24V passive PoE to a UAP-AC-LR or UAP-AC-M, so one plug runs both. Otherwise daisy-chain two PoE injectors' LAN ports, as the host did with a passive injector and an 802.3af one.
  • Bridge setup points: default IP, NTP, mode, and channel. Factory-reset NanoBeams and NanoStations come up on 192.168.1.20 and need static addresses in the real LAN. NTP must be enabled to use UNMS, one side is set to access point and the other to station with matching WPA AES, and a congested 5 GHz band may need a manual channel. The host's test bridge reached 300×300 with airMAX quality 96% and capacity 91%, on firmware XW v6.2.0.
  • UniFi guest policies isolate guests; a user group throttles them. The open SSID is tagged to VLAN 101 with guest policies on, and the guest group is capped at 5 Mbps down and 2 Mbps up. That cap is per user, not total. The host skips UniFi's captive portal, which he finds unreliable, and suggests a periodically changed password instead. In testing, the secure SSID gave about 90 Mbps on fast.com and the guest SSID almost exactly 5 Mbps.
Scott HanselmanHow to REALLY use Microsoft Word - Hidden and Useful Features! =lorem()! Dictation! Stylistic sets!
  • Word generates its own placeholder text; no website needed. Commenters on his previous Word video pointed out that typing a formula like =lorem() or =rand() with paragraph and sentence counts produces filler text — he shows =rand(10,4) giving ten paragraphs of four sentences — where he had copy-pasted from a lorem ipsum site.
  • Custom AutoCorrect entries automate anything you type twice. Under File → Options → Proofing → AutoCorrect he adds his own shortcuts, such as "(URL)" expanding to his website address; a company street address is his other example. His rule: "anytime you do something twice you might want to think about automating it."
  • Built-in dictation works well if you enunciate and speak punctuation. He dictates a passage in a deliberate, newsreader-style voice, saying "comma", "period" and "exclamation point" aloud, and judges the result "99% of what I was trying to say". He flags it as recently added and useful for people with limited hand motion or repetitive stress injuries.
  • Word's clipboard collects multiple items to paste individually. The Clipboard pane holds a history of copies, and he says most people open it by pressing Ctrl+C twice. Windows has its own clipboard history on Windows+V, with an opt-in setting to sync across devices that he turns on because he uses several machines, while noting it depends on your sense of privacy.
  • OpenType stylistic sets turn ordinary fonts into invitation-grade lettering. With a font that includes ligatures (Gabriola), right-click → Font → Advanced → OpenType features exposes ligatures and numbered stylistic sets; he shows set 5 transforming the letters, with Word adjusting spacing where a flourish would collide. He says Word has supported this "for a very very long time" and that he used it for his own wedding invitations.
Scott HanselmanHow to REALLY use Microsoft Word - Columns, Breaks, and spaces in Tables
  • Layout → Columns makes text overflow between columns automatically. This answers the first of three questions from a commenter, Jeff Brooks; with the whole document set to two columns, text typed at the bottom of the first column flows into the second.
  • Columns for part of a page rest on continuous section breaks. Selecting paragraphs and choosing two columns works, but Hanselman shows what Word does underneath: Layout → Breaks → Continuous before and after the passage, two columns inside, one column after. A column break instead forces the following text into the next column when you want a block kept together. He recommends working with paragraph marks visible so section breaks and stray formatting can be seen.
  • Control horizontal space with indents, not tabs or spaces. Strings of tabs and spaces look "goofy" and Word itself converts them into indent changes; the ruler (View → Ruler) is where first-line and other indents are set. In a table, Tab jumps between cells, so the way to add space is to select the column and move its indent on the ruler.
  • A blank trailing page after a table is a dangling paragraph mark. With paragraph marks shown, the leftover paragraph after the table is visible and deleting it removes the extra page. The reverse problem — a table at the top of a page with no way to type above it — is solved by getting a paragraph mark above the table, which he does by moving the table down a line.
  • Vertical whitespace belongs in paragraph spacing, not empty paragraphs. Right-click → Paragraph lets you set space after each paragraph in points; he changes 11.25 to 25 and to 4 to show the spacing is attached to the paragraph mark. He points to his other Word videos on styles for applying this across a document.
Crosstalk SolutionsFreePBX Emergency Greeting
  • Put the emergency announcement before time conditions so every caller hears it. On a typical inbound flow (time conditions, IVR greeting, ring group, voicemail), the host inserts the message at the very start so it plays at any time of day. He suggests it for closures, changed hours, longer hold times, or instructions such as a restaurant switching to takeout only.
  • It takes three FreePBX steps: recording, announcement, then inbound route. Record the message under Admin > System Recordings, by uploading a WAV or MP3, in the browser, or by having FreePBX ring your extension. Then create an Applications > Announcements entry that plays it and goes on to the business-hours time condition. Finally, point the inbound route's destination at that announcement instead of the time condition.
  • The IVR's stock "invalid response" prompt can be turned off. In the host's test call, the default voice played a no-valid-response message after the IVR timed out. He says he normally disables it and sends a timeout straight to the ring group.
Crosstalk SolutionsEnGenius Cloud and SkyKey Review
synopsis

The host concludes that EnGenius is a workable, partly cost-effective choice for an MSP that standardizes on one of its two platforms, but less full-featured than its competitors. Its Wi-Fi 6 access point is expensive and, in his test, slower than the AmpliFi Alien. EnGenius sent the equipment, and the host says his opinions are his own and that he came in wanting to be impressed after a poor experience four to five years earlier.

The hardware. The SkyKey is an on-site controller like UniFi's Cloud Key, at $98.99 against $179, and manages up to 100 devices per site. The ECS1008P is an 8-port gigabit PoE switch at $128.95. The EAP1250 is a 4×4 MU-MIMO 802.11ac Wave 2 access point at $73.50. The ECW230 is a 4×4 802.11ax access point with a 2.5 GbE port, and its $550 MSRP was confirmed by the EnGenius rep.

Two product sets. Setup was easy, using QR codes and a phone app. However, the SkyKey and EAP1250 belong to the on-premises line, while the ECW230 and ECS1008P belong to EnGenius Cloud. The cloud dashboard does not show devices behind a SkyKey, so you have to remote into each one. The on-premises line keeps local control; the cloud line needs internet access to administer.

The interfaces. The SkyKey interface looks dated but is complete: eight SSIDs, layer-2 isolation with a MAC whitelist, per-user shaping, RADIUS and mesh. The cloud interface, which the host prefers, adds zero-touch provisioning for MSPs, captive-portal options and "clone from". On the other hand, it covers only Wi-Fi, with no firewalls and no wired-client statistics. Its isolation has no MAC whitelist, and the switch did not tag VLAN 10 until he set it on each port.

Performance. In iperf at about 6 feet, the ECW230 gave about 340–350 Mbps on one stream and 434–450 Mbps on six. The host rates this lower than the Alien, while noting that a single-client test understates Wi-Fi 6. A phone speed test running alongside reached 144/22 Mbps on a 400/20 line.

  • EnGenius sells two separate platforms, and they don't integrate. EnGenius supplied the gear; the host says his opinions are his own and that EnGenius had not impressed him four to five years earlier. The on-premises line (SkyKey controller, EAP1250) and the EnGenius Cloud line (ECW230, ECS1008P) are managed separately. Devices behind a SkyKey never appear on the cloud dashboard; you have to remote into each SkyKey. He advises MSPs to standardize on one line.
  • Parts of the range are cheap; the Wi-Fi 6 access point is not. The SkyKey is $98.99 on Amazon against $179 for UniFi's Cloud Key Gen2, managing up to 100 devices per site. The EAP1250 (4×4 MU-MIMO, 802.11ac Wave 2) is $73.50, which the host puts at about half Ubiquiti's closest equivalent. The ECW230 (802.11ax 4×4, 2.5 GbE port) has an MSRP of $550, confirmed by the EnGenius rep, against what he recalls as about $399 for the AmpliFi Alien.
  • The SkyKey interface looks dated but does everything needed. The host found up to eight SSIDs per access point group, layer-2 isolation with a MAC whitelist (so a shared printer stays reachable), band steering, per-user or per-SSID traffic shaping, RADIUS, mesh and floor-plan views. His verdict is that it "will get the job done" for low-cost deployments.
  • The cloud interface is nicer but covers Wi-Fi only. The host prefers it, citing QR-code device claiming that lets an MSP preassign gear before shipping, a "clone from" button, and rich captive-portal options. Against that: there are no EnGenius firewalls, no wired-client statistics, layer-2 isolation has no MAC whitelist, and it needs internet access to administer. On the ECS1008P, VLAN 10 was not tagged on any port until he set it by hand.
  • The ECW230 ran slower than the AmpliFi Alien in the host's tests. In iperf at about 6 feet, one stream gave about 340–350 Mbps (310 Mbps reversed) and six streams 434–450 Mbps. He notes a single-client test understates Wi-Fi 6. With a phone speed test running at the same time (144/22 Mbps on a 400/20 Spectrum line), the desktop briefly dropped to 76–197 Mbps.
Technology and FriendsJaidev Kunjur on Azure Integration Tools [TECHNOLOGYANDFRIENDS 602]
  • Visual Studio integration is what made Logic Apps adoptable. Kunjur, speaking at the Chicago Global Integration Bootcamp he hosts, says his firm now uses Logic Apps far more because design, templates, local testing and deployment to Azure all happen in Visual Studio; Giard adds that it used to be browser-only, which needed a connection and made version control harder. Kunjur also cites a Microsoft offering announced "six or nine months ago" that he says lets Logic Apps run on-premise, so customers can use one platform in the cloud and on-premise instead of BizTalk.
  • BizTalk still has a long life ahead. Kunjur reports hearing from the Microsoft team that BizTalk 2020 adds API Management integration, REST and JSON support and Application Insights, and that BizTalk will be supported until at least 2030, so users need not worry for about 10 years. He says it remains in mission-critical use, including in many US government applications.
  • A logistics customer's middleware runs entirely in Azure. For a Chicago warehouse serving a European manufacturer, Kunjur's team built Logic Apps that pull the item master, purchase orders and sales orders from the shipper's SFTP site, map them into CargoWise format and call the CargoWise warehouse management API. He stresses that the subscription model meant the customer bought no hardware or on-premise software.
  • API Management adds generated client code, security and throttling. Kunjur says it generates a Swagger definition (which he likens to the old WSDL) so consumers can test in C#, Node.js or Python without him writing samples, and lets him put a SAS token on the front end and Azure Active Directory or other models on the back end. His example: an API, via an App Service and a Logic App, that saves database backups to OneDrive in folders chosen from seven metadata parameters (customer, ship-to, sold-to, application), so a field controller can fetch one with its token and boot from it.
  • Event Grid's push model beats polling on resources and cost. Kunjur argues polling wastes CPU and bandwidth, which adds up at thousands of transactions a day, whereas Event Grid routes each event to subscribers only when it happens. For one customer, triggers on a remote database go to an Azure Function, then Event Grid, then pods on Azure Kubernetes Service running Linux Docker containers, which he calls far more efficient than virtual machines.
Crosstalk SolutionsFestival Grounds PTMP Network
  • Use 2.4 GHz point-to-multipoint across the grounds, given the tree cover. Bob Burkett, chief of the Summer Hill Volunteer Fire Department in Pennsylvania, asked for Wi-Fi for vendors' card readers at a two-day festival, which he says earns over half the department's yearly operating budget. The grounds are about 550 by 200 feet, with internet in building A only. The host chose point-to-multipoint over two point-to-point NanoStation links, which would be cheaper, so that more receivers can be added later.
  • Use the US-8-150W core switch, which powers both PoE types. It supplies both 24V passive and 802.3af PoE, so it can power any of the Ubiquiti gear in the design. The cheaper US-8-60W cannot supply 24V passive.
  • Buy a used Rocket 2AC Prism rather than a Rocket M2. New, the Prism costs $205 plus $156 for the 10 dBi omni (AMO-2G10). Used, the Prism is about $100 on eBay. A used Rocket M2 (about $75) saves only about $25 for roughly half the bandwidth. The $100 RF Armor enclosure is optional for a short autumn deployment. link.ui.com showed 100% signal with the omni at about 40 feet; the host expects 80–90 Mbps at each NanoStation.
  • Each remote building gets a NanoStation M2 that powers its indoor access point. Its 24V passive passthrough runs a UAP-AC-LR indoors; the host would start with one per building. An outdoor UAP-AC-M-Pro on the wall needs its own PoE injector. The second Mesh Pro on building C is optional, pending on-site testing the host has not done. An optional movable "pod" (NanoStation M2 plus UAP-AC-M on a stand, run from a Jackery battery for about four hours) can fill dead spots.
  • The build costs $1,569 new, or about $1,011 used on eBay. Both figures cover buildings A, B and C only, excluding the optional pod and RF Armor. The host also asked viewers to donate equipment through Crosstalk.
Crosstalk SolutionsArgon40 Cases for Raspberry Pi
  • The $15 Argon NEO is now the host's standard Raspberry Pi 4 case. It offers the Flirc look with the GPIO access that made Pimoroni's case the winner of his earlier roundup. Cooling is passive, through a thermal pad into the metal top: he measured 95–98°F on the case at idle and 115–120°F after a 10-minute CPU stress test. The official Pi camera did not fit its camera mount. He bought both cases himself and links to them through Amazon affiliate links.
  • The $25 Argon ONE suits media-centre or retro-gaming use. A daughterboard moves the ports to the back, and it has both a fan and a thermal pad. Its power button runs from an installed script: press to power on, double-tap to reboot, hold 3–5 seconds for a graceful shutdown, hold over 5 seconds to force off. The host tested the Pi 3 version by mistake; a Pi 4 version is sold.
Crosstalk SolutionsCisco RV345P
synopsis

The host, a UniFi-focused reviewer who had not administered Cisco gear in about 15 years, reviewed the RV345P at Cisco's invitation. He ends up calling it a solid, unforgiving firewall for small and medium businesses with sub-gigabit connections, and fairly priced at $471.21 given a year of Cisco support. He will not resell it yet, because its licensing turned out to be less simple than Cisco first told him.

Hardware and setup. The unit has 16 gigabit ports, eight of them PoE, plus two WAN ports, two USB 2.0 ports for storage or 3G/4G LTE dongles, and an RJ45-to-9-pin-serial console cable. Default login is cisco/cisco, and the first screen forces a password change. Changes apply to the running config at once and are lost on reboot unless saved to the startup config.

Interface tour. The highlights are log filtering, multi-WAN load balancing by percentage or bandwidth (USB LTE included), and per-port PoE caps. On the downside, DHCP options are limited to 66, 150, 67 and 43. SIP ALG and UPnP are off by default. The Cisco end of a site-to-site IPsec tunnel to his EdgeRouter 4 was set up entirely in the GUI, while the EdgeRouter needed its CLI. Application control has short app lists, so he would filter through DNS (Cisco Umbrella) instead. Quoted throughput is 950 Mbps, or 650 Mbps over VPN. He found no figure for the cost of IPS.

Licensing. Registering showed him as out of compliance. Cisco then explained that routing, firewall and VPN are free, but the security features cost $121.99 a year, and that buyers who do not use them can skip licensing entirely.

Verdict. He calls it not for beginners, who should buy a consumer router instead. He would put one in at a client without qualms, but has not run one in production.

  • Routing, firewall and VPN are unlicensed; the security features are not. Cisco approached the host to review the RV345P and told him it had no licence fees, lifetime software updates, a limited lifetime warranty and a year of tech support. After registering, he was shown as out of compliance, and Cisco then explained that everything under the security tab (content filtering, antivirus, IPS) needs a $121.99 annual licence, while buyers who skip those features need not register at all.
  • The built-in application control is too thin to rely on. The dating category lists nine apps and leaves out match.com, so the host would handle filtering for a business through DNS filtering such as Cisco Umbrella or OpenDNS, forcing users onto those DNS servers. He could not find whether turning on IPS cuts throughput. The figures he found were 950 Mbps standard and 650 Mbps VPN.
  • Per-port PoE power caps are a feature the host had not seen before. Each of the eight PoE ports can be given a maximum allocation in milliwatts. His UAP-AC-Pro drew 3.6 W against a default 30,000 mW allocation, so he suggests capping such a port at about 6 W. He also approved of SIP ALG and UPnP being off by default, but found only DHCP options 66, 150, 67 and 43.
  • The Cisco side of a site-to-site IPsec VPN worked entirely in the GUI. Building a tunnel to his EdgeRouter 4 took 45 minutes to an hour, and the EdgeRouter was the harder side: he had to delete his GUI config and use its CLI. Filtering the logs to VPN entries helped him find the fault. The unit supports 50 tunnels, and multi-WAN can load-balance by percentage or by bandwidth across both WANs and the USB LTE dongles.
  • The host rates it a solid SMB firewall, not a beginner's one. He sees it fitting businesses with sub-gigabit internet, and says the $471.21 Amazon price is fair for 16 ports (eight PoE) plus a year of Cisco support; a non-PoE version is $338.16. Buy from the Cisco Systems seller (affiliate link), since a rep warned that knockoffs may not carry the warranty. He has not run one in production and will not resell them until the licensing is clear.
Technology and FriendsDon Ward on Flutter [TECHNOLOGYANDFRIENDS 601]
  • Flutter's single code base is spreading well beyond mobile. Ward, a senior research engineer at Quicken Loans (eight years there, its first Android developer), says Google announced web support in beta and native macOS in alpha in December 2019, targeting stable for both by the end of 2020; Windows, Linux desktop and embedded are in technical preview, and he says the Google Home Hub (now Nest Hub) UI runs on Flutter. He spoke in January 2020, after a four-hour CodeMash precompiler where attendees built an on-device face-detection app using a Firebase model.
  • Flutter revived Dart, a language whose original push had failed. Ward recalls the 2011–2013 effort to evangelize Dart drew excitement but little use, while Google kept using it internally (AdWords) and the Flutter team later chose it; he calls it Java- and JavaScript-like and easy for Java or C# developers. Because Dart supports both ahead-of-time compilation (for release builds) and just-in-time (in development), Flutter offers stateful hot reload: an edit shows on the emulator without losing state, such as a page reached after login.
  • Flutter draws every element itself, so stores treat apps as native. Each platform gets its own binary (an APK, an IPA), and the framework renders onto a canvas rather than wrapping a browser control, which Apple rejects; Ward has not heard of a Flutter app being rejected. He cites the journaling app Reflectly, moved from React Native to Flutter and featured as Apple's app of the day in August 2019.
  • Platform-specific looks take extra libraries and some branching. Flutter ships Google's Material design by default, with separate Cupertino widgets for an iOS look, so a team wanting each platform's idiom writes some if/else code; Ward says Flutter was first pitched at brand-consistent apps like Netflix's, and responsive layout across screen sizes is still being developed. Plugins for VS Code, IntelliJ and Android Studio let developers inspect the widget tree and performance, and an Adobe design tool can export Flutter code.
  • It is open source and Google-led, with Google's motive unclear. Ward says GitHub ranked Flutter the fastest-growing framework of 2019, with a 530% rise in repos, and that to his knowledge selling an app carries no licence cost; in-app billing widgets were added about a year earlier. Asked by Giard what Google gains, he says he does not know, noting Flutter was the app framework for the experimental Fuchsia OS and that Google's Stadia mobile app is built in it.
Technology and FriendsA Celebration of Friends [TechnologyAndFriends 600]
  • Episode 600 is a montage of past guests' "technology and friends" sign-offs. There is no interview: dozens of short clips, recorded at events including NDC Oslo, Microsoft Ignite, CodeMash, the MVP Summit and VS Live Chicago, each riff on the show's title. Named speakers include Jeff Fritz (on his Twitch stream) and Angela Dugan, and the clip that closes episode 599 with Bryan Glenn appears here in full.
  • The recurring claim is that friendships outlast the technology. One speaker, paid to program since 1979, says technology changes but stays a way to connect with friends; another, at Microsoft almost 28 years, says friends are what keep him there; a third says projects get replaced but friendships last. Several say conferences and speaking are where their closest friendships formed.
  • A few clips carry career or practice advice. A speaker with a recruiting background boils career advice down to "learn stuff, meet people, and help them"; another says software's real cost is maintenance, so "friends don't let friends write bad quality code"; another urges finding peers for mutual support "in ways that you feel safe."
Crosstalk SolutionsKari's Law e911 Compliance
  • Existing phone systems get one to two years to comply. According to the host, new multi-line telephone system (PBX) installs must comply with Kari's Law and the RAY BAUM'S Act from 16 February 2020. Existing fixed desk phones have until February 2021, and softphones, mobile and off-premises phones until February 2022. He expects the technology for those last devices to catch up by then, so he advises fixing fixed phones first.
  • Phones must reach 911 directly, alert staff, and give a dispatchable location. No "9" prefix can be required, a rule traced to Kari Hunt's 2013 killing, when her daughter's hotel-room 911 call failed. A 911 call must notify a central point (email, SMS or a page group) that need not be staffed 24/7. The location sent must be detailed down to floor and room. His FreePBX dial patterns route 911, 9911 and 9-911 variants, and 933 lets you test.
  • The host recommends ClearlyIP over Crosstalk's own SIP trunking for compliance. He says ClearlyIP's E911 goes beyond anything else he has seen, including the wholesale SIP trunks Crosstalk resells, and can be used for E911 alone. It sends a 16-digit caller ID (a 10-digit number plus a 6-digit location code) and turns the code into an address for the PSAP. He links it with a referral code that pays Crosstalk.
  • Location codes cost far less than one DID per extension. With a typical SIP provider, each location needs a DID at about $1 a month plus an E911 address at about $1 a month. In his two-storey, 12-room example that comes to $24 a month. ClearlyIP charges $1 per callback profile (two ring groups) plus $0.50 per dispatchable location, $8 a month in total, saving $16 a month (about $200 a year). A 1,000-room hotel done one-to-one would cost about $2,000 a month.
  • Hot-desk phones must dial 911 logged out and set location at login. The host knows of no vendor other than ClearlyIP that does both. Its system also lets roaming users pick from an admin-limited list of locations, either on the phone or in the user control panel. He stresses that installers are responsible for their customers' compliance, and Crosstalk offers compliance reviews.
Crosstalk SolutionsRaspberry Pi 4 Case Showdown!
  • The host's overall winner is Pimoroni's Pibow Coupé 4. It is $9.10 direct from the UK, since it is not on Amazon; US shipping was about $5–6. He prefers it for its slim profile, which leaves the USB and Ethernet ports sticking out, for its full GPIO access, and for its looks. It only takes low-profile heatsinks, and his unit carries Pimoroni's Fan SHIM. Links to the other cases are Amazon affiliate links.
  • The Flirc case wins if you will never touch the GPIO. For a Pi-hole-style build, the host would choose the $15.95 Flirc over the Pimoroni. It is the easiest to build (four screws), and the aluminium shell works as the heatsink, touching the CPU through a supplied thermal pad. It has no fan and no GPIO access.
  • The C4 Labs Zebra Virtue was eliminated for cost and fiddliness. It cost $24.99 plus $5.15 shipping ($30.14), close to the price of the Pi itself. It has the biggest fan and solid hardware such as countersunk nuts, but it was the hardest to assemble, and the host judged that the build quality does not justify the price.
  • The acrylic stack cases from GeeekPi and Miuzei are near-identical. GeeekPi is $9.48, and Miuzei is $9.99 for the case or $15.59 with a switched power adapter, which the host recommends for any Pi. He kept the Miuzei for its base and bigger rubber feet, then dropped it in favour of the Pimoroni because it encloses the ports.
  • The cheapest case works but uses screws that strip. The $8.99 clamshell case came with a fan, heatsinks and feet, was easy to build, and leaves the GPIO open, but the host would not use it himself. His fan-wiring tip: the label faces the CPU, red goes to 5 V and black to ground on the GPIO header.
Scott HanselmanHow to set up a Windows 10 machine for Linux Development w/ WSL! Can we convert a diehard machead?
synopsis

Hanselman walks a Mac developer through turning their Windows gaming PC into a Linux dev box, recorded in February 2020. By the end the guest has Windows Terminal pinned as Windows+1 and opening Ubuntu by default, themed to taste, and VS Code editing and debugging Go and Python that run inside WSL, with nothing installed on the Windows side. WSL 2 and Docker are left for later, either when the release ships "later this year" or by joining the Insider program.

Terminals and distros. He starts by separating the terminal from the shell: the command prompt the guest dismisses as "Windows 95" can launch bash or PowerShell, and Hyper is just another front end. WSL hosts any number of Linux distributions. He installs Alpine from the Store beside Ubuntu 18.04, selects between them with wsl -d, and notes they can be exported and imported as tar files.

Configuring Windows Terminal. The free, open-source preview finds both distros on its own. Working from a gist of his own settings, they edit its JSON: an Ubuntu colour scheme he made with Kayla Cinnamon, iTerm themes, acrylic opacity at 0.85, the Cascadia Mono PL font, a vintage green cursor (bright green fails, #00FF00 works), and a default profile that opens in the home directory. He contrasts its DirectX rendering with Hyper's Chromium.

WSL 1 against WSL 2. The guest is on Windows 1909 and WSL 1. On the whiteboard he explains that WSL 1 sends Linux syscalls to the Windows kernel. That is lightweight, since Linux processes show in Task Manager, but "maybe half as fast". WSL 2 runs a roughly 50 MB Microsoft Linux kernel fork in a utility VM that starts in under a second. It is set per distro and brings full Docker support. He describes the Insider fast ring as riskier and the slow ring as roughly monthly and including WSL 2, and says he runs slow without major problems. He also warns against editing Linux files from Windows through \\wsl$.

VS Code across the boundary. Running notepad.exe from Linux shows Windows taking over commands Linux cannot run. code . opens VS Code with its server inside Ubuntu, where htop shows it running. Opening a Python file installs the Python extension in WSL, and the guest debugs it from Windows. A Go file pulls in the Go extension and its 17 tools, again inside Linux only. The guest adds Vim keybindings and finds the integrated terminal and split panes, and says Hanselman is "making a hard case" for switching to VS Code.

  • The terminal is not the shell. Hanselman shows the guest, a Mac developer who had installed the third-party Hyper terminal, that the old command prompt can itself launch bash, PowerShell or any installed Linux; Hyper, Windows Terminal and cmd are all just front ends to whichever shell they are pointed at, as Xterm and iTerm are on a Mac.
  • WSL runs as many Linux distributions side by side as you like. He adds Alpine from the Windows Store next to the guest's Ubuntu 18.04, then shows wsl -l to list them, wsl -d to pick one, and wsl --export/--import to move a tuned distro to another machine as a tar file.
  • Windows Terminal is the native, configurable replacement for Hyper. The free, open-source preview auto-detects the installed distros, and its JSON settings hide profiles, set colour schemes (an "Ubuntu legit" scheme he made with Kayla Cinnamon, imported iTerm themes), acrylic transparency, the Cascadia Mono PL powerline font and cursor shape and colour, all reloading live. He says it renders through DirectX where Hyper goes through Chromium, and the guest says its font rendering is better.
  • WSL 2 swaps syscall translation for a real Linux kernel. As of February 2020, WSL 1 hands each Linux system call to the Windows kernel, which he puts at "maybe half as fast" as it could be. WSL 2 runs a roughly 50 MB Microsoft fork of the Linux kernel in a lightweight VM that boots in under a second, can be chosen per distro, and brings full Docker support; he says it ships "later this year", or now through the Insider slow ring, which he uses.
  • VS Code splits itself across the Windows–Linux boundary. Typing code . in WSL opens a Windows editor with its server running inside Ubuntu, so the Python and Go extensions and the Go toolchain install only in Linux. The guest then sets breakpoints and debugs Linux-hosted code from Windows. Hanselman also warns against editing Linux files from Windows through \\wsl$, because Linux is not told about the change.
Technology and FriendsBryan Glenn on the Right Mindset for Success [TECHNOLOGYANDFRIENDS 599]
  • Glenn's book argues that success accumulates from seemingly unrelated events. Life Adds Up, written after a summer book-writing class with a Georgetown professor, names traits such as role models, exposure and self-confidence; he said it would be in print in April 2020 via New Degree Press, with an e-book around late February or March, through CapitalGlenn.com. His main example is Folorunsho Alakija: denied law school by her father, she started as a bank secretary, bought land, met an American oil businessman on a plane, petitioned the Nigerian government for six or seven years and went door to door for a drilling partner before oil was struck; Giard adds that the "sudden" success was only a watershed after years of groundwork.
  • His own startup grew out of a $300 parking-ticket letter. Glenn says Chicago pursued him, via a collection agency threatening to suspend his licence, for tickets from about ten years earlier, which led him to found a company for means-based payment of parking tickets and municipal bills, now in negotiations with the City of Chicago and using machine learning. He cites a Federal Reserve study that most Americans cannot cover $400 without a credit card, and says he recruited University of Chicago economist Jean-Pierre Dubé after happening on his machine-learning work in a business-school magazine.
  • Mindset, not family advantage, explains Bill Gates's rise. Glenn says neighbours had the same access Gates did, and extends Gladwell's 10,000-hours point in Outliers: those hours at that age let Gates add value no one else could, as when the MS-DOS deal with IBM repeated the playbook of putting BASIC on the Altair 8800. As the opposite case, he gives his account of Einstein, unable to accept quantum theory, dismissing it; the lesson he draws is to act with conviction but admit error.
  • Founders who chase fundraising signals add no real value. Glenn says raising money makes companies look successful temporarily, points to WeWork and to Facebook, Instagram and WhatsApp founders leaving and saying things happened they did not intend, and argues society is too trusting of founders. His prescription is to be deliberate: he says he inferred around 2016–2017 that Google's image CAPTCHAs, one of which showed his own street, were training self-driving cars before an article later reported it, and stresses he is not calling that evil.
Technology and FriendsJean Lange on Building Skills with Improv games [TECHNOLOGYANDFRIENDS 598]
  • Games are a way to practise real-life skills. Lange, who teaches with her husband at Academy Pittsburgh, a small software bootcamp he founded about three years earlier, ran a four-hour improv precompiler at CodeMash with co-speaker Remy Porter, inspired by one she attended by Jessie Sternschuss of The Improv Effect. No scenes or acting are involved: the group plays rule-based games, then discusses what made each easier or harder; she says Hanabi, for instance, teaches trust and communication.
  • Every game is built around celebrating failure. The opening mixer has people meet and cheer each other's recent failures, and in energy-passing games like Zip Zap Zop a player who slips says "I screwed up" and everyone cheers. Lange says failing means people are trying and learning, which matters most for her bootcamp's career changers, adults used to being experts; Giard frames the contrast as organizations that reward appearing never to make mistakes.
  • A group can do what no one member can, if each "brings a brick." In the name game, people pair their name with an alliterative adjective ("rolling Remy"); after two rounds almost no one knows all 20 or so names, but everyone knows at least one, so the group collectively knows them all. Giard likens the idea to microservices.
  • The tech angle comes from who is in the room. Asked what is tech-specific, Lange concedes the skills apply to any group work and says the tech comes from participants' experience, citing one who said passing attention across the circle works better with a "TCP handshake" acknowledgement before sending.
  • Lange says the bootcamp's improv session is among its highest-rated. The two-hour session at the end of week one leaves students visibly more comfortable together, she says, and they report knowing everyone's name. She ties this to networking: graduates hired somewhere often get the employer to hire more academy grads, forming teams comfortable saying "I don't know, let's learn together"; the academy is at academypgh.com.
Crosstalk SolutionsUniFi Dream Machine Pro (UDM-Pro)
synopsis

The host spent about four days with the UDM Pro, which Ubiquiti sent him free. He comes away liking it and planning to move his own network onto it, but unsure who it is for. For a home it is overkill, and for a small business it puts the controller, routing, surveillance, door access and phones in one 1U box that becomes a single point of failure. He would deploy one only with a spare to hand.

The hardware. At an MSRP of $379 it combines a UniFi controller and gateway with eight gigabit ports (no PoE), one WAN and one LAN 10G SFP+ port, a 1.3-inch touchscreen, and a drive bay for UniFi Protect that takes 2.5- or 3.5-inch drives. A port on the back connects the forthcoming USP-RPS redundant power unit. Inside, a molded air duct with two fans pushes air out the top rear, and there is spare room, which the host suspects is meant for a second drive tray later. Noise idles at 46–48 dB, with the fans at about 50% and 2,800 RPM. That is audible in a home office but quiet next to rack servers.

Setup and applications. Setup runs in a browser from 192.168.1.1 and needs internet access and a Ubiquiti SSO login. After a reboot the drive was recognized and Protect could be installed. Access set up without devices attached, but Talk, then in beta, failed with a "user not whitelisted" error. A G4 Pro camera worked on Protect. The host found no published camera limit. He reasons it depends on how hard the other applications are working, and guesses at least the Cloud Key Gen2 Plus's 20 cameras. Ubiquiti's 8 TB drive option is $190, which undercuts the WD Purple ($223) and Seagate SkyHawk ($233) on Amazon, though Ubiquiti does not say which drive it fits.

Differences from standard UniFi. The controller is single-site and cannot be swapped for a hosted controller. There is no config.gateway.json and only one WAN IP per interface. The host found no graceful shutdown. With the WAN unplugged, SSO login still worked and skipped 2FA, which he calls convenient but a risk if someone has physical access.

Datasheet claims tested. Dual-WAN failover worked: about ten seconds to fail over and about as quick to fail back, but there is no load balancing. LTE failover and RPS redundancy are UniFi or pro-line features, not UDM Pro ones. With IPS at level 5 and DPI on, he measured 454/22 Mbps on his 400/20 line, so his connection showed no bottleneck. For comparison, Ubiquiti's IPS figures are 85 Mbps for the USG, 250 Mbps for the USG Pro, 1 Gbps for the XG and 850 Mbps for the base UDM. He asked viewers with gigabit lines for results. The UDM-only DNS filtering was still an alpha feature and, in his view, needs more customization.

Verdict. He dismisses the complaint about the empty chassis. He calls omitting PoE the right trade-off, since buyers will add a UniFi PoE switch anyway. What he wanted was a dual-drive RAID 1 version, which he would pay about $100 more for, around $479. His central reservation remains putting every critical service on one appliance.

  • The host likes the UDM Pro but hesitates to recommend it. For home use he calls it overkill unless you are a Ubiquiti enthusiast. For a small business, running UniFi, Protect, Access and Talk on one 1U box is a single point of failure, so he would only deploy it with a spare on the shelf, or as an MSP holding stock. Ubiquiti sent the unit free; he says his opinions are his own.
  • It combines controller, gateway and switch, without PoE. At an MSRP of $379 it has eight gigabit ports, one WAN and one LAN 10G SFP+ port, and a drive bay for Protect that takes 2.5- or 3.5-inch drives. The host accepts the lack of PoE as the price of keeping it cheap. He says he would have paid $479 for a version with RAID 1 dual drives.
  • IPS at maximum still delivered his full 400/20 connection. With threat management at level 5 and DPI on, he measured 454/22 Mbps. Ubiquiti's IPS figures are 85 Mbps for the USG, 250 Mbps for the USG Pro, 1 Gbps for the USG XG and 850 Mbps for the base UDM; the UDM Pro reportedly does about 3 Gbps. He could not test gigabit, and expects heavy Protect, Access or Talk use to cut throughput.
  • It drops several standard UniFi capabilities. It runs a single site, cannot be adopted by a hosted controller, and has no config.gateway.json. It allows one WAN IP per interface and has no graceful shutdown that he could find. Login uses Ubiquiti SSO, but with the WAN unplugged he logged in without 2FA, which he flags as a risk if someone has physical access.
  • Dual-WAN failover worked in about ten seconds, with no load balancing. Failback was similarly quick. The host notes that LTE failover (U-LTE, $15 a month for the first GB and $10 a GB after, on AT&T) and RPS power redundancy are UniFi or pro-line features rather than UDM Pro ones. Ubiquiti's 8 TB drive option is $190, against $223–233 on Amazon for the WD Purple and Seagate SkyHawk, so he suggests the factory install.
Scott HanselmanBasic Text Editing and Hotkeys in VS Code - Computer Stuff They Didn't Teach You #3
  • Every trip to the mouse is a small context switch. Hanselman's rule is to notice each time a hand leaves the keyboard and ask whether it added value. A quick double-click on a word is fine, but reaching for menus to copy and paste is the kind of habit that slows newer developers down.
  • Arrow keys plus modifiers cover most movement and selection. Shift selects, Ctrl moves by word and Shift+Ctrl selects by word, while Home, End and Shift+Page Up/Down handle lines and pages. Alt+Up/Down moves a line, Shift+Alt+Up/Down copies it, and Ctrl+Up/Down scrolls. For the mouse, a double-click takes a word, a triple-click a paragraph and four clicks everything.
  • VS Code's code-aware selection beats selecting by hand. Shift+Alt+Right expands the selection along the syntax tree, widening block by block in JSON or JavaScript, and Ctrl+Shift+\ jumps between matching brackets, for example when the partner bracket is pages away from line 653.
  • Multiple cursors are a smarter search and replace. Alt-click places extra cursors, Shift+Alt-drag makes a box selection, and Ctrl+Shift+L selects every occurrence of the current selection (13 in his sample text) so they can all be edited at once. Ctrl+F, Ctrl+H and Ctrl+Alt+Enter remain the conventional route.
  • About ten hotkeys are enough, and they travel. He says not to memorize dozens. The handful shown, demonstrated in VS Code with the Carnac key display, work in "99 percent" of text editors.