Skip to content
Permalink
Browse files

Merge pull request #873 from kylekirkby/relevant_resources_on_enginee…

…ring_pages

Adding relevant latest resources to the Engineering Pages
  • Loading branch information...
kylekirkby committed Nov 1, 2019
2 parents 7186d8e + 0ee3f70 commit ca18d1b394782e6cadd78ba1fb13c62b79a370a0
@@ -168,7 +168,7 @@ defaults:
values:
layout: landing-page
css-package: landing-page
js-package: work
js-package: engineering-landing-page
- scope:
path: ""
type: "services"
@@ -6,6 +6,7 @@ keywords: Linaro, Aarch64, Performance, Kernel, assembly, Arm, Linux, hardware
image: /assets/images/content/Machine col.svg
members:
key: mi-incubator
related_resources_tracks: AI/Machine Learning, Machine Learning/AI, AI and Neural Networks on Arm Summit
related_tags:
- Automotive
- ML
@@ -32,6 +33,8 @@ flow:
text: >
The initial focus is on the inference side on Cortex-A application processors with Linux and Android, both edge computing and smart devices. As part of the remit, the team will collaborate on a definition of API and modular framework for an Arm runtime inference engine architecture based on plug-ins supporting dynamic modules and optimized shared Arm compute libraries.
- row: main_content_row
- row: custom_include_row
source: engineering_related_resources.html
---

