Category: Development

  • September 6, 2016 - Reynaldo Verdejo

    Wayland Uninstalled, the Easy Way

    I recently had to start looking at some GStreamer & Wayland integration issues and, as everyone would, commenced by trying to setup a Wayland development environment. Before getting my feet wet though, I decided to have a chat about this with Derek Foreman: our resident Wayland expert. This isn’t surprising because on our team, pretty much every task starts by having a conversation (virtual or not) with one of the field specialists in the group. The idea is to save time, as you might have guessed. This time around I was looking for a fairly trivial piece of info: Me – “Hey Derek, I have Wayland installed on my distro for some reason – I don’t really want to take a look at now – and I would like to setup an upstream (development) Wayland environment without messing it up. Do you have some script like GStreamer’s gst-uninstalled so I can perform […]

    Read More
  • August 30, 2016 - Mike Blumenkrantz

    Enlightenment Gadget Lifetime Management & Site Creation

    This article is part of a series of tutorials about Enlightenment: a compositing and stacking window manager. The previous tutorials covered the basics of gadgets, this article will explore some of the more complex aspects in more detail, specifically lifetime management and gadget site creation. Gadget Lifetime Management Gadgets are bound by two lifetimes: the gadget object’s lifetime, and the gadget instance lifetime. The gadget object is the visible display for a gadget and it is deleted when either the site is deleted, when the gadget instance is deleted, or when the gadget’s orientation changes. This lifetime can be tracked using the EVAS_CALLBACK_DEL callback on the created object. At the time of calling, this indicates that any memory related to the gadget object should be cleaned up, and any non-Elementary sub-objects should be deleted; the toolkit will not delete these automatically and they will leak without manual deletion. Once this […]

    Read More
  • August 26, 2016 - Tom Hacohen

    Hunting Down Dirty Memory Pages

    I recently had to debug a complex issue with memory page usage in EFL; you will likely never encounter this issue because it’s only relevant for shared libraries developers, and even then, not always. However, I think I think it is beneficial for everyone to be familiar with how things work at a lower level, so I decided to write this post. A few weeks ago I got a report about an increase in private dirty pages from our libraries that essentially caused increased memory consumption for every application linking to EFL. The main culprit was the object system (Eo), which I maintain, so I decided to take a look. For my first step I performed a manual review which led me to a mistake in related code that I eventually fixed. My fix improved the situation a bit, but the dirty page issue was mostly unchanged, so I investigated […]

    Read More
  • August 23, 2016 - Mike Blumenkrantz

    How Enlightenment Gadgets Handle Sizing

    This article is part of a series of tutorials about Enlightenment: a compositing and stacking window manager. This tutorial will provide further detail about aspects of Enlightenment’s new gadget system. Specifically, it will explore how sizing works in different contexts and how simple sizing policies can be leveraged to provide the best view of a gadget. Let’s start with the basics: what is sizing and why does it matter? Gadgets work a bit different than typical application widgets where one would simply pack them into a layout or use WEIGHT and ALIGN hints to fill portions of available regions. A gadget site uses an automatic sizing algorithm to fit itself into its given location. This ensures that gadgets are always the size the user has specified while also maintaining the best sizes for the gadgets so they will look the way the author intended. Finally, it also greatly simplifies the […]

    Read More
  • August 18, 2016 - Mike Blumenkrantz

    An Introduction to Enlightenment Gadget Orientation

    This article is part of a series of tutorials about Enlightenment: a compositing and stacking window manager. This tutorial will discuss gadget orientations. Orientation is a core concept that’s vital to understanding how a gadget will be displayed to the user, and it can improve the look of gadgets while also simplifying various parts of the code. In this context, orientation can be thought of as hints the gadget owner provides to the gadget that can be used to provide a more specific view of the gadget, based on it’s location. There are two components to orientation within the gadget system: the orientation enum and the anchor enum. Here is the orientation enum:

    This indicates the axis on which gadgets are positioned. In a horizontal taskbar-style layout E_GADGET_SITE_ORIENT_HORIZONTAL is used, whereas E_GADGET_SITE_ORIENT_VERTICAL would indicate a vertical layout similar to the bar style in Ubuntu’s Unity environment. E_GADGET_SITE_ORIENT_NONE is different; […]

    Read More
  • Open source communities can be vast, have an extremely fast rate of development, and have numerous companies and individuals who influence the project’s direction. Because of this diversity and speed it can be very easy for a company’s contributions to be lost in the shuffle, and it’s vital for any company that wants to contribute significant code upstream to establish themselves within the community. We’ve worked hard to establish a strong open source engineering team here at Samsung, and we’ve learned a lot about what it takes to be successful at this along the way. Without further ado, here are 10 tips to help you improve your company’s success at contributing code to the an open source community. Hire key developers and maintainers from the community. This is a critical step that allows you to gain skills and expertise. Two or three people from any given project are enough to […]

    Read More
  • August 3, 2016 - Phil Coval

    How to Boot Tizen on ARTIK

    The fact that Tizen can be run on ARTIK is not the latest breaking news, considering it was previously demonstrated live at the 2015 Tizen Conference. There, the ARTIK project was also explained as an IoT platform of choice. Since then, ARTIK has become a new Tizen reference device, so here are a couple of hints that will help you test upcoming Tizen release on this hardware. First let me point out that Tizen’s wiki has a special ARTIK category, where you’ll find ongoing documentation efforts, you’ll want to bookmark this page. In this article, I will provide a deeper explanation of how to use the bleeding edge version of Tizen:3.0:Common on ARTIK10, and how to start working on this platform. As explained in my previous Yocto/meta-artik article, I suggest you avoid using the eMMC for development purposes; for this article I will boot the ARTIK from an SDcard. In […]

    Read More
  • August 1, 2016 - Javier Martinez Canillas

    Samsung OSG Contributions to Linux Kernel 4.7

    Linux 4.7 was released on July 27, 2016; in this release, 5 engineers from the Samsung Open Source Group (OSG) contributed 81 patches that modified 585 lines of code in different Kernel subsystems. The following list is all of the OSG engineers that contributed to this release and the number of changesets and lines of code as reported by Jonathan Corbet and Greg Kroah-Hartman’s gitdm tool. OSG developers by changesets Javier Martinez Canillas 40 49.4% Mauro Carvalho Chehab 19 23.5% Luis de Bethencourt 15 18.5% Stefan Schmidt 4 4.9% Shuah Khan 3 3.7% OSG developers by changed lines Mauro Carvalho Chehab 242 41.4% Javier Martinez Canillas 181 30.9% Stefan Schmidt 90 15.4% Luis de Bethencourt 62 10.6% Shuah Khan 10 1.7% OSG Contributions to This Release For this release, Mauro contributed some fixes for the Media Controller Framework (MC) next generation, including a bug with the media device locking scheme […]

    Read More
  • July 11, 2016 - Mike Blumenkrantz

    How to Create Enlightenment Gadgets

    Creating desktop widgets, aka “gadgets,” has never been easier for Enlightenment enthusiasts than it is after the E21 release. The new E_Gadget system provides an updated API for integrating objects into the compositor, removing most of the overhead from the E_Gadcon system. This makes writing gadgets nearly identical to ordinary application writing. This post will serve as an introduction on the topic of writing gadgets with a focus on the basics; it will use the Start gadget as a reference. How to Create a Gadget The first step to integrating a new gadget is to add the new gadget type to the subsystem so the user can access it. This is done with the following function:

    This function coincides with related callbacks:

    Using e_gadget_type_add, a developer can implement gadgets of type, calling callback to create the gadget object, and optionally providing wizard callback to run configuration options for […]

    Read More
  • July 6, 2016 - Bryce Harrington

    Wayland’s Upcoming Idle Behavior Inhibition

    The Inhibited Wayland Desktop – Part 2 This article is part two of a two part series on screen inhibition in Wayland. Part 1 can be read here. In the first part of this blog series, I drilled into how screensaving, screen power management, and locking are designed to work in the Wayland protocol and how Weston implements the functionality. Now it’s time to take a look at the newly-proposed idle behavior inhibition. Idle inhibition enables client applications to disable the idle behavior from being triggered while the application is running. For compositors that support this protocol extension, clients can make an API call to create an ‘inhibitor object’ associated with one of their surfaces. The inhibition request lasts for this object’s lifetime, so if the client exits, crashes, deletes the inhibit object or the surface, or otherwise becomes invalid, the screensaver will be restored to its normal state. The […]

    Read More
1 5 6 7 8 9 17