Home Blog Page 1805

Inside LinuxCon and CloudOpen 2013, Part Two: More Co-Located Events

We have less than two weeks until LinuxCon and CloudOpen in New Orleans and I can hardly wait. There are a ton of great keynotes, breakout sessions, mini-summits, workshops and parties to choose from. Have you planned your schedule yet?

Hopefully last week’s guide to the Xen Project, OpenDaylight and Tizen mini summits gave you a good start.  In part two of your insider tour of co-located events I’ll give you an overview of what to expect from the Linux Plumbers Conference; Linux Wireless Summit; UEFI Plugfest; and Enea Hacker Day. Other LinuxCon co-located events include the Linux Security Summit and the Gluster Workshop.

It’s not too late to register for LinuxCon and CloudOpen! Visit the LinuxCon North America event page.

Linux Plumbers Conference

Who should attend: Linux kernel and userland developers.

Plumbers conference logo“People normally tend to be working on one piece of something,” said Jes Sorensen, Linux kernel developer and a Plumbers Conference organizer. “The idea of plumbers is to get the different pieces working together.”

What to expect: This is a collection of 13 micro-conferences made up of workshops instead of formal presentations. Developers present a problem and then attendees brainstorm how to approach them. The goal is for each workshop to collectively resolve the issues.

“The idea is to put people in a room and lock the door and throw away the key until they find a solution,” Sorensen said.

Don’t miss: New this year is dedicated time and space for “hack time.” Attendees can go look at code together and work on the problems that are identified.

UEFI Plugfest

Who should attend: Linux developers can show up with any kind of device, software or platform to test UEFI support.

UEFI logoWhat to expect: It’s a round-robin testing event and it’s the first UEFI plug fest sponsored by the Linux Foundation. Whereas most plug fests are focused on higher level testing, LinuxCon’s will zero in on the firmware level with technical presentations on topics such as making your firmware more secure and the UEFI signing process.

“We’re trying to encourage the Linux community to do more direct testing on UEFI,” said Brian Richardson, a senior technical marketing engineer at Intel.

Don’t miss: A chance to do deeper testing with a platform than you would if you bought it from the store. And you often get a chance to test platforms that are ahead of the market.

“It’s hard to get information on what UEFI does and how support is laid out in Linux,” Richardson said. This is your chance to learn directly from companies such as Intel, Microsoft, HP, Inside Software, Phoenix and AMD.

Linux Wireless Summit

Who should attend: Linux kernel and userland developers working on the Linux wireless subsystem and related technologies.

Linux wireless“There are people using wireless technologies for interesting applications related to security or in kiosks. It’s neat to hear some of those stories,” said John Linville, Linux kernel developer and wireless summit organizer.

What to expect: It’s a mini kernel summit that involves face-to-face discussions on issues that are “awkward or difficult to resolve over email,” Linville said.

Topics will include the ability of bluetooth technologies to use wireless LAN as a physical connection, the interaction between the Bluetooth stack and wireless LAN stack, Android’s unique use of wireless LAN, and miracast video over wireless, among other things. See the full list of topics at wireless.kernel.org.

Don’t miss: The kernel developer discussion on how to bring Android wireless features back into the mainline kernel.

“Just like (Android) had things it did differently from the main kernel, in the wireless space they wanted configuration options the general wireless set didn’t support or didn’t support it the way they needed to,” Linville said. “We’ve been discussing for while how to bring those back in.”

Enea Hacker Day

Who should attend: Anyone who is ready to push their hacking abilities to the limit.  See what amazing things you can invent during a full day free-for-all of innovation!

enea-hackerWhat to expect: This event will consist of a full day of anything-goes hacking on your favorite embedded target; two speaking sessions from our Enea experts on cutting-edge Linux topics; snacks and lunch; participation giveaways; and an intense techie skill contest with the coveted Grande Geek prize.

