administration mode
Pssst...Ferdy is the creator of JungleDragon, an awesome wildlife community. Visit JungleDragon


JungleDragon 4 - Update 13 »

FERDY CHRISTANT - MAR 2, 2015 (07:19:03 PM)

We're moving ahead rapidly in developing JungleDragon V4. In the last 10 days alone, we've basically reinvented the idea of what a country is inside JungleDragon. Internals are rewired and navigation is redesigned in a way that allows us to rapidly explore wildlife by country. Furthermore, in our last update, we've added a 2nd tab to countries called "photos".

If you've read my Big Idea article, you will know that this is only the beginning of what countries will ultimately become in JungleDragon. Still to be added are country species, parks, and more.

But before we go there, what good is building a rich country "entity" if photos aren't actually linked to a country? Currently, only photos that are geotagged are linked to a country. This amount to 46% of all photos. That's actually not that bad of a number. But it still means that more than half of all photos aren't linked to a country. 

I predict that country identification will become as important as species identification once V4 is fully completed. Therefore, we must have ways to maximize the amount of photos linked to a country. 

How? That is what this update will answer. I've build simple yet powerful tools to maximize that number, and I'll explain them in detail in this post.

Unidentified photos / unmapped photos

At JungleDragon we obsess over identifying species on photos. The site urges you to do this, rewards you for it. If you don't do it, moderators and other users will remind you of it. We've been doing this for so long that it has been become a culture, like 2nd nature. Some (with a special mention for @Wildflower) go the extra mile by constantly monitoring the unidentified photos overview:

This overview shows in real-time the photos with no species identified, as well as the percentage. Due to all the reasons mentioned above, we've achieved the incredible statistic of 89% of all photos having their species identified. An incredible community it is. I've never even dreamed of such a number.

What does any of this have to do with countries? It is strongly related because I've deployed a new overview called "unmapped photos":

This overview shows all photos that have no country set. Below you see our starting point right after I deployed the overview: 46% is linked to a country.

Note that I am saying "linked to a country" instead of "geotagged". The difference will become clear in the rest of this article.

Anyway, we now have this global statistic in place, and we need to crank up that number. I've built 2 tools to do this, which I'll explain next.

Batch linking to a country via tags

The following is available for admins only (basically me), yet everyone can request this action. What this tool does is to link a set of photos to a country based on a tag. Allow me to explain via an example:

So we have the country Tanzania, with 122 photos in it. All of those 122 photos are actually geotagged. However, they definitely are not all photos of Tanzania in JungleDragon. I happen to know that there is a tag called "Tanzania":

Here's the tag "Tanzania" opened, with a whopping 831 photos. Let's zoom in on the menu:

Note the new "Link" option with the globe icon. Let's open it:

And on this screen, I'm selecting the country, Tanzania in this case. A few seconds later, this happens:

We went from 122 photos linked to Tanzania, to 831, in mere seconds. A very powerful tool. Note that this can be used on any tag, not just country tags. If somebody tags their photo with a park name, I can link that park to a country, since a park is part of a country. 

Note that this tool does not create a permanent link between a tag and a country. If new photos in the tag appear, it will have to be run again. The reason I am making this an admin-only feature for now is that it is very powerful, but also very destructive when incorrectly used, therefore I like to keep an eye on the process. I'll open a forum post where anyone can submit tags for batch linking though, so indirectly it can be used by anyone.

Let's continue and see what happened due to our giant action of linking hundreds of photos to country "Tanzania":

Here we've opened the country, which starts with the map. Nothing happened to the geotagged photos, there's still 122 shown on the map. We did not geotag the extra photos, we merely linked them to a country. This becomes visible when opening the new "photos" link on the country:

And here we do have our full 831 photos as part of the country. In other words, JungleDragon now has two ways of setting the location of a photo:

  • By geotagging: precise location identification, which includes exact coordinates as well as the country
  • By setting a country: inprecise location identification for non-geotagged photos

Since we will often know the country of a photo despite it not being geotagged, this way we can link far more photos to a country, no longer do we rely on geotags only.

So what does a photo look like that is not geotagged, yet is linked to a country? Here's how:

See above. In the right panel, you can see that the photo is not geotagged, otherwise a map would have appeared. Yet it is linked to a country, since it shows the "Explore Tanzania" link. 

One by one

I've just explained the process of linking large sets of photos to a country, based on tags. On top of this, there's also a way to do this photo by photo. And this feature is accessible to more than admins: it can be done by the photo owner, by moderators and by admins. Here's how it works:

Here's a great photo that is not geotagged. A perfectly normal situation, likely the photographer did not have the GPS equipment or disabled it. Whilst it is possible to now geotag it right inside JungleDragon, this is difficult as you may not recall the exact location. So precise location identification is not possible. Not however the new option:

Photo owners (as well as moderators) can set the country of the photo, if geotagging is not possible. It's as simple as clicking that "Set country" button:

The photo gives away that it was taken in India, so we select that country and confirm, and here it is:

Look how the photo is now linked to India. It will not show up on that countries' map (since its not geotagged), yet it will appear on the photos tab of that country. Note also that the button changed to "Edit country", so it can be changed if it was set in error.

