"a technique for reducing the memory footprint of programs in compiled languages with C-like structures"
I figure that's not the primary reason for structure packing, but rather for fine-grained control over writing to very specific memory layouts (think global descriptor table) as structs.
I know in blender there is a compile time check to ensure the structs are properly packed and it has nothing to do specific memory layouts.
I think it has to do with reading/writing them to disk but honestly never cared enough to ask anyone. Did make things convenient sometimes when you could ‘steal’ a padding value and magically got backwards compatibly because the older versions just ignored that field (and when reading an older file just set it to a sane default).
Yeah, I use them all the time for the specific memory layout part. At the same time, I've never had to go as far with optimization as trimming a few bytes off my structs for the program's memory footprint.
If that struct is getting written to storage or shoved over the wire though, I'll always optimize/pack them down, both for the size reduction and because it makes it easy to reconstruct on any other CPU.
It was a random sampling of songs that I was already playing while I was writing that. All my music is either folk (with a lot of Irish and American folk), rock, or indie. If you like though, you could try it yourself.
The great (or perhaps, not, depending on what you want) thing about the Flickr search is that it picks from a set of curated photos, so it's highly unlikely you'll get an unpleasant one. However since it is picking random pictures from the internet, don't run it where you'd get into trouble if something inappropriate does manage to come up.
You aren't by any chance interested in separating that, in hosting a server which gives a link to a good flickr image when given a word? I searched for something like that and in the end stayed with my ugly approach of parsing flickriver for getting a random image from a hard-coded group with a fitting topic.
Flickr already does this if you use their search API. The Flickr part of the script in my Github repo has an example.
As far as I understood, you need a Flickr API key for that. My software runs locally, meaning keys are not practical, I want the configuration to stay simple. But seeing how simple the code is I'll just have to get over it and host this as a service myself. Thanks for the example, still very useful.
>UNIX-like kernels are easy, in that you don't have to have >that much running before you can run "Hello World".
Well, it depends on what you mean by "Hello World". Simply printing it out from the kernel? Easy. Getting a workable userspace up and running so a user program prints out "Hello World"? Hard. Also, you can have a microkernel that gives you a UNIX-like personality too (as is it is often the case when implemented), so I am not sure how one precludes the other.
>Also, the emphasis on virtual memory and page faults is >becoming dated. Paging out to disk is obsolete technology. >RAM is too cheap, and mobile devices don't page.
Uh, of course mobile devices use paging and virtual memory. You might be conflating virtual memory with swapping here.
I'm not entirely up to speed on the situation of UEFI secure boot for ARM; didn't Microsoft mandate that it can't be disabled for such devices to boot Windows? Is that the case here?
These are categorized as experimental devices and Windows 10 is free to use on those devices for development and testing.
The UEFI secure boot requirements only apply if you want to distribute a commercial product and want to slap a "Designed for Windows 10" sticker on it - or negotiate a special distribution license with Microsoft (i.e. do not expect Windows 10 to be "free" if you want to use it in a commercially distributes product).
Has anyone taken a close look at what's actually running? I suppose it could be a version of the Windows Kernel since they have it running on ARM for Phone and RT but I frankly wouldn't be all that surprised if they were running Linux with .NET Core on top.
I've loaded up Windows 10 IoT for RPI 2 previously. It is a Windows kernel, but otherwise massively cut down. It limits the system to a single running "foreground" application at a time, plus some system services.
If you wished to dedicate the device to a single purpose, it's fine, but don't expect a robust shell environment like you would see on a bare bones linux box. It certainly won't support a user using it as a desktop environment. Think of it more as embedded Windows offering, great for being a single app server, robotics platform or kiosk.
Which just makes me wonder what the point of it is. I guess if you really love Windows and want to build an embedded system this would be the way to go. I'm betting that most people that build embedded systems are not Windows developers and I'm not sure that this IoT offering changes anything.
I'm starting to wonder the same thing. I've been looking for a project to try it out on but every time I think I find one, I realize that it's something I can't do with Windows 10 IoT because it lacks a key feature (e.g. printing) and the time it would save on other aspects would be wasted trying to work around it's inadequacies in other respects.
"Windows 10 IoT Core is a version of Windows 10 that is optimized for smaller devices with or without a display, and that runs on the Raspberry Pi 2 and 3, Arrow DragonBoard 410c & MinnowBoard MAX. Windows 10 IoT Core utilizes the rich, extensible Universal Windows Platform (UWP) API for building great solutions."
I figure that's not the primary reason for structure packing, but rather for fine-grained control over writing to very specific memory layouts (think global descriptor table) as structs.