You are currently browsing the Computer Technology category
Displaying 1 - 10 of 107 entries.

Integrating C++ with QML

  • Posted on December 14, 2017 at 11:40 am

Introduction

Qt Quick’s QML language makes it easy to do many things, especially fancy animated user interfaces. However, some things either can’t be done or are not suitable for implementing in QML, such as:

  1. Getting access to functionality outside of the QML/JavaScript environment.
  2. Implementing performance critical functions where native code is desired for efficiency.
  3. Large and/or complex non-declarative code that would be tedious to implement in JavaScript.

As we’ll see, Qt makes it quite easy to expose C++ code to QML. In this blog post I will show an example of doing this with a small but functional application.

The example is written for Qt 5 and uses the Qt Quick Components so you will need at least Qt version 5.1.0 to run it.

Overview

To expose a C++ type having properties, methods, signals, and/or slots to the QML environment, the basic steps are:

  1. Define a new class derived from QObject.
  2. Put the Q_OBJECT macro in the class declaration to support signals and slots and other services of the Qt meta-object system.
  3. Declare any properties using the Q_PROPERTY macro.
  4. Call qmlRegisterType() in your C++ main program to register the type with the Qt Quick engine.

For all the details I refer you to the Qt documentation section Exposing Attributes of C++ Types to QML and the Writing QML Extensions with C++ tutorial.

Ssh Key Generator

For our code example, we want a small application that will generate ssh public/private key pairs using a GUI. It will present the user with controls for the appropriate options and then run the program ssh-keygen to generate the key pair.

I implemented the user interface using the new Qt Quick Controls since it was intended as a desktop application with a desktop look and feel. I initially developed the UX entirely by running the qmlscene program directly on the QML source.

The UI prompts the user for the key type, the file name of the private key to generate and an optional pass phrase, which needs to be confirmed.

The C++ Class

Now that have the UI, we will want to implement the back end functionality. You can’t invoke an external program directly from QML so we have to write it in C++ (which is the whole point of this example application).

First, we define a class that encapsulates the key generation functionality. It will be exposed as a new class KeyGenerator in QML. This is done in the header file KeyGenerator.h below.

#ifndef KEYGENERATOR_H
#define KEYGENERATOR_H

#include <QObject>
#include <QString>
#include <QStringList>

// Simple QML object to generate SSH key pairs by calling ssh-keygen.

class KeyGenerator : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QString type READ type WRITE setType NOTIFY typeChanged)
    Q_PROPERTY(QStringList types READ types NOTIFY typesChanged)
    Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged)
    Q_PROPERTY(QString passphrase READ filename WRITE setPassphrase NOTIFY passphraseChanged)

public:
    KeyGenerator();
    ~KeyGenerator();

    QString type();
    void setType(const QString &t);

    QStringList types();

    QString filename();
    void setFilename(const QString &f);

    QString passphrase();
    void setPassphrase(const QString &p);

public slots:
    void generateKey();

signals:
    void typeChanged();
    void typesChanged();
    void filenameChanged();
    void passphraseChanged();
    void keyGenerated(bool success);

private:
    QString _type;
    QString _filename;
    QString _passphrase;
    QStringList _types;
};
#endif

Next, we need to derive our class from QObject. We declare any properties that we want and the associated methods. Notify methods become signals. In our case, we want to have properties for the selected key type, the list of all valid ssh key types, file name and pass phrase. I arbitrarily made the key type a string. It could have been an enumerated type but it would have made the example more complicated.

Incidentally, a new feature of the Q_PROPERTY macro in Qt 5.1.0 is the MEMBER argument. It allows specifying a class member variable that will be bound to a property without the need to implement the setter or getter functions. That feature was not used here.

We declare methods for the setters and getters and for signals. We also declare one slot called generateKey(). These will all be available to QML. If we wanted to export a regular method to QML, we could mark it with Q_INVOCABLE. In this case I decided to make generateKey() a slot since it might be useful in the future but it could have just as easily been an invocable method.

Finally, we declare any private member variables we will need.

C++ Implementation

Now let’s look at the implementation in KeyGenerator.cpp. Here is the source code:

#include <QFile>
#include <QProcess>
#include "KeyGenerator.h"

KeyGenerator::KeyGenerator()
    : _type("rsa"), _types{"dsa", "ecdsa", "rsa", "rsa1"}
{
}