Don’t miss: Michael Christofferson, Enea’s Product Marketing Manager speaking on “A Portable clock cycle based performance Measurement System”.  In real-time development, it is often the case that direct, end-to-end time measurements and statistics are needed to determine program, design, or specification correctness. This often involves both kernel events and user space or application events. Christofferson will describe a portable set of open source tools, API’s, and programs for implementation of timing measures between multiple software events based on clock cycles.

Fedora 20 Will Be Named After A Software Bug

Fedora codenames have been rather peculiar or silly in recent history with names like Beefy Miracle for the Linux distribution. The Fedora 20 codename is also unique…

Read more at Phoronix

New Dell Service Aims to Mainstream Desktop Virtualization Projects

The 360 Integrated Design approach focuses on back-end integration changes that are integral to successful virtual desktop infrastructure rollouts.

OpenDaylight Developer Spotlight: Colin Dixon

Colin Dixon

OpenDaylight is an open source software project focused on advancing Software-Defined Networking (SDN). The Developer Spotlight blog series profiles the people who are contributing to the project.

Colin Dixon is a computer systems researcher at IBM Research’s Austin Lab. His research interests are broadly in systems, spanning networks, distributed systems, operating systems and security with an emphasis on building real, secure, reliable and efficient computer systems. He’s on Twitter at @colin_dixon.

How did you get involved with OpenDaylight? What is your background?

I’ve been pretty intensely involved with OpenDaylight since the beginning. I’m a researcher at IBM working on SDN and before OpenDaylight, I did a lot of work with, and contributed to, the Floodlight OpenFlow controller. As a result, I heavily contributed to IBM’s first OpenFlow controller, which was based on Floodlight, and when IBM was spinning up OpenDaylight, I became IBM’s unofficial OpenDaylight technical expert.

IRead more at OpenDaylight Blog

IBM Finalizes Acquisition of Trusteer, Creates Cybersecurity Lab

With Trusteer’s portfolio and staff under its belt, IBM is forming a cybersecurity lab focused on mobile and application security, counter-fraud and malware detection.

SUSE’s LibreOffice Team Moves to Collabora

Michael Meeks announces that SUSE’s LibreOffice team is moving over to Collabora, which will be providing commercial LibreOffice support going forward. “It seems to me that the ability to say ‘no’ to profitable but peripheral business in order to strategically focus the company is a really important management task. In the final analysis I’m convinced that this is the right business decision for SUSE. It will allow Collabora’s Productivity division to focus exclusively on driving LibreOffice into Windows, Mac and Consulting markets that are peripheral to SUSE. It will also retain the core of the existing skill base for the benefit of SUSE’s customers, and the wider LibreOffice community, of which openSUSE is an important part.” See also the press releases from Collabora and SUSE.

Read more at LWN

ARM Acquires High-End Mobile Display Technology from Cadence

ARM has signed a definitive agreement for the sale and transfer of Cadence PANTA display controller cores to ARM.

The Mandriva Education Programme: Special Offer for Education Market

Paris the 3rd of September: Mandriva listens to its customers and pays special attention to the education market. At Mandriva we are convinced that the education market has unique needs in terms of business processes and applications.

This is why Mandriva is launching a special programme: the Mandriva Education Programme. Geared at the education market, this unique opportunity provides thre three major Mandriva solutions (Mandriva Business Server, Mandriva Pulse2, Mandriva Class) at a special price and offers corrective and functional updates as long as version upgrades. This offer works like a yearly subscription to these three software products and is applicable on a one site basis. Rebates are available for additional sites covered.

More information is available on this page and on this brochure. In order to apply to this programme please send us an email or contact us on the phone: +33 (0)1 76 64 16 60 (Paris time)

Android App Development for Beginners: Layout and UI Options, Part One

Over the next few tutorials, we’ll be looking in more detail at the basic layout and graphical interface aspects of the Android API. If you’ve been reading other tutorials in this series, you’ve already been creating basic layouts, buttons, and menus; now we’re going to look in depth at the available layout and UI options, to give you more insight into how you can create the best visual user experience for your app.

