cerner / cerner.github.io Goto Github PK
View Code? Open in Web Editor NEWCerner Engineering blog
Home Page: https://engineering.cerner.com
Cerner Engineering blog
Home Page: https://engineering.cerner.com
A new DevCon 2020 playlist is been created, and it would be good to have that as another highlighted playlist on the site (would be right below the main tech talks that we have hosted).
As this comment notes, quite a few dependencies in this repo are pretty out of date.
Some of the major dependencies are
Other gems
bundle outdated --only-explicit --filter-major
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Outdated gems included in the bundle:
* compass (newest 1.0.3, installed 0.12.2, requested ~> 0.12.2) in groups "development"
* haml (newest 5.1.2, installed 3.1.8, requested ~> 3.1.7) in groups "development"
* jekyll (newest 4.0.0, installed 0.12.1, requested ~> 0.12) in groups "development"
* json (newest 2.3.0, installed 1.8.6, requested ~> 1.8) in groups "development"
* liquid (newest 4.0.3, installed 2.3.0, requested ~> 2.3.0) in groups "development"
* pygments.rb (newest 1.2.1, installed 0.3.7, requested ~> 0.3.4) in groups "development"
* rake (newest 13.0.1, installed 0.9.6, requested ~> 0.9) in groups "development"
* sinatra (newest 2.0.8.1, installed 1.4.8, requested ~> 1.4.2) in groups "default"
* stringex (newest 2.8.5, installed 1.4.0, requested ~> 1.4.0) in groups "development"
We were discussing amongst a few of us and were wondering if it is worth the effort to update these dependencies, or if it's time to consider moving to something newer. The idea of moving to hugo has been thrown around a bit if we just want to get onto something newer and easier to install/run. We've also talked a bit about moving to something that would allow for blog posts to be created via a CMS (whether headless and triggering builds of a static site or a fully managed blogging platform).
Some of these options are going to be way more work than others. It's probably important to understand what the groups goals are. For example unless we want to overhauling the look and feel, it might be good to stay on our old version of bootstrap so we don't have to open that can of worms. I think the cheapest option by far is going to be to just upgrade our dependencies, but i haven't done much investigation and maybe upgrading from jekyll 0.12 to jekyll 4 is going to be just as hard as moving to a new framework. It would probably depend on the passivity of the plugins.
Ruby 2.2.3 is out of date and we should update to a newer version to build off of
I noticed in a few places, namely on the Culture page, that a superscript 1 is being used instead of an apostrophe. For example:
"We also know that it¹s important"
The Tech Talks page has prescribed channels for each DevCon. Once newer content is pushed for DevCons in the past month, we will want to make this advertised in our site.
We have been maintaining the site with Jekyll, but that has a burden of maintaining several of the dependencies (Ruby and all the related gems). We are wanting to make it easier for other Cerner engineers to contribute to this for generating content. It is desirable to evaluate to moving to using Hugo for our site generation for the following benefits:
Preview of this site can be seen on this draft PR that is collected all the changes: #147
Update all the images to reference the figure short code for image processing - @alex-bezek
Update to all Hugo frontmatter, which includes assigning to "authors" array, vs "author"
Update theme for image processing for the "images" frontmatter assignment to assist with nested directories of images (allowing images hosted in folders per blog post)
Update the iframe references for embedded YouTube references (currently not rendering at all) - @alex-bezek
Style the header bar with a darker color for some contrast - @cchesser (decided to use a thin Cerner purple border)
Social links in the footer should ideally prompt you to follow on that platform - @cchesser
Refresh the open-source page layout, and get it updated with newer projects (perhaps look at ways to keep this dynamic based on the cerner GitHub org) - @cchesser
Ensure old links still work by either making sure the new paths match the old (currently its /blog vs /posts) or see if permalinks fix it and add those to frontmatter
Fix styling on Culture page, possibly refresh the look and feel if we want. Update content/images as well - @alex-bezek
Adding search in the header of the site, to make it easy to find content - @cchesser
Support pagination of all the blog posts - @cchesser
Update Tech-Talk page to embed youtube channel so it stays up too date - @cchesser
Fix links to other articles that use ({% post_url 2013-11-12-cerner-tech-talks %})
- @cchesser
Code Syntax highlighting doesn't have line numbers anymore - @cchesser
Embed CernerEng Twitter feed on the Culture page (at the bottom) - @cchesser
Update open source page, re-org content based on popularity and add links to blog posts describing them - @cchesser
Adjust font on the main title to be font-weight-bold
- @cchesser
Update Culture page content for sections - @cchesser
Fix Heroku PR builds by supplying the -b
option for the base URL (fix RSS feed link,
Create documentation page on how to create a new blog post (a mini styleguide with the common markdown and shortcodes to use). This includes adding photos for authors (example) - @cchesser
Clean up some of the image formatting with TODO statements. Some where in tables with unique sizes. Determine if they are all fine stacking or if we need some other patterns - @cchesser
Update all links from engineering.cerner.com
to be relative, so preview builds stay within the site
Update color for banner bar to be blue (vs. purple) - @cchesser
On a minimal view (i.e. phone), the menu isn't working to expand options for header. Need to correct this so it is easy to navigate.
This are tasks that are identified, which are not required but tracking them so they are not lost.
We have some past dependabot dependency alerts that could be applied. Will do them in a batch for this month (Jan 2022).
It would be beneficial to simplify the build and validation jobs on our project. Currently we used Travis CI; however, it is just ensuring it can run Hugo - and that can easily be simplified in a GitHub action and not even require Travis CI builds. This could also include a few other inclusions:
We are wanting to update our Heroku configuration to supply --buildFuture
to build content with a future publish date.
Currently the way someone has to go about writing a new post is to run the site locally, edit the markdown, and preview it locally. It would be ideal if we could eliminate some of these steps so its easier for people to contribute content.
Before we dive into proposals, I think it would be good to understand what problems people want to solve and what amount of change we are comfortable with. For example if just making it so you don't have to run things locally but instead can create some markdown in the Github UI in a branch and it deploys your branch so you can view it, is that good enough? Or would the feedback loop be too slow? Or is our actual goal to get away from having to use markdown as its not user friendly for people unfamiliar with it? If we are wanting to not have to write markdown are we wanting to maintain the same look and feel of the site and want to investigate a headless CMS? Or do we want to consider a full fledged service.
Remove blue link color from post titles. (not necessary to indicate it’s a link and looks better when the page is not full of blue link text)
When sharing links to our site, we can improve how other tools (Twitter, Facebook) represent the page, but adding in some basic Open Graph metatags (like img):
<meta property="og:image" content="https://ia.media-imdb.com/images/rock.jpg" />
We currently add this with our theme, which could include the image
tag:
<meta property="og:description" content="a blog by engineers, for engineers" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://engineering.cerner.com/" />
<meta property="og:updated_time" content="2020-09-24T00:00:00+00:00" />
Since we do image processing today on our blog pages, this may be a nice inclusion for blog posts. We can have a fixed default one include (Cerner's logo).
We are wanting to include this on the OSS page + give it an icon. This should reference the blog announcement of the project too.
https://engineering.cerner.com/blog/managing-splunk-knowledge/
https://github.com/cerner/splunk-pickaxe
It appears that f-twelve from our OSS blog post has a broken link to their demo:
https://engineering.cerner.com/blog/introducing-f-twelve-an-open-source-dev-console/
It appears they may be using GH pages for publishing this, which would require repository setting changes when they moved from master -> main.
Demo index.html file is here: https://github.com/cerner/f-twelve/blob/main/demo/index.html
It is assumed this demo would not be hosted in the blog site, but since the we are using the DNS record to point to GitHub for our organizational site page, these others can be referenced (like beadledom's documentation: https://engineering.cerner.com/beadledom/4.1/docs/)
Not sure if we need the blue link text here either as it’s pretty clear that they are links. If distinguishing is needed between archive year and post titles aI’d recommend bolding the archive year text.
The the canadarm logo is called Canadarm.png but is referenced as canadarm.png. Local preview resolved that fine for whatever reason, but the live site does not.
As a contributor, I want branches to be auto deployed so i can preview my changes prior to merging, so that people can write blogs in markdown without having to run the site locally to preview changes, and so reviewers can see the most up to date changes without relying on old screenshots.
There are many services and tools available that offer varying out of the box experiences to achieve this.
Other options:
From a hosting and deployment perspective, AWS Amplify offers almost the same full feature set as Netflify
https://aws.amazon.com/amplify/ . To try it out, i implemented it using a fork of the repo https://github.com/alex-bezek/cerner.github.io. Because everything i wanted to do is covered in the free tier, i just used my own aws account for convenience.
The steps i took were:
version: 0.1
frontend:
phases:
preBuild:
commands:
- apt-get update -y
- apt-get install default-jdk -y
- apt install python-pip -y
- apt install python2.7 -y
- apt-get install python-pygments -y
- bundle install
build:
commands:
- bundle exec rake generate
artifacts:
baseDirectory: public
files:
- '**/*'
cache:
paths: []
Primary Branch deployed: https://source.df01c5fpiua30.amplifyapp.com/
Pull Request: alex-bezek#1
PR Deploy: https://pr-1.df01c5fpiua30.amplifyapp.com/
In order to use it in a production setting, there are some additional things we would want to do
https://aws.amazon.com/amplify/console/pricing/
Because it's just managing static assets, the pricing is very reasonable. At 1000 free build minutes per month, and our current build taking only 7 minutes (which could be reduced much further with a custom container with packages pre-installed) we likely would never pass this (we would need over 140 builds in a month).
While not in scope for this issue, amplify could be used to automate the deployment of the primary branch instead of using github pages. While it is probably less work to just setup a github action to deploy the source branch, it would be nice to only manage a single method of deployments. A couple of other minor benefits are
We will want to look at our current static generated templates for accessibility issues with the axe plugin. We can then address and inventory outstanding items related to the site.
Finding | Occurrences |
---|---|
ARIA attributes must conform to valid names | 1 |
Elements must have sufficient color contrast | 63 |
Frames must have title attribute | 1 |
Form elements must have labels | 1 |
Zooming and scaling must not be disabled | 1 |
All page content must be contained by landmarks | 1 |
Links with the same name have a similar purpose | 1 |
Results for the newly updated landing site from #136
Finding | Occurrences |
---|---|
Elements must have sufficient color contrast | 13 |
Images must have alternate text | 2 |
Links must have discernible text | 7 |
Heading levels should only increase by one | 2 |
On pressing Enter while cursor is in the search box causes a 404 page at http://engineering.cerner.com/search?q={search term}. Hitting enter while in the search box should have no effect.
As we work to refresh the engineering.cerner.com site, we are wanting to revisit the Culture page to see if we want to include any changes.
We have a couple of OSS projects that we will remove from our OSS site page for being highlighted (which may be good to also archive the repos):
Name: Bunsen
Description: Bunsen integrates Apache Spark and FHIR, combining Spark's scalable processing advantages with FHIR's well-defined and curated data. This enables a number of deep analytic and machine learning workloads that can be ported across systems.
@Kallie-Riff said she may be able to help with adding this, please let us know if not and we can get another person to assist. Possibly @anelson425 can?
Thanks in advance!
We refactored several of the links and it appears some of them are broken which point back the the "Learn more" for the blog post.
Goal of this is to update all the "Learn more" links to the correct location based on availability of:
The ssh-steps Jenkins plugin project is built and maintained by Cerner engineers (mostly @nrayapati), which could/should be highlighted as well. Since the project it supports (Jenkins), manages all of its open-source projects in its org, that is one reason why it isn't included today.
This change would introduce / highlight it on the OSS page, and reference it to the blog that announced it: https://engineering.cerner.com/blog/ssh-steps-for-jenkins-pipeline/
Support new Cerner Speaker tab to show embedded youtube
We are wanting to change terminology used in this project. Currently we are using the master
branch to support the published static site contents. Since this is a user/organization GitHub pages site, we have to host the content in the master
branch.
Based on the response of natfriedman, it sounds like GitHub is in the works of making this happen for the default branch configuration of repositories. It is assumed that similar changes would also occur for the restriction on GitHub Pages.
It's a great idea and we are already working on this! cc @billygriffin22
— Nat Friedman (@natfriedman) June 12, 2020
If the repository for your user or organization site has a master branch, your site will publish automatically from that branch. You cannot choose a different publishing source for user or organization sites.
Can we add the Beadledom icon and description to the open source page, @Kallie-Riff @hCarmitchel?
Icon: http://ip-visprod/adobe/SolutionBranding/OpenSourceProjectGraphics/Beadledom/
Description:
Beadledom is a bundle of common components required for building JAX-RS web services. It is the starting point for new services. The core of Beadledom provides health checks, monitoring via Stagemonitor, API docs via Swagger, JSON serialization via Jackson, and integration of these components with Guice.
Alan and Grace at the bottom were a cool addition and provide more context/explanation to the header images. Maybe we can’t reveal them with elastic scrolling they can get their own section?
Name: jwala
Image location: [https://wiki.ucern.com/pages/viewpage.action?spaceKey=UserExperience&title=Open+Source+Project+Graphics]
Description: Jwala is a web application that provides management for a group of Tomcat servers. Jwala is capable of creating and persisting definitions of Group instances, and exposes a RESTful interface to do so. The definition of a Group includes Web Apps, JVMs, Web Servers, and Resources.
@Kallie-Riff and @hCarmitchel can you please help add this icon and description to the EH blog?
Currently the tech-talk tab loads all videos into the page during render.
These videos should be 'lazy loaded' onto the page - so when the user clicks play the video will load but not before that happens. We will use the same design for the upcoming internal speakers tab.
Thinking about using something similar to this to solve the issue.
If load speeds are still slow after this change we could consider looking at pagination (might want this anyway for better usability).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.