HNHacker News
TopNewBestAskShowJobs

benaadams

4,573 karma · joined September 7, 2015

[ my public key: https://keybase.io/ben_a_adams; my proof: https://keybase.io/ben_a_adams/sigs/gvU8GwPtjTPPJkoiHhuw1fW7zJ-3qMcHhbK2r-BuxrY ]
submissionscomments
benaadams··on Type erasure and reification
> Its a shame, I was able to do great things with the run-time generation API (which now defaults to an interpreter in UWP).

That's more to do with UWP being a AOT platform than it being deprecated; it should still work fine with .NET Core?

benaadams··on Type erasure and reification
> MS actually doesn’t use generics as aggressively as it could in its API for similar reasons (eg there are two APIs for collections that use genetics and don’t).

Object based collections are generally deprecated over the generic versions and were existed prior to generics being introduced.

benaadams··on Google May Have to Get Used to Third Place in the Cloud
> Even windows.forms was default in visual studio until like 2013 or so.

They are also bringing WinForms and WPF forward to work on .NET Core 3.0; and its still supported https://blogs.msdn.microsoft.com/dotnet/2018/10/04/update-on...

benaadams··on .NET Standard 2.1
https://docs.microsoft.com/en-us/dotnet/core/porting/librari...

Code Access Security and Security Transparency aren't supported on .NET Framework either

benaadams··on .NET Standard 2.1
UWP is built from .NET Core
benaadams··on ASP.NET Core 3.0 will only run on .NET Core
COM support is coming to .NET Core 3.0
benaadams··on A History of .NET Runtimes
Also Uno if you prefer XAML https://platform.uno/
benaadams··on Paint.net 4.1 is now available
It is available in the Windows store https://blog.getpaint.net/2017/09/29/paint-net-is-now-availa...
benaadams··on Windows Task Scheduler Zero Day Exploited by Malware
The vulns are reported for each version of Windows they exist in e.g. https://www.cvedetails.com/cve/CVE-2018-8307/
benaadams··on Windows Task Scheduler Zero Day Exploited by Malware
Following the links it includes fixed vulns
benaadams··on Windows Task Scheduler Zero Day Exploited by Malware
That's because the vulns are repeated across the Windows versions, adding the versions together counts the same vuln multiple times
benaadams··on Windows Task Scheduler Zero Day Exploited by Malware
> MS Windows has been the "most" exploited OS in our history.

Doesn't look that way

Top 50 Products By Total Number Of "Distinct" Vulnerabilities https://www.cvedetails.com/top-50-products.php

  Vulns  Product
  
1. 2124 Linux Kernel Linux OS

2. 2084 Mac Os X Apple OS

3. 1924 Android Google OS

4. 1741 Firefox Mozilla App

5. 1664 Debian Linux Debian OS

6. 1546 Chrome Google App

7. 1495 Iphone Os Apple OS

8. 1123 Ubuntu Linux Canonical OS

9. 1103 Windows Server 2008 Microsoft OS

10. 1057 Flash Player Adobe App

11. 984 Safari Apple App

12. 961 Windows 7 Microsoft OS

13. 951 Internet Explorer Microsoft App

14. 951 Acrobat Adobe App

15. 856 Thunderbird Mozilla App

16. 818 Windows Vista Microsoft OS

17. 784 Opensuse Novell OS

18. 731 Windows Server 2012 Microsoft OS

19. 731 Windows Xp Microsoft OS

20. 698 Seamonkey Mozilla App

21. 685 Acrobat Reader Adobe App

22. 665 Windows 8.1 Microsoft OS

23. 641 Mac Os X Server Apple OS

24. 636 Windows 10 Microsoft OS

benaadams··on Bing.com now runs on .NET Core
Assuming its C# you should mostly be able to copy the source of the razor pages and controllers over wholesale.

The startup and identity/authentication is a bit different though.

benaadams··on Bing.com now runs on .NET Core
Meant for port sharing; multiple apps or subdomains switching either on host header or path; as you can't have multiple processes listening on the same port (80/443) on the same machine. Or changing which is run based on the path
benaadams··on Bing.com now runs on .NET Core
Not over an actual network; but localhost or in-process it should be fine? Though the in-process IIS hosting is ASP.NET Core 2.2 as it got bumped from the 2.1 release https://github.com/aspnet/IISIntegration/issues/878
benaadams··on Bing.com now runs on .NET Core
For the WebAssembly client side Blazor it uses the Mono WebAssembly (though .NET Core on server) as the Mono compile chain for WebAssembly as it is the most mature implementation (also produces smallest output from their work on watchOS).

If you are using Blazor as a full desktop app (e.g. Electron) then you can use .NET Core on the client and that can talk to the javascript as a local server; but for running in the browser directly as WebAssembly it uses the Mono (WebAssembly) runtime.

XboxOne can run UWP and for that you can use .NET Core (via UWP) in a "shared" mode; however it also has a dedicated "game OS" mode (which most boxed/AAA games use) which takes priority over everything and has full hardware access, but that doesn't allow Jitting so you can't use .NET Core in that mode.

Mono and Unity have mature AoT compilers so can run in this mode (Xamarin also need AoT for iOS and Android which also don't allow Jitting, and Unity needs it for a lot of the platforms they support. Mono and Unity use different approaches to AoT though)

Mono is now sharing C# source code with .NET Core (and it goes both ways); but as far as I'm aware .NET Core doesn't seem to be rushing to fill any of the gaps that Mono serves well (iOS, Android, etc)

Though they are working on an AoT version of .NET Core for Windows/Linux/macOS https://github.com/dotnet/corert but that seems to be more focused on competing with golang and rust's AoT single exe offerings.

For desktop UIs; we'll have to see what's next :)

benaadams··on Bing.com now runs on .NET Core
Techempower Benchmarks all run on Linux and they are quite focused on the performance of them https://www.techempower.com/benchmarks/#section=test&runid=9...

7+ million requests per second on linux for a single server (maxing out a 10GBps network) isn't to shabby ;)

Also they run continuous benchmarks for all platforms in a wider range of tests https://github.com/aspnet/Benchmarks

With the results being public at https://aka.ms/aspnet/benchmarks

benaadams··on Bing.com now runs on .NET Core
Good point :) Updated
benaadams··on Bing.com now runs on .NET Core
For server on Windows, Linux and MacOS you'd probably sway .NET Core.

