CES 2020 – Yes Please

What’s the big deal?

If you’re not keeping up on CES 2020, you’re missing out on a whole lot of cool stuff. LG is rolling out TVs from the ceiling, Samsung is using microLEDs and AI to create mind blowing picture and massive 292 inch TVs. Every year this is the most exciting time for a tech enthusiast. Here’s some of the things I’m most excited about. I will add more as the week goes on.

Advanced Micro Devices (AMD)

AMD has been disrupting the processor market over the last couple years, with increasingly more impressive hardware seeming to release constantly. They dropped a bomb with the 7nm process, then later brought the 3950x to the table – a 16 core monster. That’s not even getting into high end desktop yet for AMD!

AMD redefined high end desktop today, with a 64 core 128 thread monster of a Threadripper CPU. The 3990x has been rumored to be coming ever since the 2990wx came out. I personally am rocking a 2990wx, but I’m not sure I can fork over the $3,990 for this thing. I’m not sure I can put all that power to use as much as I’d need to make it worth it either. That’s one ass kicking machine though! I max out my 32 cores quite often, I wonder what the same tasks would be like on the 3990x. Wow!

I have high hopes for AMD in the future, hopefully Windows can keep up with the monsters that AMD keeps throwing at them.

Unity 3D – Sending Messages Between Objects

It’s very common to need to use a Messaging/Event system in Unity 3D. Honestly, it’s much easier to use an asset to do things like this, but not everybody wants to buy an asset to do everything they do in Unity 3d. That’s why you’re a developer right? To do it yourself! In case you’d like a built out system, check out Event Manager or Event Man. While those can be helpful, it’s also helpful to understand how the event system works behind the scenes, so please do read on.

I learn all my skills on PluralSight, if you’ve never checked it out you should! I work hard to get people hooked up with good deals for my readers, so take advantage of the Unlimited Access Free Trial I set up for you guys! After some PluralSight videos, the ladies won’t be able to keep their hands off you! Sorry to the ladies, if you’re not into ladies and they can’t keep their hands off you, you probably shouldn’t have clicked the link…

What is the Messaging System?

To put it in my own words, and make it simple to understand in one sentence – An event system is a pair of scripts that allow you to run a function on the destination object, by calling a trigger from the source object.

Is that easy enough? We’ll see. Once you grasp the concept of the messaging system, you’ll think of a million and a half reasons to use it. No more using GameObject.Find. I’m sick of it! Using GameObject.Find is not a reliable way to do business between objects, and doing multiple objects at once is cumbersome. With the messaging system, you can have multiple game objects subscribing to the same triggers and they will both fire off functions at the same time. Like frickin magic!

Let’s get the show on the road!

We’re going to get started by creating a new project of course. In unity hub, hit new.

Now give that baby a name, we’re going to call ours “Messaging Test”.

Note: You can see I’m using a 2019.3 alpha version. This messaging replaces GameObject.SendMessage, there were issues with that method. You can still use GameObject.SendMessage, but that’s not what we’re doing here.

So, what I’m going to do here is use a couple game objects to rotate the camera, to make it easier to position the objects around the camera, let’s select the camera from the hierarchicy.

and move it to position 0,0,0 from the inspector.

That will allow us to position objects 1 meter in front and 1 meter behind the camera, so we can rotate 180 degrees to see each object.

Now we’ll create our two objects. You can pick whatever you’d like to do this with, but I’m going to do a cube and a sphere. Then you can see the change in objects when the camera rotates. Do this by right clicking in the hierarchy and selecting 3D Object->Cube and then do it again selecting 3D Object-> Sphere.

Now you should be able to see the cube and sphere in the inspector, as well as the scene view. This is what it should look like in the inspector.

From here, we’re going to want to position the cube and sphere on each side of the camera. Select the cube from the hierarchy and set it’s position to 0,0,5. Now select the Sphere from the hierarchy and set it’s position to 0,0,-5. If you find the objects in the scene view, it should look like the next picture. The cube and sphere should be on opposite sides of the camera object. You can also flip over to the game view and see the cube.

Let’s start scripting now!

The first thing we’re going to set up is the listener. This will receive messages sent by other game objects, and it’s going to be placed on the camera. So select the camera in the hierarchy and click add component in the inspector. In the add component search type script, and click add new script

