четверг, 30 июля 2015 г.

“C# and Java” vs modern C++



Наткнулся на пару высказываний, скорее соглашусь, хотя сейчас не пишу на работе на C++:


  1. “C# remains an pleasant language as long as you want something that works, but a frustrating language the moment you want something that always and safely works.

Java is even more frustrating, as it has the same problems than C#, and more: Lacking the equivalent of C#'s using keyword, a very skilled colleague of mine spent too much time making sure its resources where correctly freed, whereas the equivalent in C++ would have been easy (using destructors and smart pointers).
So I guess C#/Java's productivity gain is visible for most code... until the day you need the code to be as perfect as possible. That day, you'll know pain. (you won't believe what's asked from our server and GUI apps...).

2.      “Paradoxically, C++ code is more difficult to write than in other languages, but efficient code is a lot easier [to write in C++ than in other languages]."


пятница, 17 июля 2015 г.

Интернет и Россия

На мой взгляд, в последние 10 лет происходит полноценная сегментация Интернета из России (цензура) и изоляция Рунета извне. Причин много, но есть две главные:

1. Силовые ведомства внутри РФ (прокуратура, Роскомнадзор, МВД) на основании подписанных Президентом РФ законов и приказов вводят полномасштабную цензуру, что противоречит Конституции РФ (ст. 29, п. 5). Внутри РФ десятки тысяч сайтов блокируются по разным причинам и поводам.

2. Ввиду неоднократных хакерских атак из РФ на различные сайты правительственных и коммерческих структур за пределами РФ (и очевидно кем спонсируемых), зарубежные провайдеры услуг Интернет начинают фильтровать пакеты данных от отдельных подозрительных групп IP адресов (дата центры, провайдеры), от которых ранее были замечены крупные хакерские атаки.

Результатом такого "мягкого Интернет занавеса" является распадание структуры Интернета на изолированные сегменты. Для тех, кто сталкивается с такими последствиями Интернет-самоизоляции РФ, существуют такие средства как прокси сервера, анонимайзеры, VPN клиенты, прокси - дополнения для браузеров, сети Tor и I2P.

По сути Интернету указанные силовые ведомства объявили войну внутри РФ. Вполне вероятно, что дальнейшие шаги, по якобы "обеспечению безопасности граждан" будут включать в себя еще больше запретов, штрафы провайдерам и гражданам, а также усиление методов блокирования информации в РФ. Наверняка заблокируют все русскоязычные зарубежные Интернет СМИ, усовершенствуют Интернет - цензуру (DPI) по аналогу КНР и КНДР. Дальше возможно требование паспорта, отпечатков пальцев, объявление вне закона вообще выход в Интернет, использование любых "непатриотичных" устройств и программ.

"Всё для Вашей безопасности!"

среда, 1 июля 2015 г.

Tips for "boost" and gcc on Windows


Here are some quick tips and tricks how to make Boost.Build build boost with gcc compiler on Windows. Here are my experience.1. Install MinGW from the official site. It is easy to complette with Web installation. Lets say it C:\MinGW directory.2. To finish gcc step please add C:\MinGW\bin and C:\MinGW\include folders to your PATH variable.3. Install your favorite IDE. I like Code::Blocks but the choice is fully yours. Make sure you can compile some basic project with gcc on Windows.4. Go to boost.org and download boost archive. Then extract the archive say to C:\boost folder5. If you do not want to change the output directory for boost libs, go to your boost (C:\boost) folder and build boost:

bootstrap mingw
You can see what you will build with the next step:
b2 --show-libraries
Boost 1.58 shows:
The following libraries require building:
    - atomic
    - chrono
    - container
    - context
    - coroutine
    - date_time
    - exception
    - filesystem
    - graph
    - graph_parallel
    - iostreams
    - locale
    - log
    - math
    - mpi
    - program_options
    - python
    - random
    - regex
    - serialization
    - signals
    - system
    - test
    - thread
    - timer
    - wave
To build all of them run:
b2 toolset=gcc
The last action will take some time for it depends on your hard drive and CPU performance.Finally you will get boost libs in your C:\boost\stage\lib directory. The rest of boostlibraries are in C++ headers and you don't need to build them from the source.
In order to use boost libraries you have to add them to your project - libraries (C:\boost\stage\lib) and headers (C:\boost\boost) directories.
Boost your fun!