Below are some of the Artificial Intelligence related sessions from the previous [Linaro Connect](https://connect.linaro.org):
@@ -1,11 +1,12 @@
---
title: Autonomous Vehicles
description: |-
Open source will play an essential part in bringing smart, connected, always up to date and secure software to vehicles and transportation systems.
Open source will play an essential part in bringing smart, connected, always up to date and secure software to vehicles and transportation systems.
keywords: Linaro, Autonomous, Stable, Kernel, Core, Android, Open Source, OS, Autonomous Vehicles, Autoware
image: /assets/images/content/AutoCol.svg
members:
key: autonomous-vehicles-incubator
related_resources_tracks: Autonomous Vehicles, Autonomous Vehicle
related_tags:
- Automotive
- ML
@@ -16,7 +17,7 @@ jumbotron:
description: ""
background-image: /assets/images/content/autonomous-driving-bg.jpg
---
Open source will play an essential part in bringing smart, connected, always up to date and secure software to vehicles and transportation systems.
Open source will play an essential part in bringing smart, connected, always up to date and secure software to vehicles and transportation systems.
Whilst a lot of this software exists, bringing it together into a system comprising entertainment and safety critical subsystems is a big task, essentially a retooling of software in automotive.

The Arm ecosystem is fast and adaptable and, as it engages with the future automotive industry, it will bring complex and innovative hardware and software together. Linaro’s aim is to provide a collaborative space that will allow the automotive industry, from equipment suppliers to automotive manufacturers to work on common problems.
The Arm ecosystem is fast and adaptable and, as it engages with the future automotive industry, it will bring complex and innovative hardware and software together. Linaro’s aim is to provide a collaborative space that will allow the automotive industry, from equipment suppliers to automotive manufacturers to work on common problems.
@@ -1,16 +1,17 @@
---
title: Consumer
description: |-
Most that are familiar with Android might think of consumer phones that are available in the average retail shop and naturally think that Google and the creator of the phone are the ones that perform all of the work to create the product. In reality, a number of important pieces of software in Android are open source and developed in the open. The Linux kernel is inside of all Android phones.
Most that are familiar with Android might think of consumer phones that are available in the average retail shop and naturally think that Google and the creator of the phone are the ones that perform all of the work to create the product. In reality, a number of important pieces of software in Android are open source and developed in the open. The Linux kernel is inside of all Android phones.
keywords: Linux, Arm, Mobile, Android, IoT, toolchains, ecosystem, phones, tablets, wearables, LCG, LMG
image: /assets/images/content/LCG.png
members:
key: lcg
related_resources_tracks: Android
related_tags:
- LMG
- LCG
- Linaro Mobile Group
- Android
- Android
other_projects:
- name: Linaro Confectionary Release (LCR) and AOSP
url: https://wiki-archive.linaro.org/LMG/AndroidEngineeringDelta
@@ -27,11 +28,11 @@ jumbotron:
---
Open source is a key ingredient of Android

Most that are familiar with Android might think of consumer phones that are available in the average retail shop and naturally think that Google and the creator of the phone are the ones that perform all of the work to create the product. In reality, a number of important pieces of software in Android are open source and developed in the open. The Linux kernel is inside of all Android phones.
Most that are familiar with Android might think of consumer phones that are available in the average retail shop and naturally think that Google and the creator of the phone are the ones that perform all of the work to create the product. In reality, a number of important pieces of software in Android are open source and developed in the open. The Linux kernel is inside of all Android phones.

In order to stay ahead of security and other issues, the Linux kernel requires a steady stream of patches from the upstream kernel community. These fixes are compiled, tested and released through the Long Term Support (LTS) kernel community. The LTS kernel community targets a wide variety of hardware but most kernel developers do not actively develop for mobile devices. As such, the ARM ecosystem needs to be particularly proactive.

Linaro, together with the ARM SoC vendors and especially Google, through Project Sharp, validate LTS fix streams to ensure they do not contain regressions before these fixes make their way into the Android Common Kernel and then onto consumer devices. This is just one example of how companies collaborating through Linaro make for better end products and better open source for future products.
Linaro, together with the ARM SoC vendors and especially Google, through Project Sharp, validate LTS fix streams to ensure they do not contain regressions before these fixes make their way into the Android Common Kernel and then onto consumer devices. This is just one example of how companies collaborating through Linaro make for better end products and better open source for future products.

Linaro’s collaboration with members involved in Android(™) related technologies is done through the Linaro Consumer Group. There are three engineering teams that work under the direction of the LCG: ART, LCG-Kernel and Android. Each team is focused on specific strategic efforts.

@@ -40,4 +41,4 @@ The Android team is actively involved with changes that either add functionality
The ART team is engaged with the Android Runtime portion of the Android Open Source Project (AOSP), creating optimizations that benefit both Java and Kotlin apps. A typical optimization example would be examining a code sequence and emitting a more optimal sequence of Arm instructions to increase performance.

The LCG-Kernel team spans a couple of kernel related activities. It maintains the experimental/android-mainline-tracking branch which tracks the out of tree Android kernel patches on top of linux mainline. The team works to upstream patches to mainline and decreasing the backlog of out of tree patches. Through Project Sharp, it keeps close watch searching for kernel regressions in mainline, LTS and Android Common Kernels. This aids the many companies who are
utilizing LTS and Android Common kernels in their products. When regressions are detected, appropriate action is taken. Lastly, the team is deeply involved with member company developer boards running Android, helping to make the developer experience on AOSP first rate.
utilizing LTS and Android Common kernels in their products. When regressions are detected, appropriate action is taken. Lastly, the team is deeply involved with member company developer boards running Android, helping to make the developer experience on AOSP first rate.
@@ -12,6 +12,7 @@ other_projects:
url: /engineering/projects/openjdk/
- name: OpenStack
url: /engineering/projects/openstack/
related_resources_tracks: Data Center
related_tags:
- LDCG
- ldcg
@@ -73,4 +74,6 @@ flow:
text_content:
text: >
Developer Cloud - LDCG leads the initiative [Developer Cloud](https://linaro.cloud). The Arm architecture Developer Cloud allows members, their partners and the open source communities to implement, port and test server, cloud and IoT applications without substantial upfront hardware investment. Developers have access to popular development environments, such as Debian, CentOS, Ubuntu and RHEL. The Developer Cloud (based on OpenStack) employs Arm server platforms from Linaro members.
- row: custom_include_row
source: engineering_related_resources.html
---
@@ -13,6 +13,7 @@ related_tags:
- IoT
- LITE
members_key: ledge_members
related_resources_tracks: IoT and Embedded, IoT Fog/Gateway/Edge Computing
output: true
image:
path: /assets/images/content/LEDGE col.svg
@@ -5,6 +5,7 @@ youtube_playlist: https://www.youtube.com/watch?v=nWJDlg_kpOQ
members:
key: hpc-sig
image: /assets/images/content/HPCCol.svg
related_resources_tracks: HPC
jumbotron:
triangle-divider: true
description: ""
@@ -5,6 +5,7 @@ description: |-
keywords: Linux, Arm, LITE, Android, IoT, Kernel, ecosystem, tinification
members:
key: lite
related_resources_tracks: IoT and Embedded, IoT Fog/Gateway/Edge Computing
related_tags:
- lite
- LITE
@@ -17,7 +18,7 @@ youtube_playlist: https://www.youtube.com/playlist?list=PLKZSArYQptsMjCTIdpvcX5e
members_key: lite_members
output: true
image: /assets/images/content/LITE col.svg
releases:
releases:
- title: LITE Releases
url: https://releases.linaro.org/components/lite/
jumbotron:
@@ -0,0 +1,15 @@
{% if page.related_resources_tracks %}
<div class="row content-row" id="members-row">
<div class="container">
<div class="col-xs-12 text-center">
<h3>Latest Resources</h3>
</div>
<div class="col-xs-12 text-center">
<div id="related_resources" data-related-tracks="{{page.related_resources_tracks}}"></div>
</div>
<div class="col-xs-12 text-center m-t-40">
<a class="btn btn-primary" href="https://connect.linaro.org/resources/">View all</a>
</div>
</div>
</div>
{% endif %}
@@ -1,6 +1,7 @@
---
layout: base
css-package: landing-page
js-package: engineering-landing-page
---
{% if page.jumbotron.carousel-images %}
{% include carousel-header.html images=page.jumbotron.carousel-images %}
@@ -25,10 +26,10 @@ <h2>{{section.title}}</h2>
</div>
</div>
{% elsif section.format == "img-left" or section.format == "img-right" %}
<div class="col-xs-12 flex-center {% if section.format == "img-left" %}col-sm-5{% else %}col-sm-5 col-sm-push-7{% endif %} img-col
<div class="col-xs-12 flex-center {% if section.format == "img-left" %}col-sm-5{% else %}col-sm-5 col-sm-push-7{% endif %} img-col
{% if section.format == "img-left" %}img-col-left{% else %}img-col-right{% endif %}"
style="background-image: url({{section.image}});"></div>
<div class="col-xs-12 flex-center {% if section.format == "img-left" %}col-sm-7{% else %}col-sm-7 col-sm-pull-5{% endif %} text-col
<div class="col-xs-12 flex-center {% if section.format == "img-left" %}col-sm-7{% else %}col-sm-7 col-sm-pull-5{% endif %} text-col
{% if section.format == "img-left" %}text-col-right{% else %}text-col-left{% endif %}">
{% if section.title %}
<h3>{{section.title}}</h3>
@@ -75,4 +76,5 @@ <h3>Members</h3>
</div>
</div>
</div>
{% endif %}
{% endif %}
{% include engineering_related_resources.html %}
@@ -38,4 +38,59 @@
#members-row{
padding-top:40px;
padding-bottom: 40px;
}
}
#wrapper {
.resource_block_inner {
height:300px;
position: relative;
background-size: cover;
background-position: center center;
transition: all 200ms ease-in-out;
&:before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
height: 100%;
left: 0;
background-image: linear-gradient(to bottom right, #000, #000);
opacity: .7;
width: 100%;
z-index: 0;
}
&:hover {
transform:translateY(-3px);
-webkit-box-shadow: 0px 0px 30px 10px rgba(0,0,0,0.75);
-moz-box-shadow: 0px 0px 30px 10px rgba(0,0,0,0.75);
box-shadow: 0px 0px 30px 10px rgba(0,0,0,0.75);
}
h3 {
color:white;
z-index:2;
position: relative;
padding-top:30px;
padding-left: 15px;
padding-right:15px;
text-align: center;
}
small {
display: block;
color:white;
z-index:3;
position: relative;
font-size:14px;
font-weight:bold;
}
a.btn.btn-primary {
position: relative;
margin:2px;
margin-top:10px;
}
}
img.spinner{
position:relative;
margin-left:auto;
margin-right:auto;
}
}
@@ -0,0 +1,122 @@
var items = [];
function extractDateString(dateString) {
var rx = /(\d\d\d\d)\-(\d\d)\-(\d\d)/g;
var arr = rx.exec(dateString);
return arr[0];
}
// Sort function which takes the data array, property to sort by and an asc boolean.
function sort_by_date(a, b) {
return (
new Date(b.item_date_published).getTime() -
new Date(a.item_date_published).getTime()
);
}
// This takes and array of items and creates the neccessary page elements
function createPageElements(items) {
var page_elements = [];
var sorted_items = items.sort(sort_by_date);
$.each(sorted_items, function(key, val) {
// Create a new element for resource
var page_element = "<a href='" + val.item_url + "'>";
page_element += "<div class='col-xs-12 col-sm-4'>";
page_element +=
"<div class='resource_block_inner' style='background-image:url(" +
val.item_thumbnail +
")'>";
page_element += "<h3>" + val.item_title + "</h3>";
page_element +=
"<small>" + extractDateString(val.item_date_published) + "</small>";
page_element += "<small>" + val.item_event + "</small>";
if (
val.hasOwnProperty("item_presentation_url") &&
val.item_presentation_url !== undefined
) {
page_element +=
"<a class='btn btn-primary' href='" +
val.item_presentation_url +
"'>Presentation</a>";
}
if (val.hasOwnProperty("item_video_url") && val.item_video_url !== undefined) {
page_element +=
"<a class='btn btn-primary' href='" +
val.item_video_url +
"'>Video</a>";
}
page_element += "</div>";
page_element += "</div>";
page_element += "</a>";
page_elements.push(page_element);
});
return page_elements.slice(0, 9);
}