This first tutorial looks at LinearLayout, as well as at some basic concepts like element attributes. In the next few tutorials we’ll also look at RelativeLayout, check out the multiple menu types available, take another look at lists, grids, and scrolling, and find out how to make buttons look better.

Layouts and XML: The basics

The basic Android approach to layout is to set it up in XML, in a layout file that is usually found in res/layout/. It’s also possible to then grab and alter that layout information programmatically at runtime as your app requires. (It’s also possible simply to instantiate your layout information at runtime, but that’s less flexible and maintainable than using XML, and I won’t cover it here.)

The structure of an XML layout file is similar to the structure of an HTML webpage — you can think of it as a series of nested elements, or as a tree. Each layout file has one single root element, which must be a View or ViewGroup element (such as LinearLayout, RelativeLayout, ListView…). The limitations of the arrangements of the child elements (panes, buttons, images, text… all the visual parts of your app) will vary according to the specific root element. Let’s look at what we can do with a LinearLayout.

LinearLayout: The basics

A LinearLayout is a very simple layout that just arranges all its children in either a vertical column, or a horizontal row, depending on how it is specified. A vertical LinearLayout will only have one child per row (so it is a column of single elements), and a horizontal LinearLayout will only have one single row of elements on the screen. There are obvious disadvantages to this for more complicated apps — you probably don’t want all your buttons to line up one under the other, for example. To set up more complicated arrangements, you’ll probably want to use a RelativeLayout (which we’ll look at in another tutorial); we’ll also have a quick look at nesting LinearLayouts at the bottom of this tutorial.

Here’s a basic vertical LinearLayout. Create a new Android project, LayoutTest, and put this in res/layout/activity_layout_test.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/name" />
    <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:text="@string/setName" />
</LinearLayout>

As discussed in previous tutorials, it’s good practice to keep your strings in a resource file, rather than hard-coding them into your layout. This makes for easier internationalisation, and is more maintainable. So you’ll also need to edit res/values/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">LayoutTest</string>
    <string name="hello">Hello world!</string>
    <string name="name">Name</string>
    <string name="setName">Set name</string>
</resources>

android linearlayout As you’ll see (and as used in previous tutorials), you can refer to Android string resources with @string/stringname. This is a standard format which we’ll see used for other resources in due course.

To make this show up on the screen, you’ll also need to edit src/com/example/layouttest/LayoutTestActivity.java:

package com.example.layouttest;
public class LayoutTestActivity extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_layout_test);
    }
} 

Run this (on your phone or on the emulator), and you should get a layout like the one at left. All three elements are laid out one under the other.

Element width and weight

You’ll notice that the three elements in our layout above mostly have either fill_parent or wrap_content set for their height and width. Although you can specify a pixel value (as with the Button here), much of the time it’s these two meta-values that are used. fill_parent means to fill the parent element in that direction (width or height); wrap_content means that the element should be just as wide or high as the content requires.

android linearlayout layout2In the above example, all three elements have wrap_content as their height, so they are all squashed up to the top of the display. Try setting the height of the EditText element to befill_parent, and you should get the image at right. Note that you can’t see the button at all. The EditText element has duly filled the parent element (the LinearLayout), and there’s no room left for the button.

To get past this problem, but still spread the elements out a bit better, you can use the android:layout_weight attribute. This assigns an “importance” to the elements. The default weight is 0, and a higher number means a more important element. The most important element will be allocated more of the screen space. Try this:

<LinearLayout ... >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
   <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="@string/name" />
    <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:text="@string/setName" />
</LinearLayout>

Now The EditText element has expanded to fill all the available space, like the image on the left, below. However, if you increase the weight of the EditText element to 2, and give the other two elements a weight of 1, you’ll get the image to the right, below. This time, because all of the weights are non-zero, once they’ve all been given their minimum space (wrap_content, so, the height of their content), the remaining screen space is divided in half. One half goes to the most important element, and the other half is divided between the two other elements.

