Information Reliability and Critical Thinking: What is Truth?

How to determine the truth is the essence of critical thinking. In our age of information overflow, it is very difficult to determine what is believable and what is not. This is especially critical for correct evaluation of scientific and engineering sources. The worst thing you could say is that something is true because your teacher said so; even worse if Google said so. Both are extremely unreliable as potential measures of truth.

So, how do we know if something is true? Formally, a given claim is true if it allows correct prediction of the outcome or future event based on logic. Why should you care about truth when most people don’t? Well, the truth is based on reality, and if you are engineer or scientist who is not producing a design/research based on reality, it could be dangerous. Delusions and misconceptions are common among people, but they are difficult to correct. It is better to have less of them from the beginning.

The only known pathway to truth is research and replicable experiments which provide sufficient evidence for something being real. Unverifiable (unfalsifiable) claims and experiments that cannot be replicated cannot be used to form opinions about truth. Unfortunately, you cannot do research and experiments on every single claim or question in science and engineering. So, you have to create your own opinions based on the data presented to you and you need to decide if it is reliable.

Here is a short guide on how reliable different sources of information are:

  1. Most reliable (peer-reviewed by best experts in the field)

Scientific articles published in well-respected journals with rigorous peer-review process are most reliable. Those journals are generally published by known publishers such as Springer, Elsevier, IEEE, etc. The fastest free method for evaluating the quality of a journal is to use the following databases: Scientific Journal Ranking or Scopus Sources. If the journal is not in the database, it is not reliable. Higher SJR index means higher reliability and better journal (well, not always, but good enough for the initial impression). Some top-level conferences are also a good source of reliable information. These kinds of sources are called primary sources because they are written by the original authors of the research.

2. Moderately reliable (peer-reviewed by experts and non-experts)

In this category, we have review and survey articles, encyclopedias, textbooks (secondary sources) where the authors describe their understanding/interpretation of somebody else’s research. As expected, some interpretations are correct and some are not. Those sources are generally good for a fast introduction into a subject of study. Always use primary sources for more in-depth understanding.

3. Somewhat reliable (peer-reviewed by non-experts)

Most journal and conference publications from less reputable publishers are in that category. Those journals and conferences cannot attract top level most knowledgeable experts to review their submissions. You should be very suspicious and skeptical about the presented claims.

4. Not reliable at all (not peer-reviewed)

Internet blogs (including this one), web pages (Google search), movies or YouTube videos, somebody said something (your teacher, friend, manager, etc.), scientist’s opinions not in the area of their expertise, technical reports are all unreliable.

Look, nothing is 100% reliable and you should never have 100% confidence about anything, but having 80% reliability is much better than 0%. You could base your confidence level on the academic peer-review process. More rigorous and scrupulous this process is – higher the probability that the reviewed claims are true, or at least they give the best explanation available so far.

Make a habit of checking the facts and scientific evidence before jumping to conclusions.




How to Write Engineering Paper Abstract


The abstract is second most important part of the article. If readers like the title, they will read the abstract to see if the entire article worth reading. Those readers are scientists in relevant fields who need to resolve some problem or question and they are searching for similar solved problems. Alternatively, they solved some problem already and looking for other solutions to compare.

Remember that abstract for all published articles is available online and searchable by Google, while the article body might be hidden. So the goal of your abstract is to summarize your paper in about 150-250 words.

For important tips, check this video:


Generally, the abstract is divided into 5 important parts. Each part should be about 1-3 sentences.

  • What is the topic of your article, why is it important?
    1. This should be the most interesting and attractive part
    2. Understand your audience. Assume that those are researchers/professors in similar fields or advanced graduate students.
  • What is a (broader) problem that you tackled and what solutions existed before your work?
  • What are the deficiencies of the previous work and how you propose to resolve them?
  • Describe how your innovative approach produced great results (but be very specific with numbers and other specific rigid evidence)
    1. Describe your algorithm/approach (in 1-2 sentences)
    2. Describe only major results
    3. Active voice is preferred in many cases (“We did…” instead of “Was done…”). Nevertheless, if it is not important who “did it”, then the passive voice is good.
  • Why your research matters and how it could be expanded/used in additional applications?