The process is really the same as with the tags, yet this one takes a one by one approach.


Sorry for the long post, yet these tools needed some explaining. My personal hope is that over time, we can make location identification (whether by GPS or at country level) a shared culture just like we have with species identification. Likewise, I hope we can reach the 80-90% ratio here as well.

I have good hopes that we can do it. Thanks to these tools, a great community and because unlike species identification, we usually do know the country, it should be achievable.

It will take some time for myself and the community to realize how important this exercise of country linking is. As said, once we have the full power of countries implemented, it will become equally important as species identification. Nobody will question why we do it, it will be a must-do, because without it, essential features of JungleDragon will work less well.

Although countries are not fully implemented yet, today we already have the tools to very easily map them.

JungleDragon 4 - Update 12 »

FERDY CHRISTANT - FEB 27, 2015 (03:02:05 PM)

Update 12 of JungleDragon 4 is now live. This one is an important milestone. In the previous 2 updates, I've rewired JungleDragon's internals and streamlined navigation, allowing us to very quickly jump to specific countries. You can arrive at a country from a geotagged photo, from a user's profile, or from the global map which now allows you to pick from a list of all countries.

Above we have arrived at country Ethiopia. As before, we see the map zoomed in on that country, and showing map pins of geotagged photos in this region. What's new is the "Photos" link next to the "Map" link of the country. Let's click it:

And here we are at all photos taken in Ethiopia. This update makes total sense, but there was no easy way to reach a countries' photos before, so therefore this improvement is quite essential.

Countries' photos are sorted by popularity by default, showing the best of the country at a single glance. However, you can change the sorting to "newest first" or "oldest first".

And, as with any list of photos within JungleDragon, you can play it as a slideshow:

See above, a slideshow of "Burkina Faso", with a beautiful title that includes the countries' flag. The slideshow will respect your choice of sorting.

Furthermore, the country selection screen is now updating with counters that show the number of photos per country:

It's a pretty humbling screen, as it shows the many blind spots we still have in our geographic coverage. 

Next steps

I'm not yet fully done with the "photos" tab at the country level. In particular, we know that there are many photos in JungleDragon that are not geotagged, yet we do know the country. I'd like to get that set linked to countries as well, and am thinking of two facilities for this:

  • Per photo: a button on the photo page that allows photo owners and moderators to set the country of a photo.
  • Per tag: For example, a tag like "Costa Rica" has over 200 photos with about 100 photos geotagged. Instead of manually linking the other 100 photos to the country one by one, I will link the entire set to the country in one-go.

It looks like countries are finally coming to life in JungleDragon!


JungleDragon 4 - Update 11 »

FERDY CHRISTANT - FEB 25, 2015 (07:22:07 PM)

JungleDragon V4 - update 11 is now live. Where the 10th update focused on data rewiring in preparation of upcoming countries and parks features, this update focuses on navigation: a fluent and easy way to explore wildlife geographically.

Flag buttons

A small change is the inclusion of a countries' flag on the explore button below geotagged photos:

Simple, but as country flags are very recognizable, a useful update me thinks. Click that button would take you to the country map, but before we do that, let's zoom out a little:

In the global navigation, the "Map" link is renamed to "Explore". Because that is what it does now:

Here were at our gold-old global wildlife map. I've made several improvements in the centering and zooming of the map on various viewports and devices. But that's not the big change, instead, this is:

There's a new control right above the map that basically is a single control to switch between exploring the world and a single country. It is currently set at the global map, but this is what happens if you click it:

A list of countries. Finally. This is an important change as there previously was not such a quick and easy way to dive into countries. They are presented with large, clear flags with a big clickable area so that it also works great on touch devices. On smaller devices, the list will automatically use less columns:

To my US friends who may be annoyed that their country is at the bottom (due to the alphabetical sort order), there's also a search box:

There you go, just typing 2 characters is enough to very quickly find it. Let's click one country:

And here we are, exploring Namibia. Let's have another look at our Explore control:

Cool, isn't it? Clicking the globe brings you back to the global map, clicking the current country brings you back to the country selection screen. A very simple and rapid way to explore countries.

Also new is the ability to share a country:

Which looks like this on Facebook:

Next steps

The 10th and this 11th update both were crucial preparation updates to make possible far bigger things. We now have a smooth way to explore the world per the country dimension, which we did not have before. However, the true value of this work will show in the coming updates.

Countries, as they are now, are still shallow, consisting of only a map of pins. But that will change, soon. I'm very excited about the next phase, and also somewhat troubled, as there are some hard nuts to crack.

JungleDragon 4 - Update 10 »

FERDY CHRISTANT - FEB 20, 2015 (08:57:22 PM)

We're only in february, and here is already the 10th update of JungleDragon V4. The past 9 updates made improvements in many areas, and also added a few new features, such as "seasons" and species integration on user profiles. 

All of those updates were done to clear my list, so that I can focus on the big idea of JungleDragon V4: the deep integration of countries and parks throughout the site. It's an initiative that likely will take a few months in total to implement. This specific update does the internal rewiring and ground work to make the idea possible in the first place.

This update is important, but has no impact on users yet. Therefore, the following is for people interested in the internal engine. It may be a bit boring, sorry. Here goes:

1. Data standardization

So the big idea is for countries to become a strong entity within JungleDragon, collecting photos, species, parks, users, and more. For that to work, we need to have a standardized list of countries.

More specifically, our internal list of countries must match exactly with the countries one gets back from Google Maps. When you geotag a photo, you position a photo at a longitude and latitude. Next, I call Google's reverse geocoding API to retrieve a human-readable address based on those coordinates, which contains a country component.  That country that we get back, must match our country list.

I went ahead and created a new internal countries table, based on ISO 3166-1, the standard used by Google. The country table has the following fields:

  • code (2 letter)
  • code_alpha3 (3 letter)
  • name (ISO)
  • name (display)
  • continent code

There's 249 rows. To finish this data standardization task, I also collected icons for all 249 countries, and named the files as per the 2-letter country code.

2. Linking users to the new countries table

Users in JungleDragon are able to fill out a country on their profile. If they do this, a flag will appear on their profile for that country, which is also a link to the map of that country. This flag was linked to the old (inconsistent) country table, so it is now rewired to the new, standardized table. 

I had to do a tiny data migration. Country code "UK" is not an ISO country, so I changed that one to "GB" for any user that filled out "UK". 

3. Linking geotagged photos to the new countries table

During the uploading of photos (if the photo has geo coordinates) I run logic to calculate the country from the coordinates, the same is true when you geotag a photo after uploading directly in JungleDragon. Up until now, this was a matter of storing the country display name as returned from Google Maps on the image record. As of now, instead the countries' ISO code is used, which is a far stronger and more reliable link. 

4. Decoupling the global map from the country map

JungleDragon's global wildlife map and the country map before really were the same thing, the only difference being a parameter (country) being passed in. These 2 concepts (global and country) are now competely separated in my back-end, and they also have separate pages.

This way, a country as of now is really an entity in JungleDragon. You cannot yet see that as part of this update, but in the engine it is. One first improvement that is already visible is that when you now open a country map, it will not load all map pins, only those of the selected country, which is faster.

Coming up next

I told you this update was boring. Yet with this update, I can implement the real improvements:

  • country photos
  • country species
  • country parks
  • country users
  • etc

I'm not going to deliver those in a big bang, I will deliver them one by one. Stay tuned!

Book review: Responsible Responsive Design »

FERDY CHRISTANT - FEB 19, 2015 (08:14:57 PM)

Yesterday I was confronted with how much I depend on internet connectivity. Whilst working from home that day, at around 3PM my 7 year old cable-company-owned modem broke down completely. 

In turn, this pretty much breaks down our household. I couldn't do anything for work anymore, as it is all online. I read my news online. I don't watch regular TV, I watch Netflix. I don't listen to the radio, I listen to Spotify. I can't manage my website JungleDragon, nor can I develop anything for it, as it is all online. I can't game, as that too is  online. Henriette does her work online, as well as her series and casual gaming. All shutdown. 

Henriette and I were joking that we rather have our heating shut down than the internet. Petty first world problems? Very much, but it gave me an opportunity to actually read a book, the above one. I had asked for it for my birthday, and now would be a great time to actually read it. So I did, and I finished it in a single night.

I've read several books on responsive web design about 2 or 3 years back, after which I applied many of those new learnings by completely redesigning JungleDragon to be responsive. That effort which took over a year, has taught me many hard lessons on the subject, so it's not a new topic for me.

However, the world of responsive design, mobile-first, and performance-tuning on the web is constantly moving. Many people struggle applying these 3 concepts in a practical approach, and that is where this book helps. Through many examples and clear writing, one is taught how to develop websites and components from the ground up to be accessible, fast and flexible, which are conditions for a user experience to work in today's web where we have an explosion of devices and ways in which those devices are used.

Whilst many of the individual topics were not new to me, some chapters offered extra depth, teaching me new things. In particular I found the chapters on performance tuning great. It has info like a performance budget, using a speed index, loading strategies that are non-blocking, all relatively fresh concepts that inspired me to learn more about it after reading this. 

The writing style is clear and at times entertaining, and overall this book packs a lot of value. If many of these things are new to you, I would consider it a must-read with a lot of value. If you're a bit more seasoned in these topics, it's still a good read.

I have few critical notes on the book, but I do have a few small ones. Sometimes I think the author goes a little overboard in implementing complicated ways to support ancient browsers. It makes me wonder if the medicine isn't worse than the disease, if you know what I mean. The pattern of the book too often is, here's a problem, here...include this library to solve it. I wonder how all of that ends up in a real world big website, whether that complexity and size stays managable. Actually, I don't wonder that, because I've seen it.

Still, this is more criticism on the web itself, rather than on this book. In fact, it turns out that several useful libraries and web initiatives were once invented by this author and the group he works for. In fact, you could even say that about a dozen people on this world are doing most of the heavy lifting in moving our web forward. It's amazing how much these people give back, and this author is one of them.

To make a long story short, would I recommend this book to anyone? No, I would recommend it to everyone.

Continue reading...