I run Asteroid OS on the old LG watch (which I also got for free; probably a prime market for this OS). It's still in alpha so it's fairly buggy. But it looks really nice, particularly for being FOSS. It can (in principle) do notifications, weather, and music control. I look forward to them smoothing it all over, but I wear it already.
This would be extremely appealing if it had sufficient I/O to make it into a mobile, basically headless computer you could hook up to whatever display or input was handy. Looks like it only has a single MicroUSB port though.
You could do microUSB -> MHL -> HDMI, and maybe use the watch bluetooth for mouse/keyboard input.
Though I don't think MHL is open source, and I'm probably completely wrong in thinking the BT hardware on that could be used with the bluetooth host stack
MHL is not based on USB, only runs over the same cabling, so that wouldn't work (unless for some totally crazy reason the watch has the necessary hardware, totally unused)
Theoretically, it has the CPU, and the USB port is 2.0, so you could manage a USB 2.0->VGA converter.
I've heard such converters are the hardware equivalent of running the unaccelerated VESA driver due to the low bandwidth though. I don't expect it would do 60fps beyond 1152x864 and 30fps beyond 1280x1024.
Speaking from experience: these things are only useful for running powerpoint presentations. They break down even on scrolling a browser page, much less playing video.
Kinda sad none of them spent the extra effort on building a differential update protocol of some kind - but then the processor inside would probably need to be 250MHz+...
One of the big draws of buying and wearing a mechanical watch is the emotional feeling of something busily working away on your wrist. In the same way I would fine great joy in wearing a flavour of linux right on my wrist.
I do love my Apple Watch, but I would also be thrilled if they put some sort of really fancy mechanical gizmo in there for the sole of having some ultra complex mechanical escapement only instead of software.
Apple used to put speakers in their ipods just so there was a click when you used the scroll wheel, so I wouldn't put it past them to have some sort of haptic imitation of ticking that 99.999% of people will never notice or feel. :)
I find the clicking on my MBP 2012 really irritating - I much prefer tap to click. Do others really spend the entire day noisily clicking around to do stuff?
Weirdly the tap to click stops working after connecting to the MacBook using VNC, even though if you open System Preferences and look at the touchpad options, it believes it is enabled with tap-to-click. They've said it is fixed about 10 times now - not sure if it is. Must retest.
You might want to try NoMachine, it works on Linux, macOS and Windows. It's pretty fast, but the picture quality isn't that good because it uses video compression (VP8) instead of bitmaps.
I've never understood why anyone doesn't use tap to click on Apple trackpads. Physical or not, the full click is such a flow interruption for me it drives me crazy when I have to do it (fortunately, effectively never).
There was a viral Flash(?) game a few years ago involving a frog sticking out its tongue to trap insects; the catch for the game was that it had no help, everything in the UI was discoverable, but barely.
Unless, of course, you used tap to click, which wasn't registered by the game. I spent 5 minutes trying to play before deciding the whole thing must be a hoax.
Absolutely - I'd love to see more along the lines of Tag Heuer's 'Connected' watches (which I think all have LCD faces), but stepping back to mechanical time.
At it's most basic, just a notification light that mirrors that on my phone/tablet.
Ideally, I think a ticker-tape-style circular display around the edge of the (real mechanical) watch face to give notification headings would be awesome.
When I last tried hacking my Moto360 it was possible to get Debian running in a chroot reasonability easily.
The trouble came mostly with video access. The userland graphics libs are all compiled against BIONIC rather than glibc. And they were at the time only available in compiled form. That meant it wasn't really possible to have a clean glibc system.
I guess either something has changed, or they're using a hack, incorporating BIONIC, which is what many people have done on other mobile platforms.
Very neat though, I'm going to have to try this out!
Apparently libhybris [1] solves the glibc -> bionic problem, but I've never been able to work out how to use it. I'd like to see a "Hello World" done with a small rootfs+libhybris on something like the Nexus 4.
What GPU does it use? Is it a native GPU driver + Mesa or you use it with libhybris and Android blobs? Wayland is neat, but it's pretty annoying when there are no native drivers available. One of the problems with Android is, that it became like Windows of the past. Hardware makers produce Android drivers with closed userspace blobs, and leave it at that. Blobs built against bionic make running a proper glibc Linux on such devices a pain unless hacks like libhybris are deployed, or you manage to replace them with proper open drivers.
"AsteroidOS is built upon a rock-solid base system. Qt 5.6 and QML are used for fast and easy app development. OpenEmbedded provides a full GNU/Linux distribution and libhybris allows easy porting to most Android and Android Wear watches."
AFAIK, Hybris isn't just for the GPU and is used to port various binary Android drivers to ubuntu touch, sailfish, tizen, luneos etc as can be seen from the following chart:
Yes, it can be used any time there is a need for blob that depends on bionic and there is no open replacement. May be for touchscreen driver in this case? That's why it's such a mess with Android only hardware.
No idea why Tizen needs it though. Samsung can afford writing normal drivers for all their hardware.
This is awesome. I got in on the smartwatch craze super early (like sony smartwatch 1), and the one thing I wished was for was some F/OSS to run on my watch (believe it or not sony smartwatch 1 actually had a dev kit), and to finally getting rid of the oddly-intrusive smartphone apps that came with most smartwatches. Hyped to hear someone actually did it with Asteroid OS (even if it's Alpha).
I also thought FirefoxOS would evolve to maybe get in this space, but I was mega wrong about that and lots of other things so there's that. I'm excited that Asteroid won't meet the same fate, but maybe I'm biased.
Also stumbled upon http://www.openembedded.org/wiki/Main_Page while looking the repo for Asteriod. Excited to see what comes of this project and maybe even contribute in the future.
OE has been around a while, and while it has matured well it is still somewhat of a bridge to building bespoke distributions. It's a great start if you're looking to maintain a custom distribution for a custom product/form factor but it's a bit rough for end users. Worse still, there is little-to-no motivation for vendors to open up their products to their customers.
I've always thought that one of the best things about the Raspberry Pi/ODROID/Zero/Arduino/other mini computers/microcontrollers is that they made it obvious and easy (easier at least) for people to bring hardware to consumers, at the sacrifice of some speed and efficiency.
When the Raspberry Pi came out and only cost $25, it made me think I could write some relatively resilient/robust software, put it on a SD card, put it in a PI, add a case, and sell useful hardware for $50. OE seems like a good step in the direction of recovering some of the speed/efficiency losses that running even some of the most lightweight linux distros would force you into.
I think the end user problem can be solved with extremely robust client-side installers and amazing instructions. If IKEA can get people to build furniture (even if badly), why can't we manage to get a user who has booted an operating system on a running computer to flash a device, when usually most cases are the default case (as in you usually don't have to change a ton of ADB/system settings to connect to most android devices).
OE is very much a thing in embedded Linux. You might also want to look up the Yocto Project.
I know that places like Formlabs use it (source: interned there), and 100% agree with the sibling comment: there's a huge, painful learning curve to get started.
It's a combination of a lot of problems: the question of what expertise level to write tutorials/walkthroughs for, decent documentation (that you think you understand but then realize, oh shit, no, I don't), knowing the ecosystems (man, the sheer F/OSS drama that you can discover while searching for something...), were all problems that I noticed just trying to extend our build system.
Part of the problem is due to the small community of developers involved. There are a lot of ways to package and build your source tree, especially if you draw from a lot of different projects. See the chromium or android projects to see what I mean. If you compare the smaller and older embedded projects to the Arduino community, it's like day and night. The Arduino project has a much larger community of users and contributors which has given it much better libraries, tools, and support.
This needs a microphone. Would be great to be able to drive activity via voice, or make reminders. If it had some kind of bluetooth/wifi also then you could send emails via dictation but I guess the size/battery constraints rule that out.
It's got a microphone. Also both Bluetooth and WiFi, and you can (with the original Android Wear -- no idea if Asteroid has got to the point of implementing anything similar) drive activities by voice, set reminders and send emails by dictation.
It's definitely one of the main restricting factors. That said, even my gen-one Moto 360, while not new and not known for being amazing in the battery department hasn't been an issue for me. I just put it on the cradle on my nightstand when I go to bed and pick it up in the morning. It charges pretty quickly as well so if I get home from work on a Friday and anticipate being out late, I can put it on the cradle for 30-60 min and top off the charge before heading out and there's never an issue.
Still, the battery isn't something like the battery in a traditional watch so at some point I won't just be able to order a button cell on Amazon and swap it out like I could on any old Timex, etc. Definitely hurts the lifespan and it's a major reason I only bought this watch because I got it on sale for $100. I wouldn't feel as comfortable buying a $500 watch that would be forever battery-dead in 3-4 years.
Its hard for me to consider a smartwatch when my current watch is solar powered and I haven't had to change batteries for the last 8 years. Maybe when these can run on a charge for 2+ weeks at a time I might consider it.
My Seiko Kinetic is going on 15 years without a single charge and will probably do fine for many years to come. Also, I can just look at it to tell the time, no need to turn it on first!
That's a completely different usecase though. You don't wear a smartwatch just to see the time. You wear it because it can do stuff for you outside of telling you the time.
The ability to tell time is enough alone. The varied selection of clockfaces to match my mood or clothing makes me prefer my huaweii smartwatch over a mechanical one. I don't use any special features.
On my case, I already went through the first smartwatch wave in the 80's, so I don't see any value on the current one.
I see it as a way for mobile OES to sell more electronics, now that everyone and their dog owns a mobile phone and a tablet, and don't plan to buy news ones anytime soon.
Being an old Slashdot user, the first incredibly dumb thought of mine was "Imagine a beowulf cluster of these!" With a pic of Natalie Portman for the watch face, of course.
But, one fun thing I could imagine doing is using it as an incredibly portable PirateBox. Or any other use of a file server hiding in plain sight.
Man, I remember when those jokes were old, 15 years ago.
Speaking of Beowulf, has there ever been an evolution of the concept? The closest I've seen since has been QNX's QNet, which allows transparent management and communication between process on nodes of the cluster. I suppose Hadoop or even Kubernetes can be seen as the continuation of the concept?
All of these machines are big clusters running Linux. Mostly on Intel CPUs.
But on the other hand, the idea of using commodity hardware is kind of a thing of the past. It's mostly Xeon CPUs, not desktop processors. And it's specialized network hardware. And more and more you see dedicated compute hardware like Intel Phi and Nvidia Tesla cards.
Yeah, it's pretty intense to see these clusters in person. In our data centers, we have 40G optical interlinks per rack overhead, 100G spidering across the racks to different rooms and the main network room.
And thinking of he main network room, with the amount of brocades in there, it's probably more expensive than the main enterprise pod just in sheer super-expensive network stuffs.
We're also behind the times in lots of our management. 80% of our servers are bare metal, with limited automation. But we also do "NOC in a box"... many of our use cases wouldn't cleanly work right using tech like docker and kubernetes.
That's a narrow definition of "commodity" -- the special networks cost less than the same speed of Ethernet, and Intel server chips (non-phi) aren't that different from desktop CPUs.
If you look through the archives of the beowulf mailing list, occasionally someone makes the argument you're making, and few people agree with it.
There is no 'same speed of Ethernet' for infiniband or omnipath or aries, etc. There is more to these networks than throughput, and the switches approach a million dollars apiece.
The rest of the non-phi/non-tesla hardware is pretty much off the shelf, but the interconnect is one of the two distinguishing features of a supercomputing-class cluster; the other is high-performance shared storage (which of course requires the interconnect to function).
It's a shame feel like I need to. There's no world where high-speed interconnects are as cheap as ethernet, nor is there a world where it is appropriate to replace them with ethernet. Congratulations on your successes but they're not really relevant to the accuracy of your post.
> Speaking of Beowulf, has there ever been an evolution of the concept?
I don't know if you'd call it an "evolution of the concept", but there are people who've made "low cost" clusters of Raspberry Pi boards (anywhere from four, to several hundred), not so much for practical purposes, but more for learning how to set up, use, and maintain such a system, without needing the space or power requirements a real system would need.
Oh yeah. It's those pesky little things that push the width beyond 100% at least here it was easy to find. Sometimes you have to use the console>inspect that highlights parts of the page to find what is causing the width overflow.
Also yeah Nexus 4 isn't bad, too bad they don't update it anymore :(
If you're right, that's a big sigh of relief from me.
The guy mentions how "Lennart Poettering would love it!" as the h2, and also describes X11 as "legacy".
With these in mind I feared he was serious about the systemd bit.
I'm really sad X11 is legacy software myself, as an aside. It's a disaster, sure, but now we have one more layer of "uhhhh..." for all the UX-types to get scared away by: it used to be "(WinAPI) vs ((Qt)/(GTK+)/(Xlib/XCB))", which was embarrassing enough; now it's "(WinAPI) vs (X11((Qt)/(GTK+)/(Xlib/XCB))/Wayland((Qt)/(GTK+)/(???)))" which is just plain annoying for low-level graphics hacker wannabes - I can make a WinAPI app in C that opens a window in a few KB, where as to do that in Linux now I HAVE to support XCB and also write my own tiny UI for Wayland.
Practically speaking it means that most developers will just pick a side^H^H^H^Htoolkit and go with that. It doesn't help that I've never been able to get past Qt's love of background processes vs. GTK's various displays of autism/spasticness.
sighs...rant over, situation accepted a bit more.
systemd is still a disaster though. I saw a massive 3Wx5H 1080p video wall in a shop window the other day, displaying... systemd emergency mode.
At least I learned that some video stretchers are smart and will drop the panels they're controlling into standby if they display black for too long. (Only the two panels at the top-left displaying the error were on, the others visibly had their backlights off. Neat.)
I haven't followed this discussion so am unfamiliar with the validity of the details of the comment, so I can't speak to the content. The downvotes may be in part due to the rantish nature of part of it, which you were aware of at the time of posting. Some readers may have thought as you knew its tone was overly heated, you could have taken the time to express it better. However, this is just speculation, based on behavior I've seen on HN.
Ah, I see. Defining one's argument concretely and concisely is the basis of debating effectively, whereas I've just resorted to anecdote and ranting here. Woops.
Thanks very much for that feedback, I'll keep it in mind.
If I had to use one word to describe systemd's integration and adoption into the Linux ecosystem it would have to be "hostile" - the label has unfortunately been applicable in both directions.
Most of the feathers flew around 2012 when the major Linux distributions adopted systemd as their default init system, irreversibly pulling in all of systemd's system management policies as well, many of which were poorly designed.
Several big names in the Linux community (Linus Torvalds and Greg Kroah-Hartman, to name two) have had heated discussions with Lennart Poettering and other people behind systemd about major bugs, design flaws and policy integration issues, with the systemd response consistently being "the way we're doing it is the right way, no patches will be accepted, go away" even when shown multiple times that something contravenes design best practices or tradition (aka principle of least surprise).
For this reason I dislike systemd's highly bureaucratic "manglement" style, and am very sad that all major distributions have adopted it so widely. systemd uses a very dictatorial approach which makes it very very hard to use any other init system without nontrivial and obscure system reconfiguration.
I understand Lennart also built PulseAudio and got it integrated into pretty much all Linux distributions. PA works well now, but if it's having a bad day and I really need sound working in a pinch, I can just kill it and use ALSA/OSS directly.
systemd categorically isn't like that because it's (ostensibly) an init system. However it comes with so many extra "side features" (which an increasing number of things are depending on) that temporarily shoving it out of the way to became impossible very quickly, and before any real documentation was established. I think it's understandable a large amount of the Linux community have growled and snarled when presented with this set of circumstances.
Nowadays, systemd is pretty much part of the woodwork now, but the communication and social issues continue.
I remember the Fedora 7 (?) days when PulseAudio was made default and nothing worked (silence is golden apparently). I routinely removed PulseAudio from my systems and dropped to ALSA.
I observe that systemd has a plethora of other systems that you mention, including a DHCP server. Yes a DHCP server.
I do not understand it.
Edit: Yes I know Fedora 7 was ancient. Just my memories. I think the fact that PA was broken in it got fixed pretty swiftly, from memory. But I was plagued with glitchy audio releases after this - could be my incredibly lame hardware at the time (but worked fine in ALSA).
Do you understand why the Linux kernel has a network stack and do encryption algorithms?
Historically, its the difference between Monolithic vs Micro design. The linux kernel is not just a layer between the application and the hardware, it also support a bunch of extra things which the project want to have built in rather than as optional libraries. There is no TCP/IP or AES library, but there is non-supported alternatives to those that are libraries.
If you wonder why systemd has a dhcp implementation, ask why the tcpip stack don't.
That is a very good point, and I'd like to hear the arguments for why such capabilities wouldn't be added into the kernel.
They'd probably go along the lines of saying that there are already millions of lines of code in there and adding these types of features would add to the codebase size and permanent maintenance requirements.
But it would be really cool if all of these kinds of high-level features were available, yeah...
You don't want them in the kernel, that makes them much harder to replace/upgrade/tinker with. If anything you want to go the other way and move the TCP stack out of the kernel and into a normal userspace library.
I read (unfortunately unsure where) that microkernels do have one fundamental issue: having servers do All The Things and then just making a kernel to dispatch calls to those servers horribly falls down if the messaging/dispatch implementation is single-threaded.
And it inevitably always is, since if you're generalizing all system operations onto a single bus, that bus would either need to support some generic form of contextualization hinting or have some kind of theorem-solver-inspired system to determine what requests have no dependencies. I don't suspect Minix incorporates either approach...
The problem I see is the need to put "these are audio frames" in a different queue than "here are filesystem request packets". (Ideally the filesystem queue would itself allow further sharding, since most filesystems are multithreaded now.)
Writing such a generalized queue sounds like a rather fun exercise to me.
That said, if any such implementations are out there or there are any counter-arguments to make to this, I'd love to hear them. I mean, AFAIK Mach is a microkernel, so it's clearly solved some of this.
I am of limited knowledge regarding micro-kernels.
As i have come to understand there is one successful such kernel out there, QNX. And that while both the OSX/iOS and Windows NT kernel started out as a micro design, both Apple and Microsoft have been moving things in and out of the kernel proper as they try to balance performance and stability (Most famously with Windows, the graphics sub-system).
QNX is such a mixed story of technical ingenuity and frustration.
The OS was cautiously courting a "shared source" model where you could agree to a fairly permissive (but not categorically pure-open-source) license and get access to quite a few components' source code.
It was anybody's guess what might develop from that, and an intriguing and hopeful time.
And then BlackBerry came along and bought QNX and killed the shared source initiative. Really mad at BB for deciding to do that.
Nowadays QNX is no longer self-hosting - no more of that cool/characteristic Neutrino GUI anymore :(
I think multithreading the messaging/dispatching implementation would add more overhead than it saved. I remember the hurd's core message-passing routine is 26 assembly instructions - there's simply not a lot of computation involved, and in general not enough data for the message-passing to be the bottleneck - when you're transfering bulk data you'd use shared memory or at least DMA or the like (in a sensible microkernel you just do it, in a super-purist microkernel you'd have a server that owned bulk data buffers and your regular processes pass handles around rather than actually owning the data and it's fine too).
If you need a queue with particular properties you write one, as its own userspace process (or system of cooperating processes). The kernel dispatcher isn't assumed to be a fully general messaging system.
> there's simply not a lot of computation involved
Wow, 26 instructions.
Here's my worst-case scenario: you have 8 concurrent threads (a current reality on POWER8), and let's say all of them are engaged in fetching large amounts of data from different servers - let's say disk and TCP I/O are both servers.
I'm genuinely curious how well a 26-instruction-but-singlethreaded message passing system would hold up. (I honestly don't know.)
Worst case scenario, the cache and branch predictor would perpetually resemble tic-tac-toe after an earthquake.
---
I think it would be genuinely interesting to throw some real-world workloads at Minix, Hurd, etc, and see how they hold up.
Now I'm wondering about ways to preprocess gcc's asm output to add runtime high-resolution function timing information that (eg) just writes elapsed clock ticks to a preallocated memory location (within the kernel)... and then a userspace process to periodically read+flush that area...
> Here's my worst-case scenario: you have 8 concurrent threads (a current reality on POWER8), and let's say all of them are engaged in fetching large amounts of data from different servers - let's say disk and TCP I/O are both servers.
Speculating: if you were passing all the data in messages, terribly. But that's not how you'd handle it. You'd use messages as a control channel instead, similar to DMA or SIMD instructions. E.g. if you're downloading a file to disk, the browser asks to write a file, the filesystem server does its thing to arrange to have a file and gets a DMA channel from the disk driver server. The TCP layer likewise does its thing and gets a DMA channel from the network card driver, and either the browser or a dedicated bulk-transfer server connects them up. The bulk data should never even hit the processor, yet alone the message-passing routines.
> I think it would be genuinely interesting to throw some real-world workloads at Minix, Hurd, etc, and see how they hold up.
Do. Also look at QNX which is the big commercial successful microkernel.
> Now I'm wondering about ways to preprocess gcc's asm output to add runtime high-resolution function timing information that (eg) just writes elapsed clock ticks to a preallocated memory location (within the kernel)... and then a userspace process to periodically read+flush that area...
Using messages as a control channel sounds awesome, wow.
One of the targets I've been trying to figure out how to hit is how to make message-passing still work if you're using it in the dumbest way possible, eg using the message transport itself to push eg video frames. I'm slowly reaching the conclusion that while it'll work, it'll just be terrible, like you say.
I mention this because, at the end of the day, most web developers would just blink at you all like "DM-what?" if you suggested this idea to them. These types of techniques are simply not in widespread use sadly.
In my own case, I'm not actually sure myself how you use DMA as a streaming transport. I know that it's a way to write into memory locations, but I don't know how you actually take advantage of it at higher levels - do you use a certain bit as a read-and-flush clock bit? Do you split the DMA banks into chunks and round-robin write into each chunk so that the other side can operate as a "chaser"? I'm not experienced with how this kind of thing is done.
Well, workload-testing microkernel OSes is now on my todo list, buried along with "count to infinity twice" :) (I really will try and get to it one day though, it is genuinely interesting)
> In my own case, I'm not actually sure myself how you use DMA as a streaming transport. I know that it's a way to write into memory locations, but I don't know how you actually take advantage of it at higher levels - do you use a certain bit as a read-and-flush clock bit? Do you split the DMA banks into chunks and round-robin write into each chunk so that the other side can operate as a "chaser"? I'm not experienced with how this kind of thing is done.
I don't know enough to answer this stuff - last message was already second-hand info (or worse). All I can say is, best of luck.
The problem with systemd's NTP and DHCP and whatnot is that they use their own systemd-specific APIs. Not using the APIs means that you don't talk to those components. And the thing is, if you're on a systemd-based system (which you can generally assume* to be the case now), you can 100% depend on those components absolutely definitely existing, regardless whatever else is(n't) installed.
(* Unless your users are using Slackware (hi there :D), Devuan or something like that.)
So of course things are beginning to depend on those services' APIs.
Which are exposed via D-Bus. ("Desktop"-Bus. On servers. Facepalm, Inc.)
Now, I do understand that when you use systemd-nspawn or LXC or Docker or whatever else you can generally assume that these components will interoperate and that's why they were implemented. That's the theory.
Their DNS "client" implementation was a tour the force of NIH wrongs, including screamers like not implementing security functionality that had been commonplace in other implementations for a decade or more.
Damn it, they have a web server in there for the sole reason of displaying a QR code for the initial log signing key. A signing system that apparently Poettering's brother came up with as a doctorate thesis, with systemd-journald being the only implementation (that i know of).
BTW, these days you find dbus inside the initramfs. Because systemd need it to be present during bootstrap. After systemd-pid1 is up, it will kill the initramfs version and fire up the one from the HDD instead.
There are times i wonder if the Fedora maintainers grit their teeth and play along with Poettering and crew because they have the same paymasters.
> Their DNS "client" implementation was a tour the force of NIH wrongs, including screamers like not implementing security functionality that had been commonplace in other implementations for a decade or more.
:(
> Damn it, they have a web server in there for the sole reason of displaying a QR code for the initial log signing key. A signing system that apparently Poettering's brother came up with as a doctorate thesis, with systemd-journald being the only implementation (that i know of).
Okay, that I didn't know.
Actually let me read that backwards...
> log signing key
What on earth? Is the log encrypted?
> QR code
How are QR codes relevant to encryption?
> web server
Why do I need a WEB SERVER to display a QR code?! Uh... I can get displaying a QR code on the screen, sure. But... I get the impression you mean the QR code is served over a web server?
Oh. For headless boxes. But... why display a QR code, again? Why not just serve the log signing key itself? QR codes aren't encryption (just a good week's worth of reading on error-correction).
> BTW, these days you find dbus inside the initramfs. Because systemd need it to be present during bootstrap. After systemd-pid1 is up, it will kill the initramfs version and fire up the one from the HDD instead.
Mmm. Because all of its APIs are delivered as D-Bus (desktop-bus) services. I totally get that, but... aghhh. Why not even ZeroMQ :(
> There are times i wonder if the Fedora maintainers grit their teeth and play along with Poettering and crew because they have the same paymasters.
Unless things have changed, Linus Torvalds uses Fedora. He's had a lot to say about things.
I would be very very surprised if there wasn't a noteworthy bunch of mental-pitchfork-wielders.
My limited understanding of the whole thing is that journald use a chain of signatures to verify journal integrity.
Meaning that the first key is used to sign a new key that signs the journal entry and the next key that sign yet another key and entry etc etc etc. And that by having the initial key handy one can at any time walk through the journal to verify that it has not been tampered with.
The whole QR thing it there to allow a would be admin to quickly transfer the initial key to their smartphone or similar by scanning the code.
As for Torvalds being a Fedora user, my impression is that his usage needs are fairly modest these days. He spends most days reading emails via gmail, and approve commits to the kernel code housed on the kernel.org servers.
I see, interesting. For what it's worth that's pretty cool. I never even thought of the idea of a verifiable system boot log...
It's almost sad systemd has some good points. Heh.
I vaguely recall a video that noted where Torvalds was at nowadays; he seems to mostly be in administration/management now, as opposed to low-level hacking. Must be an interesting position to be in.
It hasn't been all roses in the windows world. Aside from qt/gtk being just as desirable there, there was also winforms and WPF in .net that are now left out in the cold and no clear forward direction that would also work on windows 7. They seem to be taking an each way bet on whether Win32 is deprecated or not.
Actually, I think this is the situation that lead to the growth in webapps and probably helped the decline (or failure to rise) of windows phone, no one had a clue where MS was going.
WPF is pretty much alive for desktop applications and its architecture (XAML + Blend tooling) is the foundation of UWP applications.
Windows Forms is officially dead as communicated at Build a few years ago. It is now playing chess with Carbon.
MFC is officially on life support. Way forward for C++ developers is UWP.
Everything from Win32 that isn't required for UWP support is deprecated and Project Centipede is the official way to bring Win32 applications into the new shinning UWP world.
Bollocks, the equivalent of opening a window using Win32 in Linux world is using X11's xlib (or xcb) API. Equivalent albeit more brain damaged.
Wayland doesn't change this. Once Wayland is adopted the X server will become a Wayland client and X client's will connect to the X server as usual. You don't have to write a native Wayland application if you don't want to.
One could only hope that 10 years from now X has in-fact disappeared. My greater worry is that it's still around and Wayland (with Weston implementation) hasn't yet gained enough traction to become "de-facto" server. To make matters worse there's the Ubuntu's MIR display server, which seems to have gone silent. This could lead to some nasty fragmentation between distros.
> I'm really sad X11 is legacy software myself, as an aside. It's a disaster, sure, but now we have one more layer of "uhhhh..." for all the UX-types to get scared away by: it used to be "(WinAPI) vs ((Qt)/(GTK+)/(Xlib/XCB))", which was embarrassing enough; now it's "(WinAPI) vs (X11((Qt)/(GTK+)/(Xlib/XCB))/Wayland((Qt)/(GTK+)/(???)))" which is just plain annoying for low-level graphics hacker wannabes - I can make a WinAPI app in C that opens a window in a few KB, where as to do that in Linux now I HAVE to support XCB and also write my own tiny UI for Wayland.
That's worse than this: you will quite possibly need features that are not implemented through Wayland, but through each different Desktop Environment, through different APIs, since Wayland ditched many X11(+standardised extensions) features.
Another commentator noted that X will just become a Wayland client when things even out. I suspect that things won't necessarily work out that cleanly/elegantly, and eventually X11 will installed on fewer and fewer devices.
Whatever we're left with will create quite an interesting ecosystem; here's hoping it's not too much of a political disaster.
For me, that means hoping Qt keeps up at the end of the day; it's been far superior to GTK in every way IMHO for some time.
He's not. Far better to run a tightly configured systemd on an embedded device than thickets of shell scripts. And as he states, it makes modifying device behaviour that much simpler.
This is amazing (I also have a moment of amazement at my smartphone every so often).
But an issue is power usage. (eg) ubuntu runs on a smartphone, but with much shorter battery life than android. (Tho TBF, I don't know the power efficiency of Asteroid OS).
One side-benefit of non-rooting linux (eg termux, terminalIDE) is retaining battery life.
However, Asteroid OS is open source, which counts for a lot!
Android Wear's kernel is linux and some of the low level userland is open source but everything above that is locked down and proprietary. It's definitely not using Wayland. In general Google has been moving away from Android's open source legacy as much as they can.
It might not be as bad as could be feared, specifically regarding the CPU at idle anyway. A lot of modern CPUs support turning cores individually on/off (or at least into very low power sleep states) as needed and if the OS scheduler is bright enough then taking advantage of this can be a lot more power efficient than trying to fiddle around with variable clock rates. There might be a performance hit for single one-thread tasks of course as per-core performance might be low, but at times when you care (while in active use, interacting with an app) there will be at least three distinct tasks going on: core function management, display management, and at least one user task. While the watch is idle there will just be one active task most of the time so only one core needs to be powered up (of none most of the time, with device management tasks and user apps that respond to events/notifications only waking up on interrupt).
Having said that, having to charge it at least once most days is my only major complaint with the MS Band that I wear most of the time. It would be interesting to see how well this manages in that regard.
Since I own the same watch...I'm intrigued. Battery life is a concern (as is integration with some stuff). But yeah who am I kidding I'll try this and even if all it will ever do is display the time there's something to be said about "well yeah I got my Linux box right here!" :D
Remembering the "runs on a toaster" shirts I am now curious if NetBSD (or any BSD) will run on it. The thought that I never even considered messing with the watch makes me a bit sad (I've turned into too much of a consumer, not enough tinkerer left :P)
I had the same problem here, while scrolling Firefox couldn't catch up and showed white just white for a short time. Then I saw the huge background gradient. The background is an image, a radial gradient, and also background-blend-mode: hue;
edit: there are even more huge div's that have the same background, so there are multiple layers of gradients with hue blend mode.
Love the hack but I can't agree that they're a fad. Long before smartwatches my cousin had a bluetooth watch connected to his phone. And today I have a smartwatch connected to my phone to avoid having to stop and take it out when I'm on a bike. I bike everywhere, like thousands others where I live.
So there's clearly a market for some sort of wrist-device that makes using your phone easier.
The thing that makes it feel like a stupid fad is when you have to charge it every day and therefore forget to put it on. It hasn't become habitual quite yet.
Which is why I love my smartwatch for having an e-ink display and not an amoled display. So even after more than a year of operation I still only charge it once a week.
That's why he said it was a fad for him. And it is, for the vast majority of people, just a fad. Bar some use cases like biking and so on, having a smartwatch brings nuisances for no tangible benefits.
One could argue that in the larger context of modern cities (outside of specific places like the Netherlands, or some Chinese cities), biking is mostly a fad too.
410 mAh is a measure of battery capacity, not battery life. And the phrase "a good days worth" presumably describes the watch as shipped with Android wear.
I think what the original question was getting at was more like "what is the battery life of the watch when running AsteroidOS?" That seems like a pretty fair question which was not addressed.
237 comments
[ 2.5 ms ] story [ 261 ms ] threadThough I don't think MHL is open source, and I'm probably completely wrong in thinking the BT hardware on that could be used with the bluetooth host stack
I've heard such converters are the hardware equivalent of running the unaccelerated VESA driver due to the low bandwidth though. I don't expect it would do 60fps beyond 1152x864 and 30fps beyond 1280x1024.
Thanks for the info, I'd always wondered.
Kinda sad none of them spent the extra effort on building a differential update protocol of some kind - but then the processor inside would probably need to be 250MHz+...
Weirdly the tap to click stops working after connecting to the MacBook using VNC, even though if you open System Preferences and look at the touchpad options, it believes it is enabled with tap-to-click. They've said it is fixed about 10 times now - not sure if it is. Must retest.
There was a viral Flash(?) game a few years ago involving a frog sticking out its tongue to trap insects; the catch for the game was that it had no help, everything in the UI was discoverable, but barely.
Unless, of course, you used tap to click, which wasn't registered by the game. I spent 5 minutes trying to play before deciding the whole thing must be a hoax.
At it's most basic, just a notification light that mirrors that on my phone/tablet.
Ideally, I think a ticker-tape-style circular display around the edge of the (real mechanical) watch face to give notification headings would be awesome.
https://www.withings.com/eu/en/products/steel-hr
When I last tried hacking my Moto360 it was possible to get Debian running in a chroot reasonability easily.
The trouble came mostly with video access. The userland graphics libs are all compiled against BIONIC rather than glibc. And they were at the time only available in compiled form. That meant it wasn't really possible to have a clean glibc system.
I guess either something has changed, or they're using a hack, incorporating BIONIC, which is what many people have done on other mobile platforms.
Very neat though, I'm going to have to try this out!
1: https://en.wikipedia.org/wiki/Hybris_(software)
"AsteroidOS is built upon a rock-solid base system. Qt 5.6 and QML are used for fast and easy app development. OpenEmbedded provides a full GNU/Linux distribution and libhybris allows easy porting to most Android and Android Wear watches."
AFAIK, Hybris isn't just for the GPU and is used to port various binary Android drivers to ubuntu touch, sailfish, tizen, luneos etc as can be seen from the following chart:
https://wiki.merproject.org/wiki/Adaptations/libhybris
No idea why Tizen needs it though. Samsung can afford writing normal drivers for all their hardware.
I also thought FirefoxOS would evolve to maybe get in this space, but I was mega wrong about that and lots of other things so there's that. I'm excited that Asteroid won't meet the same fate, but maybe I'm biased.
Also stumbled upon http://www.openembedded.org/wiki/Main_Page while looking the repo for Asteriod. Excited to see what comes of this project and maybe even contribute in the future.
When the Raspberry Pi came out and only cost $25, it made me think I could write some relatively resilient/robust software, put it on a SD card, put it in a PI, add a case, and sell useful hardware for $50. OE seems like a good step in the direction of recovering some of the speed/efficiency losses that running even some of the most lightweight linux distros would force you into.
I think the end user problem can be solved with extremely robust client-side installers and amazing instructions. If IKEA can get people to build furniture (even if badly), why can't we manage to get a user who has booted an operating system on a running computer to flash a device, when usually most cases are the default case (as in you usually don't have to change a ton of ADB/system settings to connect to most android devices).
I know that places like Formlabs use it (source: interned there), and 100% agree with the sibling comment: there's a huge, painful learning curve to get started.
It's a combination of a lot of problems: the question of what expertise level to write tutorials/walkthroughs for, decent documentation (that you think you understand but then realize, oh shit, no, I don't), knowing the ecosystems (man, the sheer F/OSS drama that you can discover while searching for something...), were all problems that I noticed just trying to extend our build system.
The battery lasts for around two days.
Still, the battery isn't something like the battery in a traditional watch so at some point I won't just be able to order a button cell on Amazon and swap it out like I could on any old Timex, etc. Definitely hurts the lifespan and it's a major reason I only bought this watch because I got it on sale for $100. I wouldn't feel as comfortable buying a $500 watch that would be forever battery-dead in 3-4 years.
The definition?
I see it as a way for mobile OES to sell more electronics, now that everyone and their dog owns a mobile phone and a tablet, and don't plan to buy news ones anytime soon.
But, one fun thing I could imagine doing is using it as an incredibly portable PirateBox. Or any other use of a file server hiding in plain sight.
Speaking of Beowulf, has there ever been an evolution of the concept? The closest I've seen since has been QNX's QNet, which allows transparent management and communication between process on nodes of the cluster. I suppose Hadoop or even Kubernetes can be seen as the continuation of the concept?
In some ways this idea came to dominate. If you look at the top500 list:
https://www.top500.org/list/2016/11/
All of these machines are big clusters running Linux. Mostly on Intel CPUs.
But on the other hand, the idea of using commodity hardware is kind of a thing of the past. It's mostly Xeon CPUs, not desktop processors. And it's specialized network hardware. And more and more you see dedicated compute hardware like Intel Phi and Nvidia Tesla cards.
And thinking of he main network room, with the amount of brocades in there, it's probably more expensive than the main enterprise pod just in sheer super-expensive network stuffs.
We're also behind the times in lots of our management. 80% of our servers are bare metal, with limited automation. But we also do "NOC in a box"... many of our use cases wouldn't cleanly work right using tech like docker and kubernetes.
If you look through the archives of the beowulf mailing list, occasionally someone makes the argument you're making, and few people agree with it.
The rest of the non-phi/non-tesla hardware is pretty much off the shelf, but the interconnect is one of the two distinguishing features of a supercomputing-class cluster; the other is high-performance shared storage (which of course requires the interconnect to function).
https://twitter.com/hashcat/status/817367152927866880
and now to do machine learning...
I don't know if you'd call it an "evolution of the concept", but there are people who've made "low cost" clusters of Raspberry Pi boards (anywhere from four, to several hundred), not so much for practical purposes, but more for learning how to set up, use, and maintain such a system, without needing the space or power requirements a real system would need.
Thanks for the bug report btw. I'll fix it when I'm thinking straight in the morning!
Also yeah Nexus 4 isn't bad, too bad they don't update it anymore :(
The guy mentions how "Lennart Poettering would love it!" as the h2, and also describes X11 as "legacy".
With these in mind I feared he was serious about the systemd bit.
I'm really sad X11 is legacy software myself, as an aside. It's a disaster, sure, but now we have one more layer of "uhhhh..." for all the UX-types to get scared away by: it used to be "(WinAPI) vs ((Qt)/(GTK+)/(Xlib/XCB))", which was embarrassing enough; now it's "(WinAPI) vs (X11((Qt)/(GTK+)/(Xlib/XCB))/Wayland((Qt)/(GTK+)/(???)))" which is just plain annoying for low-level graphics hacker wannabes - I can make a WinAPI app in C that opens a window in a few KB, where as to do that in Linux now I HAVE to support XCB and also write my own tiny UI for Wayland.
Practically speaking it means that most developers will just pick a side^H^H^H^Htoolkit and go with that. It doesn't help that I've never been able to get past Qt's love of background processes vs. GTK's various displays of autism/spasticness.
sighs...rant over, situation accepted a bit more.
systemd is still a disaster though. I saw a massive 3Wx5H 1080p video wall in a shop window the other day, displaying... systemd emergency mode.
At least I learned that some video stretchers are smart and will drop the panels they're controlling into standby if they display black for too long. (Only the two panels at the top-left displaying the error were on, the others visibly had their backlights off. Neat.)
Thanks very much for that feedback, I'll keep it in mind.
If I had to use one word to describe systemd's integration and adoption into the Linux ecosystem it would have to be "hostile" - the label has unfortunately been applicable in both directions.
Most of the feathers flew around 2012 when the major Linux distributions adopted systemd as their default init system, irreversibly pulling in all of systemd's system management policies as well, many of which were poorly designed.
Several big names in the Linux community (Linus Torvalds and Greg Kroah-Hartman, to name two) have had heated discussions with Lennart Poettering and other people behind systemd about major bugs, design flaws and policy integration issues, with the systemd response consistently being "the way we're doing it is the right way, no patches will be accepted, go away" even when shown multiple times that something contravenes design best practices or tradition (aka principle of least surprise).
For this reason I dislike systemd's highly bureaucratic "manglement" style, and am very sad that all major distributions have adopted it so widely. systemd uses a very dictatorial approach which makes it very very hard to use any other init system without nontrivial and obscure system reconfiguration.
I understand Lennart also built PulseAudio and got it integrated into pretty much all Linux distributions. PA works well now, but if it's having a bad day and I really need sound working in a pinch, I can just kill it and use ALSA/OSS directly.
systemd categorically isn't like that because it's (ostensibly) an init system. However it comes with so many extra "side features" (which an increasing number of things are depending on) that temporarily shoving it out of the way to became impossible very quickly, and before any real documentation was established. I think it's understandable a large amount of the Linux community have growled and snarled when presented with this set of circumstances.
Nowadays, systemd is pretty much part of the woodwork now, but the communication and social issues continue.
The first reply to a previous comment I made about systemd was extremely enlightening to read: https://news.ycombinator.com/item?id=12877934
I observe that systemd has a plethora of other systems that you mention, including a DHCP server. Yes a DHCP server.
I do not understand it.
Edit: Yes I know Fedora 7 was ancient. Just my memories. I think the fact that PA was broken in it got fixed pretty swiftly, from memory. But I was plagued with glitchy audio releases after this - could be my incredibly lame hardware at the time (but worked fine in ALSA).
Historically, its the difference between Monolithic vs Micro design. The linux kernel is not just a layer between the application and the hardware, it also support a bunch of extra things which the project want to have built in rather than as optional libraries. There is no TCP/IP or AES library, but there is non-supported alternatives to those that are libraries.
If you wonder why systemd has a dhcp implementation, ask why the tcpip stack don't.
They'd probably go along the lines of saying that there are already millions of lines of code in there and adding these types of features would add to the codebase size and permanent maintenance requirements.
But it would be really cool if all of these kinds of high-level features were available, yeah...
Linux is turning into something of a hybrid kernel, or perhaps will emerge a micro-kernel given time.
And it inevitably always is, since if you're generalizing all system operations onto a single bus, that bus would either need to support some generic form of contextualization hinting or have some kind of theorem-solver-inspired system to determine what requests have no dependencies. I don't suspect Minix incorporates either approach...
The problem I see is the need to put "these are audio frames" in a different queue than "here are filesystem request packets". (Ideally the filesystem queue would itself allow further sharding, since most filesystems are multithreaded now.)
Writing such a generalized queue sounds like a rather fun exercise to me.
That said, if any such implementations are out there or there are any counter-arguments to make to this, I'd love to hear them. I mean, AFAIK Mach is a microkernel, so it's clearly solved some of this.
As i have come to understand there is one successful such kernel out there, QNX. And that while both the OSX/iOS and Windows NT kernel started out as a micro design, both Apple and Microsoft have been moving things in and out of the kernel proper as they try to balance performance and stability (Most famously with Windows, the graphics sub-system).
The OS was cautiously courting a "shared source" model where you could agree to a fairly permissive (but not categorically pure-open-source) license and get access to quite a few components' source code.
It was anybody's guess what might develop from that, and an intriguing and hopeful time.
And then BlackBerry came along and bought QNX and killed the shared source initiative. Really mad at BB for deciding to do that.
Nowadays QNX is no longer self-hosting - no more of that cool/characteristic Neutrino GUI anymore :(
If you need a queue with particular properties you write one, as its own userspace process (or system of cooperating processes). The kernel dispatcher isn't assumed to be a fully general messaging system.
I am wondering about one thing though.
> there's simply not a lot of computation involved
Wow, 26 instructions.
Here's my worst-case scenario: you have 8 concurrent threads (a current reality on POWER8), and let's say all of them are engaged in fetching large amounts of data from different servers - let's say disk and TCP I/O are both servers.
I'm genuinely curious how well a 26-instruction-but-singlethreaded message passing system would hold up. (I honestly don't know.)
Worst case scenario, the cache and branch predictor would perpetually resemble tic-tac-toe after an earthquake.
---
I think it would be genuinely interesting to throw some real-world workloads at Minix, Hurd, etc, and see how they hold up.
Now I'm wondering about ways to preprocess gcc's asm output to add runtime high-resolution function timing information that (eg) just writes elapsed clock ticks to a preallocated memory location (within the kernel)... and then a userspace process to periodically read+flush that area...
Speculating: if you were passing all the data in messages, terribly. But that's not how you'd handle it. You'd use messages as a control channel instead, similar to DMA or SIMD instructions. E.g. if you're downloading a file to disk, the browser asks to write a file, the filesystem server does its thing to arrange to have a file and gets a DMA channel from the disk driver server. The TCP layer likewise does its thing and gets a DMA channel from the network card driver, and either the browser or a dedicated bulk-transfer server connects them up. The bulk data should never even hit the processor, yet alone the message-passing routines.
> I think it would be genuinely interesting to throw some real-world workloads at Minix, Hurd, etc, and see how they hold up.
Do. Also look at QNX which is the big commercial successful microkernel.
> Now I'm wondering about ways to preprocess gcc's asm output to add runtime high-resolution function timing information that (eg) just writes elapsed clock ticks to a preallocated memory location (within the kernel)... and then a userspace process to periodically read+flush that area...
I'd look at something along the lines of perf_events ( which I encountered via http://techblog.netflix.com/2015/07/java-in-flames.html ).
One of the targets I've been trying to figure out how to hit is how to make message-passing still work if you're using it in the dumbest way possible, eg using the message transport itself to push eg video frames. I'm slowly reaching the conclusion that while it'll work, it'll just be terrible, like you say.
I mention this because, at the end of the day, most web developers would just blink at you all like "DM-what?" if you suggested this idea to them. These types of techniques are simply not in widespread use sadly.
In my own case, I'm not actually sure myself how you use DMA as a streaming transport. I know that it's a way to write into memory locations, but I don't know how you actually take advantage of it at higher levels - do you use a certain bit as a read-and-flush clock bit? Do you split the DMA banks into chunks and round-robin write into each chunk so that the other side can operate as a "chaser"? I'm not experienced with how this kind of thing is done.
Well, workload-testing microkernel OSes is now on my todo list, buried along with "count to infinity twice" :) (I really will try and get to it one day though, it is genuinely interesting)
Regarding QNX, I actually mentioned that to the other person who replied in this thread (https://news.ycombinator.com/item?id=13346822), and I said a few other words about it a couple months ago - https://news.ycombinator.com/item?id=12777520
I really wish the QNX story had gone ever so slightly differently :'(
Regarding perf_events and the linked blog post, thanks for both - this is really interesting!
I don't know enough to answer this stuff - last message was already second-hand info (or worse). All I can say is, best of luck.
The problem with systemd's NTP and DHCP and whatnot is that they use their own systemd-specific APIs. Not using the APIs means that you don't talk to those components. And the thing is, if you're on a systemd-based system (which you can generally assume* to be the case now), you can 100% depend on those components absolutely definitely existing, regardless whatever else is(n't) installed.
(* Unless your users are using Slackware (hi there :D), Devuan or something like that.)
So of course things are beginning to depend on those services' APIs.
Which are exposed via D-Bus. ("Desktop"-Bus. On servers. Facepalm, Inc.)
Now, I do understand that when you use systemd-nspawn or LXC or Docker or whatever else you can generally assume that these components will interoperate and that's why they were implemented. That's the theory.
In practice, things... don't work out so well. This was on here a couple days ago: https://thehftguy.com/2016/11/01/docker-in-production-an-his...
Damn it, they have a web server in there for the sole reason of displaying a QR code for the initial log signing key. A signing system that apparently Poettering's brother came up with as a doctorate thesis, with systemd-journald being the only implementation (that i know of).
BTW, these days you find dbus inside the initramfs. Because systemd need it to be present during bootstrap. After systemd-pid1 is up, it will kill the initramfs version and fire up the one from the HDD instead.
There are times i wonder if the Fedora maintainers grit their teeth and play along with Poettering and crew because they have the same paymasters.
:(
> Damn it, they have a web server in there for the sole reason of displaying a QR code for the initial log signing key. A signing system that apparently Poettering's brother came up with as a doctorate thesis, with systemd-journald being the only implementation (that i know of).
Okay, that I didn't know.
Actually let me read that backwards...
> log signing key
What on earth? Is the log encrypted?
> QR code
How are QR codes relevant to encryption?
> web server
Why do I need a WEB SERVER to display a QR code?! Uh... I can get displaying a QR code on the screen, sure. But... I get the impression you mean the QR code is served over a web server?
Oh. For headless boxes. But... why display a QR code, again? Why not just serve the log signing key itself? QR codes aren't encryption (just a good week's worth of reading on error-correction).
> BTW, these days you find dbus inside the initramfs. Because systemd need it to be present during bootstrap. After systemd-pid1 is up, it will kill the initramfs version and fire up the one from the HDD instead.
Mmm. Because all of its APIs are delivered as D-Bus (desktop-bus) services. I totally get that, but... aghhh. Why not even ZeroMQ :(
> There are times i wonder if the Fedora maintainers grit their teeth and play along with Poettering and crew because they have the same paymasters.
Unless things have changed, Linus Torvalds uses Fedora. He's had a lot to say about things.
I would be very very surprised if there wasn't a noteworthy bunch of mental-pitchfork-wielders.
Meaning that the first key is used to sign a new key that signs the journal entry and the next key that sign yet another key and entry etc etc etc. And that by having the initial key handy one can at any time walk through the journal to verify that it has not been tampered with.
The whole QR thing it there to allow a would be admin to quickly transfer the initial key to their smartphone or similar by scanning the code.
As for Torvalds being a Fedora user, my impression is that his usage needs are fairly modest these days. He spends most days reading emails via gmail, and approve commits to the kernel code housed on the kernel.org servers.
It's almost sad systemd has some good points. Heh.
I vaguely recall a video that noted where Torvalds was at nowadays; he seems to mostly be in administration/management now, as opposed to low-level hacking. Must be an interesting position to be in.
In both instances what the person produces only becomes "stable" after he pass the maintainership to someone else.
Actually, I think this is the situation that lead to the growth in webapps and probably helped the decline (or failure to rise) of windows phone, no one had a clue where MS was going.
TIL about this aspect of the bigger picture. I'm a bit behind on where Windows is at in the grand scheme of things nowadays.
Windows Forms is officially dead as communicated at Build a few years ago. It is now playing chess with Carbon.
MFC is officially on life support. Way forward for C++ developers is UWP.
Everything from Win32 that isn't required for UWP support is deprecated and Project Centipede is the official way to bring Win32 applications into the new shinning UWP world.
Wayland doesn't change this. Once Wayland is adopted the X server will become a Wayland client and X client's will connect to the X server as usual. You don't have to write a native Wayland application if you don't want to.
But another commentator noted how Wayland doesn't provide X11-standard functionality (https://news.ycombinator.com/item?id=13346877).
I fear that X11 will eventually be installed (and possibly even available) in less and less environments, in the long term.
So 10 years from now it'll be interesting to see where things are at. Hopefully things haven't devolved too far.
That's worse than this: you will quite possibly need features that are not implemented through Wayland, but through each different Desktop Environment, through different APIs, since Wayland ditched many X11(+standardised extensions) features.
Whatever we're left with will create quite an interesting ecosystem; here's hoping it's not too much of a political disaster.
For me, that means hoping Qt keeps up at the end of the day; it's been far superior to GTK in every way IMHO for some time.
But an issue is power usage. (eg) ubuntu runs on a smartphone, but with much shorter battery life than android. (Tho TBF, I don't know the power efficiency of Asteroid OS).
One side-benefit of non-rooting linux (eg termux, terminalIDE) is retaining battery life.
However, Asteroid OS is open source, which counts for a lot!
$ watch --interval 0.1 --no-title date
;)
https://source.android.com/devices/graphics/architecture.htm...
Four cores, which makes a difference.
> what's the battery life?
It might not be as bad as could be feared, specifically regarding the CPU at idle anyway. A lot of modern CPUs support turning cores individually on/off (or at least into very low power sleep states) as needed and if the OS scheduler is bright enough then taking advantage of this can be a lot more power efficient than trying to fiddle around with variable clock rates. There might be a performance hit for single one-thread tasks of course as per-core performance might be low, but at times when you care (while in active use, interacting with an app) there will be at least three distinct tasks going on: core function management, display management, and at least one user task. While the watch is idle there will just be one active task most of the time so only one core needs to be powered up (of none most of the time, with device management tasks and user apps that respond to events/notifications only waking up on interrupt).
Having said that, having to charge it at least once most days is my only major complaint with the MS Band that I wear most of the time. It would be interesting to see how well this manages in that regard.
Remembering the "runs on a toaster" shirts I am now curious if NetBSD (or any BSD) will run on it. The thought that I never even considered messing with the watch makes me a bit sad (I've turned into too much of a consumer, not enough tinkerer left :P)
edit: there are even more huge div's that have the same background, so there are multiple layers of gradients with hue blend mode.
So there's clearly a market for some sort of wrist-device that makes using your phone easier.
The thing that makes it feel like a stupid fad is when you have to charge it every day and therefore forget to put it on. It hasn't become habitual quite yet.
Which is why I love my smartwatch for having an e-ink display and not an amoled display. So even after more than a year of operation I still only charge it once a week.
Sure, the author doesn't confirm this nor expand on it, but I'd say his comment is sufficient.
I think what the original question was getting at was more like "what is the battery life of the watch when running AsteroidOS?" That seems like a pretty fair question which was not addressed.