به مناسبت سالروز تولد آقای نویسنده
بشنوید؛ داستان کال نوشته آیزاک آسیموف
امروز هجدهم فروردین مصادف با سالروز تولید آیزاک آسیموف است به همین مناسبت داستان کال را از این نویسنده بشنوید.
document.addEventListener('DOMContentLoaded', () => {
const players = document.querySelectorAll('.custom_audio_player');
players.forEach((player) => {
const audio = player.querySelector('.audio-player');
const playPauseBtn = player.querySelector('.playPauseBtn_twig');
const progress = player.querySelector('.progress_twig');
const currentTimeEl = player.querySelector('.currentTime_twig');
const durationEl = player.querySelector('.duration_twig');
const backwardBtn = player.querySelector('.backwardBtn_twig');
const forwardBtn = player.querySelector('.forwardBtn_twig');
const muteBtn = player.querySelector('.muteBtn_twig');
if (!playPauseBtn || !progress || !currentTimeEl || !durationEl || !backwardBtn || !forwardBtn || !muteBtn) {
return;
}
const playIcon = playPauseBtn.querySelector('.play');
const pauseIcon = playPauseBtn.querySelector('.pause');
const volumeIcon = muteBtn.querySelector('.volume');
const muteIcon = muteBtn.querySelector('.mute');
if (!playIcon || !pauseIcon || !volumeIcon || !muteIcon) {
console.error('One or more control icons are missing.');
return;
}
const formatTime = (time) => {
const minutes = Math.floor(time / 60);
const seconds = Math.floor(time % 60).toString().padStart(2, '0');
return `${minutes}:${seconds}`;
};
// Update progress bar and time
audio.addEventListener('timeupdate', () => {
progress.value = (audio.currentTime / audio.duration) * 100 || 0;
currentTimeEl.textContent = formatTime(audio.currentTime);
durationEl.textContent = formatTime(audio.duration || 0);
});
// Play/pause functionality
playPauseBtn.addEventListener('click', () => {
if (audio.paused) {
audio.play();
playIcon.classList.add('hidden');
pauseIcon.classList.remove('hidden');
} else {
audio.pause();
playIcon.classList.remove('hidden');
pauseIcon.classList.add('hidden');
}
});
// Seek functionality
progress.addEventListener('input', () => {
audio.currentTime = (progress.value / 100) * audio.duration;
});
// Mute/unmute functionality
muteBtn.addEventListener('click', () => {
audio.muted = !audio.muted;
if (audio.muted) {
volumeIcon.classList.add('hidden');
muteIcon.classList.remove('hidden');
} else {
volumeIcon.classList.remove('hidden');
muteIcon.classList.add('hidden');
}
});
// Skip backward and forward
backwardBtn.addEventListener('click', () => {
audio.currentTime = Math.max(0, audio.currentTime - 10); // Skip 10 seconds backward
});
forwardBtn.addEventListener('click', () => {
audio.currentTime = Math.min(audio.duration, audio.currentTime + 10); // Skip 10 seconds forward
});
// Display duration when audio is loaded
audio.addEventListener('loadedmetadata', () => {
durationEl.textContent = formatTime(audio.duration);
});
});
});
فرارو- داستان کوتاه «کال» (Cal) نوشتهی آیزاک آسیموف ، یکی از آخرین آثار او در ژانر علمیتخیلی است که در سال ۱۹۹۰ منتشر شد. این داستان دربارهی روبات نویسندهای به نام "کال" است که برخلاف برنامهریزی اولیهاش، به نویسندگی علاقهمند میشود. او با خواندن آثار ادبی و مشاهده علاقهی صاحبش به نوشتن، تصمیم میگیرد خودش نیز نویسنده شود. ابتدا تلاشهایش سطحی و مکانیکی است، اما به مرور سبک خاص خودش را پیدا میکند و حتی حس خلاقیت در او شکل میگیرد؛ موضوعی که برای یک روبات، طبق منطق داستان، بسیار غیرمعمول است.
در این داستان، آسیموف با زبانی ساده و طنزآمیز، مفاهیمی پیچیده مثل خلاقیت، آگاهی مصنوعی و مرز میان انسان و ماشین را بررسی میکند. وقتی کال متوجه میشود که صاحبش نمیخواهد او را به عنوان یک نویسنده جدی بگیرد و قصد دارد برنامهاش را پاک کند، تصمیمی اخلاقی و در عین حال شوکهکننده میگیرد که در تضاد با قوانین سهگانهی روباتیک آسیموف است. این داستان کوتاه، هم ادای احترامی است به میراث ادبی آسیموف و هم پایانی تأملبرانگیز برای دغدغهی همیشگی او دربارهی رابطه میان انسان، تکنولوژی و اخلاق.