I have the following code: 

void NewCore::spin(){
    ros::Rate rate(10);

    int first =1;
    while(ros::ok()){

        if (first){         
            askMath();first=0;}
        ros::spinOnce();
        rate.sleep();
    }
}

int main(int argc, char **argv){

    ros::init(argc, argv, "newCore");
    NewCore nc;
    nc.init();

    nc.spin();
}

void NewCore::init(){

    mngrSub = handle.subscribe&lt;std_msgs::String&gt;("/tawi/core/launch", 10, &amp;NewCore::launchCallback, this);
    mngrPub = handle.advertise&lt;std_msgs::String&gt;("/tawi/core/launch", 100);

    mathSub = handle.subscribe&lt;std_msgs::String&gt;("/display", 10, &amp;NewCore::launchCallback, this);
    serSub = handle.subscribe&lt;std_msgs::String&gt;("/tawi/arduino/serial", 100,&amp;NewCore::serialCallback,this);
    mathPub = handle.advertise&lt;std_msgs::String&gt;("/questions", 100);

    ballPub = handle.advertise&lt;std_msgs::Int16&gt;("/tawi/core/ballcount", 100);
    nmbrPub = handle.advertise&lt;std_msgs::Int16&gt;("/tawi/core/number", 100);
}

void NewCore::askMath(){
    ROS_INFO("addition1d&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;");
    std_msgs::String question;
    question.data = "1digitAddition";
    mathPub.publish(question);
}


(code that isn't interesting has been removed)

Running this causes the following output to appear: 

$ rosrun glados newCore 
[ INFO] [1421236273.617723131]: addition1d&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;


However if I have the following code on during launch:

$ rostopic echo /questions 


then it does not show me an initial message being sent.

Changing

        if (first){         
            askMath();first=0;}


into 

            askMath();first=0;


does appear to work but it then sends a message every cycle rather then just the one at the start. 

Does anybody know what is wrong here? 


Question: My Visual Studio 2010 Menus are right aligned, how to fix that?
Answer: Found the solution ....

Btw. no other application means ... Windows 7 and Visual Studio 2010.

The Fix is easy, change

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\MenuDropAlignment 

from 0 to 1 (REG_SZ)

In Detail here

http://www.sevenforums.com/tutorials/786-menus-open-left-right-side.html

But i still don't know why it was set to 0.