↓
 

Mike Vermeulen's web

computers, bicycle travel and other stuff

  • Home
  • Blog
  • Bike Trips
Home 1 2 >>

Post navigation

← Older posts

Bicycling from El Paso to Santa Fe

Mike Vermeulen's web Posted on April 5, 2025 by mevApril 11, 2025

April 2025 and time for another bicycle trip. This time I decided to take a week of vacation to bicycle in New Mexico. I have a condo in Alto (near Ruidoso) and planned trip with that in mind. In particular (a) I picked a route via Ruidoso so I can switch out gear and (b) I brought my work laptop so I can work remotely in the week immediately following.

April is an OK time for such a trip. Summer temperatures make the lower elevations and deserts unpredictable for a summer trip. It is the windiest time of the year, but the winds come from South/West more often than other directions so a good chance at some tailwinds. I built some slack in the schedule so I could wait out a short-term adverse weather event.

On Thursday, April 3rd I rented a minivan, loaded it up and took off after work. Only 100 miles to Brady, TX but I like getting the trip started on the road rather than early the next morning. Friday was a “recharge day” so no meetings and employees are encouraged to take off (but with pay). A nice perk and in my case it gave me an extra day for riding.

Friday morning I was on the road and reached my condo around 3pm. I had brought with me three bicycles. One was a mountain bike I normally have there but had moved to Austin in Fall 2024. I also brought a new Kona Sutra bike I purchased at start of the year. I only had a front rack on it so could carry enough for staying in motels but not quite enough if I also wanted a contingency for camping. The final bike was my Trek 520, a trusty bike with front and rear panniers.

The plan was to start off with the Kona Sutra from El Paso to Ruidoso – and probably the Trek 520 from Ruidoso to Santa Fe. This way I would get some more extended time on each bike and could better compare them from touring perspective.

Below is the starting picture at the El Paso Airport. I arrived a little before sunset so this let me drop off the rental car, load my bike and ride a very short distance to the airport hotel.

El Paso to Las Cruces (57 miles)

In the days before starting, I had checked the weather multiple times. There was a cold front coming through. Further north in New Mexico and even in Ruidoso this meant snow in the forecast. In El Paso it was more showers. What was more important was the direction and speed of the wind. From El Paso to Alamogordo I had two choices:

  • The more direct route was ~85 miles mostly NNE on US 54. There was one small settlement (Orogrande) where I could probably camp but otherwise not much choice. With a headwind or strong crosswind, 85 miles would be miserable but with a tailwind it could be fun.
  • The indirect route was ~55 miles from El Paso to Las Cruces and then ~65 miles from Las Cruces to Alamogordo. The section from Las Cruces to Alamogordo also went through wide open desert but at least was 20 miles shorter.

In the end, the weather forecast told me ENE winds strengthening during the day and somewhere between 0.05 and 0.25 inches of rain. Taking two days also make later days a bit warmer and still favorable for wind. So I decided to take the Kona Sutra, no camping gear but go in two days via Las Cruces.

Many motels in Texas have waffle makers and often in the shape of the state. So my breakfast included a Texas waffle.

It was overcast but dry and there was a moderate wind from the east. If it was windy this early in the morning, I was glad I made my route choice. There were some rolling hills including this spot where I looked over some of the city. The airport is in the east and I went around a ridge of mountains to follow the Rio Grande River valley.

The photo below was ~13 miles in where I had reached US 85 and right close to the river. There was construction here and the road was officially closed but I was able to bicycle past. After this a short section of bike path and then a straight but road with a moderate amount of traffic as I headed north through El Paso. At 16 miles, I took a short stop at a convenience store for a snack and then back on the busy road.

At 22 miles I reached the state line. By now traffic was less and until Las Cruces it was more of a quiet road along orchards. I saw multiple groups of Saturday morning bicyclists though they all seemed to be going the other direction. I also met two cyclists who were going coast to coast on the “southern tier” route. I had also bicycled this same route in 2001 so it was nice to be back where I had cycled before.

Examples of these pecan trees. I was surprised they were just now starting to get leaves.

One village had a huge cell tower. I think it was supposed to be disguised as a tree. However, the disguise wasn’t very convincing since it was much taller than any other tree in the area.

Small catholic church in La Mesa. I had the same picture in 2001 here

After La Mesa it gradually got busier again and I went through Mesilla and then across I-10 through middle of Las Cruces and then across I-25 and close to US 70. Overall a nice ride. Temperatures never got much over 50F but there wasn’t much rain. This let me get to the motel and relax in getting ready for the next day.

Las Cruces to Alamogordo (63 miles)

Today was a nice ride across the Tularosa Valley. Most all the climbing was in the first 13 miles. After that calm winds and mostly flat. The profile was expanded to fit the screen so it wasn’t as steep as implied. Close to the top were a few places with 7% grade. I was in my lowest gear. I’m glad I don’t have a rear rack on this bike as the extra weight would make the low gearing not quite enough.

Pretty much the entire route was along US 70 first along the frontage roads. There was a steady grade. Sometimes a bike lane but also sometimes some glass in the lane. The morning started out just below freezing so it was nice to generate heat while climbing.

As I passed a space/missile museum I then joined the main highway and the grade also got steeper. The last five miles varied between 5% and 7% sections.

After 13 miles I reached the top. San Agustin Pass

There was a wildlife refuge here with some displays and a large missile statue

From here a relatively quick descent until I came past the entrance to White Sands Missile Range at 20 miles. After this a steady ride along the floor of the valley without much variation in altitude.

US 70 was a divided highway with four lanes but the shoulder was reasonable and traffic gave me enough room. Signs all prohibited any access to smaller roads.

As I got close to 45 miles I saw some of the dunes from White Sands National Park.

I stopped at the visitor center to eat a sandwich I had brought with me but didn’t go further into the park. I’ve been there before and was happy to keep going after my late lunch.

Without too much difficulty, I made it to Alamogordo and to a motel I had reserved in advance. Nice chance to rest and get ready for the next day.

Alamogordo to Alto (56 miles)

Today was a day for climbing. The first 13 miles were flat to Tularosa but from there 26 miles and 3000ft of climb to the top of Apache Summit. After that a descent into Ruidoso and then another 1000+ft of climb to Alto. My cycle computer recorded 4629ft of climb.

I had done this same ride a year ago and had ~2 inches of snow at the summit. So a much better set of weather for today. Slightly cool at the start but it quickly warmed up after that. All this was familiar area from other cycling as well as visiting in the area.

After leaving Alamogordo, I came past the giant pistachio and an obligatory photo.

I stopped at the Chisolm gas station outside Tularosa at 13 miles. Got a few things to eat and shortly thereafter started the climb. US 70 is a divided highway with a good shoulder. The grades were also reasonable and steady so a good road to climb on.