KeyGenerator::~KeyGenerator()
{
}

QString KeyGenerator::type()
{
    return _type;
}

void KeyGenerator::setType(const QString &t)
{
    // Check for valid type.
    if (!_types.contains(t))
        return;

    if (t != _type) {
        _type = t;
        emit typeChanged();
    }
}

QStringList KeyGenerator::types()
{
    return _types;
}

QString KeyGenerator::filename()
{
    return _filename;
}

void KeyGenerator::setFilename(const QString &f)
{
    if (f != _filename) {
        _filename = f;
        emit filenameChanged();
    }
}

QString KeyGenerator::passphrase()
{
    return _passphrase;
}

void KeyGenerator::setPassphrase(const QString &p)
{
    if (p != _passphrase) {
        _passphrase = p;
        emit passphraseChanged();
    }
}

void KeyGenerator::generateKey()
{
    // Sanity check on arguments
    if (_type.isEmpty() or _filename.isEmpty() or
        (_passphrase.length() > 0 and _passphrase.length() < 5)) {
        emit keyGenerated(false);
        return;
    }

    // Remove key file if it already exists
    if (QFile::exists(_filename)) {
        QFile::remove(_filename);
    }

    // Execute ssh-keygen -t type -N passphrase -f keyfileq
    QProcess *proc = new QProcess;
    QString prog = "ssh-keygen";
    QStringList args{"-t", _type, "-N", _passphrase, "-f", _filename};
    proc->start(prog, args);
    proc->waitForFinished();
    emit keyGenerated(proc->exitCode() == 0);
    delete proc;
}

The constructor initializes some of the member variables. For fun, I used the new initializer list feature of C++11 to initialize the _types member variable which is of type QStringList. The destructor does nothing, at least for now, but is there for completeness and future expansion.

Getter functions like type() simply return the appropriate private member variable. Setters set the appropriate variables, taking care to check that the new value is different from the old one and if so, emitting the appropriate signal. As always, please note that signals are created by the Meta Object Compiler and do not need to be implemented, only emitted at the appropriate times.

The only non-trivial method is the slot generateKey(). It does some checking of arguments and then creates a QProcess to run the external ssh-keygen program. For simplicity and because it typically executes quickly, I do this synchronously and block on it to complete. When done, we emit a signal that has a boolean argument that indicates the key was generated and whether it succeeded or not.

QML Code

Now let’s look at the QML code in main.qml:

// SSH key generator UI

import QtQuick 2.1
import QtQuick.Controls 1.0
import QtQuick.Layouts 1.0
import QtQuick.Dialogs 1.0
import com.ics.demo 1.0

ApplicationWindow {
    title: qsTr("SSH Key Generator")

    statusBar: StatusBar {
    RowLayout {
        Label {
            id: status
            }
        }
    }

    width: 369
    height: 166

    ColumnLayout {
        x: 10
        y: 10

        // Key type
        RowLayout {
            Label {
                text: qsTr("Key type:")
            }
            ComboBox {
                id: combobox
                Layout.fillWidth: true
                model: keygen.types
                currentIndex: 2
            }
        }

        // Filename
        RowLayout {
            Label {
                text: qsTr("Filename:")
            }
            TextField {
                id: filename
                implicitWidth: 200
                onTextChanged: updateStatusBar()
            }
            Button {
                text: qsTr("&Browse...")
                onClicked: filedialog.visible = true
            }
        }

        // Passphrase
        RowLayout {
            Label {
                text: qsTr("Pass phrase:")
            }
            TextField {
                id: passphrase
                Layout.fillWidth: true
                echoMode: TextInput.Password
                onTextChanged: updateStatusBar()
            }

        }

        // Confirm Passphrase
        RowLayout {
            Label {
                text: qsTr("Confirm pass phrase:")
            }
            TextField {
                id: confirm
                Layout.fillWidth: true
                echoMode: TextInput.Password
                onTextChanged: updateStatusBar()
            }
        }

        // Buttons: Generate, Quit
        RowLayout {
            Button {
                id: generate
                text: qsTr("&Generate")
                onClicked: keygen.generateKey()
            }
            Button {
                text: qsTr("&Quit")
                onClicked: Qt.quit()
            }
        }

    }

    FileDialog {
        id: filedialog
        title: qsTr("Select a file")
        selectMultiple: false
        selectFolder: false
        nameFilters: 
        selectedNameFilter: "All files (*)"
        onAccepted: {
            filename.text = fileUrl.toString().replace("file://", "")
        }
    }

    KeyGenerator {
        id: keygen
        filename: filename.text
        passphrase: passphrase.text
        type: combobox.currentText
        onKeyGenerated: {
            if (success) {
                status.text = qsTr('<font color="green">Key generation succeeded.</font>')
            } else {
                status.text = qsTr('<font color="red">Key generation failed</font>')
            }
        }
    }

    function updateStatusBar() {
        if (passphrase.text != confirm.text) {
            status.text = qsTr('<font color="red">Pass phrase does not match.</font>')
            generate.enabled = false
        } else if (passphrase.text.length > 0 && passphrase.text.length < 5) {
            status.text = qsTr('<font color="red">Pass phrase too short.</font>')
            generate.enabled = false
        } else if (filename.text == "") {
            status.text = qsTr('<font color="red">Enter a filename.</font>')
            generate.enabled = false
        } else {
            status.text = ""
            generate.enabled = true
        }
    }

    Component.onCompleted: updateStatusBar()
}

