AirDrop Anywhere - Part 4 - Making it work on Windows

2021-06-14 17:30:00Z

Part four of the journey towards implementing AirDrop on any platform using .NET Core. This episode we cover receiving files on a non-Apple device from an Apple device via an intermediary using .NET.

AirDrop Anywhere - Part 3 - Receiving files

2021-05-17 13:00:00Z

Part three of the journey towards implementing AirDrop on any platform using .NET Core. This episode we cover receiving files from one Apple device to another using a .NET implementation of AirDrop.

AirDrop Anywhere - Part 2 - Writing some code

2021-05-04 15:00:00Z

Part two of the journey towards implementing AirDrop on any platform using .NET Core. This time we talk about the implementation of the base services needed to support AirDrop.

AirDrop Anywhere - Part 1 - Introduction

2021-05-03 15:00:00Z

Part one of the journey towards implementing AirDrop on any platform using .NET Core. In this instalment we dig into the problem and poke at some potential solutions.

Fun with IConfiguration

2021-01-19 14:00:00Z

These days a .NET application is typically configured at startup using an extensible API known as the configuration builder API. This allows the use of arbitrary sources of configuration - typically, out of the box, that means environment variables, command line args and JSON files (e.g. appsettings.json) but can also mean more “exotic” sources; anything from INI files to a SQL database to a secure secret store. How it works When defining an application’s configuration sources the individual providers are added using a fluent syntax.

Read more…

Developing Stack Overflow on MacOS

2020-05-26 18:30:00Z

After a whole lot of months in the making we finally finished porting Stack Overflow to .NET Core 3.1 🎉! When you hit any part of Stack Overflow or the wider Stack Exchange network you’re now hitting our main application running on .NET Core behind IIS using the in-process execution model. We plan to have a whole series of blog posts about the port - the good, the bad & the ugly, but today I’m going to focus on how the move to .

Read more…

Authenticating to Google using PowerShell and OAuth

2020-01-14 13:00:00Z

At Stack we’ve written and maintain a set of scripts named “Dev-Local-Setup” that our developers and designers can use to quickly provision their local environments. They assist in installing pre-requisites (things like Chocolatey, SQL Server, VS 2019, .NET Core SDKs), pulling down repos and provisioning databases and websites used by specific teams. They’re packaged as a PowerShell module and used by a menu-driven CLI interface that makes it easy to perform those tasks quickly and efficiently.

Read more…

Building Stack Overflow Job Search - Transforming Queries

2019-12-03 00:00:00Z

Last time we talked about how we built a parser that can take a string input (written in Jobs Query Language or JQL) and parse it into an abstract syntax tree (AST) representing the query. This episode explores the reasons why we would do this and what we can do with the tree once we have it. Syntax Tree Uses We could take an input string representing JQL and directly translate into a query against our data store (in our case Elasticsearch) but we choose to represent it as an abstract syntax tree instead.

Read more…

Building Stack Overflow Job Search - Parsing Queries

2019-05-10 17:40:00Z

In Part 1 we talked about some of the shortcomings of Stack Overflow’s job search and how we planned to address them. In this episode we’ll dive into how our parser is written. Some Background Most people seem to get scared the moment the words lexer or parser get mentioned. I’d highly recommend watching Rob Pike’s talk on the Go lexer and parser; it clears up a lot of misconceptions and provides a solid basis for writing a hand-rolled parser.

Read more…

Building Stack Overflow Job Search

2019-05-10 00:00:00Z

Stack Overflow Jobs has always had the ability to perform searches across jobs on the site and, until a couple of years ago, used a simplistic implementation that served us well for a long time. It did have its quirks, however, and solicited a fair amount of feedback on our meta sites (Meta Stack Exchange and Stack Overflow Meta) from developers feeling that they were unable to really filter things the way they want to… And that didn’t really sit too well with us!

Read more…