We have to give it a name, let’s call it “MessageListener” and click Create and Add.

Now in the inspector you should see a Message Listener(Script) component. Right click that component and click Edit Script. That’ll open the script in whatever editor you have as default. I’m using Visual Studio.

The listener script

We’re going to be using the UnityEngine.EventSystems namespace and creating a public interface that implements IEventSystemHandler. The interface lists the two methods we can call from the trigger. Then we’ll implement that interface in our class, and define the methods. Both methods will rotate the camera 180 degrees. Here’s the script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public interface MessageListenerInterface : IEventSystemHandler
{
    // functions that can be called via the messaging system
    void Message1();
    void Message2();
}

public class MessageListener : MonoBehaviour, MessageListenerInterface
{
    public void Message1()
    {
        this.transform.Rotate(0,180,0);
    }

    public void Message2()
    {
        this.transform.Rotate(0, 180, 0);
    }
}

You can write that out, or copy and paste the code into the editor, now save that and switch back over to Unity3D.

Prepping the GameObjects

We need to prep the GameObjects to accept a click. To do this we’ll add a collider to the cube and sphere.

Select the Cube in the hierarchy, click add component in the inspector, and type collider. You’ll get a list of all the colliders available, we’re going to use a box collider for the cube, so select that.

Now we’ll do the same for the sphere. Select the Sphere in the hierarchy, click add component in the inspector, and type collider. We’re going to use a sphere collider for the sphere, so select that.

Let’s go back to the cube and add the trigger script. Select the cube in the hierarchy and do add component, search script, select new script, we’ll name this one Message1Trigger, and click create and add. Now right click the Message1Trigger(script) component and click edit script.

First Trigger Script

Here we’re going to be using the UnityEngine.EventSystems namespace again, but we won’t be implementing anything special. We’ll create a gameobject variable and executing the Message1 method on it. After we create the script we’ll define that variable in the inspector. Here’s the script for Message1Trigger:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class Message1Trigger : MonoBehaviour
{
    public GameObject target;
    void OnMouseOver()
    {
        if (Input.GetMouseButtonDown(0)){
            ExecuteEvents.Execute<MessageListener>(target, null, (x, y) => x.Message1());
        }
    }
}

Save that and switch back over to Unity3D. Now we’ll define the GameObject called “target”. Make sure the cube is still selected in the hierarchy, and you should see a new option under the Message 1 Trigger (Script) component called “Target”. Drag the Main Camera from the hierarchy onto the box next to Target. You should see the value switched from None to Main Camera.

Next we’re going to do the same for the sphere. Select the sphere in the hierarchy and do add component, search script, select new script, we’ll name this one Message2Trigger, and click create and add. Now right click the Message2Trigger(script) component and click edit script.

Second Trigger Script

Here we’re going to be using the UnityEngine.EventSystems namespace again, but we won’t be implementing anything special. We’ll create a gameobject variable and executing the Message2 method on it. After we create the script we’ll define that variable in the inspector. Here’s the script for Message2Trigger:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class Message2Trigger : MonoBehaviour
{
    public GameObject target;
    void OnMouseOver()
    {
        if (Input.GetMouseButtonDown(0))
        {
            ExecuteEvents.Execute<MessageListener>(target, null, (x, y) => x.Message2());
        }
    }
}

Save that and switch back over to Unity3D. Now we’ll define the GameObject called “target”. Make sure the sphere is still selected in the hierarchy, and you should see a new option under the Message 2 Trigger (Script) component called “Target”. Drag the Main Camera from the hierarchy onto the box next to Target. You should see the value switched from None to Main Camera.

That’s it! You’ve set up a messaging system. Let’s test that thing out! Click play on the top of the scene view, and it should switch over to game view automatically.

Your game view should show the cube when you first start

Give that bad boy a click, and it’ll rotate the camera to put the sphere in view.

Boom like magic the camera flips 180 degrees programatically, and the crowd goes wild! Click the sphere, and watch it happen again!

Back to the cube we go, you did a full 360 McTacoTwist. That’s 360 more degrees than you’ve ever rotated in your life. Thank you Unity3D for making all this possible!

What do you guys think? Are you going to be implementing more messaging into your Unity3D projects? I know I am! Let me know if you have any questions, or want to see anything else. Thanks for reading!

