Sunday, June 29, 2025

Book Review: Abandoned Cinemas of the World by Simon Edelstein

"Abandoned Cinemas of the World" by Simon Edelstein is a stunning photo book that takes readers on a journey through the remnants of cinema theaters and drive-in cinemas that have been left to decay around the globe. With its breathtaking collection of photographs, this book is a must-have for anyone who has ever been fascinated by the magic of the movies and the grandeur of old cinemas.

The cover itself is unassuming; it transports you to a world of faded grandeur and forgotten dreams. The photographs within are nothing short of breathtaking, capturing the essence of these abandoned cinemas in all their crumbling glory.

One of the standout features of this book is its diverse range of locations. From the iconic cinemas of Havana, Cuba, to the forgotten drive-ins of California, USA, and the majestic theaters of India, this book takes readers on a visual journey across the globe. Each photograph is meticulously captured, showcasing not just the exterior facades of these cinemas but also the intricate details of their interiors.

The photos of the interiors are particularly striking, offering a glimpse into the past when these cinemas were bustling with life. The decaying seats, the faded hand-painted film posters, and the abandoned projection rooms all tell a story of a bygone era. It's almost as if the reader is stepping into these forgotten spaces, feeling the weight of history and the passage of time.

The book covers an impressive array of cinemas, including the Campoamor in Inglewood, California, the Tower in Ajmer, India, and the Studio in Phnom Penh, Cambodia. Each location is unique, with its own story to tell, and Edelstein's photographs do justice to these forgotten landmarks.

The book has received rave reviews from Goodreads users, with many praising its stunning photography and nostalgic value. One reviewer noted, "This book is a treasure trove for film buffs and architecture enthusiasts alike. The photographs are stunning, and the variety of locations is impressive." Another reviewer praised the book's ability to evoke a sense of nostalgia, saying, "This book is a must-have for anyone who loves old cinemas. The photographs are hauntingly beautiful, and the stories behind each location are fascinating."

In conclusion, "Abandoned Cinemas of the World" is a beautifully crafted photo book that is sure to captivate anyone with an interest in film, architecture, or history. With its stunning photographs and poignant storytelling, this book is a must-have for anyone who has ever been fascinated by the magic of the movies. Whether you're a film buff, an architecture enthusiast, or simply someone who appreciates the beauty of forgotten places, this book is sure to leave a lasting impression.

Here is a partial list of photos of cinemas in this book:

  1. Havana, Cuba, Campoamor Theatre
  2. Inglewood, California, USA, 5th Avenue Theatre
  3. San Francisco, California, USA, Tower Theatre
  4. Ajmer, India, Ajanta Cinema
  5. Delhi, India, Filmistan Cinema
  6. Allahabad, India, Lakshmi Talkies
  7. Las Vegas, Nevada, USA, Huntridge Theater
  8. Arad, Romania, Studio
  9. Phnom Penh, Cambodia, Hemakcheat Cinema
  10. Chicago, Illinois, USA, Chicago Theater
  11. Alexandria, Egypt, Plaza Cinema
  12. Kingsville, Texas, USA, Texas Theater
  13. Edna, Texas, USA, Edna Theatre
  14. Detroit, Michigan, USA, Harpos Concert Theatre
  15. Detroit, Michigan, USA, Senate Theater
  16. Houston, Texas, USA, OST (Old Spanish Trail Theater)
  17. Yuba City, California, USA, Sutter Theatre
  18. Varanasi, India, Natraj Cinema
  19. Havana, Cuba, Cine Mantilla
  20. Gujan-Mestras, France, Eldorado
  21. Stretford, England, Essoldo Stretford
  22. Alleppey, India, Vidya Cinema
  23. Durgapur, India, Chitralaya Cinema
  24. Hospet, India, Vijaya Karnataka
  25. Beawar, India, Royal Talkies
  26. Brooklyn, New York, USA, Loew’s Kings Theatre
  27. Los Angeles, California, USA, Huntington Park Warner
  28. Staten Island, New York, USA, Paramount
  29. Le Havre, France, Normandy
  30. Saint-Jean-d’Angely, France, Eden
  31. Biscarosse Plage, France, Atlantic
  32. Lisbon, Portugal, Cinema Paris
  33. Jaipur, India, Samrat
  34. Langoiran, France, Cinéma Splendid
  35. Blairgowrie, Scotland, Picture House
  36. Sete, France, Rio Cinema
  37. Beam, France, Idéal Cinéma
  38. Costa Nova (Porto), Portugal, Avenida
  39. Delhi, India, Gianand Cinema
  40. Gaya, India, Sudha Cinema
  41. Casablanca, Morocco, Cinema Opera
  42. Delhi, India, Alpana Cinema
  43. Havana, Cuba, Cine Cosmos
  44. Havana, Cuba, Cine Apolo
  45. Perris, California, USA, The Perris
  46. Beeville, Texas, USA, Rialto Theatre
  47. Bronte, Texas, USA, Texas Theatre
  48. Havana, Cuba, Cine El Megano
  49. Bakersfield, California, USA, Nile Theatre
  50. Inglewood, California, USA, Fox Theater
  51. Varanasi, India, Lalita Cinema
  52. Tripoli, Lebanon, Cinema Empire
  53. Bankura, India, Kusum Cinema
  54. Hollywood, California, USA, Hollywood Palladium
  55. Detroit, Michigan, USA, Guild Theatre
  56. Ubrique, Spain, Gran Cinema Alcázar
  57. Vicenza, Italy, Cinema Corso
  58. Mumbai, India, Diana Talkies
  59. Agra, India, Roxy Cinema
  60. Brussels, Belgium, Mirano Cinema
  61. San Jose, California, USA, Mexico Theatre
  62. Kyaukse, Myanmar, Han
  63. Montreuil-sur-Ille, France, Armor
  64. Marrakesh, Morocco, Cine Theatre Palace
  65. Newark, New Jersey, USA, RKO Proctor's Theatre
  66. Havana, Cuba, Cine Campoamor
  67. Tangier, Morocco, Gran Teatro Cervantes
  68. Ambala, India, Nishat Cinema
  69. Allahabad, India, Rupbani Cinema Hall
  70. Jaipur, India, Ram Prakash Cinema
  71. Marrakesh, Morocco, Cinéma Zohra
  72. Kyaukse, Myanmar, Han
  73. Chekka, Lebanon, Picadilly Theater
  74. Chittagong, Bangladesh, Cinema Palace
  75. Mumbai, India, Palace Talkies
  76. Mumbai, India, Bharatmata Cinema
  77. Portland, Oregon, USA, Laurelhurst Theater
  78. Kilgore, Texas, USA, Crim Theatre
  79. Beverly Hills, California, USA, Saban Theatre
  80. Detroit, Michigan, USA, Fox Theatre
  81. Berlin, Germany, Astor Cinema
  82. Berlin, Germany, Intimes Kino
  83. Viviez, France, Guy Brunet
  84. Dallas, Texas, USA, Circle Theater
  85. Jersey City, New Jersey, USA, Stanley Theatre
  86. Brussels, Belgium, ABC Cinema


