Home Blog Page 769

What Employers Want in an Open Source Applications Developer

As an applications developer, you are a problem solver. You design, implement and support next-generation applications that are utilized to meet company needs. You offer solutions to drive overall business performance and success. It should come as no surprise then that you are a hiring priority, as companies are in the market for professionals who can help them solve real-world problems.

Open source developers are in high demand.
Developers are the most sought after open source professionals, with 74 percent of hiring managers seeking developers, according to the most recent Open Source Jobs Report from Dice and The Linux Foundation.

While in popular demand, it doesn’t mean you can’t ignore what’s trending in tech. As companies look to be more “open,” they need applications developers who are not only familiar with emerging open source technologies, but who are experts in writing code and finding valuable insights through data mining.

With the bar set high in terms of what employers expect, it is important to educate yourself on what specific skillsets companies are looking for from an applications developer. This not only will allow you to grow and move up the ranks within your current company, but it will make you more marketable when looking to change employers.

Below are just a few of the most sought after skills employers are requesting on Dice when in the market for an open source applications developer.*

  1. Big Data: Developing and running applications requires using large amounts of data. For this reason, companies need applications developers who have experience working with Big Data technologies, like Hadoop or Apache Spark, which work to help collect, process and analyze huge data sets. For those less acquainted with Big Data, it may be wise to get yourself up to speed on this skillset. Professionals with Big Data expertise earn $121,328 on average in the United States and are amongst the highest paid professionals, according to Dice’s latest annual salary survey.

  2. Cloud: With the rise of cloud computing, you are seeing more and more companies looking for open source professionals with cloud expertise. In the 2016 Open Source Jobs Report, 51 percent of hiring managers surveyed said knowledge of cloud technologies has the biggest impact on their open source hiring decisions. OpenStack, in particular, is one cloud-related skill that is gaining momentum, with e-commerce and security companies alike looking for open source professionals with familiarity with this cloud-based operating system.  

  3. Mobile: For most companies today, understanding mobile isn’t so much an option as it is a requirement. Employers on Dice are looking for applications developers with a strong working knowledge of mobile coupled with UI/UX experience, solid programming background (i.e. Java and C/C++) and project management skills.

  4. JavaScript: JavaScript is a core programming language that employers want in an applications developer. On any given day, there are over 13,000 JavaScript job postings on Dice, which represents approximately 15 percent of Dice’s overall job count. Expertise in JavaScript is also needed when working with open-source frameworks like AngularJS.

While these skillsets are a good jumping off point if you are looking to further develop yourself as an open source applications developer, there is always more you can learn.  According to the 2016 Open Source Jobs Report, free online tutorials are the most common method used by open source professionals to keep their skills up-to-date, but there is also other formal training you can rely upon to gain additional skills expertise, such as meet-ups or instructor-led courses.

In the end, whichever method(s) you choose to brush up on or expand your skills base doesn’t really matter. What matters is that you are continuously learning and keeping current on what’s trending in tech. As a problem solver, you need to have a keen familiarity with the latest platforms and skills in order to offer up the best solutions.

* Applications Development is a broad job category that encompasses a wide range of job titles including but not limited to “applications developer,” “software development engineer,” “software developer,” “mobile developer” and “big data engineer.”

Yuri Bykov manages Data Science at Dice.

linux-com_ctas_may2016_v2_opensource.jpg?itok=Hdu0RIJn

Open Source Cross-platform Development Methods and Tools

Ultimately, I realized I wanted to develop software, and really wanted to develop in a native language where I had access to the hardware. At the time I used Linux as my main operating system, but also worked with people using Windows and Mac OS X on a regular basis. I wanted them to be able to use the software I developed, and didn’t want to write it three times. This was when I started aligning on a software stack, largely influenced by KDE and the opportunity I had to do a Google Summer of Code project with them. It is now about nine years since I did that Google Summer of Code project, and I am largely using the same stack with some additions/updates to facilitate collaborative, open source, cross-platform development.

C++ is a standardized language with a number of powerful open source compilers and many proprietary compilers that span everything from embedded systems to the biggest supercomputers on the planet. In my work, we regularly target both extremes of the spectrum as well as a lot of work in the desktop/laptop space.

Read more at OpenSource.com

Platform9’s Managed Kubernetes Available in Beta

