Tag Archives: diaspora

Diaspora API Dev Progress Report 7

I’m still making good albeit slow progress on the Posts Endpoint.  While the Posts Endpoint doesn’t have a lot of methods the complexity of the send and the return data is far greater than the other endpoints I’ve done so far.  Posts have more than just text.  They can have polls, geolocation data, mentions, aspects management, and photos.  Yet posts are the core of the whole system.  They are the digital elements we interact with the most.  So progress on this endpoint is crucial.  I’m pleased to say that at this point I’ve made enough progress with the unit tests and the test harness that from an external application I have been able to do have an external program do the full lifecycle of posting: Create a post, read a post, comment on a post, and like a post.  I’m pretty stoked about that!  While I have the full complement of all post data available on the GET method tested, I still have to create the test harness test methods around pushing posts with ancillary data (location, polls, mentions, photos), and need to write the unit tests for photos as well.  The Photos endpoint for uploading photos during a real post creation process is a whole other matter though, but we’ll get to it soon enough!

Diaspora API Dev Progress Report 6

Today I didn’t get as much progress as I had hoped on the API but still important work was done.   Yesterday I discovered that something was probably off in the way that the repository rebasing was done when I did it about a week ago.  Today I confirmed it.  Working with Benjamin Neff (SuperTux) I was able to figure out a path forward for correcting the problem.  While the git commands are pretty straight forward, me being comfortable that I’ve done it correctly is another matter so I did the process three times in a row. Each time I looked at the corresponding git log afterward and did a three way diff of the API branch head before the new rebase, the API branch head after the rebase, and the main Diaspora develop branch.  I may end up doing it a fourth time (or reconfirm this last time anyway) before doing a final push after talking with Frank about it.

After getting past that I spent the other half of the time making actual progress on development.  Thanks to Dennis Schubert’s (DensChub) efforts we were able to make some progress on some API questions I had.  After that I made changes to the respective implementations to make it consistent.  Then I went back to the Posts Endpoint testing.  I completed the full GET path happy path testing for simple and fully filled in posts (text, photos, polls, mentions, and location).  I now have to add in failure path testing on the GET, and the corresponding test harness methods to complete that and move on to posting and deleting Posts.

Diaspora API Dev Progress Report 5

Another day another progress report on the state of the Diaspora API development.  I had hoped by now that I’d be picking up a little more speed but I always underestimate how minute working on high coverage unit tests are.  If I was doing a whack it together MVP startup-mode app I would always put automated tests around it for my own sanity but since things are going to change, or maybe even get thrown away entirely, in relatively short order there’s no need to go gnat’s ass down to the details.  That’s not the case with the API.  Yes the API is technically in a draft mode but it always looked like a really good draft.  The more I code against it and use it the more I believe that’s true.  Yes, my development speed is increasing as I become more familiar with all the technologies and get past some more technical hurdles but it might take the better part of a man month to finish this up (which is maybe a man-week more than I originally eyeballed).

The progress though has been steady.  I had a hiccup late last night with my test harness.  The Fuel HTTP library I’m using in Kotlin pushed a new release that requires the 1.30 version of Kotlin, which apparently is harder to come by than I thought.  Manually setting the version fixed it all but not until after I spent half an hour fumbling around with it before giving up.  Today was the deep dive into the Comments endpoint.  As was the case with the previous Likes endpoint Frank’s previous work left a very solid base.  Fleshing out the tests for some different errant behaviors, testing error messages as well as codes, and finding problems with the interactions once the test harness interacts with it over HTTP were the usual gremlins to squash.  Still, with only two more mostly fleshed out end points to work with coming from Frank’s code base, I have a feeling that the development pace will be slowing down.  Maybe I’ll have gained sufficient efficiencies in my speed of coding on all of these to make up some of that difference.

Along with the above gremlins now that it’s being interacted with I am seeing some potential small grained details that need to be discussed about the API.  That’s all tracked in the issue tracker on the API documentation page though.   Again, this is solid work by the team putting the API together and Frank’s initial code base that I’m starting from.

In summary progress for the day:

  • Comments API Endpoint is finished and ready for pull request
  • Test harness example of interacting with the Comments API is completed
  • Some Issues were submitted to discuss minor changes to the status reporting back from the REST services on things like what happens when a Comment ID doesn’t match the Post ID that the REST endpoint was called with.
  • Some small documentation touch ups to address navigation

Diaspora API Dev Progress Report 4

Being in the early phases of getting the implementation started it was inevitable I would encounter a little extra inertia to overcome.  Part of that is my own doing, but all of it is important to have confidence in what I’m developing.  The easiest part was filling out the API Implementation Stoplight chart so everyone, including me, can track what is going on with the development.  Then it was on to a fork in the road of sorts: do I want to start an external test harness now or wait until more is implemented.  I decided for former.  Continue reading Diaspora API Dev Progress Report 4

Diaspora API Dev Progress Report 2

Yep, two Diaspora API dev reports on one day.  After taking a break for dinner and just watching some TV I got back to figuring out how to properly interface with the authentication and API from an external client.  I was re-reading the OpenID spec, watching some videos, reading some presentations, et cetera.  If I’m going to be working on the API this is something I definitely need to be deep diving into a lot more.  My initial order of business however was just getting it working.

