Lessons learned from running a blog

Expect yourself to do many things, if not everything. You’ll be an administrator, a developer and a writer, all at the same time. This blog is the first time I install WordPress, first time I install and configure Apache, first time I configure CNAME or so, first time I use Google Adsense. It was not smooth all the way, but it’s not that hard and it’s really rewarding when I got it works. One after one. I failed sometimes, like when I tried to make WordPress runs on PHP7 (I’m not a PHP developer after, so I run away when the problem gets out of hand), but for most parts, I can find an answer from here and there on the Internet. Thank you, internet.

Attracting visitors is hard. Internet is full of things and no matter how you try, there are always other content somewhere more interesting than yours. Except if you are exceptional good at writing, or you are famous person, most of the people will not visit your website. Not even one. And sadly enough, many of your visitors will not return, even if your website was helpful to them. You helped them to solve a problem and that’s it. Attracting visitors is already hard enough, and keeping them coming back is even harder.

Continue reading “Lessons learned from running a blog”

Episerver Commerce routing internals, part 2

This post is a second post after http://vimvq1987.com/2016/03/episerver-commerce-routing-internals-part-1/ . The third part in the series can be found here: http://vimvq1987.com/2016/03/redirecting-your-product-urls-in-episerver-commerce/. (I know, I should have published the post in the right order.) They are all excerpts from my book – Pro Episerver Commerce.

The hierarchical approach:

This “new” approach (today it’s not new anymore, perhaps we can call it newer?) was introduced  in Commerce 7.5 to make the routing of Catalog contents inline with CMS content. The core concept of this approach is to reflect the structure of contents to the structure of the Uri, for the discoverability. With SEO Uri approach, customers will never know how to get to the parent node, to see the other items in same category. With the partial routing, they can. To allow that, every catalog content has a piece of information – RouteSegment. This is saved in CatalogItemSeo as UriSegment, but is hidden for editing in Commerce Manager

Continue reading “Episerver Commerce routing internals, part 2”

The free courses of computer science and programming

One of the most wonderful impacts of Internet is it makes many knowledge freely available. You can still attend the courses from the best universities in the World, without having to spend a bunch of money to get into US. You can now access the precious contents from the other half of the world. Of course, it’s still far from effective as when you come to classes, having friends and assignments, for real, but it’s undeniably a huge benefit.

The knowledge is yours!

Introductory courses:

MIT 6.00.1x: Introduction to Computer Science and Programming Using Python
MIT 6.00.2x: Introduction to Computational Thinking Data Science
MIT 6.00: Introduction to Computer Science and Programming
Harvard CS50(x): Intensive Introduction to Computer Science

Continue reading “The free courses of computer science and programming”

The best tools for software development

Development can be hard – as developers we want to spend time to write code to solve problems. Luckily, we have tools to solve our problems – so we can save the precious brain power for the coding, and let them handle everything else.

These tools are used by me on Windows, but most of they are available on multi-platforms.

Everything

Platform(s): Windows

Seriously, it’s a tool to search for everything, by name:

Very simple interface of everything - just type in and search
Search for everything – instantly fast

It’s incredibly helpful when you want to jump to check something outside of your solution, but you don’t know exactly where is it located. Save me 5 seconds for every file and I use it, like, (at least) 50 times a days. 6 days a week (on average). Imagine how much times I saved?

It’s freely available at https://www.voidtools.com/downloads/

Sublime Text/Visual Studio Code:

Platform(s): Windows, Linux, MacOS.

BTUo9lK
Edit almost everything, with Sublime text

Sublime Text is widely considered as the defacto standard for text editing – it’s fast, it’s smooth, it has bunch of useful (or even awesome) plug-ins, and because everyone uses it for everything, the guides is freely available everywhere. But with two caveats: It’s not free (79$ is not really expensive, but not cheap neither), and it has been rarely updated recently (it was updated, like two times last year). Many questions have been raised about the development in its forum, but they are all left unanswered.

Continue reading “The best tools for software development”

Episerver Commerce routing internals, part 1

