Search

The Heunis Chronicles

Our Journey

Author

Adam Heunis

From Boesmansriviermond in South-Africa's Eastern Cape, my family and I now reside in Downingtown, PA, USA. To earn my keep I'm a Software Architect & Manager for a great company in the Health Sciences sector. Also a serious amateur photographer. Pro-environmental and conservation views.

All-time favorite “selfie”

I’ve been taking photos in one form or another for 30 years. I love wildlife photography, but accessibility to wild animals is obviously always a challenge and so most of my photos are of landscapes at wider angles. I’ve taken around 10 that I think are really top notch.

Photographing people though has never been my thing. I don’t think I’ very good and spontaneity is tricky nowadays. This image that I took today though is, in my opinion, one of my best of all time. I absolutely love it and it has nothing to do with the fact that I’m in it! I love the light on the face, the eye peering out, the frame around the face and the blurred background.

The thing though is that very little of this image isn’t pure luck! It was only a selfie with my Android phone! No fancy lens or camera, no planning of light or location. Just a point and shoot right before I left the park to go home to send around on social media. But everything just clicked (pun intended) and it came out being one of my best.

Photography remains a mysterious mistress after all this time and it’s awesome!

Puerto Viejo, Costa Rico visit during COVID-19 (Dec 2020)

This post serves as a collaborative journal between the 4 of us (especially where food is concerned 😂), so may be a bit verbose in areas. Hopefully readers will find some of these details useful.

The Lead Up

After a crazy year, both from work & life perspective, the Heunis family needed a proper break to really recharge. We wanted to visit Central America especially after a “all-in” vacation to Mexico a few years ago. We had a great time in Mexico, but we wanted more of an authentic experience. However with Mexico’s drug & gang problems leaving the resorts are not recommended so we were on the lookout for an alternative.

When I then happened to see in a news feed that Costa Rica had re-opened their borders for visitors on 1 November, I thought this might be a great opportunity to go on this dream vacation, COVID-19 notwithstanding. And so, despite a minor complication with Cara’s passport, we booked the trip from Sunday, 20 Dec to Tuesday, 29 Dec. With regards to COVID-19, Costa Rica has eased restrictions to a large degree. Really you just require a Costa Rican Health Pass. To get the Health Pass takes 10 minutes but it requires you to have travel insurance.

Day 1 – Sunday

From a snowy New York, we flew with JetBlue from JFK’s Terminal 5 at 6pm. Our flight was delayed by about 40 minutes and the in-flight entertainment wasn’t working, but otherwise it was an uneventful 5-hour flight with everyone being very respectful and compliant with regards to the COVID-19 measures. We did have to show the Health Pass QR codes that are required before we were allowed to board the flight.

It’s so awesome when after 5 hours you leave the plane and it’s a warm 77F at 11pm! The San Jose Airport is small, but modern and clean. Going through immigrations and customs was a breeze. They did scan our QR codes though. I exchanged $50 for Colones (the Costa Rican currency), but honestly everyone takes the mighty Greenback (US Dollars for non-American readers).

We booked the Hampton Inn near the San Jose airport because it was such a late flight. Cara (11) felt it was “sketchy”, but it’s really just a place to catch up on some sleep before the adventure starts. It cost us a $110 for the 4 of us.

Day 2 – Monday

We took an Uber to Walmart. Uber operates just fine in San Jose but outside the capital is less predictable. Traffic in San Jose is W-I-L-D! The main reason for the Walmart trip was to purchase SIM cards (for cellphone service) and some groceries. The SIM card was $11 for 3GB and we got it mostly for Google Maps or Waze, which seems to be the preferred provider here mostly because of local community engagement. The staff were very friendly although not everyone could speak English.

We rented a very small car from Vamos Car Rental, across the street from the hotel, because they have better reviews than most car rental companies, but Car Rental in Costa Rica is not straightforward. See my Costa Rica car rental notes. We ended up paying $560 for the week with a $2,000 hold on my credit card!

