Sunday, December 7, 2025

test

Untranslatable Words for Joy

A small collection of beautiful words from around the world that capture different shades of joy and contentment.

Word Origin Meaning
Joie de vivre French Keen or buoyant enjoyment of life.
Waldeinsamkeit German The feeling of solitude and peacefulness when alone in a forest.
Ayodele Yoruba Joy in the home.
Tarab Arabic Musically induced ecstasy.
Arbejdsglæde Danish Satisfaction and enjoyment derived from a good job or work.
Firgun Hebrew Happiness in another’s success; unselfish joy on behalf of someone else.
Schadenfreude German Enjoyment obtained from the troubles of others.
Gökotta Swedish Rising early in order to go listen to birds singing outside.
Ikigai Japanese The things that give zest and joy to life.
Hygge Danish A cozy quality that makes a person feel content and comfortable.

App Test

Tuesday, September 23, 2025

Test

An easy one - but not sure if it'll lead to any broad transfer (that is, will this facility lead to better performance in other areas?). It did work out my mnemonic creation ability though.. Next, need to get into speed cubing. I'm a laugh - I can do the thing walking to the grocery store, but I'm taking 10 minutes :)


Here are the mnemonics (add a comment to suggest better ones!)

ri di rd for putting white corner pieces correctly
(Duolinguist has a good one - Ride the Dirty Red Dragon) (that doc is ood, but, this one, if a bit long w, works)

Then, for a top to right re-positioning of a middle layer edge piece, it's

ur i(ur) i(uf) uf -- probably better remembered as UR i(UR UF) UF -- so you basically only need UR, UF at the tip of your tongue.

For a top to left re-positioning of a middle layer edge piece, it's

Wiley Uluf used WiFi (UiLi UL UF UiFi)

Then, if you have just one yellow center piece or the rev-L, then it's

The FURry doc said URF : FUR i(URF)

If it's a horizontally oriented straight yellow line, it's

Beat a straight path to the FRUit tree to find the it's rough :

FRU i(RUF)

Now you have your cross.

If you have no corner pieces correct, you orient one of the side yellows at 8 o'clock

If you have one correct, in addition to the cross, put that (top edge of course) at
7 o'clock. Note that 7 o'clock top-edge is different from 7 o'clock vertical faces..
Vertical faces go from 12 o'clock to 11 o'clock. The top edges are 12, 1, 3, 4, 6, 7, 9, 10

If you have 2 corners correct, then you need to orient one vertical yellow facing you
at 7 o'clock

