IT/Software career thread: Invert binary trees for dollars.

Lendarios

Trump's Staff
<Gold Donor>
19,360
-17,424
So what your saying is I'm not wrong.

Thanks-
our UI guy has done JS all his life from college and now 4 years of real world application sand he is streets ahead of everyone understanding how things work. It maybe the case that if you don't know how it works, then it is aids to you.
 

Erumaron

ResetEra Staff Member
261
389
dot net core 3.1 is OUT

LTS BABY!!!


I don't see the purpose for a github in terms of determining an applicant usefulness. I have one for the shit i did for the board migration, but I would never put anything professional there.

it is also a generational thing. So boomers don't have them, zoomers do.

That was quick on dotnetcore. 2.1/2.2 was pretty amazing too. Any indication that we're going to see a 4.0 next year or is 3.1 actually sticking around for a minute (besides the obvious LTS aspect)? I haven't kept tabs on 3.x a ton besides blazor.
 
Last edited:

Lendarios

Trump's Staff
<Gold Donor>
19,360
-17,424
That was quick on dotnetcore. 2.1/2.2 was pretty amazing too. Any indication that we're going to see a 4.0 next year or is 3.1 actually sticking around for a minute? I haven't kept tabs on 3.x a ton besides blazor.
LTS means Long Term Support, so at least 3 years from Now.
dotnet core 2.2 was never LTS, 2.1 was.

AWS uses this designation to determine whether or not to include native support on their lambdas. Lets see if they stick to their word.


Announcing .NET Core 3.1
We’re excited to announce the release of .NET Core 3.1. It’s really just a small set of fixes and refinements over .NET Core 3.0, which we released just over two months ago. The most important feature is that .NET Core 3.1 is an long-term supported (LTS) release and will be supported for three years. As we’ve done in the past, we wanted to take our time before releasing the next LTS release. The extra two months (after .NET Core 3.0) allowed us to select and implement the right set of improvements over what was already a very stable base. .NET Core 3.1 is now ready to be used wherever your imagination or business need takes it.

You can download .NET Core 3.1, for Windows, macOS, and Linux:

ASP.NET Core and EF Core are also being released today.

Visual Studio 2019 16.4 was also released today and includes .NET Core 3.1. It is a required update to use .NET Core 3.1 with Visual Studio. For Visual Studio 2019 users, we recommend simply updating Visual Studio to 16.4 and instead of separately downloading .NET Core 3.1.

Visual Studio for Mac also supports and includes .NET Core 3.1, in the Visual Studio for Mac 8.4 Preview channel. You will need to opt into the Preview channel to use .NET Core 3.1.

Release notes:

The changes in .NET Core 3.1 were primarily focussed on Blazor and Windows Desktop, the two new and large additions in .NET Core 3.0. This includes support for C++/CLI, which has been a regular request for developers targeting Windows.

Before we take a look at what’s new in .NET Core 3.1, let’s take a quick look at the key improvements in .NET Core 3.0, which is the bulk of what’s important to consider for .NET Core 3.1.