Drive to Puerto Viejo

The drive down from the mountain and from Limon down the coast – the last part, are really beautiful. About an hour out from Puerto Viejo one begins to realize you’re entering a special part of the world. We left San Jose a bit later than we anticipated so we arrived at Puerto Viejo when it was already dark.

Driving in Costa Rica is quite challenging especially when you’ve rented a manual (stick), but you haven’t driven manual in 6 years! It’s a two-lane highway for most of the way with so many big trucks on the road. There are also disruptive roadworks for most of the journey not to mention pot holes that put even Pennsylvania to shame! Many traffic rules are also considered optional by much of the locals. Lene was a nervous wreck and took a few days to calm down after the 5-hour trip. Also Cara threw-up 🤮 from the windy road down the mountain! But despite the hair-raising moments and the threats of divorce🤭, it’s a very interesting drive.

Terrazas del Caribe

Terrazas del Caribe has a beautiful pool.

We checked in to Terrazas del Caribe at around 6pm. It’s a few miles outside of Puerto Viejo just behind Playa Cocles. (“Playa” means “Beach” in Spanish) and a ~3-minute drive up a steep gravel road away from the main road. Check-in was very easy and our room was great and the pool even better. There is a decent kitchen and a superb patio as well.

We were all tired from the day’s driving so we spent the rest of the evening at Terrazas.

Day 3 – Tuesday

Had brunch at Bread & Chocolate, a charming coffee shop with excellent service. Elke and Cara had French toast & Smoothies.

Afterward we explored downtown Puerto Viejo. It was very interesting with fishermen coming and going. Puerto Viejo was originally named Old Harbor and was founded as a fishing village.

It started to get hot and we went for our first swim at Playa Cocles.

After working up an appetite in the waves, we had dinner at La Nena’s. I had Ceviche and Sea Bass which were both delicious. Elke & Lene had Veggie Burritos and Cara had Chicken Fingers. Loved the Caribbean atmosphere.

Day 4 – Wednesday

Cahuita National Park

Cahuita is a beautiful, albeit small, national park. It isn’t well marked and there are a few cagey folks hanging around the entrance, but we didn’t have any issues. You can take a guide at a steep price, but we passed on that. Especially when hearing that we’re from Africa, the guide seemed way more interested in discussing African wildlife then Costa Rican wildlife.

Cahuita National Park is a treasure

It’s a walking park with the trial starting at the entrance. We found our first sloth curled up in a ball before it started to bucket with rain, but we found shelter and hung out with some Ticos before eventually finding a beautiful beach under the mangroves where we took a swim in the Caribbean. Don’t be alarmed when folks switch their clothes for their swimsuits right there on the beach. We did the same!

Cara was afraid of the Yellow Pit Vipers on the way back, but we returned to the car without being bitten.

On the way back we stopped at the charming Aroma Coffee Bar & Restaurant. Delicious milkshakes, fries & cheesecake, but Cara’s French Toast didn’t cut the mustard. We all had a good laugh at her reaction. Elke had Crepes and I had a burger all while watching the pouring rain. Many Restaurants in Costa Rica only a roof with no walls because it’s always warm enough to be outside.

We all swam at Playa Cocles again. We were warned about the dangers of this beach due to rip tides and sadly someone drowned here during our stay. The vibe on the beach is really cool though with all the surfers and other alternative folks hanging out. I didn’t get any sense of sleaziness or feel threatened in any way. Elke took a bunch of photos and created a timeless BTS shrine in the Caribbean sand.

On the way back Lene shopped at the Super Cocles supermarket. We all wanted her to hurry up and she got mad at all of us for rushing her. The PTSD from the drive down was apparently still an issue! 🤐

Day 5 – Thursday