Here is my note at Goodreads:


Abandoned Cinemas of the WorldAbandoned Cinemas of the World by Simon Edelstein
My rating: 5 of 5 stars

This is a stunning photo book that takes you on a journey through the remnants of cinema theaters and drive-in cinemas that have been left to decay around the globe. With its breathtaking collection of photographs, this book is a must-have for anyone who has ever been fascinated by the magic of the movies and the grandeur of old cinemas. From the iconic cinemas of Havana, Cuba, to the forgotten drive-ins of California, USA, and the majestic theaters of India, this book takes readers on a visual journey across the globe. Each photograph is meticulously captured, showcasing not just the exterior facades of these cinemas but also the intricate details of their interiors.

"Abandoned Cinemas of the World" is a beautifully crafted photo book that is sure to captivate anyone with an interest in film, architecture, or history. With its stunning photographs and poignant storytelling, this book is a must-have for anyone who has ever been fascinated by the magic of the movies. Whether you're a film buff, an architecture enthusiast, or simply someone who appreciates the beauty of forgotten places, this book is sure to leave a lasting impression.

View all my reviews

Saturday, June 28, 2025

Sarcasm: Grandma Used to Say

GRADMA USED TO SAY: "Sometimes you have to hug the people you don't like so you know how big to dig the hole in your backyard."

Monday, June 9, 2025

The XHDATA D-328 Full Band AM/FM/SW MP3 Radio: Review

The XHDATA D-328 is a mini-sized AM/FM/SW radio I picked up during a nostalgic craving for real broadcast radio at home. Compact and ultra-lightweight, it measures just 12.5 x 3.8 x 7.5 cm and weighs around 160 grams. The unit comes encased in a slim plastic shell with a foldable telescopic aerial on top for better reception. A microSD (TransFlash) card slot is also included, allowing you to play MP3 files directly from the device. For more private listening, there’s a 3.5 mm headphone jack to reroute the audio output. One minor downside: the back panel lacks a serial number label or certifications—only a “Made in China” marking is present.

The XHDATA D-328 MP3 Radio
The XHDATA D-328 MP3 Radio

The model I’m reviewing here was purchased in June 2020 from Amazon India, priced at ₹1,626 before tax and ₹1,919 after 18% GST. Delivery was prompt—the radio arrived within two days. It came packaged in a sturdy cardboard box containing the radio unit, a generic BL-5C lithium-ion rechargeable battery, a mini-USB charging cable, a lanyard, a user manual, and a contact card. This review, written in 2023, reflects my experience using the device over the past three years.

For those in search of a reliable radio that can tune into local AM and FM stations while also offering MP3 playback, the XHDATA D-328 holds up remarkably well. Despite its small size, the audio quality is surprisingly decent. Personally, I’m not a huge fan of analog-style tuning on DSP-based radios—I find them a bit clunky when trying to precisely navigate between stations. But for the average listener who simply wants to tune in and enjoy, this radio more than delivers on expectations.

Setup

Setting up the XHDATA D-328 is quick and hassle-free. Simply insert the BL-5C battery into the slot located at the back of the radio, and power it on using the mode selector shuttle switch on the top—choosing either Radio or MP3 mode depending on your preference. If the battery runs low, recharging is just as straightforward. Use the included USB charging cable and connect it to a suitable power source, such as a wall adapter, power bank, or even a laptop. Within moments, you're ready to enjoy your favorite stations or MP3 tracks with minimal fuss.

Radio

The XHDATA D-328 radio supports FM, AM, and shortwave (SW) reception, all handled by a DSP (Digital Signal Processing) demodulation chip built into the Silicon Laboratories Si4825-A10 integrated circuit. Tuning is done via an analog thumbwheel dial located on the side of the unit, offering a tactile and intuitive experience. Given the compact form factor and limited dial width, the FM and SW bands are cleverly split into 2 and 9 sub-bands, respectively, allowing for more precise calibration across the frequency range. This band segmentation helps users fine-tune stations with surprising accuracy for an analog-style interface. The supported frequency ranges are listed below:

  • FM: 64~106 MHz
  • AM: 520~1620 kHz
  • SW: 4.75~22 MHz

