Singpolyma

Back From Conference

Posted on

Yes, it’s me, finally back and showing my face! Ok, not literally, but whatever ;P This may end up being long, so for those who want the short story here’s and outline :

  • New computer
  • Sick
  • Conference
  • Misc (ie, Chels, lol)

New Computer
The last shall be first — or whatever. While this is a relatively new development in my life, it is an old development timewise. It’s the most important anyway! ๐Ÿ˜‰ My new computer is awesome! 3.4Ghz with a 185GB harddrive and 512 MB memory (eventually to become 1GB)! For those of you to whom this is Greek take my sister’s approach — the case looks way cool! Bubbly black and silver with blue LED light-ups ๐Ÿ˜€ On top of that I got a brand-new 19-inch LCD monitor to go with it! Biiiiig ๐Ÿ˜€ Ok, enough crooning, on to real news ๐Ÿ˜‰

Sick
I am sick still a bit, flu-ish, but not as bad as I was, or as others have been. On saturday night I started shivering uncontrollably out of the blue and could barely control my muscles enough to take the two extra-strength tylonol I needed and climb into bed. My brother was far sicker just a day before that — throwing up and such. My mother still has severe diherreah. In fact, most of the TEAM Chad field is sick. Comes from eating together for a whole week ๐Ÿ˜‰

Conference
Now for the longish bit (power may go off in the middle and me losing my train of thought, but we’ll see ๐Ÿ˜‰ ). Day-by-day perhaps? Let’s see if my memory serves…

Day 1 (Friday) – Travelled all day to N’djamena with all the other kids (sorry, teens, nope, sorry, youths ;P). Had a lot of fun talking and playing road games et al. Had a good talk with Aunt Mary Stone (our driver and the only ‘adult’ in the car) about my past, present, and future relationship with Chels. Arrived at the conference centre (just outside of NDJ, actually) dead tired and dragged my suitcase into the small, isolated room that I shared with my brother (no duh :P) for the week and crash. At 7:00PM the whole field had arrived and we met in the ‘caffeteria’ for a… ‘meal’. I don’t remember what it was, but it wasn’t any good ๐Ÿ˜›

Day 2 – Started with breakfast — corn flakes! And not stale either! They were actually pretty good. Talked with the new radio operator from Romania. He doesn’t speak much English, so I had to practise my French, but it was cool ๐Ÿ™‚ Power cut right here, this is the next day, sorry for the delay in the post, now back to it. After breakfast we joined the worship/devotional time with the adults and then went to the (first ever) teens/youth/callussomething program. It was pretty fun, we did a lot of stuff on identity — especially in relation to God and the world… all though the two leaders that came out from Aussie to do the program had a lot of fun with our numerous (VERY numerous) digressions. A lot of fun in the activities, a lot of good talk time.

Now I’m beginning to wonder why I ever started listing items by the day — I really won’t be able to do this, so I’ll highlight from here on (*hears cheers*). The study was mostly as described on all days of the conference, and was overall really nice. I got just about zip schoolwork done though because I actually enjoyed the program this time so I didn’t sneak off to do my work like last year ;P I got my hands on a good parenting book (for parenting teens) while up there and devoured the whole thing during siestas. Very good book.

There were two ‘Sports & Leisure’ afternoons during the whole conference — which were mostly sports or watching. I played volleyball the first time and it was really a lot of fun. The net was tied between two trees and the serves from the other team kept getting caught in the branches and then falling out of bounds (“Tree-fense!”) The second afternoon everyone was sick and tired (literally! ๐Ÿ˜‰ ) so we mostly lounged around.

Then there was the brilliant Megan evening. We (the teen gang + leaders) were outside in the evening, preparing for our first and only evening ‘session’, when Aunt Anne Hoyt (Janelle’s Mom) came out and asked us to look after little Megan Godbold for the evening so that the little kids’ team could have a break. We agreed — mistake #1. Don’t get me wrong, I like little kids. Ask someone who knows me well and they’ll tell you that I positively adore little kids — sometimes even after they can talk. Megan is like 5, and at that age where you can give her ideas, but then they’re hers. The night was too bright to play the game we were going to play, and we couldn’t have a serious spiritual discussion with Megan around (“No, my daddy says…” *cough*). So we decided to play “Follow Megan”. Part way into our following Tim (one of the leaders) decided it would be funny to pretend a tree was eating him. For the rest of the night Megan led us around, identifying ‘bad trees’ and having Tim speak with them to command that they leave little children alone. You can imagine how the whole thing turned out! ๐Ÿ˜›

Ok, then came fun night. Fun night (which is best described as a skit night where there are some non-skit performances) was the funnest in quite awhile! Recently we’ve had a lot more serious stuff (music performaces and the like). This year we had multiple side-splitting performances, including a repeat from 7 years ago when I first came to the field! MAF’s was, as always, the funniest. They did a MAF-on-MAF thing, exaggerating some of the problems they’ve been having etc. The skit was ‘hosted’ by Uncle Patrik, who used to be a professional circus performer before he became a pilot. The whole act was hilarious with numerous balloon tricks and some other stuff in just to make it funnier as we went!

The day after conference we (my family) went to the TEAM station in NDJ and I lounged for the day, reading. My parents went shopping and we all went out for lunch (normally something I hate, but this place had GOOD cheeseburgers :D). Then the next day my siblings and I jumped in the back of the pickup (travel plan changes) and we drove all day to get back down. No more to tell, here we are ๐Ÿ™‚

Misc
What post of mine would be complete without some mention of Chels? There already has been minorly, but just a footnote here. She’s still grounded and (hopefully) more comitted to obeying the rules of that grounding. For those who haven’t heard (which is no one) she and I are not anymore. Not even close. She’s been on to better and more and is now single. I had more to say (not about her) but it’s lunch time and this is long enough for now. So long, and thanks if yu actually read all of this!

Commentosphere – Name, URL, Some Other Thoughts

Posted on

I have decided that, at this early stage at least, the name for Commentosphere is rather immaterial. The URL comment.ning.com, is sufficiently abstract, I think, to be maintained no matter what the service ends up being called. Even though the scope of the service may well prove to be outside that of blog comments, the URL works well enough for (as they may be termed) comments on forums and other things as well. Should a move be in order it will be dealt with when the time comes, but I think that, for now at least, the current URL will suffice.

I have been talking some with Yoz Grahame (from Ning) about Commentosphere. Most of this discussion has centred around the methods of getting data into the service. A summation of the results follows, and I will be quick to point out that most of this idea is his with only minor additions of my own.

Write a JavaScript piece that is hosted on Commentosphere and can be included by blog owners in their pages. Then, on the occurance of a comment posting form in the page, a function defined in this JavaScript can be called with a reference to the comment form itself, and to the names of the necessary fields (comment content, poster name) and other data (page title, page url, these cannot be pulled by the JavaScript itself because the script may be running on the blog’s main page). The script then alters the form to include a checkbox (defaultly checked) that turns on/off the automatic posting of any comments entered into that form to Commentosphere. Optionally, fields for tagging the comment and specifying parent(s) may be added by the script. Additionally, a small piece stating wheather or not the user is currently logged in on Ning will be inserted.

If the user is logged in, then when they post the comment to the blog it will automatically also be added to their account on Commentosphere by the method described below. If the user is not logged in, and chooses not to sign in (or has, indeed, no account) the comment will still be added, but to an anonymous account and merely have the user’s name (as specified in the appropriate place on the form) stored for display purposes.

For Blogger blogs that use the Blogger comments form, a simple Greasemonkey script will suffice to inject a script tag into the page calling this same script from Commentosphere with the appropriate data being supplied by the Greasemonkey script instead of the blog template.