After making breakfast in the room we traded places and moved to Shawandha Lodge just behind Playa Chiquita. We were amazed by this place. All the lodges are inside of this stunning forest garden with numerous gigantic trees – some up to 70m! So many wild animals and birds live inside the grounds and the plant life is really just a tropical wonderland. There’s also an adequate pool although we didn’t spend much time there because of the proximity to the beaches. The lodges themselves are also superb. The only issue is that there are no kitchen amenities so if you stay here, you have to eat out which can get expensive.

After getting the paper work done we couldn’t check in just yet so we walked through a beautiful strip of forest on to the magical Chiquita Beach. We found paradise. The pictures don’t do it justice; so stunning. We all swam, despite the sea being a little rough.

Afterwards we had a wonderful dinner on the beach at Sol del Caribe. An awesome vibe looking at the sunset over Playa Cocles. I had the Caribbean chicken, Lene had Coconut Shrimp Curry. Cara had Burger with fries. Elke had Beans and Rice with Coconut milk with veggies. Simply brilliant!

We went for Ice Cream at Tsunami’s afterwards and chatted to the very friendly owner. He said beaches are totally safe, except for the rip currents.

My best day of the trip.

Day 6 – Friday (Christmas)

Woke up and opened Christmas presents. Had breakfast at Lodge which was tamales. I thought they were delicious, but not everyone thought so. We phoned family and friends.

We drove to Tarponville Lodge but we couldn’t quite find it. We found the spot, but there was nothing there! Also the area was very crowded with Christmas celebrators so we took a pass and moved on to lunch at a restaurant next to the Punta Uva Dive Centre. This is confusing because it’s not actually at the main Punta Uva beach. And although the location was excellent, the service was not. Cara struck out twice with OJ and Pizza. The only restaurant that didn’t deliver.

Punta Uva Dive Centre

After that we drove to the real Punta Uva beach with the help of the guy running the Dive Centre, who gave us directions. Punta Uva is famous for it’s natural beauty and it didn’t disappoint. We walked on the beach, but decided to return for a swim the next day.

Later I went to Playa Chiquita on my own to photograph the sunset. I got a few good images – stoked!

For a late snack we had fries and smoothies at Soul Surfer, a restaurant with a stunning location and a wonderful service. The waitress was also an expat from Canada. She said that their sales were down 70% because of COVID-19.

Day 7 – Saturday (Boxing day)

Checked out from Shawandha Lodge and checked in to El Nido. We couldn’t go to our rooms yet so we went back to Punto Uvo for that swim.

It was a perfect day for swimming. We had coconut for the 1st time, Delicious, but we found out afterwards that they overcharged us. The going rate is 500 Colones and we paid $2 which is about 1200 CRCs – they saw us a mile away! I spoke to a local who said the beach was very dangerous. He said not to bring valuables and to avoid initiating conversation with locals. He said he was watching our bags, although we also never lost sight of them even as we were swimming. Although in hindsight I did flaunt my camera a lot with all the photos I was taking – yikes! 🤔

We couldn’t quite figure out why it’s so dangerous, but afterwards people said it’s an area controlled by “Narcos” so maybe that’s it. But there’s so many conflicting stories about safety, I’m still not sure what the exact state is. When we were there it was overwhelmingly families so the dangerous claims don’t quite add up.

We had a late lunch at Tasty Waves, an American / Canadian Cantina. Great food and vibe. The only place we found that showed US sports. Lot’s of super interesting, laid back characters. Cara had the Quesadilla, Elke and Lene shared Nachos and I had Pulled Pork Burrito. It was superb. We spoke with the waitress, a Canadian expat who has lived in Costa Rica for 4 years. She also said Playa Cocles was completely safe but that there were isolated instances of robbery in the past and that this was what drove an outdated narrative.

Lene and I went for a magical walk to Playa Chiquita where I swam in the channels. Lots of Ticans celebrating Boxing day.

We ate a late dinner of Ramen at home and sat on the porch until midnight appreciating the amazing nature around us. Was astonished to see every member of the neighboring lodge spend 4 hours on their mobiles without talking to each other or doing anything else all while in paradise! Teachable moment right there!