Catholic Church near Bent NM

I measured my progress by keeping track of elevation. At 6500ft was a more general area with school and store. This was a good stop to get some lunch.

Another 1100ft of climb brought me to the summit. I have now brought three different bicycles to this summit point.

Ate a banana and threw away the peal in the dumpster. Thought the scarecrow on the fence was interesting. A way to ward off illegal dumping?

From here 8.5 miles of descent and down into Ruidoso. Mountain ahead is Sierra Blanca and the information sign also describes the peak.

After a late lunch, I took the local roads up from Ruidoso to Alto. Alto is a small unincorporated area so for outsiders I’ll also mention “Ruidoso” as general location but in this case it mattered since I was climbing. Close to the top is a section with ~10% grades and I took a short section to walk this uphill. I also crossed this burn areas below.

Not sure what that fuzzy thing was in front of the lens, but I was happy to reach my destination.

From here started working the next set of reservations. I had sent an email to the motel in Corona but not heard from them. So decided to call and got voicemail that all their rooms were full. So I left a message for wait list. In any case, I’ll also need to bring my tent and camping gear for the next section just in case I don’t have a place in Corona.

Alto to Carrizozo (26 miles)

Today was a shorter easier day. The next two places along the way were Carrizozo (27 miles) and Corona (73 miles). While I could probably make it to Corona in a day, that would be a long ride and not leave too much margin for wind. This also let me dial into work, attend two meetings and catch up with my email. I didn’t want to arrive too early so didn’t leave Alto until 11:30am.

The ride to Carrizozo had 3000+ feet of descent and only 1000+ feet of climb. There were a few stretches of 8% grade but overall this also made it somewhat easier.

For this next stretch, I decided to swap bikes and instead take my heavier touring bike. This meant I could take my camping gear. I didn’t expect to get a motel room in Corona and otherwise there wasn’t as much margin. The bike felt comfortable and rode slightly different from the Kona Sutra. Most importantly, it had some lower gears so I could both carry more and also very slowly ride up the steepest hills if I needed. Below is the photo at the Chisum store just at departure.

There was some descent and climb right away, particularly down an 8% grade for two miles. After that it climbed back up some and hovered back around 7000ft for a while before descending steeply again into settlement of Nogal shown below. There was a strong wind coming from the WSW and as I got past Nogal, it seemed like it picked up some. Nogal itself was at 6500ft so still 1000ft to descend after that.

As I was riding, the motel sent me an email. There had been a mixup and they didn’t have a room for me after all. Not too much else to do – but ride down to Carrizozo and check things out. There were three motels in town and I had reserved at the only one where I could online (via booking.com); the other two had fewer reviews on Google so I wasn’t sure.

At 19 miles I reached the intersection of US 380. The last eight miles from here had a solid headwind combined with a slight descent. It was still some work riding into the wind but I was happy with shorter ride.

I reached Carrizozo a little before three. I went to the motel that had cancelled but there was a note and phone number on the door. So instead I went across the street to Carrizozo Inn. Just as I was there, one of the cleaning staff came up. She didn’t speak English but was able to call the owner. He told her to open a room and he would come by in an hour or so and settle up.

That was appreciated and I was happy to have a room. I never did get a room key or the wifi password but otherwise a nice place to stay. Out of the wind and a good rest for what I expected would be a tougher ride the next day.

Carrizozo to Corona (52 miles)

Today was only 47 miles but there was a chance of stronger cross-winds later in the day so I was on the road not too long after sunrise. Corona would be the only stopping point so had some snacks and water along the way.

The day started out beautiful, calm and sunny. There were no turns today so everything on US-54.

At 20 miles came the only side road – NM 55 going off to Mountair. 62 miles down the road and perhaps a chance at lodging? Though nothing online. I briefly paused but in the end decided to stick with the original plan. In hindsight this turned out good since I would have found myself rationing water since I brought enough for Corona but not for this extra distance.

Two miles later an entrance to Windmill Ranch. After this point, I started getting some wind. Fortunately, mostly a cross wind and hence wasn’t a big issue.

There is a block of construction starting after mile 27. I have driven this route multiple times, most recently in January 2025 but wasn’t sure what I would find this time.

The first miles were good and still kept a shoulder on the right side. There was a steeper climb for a mile or so where I switched to the left side since it had more room.

When I got to the top the original road was still narrow without much of a shoulder. Not in photo below but there would be convoys of trucks/cars coming past so that could be obnoxious. However, to the right they were getting close to done. The road went from pavement to oiled gravel to smoothed gravel and finally to rough. For multiple miles and most of the distance I was able to avoid the narrow original road by cycling on the not yet open sections.

All this brought me to Corona by 1:30 pm or so.

The first order of business was to go to the motel. There was an adjacent general store and I talked with the motel owner there. They hadn’t responded to my email or voicemail. Their outgoing phone message said they had no room but leave a message to get on a wait list.

So I asked the likelihood of a wait list. They said none – they had rented their rooms during the week to workers on a nearby wind farm. Between the wind farm and construction nearby pretty much everything was full. They did have an RV park with bathroom and shower and I could camp there if needed.

They had a fun old phone booth

I hung around town for a few hours, got a bite to eat and read my Kindle book. It was a relaxed afternoon. After that I loaded up on some extra water and some food and left around 4pm to ride a few miles out of town where iOverlander had indicated there was a national forest where some had camped. Four miles down the road I found the entrance.

Half a mile further I found a spot on the left side and got behind the trees and set up my tent.

It was a nice campsite. The sun warmed my tent. The moon came bright the first part of the night. There was a travel trailer nearby and the owner came in right around sunset and started a generator that went all night. Not too bad of a hum and they left just a bit before sunrise. So a nice ride overall.

Not too far in this area were also some of the tall wind towers.

Corona to Moriarty (64 miles)

Today was a flat ride though slightly longer than average. I woke up well rested in my hidden campsite. It was a cool morning but quickly warmed up in the morning. There were some wide open spaces and I was happy to have no wind.

My first place along the way was Cedarville. It was pretty much remnants of a town. Seems hardy for pinto beans to grow in this area – and also hardy to have folks homesteading here.

Behind the Cedarville sign you can see one of the run down buildings.

At mile 13 was a roadside picnic table. There was some glass around and looked like some people had hopped the fence. I was happy with my campsite and glad I didn’t decide to continue and try camping here. I didn’t see any “no camping” signs but it was narrow to the fence and likely private property across the fence.

At 20 miles I noticed something on my Google Map, a marker for “Geographic Center of New Mexico”, looked like less than a mile off the road (though it turned out to be 1.5 miles each direction). I had some time and seemed like an interesting place to explore – so first down this road.

I reached a ranch house about 0.7 miles down this road and then there was a separate path to go from there. Eventually made my way to a flagpole and a small enclosed gate.