Recap of .NET Core 3.0 Improvements
The following key improvements were delivered in .NET Core 3.0. We’ve already heard from developers of big sites that it is working super well for them.

  • .NET Core 3.0 is already battle-tested by being hosted for months at dot.net and on Bing.com. Many other Microsoft teams will soon be deploying large workloads on .NET Core 3.1 in production.
  • Performance is greatly improved across many components and is described in detail at Performance Improvements in .NET Core 3.0 and Hardware Intrinsics in .NET Core.
  • C# 8 add async streams, range/index, more patterns, and nullable reference types. Nullable enables you to directly target the flaws in code that lead to NullReferenceException. The lowest layer of the framework libraries has been annotated, so that you know when to expect null.
  • F# 4.7 focuses on making some thing easier with implicit yield expressions and some syntax relaxations. It also includes support for LangVersion, and ships with nameof and opening of static classes in preview. The F# Core Library now also targets .NET Standard 2.0. You can read more at Announcing F# 4.7.
  • .NET Standard 2.1 increases the set of types you can use in code that can be used woth both .NET Core and Xamarin. .NET Standard 2.1 includes types since .NET Core 2.1.
  • Windows Desktop apps are now supported with .NET Core, for both Windows Forms and WPF (and open source). The WPF designer is part of Visual Studio 2019. The Windows Forms designer is in preview and available as a download.
  • .NET Core apps now have executables by default. In past releases, apps needed to be launched via the dotnet command, like dotnet myapp.dll. Apps can now be launched with an app-specific executable, like myapp or ./myapp, depending on the operating system.
  • High performance JSON APIs have been added, for reader/writer, object model and serialization scenarios. These APIs were built from scratch on top of Span<T> and use UTF8 under the covers instead of UTF16 (like string). These APIs minimize allocations, resulting in faster performance, and much less work for the garbage collector. See Try the new System.Text.Json APIs.
  • The garbage collector uses less memory by default, often a lot less. This improvement is very beneficial for scenarios where many applications are hosted on the same server. The garbage collector has also been updated to make better use of large numbers of cores, on machines with >64 cores. See Making CPU configuration better for GC on machines with > 64 CPUs.
  • .NET Core has been hardened for Docker to enable .NET applications to work predictably and efficiently in containers. The garbage collector and thread pool have been updated to work much better when a container has been configured for limited memory or CPU. .NET Core docker images are smaller, particularly the SDK image. See: Running with Server GC in a Small Container Scenario Part 0, Running with Server GC in a Small Container Scenario Part 1 – Hard Limit for the GC Heap and Using .NET and Docker Together – DockerCon 2019 Update.
  • Raspberry Pi and ARM chips are now supported to enable IoT development, including with the remote Visual Studio debugger. You can deploy apps that listen to sensors, and print messages or images on a display, all using the new GPIO APIs. ASP.NET can be used to expose data as an API or as a site that enables configuring an IoT device.
Platform support
.NET Core 3.1 is supported on the following operating systems:

  • Alpine: 3.10+
  • Debian: 9+
  • Ubuntu: 16.04+
  • Fedora: 29+
  • RHEL: 6+
  • openSUSE: 15+
  • SUSE Enterprise Linux (SLES): 12 SP2+
  • macOS: 10.13+
  • Windows Client: 7, 8.1, 10 (1607+)
  • Windows Server: 2012 R2+
Note: Windows Forms and WPF apps are only functional and supported on Windows.

Chip support follows:

  • x64 on Windows, macOS, and Linux
  • x86 on Windows
  • ARM32 on Windows and Linux
  • ARM64 on Linux (kernel 4.14+)
Note: Please ensure that .NET Core 3.1 ARM64 deployments use Linux kernel 4.14 version or later. For example, Ubuntu 18.04 satisfies this requirement, but 16.04 does not.

Windows Forms Controls Removal
The following Windows Forms controls have been removed from .NET Core 3.1:

  • DataGrid
  • ToolBar
  • ContextMenu
  • Menu
  • MainMenu
  • MenuItem
These controls were replaced with more powerful controls in .NET Framework 2.0, back in 2005. They have not been available by default in the Visual Studio Designer Toolbox for many years. As a result, we decided to remove these controls and focus only on the new ones.

The following replacements are recommended:

Old Control (API)Recommended ReplacementOther associated APIs removed
DataGridDataGridViewDataGridCell, DataGridRow, DataGridTableCollection, DataGridColumnCollection, DataGridTableStyle, DataGridColumnStyle, DataGridLineStyle, DataGridParentRowsLabel, DataGridParentRowsLabelStyle, DataGridBoolColumn, DataGridTextBox, GridColumnStylesCollection, GridTableStylesCollection, HitTestType
ToolBarToolStripToolBarAppearance
ToolBarButtonToolStripButtonToolBarButtonClickEventArgs, ToolBarButtonClickEventHandler, ToolBarButtonStyle, ToolBarTextAlign
ContextMenuContextMenuStrip
MenuToolStripDropDown, ToolstripDropDownMenuMenuItemCollection
MainMenuMenuStrip
MenuItemToolstripMenuItem
Yes, this is an unfortunate breaking change. You will see build breaks if you are using the controls we removed in your applications. Also, if you open .NET Core 3.0 applications in the latest versions of the .NET Core Windows Forms designer, you will see errors if you are using these controls.

We recommend you update your applications to .NET Core 3.1 and move to the alternative controls. Replacing the controls is a straight-forward process, essentially “find and replace”.