Day 8 – Sunday

Had very nice breakfast (included) at the Lodge.

Went to much renowned Jaguar Rescue Centre. Not super organized. We couldn’t get tickets because it was full.

Drove into downtown. Did some souvenir shopping and met the really nice San Francisco ex-pat owners from Sloth Toes (leave review). The owners gave us tons of background info about the whole area.

Light lunch at Bread & Chocolate.

Swam at Playa Chiquita. On the way back we saw a sloth get stuck in the power cables with a benevolent bystander trying to help the little guy down. Eventually the ER folks came to rescue him, but all the commotion was scaring him so we left to not aggravate the situation further.

Day 9 – Monday

We drove to Gandoca Manzanillo National Wildlife Refuge, but they only allow 200 people in per day and when that number has entered they close down the park even if some of the initial entrants come back out. They say it’s a COVID-19 rule, but it makes no sense to not keep the numbers at that rate until closing time. Disappointing.

Having lucked out at Gandaco, we drove to the Panama/Costa Rica border post at Sixaola just to get a sense of the region away from the tourist areas and it was totally worthwhile. We saw a number of birds, raptors and even a dead snake with what seemed like some good primary forest although it changed to banana plantations half way there. The majority of the road was also not really suited to our vehicle 😂. We were the only vehicle on the road without 4×4 and folks were staring at us with WTF expressions!

The border post is very chaotic as it’s on a bridge which is closed due to construction. Lene also didn’t feel 100% safe so we took a quick snap for evidence and quickly moved on to Bribri, which was just a standard Central American town, and then returned to Puerto Viejo.

Day 10 – Tuesday

Went for one last treat at Gustibo’s in Puerto Viejo.

Drive back was very eventful. Saw multiple accidents on the way up the mountain as well the police going full SWAT on a guy in a pick-up. We have no idea why, but suspect it was related to drugs or car theft.

Checked in without any issues, but had to wait ~4 hours for the flight to board. Also someone arrested inside the airport, again with no idea why.

Conclusion

A fantastic vacation! 110% worth it despite the extra planning and execution required. The natural, cultural, adventure and relaxation requirements were all met for us and then some. Everything we had hoped for. As always we learned a few things which I mention below, but these were quite trivial compared to the awesome experience.

If you have kids, even better. They absolutely LOVED it. And it really is a superb way to reconnect with your kids. I just can’t imagine that we won’t come again! Pura Vida!!

Additional notes

Car rental

Car rental is complicated in Costa Rico. It’s ultimately very expensive although it isn’t advertised that way. I took a lot of time to research It has to do with government-mandated 3rd party insurance called Liability Insurance, which is NOT covered by Credit Cards or your US insurance. The Car Rental companies all exploit consumers by adding massive non-transparent margins on this insurance. For a week or very small car cost us $560. They also added a $2,000 hold on my credit card for CDW coverage, which IS covered by your major credit card! Based on reviews some companies are very creative in trying to find ways of deducting payments after your vehicle is returned. So be very thorough when logging damage beforehand. Read more about Costa Rican car rental.

I will seriously consider another way next time. During our stay in PV someone said that folks fly in to Limos from San Jose so there may be options.

Hygiene

All accommodation prohibited one from flushing toilet paper. Instead you had to put it in a provided bin next to the toilet. It’s a little strange, but we all got used to it quickly – even the kids.

Best areas / accommodation

For families, I strongly recommend the area behind Playa Chiquita. It’s far enough from the nightlife which can get a little lewd in Puerto Viejo, but close to the best beach in the area in my opinion. The gardens and forest are also so intertwined that it’s choc full of interesting wildlife. The Howler Monkey “howls” are something to behold – scared the bejesus out of both Lene and I on the first night!

Language

Contrary to my research, many people don’t speak or understand English. However I downloaded Google Translate app (and the Spanish data set) and that worked like an absolute charm when I needed it. Highly recommend it.