The preceding code is a little long, however, much of the work is laying out the GUI components. The code should be straightforward to follow.

Note that we import com.ics.demo version 1.0. We’ll see where this module name comes from shortly. This makes a new QML type KeyGeneratoravailable and so we declare one. We have access to it’s C++ properties as QML properties, can call it’s methods and act on signals like we do withonKeyGenerated.

A more complete program should probably do a little more error checking and report meaningful error messages if key generation fails (we could easily add a new method or property for this). The UI layout could also be improved to make it properly resizable.

Our main program is essentially a wrapper like qmlscene. All we need to do to register our type with the QML engine is to call:

    qmlRegisterType<KeyGenerator>("com.ics.demo", 1, 0, "KeyGenerator");

This makes the C++ type KeyGenerator available as the QML type KeyGenerator in the module com.ics.demo version 1.0 when it is imported.

Typically, to run QML code from an executable, in the main program you would create a QGuiApplication and a QQuickView. Currently, to use the Qt Quick Components there is some additional work needed if the top level element is an ApplicationWindow or Window. You can look at the source code to see how I implemented this. I basically stripped down the code from qmlscene to the minimum of what was needed for this example.

Here is the full listing for the main program, main.cpp:

#include <QApplication>
#include <QObject>
#include <QQmlComponent>
#include <QQmlEngine>
#include <QQuickWindow>
#include <QSurfaceFormat>
#include "KeyGenerator.h"

// Main wrapper program.
// Special handling is needed when using Qt Quick Controls for the top window.
// The code here is based on what qmlscene does.

int main(int argc, char ** argv)
{
    QApplication app(argc, argv);

    // Register our component type with QML.
    qmlRegisterType<KeyGenerator>("com.ics.demo", 1, 0, "KeyGenerator");

    int rc = 0;

    QQmlEngine engine;
    QQmlComponent *component = new QQmlComponent(&engine);

    QObject::connect(&engine, SIGNAL(quit()), QCoreApplication::instance(), SLOT(quit()));

    component->loadUrl(QUrl("main.qml"));

    if (!component->isReady() ) {
        qWarning("%s", qPrintable(component->errorString()));
        return -1;
    }

    QObject *topLevel = component->create();
    QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel);

    QSurfaceFormat surfaceFormat = window->requestedFormat();
    window->setFormat(surfaceFormat);
    window->show();

    rc = app.exec();

    delete component;
    return rc;
}

In case it is not obvious, when using a module written in C++ with QML you cannot use the qmlscene program to execute your QML code because the C++ code for the module will not be linked in. If you try to do this you will get an error message that the module is not installed.

ASUS unveils Transformer Book TX300

  • Posted on December 12, 2017 at 10:48 am

ASUS India, a leader in the new digital era, together with UTV, today unveiled the Transformer Book TX300 – World’s thinnest Window 8 tablet and detachable Notebook – in association with Chennai Express at the music launch of the film. The evening witnessed much grandeur with the presence of Shah Rukh Khan, Rohit Shetty and Apratim Sharma – ASUS India.

