<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Seminars &amp; Conferences - Tag - Zhiverse</title><link>https://yao-chih.netlify.app/en/tags/seminars-and-conferences/</link><description>Seminars &amp; Conferences - Tag - Zhiverse</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>yaochihh@gmail.com (Josh)</managingEditor><webMaster>yaochihh@gmail.com (Josh)</webMaster><copyright>Zhiverse</copyright><atom:link href="https://yao-chih.netlify.app/en/tags/seminars-and-conferences/" rel="self" type="application/rss+xml"/><item><title>[Thought] The 35th South Taiwan Statistics Conference</title><link>https://yao-chih.netlify.app/en/the-35th-south-taiwan-statistics-conference/</link><pubDate>Wed, 15 Apr 2026 10:00:58 +0800</pubDate><author>Author</author><guid>https://yao-chih.netlify.app/en/the-35th-south-taiwan-statistics-conference/</guid><description><![CDATA[<div class="featured-image">
                <img src="https://raw.githubusercontent.com/Josh-test-lab/website-assets-repository/refs/heads/main/posts/The%2035th%20South%20Taiwan%20Statistics%20Conference/cover%20image.webp" referrerpolicy="no-referrer">
            </div><!-- filpclock 的 css -->
<link rel="stylesheet" href="/css/filpclock.css">
<div class="timeline-flipclock">
<div class="flip-wrapper" id="35th-stsc" data-target-time="2026-06-25T09:30:00&#43;08:00" data-format="year,month,day,hour,minute,second">
    <div class="flip-clock-title"
         data-past=""
         data-future="">
    </div>
    <div class="flip-class"></div>
</div>

<script>
document.addEventListener("DOMContentLoaded", function () {
  const clockId = "35th-stsc";
  const wrapper = document.getElementById(clockId);
  const clock = wrapper.querySelector(".flip-class");
  const isLiveClock = wrapper.dataset.targetTime === "now";
  const targetTime = isLiveClock ? new Date() : new Date(wrapper.dataset.targetTime);
  const format = wrapper.dataset.format.split(",");

  const timeLabels = {
    year:   "years",
    month:  "months",
    day:    "days",
    hour:   "hours",
    minute: "minutes",
    second: "seconds"
  };

  const titleDiv = wrapper.querySelector(".flip-clock-title");
  const pastTitle = titleDiv.dataset.past?.trim();
  const futureTitle = titleDiv.dataset.future?.trim();

  const isPast = (isLiveClock || new Date() > targetTime);

  if (isPast) {
    if (pastTitle && pastTitle !== "/") {
        titleDiv.textContent = pastTitle;
    } else {
        titleDiv.textContent = "Passed";
    }
    } else {
    if (futureTitle && futureTitle !== "/") {
        titleDiv.textContent = futureTitle;
    } else {
        titleDiv.textContent = "Remaining";
    }
  }

  const pad = n => String(n).padStart(2, "0");

  function getTimeDiff(target) {
    const now = new Date();
    let diff = Math.abs(target - now) / 1000;
    const past = now > target;

    const timeParts = {
      year: 0, month: 0, day: 0,
      hour: 0, minute: 0, second: 0
    };

    
    if (isLiveClock) {
      timeParts.year = now.getFullYear();
      timeParts.month = now.getMonth() + 1; 
      timeParts.day = now.getDate();
      timeParts.hour = now.getHours();
      timeParts.minute = now.getMinutes();
      timeParts.second = now.getSeconds();
      return { past: true, timeParts };
    }
  
    
    const temp = new Date(past ? target : now);
    const ref = new Date(past ? now : target);

    timeParts.year = ref.getFullYear() - temp.getFullYear();
    timeParts.month = ref.getMonth() - temp.getMonth();
    timeParts.day = ref.getDate() - temp.getDate();
    timeParts.hour = ref.getHours() - temp.getHours();
    timeParts.minute = ref.getMinutes() - temp.getMinutes();
    timeParts.second = ref.getSeconds() - temp.getSeconds();

    
    if (timeParts.second < 0) { timeParts.second += 60; timeParts.minute--; }
    if (timeParts.minute < 0) { timeParts.minute += 60; timeParts.hour--; }
    if (timeParts.hour < 0) { timeParts.hour += 24; timeParts.day--; }
    if (timeParts.day < 0) {
      const daysInPrevMonth = new Date(ref.getFullYear(), ref.getMonth(), 0).getDate();
      timeParts.day += daysInPrevMonth; timeParts.month--;
    }
    if (timeParts.month < 0) { timeParts.month += 12; timeParts.year--; }

    return { past, timeParts };
  }

  function createClockDisplay() {
    wrapper.classList.add(clockId);
    format.forEach(unit => {
      const div = document.createElement("div");
      div.className = "flip-unit";
      div.dataset.unit = unit;

      div.innerHTML = `
        <div class="flip-number" id="${clockId}-flip-${unit}">00</div>
        <div class="flip-label">${timeLabels[unit]}</div>
      `;
      clock.appendChild(div);
    });
  }

  function updateClock() {
    const { past, timeParts } = getTimeDiff(targetTime);

    format.forEach(unit => {
      const val = timeParts[unit];
      const el = document.getElementById(`${clockId}-flip-${unit}`);
      if (el.textContent !== pad(val)) {
        el.style.transform = "rotateX(180deg)";
        setTimeout(() => {
          el.textContent = pad(val);
          el.style.transform = "rotateX(0deg)";
        }, 150);
      }
    });
  }

  createClockDisplay();
  updateClock();
  setInterval(updateClock, 1000);
});
</script>