$(document).ready(function() {
// Check the related_resources div exists
if ($("#related_resources").length > 0) {
// Tracks to search resources for.
var required_tracks = $("#related_resources").data("related-tracks");
if (required_tracks.indexOf(",") > -1) {
required_tracks = required_tracks.split(",").map(function(item) {
return item.trim();
});
} else {
required_tracks = [required_tracks];
}
// Fetch relevant Connect resources
$.getJSON("https://connect.linaro.org/assets/json/connects.json", function(
data
) {
$.each(data, function(key, val) {
var start_date = new Date(val["start-date"]).getTime();
if (start_date < new Date().getTime()) {
// Get the JSON url for each Linaro Connect
var json_url =
"https://connect.linaro.org/assets/json/" +
val.id.toLowerCase() +
"/data.json";
$.getJSON(json_url, function(data) {
// Loop through all resources for specific connect
$.each(data, function(key, specific_resource) {
// Find resources that match the required tracks
if (specific_resource.hasOwnProperty("tracks")) {
// Loop over required tracks
$.each(required_tracks, function(key, val) {
// Check that the resource contains one of the required tracks
if (specific_resource.tracks.indexOf(val) > -1) {
var event = specific_resource.event_id.toUpperCase();
// Create a new item
var item = {
item_title: specific_resource.title,
item_url: specific_resource.url,
item_video_url: specific_resource.youtube_video_url,
item_thumbnail: specific_resource.thumbnail,
item_event: "Linaro Connect " + event,
item_date_published: specific_resource.date_published
};
if (
specific_resource.hasOwnProperty(
"amazon_s3_presentation_url"
)
) {
item["item_presentation_url"] =
specific_resource.amazon_s3_presentation_url;
}
// Add item to the items array
items.push(item);
// Break out of each loop
return false;
}
});
}
});
});
}
});
});
}
});
// Display resources once the ajaxStop event is fired
$(document).ajaxStop(function() {
var page_elements = createPageElements(items);
$("#related_resources").html(page_elements);
});
@@ -0,0 +1,8 @@
//= require vendor/jquery
//= require vendor/bootstrap
//= require vendor/cookieconsent
//= require vendor/lazysizes

//= require app/search
//= require app/main
//= require app/engineering-landing-page

0 comments on commit ca18d1b

Please sign in to comment.
You can’t perform that action at this time.