Routing is important for any sites, and it’s even more important for a Commerce site – it can help driven sales. People nowadays search for everything, and ranking higher in the search results yield much better chance of your products being purchased. There are two routing systems in Episerver Commerce (as always!). The old one is based on SEO URI, has been there since Commerce R1, and the new one, HierarchicalCatalogPartialRouter, which is a partial router, was introduced in Commerce 7.5.

The SEO Uri approach

This approach is based on the SEO Uri, so the link to your product will be in form of http:///yourproduct.aspx. Note that .aspx is the default, but you are free to choose another extension, or even no extension at all. The SEO Uri can be edited in both Commerce Manager and Catalog UI

SEOCommerceManager
SEO Uri editing in Commerce Manager

Those information are stored in CatalogItemSeo for both Nodes and Entries, which each row represents the information of one node or one entry in one language. Note that only the Uri is unique and is used by the system, it’s up to your site implementation to utilize other information such as Title, Description – just follow best SEO practices.

Continue reading “Episerver Commerce routing internals, part 1”

Redirect your product URL:s in Episerver Commerce

Why redirect?

A very good thing about Episerver Commerce is that even you enabled the partial routing system, the old SEO Uri:s will continue to work (of course, as long as you keep the Uri:s unchanged). So they can coexist in same website – but that might not what you want – you might want to stick with only one routing system – it’s been told that the more popular your URL is, the higher rank it gets in the search engine results.

From hierarchial URL to SEO URL:

This one is pretty easy, just call this during your site’s initialization, the true parameter means you want to enable Outgoing Seo URI, and the next statement configures the redirect:

From SEO URI to hierarchial URI:

This one is tricky, there is no such built-in method allows us to do so. We can’t even override SeoUriRouter because it’s registered automatically and there is no way to guarantee that our router will be able to run before it. (If a matching router is found, the processing will stop).

Continue reading “Redirect your product URL:s in Episerver Commerce”

Episerver Commerce 2015 – year in review

While I’m proud of how great Commerce were in 2014, there are still areas where we need to improve. One of those is performance.
We paid attentions to important parts of the system, where customers demand the most. And the results were, quite impressive. From 8.11 to 8.15, many profiling and improvements had been done, and the results are quite expensive: loading cart performance increased with a fold of 4, loading Entry with CatalogEntryResponseGroup.Full performance increased with a fold of 3, etc.

Performance, performance, performance

While I’m proud of how great Commerce were in 2014, there are still areas where we need to improve. One of those is performance.
We paid attentions to important parts of the system, where customers demand the most. And the results were, quite impressive. From 8.11 to 8.15, many profiling and improvements had been done, and the results are quite expensive: loading cart performance increased with a fold of 4, loading Entry with CatalogEntryResponseGroup.Full performance increased with a fold of 3, etc.

However, the biggest change – “rewrite” catalog system, had to wait for Commerce 9.

Commerce 9 was, in no doubts, big release, in term of changes. And it surely is the biggest in term of performance gain. With the changes in underlying catalog system database, the performance gain is, massive. In some areas, the change is a whopping 10 fold, and other areas, 2-4x times faster. If you are still on Commerce 8.x, while it was a great product at its time, you are highly recommended to upgrade to latest 9.x version. Many customers’ve done it, and they’re more than happy with the performance. 2015 was the year which I can finally be happy with overall performance of Commerce. Of course, there are still rooms for improvement and we are not perfect yet, but let’s open a champaign for the performance gain we got.

New promotion system

I am OK with the old promotion system as an editor/administrator, but I’m no fan of it as a developer. When a bug is reported by the QA, I can follow the bug report to re-produce the bug for investigation, but when it comes to write an integration test to verify the correctness of bugfix (and of course, prevent the same mistake to be happenned in the future), I usually grin my teeth. So I’m all in favors for the new promotion system, when I can easily write tests for my fixes, and even unit tests (woo hoo). And did I mention a much more intuiative and well-designed UI?

Continue reading “Episerver Commerce 2015 – year in review”