Platform9, a software-as-a-service (SaaS) startup founded by former VMware engineers, is making its managed Kubernetes platform available in beta to potential customers. The enterprise-ready platform is intended to make it easier for users to deploy and manage Docker containers and also to orchestrate containerized workloads.

Platform9 uses a fork of the OpenStack cloud platform. The startup’s product allows companies to turn private servers into in-house versions of public cloud services like Amazon‘s. Last year the company debuted a virtual appliance that integrates its OpenStack controller service with VMware vSphere services.

Read more at SDxCentral

Home Assistant: The Python Approach to Home Automation [Video]

Several home automation platforms support Python as an extension, but if you’re a real Python fiend, you’ll probably want Home Assistant, which places the programming language front and center. Paulus Schoutsen created Home Assistant in 2013 “as a simple script to turn on the lights when the sun was setting,” as he told attendees of his recent Embedded Linux Conference and OpenIoT Summit presentation, “Automating your Home with Home Assistant: Python’s Answer to the Internet of Things.”

Schoutsen, who works as a senior software engineer for AppFolio in San Diego, has attracted 20 active contributors to the project. Home Assistant is now fairly mature, with updates every two weeks and support for more than 240 different smart devices and services. The open source (MIT license) software runs on anything that can run Python 3 — from desktop PCs to a Raspberry Pi, and counts thousands of users around the world.

Like most automation systems, Home Assistant offers mobile and desktop browser clients to control smart home devices from afar. It differs from most commercial offerings, however, in that it has no hub appliance, which means there are no built-in radios. You can add precisely which radios you want, however, using USB sticks. There’s also no cloud component, but Schoutsen argues that any functionality you might sacrifice because of this is more than matched by better security, privacy, and resiliency.

“There is no dependency on a cloud provider,” said Schoutsen. “Even when the Internet goes down, the home doesn’t shut down, and your very private data stays in your home.”

Schoutsen did not offer much of a promo in his presentation, but quickly set to work explaining how the platform works. Since Home Assistant is not radically different from other IoT frameworks — one reason why it interfaces easily with platforms ranging from Nest to Arduino to Kodi — the presentation is a useful introduction to IoT concepts.

To get a better sense of Home Assistant’s strengths, I recently asked Schoutsen for his elevator pitch. He highlighted the free, open source nature of the software, as well as the privacy and security of a local solution. He also noted the ease of setup and discovery, and the strength of the underlying Python language.

“Python makes it very easy to extend the system,” Schoutsen told me. “As a dynamic language, it allows a flexibility that Java developers can only dream off. It is very easy to test out and prototype new pieces on an existing installation without breaking things permanently. With the recent introduction of MicroPython, which runs on embedded systems as Arduino and ESP8266, we can offer a single language for all levels of IoT: from sensors to automation to integration with third-party services.”

In Schoutsen’s ELC 2016 presentation, he described how Home Assistant is an event-driven program that incorporates a state machine that keeps track of “entities” — all the selected devices and people you want to track. Each entity has an identifier, a state condition, and attributes. The latter describes more about the state, such as the color and intensity of the light on a Philips Hue smart bulb.

To integrate a Philips Hue into the system, for example, you would need to use a light “component,” which is aware of the bulb and how to read its state (off or on). Home Assistant offers components for every supported device or service, as well as easy access to component groups such as lights, thermostats, switches, and garage doors. Setup is eased with a network discovery component that scans the network, and if you have a supported device, sets it up automatically. 

The software is further equipped with a service registry, which provides services over the event bus. “We can register the turn-on command for a light, and have it send an email or SMS,” said Schoutsen. “A timer can send a time change event every second, and a component can ask to be notified at a particular time, or in intervals. Based on time change events, it will trigger the callback of the components.”

Each component writes its state to the state machine, emitting a state change event to the event bus. The light component would register its turn on service inside the service registry so that anyone could fire an event to the event bus to turn on the light,” said Schoutsen.

You can easily integrate a light component with a motion detector component using an automation component. This would listen to the motion detector events, and fire a “turn light on” event to the event bus, which in turn would be forwarded to the service registry. The registry would then check to see that the light component can handle the event. “Automation components can listen for events, observe certain attribute states or triggers, and act on them,” explained Schoutsen.

Another component type handles presence detection. The platform can check the router to see which phones are connected in order to see who is home,” said Schoutsen. “Other components are responsible for recording event and state history, or for entity organization — grouping multiple entities and summarizing their state.” Components are available for integrating third party services, such as MQTT or IFTTT, and other components export data to external databases and analysis tools.

