• Apache,  Configuration,  Tips

    Configure Apache with Load-balancer / Proxy

    If your Apache website is under a load-balancer or proxy, some features might not work very well. The proxy, for example, might “hide” the true IP from clients, the address your application sees in REMOTE_ADDR attribute (PHP, for example) will be the IP of the proxy renders IP-ban in .htaccess useless. If such things happen, time to do some configuration. First, you need to enable the mod_remoteip module to handle requests through a proxy. It will allow you to “rewrite” some headers in the request to make your web application to know the true client IP.

  • Commerce,  Episerver,  Promotion,  Uncategorized

    The beauty of new promotion system

    This is going to be a relatively short post. If you are using Episerver Commerce 9, you probably know that we are working on a new promotion system. It’s still BETA, but some of our customers already use it, and from what I heard they are really happy with it. One of the reasons we create a new promotion system is the old one is not developer-friendly. Have you ever tried to create a promotion in old system, by code? This is an “simple” example of how to create a new campaign and a couple of promotions:

  • Learning,  Random thoughts,  ranting,  Uncategorized

    StackOverflow – a missed opportunity

    Back when I was young and mostly stupid, I discovered StackOverflow. The site struck me hard. There were a lot of “Wow” moments for a third year student. I still remember the first time I asked the first question, then even think about the questions to ask (so I can gain some precious reputation – yeah, I was young and stupid, remember?), and the first time I tried to answer a question myself. It has been a long time since those days. I still use StackOverflow, even at this very moment. But it’s on demand, instead of browsing it everyday as a habit. I search for a question, read the…

  • Random thoughts,  ranting,  Tips,  Uncategorized,  Writing

    What does it take to be a developer?

    No I’m not talking about becoming a “developer” like Bill Gates, or Mark Zuckerberg, or even someone less “famous” like Linus Torvald or Anders Hejlsberg. Man, I’d give up many things to become one of those. To become such successful developers, you must be extremely talented, extremely determined, and of course, a sizable amount of luck. I’m talking about an average human being, trying to become a person who can enjoy his work (and hopefully, provide his family with that work).  Somebody might think, it’s easy to be a developer today. Most problems can be found on the internet – by searching Google, or asking questions on sites such as…

  • Random thoughts,  ranting,  Writing

    Don’t be that developer

    It’s never been easier to be a developer. With the availability of Internet these days, for almost anywhere, anytime, it’s just few clicks away to find the answer of your question. With proper keywords, especially when you have an error message, Google can lead you to the answer within a fraction of second – mostly StackOverflow, or some other websites/blogs that the people have already answered it. If you want a more specific question where you can’t find an answer to, you can simply ask. It’s free. The days of Expert-sexchange are long gone. People around the world are willing to help you, without knowing who you are – they…

  • Learning,  TeamCity,  Tips

    Upgrading to TeamCity 9.x: the JRE headaches

    Today I updated our TeamCity server from 8.15 to 9.17. We need to support C# 6.0 so it’s an essential move. TeamCity 10 is still EAP and we would wait a couple of months after it comes out to make sure all the plugins are supported. The installation was a breeze – the installer detected there was a previous version and offered to uninstall it. All good. Until there was a browser window opened so I can continue the configuration, but http://localhost/ only returned time out. When I opened the Service Management (services.msc), it looked like the service was not running. I tried to start it, but then it stopped…

  • Configuration,  TeamCity,  Tips

    C# 6.0/Visual Studio 2015 on TeamCity

    At first you will have to update to TeamCity 9.x (9.1.7 at the time of this post) to support Visual Studio 2015 compilation. After upgrading (with some hassles, of course, but you’ll figure out), you’ll have TeamCity 9.x up and running. Now the time for some configuration. Change your compiler in build definition to Visual Studio 2015 and you are ready to go! Change the Visual Studio to 2015 Not so fast. You will soon notice that most (if not all) of your build agents are not unusable. Solution? Download and install Microsoft Build Tools 2015 from https://www.microsoft.com/en-us/download/details.aspx?id=48159

  • Blogging,  Random thoughts,  recruitment,  Tips

    Why don’t I reply to your recruitment emails?

    This post is about a (I hope) small portion of recruiters. If you have never sent an email like this, congratulations, I think you can consider yourself as a professional recruiter. If you did, might be you can changed the way you communicate with candidates to be more effective? I don’t want to burn any bridge here – I have high respects for recruiters, who are working hard to connect companies with potential employees, making the world a better place. Most of the recruiters I’ve had chances to work with are great specialists and it’s been a pleasure working with them, even that I have to turn down all of…

  • Random thoughts,  recruitment,  Tips,  Writing

    Joel test scores are (somewhat) outdated – you should ask something else

    Joel test scores are widely accepted as the “12 golden checks” for interviewee to ask interviewer during an interview. They were originated by Joel Spolsky – and his blog was famous among developers, they were quite well-known – and have been popularized even more with StackOverflow (where Joel Spolsky is one of the founders). StackOverflow Jobs even have a check list for recruiters when they post their job vacancies. Here’s the list: Do you use source control? Can you make a build in one step? Do you make daily builds? Do you have a bug database? Do you fix bugs before writing new code? Do you have an up-to-date schedule? Do you have…

  • Catalog,  Commerce,  Episerver

    Episerver Commerce MetaDictionary internals

    This is an excerpt from my book – Pro Episerver Commerce – which is now already 2/3 complete. Dictionary types. Previously we discussed on how properties work with catalog content. However – if you have dictionary types in your MetaClasses, they will work differently. In this section we will examine these special data types – this applies to Order system metaclasses as well. As we all know – there are three types of dictionary in Episerver Commerce: Single value dictionary: editor can select a value from defined ones. Single value dictionary type is supported in the strongly typed content types – you’ll need to define a property of type string, with backing…