This post was updated in 2019 with additional information and video to make Half Square Triangle quilt blocks quickly and accurately.
I have been making a LOT of half-square-triangle quilt blocks recently. Half-square-triangles (or HST's) are one of the greatest basic building blocks of traditional quilting. I'm not a super-duper-precise piecer, but I am a firm believer in squaring-up blocks – especially half-square-triangle blocks.
It just makes the piecing come together easier and look so much nicer in the end.
First of all, this is my favorite basic method for making HST's: Match two squares right-sides-together and draw a diagonal line down the back of one side. Sew a 1/4″ seam on both sides of the drawn line. Cut on the drawn line. This will create two HST blocks. I generally like to make my blocks slightly larger than the final size so that I can have room to square them up. If you are making a bunch at once – especially if you are chain-piecing them – it's really easy for seams or matched-up squares to get slightly distorted. Here is the traditional way to square-up a half-square-triangle block.
If you are making multiple identical Half Square Triangle blocks, in the video in this post I demonstrate how to make a large quantity all at once!
makes the process SO MUCH faster. I've seen this ruler multiple times in shops, in my mom's sewing room, etc. and always wondered what it did, but never bothered to find out. Well I finally did and it's genius. The ruler is marked from one corner with traditional inch marks divided into eighths. From the opposite corner it's marked in half-inch lines.
Trim two edges using a rotary cutter. By laying the mark on the seam you get a square block with the diagonal seam centered when you open up the block.
I then use my rotary cutter to trim off the ends so that I won't have the little triangle tags when I open up the block.
I traditionally press my seams to the side – usually the dark. Sometime though I'll press my seams open, especially if the blocks are small.
is worth it. (I know they are available also at JoAnn's and from the Quilt in a Day site.) I now use it ALL the time.
Plus a whole pinboard of Half Square Triangle inspiration!
*FTC Disclosure: this post contains affiliate links. If you purchase something through one of those links I may receive a small commission, so thank you for supporting Diary of a Quilter when you shop! All of the opinions are my own and I only suggest products that I actually use.
WOW!! Amy I am going to have to find one of those rulers!! Thanks for the tip! I wonder if Joanne's carries this ruler, they have lots of other Quilt In a Day supplies.
Yep! I think I got mine at JoAnn's!
I took a class from Eleanor and have been using this ruler ever since. I've convinced others to buy this ruler also.
It never entered my mind to square up hst before pressing! What a great tip; thank you. btw, I've been quilting 25 years, so that says a lot – always something new to learn.
This is really neat, thanks for sharing. Now I have to look in my messy drawer for this ruler!!
I just picked up this ruler a couple of weeks ago. At Joann's–it was on clearance even! It's really cool! I have a pile of tiny crooked HSTs that I am now able to face :)
Thanks for walking us through the process!
That is an amazing set of quilts…and you make it look soooo easy! Thank you for sharing the process…you KNOW how I love processes!!! Happy Friday!
I just purchased the Quilt in a day ruler on clearance. Perfect timing on the tutorial on how to use it. Thanks so much!
AWESOME! I love HSTs, but I get so bored having to square them up. I'm definitely getting this ruler in my next Amazon order! Thanks for posting this!
This needs to be added to the bottom of all HST tutorials. Genius way of squaring up!
Another ruler on my wish list. Great blog and I agree with SeeMaryQuilt!
Great tool, thanks for sharing. Your spectrum quilt is what led me to your super informational blog. It's eye candy! I guess we all want to share our happiness in finding HST perfection bliss!
Brilliant idea. I've just ordered one.
Thanks for sharing. I've got to get three on order one for each of my two sisters and one for myself. Love your quilts.
Thanks for the tip on the ruler! I make a lot of HSTs and didn't know it existed! Happy Friday!
Oh, those specialty rulers in my sewing room are multiplying like bunny rabbits, and now you've given me a new one for my shopping list! I absolutely adore your HST Spectrum quilt, by the way.
Brilliant! Heading to a quilt show next week and will definitely seek this out!
Love the ruler tip–I had not seen that before and turning a block 4 times (even with a turning cutting mat) is a pain. Also love that you can spell voila!! I can't stand seeing WA LA!!
Haha! (I know right?!) Thanks. I'm glad that taking 5 years of French has helped me in some small way. 😉 Because to be honest, I don't use it (or remember) much else.
Your quilts are beautiful!!! I have that ruler and love it!
An even better tool is the BlocLoc ruler. It has a groove in the back to hug your seam – it is fabulous!
That's genius! I've never seen that ruler before but will be asking for it at my LQS. And I have a HST project in mind to try it out. Thanks for the tip.
Thanks for the great tip! Now I can look forward to doing some half-square triangles.
HSTs are one of my favorite blocks. I was using the traditional method for squaring up, but this is pretty genius. Thanks for sharing Amy!!
It's funny… This week I also posted about how to make HST's using the Quilt in a Day ruler. It sure does make the process faster! Love your quilts.
I have a stack of triangles that I've been afraid to touch. This will definitely be helpful in making it as painless as possible!
This is a GREAT tut and I even own one of those rulers (but didn't know how to use it)! Thx so much! Being a newbie, it's great to learn all these neat tips! The whole squaring up a block thing is kinda mystifying to me as it is!
THANK YOU SO MUCH for this revelation! I'm in process of construction of a quilt using over 200 HSTs and this tip has come in time to save me a lot of frustration!!!!
Glad to know about this ruler and method. I make a lot of HST too. Did you press to the side or open?
Good question. I typically press to the side. (I'm just traditional that way.) But occasionally I'll press open, depending on how intricate the block is (i.e. how many seams there are) or how small the triangle is.
Machine quilters do tell me they don't like pressed open seams…sort of ruins in-the-ditch quilting since there's no fabric there.
I have this ruler and have always just used it as a square–duh…
This makes so much sense. I;m glad that you press to set the seam–so very few people do this and it is really critical.
Thanks for sharing this. I need one of those rulers!!
I did not know of this ruler, thanks for sharing!!
I've heard of them. I need to give them a try sometime. I know they help a lot with accuracy.
Wow! Okay, I need this! I've seen it before, but like you, never paid attention.
Brilliant idea. I just love it.
I'm just branching out into triangles – this is a smart tool!
I ordered the 9.5" version and it just arrived today. I'm doing the Wishes QAL and it has lots of triangles. I'm also doing the Vice Versa BOM and although I'm not certain, I think there are some more triangles in my future there in the months to come, too!
Thank you so much! You saved my day with this post! I have been cutting squares for a quilt for my sister and need many HSTs which I hate squaring up! I am getting ready to sew now and I found your post. I thought to myself – WOW that is the ruler I have had laying in my drawer not knowing why I bought it or what to do with it… Now I know – and it will save me so much time and hassle! Yesss!
I must get one of these today before I start my next project using HST's. Thanks for the tip and tutorial!
I would be one of those people that would do it the hard way forever so THANK YOU for sharing!
I will be getting one of these ASAP!
Sold…I just ordered myself one of these rulers! I love HST! Thank you for sharing!
Sold too. It sounds like a great tool to have. Thanks so much for filling us in.
Awesome tip, thank you so much!!
I went looking through my rulers and Yup I have an unused Quilt in a Day square up ruler. I am using it today and it is a much quicker way to square them up. We buy these rulers and then tuck them away. Thanks for the tutorial and for getting me to use it. .
Great tips Amy! I saw Corey/LMS talking about this on Instagram within the past week. It's been brought to my attention twice. Now I've gotta try it!
Wow, I just bought that ruler on clearance at my local Joanns, it had been marked down to $7.95 then to $3.95 so I thought that even though I had never seen it used I had to get it for the price! Thanks for the explanation, it sure will make it faster to make those pesky triangle squares!
Thanks! I so needed this! I wondered how this worked! BTW, I first learned to quilt with your tutorial and made quilts for my great niece and nephew for Chirstmas! I have LOTS of HST's cut and sewn but, was really not liking this part. Now I'm looking forward to getting back to it!
Thank you so much for sharing these tips!!! I have to make a lot of 1/2 square triangle blocks tonight and will dig out my Quilt in a Day ruler and give it a try!!!
So glad I came across your blog! Going to finish a project I started yrs ago with 2 inch squares. Needless to say I purchased the ruler. Unfortunately not at sale price. Oh well.
Thank you for this great way of trimming HST's. I love making them, but my back already aches when I think of the trimming process. Can't wait to try your method on my next ones.
I've had one of these for several years and never used it. Occasionally I'd pick it up and say "hmmm" and put it back. Thanks for your "simple" tutorial. I needed it!
I follow your directions and I made a quilt . it came out so nice. I wasn't on point on all the squares but it sure came out nice. thanks for the tutorial.
I'm so glad! Thank you so much for letting me know!
Thanks for this post! How have I never seen this ruler before!?! I immediately ordered one.
Thank you! The ruler is now on my wish list. Your easier quilt patterns are an inspiration to a beginner, like myself! Your triangle quilt is fresh and inviting! Nice job!
I've been looking for similar instructions for piecing hst's using 16″ squares sown 4 times (I think) to make a bunch of hst's at once. Learned it at a Saline county, Kansas extension program in 1985 called 'painless Patchwork'. Lost the instructions. I've had my 16″ squares cut since 1986. Now maybe I'll be able to get going again after finding your blog.
Yes! So if you draw two diagonal lines on the back side of one of your squares (like an X) and do the same thing, sewing on both sides of the diagonal lines. Then cut the block into four 4″ squares and again on the diagonal lines, you'll get 8 HST blocks from the two 16″ squares!
I recently saw a die cut machine that cuts and squares up HST's quickly and perfectly. I am curious if there are pro's and con's for doing the cutting this way? I don't know anyone who uses one but am curious about them as it looks so easy? Thanks in advance for any input!
I have tried all the methode you can think of for HST's, including this one, which works fine. But to me, the best way is using Thangles, which is what I always come back to. I have Thangles in every size they make. No worries about bias sewing due to the paper foundation, plus they come out perfect without having to square up. All you have to do is sew on the line!
OMG, this past weekend I made about 200 HST's, and squaring them up is the part I dislike! Now I'm actually looking forward to the rest of them (all 600 of them). Thanks for a short, great tutorial.
I just found these instructions and they are exactly what I needed! I have had this ruler for years and never really knew how to use it! Thank you!!
Thank you SO much for saving my quilting soul!!!! All I have to do now is buy one of those little rulers.
Love your quilts. I plan to look at your patterns. Do you sell wholesale?
I am just working on getting hard copy patterns professionally printed to sell wholesale. Let me know if there's something you're interested in.
Because my products are specific for making rapid fire HSTs, what would be your wholesale price for the Hour Glass quilt pattern?
I have a booth at the Austin Area Quilt Guild Show in Austin, Texas September 15-18, 2016 (~4000 to attend). I would like to provide this pattern for client purchase, and to demo how the hour glass block is made using my tools. I also need the time to make the quilt for part of my display wall at the event.
Your patterns are very nice. I look forward to your response and our future business relationship. Thanks so much.
In the photos of the tut, the upper left shows that the line on the ruler was EXACTLY on your seam line. The bottom right photo shows a ruler over the trimmed, opened block, but I see that it is a bit shy in the bottom left corner of the block. Your alignment for trimming was spot-on so it seems to me that your square should have come out perfect. Do you know what caused this discrepancy? The seam looks fully opened.
I often have this problem, I make sure the alignment is exact before trimming and make sure the ruler doesn't move while cutting, but often I end up with a less-than-perfect square.
Great instructions I am going to buy this ruler. Have you tried the new block lock rulers.. Very expensive so I have not purchased.
I found your site by accident (or one of my angels took pity on me). Your site is wonderful and has helped get me partially back in the loop (I've got a lot to catch up on). I'm coming back to quilting after a 50 year sabbatical and boy have things changed (I started when we cut patterns from grocery bags). One thing I've noticed is that most sites highlight important info with reds or greens and for us color blind folks that makes it hard to see. I'm wondering if there is an alternative – luckily I have friends who don't mind reading it for me (they also have learned some new tricks by helping me). Thanks for your great site.
This was fantastic info for a new quilter!!! I'm working on a batik HST quilt and was really not looking forward to squaring up 315 blocks for it – this method will make it go so quickly!
Thanks s much for the tip on the half square triangle square up ruler. I found this the other day and immediately ordered one. It really does make hst's more fun. Have really been enjoying your blog.
O MY GOSH! I've just started learning how to do things, and am now just barely brave enough to try to do a HST, and seeing this helps calm my nerves some. I'll definitely have to buy one and try it this summer while I'm not working. Thanks again for sharing!
I love hst's and I am a beginner quilter. How do I sew the hsts together once I am done making them? I am so very confused.


text:
Neil Clark writes micro and flash fiction from his tiny flat in Edinburgh. His work has appeared in Cheap Pop, Okay Donkey, The Molotov Cocktail and other places. Find him on Twitter @NeilRClark or visit neilclarkwrites.wordpress.com for a full list of publications.
Camille Clarke is a writer from the Midwest who exists solely on croissants and sapphic poetry. When not consuming either of those things, she is letting her tea get cold or tweeting about her adorable nephew at @_camillessi.
Matilda Harjunpää writes in Helsinki, Finland. You can find her on Twitter @matildahrjnp.
Phebe Jewell's work has appeared or is forthcoming in Every Day Fiction, Amethyst Review, Bindweed Magazine, and Crab Creek Review. She lives in Seattle, where she teaches at Seattle Central College. In addition to her work at SCC, she is a volunteer teacher for Freedom Education Project Puget Sound, a nonprofit offering college-level courses for women in prison.
Mary Kane's writing has been featured or is forthcoming in Smokelong Quarterly, Roanoke Review, Beloit Poetry Journal, Poetry Daily, Brilliant Flash Fiction, Prose Poem Journal, Hiram Poetry Review and other journals. She is the author of two chapbooks of poetry (She Didn't Float, Harlequin Ink, and After We Talk About the Recent Deaths of Our Parents and About Compassion as Handled by Chekhov, Casa de Cinco Hermanas Press) as well as one full-length poetry collection, Door (One Bird Books). She lives on Cape Cod where she can often be found walking.
The Logan A. Richmond Professor of Spanish at Lycoming College (Williamsport, PA), Sandra Kingery has published 18 books in translation, including Julia and Of My Real Life I Know Nothing by Ana María Moix; Welcome to Miami, Doctor Leal by René Vázquez Díaz; and Hudson,Without Preamble, and Metztli (with Kaitlyn Hipple) by Xánath Caraza.
Robert John Miller's work has appeared in Necessary Fiction, New Flash Fiction Review, X-R-A-Y, Peregrine, and others. You can find more stories at robertjohnmiller.com. He lives in Chicago and is working on a novel.
Emma Neale has lived in San Diego, Wellington and London, but now lives in Dunedin, New Zealand. Her novel, Billy Bird, was long-listed for the International Dublin Literary Award. A collection of poems, To the Occupant, is just out from Otago University Press. The current editor of Landfall, she is also the mother of two young sons, one 17, one 9.
Santino Prinzi is a Co-Director of National Flash Fiction Day in the UK, a Consulting Editor for New Flash Fiction Review, and is one of the founding organisers of the annual Flash Fiction Festival. His flash fiction pamphlet, There's Something Macrocosmic About All of This (2018), is available from V-Press, and his short flash collection, Dots and other flashes of perception (2016), is available from The Nottingham Review Press. To find out more follow him on Twitter (@tinoprinzi) or visit his website: santinoprinzi.com
Lawrence Schimel is a bilingual (Spanish/English) writer, born in New York City and living in Madrid, Spain for the past twenty years. He has published over 100 books in many different genres as author or anthologist, including Una barba para dos and The Drag Queen of Elfland (fiction), Deleted Names and Desayuno en la cama (poetry), Vacation in Ibiza (graphic novel) and Let's Go See Papá! and No es hora de jugar (children's books). He is also a literary translator, most recently of Destruction of the Lover by Luis Panini and Impure Acts by Ángelo Néstore. He tweets in English at @lawrenceschimel and in Spanish at @1barbax2.
Sheree Shatsky writes short fiction believing much can be conveyed with a few wild words. She was selected by the AWP Writer to Writer Mentorship Program as a Spring 2018 mentee for flash fiction. Recent work has appeared in Foliate Oak Literary Magazine, KYSO Flash, Fictive Dream and X-R-A-Y Literary Magazine with work forthcoming in Crack the Spine and the KYSO Flash Anthology, Accidents of Life. Read more of her work at http://www.shereeshatsky.com. She tweets @talktomememe.
Meg Sipos earned her MFA from George Mason University, where she served as nonfiction editor for the feminist literary journal So to Speak. She currently co-hosts Bestiary, a podcast about humans and other animals, with her husband.
Michael Grant Smith wears sleeveless T-shirts, weather permitting. His writing has appeared in elimae, Ghost Parachute, The Airgonaut, formercactus, The Cabinet of Heed, Ellipsis Zine, Spelk, Hypnopomp, Soft Cartel, and other publications. Michael resides in Ohio. He has traveled to Hong Kong, Shanghai, and Cincinnati. To learn too much about Michael, please visit www.michaelgrantsmith.com and @MGSatMGScom.
German-born Chila Woychik has lived in the American Midwest most of her life. She has been published by Passages North, Cimarron, Portland Review, and others. She's the recipient of a writing award from Emrys Foundation. She's also the founding editor at Eastern Iowa Review. Her essay collection, Singing the Land: A Rural Chronology, is forthcoming in 2020 by Shanti Arts Publishing.
Artwork by Lesley C. Weston.
Cover Photograph, Art Direction, & Web Development by Mary Lynn Reed.

redpajama_set_name: RedPajamaCommonCrawl


text:
/* GUI Editor for HTML */
(function($, window, document, undefined) {
  'use strict';

  /* Used to create unique extension id */
  var lastExtensionId = -1;

  /* Class: Editor */
  function Editor() {
    this.init();
  }

  /* Class: Extension */
  function Extension(options) {
    this.id = lastExtensionId = lastExtensionId + 1;
    this.init(options);
  }

  /*
   * Private members: Extension
   * ==========================
   */
  /* Used to create unique button id */
  var lastButtonId = 0;

  /*
   * Private members: Editor
   * =======================
   */

  /* Data variables */
  /* -------------- */
  var elements = {
      /*
       *    $ root: Editor container,
       *    $ menu: Menu container,
       *    $ editor: Editable,
       *    $ options: Options menu
       */
    },
    services = {
      /*
       *    bool localStorage
       */
    },
    selection = {
      /*
       *    Selection selection,
       *    Node[] nodes,
       *    bool blur,
       *    Object position
       */
    },
    extensions = [] /* Extensions[] */,
    bindings = {
      /*
       *  event: listener
       */
    };

  /* State variables */
  /* --------------- */
  /* Editor has initiated or not */
  var booted = false;

  /* Used for scroll throttling */
  var scrollState = {}, scrollTimer = 0;

  /* Used to distinguish key down/up events from IME composition */
  var composing = false;

  /* Config variables */

  /* in ms */
  var scrollUpdateFrequency = 100;

  /* Load/Create HTML bindings */
  function bindElements() {
    var hook;

    /* 1. Load/Create editor root element */
    hook = $('[data-editor]');
    if (hook.length > 1) {
      console.log('Multiple editors not supported. Picking up first.');
      hook = hook.first();
    } else if (hook.length === 0) {
      throw "Editor root element not found";
    }
    // Plug the hook
    elements.root = hook;

    /* 2. Load/Create menu container */
    hook = elements.root.find('[data-menu-container]');
    if (hook.length === 0) {
      hook = $('<div>').attr('data-menu-container', '').addClass('menu-container');
      elements.root.append(hook);
    }
    // Plug the hook
    elements.menu = hook;

    /* 3. Load/Create editor window */
    hook = elements.root.find('[data-edit]');
    if (hook.length === 0) {
      hook = $('<article>').attr('data-edit', '')
        .append($('<h2>').attr('data-placeholder', 'Title here').addClass('title'))
        .append($('<p>').attr('data-placeholder', 'Your text here'));
      elements.root.append(hook);
    }
    // Plug the hook
    elements.editor = hook;

    /* 4. Load/Create options menu - Lists all creatable object */
    hook = elements.menu.find('[data-options]');
    if (hook.length === 0) {
      hook = $('<div>')
        .css('position', 'absolute')
        .attr('data-options', '')
        .append($('<div>')
          .addClass('toggle')
          .append($('<a>')
            .addClass('button icon')
            .attr({
              href: '#',
              'data-button-id': 'toggle'
            })
            .html('×')))
        .append($('<ul>').addClass('menu options-menu'));
      elements.menu.append(hook);
    }
    // Plug the hook
    elements.options = hook;

    /* 5. Make editor editable */
    elements.editor.attr({contenteditable: true});

    /* 6. Hide all menu */
    elements.menu.find('.menu').hide();

    /* 7. Last focused element */
    elements.lastFocused = undefined;
  }

  /* Load service states */
  function loadServices() {
    /* 1. Check if localStorage is available */
    services.localStorage = window.localStorage !== null;
    /* 2. Set default separator 'p' */
    document.execCommand('defaultParagraphSeparator', false, 'p');
    /* 3. Insert br on return */
    document.execCommand('insertbronreturn', false, true);
  }

  /* TODO Load an extension */
  function loadExtension(extension, id) {
    /* Check if id is in list */
    var re;
    var filter;
    if (-1 === id) {
      id = extensions.length;
      extensions.push(extension);
    }

    elements.menu.append(extension.view);

    /* Create button id namespace in extension */
    extension.R = {};
    /* Load button ids */
    extension.view.find('[data-button-id]').each(function() {
      var name = $(this).attr('data-button-id').replace(/-([a-z0-9])/gi, function(match) {
        return match[1].toUpperCase();
      });
      extension.R[name] = lastButtonId = lastButtonId + 1;
      $(this).attr('data-extension-id', id);
      $(this).attr('data-id', lastButtonId);
    });

    filter = [];
    /* Load key bindings */
    extension.subscribe.forEach(function(event) {
      re = /^@.*$/gi;
      if (re.test(event)) {
        if (!bindings[event]) {
          bindings[event] = [];
        }
        bindings[event].push(extension.onEvent);
      } else {
        filter.push(event);
      }
    });
    extension.subscribe = filter;
    return extension;
  }

  /* Load all extensions */
  function loadExtensions() {
    var i;
    for (i = 0; i < extensions.length; ++i) {
      loadExtension(extensions[i], i);
    }
  }

  /* Load last saved state */
  function loadState() {
    // TODO
  }

  /* Create node list for current selection */
  function createNodeList(node) {
    var list = {};
    if (node) {
      while (node.parentNode) {
        list[node.nodeName.toLowerCase()] = true;
        if (node === elements.editor[0]) {
          break;
        }
        node = node.parentNode;
      }
    }
    return list;
  }

  /* Get current selection */
  function getSelection(event) {
    var oldSelection = $.extend({}, selection);
    /* 0. Clear selection object */
    selection = {};
    /* 1. Get current selection */
    selection.selection = window.getSelection();
    /* 2. Create new node list */
    selection.node = selection.selection.focusNode;
    selection.nodes = createNodeList(selection.selection.focusNode);
    /* 3. Check if last selection is blurring or not */
    selection.blur = selection.selection.isCollapsed === true && (oldSelection.isCollapsed !== undefined && oldSelection.isCollapsed === false);
    /* 4. Get position*/
    selection.position = {};
    if (false === selection.selection.isCollapsed && false === composing) {
      if ($.contains(elements.editor[0], selection.selection.focusNode)) {
        var range = selection.selection.getRangeAt(0);
        var boundary = range.getBoundingClientRect();
        selection.position = {
          top: window.pageYOffset + boundary.top,
          left: boundary.left,
          right: boundary.right,
          bottom: window.pageYOffset + boundary.bottom,
          width: boundary.width,
          height: boundary.height
        };
      }
    } else {
      var focusElement = selection.selection.focusNode ? $(selection.selection.focusNode) : $(event.target);
      if (focusElement[0].nodeName === '#text') {
        focusElement = focusElement.parent();
      }
      selection.position = {
        top: focusElement.position().top,
        left: focusElement.position().left,
        bottom: focusElement.position().top + focusElement.height(),
        right: focusElement.position().left + focusElement.width(),
        width: focusElement.width(),
        height: focusElement.height()
      };
    }

    /* 5. Attach event */
    selection.event = event;

    /* 6. Collapsed or not */
    selection.isCollapsed = selection.selection.isCollapsed;

    return oldSelection;
  }

  /* EventListener: edit view blur */
  function onEditViewBlur(type, currentSelection, event) {
    var nodeName;
    var node;
    if (!currentSelection) {
      return;
    }

    if (type === 'keyup') {
      node = currentSelection.selection.focusNode;
    } else {
      node = currentSelection.event.target;
    }

    extensions.forEach(function(extension) {
      if (extension.id !== 0 && extension.visible) {
        extension.focusOut(type, node, selection, event);
      }
    });
  }

  /* EventListener: edit view focus */
  function onEditViewFocus(type, currentSelection, event) {
    var node;
    if (!currentSelection) {
      return;
    }

    if (type === 'mouseup') {
      node = event.target;
    } else {
      node = currentSelection.selection.focusNode;
    }

    if (!node) {
      return;
    }

    var nodeName = node.nodeName.toLowerCase();

    /* Send event to wildcards */
    extensions.forEach(function(extension) {
      if (extension.subscribe.indexOf("*") !== -1) {
        extension.focusIn(type, node, currentSelection, event);
      }
    });

    extensions.forEach(function(extension) {
      if (extension.subscribe.indexOf(nodeName) !== -1) {
        extension.focusIn(type, node, currentSelection, event);
      }
    });
  }

  /* EventListener: keydown */
  function onKeyDown(event) {
    var keyStroke = getKeyStroke(event);

    if (bindings.hasOwnProperty(keyStroke)) {
      bindings[keyStroke].some(function(callable) {
        console.log(keyStroke);
        return callable(keyStroke, event);
      });
    }
  }

  /* EventListener: keyup */
  function onKeyUp(event) {
    var oldSelection = getSelection(event);

    /* if on new view then blur out last view */
    if (selection.blur || (oldSelection.selection && oldSelection.selection.focusNode !== selection.selection.focusNode)) {
      onEditViewBlur('keyup', oldSelection, event);
    }

    onEditViewFocus('keyup', selection, event);
  }

  var keymap = {
    8: "backspace",
    9: "tab",
    13: "enter",
    16: "shift",
    17: "ctrl",
    18: "alt",
    19: "pause",
    20: "caps",
    27: "esc",
    32: "space",
    33: "pgup",
    34: "pgdn",
    35: "end",
    36: "home",
    37: "left",
    38: "up",
    39: "right",
    40: "down",
    45: "ins",
    46: "del",
    48: "0",
    49: "1",
    50: "2",
    51: "3",
    52: "4",
    53: "5",
    54: "6",
    55: "7",
    56: "8",
    57: "9",
    65: "a",
    66: "b",
    67: "c",
    68: "d",
    69: "e",
    70: "f",
    71: "g",
    72: "h",
    73: "i",
    74: "j",
    75: "k",
    76: "l",
    77: "m",
    78: "n",
    79: "o",
    80: "p",
    81: "q",
    82: "r",
    83: "s",
    84: "t",
    85: "u",
    86: "v",
    87: "w",
    88: "x",
    89: "y",
    90: "z",
    91: "cmd",
    93: "cmd",
    112: "f1",
    113: "f2",
    114: "f3",
    115: "f4",
    116: "f5",
    117: "f6",
    118: "f7",
    119: "f8",
    120: "f9",
    121: "f10",
    122: "f11",
    123: "f12",
    186: ";",
    187: "=",
    188: ",",
    189: "-",
    191: "\\/",
    192: "`",
    219: "\\[",
    220: "\\\\",
    221: "\\]",
    222: "'"
  };

  /* Convert keystroke into string */
  function getKeyStroke(event) {
    var metaKeys = [],
      string = [];

    if (event.which === undefined) {
      return "";
    }

    if (event.shiftKey) {
      metaKeys.push(keymap[16]);
    }
    if (event.ctrlKey) {
      metaKeys.push(keymap[17]);
    }
    if (event.altKey) {
      metaKeys.push(keymap[18]);
    }
    if (event.metaKey) {
      metaKeys.push(keymap[91]);
    }

    metaKeys.sort();

    if (metaKeys.length) {
      string.push(metaKeys.join("+"));
    }
    if ([16, 17, 18, 91, 93].indexOf(event.which) < 0) {
      if (keymap.hasOwnProperty(event.which)) {
        string.push(keymap[event.which]);
      }
    }
    return "@" + string.join("+");
  }

  /* EventListener: mousedown */
  function onMouseDown(event) {
    if ($.contains(elements.root, event.target)) {
      event.preventDefault();
    }
  }

  /* EventListener: mouseup */
  function onMouseUp(event) {
    /* Handle only left click */

    if ($.contains(elements.root, event.target)) {
      event.preventDefault();
    }

    if (event.which !== 1) {
      return;
    }

    var oldSelection = getSelection(event);

    if (selection.blur || (oldSelection.event && oldSelection.event.target !== selection.event.target)) {
      onEditViewBlur('mouseup', oldSelection, event);
    }

    if ($.contains(elements.editor[0], event.target)) {
      onEditViewFocus('mouseup', selection, event);
    }
  }

  /* EventListener: scroll */
  function onScroll() {
    var newState = {
      top: $(window).scrollTop(),
      left: $(window).scrollLeft(),
      timestamp: new Date().getTime()
    };

    /* Calculate deltas */
    var delta = {
      x: newState.left - scrollState.left,
      y: newState.top - scrollState.top,
      dt: newState.timestamp - scrollState.timestamp
    };

    /* Fire immediately on first scroll */
    if (delta.dt > 3 * scrollUpdateFrequency) {
      //draw(delta);
      scrollState = newState;
      scrollTimer = 0;
      return;
    }

    /* If there is any pending updates, then cancel them */
    if (0 !== scrollTimer) {
      window.clearTimeout(scrollTimer);
    }

    /* Schedule fire event */
    scrollTimer = window.setTimeout(function() {
      scrollTimer = 0;
      //draw(delta);
    }, scrollUpdateFrequency);
  }

  /* EventListener: compositionstart */
  function onCompositionStart() {
    composing = true;
  }

  /* EventListener: compositionend */
  function onCompositionEnd() {
    composing = false;
  }

  /* EventListener: window resize */
  function onResize() {
    //draw(undefined, true);
    // TODO update view
  }

  /* EventListener: edit view hover */
  function onEditViewHover(event) {
    //extensions[0].focusIn("hover", event, $(event.target), event);
  }

  /* Get button value */
  function getButtonValue(button) {
    var state = button.is('[selected]');
    switch (button.attr('data-button-type')) {
      case 'select':
        elements.menu.find('[data-button-name="' + button.attr('data-button-name') + '"]').removeAttr('selected');
        if (state) {
          button.removeAttr('selected');
        } else {
          button.attr('selected', '');
        }
        return !state ? button.attr('data-button-id') : undefined;
      case 'radio':
        elements.menu.find('[data-button-name="' + button.attr('data-button-name') + '"]').removeAttr('selected');
        if (!state) {
          button.attr('selected', '');
        }
        return button.attr('data-button-id');
      default:
        if (state) {
          button.removeAttr('selected');
        } else {
          button.attr('selected', '');
        }
        return !state;
    }
  }

  /* EventListener: menu button click */
  function onButtonClick(event) {
    var id, view, value;

    view = $(event.currentTarget);

    /* Get extension id */
    id = parseInt(view.attr('data-extension-id'), 10);
    value = getButtonValue(view);
    if (extensions[id]) {
      extensions[id].onClick(parseInt(view.attr('data-id'), 10), value, selection, view);
      event.preventDefault();
    }
  }

  /* Draw menus */
  function draw(delta) {
    extensions.forEach(function(extension) {
      if (extension.visible) {
        extension.onDraw(delta);
      }
    });
  }

  /* Bind events to editor */
  function bindEvents() {
    /* 1. Listen to global events */
    $(document).on({
      compositionend: onCompositionEnd,
      compositionstart: onCompositionStart,
      keyup: onKeyUp,
      keydown: onKeyDown,
      mousedown: onMouseDown,
      mouseup: onMouseUp
    });

    /* 1.1 Update scrollState */
    scrollState = {
      top: $(window).scrollTop(),
      left: $(window).scrollLeft(),
      timestamp: new Date().getTime()
    };

    /* 2. Events required to update UI */
    elements.menu.on('click', 'a[href="#"]', onButtonClick);
    elements.editor.on('mouseenter', '> *', onEditViewHover);
    elements.editor.on('click', '*', function(e) {
      e.preventDefault();
    });

    /* 3. Events required needing UI redrawing */
    $(window).on({resize: onResize});
  }

  /* Public */
  Editor.prototype = {
    /* Bootstrap editor */
    init: function() {
      var range;

      /* Load HTML elements */
      bindElements();

      /* Bind events */
      bindEvents();

      /* Load services */
      loadServices();

      /* Load extensions */
      loadExtensions();

      /* Create selection range */
      range = document.createRange();
      selection = window.getSelection();
      range.setStart(document.querySelector('[data-edit]'), 1);
      selection.removeAllRanges();
      selection.addRange(range);

      if (services.localStorage) {
        loadState();
      }

      booted = true;

      elements.editor.find('> *:last-child').focus();
      getSelection(undefined);

      /* Load options menu */
      this.extend({
        name: "options",
        loadFromSource: elements.options,
        subscribe: ['*'],
        bindings: {},
        onDraw: function(where, cue) {
          while (cue && cue.parentNode !== this.editor.editor()[0]) {
            cue = cue.parentNode;
          }
          /* 0. If open then return */
          if (this.isOpen()) {
            return this.view.position();
          }
          /* 1. If hover event */

          /* 2. On key press or mouse click */
          if (!cue) {
            return this.view.position();
          }
          var position = this.editor.editor().position();
          where = $(cue).position();
          return {
            top: Math.max(position.top, where.top),
            left: Math.max(8 - this.view.find('.toggle').outerWidth(), where.left - 16 - this.view.find('.toggle').outerWidth())
          };
        },
        onClick: function(id, value, currentSelection, view) {
          if (view) {
            view.removeAttr('selected');
          }
          switch (id) {
            case this.R.toggle:
              if (this.isOpen()) {
                this.close();
              } else {
                this.open();
              }
              break;
            default:
              id = view.attr('data-button-id');
              if (extensions[0].bindings.hasOwnProperty(id)) {
                extensions[0].bindings[id](currentSelection);
                extensions[0].close();
              }
          }
        },
        open: function() {
          var height = this.view.find('li').length * 30;
          this.view.find('.menu').css({
            height: 3,
            width: 0
          }).show()
            .animate({width: 292}, {duration: 200, queue: true})
            .animate({height: height}, {duration: 200, queue: true});
          this.view.find('.toggle a').addClass('open');
        },
        close: function() {
          var menu = this.view.find('.menu');
          menu
            .animate({height: 3}, {duration: 200, queue: true})
            .animate({width: 0}, {
              duration: 200, queue: true, complete: function() {
                menu.hide();
              }
            });
          this.view.find('.toggle a').removeClass('open');
        },
        isOpen: function() {
          return this.view.find('.menu').is(':visible');
        },
        bind: function(id, listener) {
          this.bindings[id] = listener;
        },
        callback: function(self) {
          var position = self.editor.editor().find('> *:last-child').position();
          self.editor.editor().removeClass('default');
          self.view.css({
            top: position.top,
            left: Math.max(8 - self.view.find('.toggle').outerWidth(), position.left - 16 - self.view.find('.toggle').outerWidth())
          });
        }
      });
    },
    extend: function(options) {
      var extension;
      options.editor = this;
      extension = new Extension(options);
      if (booted) {
        return loadExtension(extension, -1);
      }
      extensions.push(extension);
      return extension;
    },
    selection: function() {
      return selection;
    },
    options: function() {
      return elements.options;
    },
    menu: function() {
      return elements.menu;
    },
    editor: function() {
      return elements.editor;
    },
    extensions: function() {
      return extensions;
    },
    root: function() {
      return elements.root;
    },
    topNode: function(node) {
      if (node instanceof $) {
        node = node[0];
      }
      while (node && node.parentNode != elements.editor[0]) {
        node = node.parentNode;
      }
      return $(node);
    },
    addOption: function(extension, options) {
      var id;
      var listener,
        button,
        load = function(source, parent) {
          var ele = source.split(",");
          var but = $('<a>').addClass('button').attr('href', '#').attr({'data-extension-id': 0});
          if (ele[0]) {
            but.attr('data-button-id', ele[0]);
          }
          if (ele[1]) {
            but.html('<i class="fa fa-' + ele[1] + '"></i>');
          }
          if (ele[2]) {
            but.html(but.html() + ele[2]);
          }
          parent.append($('<li>').append(but));
          return ele[0];
        };

      for (button in options) {
        if (options.hasOwnProperty(button)) {
          listener = options[button];
          id = load(extension.name + '.' + button, extensions[0].view.find('ul'));
          extensions[0].bind(id, listener);
        }
      }
    },
    saveSelection: function() {
      if (selection.selection.getRangeAt && selection.selection.rangeCount) {
        var ranges = [];
        var i, len = selection.selection.rangeCount;
        for (i = 0; i < len; ++i) {
          ranges.push(selection.selection.getRangeAt(i));
        }
        return ranges;
      }
    },

    restoreSelection: function(savedSel) {
      if (savedSel) {
        var i, len = savedSel.length;
        selection.selection.removeAllRanges();
        for (i = 0; i < len; ++i) {
          selection.selection.addRange(savedSel[i]);
        }
      }
    },

    surroundSelection: function(e) {
      if (e) {
        if (selection.selection.getRangeAt && selection.selection.rangeCount) {
          if (selection.selection.rangeCount > 0) {
            var range = selection.selection.getRangeAt(0);
            try {
              range.surroundContents(e);
            } catch (ex) {
            }
          }
        }
      }
    },

    nextButtonId: function() {
      lastButtonId = lastButtonId + 1;
      return lastButtonId;
    }
  };

  /*
   * Private members: Extension
   * ==========================
   */

  /* Load extension from source */
  function loadExtensionFromSource(selector, extension) {
    var s;

    /* 1. Load HTML */
    extension.view = selector instanceof $ ? selector : $(selector);

    /* 2. Load subscribed events */
    s = extension.view.attr('data-subscribe');
    if (!s) {
      extension.subscribe = [];
    }
    else {
      extension.subscribe = s.split(" ").filter(function(e) {
        return !!e;
      });
    }
  }

  function createExtension(structure, extension) {
    var buttons,
      load = function(source, attr, parent) {
        var ele = source.split(",");
        var but = $('<a>').addClass('button').attr('href', '#');
        if (ele[0]) {
          but.attr('data-button-id', ele[0]);
        }
        if (ele[1]) {
          but.html('<i class="fa fa-' + ele[1] + '"></i>');
        }
        if (ele[2]) {
          but.html(but.html() + ele[2]);
        }
        but.attr(attr);
        parent.append($('<li>').append(but));
      };

    if (!structure || !structure instanceof  Array) {
      console.log('Failed to load extension `' + extension.name + '`.');
      return false;
    }

    extension.view = $('<div>');
    buttons = $('<ul>');

    structure.forEach(function(buttonGroup) {
      var sep, name, group;
      if (buttonGroup instanceof Object) {
        sep = buttonGroup.sep;
        name = buttonGroup.name;
        group = buttonGroup.break || false;
        if (buttons === undefined) buttons = $('<ul>');
        switch (buttonGroup.type) {
          /* Choose one or none */
          case 'select':
            buttonGroup.buttons.forEach(function(e) {
              load(e, {'data-button-type': 'select', 'data-button-name': name}, buttons);
            });
            break;
          /* Choose one */
          case 'radio':
            buttonGroup.buttons.forEach(function(e) {
              load(e, {'data-button-type': 'radio', 'data-button-name': name}, buttons);
            });
            break;
          default:
            buttonGroup.buttons.forEach(function(e) {
              load(e, {}, buttons);
            });
            break;
        }
        if (sep === true) {
          buttons.find('li:last-child').addClass('sep-right');
        }
        if (group === true) {
          extension.view.append(buttons.addClass("menu default").attr('data-extension-id', extension.id));
          buttons = undefined;
        }
      }
    });
    if (buttons) {
      extension.view.append(buttons.addClass("menu default").attr('data-extension-id', extension.id));
    }
  }

  Extension.prototype = {
    /** @namespace options.onShow */
    state: {},
    init: function(options) {
      var f;
      /** @namespace options.name */
      /** @namespace options.loadFromSource - if set then load from HTML */
      /** @namespace options.structure - extension view structure */
      /** @namespace options.subscribe */
      /** @namespace options.onFocusIn */
      /** @namespace options.onFocusOut */
      /** @namespace options.onHide */
      /** @namespace options.optionsMenu */

      /* Name of extension: required for button click listener */
      this.name = options.name;
      this.editor = options.editor;
      if (options.loadFromSource) {
        if (false === loadExtensionFromSource(options.loadFromSource, this)) {
          return;
        }
      } else {
        if (false === createExtension(options.structure, this)) return;
        this.subscribe = [];
      }

      this.subscribe = this.subscribe.concat(options.subscribe);

      /* Fix and hide extension if not options */
      if ("options" === this.name) {
        this.visible = true;
      } else {
        this.view.css({position: 'absolute', top: 0, left: 0}).hide();
        this.visible = false;
      }

      for (f in options) {
        if (['editor', 'show', 'hide', 'findViewById', 'init', 'focusIn', 'focusOut', 'state']
            .indexOf(f) === -1) {
          this[f] = options[f];
        }
      }
      if (options.optionsMenu) {
        this.editor.addOption(this, options.optionsMenu);
      }
      if (options.callback) {
        options.callback(this);
      }
    },
    focusIn: function(eventType, node, currentSelection, event) {
      var element = $(node);
      this.state = {
        eventType: eventType,
        node: node,
        element: element,
        selection: currentSelection,
        event: event,
        position: {
          top: currentSelection.position.top,
          left: currentSelection.position.left
        }
      };
      this.onFocusIn(eventType, node, currentSelection, event);
    },
    focusOut: function(eventType, node, currentSelection, event) {
      if ($.contains(this.view[0], event.target)) return;
      this.onFocusOut(eventType, node, currentSelection);
    },
    show: function() {
      var position = this.onDraw(this.state.position, this.state.node);
      this.view.css(position);
      /* clear menu */
      this.view.find('[selected]').removeAttr('selected');
      this.onLoad(this.state.node, this.state.selection.nodes);
      this.onShow();
      if (!this.view.is(':visible')) this.view.show();
      this.visible = true;
    },
    hide: function() {
      this.onHide();
      if (this.view.is(':visible')) this.view.hide();
      this.visible = false;
    },
    findViewById: function(id) {
      return elements.menu.find('[data-id=' + id + ']');
    },
    onLoad: function(/* focus, nodeList */) {
    },
    onHide: function() {
    },
    onShow: function() {
    },
    onEvent: function() {
    },
    onFocusIn: function(/* eventType, node, currentSelection, event */) {
      this.show();
    },
    onFocusOut: function(/* eventType, node, currentSelection */) {
      this.hide();
    },
    onClick: function() {
    },
    onDraw: function(where /* , focusNode */) {
      return where;
    }
  };

  /* Export classes */
  window.editor = new Editor();
}
(window.jQuery, window, window.document)
)
;
/* -- fin. */

redpajama_set_name: RedPajamaGithub


text:
Cryptocurrency for accountants Part 1: Bitcoin, Blockchain, NFTs, DAOs
Yuri Cataldo, emerging tech strategist and best-selling author, explains what the main buzzwords mean and why they're important to accountants.
DAVEN ROBERTS
On September 16th, CAW Network USA hosted the first of 3 sessions on Cryptocurrency for accountants. Yuri Cataldo, an award-winning entrepreneur, keynote speaker, best-selling author, and emerging tech strategist who combines the mindsets of an artist and a technologist, shared his expertise with the audience in a stellar beginning presentation.
Yuri was named one of the 40 under 40 business leaders in Indiana, and he is a classically trained set/costume designer (Juilliard/Yale/IU) turned entrepreneur with credits on Broadway, Dance, Film, and Opera. He is the founder of IndigoH2O, the only multiple award-winning bottled alkaline water in the world. Yuri is the co-author of the internationally best selling book about Bitcoin/ Blockchain: Be Left Behind – Discover Bitcoin and Cryptocurrency Before Your Grandmother beats you to it, and he draws on information from his book for this series of presentations.
Below are highlights from the event
Yuri begins his presentation with the basics- explaining what cryptocurrency is. He does this by relating them to our common knowledge of the currencies that we use everyday. This is also an introduction to the basic terminology of cryptocurrency.
To continue, Yuri dives into the three ways the cryptocurrency coins can be used. A key point that he emphasizes is the immediate global nature of cryptocurrency, as its uses expand into our day to day lives.
Cryptocurrency has taken off in recent years, as we all know, but not too many of us understand exactly why it did. Yuri explains why Bitcoin was interesting in its emergence as the first decentralized, reliable, fast, and convenient way for two strangers to send money worldwide in seconds.
The concept of private and public blockchains comes under the microscope in this portion of the webinar. Yuri drives home that every blockchain creates its cryptocurrency but introduces the idea that not all are public, and what that means.
Companies and projects in the cryptocurrency space that are run anonymously are called Decentralized Autonomous Organizations. Yuri gives a general understanding of DAOs, using Bitcoin as the prime example, and the vast scope of alternative currencies.
To conclude his presentation, Yuri touches on NFTs, what they are and what they can encompass. In general, there are five main types of NFTs which he highlights.
The full webinar of part one of this series can be found here: https://cawnetworkusa.com/webinar/cryptocurrency-for-accountants-part-1/


text:
Q: ¿Por qué no verifica el capcha? PROBLEMA ¿POR QUE NO SE ENVIA EL CAPTCHA por medio de ajax, O como lo capturo y envió agradezco la ayuda? ya he buscado y no consigo algo util en la web o no logro entender la consola.
tengo el siguiente formulario:
<form method="post">

<input class="form-control" type="text" id="name0" name="name0" placeholder="Tu Email" onkeypress="registro();">

<input class="form-control" type="text" id="name1" name="name1" placeholder="Contraseña" style="margin: 0px;margin-bottom: 14px;">
<input class="form-control" type="text" id="name2" name="name2" placeholder="Repita su Contraseña" style="margin: 0px;margin-bottom: 14px;">
<input class="form-control" type="text" id="name3" name="name3" placeholder="Nombre" style="margin: 0px;margin-bottom: 14px;">
<input class="form-control" type="text" id="name4" name="name4" placeholder="Apellido" style="margin: 0px;margin-bottom: 14px;">
<input class="form-control" type="text" id="name5" name="name5" placeholder="Whatsapp" style="margin: 0px;margin-bottom: 14px;">

<button class="btn btn-primary d-block w-100" type="submit">Iniciar session</button>

</form>

Hago el capture de los ID con el siguiente cogigo:
    function registro(){
    var mail        = document.getElementById('name0').value;
    var w1      = document.getElementById('name1').value;
    var w2      = document.getElementById('name2').value;
    var ame         = document.getElementById('name3').value;
    var astname     = document.getElementById('name4').value;
    var hatsapp     = document.getElementById('name5').value;
    var oken        = document.getElementById('name6').value = token;
    var perimetros = {
        'email'             : mail,
        'Pw1'               : w1,
        'Pw2'               : w2,
        'name'              : ame,
        'lastname'          : astname,
        'whatsapp'          : hatsapp,
        'token'             : oken
    };
    $.ajax({
        data: perimetros,
        url: '../assets/Registro.php',
        type: 'POST',
        success: function(response){
            $('#resulsig').html(response);
        }
        success: function(response){
        console.log(response);
        //console.log("Form successfully submited");
        }
    });
}

Lo que tengo lo envió a un archivo php con el siguiente codigo:
    <?php
    echo "Aquí debe mostrar todos los POST que salen ("; print_r($_POST); echo")";
    ?>

deberia llegar algo aqui de token en el array pero nunca sale nada mas que esto:

Aqui debe mostrar todos los POST que salen (Array ( [email] => mi email [Pw1] => mi pass 1 [Pw2] => mi pass 2 [name] => mi nombre [lastname] => mi apellido [whatsapp] => +5555555555558 ) )

redpajama_set_name: RedPajamaStackExchange


The deposit must be paid to confirm the booking. Full payment for the trip is required at least 14 weeks before the date of departure. In all cases, time shall be of the essence. If final payment is not made timely, the booking will cancel automatically with applicable cancellation charges imposed.
No refunds will be made for any unused trip features.
a) AFRICAN CLASSIC ENCOUNTERS will not cancel a trip after the client has paid in full unless it becomes necessary to do so as a result of actual or threatened war, civil strife, industrial dispute, terrorist unrest, active or threatened disaster, fire or adverse weather conditions or for reasons of group comfort or safety, if a group tour does not have enough participants to make it economically viable or because of any other adverse happening beyond the control of AFRICAN CLASSIC ENCOUNTERS. Any such cancellation shall be in the absolute discretion of AFRICAN CLASSIC ENCOUNTERS.
b) In the event of any cancellation, AFRICAN CLASSIC ENCOUNTERS will inform the client without delay and use its best endeavors to offer suitable and comparable alternatives.
c) In the event of a cancellation by AFRICAN CLASSIC ENCOUNTERS, client will be fully refunded for all monies paid it, but not for any other charges to or payments made by participant.
If a client wishes to cancel a tour once booked, the following cancellation charges will apply.
All cancellations must be in writing and signed by the client, and received and acknowledged by AFRICAN CLASSIC ENCOUNTERS. Any changes made to the itinerary once travel has commenced will be for client's own account and will be subject to cancellation policies imposed by suppliers. An administration fee of $400.00 PER PERSON will be deducted of the initial deposit and applicable to cancellation more than 14 weeks before departure.
a) AFRICAN CLASSIC ENCOUNTERS reserves the right to alter a tour itinerary if it or the local ground handler or safari operator believes such is necessary or advisable for reasons of convenience, comfort or safety.
b) If a client wishes to alter any tour prior to its confirmation by AFRICAN CLASSIC ENCOUNTERS, AFRICAN CLASSIC ENCOUNTERS will, upon written request, use all reasonable endeavors to bring about such alterations. If the itinerary has already been confirmed and the client then wishes to change, AFRICAN CLASSIC ENCOUNTERS may, at its discretion, levy a reasonable charge per alteration as well as for communications or other costs, expenses or charges that my be incurred.
Participants will need a valid passport (it must be valid for up to a year after the return date – and TWO BLANK PAGES need to be available in the passport). AFRICAN CLASSIC ENCOUNTERS is not responsible for any loss of damage of travel documents or failure by the client to conform to entry requirements stipulated by the countries they are visiting. It is the tour participant's responsibility to ensure passports, visas, travel permits, health certificates, inoculations, or other required documentation are obtained, current and in order.
Carriage by land, sea and air is subject to the terms and conditions of the carrier with whom you travel and to international conventions some of which may limit liability. Land, sea and air travel are also subject to operational decisions of carriers and air and sea ports which may result in cancellation, delays or diversions, over which AFRICAN CLASSIC ENCOUNTERS has no control and for which AFRICAN CLASSIC ENCOUNTERS accepts no liability whatsoever.
Baggage is at owner's risk throughout the tour.
AFRICAN CLASSIC ENCOUNTERS is not qualified to convey medical advice. We encourage you to consult your doctor for specific medical advice about any activities or destinations. He or she is most familiar with your personal medical history and is best qualified to determine your particular needs. Malaria precautions needs to be taken for safari in Africa.
These terms and conditions govern the relationship between AFRICAN CLASSIC ENCOUNTERS and you, the client, to the total exclusion of any other terms and conditions except as provided in other AFRICAN CLASSIC ENCOUNTERS documents. When you book travel related services with AFRICAN CLASSIC ENCOUNTERS, you are acknowledging that you understand all these terms and conditions.
Additional charges may be added should AFRICAN CLASSIC ENCOUNTERS incur increases in charges for fuel, accommodation, park entrance fees, supplies, cost increases or other unexpected additional charges. Such additional charges will be paid at the time the cost of the trip is due, or if such date has passed, no later than 7 (seven) days after written notification of the additional charges has been received.


