Looking for a new laptop

Now that I’ve managed to grab most of the items in my list of consoles to mess around with and a fare share of Raspberry Pi accessories and gamepads, the next list of things to play around with is a set of laptops. So my goal is to try and pick up two of the same kind of laptops. One to install Windows on and the other to run Debian Gnome on. The conditions for the computers is they need to be either 12inches or 14inches with a 1080p or higher IPS display, 8GB of RAM, and 256GB of SSD storage.

For budget I’m looking at about $250 per laptop with a combined total of $500. For memory 8GB is the ideal goal, but 4GB is passable, and ideally I’d be looking at 4GB x2 for dual channel memory since at this price point I’m probably looking at integrated graphics. A few things like a dedicated microphone jack, or usb-c for power are definite bonuses. And in looking for computers, if there is a computer that is more than $250 and around or less than $500 and contains a hot-swappable hard drive then that could be a consideration. And the other thing is that the model needs to be the same for both computers. So for new computers this isn’t an issue, but if I go for something used, then I’ll have to look for models that I can reliably find two of, which will probably be outlet business computers.

So I guess I’ll list the candidate devices, and then try to figure out which one makes the most sense.

Chuwi Herobook

Link: https://www.amazon.com/CHUWI-HeroBook-X5-E8000-Notebook-Lightweight/dp/B07P5RT1P5?ref_=ast_sto_dp

This one is kind of surprising. I wasn’t expecting a new device to fit what I’m looking for so closely. It’s a 14.1 inch, 1080p IPS display with an atom processor and 4GB of memory. The description on the storage is pretty poorly worded. It looks like it as 64GB of eMMC memory which is included. And then it has an optional m.2 (sata/nvme?) ssd slot (up to 1TB) for expanded storage. And they they also claim the micro-sd card slot is storage, but I’ll leave that rant alone.

So the main thing about this device is the display, processor and memory are all fine. It really comes down to the storage. First of all I need to figure out exactly what kind of storage it’s expecting. And then second I need to figure out if the device can boot directly from the SSD. The 64GB eMMC seems kind of wonky, I don’t know if there’s anything I would really need or use it for. On Linux I could potentially map is to something. On windows I don’t know if it’s possible to group drives, or even if that’s a good idea. So as far as I can tell it seems like the best option would be to install a separate SSD and then pretend the eMMC doesn’t exist. Unless I could install Linux to one drive and Windows to the other and then figure out how to switch between them as a bios option. And then figure out how to separate the partitions so that they couldn’t see the other, only one shared mapped partition.

Latitude E7250

DashGL Season 2 Notes

So a quick note on hardware. Bought a PsVita, it is a really impressive device. For laptops pretty much want a 14″ 1440p ips, ryzen with 8gb of ddr4 ram and 256gb of nvme storage. So it basically doesn’t exist, so I’ll have to keep watching for when something of this description fits. Preferably a Thinkpad.

For DashGL the next season of tutorials took an unexpected turn. Originally I had planned to use SDL, but it turns out that emulation station doesn’t use the X11 environment. So rather than launching X11 specifically to run one game, I decided to look into egl and running games from the command line directly, and it’s an approach that I’m pretty excited about.

Though the drawback of using egl is that there is not a lot of documentation. So I’m kind of flying blind on this one. I’m thinking that the approach for this set of tutorials isn’t that I’m some kind of guru, but more to present some examples to act as a place to get started, and maybe people more familiar with the subject can fill in on the details.

Right now we’ve managed to get the first triangle down which took several hours of cleaning out the program included with the pi to get it down to the “hello world triangle”. Next step is to include the shader install part of the application as a library. So I’ll probably be writing about my issues with that in the next post.

More hardware follow ups

The second-hand shop close to my house had a PS-Vita in unexpectedly good condition for $50. I ended up making an unplanned impulse buy. First impressions are that the screen is really great. The analog sticks kind of get in the way and I wish Sony had gone with the nubs from the PSP. I’d be attempted to swap the sticks out myself, but looking at tear-downs of the Vita, it looks like there are multiple boards, and the analog sticks are one of the last things to come out. So the mod might be above my very low level.

