Be Among the 20% of the Best!

Hiding CVV Code on a Bank Card

| comments

I bet you have a plastic card or two from a bank. I mean, debit or credit cards like Visa or MasterCard. The vast majority of them (maybe, all?) have this CVV (aka CVC) code on the back side:


It’s very important for internet payments. Knowing it proves you’re the owner of the card (in theory). In practice, you need to remember or store it in a secure place, and then conceal it from the card.

One way is to scratch it away. But here is a less damaging way that works pretty well from my experience: first, apply some white correction fluid; then, sketch it with a black permanent marker.

Whichever way you choose, make sure other people can’t detect it, at least with a quick look.

Это надо видеть | You Should See That

| comments

Необычный пост сегодня.

Кто-то где-то кинул ссылку на этот чудесный youtube канал с восхитительными видео: Чуваки из Луганска развлекаются как могут. Там есть взрывы, электричество, разные опыты, и, конечно же, комментарии. Это надо видеть!

An unusual post today, but I can’t help it. I stumbled upon a link to this amazing youtube channel with just wonderful videos: The channel is in Russian, but you can at least watch the videos, and turn automatic English subtitles. A few guys from Eastern Ukraine have fun as they please. There are explosions, extreme experiments with electricity, and other cool things. You should see that!

CoreData: “Incomprehensible Archive” While Fetching Data

| comments

Automated testing (unit/integration/functional testing) is a really great way to verify your app works as expected. Also, having confidence that your refactoring won’t break anything is totally cool too. I’ve been doing some tests with CoreData entities and stumbled on a weird exception when simply fetching them.

Jenkins, Xcode: “No Matching Provisioning Profile Found”

| comments

If you have some kind of a script to build your Xcode project from command line (eg, on Jenkins), there is one of the many useful environment variables you can set to modify the build process: PROVISIONING_PROFILE (I couldn’t find any official documentation regarding this env var). It allows you to pick an exact provisioning profile to use with your ipa archive, if the autodetection doesn’t work for some reason. But you may stumble upon seemingly strange errors.

WWDC Announcement Monitoring Command

| comments

So, you’ve read the post’s title. Yes, it’s a bit late to publish it now, but anyway it may be helpful next year. For those who don’t get it, WWDC is a prestigious Apple’s conference for developers.

This script turned out not to be particularly useful this year, as Apple decided to make a lottery for deciding who can have a right to buy a ticket ($1600). Previous years, you could get a ticket during some time after announcement. In 2013, the tickets sold out in about 70 seconds! That’s why you could use a script to monitor the announcement to be able to grab a ticket faster.

Shell: Quotes in a String

| comments

Shells (such as bash and zsh) have a long history and legacy, thus some things may seem illogical or just strange. For instance, using strings and variable substitutions in them; I’m not going to describe that in details here, you may refer to the Advanced Bash-Scripting Guide. I do want to share a trick of how to insert quotes in two other levels of quotes.

Android: Stop Wanting to Update Skype

| comments

I happen to use Skype on my android smartphone. The latest version, four point something, is really slow (or at least was some time ago). So I’m sticking with version 3.2 from my backups. It’s a little better.

The issue is Google Play Store displays skype’s update in My Apps, which distracts me. For a while, I used Titanium Backup’s option to “Detach from Market”. It works for a few days, and then the Store starts to display it again. This workaround needs automation, but is it possible? Android is based on Linux, which is programmer-friendly, so it should be.

iOS Developer Program Enrollment

| comments

I’ve been a software developer for mobile platforms. During my short career, I’ve developed for iOS, Bada, Symbian, and Android. The most interesting platform and developer tools for it is iOS so far. It provides a great language (Objective-C), SDK, tools, and documentation. Most of that is free, however to test your apps on a device you, as an Apple Developer, need to join the iOS Developer Program.

This is a small post about my recent enrollment into the program. Here are a few important points:

  1. Apple is very strict about your personal information. That is, your name in the account and on your paying debit/credit card must match, otherwise you’ll be required to provide an ID with your photo. It’s not always possible to change your name in the account, I had to email and call the support for that.

  2. If you pay with your card that has a limit for online purchases, you’ll need to call to the bank to lift the limit temporarily. NB: Apple doesn’t charge your card right away after you placed your order! In my case, the delays were about six and twenty hours the first time (two attempts for an order), and four hours (successfully) for the second order.

Great, I can now test apps on devices, publish them to the App Store, and attend the WWDC!

Automation: PDFs, Preview, and Vim

| comments

I sometimes need to extract certain pages from a big PDF document into a new one. Assuming I have a 150-page PDF, I can use such a command:

pdftk input.pdf cat 1 2 4-8 16-32 64 128 output output.pdf

pdftk is a great tool for this task. However, it takes a lot of time to go through the document, select the pages to extract, and write the numbers in the command line. Luckily, I’ve come up with a solution.

Wireshark: Setting Up Dissector for USB AOA Packets

| comments

I’ve had some experience recently writing a protocol dissector for Wireshark. The easy and faster way is to write in Lua, whereas for faster dissection you need to write in C. There are bits and pieces of information of how to write a dissector in Lua on the internet. However, there is much less information regarding USB support.