.

SmartMoney Blogs

Real-Time Advice
Our real-time advice on how market shifts and news impact you and your money

Time for Home Buyers to Go Long

Though real estate prices are barely budging, experts say this may be a good time to buy a house. But only for those willing to stay put.

On the face of it, the latest news doesn’t bode well for potential house buyers. House prices will steadily rise in 2012 but economists don’t see prices outpacing inflation over the next three years, according to a new survey. Typically, home prices bounce back after a prolonged recession and even help fuel a broader economic recovery. Not this time, according to that survey. The growth in house prices won’t even keep pace with that of a loaf of bread.

As real estate prices begin their slow crawl north, interest rates have only one way to go – up. “Whether you’re a 35-year-old looking to get on the property ladder or a retiree wanting to downsize, it’s still a good time to buy,” says Jay Tyner, president and founder of Semmax Financial Group in Greensboro, NC.

One caveat: Don’t think of a home as a short-term investment. “This is a good time to buy assuming you want to live in that home,” says Sheldon Garon, a professor of history at Princeton University and author of “Beyond Our Means: Why America Spends While the World Saves.” But don’t treat real estate as a get-rich-quick investment, as so many Americans did during the 1990s and 2000s, he says. “In many areas of the country, developers seriously over-built, which will depress house prices for some time.”

Current conditions are a win-win for both potential homeowners and long-term investors, others say. “For households, the priority should be on meeting their shelter needs at the best price — which may not entail ownership at all.  – and appreciation, if any, should be viewed as a bonus,” says Patrick O’Keefe, director of economic research at J.H. Cohn LLP in Roseland, N.J.For investors with longer-term staying power and property management capability, conditions are attractive — but property specific.”

What’s more, rents are also on the rise. Consumers are being hit by the rise in rents and the decrease in concessions being offered, according to a new survey by online apartment-lister Rent.com. Property managers predict that rents will rise between now and the third quarter of 2012 by 3%, above the 2.5% inflation rate between now and 2014 expected by most economists in a Wall Street Journal survey. Plus, the nation’s ratio of house prices to yearly rents is nearly back to its pre-bubble average.

Comments

We welcome thoughtful comments from readers. Please comply with our guidelines. Our blogs do not require the use of your real name.

Comments (5 of 5)