Expressing excitement on the launch of Transformer Book, Apratim Sharma – Country Product Manager – System Business Group, ASUS India elaborated, “The ASUS Design Center starts with what people need and want and crafts perfect solutions that are aesthetic, integrated, intuitive and sustainable. The ASUS Transformer Book supports this belief to the fullest and we are positive that the world’s thinnest Window 8 detachable tablet cum notebook will stun the masses in the way it has been designed to.”

“We are elated with the associating with UTV for Chennai Express. The ASUS Transformer Book supports the fast pace of this film with its All-round performance. This product unveiling will mark a new element of innovation in the series and strengthen our commitment to the market,” he further added.

ASUS Transformer Book
The ASUS Transformer Book is a 13.3-inch notebook with a detachable tablet which has a Full HD IPS Touch panel and a 178 Degree viewing angle. It comes with an Intel® Core™ i5 processor for an outstanding notebook and tablet performance. Separate storage has been provided for the notebook and tablet with a high-capacity hard drive and an Ultra-fast SSD. The ASUS Transformer Book is available with Windows 8 Professional. The device features ASUS SonicMaster audio with Bang & Olufsen ICEpower for rich and detailed sound.

Precision-Engineered Ultra-Portability

ASUS Transformer Book is the world’s thinnest Windows 8 tablet with a 3rd generation Intel Core i5 processor. Inspired by the beautiful Zenbook ultraportable, the ASUS Transformer Book features a sleek profile and a precision-engineered all-metal design with unique spun metal finish that’s the result of a sophisticated 32-step manufacturing process. Transformer Book is as striking as it is resilient and is perfect proof of the ASUS spirit of persistent perfection.

 

High-performance portability

Whether used as a Windows 8 multi-touch tablet or a notebook with keyboard and touchpad, ASUS Transformer Book always has an incredible performance on tap. The 3rd generation Intel Core i5 processor seamlessly switches between applications for effortless multi-tasking with Windows 8 apps, while Intel Turbo Boost Technology 2.0 delivers an automatic burst of speed whenever it’s required. The Transformer Book lets the users Enjoy smooth HD movie playback, responsive gaming and incredible sound quality, thanks to ASUS SonicMaster audio technology.

 

Storage Options for Two Ways of Working

With two types of internal storage device, the ASUS Transformer Book works the way users want to. As a tablet, the 128GB SSD means apps launch instantly for a slick and seamless Windows 8 experience, while ASUS WebStorage ensures easy access to secure cloud storage when travelling far and wide. Connect ASUS Transformer Book to its notebook dock and it instantly becomes a fully functional notebook with up to a 500GB hard drive, with exclusive ASUS high-speed bridge technology that ensures blisteringly fast 5Gbit/s data transfer speeds.

 

Backlit keyboard

In Notebook Mode, ASUS Transformer Book features a backlit keyboard with ambient light control that automatically adjusts its brightness to suit the surroundings, making it easy to keep on top of any productivity task.

 

Smart Battery Technology

ASUS Transformer Book has up to five hours’ battery life in full notebook mode and up to eight hours in tablet mode. Power Up! technology extends notebook battery life still further by disabling the dock’s hard drive and ports to leave the keyboard and touchpad active, giving up to eight hours’ use.

 

More Than a Mobile Dock

ASUS Transformer Book has a mobile dock that’s more than just a backlit keyboard and smart gesture touchpad. With a 500GB hard drive, two USB 3.0 ports and Gigabit LAN, it’s a fully featured notebook with a built-in battery of its own.

 

No more waiting to work

With up to two weeks’ standby time in Notebook mode, there’s no need to waste time waiting for ASUS Transformer Book to shut down, while two-second resume from standby means it’s ready for action when users are.

 

Brilliant High-Definition Display

ASUS Transformer Book features a Full HD display with 1080p resolution and IPS technology for an incredibly crisp and detailed image, with a wide 178° viewing angle. Multi-touch support gives full fingertip control with Windows 8 too, while Mini Display Port makes it easy to connect an HDTV for big-screen viewing.

 

Superior Sound Quality

Developed with the audio experts at Bang & Olufsen ICEpower®, ASUS SonicMaster technology delivers outstanding cinematic sound quality. Four speakers in Notebook mode give an immersive listening experience and MaxxAudio provides fully customizable EQ control for perfect results with movies, music and games. Audio recording is crystal-clear too, thanks to a high quality array mic that filters background noise.

 

High-Quality Cameras