Whether you're tuning in to your favorite morning talk show or catching the latest chart-topping hits, this radio delivers a commendable listening experience. In my usage, FM reception has been consistently reliable, and the audio clarity noticeably improves when using headphones. The built-in speaker does the job for casual listening, but plugging in a decent pair of earphones really enhances the sound quality, making it a more enjoyable experience overall.

Radio Reception

During June-July 2025, the XHDATA D-328 successfully processed these 32 FM stations in Perrysburg in Ohio:
  1. Band: FM, Frequency: 88.9 MHz, Name: 88.3 FM WXUT, Format: Alternative Music, Call Sign: WXUT, WebsiteFCC Public FilesRadio-Locator
  2. Band: FM, Frequency: 88.9 MHz, Name: WBCL, Format: Contemporary Christian Music, Call Sign: WTPG, WebsiteFCC Public FilesRadio-Locator
  3. Band: FM, Frequency: 89.3 MHz, Name: Yes FM, FormatChristian Contemporary Hit Radio (CHR)Call Sign: WYSZ, WebsiteFCC Public FilesRadio-Locator
  4. Band: FM, Frequency: 89.7 MHz, Name: EWTN Radio, FormatCatholic ReligiousCall Sign: WNOC, WebsiteFCC Public FilesRadio-Locator
  5. Band: FM, Frequency: 90.3 MHz, Name: Family Radio, Format: Christian ReligiousCall Sign: WOTL, WebsiteFCC Public FilesRadio-Locator
  6. Band: FM, Frequency: 91.3 MHz, Name: WTGE Public Radio FM 91, Format: Public Radio, Call Sign: WTGE, Website, FCC Public Files, Radio-Locator
  7. Band: FM, Frequency: 91.7 MHz, Name: Michigan Public Radio, Format: Public Radio, Call Sign: WUOM, WebsiteFCC Public FilesRadio-Locator
  8. Band: FM, Frequency: 92.5 MHz, Name: 92.5 KISS FM, FormatTop 40 (CHR) (Contemporary Hit Radio)Call Sign: WVKS, WebsiteFCC Public FilesRadio-Locator
  9. Band: FM, Frequency: 92.9 MHz, Name: NewsRadio 1370 AM & 92.9 FM, Format: News/Talk, Call Sign: W225AM (WSPD-AM), WebsiteFCC Public FilesRadio-Locator
  10. Band: FM, Frequency: 93.5 MHz, Name: 93.5 WRQN, Format: Classic Hits Music, Call Sign: WRQN, WebsiteFCC Public FilesRadio-Locator
  11. Band: FM, Frequency: 93.9 MHz, Name: 93.9 Virgin Radio, FormatContemporary Hit Radio (CHR)Call Sign: CIDR, WebsiteFCC Public FilesRadio-Locator
  12. Band: FM, Frequency: 94.1 MHz, Name: Relevant Radio, FormatCatholic Talk RadioCall Sign: W231EF (WPAY-AM), WebsiteFCC Public FilesRadio-Locator
  13. Band: FM, Frequency: 94.5 MHz, Name: 94.5 XKR, FormatClassic Rock MusicCall Sign: WXKR, WebsiteFCC Public FilesRadio-Locator
  14. Band: FM, Frequency: 94.9 MHz, Name: 94.9 The Beat (HD2 channel of WVKS), FormatUrban Adult MusicCall Sign: W235BH, Website, FCC Public Files, Radio-Locator
  15. Band: FM, Frequency: 95.7 MHz, Name: Mix 95.7, FormatUrban Adult Contemporary Music, Call Sign: WIMX, Website, FCC Public Files, Radio-Locator
  16. Band: FM, Frequency: 96.9 MHz, Name: K-Love, FormatChristian Contemporary Hit Radio (CHR)Call Sign: WNKL, WebsiteFCC Public FilesRadio-Locator
  17. Band: FM, Frequency: 97.3 MHz, Name: HOT 97.3 FM, FormatHip Hop and R&B MusicCall Sign: WJZE, WebsiteFCC Public FilesRadio-Locator
  18. Band: FM, Frequency: 98.3 MHz, Name: Nash Icon 98.3 FM, Format: Country Music, Call Sign: WMIM, WebsiteFCC Public FilesRadio-Locator
  19. Band: FM, Frequency: 99.5 MHz, Name: CSN Radio, FormatReligiousCall Sign: W258BT, WebsiteFCC Public FilesRadio-Locator
  20. Band: FM, Frequency: 100.7 MHz, Name: ESPN 100.7 FM: The Ticket, FormatHot Adult Contemporary MusicCall Sign: WQQO, WebsiteFCC Public FilesRadio-Locator
  21. Band: FM, Frequency: 101.5 MHz, Name: 101.5 The River, FormatAdult Contemporary MusicCall Sign: WRVF, WebsiteFCC Public FilesRadio-Locator
  22. Band: FM, Frequency: 102.3 MHz, Name: Proclaim FM 102.3, Format: Contemporary Christian Music, Call Sign: WPOS, WebsiteFCC Public FilesRadio-Locator
  23. Band: FM, Frequency: 102.9 MHz, Name: W4Country, Format: Country Music, Call Sign: WWWW, WebsiteFCC Public FilesRadio-Locator
  24. Band: FM, Frequency: 103.3 MHz, Name: Smile FM, Format: Contemporary Christian Music, Call Sign: TBD, Website, FCC Public Files, Radio-Locator
  25. Band: FM, Frequency: 103.7 MHz, Name: Buckeye Country 103.7 CKY, Format: Country Music, Call Sign: WCKY, Website, FCC Public Files, Radio-Locator
  26. Band: FM, Frequency: 102.9 MHz, Name: 104.7 WIOT Toledo's Rock, Format: Mainstream Rock, Call Sign: WIOT, Website, FCC Public Files, Radio-Locator
  27. Band: FM, Frequency: 105.5 MHz, Name: Q105 Toledo, Format: Hot Adult Contemporary Music, Call Sign: WQQO, WebsiteFCC Public FilesRadio-Locator
  28. Band: FM, Frequency: 106.1 MHz, Name: We Act Toledo Radio WAKT 106.1, Format: Variety, Call Sign: WAKT, Website, FCC Public Files, Radio-Locator
  29. Band: FM, Frequency: 106.5 MHz, Name: The Truth Toledo (OH), Format: Christian Talk, Call Sign: WTOD, Website, FCC Public Files, Radio-Locator
  30. Band: FM, Frequency: 106.9 MHz, Name: Son Life Radio, Format: Christian Radio, Call Sign: W295DB (WJYM-AM), Website, FCC Public Files, Radio-Locator
  31. Band: FM, Frequency: 107.3 MHz, Name: The Juice 107.3, Format: Contemporary Music, Call Sign: WJUC, WebsiteFCC Public FilesRadio-Locator
  32. Band: FM, Frequency: 107.7 MHz, Name: 107.7 The Wolf Country, Format: Country Music, Call Sign: WPFX, WebsiteFCC Public FilesRadio-Locator