I stepped back and took a panorama photo so you can see how sparse and wide open this otherwise is. You can see the flagpole about a third of the way into the panorama and otherwise wide open country.

After this back to the main road and then to Willard where I was there by 11:30am and hence just in time for lunch at the cafe.

After lunch the road turned more north and slightly into the wind but fortunately not too strong. Estancia was 13 miles later and largest town.

Some motorcycles coming into Estancia.

After Estancia the shoulder gradually become wider and there was also more traffic. Not sure what this “What About Us” sign meant. Overall, reached Moriarty about 3:30pm so was a nice ride and finish to the day. Also good to get a bed and a shower again.

Moriarty to Santa Fe (52 miles)

Today was the last day riding and completion in Santa Fe. I found my way to a motel about five miles west of town center – and also near the airport and car rental place. I actually gave myself eight days to ride so will have a free day tomorrow to do some shorter riding around Santa Fe and get to more official places.

Moriarty is a roadside stop along I-40 with plenty of motels and roadside business. Also some signs for historic Route 66. Each day this week had been getting slightly warmer and this afternoon was warm but still reasonable. Hence, April was a good time to do this ride as two months from now would have more risk of rather hot temperatures.

After crossing the Interstate it quickly became wide open country again. There were even some farms including some center-pivot sprinklers. The road was mostly flat with a shoulder.

After a very gradual ride as the land followed a wide area up, I reached ~6600ft and more change in landscape with some slight hills. From this point at mile 17 to Galisteo at mile 28.5 I dropped ~500ft but also came over some lower hills as well. There wasn’t much traffic on this road though I did see a rider pass me – and likely turn around at Galisteo since he then came back the other direction.

Galisteo had this church at main intersection of town. Otherwise didn’t see any business.

Historic marker.

The next 9.3 miles were on a smaller road with some steeper climbs and drops.

There was unfortunately also a ghost bike along the way. At a turn on bottom of a hill.

At the end of this road I came to NM 14, also known as the Turquoise Trail. This road was busy. It was also rather hilly with a few steeper descents. Overall from here to Santa Fe, I made back the 500-600ft I had dropped going into Galisteo. There was a restaurant combination feed and grain where I had lunch.

I came past the prison district coming into town.

I didn’t see any welcome to Santa Fe signs but after crossing under the interstate on this tunnel, found myself on side of a busy main road. It was hot and still a slight rise but fortunately, all pretty close as I found my motel.

I have tomorrow as a free day so will have to see if there is a shorter ride I do in the area. Overall, the ride from El Paso to Santa Fe was 370 miles over 7 days of riding. For the most part the weather cooperated and in particular no nasty headwinds. or really strong winds. Also gave me a chance to ride three days on the new bike and four days on the older touring bike as a mix.

Posted in bicycling | Leave a reply

Reflections: US Foreign Assistance, US AID and politics

Mike Vermeulen's web Posted on February 12, 2025 by mevFebruary 12, 2025

From the seat of a bicycle one can get a unique view of the world. You stop in places others might quickly bypass or miss.

I’ve been reminded I was still a strange curiosity by the dozen people in south India that watched me change a flat tire – or by groups of kids in Africa that watched our strange Tour D’Afrique circus come past their homes. One of my favorite images was the one below where several riders in Ethiopia were watching “The Lion King” on a portable player while kids from the neighborhood were observing these strange characters that came to their village.

At the same time, a bicycle is close enough to be approachable, to share a smile and revel that we are all human.

While cycling one can also see results of some humanitarian efforts from US and developing countries. Some of them are accompanied by large signs describing the sponsor – often an NGO, a government or religious organization.

Sometimes there isn’t a sponsor, but something is pretty out of place like these foosball tables that you are sure it came from elsewhere.

The western countries are not the only sponsors. In Africa at least, there were multiple signs of Chinese infrastructure such as this road building camp complete with Chinese/Ethiopian flags and preparations for the Chinese new year.

Occasionally these can seem misguided like these painted crosswalks in a few Ethiopian towns. Which just seems strange when people are going to walk everywhere anyways.

The amount and presence of these projects seems to vary a lot from country to country. There were a few like Ethiopia and Cambodia that stood out with a huge presence. Sometimes seems to distort things since people you meet often assume “you must be one of these foreigners coming here to do projects”, similar to what I experienced in Timor Leste.

From my reading, a larger focus of US areas have been in areas such as safe water, disease prevention, disaster assistance and programs such as the “Food for Peace” program.

Occasionally areas such as crosswalks can seem strange/wasteful. However, despite that I believe on balance, providing this assistance is better than not doing so. In particular, I am supportive of having US policy (and current law) to fund and provide assistance via US AID and other governmental organizations. The total budget is large on an overall basis (~$60B) but also relatively small compared to other areas we fund such as defense or even border security costs. Hence, I think it is on balance money well spent in part because it helps people and builds ties.

So I am rather dismayed at recent events where abrupt changes were made to assistance programs and US AID. Now some of my concern is a “process issue”. In particular, it appears to me (and my untrained legal). That there is something simply wrong about taking money/organization that Congress has created and funded and simply deciding to disobey the law. Below is a copy of the Inspector General report that was created about impacts of the freeze/disruption. Shortly thereafter, that Inspector General was fired. So I think from a process/legal perspective if the administration wants to make these changes, the should be brought before Congress and new legislation be passed. I believe lawmakers should be on record on how they vote for such a bill.

USAID-OIG-Oversight-of-USAID-Funded-Humanitarian-Assistance-Programming-021025

Though truth be told, even if such a bill were brought before Congress, I still wouldn’t be supportive of it. The reasons is mostly that from my observation, aid and these sorts of programs do a lot of good and is money well spent.

Posted in reflections | Tagged foreign aid, US AID | Leave a reply

Alamogordo to Lubbock bike ride

Mike Vermeulen's web Posted on March 17, 2024 by mevMarch 17, 2024

The Plan

A bicycle ride from Alamogordo New Mexico to Lubbock Texas in April 2024.

Why? This seems to be about the right time of year to ride this segment and several things also come together. It lets me “connect” Lubbock more closely to other routes I have cycled. In the summer of 2020 I spent a month in Lubbock as a cooler break from Austin during the pandemic. One weekend I cycled to Amarillo and other weekends I cycled in the area. However, connect to other places I have ridden including US 83 from Mexico to Canada or across Texas. While Alamogordo also doesn’t connect yet, it comes closer to both Socorro and Las Cruces which I have cycled in the past. It also will include a vacation home I have in Ruidoso where I have also cycled in the area.

It is a little over 300 miles which I expect to bicycle in a week. The first day I drop off a rental car in Alamogordo and then cycle up the hill to my vacation home. From there a four day ride via Roswell and ending in Lubbock.