Do : Are you Rui's sister? are you Uri? RU RiU RU URi
(Riu is Rui's sister - I actually know somoene called Rui)

Do this till you get the top face completely jaundiced.

Then, see how many corner pieces are correct. If it's none, do the below move once.
If it's one, same gun. If it's 2, then if it's
AB
CD

for the corner pieces, you need to position so that AB are correct, or AD are correct.
Then do the move :

Rif and Ribb Arfie, Ribb Ararui (yes, I know. If you have a better one, do share)

This is : RiF RiBB RFi RiBB RRUi

You may have to do this more than once. Once done, you'll only have the center pieces to
work on. For that, you have to see whether you want them to move clock wise or counter.

For clockwise :

Inside FF and F (Father Franklin is Famous)

Uluf split himself watching a rif of FLIR. (Uluf becomes UL something UF)
Something is RiF FLiR

So : FF UL RiF FLiR UF F

May have to do it more than once.

For counter clockwise, you just invert the U's in Uluf --> UiLUiF

Now, what if you wanted to get into speed cubing? Where should you start?

🧩 Drill #1 — Cross Mastery (White Cross on Bottom)

Goal:
Solve the white cross on the bottom layer blindly and consistently under 10 seconds.

Why this first:
Every speedcubing method (CFOP, Roux, ZZ, etc.) depends on quick and intuitive cross building. The cross is the foundation for every solve, and getting it efficient and instinctive will make all other progress easier.


Read more

🧠 How to Practice

  1. Scramble normally (random scramble).

  2. Before turning, look for how to solve the white cross in your head. Don’t start turning until you can see the full 4-edge solution.

  3. Execute the cross on the bottom, not top. This trains your spatial awareness for full inspection planning.

  4. Time yourself only for the cross stage. Aim for 15 s → 10 s → 7 s.


📈 Focus Points

  • Keep the white center on bottom from the start — no cube rotations mid-solve.

  • Minimize move count: optimal crosses are often 6–8 moves.

  • Learn to plan ahead during the 15-second WCA inspection.


⏱️ Drill Routine

  • 10 scrambles × 3 rounds daily.

  • After each round, review your cross solutions — can you do it in fewer moves?

  • Use tools like csTimer or CubeSkills cross trainer to visualize optimal crosses.


Once you can reliably execute a white cross under 10 s with < 8 moves average, we’ll move to the F2L pair-insertion drill — that’s the next natural step.


Thursday, September 11, 2025

Basic Read Aloud

This is the text that will be read aloud when the button is pressed. I am Henry Kissinger. Better believe it.

Sunday, August 3, 2025

How to Read More

How to Add Inverted “Read more / Read less” with Arrows in Blogger

This tutorial shows you how to create expandable sections inside your Blogger posts with a “Read more” pill that inverts its colors, switches to “Read less” when open, and rotates its arrow ▶ → ▼. A second “Read less ▲” button is also placed at the end of the expanded section.


Live Demo

Section A

This is the teaser for Section A. It remains visible.

Read more

This is the hidden content for Section A. It becomes visible when expanded. You can put multiple paragraphs, images, or lists here.

Section B

This is the teaser for Section B. Readers can decide to open it.

Read more

Expanded content for Section B. Each block works independently.


Step 1: Add the CSS + JS once in your Theme

Go to Theme → Edit HTML in Blogger and paste this just before </head>.

<style>
/* Read-More styles */
.rm-section{
  border:1px solid rgba(221,221,221,.6);
  border-radius:8px;
  padding:.75rem 1rem;
  margin:1rem 0;
}
.rm-section details{ margin:0; }
.rm-section summary{
  cursor:pointer; font-weight:600;
  display:inline-flex; align-items:center; gap:.4em;
  list-style:none;
}
.rm-section summary::-webkit-details-marker{ display:none; }

/* Right arrow ▶ rotates down ▼ on open */
.rm-arrow{
  display:inline-block;
  transition:transform .2s ease;
  transform:rotate(0deg);
}
.rm-section details[open] .rm-arrow{ transform:rotate(90deg); }

/* Inverted pill */
.rm-pill{
  display:inline-block;
  padding:.15em .45em;
  border-radius:.35em;
  font-weight:700;
  border:1px solid transparent;
}

/* Footer Read less */
.rm-footer{ margin-top:.75rem; text-align:left; }
.rm-footer .rm-less-btn{
  display:inline-flex; align-items:center; gap:.4em;
  cursor:pointer;
  padding:.15em .45em;
  border-radius:.35em;
  font-weight:700;
  border:1px solid transparent;
}

/* Optional: keep the bottom Read-less visible as you scroll long content */
.rm-footer { 
  position: sticky; 
  bottom: 0; 
  padding-top: .5rem; 
  background: linear-gradient(to bottom, transparent, rgba(0,0,0,0.06));
}

</style>

<script type="text/javascript">
//<![CDATA[
(function onReady(fn){document.readyState==='loading'?document.addEventListener('DOMContentLoaded',fn):fn();})(function(){
  function getEffectiveBG(node){
    while(node && node!==document.documentElement){
      const bg=getComputedStyle(node).backgroundColor;
      if(bg && bg!=='rgba(0, 0, 0, 0)' && bg!=='transparent') return bg;
      node=node.parentElement;
    }
    return getComputedStyle(document.documentElement).backgroundColor||'#000';
  }
  function invertPill(el, ref){
    const bg=getEffectiveBG(ref);
    const fg=getComputedStyle(ref).color || getComputedStyle(document.body).color || '#fff';
    el.style.backgroundColor=fg;
    el.style.color=bg;
    el.style.borderColor=fg;
  }
  document.querySelectorAll('.rm-section details').forEach(details=>{
    const section=details.closest('.rm-section')||details;
    const summary=details.querySelector('summary');
    const topPill=summary.querySelector('.rm-pill');
    invertPill(topPill, section);
    // Add bottom "Read less"
    if(!details.querySelector('.rm-footer')){
      const footer=document.createElement('div');
      footer.className='rm-footer';
      footer.innerHTML=`<button type="button" class="rm-less-btn">
        <span>Read less</span> <span aria-hidden="true">▲</span>
      </button>`;
      details.appendChild(footer);
      invertPill(footer.querySelector('.rm-less-btn'), section);
      footer.querySelector('.rm-less-btn').addEventListener('click',()=>{
        details.open=false;
        summary.focus({preventScroll:true});
        summary.scrollIntoView({block:'nearest',behavior:'smooth'});
      });
    }
    function updateLabels(){
      topPill.textContent=details.open?'Read less':'Read more';
      invertPill(topPill, section);
      const footerBtn=details.querySelector('.rm-less-btn');
      if(footerBtn) invertPill(footerBtn, section);
    }
    details.addEventListener('toggle', updateLabels);
    updateLabels();
  });
});
//]]>
</script>

Step 2: Use This Markup in Your Posts

Switch to HTML view in the post editor and add this where you want a Read-More block:

<div class="rm-section">
  <p>Teaser goes here.</p>
  <details>
    <summary>
      <span class="rm-pill">Read more</span>
      <span class="rm-arrow" aria-hidden="true">▶</span>
    </summary>
    <p>Expanded content goes here.</p>
  </details>
</div>

You can repeat this block multiple times in a single post. Each will work independently.


Step 3: That’s it!

Now your Blogger posts can have professional “Read more / Read less” sections with inverted labels and rotating arrows. Copy the code above into your theme once, and reuse the snippet in any post.


Saturday, June 7, 2025

Read More

Section A

This is the teaser for Section A. It gives a quick idea of what’s coming.

Read more

Foo bar baz — here is the longer explanation of Section A…

Section B

This is the teaser for Section B. Just enough text to intrigue the reader.

Read more

Lorem ipsum dolor sit amet, consectetur adipiscing elit…

Sunday, April 5, 2020

The Frikking Idiots of Coursera

Stack Overflow did it. Why not you?

A dark mode please! I don't want all that white screen page background yelling at me.