I spent last night getting henkaku set up. So I’m running 3.60 with what looks like to be a persistent cfw. Even after reboot everything is usable. Right now I just managed to get mGBA working. I have a micro-sd card adapter coming tomorrow. So I’ll try to get StorageMgr working to be able to use the space. My plan is to mostly use the Vita as a Psp-plus, as generally the kinds of games I’m looking to run on it are Phantasy Star Portable 2 Infinity, Rockman Dash, Metal Gear Solid Peace Walker and Disgaea. So mostly a priority on PSP games, but I also want to throw on a lot of psx games like Vagrant Story.

Since I grabbed a PsVita that means generally the only other console hardware that I’m thinking about picking up would be the Wii or WiiU. Wii would be a lot cheaper. Though it kind of depends on what kind of homebrew is available. If WiiU would let me play NES, SNES, N64, Gamecube, Wii, and DS games on the tablet thingy. And then I guess the WiiU also had HD remakes would make the price of admission worth it. Though the Wii is super cheap, so being able to pop in an SD card and then being able to play NES, SNES, GBA, Gamecube and Wii games would probably be the easiest approach.

In terms of computers, I’ve recently been thinking about a computer that could switch back and forth between different OS’s easily, and I’m thinking the best approach is to hot-swap hard drives. I’ve been looking at the Thnkpad series and they seem to only have one screw to the harddrive bay and then tool-less swapping from there. I think I would buy a bunch of WD-blue SSD’s and then I could install different distro’s, ReactOS, Windows, (maybe even MacOS?) on them if needed. In terms of which machine to go with I’m leaning towards X240.

Originally I was thinking about the X220 or x230 because of Coreboot, but the resolution is capped at 1366×768, which I resolution that I hope eventually dies off forever. Starting from the X240 is looks like the display can be upgraded to a 1080p IPS display, and the machine itself is cheap and widely available. In terms of pricing it looks like $140 for the computer, $70 for the screen, and then I have an extra 8gb ddr3 sodimm stick lying around that I can use for the single memory slot. Which would just leave storage. For the X-series, it looks like it goes up to X280 before switching over to the carbon series, but in general it doesn’t look like the newer models offer any updates with respect to screen resolution. And the X240 is likely to get coreboot sooner than the other models (assuming it’s still a work in progress).

A few other alternatives would be the X1 carbon, which has the option of a 1440p screen, but it’s over a thousand dollars. So I think I’ll pass on it. There’s also the Thinkpad X395 which is the 13″ Thinkpad with a Ryzen chip in it, but it’s still capped at 1080p, and the newer processor means that I’d be less likely to be able to get something like Windows XP or ReactOS running on it. That isn’t to say that the X240 would definitely work, but it has a higher probability. So all in at it has a 12.5″ IPS 1080p display, potential to run multiple OS’s, 8GB of ram, and an easily swap-able hard drive bay for $200. Definitely sounds reasonable for the price. And the other advantage is that it doesn’t break the bank while I continue to wait for a 14″ 1440p laptop with usb-c charging that isn’t ungodly expensive (if it exists at all).

Another thing is that I’ve been thinking about switching over my work computer to Fedora as I continue to go more and more open source. Options for a work station computer I’ve been thinking about are:

1. The ThinkCentre M715q Tiny is a super tiny Ryzen desktop with multiple display ports. The nice part about going with this is I should be able to find some ddr4 sodimm ram and an nvme drive at work. Which basically means that I would only need to order the base unit and then I could have a pretty serious spec’d out small computer.

2. Going up in size there’s the ThinkCentre M91, which is more of a general category as a specific model. There are a bunch of used mini-itx Thinkcentre’s that look like the have space for a half-height graphics card to go in, and I can always swap out the power supply. The processors are a little older but my work-load can be managed perfectly fine with a dual-core i3. The main drawback behind this build is that I’m waiting and hoping AMD comes out with a lower power half height card on either their RX 5500 or RX 5300. Still not a lot of information on either of these cards, so this ins’t a viable option until more information comes out.

3. The Inwin Chopin is a great case for a Ryzen APU build. But I think for the price of getting the new motherboard and all of the memory, that it’s probably a better idea to go with the ThinkCentre M715q Tiny as the price is going to be similar. And as the power supply is built in and there’s no option of adding in a pcie-express slot, it seems like a better idea to go with the smaller option.