There is a about 9000 feet of elevation gain and 10000 feet of elevation loss. More than half the elevation gain is on the first day to top of that second bump. After that a lot more downhill than uphill. The second day has the longest overall downhill. The third day to Tatum is the most remote with little in the way of services. The last two days are both flatter and have some wide-spread towns.

The weather can change, but on average temperatures in Alamogordo, Roswell and Lubbock have lows in the mid-40s and highs in the 70s so pleasant cycling. Ruidoso is a little cooler.

While there are trees about ~6000ft, a lot of this route will be on open plains where wind can make a difference. Hopefully I get some tailwinds or at least not as many head winds. The climate averages including wind roses suggest more tailwinds than headwinds so see how well this works out.

Posted in bicycling | Leave a reply

Can AI write blog posts?

Mike Vermeulen's web Posted on December 1, 2023 by mevDecember 1, 2023

I received a prompt from Microsoft co-pilot as an introduction. So I tried it with the following prompt:

Write a bicycling blog in the style of Mike Vermeulen

Here is what it created: Definitely a few things that are incorrect however also some interesting pieces of facts that are correct and show it likely scanned some from my blogs.

Here is a possible bicycle blog entry in the style of Mike Vermeulen:

Greetings from Colorado!

I am happy to report that I have completed the first week of my bicycle tour across the USA. It has been a challenging but rewarding experience so far. I have met some wonderful people, seen some amazing scenery, and learned a lot about myself and the country.

I started my journey in Alto, New Mexico, where I had been staying with my cousin for a few days. He drove me to the border of Colorado, where I said goodbye and thanked him for his hospitality. I crossed the state line and felt a surge of excitement and nervousness. I was finally on my own, with nothing but my bike, my gear, and my map.

My first destination was Trinidad, a small town about 50 miles north of the border. The ride was mostly flat and easy, except for a strong headwind that slowed me down. I arrived in Trinidad around noon and checked into a motel. I took a shower, ate a sandwich, and rested for a while. Then I went out to explore the town. I visited the Trinidad History Museum, where I learned about the rich and diverse history of the area. I also saw the Fisher’s Peak, a prominent landmark that rises above the town. I took some photos and posted them on my blog1.

The next day, I continued north along the Highway 12, also known as the Scenic Highway of Legends. This route took me through some of the most beautiful and varied landscapes I have ever seen. I passed by green valleys, pine forests, rocky cliffs, and snow-capped mountains. I also saw some interesting historical and cultural sites, such as the Ludlow Massacre Memorial, the Cuchara Valley Ski Area, and the Spanish Peaks. I camped at the North Lake State Wildlife Area, where I enjoyed a peaceful night under the stars.

The following day, I faced one of the toughest challenges of my tour: the La Veta Pass. This pass is the highest point on the Highway 12, at 9,413 feet above sea level. It was a steep and long climb, with several switchbacks and curves. I had to push myself hard, both physically and mentally, to reach the top. I was rewarded with a stunning view of the Sangre de Cristo Mountains and a sense of accomplishment. I took a break and ate a snack, then descended the other side of the pass. I reached the town of La Veta, where I stayed at a cozy bed and breakfast. I met the owner, a friendly lady named Susan, who offered me a homemade dinner and a glass of wine. We had a nice conversation about our lives and travels. She told me that she used to be a teacher, but retired and moved to La Veta to pursue her passion for painting. She showed me some of her paintings, which were inspired by the nature and culture of Colorado. I was impressed by her talent and her story.

The next morning, I thanked Susan for her hospitality and continued my journey. I followed the Highway 160, which took me east to Walsenburg, then north to Pueblo. This section was mostly flat and windy, with not much to see. I made good time and reached Pueblo by the afternoon. Pueblo is the largest city in southern Colorado, with a population of about 110,000. It is known for its steel industry, its cultural diversity, and its green chile. I decided to spend a day in Pueblo to rest and explore. I checked into a hotel and took a nap. Then I went out to find some food. I asked a local for a recommendation, and he pointed me to a restaurant called Bingo Burger. He said they had the best burgers and fries in town, and that I had to try their green chile sauce. I followed his advice and ordered a burger with cheese, bacon, and green chile sauce, and a side of fries. It was delicious. The burger was juicy and flavorful, the fries were crispy and salty, and the green chile sauce was spicy and tangy. It was the perfect meal after a long ride. I also ordered a beer, a local brew called Steel City. It was refreshing and smooth, with a hint of citrus. I enjoyed my food and drink, and thanked the staff for their service.

The next day, I visited the Pueblo Riverwalk, a scenic and lively area along the Arkansas River. I walked along the river, admiring the fountains, sculptures, and bridges. I also saw some shops, cafes, and bars. I stopped at a coffee shop and ordered a latte and a muffin. I sat outside and watched the people and the boats. I also checked my email and updated my blog. I received some comments and messages from my friends and family, who were following my tour. They congratulated me on my progress and wished me luck. I replied to them and thanked them for their support. I also checked the weather and the route for the next day. It looked like it was going to be sunny and warm, and that I had about 50 miles to go to reach Colorado Springs, my next destination.

I finished my coffee and muffin, and got ready to leave. I walked back to my hotel, packed my bags, and loaded my bike. I checked out of the hotel and hit the road. I was feeling good and excited. I had completed the first week of my tour, and I had seen and done so much. I wondered what the next week would bring. I pedaled on, with a smile on my face.

Posted in bicycling | Leave a reply

What brought me to Texas

Mike Vermeulen's web Posted on March 22, 2022 by mevMarch 22, 2022

On March 22, 2012 AMD employees in the Portland office were gathered for a mandatory meeting. It was announced the office would be closing by end of the year. It was a surprise to most, though as a manager I was given early notice the preceding November with understanding I keep things quiet until announcement.

It was still a bit of a shock as I enjoyed our small compiler team, and enjoyed living in Portland. I was fortunate to be given a choice between two alternatives.  I could either:

  • Stay with AMD and accept an offer for a company move and job in the San Francisco Bay Area or
  • Leave AMD with a severance package.

The advance notice had given me some extra time to anticipate and think through things.  I had even quietly made my own trip to San Jose in February to see what it might be like to live there again – particularly if I still decided not to own an automobile.

After further consideration, I decided to reject both offers and come up with my own counter-proposal.  What if I:

  • Stayed with AMD, but instead moved to the Austin office?  Also by the way, I could do the move instead of having the company pay for it.

While I didn’t disclose them, I had my own reasons behind my proposal. I had lived in the Bay Area previously between 1997 and 2001.  It was an OK place to be, though would be a little more challenging without a car.  Instead I was ready to try something new and Austin seemed interesting to try out.  If I didn’t like it there, I could always go somewhere else after having tried it out.  In addition, I already had plans to spend the first half of 2013 bicycling across Africa – so Austin would be a slightly better place to spend the second half of 2012 than Sunnyvale.