Driving

Driving is one of the things to be careful of in Costa Rica, especially in Puerto Viejo. Everything is very informal. There are no designated parking spots or lanes so people just drive and pull over next to the side of the road. And most people bike around so sometimes there’s only enough space for one vehicle at a time. It’s fine if you can “roll with it” and take it slow until you get the hang of it.

Shops and restaurants

There are plenty of well stocked supermarkets with fresh bread, fruit and veggies. Groceries is not an issue.

So many great great restaurants. Usually very small, but great food, service and atmosphere. Not super cheap, but not expensive either. Between $40 and $60 for a family of four. We only got a little ripped of once where the food didn’t quite match the price tag.

Packing for the trip

Bug spray & suntan lotion

Bring both. The bugs aren’t nearly as bad as in Outer Banks for example, but they are pesky in some areas. The sun is very harsh at the equator when it isn’t cloudy. Bring suntan stuff that isn’t harmful to the local reefs.

Footwear

Cheap flip flops and one pair of hiking boots is all you need. Everything else is a waste.

Money

I would recommend getting around $50 worth of Colones just for emergencies. We never needed any though. Everybody takes US Dollars and most places take the major Credit Cards.

Kid’s devices (electronics)

Don’t! It’s really pretty straightforward; just leave the kids’ devices at home. This is the kind of trip to appreciate the incredible surroundings and to break bad electronic habits. There is no reason for kids to have devices on this trip. Trust me on this!

Office 365: Is Teams cannibalizing Yammer?

Yammer was acquired by Microsoft in 2012 for US$1.2 billion and I think they had great expectations of it becoming a corporate social network. Equivalent to Facebook for companies.

But I doubt that this has realized for them. Yammer’s integration with Office 365 is confusing and flawed. For instance creating groups in Yammer has no correlation to Office 365 groups unless you specifically set it up that way. In this video Office Guru Darrell shows how to do this. But be very careful doing this, because once you’ve done this you can’t undo it (except by creating a Yammer ticket – and even that’s not straightforward).

Also you would think that once you’ve set this up, you should be able to join existing O365 groups. You’d be wrong! Enabling O365 connected groups allows you to create new O365 groups through Yammer which is then appropriately surfaced to SharePoint & Teams as well, but despite a popular UserVoice idea from 2018, you still can’t join existing O365 groups. For me and I suspect many others that’s a fundamental flaw.

I think there’s a lot of value in a fully integrated Yammer especially in light of the recent Facebook Workplace launch, but even after being part of Microsoft for 6+ years, Yammer just doesn’t have the maturity to realize the value. I also don’t see there being much momentum in terms of developing this product if one looks at the frequency of feature releases over the last 18 months.

Teams: Microsoft’s Killer App

That is juxtaposed to the fantastic value that Microsoft Teams provides. And I wonder if that is not the underlying issue. Teams is a runaway success for Microsoft – it is in fact their fastest growing app in Microsoft’s history, an incredible statistic! It is set to surpass Slack in short order.

I wonder if teams aren’t so enamored with the incredible integration, functionality and value of Teams, that Yammer’s use case isn’t immediately clear anymore and that for that reason it’s not being adopted anyway. Which means that Microsoft are hesitant to invest and develop this product. And as Teams continues to grow, I struggle to see a clear path forward for Yammer.

Philadelphia between Christmas & New Year

Yesterday we took a(nother) Philly sightseeing trip. This time we took the train with SEPTA’s Independence Pass. Friends informed us of this pass and for folks in the suburbs like us, it’s perfect for a day-trip to Philly. I always say this when we go in to Philly for fun, but it’s a great city. So much to see and do there at any time of the year. But between Christmas & New Year’s the city makes an extra effort.

We went to China Town, Macy’s (saw the Christmas show) & Dilworth Park where Elke – always up for a challenge – went ice skating. Then we had dinner at El Vez, an outstanding Mexican Restaurant.

