Thaana Type

Research & development of Thaana fonts
,

  _     _                                     
 | |   | |                                    
 | |_  | |__     __ _    __ _   _ __     __ _ 
 | __| | '_ \   / _` |  / _` | | '_ \   / _` |
 | |_  | | | | | (_| | | (_| | | | | | | (_| |
  \__| |_| |_|  \__,_|  \__,_| |_| |_|  \__,_|
                                              
                                              
  _                          
 | |                         
 | |_   _   _   _ __     ___ 
 | __| | | | | | '_ \   / _ \
 | |_  | |_| | | |_) | |  __/
  \__|  \__, | | .__/   \___|
         __/ | | |           
        |___/  |_|           
PhotoPie

Web app for colour data visualisations of photos
,

var img = new Image()
  img.onload = function () {
    var canvas = document.createElement('canvas')
    canvas.width = width
    canvas.height = width * (img.height / img.width)
    var ctx = canvas.getContext('2d')
    ctx.drawImage(img, 0, 0, width, canvas.height)
    var id = ctx.getImageData(0, 0, canvas.width, canvas.height)
Maldives parliamentary election 2019 analysis

Data analysis of election results by sex
, ,

float bar_start = (x-per)*10;
float bar_width = per*10;
if ( party.equals("MDP")  ){
    fill(255,222,0);
} else if ( party.equals("PPM") || party.equals("PNC") ) {
    fill(223,24,147);
} else if ( party.equals("JP") ){
    fill(230,23,23);
} else if ( party.equals("MDA") ){
    fill(212,157,37);
} else if ( party.equals("AP") ){
    fill(62,132,64);
} else if ( party.equals("IND") ){
    fill(175,175,175);
}    
Maldives population poster and notebook

Population awareness materials for UNFPA
, ,

textAlign(CENTER, CENTER);
int count = 0;
int y = 50;
int x = 50;
int atoll = 0;
for (TableRow islandrow : islands.rows()) {
     if (count%19 == 0 /*|| atoll != islandrow.getInt("Misc")*/ ) {
         y += 52;
         x = 47;
         count=0;
     }
     //if (atoll == 9) { continue;} //skip male'
     count++;
     String islandname = islandrow.getString("Name");
     int islandpop = islandrow.getInt("2014");
Maldives census visualisations

Data visualisations & knowledge products for UNFPA
, ,

import processing.pdf.*;

Table atolls;
PGraphicsPDF pdf;
PFont helvetica;

void draw() {
  textFont(helvetica);
  textSize(2);
  textAlign(CENTER);
  float scale = 300;
  String[] years = {"1911", "1921","1953","1960",  "1965","1977","1985","1990","1995","2000","2006","2014"};
  for (TableRow atollrow : atolls.rows()) {
    String atoll_short = atollrow.getString("Atoll_short");
    float lat = atollrow.getFloat("Lat");
    float lon = atollrow.getFloat("Long");    
    pushMatrix();
Fenrakkaa

Identity development for integrated water resource management campaign for UNDP

   __                                 _      _                    
  / _|                               | |    | |                   
 | |_    ___   _ __    _ __    __ _  | | __ | | __   __ _    __ _ 
 |  _|  / _ \ | '_ \  | '__|  / _` | | |/ / | |/ /  / _` |  / _` |
 | |   |  __/ | | | | | |    | (_| | |   <  |   <  | (_| | | (_| |
 |_|    \___| |_| |_| |_|     \__,_| |_|\_\ |_|\_\  \__,_|  \__,_|
                                                                  
                                                                  
#mvelection2013

2013 Maldives presidential election results analytics
, ,

function r(id, label, mdp, ppm, jp, gi, invalid, nonvoters, max) {
  var total = mdp+ppm+jp+gi+invalid+nonvoters+max;
  var canvas = document.createElement('canvas');
  var chartwidth = 2100;
  var chartheight = 50;
  var top = 2;
  if (max < 10000 && max != 0) {
    canvas.width = 2100; 
  } else {
    chartwidth = 800;
    canvas.width = chartwidth ;   
  }
Remembering victims to stop street violence

Posters for Human Rights Day 2013

                                               _                     _         
                                              | |                   (_)        
  _ __    ___   _ __ ___     ___   _ __ ___   | |__     ___   _ __   _   _ __  
 | '__|  / _ \ | '_ ` _ \   / _ \ | '_ ` _ \  | '_ \   / _ \ | '__| | | | '_ \ 
 | |    |  __/ | | | | | | |  __/ | | | | | | | |_) | |  __/ | |    | | | | | |
 |_|     \___| |_| |_| |_|  \___| |_| |_| |_| |_.__/   \___| |_|    |_| |_| |_|
                                                                               
                                                                               
                    _          _     _                   
                   (_)        | |   (_)                  
   __ _    __   __  _    ___  | |_   _   _ __ ___    ___ 
  / _` |   \ \ / / | |  / __| | __| | | | '_ ` _ \  / __|
 | (_| |    \ V /  | | | (__  | |_  | | | | | | | | \__ \
  \__, |     \_/   |_|  \___|  \__| |_| |_| |_| |_| |___/
   __/ |                                                 
  |___/                                                  
mvmurders

Mapping & documenting murders that have taken place in the Maldives
, ,

                                                     _                     
                                                    | |                    
  _ __ ___   __   __  _ __ ___    _   _   _ __    __| |   ___   _ __   ___ 
 | '_ ` _ \  \ \ / / | '_ ` _ \  | | | | | '__|  / _` |  / _ \ | '__| / __|
 | | | | | |  \ V /  | | | | | | | |_| | | |    | (_| | |  __/ | |    \__ \
 |_| |_| |_|   \_/   |_| |_| |_|  \__,_| |_|     \__,_|  \___| |_|    |___/
                                                                           
                                                                           
MRC VCA Guidelines & Toolbox

Designing of handbooks for Maldivian Red Crescent
,

                                                   
                                                   
  _ __ ___    _ __    ___    __   __   ___    __ _ 
 | '_ ` _ \  | '__|  / __|   \ \ / /  / __|  / _` |
 | | | | | | | |    | (__     \ V /  | (__  | (_| |
 |_| |_| |_| |_|     \___|     \_/    \___|  \__,_|
                                                   
                                                   
                  _       _          _   _                      
                 (_)     | |        | | (_)                     
   __ _   _   _   _    __| |   ___  | |  _   _ __     ___   ___ 
  / _` | | | | | | |  / _` |  / _ \ | | | | | '_ \   / _ \ / __|
 | (_| | | |_| | | | | (_| | |  __/ | | | | | | | | |  __/ \__ \
  \__, |  \__,_| |_|  \__,_|  \___| |_| |_| |_| |_|  \___| |___/
   __/ |                                                        
  |___/                                                         
Nakaiy Nevi

Seasons of the Maldives – a mobile app
, , ,

for (var i=1; i<nakaiy.length; i++){
  nakaiydb.insert({ id:i, 
    nakaiy:nakaiy[i][0], 
    dates:nakaiy[i][1], 
    season:nakaiy[i][2], 
    number:nakaiy[i][3], 
    description:nakaiy[i][4], 
    meaning:nakaiy[i][5], 
    weather:nakaiy[i][6], 
    averages:nakaiy[i][7], 
    fishing:nakaiy[i][8], 
    agriculture:nakaiy[i][9], 
    asterism:nakaiy[i][10]
  }); 
}
MRC Dengue awareness billboards

For the Maldivian Red Crescent

                                  _                                       
                                 | |                                      
  _ __ ___    _ __    ___      __| |   ___   _ __     __ _   _   _    ___ 
 | '_ ` _ \  | '__|  / __|    / _` |  / _ \ | '_ \   / _` | | | | |  / _ \
 | | | | | | | |    | (__    | (_| | |  __/ | | | | | (_| | | |_| | |  __/
 |_| |_| |_| |_|     \___|    \__,_|  \___| |_| |_|  \__, |  \__,_|  \___|
                                                      __/ |               
                                                     |___/                
                                                                    
                                                                    
   __ _  __      __   __ _   _ __    ___   _ __     ___   ___   ___ 
  / _` | \ \ /\ / /  / _` | | '__|  / _ \ | '_ \   / _ \ / __| / __|
 | (_| |  \ V  V /  | (_| | | |    |  __/ | | | | |  __/ \__ \ \__ \
  \__,_|   \_/\_/    \__,_| |_|     \___| |_| |_|  \___| |___/ |___/
                                                                    
                                                                    
Maldives 2006 Census Data Visualizations

For UNDP’s disaster awareness campaign research
, ,

function population_density() {
  $content = '';
  $fp2 = fopen('source.csv', 'r');    
  while (!feof($fp2)) {
    $line = fgetcsv($fp2, 4096);
    if ($line[0] == "138") { continue; }; // remove male' 
    if (is_numeric($line[4]) AND  is_numeric($line[5]) AND  !empty($line[6]) AND  !empty($line[17]) ) {
       $content .= '';
       $content .= '';
    }
  }
  fclose($fp2);
  $content .= '';
  return $content;
}
UNDP Rakaavethibeyyaa Dhivehiraaje

Generative logo design
, ,

foreach ($xml->children() as $atolls) {
  $island_count = 0;
  foreach ($atolls->children() as $atoll){
    $content .= '';
    foreach ($atoll->children() as $island){
      $content .= 'x  . '" y="' . $island->y . '" 
              width="' . $island->size . '" height="'. $height .'" 
              fill="black"  />  ';  
    }
    $content .= '';
  }
}
UNICEF Nutrition Playing Cards

Playing cards promoting complementary feeding

                  _                  __ 
                 (_)                / _|
  _   _   _ __    _    ___    ___  | |_ 
 | | | | | '_ \  | |  / __|  / _ \ |  _|
 | |_| | | | | | | | | (__  |  __/ | |  
  \__,_| |_| |_| |_|  \___|  \___| |_|  
                                        
                                        
                  _            _   _     _                 
                 | |          (_) | |   (_)                
  _ __    _   _  | |_   _ __   _  | |_   _    ___    _ __  
 | '_ \  | | | | | __| | '__| | | | __| | |  / _ \  | '_ \ 
 | | | | | |_| | | |_  | |    | | | |_  | | | (_) | | | | |
 |_| |_|  \__,_|  \__| |_|    |_|  \__| |_|  \___/  |_| |_|
                                                           
                                                           
Framing Leaders

Algorithmically generated framed pictures of heads of governments
, , ,

#!/usr/bin/python
#
import datetime
for row in cursor.fetchall():
  if row['country_code'] + ".png" in srcfiles:
    x = datetime.datetime.now().date() - row['h_gov_since']
    if x.days > 365*2:
      years = " ("+ str(math.floor(x.days/365))[:-2] + " years)"
    elif x.days < 365:
      years = " ("+ str(x.days) + " days)"
      
    else:
      years = " ("+ str(math.floor(x.days/365))[:-2] + " year)" 
    img = row['country_code'] + ".png"
    imgs.append(img)
    li[img] = row['country_name'].capitalize() + years
    height.append(Image.open(pathx + img).size[1]+35)
    width.append(Image.open(pathx + img).size[0]+20)
Flags By Colours

Data visualization experiment using flags of the world
, , , ,

#!/usr/bin/python
#
from sys import argv
import Image, ImageDraw 
im = Image.open(argv[1]) 
im = im.convert('RGB') 
colors = {}; total = 0
for y in range(im.size[1]):
  for x in range(im.size[0]):
    color = im.getpixel((x,y))
    if color in colors.keys():
      colors[color] += 1
    else:
      colors[color] = 1
    total += 1 
Generator

An evolving algorithm that generates music & visuals
, ,

#!/usr/bin/python
from common import *
import random


while 1:
  num = 000
  files = ls (images, 'jpg')
  last = len(files)
  half = str(round (last/2))
  half = int(half[:half.find('.')])-3
  using = files[last-10:last]
  using.sort()
  using.reverse()
  using += files[half:half+10]
mvblogosphere

Mapping of the Maldivian blogosphere (2006-2014)
, ,

                      _       _                                         _     
                     | |     | |                                       | |    
  _ __ ___   __   __ | |__   | |   ___     __ _    ___    ___   _ __   | |__  
 | '_ ` _ \  \ \ / / | '_ \  | |  / _ \   / _` |  / _ \  / __| | '_ \  | '_ \ 
 | | | | | |  \ V /  | |_) | | | | (_) | | (_| | | (_) | \__ \ | |_) | | | | |
 |_| |_| |_|   \_/   |_.__/  |_|  \___/   \__, |  \___/  |___/ | .__/  |_| |_|
                                           __/ |               | |            
                                          |___/                |_|            
                     
                     
   ___   _ __    ___ 
  / _ \ | '__|  / _ \
 |  __/ | |    |  __/
  \___| |_|     \___|
                     
                     
UN CAT Booklet

Convention against Torture (CAT) Dhivehi booklet for UNDP

                                   _   
                                  | |  
  _   _   _ __       ___    __ _  | |_ 
 | | | | | '_ \     / __|  / _` | | __|
 | |_| | | | | |   | (__  | (_| | | |_ 
  \__,_| |_| |_|    \___|  \__,_|  \__|
                                       
                                       
  _                       _      _          _   
 | |                     | |    | |        | |  
 | |__     ___     ___   | | __ | |   ___  | |_ 
 | '_ \   / _ \   / _ \  | |/ / | |  / _ \ | __|
 | |_) | | (_) | | (_) | |   <  | | |  __/ | |_ 
 |_.__/   \___/   \___/  |_|\_\ |_|  \___|  \__|
                                                
                                                
Blindscapes

Photographing urban life in Malé
, ,

  _       _   _               _                                     
 | |     | | (_)             | |                                    
 | |__   | |  _   _ __     __| |  ___    ___    __ _   _ __     ___ 
 | '_ \  | | | | | '_ \   / _` | / __|  / __|  / _` | | '_ \   / _ \
 | |_) | | | | | | | | | | (_| | \__ \ | (__  | (_| | | |_) | |  __/
 |_.__/  |_| |_| |_| |_|  \__,_| |___/  \___|  \__,_| | .__/   \___|
                                                      | |           
                                                      |_|           
      
      
  ___ 
 / __|
 \__ \
 |___/
      
      
Malé Aerial

Aerial photography of the island city of Malé
,

                      _        
                     | |       
  _ __ ___     __ _  | |   ___ 
 | '_ ` _ \   / _` | | |  / _ \
 | | | | | | | (_| | | | |  __/
 |_| |_| |_|  \__,_| |_|  \___|
                               
                               
                        _           _ 
                       (_)         | |
   __ _    ___   _ __   _    __ _  | |
  / _` |  / _ \ | '__| | |  / _` | | |
 | (_| | |  __/ | |    | | | (_| | | |
  \__,_|  \___| |_|    |_|  \__,_| |_|