Signal Boosters – Single VS Multi Carrier

Cell phone signal boosters are not an uncommon accessory for personal or business use. I have one in my car, and it’s an amazing difference driving around with a device that gives you better service everywhere you go. The setup for these is simple, and they just work!

What does single and multi carrier mean?

Multi Carrier
Multi carrier signal boosters are the most common type. You plug them in and they boost the signal for (almost) any carrier. In the United States, I haven’t heard of a carrier that doesn’t get boosted by them – maybe very small carriers. The only issue with these is that there’s a FCC regulation limiting the strength of a multi carrier cellular signal booster.

A good example(and the one I use) of a multi carrier booster is the WeBoost Drive 4G-X.

I’ve been blown away by the functionality of this, and it’s pretty awesome having it right in my car. There are also home solutions like the WeBoost Connect.

Single Carrier
Single carrier signal boosters are the ultimate if you’re in an area where there is no way you’re getting any service at all. We recently deployed a single carrier cell signal booster to a job site and it worked wonders! They are using a CradlePoint IBR900for internet, and it’s an amazing product that provides a high quality cellular internet connection. Until recently, we haven’t found a place that these don’t work. There’s a completely dead spot for miles in Wisconsin where our job site is. So we installed a single carrier signal booster called the Cel-Fi Go X.

The results are pretty amazing, we went from zero connection to a 15Mbps connection with zero help on my end. I just shipped it out and they installed it, and they are not techy people. So if they can do it, you can too. The obvious drawback of a single carrier cell signal booster is the price. This is a case where you do get what you pay for though, at more than twice the price, we got a product that actually worked for our scenario and we were blown away by the results.

Telecommunication network above city, wireless mobile internet technology for smart grid or 5G LTE data connection, concept about IoT, global business, fintech, blockchain

What are your use cases?

Whether you’re at home using a hotspot for your computer, or using your cell phone, I think signal boosters are a huge win that do not disappoint.

Leave a comment, and let me know what you are using signal boosters for. There are many use cases like mobility in vehicles, internet of things, mobile offices, and home use. Any ideas?

Smart Home Stuff – Let’s Dive in

You’ve heard of smart home, right? I mean, it’s 2019. It’s time to do it. I’m all in, and I hope you are too, because it’s about frickin time. I have a few ideas that I want to bring to life, and maybe you have some to share too. Let me know in the comments!

Smart Light Switch

Yeah I get it, they make these. I want to make one that is:

  • WiFi or RF Serial with network connected main hub
  • Touch screen or capacitive button with touch dimmer and LCD displaying dim percent
  • 3D printed box to hold the components
  • Designed for regular rectangular opening face plate to cover

The idea is that I’m sick of running around turning off lights, I want to say I’m leaving or it’s bed time – and shut the house off. I don’t want plain looking switches like those that exist though, it’s 2019 so let’s act like it is.

What parts do we need to cram in there?

I’ll keep adding to this as I make progress as well, let me know if you have any ideas or creations of your own!

Technology in Construction

While construction companies seem to be among the least willing to adopt newer technologies, there’s definitely increasing interest being shown. From KPMG’s 2017 Global Construction Survey, to their 2018 survey, there’s been some pretty decent progress shown in technology investment.
The technology is definitely out there. If you haven’t seen it, go check it out. From AR/VR, to drones, or machine learning, right now is the time to dive in to more productive business processes involving technology.

Questionable reality

There’s nothing questionable about it really, otherwise I than questioning if what you’re seeing is real. AR/VR/MR is one of the most exciting things coming to the construction industry. One of the things I’m most excited about is the upcoming nreal light glasses. They are mixed reality glasses that are comparable to Microsoft’s Hololens. I’ve always been one to stay away from mainstream technologies though, I like smaller upcoming things like nreal. There are many uses for XR technologies like training, simulations, project planning, safety audits, and quality control checks. Do you have any other ideas for this kind of technology in construction? Comment below!

Automated and remotely controlled equipment

No way, seriously? Can you imagine an excavator swinging around without an operator in it? How about a bulldozer cruising down a right of way without someone in it? It’s getting real crazy real fast, and I’m pumped. What is next, how about welding, sand blasting and painting, or even simply daily reporting? There’s companies doing all of those things without humans controlling the machines, Mortenson Construction for example. My mind is blown, it’s quite a time to be alive. I can’t wait to see what comes next. Have you guys seen anything I should see? Share it with me!