It was such a nice day. And to top it all the Eagles won their game to reach the NFL playoffs so that added to the great vibe.

Fly Eagles Fly!

Enterprise-level web application architecture on Azure

Having been in software for 20+ years, the one thing that remains consistent is change. As soon as you think you have a technological stack working perfectly something new is released and disrupts it all! New technology often provides significant value so developers & architects are eager to utilize it, but it’s not always clear where “things go”.

I also understand very well that technology preferences are like the proverbial religious wars. Azure vs AWS, Angular vs React, Java vs C#, Linux vs Windows and so forth. And that’s OK. However this post is for people like myself, who feel comfortable with Microsoft’s .NET stack. The .NET Framework has been around since 2002 and that has allowed it to gain a lot of maturity. With .NET Core, Microsoft have applied the many lessons from .NET Framework to build a new & better platform. Read more about why enterprises are turning to .NET Core. I have no hesitation in recommending .NET Core for your enterprise-level web application.

I do also think it’s worth mentioning that Azure is purposefully not positioning themselves as Microsoft only providers. In fact, there’s a recent stat that shows how Linux now dominates Azure – who would’ve predicted this only a few years ago!?

So, at this moment time, I would use these components to build a brand new enterprise-level web application.

Infrastructure

Azure Web App on Azure App Service

Yes I know, what about containers? I love containers! Containers are great if you want to avoid maintaining an OS in the broad sense and you want to build for different OSes and providers. Docker has wonderful products and is fully supported in Azure with both Azure Kubernetes Services (AKS) and App Service.

However if you only require an application host and you know you’re going to stick with Windows OS and Azure, I would still recommend Azure Web App. It’s Infrastructure-as-a-Service, which makes it so simple. You can think of this as the same concept as a container, but it’s a little lower-level; so containerized IIS almost.

Azure Web Apps also provides everything you would need to run mission-critical web applications for the enterprise like scaling up and out, high availability, geo-replication and so forth across multiple slots (for dev, test & production environments for instance). It also has excellent insights (analysis) with almost zero setup. Not to mention real-time debugging with Visual Studio.

Server-side Framework

ASP.NET Core 2.2

Although the .NET Framework (currently at version 4.7.2) has been a very successful framework for a very long time, but for any new applications I would strongly recommend .NET Core (currently at version 2.2, although version 3 is in Preview at the time of writing).

.NET Core is a vastly refactored framework that is open-source (a fact often lost on many people), more compliant with better performance. It also has a great CLI for folks who prefer CLI and text-based editors over the powerful, yet bulky Visual Studio. I talk about IDEs and tools below.

To code the on the server-side you should use C#. VB.NET is not worth a long-term investment; despite Microsoft’s assurances I see this as a declining language. C# is a wonderful, continually evolving language that is as good if not better than any of the others.

Data Store

Almost all web applications require a data store. A common use case for web applications is dashboards, reporting or Business Intelligence (BI) from big(ger) data sets (often in Data Warehouses Blob Storage, Data Lakes etc.), but those data sets are mostly unrelated the web application itself and therefore falls outside the scope of this post. I might talk more about that in a future post.

Azure Cosmos DB

For web application data storage, I recommend Azure Cosmos DB especially if you’re comfortable with JSON and have an adequate understanding of document-based databases, also referred to as NoSQL. These databases are not relational like SQL Server or Oracle. But very often, especially for web applications, relational models don’t offer any extra value but add complexity and reduced performance.

Cosmos DB is enterprise ready with a great SLA.

Azure SQL Database

If you’re already comfortable with relational databases and don’t want to invest in learning NoSQL then you can’t go wrong with Azure SQL Database. It’s not exactly the same as SQL Server, but very similar. However it has significant enterprise-level benefits like scaling, availability, backups etc.

Be careful with security though. Microsoft’s suggested access pattern has it’s critics. Just ensure you’re compliant within your industry. Azure SQL Managed Instance (MI) might be a better choice if you require a more conventional VNET/Subnet security model.

