Reporting. So simple with VBA

reporting I have to prepare a daily, weekly, monthly, quarterly report… This is what managers do. Why? Why writing reports is more important than leading people or solving problems or proposing ideas?

Reports are important but in most cases reporting can be automated. We have to stop for a while and start working smart.

  • Can we talk about my idea?
  • Unfortunately I have to prepare a report. I have no time.
  • What report?
  • I have to prepare a financial statements. Download time logs from our experts, copy and paste them from hundreds of e-mails. Horrible…
  • Why don’t you use your brain and computer for doing all these things?

Let’s look at an example of an application that downloads attachments and move e-mails from Inbox to a separate folder. Here I will describe a procedure that may be used to download attachments from our e-mails.

Continue reading

Theory of probability in the office. How to correct typos in the data?

dt160106Previously I have shown how to use Excel and VBA language to automatically format financial statements or other documents. Today I will describe how to use theory of probability to correct typos in the data collected in our database e.g spreadsheets.

Surprised? Yes, we use theory of probability and statistics, completely useless piece of …. maths, to automatically find and correct typos made by our clients or colleagues.

– We don’t need that because we have autocorrection tools in our office software!
– Show me then, how to correct surnames or account numbers using these tools?
Oh… We need to wait when our customer will tell us about the mistake in his/her personal data…
And then you need to say sorry ;)
– What can I do instead?
– Let’s look at the example below …

Continue reading

Programming in the office. Why?

hard_job_payWhy programming might be important for people working in the office? We can work efficiently, better… we surely hear this propaganda. In practice… how to start when we haven’t got a break to learn during the day? One may say: learn at home in your free time! Easy…

Do we like our job to be engaged in a such a way? What we will do after we’ll improve our skills? Do we have other tasks or responsibilities? Do we believe that we will be appreciated by our company? Many questions and doubts…

However, we may look at these questions in a different way. Let’s imagine…. we are working with the spreadsheets. We have to prepare a financial statement to our customers. Many financial statements… Collecting the data¬† from number of databases, computing a financial balance…. and merging cells, coloring rows in a spreadsheet manually… Then we wake up with a well designed tool that is able to do all these things automatically ;)

Will you like your job more armed with this tool? How many your ideas were rejected due to the lack of time? How many time will be saved thanks to your engagement and programming skills?

Dream is only a dream but spreadsheet that colors rows and merges cells might be quite real ;) Click! Good point to start is googling for “how automatically …. in spreadsheet”. Your turn to learn programming :)

Learning programming? Let’s build a robot.

Learning programming might be very time consuming. It requires patience and systematic work. Numbers, numbers and command line… or toys and robots ;)


My robot: raspberry pi, motor driver, toy and batteries

How to build a robot and have a fun with programming? What about using a tiny, low cost computer that may be connected with a toy car and a motor?

The Raspberry Pi fits to these requirements perfectly. Even a child can play with a hardware!

Raspberry PI might be used in many different applications. Sky and imagination is our limit. Motion detectors, weather stations, minecraft server, router, private network and many others…

To build a robot you need to follow the link. Have a fun!

How to make your computer talk to you?

Nowadays, it may be not very surprising that computers can talk ;) How to make our computer talk to us using C++? How to start without any deep knowledge about Text To Speech Synthesis (TTS), Hidden Markov Modelling (HMM) or even without any recording? This article is a short tutorial for you. You will get your first synthesized speech sooner than you think.


  1. eSpeak TTS engine
  2. C++ skills and gcc compiler

Continue reading

C++ Algorithm Library

I would like to present you a C++ library that contains several popular numeric, text-processing, graph algorithms. I encourage you to download and use it. I will be grateful for any comment about the implemented solutions. I will continue the implementation of this library in the future, so I encourage you to follow the changes.

C++ Algorithm Library contains

  • basic and extended euclidean algorithm
  • basic and strong prefix-suffix array computation algorithm
  • max suffix computation algorithm
  • morris-pratt pattern matching algorithm
  • knuth-morris-pratt pattern matching algorithm
  • manacher’s algorithm for finding palindromes
  • union-find class
  • graph class – neighbor list and matrix representation
  • kruskal minimum spanning tree algorithm

Each algorithm was tested in separate unit-test. Unit tests are appended to repository.