Finally, don’t forget to rewrite for brevity and clarity.


  • Use or define abbreviations
  • Write information which is not mentioned in the article
  • Promise unreal benefits/results that cannot be supported by the evidence in the article
  • Be unclear and non-specific
  • Use reference citations
  • Use “I” pronoun
  • Use future tense (except the last sentence which might include future directions




How to Write Engineering Paper Title


The title, abstract, and keywords of your paper are the most important components. In most cases, the popularity of your paper and the number of citations to your paper (which is the main measure of success presently) will depend on those three components. This is because those are the only components available freely online and others might use it if they find your title interesting.

Ideally, the title should convey what question is solved and how you proposed to solve it and be interesting to others. This is where people will decide to read or not to read further.

  • Start with writing all keywords that you would Google if you would search for the paper like yours. Those keywords should be broad enough that people who search for related areas will find it and narrow enough that it will include specifics on your solution. If you need help inventing keywords – search in titles of the papers you intend to cite.
  • Highlight the keywords that differentiate your question/approach/solution from any other paper you know. Those keywords have to be included in the title.
  • Combine between 5-10 keywords (including the highlighted) in a sentence with other connecting/clarifying words. Try at least a few combinations before you decide on the final one.
  • The length of 5-15 words is recommended for a title (typically around 10).
  • For each word, examine if the word does not add to the meaning. Remove it if this is the case. To identify such words, just pull them out of the title and try to read it again. If it gives the same meaning, then the word is redundant and needs to be removed. For example, “mathematical formula” – unless you write on chemical formulas and you actually want non-chemical formulas in your title, then the word “mathematical” is redundant because it is the default for formulas. Another popular mistake raises red flags of reviewers and editors. Never ever use “novel” or “new” in your title. All published papers which are not surveys or reviews are novel by definition (otherwise nobody would publish them).
  • Make the scope of your title broad enough to include a broader audience.
  • Make the scope of your title as narrow as possible to specify your problem and your solution. You may note that this contradicts the previous recommendation, but this is exactly how it works. Think who is your audience and who might be interested in your work. Aim at professor or advanced graduate student level, because those will be your readers and talk to them. Never use layman language in technical communication. For example, the title: “Machine learning for classifying species” is too broad because it is not clear what machine learning approach was used and what kind of species are classified. On the other hand, the title: “Using a directed acyclic graph for classifying goldfish in 1x1x1 cu.ft. aquariums” is too narrow, because the reader might be interested in other fish or aquariums.
  • DO NOT write in the title something that is not an accurate reflection of your work.
  • Avoid using abbreviations or uncommon words.
  • Make sure that the title has only one possible meaning and interpretation and it is commonly accepted. For example, “Cardiac differential equation for…” – it only would work if there is a single differential equation which is named Cardiac. Also, be careful with phrases like: “New obesity study looks for the larger test group,” which has 3 different meanings.




How to Illustrate Your Work?

Microsoft PowerPoint, or similar presentation tools (Keynote for Mac, Open Office Impress for Linux), are indispensable for scientific illustrations. Many times, the basis for the illustration is some image, Matlab figure, or screenshot that you would like to edit, annotate, or expand. In other cases, you need just to make some simple graphics or schematics.

Start by opening the PowerPoint, and removing everything from the page (CTRL-A to select all, and DEL to delete everything). Load image if needed:

  1. If you want to upload some saved image from the disk, press on the TAB Insert and choose “Picture” from the toolbar. Browse to your image and insert it. You may resize the image by dragging its corners, or to crop it (THE MOST USEFUL FUNCTION – available in all office products) by clicking on “Picture Tools” TAB, and “Crop” button. Pressing this button creates small black dragging bars on the boundaries of the image. You may drag those bars to remove unnecessary parts of the image. You need to click “Crop” button again to finalize cropping. p1By the way, additional multiple picture corrections and style changes are available on the same toolbar. You may play with compression, colors, contrast, brightness, shadows, and various boundaries. Make sure that you are familiar with all of the available options.
  2. To insert Matlab plot or image, go to the Figure menu “Edit”, and choose “Copy Figure” p2Then paste it (CTRL-V) to the PowerPoint. Crop the image (or plot) if needed.
  3. To make a screenshot, just press CTRL-PrntScr, and paste to the PowerPoint. Crop if needed.

If you want to change the order of appearance of images or other objects, you may send them forward or backward by clicking on them and using right-click menu: p3

Now, you could add annotations and additional graphics by using shapes palette: p4

Those shapes could be placed anywhere, resized (using corners dragging), rotated (using small green dot on top of the shape bounding box), combined together (CTRL-left click on all shapes and images that should be combined, right click menu – grouping) and , recolored, and transformed in many other ways (using Drawing Tools toolbar). You have full control over those shapes appearance (by modifying shadows, border color, filling material and color – all of that through Drawing tools toolbar, which appears when some shape is selected. Make sure that you are familiar with all possibilities when working with shapes.

Tip: Many times it is preferable to use MATLAB annotation tools instead of PowerPoint. Those tools are available in MATLAB Insert menu of the Figure window.

To copy your illustration to a Word document, it is a good idea to select and group everything first (CTRL-A, right click -> Group -> Group). Then copy the selected illustration by CTRL-C, and use special paste as a picture in Word. The reason not to use the regular Paste is because it may distort the object sizes due to the limitations of Word document.


Writing Mathematical Formulas in Word and PowerPoint Documents

First, you need to install the Mathematics add-in:

Word (most versions):

Word 2013:

After downloading and installing the add-in, you should see additional Tab in your Word:
Pressing on the “Equation” button will open equation editor with many different options and palettes (there is also very convenient shortcut keystroke “Alt- =”):
Make sure that you play enough with this add-in to learn it well. In the homework, you’ll need to write matrices, upper and lower indices, equations, different symbols, Greek letters, etc. If you cannot find some symbol or formula, you could always use hand drawing of any formula by clicking on “Ink Equation”.

For additional information:

Another option is to use MathType:

This product is much more comprehensive and convenient to use, though it has two main disadvantages. First, it is not free (discounts are available) and only 30-day trial is available. Second, if you want to change the font size in your document, then you need to reopen every typed formula and to change the font size inside the MathType editor.

Build and install 3D Slicer4 from source code in Windows

The 3D Slicer is a modern biomedical image processing and analysis software based on ITK and VTK libraries. It is an open source, and can be extended with plugins. Developing new modules, though, demands building the Slicer from the source code.

To say the truth, building Slicer in Windows (especially 64 bit Windows) is a pain. The official installation Wiki page is useful, but gives too many variants and options and jumping from one place to another with different prerequisites, prerequisites of prerequisites, etc., and finally forgets to tell you about essential Visual Studio switches. The result is: after a half day of building, you get between 1 to 5 unsuccessful builds…Who knows why…

After endless trials of installing different versions of different prerequisite softwares, here is my first successful installation list (VERY IMPORTANT to use the suggested software versions, and not newer versions):

  1. Install the newest version of Git.
  2. Install the newest version of SilkSVN.
  3. Install QT 4.7.4 (32 bit binary).
  4. Install VS 2008 Express with SP1.
  5. Install the newest version of CMake.
  6. Open the Windows file explorer and create the directory: C:\Slicer4
  7. Go to C:\ root directory, and press right mouse button. Choose Git Bash. When black terminal window opens, write and run:
    svn co Slicer4
  8. At this stage, the directory C:\Slicer4 should have all the source code of slicer.
  9. Go to Slicer4 directory, and create there Slicer4-Superbuild directory.
  10. Run CMake-GUI.
  11. Select…Where is the source code: C:\Slicer4
  12. Select…Where to build the binaries: C:\Slicer4\Slicer4-Superbuild
  13. Press Configure and select the generator Visual Studio 9 2008 (NOT Win64). If all the previous softwares were installed and configured properly, this step should run without any error messages, and give you a few selected red-background lines in the upper part of the GUI. If errors occur, this is probably because the system’s PATH is not updated properly (all binaries of all aforementioned programs should be included in the PATH variable.
  14. Press Configure once or twice until all the red disappears.
  15. Press Generate, and close CMake after the successful solution generation.
  16. Go to C:\Slicer4\Slicer4-Superbuild directory and open Slicer.sln with VS2008.
  17. When the project opens, select “Release” option instead of “Debug” on the upper toolbar (important!). Note that the built solution should be Win32 even when compiled on x64 machine and Win64.
  18. Build the solution. Hopefully, after a few hours of compiling, this should create a workable version of Slicer.


  • Once I’ve receive error for NUMPY build, and it was resolved by manually creating an empty NUMPY directory in the Slicer4-Superbuild directory, and recompiling.

Install and Configure OpenCV2 in VS2010

OpenCV is a very useful C++ Computer Vision library. Since the pre-built superpack is available, and can be downloaded from here, the installation is rather simple. The problems begin when you’re trying to find different include/lib/bin directories and define them in Visual studio 2010.

  1. Download the latest version of the Superpack.
  2. Run the EXE file, and extract all the files to some directory, e.g., C:\OpenCV23
  3.  Find the subdirectory “build” inside your OpenCV directory. In this subdirectory, find the directory “bin” which is appropriate for your operational system and compiler, e.g., for 32bit VS2010: C:\OpenCV23\opencv\build\x86\vc10\bin
  4. Now you have to add some environmental variables. The instructions can be found here. Add the full path to the “bin” directory to the PATH variable.
  5. Add the variable: OpenCV_VER = 231     (where 231 is the full version number of your OpenCV (i.e., 2.3.1), without dots)
  6. Add the variable: OpenCV_PATH = C:\OpenCV23\opencv\build   (where the path should point to your “build” directory)
  7. Now, create the text file OpenCV_Debug.props:

<!–?xml version=”1.0″ encoding=”utf-8″?>
<Project ToolsVersion=”4.0″ xmlns=”″&gt;
<ImportGroup Label=”PropertySheets” />
<PropertyGroup Label=”UserMacros” />
<ItemGroup />

and the file OpenCV_Release.props:

<!–?xml version=”1.0″ encoding=”utf-8″?>
<Project ToolsVersion=”4.0″ xmlns=”″&gt;
<ImportGroup Label=”PropertySheets” />
<PropertyGroup Label=”UserMacros” />
<ItemGroup />

8.   Create an empty Visual Studio console project.

9.  Add some new source file, like main.cpp

10. Copy the prop files you’ve created to the same directory.

11. In the property editor of VS (look for the property tab under the “Solution explorer” window) add the OpenCV_Debug.props property sheet to Debug | Win32, and OpenCV_Release.props to Release | Win32 (by clicking on + button).

That’s it.

Now, if you need to create a new OpenCV project, you should repeat the steps 8-11 only.

If you’d like to update your OpenCV installation to a new version, you should repeat the steps 4-6, and 8-11 only.

Install Python From the Source Code

Python logo

Image via Wikipedia

Installing Python in Windows 7 is simple, because a pre-built  Windows installer exists. The problem begins when you are trying to compile another Python based libraries, which are asking for e.g. python27_d.lib file. This file is absent, thus you have to build the Python source files from scratch. Python distribution includes SLN files for Visual Studio, but if you try to run them, you’ll get errors. The official explanations of the installation process in Windows … well, I can’t understand from there what to do with the errors.

Still, there is a simple enough solution:

  1. Install VS2008. This will not work for other versions.
  2. Install the Netwide Assembler: , click on “DOWNLOAD” link, choose the latest stable version directory (not rc), click on “win32” directory, download and run the installer (e.g., The program should be installed to C:\Program Files\NASM.
  3. Go to C:\Program Files\NASM\ and  rename the file nasm.exe to nasmw.exe.
  4. Install Cygwin from Choose all default settings, except the addition of the following packages:
    1. curl
    2. cvs
    3. git
    4. subversion
    5. tcltk
    6. unzip
    7. zip
  5. Add to the PATH the directories C:\Program Files\NASM\ and C:\cygwin\bin: go to Control Panel, start searching for env…and choose “Edit the system environment variables” –>Environment Variables…–>Edit PATH variable.
  6. Download the Python source code from site: e.g.
  7. Create directory: C:\Python27 and copy all the source files and sub-directories there. If everything is okay, you should see the directory C:\Python27\PCbuild.
  8. Run cmd as administrator: Start button–>All Programs–>Accessories–>Right click on Command Prompt–>Run as Administrator.
  9. In the open terminal write the following:
    1. cd C:\Python27
    2. .\tools\buildbot\build
  10. The Debug version of Python should be installed without errors.

Wikis Comparison

I’ve decided to put my knowledge on the web. The best tool for that it’s wiki with all its inter/hyperlinks, categorization, and bread-crumbs. To find which wiki is right for me I’ve tried different wikis. Most of them are good for some specific purposes, others are just terrible and I don’t understand why are they still alive. Anyway, for my scientific purposes, I need the following.

Continue reading

My Favorite Productivity Tools

Summarization of my favorite productivity software tools to manage papers, books, and knowledge in general.

Continue reading