End users of a patient-generated health data program talk about the advantages and challenges they encountered first hand, including connection problems from the patient device end.
Integrating patient-generated health data into care delivery can lead to better remote patient management without adding additional workload to the frontline clinicians. PGHD usually includes health history, treatment history, biometric data, symptoms and lifestyle choices, which patients, family members and other caregivers create or gather to help address a health concern.
In hopes of helping health IT professionals simplify data access, integration, standardization and storage, Validic, a PGHD platform vendor, collaborated with Partners Connected Health, one of the programs at Partners HealthCare. They worked together to provide care teams with access to PGHD collected from digital health apps, wearables and in-home medical devices.
The data can be further incorporated into care plans and EHR systems to provide insights into clinical workflow. After implementing the PGHD program at Partners-operated Revere HealthCare Center in Revere, Mass., for years, Partners and Validic have seen success, as well as challenges from the end-user experience, as noted in a panel at the recent 2018 Connected Health Conference.
To provide effective remote patient management while supporting more active clinical intervention, Drew Schiller, CEO at Validic, brought up the concept of "invisible healthcare" during the panel, which is blending and integrating technologies into care delivery without making extra efforts or ideally even noticing the technology when using it.
"[We] think about how we can help the clinical staff members make the data easily acceptable in their workflow," Schiller said.
As an early adopter of this program, Revere HealthCare Center expected to keep patients out of the doctor's office and instead give patients more touch points through the use of PGHD, according to Christine Goscila, a nurse practitioner at the health center, who has used a blood pressure monitor integrated with PGHD for about two years.
Our mission is to use technology to make personal data actionable. Let the doctors be doctors.
Through automation of PGHD collecting processes, clinicians can free themselves from making phone calls to follow up with patients. In doing so, patients can switch their points of contact from physicians to nurses, who have more availability to care for patients day to day. In addition, the patient-generated data collected by electronic devices are free from manual errors in most cases, which can make relatively accurate outcome predictions and therefore assist with clinical decisions.
"Our mission is to use technology to make personal data actionable," Schiller said. "[A PGHD program] allows the care team to spend less time doing the basic tracking work, but spend more time doing work with highly risky patients. Let the doctors be doctors."
To integrate PGHD into healthcare systems and help with remote patient management, many EHRs today can input such data into a flow sheet, which can be accessed by both patients and clinicians. Streamlining the raw PGHD can make the clinical analysis easier and allow it to be a direct part of care delivery.
During the treatment process, only certain data is needed from patients as outlined by their specific treatment plans. It enables providers to control the data coming into their workflow, especially if they handle a large patient population.
Basically, "in our particular PGHD-connected platform, the providers have to invite the patient to share," while patients cannot decide the input of their health data, according to Kelly Santomas, senior director at Partners HealthCare.
In the meantime, the data interpreted with clinical insights goes out to the apps patients use to collect their health data. From that perspective, the data educates patients about their treatment plans and health conditions. The bilateral access to patient data through this program helps clinicians and patients to collaborate and find out personalized solutions to improve the patient outcomes.
"To patients that have been engaged [in the PGHD program], it's been really incredible," Goscila said. "It's really a learning curve benefiting from patient-generated data and a way to increase the work satisfaction of providers, as well as patients' satisfaction since they have more touches and personalized treatment than they had before."
However, one of the biggest challenges in incorporating PGHD remains the integration of patient-end platforms, which is as important as the interoperability on the provider's side.
"Sometimes the connectivity can become an issue. It's not on the connected health side; it's on their apps' side. And so you are constantly trying to figure out where the connection infrastructure is," Goscila said.
Two improvements clinicians would like to see in the PGHD program are educating patients about the clinical purpose of collecting their personal health data and developing a better way to distribute the workload within care teams to allow more availability. Both are critical steps to push the move to population management by using PGHD.
How would your organization integrate patient-generated data into the clinical workflow?