Thermaltake Pacific TF1

Here is my first ever half-assed review of something. The good, the bad, and the leaky.

What is it?

The Thermaltake Pacific TF1 is a monitor, that watches the health of your cooling system, and alarms when there are any issues. I love this idea, because I’m super super paranoid that I’m going to have a failure, and I’m not going to know. I’ll just be sitting here gaming, or editing, or working on a 3d project, and all of a sudden my machine will thermal shutdown. What a terrible thought! I’ve had that happen to me before, so I know the disappointment of having a thermal shutdown, or overpowering a power supply.(Which is why I got the Corsair AX1600i, shut down the paranoia!) My last major malfunction with thermal shutdowns was with the AMD FX 8350, which is the build before this one. Long leap from 8 cores to 32, wow! I ran the FX 8350 this long, and skipped all the other Ryzen fun, because it kept on trucking at a very comfortable speed. So that’s what it is, the hey dude your computer is hot, machine.

Why do I need it?

Well, you could say that you don’t, but it’s definitely a piece of mind. You can watch your water temp, which is great. You can rearrange your cooling system, add and remove radiators, change fans push/pull configurations, see what flow is best for you, where your gains drop off from flow, and see what your water temp looks like compared to your CPU/GPU temps.

You can also see the flow rate, which is super helpful to see what you’re putting out. Do you need another pump? Is your pump failing? Is the pump putting out what spec says it should? Is there a bottleneck? Maybe you need to make some adjustments.

It’s pretty much the ultimate, when it comes to tweaking your cooling system to get the most out of it. I used the hell out of mine for that.

2 Failed Thermaltake Pacific TF1

Why do I not use it anymore?

What about the bad? there’s a bad side to everything, right? Yes, unfortunately there is. With the Termaltake Pacific TF1, I experienced leaking, twice! Two different units, both leaked after about 10 days each. Each time, I redid my bends, and tried to see if there was pressure being pushed towards one side of it, or what the deal is. I couldn’t figure out how to make it not leak. It’s a leaker, that’s not what I want in my system, not for long anyways. I can say, it’s a great diagnostic tool, leaks or not. I enjoyed using it to figure out what optimal looks like for my system.

Second poopy thing that drove me crazy is the alarm, on the first one that is. I shouldn’t say the alarm, it was actually the flow rate sensor, it was inaccurate. It showed flow way low, and kept alarming. When I say low, like 20-30 lph, when I’m running 160-200 lph. That was not right out of the box, it ran about 5 days before having that problem. Bearings? I don’t know, I’m not going to diagnose it, I didn’t get any use out of it.

Conclusion

I love the idea. Love it! I love the Thermaltake Pacific TF1 as well, honestly. I just can’t run it in a daily driver, I’ll keep it around as a diagnostic tool though. I’ve been a huge fan of Thermaltake for years. I’ve always run Thermaltake/Gigabyte in all my machines, and never had a problem. This is my first custom loop, though, and apparently they don’t have their head in that game. Anybody else have the same problem? Last thing I can say is, like a holy bucket – it does not hold water.

Bucket with holes

Intro to Cyber Security Awareness

Section 1 – Welcome to Cyber Self-Defense

The internet is a wild world, and the only defense for anybody is awareness. Everybody who has a device with access to the internet, which is just about everybody, needs to be following some best practices with their devices. My 6 year old has a laptop, a desktop, 2 iPads, and an old cell phone. Think of all the damage that can be done with those devices. Seriously? Yes! And I’m not talking about seriously potential damage, but seriously she has all that stuff – ridiculous. I keep her devices segregated from mine, because I don’t want anything she’s got going on to affect me. So, no I’m not telling you to lecture your 6 year olds about cyber security, they don’t care.

What you do need to understand, is the impact you can have on yourself, and others, when accessing the internet. There are many unknown threats out there, and this post is going to educate you on what threats there are, the following posts will be about how to protect yourself from those threats.

What are they looking for?

