New Unofficial OBEX
DavidZemon
Posts: 2,973
I've taken on a little toy side project. It was brought up in another thread that the GitHub repository which replaces the OBEX isn't as friendly for downloading individual projects/objects as the original OBEX. It's not as easy to contribute, either, but I can't do anything about that.
I actually support and agree with Parallax's decision to retire the old OBEX and move to a monolithic GitHub repository for this, but I also understand that this new solution has some major drawbacks. And at least when it comes to downloading objects, I can do something to help.
So, please enjoy your first look at my unofficial OBEX: https://obex.zemon.name/
New names are welcome... I don't intend for this to be confused with anything officially hosted by Parallax.... but naming things isn't my strong suit
Code is hosted here: https://github.com/DavidZemon/obex-parent
And as the README in that repository states, feature requests and bug reports are welcome; please submit them at https://github.com/DavidZemon/obex-parent/issues.
I've already opened four issues for enhancements which should drastically improve the experience and will be working on them soon.
It is my hopes that Parallax or someone else will take over maintenance and, at very least, hosting of this software in the future.
Anyone wishing to contribute is welcome to. Open a new ticket with the bug/feature you'd like to work on, or comment on an existing one, and we'll make it happen.
I actually support and agree with Parallax's decision to retire the old OBEX and move to a monolithic GitHub repository for this, but I also understand that this new solution has some major drawbacks. And at least when it comes to downloading objects, I can do something to help.
So, please enjoy your first look at my unofficial OBEX: https://obex.zemon.name/
New names are welcome... I don't intend for this to be confused with anything officially hosted by Parallax.... but naming things isn't my strong suit
Code is hosted here: https://github.com/DavidZemon/obex-parent
And as the README in that repository states, feature requests and bug reports are welcome; please submit them at https://github.com/DavidZemon/obex-parent/issues.
I've already opened four issues for enhancements which should drastically improve the experience and will be working on them soon.
It is my hopes that Parallax or someone else will take over maintenance and, at very least, hosting of this software in the future.
Anyone wishing to contribute is welcome to. Open a new ticket with the bug/feature you'd like to work on, or comment on an existing one, and we'll make it happen.
Comments
@DavidZemon, have you thought about eventually adding an interface that would allow people to modify their own projects through your interface, which would require Parallax's support?
I have not thought about it, and there's not a whole lot I could or think I should do about it, unfortunately. I know submitting code to the GitHub repo is no where near as easy for those unfamiliar with Git as it was to upload a zip to the old OBEX, but there's very little that a third-party application can do to make that easier. I mean... I know what could be done, but it's a bad idea I wouldn't support it, nor do I think Parallax would either. The best I think any of us can hope for, is that Parallax start accepting submissions via email. At that point, I could stick a blurb at the top of the site that says "if you'd like to submit new code, please attach your code to an email directed at <EMAIL ADDRESS HERE>."
We accept object submissions by e-mail to developer@parallax.com. JonnyMac and a few others have used this method quite a bit, instead of wrestling with GitHub. We'll post 'em and David can make them accessible via his interface.
Ken Gracey
Very convenient. And I'm adding a blurb to the top of the page now which says as much.
So, since I plan to re-write this in Python anyway, I'm going to tackle that next. And, to prevent my server from crashing again, I'm taking the obex offline effective immediately. Hopefully it will come back up soon, with a shiny new Python backend. I will post back here when that does happen, at which point you'll be able to preview file contents as well.
I planned on showing your work at today's P2 Live Forum but I'm getting an access error when loading https://obex.zemon.name/ in Chrome.
Ken Gracey
Yep, sorry guys... I woke up this morning and discovered my server was hanging... completely frozen. Some memory leak ended up chewing through all the RAM. Since recovering from such an error is painful, and the error takes down a lot more than just this little app, I decided to disable it until I'm able to resolve the issue.
Pretty sucky timing... sorry
I could restart it real quick, in case it was still helpful... but there's a high probability of it crashing while you're using it, so it would be of limited usefulness.
Best answer.
But, I am happy to say that the obex is back and I'm even happier to say that it is NOT eating all of my server's RAM anymore.
First rendition of preview mode is live - you can click the little preview button next to any file to open a new browser tab with the file's contents. It assumes all files are text files, so don't bother trying to preview PDFs or images just yet.
On macOS, a .zip from the https://obex.zemon.name/ archive (in this case jm_i2c_scanner.zip) creates the following error:
The same file downloaded via git clone of the entire github-based repository (propeller), unzips without issue:
The error shows up at a higher level UI as well:
dgately
Turns out, this repo utilizes Git LFS, which I hadn't thought of. I've installed git-lfs on the server and initialized the objects - it's working now.
Ken Gracey
Great to hear
Ken Gracey
Thanks
1. Opened in a new tab, displayed by my own app, as it is at the time of this post
2. Opened in a modal window in the current tab (should load MUCH faster, but make it more difficult to do side-by-side comparisons of files)
3. Link to the corresponding file on GitHub.com (very little work on my part to make this happen, and we automatically get a nice text editor, image/pdf/etc viewing.. only downside is that it could be a bit "jarring" to switch websites and it will be slower than the modal window option)
perhaps an option to choose between that and your own thing?
I'm not aware of any such feature... but alternatively, I could use the "open_in_new" icon and "open_in_full" icon to do both... in what I hope would be a more clear fashion.
Let us say I am a n00b and what I want is say, oh, a 40x18 VGA text driver such as some person *cough* may have once written for the P1. At the top level I see docs, libraries, and resources, and a few other things that make no sense.
Docs is a rabbithole that has nothing to do with what I want.
Resources is a rabbithole that has nothing to do with what I want.
So I try libraries. Below that is community and official. Each has a p1 and p2 subfolder. In which one is my 40x18 driver that some guy wrote way back when?
Turns out "official" just has a readme placeholder.
"Community" has all the categories I know and remember from the old OBEX. Hey, is that "display?"
Okay, I have found my driver. But there are a few extra steps there that shouldn't be necessary and aren't obvious if you don't know where you are going.
This is a lot better than the raw github link, but please still fix it the rest of the way.
I hear you... loud and clear. I've already been thinking about this, and what can be done to resolve it. One option is that I just scrape all of the categories and objects, and then build out a completely custom UI that allows browsing/downloading (don't get your hopes up for search... unless you intend to offer up a pull request). This would be cool because finding the object(s) you're looking for would be easy, but it would be a step in a very different direction (because it's no longer just a "view in the git repo"). If I go that route, I could even forgo the separate folders for official/community, and instead display little "stickers" on each object indicating whether it's a "official" or not.
Of course, the more complicated this application gets (and let me be very clear, this kind of custom UI would be an entirely new level of complexity), the less likely it is that Parallax will be interesting/willing/able to maintain it in the future. Perhaps a simpler solution is to consider the "libraries" folder to be the root. That would make it much faster to find what you're looking for. @localroger, I'm sure you'd find that to be an improvement. What's everyone else think?
I'm not so concerned with search. It would have seemed awkward when the Obex first came out but now you can just let the browser load all the objects in a category; OK so there are a thousand of them, big deal. Then use the browser search in page to look for VGA or HX711 or whatever you might be interested in.
It was a good weekend. I added the ability to preview the markdown files as rendered markdown, instead of the raw markdown text. On top of that, and quite crucially I think, I added the ability to browse symlinks and preview/download individual files. You can not download the entire folder when that folder is a symlink (for instance, you can not download "libraries/community/p1/Data Storage/symlink/Heap"... but I'll get that fixed soon . The links/buttons to preview, open a file in GitHub, and download all do work, even for files under symlinks.
I think I'm going to add a completely new view to the site - one that doesn't use expandable trees, but rather multiple "page loads" like GitHub. This should be easier/faster to navigate on a phone. I'll then provide two "tabs" at the top of the page so that anyone on a desktop wishing to get the browsable tree can still do so. The multi-page view will be the default tab, since it would ruin the performance benefit on mobile platforms otherwise .
dgately
Can you check your browser's console logs? Perhaps there's a hint there. I'm not seeing any error's on the server-side logs.
I attached a zip of the errors that Safari finds. I'll test with FireFox & Chrome, soon!
UPDATE: FireFox & Google Chrome have no issues on the page!
Safari debug shows: