Founder's blog

Sep 9 2019
WebClient Async (!) with Timeout

WebClient Async (!) with Timeout

The .NET Framework's built-in WebClient class does not have a built-in timeout feature.

Jul 7 2019
Invalidating ASP.NET Forms Authentication tickets server-side

Invalidating ASP.NET Forms Authentication tickets server-side

Sometimes you need to "log out other user sessions". To prevent cookie replay attacks or - a very common use case - log out other sessions when a user changes their password. ASP.NET does not have a built-in way of doing this, but there's a simple solution.

Jun 6 2019
CloudFlare, SEO and building my own caching proxy with Nginx

CloudFlare, SEO and building my own caching proxy with Nginx

TL;DR I spent the last month testing how CloudFlare affects my organic traffic by turning it off and on again™ and measuring the ranking changes. Looks like CF hurts SEO. So we've built our own caching proxy with blackjack and hookers AWS and nginx, while saving a couple of hundred $ a month on the way.

May 21 2019
If Arabs read right-to-left, do they see "700" as "007"?

If Arabs read right-to-left, do they see "700" as "007"?

This post has nothing to do with tech nor startups. Today, while adding proper "right-to-left" support to our app UI (for Hebrew and Arabic languages) I got a little carried away and found myself discovering a lot about Aramaic languages and ancient numeric systems.

May 2 2019
Clear/Flush all OutputCache in ASP.NET

Clear/Flush all OutputCache in ASP.NET

If you're using OutputCache directive like this:

[OutputCache(Duration = 600, VaryByParam = "*", Location = OutputCacheLocation.Server)]

Or storing custom data in HttpRuntime.Cache like this

HttpRuntime.Cache.Add(...)

You probably caught yourself wondering

Apr 9 2019
Returning a Zip File from ASP.NET MVC Actions - in Pure .NET

Returning a Zip File from ASP.NET MVC Actions - in Pure .NET

If you search for "generate zip in ASP.NET/C#" you get tons of blog posts and StackOverflow answers suggesting DotNetZip, SharpZipLib and other 3rd party archiving libraries. And up until now that was the only solution - all because .NET had no built-in support for zip format.

Mar 28 2019
Back to PC after 14 years on a MacBook

Back to PC after 14 years on a MacBook

I've been a happy MacBook user for almost 14 years. Tried all of them - from a tiny 11" MacBook Air to the enormous 17" Pro - and in 2014 I finally ended up with the 15-inch retina model.

The best laptop I ever owned.

Even if you need to occasionally run Windows for work - MBP is still the best possible hardware to do that. The 15-inch retina MacBook had that unique blend or elegance, power, durability... And by "durability" I mean I fell off a motorcycle with this thing in my backpack - not once, not twice, but thrice.

Jan 30 2019
Thoughts on Tech Stacks for Bootstrapped Startups

Thoughts on Tech Stacks for Bootstrapped Startups

So you're starting a bootstrapped web-based business and you're deciding on the tech stack. After running a software startup with zero funding for 13 years, here's what I have to say about this.

Nov 20 2018
CSS: always use transparent colors for your shadows

CSS: always use transparent colors for your shadows

I see a lot of websites and apps using "box-shadow" like this box-shadow: 0px 0px 20px 5px #ddd. Which literally means "lets have a #ddd-colored shadow, with zero offset, 5 pixels wide and 20 pixels blurred".

Which is perfectly fine, for the most part.

Oct 29 2018
The REAL reasons to be concerned about AI

The REAL reasons to be concerned about AI

Everyone's being paranoid about AI these days. And the less people are familiar with the subject, the more concerned they are. Even some of my tech friends, even - believe it or not - software engineers, the ones have a very vague idea of how AI/ML works, are expressing their concerns.

older >>