What's in a good software library?
High-level advice on API design from author of several opensource libraries and a seasoned developer.
Cookie law is not just broken, it's thoroughly evil
How the cookie law can cripple the budding artificial intelligence of tomorrow while failing to protect real privacy.
Tresorit still crazy expensive
Privacy and security are only for the rich (and the technically skilled), Tresorit devs think.
Spam at the core of our security problem
Is it possible to stop automated attack without data inspection? How can the machine help you with your data without seeing the data?
Attempts to stop adblockers are futile. People, who attempt to do that, don't realize they are facing a determined enemy.
Can I trust your app?
If you are very paranoid about security, what can you really trust? Is there anything you can trust at all?
Who needs partition tolerance anyway?
So much effort is poured into partition tolerance in databases, it is worth stopping and thinking about alternatives.
Secure IM: Problem solved?
Quick review of existing secure chat alternatives, including TextSecure, Silent Circle, Telegram, Cryptocat, OTR and Pidgin.
How to kill high-frequency trading
High-frequency trading is not necessary. It's not even useful. There are ways to stop this waste of resources. Here's an example solution.
How to setup high availability configuration?
Short review of readily available high availability options for enterprise developer, including cloud, HAProxy, keepalived, virtual IP, and DNS.
Pirate's Map of the Preschool Internet
Parent's guide to actually valuable first-time resources for preschool kids. No games, no kid-centered content, just safe general content.
ColoredImage in JungleControls
Easily generate colored variations from grayscale mask using ColoredImage XAML control from JungleControls WPF library.
Anchor WPF Popup exactly where you need it with PrecisePopup
PrecisePopup is a smart popup for WPF that can open in multiple relative positions depending on how much space there is around it on the screen.
Server-side RIA framework
RIA doesn't need to be client-side. Server-side, if properly implemented, actually offers huge advantages to developers and end users alike.
DataPipe: Pushing read-only dependency properties to view model
Expose read-only WPF properties, especially ActualWidth and ActualHeight, to view model via DataPipe attached property.
Collection properties for Assisticant.Facades
New version of Assisticant.Facades lets you parameterize your WPF controls with collection dependency properties with the same ease as with scalars.
No more DependencyProperty with AutoDependencyProperty.Fody
Fody plugin that eliminates those verbose dependency property declarations in WPF controls and replaces them with single attribute.
Easy WPF control authoring with Assisticant.Facades
Gone are the days of painstakingly defining controls with dependency properties and event handlers. You can now use Assisticant in custom controls.
Jet engines in startups
Not everyone is cut for a startup. Pick your people wisely and learn to work with them. Corporate HR and management is dangerous in startups.
Expose WPF control to view model III
Gain access to WPF controls from view models where needed. While admittedly an ugly practice, it is sometimes easier that fixing the offending controls.
LazyControl in JungleControls
LazyControl lets you load WPF content on demand. It is an alternative to virtualizing panels for complex layouts.
ReSharper considered harmful
More specifically, ReSharper default formatter is considered harmful. It turns neat, clean code into bloated, verbose mess.
Implicit style breaks XAML editor
If you are getting "Object reference not set to an instance of an object" error, try this fix. It worked for me.
DelayedContentControl in JungleControls
DelayedContentControl loads its Content lazily when required for rendering. It's more efficient and less noisy than standard ContentControl.
Expose WPF controls to view models II
Access controls from within view model by adding a bit of code into window constructor. It's ugly, but it's sometimes necessary.
GuerrillaNtp: App-embedded NTP client for .NET
Perform simple NTP queries from C# code. GuerillaNtp provides accurate NTP time for applications running on broken clients.
SelectableTextBlock in JungleControls
WPF TextBlock doesn't support selection, which is needed in some applications. SelectableTextBlock control offers a workaround.
StatCounter in JungleControls
Nice, visually compact numeric stats control for WPF with support for labels and units. It can be used to build dashboards.
PropertySheet in JungleControls
PropertySheet WPF control implements traditional Windows property sheet with labels on the left and content on the right.
JungleControls: Free WPF controls for you app
Assorted WPF controls including property sheet, selectable text block, stat counter, intelligent popup, color filter, and technical controls.
How to sabotage software business
Improving programmer productivity by exposing the most powerful ways to kill it. Do the opposite and save yourself manyears of wasted time.
Dynamic vs. static languages
Why everyone gets it wrong when arguing for dynamic or static languages. It's all about the tools, but it's not that straightforward.
How C# leads to boring jobs
If your C# job sucks in comparison to node.js jobs, you are not alone. It's not you. It's not the company. It's the wrong tooling and associated community.
Expose WPF controls to view model via attached property
Access WPF controls from view models by adding concise attached property to XAML. It's a bit hacky, but it does the job where necessary.
C# still better than F#
F# is far from being a replacement for C#. It looks nice in simple examples, but building big applications with it is going to be a nightmare.
NoScript: Kill all the popups
Introducing JuiceStream library
Assorted implementations of .NET's Stream including multiplexing, proper buffering, cancellation, pinging, in-memory streams, and lead streams.
SparkleShare: Sharing & merging text files between computers
A short overview and guide to this excellent sync tool, plus some alternatives and thoughts on the subject.
Numbers in fingerprint recognition systems
Beginner introduction to common fingerprint recognition terms like 1:1 and 1:N, FAR, FRR, and EER.
Speed of fingerprint recognition doesn't matter
A few back-of-the-envelope calculations show that overoptimizing fingerprint matchers is useless and brings no benefits to end users.
Europe-based online storage with client-side encryption
Review of existing encrypted clouds including Wuala, Tresorit, Memopal, younited, and a few alternatives like BoxCryptor.
Userbase never grows quickly
Avoid optimizing for heavy loads. Actual service usage grows so glacially slowly, you will have plenty of time for optimizations later.
Business vs. engineering excellence
It's more accurate to speak about business through engineering excellence since the two go hand in hand. False 'tradeoffs' are a mistake.
Printable Montessori color cards
Downloadable Montessori color cards in PDF and SVG format. Print them and cut them to get budget alternative to the wooden Montessori original.
Pinpointing application security issues
'We will be careful' is a really inefficient and usually also ineffective approach to security. It's better to place focus only where it is most needed.
How to route server traffic through VPN
Short guide on how to connect to a server in the cloud via VPN without getting lost in details of setting up a full-blown enterprise VPN.
Which programming competitions are worth your time?
Veteran competitive programmer's advice on the best, not necessarily the most popular, programming competitions to invest yourself in.
Screencast recording on Windows
It turns out that screencast recording is not so easy. This is a short story about my experiments with screen recording.
The Lean Startup revisited
Startups as an optimization problem is a nice abstraction, but there are better ways to optimize that continuous fine-tuning.
My experience with ZeroC Ice
Don't use ZeroC Ice. Use HTTP2 and REST. It's easier, it works everywhere, it will perform better, and API consumers will like it more.
VS Express better than Xamarin Studio
While a great tool under linux, Xamarin Studio struggles to compete with VS Express on Windows. My advice is to stay with VS Express.
How to publish self-hosted video
YouTube is not the only option. It's surprisingly easy to self-host your videos. Codecs are an annoyance, but there is a free solution here too.
Why are software libraries so bloody expensive?
Commercial libraries aren't necessarily (or even usually) better than their opensource equivalents. The difference is in support and in customer nature.
The surprising architecture of future applications
Google search sucks or why creating better search engine is easy
Google is the new Microsoft. It's all about cash and remarkably unconcerned about customer experience. It's not that hard to launch an alternative.
Outbound firewall rules any good?
Inbound firewall rules are obviously useful, but is there any reason to setup outbound firewall rules, on client or server?
Master password in Chrome
Short overview of master password alternatives for Google Chrome and some thoughts on the topic.
What's the fastest browser with adblocker?
Comparing Firefox and Chrome, Chrome is faster in vanilla state while Firefox is faster with adblocker installed.
Why your Android toddler game sucks
As a dad, I am a bit frustrated with the offering of toddler games on Android. Here are my gripes about Android games.
Bandwidth meter for Windows?
Search for Windows bandwidth meters shows two interesting tools: FreeMeter and NetWorkx.
End of the age of the web is nowhere in sight
App hype is misguided. The web has replaced apps in the past for a reason. I wouldn't put much hope in any of the new content platforms either.
American software and services I want to get rid of
There's european alternative to every american app or service, but switching is not so easy and it won't come early nor on mass scale.
Why buying better hardware doesn't help anymore
If you are in the market for new hardware or software, it's efficiency you are looking for, not features or glamour.
Backup linux server to Windows client
Short guide to old-fashioned offline backup of linux server to Windows client.
Fastest way to upload files to a web server
Something as simple as uploading files to a web server can turn out to be unnecessarily complicated when you consider your complete workflow.
Future of SourceAFIS
SourceAFIS reains free. It will get major updates. But there will be likely a commercial spinoff in some distant future.
How (not) to win CodeChef Long Challenge
Valuable advice from veteran competitor who almost won the 1st place. Every game has rules and there's always a way to win a game with rules.
Smartphones: 90s déjà vu?
There's a reason why the world dumped apps in favor of the web in the 90's. It looks like app developers are repeating an old mistake.
Android apps I like
My personal list of Android apps, including K-9 Mail, Kids Place, Google Translate, Lightning Launcher, and many more.
How to transfer files between two Windows computers
It's 21st century and nobody has yet invented an easy way to transfer files between two adjacent computers in an efficient manner.
How do I backup Blogger blog?
Overview of the Blogger backup options. There are many to choose from, but none are without their flaws.
How to remove Google stuff from Blogger blog
Guide to removal of Blogger toolbar, "about me" widget, footer attribution, mobile layout, and Google's image hosting.
Blogger is all about Google's self-promotion
Posting blog entries quickly and easily is the core value of blogging. Blogger looks like a good free option, but there's more than one catch.
Android child locks
Tech-savvy dad is testing and reviewing several Android child locks including Kids Place, Zoodles, Kid's Shell, and some unexpected alternatives.
Prefetching website pages
Reviewing the prefetch technology: the theory, the algorithms, the costs, and existing implementations.
Should I develop new library for every abstraction that I need?
Internal software is not bad. But when it starts growing, it's better offloaded into public library to share the cost of development.
My thoughts on productivity of programming
Practical productivity tips from veteran developer. The point is to do smart work instead of hard work,
Why is that the freemium model is so expensive? Wouldn't charging everyone or most everyone lead to lower prices?
How to write custom NLog time source
A short guide through building custom NLog time sources. We will build a time source with configurable time zone as an example.
How to configure NLog time source
A quick tutorial for the new NLog time sources, including XML and C# configuration. Overview of all four built-in time sources.
NLog timestamps with millisecond accuracy
What was wrong with the old NLog timestamps? Why was the new time source API needed? Because timestamps are important and not everyone was happy with them.
Entity Framework T4 view generator and .NET 4.5
Pre-generated Entity Framework views significantly speed up application startup. They are fairly easy to do with the built-in T4 template engine.
Open plan office scares away creativity, kills productivity
Open plan office is detrimental to creativity, because all good ideas start as stupid ideas. They need to mature protected by privacy.
Is it possible to use web accelerator to make websites faster?
Is it possible to apply the old web accelerator techniques to the new problem of sluggish application servers?
Faster Adobe PDF Reader alternatives
Adobe PDF Reader works fine except it is incredibly slow. Foxit Reader is a faster alternative you should try if Adobe is too frustrating.
Building Awesome Opensource Projects
This is the story behind SourceAFIS. I unknowingly did many things right and I will now share my experience with you.