Linux on Chromebooks just might get me through a masters in computer science
aboutchromebooks.com
aboutchromebooks.com
Back in 2016 I picked up a Toshiba CB35 Chromebook with a 13" 1080p IPS display, 4gb of memory, 1.7ghz Celeron and a 256GB SSD for $350. It weighs under 3 pounds and has a backlight keyboard too.
It still runs great today and despite the low end specs it can deal with some programming work loads (Dockerized web apps, a bunch of browser tabs, mp3 player, editor with 40+ plugins, multiple workspaces, etc.). It's not slow either. Even decently sized Rails apps with Webpacker reload nearly instantly while developing and there's no type delay.
It's been a really nice outdoors / travel laptop for someone like me who normally uses a desktop workstation.
I wrote up a whole review of it here: https://nickjanetakis.com/blog/transform-a-toshiba-chromeboo...
If you can still find this exact model at that price point I'd consider it today. It's one of those rare combos of hardware that's really good at a fair price. I wouldn't insta buy it, but I'd at least keep it in the runnings vs a 2021 model, especially at that price point. With lower end machines, newness isn't always a deciding factor for goodness.
I picked up one of the original Acer C720's back in 2013. Anemic 2c1t (dual core) Celeron at 1.2 Ghz and 2GB of memory. But Gentoo on it with XFCE was incredibly nippy. Add a processor optimized Firefox at the time and it was an extremely good tiny laptop
A year or so later I upgraded to its "big brother" the core i3 variant (2c2t, quad core) with 4GB of RAM. Same experience. Extremely happy with both machines
Eventually as the Chrome browser started to eclipse things though I moved to Dell's Chromebook 13 "Lulu" with a beastly Broadwell i5 quad core and 8GB (soldered) RAM
The biggest draw for me is these were the first Linux machines I'd used where everything didn't "just work" or "it works okay but you can tweak XYZ" it worked in the sense it was explicitly designed __to run Linux__
For all the flak Google deservedly gets, the decision to enforce a "no binary blobs, everything must be upstreamed to mainline Linux" kernel and Coreboot (BIOS) as well as making "jailbreaking" the thing with a permanent firmware flash as simple as removing a hardware screw was commendable
These days I'm stuck using an MSI Modern 14, which while "okay" is nowhere near as delightful as the Chromebooks were previously
I also recommended one to my brother-in-law and he totes it on trips. The trackpad stopped working so he uses an external mouse. They're terrific as a travel laptop: plug the SD card into the slot, upload your photos to Google Photos, and don't worry about what happens to your photos if your camera is stolen or whatever. And at that price it's much less painful than if your MacBook Pro is stolen. Plus the 1080P resolution on 13" screen is better than most options for a lot more money.
I went to your website, and noticed you don't list those certifications and bigger projects there. You should also tell there what kind job you are looking for, otherwise I doubt anyone is going to click on "wants to hire me", since it's pretty hard to guess what you want to do.
Anyway, good luck for the job hunting!
Just stay thirsty and keep going. Once you get a foot in the door, you are going to be a rising star. The work ethic and discipline of the service industry is like a super power in the tech world.
I don't actually have the Galaxy Book Go but I'm considering it, pending reports of people actually installing Ubuntu on it.
Not sure what the best Chromebook is for running Linux, but appreciate the OP's suggestions.
I am also amused that you feel that $5k build is more productive. Productivity is not mostly a function of the system but the user
I primarily work with Flask, Rails and Phoenix and most apps I build use Webpack too. I don't have to run an Android simulator or Java apps because I don't use those technologies.
With this Chromebook, any multi-service Docker app (web + worker + db + cache + Webpack) can go from not running to accepting web requests in about 5-7 seconds after running a docker-compose up. Every time I make a code change, the code base reloads in 100ms or less so the dev loop is extremely fast. With Tailwind's JIT and Webpack caching to disk even asset changes are fast (100-300ms in most projects).
The machine is great for certain types of programming and browsing the internet.
My main workstation is an i5 3.2ghz with 16GB of memory and an SSD with a 2560x1440 monitor. It's approaching 7 years old and I paid around $850 for it at the time of building it (+$350 for the monitor at a later time). I still use it today and while it has more resources available it's not that much faster than the Chromebook, I can just run more things at once. Starting up my web apps with Docker happen in 3-5 seconds but I still get the same < 100ms reloads for code changes.
I also happen to run WSL 2 within Windows which is where I spend 99% of my time. I also do video recording and editing on this machine and there's no skipping or slowdowns for editing 1080p video. I can also run OBS to record everything while developing normally and it's a non-issue.
The reality of the situation is nowadays unless you're doing something very CPU bound, a mid-grade machine with an SSD can be quite efficient for lots of types of web development. I choose not to upgrade because there's no practical incentive. With 16GB of memory I can run my usual dev workload with a 2 node Kubernetes cluster and a separate VM and not feel any slowdowns while developing.
This is all while having a bunch of tabs open, image editors, mp3 player and everything else you'd expect while working -- even while screen recording my desktop to make tech videos. I made a video about this once around the topic of "is 16GB of memory enough for web development?" at: https://nickjanetakis.com/blog/for-the-time-being-16gb-of-ra...
I update coreboot every once in a while, as it gets regular updates.
Just a note for anyone that's going to try it: you will have to open up your chromebook and search for the write-protection screw in order to flash your bios (most models are like this). It is a google search away to find where your motherboard's screw is located, as not all boards are labelled. Another thing to to note is that, as long as you don't brick your device somehow, everything is reversible. You can reinstalled the original bios/bootloader, reinstall ChromeOS and put the write protection screw back in and all is well again. Other than that, just follow all instructions for Gallium & coreboot exactly and it will work fine.
Gallium is basically Ubuntu + xfce + mods for keyboard & performance tweaks.
In hindsight, I wouldn't do it again. Reasons:
Storage is a problem for most chromebooks and the memory chip is soldered onto the board, so cannot upgrade it.
I bought an expensive MicroSD card at the time that is 128GB and can do 100/60 read/write... but the memory card reader seems to be soldered to a Usb 2 header.. thus it tops out at 30mb/s.
The updates to the OS and packages delivered via apt is basically very far behind, and many packages get held back. Kernel stays old too. I'm used to Fedora so it is really itching me that it is so far behind.
Keyboard is not standard: No delete button, no windows key, no function keys. This is a big problem for me and I didn't check the keyboard before I bought it.
A better machine to run linux on in the same manner, is the Lenovo Ideapad (S130-11IGM), it is also a celeron, a 11" screen and supports windows/linux out of the box with a normal bootloader and drivers.
Other than that, a 2017 13" Macbook Air with Fedora also works great.
What I really want is an 11" laptop with a Ryzen 3 without an active cooler (silent machine) + nvme slot + 2 ram slots + backlit keyboard. I don't want anything soldered except the cpu. Display can be 720p or 1080p.
It actually is more stable than Ubuntu interim non-LTS releases and has a bunch of developer focused software, it deserves more praise than it gets.
On Fedora I just uninstall a handful of things after a clean install: gnome-software, cups, libre office, maps/calendar, webcam app.
Other than that I agree that Fedora is the hidden gem of all the distro's in my mind. I don't have to babysit it, it gets regular updates (1 to 4 weeks behind any release, where arch is a week or less), I can make it pretty and configure it how I want it and basically everything I use to work and be productive works on it. Once you use it for about 6 months and get used to it, everything else feels crappy and over complicated (incl macos, windows, xfce, kde). The only OS that I've managed to get cleaner and simpler than Fedora is a debloated android that uses only google software (bare minimum of them, phone, messages, gmail, clock, calendar, calc) but the problem is I cannot install arbitrary packages on it nor have official root, so the nature of that ecosystem/walled garden makes me resent that "distro" in a way.
This is an optional step btw. I haven't done this on mine.
If you do the screw modification it allows a specific setting to be persisted so you don't lose it when the battery drains. If you don't do the screw modification then you'll need to set a specific setting every time your battery fully drains to 0% (technically beyond 0% where it's 100% tapped out and not just reporting 0%).
Out of the ~5 years I've had this I only had to do the process a few times.
It's not a big deal if it drains. The blog post I linked covers the process. It only requires logging into the terminal and running `sudo crossystem dev_boot_legacy=1` on the boot screen. End to end it takes about a minute each time where most of that time is Googling my own blog post to find the exact command, the command itself finishes immediately.
Before you go down the GalliumOS route you can choose between dual booting with a menu or booting straight into it. I went with the dual boot approach because I still wanted the ability to boot into ChromeOS in case something crazy happened with GalliumOS. In most cases this translates to turning on the Chromebook and hitting CTRL+L which boots you into GalliumOS, as opposed to hitting CTRL+D to boot into ChromeOS. It's a 2 second process to pick the OS to boot from and that's all you have to do.
But going back to the screw, it controls at least these 2 things:
1. sudo crossystem dev_boot_legacy=1 is a command that lets you boot something other than ChromeOS. This setting needs to be persisted somewhere. The screw lets it get written to your BIOS so it never gets lost. If you don't modify the screw it gets lost when your battery is 100% tapped out, but if that's the case all you have to do is drop into a terminal when you turn your Chromebook on and run the command again and you're good to go, nothing gets wiped. This only happens if the battery is fully fully drained.
2. If you decided not to dual boot you need to modify the screw to directly boot into GalliumOS.
Some of my work as an under grad was taxing on my computer and much more so as a grad.
Even simple things like compiling a system can quickly get taxing and slow.
Some classes require models, algorithms that takes a lot of power to process or to prove.
My master thesis was system would run for 48 hours on the desktop I had then, after some optimization got it down from 65 hours.
Ideally though you have access to a lab / server that you can offload your hard work on.
In my experience those resources were already under maximum load during most of the day and parts of the night.
Being able to just run them locally was convenient.
And I think this is the key point here. Most CS things you can easily handle with the horse power of a Chromebook. And when you hit the 10% of the coursework that you can’t use a Chromebook for, you probably wouldn’t use a “normal” laptop for it either. You’re always going to have jobs that will take a bit more horsepower. Those should be farmed out to a cluster or server anyway.
Where I think the OP will have issues is what resources they will need for their research, which again will probably need a server or cluster. Likely, the most taxing thing they will likely need to work on locally is their thesis. This is where I’d think they might run into issues, especially with figures. But even here, Overleaf should be up for the job.
We could even RDP into well-equipped Windows machines that had licenses for all the software you could ever want if you happened to need Windows.
This was at a large Midwestern research university. From talking with friends and colleagues over the years, it sounds like it was a pretty standard set-up.
I did try to do local development on an ARM Chromebook I got as a curiosity back then, but it was just too constrained. Cruton wasn't perfect and only the XFCE desktop environment had acceptable performance. Plus, not a lot of software was ARM compatible out of the box back then and compiling from source was a pain on the low-power processor I had.
These days, especially with the crazy fast ARM cores we're seeing and Android Apps working on ChromeOS, things look way more usable for a CS student's general computing needs. It's always cool to see stories like OP's to confirm what I hoped was the state of computing outside the Mac/Windows norm.
Disclosure since this is about ChromeOS: I work at Google, but this is all my personal experience and opinion.
Not sure I'd enjoy doing something like compiling LLVM on a Chromebook for a compiler class.
Not normal to work on a compiler during a compiler class?
Compiling it with changes you made to learn about how compilers work. Such as adding a new optimisation phase.
> I can't see what you could learn about compilation in a CS sense by compiling LLVM.
You don't learn by compiling it obviously. You learn by extending it and running it, and to do that you need to compile it.
I have had just two courses that strained my machine out of the 7 I've completed. Reinforcement learning in particular had one project that really tested my machine. (I trained my agents on CPU, so that was definitely a factor). Even then, my agents were training in fairly reasonable times (5-6 hours max for a grid search). If I'd taken the time to vectorize every computation, I could have probably gotten the time down at least 10x.
This is on AMD Ryzen 1700x - a pretty speedy chip but not top of the line - and 16 gb ram.
Powerful hardware is a convenience more than anything in this program. It allows you to focus less on optimizing your solution.
Probably around 2–3x the overall speed.
EDIT: Uni provided computers with VM stuff installed, and let us remote into them during COVID.
* The low end graphics chip was already 12 years old on release, the advertised OpenGL 2.0 was emulated in software while everything else that came out supported OpenGL 3.
* Intel didn't do virtualization on low and mid range variants of its CPUs, while an Eee PC barely had any resources to it was the second time I got burned by that.
Basically 10 year old requirements meet technology that was outdated 12 years ago. Even toy samples will fail if the hardware doesn't implement the features required.
The same machine’s GPUs helped me be the first to solve a password brute-force challenge in my computer security class (designed to teach us how to use password cracking tools), though that wasn’t for any credit, of course!
For my machine learning class, I was able to train models much more quickly than other students.
Generally speaking, being able to brute force certain things was just fun.
But yeah, I would agree that there is no practical benefit to a powerful machine in a CS education. These few instances are not worth the cost - buy or build a powerful rig because you want to, not because you think it’ll help. I felt immense pride at watching my system whir to life.
It's really nice to have something powerful to play with.
Took a couple weeks on his machine, took 30 minutes on mine (mostly because of memory).
Though he was studying AI and not compsci
* We MUST MAKE MORE 3:2 screens. Content is not wide, except video which I don't watch. Content is vertical. A 3:2 screen makes for an amazing laptop shape that is very well suited to the way humans view content, especially on the web.
* I've done computer security stuff for a while. Chromebooks are, by far, the best computer security model I've seen. Trusted boot, hashed root filesystems, fast updates that are as painless as possible (they even keep entered text in textareas on pages). They are, by default, secure enough that I would log into my core accounts on someone else's Chromebook (given a fresh reboot to ensure it wasn't in developer mode - physical firmware attacks aren't in the scope of things I worry about from people I know). Yet, I can twiddle a few keys and get one to be a properly nice Linux laptop with all sorts of great features, that also manages to "just work."
* OS resolution scaling is amazing. Eyes tired at the end of a day? A keystroke or two and you've rescaled the entire UI to match. Throw in the super high res, high def modes on the high DPI screens, and it's good for just about anything.
* Almost everything can be done on the web today, even if one probably shouldn't. I've used them as primary computers for many years, and I only rarely ran into something that I couldn't do (or couldn't do with Crouton and a Linux chroot environment). Those things included "a handful of Windows applications" (wine covers a lot) and "some kernel interfaces for Linux Internals classes" (the kernel simply lacks things that the OS doesn't need).
I know it's popular to hate Chromebooks, but if you're willing to toss them in developer mode for a few things, the value you get for your money, even at the high end, is legitimately impressive.
Fast updates are enabled by heavily locking in what user's are able to do with them. No exotic checks to be done.
I am not impressed by Chromebooks in those regards at all. Different strokes I suppose.
I might give you the screen, but to be honest, most of the time Chromebooks find their way to me it's because they're broken, and I'm everybody's computer guy of last resort due to high tolerance for frustration. All of them have had their screens or MOBO's rendered inoperable. Further, I philosophically reject anything that cannot be side loaded or is so locked down you can't load software onto it from external media.
Yes, security people may love that, but in reality, the entire point of processors is to run code. If I can't get my code to the processor that needs to run it without hostage negotiations, then that is not a useful machine to me. That is a niche PoS. Which all power to those who need it as such. Just isn't high on my list of things to actively purchase.
But they're not. You can, with the proper incantations of "fiddling keys you can't do remotely," boot anything you want on them. Just disable the secure boot stuff, which is a designed in, required feature for a Chromebook, and run whatever.
> Yes, security people may love that, but in reality, the entire point of processors is to run code.
If you let a computer, connected to the internet, run any code that is sent its way, it will eventually run mostly malware. Probably foreign, and while well behaved, still quite unwelcome.
What's fun is when you shut down that sketchy looking outbound traffic, and it turns out to be a new Windows telemetry service thing.
I also find, driving with kiddos through sketchy places on the internet and getting deliberately infected, so they learn what to look for, and letting your user's educate you on software they need/want also cuts down on the necessity for cargo cult infosec practices.
User's are not stupid, nor Lusers. Developers, programmer's, and the companies that pay them are not fond of repetition, expect you to only use their thing and bend over backwards for their convenience, and are often in it not for producing Quality software, but for the paycheck.
Admittedly, my practices don't scale to the point of being taught as general infosec practice, as I'm in it for the long haul for the hope that one day computer literacy will be as widely spread as regular literacy. We'll see if I live long enough. (Probably won't).
While I certainly don't hate Chromebooks, it seems that one can either buy inexpensive but underpowered devices (with slow ARM cores or low-end x86 Celerons) or devices on par with other notebooks - the Chromebook Pixel was certainly nice - but then you are not saving money compared to a regular notebook, even though the Windows (or macOS) tax doesn't apply.
The Chromebook security concept seems to be well implemented and can protect the user from a lot of typical problems. I'm still curious how much data Google collects from Chromebook users, though.
Resolution scaling is one of the most underappreciated technologies. My eyesight isn't really great and I'm using the macOS zoom feature often when I struggle to read text in a small font. It's great to see that ChromeOS implements something similar.
The trend of having to do everything on the web today (or using Electron apps) is still irritating. Contrary to expectations, this seems to result in more proprietary protocols (Slack, zoom, Teams, ...) instead of using open source or proprietary clients for open protocols. Well, this is probably yet another approach of solving a problem in CS by adding another level of abstraction ;-).
the concept of saving a lot of money, having 20hr+ battery life and no way to brick the computer (unless I really try) is kind of incredible, especially since this came out way before my patience ran out for the m1 macbooks.
I can still imagine someone wanting a premium chromeos experience since just having a logged in session of chrome is super powerful in being able to store your internet knowledge through bookmarks and history. While the trend of ignoring native apps accelerates it seems foolish to use something like windows these days and running it in chromeOS mode where accessing information or connected chat apps like slack might as well not be electron apps and be PWA's not running their own browser instance :/
The 4:3 screens of the iPads are really nice and Thunderbolt on the new devices allows for a large number of peripherals (if you buy a hub :)). Only Apple's "Magic" keyboards are far too expensive, but regular Bluetooth keyboards and mice should also work.
How can you talk about security if there is spyware on every Chromebook? I mean Google Chrome. Everything you do is recorded on Google servers, not only that but Chrome doesn't integrate any anti tracking protections like other browsers do (even Chromium based ones like Microsoft Edge), because it's the interest of Google to track the users. Not only that, but Google Chrome has a lot more security vulnerabilities than the competitors. I wouldn't say it's secure, and I would never do something on a Chromebook or in general in a Chrome browser, since it's like giving the access to Google itself.
Regarding the operating system, how can you trust more a system from Google than a system you build yourself? If you are paranoid you can buy a machine that supports Coreboot and even run your own trusted BIOS. If you don't want to take this seriously, you can setup your secure boot by creating your own keys, installing them in the firmware, and signing the kernel that you compile yourself. I don't know why you would have to be that paranoid but whatever, to me when I have an encrypted hard drive and my computer stays in my bag is more than enough.
> Almost everything can be done on the web today
You can't do programming in the browser, you can't do graphics, video editing, 3d modelling, you can't connect to a remote computer with RDP from a browser, you can't even have a full office suite in the browser (Office 365 in the browser, Google Docs, etc are limited), you can't play big games in the browser, you can't connect to a VPN from a browser, a webmail it's worse than using a desktop email client, you cannot have an advanced video/audio player in the browser (like VLC), etc.
Also, if internet doesn't work you are basically screwed, what do you do? Stare at the screen and play with the dinosaur game?
You have never built a system yourself. Neither has Google, for that matter, but they've gotten closer than you. The amount of code that runs on the average modern computer is probably too much to be read in a lifetime.
> You can't do programming in the browser
But you can on a Chromebook because you can use the Linux underneath.
> Also, if internet doesn't work you are basically screwed, what do you do? Stare at the screen and play with the dinosaur game?
You use the apps you have installed. I don't actually have a chromebook, but try to argue in good faith
When I say built a system obviously I don't mean writing the code. But deciding what programs install and how to configure them to build a system customized for your needs, secure and optimized. In fact Chrome OS is based on Gentoo Linux if I recall correctly, I installed Gentoo Linux a lot of times in the past.
> But you can on a Chromebook because you can use the Linux underneath.
But you aren't doing it in the browser. Running Linux inside Chrome OS has some limitations anyway.
> You use the apps you have installed.
On Chromebooks you cannot install applications locally. Unless you use a Linux Chroot, that is something advanced that most user don't do (and I would argue what is the point, just install Linux as the main operating system at this point). You are supposed to use only web applications, like Google Docs, that will not work without a connection available.
Also typically Chromebooks have little SSD space, because you are supposed to keep all your stuff in the cloud. Of course if you don't have internet the cloud doesn't work. I prefer having all my data locally on my computer, so I can access my files without needing a constant connection (and internet connections seems to know when you need them and decides to stop working exactly at that moment).
I have the option, in Chrome, to decide what is synced up to "the Google cloud." Are you asserting that this doesn't work - that if I turn off history/bookmark/etc sync, that this is still pushed up? I've not SSL intercepted a Chromebook to determine it, but I believe if you tell it not to do something, it won't.
You've got a bit of a solid anti-Google screed here, but you've not bothered to actually provide any evidence in favor of it.
> * Regarding the operating system, how can you trust more a system from Google than a system you build yourself?*
Because they hire an awful lot more security conscious people than I am, who I believe know their stuff pretty darn well.
As for your list of "You can't XYZ in a browser," you can put Linux in a chroot on a Chromebook in developer mode, so most of what you claim is either false through extensions, or false through Linux dev environments.
> Also, if internet doesn't work you are basically screwed, what do you do?
Well, I keep a local Ubuntu repo at home, so...
How can you be sure? Chrome is a proprietary software. Even if you don't sync up with your Google account, Google collects some usage statistics and similar things. Of course you can use Chromium (and Chromium OS) that is open source and thus doesn't contain that kind of trackers, but we were talking about Chrome OS.
> Because they hire an awful lot more security conscious people than I am, who I believe know their stuff pretty darn well.
They hire them to make Google interest, not yours. Google interest is to track you and make profit with your personal data. Your interest is having a system that preserves your privacy rights.
> you can put Linux in a chroot on a Chromebook in developer mode
Yes, you can, with some limitations. But at that point, why not installing Linux as the main OS on the Chromebook with Firefox as the default browser and throw away all the Google crap?
> Well, I keep a local Ubuntu repo at home, so...
Because you reinstall your software everyday? I install all the software I need when I install the operating system and I'm done. I can work without internet fine, of course I cannot do anything that requires a connection (emails, for example), but I can do everything else.
With browser based software if you don't have a connection you can't do anything. We evolved from the idea of mainframes to the personal computer, and then we are going back to mainframes with all the disadvantages that they have.
Did you hear about Qubes OS and Heads software?
Not a bad thing at all, I feel both have their place but they aren't comparable. Also you pretty much can't (shouldn't is more correct but when you do, you will feel it is closer to can't) run Qubes on the kind of low-end hardware many chromebooks ship with.
It's the last thing that's stopped me from using linux on a laptop day to day. A macbook is far superior for mobile needs (though more pricey) and I can justify a linux desktop for my day-to-day development activities because it's plugged into the power.
EDIT:
It lost audio about 3 or 4 months after it was out of warranty, both out of the speakers and headphone jack. Left speaker failed first, then the right, then the headphone jack. I can only assume it was some sort of hardware fault, since sound no longer worked in ChromeOS either (and HDMI audio continued working in both). But good fucking luck getting such a thing fixed on a product like that from a company like that. Now I have a Dell XPS with a 1080p screen, which is good enough, particularly considering Dell has a much better reputation for support/repairs.
There was also the matter of the secure boot nonsense, where if you press the wrong key on boot, secure mode would be re-enabled. With secure boot re-enabled, the only image that would boot would be a ChromeOS installation image, which would wipe your linux install. So you couldn't re-flip that secure boot bit without losing your linux installation. This bit me once, before I got better about regular backups..
My MacBook Pro from 2012 still receives updates and works a charm.
Chromebooks are just polished Gentoo linux machines too that don't have nightmare headaches of driver incompatiblity issues. A M1 macbook would have to run linux in a VM (even docker containers) and deal with the overhead/tax of that issue. A chromebook will just run chroot/container stuff against the native kernel with very little overhead and maximum access to the machine's available memory.
Docker containers are problematic, of course, and I often wondered why macOS never implemented functionality similar to FreeBSD Jails or Solaris Zones. I see both as superior approaches compared to Docker, especially if you can combine them with ZFS.
The overhead for running VMs on a M1 Mac seems to be pretty reasonable, though, at least when you buy the 16 GB RAM version (though I also think it's overkill for something like Docker). Apple's hypervisor framework seems to work well and provides standard VirtIO devices to the guest OS, so many popular guest OSes that run on other virtualization solutions should be easy to adapt. The limited RAM expansion capabilities of the M1 Macs is probably the most problematic thing for these use cases.
Chromebooks expire, losing security updates, and buying an older model is almost always a bad deal. Figuring out expiration dates is a PITA. In practice, COVID19 shortages aside, they typically carry very low resale value.
If you're running Linux, you don't care.
A rather premium model can be had for under $200 easily. That's cheap enough that you can do things with it that you'd never do with a real laptop.
For the Macbook Air, the 16G version starts at 1079$ with education discount so roughly 1.5 more expensive (they explicitely choose the 16G version of the ACER, so the RAM shouldn’t be ignored IMO)
The thinkpad X13 at 16G of RAM is around 1380$ on amazon [0], so twice as much.
I don’t know the Acer spin 13, but if the screen is as good as Samsung’s one, it is well worth the price, especially as you usually get more battery life, and the chrome OS + android + linux mix is actually good. There are still rough edges, but the good parts largely outweigh those.
[0](https://www.amazon.com/Lenovo-ThinkPad-20T2003YUS-13-3-Noteb...)
The 16 GB version of the Macbook Air is more expensive, but I wonder how much more RAM a Chromebook needs for similar tasks since most of the software runs in Chrome instead of native?
I don't know US Thinkpad prices in detail, but you can buy the 16 GB RAM/512 GB SSD Thinkpad X13 AMD (no OS) for 1025 Eur (edu discount) including 19% VAT in Germany (https://www.lapstars.de/thinkpad-campus/x-serie-campus/x13-a...). This makes 861 Eur before tax (US$1042 at current conversion rates).
Of course, in the end it's all a matter of taste and use case and I'm happy to see more variety in the personal computing market.
Now, in CS we're one of the edge cases where booting VMs and parallel systems is part of the deal. In the Chromebook configuration it's actually 3 systems running at the same time so more RAM has a direct impact on performance.
(point taken on the Thinkpad price, I also think if we settle on a refurbished Chromebook, we could so the same for the Thinkpad and perhaps get it a bit lower)
My OS course covers operating systems from a system call perspective (POSIX, processes, synchronization and the usual things), but doesn't include kernel/device driver development, so we only had to cope with small differences in syscall behavior here.
Supporting Linux/WSL and macOS was a bit more problematic for the compiler backend exercise due to subtle differences in the supported assembler syntax and linker behavior between Linux and macOS as well as some students who might already own an M1 Mac.
Luckily, Rosetta happily executes the x86 binaries my students created using the macOS x86 crossassembler and -linker, so that turned out to be not a problem (I was hoping that a student would build an Aarch64 backend, but that didn't happen). None of my students seems to own a Pinebook or MNT Reform, so Linux/Arm was not a problem this year.
I hit the RAM ceiling too frequently to regularly use the Linux VM on this device for work. But then I discovered I could run code-server (https://github.com/cdr/code-server) on my Manjaro desktop gaming PC and it's become a perfect match. I get VSCode in-browser of ChromeOS on a cheap light thin client with a great touchpad and 3:2 screen. The battery lasts forever since I'm not running anything intensive directly on it. And I get more compute resources than any laptop could offer. A bit surprised I don't read more people taking this path.
So the question is, can you get through the Master's program with a brand new $250 chromeook? I'd say yes- you basically need to set it up as a remote coding machine. Georgia Tech (and most other universities with decent graduate programs) provide access to educational and research computing clusters these days. Also, Google Collab is your friend, especially during the assignment deadlines when those clusters will be occupied by other students.
A laptop with a DGPU within that price range is mostly a NVIDIA MX-series GPU.
But you can get a good NVIDIA GPU with the Acer Nitro 5 (from 2020 and upwards) series and maybe an Ideapad gaming.
However battery life, ruggedness, 3:2 display, small size etc (note: not thickness, I don't actually care about that, just the other dimensions so it easily fits in a backpack) are all features I do look for in a laptop, and Chromebooks usually have that in spades (stuff that's intended to be handed out to high school kids is probably pretty indestructible).
If Apple releases an 11" MacBook Air for a reasonable price that would be pretty compelling for me too though, knowing I do have the processing power should want it (and the very high dpi display).
Linux support rounds out what I need, though it’s not perfect for GUI tools.
This is an odd comment.
Imagine I walked up to you, asked if you were happy with your computer, you said yes, and then I proceeded to try to "sell" you on an "upgrade" to half the RAM for the same price. Now consider if we weren't talking about the same price; I'm suggesting that you spend an extra $200+ on this.
Why would anyone take that deal?
Doing research in school will likely have you opening a lot of browser tabs. Running Firefox on a non-ChromeOS Linux install is going to eat up more than the measly amount of soldered RAM that cheap Chromebooks offer.[0]
I used Acer Chromebooks in college and very much came to regret this aspect whenever my machine slowed to a crawl the moment I opened an important PDF in Firefox. In hindsight, I probably should have set up zRAM on my machine, which expands the amount of RAM available by compressing it, just like ChromeOS does. However, as soon as I had money I chucked the Chromebook and bought standard a standard Acer notebook with upgradable RAM at a lower price than the fancy Chromebooks.
[0] Don't underestimate this: at the moment I have hundreds of tabs open in a saved browser session, with htop pegging Firefox at 16GB RAM utilization! It goes down when I restart the browser maybe to 5GB or so, but it also doesn't matter much when you have 32GB or more available.
Opening PDF in FF also always is a pain but there are plenty of lightweight readers.
But just for casual browsing? I prefer to leave stuff open as a reminder to pick it back up again. My home office is also pretty messy in terms of books scattered about though, so this probably boils down to a personal preference.
Come to think of it, maybe there's an analogy between people who keep their desk neat and tidy / those who program in languages requiring manual memory allocation versus those who like to leave books open and scattered / prefer the decreased mental overhead of working in garbage collected languages. :-P
This must vary by available RAM or something; I can get Firefox with 2000+ tabs (lazy-loaded) to run on a machine that only has 8GB of RAM.
(Aside because someone always mentions: Yes, I know that many tabs is insane. It does work, though.)
Of course it's well known that linux pretty aggressively allocates virtual memory to processes so it's not surprising that the other one is so high (I have 32GB RAM and just as much swap).
May I introduce you to the concept of bookmarking things, so you can find them later?
I don't understand why anyone should have those many tabs open. That is not practical at all, I don't believe anybody who says something different, sorry.
It's been a while since I've looked, but last I checked, pretty much every model that was price competitive with regular notebook PCs had no more than 4GB soldered RAM, which really is unacceptable. Looking on Acer's website, the only 8GB model is $929, which is about twice as expensive as what I can get by buying one of their non-Chromebook notebooks.
The hardest thing about going against the grain in structured learning is that you’re giving yourself extra work - translating the instructions into whatever your toolset is, solving errors that don’t exist on the approved platforms. I wish the author the best of luck.
So you actually have to go way overboard to ensure that your stuff always works perfectly, and that nobody ever sees you trying to troubleshoot something.
Webcam wasn't connected from the factory. In a post-2020 world, this doesn't fly, and for a $1500+ device, I shouldn't need to spend hours doing firmware updates, driver updates, only to find it's a hardware fault.
Back to my Google Pixelbook, but the final software update date is a terrifying prospect [1], as is it's woefully inefficient Intel 7th generation processor (I've been spoiled by Ryzen for years).
Oh how I wish I could just build my own laptop with COTS components, like my desktops for the last 16 years.
Or, if I'm just not looking in the right place, I'd love to find something with a great display, lightweight, great typing experience, and something that won't hit 45*C+ on the keyboard deck after boot.
In another life, I might have bought into the Apple ecosystem, but I have been Android since 2009 and have already traded my soul to Google for it's scrambled attempts at a cohesive ecosystem.
[1] https://support.google.com/pixelbook/answer/9413900?hl=en
Design and serviceability are nice, but coil whine and a rattly touchpad are pretty common. r/dell has some more horror stories.
I don't mind a heavy big laptop either. I've never understood people whom complain about the weight of their laptop, but I know most customers want light weight devices.
That said, I've been told here repairability, upgrading an existing laptops is the last thing on their mind when forking out money for a computer.
I don't get it, but they are right.
It works okay for most tasks, but is laggy when running JetBrains IDEs compared to bare metal Linux distros.
Edit: Chromebooks are nice in terms of laptop hardware support compared to some hardware / Linux distros I have used over the years. No issues with suspend / resume, printers and scanners work, great touchscreen and Android tablet functionality.
Some tasks that require more direct access to the hardware (e.g. device drivers used to read lab instrument hardware, debugging devices over USB, etc.) might not work as well (or work at all) due to the Linux VM and container sandboxing.
Try 32GB HDD, 4 GB RAM, 1.6 GHz CPU.
Been using it for light web dev. It's a disaster.
Well, just buy a used ThinkPad (or whatever business machine) then. My T460 cost me 200 Euro and will probably be good for two or three more years.
Then I'll buy the next used one for the same price and will be happy for four more years...
Sure, it's probably fine for running linux and coding in vim but on the modern web and electron apps it shows its age.
Unless you're cash strapped, I'd much rather spend 500-800 Euros and get a machine with a modern Ryzen or Tiger-Lake chip that makes a much more usable experience for a variety of tasks.
And is performance really better with that Chromebook?
My goal was to compile and write something using Python and OpenCV, a computer vision library. While one can indeed run Linux apps, the vast majority of what I needed was not pre-compiled. Compiling led to issues with having to compile parts of the toolchain, which went up a couple levels of recursion. Compile some library so you can compile some other library so you can compile a program to compile some thing that she used to compile some package. Then library conflicts, and so forth. I haven’t needed to do this since about 2004. Plus, then waiting for a Chromebook to compile large packages can take all day.
There’s no way I’d try this again versus just getting a normal laptop and installing Linux.
[1] https://code.visualstudio.com/docs/remote/ssh [2] https://colab.research.google.com/?utm_source=scs-index [3] https://cloud.geny.io/
I can imagine this for a collaborative task, but not much else.
Local computation has always led teams I've worked in to a superior (personalized, decentralized, fault tolerant, highly parallel) mode of operation.
My tryst with working with remote computation ended when the 5 VMs we were using as a team for development were locked out and decommissioned without a notice due to a devops error. Thankfully, I did have local equivalents, which I habitually worked on and copied over to the VM for execution, not so much for my team members.
Now I mainly use it for GCompris for my kids.
(source OMSCS grad, seen this happen to others)
1. exams can be taken on a chromebook now (you couldn’t until a year ago) so that part should be covered.
2. more ram is good because classes will give you a VM so you can buils it locally and test it in a VM (what almost everyone in class would do)
3. unfortunately some VMs only work well in a windows virtual box environment . and that’s where I think you might run into problems. the thing is the TA will automate his tests for grading. So if the testing on your end was not done correctly (like let’s say locally instead of the VM provided or the environment suggested) then you will fail the grading tests. So be very careful there.
4. You might want to automate things yourself to get things done faster. In that case you may want to run multiple instances of the VMs provided.
My MBP was broken so i ended up using a desktop for completing the whole thing which was a mistake because it was too inconvenient especially during tests. however many students were able to finish the course with a 200$ thinkpad so it’s doable. But then there were those who also had a powerful ryzen desktop for classwork with dual monitors and a laptop for test. So i guess it all depends on your comfort level with your setup.
https://www.andreafortuna.org/2021/03/13/coding-on-ipad-pro-...
Not sure when it's going to be out of beta.
I remember as a student trying to debug an issue on a train. I would have been so frustrated if the internet connection to my remote machine was impeding my ability to think through a debugging scenario.
I've been waiting on the beta list for almost a year I think and haven't heard anything.
Hint: Add a Ubuntu container and install LXD, then copy the lxc binary to your "penguin" container and setup a trust between it at the Chrome OS "termina" hypervisor. Then you can manage all your containers from the default linux install.
I have a Pixelbook Go with 8GB of ram and a 128GB drive.
Not really sure, but there are probably precompiled modules of OpenCV for popular distros.
I think a Chromebook would work if you are indeed able to install Linux. But I don't really get why people studying computer science don't have a dedicated machine for that.
> on a new computer costing $1,500, $2,000, or more
I don't know current prices, but you get an Intel Nuc for < 150$. Add a monitor to that... Even on a cost basis, I don't think Chromebooks can compete and I would not recommend them for learning overall.
* be judicious and focussed with my lab time when I needed to use an IDE for Java or such, and
* get real comfortable with SSHing to the school's server and operating remotely on the command line real early
Most universities also have some sort of high performance computing cluster available, so you're not limited to just a simple VM.