JavaScript Framework

Angular 7+

For the client-side implementation of your web application, I confidently recommend Google’s Angular (also known as Angular.io or Angular 2+). Avoid AngularJS (also known as Angular 1); it’s a relatively easy framework to learn, but has some issues around performance and challenges with maintainability. With Angular’s tight integration with TypeScript it’s easier to maintain and safer to code with. It does take a little longer to set up, but it’s worth it.

React

Facebook’s React is also very popular and if you’re comfortable with it, use it. I’ve used both and I prefer Angular because of it’s tight integration with TypeScript as well as its clean patterns. React also has a TypeScript implementation, but it’s as well-supported as Babel, it’s own type engine. And I don’t see Babel as being as having the industry adoption that TypeScript has.

But they’re both excellent, well-supported frameworks. Vue.js is also getting a lot of attention nowadays, but it’s not one I’ve used. There has been so much written on choosing one so I won’t go into that again. I prefer Angular, but they all work fine with ASP.NET Core. Pick the one you want as indicated in the screenshot below.

Choose SPA Framework

Blazor (Web Assembly)

There is another experimental platform called Blazor that one should definitely be aware of for the future. It will build to a WebAssembly which is now supported by the mainstream browsers. This will mean you can code C# for the client-side! I think Blazor will be a major player in client-side development in the future. Very exciting indeed, but it’s too early at the time of this post.

CSS Framework

Bootstrap 4.1+

Bootstrap 4.1 is a very powerful and extensible CSS framework developed originally by Twitter, specifically with Responsive web design (RWD) in mind. Version 4.1 has some great improvements over the very popular version 3 and version 4.

Unfortunately version 4.1 still relies on jQuery and other 3rd party JavaScript libraries, but the intention is to rid the framework of these in version 5. So do look out for that.

With ASP.NET Core the client-side libraries have to be installed and updated with NPM packages. That’s a big topic on it’s own, so I won’t cover that in this post.

Real-time communication

SignalR

For real-time communication (chat, tickers etc.) use SignalR either in the application or better yet SignalR on Azure. It is a very specific use-case, but this is very cool technology that I’m very fond of.

Editors and other Tools

Code Editor

For folks who have been on the Microsoft stack for a while, Visual Studio is the go-to IDE. It’s a very powerful, rich & full-featured IDE that comes in 3 editions; Community, Professional & Enterprise. Community is free and fine for most cases. Visual Studio is now available on Mac, but it’s not open-source. The Enterprise edition is very expensive.

However unlike the old days, you don’t need Visual Studio to develop .NET applications any more. Because .NET Core was developed with a CLI, you can use any text-based editor to code for it. Notepad++, Sublime Text or, my favorite, Visual Studio Code all do the trick.

VS Code is also open-source and can run on all the OSes. It’s extensibility platform is quickly making it a developer favorite across tech stacks. It really is a great product. I’ll do a follow-up post on it at some point.

Data Access

If you’re using Azure SQL Database (or any other SQL Server-based data store) most people use SQL Server Management Studio (SSMS). It’s a very powerful, but bulky application that does all one needs. It’s free, but not open-source and only runs on Windows.

More recently Microsoft has released Azure Data Studio. I really like this tool. It’s a much lighter open-source multi-OS application that is also free. See if you can spot the trend here! 🙂

If you’re targeting Cosmos DB, you can use the Cosmos DB emulator for local development.

DevOps

Over the years, we’ve all seen these buzzwords. Web 2.0, Big Data, Machine Learning and so forth. It feels like DevOps is the trending buzzword currently! For those of us who have been using this for years (who remembers CruiseControl.NET?) it is encouraging.

I very strongly recommend DevOps and particularly the CI/CD part of it, but this is also a very big topic that I may post about in the future. For now though, look to Azure DevOps for all your needs.

Overview

