|
Same for Lightroom.
It cause an uproar when they changed the licensing model.
I hang on Lightroom Classic (or whatever it's called now).
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
It's usually not a matter of "can I do something?" (the answer is almost always yes, but you won't like the details), rather "how the hell do I accomplish this?"
I'm currently running into one such issue trying to avoid template creep, and I thought I had it, but no. I missed a detail.
Which I think I just solved while typing this. Edit: maybe. hmmm.
Such is the nature of this language. It's a giant puzzlebox. With C#, as often as not it's a matter of learning APIs.
With C++ it's usually a matter of learning to cajole the compiler to bend your source code the way you want it to.
It's uniquely challenging, not because of pointers or the usual footguns that people tend to complain about with the C family mid level languages, but because of template and all of the dynamics and paradigms that introduces into the language. It's really kind of amazing what you can do with it.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
Has anyone done anything in Electron?
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
I have! Some of Electron is a pain, but it has allowed me to build my Password Manager (C'YaPass) and deploy it to both the *Windows app store[^] and the Snap Store[^] (Linux app store).
You can also get my app at my GitHub GitHub - raddevus/CYaPass-Electron: The official C'YaPass desktop app built on Electron (runs on Windows, Linux, Mac)[^]
Check out the readme at GitHub for how you can clone the repo and run it immediately.
Because of Electron, C'YaPass runs natively on every OS platform (well, the big three macOS, Windows, Linux).
You can get all of the install packages (for any OS) at my official CYaPass site (download landing page): C'YaPass: Forget All Your Passwords | Downloads[^]
(RPM, DEB, DMG (mac), AppImage (linux exe))
You can even try C'YaPass directly in your browser -- nothing to install: https://cyapass.com/js/cya.htm[^]
*My app is FOSS (Free Open Source Software) and links are to each app store.
Questions
That was a lot. Got any specific questions about what was difficult, annoying , etc. about ElectronJS? Happy to help.
|
|
|
|
|
I currently use Kodi (via LibreElec on a Raspberry Pi) for my home theater stuff, but recently, the thumb drive I run it from took a dump and I installed the latest version on a new drive, and some of the stuff I was using is broken (none of the broken stuff is add-on related) and the Kodi guys aren't responsive enough for my liking. For that reason, I'm thinking I want to roll my own app, and I don't want to learn python so I'm thinking Electron might be the answer.
I'm gonna need to run it on Windows (for development), and Linux for actual use, and I need to be able to use a database for the media. I already have a MariaDB database server stood up (Kodi is using it, but their database kinda sucks too, so I'm starting from scratch on that too).
I'm already doing React dev at work, so I'm reasonably familiar with that platform.
I'm only doing this for my own use, so distribution beyond that isn't really a primary consideration, but also isn't out of the question...
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
modified 13hrs ago.
|
|
|
|
|
In case you change your mind on the "roll your own" project, give JellyFin a look. I recently switched to JellyFin after years of using Plex on a NAS. JellyFin is clean and fast with none of the bloat of Plex.
|
|
|
|
|
I'll look into it, but I'm not expecting it to do everything I want:
1) Scan the (desired) various online movie and tv show info sites to identify movies by filename, BUT...
1a) Allow me to *easily* pick from likely candidates when there are multiple possible matches (Kodi does not do this - at all)
1b) Not rescan files that have already been scanned and reset the movie it thinks the file represents
2) Play tv show episodes one after the other automatically
3) Reset the "viewed" status (Kodi doesn't allow this that I've found)
4) Allow me to add personal videos (Kodi allows this but it's VERY cumbersome, and extremely limited in scope and features)
5) I don't care about actors, studios, producers, ratings, or any of that crap, nor subtitles, add-ons, weather, live tv, or streaming services (I have a Roku for streaming).
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
Just got home to check your requests...
1) Yes
1a) Yes - From the web client, right click, select "Identify", type some criteria, select "Search" then choose from the results
1b) Yes - From the web client, right click, select "Edit Meta Data", click "Lock this item to prevent future changes"
2) Yes
3) Yes, they call it "Watched" and it's easily toggled.
4) Yes, personal videos should be placed in a separate "Home" folder. They don't get scanned for metadata
5) It's pretty clean but you'll need to judge for yourself
|
|
|
|
|
You could also do it in the new Photino.NET (see photino website[^]).
This allows you to build cross-platform apps (via HTML & JS) but then the backend is C# code (instead of NodeJS stuff).
I wrote up a complete article on this here at CP: Photino: Open Source, Cross-Platform, Desktop Note-Taking App, via .NET Core[^]
Photino offers smaller footprint than Electron & it runs on C# which makes me happy.
Plan on updating C'YaPass to Photino soo.
I really already did -- took the HTML, JS, CSS and pasted it into a Photino project and it wrapped it up with no problems. Pretty cool.
|
|
|
|
|
That looks pretty interesting...
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
LinkedIn
Peter Kane
Chris Maunder viewed your profile
I'm not linked to him - very strange.
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Hmmm, I have a link to the article I wrote on my LinkedIn page and have seen several of parents look at it, do you?
|
|
|
|
|
I haven’t been on LinkedIn for years but I must still have an account
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Maybe he was curious or wanted to keep in touch. CP was a big part of his life too. It's always gonna be a part of him no matter what his new venture is.
Jeremy Falcon
|
|
|
|
|
True but I don’t know him like some of you on here do
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Lout never can become one to offer services willingly (9)
@petepjksolutionscom - You are up tomorrow!
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I know I volunteered
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
modified 19hrs ago.
|
|
|
|
|
Yep - but it's easy to lose track when it's once every 28 days. So I added reminders to google to tell me who to remind!
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Good idea Paul
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Damn it. If only I had checked your answer beforehand I wouldn't have posted.
|
|
|
|
|
No worries Pete - I didn't answer it properly it was more of a joke
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
|
Well done!
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I spent several days making my vector canvas able to "direct bind to a 'draw target'" if it happened to be a bitmap with a supported pixel format.
I did this by extracting the pointer to the bitmap and then doing the standard (y*stride) + x*(stride/width) on it to get my final pointer.
That sucks. For starters it only works with hard bitmaps. I can do better.
Enter gfx_span which is a little structure with a pointer and a length.
You can then do span(location).data and/or span(location).length off a bitmap to get a pointer and a length for the remainder of that row.
This is important, because it opens up the blt capability (direct read/write) to more than just bitmaps. For example, my UIX library the control surface draw target does a translation and clip before writing to the backing bitmap. Without span() I cannot get a raw pointer to the backing bitmap data. I must use methods off the draw target like point() and fill() which is generally much slower - all to do that translation and clip.
Unfortunately the existing code I've worked on for days will not survive this change. I have a lot of work in front of me, all because this span paradigm didn't occur to me on like, Monday. Curse my brain.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
I find it not unusual to do quite a lot of work on something in order to find out why it's a bad idea. It takes some fortitude then to ditch it and take a new approach, but it's almost always the best plan. Also, it never seems to take so long or be such hard work the second time.
Phil
The opinions expressed in this post are not necessarily those of the author, especially if you find them impolite, inaccurate or inflammatory.
|
|
|
|
|