I was again fortunate that my offer was accepted.  I decided to move at start of July to give myself a six month trial run in Austin.  I arranged my own U-Haul trailer for a move.  However, instead of moving the majority of my belongings to Texas, instead I placed them in a rented storage locker in Fort Collins, Colorado.  This let me rent a smaller apartment in Austin and wait until after the Africa trip to finalize any move.  I bade farewell to Oregon and placed my condo on the market.  It was a bit sad because aside from Colorado, Oregon was one of the places I most enjoyed.

In the moment of March/April 2012 it was hard to decide on my choices – but as I look back, I am happy with the choice I made. Austin has been an OK place, particularly for months with the letter “R”.   There is enough outdoor stuff, an interesting city and a different place to be – even if I still sometimes think of myself as a Colorado kid and complain through July/August heat.  More importantly, I’ve enjoyed working for AMD and been engaged and challenged with my work.

Posted in reflections | 2 Replies

Wordle solvers – updated

Mike Vermeulen's web Posted on February 13, 2022 by mevFebruary 14, 2022

Last month, I posted a blog posted on approaches to creating an automatic solver for Wordle.

After that posting, there was also a Five Thirty Eight riddler question about the same topic by Zach Wissner Gross.  In Zach’s original posting he referenced code and code and examples done by Laurent Lessard.  In Lessard’s work, including this blog post Lessard ran experiments trying several different techniques for creating an optimal approach, e.g.

  • Picking the guess that created the most choices (most buckets)
  • Picking the guess that minimized the size of the largest bucket
  • Picking a guess that maximized entropy

Experimental results suggested that the first of these was slightly better than the other two alternatives.

A week later, Zach Wissner-Gross posted the best solution received a solution credited to Jenny Mitchell.  Either from Jenny or from Zach, this solution posted also turned the problem into a lookup table with each element of the tree having a designated solution.  The declared victor was essentially a variation of the “maximize splits” approach 

I was playing a little further with these solutions and trying to understand the search space.  As discussed in previous post, each word splits the candidate mystery set into up to 238 unique buckets (3^6 minus five invalid choices) and in practice up to 150 of these buckets populated using the word TRACE.  As Jenny Michell’s solution and Laurent Lessard’s experiments show, this is indeed a very good solution approach.  However, I am skeptical whether it is the absolute best approach because of two reasons:

  1. In the context of creating a lookup-table, it is possible that different approaches could create just slightly more optimal approaches for parts of the search subtree.
  2. The splits themselves are also influenced by the choices of the valid guess words.  There are quite a few, but it is not fully populated.

Zach made one statement in arguing for a maximizing splits approach that I am not convinced is true:

It didn’t matter how many words were in each constellation, just the total number of constellations.

To think of why, consider the following thought exercise of two hypothetical ways in which a a group of 20 candidates could be split by a guess into 10 buckets.

  1. One method would be word just happened to split this into 10 buckets of two elements each. In this case, the expected number of guesses would be 2.5 – one for the initial split into 10 buckets and then for each of these buckets one could either guess correctly (1 more guess) or incorrectly (2 more guesses) thus- 1 + (50% * 1) + (50% * 2) = 2.5
  2. A second method would be a word that creates 9 buckets of one element each, and a remaining bucket of 11 elements. In this case the expected number of guesses would be one for the initial split into 10 buckets and then all the buckets with one element could be guessed in the next guess – and the remaining ones however long it takes to split out the bucket of 16 – thus – 1 + 45% * 1) + (55% * x).

There is no inherent reasons what these two calculations have to be the same. Some notion of entropy can still play a role, even if maximizing entropy is not the best solution. Hence, I believe Zach’s statement above is a good description of the approach, but not guaranteed to find the absolute best solution.

So I created a metric that was a little more entropy based instead of purely the number of buckets or size of the largest bucket. I considered this as the “weighted size” of the bucket. In the example above, 55% of the mystery words are in the bucket with 11 elements and 45% of the mystery words are in a bucket with 1 element. So the weighted size is (55% * 11 + 45% * 1) = 6.05. This is in comparison to the weighted size of (100% * 2) = 2.0. So there is more entropy in the buckets that are all split out, than one that is still more concentrated in a larger bucket.

Note: That in general, I would guess that a lower weighted size should help – however, interestingly enough a bucket of size 2 is likely among one of the least efficient choices – so higher entropy might not always be the best solution in some of these small cases.

When I print a list of the top 50 choices that minimize this weighted size, I can also print their number of buckets as well as the largest bucket sizes in the table below:

num	word	bucket	max	ones	wsize	eguess
1	roate	126	195	23	60.42	3.31
2	raise	132	168	28	61.00	3.28
3	raile	128	173	22	61.33	3.28
4	soare	127	183	22	62.30	3.24
5	arise	123	168	26	63.73	3.26
6	irate	124	194	14	63.78	3.28
7	orate	127	195	28	63.89	3.30
8	ariel	125	173	21	65.29	3.33
9	arose	121	183	23	66.02	3.30
10	raine	129	195	27	67.06	3.24
11	artel	128	196	27	67.50	3.27
12	taler	134	196	24	67.74	3.29
13	ratel	134	196	25	69.84	3.29
14	aesir	116	168	32	69.88	3.33
15	arles	108	205	14	69.89	3.34
16	realo	112	176	20	69.95	3.36
17	alter	128	196	25	69.99	3.31
18	saner	132	219	33	70.13	3.26
19	later	134	196	34	70.22	3.33
20	snare	132	219	32	71.10	3.18
21	oater	128	195	38	71.25	3.38
22	salet	148	221	34	71.27	3.22
23	taser	134	227	31	71.28	3.26
24	stare	133	227	23	71.29	3.19
25	tares	128	227	26	71.54	3.24
26	slate	147	221	29	71.57	3.22
27	alert	131	196	25	71.60	3.24
28	reais	114	168	24	71.61	3.35
29	lares	118	205	22	71.74	3.33
30	reast	147	227	29	71.77	3.15
31	strae	125	227	16	71.85	3.19
32	laser	123	205	27	72.12	3.33
33	saine	136	207	25	72.59	3.25
34	rales	117	205	21	72.80	3.34
35	urate	122	202	25	72.83	3.31
36	crate	148	246	30	72.90	3.17
37	serai	110	168	20	72.92	3.30
38	toile	123	204	20	73.04	3.23
39	seral	128	205	24	73.08	3.17
40	rates	118	227	24	73.33	3.30
41	carte	146	246	30	73.52	3.21
42	antre	134	226	31	73.94	3.25
43	slane	133	225	25	73.99	3.19
44	trace	150	246	32	74.02	3.16
45	coate	123	192	22	74.51	3.22
46	carle	144	249	37	74.68	3.23
47	carse	139	237	26	74.83	3.20
48	stoae	110	177	18	74.90	3.26
49	reals	116	205	21	74.94	3.27
50	terai	113	194	17	75.14	3.27