With a front 720p HD and a rear 5-megapixel camera, ASUS Transformer Book is perfectly equipped for capturing high-quality images. Users can enjoy crystal-clear face-to-face video chat with family and friends, and simply tap the screen to take a photo.

 

Stay-Safe Power Supply

Accidentally tripping over a plugged-in notebook power lead risks damage to the lead, the notebook — and, worst of all, the user. Transformer Book solves this problem with a clever power lead that doesn’t plug into a socket, but snaps onto it magnetically. A firm tug is enough to break the connection safely, so there’s no risk of dragging Transformer Book off a desk by snagging its power lead, or having it snatched from your hands if you pick it up when still plugged in.

 

This series Notebook & Desktop Latest AIO Lenovo

  • Posted on December 8, 2017 at 9:41 am

JAKARTA – Lenovo increasingly aggressive in the market by launching a series of notebook PCs and desktop All-in-One (AIO) Touch. Vendors from the Bamboo Curtain country to bring a notebook and the latest Touch AIO desktop to the consumer segment.

This new product line comes with a series of innovations to consumers in an era that claimed Lenovo PC as PC + era.

“Today is the era of PC +, no longer his time PC old. Therefore we must provide innovation in the PC industry by encouraging innovation,” said Country General Manager Lenovo Indonesia Rajesh Thadani, in the launch line of notebook and desktop AIO Touch at The Foundry, Jakarta , Tuesday (02/07/2013).

“This year we are facing challenges in the PC industry. Market PCs now it is decreasing, but we in the PC business is still going well. For the consumer segment, we are the number one PC vendor in the world,” said Rajesh.

This new product line, said Rajesh, a part of Lenovo innovations in the PC + era. The latest line of notebooks Lenovo IdeaPad Yoga is 11s, Touch IdeaPad Z400 and IdeaPad S210 Touch. As for the desktop IdeaCentre A520 AIO is Touch, Touch IdeaCentre B540, C540 and C440 Ideacentre Touch. All new products are equipped with third-generation Intel Core processor and Windows 8 operating systems.

The specifications of the latest product series include 11s IdeaPad Yoga has a 11.6-inch IPS HD screen that supports 10-point multi-touch with a side order size of 0.67 inches. Ultrabook comes in a choice of colors Silver Grey and Clementine Orange.

11s is the successor to the IdeaPad Yoga Yoga series past and is still the same as its predecessor, the convertible notebook has four modes that can be converted into a laptop, tablet, stand and tent.

IdeaPad Z400 comes with Touch screen 14-inch HD LED Backlit Display (1366 x 768) that supports 10-point multi-touch. Moreover, it also comes with extra bass and Dolby Home Theatre v4 to produce a better sound. For type carrying the IdeaPad S210 Touch HD 11.6-inch screen with Dolby Advanced Audio v2 seritifikasi, and comes with a Companion applications such as Lenovo, the Lenovo, and Lenovo Cloud.

While the IdeaCentre A520 Touch has a full HD 23-inch display with 10-point multi touch, Intel HD Graphics 4000, 4GB of DDR memory, and has additional features like Dolby Home Theater v4. IdeaCentre B540 comes with a 23-inch full HD screen that supports multi-touch 3D display and NVIDIA GeForce graphics.

While IdeaCentre C540 Touch has a 23 inch screen, and supports up to NVIDIA GeForce 615 graphics 2GB. While the C440 AIO Touch has the same features and functionality with Touch C540, but with a smaller screen that is 21.5 inches.

IdeaPad Yoga 11s, IdeaPad Z400 Touch, Touch S210 IdeaPad, IdeaCentre A520, IdeaCentre B540 Touch, Touch IdeaCentre C540 and IdeaCentre C440, has been available in the market at each price Rp10, 4 million, Rp 7, 4 million, Rp 4, 7 million , Rp12, 9 million, Rp13, 4 million, Rp 9, 9 million, and Rp 8, 4 million.

Gigabyte Launches Latest Game Keyboard K7 FORCE Stealth with Anti-ghosting feature

  • Posted on December 4, 2017 at 8:44 am

Gamers can now obtain the latest gaming keyboard option in the shopping list. The new gaming keyboards come from Gigabyte called FORCE K7 Stealth. And as a gaming keyboard, FORCE Stealth K7 is also equipped with several features gaming supporters.

