понедельник, 21 декабря 2015 г.

Qt, C++ and Java on Android OS


Recently I switched to mobile development area. My favorite programming languages are C++ and Java and the first obstacle I faced in Qt and Android was JNI. Finally I found very informative BogDan Vatra's posts and they helped me to understand how to mix C++ and Java the safe way.


вторник, 27 октября 2015 г.

Skype Ads Blocker on Windows


In order to get rid of annoying Microsoft Ads in Skype add these lines at the end of the file C:\Windows\System32\drivers\etc\hosts

UPDATE:
127.0.0.1 apps.skype.com

# Skype Ads Blocker
127.0.0.1 rad.msn.com
127.0.0.1 live.rads.msn.com
127.0.0.1 ads1.msn.com
127.0.0.1 static.2mdn.net
127.0.0.1 g.msn.com
127.0.0.1 a.ads2.msads.net
127.0.0.1 b.ads2.msads.net
127.0.0.1 ac3.msn.com
# End Skype Ads Blocker



четверг, 8 октября 2015 г.

среда, 16 сентября 2015 г.

Disable Windows 10 upgrade notification application | Отключить уведомление об обновлении до Windows 10


Today more and more Windows 7/8 users want to disable Windows 10 upgrade.
Here is the solution described in the article. You can use this Registry configuration text to disable the upgrade icon in the system tray.

------------------------------------------------------------------------------------------------

Сегодня все больше пользователей Windows 7/8 хотят отключить переход на Windows 10. Вот решение из статьи на английском. Вы можете использовать текст конфигурации Реестра чтобы отключить уведомление об обновлении в трее.

------------------------------------------------------------------------------------------------


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Gwx]
"DisableGwx"=dword:00000001

четверг, 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!

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

SMTP сервер Яндекса с SSL: правильный порт для приложений


Сегодня мы помучились с подключением к smtp.yandex.ru. На странице Яндекса они написали о настройке клиентских программ. НО! Оказалось, что порт 465 для SMTP  работает только для стандартных mail клиентов. Для вех остальных это порт 587.

четверг, 22 января 2015 г.

T-SQL Tricks - Part 2

Hi visitors,
Just in case: how can someone to use MS SQL Server 2000 system functions inside of UDF? The BOL says 'NO'. MS SQL 2008 restricts UDF but less.
But we will go further then plain 'no' and 'may be' and make almost ANY system function available in your UDF:

--The UDF:
CREATE FUNCTION dbo.fnSysGetAge(@dtBirthDate as datetime)
RETURNS int
AS
BEGIN
    DECLARE @intAge int, @dtGetDate datetime
    IF ISNULL(@dtBirthDate,0)<>0
    BEGIN
        SELECT  TOP 1 @dtGetDate = FunctionValue FROM vwSysFunctionValue WHERE FunctionName = 'GETDATE()'
        SET @intAge = ROUND(CONVERT(int, @dtGetDate - @dtBirthDate) / 365,0)
    END
    ELSE
        SET @intAge = 0
   
    RETURN @intAge
END
GO

--The view:
CREATE VIEW dbo.vwSysFunctionValue
AS
SELECT     CONVERT(nvarchar, GETDATE()) AS FunctionValue, 'GETDATE()' AS FunctionName
UNION
SELECT     CONVERT(nvarchar(20), RAND()) AS FunctionValue, 'RAND()' AS FunctionName
UNION
SELECT     CONVERT(nvarchar(20), dbo.fnSysGetCurrentUserOptionID()) AS FunctionValue, 'UserID()' AS FunctionName
GO
-------------
The same trick you can make with other system function - if they are available in views then they are available in your UDF!