First, we should have made these changes before we released .NET Core 3.0, and we appologize for that. We try to avoid late changes, and even more for breaking changes, and it pains us to make this one.

As we got further into the Windows Forms designer project, we realized that these controls were not aligned with creating modern applications and should never have been part of the .NET Core port of Windows Forms. We also saw that they would require more time from us to support than made sense.

Our goal is to continue to improve Windows Forms for high DPI, accessibility, and reliability, and this late change was required to enable us to focus on delivering that.

C++/CLI
We added support for creating C++/CLI (AKA “managed C++”) components that can be used with .NET Core 3.0+, in Visual Studio 2019 16.4. You need to install the “Desktop development with C++” workload and the “C++/CLI support” component in order to use C++/CLI.

This component adds a couple templates that you can use:

  • CLR Class Library (.NET Core)
  • CLR Empty Project (.NET Core)
If you cannot find them, just search for them in the New Project dialog.

C++/CLI is only enabled on Windows. You cannot use C++/CLI components targeted for .NET Framework with .NET Core or vice versa.

Closing
We recommend moving to .NET Core 3.1 as soon as you can. It is a great release (largely due to 3.0) that brings improvements to so many aspects of .NET Core. It is also a long term support (LTS) release, and will be supported for three years.

Life cycle update:

  • .NET Core 3.0 will reach end-of-life three months from today, on March 3, 2020.
  • .NET Core 2.2 will each end of life on December 23rd.
  • .NET Core 2.1 will be supported until August 2021 (it is also an LTS release).
The following .NET Core posts are recommended reading to learn more about what you get with .NET Core 3.1 and other projects we’ve been working on.

Fundamentals

Desktop

ASP.NET

General

 

Erumaron

ResetEra Staff Member
261
389
LTS means Long Term Support, so at least 3 years from Now.
dotnet core 2.2 was never LTS, 2.1 was.

AWS uses this designation to determine whether or not to include native support on their lambdas. Lets see if they stick to their word.


You replied before my edit, womp. I understand what LTS means. 1.x was fast obsoleted by 2.x which was fast obsoleted by 3.x in terms of ease of/effective use. I'm asking if 4.x is coming next fall with similar effects or if 3.x is so feature packed that it's more like a python 2/3 where it lives a *long* time as 3.x.
 

The_Black_Log Foler

Stock Pals Senior Vice President
<Gold Donor>
43,734
40,634
First off, I'm a .NET guy so I'm not familiar with Java/Spring. Although it sounds like it's equivalent to ASP.NET MVC.

So, either framework will work. However, Angular needs complete control of the browser so all Spring will be doing is serving up a static index.html page to launch the app -- no need for a template engine. With Vue, however you could embed it within specific pages of a MVC app. That will make things more complicated so I wouldn't go that route unless you have a specific need (usually this approach is good for legacy server-side apps that one wants to enhance).


Well, if all you care about is backend then probably focusing on the web API, authentication, and database services would be best. The client-side framework doesn't really matter in that regard because no matter which you choose they will be consuming those.

Also, I'm not a huge fan of node.js on the backend. For enterprise applications I'd go with Java or ASP.NET or .NET Core. BUT, if you insist then look into ExpressJS or Nest.JS if you opt for Angular.
Seems like every startup and their mom wants node on backend. Not a fan of weakly typed JS so seems weird but I guess there's gotta be a reason? Less expensive? /Shrug
 

The_Black_Log Foler

Stock Pals Senior Vice President
<Gold Donor>
43,734
40,634
LTS means Long Term Support, so at least 3 years from Now.
dotnet core 2.2 was never LTS, 2.1 was.

AWS uses this designation to determine whether or not to include native support on their lambdas. Lets see if they stick to their word.

Any chance you work for Ultimate Software?
 

The_Black_Log Foler

Stock Pals Senior Vice President
<Gold Donor>
43,734
40,634
First off, I'm a .NET guy so I'm not familiar with Java/Spring. Although it sounds like it's equivalent to ASP.NET MVC.

So, either framework will work. However, Angular needs complete control of the browser so all Spring will be doing is serving up a static index.html page to launch the app -- no need for a template engine. With Vue, however you could embed it within specific pages of a MVC app. That will make things more complicated so I wouldn't go that route unless you have a specific need (usually this approach is good for legacy server-side apps that one wants to enhance).