The main feature on the keyboard is the anti-ghosting. This feature allows players to be able to press 7 keys simultaneously without conflict. But not all of the support this feature. There are only seven buttons, namely the Q, W, A, S, D, left Shift and Spacebar.

In addition keyboard also comes with a three-color illumination that can be arranged. Three colors are blue, green and cyan. Not only that, the keyboard buttons also have a thin structure. With so each button is pressed, aktuasinya very close distance.

SkyDrive Windows 8.1, Download File Without Internet

  • Posted on December 1, 2017 at 11:02 am

Washington – After releasing a preview version of Windows 8.1 recently, Microsoft said that the final version will be released in August 2013. Windows 8.1 users will soon be able to access files on a Windows cloud-based storage service, SkyDrive, without having to connect to the Internet.
Microsoft announced that SkyDrive will be accompanied by support for offline access. Through SkyDrive service, users will be able to determine which files can be accessed without connecting to the Internet and then downloaded to the user’s device automatically.
Files that can be accessed offline will be easily identified when the user opens SkyDrive. In addition, Windows 8.1 users can also store files on SkyDrive in offline mode, which then can be directly uploaded when connected to the Internet network.
Tami Reller, Chief Financial Officer said the company’s Windows Windows 8.1 will be completed in August 2013. Reller did not say when the user can install updates to Windows 8.1. But, Reller showed several new features and functionality in Windows 8.1.
Windows 8.1 users will be looking for music that is integrated with Xbox Music and can share web pages into Xbox Music application to create playlists. Another breakthrough designed in Windows 8.1, namely, Miracast. This displays renewal HD video and audio from Wi-Fi to the other views, such as TV. And many more other renewal in Windows 8.1.

Upland Software Hires Brian Wilson as Vice President of Sales

  • Posted on November 20, 2017 at 11:14 am

AUSTIN, Texas, July 11, 2013 /PRNewswire/ — Upland Software, the world’s largest cloud provider of enterprise software for project, portfolio, and work management, today announced that Brian Wilson has joined the company as Vice President of Sales. In this role, he will direct Upland’s global field and inside sales force in aligning clients’ business goals with Upland’s family of best-of-breed applications.

Brian comes to Upland with over twelve years of enterprise technology sales experience. Most recently, he was a Vice President of Sales at Innotas, a cloud provider of project and portfolio management (PPM) software.

“Brian’s experience in the cloud PPM space, proven sales management track record, and focus on a consultative, customer-centric approach will be tremendous assets in helping us achieve our organic growth goals,” commented Ludwig Melik, President of Upland Software. “We are thrilled to have him on the team. One of the exciting aspects of the Upland vision is that it allows us to attract top talent, drawn by the opportunities and challenges of creating the first cloud project, portfolio, and work management provider with real scale.”

Upland’s strategy is to build a family of cloud products that address a comprehensive range of PPM needs from strategic planning to work execution, whether in IT or across the business, managing projects or ad hoc work, or focused on “top-down” portfolio analysis or “bottom-up” productivity. Cloud software has transformed the market with its rapid speed-to-value, scalability, low total cost of ownership, and reduced financial risk, as well as its inherent ability to deliver a real-time data integration and collaboration platform to distributed workforces on a local or global scale. Bringing together strong, established cloud products not only creates economies of scale, but also opportunities to leverage talent, product innovation, and best practices across the Upland family of applications.

“What drew me to Upland are the convictions we share about the transformative potential of project, portfolio, and work management as a business discipline; the power of a cloud delivery model; and the integral role of the sales process in laying the foundations for long-term customer success,” Brian Wilson explained.  “I am also excited to work with such a seasoned, talented sales team. It’s great to be on board.”

Prior to Innotas, Brian held various sales and management positions at Seagate Technology and Fujitsu Computer Products. He holds a Bachelor’s degree from the University of California, Davis in Communication with a minor in Managerial Economics.

About Upland Software

Upland is the world’s largest cloud provider of enterprise software for project, portfolio and work management. Upland is the only cloud software provider that offers a comprehensive family of applications that enable organizations to align their goals, projects and programs, optimize their resource utilization and workflows, and empower teams to collaborate and work effectively.

Accela Releases Civic Hero App for Windows 8

  • Posted on November 19, 2017 at 5:08 pm