In November 2023, I tested the XHDATA D-328 in Pune, a city in the state of Maharashtra, India. The radio performed well when it came to processing FM signals—stations came through clearly, and tuning was relatively smooth. However, its performance on the AM and shortwave (SW) bands left much to be desired. In my experience, there was hardly any reception on those frequencies, rendering them practically unusable in this location. FM turned out to be the only reliable mode of listening on this device during my testing.

  1. Band: FM, Frequency: 91.1 MHz, Name: Radio City
  2. Band: FM, Frequency: 93.5 MHz, Name: Red FM
  3. Band: FM, Frequency: 94.3 MHz, Name: Radio One
  4. Band: FM, Frequency: 95.0 MHz, Name: Big FM
  5. Band: FM, Frequency: 98.3 MHz, Name: Radio Mirchi
  6. Band: FM, Frequency: 101.0 MHz, Name: Vividh Bharati
  7. Band: FM, Frequency: 104.2 MHz, Name: Radio Mirchi Love
  8. Band: FM, Frequency: 107.8 MHz, Name: Puneri Awaz
  9. Band: AM, Frequency: 792 kHz, Name: All India Radio (AIR) Pune

MP3 Playback

MP3 playback is supported via a microSD (TransFlash) card slot conveniently located on the top of the device. Impressively, it handles larger storage capacities like 32GB and even 64GB cards without issue. Listening to MP3 files on this little radio is surprisingly enjoyable—the audio quality exceeds expectations for a device in this price range. However, there are a few limitations to keep in mind. There’s no screen to display track info, and no shuffle mode either. Instead, songs are played strictly in alphabetical order based on their file names. On the plus side, you can skip forward in batches of 10 tracks, which helps when navigating larger playlists.

Audio Quality

The radio features a built-in 5.5 cm speaker capable of delivering up to 5 watts of mono audio output. Given the compact size of the device, there’s naturally limited room for deep bass response or rich audio dynamics. That said, the sound quality is surprisingly clear and crisp—especially when reception is strong. While you won’t get room-filling sound or punchy lows, it performs well enough for casual listening, news broadcasts, or talk radio, making it a solid choice for on-the-go use or small spaces.

Battery

The radio is powered by a removable 3.7V BL-5C 1020mAh rechargeable Li-ion battery. It comes with a generic, factory-included battery, which—at least in my experience—didn’t hold up well over time. Within a year, the battery had bloated and become unusable, a common issue with lower-quality Li-ion cells. Thankfully, the device doesn’t rely solely on battery power. It can operate just fine without the battery installed, as long as it's plugged in via USB and receiving live power. This makes it convenient for stationary use or when a reliable power source is available, even if the battery fails.

Warranty

The product comes with a 1-year manufacturer warranty on the device.

Reviews

On Amazon the radio is rated 4.3 out of 5 based on 1,500 customer reviews.

Conclusion

In summary, the XHDATA D-328 is a decent radio for its price, but for a bit more, you can find radios with more features. It's compact, offers decent audio quality, and handles local stations and MP3 podcasts effectively. It's a solid choice, especially if you're on a tight budget, but there are other radios in the same price range that provide even better value. If you're interested in small and affordable radios, there are various options from manufacturers like Tecsun, Tivdio, Degen, and others, so it's worth doing some research to find the one that best suits your preferences. While it may not excel in all areas, its affordability and features make it a compelling option for radio enthusiasts and casual listeners alike.

The D-328 product page at xhdata.com.cn

The product page for the D-328 is here

The user manual is available here at TEKLIB.

First published: November 4, 2023


Sunday, February 2, 2025

My Favorite Country Songs (A Live List)

As a country music enthusiast, I'm always discovering new tunes and revisiting old favorites. This live list is a collection of my go-to country songs that I'll keep updating as I continue to explore the world of country music.

How You Can Help
If you have a favorite country song that's not on this list, let me know in the comments! I'd love to hear your recommendations and add them to the list.