Well, if all you care about is backend then probably focusing on the web API, authentication, and database services would be best. The client-side framework doesn't really matter in that regard because no matter which you choose they will be consuming those.

Also, I'm not a huge fan of node.js on the backend. For enterprise applications I'd go with Java or ASP.NET or .NET Core. BUT, if you insist then look into ExpressJS or Nest.JS if you opt for Angular.
Ok how about node vs python/Django on the back end?
 

Lendarios

Trump's Staff
<Gold Donor>
19,360
-17,424
Any chance you work for Ultimate Software?
no. I apply to them and failed miserably the interview 6 years ago. I do have around 6 former team member working from them. Want me to forward them your resume?
 

Lendarios

Trump's Staff
<Gold Donor>
19,360
-17,424
Does industry believe that? /Skeptical
Something being pretty sells more than being functional.

You replied before my edit, womp. I understand what LTS means. 1.x was fast obsoleted by 2.x which was fast obsoleted by 3.x in terms of ease of/effective use. I'm asking if 4.x is coming next fall with similar effects or if 3.x is so feature packed that it's more like a python 2/3 where it lives a *long* time as 3.x.
Who knows to be honest. I think they are going to try to penetrate the AWS lambda market some more, and there are the obvious politics of amazon vs microsoft in play.
 

The_Black_Log Foler

Stock Pals Senior Vice President
<Gold Donor>
43,734
40,634
no. I apply to them and failed miserably the interview 6 years ago. I do have around 6 former team member working from them. Want me to forward them your resume?
Maybe in like 4-5 months? I've had my eye on their job reqs just wanna fill in some gaps and work full time on my Master's next semester.

Know any other decent Java/spring companies in FL?
 

ShakyJake

<Donor>
7,626
19,250
Does industry believe that? /Skeptical
I'm just going by personal experience. To be at a professional level with CSS you really have to have a ton of a experience to be aware of all the little idiosyncrasies of the language. Also, you need, I would think, some kind of art degree on top of it. Isn't that a rare combination? CS + Art?

Ok how about node vs python/Django on the back end?
I don't know shit about Python. Again, for enterprise I would think Java and .NET would be the best choices. I think I've heard Node.js, Python, etc. and more popular on the west coast as far as job offerings go.
 
  • 1Like
Reactions: 1 user

Vinen

God is dead
2,782
486
I'm just going by personal experience. To be at a professional level with CSS you really have to have a ton of a experience to be aware of all the little idiosyncrasies of the language. Also, you need, I would think, some kind of art degree on top of it. Isn't that a rare combination? CS + Art?


I don't know shit about Python. Again, for enterprise I would think Java and .NET would be the best choices. I think I've heard Node.js, Python, etc. and more popular on the west coast as far as job offerings go.

Enterprise wants Python skills now. Hell the product I work on can execute arbitary Python as part of our extensibility and well directly to Enterprise customers exclusively.
 

The_Black_Log Foler

Stock Pals Senior Vice President
<Gold Donor>
43,734
40,634
Hmm, wonder if I should pivot from picking up node next to python.. Already have some JS experience and 0 python experience. Don't want to spread myself too thin. I need to pick up AWS in the next month as well.

My ideal job would be working on large distributed back-ends with unique problems, think stuff like Twitter, Netflix, etc (don't want to work for Twitter but they have some unique problems). If anyone has any direction on languages/frameworks/tools I should be looking at would be greatly appreciated. (aws specific stuff? Functional programming language for big data? Familiarity with elastic search? Concurrency? Microservices? Etc Etc)

Think I've gotten off to a great start over the past year but as y'all know our industry moves hella fast in adopting new tech. Any feedback is appreciated.
 

ShakyJake

<Donor>
7,626
19,250
Hmm, wonder if I should pivot from picking up node next to python.. Already have some JS experience and 0 python experience. Don't want to spread myself too thin. I need to pick up AWS in the next month as well.
You're making a mistake if you're hoping around trying to learn the 15 billion different technologies. Pick something and become proficient with it. You'll have a tougher time finding a job if you're mediocre (or worse) at everything.
 
  • 1Like
Reactions: 1 user