Continue reading Diaspora API Dev Progress Report 2

Diaspora API Dev Progress Report 1

I’m only a few hours into getting fully going on the Diaspora API development project.  I had been pre-flying that whole experience earlier last week by studying the existing code base, familiarizing myself with the discussion threads et cetera.  Over the last couple of days I’ve been trying to focus more on moving the ball forward as well.  Before really doing that though there is still a little ground work to do.

Continue reading Diaspora API Dev Progress Report 1

Milestone: Higher Responses on Diaspora instead of Facebook

The Cambridge Analytical debacle from earlier this year and the subsquent #deletefacebook storm brought me into the alternative social media platform Diaspora.  At the time, as I wrote here, I had hoped to leave the walled gardens forever.  Initially I did just that but practicalities changed that forced isolation quite a bit.  In some cases, like DDG, I’m still 99% using the open alternative.  In others, like YouTube, I’m mostly using the old system because I just can’t get what I need out of the alternative system yet (although I still try more and more every week).  However for much of it, especially on the social media side, it’s more of a mix.  I’m on Diaspora as much as I’m on Facebook.  I’m on Mastodon more than I’m on Twitter, but that was always a small platform for me versus my usage of Facebook.  The best way to think of this blend for me is that I try to make Diaspora and Mastodon my primary platform and Facebook my secondary one, with Twitter being a distant third.

What that means practically is that I’m pretty much logged into Diaspora, Mastodon, and Facebook continuously throughout the day.  The first places I’m posting to are Diaspora and Mastodon.  The first places I’m checking posts is Diaspora and Mastodon.  Most of the new activity from me is on Diaspora and Mastodon with manual cross posting, thanks again Facebook for screwing up your API permanently to prevent external posting,  when I want to share the same thing on Facebook as well.  Because I have  just over 1000 friends on Facebook and almost all of them are people I’ve interacted with in real life (most mere acquaintances or met once at a social function or something) there is just a larger volume of relevant and more personally resonating posts from others I interact with.  So if one were to look at my activity feeds and notifications on a given morning when I start the day you’d see tons of activity on Facebook and a little activity on Diaspora and Mastodon.  Today was different.

Today the equation was reversed.  Today I had more interactions to wade through on Diaspora.  I had more relevant interactions to wade through at that.  I had more notifications to wade through.  I even got comparable engagement on my cross-posted material from late last night on all three systems.  That’s the first time that’s happened since I went back to having a foot in both worlds!

Is it that I crossed a tipping point in people I’m connected to on these alternative social media systems?  Is it that the influx of Google+ users have caused a spike in engagement across the systems in question?  I don’t know the answer to why, and this will probably stay a noteworthy exception rather than a rule moving forward.  However it can’t be a bad sign, except in one way.  In the span of how long I’ve been writing this article, which is a free association lasting 15 minutes, I’ve already received almost ten notifications on Diaspora.  I know that the notification controls are not as fine grained on Diaspora as they are on Facebook.  It’d be a great problem to have to need to tackle that sort of feature request in the near future :).

Let the Diaspora API Deep Dive Begin!

I can’t express how happy I am that I have the privilege of having a combination of time, ability, desire, and energy to contribute substantially to the Diaspora project right now.  Ever since I started using it in the spring it’s something I’ve wanted to be able to help with.  I certainly got my feet wet back then on some tweaks to the Twitter and Facebook interaction code, the latter of which is permamently broken thanks to Facebook’s new API spec.  With the amount of getting up to speed on Ruby, Rails, and the Diaspora code base I’m looking forward to helping tackle a much larger and persistently requested piece of code: a Diaspora API.  Continue reading Let the Diaspora API Deep Dive Begin!

Ramping Up Open Source Development Time

I’ve mostly been “microblogging” updates on Diaspora recently.  That’s a fancy way of saying I haven’t been doing any in-depth writing but instead just making quick ad hoc posts on social media.  As I am now ramping up my development on open source projects, primarily Diaspora by the looks of it, I’m hoping to start posting here more frequently capturing new lessons learned, observations from  my exploration of these newer languages and code bases, and just getting more writing in.

Over the summer I actually spent a good deal of time exploring different cross platform development frameworks of the .NET and C++ variety.  That was intended to be to work on a very niche open source project idea that I had conjured up around my classic computing hobby.  By the time I made enough progress on that to the point where I could potentially be productive, although I still want to explore wxWidgets a bit more, the bug to help on alternative social media platforms bit again.

So while I’ve been pining away for the opportunity to really start getting into Kotlin, JavaFX, and other technologies, my current path is taking my down the jewel crusted path of Ruby, Ruby on Rails, and JavaScript.  These are the technologies that Diaspora is built upon.  In fact, as I’ve written before elsewhere, I’m really enjoying the language a lot.  RubyMine could use a bit of polish compared to how well it works for Java and Kotlin but it’s at least on par with the CLion C++ and Rider .NET IDEs.  Yes, I’ve fully converted over to being a JetBrains user nowadays, even paying for a full license to the entire suite.  To people who know me the fact I converted over is probably going to be a bit of a shock.  To the casual reader coming here from my non-software interests they have no idea what we are talking about, but IDEs are very personal decisions and we get wedded to them pretty hard.

Sorry for the absence.  I hope to be a regular poster again for the half dozen of you that actually read this!