The word “TRACE” is 44th on this list, even though it has the highest value for the number of of buckets in column #3. Similarly, if you instead want to pick the words with lowest maximum bucket size, a word like RAISE is lowest in column #4 but numbers in this column are not always the lowest expected weighted bucket size.

I am not convinced that a increase the entropy situation uniformly is best choice, any more than I am convinced a maximize buckets or maximize spread is optimal for the entire search tree. Instead, I think it can be slightly influenced by subtleties of particular trees as well as counts.

Looking at weighted numbers of guesses, recursively

To look at potential approaches and expectations, I decided to look at this inductively. In the end, we are creating a search tree, where the tree is composed of nodes ranging from one or more elements. What might be the expected number of guesses for these nodes and how can the be accumulated recursively?

  • One of the bottom building blocks are nodes with one element. These are also listed in column #5 of the table above under the heading “ones”. There are not very many of them near the root of the tree, only 32 of them at a first level guess of TRACE or ~1% of the 2315 cases. If you are fortunate enough to reach one of them, it takes one more guess to confirm. However, as you go to lower levels of the tree, I also expect the percentage of buckets with one element to increase.
  • Another building block can be an node with two elements. A described above, one can flip a coin get the right one ~50% of the time, so expected guesses are 1.5.
  • Next are nodes with three elements. An average expectation could be to guess this in two guesses – using one of two possible approaches. Either you try the choices in this bucket one at a time and (1/3 * 1) + (1/3 * 2) + (1/3 * 3) and have expectation of 2 guesses to solve – or you find something that splits the three choices into two and pick in the next guess. If you are lucky one of the two guesses might split the other two if incorrect.
  • Nodes with four or five elements might be even more “efficient” than nodes with three – since there is a larger probability of having a word that can split these into exactly four or five choices. At least this is what I’ve observed.
  • As the number of elements within a bucket increases, one gets into more situations where the problem instead gets solved recursively. Find the expected guesses and then break the problem up recursively.

So I created an example that created a search tree in this more dynamic fashion. When the node has only two elements, don’t find a pick that evenly splits it into two buckets to maximize the split (or to minimize the bucket size) – but instead try guessing one of the choices and if that wasn’t correct – pick the other. Hence, using a strategy with a 1.5 expected count rather than 2 expected count…

I did this recursively, and when a node had too many elements in it, then rather than an exhaustive search for the absolute best candidate – I used a rough heuristic (wsize in my case, but it could have been number of buckets or size of largest bucket) – and tried the best candidate. I think my rough heuristic can do a reasonable job – but I don’t claim to be absolutely optimal because there is always a chance that further down on the list might just be slightly better.

Looking at the table above, I notice that TRACE does pretty well within this overall list if used as a first choice, even if followed up later with a different heuristic. I am also struck that there is a word REAST at number 30 on the list that might be even slightly better as this first choice, even though it is not the best choice in terms of other metrics like maximal number of splits, smallest bucket size or weighted bucket size.

Instead, REAST looks like it might have almost as many buckets as TRACE (247 vs 250) but then also a slightly smaller maximum bucket size (227 vs 246).

Summary

I am not claiming that I have found the best solution for solving Wordle.

Instead, I am suggesting that other claims of ideal might not as strong. With a lookup table approach, I do think one could find a case that optimizes. However, rather than a single heuristic for creating all of that table, it may be the case that parts of the search tree use slightly different heuristics.

In the table above, the last column eguess is an estimated guess derived recursively and weighted by the number of elements in each node along the way. There is possibility my calculations are slightly off, but I’ll also observe numbers slightly lower than those presented in FiveThirtyEight.

I expect the largest form of discrepancy is for nodes with two elements. A naive approach of “maximize spread” solves this in two guesses, whereas an approach of try one and if it isn’t right try the other solves it on average in one and a half.

The second potential discrepancy isn’t as strong but comes from examining expectations for REAST vs. TRACE. These might suggest that it is possible to pick particular choices optimized for different parts of the tree (in this case the initial guess, but it could also be lower down). Undoubtedly maximizing spread and minimizing largest buckets are good things to do and lead to strategies that perform very well. It is with that step after that of claiming “ideal” that I am questioning.

Two general notes made in the last blog post also apply. First, this experiment was done in the context of a search tree for exactly the 2315 possible words in Wordle. I expect the general techniques to still apply but results to be different if picking a larger set such as ~40,000 words in Google corpus that are five letters long.

Second note is that the way systems solve Wordle are different from how people solve Wordle. My observation is people often try to find initial letters to work from and go from there. Whereas a system it is a combinatoric elimination problem. This was reinforced by Wordle for 14 February where chosing REATH followed by DOILY narrowed the space to a single word in a way I’m sure I would still have no clue…

Posted in computers | Leave a reply

Thoughts on creating a solver for Wordle

Mike Vermeulen's web Posted on January 15, 2022 by mevJanuary 15, 2022

There is a new craze lately about a simple game named Wordle.  The idea is somewhat similar to the old game of Mastermind:

  1. There is a hidden five-letter word you try to guess.
  2. For each guess, you get feedback if a specific letter is: (a) correct and in the correct location (b) correct but in the wrong location or (c) not correct and not from another location.
  3. You have a total of six guesses to try the word.

A new Wordle is released each day.  Just in the last few weeks, I heard a lot more about this game – and also tried its web site on recent.

One of the posts on Facebook I had from a friend was asking for feedback on strategies people use for solving the same.  This led me to explore a bit more and also go down the path to think about  what might be involved in optimal guesses and whether I could create a solver for this.  This posting describes a four step build-up I consider for creating such a solver.  Some of these steps I’ve also done.

As I looked more, I also found some resources including how others have solved the same problem.  Rather than look in detail at their solutions – I decided I’d rather explore that first on my own.  However, I did get references to a few useful resources I can use for my construction (these coming from responses to that original Facebook post including links they made):

  • There is a Google corpus of words they found most common on the internet: https://www.kaggle.com/rtatman/english-word-frequency .  This contains 39,933 total five letter words.  That is more than those that would be accepted as valid guesses, but also useful in creating an algorithm that is more robust.
  • There are pointers to the list of 12972 words you are allowed to guess: https://docs.google.com/spreadsheets/d/1KR5lsyI60J1Ek6YgJRU2hKsk4iAOWvlPLUWjAZ6m8sg/edit#gid=0 as well as the 2315 actual words that can be in the solution: https://docs.google.com/spreadsheets/d/1-M0RIVVZqbeh0mZacdAsJyBrLuEmhKUhNaVAI-7pr2Y/edit#gid=0  It seems to me the actual mystery list of answers seems a bit like cheating, but willing to consider using the guessable list to find acceptable candidates.  However, focus first on creating something from the larger Google word list. 
  • There is an interesting variant to Wordle that keeps changing the word to make it maximally hard – https://www.pcgamer.com/absurdle-is-like-wordle-but-it-fights-back/  This Absurdle program seems like a good test proxy to make sure my program can find guesses in a minimal amount of guesses.

