The Culture of Code



API Authentication: Generating HMAC digest in PHP and Java

User authentication is an important part of the web service API design. One of the common approach is the Hash-based Message Authentication Code – HMAC. Used together with transport level security it provides reliable mechanizm of user authentication and message integrity validation.

One More Grid for AngularJS

After playing with ui.grid I found one more library to impmenent grids in AngularJS - angularGrid. It’s quite easy to integrate and faster than ui.grid. You may find other reasons of using this grid on the author’s post.

Web Security Resources

Here are some useful links to security resources: OWASP to 10 v.2013– A list of the 10 Most Critical Web Application Security Risks. OWASP: list of website security attacks OWASP: list of website vulnerabilities OWASP Development Guide – The OWASP Developer Guide 2014 is a dramatic re-write of one of OWASP’s first and most downloaded projects. The focus moves from countermeasures and weaknesses to secure software engineering. The Developer Guide 2014 is a “first principles” book - it’s not specific to any one language or framework, as they all borrow ideas and syntax from each other.

Booting Spring Webapp

Spring Boot is an excellent tool to bootstrap java application. Most of the references mention how to create a standalone java application, optionally with embedded web server (tomcat or jetty). But Spring Boot supports also creating web applications intended to run within servlet container.

Syncing iTunes Library Between two Computers

Given: Two family Macs with iTunes 12 installed More than 10GB of audio files I want to share my media library between these two computers and keep them synchronized. When I add new file on one computer, it should apear on another. When I delete a file on second computer - it should be deleted pn first. When I change iTunes playlists on one computer it should be changed on another.

Recalling Testing Principles

If you are involved in software development then recalling a basic testing principles once again is not a waste of time. So here are the principles: A necessary part of a test case is a definition of the expected output or result. A programmer should avoid attempting to test his or her own program. A programming organization should not test its own programs. Any testing process should include a thorough inspection of the results of each test.

Base64 Variants in Java 8

You most likely used Base64 encoding. It’s about encoding any sequence of data as a printable string (digits, lower case and upper case letters). But Base64 has variations. E.g., not every Base64 variant allows safe transfer of any data as URL parameters. For that purpose there is a special dialect of Base64: Url-safe encoding.

Hexo Useful Tips

Hexo is static site generator framework suitable for blogging. It it written javascript and uses Node.js and it is pretty fast. After playing with Octopress and Jekyll, I finally switched to Hexo. The documentation is not bad, bot some aspects are bot covered, so it needs to google to figure-out some aspects. The good thing that there is a large developer and user community (many of them are from China) and there are a lot of sources and examples.

The Essential Plugins for JetBrains Idea

JetBrains Idea is my favorite IDE and I love it! It has allthe necessary features for java/kotlin developer out-of-the-box. Even in Community Edition you’ll find a lot of them! Difference between Community and Ultimate editions is with a set of plugins from JetBrains available. Native plugins are well tested and work like a charm, in contrast with Eclipse, where you have to do install/configure some extra plugins before you can start coding.