2018 - September/October
Blazing on into the Future! Find out how! We also take a look Natural Language, React, VS Code and Angular
Blazing on into the Future! Find out how! We also take a look Natural Language, React, VS Code and Angular
Melanie Spiller argues that intention—not lyrics, melody, or title alone—gives meaning to song. Through her observations of birds responding to human music and her own voice-teaching experiments, she links musical meaning to the performer’s aimed emotions and to how brains interpret sound patterns. She compares human language, bird communication, and even programming, suggesting that knowing rules matters, but grasping intention is what listeners understand. Looking ahead, she envisions AI that understands intention, potentially enabling birds (and people) to act on meaning beyond words.
Sahil Malik’s article explains how Natural Language Understanding with Microsoft LUIS lets developers convert free-form user input into actionable intents and entities, using domain-focused models that can be trained, tested, and refined through iterative utterances and patterns. He illustrates both browser-based and programmatic workflows—creating, training, and publishing LUIS apps via REST APIs, integrating with applications, and securing calls. Through step-by-step examples (creating apps, adding intents/entities, supplying utterances, and consuming results), Malik demonstrates how to automate and scale natural-language capabilities in software, highlighting cognitive services’ power and practical integration considerations.
In this article, Paul Sheriff demonstrates how to secure an Angular application by building a .NET Core Web API that authenticates users against a SQL Server database and returns an authorization object with user claims. He guides readers through creating Entity Framework security classes, implementing JWT-based authentication, and securing API endpoints with the `[Authorize]` attribute and policies. The article also covers configuring Angular to store and send JWT bearer tokens via an HTTP interceptor, enabling seamless, secure communication between client and server. This foundational work sets the stage for more advanced claim-based UI security in the next installment.
In "Demystifying React," Milton Abe clarifies React's nature as a JavaScript library focused on building scalable, performant user interfaces rather than a full framework like Angular. Milton highlights React's key concepts—JSX, components, state, props, one-way data binding, lifecycle methods, and virtual DOM—and demonstrates how they collaborate to enable efficient UI development. Through a step-by-step CRUD example, he illustrates React’s practical usage, emphasizing best practices and the advantages of controlling component state manually. Milton ultimately conveys that React offers a powerful, flexible, and maintainable approach to modern web app development.
Vassili Kaplan argues that Visual Studio Code’s lightweight, extensible architecture makes it practical to build full language support and debugging tools from scratch. Through a step-by-step walkthrough centered on a CSCS language example, he shows how to add basic syntax highlighting, REPL integration, and a debugger by leveraging VS Code extensions, TypeScript, and a socket-based runtime. Kaplan emphasizes “dogfooding,” the importance of VS Code’s cross‑platform extensibility, and how to orchestrate client-server components (extension, REPL server, and debugger) to support a productive development workflow.
Rick Strahl explores how Web Assembly and Blazor transform web development by enabling .NET code execution within browser sandbox environments. He highlights Web Assembly's potential to diversify programming languages and reduce JavaScript dependency, while explaining Blazor’s approach of running .NET via a Mono runtime compiled to Web Assembly. Although early-stage and with current limitations—such as performance issues and browser API constraints—Strahl emphasizes the promising future of these technologies to foster more efficient, versatile, and C#-centric web applications beyond the JavaScript monolith.
Ted Neward’s On Transitioning counsels developers moving into management to reframe their role from building code to enabling people. Through acceptance and self-awareness, new managers should identify and address four common stressors—role strain, problem-solving fatigue, isolation, and imposter syndrome—by delegating, coaching, setting boundaries, and seeking support. He emphasizes prioritizing the team’s development over individual tasks, maintaining self-care, and adopting servant-leadership: directing and developing people as the core of management, rather than merely solving technical problems.