Who are “they”? The attackers of course. They want all kinds of data about your business, data about your customers, personal data, bank info, medical records, personal ID info, any intellectual property they can get their hands on! It needs to stop, and who better than you to stop it. You’re not a super hero, or a super hacker, I don’t think anyways – but you are super caring if you found yourself reading this. You are the number one defense, and those around you.

What needs to be protected?

We talked about who, now it’s time for what. What are we even protecting? Well let’s make a list:

  • Confidentiality
  • Integrity
  • Availability

That’s “CIA”. Confidentiality, integrity, and availability. Let’s define all of those in short form:

Confidentiality

Protecting data about workers, and about the business

Integrity

Protecting data from being corrupted, and staying accurate

Availability

Protecting the ability to access data at all times

Who is helping protect you?

Do you think anybody is out there protecting you? If you say no, you’re wrong. There are many things in place that protect your data, and they work well, but nothing is perfect. Let me reiterate that you are the best defense for personal, and business, data. What’s best for your personal data, is also best for the business – Why? Because if your personal devices are infected, there’s potential for that to spread to your business as well.

IT Support may also be protecting you, if your company has a IT department, or an outsourced IT support company. A constantly evolving security structure protects you from unknown attacks, even if you don’t notice it. There are people employed whose only purpose is protecting our companies from attacks!

Microsoft! Shazam! They’re protecting you? Little old you? F yes they are! They deploy massive updates, monitor constantly changing threats, filter emails for malware and phishing, encrypt data on your local hard drive, and provide a “security onion” that constantly monitors network activity in your business. And no, I don’t mean security onion by lingo so boring that it burns your eyes, there are literally layers of security defending networks that you don’t know about. A frickin onion with laser beams on it’s frickin head.

Security layers

Weaknesses

Humans are the weakest link, but are also the best defense! You can spot when something is wrong, and report it. If you’re not sure who to report it to, we’ll go over that in another post. It’s easy to tell when somethings wrong, is there an error that keeps popping up, an unusually slow program, you machine is unusually slow, or your antivirus keeps bugging you? It’s probably an issue that should be resolved.

New weaknesses are constantly discovered, literally daily, and old weaknesses are not being prevented if you’re not updating your computer regularly. So quit turning off windows update! Update that thing! A lot of people don’t care about these types of things, until they are attacked, then it’s too late. That’s some people’s starting point, but you should be proactive and start before it’s too late.

 

Who are the attackers?

Script Kiddies

Inexperienced hacker, who uses prebuilt tools to hack for fun

Black Hat Hackers

An attacker with malicious intent

Hacktivists

A person who uses hacking as a form of activism, like an anti-pipeline protestor, an anti-democratic party, or someone who just wants to leave their mark

Disgruntled Employees or Friends

Just there to cause some trouble because they’re crabby

Attack types

Vulnerabilities

Leaving your computer unlocked, your phone laying around, sharing passwords

Exploits

A weakness in software you use, that allows attackers to write a hack to break in or trick your computer to do something

Malware

A tool that allows hackers to achieve what they’re trying to do, normally bundled with a “safe” file

Social Engineering

Phishing targeting you, or phishing via mass emails/text/phone calls, or verbal communication that tricks you into giving up information, or talks you in to visiting a malicious site

Conclusion

There are literally millions of ways you can be compromised, and that’s terrifying! For me it is anyways, maybe you don’t even care. If you don’t care, you probably wouldn’t have made it to the conclusion though. Feel free to ask questions, if you need clarity, or let me know if there’s an attack type that I haven’t covered here, or just things that people should be aware of.

RTX 2080 Coming Soon – What will you do?

With the RTX line of graphics cards coming soon, everybody is flipping out. Can you really afford a brand new graphics card? I can’t! So WTF am I posting for? I’m posting to see who else is hoping the RTX line will drop prices of last line graphics cards. I see the 10 series being relevant for quite a while longer, I’m going to be keeping an eye on Amazon 1080 prices for price drops. After all, the 1080 is still going to dominate the market for a long time.

Card, video, graphics.

Are you patient enough to wait for prices to drop?

As a gamer, and most likely a millennial, we all want the shiniest and newest GPU. Most of us can’t afford it, though! Most of us don’t have patience either! What are we to do? I, for one, do have the patience. I’m going to wait for price drops, watching every place I can to hopefully get a new one. I’m not looking for used, because – mining. There’s too many used GPUs out there that have been beat up for months, then resold. You’ll not be happy if you get a new-used GPU, and it craps out on you in 3 weeks.

