• The past week or so has seen a significant amount of progress in the gadget backend of Enlightenment, due in no small part to the constant poking and prodding from Stephen Houston: our newest Samsung OSG Intern. As he mentioned in his post, we’ve known each other for quite some time now, so mentoring him has allowed both of us to skip over most of the pleasantries and get down to the code. Establishing a Mutually-Beneficial Partnership This type of internship is certainly new to me; seldom do I get the opportunity to sponsor and mentor a member of the community who has already been a contributor for such a long time. Given that I’d been the only one to use the new gadget API released in Enlightenment v21, I was curious to see what others would think after spending some time developing on top of it; soliciting feedback on […]

    Read More
  • Enlightenment Logo

    September 29, 2016 - Stephen Houston

    A Venture Into Enlightenment’s Gadget API

    In my last post, I mentioned that my internship would revolve around creating gadgets using the new Enlightenment gadget API. After several conversations with Mike Blumenkrantz, the creator of the gadget API and my mentor for this internship, we determined the Pager module is in a state that requires minimal work to be converted to the new gadget API. Therefore, converting Pager to the new API would allow me to focus on learning how the new gadget system works better than writing a gadget from the ground up. Mentors are a Great Resource for Learning Something New Before I continue with details about the Pager API conversion, I think it would be prudent to explain how this internship works behind the scenes. Mike and I have known each other for quite a while as we’ve both worked on Enlightenment and EFL for years. In fact, when Mike joined the project, […]

    Read More
  • Embedded data structures are a common occurrence in Linux Kernel code. Use-after-free errors can easily creep in when they include multiple ref-counted objects with different lifetimes if the data structure is released prematurely. This article will explore some of the problems commonly encountered with lifetime management of embedded data structures when writing Kernel code, and it will cover some essential steps you can follow to prevent these issues from creeping into your own code. What Makes Embedded Structure Lifetime so Complicated? Let’s look at  a few examples of embedded structures. Structure A embeds structure B, structure B embeds structure C, and structure C embeds structures D and E. There is no problem as long as all these structures have identical lifespans and the structure memory can be released all at once. If structure D has a different lifespan overall or in some scenarios, then when structure A goes away, structure […]

    Read More
  • This article is the first in a series on changes to Linux Kernel documentation. The Linux Kernel has one of the biggest communities in the open source world; the numbers are impressive: over 4,000 contributors per year, resulting in about 8 changes per hour. That results in 4,600 lines of code added every day and a major release every 9-10 weeks. With these impressive numbers, it’s impossible for a traditional printed book to follow the changes because by the time the book is finally written, reviewed and published, a lot of changes have already merged upstream. So, the best way to maintain updated documentation is to keep it close to the source code. This way, when some changes happen, the developer that wrote such changes can also update the corresponding documents. That works great in theory, but it is not as effective as one might think. The Old Methods of […]

    Read More
  • Wayland

    September 20, 2016 - Bryce Harrington

    What’s New in Wayland and Weston 1.12?

    The 1.12 release of the Wayland core protocol and its reference compositor Weston will be later today; this post will give an overview of the major changes since the last release. New Features and Improvements to Wayland The Wayland core protocol documentation has received numerous refinements to improve its clarity and consistency. Along with this, many blank areas of the protocol documentation have been fleshed out. A new wl_display_add_protocol logger API provides a new, interactive way to debug requests; along with this are new APIs for examining clients and their resources. This is analogous to using WAYLAND_DEBUG=1, but more powerful since it allows run time review of log data such as through a UI view. There have been improvements to how the protocol XML scanner handles version identification in protocol headers. This enables better detection and fallback handling when compositors and clients support differt versions of their protocols. New Features […]

    Read More
  • Enlightenment Logo

    September 19, 2016 - Stephen Houston

    Introducing Stephen Houston: Our Newest Intern

    As the newest developer to have the privilege of taking part in Samsung’s Open Source Group internship program, I would like to give a brief introduction of myself, my experience, and my focus with Samsung. I am a software developer and analyst who holds a bachelor’s degree in Computer Information Systems, and I’m currently working towards a Master of Business Administration. I’ve been an open source developer since I was 16 (a long time ago), and I have spent the majority of my time writing code related to the Enlightenment project. When I first stumbled across Enlightenment 17 in the early 2000’s, there was a widget library at the time called Ewl. The creator of Ewl, Nathan Ingersoll, took me under his wing and began teaching me C and how to use Ewl and other Enlightenment Foundation Libraries (EFL). I used this knowledge to create and develop Ephoto: an EFL […]

    Read More
  • Teach Open Source

    September 16, 2016 - Mike Blumenkrantz

    Announcing the Samsung Open Source Group Internship Program

    Today, I’m switching gears from my usual technical posts to introduce a new initiative that we’re rolling out at the Open Source Group: the OSG Internship Program. Since the start of our team in 2013 we’ve been involved in a number of projects in different areas of the open source ecosystem. In the process we’ve come across a number of great community members, but we’ve also realized that our team isn’t large enough to tackle all of the technical challenges that we’re facing in the open source projects we work on. At Samsung, we greatly appreciate the collaborative nature of our relationship with these communities, and all the more so since many long-term contributors are hobbyists and students. Our appreciation runs deep for contributors who are working in these communities on their own time, particularly those who work collaboratively with us as we are preparing for future products. From time […]

    Read More
  • Consistency is everything. If launching open source projects is part of your job, it is incredibly helpful to have a clear, consistent, and repeatable process for open sourcing code and building a project. Why? There are a few reasons. For one, it increases your odds of success if you can identify the parts of the process that worked well before, and repeat them. Project launches are about people as much as technology. There are actions that attract others, and actions that drive others away; it’s beneficial to remember which is which. If you can’t convince others to join and use your project, you may as well just post the code and be done with it. Another major reason is time. I seriously doubt I’m alone in observing that the typical “We’re launching an OSS project next month! Um, where do we start?” emails usually come with little warning. Most of the time […]

    Read More
  • Enlightenment Logo

    September 8, 2016 - Mike Blumenkrantz

    How to Create an Enlightenment Module

    This article is part of a series of tutorials about Enlightenment: a compositing and stacking window manager. Module writing is one of the primary ways to expand the functionality of Enlightenment. By dynamically loading modules, the compositor is able to import code that has access to most Enlightenment internals. This allows developers to modify the desktop environment in nearly any way they can imagine, from new gadgets to compositor effects. This article will take a look at the basics of creating an Enlightenment module. The first part of creating a module is setting up a .desktop file for it. This allows the module to be visible for users within the module configuration dialog. An example file looks something like this:

    The ‘Name’ is the user-visible name of your module, and the ‘Icon’ is the filename of the .edj file which accompanies the module. The ‘Comment’ field provides supplementary information […]

    Read More
  • Wayland

    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
1 2 3 17