For client on Windows, UWP is .NET Core, and WinForms or WPF currently .NET Framework. Though .NET Core 3.0 is meant to bring the full set of Windows UI stacks to .NET Core https://blogs.msdn.microsoft.com/dotnet/2018/08/08/are-your-...

For Tizen you'd also use .NET Core

For client on macOS or Linux you use Mono

For games you'd probably use Unity (Mono based)

For iOS, tvOS, watchOS, Solaris, Android, Solaris, IBM AIX and i, BSD (FreeBSD, OpenBSD, NetBSD), PlayStation 4, XboxOne, WebAssembly you'd use Mono

Can still use Mono for client on Windows and the ASP.NET Core stack is quite happy running on Mono on the server; but they have different focuses.

If you were building a library you'd target the .NET Standard 2.0 "contract" and it would cover all the runtimes.

benaadams··on Bing.com now runs on .NET Core
.Net Standard is what you build libraries against; its the abstract contract of the runtime.

Then .NET Framework, .NET Core, Mono, Unity, etc runtimes then implement that contract so a library built against .Net Standard will work on any of the runtimes.

benaadams··on Bing.com now runs on .NET Core
Doesn't need on for SSL; needs a reverse proxy if you want to do port sharing (many apps on port 80/443 switched by host header) or Windows Auth.

You can also build your reverse proxy using Kestrel.

Though IIS is more battle tested so they may be using that as front line server for such a high profile service as Bing

benaadams··on Bing.com now runs on .NET Core
char ref (managed pointer) is cast to byte ref https://github.com/dotnet/coreclr/blob/04d9b557ef8b7c60a1194...

Then it uses SpanHelpers.SequenceEqual for byte which is vectorized

https://github.com/dotnet/coreclr/blob/04d9b557ef8b7c60a1194...

benaadams··on Faster – Fast key-value store from Microsoft Research
src is in native https://github.com/Microsoft/FASTER/tree/master/cs/src/nativ...

Looks like some file IO functions and __rdtsc

benaadams··on Reality Show Fame Is More Lucrative Than an Oxford or Cambridge Education
But there is a lot less of people on "Love Island" (72 people total in 4 years) than Oxford or Cambridge graduates; so its not particularly a viable route to success.

There are probably > 208 lottery winners in the same period; no one would suggest that as a lucrative approach to life.

> Frontier also calculated how contestants can best extend their stays: being part of the “original crew” increases your chances of staying for the duration over those who join the cast later.

Also being on 44 episodes of one of the country's most popular TV shows; you'd hope would bring some measure of success...

benaadams··on Removing jQuery from GitHub.com frontend
Can do it in < 629 Bytes

https://github.com/benaadams/delegate-dom.js

benaadams··on Unlike most millennials, Norway's are rich
And they were prior to student loans
benaadams··on Unlike most millennials, Norway's are rich
Currently its +9% to your tax bands; essentially a graduate tax.

Repayment starts at £21,000pa; so if you earn £30,000 you'd pay back £37 per month

benaadams··on .NET JIT and CLR – Joined at the Hip
.NET Core has pretty strong backwards compatibility rules:

https://github.com/dotnet/corefx/blob/master/Documentation/c...

> We generally don't accept change proposals that are in bucket #1.

...

> Bucket 1: Public Contract Clear violation of public contract.

> Examples:

> - Renaming or removing of a public type, member, or parameter

> - Changing the value of a public constant or enum member

> - Sealing a type that wasn't sealed

> - Making a virtual member abstract

> - Adding an interface to the set of base types of an interface

> - Removing a type or interface from the set of base types

> - Changing the return type of a member

> - ...or any other incompatible change to the shape of an API

benaadams··on How my role as CTO has changed as we've grown from 1 to 100 engineers
Thought of contributing to open source to keep your hand in; while not creating bottlenecks, dependencies and project stress in your own company?
benaadams··on Some notes on high speed networking on PCs
> Probably, something popular needs building that demands 10G-in-the-home to use, in order to get volume up so pricing can come down a bit.

HDMI 2.0 for 4K is 14.4 Gbit/s

HDMI 2.1 for 8K is 42.7 Gbit/s

← PreviousPage 3 of 8Next →