If you want all your child elements to get exactly the same space on the screen, you shouldn’t use wrap_content, because that will allocate space to content first, and only then divide up the remaining space. Instead, set the height (or width, for a horizontal layout) to 0dp, then set the weight of each view to 1.

android-linearlayout-3android-linearlayout-4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Layout attributes: Borders, padding, id…

There are a bunch of other layout attributes to further control the look of your layout. Here are a few commonly-used options:

  • android:gravity — aligns the content of the element within the element itself. So can be set to topbottomcentercenter_vertical, etc.
  • android:layout_gravity — aligns the element within its parent. So to centre a button, use this; to centre text within a button, use android:gravity. Usable values are the same.
  • android:padding — set the padding in pixels for all four edges. You can also use paddingBottompaddingLeft, etc.
  • android:textColor — applies only to text elements, but you can use it to set the text colour.

In the image below, the top two elements have both android:gravity and android:layout_gravity set to center; the button has only android:gravity set to center. So the text is centred within the button but the button itself is not centred.

android linearlayout

When setting colors, you’ll need to either reference the Android built-in colours (note that many of the more interesting colours were only introduced with API 14, Ice Cream Sandwich):

<TextView ... android:textColor="@android:color/holo_green_dark" ... />

or to create your own colour with a res/values/colors.xml file:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="blue">#0000FF</color>
</resources> 

and refer to that:

<TextView ... android:textColor="@color/blue" ... />

For the (very long) full list of attributes for a given element, check out the API for that element. (Here’s the list for TextView, for example.) You can use XML attributes to set a field to have phone number input (rather than standard text), or to show dots instead of letters, as with a password field, or to automatically convert URLs into clickable links… check out the API for much, much more.

One final note on the android:id attribute, which we’ve already used in previous tutorials. When creating an ID for a new element, the usual format is @+id/name. The + indicates that it’s a new ID, and a new resource integer will be created for it at the next compile. For example:

 <EditText android:id="@+id/nameEditText" ... />

You’ll need this if you want to refer to the element in your code (for example, to get a value that the user inputs into an EditText box).

Nesting layouts

Finally, it’s possible to nest LinearLayouts within one another. This will get you a horizontal row of buttons at the bottom of a vertical LinearLayout, as in the image below the code:

<LinearLayout ... >
  <TextView ... />
  <EditText ... />
  <LinearLayout
    android:layout_gravity="center" 
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"  >    
android-linearlayout-6 <Button android:layout_width="150dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" android:padding="5dp" android:gravity="center" android:text="@string/setName" /> <Button android:layout_width="150dp" android:layout_gravity="center" android:layout_height="wrap_content" android:layout_weight="1" android:padding="5dp" android:gravity="center" android:text="@string/clearName" /> </LinearLayout> </LinearLayout>

Note that to center the buttons within the bottom row, the surrounding LinearLayout must be centered in its parent (with android:layout_gravity), as well as the buttons themselves centred, and their weight both set to 1. With more complicated layouts like this, you will often need to experiment a bit with the settings to get exactly the look you want. Make sure, of course, to check your layout on multiple devices; in a later tutorial we’ll look at developing for best appearance on multiple devices.

The Kubuntu Team and a Partner Now Offer Commercial Support

Kubuntu, which marries the ever popular Ubuntu Linux distribution with the KDE graphical interface, is popular with lots of individual users, but it also apparently has a foothold in the business world. So much so, in fact, that the Kubuntu team is now in partnership with Emerge Open to offer commercial support packages for businesses. Here are the details.

The specific support packages are found on this page, and it looks like they are not cheap. The costs of the support offerings are supplied in British pounds. Businesses can buy a single hour of support time for £80, and for more extended needs, there’s also a one-day option for £500, which earns you eight hours of support.

 

 
Read more at Ostatic