Schoutsen also explained concepts such as a “platform” layer that sits above the entity components. Each platform integrates an “abstract base class,” which “acts as the glue between the real device and the one represented in Home Assistant,” said Schoutsen. Later, he ran through a code example for a basic switch and explored the use of trigger zones for geofencing.

As Schoutsen says, Home Assistant is “gaining a lot of traction.” Check out the complete video below to see what happens when Python meets IoT.

https://www.youtube.com/watch?v=4-6rTwKl6ww?list=PLGeM09tlguZRbcUfg4rmRZ1TjpcQQFfyr

linux-com_ctas_may2016_v2_elc.png?itok=QQNwiljU

Interested in sharing your expertise, knowledge and ideas on embedded Linux and IoT with the open source community? Embedded Linux Conference + OpenIoT Summit Europe 2016 will be held on October 11-13 in Berlin, Germany. The call for speaking proposals is open until June 26, 2016. Submit your proposal now!

Field notes – ElasticSearch at Petabyte Scale on AWS

I manage a somewhat sizable fleet of ElasticSearch clusters. How large? Well, “large” is relative these days. Strictly in ElasticSearch data nodes, it’s currently operating at the order of:

  • several petabytes of provisioned data-node storage
  • thousands of Xeon E5 v3 cores
  • 10s of terabytes of memory
  • indexing many billions of events a day (24/7/365)

And growing. Individual clusters tend to range anywhere from 48TB to over a petabyte. When I said “petabyte scale”, that includes individual clusters:

Read more at Grey-Boundary

HPE Launches Preintegrated Software Stack for High Performance Computing

HPE’s rollout for HPC deployments is designed to popularize the hardware within more enterprises.

According to HPE, its approach to HPC is designed to simplify deployments with a software defined approach. The lead announcement for HPE is its Core HPC Software Stack that includes cluster management tools. The preintegrated stack is a software suite that combines open source applications, dev tool, libraries and cluster management. The software is designed to enable administrators, engineers and researchers deploy various HPC environments.

HPE is also rolling out new systems–Apollo 2000 and Apollo 6000–to go along with its Core HPC Software Stack. 

Read more at ZDNet.

93 Petaflop Chinese Supercomputer is World’s Fastest on Latest TOP500 List

A new machine called Sunway TaihuLight in China is the fastest supercomputer on the planet. Announced today with the release of the latest TOP500 list, the 93 Petaflop machine sports over 10.6 Million compute cores.

China maintained its Number 1 ranking on the 47th edition of the TOP500 list of the world’s top supercomputers, but with a new system built entirely using processors designed and made in China. Sunway TaihuLight is the new No. 1 system with 93 petaflop/s ( quadrillions of calculations per second) o n the LINPACK benchmark.

Read more at insideHPC

5 Reasons to Install Linux on Your Laptop

You can choose something other than MacOS or Windows 10 when it comes to an operating system for your computer. If you’re prepared to be a little more adventurous, Linux has plenty of great features that will save you time and make working a little less dull. The best part is that Live Installations allow you to try out the software before you wipe your entire hard drive.

Linux comes in various flavors called distros (distributions) and it’s up to you to determine which one you opt for. Ubuntu is by far the most popular desktop distro and is a good place to start for beginners, so we’ve focused on that one here, but once you’ve grasped the basics feel free to explore the pros and cons of some others out there.

Read more at Gizmodo

Serverless Microservices (and Minimal Ops): Current Limitations of AWS Lambda

At the heart of a microservice is the running code itself. Microservices also contain their own runtime, so they don’t need to run on an ESB.  Using a serverless approach, you can distribute the workloads to optimize runtime. Microservices can be used to create this architecture, and scale independently to meet outward-facing API interface agreements. Microservices architectureencourages to build small, focused subsystems which can be integrated into the whole system preferably using REST protocol.

With any change in product development, whether that be the move to Agile / Scrum planning practices or new methods for DevOps, a business can expect to incur a significant upfront investment in changing its patterns and system architecture. 

Read more at DZone

5 Best Linux Package Managers for Linux Newbies

One thing a new Linux user will get to know as he/she progresses in using it is the existence of several Linux distributions and the different ways they manage packages. Package management is very…

[[ This is a content summary only. Visit my website for full links, other content, and more! ]]