Accela, Inc., the leading provider of civic engagement solutions for government agencies, announced today that its Civic Hero app is now available for Windows 8. With Civic Hero for Windows 8, Accela is providing entire communities with an innovative app that empowers citizens to report non-emergency community issues such as graffiti, potholes, or damaged public property to local government.

“We’re very excited that Civic Hero is now available on Windows 8,” said Maury Blackman, Accela President and CEO. “This opportunity provides an amazing user experiences and offers features that will delight our user base. Now more government agencies and citizens will be able to access our expanding platform of applications and will realize the true value of citizen engagement. We look forward to continuing to work closely with Microsoft to bring additional apps to market.”

By using their Windows 8 devices, citizens can simply select the type of issue they are reporting, take or add a quick photo or comment and they are done. Citizens can also review and comment on issues reported by others. Government agencies will benefit from utilizing Civic Hero in the following ways:

  • Automatic report routing to only receive service requests within your jurisdiction and areas of responsibility.
  • Tight integration with Accela Automation, allowing agencies to leverage the workflow engine to assign and track reports.
  • Prioritization of reported issues through community feedback.
  • Elimination of duplicate requests.
  • Good will from citizens when they utilize a convenient and useful app that makes communicating with government easy and efficient.

“Civic Hero for Windows 8 offers significant benefits to government agencies and citizens by enabling a fast and transparent method for reporting non-emergency issues,” said Steve Jenkins, senior director of government partners, Microsoft Worldwide Public Sector. “Accela’s easy-to-use app helps cities, citizens and government employees stay engaged with their communities on their Windows 8 devices with convenient access virtually anywhere.”

The Windows 8 version of Civic Hero joins existing versions deployed on leading mobile platforms including iOS and Android. For more information on Accela’s mobile applications, including Civic Hero, visit www.accela.com/civic-apps.

About Accela

Accela, Inc. provides the leading civic engagement platform, powering thousands of services and millions of transactions daily for large and small public agencies worldwide. We connect government to people and accelerate and streamline land management, licensing, asset management and public health and safety processes. Accela’s Civic Cloud includes a complete platform, both packaged and tailored solutions and cloud-based, office, mobile and social applications to support government agency, business and citizen needs. Accela is headquartered in San Ramon, Calif., with international offices in Australia and the United Arab Emirates. For more information, visit www.accela.com.

Facebook offers the dummy’s guide to mobile advertising

  • Posted on November 19, 2017 at 2:18 pm

Facebook Inc’s mobile advertising success offers a ray of hope for Internet companies trying to make money within the confines of the smartphone’s small screen.

The social network’s 75 percent surge in mobile ad revenue in a span of just three months not only doused skepticism on Wall Street and Madison Avenue about Facebook’s business prospects, some say it could serve as a how-to guide for other Web companies navigating a world where the phone and tablet have fast become the screens of choice.

Facebook’s “Newsfeed” ads, which inject marketing messages straight into a user’s content stream and are tailored for mobile devices, were the stars behind the social network’s stunning numbers on Wednesday.

“You’re going to see a lot of companies transitioning and trying to emulate this model because it’s working so well. That’s why last night was a true watershed moment,” said Ben Schachter, an analyst at Macquarie Research.

Internet company executives have long been concerned that mobile advertising is inherently less lucrative than traditional desktop PC advertising, due to the smartphone’s limited screen size and possible consumer resistance to a flood of ads on their devices.

Companies from Google Inc and Yahoo Inc to upstarts such as Snapchat are searching for the right formula to monetize mobile services. While Google has developed a mobile ad business generating an estimated $10 billion a year in revenue, it remains much smaller and less lucrative than Google’s desktop search advertising. Analysts expect Google to generate $60 billion in annual revenue this year.

That wholesale exploration of “native ads” – or marketing messages intended to blend with a users’ personal content, rather than stand out as an ad – has met with varying success.

Twitter, which pioneered the concept of the in-stream ad even before Facebook, may also be well-positioned to benefit from mobile ads. “Sponsored” messages now pop up abruptly in the middle of streams of tweets, but analysts say the frequency is much lower on Facebook newsfeeds.

More than half of the privately held company’s revenue will come from mobile ads this year, reckons Clark Fredricksen, at industry research firm eMarketer.

Some are just getting into the game. This week, LinkedIn Corp, the network for business professionals, rolled out in-stream ads on mobile and PC versions of its service. Yahoo has experimented with similar types of ads, and acquired blogging hub Tumblr for $1.1 billion in May, in part to jumpstart efforts at developing new formats.