</div>]]></description></item><item><title>[Thoughts] 2024 Joint Conference of University Administrators for Teacher Education</title><link>https://yao-chih.netlify.app/en/2024-joint-conference-of-university-administrators-for-teacher-education/</link><pubDate>Mon, 12 Jan 2026 17:32:43 +0800</pubDate><author>Author</author><guid>https://yao-chih.netlify.app/en/2024-joint-conference-of-university-administrators-for-teacher-education/</guid><description><![CDATA[<div class="featured-image">
                <img src="https://raw.githubusercontent.com/Josh-test-lab/website-assets-repository/refs/heads/main/posts/2024%20Joint%20Conference%20of%20University%20Administrators%20for%20Teacher%20Education/cover%20image.webp" referrerpolicy="no-referrer">
            </div><p>The cover photo was taken at the 2024 Joint Conference of University Administrators for Teacher Education, held on November 1, 2024.</p>
<div class="details admonition tip open">
        <div class="details-summary admonition-title">
            <i class="icon fas fa-lightbulb fa-fw" aria-hidden="true"></i>Tip<i class="details-icon fas fa-angle-right fa-fw" aria-hidden="true"></i>
        </div>
        <div class="details-content">
            <div class="admonition-content">Written on November 1, 2024</div>
        </div>
    </div>
<p>The Joint Conference of University Administrators for Teacher Education is an important annual event for Taiwan&rsquo;s teacher education system, where administrators from teacher-training universities across the country come together to discuss education policies, share experiences, exchange insights on policy implementation, and engage in face-to-face dialogue with officials from the Ministry of Education. The conference functions as a convergence point, gathering perspectives, expectations, and questions from all sides, gradually shaping the future direction of education. For me, it represents one of the most essential spaces for dialogue in the education sector, not only to review the current situation, but also to explore future strategies and confirm policy directions.</p>]]></description></item><item><title>[Thought] The 34th South Taiwan Statistics Conference</title><link>https://yao-chih.netlify.app/en/the-34th-south-taiwan-statistics-conference/</link><pubDate>Sun, 08 Jun 2025 18:06:17 +0800</pubDate><author>Author</author><guid>https://yao-chih.netlify.app/en/the-34th-south-taiwan-statistics-conference/</guid><description><![CDATA[<div class="featured-image">
                <img src="https://raw.githubusercontent.com/Josh-test-lab/website-assets-repository/main/posts/The%2034th%20South%20Taiwan%20Statistics%20Conference/cover%20image.jpg" referrerpolicy="no-referrer">
            </div><!-- filpclock 的 css -->
<link rel="stylesheet" href="/css/filpclock.css">
<div class="timeline-flipclock">
<div class="flip-wrapper" id="34th-stsc" data-target-time="2025-06-19T09:30:00&#43;08:00" data-format="year,month,day,hour,minute,second">
    <div class="flip-clock-title"
         data-past=""
         data-future="">
    </div>
    <div class="flip-class"></div>
</div>