What can you do to satisfy the urge?

I just got a new SSD to satisfy my urge. A couple hundo got me the Samsung 970 Pro 512 GB, and it did not disappoint. What if you want to bring the price down, while you wait? How about Intel Optane? Heard of it? You can boost your existing hard drive’s performance with wicked caching voodoo magic, and Intel Optane Memory. I haven’t tried Optane Memory yet, personally, but it’s been in my cart about a hundred times now.

Upgrade SSD Drive

Are your pockets overflowing with cash, and you’re buying the new GPU?

Can I get an application for wherever you work? Just kidding, but seriously. What are your plans with the new GPU? Are you going to be number one on a benchmark site, do some CAD/3D modeling, or just poop on everybody in Roblox? I’m excited for the new cards to drop, and I can’t wait to hear about everybody’s experience with them!

Surface Book 2 15 Inch – In a mobile design environment

Current Setups

I take a TLDR approach to my reviews here, I don’t want to bore you with 15 pages of junk, that you’ll never read. If you don’t want to read all the juicy stuff, skip to the bottom part, labeled “The TLDR Part”. So here’s the scoop!

I’ve been using the Microsoft Surface Book 2 15″ lately, as a machine that I work on projects when I’m not in the office or at home. I have a design machine at work with a Quadro P5000 and an i7 7700k, and one at home with SLI GeForce1070s and an AMD FX 8350. These machines are great for what I do in Unity 3D, and many other applications. I can say the 1070s are slower in light baking, but I paid personal money for that – so it’s going to stay that way until the RTX Quadros release, and prices drop for other GPUs.

Enough about me, what about the Surface Book 2 15″?

Specs:

Display – 15” PixelSense™ Display with up to 3240 x 2160 resolution, 3:2 aspect ratio, 10 point multi-touch, and ink

Storage – 256GB, 512GB, or 1TB PCIe SSD

CPU – 8th Gen Intel® Core™ i7-8650U quad-core processor, 4.2GHz Max Turbo

GPU – NVIDIA® GeForce® GTX 1060 discrete GPU w/6GB GDDR5 graphics memory

Usability:

  • General Feel
    • Keyboard is about as good as it gets, for a laptop – amazing feel to it.
    • Touchpad is great, you get more gestures than you’d expect, and the size of the touchpad is about perfect.
    • Weight is a little much, but if you look at teardowns, it has batteries to justify the weight.
    • Size is magical, very slim machine, doesn’t feel huge like a 17″ mobile workstation.
    • Noise, when you’re under heavy work loads with the CPU, noise isn’t too bad, GPU is another story – sounds like a jet engine taking off
    • Battery life, is amazing! Just as advertised, and I’m impressed.
    • Speed, surprisingly good! I did notice going from a desktop 7700k, or 8350, to the 8650 laptop i7, light baking is a little slower, but not bad.
  • Peripherals
    • Mouse, I’d recommend a Surface Precision Mouse, the other options are not awesome for a design(or gaming) environment.
    • Dial, Have you heard of the Surface Dial? It’s pretty cool, but I’d wait until the gen 2 dial comes out, it will have a 3D joystick feel to it.
    • Pen, I didn’t think I’d have a need for a pen on a computer, what for? But when I use tablet mode, I use the Surface Pen for sure, I love it.
    • Dock, this is less of a mobile experience thing, but the Surface Dock is nice for connecting 2 screens super fast.
    • THE BEST PART! They all match. This is super satisfying for the OCD, thank the gods of Microsoft for matchyness!

The TLDR Part:

So the conclusion? I have used the Surface Book 2 15″ for a few months now, and I can say that the experience is much different than I expected. Normally you try to look past the marketing stuff, because they’re just trying to make it look good, but it is good. Mind blown by the 1060 in the Surface Book 2 15″. I imagined that anything less than a 1070 would have been garbage for the torment that I put my computers through, but man was I wrong! Between the Gen 8 i7, and the 1060, you have enough power to do pretty much anything you’d like, without lag ruining your day.

If you’re looking for an extremely portable, workstation worthy, consumer grade, super laptop, get the Surface Book 2 15″. You will not be disappointed!