4. Dan A4. A guy can dream right? This case is pretty expensive and I think it would only be worth getting a case like this if I indented to get specs to fit the caliber of what this case can handle, which would probably be a Ryzen 7 3600 and RX 5700. Barring that it’s probably best to leave this case alone. If I wanted to go cheap there’s the option of a SG13 with a previous generation Ryzen and then an RX570 or something. But I think I’d rather wait to see what AMD has in mind with the RX 5500 before doing anything like this.

5. The last idea would be a Core 1100, which is a great sleeper case. Though my intention would be sleeper on the outside and on the inside. The idea would be to basically use the cheapest b450 motherboard I could find and pair it would older Ryzen Cpu’s an basically cobble something cheap together. Though again, this option really depends on what AMD does with their new cards, as I really can’t bring myself to buy polaris cards. They seem long overdue for an update the the port options kind of suck.

So in summary it likes like the ThinkCentre M715q Tiny would be the best option as it’s small and there are parts available for it. Following that up would be the ThinkCentre mini-itx, which is older but has the benefit of being a complete system for not a lot of money. And again my work load is basically text editors so it would be more than enough. The issue is when AMD will actually announce and release a new card, if it will suck or not, and if it’s actually available. Otherwise the only option here seems to be the Tiny one as all of the other’s depend on a deus-ex graphics card.

More stupid hardware Ideas – Thinkpad Edition

Not sure what it is about winter that makes me want to tinker more than normal. To follow up my previous post, I think I found some cheap Vita’s and Wii’s at a used electronics store close to my house. So I think that might potentially be an option for working with those consoles. Especially the Wii, it’s like 5$, and junky Vita’s were $50, which brings down the price of admission. But the more I see of the Vita UI, the less I like it. So buying some super cheap wii’s to play around with might be an option.

Though in this post I was specifically thinking about playing around with old Thinkpads. And the reason for that is that I’ve been using one of the original Zenbooks from several years ago, and I simply hasn’t had any reason to upgrade. The screen is a 13.3″ full hd matte IPS screen (with really bad screen bleed), 4GB ddr3 ram, 128GB SSD, and nothing is upgrade-able. So spec-wise there’s nothing exciting going on. The problem is that there’s no reason to upgrade, as the most important reason I would upgrade is for a 1440p or 4k screen. And what might come as a surprise is that I actually prefer 1440p as it allows for more stuff to fit on the screen without impacting battery life too much.

Now the problem is that the laptop market doe not seem to want to move passed the fullHD barrier. More and more cheap computers are getting fullHD screens, but as many premium computers are getting high resolution screens. And the ones that do are generally not in the thin-and-light department, or have some other defect (most notably Mac-style arrow keys). Or are otherwise ungodly expensive. Like specifically the three computers that I’ve thought, “yeah, I could go for that”, are the LG Gram, which being around $1,000 and stuck at fullhd resolution seems stupid, a customized Thinkpad Carbon X1 (except those hit $2,000 or more in pricing), and the 12 inch Mac. Which being a Mac has the stupid arrow keys.

And then another thing is that I would like to get an AMD laptop. And all of those seemed to be capped at 1080p, even though if anything they could actually take advantage of the extra pixels. And when microsoft finally came out with the AMD Surface 3, and it had the stupid Mac style keys. I mean at this point there’s barely anything in the laptop department that can’t be covered by the $200 Pinebook Pro. usb-c charging, 1080p screen, thin and light, and then the other specs don’t need to be amazing, mostly reasonable.

So that’s made me think that in terms of laptops, if there’s nothing new or exciting to buy, then I might look at old laptops and see what I can tinker around with. And what I’m really tempted to do is get into the old thinkpad seriers. There’s the X220, X230 and X240, and it’s hard to decide on one. As the X220 and X230 can both be flashed with coreboot, which would be fun to play around with. But then the X240 looks like it can be upgraded with a 1080p IPS screen. So what I would be really tempted to do is get several thinkpads and upgrade and customize them for different reasons.

Like I could get a x220 flash it with coreboot and then use it for reactos. Or get a x230, and then see if I could get macOS working on it (for fun), and then maybe see if it would would with an external GPU through the pcie slot. And then for the x240, while it can’t be flashed with coreboot, I would like to replace the screen with and 1080p IPS display and then put debian and xfce on it and customize xfce to use an IrixOS-like theme. Though then again I’d also like to get the Pinebook Pro to play around with that. One thinkpad would be cheap and fun to play around with, but several devices would probably start to add up to the point where it would be better to save towards something more practical. Which generally comes back to why I haven’t upgraded from Zenbook.