But it’s Facebook, which a year ago had zero mobile revenue, that has most aggressively promoted its mobile advertising business to Madison Avenue – with seeming success.

“Compared to other companies, nobody has come right out and said mobile is our sole focus now,” said Angela Steele, CEO of Ansible, part of advertising holding company IPG. “Facebook put all their eggs in one basket.”

FOLLOWING SUIT

One longstanding question has been how much tolerance consumers have for ads that disrupt their stream of content. Facebook said it has steadily increased the number of ads in the news stream without noticing a drop in user satisfaction.

Facebook Chief Executive Mark Zuckerberg said on Wednesday that, on average, ads now account for 5 percent or one in 20 “stories” in the newsfeed. That ratio could now provide a baseline for calculating success, prompting other Web companies to raise the frequency of ads in their streams.

“It wouldn’t surprise me if other companies would look at that and follow suit,” said Ansible’s Steele.

Hussein Fazal, the CEO of AdParlor, which manages advertising campaigns on Facebook, guesses that the social network must have gradually opened the spigot, gauging user reaction and adjusting the stream all the while.

They seemed to have hit on the right formula, but it’s one that differs across platforms, he said.

“The reason Facebook can do it is, the rest of the content that’s there is so engaging that you don’t mind one out of every 20 ads,” he said. “If you have a newsfeed that’s not so engaging, and you keep seeing ads, then it doesn’t work.”

Plus, the more ads in the stream, the less users will click on them, which can dampen ad prices, he added.

Facebook’s seeming success on mobile devices contrasts with Google’s more gradual improvement in that area. The No. 1 Internet search engine has gradually managed to narrow declines in its overall ad rates from the mobile effect, but last quarter they reversed and went down again, disappointing investors.

Google has avoided news stream ads entirely in its Google+ social network. Instead, its mix of mobile search ads, video ads and innovative formats such as “click-to-call” have delivered what RBC Capital Markets analyst Mark Mahaney estimates is a $10 billion annualized run rate for its mobile business, about four times as much as Facebook.

But mobile has driven down the average cost of Google ads, and some industry watchers consider the transition a long-term threat to the search giant. But other analysts say recent changes to the way it sells ads to marketers, blurring the distinction between the mobile and PC, could help bolster rates.

Monitor Your CPU With A Real Tachometer

  • Posted on November 19, 2017 at 12:14 pm

Whether you’re a tinkerer with a custom rig, or you just aren’t sure why your computer’s fans are running, checking your CPU usage is a pretty common task. Instead of using a boring on-screen activity monitor though, you can hook up your machine to a car tachometer for constant feedback.

This hack comes courtesy of ivancreations, who created an entire PC monitoring block from real-world components. The full instructions are on his blog and needless to say, they’re pretty complicated. If you can makes heads and tails of his plans though, the results speak for themselves.

While the tachometer is my favourite part of the build, he also wired up some LED light grids to illustrate other vital system information as well. If you think you’re up to it, or just want a closer look, be sure to check out the source link.

BlackBerry A10 Full Specifications Revealed

  • Posted on November 18, 2017 at 10:42 am

After physical appearance photographs circulating on the Internet, this time turn the hardware specs leaked BlackBerry A10. Successor Z10 previously known by the code name “Aristo” is called will be positioned as the most advanced smart phone from BlackBerry with the main focus on the aspects of performance and gaming capabilities.

As quoted from TechRadar, BlackBerry A10 specs revealed by an image capture of a document that was first circulated by a member of the CrackBerry forums.

In the document dated May 23, 2013 it was explained that this device will have dual-core processor Qualcomm MSM8960 (S4) 1.7 GHz speed.

The processor paired with 2 GB of RAM and an internal memory capacity of 16 GB which can be expanded with a micro SD slot up to 64 GB.

Called A10 screen size of 5 inches or 0.8 inches larger than the screen on the BlackBerry Z10. 1,280 x 720 resolution with pixel density of 295 PPI.

Other fittings include an 8 megapixel main camera, 2 megapixel front camera, NFC connectivity, DLNA, Wi-Fi A / b / g / n as well as 4G LTE, and a 2800 mAh battery. The operating system used is the latest BlackBerry OS 10.2.

BlackBerry A10 arrival time is not yet known for sure, but the device is expected to be introduced in November.