Using these services, tools & frameworks you can develop web applications that can scale up and out to whatever you’re likely to need. With the knowledge that you’ll have the support of industry leaders like Microsoft, Google (or Facebook for React) and Twitter.

Happy coding!!

Girls on the Run 2018. Well done Cara & Lené!

Elke’s team wins the league

It’s taken a few years, but today Elke and her team finally won an EBYA soccer league. Although she’s been playing for a few years now, this was Elke’s first year in the Girls 6th – 8th Grade division.

Coach Ron and the assistant coaches were fantastic. Elke learned a lot and the team had a great spirit throughout the season. The girls trained & played hard, especially in the semi-final. The final was a little bit easier, but the girls did very well to stay focused.

Great job y’all!!

Solved: IdentityServer’s RequireNonce is ‘true’ error.

My team has implemented the excellent IdentityServer3 for our Single Sign-On provider but we kept running into a very irritating and intermittent issue for some of our users:

IDX10311: RequireNonce is 'true' (default) but validationContext.Nonce is null.

The error occurred when our users were navigating to the https version of the site but they were being redirected by IdentityServer back to the http version of the site. They did this because some of them had the browser caching the https url and so they selected that instead of typing/selecting the http url.

The fix was simply to have them initially browse to the same url and protocol (http/https) that IdentityServer redirects to after log in.

Surface Book vs Dell XPS 15

I needed a laptop and so after doing some online research decided on Microsoft’s Surface Book. Touted as a laptop first and a tablet second, it seemed perfectly aligned for my requirements. The model I picked had good specs (although a little light on the hard drive) and good reviews and I didn’t pick up on any of the Surface Pro 4’s well documented power issues. So it was with much expectation that I went ahead and bought one at a Microsoft Store.

It’s no secret that I am and have been somewhat of a Microsoft fan boy for a number of years, but it took me 3 weeks to realize that the Surface Book as a final product is not yet mature enough to replace a laptop of equal specs. It certainly has many very impressive features and some of the engineering is really impressive (power cord, detaching of the screen, the pen etc.). But it is not stable at all. It crashed often. When using Adobe Lightroom I was never able to work for more than an hour without a crash. I also had inconsistent battery issues, the screen would become unresponsive (similar to the Surface Pro’s issues maybe?) and the power button wouldn’t function requiring hard resets. I realize completely that some of these may be software related (the OS is predictably Windows 10), but I bought the whole system and as that it doesn’t imbue confidence.

There were also other reasons that the concept didn’t work for me and I realize this is personal preference. One of these being the pen. It is super cool when one first plays round with it, but it soon becomes a gimmick and for me didn’t add the value that I had hoped. The keyboard layout also didn’t impress me. I use PageUp and PageDown a lot but these keys have inconveniently now moved to function keys at the top. Other people may feel differently about these preferences I acknowledge.

I’m not one to easily return goods in this way, but I really regretted the purchase and so felt obliged tot return it. I did need a laptop though and, after more online research, swapped the Surface Book for the new Dell XPS 15. And I have to say that after a week’s use this was a very good swap. For slightly less ($2,099.00 for the Surface Book vs $1,999.00 for the XPS) I get significantly better specs (a 512GB SSD hard drive, 16GB RAM), an absolutely exquisite screen (the Surface Book’s was also very good) and it’s a very stable product. With all the same software, I have had zero issues. It obviously doesn’t have the tablet component, but for me this had less value on the Surface Book than I anticipated after the initial coolness factor wore off. So far, I’m very impressed with the Dell XPS 15.

It’s a pity because I can completely see where Microsoft are going and I definitely support it, but it turns out that to build a quality system takes a few iterations. I have no doubt that my guys (Microsoft) will get there in the end, but for now it’s not it.

Just a quick word about Microsoft Store. I used the King of Prussia store. I had a GREAT experience with them. The surface and their return policy is exceptional. I would without a doubt use them again and recommend them to anyone. They should continue to push forward on this concept.

Blog at WordPress.com.

Up ↑