Using these resources – following are the four steps I’ve considered to creating a solver.

Step #1 – create solver aids

The idea here is to create some utility programs including one that can filter a word list to include only those that match a particular Wordle response.  For example the Wordle response says the second letter is “a” and it is in the correct location, the letter “y” is in the solution but not the first letter and letters “u”, “o” and “d” are not found … then filter the remaining words to match the guess.

I’ve implemented this filter and with it I can use the Google word corpus to help me filter the remaining lists to look for candidates in order of word frequency.  This helps me steadily narrow the list and look at candidates for potentially being the answer.

Note: Even though these are candidates for the actual solution, there could be reasons one might want to use other words as guesses.  The primary reason is if those other guesses might more efficiently rule in/out letters than just matching only for ones you already know.

Step #2 – create something that picks an optimal guess from the (remaining) word list

The idea here is to take a look at a word list, e.g. from the narrowed candidates, and pick a guess that might optimally separate them for further narrowing.

So how to do this? and what is an optimal guess?

My suggestion for this is based on an observation that there are 238 possible valid response codes that Wordle can provide as feedback.  In particular:

  • Each of the five letters guessed can have one of three response categories: [a] the guess is a match in the right location [b] the guess is a match but not in this location [c] the guess is not a match.  So 3x3x3x3x3 = 243 possible combinations of these responses.
  • Five of those combinations will never occur.  In particular: four of your letters are correct, the fifth is not and is in the wrong location
  • 243 – 5 = 238 possible responses

So, we can evaluate each guess based on the effect it has on the candidate list.  We can look at things such as “how many buckets are occupied” and “what is the maximal number of elements in any bucket”.  As an initial implementation, I’ll start with the “minimize the largest bucket” heuristic and see how well it does.

I have implemented such a guesser.  It can serve as basic framework for a solver.  Each round uses the same candidate words as guesses but applies to a steadily narrowing remaining list of candidates.

Note: Using the Google list of words as candidate guesses, I have a risk that Wordle itself doesn’t accept as valid choices.  The obvious answer to this would to instead use the Wordle candidate list – which is what I implemented by default in the prototype.

Step #3 – validate and tune this guessing logic by trying all possible combinations – as well as Absurdle

With a guesser created in step #2, one can evaluate performance for all possible combination of five letter hidden words.  This would be ~40,000 possible iterations of the guesser algorithm – to find the maximal possible chains of guesses.

While exhaustive search might not be the most elegant way of doing such validation, the total combinatorics here seem small enough that it is well in the range of current compute power.

I haven’t yet tried an exhaustive evaluation, but have tried Absurdle.  Following is a rough transcript of the guesses and end result

### Generate a list of mystery words "c0.txt" using five letter words in Google corpus.  ### Find the best candidate

prompt% ./five_letter unigram_freq.csv > c0.txt
prompt% ./guess -m c0.txt | sort -n +2 +3 | more

# Guess 'raise' and Absurdle tells me there are no matches

### Filter out the candidate list based on Absurdle response
prompt% ./filter -i c0.txt -g nobly -c '?????' -p '?????' > c1.txt

### Find the best candidate to narrow the remaining list
prompt% ./guess -m c1.txt | sort -n +2 +3 | more

# Guess 'nobly' and Absurdle tells me the 'y' at the end matches

### Filter out the candidate list based on Absurdle response
prompt% ./filter -i c1.txt -g nobly -c '????y' -p '?????' > c2.txt

# Find the best candidate to narrow the remaining list
prompt% ./guess -m c2.txt | sort -n +2 +3 | more

# Guess 'dempt' and Absurdle tells me the 'p' at 4th position matches

### Filter out the candidate list based on Absurdle response
prompt% ./filter -i c2.txt -g dempt -c '???p?' -p '?????' > c3.txt

### Find the best candidate to narrow the list (or can also guess twice)
prompt% ./guess -m c3.txt | sort -n +2 +3 | more

# Guess 'pagan' and Absurdle tells me the 'p' and 'g' are at wrong positions

### Filter out the candidate list based on Absurdle response
prompt% ./filter -i c3.txt -g pagan -c '?????' -p 'p?g??' > c4.txt

# Guess 'guppy and Absurdle tells me I successfully guessed in five guesses!

Step #4 – automate this to interact with the web page

I will likely never do this step, but the basic idea is to create an actual program that fetches the web page and provides responses.

There presumably are existing building blocks for doing most of this.  I have used one such tool named xdotool to do exactly that for a Linux-based Sudoku web page solver.  So it would be mostly building this out and seeing what falls out of testing.

Overview and thoughts on the exercise

There is more interest in creating a solver than actually using it.  What makes Wordle interesting is as a test of human memory to see what words we recall.  Reducing this to a more mechanical computer search exploits what computers can do well – but otherwise misses the human memory aspect.

The choice of word lists to start with can be important.  In particular the difference between the Google Corpus 39933 words is larger to narrow than if you cheat and choose only from the actual mystery list of 2315 words (somewhat cheating in my mind).

There might be refinements if one considers the specific match letter and not just a more general bucket.  For example, when Wordle tells me I have the third letter correct, I put that together in a single bucket regardless of whether the match is “a”, “b”, “c” or anything else.  Expanding out the cases of those matches would significantly grow the tree from my 238 valid possibilities.  I expect some of this is taken care of when I take steps to filter the remaining possibilities with using the match – but some algorithms like sum of squares might be more accurate taking into account the particular match.  I expect an indirect effect is to further emphasize the largest buckets.

The website 538 lists a challenge to see if you can create an algorithm for guessing in Wordle in three guesses or less and probability of achieving success. https://fivethirtyeight.com/features/when-the-riddler-met-wordle/ Haven’t calculated the probability yet, but here is how I would approach it:

  1. Use the guess chooser from step #2 above on only the mystery list and it tells me ‘raise’ has the smallest remaining bucket overall and ‘roate’ has the smallest sum of squares.  Use ‘roate’ as maximally spreading out the distribution.
  2. Once Wordle responds at most one bucket is going to have 195 words.  The sum of squares helped me spread this overall.
  3. Use the response from Wordle to filter the bucket chosen into just the remaining words.
  4. Repeat again for second and subsequent guesses

As far as the probabilities go, I’d have to code up the algorithm to see how quickly it could reach each of the 2315 mystery words – essentially a breadth wise search to see how quickly the tree expands.