Stay Tuned
I'll be updating this list regularly, so be sure to check back often for new additions. Whether you're a fellow country music fan or just discovering the genre, I hope you find something that resonates with you. Let's keep the country music conversation going! 🎸🎸

Title: Across the Bridge
Artist: Jim Reeves
Year: 1966
Genre: Country

Title: Adios Amigo
Artist: Jim Reeves
Year: 1962
Genre: Country

Title: Always on My Mind
Artist: John Hartford
Year: 1967
Genre: Country

Title: Always on My Mind
Artist: Dean Martin
Year: 1968
Genre: Country

Title: Always on My Mind
Artist: Andy Williams
Year: 1969
Genre: Country

Title: Always on My Mind
Artist: Elvis Presley
Year: 1972
Genre: Country

Title: Always on My Mind
Artist: Brenda Lee
Year: 1972
Genre: Country

Title: Always on My Mind
Artist: Willie Nelson
Year: 1982
Genre: Country

Title: Am I Losing You
Artist: Jim Reeves
Year: 1957
Genre: Country

Title: Andy (I Can't Live Without You)
Artist: Ashley McBryde
Year: 2019
Genre: Country

Title: Before I Met You
Artist: Charley Pride
Year: 1966
Genre: Country

Title: Before I Met You
Artist: Porter Wagoner and Dolly Parton
Year: 1967
Genre: Classic country

Title: Before the Next Teardrop Falls
Artist: Freddy Fender
Year: 1975
Genre: Country pop, Tejano

Title: Blue Side of Lonesome
Artist: Jim Reeves
Year: 1966
Genre: Country

Title: Crystal Chandelier
Artist: Carl Belew
Year: 1965
Genre: Country

Title: Crystal Chandelier
Artist: Vic Dana
Year: 1965
Genre: Adult contemporary

Title: Crystal Chandeliers
Artist: Charley Pride
Year: 1967
Genre: Country

Title: D-I-V-O-R-C-E
Artist: Tammy Wynette
Year: 1968
Genre: Country

Title: Distant Drums
Artist: Vic Dana
Year: 1965
Genre: Country

Title: Distant Drums
Artist: Jim Reeves
Year: 1966
Genre: Country

Title: Don't Come Home A-Drinkin' (With Lovin' on Your Mind)
Artist: Loretta Lynn
Year: 1966
Genre: Country

Title: Don't Cry, Joni
Artist: Conway Twitty with Joni Lee
Year: 1975
Genre: Country

Title: Don't Let Me Cross Over
Artist: Jim Reeves with Deborah Allen
Year: 1979
Genre: Country

Title: Drink to Me Only with Thine Eyes
Artist: Johnny Cash
Year: 2006
Genre: Classic Country

Title: First Thing I Reach For
Artist: Ashley McBryde
Year: 2020
Genre: Country

Title: Gentle on My Mind
Artist: Glen Campbell
Year: 1957
Genre: Country

Title: Gentle on My Mind
Artist: Patti Page
Year: 1967
Genre: Country

Title: Gentle on My Mind
Artist: Dean Martin
Year: 1968
Genre: Country

Title: Gentle on My Mind
Artist: Frank Sinatra
Year: 1968
Genre: Country

Title: Gentle on My Mind
Artist: Tammy Wynette
Year: 1968
Genre: Country

Title: Gentle on My Mind
Artist: Waylon Jennings
Year: 1968
Genre: Country

Title: Gentle on My Mind
Artist: The Band Perry
Year: 2014
Genre: Country

Title: Gentle on My Mind
Artist: Alison Krauss
Year: 2017
Genre: Country

Title: Girl Goin' Nowhere
Artist: Ashley McBryde
Year: 2019
Genre: Country

Title: Guilty
Artist: Jim Reeves
Year: 1963
Genre: Country

Title: Have You Ever Been Lonely
Artist: Jim Reeves and Patsy Cline
Year: 1981
Genre: Country

Title: Help Me Make It Through the Night
Artist: Sammi Smith
Year: 1970
Genre: Country

Title: He'll Have to Go
Artist: Jim Reeves
Year: 1959
Genre: Country, Nashville sound

Title: Honey
Artist: Bobby Goldsboro
Year: 1968
Genre: Country, Pop

Title: How's the World Treating You?
Artist: Elvis Presley
Year: 1956
Genre: Country

Title: How's the World Treating You?
Artist: Jim Reeves
Year: 1959
Genre: Country

Title: How's the World Treating You?
Artist: Alison Krauss and James Taylor
Year: 2007
Genre: Country

Title: I Got Mexico
Artist: Eddy Raven
Year: 1984
Genre: Country

Title: I Guess I'm Crazy
Artist: Jim Reeves
Year: 1964
Genre: Country

Title: I Love You Because
Artist: Jim Reeves
Year: 1964
Genre: Country

Title: I Wish I Could I Fall in Love Today
Artist: Ray Price
Year: 1960
Genre: Country

Title: I Wish I Could I Fall in Love Today
Artist: Barbara Mandrell
Year: 1988
Genre: Country

Title: Is Anybody Goin' to San Antone
Artist: Charley Pride
Year: 1970
Genre: Countrypolitan

Title: Is it Really Over
Artist: Jim Reeves
Year: 1965
Genre: Country

Title: Just Because I'm a Woman
Artist: Dolly Parton
Year: 1968
Genre: Country

Title: Jolene
Artist: Dolly Parton
Year: 1973
Genre: Country

Title: Jolene
Artist: Olivia Newton-John
Year: 1976
Genre: Country

Title: Jolene
Artist: Beyoncé
Year: 2024
Genre: Country pop, R&B

Title: Like a Rose
Artist: Ashley Monroe
Year: 2013
Genre: Neotraditional country

Title: Living in the Promiseland
Artist: Willie Nelson
Year: 1986
Genre: Country

Title: Lucille
Artist: Kenny Rogers
Year: 1977
Genre: Country

Title: Mayflowers
Artist: Ashley Monroe
Year: 2015
Genre: Neotraditional country

Title: Me and Bobby McGee
Artist: Roger Miller
Year: 1969
Genre: Country

Title: Me and Bobby McGee
Artist: Johnny Cash
Year: 1971
Genre: Country

Title: Me and Bobby McGee
Artist: Charley Pride
Year: 1971
Genre: Country

Title: Me and Bobby McGee
Artist: Janis Joplin
Year: 1971
Genre: Blues rock, Country rock

Title: Me and Bobby McGee
Artist: Gordon Lightfoot
Year: 1987
Genre: Country

Title: Meanwhile Back at Mama's
Artist: Tim McGraw featuring Faith Hill
Year: 2014
Genre: Country

Title: Mississippi Cotton Picking Delta Town
Artist: Charley Pride
Year: 1974
Genre: Country

Title: Rhythm of the Rain
Artist: The Browns
Year: 1966
Genre: Country

Title: She's Driving Me Out of Your Mind
Artist: Ashley Monroe
Year: 2013
Genre: Neotraditional country

Title: Take Me Home, Country Roads
Artist: John Denver
Year: 1971
Genre: Country, Folk

Title: Take My Hand
Artist: Jim Reeves
Year: 1960
Genre: Country

Title: The Blade
Artist: Ashley Monroe
Year: 2015
Genre: Neotraditional country

Title: Till the End
Artist: Vern Gosdin
Year: 1977
Genre: Country

Title: Weed Instead of Roses
Artist: Ashley Monroe
Year: 2013
Genre: Neotraditional country

Title: Welcome to my World
Artist: Jim Reeves
Year: 1963
Genre: Country

Title: When You Say Nothing at All
Artist: Keith Whitley
Year: 1988
Genre: Country

Title: When You Say Nothing at All
Artist: Alison Krauss & Union Station
Year: 1995
Genre: Country

Title: When You Say Nothing at All
Artist: Ronan Keating
Year: 1999
Genre: Country

Title: Wings of a Dove
Artist: Ferlin Husky
Year: 1960
Genre: Country

Title: Wings of a Dove
Artist: Charley Pride
Year: 1968
Genre: Country



Thursday, August 15, 2024

Book Review: White Cargo: The Forgotten History of Britain's White Slaves in America by Don Jordan

White Cargo: The Forgotten History of Britain's White Slaves in America by Don Jordan was an eye-opening experience for me. This book sheds light on a dark period in history - the transatlantic slave trade of white people - which was unknown to me till now. Hundreds of thousands of white slaves were transported to the Americas, forced to work in brutal conditions, and subjected to inhumane treatment.

One interesting fact I learned from the book is that the first slaves in the Americas were not Africans, but English children who were kidnapped and sent to work in the tobacco fields of Virginia. Another surprising fact is that white slaves were often treated worse than African slaves, as they were seen as more rebellious and likely to escape.

The book also delves into the history of the Irish slave trade, where thousands of Irish people were sold into slavery in the Caribbean. I was horrified to learn about the conditions on board the slave ships, where white slaves were packed tightly together and subjected to disease, hunger, and physical abuse.

Overall, I would rate this book 4 out of 5. It's a well-researched and engaging read that highlights a lesser-known aspect of history. Overall, "White Cargo" is a must-read for anyone interested in history, slavery, and the transatlantic slave trade.

Here is my note at Goodreads:


White Cargo: The Forgotten History of Britain's White Slaves in AmericaWhite Cargo: The Forgotten History of Britain's White Slaves in America by Don Jordan
My rating: 4 of 5 stars

This book sheds light on a dark period in history - the transatlantic slave trade of white people - which was unknown to me till now. Hundreds of thousands of white slaves were transported to the Americas, forced to work in brutal conditions, and subjected to inhumane treatment. One interesting fact I learned from the book is that the first slaves in the Americas were not Africans, but English children who were kidnapped and sent to work in the tobacco fields of Virginia. Another surprising fact is that white slaves were often treated worse than African slaves, as they were seen as more rebellious and likely to escape. The book is well-researched and engaging.

View all my reviews

Monday, June 3, 2024

Import Latest NAV of Mutual Funds from AMFIndia.com into Google Sheets

Mutual funds are a popular investment vehicle and staying updated with the latest Net Asset Values (NAVs) is crucial for investors to make informed decisions. One of the most efficient ways to track these values is by importing them directly into Google Sheets, which allows for real-time updates and easy analysis. In this blog post, I'll guide you through the process of importing the latest NAV of mutual funds from the Association of Mutual Funds in India (AMFIndia.com) and displaying them in Google Sheets to use the data for various calculations. 

Mutual Funds latest NAV report
One thing I want you to be aware of is that the real-time NAV of your chosen mutual fund is also available in Google Sheets using the GOOGLEFINANCE formula which I have explained in detail in the post How to get stock prices from Google Finance in Google Sheets. Here, the difference is that while the GOOGLEFINANCE formula returns the price of a specific fund, the method which I explain here imports the full list of available funds and their NAVs in your spreadsheet which you can play with later.

If you don't want to go through the hassle of going through this article, I have provided a link to a sample Google Sheets file which you can save for yourself and start using.

Why Use Google Sheets for Tracking NAVs?

Google Sheets offers several advantages for tracking mutual fund NAVs:

  1. Real-time Updates: Google Sheets can automatically update data, ensuring you always have the latest information.
  2. Accessibility: Being a cloud-based platform, you can access your data from anywhere.
  3. Ease of Use: Google Sheets' user-friendly interface and powerful functions make data manipulation and analysis straightforward.
  4. Collaboration: Multiple users can view and edit the sheet simultaneously, making it ideal for collaborative work.

Open-Ended and Close-Ended Mutual Funds

Before we get into the detailed steps of how to accomplish the task we have in hand, here a small description of "open-ended" and "close-ended" mutual funds in India. I will leave you with only definitions here as there are many resources online with more details of the same. The AMFIndia website provides data for both types of mutual funds.

Open-ended mutual funds do not have a fixed maturity period. They allow investors to enter (buy units) and exit (redeem units) at any time at the fund’s prevailing Net Asset Value (NAV).

Close-ended mutual funds have a fixed maturity period. Investors can buy units only during the initial offering period (New Fund Offer or NFO) and can redeem them only at maturity. These funds are listed on stock exchanges, where they can be traded like stocks.

Step-by-step Guide

Step 1: Accessing AMFIndia.com

Firstly, you need to understand where and how to access the mutual fund NAV data on the AMFIndia website. AMFIndia.com typically provides NAV data in a downloadable format directly from the web site

  1. Visit the AMFIndia Website (amfindia.com) using your favorite web browser and find the Download NAV link at the bottom of the page

    AMFIndia Website homepage


  2. The NAV data for "open-ended" and "close-ended" mutual funds are available as separate links like indicated with red boxes in the screenshot below. The data inside the links are structured in the same format as a flat file with semi-colon separated values

    Latest NAV links


  3. The link to open-ended mutual fund schemes typically looks like https://www.amfiindia.com/spages/NAVOpen.txt and a sample content is shown in the image below

    Open-ended schemes data


  4. The link to close-ended mutual fund schemes typically looks like https://www.amfiindia.com/spages/NAVClose.txt and a sample content is shown in the image below

    Close-ended schemes data


  5. As of this writing, access to the AMFI data is available free of cost to all

Step 2: Importing the Data into Google Sheets

To automate fetching the latest NAV data, we will use Google Sheets’ IMPORTDATA formula which can be used to seamlessly import and parse properly structured .csv (comma-separated value) or .tsv (tab-separated value) data from a URL. Here in our case, the data is not comma separated and there are some additional complexities which we will address later. For now, our objective is to get the full data inserted into our spreadsheet. For the sake of simplicity, here I will demonstrate with only the open-ended mutual fund data. The close-ended data URL can be imported and parsed following the same guidelines.

  1. Go to Google Sheets and create a new spreadsheet
  2. In a cell, like B2, enter the URL for the open-ended schemes' data https://www.amfiindia.com/spages/NAVOpen.txt


  3. Next, in the cell from where you want the data import to begin, like A3, use the IMPORTDATA formula. This will import all content from the link into the spreadsheet


  4. Next you can parse and display the data into structured cells in the sheet

Step 3: Parsing the Data in Google Sheets

At this point, your spreadsheet should be filled with data which you imported in the previous step, but you will observe that the data is like a big blob of text which got downloaded and is of not much use unless you can parse and split it into specific columns. It gets a little bit tricky after this which is what we will get into here. Here is a screenshot of how your spreadsheet looks like right now - observe that there are some virtual headers and the bulk of the content is related to one mutual fund scheme per line, with the data values separated with semicolons.


On close observation of the first line, you will notice that it is a description of the columns for each line:

Scheme Code;ISIN Div Payout/ ISIN Growth;ISIN Div Reinvestment;Scheme Name;Net Asset Value;Date

We will use this description to do some simple calculations and parse the date into spreadsheet columns.

Now, look at cell A9 which contains the text: 119551;INF209KA12Z1;INF209KA13Z9;Aditya Birla Sun Life Banking & PSU Debt Fund - DIRECT - IDCW;103.9547;31-May-2024

Our objective is to parse and map this text to the header descriptions which we saw above, like this:

Scheme Code: 119551
ISIN Div Payout/ ISIN Growth: INF209KA12Z1
ISIN Div Reinvestment: INF209KA13Z9
Scheme Name: Aditya Birla Sun Life Banking & PSU Debt Fund - DIRECT - IDCW
Net Asset Value: 103.9547
Date: 31-May-2024

In cell C9 enter the following formula to extract the Scheme Code:

=IF(ISERROR(LEFT(CONCAT(A9,B9),SEARCH(";",CONCAT(A9,B9))-1)),"",LEFT(CONCAT(A9,B9),SEARCH(";",CONCAT(A9,B9))-1))


For our convenience, in cell D9, we will calculate and store the offset from where the search for the next field should start from. So, in cell D9 enter the following formula:

=IF(C9="","",LEN(C9)+1)


Use this same method cyclically to get the other field values into further cells.

In cell E9, use the following formula to extract the value for ISIN Div Payout/ ISIN Growth:

=IF(C9="",A9,MID(CONCAT(A9,B9),D9+1,SEARCH(";",CONCAT(A9,B9),D9+1)-D9-1))

In cell F9, again calculate and store the offset from where the search for the next field should start from:

=IF(C9="","",D9+LEN(E9)+1)

In cell G9, use the following formula to extract the value for ISIN Div Reinvestment:

=IF(C9="","",MID(CONCAT(A9,B9),F9+1,SEARCH(";",CONCAT(A9,B9),F9+1)-F9-1))

In cell H9, again calculate and store the offset from where the search for the next field should start from:

=IF(C9="","",F9+LEN(G9)+1)

In cell I9, use the following formula to extract the value for Scheme Name:

=IF(C9="","",MID(CONCAT(A9,B9),H9+1,SEARCH(";",CONCAT(A9,B9),H9+1)-H9-1))

In cell J9, calculate and store the offset from where the search for the next field should start from:

=IF(C9="","",H9+LEN(I9)+1)

In cell K9, use the following formula to extract the value for NAV:

=IF(C9="","",MID(CONCAT(A9,B9),J9+1,SEARCH(";",CONCAT(A9,B9),J9+1)-J9-1))

In cell L9, calculate and store the offset from where the search for the next field should start from:

=IF(C9="","",J9+LEN(K9)+1)

In cell K9, use the following formula to extract the value for the date:

=IF(C9="","",MID(CONCAT(A9,B9),L9+1,LEN(CONCAT(A9,B9))-L9))

At this point you should see all the fields for the first scheme parsed neatly into columns. Use you favorite method to fill the rows below to parse all rows. The data will automatically get updated whenever you reopen the spreadsheet.


Additional Tips for Formatting Data

Now that you have the basic structure ready, you can name your header columns like you wish. To make your data more readable, you can apply formatting options:


Headers: Bold the header row.

Column Widths: Adjust the column widths to fit the content.

Conditional Formatting: Use conditional formatting to highlight important values.

Hide Columns: Hide the columns that you don't want to see, for example the columns where you calculated the offsets.

Here is how I made my final version look:


Application

You can apply this data in various creative ways, like the bumping the NAVs of your purchases against the current NAV and finding out your profitability using advanced formulas like VLOOKUP.

Conclusion

Tracking the latest NAV of mutual funds is essential for investors, and Google Sheets provides an excellent platform for doing so. By importing data from AMFIndia.com, you can ensure that you always have the most up-to-date information at your fingertips.

You can grab a copy of the spreadsheet from this link. 

With this guide, you should be well-equipped to set up your own system for importing and displaying mutual fund NAVs in Google Sheets. Happy investing!

Troubleshooting Tips 

Web access Issues: Ensure that the website data endpoint is accessible. Check for any authentication requirements. At the time of this writing the data is available free and requires no additional authentication.

Data Formatting: If the imported data doesn't look right, double-check the structure of the data and adjust your formulas accordingly.

By following these steps, you'll have a powerful tool to keep track of mutual fund NAVs, helping you stay on top of your investments with ease.

About AMFIndia

Association of Mutual Funds in India, abbreviated as AMFI, is the association of all the asset management companies of SEBI registered mutual funds in India. [Wikipedia]

Note: This is not a financial advice, and I am not a financial advisor. Mutual funds appearing in the illustrations in this article is for representational purposes only and are not recommendations.


Saturday, March 23, 2024

Replace characters in folder names using Windows PowerShell

This article describes a method to rename folders by replacing a character with another. In this use case we have a folder full of subfolders which are named in a particular pattern with a date followed by the description of the folder. The words in the folder names are separated by the hyphen ("-') character.  Our objective is to keep the date part intact while replacing all the hyphens after the data with whitespace characters.

The before and after state of the folder names are illustrated in the screenshot below.

Renamed folders with hyphens replaced with whitespace characters

For this example, we consider that our bunch of folders are in a local drive path named "C:\Users\SampleUser\Desktop\2006".

Open the Windows PowerShell and change directory to "C:\Users\SampleUser\Desktop\2006". Next run the following script at the prompt. Remember to set the value of $directoryPath below to the appropriate path according to your situation:

# Set the directory path where you want to rename folders
$directoryPath = "C:\Users\SampleUser\Desktop\2006"

# Get a list of all folders in the specified directory
$folders = Get-ChildItem -Path $directoryPath -Directory

# Loop through each folder
foreach ($folder in $folders) {
    # Check if folder name is longer than 10 characters and contains '-'
    # character at position 11
    if ($folder.Name.Length -ge 11 -and $folder.Name.Substring(10, 1) `
    -eq "-") {
        # Construct the new folder name by replacing '-' with a blank
        # space starting at character number 11
        $newName = $folder.Name.Substring(0, 10) + `
        ($folder.Name.Substring(10) -replace '-', ' ')
       
        # Get the full path of the old and new folder names
        $oldPath = Join-Path -Path $directoryPath -ChildPath $folder.Name
        $newPath = Join-Path -Path $directoryPath -ChildPath $newName
       
        # Rename the folder
        Rename-Item -Path $oldPath -NewName $newName -ErrorAction SilentlyContinue
        Write-Host "Renamed folder: $($folder.Name) to $($newName)"
    }
}

On successful execution of this script, you should see an output like this.

Renamed folder: 2019-01-16-Travel-to-France to 2019-01-16 Travel to France
Renamed folder: 2019-03-07-Meijer to 2019-03-07 Meijer
Renamed folder: 2019-05-04-National-Train-Day to 2019-05-04 National Train Day
Renamed folder: 2019-05-18-Woodland-Park to 2019-05-18 Woodland Park
Renamed folder: 2019-05-26-Maumee-Bay-State-Park to 2019-05-26 Maumee Bay State Park
Renamed folder: 2019-07-05-African-Safari-Wildlife-Park to 2019-07-05 African Safari Wildlife Park

Now you are done.