Using OpenGL to Render Images (headless)

So this is something that I was searching for before and found when I wasn’t looking for it (why does that always seem to be a trend). This is an example program that will render a png (a simple triangle) using OpenGL and EGL on the command line without needing X11. Though now that I found it I can’t remember what it was that I wanted to render with OpenGL on the command line. Either way, great find.

https://github.com/matusnovak/rpi-opengl-without-x

DashGL Tutorials Season 2

So now that I”ve finally settled on a new design for Dashgl.com, the next step is to start making tutorials. I’ve been thinking about if I want to continue with GTK or if I want to switch to SDL. And while the original focus of using GTK was to provide more resources for making Linux applications, recently when looking at the options for making applications for different open source platforms, my first thoughts have been “i wonder if SDL will compile for this”. So I think with season two of tutorials, I’ll try switching to SDL as it will run on Linux as well as the GTK applications will, gives me more options for OpenGL versions, and I wasn’t taking advantage of the file menu or widgets anyways.

So as or approach I’ve been thinking that starting with the cube might be the best way to get adjusted. My previous difficulties with SDL was managing the input and the game loop, but I think I’ve found a sample for that, so it’s not as much f a problem as it was before. I think I can use the FreeGlut introduction as a way to get familiar with SDL in a way that doesn’t require any input from the user, as well as providing an avenue to test the matrix library that I was thinking about using before. It also allows me to follow up with OpenGL 1.0 on Brickout and then OpenGL 2.0 for Invaders and Astroids respectively. And then from there I can plan out more tutorials and do other testing.

So the next thing on the agenda is to follow the Freeglut book, make a new blog post for each chapter. And I have prior source to help me out in terms of fitting the pieces together. And then once all of the pieces are in place with the blog, then I can think of what I need to work on in terms of web site structure for the DashGL tutorials. Right now I’m thinking that the best way is to put the files in a static site generator, so that all of the html is a static html file, and nothing needs to run server-side to render the pages in advance once they’ve been generated. I think that gives me the easiest option for making clean looking links.

Float Conversion

"readFloatLE" : function(offset, fixed) {

		var uint32 = this.readUInt32LE(offset);

		var negative = uint32 >> 31;
		var exponent = (uint32 >> 23) & 0xFF;
		var mantissa = uint32 & 0x007fffff;

		if(exponent === 0 && mantissa === 0) {
			return negative ? -0 : 0;
		} else if(exponent === 0xff && mantissa === 0) {
			return negative ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY;
		} else if(exponent === 0xff && mantissa !== 0) {
			return Number.NaN;
		}

		negative = negative ? -1 : 1;
		exponent -= 127;
		exponent = Math.pow(2, exponent);

		var man = 1.0;
		var shift = 0;

		for(let i = 22; i >= 0; i--) {
			
			shift++;
			if(mantissa & (1 << i)) {
				man += 1 / (1 << shift);
			}

		}
	
		var float = negative * exponent * man;

		if(fixed) {
			float = float.toFixed(fixed);
		}

		return float;

	},

Raspberry Pi Notes

PiBoy Color
3.2″ SPI TFT Screen
Raspberry Pi Zero
Raspberry Pi GPIO Header
16GB MicroSD Card
Micro-USB to USB Adapter
NES USB Controller

PiBoy Advance
3.5″ SPI TFT Screen HDMI
Raspberry Pi 2/3
32GB MicroSD Card
SNES USB Controller

PiStation Portable
3.5″ SPI IPS Screen
Raspberry Pi 3
32GB MicroSD Card
WiiU Classic Controller
WiiU Classic Controller Adapter

PiStation Portable
Raspberry Pi 3B+
64GB MSata
Element14 Desktop Case
800×480 UPerfect HDMI Screen
Logitech F310 Controller

Test Bench
Raspberry Pi Zero W
32GB Micro-SD
800×480 UPerfect IPS HDMI
8BitDo SnesPro Controller
Micro HDMI Adapter

Android Device
Galaxy S9 Black
DEX Dock
Bluetooth Keyboard
Bluetooth Mouse
Bluetooth Controller (xinput)
15″ 1080p