The overall code was pretty simple to write, 270 non-commented source lines of C total.

Update: After creating my solution, I looked a bit more at other examples out there including this one: https://github.com/LaurentLessard/wordlesolver  referenced at 538.  My approach seems fairly similar except this author has more fully explored the search strategy tradeoffs.

Posted in computers | 1 Reply

Ruidoso

Mike Vermeulen's web Posted on February 8, 2021 by mevFebruary 8, 2021

I bought a condominium in Ruidoso, New Mexico.

The place has both an upstairs and a downstairs and they are not connected. Upstairs are two bedrooms, each with a full bathroom. The rest of the upstairs is mostly a “great room” that flows from dining, to living places. There is an alcove with a kitchen as part of the great room. There are nice large windows in front as well as a nice sized balcony. The downstairs is mostly unfinished space, with a half-bath, a washer and a dryer. There isn’t an inside connection between upstairs/downstairs but instead you walk down the stairway at right. Otherwise, a fairly basic place with dated appliances and older carpet but the price was right. The sellers were supposed to remove their furniture but appear to have been slow doing this – so expect charitable organization to be picking that up in next few days. It also looks like the sellers basically abandoned even personal things in the closets and the selling realtor didn’t do their side of the agreement to remove items. Sigh.

The condo is just slightly outside Ruidoso at 7500ft elevation. This makes for a more drier and more temperate climate that is 15 degrees cooler than Austin year round and for both high and low temperatures.

Temperatures are slightly milder than northern Colorado. Not quite as warm in the summer and not quite as cold in the winter. On average, Ruidoso gets about half the amount of snow each winter as northern Colorado. Annual moisture is ~17 inches vs. ~14 inches and more of a summer monsoon than spring snowstorms. As with other dry climates, it is sunny most of the time.

These deer were hanging around. My guess is people might be feeding them. I think there are bears and other wildlife in the area as well.

The greater Ruidoso region has a summer population of ~30,000 and has a bit of a vacation area feel to it. Lots of “cabins”, condos and building lots. An overcrowded downtown reminds me of Estes Park with a lot of touristy shops. I think the summer tourist season is more popular than winter. The nearest big cities are El Paso (140 miles), Albuquerque (180 miles), Lubbock (250 miles), Amarillo (290 miles). Ruidoso is ~560 miles from DFW and ~580 miles from Austin. The roads are good and if the weather cooperates, I can easily drive in a day.

My condo is about 15 miles from Ski Apache a small ski area on slopes of Sierra Blanca mountain. This year is apparently a dry year with less snow than normal but there were still some skiers. The road is paved, but narrow and winding as it climbs ~2000ft up to base of the ski area. Sierra Blanca summit is just slightly less than 12000 feet and is tallest and most prominent peak in southern New Mexico. https://www.summitpost.org/sierra-blanca/151784. Very little of the roads are flat, but should be some fun cycling up and down these hills.

Views from a lookout on the road up to Ski Apache show you can see pretty far. This is looking mostly off to the northeast. A lot of this area is Lincoln National Forest, with some hiking as well as campground areas. Directly to the south is mostly Mescalero Indian reservation. The overall uplifted area of mountains is about 20 miles wide and 60 miles long and is surrounded by lower dry desert areas. Ruidoso is in the northern part of this region and Cloudcroft is further south.

I’ll be interested in hiking up Sierra Blanca since it will be ~7500 feet higher than the surrounding areas such as White Sands National Park on the west side. In the foreground is Monjeau Peak at 9582ft – https://www.fs.usda.gov/recarea/lincoln/recarea/?recid=80034

A screenshot from Google Maps satellite view shows the rough location of this green blob in middle. To the left is the Rio Grande Valley between Socorro and Las Cruces. In the valley to the left are the White Sands as well as Malpai Lava Flow. There is another lower range between White Sands/Malpai and the Rio Grande. To the right is Roswell with some green farming areas. In between is this uplifted area with Sierra Blanca Peak highlighted. Just below the bottom right is a Carlsbad Caverns, a longer day trip from Ruidoso.

So why a condo in Ruidoso?

In the short run, as the pandemic continues, I figure it is nice to have an alternate place that is one long days drive from Austin. I’m getting high-speed internet installed the next day or two and then should be able to rent a car, drive up one weekend, stay for a week or two while working from Ruidoso and then drive back on a subsequent weekend. It also happens to be one long day drive to northern Colorado, so also a shorter distance and potential stopover point between CO and TX.

After we unwind from the pandemic, I’m not sure how much I’ll be able to work as much remotely, but should also be a spot for shorter vacation or jump off point for other adventures. I’m thinking of a three week trip in May. First week working remotely, then a week of bicycling through New Mexico and then another week of working before returning. Hopefully can escape during some summer times when Austin gets particularly hot/muggy.

After these next few years, who knows. Eventually it would be nice to make some extended bicycle travels for a year or two and have a home base to store stuff and occasionally visit between travels — I do see myself getting back to Colorado after that.

If some of these thoughts/plans don’t work out as well as expected, then can always sell again later. Prices were reasonable (my best guess is ~1/2 the cost per square foot of what my Austin town home is worth; Ruidoso is closer to prices in El Paso or Lubbock than Austin which is a hotter market). If the pandemic causes more people to work remotely from places like Ruidoso, this could become more popular as it is otherwise a nice but somewhat more remote area.

Both an interesting project to get Ruidoso condo set up and an interesting get-away for visit. This week is a first week setting things up while also mostly working remotely.

Posted in ruidoso | 3 Replies

Riding every day in November, Boulder edition

Mike Vermeulen's web Posted on November 27, 2020 by mevNovember 27, 2020


Just before Thanksgiving weekend, I drove to Boulder. Plan is to work from here until New Years and be a little closer to family over the holidays. To continue my “Riding Every Day in November” challenge, I decided to augment my Austin grocery story ride by cycling to every Safeway, King Soopers, Whole Foods and Sprouts in Boulder. Listed in the map above.

Posted in bicycling | 1 Reply

Riding every day in November

Mike Vermeulen's web Posted on November 1, 2020 by mevNovember 5, 2020

Entered a challenge to see if I could ride my bike every day in November. Along the way, also tracking to see how many Sprouts, Randalls, Whole Foods and HEB stores I might visit. Below is a map that tracks the stores I have visited.

Posted in bicycling | Leave a reply

Post navigation

← Older posts

Archives

  • April 2025
  • February 2025
  • March 2024
  • December 2023
  • March 2022
  • February 2022
  • January 2022
  • February 2021
  • November 2020
  • September 2020

Categories

  • bicycling
  • computers
  • photo
  • reflections
  • ruidoso
  • website

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
©2025 - Mike Vermeulen's web - Weaver Xtreme Theme
↑