<script>
document.addEventListener("DOMContentLoaded", function () {
  const clockId = "34th-stsc";
  const wrapper = document.getElementById(clockId);
  const clock = wrapper.querySelector(".flip-class");
  const isLiveClock = wrapper.dataset.targetTime === "now";
  const targetTime = isLiveClock ? new Date() : new Date(wrapper.dataset.targetTime);
  const format = wrapper.dataset.format.split(",");

  const timeLabels = {
    year:   "years",
    month:  "months",
    day:    "days",
    hour:   "hours",
    minute: "minutes",
    second: "seconds"
  };

  const titleDiv = wrapper.querySelector(".flip-clock-title");
  const pastTitle = titleDiv.dataset.past?.trim();
  const futureTitle = titleDiv.dataset.future?.trim();

  const isPast = (isLiveClock || new Date() > targetTime);

  if (isPast) {
    if (pastTitle && pastTitle !== "/") {
        titleDiv.textContent = pastTitle;
    } else {
        titleDiv.textContent = "Passed";
    }
    } else {
    if (futureTitle && futureTitle !== "/") {
        titleDiv.textContent = futureTitle;
    } else {
        titleDiv.textContent = "Remaining";
    }
  }

  const pad = n => String(n).padStart(2, "0");

  function getTimeDiff(target) {
    const now = new Date();
    let diff = Math.abs(target - now) / 1000;
    const past = now > target;

    const timeParts = {
      year: 0, month: 0, day: 0,
      hour: 0, minute: 0, second: 0
    };

    
    if (isLiveClock) {
      timeParts.year = now.getFullYear();
      timeParts.month = now.getMonth() + 1; 
      timeParts.day = now.getDate();
      timeParts.hour = now.getHours();
      timeParts.minute = now.getMinutes();
      timeParts.second = now.getSeconds();
      return { past: true, timeParts };
    }
  
    
    const temp = new Date(past ? target : now);
    const ref = new Date(past ? now : target);

    timeParts.year = ref.getFullYear() - temp.getFullYear();
    timeParts.month = ref.getMonth() - temp.getMonth();
    timeParts.day = ref.getDate() - temp.getDate();
    timeParts.hour = ref.getHours() - temp.getHours();
    timeParts.minute = ref.getMinutes() - temp.getMinutes();
    timeParts.second = ref.getSeconds() - temp.getSeconds();

    
    if (timeParts.second < 0) { timeParts.second += 60; timeParts.minute--; }
    if (timeParts.minute < 0) { timeParts.minute += 60; timeParts.hour--; }
    if (timeParts.hour < 0) { timeParts.hour += 24; timeParts.day--; }
    if (timeParts.day < 0) {
      const daysInPrevMonth = new Date(ref.getFullYear(), ref.getMonth(), 0).getDate();
      timeParts.day += daysInPrevMonth; timeParts.month--;
    }
    if (timeParts.month < 0) { timeParts.month += 12; timeParts.year--; }

    return { past, timeParts };
  }

  function createClockDisplay() {
    wrapper.classList.add(clockId);
    format.forEach(unit => {
      const div = document.createElement("div");
      div.className = "flip-unit";
      div.dataset.unit = unit;

      div.innerHTML = `
        <div class="flip-number" id="${clockId}-flip-${unit}">00</div>
        <div class="flip-label">${timeLabels[unit]}</div>
      `;
      clock.appendChild(div);
    });
  }

  function updateClock() {
    const { past, timeParts } = getTimeDiff(targetTime);

    format.forEach(unit => {
      const val = timeParts[unit];
      const el = document.getElementById(`${clockId}-flip-${unit}`);
      if (el.textContent !== pad(val)) {
        el.style.transform = "rotateX(180deg)";
        setTimeout(() => {
          el.textContent = pad(val);
          el.style.transform = "rotateX(0deg)";
        }, 150);
      }
    });
  }

  createClockDisplay();
  updateClock();
  setInterval(updateClock, 1000);
});
</script>

</div>]]></description></item><item><title>[Thoughts] 2025 Applied Probability Seminar</title><link>https://yao-chih.netlify.app/en/2025-applied-probability-seminar/</link><pubDate>Sat, 22 Feb 2025 23:41:32 +0800</pubDate><author>Author</author><guid>https://yao-chih.netlify.app/en/2025-applied-probability-seminar/</guid><description>&lt;div class="featured-image">
                &lt;img src="/image/featured-image.jpg" referrerpolicy="no-referrer">
            &lt;/div>Post-Seminar Thoughts.</description></item></channel></rss>