The posting method runs as follows : An onsubmit handler is added to the comment posting form. When it is run it creates a new Image object and loads into in an image which is really the result of a PHP script running at Commentosphere. Data is pulled from the form and passed to this script via GET (so the URL to the ‘image’ would be something like http://comment.ning.com/addExternal.php?content The function loops until Image.complete is TRUE, and then returns TRUE, thus waiting until the request to Commentosphere has completed before submitting. If the user is logged in this cookie will be passed with the image request and the script will detect it and add the comment to the correct account. No popup windows.

I can find only one potential problem with this method, and that is that the comment’s permalink URL is not set until it has been posted into the blog system, so how could that be passed to the server beforehand? It warrants some thought, however, because if this worked it would make Commentosphere an almost seamless service.

Tags:

Commentosphere Update

Posted on

After a bit of a rocky start Commentosphere seems to be operating normally. After talking a fair bit about the project and its scope with Johan of Ecmanaut, I have reduced the amount of data that needs to be input/stored for each comment and updated the labels/filters on some fields. As a result of this there is a new bookmarklet, so you may wish to switch to that. There are also now JSON feeds, with two callback options and a read-only XML API format for query pages.

Johan’s idea of calling the service ‘Webadict’ has been growing on me, but the one problem there is that it would probably require changing the URL of the service, which is just about impossible on Ning if you want to keep all your data as is.

The del.icio.us importer has been taken offline, as there were performance issue with the Ning backend that caused odd (and mostly useless) results. The Aggregator still has the same sorting problems, tag intersections are not yet supported, and the filter that finds children of the selected comment only works if the child comments have but one parent. These are the only four currently known glitches in the system, and it seems to be working admirably besides these.

I will be out of contact for just over a week, starting this Friday.

Tags:

The Ning Playground

Posted on

The Ning Playground is a webservice for the creation of webservices. It is where the code and data for Commentosphere resides. While great efforts have gone into making the service easy for novices to jump into, this results in a less powerful toolset overall.

Application Creation
Ning handles application creation and setup admirably. Although I did not investigate starting an app from scratch with no files, such a thing is likely possible. If it is not, cloning an app and deleting all code would serve the purpose just as well. There are numerous example applications with working code that can be easily cloned from the omnipresent Ning Pivot sidebar. Once this has been done one merely has to visit the (unchangeable) URL chosen for the new app and perform some minor setup functions and there is a working application. Nothing could be easier, although if left at that it is mostly useless. Selecting ‘edit code’ from the same sidebar presents you with a directory structure where you may add or edit files to build the app.

Language Support
Ning supports both PHP and their own XNHTML. While the focus on PHP may be a negative aspect to some, for me it made it easy to get right into development, as PHP is the language I am familiar with. All standard PHP methods, as well as quite a number of extension packages are supported admirably and without the contstraints usually found on free (or even cheap) hosting. They also provide thier own set of classes to enable interfacing with their Content Store and other things, such as Gmail, Google Maps, and reading/writing RSS feeds.

XNHTML is a very nice, very easy XML derivative that enables basic output control and data access. While I did not investigate it thoroughly (being more apt to the PHP side of things) I did use it for outputting the app name (for which there is a handy tag provided), displaying certian code only if the user is logged in / a specifi user is logged in (a matter of wrapping the code in question inside the provided user test tags), and addind data to the Content Store via form for the Aggregator (which was a simple matte of using the XNHTML form tags instead of normal XHTML and using standard XHTML ‘input’ tags for the form itself). I found XNHTML to be very easy to use, and very conveniant for simple operations.

The Content Store
Here is where things got a tad more confusing. To a novice, the Ning Content Store is very easy to use and easy to learn, but to a programmer used to SQL it is a pain to learn a new data access method, no matter how easy. To its credit, the Content Store has many benefits, including easy sharing of data between all Ning apps and the ability to perform basic queries with ease using the objects provided. It has also, however, some drawbacks, including :

  • No boolean operators for filtering (ie OR / NOT), all filters applied overlap as though put together using AND.
  • No pattern matching quieries analogous to the SQL LIKE operator. The ‘like’ and ‘likeic’ operators in Ning are full-text search operators. They claim that such a feature is on their wishlist for the service, but currently it does not exist because of the load they fear it would place on the servers.
  • The object owners can only be set to NULL (anonymous) or the currently logged in user. This creates a problem for services wanting to provide bidirectional third-party APIs.
  • All data returned is in the form of XN_Content objects, which support many nice operations for the transformation of data (htmlentities, urlencode) but are sadly unsortable, making the merger of multiple queries impossible without writing your own sorting function (which I plan to get to eventually).
  • It’s slow for adding content, and if you’re adding a lot of content (either one large record or a great many records at once — read importer) painfully so. They claim to be working on this as part of their plan to optomise the entire Ning backend, but for now things such as my del.icio.us importer are doomed to lock up connections and cause browsers to do funny things, which messes up the import and basically makes the operation impossible.

Other Considerations
While Ning is about social applications, developement is currently anything but social. In fact, only the creator of an app can modify its code, and this permissing cannot be given to anyone else. While others may clone the app to experiment with the code and then send their modifications back to the creator, group development is virtually impossible. In response to my inquiry about this they said that they are working on solving this, but who knows when that will come about.

All code on Ning is licensed under a fair, but GPL-incompatable license, making the use of GPLed libraries impossible.

Documentation is in plenty, but not always easy to find. For example, when looking up documentation on the nature of the ‘like’ and ‘likeic’ operators none was to be found under their appropriate classes / methods. I had to go to a mammoth article titled Querying the Ning Content Store to find it.

Conclusions
I like Ning, I really do. I like the concept, I like the implementation, but it needs some work. For small-scale apps or non-developers the way it is makes coding easy. Even as a more experianced developer I am not one to complain about ease of use. They need, however, to add features that cater more to the power market as well as the easy market. Above all else I would like to see (1) a faster backend that doesn’t hang on running import scripts and the like (2) group development (3) pattern matching (4) better documentation.

Tags:

Sleepover / Christmas Program / Conference

Posted on

So what happened to me and the Sleepover / Christmas program et al? Well the sleepover went alright, and it actually was a lot of fun. We played a lot of crazy games, like one where we put some M&M’s on a paper towel stretched over a bowl full of water. Then you poke holes in the paper towel with a pencil. The person to send the M&M’s into the water has to eat them out of the water without using their hands! That gets disgusting ;) We stayed up really late watching Hook and generally had a good time.

Next day was the Christmas Program, which went well. I played my one song with the band and then watched the rest from the audience. Everything went off perfectly without problem and we quickly came to the best part : Refreshments!

The Symons left a few days ago, they’re in N’Djamena now and soon on their way out.

On Friday the whole TEAM Chad field goes to Annual Conference, including me. We’ll be gone just over a week with probably no Internet or Email of any kind the entire time.