Snakeoil Forums

Full Version: Kernel Builder Updates
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Alright. A lot of things are happening at the moment, I am consolidating various stuffs into one single (biggish) repository. This will contain the music players (open sourced anyway), the Angular WebApp and the API backend (not uploaded yet).

It took a while, and we're nearly there to make the Snakeoil code completely open sourced. The repository is here and hopefully the API code will be in there in the next week or so. Obviously the activation code will not be included, but it can be easily adapted. So folks can actually download the code, built their own API backend and have full features. This may seem counter-intuitive, but it still lives to the motto of "Designed by us, defined by you. Snakeoil is music your way!".

For now and forever, folks can use this code for their personal or commercial use, as long as they follow the MIT license. Gist is, you need to acknowledge my copyright.

Work will begin on kernel builder once this code move is complete. And I expect this to take a while, so it's very likely I will release interim releases until then.

Now that this is open sourced. Currently the Snakeoil API (Snakeoil PC ⟷ Audiophile) is written in C++ and using RestAPI (using Microsoft's cpprestsdk framework). I am going to attempt to use a different paradigm for the kernel builder (Audiophile ⟷ Snakeoil PC ⟷ Kernel Builder), and that's something called GraphAPI.

Eventually the Snakeoil API will be re-worked to use GraphQL as well but that's the story for another day. The Snakeoil API is kind of slapped on without much thought and design, eventually that will be updated and be more flexible. When the source code is done, folks can full free to update it and submit a pull request. The first thing I would like to do is to make a Distribution class, and subclass Ubuntu, Debian, RHEL, etc. Allowing Snakoil to run on multiple platforms easily. But basically the API is kindda shit and will require a full re-write like the WebApp. Anyway, as said, a story for another day.

Kernel builder will not be open sourced as yet. Firstly because I'm not sure what security implications will follow. Will have to see how it goes... 

If the above sounds confusing, probably because I'm pretty tired right now and my brain is in auto-pilot mode. Anyway, that's all for now, will post more updates later.
Snakeoil Operating System (with the exception of the activation check logic) is finally open sourced now.

The cpprestsdk code needs a re-work,  which I'm gonna do eventually. But hey, if you are interested, feel free to check out the code and submit a pull request.

Updated the build system of the API server to use CMake while I'm at it. Will need to move the tickets of the old repo to the new one, and hope I don't lose track of any issues while I do that. CI/CD is currently broken, but can't get these fixed now as I need to go to work.
Spent the last few days of my free time doing house keeping the new Operating-System repo. Prepping the ground work for kernel builder - i.e. hasn't officially start work on this yet.

For now I am going to clear some tickets first to make sure the CI/CD is working as intended, and then officially start work on kernel builder when I'm confident everything is working as intended with the new repository. 

Kernel builder wise will require another endpoint for the Snakeoil WebApp to talk to. Right now, my intention is to use Rust + GraphQL for this new endpoint. Depending on the outcome, the current Snakeoil RestAPI server may move away from cpprestsdk and adopt Rust+GraphQL as well. But we're getting ahead of myself here.

Baby steps, but it's moving forward.
Continental tyres gotta be the worst tyres ever!!!! Angry Angry Angry Angry

I have lost count on the number of times I have to change my tyres - my best recollection is 8 times over the past 3 years.. And make that 9 times tomorrow morning. I have a slow leak on the rear left.

This is me right now.
 
[Image: slow-leak.jpg]

All things considered, with what's happening in the world right now... What I'm experiencing is a mere inconvenience and nothing more.

BTW, I have built musicpd 0.23.5. However, I just noticed 0.24 has been released. I'm thinking of releasing an interim release with MPD 0.23.5, and MPD 0.24 if that build fine. MusicPD will not have systemd support. I tried. Getting a static library for systemd just seem to break everything so I'm giving up on that.

The new Snakeoil firmware update will also include some minor fixes. Hope to get that out later this week. You can see that milestone here. Sans MPD 24, I'll create an issue on that when I can.

Once the update is out, I'll work on kernel builder proper.. I promise. Blush
What's the benefit of merging all those repos into a single big repo? Managed to half the time of automation (CI/CD). From around 24+ minutes to 12+ minutes.

This is especially useful because I/O on Raspbery Pi is always slower (despite me using a SSD). I'm hoping to emulate the Raspberry Pi in my virtual environment (KVM), but apparently the emulation is too slow to be of any benefit at this stage.
 
[Image: Halved.jpg]

Pretty stoked by the reduce CI/CD time. Technically I'm only doing the "CI" part (Continuous Integration), there is only one "CD" (Continuous Deployment) that's relevant to the Snakeoil project, and that is auto publishing the WebApp to the demo site. That will come in time after the kernel builder.
Some bitter-sweet news, my current 6 month stint is not going to be extended so i'll be out of a job in mid April. I guess in a way that was actually my initial plan - to work 6 months to get the money I need, so I can stop working and focus on Snakeoil for the next 3 months or more. Unfortunately I really like working for that company Cry.

With the borders in Western Australia fully open now, I would expect a flush of new immigrants are coming in, immediately solving the lack of labour problem. I would expect it to be a lot more difficult for me to find new employment, and especially the well paid ones. It is what it is and I just have to accept that.

So my last day would be mid April (I think it's 18, but will have to confirm). Hopefully to get these issues out of the way:
  1. The long promised, but yet to be delivered remote kernel builder
  2. transferring my blog and Sublime Hifi's blog to Drupal
Both are expected to take a long time to complete.

On 1, to conserve my online cloud resources, I'm thinking of redesigning it such that you'll be building the kernel on your local machine, but still be submitting your config to a cloud resource for collaboration. Will see how it goes.
Very baby steps right now, but here's the placeholder of the custom kernel widget. That "Blah blah" will obviously be replaced with actual controls later on. I'm just going to set things up behind the scenes first. 
 
[Image: Custom-Kernel-Baby-Steps.jpg]

The ball is officially rolling now. Smile
Apologies for the lack of updates lately. I've been busy doing other stuffs. Mainly trying to setup a home office. I have a guestroom in my small unit, and it's been stacked full of unused stuffs from ground to ceiling. Spent the past few weeks slowly removing and sorting the items. This corner of the room hasn't been stepped upon in more than a decade!  Rolleyes

Coming into this space is going to be a new table (sit stand type), and I'm going to run a dual monitor setup (2x 4k?). The table is from IKEA (UPPSPEL), while the monitor stand is from OfficeWorks.

There's still a lot of crap to clear and re-organise. But slowly it'll get there.

Will try to do set this up, while doing some work on the kernel builder over the Easter long weekend. There may be some positive news on the employment front also, but will have to wait till Tuesday to see how that eventuates (as the slow cogs grinds).

[Image: new-home-office.jpg]
(14-Apr-2022, 07:28 AM)agent_kith Wrote: [ -> ]Will try to do set this up, while doing some work on the kernel builder over the Easter long weekend. There may be some positive news on the employment front also, but will have to wait till Tuesday to see how that eventuates (as the slow cogs grinds).
Bit of an update. The company decided to extend my contract for a further six months. This happened on the second last day, and everything came at short notice. They actually paid me thinking it was my last week, and then had to call me to ask me to send them the money back Blush. Then I went back to work as normal and found I'm locked out of the office, as well as some of the resources (chat, etc). That was fun.

Anyhoo, I'm not assigned to a different team, and that involves team members in other time zones. Slowly adjusting to this new system, and trying to find a time window that I can work on Snakeoil. That isn't the thing taking up most of my time.

It's this.

[attachment=451]

My new home office! Clearing this space, and slowly sorting and getting rid of things we don't need took up a lot more time than expected. That effort is still a work in progress, but at least now I have cleared enough space to sit in this area and code.

And no. that black panel isn't a TV. it's a metal notice board we purchased from IKEA 10 years ago. Big Grin

Will be back into the Snakeoil project once I've settled in. At least for the next six months I'll still be able to put food on the table. And in Australia, food (and fuel) is heaps more expensive these days Cry .
Winter is coming in Perth, and I kid you not, it's getting harder and harder to get up in the morningsBlush.

5 a.m. was the wake up time for me in summer, but man now at 7 a.m. and my body still refuse to get out of the warm bed Rolleyes.

Havn't been working on the kernel builder per se, there's some work on updating existing 1.2.x branch of Snakeoil to work better, here are some hilights:
Completed In Progress The copy files feature should be a welcome addition. As usual, you guys can check on the progress in git. Current milestone of 1.2.6 is here. Please keep your bug reports and suggestions coming.  Thumbs Up
Pages: 1 2