XaiJu
Geektoolkit
Geektoolkit

patreon


Developer Update #1 November

Hey Patreons!  I wanted to do a dev update to say where we are for November.  It's been an interesting month with some good wins recently.

Attached to this post you'll see an image of the updated thumbnail gallery.  While it's not the prettiest thing to look at, I'd like to go over some challenges we've faced and solved which will help the entire project go forward. (Don't worry we'll make it pretty also!)

Performance of thumbnail generation

The original design we generated thubnails for every photo and stored it.  This meant that when you started the app the first time, it would take several hours (and gigs of storage) for all of your images to be resized and stored.  If we were working on a beefier system, this would be faster and less of an issue, but on a pi we realized this was't going to work well long term.  For one it's an awful user experience, and it also was locking up the system constantly with the web page not being reachable and such.  So the new design we dynamically generate 25 thumbnails per page (we'll look at making that a setting for how many and such).  This means that startup perf stays clean, and if you change playlists you get crips performance vs. the issues we hit before.  The cache clears on each refresh so that we're not taking up gigs of storage as well.  There's some more work to be done here, but the way this performs was MUCH improved over the other system.  The other bug this fixes is we had a wierd issue where thumbnails were not matching images...this will no longer be the case.

Removal of 3rd party html controls

We were relying on list.js for the list generation, which was really limiting what we could do from a number of standpoints.  This has been totally rewritten in house which gives us flexability to design the user experience the way we want.  My final goal is to have the thumbnails load up 'asynchronously' and fade in...so the gallery presents beautifully and with style, and also performantly (we're not there yet, there's some bugs that we've identified that need fixing).  This is also why you see the grid layout, which on a phone becomes a list dynamically.  The play/remove buttons will get reworked once the performance is dialed in, I'm working on hiring some designers there. For now they 'work' functionally which is important. 

Massive memory improvements

I don't like to use words like "Massive" much, it feels very dramatic.  But in this case..the improvements coming are..well..dramatic :)  

We have two areas we focused on, one is some internal resize code which was working off of the full-size image repeatedly...we moved to resize once and work off the smaller image.  This helps with CPU usage as well as memory usage.  The other big win was the metadata engine was being instantiated over and over again.  To give you an idea, if you choose performance on the InfoBar. you'll likely see memory usage of 200-350 megabytes.  With the new changes we're seeing at times below 100!  Having fixes drop memory this much is huge, it means we can obtain smoother transitions, and add more features.  

Performance improvements are a big deal on a raspberry pi-based software such as this.  The reality is we were starting to hit the upper limits of what the pi is capable of.  And we're about to push a number of features that will push it even further.  We had to fix these issues to get things like overlays to work smoothly, or to get more complicated transitions in.

Exif Rework

I spent time designing the Exif data engine....I was very naieve when I did my initial design.  I stored off title, author, comments and tags.  The reality is there is a TON of data in Exif, and each of you wants access to it in a slightly different way.  We realized in the engine we actually get all of that data and then toss out all but what we cared about.  We'll be storing it all in the database though and expose it to you via the UI so you can choose what you care about.  Want to have "Date taken" in the upper left and "location" in the lower right? We're going to make that happen.  First part of that is this months work which won't be exposed directly, but will store off ALL of the data. Then the overlay engine work will let you customize it.

Bug crushing

There are a number of fixes coming that got pulled directly from the bug database that you have opened (the bug database is exposed to Patreons, so this is direct action on your feedback to make it better for everyone!).  Features such as an API for list on/list off will get implemented, as well as some others.  We're taking them on as appropriate for where we are in the dev cycle...for instance the exif ones will all get resolved when EXIF gets redone.  Also direct feedback has resulted in us creating a 'getting started' post for new patreons to help guide them directly to builds and workarounds for our wifi woes (we have a plan there!). 

What's next

I'm working to finish up the thumbnail/playlist editor work.  Lou did the perf improvements on the resize code, and that work will help the playlist work.  We're pushing to release thumbnails as a final release for this month, and we have a spec for overlays ready to go. December may be the overlay alpha release, though the Clock overlay is already in this months beta code.  Overlays are where the exif data work will really show up as well. My goal for January is three-fold:

1) Close on overlays and get that released as final.
2) Overhaul the 'first run' experience and management - this is where we'll get things like being able to set the time, hostname, password from the web UI
3) Automation push - We've had long standing asks for the ability to turn the frame on/off at certain times, plus there are a number of demos I need to ship for things like NFC control, home assistant integration, and we have some new work coming in for Homeseer that has been demonstrated. I want to take time to focus on that once overlays are in.

What's behind

I'm behind on releasing the plugin documentation.  I'm currently moving houses and just closed today (I have 6 locations for Dynaframes in the new house where the walls have wiring...that's how invested I am in this!).  It's an exciting time but it's taking me away for a bit and delaying that work.  I plan on still getting it released this month.

Frame Sync is also behind, with the move this month that may have to happen in December.  It's a big one that I need to get back in, but I have to take time on it to get it back to where it was.

Thankyou
We are so lucky to have your support.  The next three months are very exciting for us, as many scenarios that we have wanted to unlock for months are all coming together.  Plugins + Overlays are going to open up the doors to a movie poster system like noone has seen before.  Plugins themselves are going to open frames up to web content and make you the envy of anyone using a 'static' frame.  Automation  improvements will make the frames come on with the lights or motion, and sync with kodi and such.  The web UI will further make it so you have to SSH into your frame less and less.  We appreciate the patience, the passion, the community.  We are lucky to have such a forward looking, creative, and passionate community and will continue to work hard to improve the system.


Developer Update  #1 November

Comments

Ok please message him I’m the discord he will get you setup

Joe Farro

Yes

Arun Ramanathan

There’s an alpha that QWK manages in the discord. Is that what you mean?

Joe Farro

is there an alpha or beta release that we can try on ?

Arun Ramanathan

Thanks Don, I've started some conversations to figure out how we can pull that off and we have some ideas. We'll work on a design and get something implemented when we can.

Joe Farro

Thanks, I just added it to github as you requested.


More Creators