Invisible improvement

This year alone I’ve written more than thousand lines of code for various libraries. And I’ve started to write libraries;) Each of my methods is unit tested. My classes are as well designed as it’s possible basing on my current knowledge. I can write new automation script for our servers in the matter of hours (sometimes minutes) comparing to days not so long ago. I’m able to test most of the things before they’ll get on the server, so I’ve almost eliminated vicious cycle of build-deploy-check-fix.

My new idol

I’m very interested in computer security. From the beginning I’ve had an idol, or idols even, who I’ve followed and learned from. I think it’s started with Kevin Mitnick after reading his book The Art Of Intrusion. Which was not exactly what I was hoping for. I’ve not known much about computers back then, so I’ve thought I would read more about scripts and such rather than how to trick a secretary.

Anonymize DOCX Comments

Word document is still popular format in localization industry. Translators and reviewers are using tracked changes to discuss potential translation issues. Often times these people are from different companies and it’s required to preserve their anonymity. Word has functionality to make documents anonymous, but it’s blunt tool which will wipe all private information. And you want to know which comment comes from which person. At some point in my career I was introduced to this solution.

Multithreading is not always best solution

I’ve had a problem where I’ve needed to clean some stuff from files and then upload them to the server. Cleaning part was fast, for more than a hundred of files (2 GB in size) it took less than a minute. Problem was with upload. It took several hours. So, I’ve thought, let’s try doing it in parallel. I’ll launch upload on so many threads as I have, and my workstation has a Xeon, it should help.

Sometimes you need to hack it (MT and memoQ)

memoQ is great product, I’m saying it a lot. But some features need a bit polishing and one of them is support for Machine Translation (MT). It’s done through series of plugins. I’ve just used two so far. Pseudo-translation which is fine, but limited. Although they’ve enhanced it in Adriatic version. Second plugin is for Google Translate. There’s not much in terms of configuration, you set the API key, can specify regex which matches will be ignored in MT process, and enable option to put the tags from source at the end of the translation.

Don't oversell

Overselling happens when you have a server which can handle 10 users, but you’re selling it to 15, because you assume they’ll not utilize all resources assigned to them. Or that you’ll manage to add more resources before users would start using them fully. It’s the most broken assumption in tech industry which almost never works, drives customers mad and ruins your brand. And that’s exactly what’s happened to me recently.

Hugo isn't there, yet

I’m currently using JekyllRB for my blog which maybe isn’t bad, but I don’t like it much just because I don’t like Ruby. I’m running site generation form Docker container, because I’m not allowing Ruby anywhere on my box. So I wanted to try Hugo. It’s written in Go which I know and kind of like, and it’s much faster. Speed isn’t maybe main factor for me as Jekyll is fast enough for my needs, but Hugo just feels better.

In the Beginning...was the Command Line

That’s the title of great essay written by Neal Stephenson, so I’m lending it for my post. I was always the kind of guy who wanted the newest hardware, the latest software, the shinier GUI the better. Then I’ve started to do some proper engineering, and it’s changed my mind. I like the Chrome’s download manager, but whenever I need to download something heavy from unstable source or to quickly check what’s in the header I resolve to curl.

Client for memoQ server Web Service API

I work a lot with memoQ Server, great translation tool. It has awesome Web Service API which covers almost all aspects of the server. It lacks CAL license management which is annoying. But on the other hand, it extends some functionality (for instance pre-translation), so you can do more than with memoQ Client. And it’s API, so you can automate a lot with it. To make life easier for myself I’ve created series of Python packages which serve as a client to this API.

Search TMs on memoQ server

Working in localization industry involves a lot of searches in the TM (Translation Memory), or TMs even. I was saying many times that memoQ is great tool, both client and server products. But what I find limiting is ability to search through TMs. You have an app for that, but it’s not very pleasant to use. Fortunately memoQ provides Resources API. Unfortunately its basic functions allow you to search TMs with the same limitations as their client app.