View all Comments »
    • By WebOsPublisher

      witty 3.1.0a, ExtKitchenApplication_8C-source.html
      tdfont-family: verdana, arial, helvetica, sans-serif;font-size:12pt
      Search packages:
      Sourcecode: witty version
      2.1.42.1.4-12.1.52.1.5-12.2.02.2.0-12.2.12.2.1-12.2.22.2.2-12.2.32.2.42.2.4-12.2.4-22.2.4-32.2.4-3build13.1.0a3.1.0a-13.1.23.1.2-23.1.2-3
      Main Page
      Modules
      Namespaces
      Classes
      Files
      Directories
      wt-3.1.0 &raquo examples &raquo extkitchen
      ExtKitchenApplication.C/*
      * Copyright (C) 2008 Emweb bvba, Kessel-Lo, Belgium.
      *
      * See the LICENSE file for terms of use.
      */
      #include “ExtKitchenApplication.h”
      #include “CsvUtil.h”
      #include <fstream>
      #include <Wt/WBorderLayout>
      #include <Wt/WHBoxLayout>
      #include <Wt/WVBoxLayout>
      #include <Wt/WFitLayout>
      #include <Wt/WStandardItemModel>
      #include <Wt/WStandardItem>
      #include <Wt/WTable>
      #include <Wt/WTableCell>
      #include <Wt/WText>
      #include <Wt/WTree>
      #include <Wt/WTreeView>
      #include <Wt/WIconPair>
      #include <Wt/WTreeNode>
      #include <Wt/Ext/Button>
      #include <Wt/Ext/Calendar>
      #include <Wt/Ext/CheckBox>
      #include <Wt/Ext/ComboBox>
      #include <Wt/Ext/Container>
      #include <Wt/Ext/DateField>
      #include <Wt/Ext/Dialog>
      #include <Wt/Ext/Menu>
      #include <Wt/Ext/MessageBox>
      #include <Wt/Ext/ProgressDialog>
      #include <Wt/Ext/Splitter>
      #include <Wt/Ext/TabWidget>
      #include <Wt/Ext/TableView>
      #include <Wt/Ext/TextEdit>
      #include <Wt/Ext/ToolBar>
      #include <iostream>
      #ifdef WIN32
      #include <windows.h> // for Sleep()
      #undef MessageBox
      #endif
      using namespace Wt;
      ExtKitchenApplication::ExtKitchenApplication(const WEnvironment$ env)
      : WApplication(env)

      setTitle(“Wt-Ext, including a kitchen sink”);
      useStyleSheet(“extkitchen.css”);
      messageResourceBundle().use(“extkitchen”);
      Ext::Container *viewPort = new Ext::Container(root());
      WBorderLayout *layout = new WBorderLayout(viewPort);
      /* North */
      Ext::Panel *north = new Ext::Panel();
      north->setBorder(false);
      WText *head = new WText(WString::tr(“header”));
      head->setStyleClass(“north”);
      north->setLayout(new WFitLayout());
      north->layout()->addWidget(head);
      north->resize(WLength::Auto, 35);
      layout->addWidget(north, WBorderLayout::North);
      /* West */
      Ext::Panel *west = new Ext::Panel();
      west->layout()->addWidget(createExampleTree());
      west->setTitle(“Widgets”);
      west->resize(200, WLength::Auto);
      west->setResizable(true);
      west->setCollapsible(true);
      west->setAnimate(true);
      west->setAutoScrollBars(true);
      layout->addWidget(west, WBorderLayout::West);
      /* Center */
      Ext::Panel *center = new Ext::Panel();
      center->setTitle(“Demo widget”);
      center->layout()->addWidget(exampleContainer_ = new WContainerWidget());
      center->setAutoScrollBars(true);
      layout->addWidget(center, WBorderLayout::Center);
      exampleContainer_->setPadding(5);
      WContainerWidget *container = new WContainerWidget(exampleContainer_);
      container->addWidget(new WText(WString::tr(“about”)));
      currentExample_ = container;
      // load an Ext them, after at least one Ext widget. For example, here:
      //useStyleSheet(“ext/resources/css/xtheme-gray.css”);

      WWidget *ExtKitchenApplication::createExampleTree()

      WIconPair *mapIcon
      = new WIconPair(“icons/yellow-folder-closed.png”,
      “icons/yellow-folder-open.png”, false);
      WTreeNode *rootNode = new WTreeNode(“Examples”, mapIcon);
      rootNode->setImagePack(“icons/”);
      rootNode->expand();
      rootNode->setLoadPolicy(WTreeNode::NextLevelLoading);
      createExampleNode(“Menu and ToolBar”, rootNode,
      $ExtKitchenApplication::menuAndToolBarExample);
      createExampleNode(“Form widgets”, rootNode,
      $ExtKitchenApplication::formWidgetsExample);
      createExampleNode(“TableView”, rootNode,
      $ExtKitchenApplication::tableViewExample);
      createExampleNode(“Dialogs”, rootNode,
      $ExtKitchenApplication::dialogExample);
      createExampleNode(“TabWidget”, rootNode,
      $ExtKitchenApplication::tabWidgetExample);
      rootNode->setMargin(5);
      return rootNode;

      WTreeNode *ExtKitchenApplication::createExampleNode(const WString$ label,
      WTreeNode *parentNode,
      ShowExample f)

      WIconPair *labelIcon
      = new WIconPair(“icons/document.png”, “icons/document.png”, false);
      WTreeNode *node = new WTreeNode(label, labelIcon, parentNode);
      node->label()->setTextFormat(PlainText);
      node->label()->clicked().connect(this, f);
      return node;

      void ExtKitchenApplication::setExample(WWidget *example)

      delete currentExample_;
      currentExample_ = example;
      exampleContainer_->addWidget(currentExample_);

      void ExtKitchenApplication::menuAndToolBarExample()

      WContainerWidget *ex = new WContainerWidget();
      WText *wt = new WText(WString::tr(“ex-menu-and-toolbar”), ex);
      wt->setMargin(5, Bottom);
      // Create a menu with some items
      Ext::Menu *menu = new Ext::Menu();
      Ext::MenuItem *item;
      item = menu->addItem(“File open…”);
      item->setIcon(“icons/yellow-folder-open.png”);
      item = menu->addItem(“I dig Wt”);
      item->setCheckable(true);
      item->setChecked(true);
      item = menu->addItem(“I dig Wt too”);
      item->setCheckable(true);
      menu->addSeparator();
      menu->addItem(“Menu item”);
      menu->addSeparator();
      // Add a sub menu
      Ext::Menu *subMenu = new Ext::Menu();
      subMenu->addItem(“Do this”);
      subMenu->addItem(“And that”);
      item = menu->addMenu(“More …”, subMenu);
      item->setIcon(“icons/yellow-folder-open.png”);
      // Create a tool bar
      Ext::ToolBar *toolBar = new Ext::ToolBar(ex);
      Ext::Button *b
      = toolBar->addButton(“Button w/Menu”, menu);
      b->setIcon(“icons/yellow-folder-closed.png”);
      toolBar->addButton(“Button”);
      toolBar->addSeparator();
      toolBar->addButton(“Separated”);
      toolBar->addSeparator();
      Ext::Button *button = toolBar->addButton(“Toggle me”);
      button->setCheckable(true);
      Ext::ComboBox *cb = new Ext::ComboBox();
      cb->addItem(“Winter”);
      cb->addItem(“Spring”);
      cb->addItem(“Summer”);
      cb->addItem(“Autumn”);
      toolBar->add(cb);
      setExample(ex);

      void ExtKitchenApplication::formWidgetsExample()
      Bottom);
      Ext::DateField *df = new Ext::DateField(w);
      df->setDate(WDate(2007, 9, 7));
      // Calendar
      Ext::Calendar *dp = new Ext::Calendar(false, ex);
      // TextEdit
      html_ = new Ext::TextEdit(“Hello there, <b>brothers and sisters</b>”, ex);
      html_->setMargin(5, Top
      void ExtKitchenApplication::tableViewExample()

      WContainerWidget *ex = new WContainerWidget();
      WText *wt = new WText(WString::tr(“ex-table-view”), ex);
      wt->setMargin(5, Bottom);
      /*
      * Create the data model, and load from a CSV file
      */
      model_ = new WStandardItemModel(0,0,ex);
      std::ifstream f(“compare.csv”);
      readFromCsv(f, model_);
      /*
      * Convert the last column to WDate
      */
      for (int i = 0; i < model_->rowCount(); ++i)
      int j = model_->columnCount() – 1;
      WString dStr = boost::any_cast<WString>(model_->data(i, j));
      model_->setData(i, j, boost::any(WDate::fromString(dStr, “d/M/yyyy”)));

      /*
      * Create a read-only TableView for the model
      */
      table1_ = new Ext::TableView(ex);
      table1_->resize(700, 250);
      table1_->setModel(model_);
      table1_->setColumnSortable(0, true);
      table1_->enableColumnHiding(0, true);
      table1_->setAlternatingRowColors(true);
      table1_->setAutoExpandColumn(2);
      table1_->setRenderer(model_->columnCount() – 1,
      Ext::TableView::dateRenderer(“d MMM yyyy”));
      /*
      * Leave the data on the server, and add a paging tool
      */
      table1_->setDataLocation(Ext::ServerSide);
      table1_->setPageSize(10);
      table1_->setBottomToolBar(table1_->createPagingToolBar());
      table1_->bottomToolBar()->addButton(“Other button”);
      /*
      * A second editable TableView for the same model inside a tab
      * widget.
      */
      wt = new WText(WString::tr(“ex-table-view2″), ex);
      wt->setMargin(5, Bottom);
      Ext::TabWidget *tb = new Ext::TabWidget(ex);
      tb->addTab(table2_ = new Ext::TableView());
      tb->addTab(new WText(WString::tr(“tab-2-content”)), “Tab 2″);
      tb->resize(600, 250);
      table2_->setTitle(“Editable TableView”);
      //table2_->setModel(new WStandardItemModel(5, 5));
      table2_->setModel(model_);
      table2_->resizeColumnsToContents(true);
      table2_->setAutoExpandColumn(2);
      table2_->setRenderer(model_->columnCount() – 1,
      Ext::TableView::dateRenderer(“dd/MM/yyyy”));
      // Set a LineEdit for the first field
      table2_->setEditor(0, new Ext::LineEdit());
      // Set a ComboBox for the second field
      Ext::ComboBox *cb = new Ext::ComboBox();
      cb->addItem(“Library”);
      cb->addItem(“Servlet”);
      cb->addItem(“Framework”);
      table2_->setEditor(1, cb);
      // Set a DateField for the last field
      Ext::DateField *df = new Ext::DateField();
      df->setFormat(“dd/MM/yyyy”);
      table2_->setEditor(model_->columnCount() – 1, df);
      Ext::ToolBar *toolBar = new Ext::ToolBar();
      toolBar->addButton(“Add 100 rows”,
      SLOT(this, ExtKitchenApplication::addRow));
      toolBar->addButton(“Remove 100 row”,
      SLOT(this, ExtKitchenApplication::removeRow));
      toolBar->addButton(“Reset”,
      SLOT(this, ExtKitchenApplication::resetModel));
      table2_->setBottomToolBar(toolBar);
      /*
      * A WTreeView in another tab widget, working on the same model!
      */
      treeView_ = new WTreeView();
      treeView_->setRootIsDecorated(false);
      treeView_->setSelectionMode(Wt::ExtendedSelection);
      treeView_->setModel(model_);
      treeView_->setRowHeight(21);
      treeView_->setDragEnabled(true);
      treeView_->setDropsEnabled(true);
      treeView_->setAlternatingRowColors(true);
      for (int i = 1; i < model_->columnCount(); ++i)
      treeView_->setColumnWidth(i, 100);
      Ext::Panel *p = new Ext::Panel();
      p->setLayout(new WFitLayout());
      p->layout()->addWidget(treeView_);
      p->setTitle(“WTreeView”);
      toolBar = new Ext::ToolBar();
      toolBar->addButton(“Add 100 rows”,
      SLOT(this, ExtKitchenApplication::addRow));
      p->setTopToolBar(toolBar);
      tb->addTab(p);
      setExample(ex);

      void ExtKitchenApplication::addRow()

      /* Add some new row at the end of the model */
      for (int i = 0; i < 100; ++i) ItemIsDropEnabled);

      void ExtKitchenApplication::removeRow()

      /* Remove the first row */
      for (int i = 0; i < 100; ++i)
      model_->removeRow(0);

      void ExtKitchenApplication::resetModel()

      /* Reset the original model */
      WStandardItemModel *model = new WStandardItemModel(0,0,this);
      std::ifstream f(“compare.csv”);
      readFromCsv(f, model);
      table1_->setModel(model);
      table2_->setModel(model);
      treeView_->setModel(model);
      delete model_;
      model_ = model;

      void ExtKitchenApplication::formModify()

      std::cerr << cb->currentText() << “, ” << cb->currentIndex() << std::endl;
      cb->addItem(“Four?”);

      void ExtKitchenApplication::dialogExample()

      WContainerWidget *ex = new WContainerWidget();
      WVBoxLayout *vLayout = new WVBoxLayout();
      ex->setLayout(vLayout, AlignTop
      void ExtKitchenApplication::createDialog()

      mbox_ = new Ext::MessageBox();
      mbox_->resize(300, 100);
      mbox_->setWindowTitle(“Hello there”);
      mbox_->setButtons(Wt::Ok);
      mbox_->finished().connect(SLOT(this, ExtKitchenApplication::testDelete));
      mbox_->show();

      void ExtKitchenApplication::testDelete()

      delete mbox_;

      void ExtKitchenApplication::createDialog2()

      Ext::Dialog d;
      d.setWindowTitle(“Hello there too”);
      d.resize(300,100);
      Ext::Button *okButton = new Ext::Button(“Ok”);
      okButton->activated().connect(SLOT($d, Ext::Dialog::accept));
      d.addButton(okButton);
      okButton->setDefault(true);
      Ext::Button *cancelButton = new Ext::Button(“Cancel”);
      cancelButton->activated().connect(SLOT($d, Ext::Dialog::reject));
      d.addButton(cancelButton);
      WText *contents = new WText(“I’m right here.”);
      d.contents()->addWidget(contents);
      d.exec();
      d.setWindowTitle(“Good to see you.”);
      contents->setText(“I’ve been waiting for you.”);
      d.exec();

      void ExtKitchenApplication::createDialog3()

      Ext::Dialog d;
      d.setWindowTitle(“Ext::Dialog with WBorderLayout”);
      d.resize(400,300);
      d.setStyleClass(“dialog”);
      Ext::Button *okButton = new Ext::Button(“Ok”);
      okButton->activated().connect(SLOT($d, Ext::Dialog::accept));
      d.addButton(okButton);
      okButton->setDefault(true);
      Ext::Button *cancelButton = new Ext::Button(“Cancel”);
      cancelButton->activated().connect(SLOT($d, Ext::Dialog::reject));
      d.addButton(cancelButton);
      WBorderLayout *layout = new WBorderLayout();
      d.setLayout(layout);
      Ext::Panel *west = new Ext::Panel();
      west->setTitle(“West”);
      west->setResizable(true);
      west->resize(100, WLength::Auto);
      layout->addWidget(west, WBorderLayout::West);
      Ext::Panel *center = new Ext::Panel();
      center->setTitle(“Center”);
      WBorderLayout *nestedLayout = new WBorderLayout();
      center->setLayout(nestedLayout);
      Ext::Panel *nestedNorth = new Ext::Panel();
      nestedLayout->addWidget(nestedNorth, WBorderLayout::North);
      nestedNorth->resize(WLength::Auto, 35);
      nestedNorth->layout()->addWidget(new WText(WString::tr(“nested-header”)));
      Ext::Panel *nestedCenter = new Ext::Panel();
      nestedLayout->addWidget(nestedCenter, WBorderLayout::Center);
      nestedCenter->layout()->addWidget(new WText(WString::tr(“dialog-nested”)));
      layout->addWidget(center, WBorderLayout::Center);
      d.exec();

      void ExtKitchenApplication::createDialog4()
      Cancel)
      == Ok)
      std::cerr << “Got ok.”;
      else
      std::cerr << “Got cancel.”;

      void ExtKitchenApplication::createDialog5()

      WString v = “Jozef”;
      if (Ext::MessageBox::prompt(“Info”, “Please enter your name:”, v) == Ok)
      std::cerr << “You entered: ‘” << v << ‘\” << std::endl;

      void ExtKitchenApplication::createDialog6()

      Ext::ProgressDialog d(“Converting contact details…”, “Cancel”, 0, 7);
      d.setWindowTitle(“Import Contacts”);
      d.show();
      for (unsigned i = 0; i < 7; ++i)
      d.setValue(i);
      processEvents();
      if (!d.wasCanceled())
      /* Do some work … */
      #ifdef WIN32
      Sleep(1000);
      #else
      sleep(1);
      #endif
      else
      Ext::MessageBox
      ::show(“Operation cancelled”,
      “You may import your contact details any time later.”, Ok);
      break;

      void ExtKitchenApplication::createDialog7()

      Ext::Dialog d;
      d.setWindowTitle(“Shhh…”);
      d.resize(350,120);
      Ext::Button *okButton = new Ext::Button(“Ok”);
      okButton->activated().connect(SLOT($d, Ext::Dialog::accept));
      d.addButton(okButton);
      okButton->setDefault(true);
      Ext::Button *cancelButton = new Ext::Button(“Cancel”);
      cancelButton->activated().connect(SLOT($d, Ext::Dialog::reject));
      d.addButton(cancelButton);
      d.contents()->setPadding(8);
      new WText(“Please give your password:”, d.contents());
      Ext::LineEdit passwd(d.contents());
      passwd.setEchoMode(Ext::LineEdit::Password);
      passwd.setTextSize(8);
      passwd.setMargin(5, Left);
      passwd.setInline(true);
      d.contents()->enterPressed().connect(SLOT($d, Ext::Dialog::accept));
      if (d.exec() == Ext::Dialog::Accepted)
      // …

      void ExtKitchenApplication::tabWidgetExample()

      WContainerWidget *ex = new WContainerWidget();
      WText *wt = new WText(WString::tr(“ex-tabwidget”), ex);
      wt->setMargin(5, Bottom);
      tb = new Ext::TabWidget(ex);
      tb->resize(500, 200);
      tb->addTab(new WText(WString::tr(“tab-1-content”)), “Tab 1″);
      tb->addTab(new WText(WString::tr(“tab-2-content”)), “Tab 2″);
      WContainerWidget *w = new WContainerWidget(ex);
      WHBoxLayout *hLayout = new WHBoxLayout();
      w->setLayout(hLayout, AlignTop
      void ExtKitchenApplication::modifyTabWidget()

      tb->addTab(new WText(WString::tr(“tab-x-content”)),
      “Tab ” + boost::lexical_cast<std::string>(tb->count() + 1));

      void ExtKitchenApplication::hideTab()

      tb->setCurrentIndex(1);
      tb->setTabHidden(0, true);

      void ExtKitchenApplication::showTab()

      tb->setTabHidden(0, false);

      WApplication *createApplication(const WEnvironment$ env)

      WApplication *app = new ExtKitchenApplication(env);
      return app;

      int main(int argc, char **argv)

      return WRun(argc, argv, $createApplication);

      Generated by Doxygen 1.6.0 Back to index

    • By WebOsPublisher


      HTTP Error 403
      Error 403
      We’re sorry, but we could not fulfill your request for
      /classifieds/tanch-rider-gear/p41613-brand-new-21-icon-field-armor-vest-size-regular-and-xl.html on this server.
      An invalid request was received from your browser. This may be caused by a malfunctioning proxy server or browser privacy software.
      Your technical support key is: 58c6-c612-1756-6707
      You can use this key to fix this problem yourself.
      If you are unable to fix the problem yourself, please contact webmaster($#64;)motorcyclephilippines($#46;)com and be sure to provide the technical support key shown above.

    • Cheap Jew – the article was quite balanced, so keep your personal issues to yourself. This was far from a rah rah kind of piece. There were plenty of caveats in the article if you actually read it with a clear mind.

    • another real estate ad disguised as an article. These clowns were probably telling suckers to buy in 2005 also…

About Real-Time Advice

  • How breaking news — in the markets, Washington, and around the world — affects you and your money. Have a question about how current events may change your financial future? Email us at ask@smartmoney.com.

.