text:
Inherited Podcasts News
EP. 5, 'REIMAGINING:' A NEW LEGACY
Season 2, Episode 5: "REIMAGINING" -- Denali Nalamalapu talks with queer parents of color about their decision to raise children in intentional, chosen community. YR Media Newsroom staffer shaylyn martos speaks to fellow CHamoru language learners from Guam and the Micronesian diaspora on reviving their Indigenous tongue and their personal connections to their island home.
By Georgia Wright
In this season finale of Inherited, Denali Nalamalapu talks with queer parents of color about their decision to raise children in intentional, chosen community. YR Media Newsroom staffer shaylyn martos speaks to fellow CHamoru language learners from Guam and the Micronesian diaspora on reviving their Indigenous tongue.
About the Storytellers: Denali Nalamalapu (she/they) is a queer, South Indian American writer, artist, and climate communicator. She currently lives in Washington, D.C. She is from Maine. Her family is from Andhra Pradesh, India.
shaylyn martos (she/they) works to provide better representation of LGBTQ+ and Indigenous people in media. As an Associate Producer for YR Media's newsroom, shaylyn manages and mentors interns ages 14-24 in news production and audio commentaries. They also produce projects with outlets like NPR's All Things Considered and the Post Reports podcast. shaylyn was honored as the first Raul Ramirez Diversity in Journalism Fund intern to work with KQED's The Bay podcast — working as a production assistant and reporting her own episode on Stockton's Little Manila. They co-produce and co-host The Happy Hour Newscast and served as multimedia editor for SF State's Golden Gate Xpress. In 2019, shaylyn was honored as an NPR Next Generation Radio Mentee. Off the clock, they can be found reading speculative fiction, cooking their favorite CHamoru foods or playing Dungeons and Dragons with their adventuring party.
JULES: Hey everyone, it's Jules. You're listening to Inherited, a podcast about young people and the climate crisis.
[music creeps in]
We've never really talked about the name of our show, you know, Inherited, before, but its meaning feels especially fitting for the stories we're sharing in this episode. Because today, we're thinking about legacy. And I don't mean legacy in the financial sense of the word, some sort of money you inherit from a dead relative or getting into the college your mom went to.
The kind of legacy we're talking about is the sort of world each generation passes on to the next. And maybe to complicate the term a little bit – how each generation learns and plays and communes and grows and tells stories with those generations that have come before and those who come next.
[percussion plays]
Storyteller Denali Sai Nalamalapu gets at the heart of this question in today's first story. Denali is a queer, South Indian American writer, artist, and communicator from Maine, currently living in Washington, D.C. Her family is from Andhra Pradesh, India. This is "Considering: New Life During Climate Catastrophe."
THANU YAKUPITIYAGE: (recording) Can you say, this is climate change.
CHILD: (recording): This is climate change.
THANU: Is this the climate crisis? (laughter)
CHILD:: Climate crisis, climate crisis, climate crisis!
[theme music plays]
DENALI NALAMALAPU: (narration) I'm Denali. I'm 26. And I'm coming out… as a fan of children.
Before this year, I felt intimidated by kids. They were often so loud, brutally honest, and unpredictable. I also felt weary of societal pressure on me to take care of kids just because I was born female. In the summertime, I resented how the boys played sports while me and the girls were expected to take care of children.
But that's changed over the past year. With the help of some great kids I've been around in my neighborhood, I've let go of my fear and pride and opened myself up to friendship with kids. And it's been awesome. I've learned and grown so much from being friends with kids. I've learned to not take offense when a kid bluntly expresses their feelings and needs. I've delighted at the rampant hypocrisy and confusion of the adult world. I've enjoyed pecking around the yard looking for fun rocks and flowers.
When I see the kids in my life interact with their moms, I feel a deep wish to have the same connection with my own little being. Sometimes I feel a vacant space in between my arms or on my hip where I imagine a child might be someday.
[slower, contemplative music]
But here's the catch: I'm a climate activist. I'm queer. I'm brown. I'm a second-generation immigrant. I have experienced how unjust the world is and how terrifying things are going to get if we don't address climate change immediately. I'm terrified of bringing another life into this world. I'm also a very sensitive person. The idea that my child might be as sensitive as I am, might endure what I've endured mentally, emotionally, and physically by simply existing in this world, fills me with anxiety.
[hopeful music starts]
And then I interact with one of the kids and parents in my life and I think about how lucky society is to have such a curious, vivacious, kind, and loving being in it. Hopefully one that might decide to make some things better. I want to be part of that miracle so bad.
I know lots of people my age are facing the same dilemma and seeking answers from elders who have children at this moment in time. I reached out to an incredible pair of humans I knew would have some thoughts on the matter. I know them through my work in the climate movement, specifically because one of them was my boss turned friend.
Rafa Kidvai is the parent of two-and-a-half year-old Meka.
MEKA: [clip] Climate crisis, climate crisis!
DENALI: They work in the reproductive rights movement. They were raised in Pakistan and currently live in Brooklyn, New York near their best friend and chosen sister, Thanu Yakupitiyage. The two have a podcast called Bad Brown Aunties where they uplift the worldly power of the auntie.
[brief clip of theme song from Bad Brown Aunties]
Thanu is Meka's godparent and a big part of Meka's chosen family. She works in the climate justice and immigrant rights movement. She was raised in Sri Lanka and Thailand. I wanted to talk to them for this story because they have shown me what adulthood can look like when sisterhood, queerness, and community are centered – rather than the heteronormative, isolated, nuclear family future I fear.
Rafa and Thanu clicked immediately. Here they are remembering the first time they met.
RAFA KIDVAI: (field recording) Thanu and I met at Logan Airport our first day in the United States as we headed off to Hampshire College and we were both a little mousy, me less so (shockingly, because I am definitely the mouse now). And I asked Thanu to go get a bag of crisps with me. And it was quite lovely because as an international student it was really nice to say crisps as opposed to potato chips or whatever.
THANU: And we got salt and vinegar crisps, which continues to be our favorite crisps to this day, even though now we call it chips.
RAFA: And then, yeah, we took a bus together and we're forever connected by our joint hatred of someone, which is like one of two ways in which you can build intimacy with someone you know.
[light keys playing]
DENALI: (narration) The main reason I wanted to talk to Rafa and Thanu is that they are both fellow queer people who are raising a child in a chosen family. When I think about the future of this planet, one of my main sources of hope lies in communal living and queer spaces. I've noticed that many adults value their romantic relationships and family above all, leaving their relationships with their friends less tended to. As they age, friends come and go, so they can't always count on them in times of serious need. I don't think humanity has a chance at surviving this crisis, let alone coming out of it stronger, in the isolated models of heteronormative family we default to now.
But in many queer spaces, community is sacred and people take care of one another. I want a future where what's mine is ours. Where I live in a community that cares for collective needs rather than individuals desires.
Growing up in Pakistan, Rafa experienced the joys of chosen family.
RAFA: I grew up with so much chosen family that really, really cared for me, loved me. I was often closer to and really kind of wanted a child that had the same experience on the chosen family front in terms of having multiple adults that they can trust, that they can go to should they need things. And for me, like, I don't think I fully understood the value of it till I was a little bit older maybe. I mean, I enjoyed it a lot as a child. My godfather was the joy of my life. He's the reason I love a fried egg. There's ways in which they shaped me.
MEKA: One for Meka, Mama, and one for Babu, one for Amma, and Meka!
THANU: Thank you so much for making sure we all get fireworks! Okay, here's one for Babu…
DENALI: (narration): Meka is very close with Thanu, as you hear in this clip. They store all their musical toys at Thanu's house, what has become the music house. Thanu is a DJ.
THANU: When they come here, they're always like sort of banging on the drums and stuff. And yeah, they, like, really want to learn how to DJ. So I gave them one lesson and that was super cute. Their DJ name is DJ Honey Biscuit.
RAFA: Also for the longest time they called Thanu D-Gay and not DJ because they just couldn't pronounce it. And it was the funniest thing. Amma D-Gay and Meka D-Gay like they really wanted to be one.
DENALI: (narration) Rafa and Thanu's story of two international students coming to this country without family and building a family together makes me think of how weird I feel when people say it's unethical to have a child during the climate crisis… mainly – white people.
DENALI: I get that odd feeling everytime a group of white people tells the rest of the world what they shouldn't do… sounds like inherited trauma from colonialism, huh? Many white people have spoken out about not having kids because of climate change but I haven't heard from many queer people and people of color. And I wonder, what are they thinking?
Working in reproductive justice and having a close friend in the climate movement, Rafa was surrounded by conversations about the ethics of bringing new life into the world before they were pregnant.
RAFA: I had to contend with the question of like, do I want to carry another life, you know, onto Earth, an Earth that's sick and being mistreated, sort of, but it somehow never quite sat right with me, that argument, and so I still kind of made that decision. I get it, it's not that I don't understand the concern, I think it's an important concern. I think the part that never sat right with me is that I struggle with prescriptive narratives around not having children, especially with communities of color, I think it's a really dangerous sort of slope. And I also think that like, we need connection and relationships and love and there is something really beautiful about that and also it's a source of solidarity and power and resistance. And so it can't be the only answer to that new babies being born are somehow just a sort of burden on the planet. There has to be more than that.
THANU: A lot of this discourse around like, oh, you know, having a kid is irresponsible… Like it falls on like, communities of color. And it's a really dangerous trope, right? Because a lot of the basis of particularly the U.S. environmental movement and climate movement is rooted in population control and that often is a restriction primarily on people of color and immigrants and black and brown folks and indigenous folks and their access to reproductive rights. It's not having kids that the problem, it's the fossil fuel industry. That's the problem.
DENALI: (narration) Growing up in Pakistan, Rafa saw the blatant hypocrisy of colonizing forces simultaneously extracting vital resources from the country and telling poor people in the Global South that they shouldn't have kids because they can't provide for them. Communities like Rafa's in Pakistan, Thanu's in Sri Lanka, and mine in India have experienced apocalyptic conditions due to colonization. They know how to survive. And surviving is what humanity will seek as the climate crisis gets worse.
When you look at history from that angle, to say it's unethical to have children during a climate crisis point blank is just ignorant. There's so much more nuance. And there's so much to learn… Like how did these people survive and live on? Through community care and new generations.
RAFA: (field recording) Building trust beyond blood is such an important lesson because what it teaches you is that what's useful is connection and intimacy, and people show you with time, whether they're trustworthy.
This idea of Thanu being both a friend and family, like, Meka would share their last French fry with Thanu, right? And I think that there is something really special about teaching a child that really early. About who gets to share space with you and that and that just because someone has blood, for instance, doesn't mean they're safe. And just because someone is chosen family doesn't mean they won't resource your life. Like, I imagine that if something happened to me financially and I needed financial support, the reason I would float is that Thanu would make it happen.
THANU: Yeah, I've learned a lot about like kindness and boundaries from Meka, but like it actually makes me feel like it is possible to have a queer future that is kind, and kinder potentially than the world we live in now.
ADULT: Sixty degrees in February?
MEKA: Sixty degrees in February!
ADULT: Can you say stop fossil fuels?
MEKA: Stop fossil fuels!
ADULT: Oh my god, yes! Stop fossil fuels…
[theme music]
DENALI: (narration) Talking to Rafa and Thanu has both made me want to have a kid more badly because Meka seems to bring them so much joy and it makes me feel less fussed about it because Meka isn't Thanu's biological kid but they have a beautiful, rich relationship. I love being part of other kids' lives. You get to have all the fun times with them and deal with very few of the hard and exhausting times that are inevitable in child rearing.
Also being pregnant, giving birth, the process of adopting a kid – all these things are no joke. It's nice to just play. I love experiencing the intimacy of deep community. It feels rare these days, especially during a pandemic and as I live in a big city. I truly don't know if I'll have a kid one day, but I do know that I will foster a strong, queer community around me no matter where I end up.
[kids yell, music plays out]
JULES: You can follow Rafa on Twitter at @rkidvai and Thanu on Twitter and Instagram at @ty_ushka. They have a podcast called Bad Brown Aunties. You can listen to the first season at badbrownaunties.com. You can follow Denali on Twitter at @Denali_Sai and subscribe to their climate newsletter Entropy Inherited.
[MIDROLL BREAK]
JULES: Like the repercussions of a changing climate, our language has the ability to transcend and permutate from generation to generation.
The next and final storyteller explores this transformative power of language, and the way it is preserved, learned, forgotten, remembered, and inherited.
shaylyn martos works to provide better representation of LGBTQ+ and Indigenous people in their current role at YR Media. A producer, editor, and host, they have also been honored as a NPR Next Generation Radio Mentee. Off the clock, shaylyn can be found reading speculative fiction, cooking their favorite CHamoru foods, or playing D+D.
Now, I'll pass it over to Shaylyn for the final story of the season. It's called, "Our Language is Our Mothers' Gift."
SHAYLYN MARTOS: Håfa Adai hamyo todus. Guahu si Shaylyn yan sumåsaga giya Oakland, California. I familia ku manginen i Guahan giya Islas Mariana. Taotao-ku i CHamoru.
[bubbly music comes in]
Hello all. My name is Shaylyn and I live in Oakland, California. My family is from Guam in the Mariana Islands. My people are CHamoru, the Indigenous people of Guam and the northern Mariana Islands. Our home is a Microniesian paradise.
[island soundscape fades in]
Imagine water so clear, warm and inviting that you cannot help but run in to feel the tåsi envelop you in love. Imagine jungles of the most verdant and fragrant tropical flora, of creatures both familiar and unfamiliar, carabao with long fur and horns, crows that caw with the knowledge of ancient tongues. Imagine the smell of fiesta food and the sulfur of fireworks in island celebrations.
[crows caw, fireworks shoot off in distance, music fades]
For over 3,500 years, CHamorus' have sailed and stewarded the closest land to the deepest part of the ocean. We've maintained a sacred relationship with our land and sea, even through 600 years of Spanish colonization, Japanese occupation and American militarization.
Because the tenets of our culture of gratitude and reciprocity clash against the imperialist powers that hope to silence us, they desecrate the land, poison our water, shoot bullets through our forests.
[synth noises]
Indigenous people across the Pacific Islands contribute the least to climate change but are forced to live with its disastrous effects including rising tides, coral bleaching, and straight nuclear testing.
[guitar strums come in]
Most of my family left our home but the U.S. military is still there. We are spread across the states, often far from one another. And that's what's most important to Chamorus – family. We support and uplift our community because we know the pain of stolen lives, land and language.
So when I learned there was a professor from the University of Guam and the Guam Museum offering Chamoru classes online — and for free — I immediately signed up. Over a hundred others spend their Saturday mornings in Guam or the CNMI, or Friday afternoons stateside, learning and practicing Chamoru with our siñot, Dr. Michael Lujan Bevacqua.
These classes give me much more than the basics of a language shamed and beaten from my people — they are a chance to share our stories, our culture, our wisdom. We're building community, healing from the devastation that has already happened, and building resilience for the difficult climate-charged years to come.
One of my classmates, Linda Calvo, reached out to me, eager to share her experience learning Chamoru later in life. She remembers wonderful things about growing up on Guahan in the 60's, till her job as a flight attendant took her across the world.
[guitar fades out.]
LINDA CALVO: I grew up at a time when family was extremely important and we had community. We had a lot of community. We had a lot of family gatherings, fiestas, so much to do, so many things to see…
LINDA: [Singing in CHamoru] You know that song in America, they say, how are you. In the Philippines kumasta kayo. But when you are in Guam, you simply say håfa adai, håfa adai. You know that song. Have you heard it?
I had always wanted to learn our language, but as a young person, we weren't allowed to speak our language. It was against the law. There were signs, "In English Only." And I tried to speak CHamoru, but it was not allowed in school… And I did not speak it at home. My parents spoke to each other in CHamoru, but they spoke to us in English.
SHAYLYN: (narration) A large part of why Linda's family did not speak the language was because her mother was a teacher, and her father was the mayor of the village Tamuning.
LINDA: In the late sixties we had the Vietnam war. So it was pretty, pretty bad. Always having the bombs going up the island, from Naval Air Station to the Anderson Air Force Base. I remember when we were drinking pure water and we were going to the fresh water pools and stuff like that. And now it's so sad that everybody's drinking, processed off filtered water and all that. And the toxicity on our water is very scary to me. In fact, I'm being treated for cancer right now. And my toxicity level was very high. And I say that that's probably from growing up on the island with all the toxic stuff that was going on with the militar and all that. Probably from growing up and having the the the water were were being were being poisoned in a way.
[dark synth noises]
Actually I do feel it in the class. I feel that there is a revival. I do have that feeling of people wanting to connect with each other, as you call it, inåfamaolek, to make things good, to make things right. And that is part of the old ways, you know. But I feel now that people have a lot of pride and are trying to learn about the culture. And as they're learning about the culture, they're feeling like they're finding themselves. In fact, that was an issue I had, was not knowing really who I am inside. And I think I'm still in that process of discovering myself, as everybody else is.
You know, so when we connect to our language and to our culture and to our island, we are connecting to our ancestors and our past. And we're reaching back. Into the past and bringing it forward to the future… You see what I'm saying? The island itself cannot stand alone. We don't have the numbers and we don't have the land and we don't have that. But we do have our culture and we have our people, just like the American Indians, the Indians in Alaska, and all the Native people all over the world.
And we need to have the pride in our origins, no matter where we are in the world, we can carry a piece of our island with us… when we connect to our language and to our culture and to our island, we are connecting to our ancestors.
[light music plays]
SHAYLYN: I walked away from my conversation with Ms. Linda feeling an odd sense of peace. The pressure of immediate danger to our land and our people is heavy, at the same time I'm grateful to have the chance to connect, share and laugh — especially with someone of her generation.
[new synths come in]
Signora Dorothy Castro Pocaigue grew up and raised her daughter on Guam. She's a retired educator, who now spends her days caring for her 1-year-old grandson. We call elders in our community Auntie or Uncle, but in this case, she actually is my auntie, related through my grandmothers' extended family.
SIGNORA DOROTHY CASTRO POCAIGUE: [Chamoru introduction] I na'ån hu si Dorothy Castro Pocaigue. Dededo, taotao Dededo, Guahan. And that's the extent of my fluent CHamoru. Then I have to go [incoherent].
SIGNORA DOROTHY: My culture has always been very important to me. The lights, the rituals and the and, you know, the celebrations and all of that. The family, though those concepts are ingrained in me again, it's just that I can't express them in language. So I'm learning. The desire to speak Chamoru is very strong in me now, because I want to be able to pass it on to my grandson.
For all intents and purposes, the Chamoru language should have died hundreds of years ago but why it's lived is because of the Chamoru mothers. Probably unknowingly ,they kept the language alive because that was the language for their children. Because it was a matrilineal society the mothers were in charge, so they spoke what the mothers spoke. And it was through those years, through that lineage, that the language was able to persevere.
Of course, the Japanese didn't want them to say anything. And the Americans wanted to make sure that the CHamoru people were sufficiently oppressed, so that they can be able to control the resources, which is the land and the sea.
And now, look, you know, it's going full circle. Even a lot of the CHamorus, Unfortunately, the CHamorus here in the states, they're resisting. We don't need CHamoru…
It's not a language of commerce. It's not a language of the world, of business use or of world for world recognition. But it is a language that keeps the people of a group of people alive, and we're proud of.
[guitar music re-enters]
And I'm getting better. My fluency is getting better. As you can tell, I like to talk. I like to talk story. Yes, we are definitely storytellers. So este ki, adios. Say hi to your mother for me!
SHAYLYN: Auntie Dorothy touched on my favorite aspect of our history — matrilineal society. How Chamoru resistance to colonization, militarization and climate change flows through the mothers to their children, and their children's children.
[darker synth music fades in, and out, new lo-fi music enters]
Taryn Aguon grew up on Guam. She's from the village of Chalan Pago and grew up surrounded by Chamoru speakers, even if she couldn't always talk back. She left for college stateside, like many of our generation and younger, and started her family here — but she's been feeling out of touch with her identity.
TARYN AGUON: In my first stretch out here, coming out for college, I had major culture shock and one that I did not anticipate that I would experience. It was really big for me. Yeah.
Actually, my wife is CHamoru, she's from Guam too. And our fathers actually grew up on the same street. They grew up together. So she and I have known each other since we were younger. We played ball together, too, back on the island before we came out to go to college.
SHAYLYN: Taryn now lives with her wife and their daughter Talyn in Northern California. It's an intergenerational home — before starting preschool, Talyn's primary caregiver was her grandma.
TARYN: So as far as the language goes, my mother absolutely speaks CHamoru. She also speaks English. And it was one of those, it's it's a very common thing that you see in families done from, you know, with her generation and stuff where it's she and her mother would talk CHamoru because my grandmother talked CHamoru and could like automatically turn it off when she's talking to us…
In the beginning there was almost like a sense of embarrassment and shame and guilt about signing up for a class of a language that should have been so natural to me. And, and it was, in the beginning of my life, in the first half of my life, and then it wasn't. And there were moments in my adult life living out here that it started to feel like I had lost a sense of identity. And for me, a strong part of it is language.
[dark synths]
And so in the most simplest of terms, I think my favorite phrase is just put fabot. It just means please and so like. So like, for example, where as a kid you hear, when we're running around, we're getting dirty and doing things and it's time to eat. And like my mother would say, or my grandmother would say then, put fabot. There are relationships here. It's about the relationship.
[slow music enters]
Our culture stems like it's rooted in, in generosity and giving and, and, and being there for others. And so in kind of like my quest for myself, like really finding my true authentic self as a, as a gay person and, you know, as, as a true moral person. I felt that this was the only way to really start my journey, was through language. And in the language, you know, it would do a lot. It would let me hear the stories of those before me. And it would allow me to pass on those stories in a way that they told it, not in the way that I interpreted their stories to be.
And it continues, although I'm a million – not a million, but so far away, I feel that this is the one way to truly stay connected, because I'm not very certain when we'll return home.
[darker, slower music]
And it's the one part that I felt like I've had to, like, really work on in terms of our culture and my, and my identity. And so seven generations from now, right, speaking in those terms, I would love to ensure that my child knows where we're from and who we are, and that we definitely have a place in this world as much as anybody else.
[music fades out]
SHAYLYN: For thousands of years the cornerstones of our culture — community, gratitude, reciprocity, inafa'maolek — apply to the people, of course. But just as much for the hånom, tåno yan aire. Our island home is ours to protect, as it provides for us.
But the American military continues to bulldoze the ancient limestone forest of Litekyan to finish five air force firing ranges on our ancestral land, dangerously close to the primary water source on the island. Bullets fly across what was once the habitat of so many of our non-human neighbors, endemic to Guahan and the Marianas.
And it is hard for many of us to ask for help, because even in a culture based on reciprocity we have been conditioned to suffer in silence.
What Taryn said about language being the first step towards not just your people, but yourself? That hit hard. And it was a common theme with these three women from three different generations — who are we, if we are not here for each other.
So I'm doing my best to create space within my life for yes, the language, but also everything that comes with it. Like the smile on my mom's face when I tell her "hu guaiya hao!" and she sings it back to me. Or the talks with my cousins about organizing efforts to protect Litekyan.
Introducing my chosen family to our food, ordering some to shred chicken for kelaguen while I make titiyas. I'm practicing for when I have my own family. And my children, and their children, however far away they may be — will know the words and legends of their people.
We are storytellers, after all.
Saina Ma'å'se for listening to our stories. Biba Guahan, CNMI, Islas Pasifika, yan fino' Chamoru.
JULES: If you want to follow shaylyn and their work, their handle is @ shaylyn martos on all social platforms, and their website is shaylynmartos.com.
Inherited is brought to you by YR Media, a national network of young journalists and artists creating content for this generation. We're distributed by Critical Frequency, a women-run podcast network founded by journalists.
"Considering: New Life During Climate Crisis," was written and reported by Denali Sai Nalamalapu. and sound designed by Jules Bradley. Special thanks to Denali's little friends, Juniper, Camille, Mona, and Monica, for giving them joy and play. And to Thanu and Rafa, for their time, candor, and vulnerability.
"Our Language is Our Mothers' Gift" was written, reported, and read by shaylyn martos and sound designed by Georgia Wright. Special thanks from Shaylyn, quote, "to my mother and the mothers before her, Prutehi Litekyan and Protect Guam Water, and to the people fighting for our ancestral land.".
Our co-creators and senior producers are Jules Bradley and Georgia Wright. Our Executive Producer is Amy Westervelt, and our sound engineer is James Riley. Our Director of Podcasting is Ray Archie, and our interns are Ichtaca Lira and Chaitanya Dendekar. Special thanks to Rebecca Martin and Kyra Kyles.
Original music for this episode created by these young musicians at YR: Christian Romo, Anders Knutstad, Noah Holt, Jacob Armenta, Chaz Whitley, Michael Diaz, Sean Luciano Galarza. Music direction by Oliver "Kuya" Rodriguez and Maya Drexler.
Art for this episode created by YR's Ariam Michael. Art direction by Brigido Bautista and Marjerrie Masicat. If you like our show, please throw us a rating or maybe even a review on the Apple Podcast app. It honestly helps us a LOT. You can also follow us on Instagram and Twitter @inheritedpod.
That's it for this season of Inherited. We are so grateful to each and every one of the Season 2 storytellers: Jasmine Butler, Jasmine Hardy, Maggie Wang, Mukta Dharmapurikar, Kenia Hale, Neil Luczai, Tife Sanusi, Denali Nalamalapu, and Shaylyn Martos. You have made this season more special than we could have ever imagined.
If you want to learn more about this exemplary cohort of storytellers, head to our website at yr.media/inherited.
And as always, special thanks to our cats, Dobby Bradley and Frodo Scully-Wright.
See you next season!
FURTHER READING/RESOURCES ABOUT GUAM, FROM SHAYLYN
Famalao'an Rights — an organization which fights for accessible reproductive healthcare and education on Guam, where women, trans folks and allies began fighting for basic rights in the 1980's.
The Guam Bus — a Fino' Chamoru organization that promotes, educates and publishes books in our language. The same Guam Bus that holds our weekly lessons.
Read our literature — like activist and human rights lawyer Julian Aguon, author of No Country for Eight-Spot Butterflies and poet Craig Santos Perez, writer of the From Unincorporated Territory chapbook series and co-editor of many Micronesian and Pasifika anthologies.
Take a moment to follow and share the work of social media groups — Nihi Kids is a youth-focused video series on culture and history.
Check out Chamoru news media — journalists working for The Yappie, the Guam Daily Post, local Guam stations and even Vice. Expand your understanding of Pasifika climate activists and artists outside of the Marianas.
Inherited News Podcasts
EP. 4, "EMBODYING": ECO-MEDITATION AND AN ACTIVIST CHORUS
EP. 3, "REMEMBERING": LOVING OUR CHANGING LAND
EP. 2, "UNCOVERING": NOISE POLLUTION + ENVIRONMENTAL RACISM, IN SOUND


CTET Online Application CTET 2019 July Exam Date CBSE CTET 2019 Notification CTET Eligibility Central Teacher Eligibility Test is National Level entrance test organized by Central Board of Secondary Education twice in a year. Through CTET (Central Teacher Eligibility Test) Central Board of Secondary Education provides the opportunity to candidates to become a teacher in Central Government Schools likes NVS, KV Sangathan etc.
CBSE | CTET | Central Teacher Eligibility Test July 2019 Application Form: Central Board of Secondary Education has going to conduct the (CTET) Central Teacher Eligibility Test in July 2019 across the country. Candidates who aspiring to join the teaching profession and complete the teacher education courses can apply for the CTET July 2019. The applications will be accepted through online mode only. The online applications will start from 05-02-2019 and the online application form will close on 05-03-2019. Here candidates can find out all important details such as Eligibility, age limit, vacancies, salary, CTET Form Dates and how to apply for CBSE CTET July 2019.
Senior Secondary Class with 50% Marks and passed or appearing in final year of 2 years diploma in Elementary Education.
Senior Secondary Class with 45% Marks and passed or appearing in final years of 2 years diploma in elementary education.
Senior Secondary Class with 50% Marks and passed or appearing in final years of 4 years bachelor of elementary education.
Graduation and passed or appearing in final year of 2 year diploma in education (Special Education).
Graduation with at least 50% Marks and passed or appearing in 1 year bachelor in education.
Graduation with at least 45% Marks and passed or appearing in 1 year bachelor of education.
The Aspiring Candidates can apply through online mode only. The online application process will start from 05 Feb 2019 on the official website www.ctet.nic. The last date for submitting online application form is 05 March 2019. Please read the official notification before filling the application form.


The Piano Concerto No. 24 in C minor, K. 491, is a concerto for keyboard (usually a piano or fortepiano) and orchestra composed by Wolfgang Amadeus Mozart. Mozart composed the concerto in the winter of 1785–1786, finishing it on 24 March 1786, three weeks after the completion of the Piano Concerto No. 23 (K. 488) in A major. He premiered the work in early April 1786 at the Burgtheater in Vienna.
The above text from the Wikipedia article "Piano Concerto No. 24 (Mozart)" text is available under CC BY-SA 3.0.