diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 5b92690..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,68 +0,0 @@ -name: Build and deploy site - -on: - push: - branches: - - main - # Triggered after leaseos-www publishes a new build. - repository_dispatch: - types: - - leaseos-updated - workflow_dispatch: - -# Prevent two runs in this repository from publishing simultaneously. -concurrency: - group: orderlab-pages - cancel-in-progress: false - -permissions: - contents: write - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 0 # for jekyll-last-modified-at to access git history - - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: '3.1' - - - name: Install dependencies - run: | - gem install bundler - bundle config set --local path 'vendor/bundle' - bundle install - - - name: Build site with Jekyll - run: bundle exec jekyll build - - - name: Checkout prebuilt LeaseOS website - uses: actions/checkout@v4 - with: - repository: orderlab/leaseos-www - ref: gh-pages - path: leaseos-built - - - name: Add LeaseOS to the main site - run: | - rm -rf _site/LeaseOS - mkdir -p _site/LeaseOS - - # Exclude Git metadata from the published site. - rsync -a \ - --exclude='.git' \ - --exclude='.github' \ - leaseos-built/ _site/LeaseOS/ - - - name: Deploy to GitHub pages - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./_site - publish_branch: gh-pages diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 0d837d8..0000000 --- a/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -_site -_includes/pubitem.html -buildpubs.md -.sass-cache -.jekyll-metadata -*.swp -.DS_Store -.jekyll-cache -publish.sh diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html deleted file mode 100644 index 328687e..0000000 --- a/404.html +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: default -title: Oops! Page not found :( ---- -
-
- -
-
\ No newline at end of file diff --git a/404/index.html b/404/index.html new file mode 100644 index 0000000..6c19cf2 --- /dev/null +++ b/404/index.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + Oops! Page not found :( + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+ +
+
+ + + + +
+ + + + + + + + + + + diff --git a/DSD-Bench/index.html b/DSD-Bench/index.html index 8437f94..d3a0137 100644 --- a/DSD-Bench/index.html +++ b/DSD-Bench/index.html @@ -1,9 +1,79 @@ ---- -layout: default -title: DistDebug-Bench -permalink: /DSD-Bench/ ---- - + + + + + + + + + + + + DistDebug-Bench + + + + + + + + + + + + + + + + +
+ +
+ + +
+
@@ -12,3 +82,35 @@

DistDebug-Bench

+ + + + + +
+ + + + + + + + + + + diff --git a/DistDebug-Bench/index.html b/DistDebug-Bench/index.html new file mode 100644 index 0000000..e1f0e86 --- /dev/null +++ b/DistDebug-Bench/index.html @@ -0,0 +1,116 @@ + + + + + + + + + + + + DistDebug-Bench + + + + + + + + + + + + + + + + +
+ +
+ + +
+ +
+
+
+

DistDebug-Bench

+

This page has moved to /distdebug-bench/.

+
+
+
+ + + + + +
+ + + + + + + + + + + diff --git a/Gemfile b/Gemfile deleted file mode 100644 index a7e729f..0000000 --- a/Gemfile +++ /dev/null @@ -1,20 +0,0 @@ -source "https://rubygems.org" - -gem "jekyll", "~> 4.2.1" - -gem "minima", "~> 2.5" - -group :jekyll_plugins do - gem "jekyll-feed", "~> 0.12" -end -platforms :mingw, :x64_mingw, :mswin, :jruby do - gem "tzinfo", "~> 1.2" - gem "tzinfo-data" -end -gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] - -gem "webrick", "~> 1.7" - -group :jekyll_plugins do - gem "jekyll-last-modified-at" -end diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index d5ffff3..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,85 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - addressable (2.8.4) - public_suffix (>= 2.0.2, < 6.0) - colorator (1.1.0) - concurrent-ruby (1.2.2) - em-websocket (0.5.3) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0) - eventmachine (1.2.7) - ffi (1.15.5) - forwardable-extended (2.6.0) - http_parser.rb (0.8.0) - i18n (1.13.0) - concurrent-ruby (~> 1.0) - jekyll (4.2.2) - addressable (~> 2.4) - colorator (~> 1.0) - em-websocket (~> 0.5) - i18n (~> 1.0) - jekyll-sass-converter (~> 2.0) - jekyll-watch (~> 2.0) - kramdown (~> 2.3) - kramdown-parser-gfm (~> 1.0) - liquid (~> 4.0) - mercenary (~> 0.4.0) - pathutil (~> 0.9) - rouge (~> 3.0) - safe_yaml (~> 1.0) - terminal-table (~> 2.0) - jekyll-feed (0.17.0) - jekyll (>= 3.7, < 5.0) - jekyll-last-modified-at (1.3.2) - jekyll (>= 3.7, < 5.0) - jekyll-sass-converter (2.2.0) - sassc (> 2.0.1, < 3.0) - jekyll-seo-tag (2.8.0) - jekyll (>= 3.8, < 5.0) - jekyll-watch (2.2.1) - listen (~> 3.0) - kramdown (2.4.0) - rexml - kramdown-parser-gfm (1.1.0) - kramdown (~> 2.0) - liquid (4.0.4) - listen (3.8.0) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - mercenary (0.4.0) - minima (2.5.1) - jekyll (>= 3.5, < 5.0) - jekyll-feed (~> 0.9) - jekyll-seo-tag (~> 2.1) - pathutil (0.16.2) - forwardable-extended (~> 2.6) - public_suffix (5.0.1) - rb-fsevent (0.11.2) - rb-inotify (0.10.1) - ffi (~> 1.0) - rexml (3.2.5) - rouge (3.30.0) - safe_yaml (1.0.5) - sassc (2.4.0) - ffi (~> 1.9) - terminal-table (2.0.0) - unicode-display_width (~> 1.1, >= 1.1.1) - unicode-display_width (1.8.0) - webrick (1.8.1) - -PLATFORMS - arm64-darwin-22 - -DEPENDENCIES - jekyll (~> 4.2.1) - jekyll-feed (~> 0.12) - jekyll-last-modified-at - minima (~> 2.5) - tzinfo (~> 1.2) - tzinfo-data - wdm (~> 0.1.1) - webrick (~> 1.7) - -BUNDLED WITH - 2.4.13 diff --git a/LeaseOS/.nojekyll b/LeaseOS/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/LeaseOS/LICENSE b/LeaseOS/LICENSE new file mode 100644 index 0000000..670154e --- /dev/null +++ b/LeaseOS/LICENSE @@ -0,0 +1,116 @@ +CC0 1.0 Universal + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator and +subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the +purpose of contributing to a commons of creative, cultural and scientific +works ("Commons") that the public can reliably and without fear of later +claims of infringement build upon, modify, incorporate in other works, reuse +and redistribute as freely as possible in any form whatsoever and for any +purposes, including without limitation commercial purposes. These owners may +contribute to the Commons to promote the ideal of a free culture and the +further production of creative, cultural and scientific works, or to gain +reputation or greater distribution for their Work in part through the use and +efforts of others. + +For these and/or other purposes and motivations, and without any expectation +of additional consideration or compensation, the person associating CC0 with a +Work (the "Affirmer"), to the extent that he or she is an owner of Copyright +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work +and publicly distribute the Work under its terms, with knowledge of his or her +Copyright and Related Rights in the Work and the meaning and intended legal +effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not limited +to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, + and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness + depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in + a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation thereof, + including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world + based on applicable law or treaty, and any national implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention of, +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright +and Related Rights and associated claims and causes of action, whether now +known or unknown (including existing as well as future claims and causes of +action), in the Work (i) in all territories worldwide, (ii) for the maximum +duration provided by applicable law or treaty (including future time +extensions), (iii) in any current or future medium and for any number of +copies, and (iv) for any purpose whatsoever, including without limitation +commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes +the Waiver for the benefit of each member of the public at large and to the +detriment of Affirmer's heirs and successors, fully intending that such Waiver +shall not be subject to revocation, rescission, cancellation, termination, or +any other legal or equitable action to disrupt the quiet enjoyment of the Work +by the public as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason be +judged legally invalid or ineffective under applicable law, then the Waiver +shall be preserved to the maximum extent permitted taking into account +Affirmer's express Statement of Purpose. In addition, to the extent the Waiver +is so judged Affirmer hereby grants to each affected person a royalty-free, +non transferable, non sublicensable, non exclusive, irrevocable and +unconditional license to exercise Affirmer's Copyright and Related Rights in +the Work (i) in all territories worldwide, (ii) for the maximum duration +provided by applicable law or treaty (including future time extensions), (iii) +in any current or future medium and for any number of copies, and (iv) for any +purpose whatsoever, including without limitation commercial, advertising or +promotional purposes (the "License"). The License shall be deemed effective as +of the date CC0 was applied by Affirmer to the Work. Should any part of the +License for any reason be judged legally invalid or ineffective under +applicable law, such partial invalidity or ineffectiveness shall not +invalidate the remainder of the License, and in such case Affirmer hereby +affirms that he or she will not (i) exercise any of his or her remaining +Copyright and Related Rights in the Work or (ii) assert any associated claims +and causes of action with respect to the Work, in either case contrary to +Affirmer's express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties + of any kind concerning the Work, express, implied, statutory or otherwise, + including without limitation warranties of title, merchantability, fitness + for a particular purpose, non infringement, or the absence of latent or + other defects, accuracy, or the present or absence of errors, whether or not + discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without limitation + any person's Copyright and Related Rights in the Work. Further, Affirmer + disclaims responsibility for obtaining any necessary consents, permissions + or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to this + CC0 or use of the Work. + +For more information, please see + diff --git a/LeaseOS/README.md b/LeaseOS/README.md new file mode 100644 index 0000000..e48f515 --- /dev/null +++ b/LeaseOS/README.md @@ -0,0 +1,109 @@ +# The Cayman theme + +[![Build Status](https://travis-ci.org/pages-themes/cayman.svg?branch=master)](https://travis-ci.org/pages-themes/cayman) [![Gem Version](https://badge.fury.io/rb/jekyll-theme-cayman.svg)](https://badge.fury.io/rb/jekyll-theme-cayman) + +*Cayman is a Jekyll theme for GitHub Pages. You can [preview the theme to see what it looks like](http://pages-themes.github.io/cayman), or even [use it today](#usage).* + +![Thumbnail of Cayman](thumbnail.png) + +## Usage + +To use the Cayman theme: + +1. Add the following to your site's `_config.yml`: + + ```yml + theme: jekyll-theme-cayman + ``` + +2. Optionally, if you'd like to preview your site on your computer, add the following to your site's `Gemfile`: + + ```ruby + gem "github-pages", group: :jekyll_plugins + ``` + +## Customizing + +### Configuration variables + +Cayman will respect the following variables, if set in your site's `_config.yml`: + +```yml +title: [The title of your site] +description: [A short description of your site's purpose] +``` + +Additionally, you may choose to set the following optional variables: + +```yml +show_downloads: ["true" or "false" to indicate whether to provide a download URL] +google_analytics: [Your Google Analytics tracking ID] +``` + +### Stylesheet + +If you'd like to add your own custom styles: + +1. Create a file called `/assets/css/style.scss` in your site +2. Add the following content to the top of the file, exactly as shown: + ```scss + --- + --- + + @import "{{ site.theme }}"; + ``` +3. Add any custom CSS (or Sass, including imports) you'd like immediately after the `@import` line + +*Note: If you'd like to change the theme's Sass variables, you must set new values before the `@import` line in your stylesheet.* + +### Layouts + +If you'd like to change the theme's HTML layout: + +1. [Copy the original template](https://github.com/pages-themes/cayman/blob/master/_layouts/default.html) from the theme's repository
(*Pro-tip: click "raw" to make copying easier*) +2. Create a file called `/_layouts/default.html` in your site +3. Paste the default layout content copied in the first step +4. Customize the layout as you'd like + +### Overriding GitHub-generated URLs + +Templates often rely on URLs supplied by GitHub such as links to your repository or links to download your project. If you'd like to override one or more default URLs: + +1. Look at [the template source](https://github.com/pages-themes/cayman/blob/master/_layouts/default.html) to determine the name of the variable. It will be in the form of `{{ site.github.zip_url }}`. +2. Specify the URL that you'd like the template to use in your site's `_config.yml`. For example, if the variable was `site.github.url`, you'd add the following: + ```yml + github: + zip_url: http://example.com/download.zip + another_url: another value + ``` +3. When your site is built, Jekyll will use the URL you specified, rather than the default one provided by GitHub. + +*Note: You must remove the `site.` prefix, and each variable name (after the `github.`) should be indent with two space below `github:`.* + +For more information, see [the Jekyll variables documentation](https://jekyllrb.com/docs/variables/). + +## Roadmap + +See the [open issues](https://github.com/pages-themes/cayman/issues) for a list of proposed features (and known issues). + +## Project philosophy + +The Cayman theme is intended to make it quick and easy for GitHub Pages users to create their first (or 100th) website. The theme should meet the vast majority of users' needs out of the box, erring on the side of simplicity rather than flexibility, and provide users the opportunity to opt-in to additional complexity if they have specific needs or wish to further customize their experience (such as adding custom CSS or modifying the default layout). It should also look great, but that goes without saying. + +## Contributing + +Interested in contributing to Cayman? We'd love your help. Cayman is an open source project, built one contribution at a time by users like you. See [the CONTRIBUTING file](docs/CONTRIBUTING.md) for instructions on how to contribute. + +### Previewing the theme locally + +If you'd like to preview the theme locally (for example, in the process of proposing a change): + +1. Clone down the theme's repository (`git clone https://github.com/pages-themes/cayman`) +2. `cd` into the theme's directory +3. Run `script/bootstrap` to install the necessary dependencies +4. Run `bundle exec jekyll serve` to start the preview server +5. Visit [`localhost:4000`](http://localhost:4000) in your browser to preview the theme + +### Running tests + +The theme contains a minimal test suite, to ensure a site with the theme would build successfully. To run the tests, simply run `script/cibuild`. You'll need to run `script/bootstrap` one before the test script will work. diff --git a/LeaseOS/about.html b/LeaseOS/about.html new file mode 100644 index 0000000..069be4d --- /dev/null +++ b/LeaseOS/about.html @@ -0,0 +1,93 @@ + + + + + LeaseOS + + + + + + + + + + + +
+
+ +
+

LeaseOS is developed by the Order Lab +of Department of Computer Science at Johns Hopkins University. The project +is led by PhD student Yigong Hu and Professor Ryan Huang.

+ +
+ +
+ + + +
+ + + + diff --git a/LeaseOS/assets/css/style.css b/LeaseOS/assets/css/style.css new file mode 100644 index 0000000..ab5e20e --- /dev/null +++ b/LeaseOS/assets/css/style.css @@ -0,0 +1,368 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */ +html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } + +/** Remove default margin. */ +body { margin: 0; } + +/* HTML5 display definitions ========================================================================== */ +/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */ +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } + +/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */ +audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } + +/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */ +audio:not([controls]) { display: none; height: 0; } + +/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */ +[hidden], template { display: none; } + +/* Links ========================================================================== */ +/** Remove the gray background color from active links in IE 10. */ +a { background-color: transparent; } + +/** Improve readability when focused and also mouse hovered in all browsers. */ +a:active, a:hover { outline: 0; } + +/* Text-level semantics ========================================================================== */ +/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */ +abbr[title] { border-bottom: 1px dotted; } + +/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */ +b, strong { font-weight: bold; } + +/** Address styling not present in Safari and Chrome. */ +dfn { font-style: italic; } + +/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */ +h1 { font-size: 2em; margin: 0.67em 0; } + +/** Address styling not present in IE 8/9. */ +mark { background: #ff0; color: #000; } + +/** Address inconsistent and variable font size in all browsers. */ +small { font-size: 80%; } + +/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */ +sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } + +sup { top: -0.5em; } + +sub { bottom: -0.25em; } + +/* Embedded content ========================================================================== */ +/** Remove border when inside `a` element in IE 8/9/10. */ +img { border: 0; } + +/** Correct overflow not hidden in IE 9/10/11. */ +svg:not(:root) { overflow: hidden; } + +/* Grouping content ========================================================================== */ +/** Address margin not present in IE 8/9 and Safari. */ +figure { margin: 1em 40px; } + +/** Address differences between Firefox and other browsers. */ +hr { box-sizing: content-box; height: 0; } + +/** Contain overflow in all browsers. */ +pre { overflow: auto; } + +/** Address odd `em`-unit font size rendering in all browsers. */ +code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } + +/* Forms ========================================================================== */ +/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */ +/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */ +button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ } + +/** Address `overflow` set to `hidden` in IE 8/9/10/11. */ +button { overflow: visible; } + +/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */ +button, select { text-transform: none; } + +/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */ +button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } + +/** Re-set default cursor for disabled elements. */ +button[disabled], html input[disabled] { cursor: default; } + +/** Remove inner padding and border in Firefox 4+. */ +button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } + +/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */ +input { line-height: normal; } + +/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width. 1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */ +input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } + +/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */ +input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } + +/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */ +input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; } + +/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */ +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + +/** Define consistent border, margin, and padding. */ +fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } + +/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */ +legend { border: 0; /* 1 */ padding: 0; /* 2 */ } + +/** Remove default vertical scrollbar in IE 8/9/10/11. */ +textarea { overflow: auto; } + +/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */ +optgroup { font-weight: bold; } + +/* Tables ========================================================================== */ +/** Remove most spacing between table cells. */ +table { border-collapse: collapse; border-spacing: 0; } + +td, th { padding: 0; } + +.highlight table td { padding: 5px; } + +.highlight table pre { margin: 0; } + +.highlight .cm { color: #999988; font-style: italic; } + +.highlight .cp { color: #999999; font-weight: bold; } + +.highlight .c1 { color: #999988; font-style: italic; } + +.highlight .cs { color: #999999; font-weight: bold; font-style: italic; } + +.highlight .c, .highlight .cd { color: #999988; font-style: italic; } + +.highlight .err { color: #a61717; background-color: #e3d2d2; } + +.highlight .gd { color: #000000; background-color: #ffdddd; } + +.highlight .ge { color: #000000; font-style: italic; } + +.highlight .gr { color: #aa0000; } + +.highlight .gh { color: #999999; } + +.highlight .gi { color: #000000; background-color: #ddffdd; } + +.highlight .go { color: #888888; } + +.highlight .gp { color: #555555; } + +.highlight .gs { font-weight: bold; } + +.highlight .gu { color: #aaaaaa; } + +.highlight .gt { color: #aa0000; } + +.highlight .kc { color: #000000; font-weight: bold; } + +.highlight .kd { color: #000000; font-weight: bold; } + +.highlight .kn { color: #000000; font-weight: bold; } + +.highlight .kp { color: #000000; font-weight: bold; } + +.highlight .kr { color: #000000; font-weight: bold; } + +.highlight .kt { color: #445588; font-weight: bold; } + +.highlight .k, .highlight .kv { color: #000000; font-weight: bold; } + +.highlight .mf { color: #009999; } + +.highlight .mh { color: #009999; } + +.highlight .il { color: #009999; } + +.highlight .mi { color: #009999; } + +.highlight .mo { color: #009999; } + +.highlight .m, .highlight .mb, .highlight .mx { color: #009999; } + +.highlight .sb { color: #d14; } + +.highlight .sc { color: #d14; } + +.highlight .sd { color: #d14; } + +.highlight .s2 { color: #d14; } + +.highlight .se { color: #d14; } + +.highlight .sh { color: #d14; } + +.highlight .si { color: #d14; } + +.highlight .sx { color: #d14; } + +.highlight .sr { color: #009926; } + +.highlight .s1 { color: #d14; } + +.highlight .ss { color: #990073; } + +.highlight .s { color: #d14; } + +.highlight .na { color: #008080; } + +.highlight .bp { color: #999999; } + +.highlight .nb { color: #0086B3; } + +.highlight .nc { color: #445588; font-weight: bold; } + +.highlight .no { color: #008080; } + +.highlight .nd { color: #3c5d5d; font-weight: bold; } + +.highlight .ni { color: #800080; } + +.highlight .ne { color: #990000; font-weight: bold; } + +.highlight .nf { color: #990000; font-weight: bold; } + +.highlight .nl { color: #990000; font-weight: bold; } + +.highlight .nn { color: #555555; } + +.highlight .nt { color: #000080; } + +.highlight .vc { color: #008080; } + +.highlight .vg { color: #008080; } + +.highlight .vi { color: #008080; } + +.highlight .nv { color: #008080; } + +.highlight .ow { color: #000000; font-weight: bold; } + +.highlight .o { color: #000000; font-weight: bold; } + +.highlight .w { color: #bbbbbb; } + +.highlight { background-color: #f8f8f8; } + +/** Wrapper */ +.wrapper { max-width: -webkit-calc(54em - (30px * 2)); max-width: calc(54em - (30px * 2)); margin-right: auto; margin-left: auto; padding-right: 30px; padding-left: 30px; } +@media screen and (max-width: 54em) { .wrapper { max-width: -webkit-calc(54em - (30px)); max-width: calc(54em - (30px)); padding-right: 15px; padding-left: 15px; } } + +/** Clearfix */ +.wrapper:after { content: ""; display: table; clear: both; } + +/** Site header */ +.site-header { border-bottom: 1px solid #e8e8e8; min-height: 55.95px; position: relative; } + +.site-title { font-size: 22.4px; font-weight: 300; line-height: 54px; letter-spacing: -1px; margin-bottom: 0; float: left; text-decoration: none; } +.site-title, .site-title:visited, .site-title:hover { color: #159957; text-decoration: none; } + +.site-nav { float: right; line-height: 54px; } +.site-nav .nav-trigger { display: none; } +.site-nav .menu-icon { display: none; } +.site-nav .page-link { color: #159957; line-height: 1.5; } +.site-nav .page-link:not(:last-child) { margin-right: 20px; } +@media screen and (max-width: 38em) { .site-nav { position: absolute; top: 9px; right: 15px; background-color: #fdfdfd; border: 1px solid #e8e8e8; border-radius: 5px; text-align: right; } + .site-nav label[for="nav-trigger"] { display: block; float: right; width: 36px; height: 36px; z-index: 2; cursor: pointer; } + .site-nav .menu-icon { display: block; float: right; width: 36px; height: 26px; line-height: 0; padding-top: 10px; text-align: center; } + .site-nav .menu-icon > svg path { fill: #424242; } + .site-nav input ~ .trigger { clear: both; display: none; } + .site-nav input:checked ~ .trigger { display: block; padding-bottom: 5px; } + .site-nav .trigger { padding-top: 20px; } + .site-nav .page-link { display: block; padding: 10px 10px; margin-right: 10px; margin-left: 10px; } + .site-nav .page-link:last-child { margin-bottom: 10px; } } + +/** Post list */ +.post-list { margin-left: 0; list-style: none; } +.post-list > li { margin-bottom: 45px; } +.post-list > li > h2 { margin-top: 0rem; margin-bottom: 0.4rem; } + +@media screen and (max-width: 38em) { .post-list { -webkit-margin-end: 10px; -webkit-padding-start: 10px; } } +.post-meta { font-size: 14px; color: #828282; } + +.post-link { display: block; font-size: 24px; } + +.logo-image { max-height: 3rem; padding-top: 5pt; } + +.logo-name { font-family: "Lucida Console", Monaco, monospace; } + +* { box-sizing: border-box; } + +body { padding: 0; margin: 0; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: #606c71; } + +#skip-to-content { height: 1px; width: 1px; position: absolute; overflow: hidden; top: -10px; } +#skip-to-content:focus { position: fixed; top: 10px; left: 10px; height: auto; width: auto; background: #e19447; outline: thick solid #e19447; } + +a { color: #1e6bb8; text-decoration: none; } +a:hover { text-decoration: underline; } + +.btn { display: inline-block; margin-bottom: 1rem; color: rgba(255, 255, 255, 0.7); background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.2); border-style: solid; border-width: 1px; border-radius: 0.3rem; transition: color 0.2s, background-color 0.2s, border-color 0.2s; } +.btn:hover { color: rgba(255, 255, 255, 0.8); text-decoration: none; background-color: rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.3); } +.btn + .btn { margin-left: 1rem; } +@media screen and (min-width: 64em) { .btn { padding: 0.75rem 1rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .btn { padding: 0.6rem 0.9rem; font-size: 0.9rem; } } +@media screen and (max-width: 42em) { .btn { display: block; width: 100%; padding: 0.75rem; font-size: 0.9rem; } + .btn + .btn { margin-top: 1rem; margin-left: 0; } } + +.page-header { color: #fff; text-align: center; background-color: #159957; background-image: linear-gradient(120deg, #155799, #159957); } +@media screen and (min-width: 64em) { .page-header { padding: 5rem 6rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .page-header { padding: 3rem 4rem; } } +@media screen and (max-width: 42em) { .page-header { padding: 2rem 1rem; } } + +.project-name { margin-top: 0; margin-bottom: 0.1rem; } +@media screen and (min-width: 64em) { .project-name { font-size: 3.25rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .project-name { font-size: 2.25rem; } } +@media screen and (max-width: 42em) { .project-name { font-size: 1.75rem; } } + +.project-tagline { margin-bottom: 2rem; font-weight: normal; opacity: 0.7; } +@media screen and (min-width: 64em) { .project-tagline { font-size: 1.25rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .project-tagline { font-size: 1.15rem; } } +@media screen and (max-width: 42em) { .project-tagline { font-size: 1rem; } } + +.project-date { margin-bottom: 0rem; font-weight: normal; opacity: 0.7; font-style: italic; } +@media screen and (min-width: 64em) { .project-date { font-size: 1.0rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .project-date { font-size: 0.95rem; } } +@media screen and (max-width: 42em) { .project-date { font-size: 0.75rem; } } + +.main-content { word-wrap: break-word; } +.main-content :first-child { margin-top: 0; } +@media screen and (min-width: 64em) { .main-content { max-width: 64rem; padding: 2rem 6rem; margin: 0 auto; font-size: 1.1rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .main-content { padding: 2rem 4rem; font-size: 1.1rem; } } +@media screen and (max-width: 42em) { .main-content { padding: 2rem 1rem; font-size: 1rem; } } +.main-content img { max-width: 100%; } +.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { margin-top: 2rem; margin-bottom: 1rem; font-weight: normal; color: #159957; } +.main-content p { margin-bottom: 1em; } +.main-content code { padding: 2px 4px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.9rem; color: #567482; background-color: #f3f6fa; border-radius: 0.3rem; } +.main-content pre { padding: 0.8rem; margin-top: 0; margin-bottom: 1rem; font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace; color: #567482; word-wrap: normal; background-color: #f3f6fa; border: solid 1px #dce6f0; border-radius: 0.3rem; } +.main-content pre > code { padding: 0; margin: 0; font-size: 0.9rem; color: #567482; word-break: normal; white-space: pre; background: transparent; border: 0; } +.main-content .highlight { margin-bottom: 1rem; } +.main-content .highlight pre { margin-bottom: 0; word-break: normal; } +.main-content .highlight pre, .main-content pre { padding: 0.8rem; overflow: auto; font-size: 0.9rem; line-height: 1.45; border-radius: 0.3rem; -webkit-overflow-scrolling: touch; } +.main-content pre code, .main-content pre tt { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; } +.main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after { content: normal; } +.main-content ul, .main-content ol { margin-top: 0; } +.main-content blockquote { padding: 0 1rem; margin-left: 0; color: #819198; border-left: 0.3rem solid #dce6f0; } +.main-content blockquote > :first-child { margin-top: 0; } +.main-content blockquote > :last-child { margin-bottom: 0; } +.main-content table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; -webkit-overflow-scrolling: touch; } +.main-content table th { font-weight: bold; } +.main-content table th, .main-content table td { padding: 0.5rem 1rem; border: 1px solid #e9ebec; } +.main-content dl { padding: 0; } +.main-content dl dt { padding: 0; margin-top: 1rem; font-size: 1rem; font-weight: bold; } +.main-content dl dd { padding: 0; margin-bottom: 1rem; } +.main-content hr { height: 2px; padding: 0; margin: 1rem 0; background-color: #eff0f1; border: 0; } + +.site-footer { padding-top: 2rem; margin-top: 2rem; border-top: solid 1px #eff0f1; } +@media screen and (min-width: 64em) { .site-footer { font-size: 1rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .site-footer { font-size: 1rem; } } +@media screen and (max-width: 42em) { .site-footer { font-size: 0.9rem; } } + +.site-footer-owner { display: block; font-weight: bold; } + +.site-footer-credits { color: #819198; } diff --git a/LeaseOS/assets/logo.png b/LeaseOS/assets/logo.png new file mode 100644 index 0000000..004b6a2 Binary files /dev/null and b/LeaseOS/assets/logo.png differ diff --git a/LeaseOS/build.html b/LeaseOS/build.html new file mode 100644 index 0000000..76d40bc --- /dev/null +++ b/LeaseOS/build.html @@ -0,0 +1,116 @@ + + + + + LeaseOS + + + + + + + + + + + +
+
+ + + +
+

Warning

+

LeaseOS is a research prototype and is provided on an “AS IS” BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. In no event shall +the creators of LeaseOS or any of its contributors be liable for any direct, indirect, +incidental, special, exemplary, or consequential damages.

+ +

Build

+

Building LeaseOS is same as building Android source tree. You can follow the +offical instructions +of building AOSP to build the LeaseOS for your specific device target.

+ +

Install

+

After the custom image is built, you can follow this document +about how to flash the ROM into your device.

+ + +
+ + +
+ + + +
+ + + + diff --git a/LeaseOS/contact.html b/LeaseOS/contact.html new file mode 100644 index 0000000..617cbe1 --- /dev/null +++ b/LeaseOS/contact.html @@ -0,0 +1,100 @@ + + + + + LeaseOS + + + + + + + + + + + +
+
+ +
+

Jekyll is a great tool to create static sites but with static site, there’s no backend to send your data to: that is why it’s hard to put a form on a Jekyll site.

+ +

Here listed some resources which provide a saas service as a backend for forms (contact forms, hiring forms, etc.) to designers and developers like you:

+
    +
  1. Formspree (also open source, free)
  2. +
  3. FormKeep
  4. +
  5. Simple Form
  6. +
+ +

Go to the Home Page

+ +
+ +
+ + + +
+ + + + diff --git a/LeaseOS/docs.html b/LeaseOS/docs.html new file mode 100644 index 0000000..86b9b47 --- /dev/null +++ b/LeaseOS/docs.html @@ -0,0 +1,102 @@ + + + + + LeaseOS + + + + + + + + + + + +
+
+ + + +
+

You will find the documentation on LeaseOS here. Stay tuned!

+ +
+ + +
+ + + +
+ + + + diff --git a/LeaseOS/docs/CODE_OF_CONDUCT.md b/LeaseOS/docs/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..ab1a9a1 --- /dev/null +++ b/LeaseOS/docs/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at opensource@github.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/LeaseOS/docs/CONTRIBUTING.md b/LeaseOS/docs/CONTRIBUTING.md new file mode 100644 index 0000000..dc8bc5f --- /dev/null +++ b/LeaseOS/docs/CONTRIBUTING.md @@ -0,0 +1,88 @@ +# Contributing to The Cayman Theme + +Hi there! We're thrilled that you'd like to contribute to The Cayman Theme. Your help is essential for keeping it great. + +The Cayman Theme is an open source project supported by the efforts of an entire community and built one contribution at a time by users like you. We'd love for you to get involved. Whatever your level of skill or however much time you can give, your contribution is greatly appreciated. There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests, helping other users by commenting on issues, or writing code which can be incorporated into The Cayman Theme itself. + +Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests. + + +## Looking for support? + +We'd love to help. Check out [the support guidelines](SUPPORT.md). + +## How to report a bug + +Think you found a bug? Please check [the list of open issues](https://github.com/pages-themes/cayman/issues) to see if your bug has already been reported. If it hasn't please [submit a new issue](https://github.com/pages-themes/cayman/issues/new). + +Here are a few tips for writing *great* bug reports: + +* Describe the specific problem (e.g., "widget doesn't turn clockwise" versus "getting an error") +* Include the steps to reproduce the bug, what you expected to happen, and what happened instead +* Check that you are using the latest version of the project and its dependencies +* Include what version of the project your using, as well as any relevant dependencies +* Only include one bug per issue. If you have discovered two bugs, please file two issues +* Even if you don't know how to fix the bug, including a failing test may help others track it down + +**If you find a security vulnerability, do not open an issue. Please email security@github.com instead.** + +## How to suggest a feature or enhancement + +If you find yourself wishing for a feature that doesn't exist in The Cayman Theme, you are probably not alone. There are bound to be others out there with similar needs. Many of the features that The Cayman Theme has today have been added because our users saw the need. + +Feature requests are welcome. But take a moment to find out whether your idea fits with the scope and goals of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Please provide as much detail and context as possible, including describing the problem you're trying to solve. + +[Open an issue](https://github.com/pages-themes/cayman/issues/new) which describes the feature you would like to see, why you want it, how it should work, etc. + + + +## Your first contribution + +We'd love for you to contribute to the project. Unsure where to begin contributing to The Cayman Theme? You can start by looking through these "good first issue" and "help wanted" issues: + +* [Good first issues](https://github.com/pages-themes/cayman/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) - issues which should only require a few lines of code and a test or two +* [Help wanted issues](https://github.com/pages-themes/cayman/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) - issues which may be a bit more involved, but are specifically seeking community contributions + +*p.s. Feel free to ask for help; everyone is a beginner at first* :smiley_cat: + +## How to propose changes + +Here's a few general guidelines for proposing changes: + +* If you are making visual changes, include a screenshot of what the affected element looks like, both before and after. +* Follow the [Jekyll style guide](https://ben.balter.com/jekyll-style-guide). +* If you are changing any user-facing functionality, please be sure to update the documentation +* Each pull request should implement **one** feature or bug fix. If you want to add or fix more than one thing, submit more than one pull request +* Do not commit changes to files that are irrelevant to your feature or bug fix +* Don't bump the version number in your pull request (it will be bumped prior to release) +* Write [a good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) + +At a high level, [the process for proposing changes](https://guides.github.com/introduction/flow/) is: + +1. [Fork](https://github.com/pages-themes/cayman/fork) and clone the project +2. Configure and install the dependencies: `script/bootstrap` +3. Make sure the tests pass on your machine: `script/cibuild` +4. Create a new branch: `git checkout -b my-branch-name` +5. Make your change, add tests, and make sure the tests still pass +6. Push to your fork and [submit a pull request](https://github.com/pages-themes/cayman/compare) +7. Pat your self on the back and wait for your pull request to be reviewed and merged + +**Interesting in submitting your first Pull Request?** It's easy! You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github) + +## Bootstrapping your local development environment + +`script/bootstrap` + +## Running tests + +`script/cibuild` + +## Code of conduct + +This project is governed by [the Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. + +## Additional Resources + +* [Contributing to Open Source on GitHub](https://guides.github.com/activities/contributing-to-open-source/) +* [Using Pull Requests](https://help.github.com/articles/using-pull-requests/) +* [GitHub Help](https://help.github.com) diff --git a/LeaseOS/docs/SUPPORT.html b/LeaseOS/docs/SUPPORT.html new file mode 100644 index 0000000..a4929c1 --- /dev/null +++ b/LeaseOS/docs/SUPPORT.html @@ -0,0 +1,104 @@ + + + + + LeaseOS + + + + + + + + + + + +
+
+ +
+

Where to get help

+ +

If you think you’ve found a bug in The Cayman Theme, please check the existing issues, and if no one has reported the problem, open a new issue.

+ +

If you have a general question about the theme, how to implement it, or how to customize it for your site you have two options:

+ +
    +
  1. +

    Contact GitHub Support, or

    +
  2. +
  3. +

    Ask your question of the Jekyll community on talk.jekyllrb.com

    +
  4. +
+ +
+ +
+ + + +
+ + + + diff --git a/LeaseOS/docs/SUPPORT.md b/LeaseOS/docs/SUPPORT.md new file mode 100644 index 0000000..68a11de --- /dev/null +++ b/LeaseOS/docs/SUPPORT.md @@ -0,0 +1,9 @@ +## Where to get help + +If you think you've found a bug in The Cayman Theme, please [check the existing issues](https://github.com/pages-themes/cayman/issues), and if no one has reported the problem, [open a new issue](https://github.com/pages-themes/cayman/issues/new). + +If you have a general question about the theme, how to implement it, or how to customize it for your site you have two options: + +1. [Contact GitHub Support](https://github.com/contact?form%5Bsubject%5D=GitHub%20Pages%20theme%20pages-themes/cayman), or + +2. Ask your question of the Jekyll community on [talk.jekyllrb.com](https://talk.jekyllrb.com/) diff --git a/LeaseOS/downloading.html b/LeaseOS/downloading.html new file mode 100644 index 0000000..82272ea --- /dev/null +++ b/LeaseOS/downloading.html @@ -0,0 +1,175 @@ + + + + + LeaseOS + + + + + + + + + + + +
+
+ + + +
+

Download the Source Tree

+

The LeaseOS source tree is located in a Git repository hosted by OrderLab. +This document describes how to download the source tree for a specific device.

+

Install repo client

+
+

repo is a tool that makes it easier to work with Git in the context of Android. +For more information about repo, see the Repo Command Reference.

+ +

To install Repo:

+ +
    +
  1. Make sure you have a bin/ directory in your home directory and that it is included in your path: +
    $ mkdir ~/bin
    +$ PATH=~/bin:$PATH
    +
    +
  2. +
  3. Download the Repo tool and ensure that it is executable: +
    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    +chmod a+x ~/bin/repo
    +
    +
  4. +
+ +

Initialize source code repository

+
+

After installing repo, create the working directory and configure your git.

+ +
    +
  1. Create an empty directory to hold your working files. Give it any name you like: +
    $ mkdir WORKING_DIRECTORY
    +$ cd WORKING_DIRECTORY
    +
    +
  2. +
  3. Configure git with your real name and email address. To use the Gerrit code-review tool, +you will need an email address that is connected with a registered Google account. Make sure +this is a live address at which you can receive messages. +
    $ git config --global user.name "Your Name"
    +$ git config --global user.email "you@example.com"
    +
    +
  4. +
  5. Sync the AOSP source tree with the branch +that matches the Lease OS release version. Currently, that is android-7.1.2_r2 +
    $ repo init -u https://android.googlesource.com/platform/manifest -b android-7.1.2_r2
    +
    +
  6. +
+ +

Clone LeaseOS custom manifests

+
    +
  1. LeaseOS use a local manifests directory to override the repos in AOSP source tree to customized repos. +Assuming you are in the WORKING_DIRECTORY, +
    $ cd .repo
    +$ git clone https://github.com/OrderLab/leaseos_local_manifests.git local_manifests
    +$ cd ..
    +$ repo sync
    +
    +
  2. +
  3. When initially checked out, all the repositories are in a detached state. In order to work on our custom repositories, +we need to set the branch to the remote branch. Type the following command to do it for all: +
    $ repo forall -g leaseos -c 'git checkout --track public/leaseos-7.1.2_r2'
    +
    +

    After the sync finishes, you can use the repo tool to apply a command to all the repositories defined in this local manifest +by specifying the group leaseos (which is defined in the leaseos.xml). For example, to get the status:

    +
    $ repo forall -g leaseos -c 'git status'
    +
    +

    Additional Note

    +
    +

    The device repos are proprietary and copyrighted by the vendors. Therefore they are excluded from the manifest file in our public branch. +You will need to clone these device-specific repos into the source tree. For example, for Google Pixel XL phone, you need to find the device +drivers for google_marlin and proprietary blobs extracted from the factory image. You will also need to find the Google Apps Suite to be +included in the custom image (this can also be installed separately later).

    +
    +
  4. +
+ +
+ + +
+ + + +
+ + + + diff --git a/LeaseOS/example.html b/LeaseOS/example.html new file mode 100644 index 0000000..45de1b2 --- /dev/null +++ b/LeaseOS/example.html @@ -0,0 +1,256 @@ + + + + + LeaseOS + + + + + + + + + + + + + + +
+

Text can be bold, italic, or strikethrough.

+ +

Link to another page.

+ +

There should be whitespace between paragraphs.

+ +

There should be whitespace between paragraphs. We recommend including a README, or a file with information about your project.

+ +

Header 1

+ +

This is a normal paragraph following a header. GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.

+ +

Header 2

+ +
+

This is a blockquote following a header.

+ +

When something is important enough, you do it even if the odds are not in your favor.

+
+ +

Header 3

+ +
// Javascript code with syntax highlighting.
+var fun = function lang(l) {
+  dateformat.i18n = require('./lang/' + l)
+  return true;
+}
+
+ +
# Ruby code with syntax highlighting
+GitHubPages::Dependencies.gems.each do |gem, version|
+  s.add_dependency(gem, "= #{version}")
+end
+
+ +

Header 4

+ + + +
Header 5
+ +
    +
  1. This is an ordered list following a header.
  2. +
  3. This is an ordered list following a header.
  4. +
  5. This is an ordered list following a header.
  6. +
+ +
Header 6
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
head1head twothree
okgood swedish fishnice
out of stockgood and plentynice
okgood oreoshmm
okgood zoute dropyumm
+ +

There’s a horizontal rule below this.

+ +
+ +

Here is an unordered list:

+ + + +

And an ordered list:

+ +
    +
  1. Item one
  2. +
  3. Item two
  4. +
  5. Item three
  6. +
  7. Item four
  8. +
+ +

And a nested list:

+ + + +

Small image

+ +

Octocat

+ +

Large image

+ +

Branching

+ +

Definition lists can be used with HTML syntax.

+ +
+
Name
+
Godzilla
+
Born
+
1952
+
Birthplace
+
Japan
+
Color
+
Green
+
+ +
Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this.
+
+ +
The final element.
+
+ + + +
+ + + + diff --git a/LeaseOS/index.html b/LeaseOS/index.html new file mode 100644 index 0000000..1b3b887 --- /dev/null +++ b/LeaseOS/index.html @@ -0,0 +1,99 @@ + + + + + LeaseOS + + + + + + + + + + + + + + +
+
+ +

LeaseOS is a lease-based, utilitarian resource management mechanism built on top of android-7.1.2. For more information on what LeaseOS is and what it can do, see our ASPLOS 2019 paper.

+ + +
+ + + +
+ + + + diff --git a/LeaseOS/jekyll-theme-cayman.gemspec b/LeaseOS/jekyll-theme-cayman.gemspec new file mode 100644 index 0000000..2610f82 --- /dev/null +++ b/LeaseOS/jekyll-theme-cayman.gemspec @@ -0,0 +1,20 @@ +Gem::Specification.new do |s| + s.name = 'jekyll-theme-cayman' + s.version = '0.1.1' + s.license = 'CC0-1.0' + s.authors = ['Jason Long', 'GitHub, Inc.'] + s.email = ['opensource+jekyll-theme-cayman@github.com'] + s.homepage = 'https://github.com/pages-themes/cayman' + s.summary = 'Cayman is a Jekyll theme for GitHub Pages' + + s.files = `git ls-files -z`.split("\x0").select do |f| + f.match(%r{^((_includes|_layouts|_sass|assets)/|(LICENSE|README)((\.(txt|md|markdown)|$)))}i) + end + + s.platform = Gem::Platform::RUBY + s.add_runtime_dependency 'jekyll', '~> 3.5' + s.add_runtime_dependency 'jekyll-seo-tag', '~> 2.0' + s.add_development_dependency 'html-proofer', '~> 3.0' + s.add_development_dependency 'rubocop', '~> 0.50' + s.add_development_dependency 'w3c_validators', '~> 1.3' +end diff --git a/LeaseOS/pubs.html b/LeaseOS/pubs.html new file mode 100644 index 0000000..692253c --- /dev/null +++ b/LeaseOS/pubs.html @@ -0,0 +1,109 @@ + + + + + LeaseOS + + + + + + + + + + + +
+
+ + + +
+
    +
  • A Case for Lease-Based, Utilitarian Resource Management on Mobile Devices
    +Yigong Hu, Suyi Liu, and Peng Huang, Jons Hopkins University
    +In Proceedings of the 24th ACM International Conference on Architectural Support +for Programming Languages and Operating Systems (ASPLOS ‘19), April 2019, Providence, RI
    +Paper
  • +
+ + +
+ + +
+ + + +
+ + + + diff --git a/LeaseOS/requirements.html b/LeaseOS/requirements.html new file mode 100644 index 0000000..033b3ba --- /dev/null +++ b/LeaseOS/requirements.html @@ -0,0 +1,124 @@ + + + + + LeaseOS + + + + + + + + + + + +
+
+ + + +
+

Requirements

+

Before you download and build the LeaseOS source, ensure your system meets the following +requirements.

+

Hardware requirements

+
+

The hardware requirements to build LeaseOS are roughly the same as +building the Android release 7.1.2. Your development workstation should meet or exceed these hardware requirements:

+
    +
  • A 64-bit environment is required.
  • +
  • At least 250GB of free disk space to checkout the code and an extra 150GB to build it. +If you conduct multiple builds, you will need even more space.
  • +
  • If you are running Linux in a virtual machine, you need at least 16GB of RAM/swap.
  • +
+ +

Software requirements

+
+

The LeaseOS master branch is developed and tested on +Ubuntu 16.04 (LTS) releases, building under Windows or Mac OS is not currently supported. But Other distributions may be used.

+ +

Your workstation must have the software listed below:

+
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
+
+ + +
+ + +
+ + + +
+ + + + diff --git a/LeaseOS/script/bootstrap b/LeaseOS/script/bootstrap new file mode 100755 index 0000000..492e553 --- /dev/null +++ b/LeaseOS/script/bootstrap @@ -0,0 +1,6 @@ +#!/bin/sh + +set -e + +gem install bundler +bundle install diff --git a/LeaseOS/script/cibuild b/LeaseOS/script/cibuild new file mode 100755 index 0000000..c614d7d --- /dev/null +++ b/LeaseOS/script/cibuild @@ -0,0 +1,9 @@ +#!/bin/sh + +set -e + +bundle exec jekyll build +bundle exec htmlproofer ./_site --check-html --check-sri --disable-external +bundle exec rubocop -D +bundle exec script/validate-html +gem build jekyll-theme-cayman.gemspec diff --git a/LeaseOS/script/release b/LeaseOS/script/release new file mode 100755 index 0000000..fb400aa --- /dev/null +++ b/LeaseOS/script/release @@ -0,0 +1,42 @@ +#!/bin/sh +# Tag and push a release. + +set -e + +# Make sure we're in the project root. + +cd $(dirname "$0")/.. + +# Make sure the darn thing works + +bundle update + +# Build a new gem archive. + +rm -rf jekyll-theme-cayman-*.gem +gem build -q jekyll-theme-cayman.gemspec + +# Make sure we're on the master branch. + +(git branch | grep -q 'master') || { + echo "Only release from the master branch." + exit 1 +} + +# Figure out what version we're releasing. + +tag=v`ls jekyll-theme-cayman-*.gem | sed 's/^jekyll-theme-cayman-\(.*\)\.gem$/\1/'` + +# Make sure we haven't released this version before. + +git fetch -t origin + +(git tag -l | grep -q "$tag") && { + echo "Whoops, there's already a '${tag}' tag." + exit 1 +} + +# Tag it and bag it. + +gem push jekyll-theme-cayman-*.gem && git tag "$tag" && + git push origin master && git push origin "$tag" diff --git a/LeaseOS/script/server b/LeaseOS/script/server new file mode 100755 index 0000000..d8c3e15 --- /dev/null +++ b/LeaseOS/script/server @@ -0,0 +1,3 @@ +#!/bin/sh + +bundle exec jekyll serve diff --git a/LeaseOS/script/validate-html b/LeaseOS/script/validate-html new file mode 100755 index 0000000..f6b17eb --- /dev/null +++ b/LeaseOS/script/validate-html @@ -0,0 +1,27 @@ +#!/usr/bin/env ruby + +require 'w3c_validators' + +def validator(file) + extension = File.extname(file) + if extension == '.html' + W3CValidators::NuValidator.new + elsif extension == '.css' + W3CValidators::CSSValidator.new + end +end + +def validate(file) + puts "Checking #{file}..." + + path = File.expand_path "../_site/#{file}", __dir__ + results = validator(file).validate_file(path) + + return puts 'Valid!' if results.errors.empty? + + results.errors.each { |err| puts err.to_s } + exit 1 +end + +validate 'index.html' +validate File.join 'assets', 'css', 'style.css' diff --git a/LeaseOS/start.html b/LeaseOS/start.html new file mode 100644 index 0000000..714f0ff --- /dev/null +++ b/LeaseOS/start.html @@ -0,0 +1,107 @@ + + + + + LeaseOS + + + + + + + + + + + +
+ + + + +
+ + + + diff --git a/LeaseOS/thumbnail.png b/LeaseOS/thumbnail.png new file mode 100644 index 0000000..d06bb2a Binary files /dev/null and b/LeaseOS/thumbnail.png differ diff --git a/_config.yml b/_config.yml deleted file mode 100644 index cff8426..0000000 --- a/_config.yml +++ /dev/null @@ -1,30 +0,0 @@ -title: Ordered Systems Lab at U-M -email: ryanph@umich.edu -description: >- # this means to ignore newlines until "baseurl:" - This is the website for the Ordered Systems Lab (a.k.a Order Lab) at - University of Michigan, led by Prof. Ryan Huang. -baseurl: "" # the subpath of your site, e.g. /blog -url: "" # the base hostname & protocol for your site, e.g. http://example.com -github_username: OrderLab -permalink: /blog/:year/:month/:day/:title/ - -# Build settings -markdown: kramdown -theme: minima -plugins: - - jekyll-last-modified-at - -defaults: - - scope: - path: "" - type: "posts" - values: - layout: post - author: OrderLab - -exclude: - - Gemfile - - Gemfile.lock - -keep_files: [LeaseOS] -timezone: America/New_York diff --git a/_data/allpubs.yml b/_data/allpubs.yml deleted file mode 100644 index b0561b8..0000000 --- a/_data/allpubs.yml +++ /dev/null @@ -1,905 +0,0 @@ -- title: 'LiteLib: Containing Failure Impact for Stateful Applications with Compact Replicas' - conference: NSDI 2027 - year: 2026 - authors: - - yichen - - sitefan - - rishika - - poyuhou - - maizhe - - ryan - links: - conference: - url: https://www.usenix.org/conference/nsdi27 - paper: - url: '#' -- title: 'BRAIN: A Unified and Centralized Approach to Automated Outage Declaration at Azure Scale' - conference: NSDI 2027 - year: 2026 - authors: - - cong - - youjiang - - chang - - ryan - - yingnong - show_et_al: true - links: - conference: - url: https://www.usenix.org/conference/nsdi27 - paper: - url: '#' -- title: 'OpGuard: Bitwise Alignment for Precise and General Debugging of Production LLM Training' - conference: OSDI 2026 - year: 2026 - authors: - - ziming - - yinjie - - hang - - wenxiao - - zhihao - - yunzhang - - shuguang - - haibin - - ryan - links: - conference: - url: https://www.usenix.org/conference/osdi26 - paper: - url: paper/opguard-osdi26.pdf - bib: - url: paper/opguard-osdi26.bib - talk: - url: slides/opguard_osdi26_slides.pdf - web: - url: https://orderlab.io/OpGuard - highlight: Best Paper Nominee -- title: 'TrainVerify: Equivalence-Based Verification for Distributed LLM Training' - conference: SOSP 2025 - year: 2025 - authors: - - yunchi - - youshan - - chengtan - - ryan - - yizhu - - xianzhang - - fanyang - links: - conference: - url: https://sigops.org/s/conferences/sosp/2025/ - paper: - url: paper/trainverify-sosp25.pdf - bib: - url: paper/trainverify.bib - arxiv: - url: https://arxiv.org/abs/2506.15961 - talk: - url: slides/trainverify_sosp25_slides.pdf - software: - url: https://github.com/verify-llm/TrainVerify -- title: 'Optimistic Recovery for High-Availability Software via Partial Process State Preservation' - conference: SOSP 2025 - year: 2025 - authors: - - yuzhuo - - yuqimai - - angting - - yichen - - wanning - - xiaoyang - - peter - - ryan - links: - conference: - url: https://sigops.org/s/conferences/sosp/2025/ - paper: - url: paper/phoenix-sosp25.pdf - bib: - url: paper/phoenix.bib - talk: - url: slides/phoenix_sosp25_slides.pdf - software: - url: https://github.com/OrderLab/phoenix -- title: 'Mitigating Application Resource Overload with Targeted Task Cancellation' - conference: SOSP 2025 - year: 2025 - authors: - - yigong - - zeyin - - yicheng - - yile - - shuangyu - - baris - - ryan - links: - conference: - url: https://sigops.org/s/conferences/sosp/2025/ - paper: - url: paper/atropos-sosp25.pdf - bib: - url: paper/atropos.bib - talk: - url: slides/atropos_sosp25_slides.pdf - software: - url: https://github.com/OrderLab/Atropos -- title: 'Training with Confidence: Catching Silent Errors in Deep Learning Training with Automated Proactive Checks' - conference: OSDI 2025 - year: 2025 - authors: - - yuxuan - - ziming - - boyu - - beijie - - runhui - - ryan - links: - conference: - url: https://www.usenix.org/conference/osdi25 - paper: - url: paper/traincheck-osdi25-preprint.pdf - bib: - url: paper/traincheck-osdi25.bib - arxiv: - url: https://www.arxiv.org/abs/2506.14813 - talk: - url: slides/traincheck_osdi25_slides.pdf - software: - url: https://github.com/OrderLab/TrainCheck - coverages: - - url: https://cse.engin.umich.edu/stories/improving-ai-models-automated-tool-detects-silent-errors-in-deep-learning-training - site: CSE News - - url: https://news.engin.umich.edu/2025/07/improving-ai-models-automated-tool-detects-silent-errors-in-deep-learning-training - site: Michigan Engineering News - - url: https://techxplore.com/news/2025-07-ai-automated-tool-silent-errors.html - site: Tech Xplore -- title: 'Deriving Semantic Checkers from Tests to Detect Silent Failures in Production Distributed Systems' - conference: OSDI 2025 - year: 2025 - authors: - - chang - - dimas - - yujin - - zhewen - - diwang - - yuzhuo - - achmad - - ding - - suman - - ryan - links: - conference: - url: https://www.usenix.org/conference/osdi25 - paper: - url: paper/t2c-osdi25-preprint.pdf - bib: - url: paper/t2c-osdi25.bib - software: - url: https://github.com/OrderLab/T2C -- title: 'One-Size-Fits-None: Understanding and Enhancing Slow-Fault Tolerance in Modern Distributed Systems' - conference: NSDI 2025 - year: 2025 - authors: - - ruiming - - yunchi - - yuxuan - - guangtao - - ryan - links: - conference: - url: https://www.usenix.org/conference/nsdi25 - paper: - url: paper/xinda-nsdi25-preprint.pdf - bib: - url: paper/xinda-nsdi25.bib - talk: - url: slides/xinda_nsdi25_slides.pdf - software: - url: https://github.com/OrderLab/xinda - coverages: - - url: https://cse.engin.umich.edu/stories/a-new-tool-to-manage-slow-faults - site: CSE News - - url: https://techxplore.com/news/2025-05-tool-faults-real-adjustment.html - site: Tech Xplore -- title: 'Efficient Reproduction of Fault-Induced Failures in Distributed Systems with Feedback-Driven Fault Injection' - conference: SOSP 2024 - year: 2024 - authors: - - tony - - haoze - - tanakorn - - suman - - ryan - author_note: - tony: '*' - haoze: '*' - note: '*: equal contribution' - links: - conference: - url: https://sigops.org/s/conferences/sosp/2024 - paper: - url: paper/anduril-sosp24.pdf - bib: - url: paper/anduril-sosp24.bib - talk: - url: slides/anduril_sosp24_slides.pdf - software: - url: https://github.com/OrderLab/Anduril -- title: 'Efficient Exposure of Partial Failure Bugs in Distributed Systems with Inferred Abstract States' - conference: NSDI 2024 - year: 2024 - authors: - - haoze - - tony - - ryan - links: - conference: - url: https://www.usenix.org/conference/nsdi24 - paper: - url: paper/legolas-nsdi24-preprint.pdf - bib: - url: paper/legolas-nsdi24.bib - talk: - url: slides/legolas_nsdi24_slides.pdf - software: - url: https://github.com/OrderLab/Legolas -- title: 'Simplifying Cloud Management with Cloudless Computing' - conference: HotNets 2023 - year: 2023 - authors: - - yimingqiu - - patrickkon - - jiarong - - yibo - - hongyi - - xinyu - - ryan - - mosharaf - - ang - links: - conference: - url: https://conferences.sigcomm.org/hotnets/2023 - paper: - url: paper/cloudless-hotnets23.pdf - bib: - url: paper/cloudless-hotnets23.bib -- title: 'Pushing Performance Isolation Boundaries into Application with pBox' - conference: SOSP 2023 - year: 2023 - authors: - - yigong - - gongqi - - ryan - links: - conference: - url: https://sosp2023.mpi-sws.org - paper: - url: paper/pbox-sosp23.pdf - bib: - url: paper/pbox-sosp23.bib - talk: - url: slides/pbox_sosp23_slides.pdf - software: - url: https://github.com/OrderLab/pBox -- title: 'Effective Performance Issue Diagnosis with Value-Assisted Cost Profiling' - conference: EuroSys 2023 - year: 2023 - authors: - - lingmei - - yigong - - ryan - - jasonnieh - - junfeng - links: - conference: - url: https://2023.eurosys.org - paper: - url: paper/vprof-eurosys23.pdf - bib: - url: paper/vprof-eurosys23.bib - talk: - url: slides/vprof_eurosys23_slides.pdf - software: - url: https://github.com/wenglingmei/vprofAE -- title: 'Operating System Support for Safe and Efficient Auxiliary Execution' - conference: OSDI 2022 - year: 2022 - authors: - - yuzhuo - - ryan - links: - conference: - url: https://www.usenix.org/conference/osdi22 - paper: - url: paper/orbit-osdi22.pdf - bib: - url: paper/orbit-osdi22.bib - talk: - url: slides/orbit_osdi22_slides.pdf - software: - url: https://github.com/OrderLab/orbit -- title: 'Demystifying and Checking Silent Semantic Violations in Large Distributed Systems' - conference: OSDI 2022 - year: 2022 - authors: - - chang - - yuzhuo - - ryan - links: - conference: - url: https://www.usenix.org/conference/osdi22 - paper: - url: paper/oathkeeper-osdi22.pdf - bib: - url: paper/oathkeeper-osdi22.bib - talk: - url: slides/oathkeeper_osdi22_slides.pdf - software: - url: https://github.com/OrderLab/OathKeeper -- title: 'RESIN: A Holistic Service for Dealing with Memory Leaks in Production Cloud Infrastructure' - conference: OSDI 2022 - year: 2022 - authors: - - chang - - cong - - ryan - - yingnong - - siqin - - xinsheng - - xukunli - - qingwei - - murali - links: - conference: - url: https://www.usenix.org/conference/osdi22 - paper: - url: paper/resin-osdi22.pdf - bib: - url: paper/resin-osdi22.bib - talk: - url: slides/resin_osdi22_slides.pdf -- title: 'Argus: Debugging Performance Issues in Modern Desktop Applications with Annotated Causal Tracing' - conference: ATC 2021 - year: 2021 - authors: - - lingmei - - ryan - - jasonnieh - - junfeng - links: - conference: - url: https://www.usenix.org/conference/atc21 - paper: - url: paper/argus-atc21.pdf - bib: - url: paper/argus.bib - talk: - url: slides/argus_atc21_slides.pdf - software: - url: https://github.com/columbia/ArgusDebugger - highlight: Best Paper Award - -- title: 'Understanding and Dealing with Hard Faults in Persistent Memory Systems' - conference: EuroSys 2021 - year: 2021 - authors: - - brianchoi - - randalburns - - ryan - links: - conference: - url: https://2021.eurosys.org - paper: - url: paper/arthas-eurosys21.pdf - techreport: - url: paper/arthas-tech-report.pdf - bib: - url: paper/arthas-eurosys21.bib - talk: - url: slides/arthas_eurosys_slides.pdf - software: - url: https://github.com/OrderLab/Arthas -- title: 'Automated Reasoning and Detection of Specious Configuration in Large Systems with Symbolic Execution' - conference: OSDI 2020 - year: 2020 - authors: - - yigong - - gongqi - - ryan - links: - conference: - url: https://www.usenix.org/conference/osdi20 - paper: - url: paper/violet-osdi20.pdf - techreport: - url: paper/violet-tech-report.pdf - bib: - url: paper/violet-osdi20.bib - talk: - url: slides/violet_osdi20_slides.pdf - software: - url: https://github.com/OrderLab/violet -- title: 'Predictive and Adaptive Failure Mitigation to Avert Production Cloud VM Interruptions' - conference: OSDI 2020 - year: 2020 - authors: - - sebastien - - randolph - - youjiang - - yingnong - - ryan - - zhengmu - - puzhao - - tarunramani - - nagagovindraju - - xukunli - - qingwei - - gillapid - - murali - links: - conference: - url: https://www.usenix.org/conference/osdi20 - paper: - url: paper/narya-osdi20.pdf - bib: - url: paper/narya-osdi20.bib - techreport: - url: paper/narya-tech-report.pdf -- title: 'Understanding, Detecting and Localizing Partial Failures in Large System Software' - conference: NSDI 2020 - year: 2020 - authors: - - chang - - ryan - - scott - links: - conference: - url: https://www.usenix.org/conference/nsdi20 - paper: - url: paper/omegagen-nsdi20.pdf - bib: - url: paper/omegagen.bib - talk: - url: slides/omegagen_nsdi20_slides.pdf - coverages: - - url: https://blog.acolyer.org/2020/03/16/omega-gen - site: The Morning Paper - highlight: Best Paper Award -- title: 'Gandalf: An Intelligent, End-To-End Analytics Service for Safe Deployment in Large-Scale Cloud Infrastructure' - conference: NSDI 2020 - year: 2020 - authors: - - ze - - qian - - ken - - yingnong - - ryan - - pankaj - - xinsheng - - qingwei - - youjiang - - sebastien - - murali - links: - conference: - url: https://www.usenix.org/conference/nsdi20 - paper: - url: paper/gandalf-nsdi20.pdf - bib: - url: paper/gandalf.bib - coverages: - - url: https://blog.acolyer.org/2020/02/28/microsoft-gandalf - site: The Morning Paper -- title: 'Scaling Performance Issue Detection and Diagnosis in Cloud Infrastructures' - conference: AAAI-20 Workshop on Cloud Intelligence - year: 2020 - authors: - - yigong - - ze - - ryan - - suhas - - francis - - yingnong - - murali - links: - conference: - url: https://cloudintelligenceworkshop.org - paper: - url: paper/sdig-aaai20-workshop.pdf - bib: - url: paper/sdig-aaai20.bib -- title: 'Comprehensive and Efficient Runtime Checking in System Software through Watchdogs' - conference: HotOS 2019 - year: 2019 - authors: - - chang - - ryan - - scott - links: - conference: - url: http://hotos19.sigops.org - paper: - url: paper/watchdog-hotos19.pdf - bib: - url: paper/watchdog.bib - talk: - url: slides/watchdog_hotos19_slides.pdf -- title: 'URSA: Hybrid Block Storage for Cloud-Scale Virtual Disks' - conference: EuroSys 2019 - year: 2019 - authors: - - huiba - - yimingz - - dongsheng - - zhimingz - - shengyun - - ryan - - zhengqin - - kaichen - - yongqiang - links: - conference: - url: https://www.eurosys2019.org - paper: - url: 'paper/ursa-eurosys19.pdf' - bib: - url: paper/ursa.bib -- title: 'A Case for Lease-Based, Utilitarian Resource Management on Mobile Devices' - conference: ASPLOS 2019 - year: 2019 - authors: - - yigong - - suyi - - ryan - links: - conference: - url: https://asplos-conference.org - paper: - url: paper/leaseos-asplos19.pdf - bib: - url: paper/leaseos.bib - software: - url: https://github.com/OrderLab/leaseos_frameworks_base - talk: - url: slides/leaseos_asplos19_slides.pptx - highlight: Best Paper Award - coverages: - - url: https://blog.acolyer.org/2019/05/31/lease-os - site: The Morning Paper -- title: 'AIOps: Real-World Challenges and Research Innovations' - tb: ICSE 2019 Technical Briefings - year: 2019 - authors: - - yingnong - - qingwei - - ryan - links: - conference: - url: https://2019.icse-conferences.org/info/technical-briefings - paper: - url: paper/aiops-icse19-briefing.pdf - analytic: aiops_briefing.pdf - bib: - url: paper/aiops.bib - analytic: aiops.bib -- title: 'Capturing and Enhancing In Situ System Observability for Failure Detection' - conference: OSDI 2018 - year: 2018 - authors: - - ryan - - chuanxiong - - jay - - lidong - - yingnong - links: - conference: - url: https://www.usenix.org/conference/osdi18 - paper: - url: paper/panorama-osdi18.pdf - bib: - url: paper/panorama.bib - software: - url: https://github.com/ryanphuang/panorama - talk: - url: slides/panorama_osdi18_slides.pdf - coverages: - - url: https://blog.acolyer.org/2018/10/15/capturing-and-enhancing-in-situ-system-observability-for-failure-detection - site: The Morning Paper - - url: https://blog.csdn.net/TiDB_PingCAP/article/details/84388408 - site: CSDN -- title: 'End-to-End Automated Exploit Generation for Validating the Security of Processor Designs' - conference: MICRO 2018 - year: 2018 - authors: - - rui - - calvin - - ryan - - cynthia - highlight: Best Paper Candidate - links: - conference: - url: https://www.microarch.org/micro51 - paper: - url: https://cs.unc.edu/~csturton/papers/zhang2018MICRO.pdf - bib: - url: paper/coppelia.bib -- title: 'TerseCades: Efficient Data Compression in Stream Processing' - conference: USENIX ATC 2018 - year: 2018 - authors: - - gennady - - chuanxiong - - mj - - ryan - - lidong - links: - conference: - url: - paper: - url: paper/tersecades-atc18.pdf - bib: - url: paper/tersecades.bib -- title: 'Gray Failure: The Achilles’ Heel of Cloud-Scale Systems' - conference: HotOS 2017 - year: 2017 - authors: - - ryan - - chuanxiong - - lidong - - jay - - yingnong - - murali - - randolph - links: - conference: - url: https://www.sigops.org/hotos/hotos17 - paper: - url: paper/grayfailure-hotos17.pdf - bib: - url: paper/grayfailure.bib - talk: - url: slides/grayfailure_hotos17_slides.pdf - coverages: - - url: https://blog.acolyer.org/2017/06/15/gray-failure-the-achilles-heel-of-cloud-scale-systems - site: The morning paper - - url: http://www.zdnet.com/article/how-clouds-fail - site: ZDNet - - url: http://storagemojo.com/2017/07/24/how-high-redundancy-can-hurt-availability - site: StorageMojo - - url: https://news.ycombinator.com/item?id=16253405 - site: Hacker News -- title: Early Detection of Configuration Errors to Reduce Failure Damage - conference: OSDI 2016 - year: 2016 - authors: - - tianyin - - xinxin - - ryan - - yy - - shan - - long - - shankar - highlight: Best Paper Award - links: - conference: - url: https://www.usenix.org/conference/osdi16 - paper: - url: http://opera.ucsd.edu/paper/osdi16-pcheck.pdf - bib: - url: paper/pcheck.bib -- title: 'DefDroid: Towards a More Defensive Mobile OS Against Disruptive App Behavior' - conference: MobiSys 2016 - year: 2016 - authors: - - ryan - - tianyin - - xinxin - - yy - links: - conference: - url: http://www.sigmobile.org/mobisys/2016 - paper: - url: paper/defdroid-mobisys16.pdf - bib: - url: paper/defdroid.bib - talk: - url: slides/defdroid_mobisys16_slides.pdf - video: - url: https://youtu.be/lguUoitv80U - web: - url: https://defdroid.github.io -- title: Saving Mobile App Developers from Network Disruptions - conference: EuroSys 2016 - year: 2016 - authors: - - xinxin - - ryan - - tianyin - - yy - links: - conference: - url: http://eurosys16.doc.ic.ac.uk - paper: - url: paper/nchecker-eurosys16.pdf - bib: - url: paper/nchecker.bib -- title: 'ConfValley: A Systematic Configuration Validation Framework for Cloud Services' - conference: EuroSys 2015 - year: 2015 - authors: - - ryan - - bill - - abhishek - - yy - links: - conference: - url: http://eurosys2015.labri.fr - paper: - url: paper/confvalley-eurosys15.pdf - analytic: confvalley-eurosys15.pdf - bib: - url: paper/confvalley.bib - analytic: confvalley.bib - talk: - url: slides/confvalley_eurosys15_slides.pdf -- title: Experience in Building a Comparative Performance Analysis Engine for a Commercial System - tr: - UC San Diego Technical Report CS2015-1014 - year: 2015 - authors: - - ryan - - craig - - vincent - - steven - - dongcai - - yy - - lawrence - links: - paper: - url: paper/perfanalysis_techreport.pdf - analytic: perfanalysis_techreport.pdf - bib: - url: paper/perfanalysis.bib - analytic: perfanalysis.bib -- title: 'Why Does a Cloud-Scale Service Fail Despite Fault-Tolerance?' - conference: OSDI 2014 - year: 2014 - authors: - - ryan - - xinxin - - bill - - yy - links: - conference: - url: https://www.usenix.org/conference/osdi14 - paper: - note: Retracted for confidentiality reasons -- title: Performance Regression Testing Target Prioritization via Performance Risk Analysis - conference: ICSE 2014 - year: 2014 - authors: - - ryan - - xiao - - dongcai - - yy - links: - conference: - url: http://2014.icse-conferences.org - paper: - url: paper/perfscope-icse14.pdf - bib: - url: paper/perfscope.bib - talk: - url: slides/perfscope_icse14_slides.pdf - software: - url: http://ryanphuang.github.io/perfscope -- title: Do Not Blame Users for Misconfigurations - conference: SOSP 2013 - year: 2013 - authors: - - tianyin - - jiaqi - - ryan - - jing - - tianwei - - ding - - yy - - shankar - links: - conference: - url: http://sigops.org/sosp/sosp13 - paper: - url: http://cseweb.ucsd.edu/~tixu/papers/sosp13.pdf - bib: - url: paper/spex.bib -- title: 'eDoctor: Automatically Diagnosing Abnormal Battery Drain Issues on Smartphones' - conference: NSDI 2013 - year: 2013 - authors: - - xiao - - ryan - - xinxin - - pei - - soyeon - - yy - - lawrence - - geoff - links: - conference: - url: https://www.usenix.org/conference/nsdi13 - paper: - url: paper/edoctor-nsdi13.pdf - bib: - url: paper/edoctor.bib -- title: Understanding Latent Interactions in Online Social Networks - journal: TWEB 7(4), Oct. 2013 - year: 2013 - authors: - - jingjiang - - christo - - xiaowang - - wenpeng - - ryan - - yafei - - ben - links: - conference: - url: http://tweb.acm.org - paper: - url: http://people.cs.uchicago.edu/~ravenben/publications/pdf/latent-tweb13.pdf - bib: - url: paper/latent-tweb13.bib -- title: 'Be Conservative: Enhancing Failure Diagnosis with Proactive Logging' - conference: OSDI 2012 - year: 2012 - authors: - - ding - - soyeon - - ryan - - yang - - michael - - xiaoming - - yy - - stefan - links: - conference: - url: http://www.usenix.org/events/osdi12 - paper: - url: http://opera.ucsd.edu/paper/osdi12-errlog.pdf - bib: - url: paper/errlog.bib - data: - url: http://opera.ucsd.edu/errlog.htm -- title: 'Understanding Latent Interactions in Online Social Networks' - conference: IMC 2010 - year: 2010 - authors: - - jingjiang - - christo - - xiaowang - - ryan - - wenpeng - - yafei - - ben - links: - conference: - url: http://conferences.sigcomm.org/imc/2010 - paper: - url: http://conferences.sigcomm.org/imc/2010/papers/p369.pdf - bib: - url: paper/osn.bib -- title: A Multiple User Sharing Behaviors Based Approach for Fake File Detection in P2P Environments - journal: SCIS 53(11), Nov. 2010 - year: 2010 - authors: - - jingjiang - - yongjun - - qinyuan - - ryan - - yafei - links: - conference: - url: http://link.springer.com/journal/11432/53/11 - paper: - url: http://link.springer.com/content/pdf/10.1007%2Fs11432-010-4087-5.pdf - bib: - url: paper/p2pfakefile.bib diff --git a/_data/authors.yml b/_data/authors.yml deleted file mode 100644 index 8a61b82..0000000 --- a/_data/authors.yml +++ /dev/null @@ -1,317 +0,0 @@ -ryan: - name: Peng Huang - url: https://web.eecs.umich.edu/~ryanph -yy: - name: Yuanyuan Zhou - url: http://cseweb.ucsd.edu/~yyzhou -ding: - name: Ding Yuan - url: http://www.eecg.toronto.edu/~yuan -lawrence: - name: Lawrence K. Saul - url: http://cseweb.ucsd.edu/~saul -soyeon: - name: Soyeon Park -geoff: - name: Geoffrey M. Voelker - url: http://www.cs.ucsd.edu/~voelker -xinxin: - name: Xinxin Jin - url: http://cseweb.ucsd.edu/~x7jin -tianyin: - name: Tianyin Xu - url: http://cseweb.ucsd.edu/~tixu -shan: - name: Shan Lu - url: http://people.cs.uchicago.edu/~shanlu -long: - name: Long Jin -shankar: - name: Shankar Pasupathy -bill: - name: Bill Bolosky -abhishek: - name: Abhishek Singh -xiao: - name: Xiao Ma -dongcai: - name: Dongcai Shen -jiaqi: - name: Jiaqi Zhang -jing: - name: Jing Zheng -tianwei: - name: Tianwei Sheng -pei: - name: Pei Wang -yang: - name: Yang Liu -michael: - name: Michael M. Lee -xiaoming: - name: Xiaoming Tang -stefan: - name: Stefan Savage - url: http://cseweb.ucsd.edu/~savage -jingjiang: - name: Jing Jiang -christo: - name: Christo Wilson - url: http://www.ccs.neu.edu/home/cbw -xiaowang: - name: Xiao Wang -wenpeng: - name: Wenpeng Sha -yafei: - name: Yafei Dai -ben: - name: Ben Y. Zhao - url: http://www.cs.ucsb.edu/~ravenben -yongjun: - name: Yongjun Li -qinyuan: - name: Qinyuan Feng -craig: - name: Craig Schechter -vincent: - name: Vincent Chen -steven: - name: Steven Hill -chuanxiong: - name: Chuanxiong Guo - url: https://www.microsoft.com/en-us/research/people/chguo -lidong: - name: Lidong Zhou - url: https://www.microsoft.com/en-us/research/people/lidongz -jay: - name: Jacob R. Lorch - url: https://www.microsoft.com/en-us/research/people/lorch -yingnong: - name: Yingnong Dang -murali: - name: Murali Chintalapati -randolph: - name: Randolph Yao -gennady: - name: Gennady Pekhimenko - url: http://www.cs.toronto.edu/~pekhimenko -mj: - name: Myeongjae Jeon - url: https://sites.google.com/site/myeongjae -rui: - name: Rui Zhang - url: https://cs.unc.edu/~rzhang -cynthia: - name: Cynthia Sturton - url: https://cs.unc.edu/~csturton -calvin: - name: Calvin Deutschbein - url: http://cs.unc.edu/~cd -yigong: - name: Yigong Hu - url: https://yigonghu.github.io -suyi: - name: Suyi Liu - url: https://sylll.github.io -huiba: - name: Huiba Li -yimingz: - name: Yiming Zhang -zhimingz: - name: Zhiming Zhang -shengyun: - name: Shengyun Liu -dongsheng: - name: Dongsheng Li -zhengqin: - name: Zheng Qin -kaichen: - name: Kai Chen -yongqiang: - name: Yongqiang Xiong -chang: - name: Chang Lou - url: https://www.cs.jhu.edu/~chlou/about -scott: - name: Scott Smith - url: https://www.cs.jhu.edu/~scott -ze: - name: Ze Li -qian: - name: Qian Cheng -ken: - name: Ken Hsieh -pankaj: - name: Pankaj Singh -xinsheng: - name: Xinsheng Yang -qingwei: - name: Qingwei Lin -youjiang: - name: Youjiang Wu -sebastien: - name: Sebastien Levy -gongqi: - name: Gongqi Huang - url: https://gongqihuang.com -zhengmu: - name: Zheng Mu -puzhao: - name: Pu Zhao -tarunramani: - name: Tarun Ramani -nagagovindraju: - name: Naga Govindaraju -xukunli: - name: Xukun Li -gillapid: - name: Gil Lapid Shafriri -suhas: - name: Suhas Pinnamaneni -francis: - name: Francis David -brianchoi: - name: Brian Choi - url: https://portugasian.github.io -randalburns: - name: Randal Burns -lingmei: - name: Lingmei Weng -junfeng: - name: Junfeng Yang - url: http://www.cs.columbia.edu/~junfeng -jasonnieh: - name: Jason Nieh - url: http://www.cs.columbia.edu/~nieh -cong: - name: Cong Chen -siqin: - name: Si Qin -yuzhuo: - name: Yuzhuo Jing - url: https://osdi.dev -tony: - name: Jia Pan - url: https://tonypan123.github.io -haoze: - name: Haoze Wu - url: https://www.cs.jhu.edu/~hwu80 -yimingqiu: - name: Yiming Qiu - url: https://yimingqiu.me -patrickkon: - name: Patrick Tser Jern Kon -jiarong: - name: Jiarong Xing -yibo: - name: Yibo Huang -hongyi: - name: Hongyi Liu -xinyu: - name: Xinyu Wang - url: https://web.eecs.umich.edu/~xwangsd -mosharaf: - name: Mosharaf Chowdhury - url: https://www.mosharaf.com -ang: - name: Ang Chen - url: https://web.eecs.umich.edu/~chenang -tanakorn: - name: Tanakorn Leesatapornwongsa - url: https://www.microsoft.com/en-us/research/people/taleesat -suman: - name: Suman Nath - url: https://www.microsoft.com/en-us/research/people/sumann -ruiming: - name: Ruiming Lu - url: https://ruiming-lu.github.io -yunchi: - name: Yunchi Lu - url: https://luyunchi.github.io -yuxuan: - name: Yuxuan Jiang - url: https://essoz.github.io -guangtao: - name: Guangtao Xue -dimas: - name: Dimas Shidqi Parikesit -yujin: - name: Yujin Huang -zhewen: - name: Zhewen Yang -diwang: - name: Senapati Diwangkara -achmad: - name: Achmad Imam Kistijantoro -ziming: - name: Ziming Zhou - url: https://ziming-zh.github.io -boyu: - name: Boyu Xu -beijie: - name: Beijie Liu -runhui: - name: Runhui Xu -chengtan: - name: Cheng Tan - url: https://naizhengtan.github.io -youshan: - name: Youshan Miao - url: https://www.microsoft.com/en-us/research/people/yomia -yizhu: - name: Yi Zhu - url: https://www.microsoft.com/en-us/research/people/yizhu1 -xianzhang: - name: Xian Zhang - url: https://www.microsoft.com/en-us/research/people/zhxian -fanyang: - name: Fan Yang - url: https://www.microsoft.com/en-us/research/people/fanyang -yuqimai: - name: Yuqi Mai -angting: - name: Angting Cai -yichen: - name: Yi Chen - url: https://chenyi.world -wanning: - name: Wanning He - url: https://hwanning.netlify.app -xiaoyang: - name: Xiaoyang Qian -peter: - name: Peter M. Chen - url: https://web.eecs.umich.edu/~pmchen -zeyin: - name: Zeyin Zhang -yicheng: - name: Yicheng Liu -yile: - name: Yile Gu -shuangyu: - name: Shuangyu Lei -baris: - name: Baris Kasikci - url: https://homes.cs.washington.edu/~baris -yinjie: - name: Yinjie Zhao -hang: - name: Hang Zhu -wenxiao: - name: Wenxiao Wang -zhihao: - name: Zhihao Bai -yunzhang: - name: Yun Zhang -shuguang: - name: Shuguang Wang -haibin: - name: Haibin Lin -sitefan: - name: Site Fan -rishika: - name: Rishika Varma Kalidindi -poyuhou: - name: Po-Yu Hou -maizhe: - name: Maizhe Zhang diff --git a/_data/shortpubs.yml b/_data/shortpubs.yml deleted file mode 100644 index 40670b8..0000000 --- a/_data/shortpubs.yml +++ /dev/null @@ -1,518 +0,0 @@ -- title: 'LiteLib: Containing Failure Impact for Stateful Applications with Compact Replicas' - conference: NSDI 2027 - year: 2026 - authors: - - yichen - - sitefan - - rishika - - poyuhou - - maizhe - - ryan - links: - conference: - url: https://www.usenix.org/conference/nsdi27 - paper: - url: '#' -- title: 'BRAIN: A Unified and Centralized Approach to Automated Outage Declaration at Azure Scale' - conference: NSDI 2027 - year: 2026 - authors: - - cong - - youjiang - - chang - - ryan - - yingnong - show_et_al: true - links: - conference: - url: https://www.usenix.org/conference/nsdi27 - paper: - url: '#' -- title: 'OpGuard: Bitwise Alignment for Precise and General Debugging of Production LLM Training' - conference: OSDI 2026 - year: 2026 - authors: - - ziming - - yinjie - - hang - - wenxiao - - zhihao - - yunzhang - - shuguang - - haibin - - ryan - links: - conference: - url: https://www.usenix.org/conference/osdi26 - paper: - url: paper/opguard-osdi26.pdf - bib: - url: paper/opguard-osdi26.bib - talk: - url: slides/opguard_osdi26_slides.pdf - web: - url: https://orderlab.io/OpGuard - highlight: Best Paper Nominee -- title: 'TrainVerify: Equivalence-Based Verification for Distributed LLM Training' - conference: SOSP 2025 - year: 2025 - authors: - - yunchi - - youshan - - chengtan - - ryan - - yizhu - - xianzhang - - fanyang - links: - conference: - url: https://sigops.org/s/conferences/sosp/2025/ - paper: - url: paper/trainverify-sosp25.pdf - bib: - url: paper/trainverify.bib - arxiv: - url: https://arxiv.org/abs/2506.15961 - talk: - url: slides/trainverify_sosp25_slides.pdf - software: - url: https://github.com/verify-llm/TrainVerify -- title: 'Optimistic Recovery for High-Availability Software via Partial Process State Preservation' - conference: SOSP 2025 - year: 2025 - authors: - - yuzhuo - - yuqimai - - angting - - yichen - - wanning - - xiaoyang - - peter - - ryan - links: - conference: - url: https://sigops.org/s/conferences/sosp/2025/ - paper: - url: paper/phoenix-sosp25.pdf - bib: - url: paper/phoenix.bib - talk: - url: slides/phoenix_sosp25_slides.pdf - software: - url: https://github.com/OrderLab/phoenix -- title: 'Mitigating Application Resource Overload with Targeted Task Cancellation' - conference: SOSP 2025 - year: 2025 - authors: - - yigong - - zeyin - - yicheng - - yile - - shuangyu - - baris - - ryan - links: - conference: - url: https://sigops.org/s/conferences/sosp/2025/ - paper: - url: paper/atropos-sosp25.pdf - bib: - url: paper/atropos.bib - talk: - url: slides/atropos_sosp25_slides.pdf - software: - url: https://github.com/OrderLab/Atropos -- title: 'Training with Confidence: Catching Silent Errors in Deep Learning Training with Automated Proactive Checks' - conference: OSDI 2025 - year: 2025 - authors: - - yuxuan - - ziming - - boyu - - beijie - - runhui - - ryan - links: - conference: - url: https://www.usenix.org/conference/osdi25 - paper: - url: paper/traincheck-osdi25-preprint.pdf - bib: - url: paper/traincheck-osdi25.bib - arxiv: - url: https://www.arxiv.org/abs/2506.14813 - talk: - url: slides/traincheck_osdi25_slides.pdf - software: - url: https://github.com/OrderLab/TrainCheck - coverages: - - url: https://cse.engin.umich.edu/stories/improving-ai-models-automated-tool-detects-silent-errors-in-deep-learning-training - site: CSE News - - url: https://news.engin.umich.edu/2025/07/improving-ai-models-automated-tool-detects-silent-errors-in-deep-learning-training - site: Michigan Engineering News - - url: https://techxplore.com/news/2025-07-ai-automated-tool-silent-errors.html - site: Tech Xplore -- title: 'Deriving Semantic Checkers from Tests to Detect Silent Failures in Production Distributed Systems' - conference: OSDI 2025 - year: 2025 - authors: - - chang - - dimas - - yujin - - zhewen - - diwang - - yuzhuo - - achmad - - ding - - suman - - ryan - links: - conference: - url: https://www.usenix.org/conference/osdi25 - paper: - url: paper/t2c-osdi25-preprint.pdf - bib: - url: paper/t2c-osdi25.bib - software: - url: https://github.com/OrderLab/T2C -- title: 'One-Size-Fits-None: Understanding and Enhancing Slow-Fault Tolerance in Modern Distributed Systems' - conference: NSDI 2025 - year: 2025 - authors: - - ruiming - - yunchi - - yuxuan - - guangtao - - ryan - links: - conference: - url: https://www.usenix.org/conference/nsdi25 - paper: - url: paper/xinda-nsdi25-preprint.pdf - bib: - url: paper/xinda-nsdi25.bib - talk: - url: slides/xinda_nsdi25_slides.pdf - software: - url: https://github.com/OrderLab/xinda - coverages: - - url: https://cse.engin.umich.edu/stories/a-new-tool-to-manage-slow-faults - site: CSE News - - url: https://techxplore.com/news/2025-05-tool-faults-real-adjustment.html - site: Tech Xplore -- title: 'Efficient Reproduction of Fault-Induced Failures in Distributed Systems with Feedback-Driven Fault Injection' - conference: SOSP 2024 - year: 2024 - authors: - - tony - - haoze - - tanakorn - - suman - - ryan - author_note: - tony: '*' - haoze: '*' - note: '*: equal contribution' - links: - conference: - url: https://sigops.org/s/conferences/sosp/2024 - paper: - url: paper/anduril-sosp24-preprint.pdf - bib: - url: paper/anduril-sosp24.bib - talk: - url: slides/anduril_sosp24_slides.pdf - software: - url: https://github.com/OrderLab/Anduril -- title: 'Efficient Exposure of Partial Failure Bugs in Distributed Systems with Inferred Abstract States' - conference: NSDI 2024 - year: 2024 - authors: - - haoze - - tony - - ryan - links: - conference: - url: https://www.usenix.org/conference/nsdi24 - paper: - url: paper/legolas-nsdi24-preprint.pdf - bib: - url: paper/legolas-nsdi24.bib - talk: - url: slides/legolas_nsdi24_slides.pdf - software: - url: https://github.com/OrderLab/Legolas -- title: 'Pushing Performance Isolation Boundaries into Application with pBox' - conference: SOSP 2023 - year: 2023 - authors: - - yigong - - gongqi - - ryan - links: - conference: - url: https://sosp2023.mpi-sws.org - paper: - url: paper/pbox-sosp23.pdf - bib: - url: paper/pbox-sosp23.bib - talk: - url: slides/pbox_sosp23_slides.pdf - software: - url: https://github.com/OrderLab/pBox -- title: 'Effective Performance Issue Diagnosis with Value-Assisted Cost Profiling' - conference: EuroSys 2023 - year: 2023 - authors: - - lingmei - - yigong - - ryan - - jasonnieh - - junfeng - links: - conference: - url: https://2023.eurosys.org - paper: - url: paper/vprof-eurosys23.pdf - bib: - url: paper/vprof-eurosys23.bib - talk: - url: slides/vprof_eurosys23_slides.pdf - software: - url: https://github.com/wenglingmei/vprofAE -- title: 'Operating System Support for Safe and Efficient Auxiliary Execution' - conference: OSDI 2022 - year: 2022 - authors: - - yuzhuo - - ryan - links: - conference: - url: https://www.usenix.org/conference/osdi22 - paper: - url: paper/orbit-osdi22.pdf - bib: - url: paper/orbit-osdi22.bib - talk: - url: slides/orbit_osdi22_slides.pdf - software: - url: https://github.com/OrderLab/orbit -- title: 'Demystifying and Checking Silent Semantic Violations in Large Distributed Systems' - conference: OSDI 2022 - year: 2022 - authors: - - chang - - yuzhuo - - ryan - links: - conference: - url: https://www.usenix.org/conference/osdi22 - paper: - url: paper/oathkeeper-osdi22.pdf - bib: - url: paper/oathkeeper-osdi22.bib - talk: - url: slides/oathkeeper_osdi22_slides.pdf - software: - url: https://github.com/OrderLab/OathKeeper -- title: 'RESIN: A Holistic Service for Dealing with Memory Leaks in Production Cloud Infrastructure' - conference: OSDI 2022 - year: 2022 - authors: - - chang - - cong - - ryan - - yingnong - - siqin - - xinsheng - - xukunli - - qingwei - - murali - links: - conference: - url: https://www.usenix.org/conference/osdi22 - paper: - url: paper/resin-osdi22.pdf - talk: - url: slides/resin_osdi22_slides.pdf - bib: - url: paper/resin-osdi22.bib -- title: 'Argus: Debugging Performance Issues in Modern Desktop Applications with Annotated Causal Tracing' - conference: ATC 2021 - year: 2021 - authors: - - lingmei - - ryan - - jasonnieh - - junfeng - links: - conference: - url: https://www.usenix.org/conference/atc21 - paper: - url: paper/argus-atc21.pdf - bib: - url: paper/argus.bib - talk: - url: slides/argus_atc21_slides.pdf - software: - url: https://github.com/columbia/ArgusDebugger - highlight: Best Paper Award - -- title: 'Automated Reasoning and Detection of Specious Configuration in Large Systems with Symbolic Execution' - conference: OSDI 2020 - year: 2020 - authors: - - yigong - - gongqi - - ryan - links: - conference: - url: https://www.usenix.org/conference/osdi20 - paper: - url: paper/violet-osdi20.pdf - techreport: - url: paper/violet-tech-report.pdf - bib: - url: paper/violet-osdi20.bib - talk: - url: slides/violet_osdi20_slides.pdf - software: - url: https://github.com/OrderLab/violet -- title: 'Predictive and Adaptive Failure Mitigation to Avert Production Cloud VM Interruptions' - conference: OSDI 2020 - year: 2020 - authors: - - sebastien - - randolph - - youjiang - - yingnong - - ryan - - zhengmu - - puzhao - - tarunramani - - nagagovindraju - - xukunli - - qingwei - - gillapid - - murali - links: - conference: - url: https://www.usenix.org/conference/osdi20 - paper: - url: paper/narya-osdi20.pdf - bib: - url: paper/narya-osdi20.bib - techreport: - url: paper/narya-tech-report.pdf -- title: 'Understanding, Detecting and Localizing Partial Failures in Large System Software' - conference: NSDI 2020 - year: 2020 - authors: - - chang - - ryan - - scott - links: - conference: - url: https://www.usenix.org/conference/nsdi20 - paper: - url: paper/omegagen-nsdi20.pdf - bib: - url: paper/omegagen.bib - talk: - url: slides/omegagen_nsdi20_slides.pdf - coverages: - - url: https://blog.acolyer.org/2020/03/16/omega-gen - site: The Morning Paper - highlight: Best Paper Award -- title: 'A Case for Lease-Based, Utilitarian Resource Management on Mobile Devices' - conference: ASPLOS 2019 - year: 2019 - authors: - - yigong - - suyi - - ryan - links: - conference: - url: https://asplos-conference.org - paper: - url: paper/leaseos-asplos19.pdf - bib: - url: paper/leaseos.bib - software: - url: https://github.com/OrderLab/leaseos_frameworks_base - talk: - url: slides/leaseos_asplos19_slides.pptx - highlight: Best Paper Award - coverages: - - url: https://blog.acolyer.org/2019/05/31/lease-os - site: The Morning Paper -- title: 'Capturing and Enhancing In Situ System Observability for Failure Detection' - conference: OSDI 2018 - year: 2018 - authors: - - ryan - - chuanxiong - - jay - - lidong - - yingnong - links: - conference: - url: https://www.usenix.org/conference/osdi18 - paper: - url: paper/panorama-osdi18.pdf - bib: - url: paper/panorama.bib - software: - url: https://github.com/ryanphuang/panorama - talk: - url: slides/panorama_osdi18_slides.pdf - coverages: - - url: https://blog.acolyer.org/2018/10/15/capturing-and-enhancing-in-situ-system-observability-for-failure-detection - site: The Morning Paper - - url: https://blog.csdn.net/TiDB_PingCAP/article/details/84388408 - site: CSDN -- title: 'End-to-End Automated Exploit Generation for Validating the Security of Processor Designs' - conference: MICRO 2018 - year: 2018 - authors: - - rui - - calvin - - ryan - - cynthia - highlight: Best Paper Candidate - links: - conference: - url: https://www.microarch.org/micro51 - paper: - url: https://cs.unc.edu/~csturton/papers/zhang2018MICRO.pdf - bib: - url: paper/coppelia.bib -- title: 'Gray Failure: The Achilles’ Heel of Cloud-Scale Systems' - conference: HotOS 2017 - year: 2017 - authors: - - ryan - - chuanxiong - - lidong - - jay - - yingnong - - murali - - randolph - links: - conference: - url: https://www.sigops.org/hotos/hotos17 - paper: - url: paper/grayfailure-hotos17.pdf - bib: - url: paper/grayfailure.bib - talk: - url: slides/grayfailure_hotos17_slides.pdf - coverages: - - url: https://blog.acolyer.org/2017/06/15/gray-failure-the-achilles-heel-of-cloud-scale-systems - site: The Morning Paper - - url: http://www.zdnet.com/article/how-clouds-fail - site: ZDNet - - url: http://storagemojo.com/2017/07/24/how-high-redundancy-can-hurt-availability - site: StorageMojo - - url: https://news.ycombinator.com/item?id=16253405 - site: Hacker News diff --git a/_includes/banner.html b/_includes/banner.html deleted file mode 100644 index 3e4d2a3..0000000 --- a/_includes/banner.html +++ /dev/null @@ -1,36 +0,0 @@ -
- -
diff --git a/_includes/bottom.html b/_includes/bottom.html deleted file mode 100644 index 1438195..0000000 --- a/_includes/bottom.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/_includes/footer.html b/_includes/footer.html deleted file mode 100644 index e018c57..0000000 --- a/_includes/footer.html +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/_includes/head.html b/_includes/head.html deleted file mode 100644 index c8e132e..0000000 --- a/_includes/head.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - {% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %} - - - - - - - - - - - - - - diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index c0068af..0000000 --- a/_layouts/default.html +++ /dev/null @@ -1,13 +0,0 @@ - - - {% include head.html %} - - {% include banner.html %} - -
- {{ content }} - {% include footer.html %} -
- {% include bottom.html %} - - diff --git a/_layouts/home.html b/_layouts/home.html deleted file mode 100644 index 7717d78..0000000 --- a/_layouts/home.html +++ /dev/null @@ -1,12 +0,0 @@ - - - {% include head.html %} - - {% include banner.html %} -
- {{ content }} - {% include footer.html %} -
- {% include bottom.html %} - - diff --git a/_layouts/post.html b/_layouts/post.html deleted file mode 100644 index 02f77b0..0000000 --- a/_layouts/post.html +++ /dev/null @@ -1,32 +0,0 @@ - - - {% include head.html %} - - {% include banner.html %} -
-
-
-
-
-

OrderLab Blog

-

{{ page.title }}

- -
-
- {{ content }} -
- -
-
-
- {% include footer.html %} -
- {% include bottom.html %} - - diff --git a/_layouts/publication.html b/_layouts/publication.html deleted file mode 100644 index 1ace79b..0000000 --- a/_layouts/publication.html +++ /dev/null @@ -1,18 +0,0 @@ -
-
-{%- assign allpubs = site.data.allpubs -%} -{%- assign prevyear = null -%} -{%- for pub in allpubs -%} -{%- if pub.year != prevyear -%} -{%- if prevyear != null %} - -{%- endif %} -

{{ pub.year }}

-
    -{% assign prevyear = pub.year -%} -{%- endif -%} - {%- include pubitem.html pub=pub -%} -{%- endfor %} -
-
-
diff --git a/_layouts/single.html b/_layouts/single.html deleted file mode 100644 index 2ac695e..0000000 --- a/_layouts/single.html +++ /dev/null @@ -1,17 +0,0 @@ - - - {% include head.html %} - - {% include banner.html %} - -
-
-
- {{ content }} -
-
- {% include footer.html %} -
- {% include bottom.html %} - - diff --git a/_posts/2026-02-21-launching-orderlab-blog.md b/_posts/2026-02-21-launching-orderlab-blog.md deleted file mode 100644 index e1524f0..0000000 --- a/_posts/2026-02-21-launching-orderlab-blog.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Launching the OrderLab Blog -author: Ryan Huang ---- - -We have added a dedicated blog to the lab website to share technical updates in a faster, more narrative format than conference papers. - -Posts here will usually cover: - -- research ideas in progress, -- implementation notes from lab systems, -- paper highlights and context, -- and student milestones. - -For archival milestones and announcements, the [News]({{ '/news/' | relative_url }}) page remains the canonical timeline. diff --git a/_posts/2026-02-21-writing-posts-for-this-site.md b/_posts/2026-02-21-writing-posts-for-this-site.md deleted file mode 100644 index 63461e6..0000000 --- a/_posts/2026-02-21-writing-posts-for-this-site.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Writing Posts for This Site -author: OrderLab ---- - -Blog entries are standard Jekyll posts. Create a markdown file under `_posts/` with this naming pattern: - -`YYYY-MM-DD-title.md` - -Recommended front matter: - -```yaml ---- -title: Your Post Title -author: Your Name ---- -``` - -The site will automatically: - -- list the post on `/blog/`, -- render it with the post layout, -- and include the newest posts on the homepage. diff --git a/_scss/style.scss b/_scss/style.scss deleted file mode 100644 index 5898601..0000000 --- a/_scss/style.scss +++ /dev/null @@ -1,17 +0,0 @@ -@import "theme/variables"; -@import "theme/mixins"; -@import "theme/reset"; -@import "theme/header"; -@import "theme/responsive"; -@import "theme/banner"; -@import "theme/section-intro"; -@import "theme/home"; -@import "theme/blog"; -@import "theme/contact"; -@import "theme/btn"; -@import "theme/footer"; -@import "theme/projects"; -@import "theme/publications"; -@import "theme/news"; -@import "theme/about"; -@import "theme/modern"; diff --git a/_scss/theme/_about.scss b/_scss/theme/_about.scss deleted file mode 100644 index 564e98d..0000000 --- a/_scss/theme/_about.scss +++ /dev/null @@ -1,13 +0,0 @@ -.section-about { - font-size: 17px; - &__title{ - font-weight: 700; - color: $title-color; - margin-bottom: 10px; - } - &__photo{ - width: 500px; - top: 50px; - right: 50px; - } -} \ No newline at end of file diff --git a/_scss/theme/_banner.scss b/_scss/theme/_banner.scss deleted file mode 100644 index 333ecb4..0000000 --- a/_scss/theme/_banner.scss +++ /dev/null @@ -1,143 +0,0 @@ -/* banner section start - ============================================================================================ */ -.hero-banner{ - position: relative; - background: #002D72; - background-size: cover; - padding: 90px 0 60px 0; - // height: 400px; - z-index: 1; - - @media(min-width: 600px){ - padding: 150px 0 120px 0; - } - - @media(min-width: 991px){ - padding: 175px 0 160px 0; - } - - @media(min-width: 1200px){ - padding: 265px 0 275px 0; - } - - &__img{ - position: relative; - - @media(min-width: 1200px){ - img{ - position: absolute; - top: 0; - left: -110px; - } - } - } - - &__content{ - - - h1{ - color: $white; - margin-bottom: 22px; - } - - p{ - color: #fff; - margin-bottom: 45px; - } - } - - &::after{ - content: ""; - display: block; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 60%; - background: url(../img/banner/banner-bg.png) left center no-repeat; - background-size: cover; - z-index: -1; - } - - &--sm{ - padding: 0; - height: 300px; - - &::after{ - height: 100%; - } - - @media(min-width: 1000px){ - height: 500px; - } - - &__content{ - position: absolute; - top: 50%; - left: 50%; - width: 100%; - transform: translate(-50%, -50%); - margin-top: 20px; - text-align: center; - - @media(min-width: 600px){ - margin-top: 40px; - } - - & > *{ - color: #fff; - } - - h3{ - font-size: 27px; - margin-bottom: 0; - } - - h1{ - margin-bottom: 10px; - } - - h4{ - font-size: 18px; - } - } - } - - - -} -/* banner section end - ============================================================================================ */ - -/* breadcrumb section start - ============================================================================================ */ - .banner-breadcrumb{ - display: inline-block; - - .breadcrumb{ - background: transparent; - padding: 0; - - &-item{ - padding: .1rem; - - a{ - text-transform: capitalize; - color: #fff; - } - - &+.breadcrumb-item::before{ - color: #fff; - padding-left: .2rem; - padding-right: .4rem; - // content: "-"; - } - - &.active{ - color: #fff; - } - } - } - } -/* breadcrumb section end - ============================================================================================ */ diff --git a/_scss/theme/_blog.scss b/_scss/theme/_blog.scss deleted file mode 100644 index c18d510..0000000 --- a/_scss/theme/_blog.scss +++ /dev/null @@ -1,958 +0,0 @@ -/*=================== blog banner start ====================*/ -.blog-banner{ - position: relative; - - h4,h1,a{ - text-transform: capitalize; - color: #fff; - } - - h4{ - font-size: 18px; - margin-bottom: 15px; - } - - h1{ - font-size: 30px; - margin-bottom: 10px; - color: $title-color; - - @media(min-width: 992px){ - font-size: 36px; - } - } - - &-area{ - height: 280px; - position: relative; - z-index: 1; - - @media(min-width: 1000px){ - height: 410px; - } - - .blog-banner{ - position: absolute; - top: 50%; - left: 50%; - width: 100%; - transform: translate(-50%, -50%); - } - - - &::after{ - content: ""; - display: block; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: #f1f6f7; - z-index: -1; - } - } - - &-btn{ - border:2px solid $primary-color; - padding: 10px 45px; - - &:hover{ - background: $primary-color; - color: #fff; - } - } -} -/*=================== blog banner end ====================*/ - - - -/* Latest Blog Area css -============================================================================================ */ -.latest_blog_area{ - -} -.latest_blog_inner{ - -} -.l_blog_item{ - .l_blog_img{ - - } - .l_blog_text{ - .date{ - margin-top: 24px; - margin-bottom: 15px; - a{ - // color: $pfont; - font-size: 12px; - } - } - h4{ - font-size: 18px; - color: $title-color; - border-bottom: 1px solid #eeeeee; - margin-bottom: 0px; - padding-bottom: 20px; - @include transition; - &:hover{ - color: $primary-color; - } - } - p{ - margin-bottom: 0px; - padding-top: 20px; - } - } -} -/* End Latest Blog Area css -============================================================================================ */ - - -/* Causes Area css -============================================================================================ */ -.causes_area{ -} -.causes_slider{ - .owl-dots{ - text-align: center; - margin-top: 80px; - .owl-dot{ - height: 14px; - width: 14px; - background: #eeeeee; - display: inline-block; - margin-right: 7px; - &:last-child{ - margin-right: 0px; - } - &.active{ - background: $primary-color; - } - } - } -} -.causes_item{ - background: #fff; - .causes_img{ - position: relative; - .c_parcent{ - position: absolute; - bottom: 0px; - width: 100%; - left: 0px; - height: 3px; - background: rgba(255, 255, 255, .5); - span{ - width: 70%; - height: 3px; - background: $primary-color; - position: absolute; - left: 0px; - bottom: 0px; - &:before{ - content: "75%"; - position: absolute; - right: -10px; - bottom: 0px; - background: $primary-color; - color: #fff; - padding: 0px 5px; - } - } - } - } - .causes_text{ - padding: 30px 35px 40px 30px; - h4{ - color: $title-color; - // font-family: $rob; - font-size: 18px; - font-weight: 600; - margin-bottom: 15px; - cursor: pointer; - &:hover{ - color: $primary-color; - } - } - p{ - font-size: 14px; - line-height: 24px; - // color: $pfont; - font-weight: 300; - margin-bottom: 0px; - } - } - .causes_bottom{ - a{ - width: 50%; - border: 1px solid $primary-color; - text-align: center; - float: left; - line-height: 50px; - background: $primary-color; - color: #fff; - // font-family: $rob; - font-size: 14px; - font-weight: 500; - & + a{ - border-color: #eeeeee; - background: #fff; - font-size: 14px; - color: $title-color; - } - } - } -} -/* End Causes Area css -============================================================================================ */ - - - -/*================= latest_blog_area css =============*/ -.latest_blog_area{ - background: #f9f9ff; -} -.single-recent-blog-post{ - margin-bottom: 30px; - .thumb{ - overflow: hidden; - img{ - transition: all 0.7s linear; - } - } - .details{ - padding-top: 30px; - .sec_h4{ - line-height: 24px; - padding: 10px 0px 13px; - transition: all 0.3s linear; - &:hover{ - // color: $pfont; - } - } - } - .date{ - font-size: 14px; - line-height: 24px; - font-weight: 400; - } - &:hover{ - img{ - transform: scale(1.23) rotate(10deg); - } - } -} -.tags{ - .tag_btn{ - font-size: 12px; - font-weight: 500; - line-height: 20px; - border: 1px solid #eeeeee; - display: inline-block; - padding: 1px 18px; - text-align: center; - color: $title-color; - &:before{ - background: $primary-color; - } - & + .tag_btn{ - margin-left: 2px; - } - } -} - -/*========= blog_categorie_area css ===========*/ -.blog_categorie_area{ - padding-top: 30px; - padding-bottom: 30px; - // background: $lightGray; - - @media(min-width: 900px){ - padding-top: 80px; - padding-bottom: 80px; - } - - @media(min-width: 1100px){ - padding-top: 120px; - padding-bottom: 120px; - } -} -.categories_post{ - position: relative; - text-align: center; - cursor: pointer; - img{ - max-width: 100%; - } - .categories_details{ - position: absolute; - top: 20px; - left: 20px; - right: 20px; - bottom: 20px; - background: rgba(34, 34, 34, 0.75); - color: #fff; - transition: all 0.3s linear; - display: flex; - align-items: center; - justify-content: center; - h5{ - margin-bottom: 0px; - font-size: 18px; - line-height: 26px; - text-transform: uppercase; - color: #fff; - position: relative; -// &:before{ -// content: ""; -// height: 1px; -// width: 100%; -// background: #fff; -// position: absolute; -// bottom: 0px; -// left: 0px; -// } - } - p{ - font-weight: 300; - font-size: 14px; - line-height: 26px; - margin-bottom: 0px; - } - .border_line{ - margin: 10px 0px; - background: #fff; - width: 100%; - height: 1px; - } - } - &:hover{ - .categories_details{ - background: rgba(56, 74, 235, 0.85); - } - } -} - - - -/*============ blog_left_sidebar css ==============*/ -.blog_area{ - // background: $lightGray; -} -.blog_left_sidebar{ - -} -.blog_item{ - margin-bottom: 40px; -} -.blog_info{ - padding-top: 30px; - .post_tag{ - padding-bottom: 20px; - a{ - // font: 300 14px/21px $rob; - color: $title-color; - font-size: 14px; - &:hover{ - // color: $pfont; - } - &.active{ - color: $primary-color; - } - } - } - .blog_meta{ - li{ - a{ - // font: 300 14px/20px $rob; - color: #777777; - vertical-align: middle; - padding-bottom: 10px; - display: inline-block; - font-size: 14px; - i{ - color: $title-color; - font-size: 16px; - font-weight: 600; - padding-left: 15px; - line-height: 20px; - vertical-align: middle; - } - &:hover{ - color: $primary-color; - } - } - } - } -} -.blog_post{ - img{ - max-width: 100%; - } -} -.blog_details{ - padding-top: 20px; - h2{ - font-size: 24px; - line-height: 36px; - color: $title-color; - font-weight: 600; - transition: all 0.3s linear; - &:hover{ - color: $primary-color; - } - } - p{ - margin-bottom: 26px; - } -} -.view_btn{ - font-size: 14px; - line-height: 36px; - display: inline-block; - color: $title-color; - font-weight: 500; - padding: 0px 30px; - background: #fff; -} - -.blog_right_sidebar{ - border: 1px solid #eeeeee; - background: #fafaff; - padding: 30px; - .widget_title{ - font-size: 18px; - line-height: 25px; - background: $primary-color; - text-align: center; - color: #fff; - padding: 8px 0px; - margin-bottom: 30px; - } - .search_widget{ - .input-group{ - .form-control{ - font-size: 14px; - line-height: 29px; - border: 0px; - width: 100%; - font-weight: 300; - color: #fff; - padding-left: 20px; - border-radius: 45px; - z-index: 0; - background: $primary-color; - @include placeholder{ - color: #fff; - } - &:focus{ - box-shadow: none; - } - } - .btn-default{ - position: absolute; - right: 20px;; - background: transparent; - border: 0px; - box-shadow: none; - font-size: 14px; - color: #fff; - padding: 0px; - top: 50%; - transform: translateY(-50%); - z-index: 1; - } - } - } - .author_widget{ - text-align: center; - h4{ - font-size: 18px; - line-height: 20px; - color: $title-color; - margin-bottom: 5px; - margin-top: 30px; - } - p{ - margin-bottom: 0px; - } - .social_icon{ - padding: 7px 0px 15px; - a{ - font-size: 14px; - color: $title-color; - transition: all 0.2s linear; - & + a{ - margin-left: 20px; - } - &:hover{ - color: $primary-color; - } - } - } - } - .popular_post_widget{ - .post_item{ - .media-body{ - justify-content: center; - align-self: center; - padding-left: 20px; - h3{ - font-size: 14px; - line-height: 20px; - color: $title-color; - margin-bottom: 4px; - transition: all 0.3s linear; - &:hover{ - color: $primary-color; - } - } - p{ - font-size:12px; - line-height: 21px; - margin-bottom: 0px; - } - } - & + .post_item{ - margin-top: 20px; - } - } - } - .post_category_widget{ - .cat-list{ - li{ - border-bottom: 2px dotted #eee; - transition: all 0.3s ease 0s; - padding-bottom: 12px; - a{ - font-size: 14px; - line-height: 20px; - color: #777; - p{ - margin-bottom: 0px; - } - } - & + li{ - padding-top: 15px; - } - &:hover{ - border-color: $primary-color; - a{ - color: $primary-color; - } - } - } - } - } - .newsletter_widget{ - text-align: center; - p{ - - } - .form-group{ - margin-bottom: 8px; - } - .input-group-prepend { - margin-right: -1px; - } - .input-group-text { - background: #fff; - border-radius: 0px; - vertical-align: top; - font-size: 12px; - line-height: 36px; - padding: 0px 0px 0px 15px; - border: 1px solid #eeeeee; - border-right: 0px; - - i{ - color: #cccccc; - } - } - .form-control{ - font-size: 12px; - line-height: 24px; - color: #cccccc; - border: 1px solid #eeeeee; - border-left: 0px; - border-radius: 0px; - @include placeholder{ - color: #cccccc; - } - &:focus{ - outline: none; - box-shadow: none; - } - } - .bbtns{ - background: $primary-color; - color: #fff; - font-size: 12px; - line-height: 38px; - display: inline-block; - font-weight: 500; - padding: 0px 24px 0px 24px; - border-radius: 0; - } - .text-bottom{ - font-size: 12px; - } - } - .tag_cloud_widget{ - ul{ - li{ - display: inline-block; - a{ - display: inline-block; - border: 1px solid #eee; - background: #fff; - padding: 0px 13px; - margin-bottom: 8px; - transition: all 0.3s ease 0s; - color: $title-color; - font-size: 12px; - &:hover{ - background: $primary-color; - color: #fff; - } - } - } - } - } - .br{ - width: 100%; - height: 1px; - background: rgb(238, 238, 238); - margin: 30px 0px; - } -} - -.blog-pagination { - padding-top: 25px; - padding-bottom: 95px; - .page-link { - border-radius: 0; - } - .page-item { - border: none; - } -} - -.page-link { - background: transparent; - font-weight: 400; -} - -.blog-pagination .page-item.active .page-link { - background-color: $primary-color; - border-color: transparent; - color:#fff; -} - -.blog-pagination .page-link { - position: relative; - display: block; - padding: 0.5rem 0.75rem; - margin-left: -1px; - line-height: 1.25; - color: #8a8a8a; - border: none; -} - -.blog-pagination .page-link .lnr { - font-weight: 600; -} - -.blog-pagination .page-item:last-child .page-link, -.blog-pagination .page-item:first-child .page-link { - border-radius: 0; -} - -.blog-pagination .page-link:hover { - color: #fff; - text-decoration: none; - background-color: $primary-color; - border-color: #eee; -} - - - -/*============ Start Blog Single Styles =============*/ - -.single-post-area { - .social-links { - padding-top: 10px; - li { - display: inline-block; - margin-bottom: 10px; - a { - color: #cccccc; - padding: 7px; - font-size: 14px; - transition: all 0.2s linear; - &:hover { - color: $title-color; - } - } - } - } - .blog_details{ - padding-top: 26px; - p{ - margin-bottom: 10px; - } - } - .quotes { - margin-top: 20px; - margin-bottom: 30px; - padding: 24px 35px 24px 30px; - background-color: rgb(255, 255, 255); - box-shadow: -20.84px 21.58px 30px 0px rgba(176, 176, 176, 0.1); - font-size: 14px; - line-height: 24px; - color: #777; - font-style: italic; - } - .arrow { - position: absolute; - .lnr { - font-size: 20px; - font-weight: 600; - } - } - .thumb { - .overlay-bg { - background: rgba(#000, .8); - } - } - .navigation-area { - border-top: 1px solid #eee; - padding-top: 30px; - margin-top: 60px; - p{ - margin-bottom: 0px; - } - h4{ - font-size: 18px; - line-height: 25px; - color: $title-color; - } - .nav-left { - text-align: left; - .thumb { - margin-right: 20px; - background: #000; - img { - @include transition(); - } - } - .lnr { - margin-left: 20px; - opacity: 0; - @include transition(); - } - &:hover { - .lnr { - opacity: 1; - } - .thumb { - img { - opacity: .5; - } - } - } - @media(max-width:767px) { - margin-bottom: 30px; - } - } - .nav-right { - text-align: right; - .thumb { - margin-left: 20px; - background: #000; - img { - @include transition(); - } - } - .lnr { - margin-right: 20px; - opacity: 0; - @include transition(); - } - &:hover { - .lnr { - opacity: 1; - } - .thumb { - img { - opacity: .5; - } - } - } - } - } - - .sidebar-widgets{ - @media(max-width:991px){ - padding-bottom:0px; - } - } -} - -.comments-area { - background:#fafaff; - border: 1px solid #eee; - padding: 50px 30px; - margin-top: 50px; - @media(max-width: 414px) { - padding: 50px 8px; - } - h4 { - text-align: center; - margin-bottom: 50px; - color: $title-color; - font-size: 18px; - } - h5 { - font-size: 16px; - margin-bottom: 0px; - } - a { - color: $title-color; - } - .comment-list { - padding-bottom: 48px; - &:last-child { - padding-bottom: 0px; - } - &.left-padding { - padding-left: 25px; - } - @media(max-width:413px) { - .single-comment { - h5 { - font-size: 12px; - } - .date { - font-size: 11px; - } - .comment { - font-size: 10px; - } - } - } - } - .thumb { - margin-right: 20px; - } - .date { - font-size: 13px; - color: #cccccc; - margin-bottom: 13px; - } - .comment { - color: #777777; - margin-bottom: 0px; - } - .btn-reply { - background-color: #fff; - color: $title-color; - // border:1px solid #eee; - padding: 5px 18px; - font-size: 12px; - display: block; - font-weight:400; - @include transition(); - &:hover { - background-color: $primary-color; - color: #fff; - font-weight: 700; - } - } -} - -.comment-form { - background:#fafaff; - text-align: center; - border: 1px solid #eee; - padding: 47px 30px 43px; - margin-top: 50px; - margin-bottom: 20px; - - .form-group{ - margin-bottom: 20px; - } - - h4 { - text-align: center; - margin-bottom: 50px; - font-size: 18px; - line-height: 22px; - color: $title-color; - } - .name { - padding-left: 0px; - @media(max-width: 767px) { - padding-right: 0px; - margin-bottom: 1rem; - } - } - .email { - padding-right: 0px; - @media(max-width: 991px) { - padding-left: 0px; - } - } - .form-control { - padding: 8px 20px; - background: #fff; - border: none; - border-radius: 0px; - width: 100%; - font-size: 14px; - color: #777777; - border: 1px solid transparent; - &:focus { - box-shadow: none; - border: 1px solid #eee; - } - - &::placeholder{ - color: #777777; - } - } - textarea{ - &.form-control{ - height: 140px; - resize: none; - } - } - ::-webkit-input-placeholder { - /* Chrome/Opera/Safari */ - font-size: 13px; - color: #777; - } - ::-moz-placeholder { - /* Firefox 19+ */ - font-size: 13px; - color: #777; - } - :-ms-input-placeholder { - /* IE 10+ */ - font-size: 13px; - color: #777; - } - :-moz-placeholder { - /* Firefox 18- */ - font-size: 13px; - color: #777; - } -} - - -/*============ End Blog Single Styles =============*/ - - - - diff --git a/_scss/theme/_btn.scss b/_scss/theme/_btn.scss deleted file mode 100644 index 73d5970..0000000 --- a/_scss/theme/_btn.scss +++ /dev/null @@ -1,87 +0,0 @@ -/*=================== custom button rule start ====================*/ -.button{ - display: inline-block; - border: 1px solid transparent; - text-transform: capitalize; - font-size: 15px; - font-weight: 500; - padding: 10px 24px; - border-radius: 30px; - background-color: $white; - color: $primary-color; - color: $title-color; - transition: all .4s ease; - - i,span{ - margin-left: 5px; - } - - @media(min-width: 900px){ - // padding: 12px 40px; - padding: 12px 45px; - } - - &:hover{ - background-color: transparent; - border-color: $primary-color; - color: #000022; - } - - &-header{ - padding: 12px 40px; - } - - &.bg:hover{ - border-color: $white; - color: $white; - } - - &-light{ - background-color: transparent; - border-color: $primary-color; - - &:hover{ - background-color: $primary-color; - color: $white; - } - } - - &-blog{ - border: 1px solid $primary-color; - border-radius: 4px; - font-size: 12px; - text-transform: uppercase; - letter-spacing: 1px; - font-weight: 500; - color: #222222; - padding: 7px 30px; - - &:hover{ - background-color: $primary-color; - color: $white; - } - } - - &-postComment{ - font-size: 12px; - text-transform: uppercase; - letter-spacing: 1px; - background-color: $primary-color; - color: $white; - border-radius: 4px; - padding: 14px 45px; - } - - &-contactForm{ - font-size: 15px; - background-color: $primary-color; - color: $white; - padding: 12px 36px; - - &:hover{ - border-color: $primary-color; - color: $primary-color; - } - } -} -/*=================== custom button rule end ====================*/ diff --git a/_scss/theme/_clients.scss b/_scss/theme/_clients.scss deleted file mode 100644 index 41a86f1..0000000 --- a/_scss/theme/_clients.scss +++ /dev/null @@ -1,286 +0,0 @@ -/* Our Major Cause Area css -============================================================================================ */ - -.our_major_cause { - .owl-item { - padding: 0 10px; - margin-bottom: 50px; - @media(max-width: 576px) { - margin-bottom: 0; - } - } - .card { - border: 0; - // box-shadow: 0 10px 44px -7px rgba(221, 221, 221, 0.85); - box-shadow: 0 3px 14px 0px rgba(221, 221, 221, 0.85); - margin-bottom: 30px; - overflow: hidden; - .card-body { - @media(max-width: 576px) { - padding: 5px; - } - } - figure { - overflow: hidden; - margin: 0; - img { - @include transition(); - } - } - .card_inner_body { - padding: 20px 12px 30px; - .card-body-top { - margin-bottom: 30px; - span { - // color: $dip; - } - } - } - .card-text { - margin-bottom: 0; - } - .progress { - overflow: visible; - height: 4px; - position: relative; - background: rgba(255, 255, 255, 0.2); - top: -4px; - .progress-bar { - // background-color: $baseColor; - span { - position: absolute; - bottom: -49px; - right: 11px; - font-size: 14px; - // color: $dip; - } - } - } - &:hover { - img { - @include transform(scale(1.2)); - } - .main_btn2 { - // background: $baseColor; - // border: 1px solid $baseColor; - color: $white; - } - } - } -} - -/* Clients Logo Area css -============================================================================================ */ - -.clients_logo_area { - .clients_slider { - .item { - text-align: center; - img { - width: auto; - text-align: center; - display: block; - margin: auto; - line-height: 70px; - @include filter(grayscale(100%)); - opacity: .2; - @include transition; - } - &:hover { - img { - opacity: 1; - @include filter(grayscale(0%)); - } - } - } - } -} - -.sponsors_logo_area { - .item { - text-align: center; - } -} - -/* End Clients Logo Area css -============================================================================================ */ - -/* Clients Says Area css -============================================================================================ */ - - -.says_left { - max-width: 335px; - h3 { - // color: $dip; - font-size: 36px; - line-height: 45px; - margin-bottom: 20px; - margin-top: 30px; - } - p { - margin-bottom: 0px; - } -} - -.says_item { - background: #fff; - border: 1px solid #eeeeee; - border-radius: 10px; - padding-left: 30px; - padding-right: 30px; - padding-top: 55px; - padding-bottom: 55px; - @include transition; - h4 { - font-size: 20px; - // color: $dip; - margin-bottom: 13px; - } - h5 { - // color: $pfont; - // font-family: $rob; - font-weight: 300; - font-size: 14px; - margin-bottom: 32px; - } - p { - margin-bottom: 0px; - } - &:hover { - box-shadow: 0px 10px 30px 0px rgba(98, 71, 234, 0.1); - border-color: #fff; - } -} - -/* End Clients Says Area css -============================================================================================ */ - -/* Start About Us css -=========================================================================================== */ - -.about_us { - .about_img { - &:after { - content: ''; - position: absolute; - // background: $lightGray; - top: 30px; - bottom: -5px; - left: -10px; - right: -10px; - z-index: 1; - @media (max-width: 1024px) { - background: $white; - } - } - img { - position: relative; - z-index: 2; - box-shadow: 0px 13px 35px #c9c9c9; - } - } - .content_wrapper { - padding: 25px 0; - h1 { - margin-bottom: 40px; - } - .main_btn { - margin-top: 50px; - } - } - .bottom_para { - margin-top: 50px; - } -} - -/* About Us css End -=========================================================================================== */ - -/* Start recent Events css -=========================================================================================== */ - -.recent_event { - .single_event { - margin-bottom: 30px; - figure { - overflow: hidden; - margin: 0; - position: relative; - img { - @include transition(); - } - } - .content_wrapper { - padding: 22px 28px 10px 0px; - @media(max-width: 1024px) { - padding: 0; - } - @media(max-width:1024px) { - margin-top: 0; - } - .date_time { - font-size: 12px; - margin-bottom: 10px; - @media(max-width: 1024px) { - margin-bottom: 0; - } - } - .title { - margin-bottom: 20px; - @media(max-width: 1024px) { - margin-bottom: 10; - } - a { - // color: $dip; - } - } - } - &:hover { - .title { - a { - // color: $baseColor; - } - } - img { - @include transform(scale(1.2)); - } - .img-overlay { - background: initial; - } - } - } -} - -/* recent Events css End -=========================================================================================== */ - -/* Start recent Details css -=========================================================================================== */ - -.event_details { - .event_content { - margin-top: 40px; - } - .left_content { - margin-top: 38px; - @media(max-width: 991px) { - margin-top: 0; - } - p { - i { - margin-right: 10px; - } - } - } - .right_content { - h2 { - margin-bottom: 20px; - } - p { - &:last-child { - margin-bottom: 0; - } - } - } -} diff --git a/_scss/theme/_contact.scss b/_scss/theme/_contact.scss deleted file mode 100644 index 85f83cc..0000000 --- a/_scss/theme/_contact.scss +++ /dev/null @@ -1,132 +0,0 @@ -/*=================== contact banner start ====================*/ -.contact-banner{ - position: relative; - - h4,h1,a{ - text-transform: uppercase; - color: #fff; - } - - h4{ - font-size: 18px; - margin-bottom: 15px; - } - - h1{ - font-size: 37px; - margin-bottom: 5px; - - @media(min-width: 992px){ - font-size: 48px; - } - } - - &-area{ - height: 280px; - background: url('../../assets/images/contact-bg.png') center center no-repeat; - background-size: cover; - position: relative; - z-index: 1; - - @media(min-width: 991px){ - height: 450px; - } - - .contact-banner{ - position: absolute; - top: 50%; - left: 50%; - width: 100%; - transform: translate(-50%, -50%); - } - - - &::after{ - content: ""; - display: block; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: rgba(1, 2, 11, 0.7); - z-index: -1; - } - } - - &-btn{ - border:2px solid $primary-color; - padding: 10px 45px; - - &:hover{ - background: $primary-color; - color: #fff; - } - } -} - -.contact-info{ - - &__icon{ - margin-right: 20px; - - i,span{ - color: $primary-color; - font-size: 20px; - } - } - - .media-body{ - - h3{ - font-size: 16px; - margin-bottom: 0; - - a{ - color: $title-color; - } - } - - p{ - color: #999999; - } - } -} -/*=================== contact banner end ====================*/ - - -/*=================== contact form start ====================*/ -.form-contact{ - - .form-group{ - margin-bottom: 10px; - } - - .form-control{ - border-radius: 0; - height: 40px; - padding-left: 18px; - border-color: transparent; - background: rgba(130, 139, 178, 0.1); - - &:focus{ - outline: 0; - box-shadow: none; - } - - &::placeholder{ - font-size: 14px; - color: #999999; - } - } - - .different-control{ - height: 100% !important; - } - - // button{ - // border: 0; - // } -} - -/*=================== contact form end ====================*/ diff --git a/_scss/theme/_footer.scss b/_scss/theme/_footer.scss deleted file mode 100644 index 4bb6049..0000000 --- a/_scss/theme/_footer.scss +++ /dev/null @@ -1,140 +0,0 @@ -/* footer style start - ============================================================================================ */ -.footer-area { - padding: 20px 0px 20px; - background: #0e1424; - @media (max-width: 991px) { - // background: $title-color; - padding: 60px 0px; - } - .single-footer-widget { - @media (max-width: 991px) { - margin-bottom: 30px; - } - - p{ - color: #7b838a; - } - - h4 { - color: $white; - font-size: 22px; - margin-bottom: 25px; - font-weight: 600; - @media (max-width: 1024px) { - font-size: 18px; - } - @media (max-width: 991px) { - margin-bottom: 15px; - } - } - ul { - li { - margin-bottom: 10px; - a { - // @include transition(); - color: $link-color; - // &:hover { - // color: $primary-color; - // } - } - } - } - .form-wrap { - margin-top: 25px; - } - input { - height: 48px; - border: none; - width: 67% !important; - font-weight: 400; - background: rgba(255, 255, 255, 0.2); - color: $white; - padding-left: 20px; - border-radius: 0; - font-size: 14px; - padding: 10px; - &:focus { - outline: none; - box-shadow: none; - } - @include placeholder { - padding-left: 10px; - color: $link-color; - } - } - .click-btn { - // @extend .gradient-bg; - font-family: $text-font; - color: $title-color; - border-radius: 0; - border-top-left-radius: 0px; - border-bottom-left-radius: 0px; - padding: 8px 20px; - border: 0; - font-size: 14px; - background: $white; - font-weight: 500; - text-transform: capitalize; - position: relative; - left: 0; - &:focus { - outline: none; - box-shadow: none; - } - - @media(max-width: 375px){ - margin-top: 10px; - } - - @media(min-width: 400px){ - left: -50px; - } - } - } - .footer-bottom { - margin-top: 10px; - @media (max-width: 991px) { - margin-top: 20px; - } - p { - color: $link-color; - - a{ - color: $white; - } - } - // span { - // font-weight: 700; - // } - .footer-social { - text-align: center; - @media (max-width: 991px) { - text-align: left; - margin-top: 30px; - } - a { - background: rgba(255, 255, 255, 0.15); - margin-left: 3px; - width: 32px; - color: $white; - display: inline-grid; - text-align: center; - height: 32px; - align-content: center; - // @include transition(); - &:hover { - // @extend .gradient-bg; - background: $white; - color: $primary-color; - } - - i,span{ - font-size: 14px; - } - } - } - } -} -/* footer style end - ============================================================================================ */ diff --git a/_scss/theme/_header.scss b/_scss/theme/_header.scss deleted file mode 100644 index f342e1f..0000000 --- a/_scss/theme/_header.scss +++ /dev/null @@ -1,285 +0,0 @@ -/* header style start - ============================================================================================ */ - .header_area{ - position: absolute; - top: 0; - width: 100%; - z-index: 99; - // background: #fff; - transition: background 0.4s, all 0.3s linear; - - .navbar-right{ - min-width: 200px; - text-align: right; - - @media(max-width: 991px){ - margin: 20px 0; - } - } - - .navbar-brand{ - margin-right: 30px; - } - .navbar-social{ - min-width: 95px; - float: right; - - li{ - margin-right: 12px; - - i,span{ - font-size: 13px; - color: $black; - } - - &:last-child{ - margin-right: 0; - } - - a:hover i,span{ - color: $primary-color; - } - } - } -.menu_nav{ - width: 100%; -} - .navbar{ - background: transparent; - padding: 5px 0; - border: 0px; - border-radius: 0px; - width: 100%; - @media(min-width: 991px){ - padding: 20px 0; - } - .nav{ - .nav-item{ - margin-right: 30px; - .nav-link{ - // font: 500 12px/100px $rob; - font-family: $text-font; - color: $white; - font-size: 18px; - text-transform: capitalize; - font-weight: 700; - // color: #fff; - // padding: 30px 0; - display: inline-block; - &:after{ - display: none; - } - } - &:hover, &.active{ - .nav-link{ - color: #ffcb05; - } - } - &.submenu{ - position: relative; - ul{ - border: none; - padding: 0px; - border-radius: 0px; - box-shadow: none; - margin: 0px; - background: #fff; - @media (min-width: 992px){ - position: absolute; - top: 120%; - left: 0px; - min-width: 200px; - text-align: left; - opacity: 0; - transition: all 300ms ease-in; - visibility: hidden; - display: block; - border: none; - padding: 0px; - border-radius: 0px; - box-shadow: 0px 10px 30px 0px rgba(0, 0, 0, 0.4); - } - &:before{ - content: ""; - width: 0; - height: 0; - border-style: solid; - border-width: 10px 10px 0 10px; - border-color: #eeeeee transparent transparent transparent; - position: absolute; - right: 24px; - top: 45px; - z-index: 3; - opacity: 0; - transition: all 400ms linear; - } - .nav-item{ - display: block; - float: none; - margin-right: 0px; - border-bottom: 1px solid #ededed; - margin-left: 0px; - transition: all 0.4s linear; - .nav-link{ - line-height: 45px; - // color: $dip; - color: $primary-color !important; - padding: 0px 30px; - transition: all 150ms linear; - display: block; - margin-right: 0px; - } - &:last-child{ - border-bottom: none; - } - &:hover{ - .nav-link{ - background-color: $primary-color; - color: #fff !important; - } - } - } - } - &:hover{ - ul{ - @media (min-width: 992px){ - visibility: visible; - opacity: 1; - top: 100%; - } - .nav-item{ - margin-top: 0px; - } - } - } - } - &:last-child{ - margin-right: 0px; - } - } - } - .search{ - font-size: 12px; - line-height: 60px; - display: inline-block; - // color: $dip; - margin-left: 80px; - i{ - font-weight: 600; - } - } - } -&.navbar_fixed{ - .main_menu{ - position: fixed; - width: 100%; - top: -70px; - left: 0; - right: 0; - background: #002d72; - z-index: 99; - // background: $baseColor; - transform: translateY(70px); - transition: transform 500ms ease, background 500ms ease; - -webkit-transition: transform 500ms ease, background 500ms ease; - box-shadow: 0px 3px 16px 0px rgba(0, 0, 0, 0.1); - .navbar{ - .nav{ - .nav-item{ - .nav-link{ - line-height: 20px; - } - } - } - } - } -} -&.white_menu{ - .navbar{ - .navbar-brand{ - @media(min-width: 992px){ - img{ - display: none; - & + img{ - display: inline-block; - } - } - } - @media(max-width: 991px){ - img{ - display: inline-block; - & + img{ - display: none; - } - } - } - } - .nav{ - .nav-item{ - .nav-link{ - color: #fff; - } - } - } - } - &.navbar_fixed{ - .main_menu{ - .navbar{ - .navbar-brand{ - img{ - display: inline-block; - & + img{ - display: none; - } - } - } - .nav{ - .nav-item{ - .nav-link{ - line-height: 70px; - // color: $dip; - } - } - } - } - } - } -} -} - -.top_menu{ -background: #ec9d5f; -.float-left{ - a{ - line-height: 40px; - display: inline-block; - color: #fff; - // font-family: $rob; - text-transform: uppercase; - font-size: 12px; - margin-right: 50px; - @include transition; - &:last-child{ - margin-right: 0px; - } - &:hover{ - // color: $baseColor; - } - } -} -.float-right{ - .pur_btn{ - // background: $baseColor; - color: #fff; - // font-family: $rob; - line-height: 40px; - display: block; - padding: 0px 40px; - font-weight: 500; - font-size: 12px; - } -} -} - -/* header style end - ============================================================================================ */ diff --git a/_scss/theme/_home.scss b/_scss/theme/_home.scss deleted file mode 100644 index 4d6afa4..0000000 --- a/_scss/theme/_home.scss +++ /dev/null @@ -1,798 +0,0 @@ -.main_title h2 { - text-align: center!important; -} - -.card-feature{ - padding: 15px 15px; - border: 0; - border-radius: 0; - background: #faf9ff; - @include transition; - - &__icon{ - margin-bottom: 12px; - - i,span{ - font-size: 30px; - color: $primary-color; - } - } - - &__title{ - font-size: 22px; - font-weight: 600; - } - - &__subtitle{ - margin-bottom: 0; - } - - &:hover{ - background: $white; - box-shadow: 0px 10px 20px 0px rgba(33, 20, 106, 0.1); - } -} - - - -.about{ - - &__img{ - - } - - &__content{ - - h2{ - margin-bottom: 20px; - } - - p{ - margin-bottom: 38px; - } - } -} - - - -.offer-single{ - margin-bottom: 30px; - - @media(min-width: 991px){ - margin-bottom: 50px; - } - - &__content{ - border: 0; - border-radius: 0; - background: #faf9ff; - padding: 30px 23px; - @include transition; - - h4{ - font-size: 22px; - font-weight: 600; - } - - p{ - margin-bottom: 0; - } - - &:hover{ - background: $white; - box-shadow: 0px 10px 20px 0px rgba(33, 20, 106, 0.1); - } - } - - &__icon{ - display: inline-block; - margin-bottom: 15px; - - i,span{ - font-size: 30px; - color: $primary-color; - } - } - - @media(min-width: 991px){ - &__img{ - position: absolute; - width: 100%; - // height: 100%; - top: 50%; - transform: translateY(-50%); - // left: 110px; - - @media(min-width: 1200px){ - transform: translateY(0); - top: 50px; - left: 100px; - } - } - } - - - &-wrapper{ - - .offer-single:nth-child(even){ - - @media(min-width: 991px){ - position: relative; - top: 40px; - } - } - } -} - - -.solution{ - - &__img{ - @media(min-width: 1200px){ - position: relative; - left: -60px; - } - } - - &__content{ - // max-width: 460px; - - @media(min-width: 1200px){ - padding-left: 30px; - padding-right: 45px; - } - - h2{ - margin-bottom: 20px; - } - - p{ - margin-bottom: 30px; - } - } -} - -.card-pricing{ - background: #faf9ff; - border-radius: 3px; - border: 0; - @include transition; - - &:hover{ - background: $white; - box-shadow: 0px 20px 25.5px 4.5px rgba(33, 20, 106, 0.1); - - .button{ - background: $primary-color; - color: $white; - } - } - - &__header{ - border-bottom: 1px solid #ebebeb; - padding: 40px 7px; - - h4{ - font-size: 27px; - font-weight: 700; - margin-bottom: 5px; - } - - p{ - margin-bottom: 27px; - } - } - - &__price{ - font-size: 40px; - font-family: $text-font; - font-weight: 700; - margin: 0; - - @media(min-width: 991px){ - font-size: 60px; - } - - span{ - font-size: 40px; - vertical-align: middle; - position: relative; - bottom: 5px; - } - } - - &__list{ - padding: 30px 8px 25px 8px; - border-bottom: 1px solid #ebebeb; - - li{ - margin-bottom: 12px; - - &:last-child{ - margin-bottom: 0; - } - - i,span{ - font-size: 13px; - margin-right: 10px; - } - - &.unvalid{ - - i,span{ - color: #f81c1c; - font-size: 12px; - } - } - } - } - - &__footer{ - padding: 45px 0; - } -} - -/* Start team members css -============================================================================================ */ -.team_members_area { - padding-bottom: 100px; - @media (max-width: 991px) { - padding-bottom: 40px; - } -} - -.single-team-member { - margin-bottom: 15px; - .thumb { - position: relative; - .img-team { - width: 200px; - height: 200px; - border-radius: 50%; - } - } - .meta-text { - background: $offwhite; - padding: 15px 15px; - box-shadow: 0px 0px 30px rgba(153, 153, 153, 0.13); - @include transition(); - @media (max-width: 991px) { - padding: 20px 20px; - } - background: #ffffff; - h4 { - font-size: 16px; - margin-bottom: 0px; - } - .designation { - font-size: 14px; - min-height: 20px; - margin-bottom: 5px; - } - a { - font-size: 16px; - margin: 0 10px; - @include transition(); - } - b { - color: #3a414e; - } - } - &:hover { - .meta-text { - box-shadow: 0px 10px 30px rgba($title-color, 0.15); - } - } -} -/* End team members css -============================================================================================ */ - -/* Start Event Area css -============================================================================================ */ - -.events_area { - padding: 130px 0 100px; - background: $title-color; - @media (max-width: 991px) { - padding: 70px 0; - } - .event-link { - color: $primary-color; - font-size: 13px; - text-transform: uppercase; - img { - margin-left: 5px; - display: inline-block; - } - } -} - -.single_event { - margin-bottom: 30px; - .event_thumb { - overflow: hidden; - img { - @include transition(); - } - } - .event_details { - background: rgba($title-color, 0.5); - position: absolute; - top: 0px; - right: 0px; - width: 275px; - padding: 30px 25px; - color: #ffffff; - .date { - color: #ffffff; - padding-right: 15px; - border-right: 2px solid #fff; - font-family: $title-font; - font-size: 14px; - span { - display: block; - color: $primary-color; - font-size: 28px; - font-weight: 500; - } - } - .time-location { - padding-left: 15px; - font-size: 14px; - p { - margin-bottom: 0px; - span { - color: #ffffff; - font-size: 13px; - font-weight: 500; - } - } - } - } - &:hover { - img { - transform: scale(1.1); - } - h4 { - a { - color: $primary-color; - } - } - } -} - -/* End Event Area css -============================================================================================ */ - -.testimonial{ - max-width: 970px; - margin-right: auto; - margin-left: auto; - - &__item{ - // position: relative; - } - - &__img{ - width: 120px; - height: 120px; - margin-left: auto; - margin-right: auto; - position: relative; - top: 30px; - z-index: 5; - } - - &__content{ - background: $white; - padding: 50px 10px 35px 10px; - position: relative; - // border: 1px solid red; - - @media(min-width: 1000px){ - padding: 50px 20px 35px 20px; - } - - h3{ - font-size: 22px; - font-weight: 600; - margin-bottom: 0; - } - - p{ - font-size: 14px; - } - } - - &__i{ - font-size: 15px !important; - font-style: italic; - margin-bottom: 0; - } - - &__icon{ - font-size: 173px; - color: rgba(119, 119, 119, 0.1); - position: absolute; - top : 50%; - transform: translateY(-50%); - right: 120px; - } - - .owl-dots{ - margin-top: 40px !important; - - .owl-dot{ - - span{ - width: 20px; - height: 6px; - background: rgb(211, 210, 213); - border-radius: 2px; - margin: 5px 10px; - } - - &.active span{ - background: $primary-color; - } - } - } -} -/* Start news card area css -============================================================================================ */ -.newscard_area { - .owl-carousel { - .owl-dots { - display: block !important; - text-align: center; - .owl-dot { - height: 10px; - width: 10px; - background: $white; - border-radius: 17px; - border: 2px solid #fff; - display: inline-block; - margin-right: 10px; - @include transition(); - &.active { - height: 12px; - width: 12px; - background: $link-color; - } - } - @media (max-width: 991px) { - display: none !important; - } - } - // .owl-item { - // img { - // width: auto !important; - // } - // } - } - .main_title { - h2 { - color: $white; - } - } -} -.newscard_item { - padding: 10px 15px; - margin-bottom: 200px; - margin-left: 10px; - margin: 0px 10px 10px; - box-shadow: 0px 15px 30px 0px rgba(221, 221, 221, 0.3); - background-color: $white; - @include transition(); - @media (max-width: 991px) { - margin-bottom: 0px; - } - @media (max-width: 575px) { - padding: 30px 20px; - } - img { - border-radius: 5px; - } - &__icon{ - i,span{ - font-size: 30px; - color: $primary-color; - } - } - .col-lg-2 { - padding-right: 0; - } - .col-lg-8 { - vertical-align: middle; - align-self: center; - } - .testi_text { - @media (max-width: 991px) { - margin-top: 50px; - } - h4 { - font-size: 20px; - margin-top: 5px; - text-transform: capitalize; - } - p { - margin-bottom: 0px; - } - } - &:hover { - box-shadow: 0px 10px 30px 0px rgba($title-color, 0.1); - } -} -/* End news card area css -============================================================================================ */ - -/* Start recent projects css -============================================================================================ */ - -.recent_projects { - padding-bottom: 10px; - @media (max-width: 991px) { - padding-bottom: 40px; - } - .owl-item { - opacity: 0; - @include transition(); - padding: 0px 10px; - padding-bottom: 30px; - } - .owl-item.active { - opacity: 1; - } - .owl-nav { - display: flex !important; - justify-content: space-between; - position: absolute; - top: 50%; - width: 120%; - transform: translateY(-50%); - left: -11%; - @media (max-width: 991px) { - display: none!important; - } - .owl-prev, - .owl-next { - img { - @include filter(grayscale(100%)); - @include transition(); - &:hover { - @include filter(grayscale(0%)); - } - } - } - } -} - -.single_recent_project { - @include transition(); - .recent_project_head { - position: relative; - overflow: hidden; - img { - @include transition(); - } - } - .recent_project_content { - padding: 30px 26px; - background: $offwhite; - position: relative; - @include transition(); - .tag { - padding: 2px 21px; - font-size: 13px; - color: #fff; - background: $title-color; - text-transform: uppercase; - } - h4 { - font-size: 20px; - font-weight: 500; - a { - color: $title-color; - } - } - p { - margin: 0; - } - .recent_project_meta { - margin-top: 25px; - .meta_info { - a { - color: $title-color; - } - } - } - } - .authr_meta { - img { - width: auto !important; - display: inline-block !important; - } - span { - color: $title-color; - font-weight: 500; - } - } - &:hover { - box-shadow: 0px 10px 30px rgba($title-color, 0.1); - .recent_project_head { - img { - @include transform(scale(1.2)); - } - } - .recent_project_content { - background: #fff; - } - h4 { - a { - color: $primary-color; - } - } - } -} - -/* End recent projects css -============================================================================================ */ - -/* Start Courses Details Area css -============================================================================================ */ - -.course_details_area { - .title { - font-size: 21px; - border: none; - cursor: pointer; - margin-top: 40px; - border-bottom: 1px solid #eeeeee; - position: relative; - padding-bottom: 10px; - margin-bottom: 22px; - &:after { - content: ""; - position: absolute; - left: 0; - bottom: -1px; - height: 1px; - width: 74px; - background: $primary-color; - } - } -} - -.course_details_left { - .content_wrapper { - } - .content { - } - .course_list { - margin-bottom: 0; - @media (max-width: 575px) { - padding-left: 0; - } - li { - list-style: none; - margin-bottom: 20px; - .primary-btn { - background: #f9f9f9; - color: $text-color; - box-shadow: none; - font-size: 12px; - border-radius: 0px; - &:hover { - background: $primary-color; - color: #ffffff; - } - @media (max-width: 575px) { - min-width: 100px; - font-size: 10px; - padding: 0 10px; - } - } - &:last-child { - margin-bottom: 0; - } - } - } -} - -.right-contents { - @media (max-width: 991px) { - margin-top: 50px; - } - ul { - padding-left: 0; - li { - list-style: none; - background: #f9f9f9; - padding: 10px 22px; - margin-bottom: 10px; - a { - color: $text-color; - text-align: left; - p { - margin-bottom: 0px; - } - } - .or { - color: $title-color; - font-weight: 500; - } - } - } - .enroll { - margin-top: 10px; - width: 100%; - } - .reviews { - span, - .star { - width: 31%; - margin-bottom: 10px; - } - } - .avg-review { - background: #04091e; - text-align: center; - color: #ffffff; - font-size: 14px; - font-weight: 600; - padding: 20px 0px; - span { - font-size: 18px; - color: $primary-color; - } - @media (max-width: 991px) { - margin-bottom: 20px; - } - } - .single-reviews { - .thumb { - @media (max-width: 1024px) { - margin-right: 10px; - } - } - h5 { - display: inline-flex; - @media (max-width: 1024px) { - display: block; - } - .star { - margin-left: 10px; - @media (max-width: 1024px) { - margin: 10px 0; - } - } - } - } - .feedeback { - margin-top: 30px; - textarea { - resize: none; - height: 130px; - background: $offwhite; - &:focus { - box-shadow: none; - } - } - } - .star { - .checked { - color: $primary-color; - } - } - .comments-area { - padding: 0; - border: 0; - background: transparent; - .star { - margin-left: 20px; - } - } -} - -/* End Courses Details Area css -============================================================================================ */ diff --git a/_scss/theme/_mixins.scss b/_scss/theme/_mixins.scss deleted file mode 100644 index 3b2fffd..0000000 --- a/_scss/theme/_mixins.scss +++ /dev/null @@ -1,164 +0,0 @@ -/* mixin start - ============================================================================================ */ - -@mixin transition($args: all 0.3s ease 0s) { - -webkit-transition: $args; - -moz-transition: $args; - -o-transition: $args; - transition: $args; - } - - @mixin transition-duration($args1, $args2) { - -webkit-transition-duration: $args1, $args2; - -moz-transition-duration: $args1, $args2; - -o-transition-duration: $args1, $args2; - transition-duration: $args1, $args2; - } - - @mixin transition-delay($args1, $args2) { - -webkit-transition-delay: $args1, $args2; - -moz-transition-delay: $args1, $args2; - -o-transition-delay: $args1, $args2; - transition-delay: $args1, $args2; - } - - @mixin transition-property($args1, $args2) { - -webkit-transition-property: $args1, $args2; - -moz-transition-property: $args1, $args2; - -o-transition-property: $args1, $args2; - transition-property: $args1, $args2; - } - - - - @mixin gradient($deg, $args1, $args2) { - background: -webkit-linear-gradient($deg, $args1, $args2); - background: -moz-linear-gradient($deg, $args1, $args2); - background: -o-linear-gradient($deg, $args1, $args2); - background: linear-gradient($deg, $args1, $args2); - } - - - // fliter mixin - - @mixin filter($filter-type,$filter-amount) { - -webkit-filter: $filter-type+unquote('(#{$filter-amount})'); - -moz-filter: $filter-type+unquote('(#{$filter-amount})'); - -ms-filter: $filter-type+unquote('(#{$filter-amount})'); - -o-filter: $filter-type+unquote('(#{$filter-amount})'); - filter: $filter-type+unquote('(#{$filter-amount})'); - } - - - - @mixin transform($transform) { - -webkit-transform: $transform; - -moz-transform: $transform; - -ms-transform: $transform; - -o-transform: $transform; - transform: $transform; - } - - @mixin transform-origin($value) { - -webkit-transform-origin: $value; - -moz-transform-origin: $value; - -ms-transform-origin: $value; - -o-transform-origin: $value; - transform-origin: $value; - } - - @mixin backface-visibility($value) { - -webkit-backface-visibility: $value; - -moz-backface-visibility: $value; - backface-visibility: $value; - } - - @mixin calc ( $property, $expression ) { - #{$property}: -webkit-calc(#{$expression}); - #{$property}: -moz-calc(#{$expression}); - #{$property}: calc(#{$expression}); - } - - @mixin keyframes ( $animation-name ) { - @-webkit-keyframes #{$animation-name} { - @content; - } - @-moz-keyframes #{$animation-name} { - @content; - } - @-o-keyframes #{$animation-name} { - @content; - } - @keyframes #{$animation-name} { - @content; - } - } - - @mixin filter($filter) { - -webkit-filter: $filter; - -moz-filter: $filter; - -o-filter: $filter; - -ms-filter: $filter; - filter: $filter; -} - - // Placeholder Mixins - @mixin placeholder { - &.placeholder { - @content; - } - &:-moz-placeholder { - @content; - } - &::-moz-placeholder { - @content; - } - &::-webkit-input-placeholder { - @content; - } - } - - @mixin animation ($args) { - -webkit-animation: $args; - -moz-animation: $args; - -o-animation: $args; - animation: $args; - } - - /* Medium Layout: 1280px */ - @mixin medium { - @media (min-width: 992px) and (max-width: 1400px) { - @content; - } -} - - /* Tablet Layout: 768px */ - @mixin tablet { - @media (min-width: 768px) and (max-width: 1200px) { - @content; - } -} - - /* Mobile Layout: 320px */ - @mixin mobile { - @media (max-width: 767px) { - @content; - } -} - - /* Wide Mobile Layout: 480px */ - @mixin wide-mobile { - @media (min-width: 480px) and (max-width: 767px) { - @content; - } -} - - - @mixin cmq ($min, $max) { - @media (min-width: $min) and (max-width: $max) { - @content; - } -} - -/* mixin end - ============================================================================================ */ diff --git a/_scss/theme/_modern.scss b/_scss/theme/_modern.scss deleted file mode 100644 index 4f2e603..0000000 --- a/_scss/theme/_modern.scss +++ /dev/null @@ -1,345 +0,0 @@ -@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap"); - -:root { - --surface: #f5f8ff; - --surface-alt: #eef3fb; - --card: #ffffff; - --ink: #152338; - --muted: #5f6f86; - --line: #dce6f5; - --brand: #0f4aa8; - --brand-strong: #092f6a; - --accent: #00a6a6; - --shadow-sm: 0 8px 24px rgba(14, 38, 77, 0.08); - --shadow-md: 0 18px 46px rgba(14, 38, 77, 0.12); -} - -body { - font-family: "Manrope", sans-serif; - color: var(--ink); - background: - radial-gradient(60rem 30rem at 5% -20%, rgba(15, 74, 168, 0.14), transparent 70%), - radial-gradient(45rem 22rem at 98% 0%, rgba(0, 166, 166, 0.14), transparent 70%), - var(--surface); -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: "Space Grotesk", sans-serif; - color: var(--ink); - letter-spacing: -0.02em; -} - -p { - color: var(--muted); -} - -a { - color: var(--brand); -} - -a:hover { - color: var(--brand-strong); -} - -.container, -.box_1620 { - max-width: 1180px; -} - -.header_area { - position: sticky; - top: 0; - z-index: 1000; - background: transparent; - - .main_menu { - transition: all 0.3s ease; - } - - .navbar { - margin-top: 0.65rem; - margin-bottom: 0.65rem; - border: 1px solid rgba(220, 230, 245, 0.6); - border-radius: 1rem; - background: rgba(255, 255, 255, 0.88); - backdrop-filter: blur(12px); - box-shadow: var(--shadow-sm); - padding: 0.55rem 1rem; - } - - .navbar-brand img { - max-height: 56px; - width: auto; - } - - .navbar .nav .nav-item { - margin-right: 0; - } - - .navbar .nav .nav-item .nav-link { - color: var(--ink); - font-size: 0.94rem; - font-weight: 700; - border-radius: 999px; - padding: 0.5rem 0.95rem; - line-height: 1.2; - transition: all 0.2s ease; - } - - .navbar .nav .nav-item:hover .nav-link, - .navbar .nav .nav-item.active .nav-link { - background: rgba(15, 74, 168, 0.1); - color: var(--brand); - } - - &.navbar_fixed .main_menu { - position: static; - transform: none; - background: transparent; - box-shadow: none; - } -} - -.navbar-toggler { - margin: 0; -} - -.navbar-toggler span { - background: var(--ink) !important; -} - -.hero-banner { - border-radius: 1.35rem; - margin: 0 auto 2rem; - width: calc(100% - 1.5rem); - max-width: 1230px; - overflow: hidden; - background: linear-gradient(130deg, #0b2d63, #1354b8 56%, #0b8d8d); - box-shadow: var(--shadow-md); - padding: 9rem 0 6.5rem; -} - -.hero-banner::after { - opacity: 0.28; -} - -.hero-banner__content p { - color: rgba(242, 247, 255, 0.92); - font-size: 1.03rem; -} - -.hero-banner__content h1 { - color: #f8fbff; -} - -.hero-banner .button.bg { - border: 1px solid rgba(255, 255, 255, 0.45); - background: rgba(255, 255, 255, 0.15); - color: #ffffff; -} - -.hero-banner .button.bg:hover { - background: #ffffff; - color: var(--brand-strong); -} - -.hero-banner--sm { - padding: 6rem 0; -} - -.hero-banner--sm__content > * { - text-shadow: 0 8px 24px rgba(0, 0, 0, 0.24); -} - -.section-intro { - max-width: 760px; -} - -.section-intro__subtitle { - color: var(--muted); -} - -.card-feature, -.single-team-member .meta-text, -.single_recent_project, -.newslist li, -.blog-card, -.post-shell, -.single-post-content { - background: var(--card); - border: 1px solid var(--line); - border-radius: 1rem; - box-shadow: var(--shadow-sm); -} - -.card-feature { - padding: 1.2rem 1.15rem; -} - -.card-feature:hover, -.single-team-member:hover .meta-text, -.blog-card:hover { - transform: translateY(-4px); - box-shadow: var(--shadow-md); -} - -.button { - border-radius: 999px; - border-color: var(--brand); - color: var(--brand-strong); - font-weight: 700; -} - -.button-light { - border-color: var(--brand); - color: var(--brand); -} - -.button-light:hover { - background: var(--brand); - color: #fff; -} - -.recent_projects { - padding-bottom: 0; -} - -.single_recent_project { - overflow: hidden; -} - -.recent_project_content { - padding: 1.25rem 1.4rem 1.5rem; -} - -.newslist { - padding-left: 0; -} - -.newslist li { - list-style: none; - margin-bottom: 1rem; - padding: 1rem 1.2rem; - font-size: 1.06rem; -} - -.newslist details { - font-size: 0.98rem; - margin-top: 0.55rem; - margin-left: 0; - display: block; -} - -.newslist details[open] { - margin-left: 0; -} - -.newsdate { - color: var(--brand); -} - -.newsicon { - color: var(--brand); - width: 2.2rem; - padding-right: 0.3rem; -} - -.footer-area { - border-radius: 1rem 1rem 0 0; - background: #0b1a30; - margin-top: 2.5rem; -} - -.footer-area .footer-bottom p { - color: #c6d4ed; -} - -.blog-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); - gap: 1rem; -} - -.blog-card { - padding: 1.25rem; - transition: all 0.2s ease; -} - -.blog-card .meta { - font-size: 0.88rem; - color: var(--muted); - margin-bottom: 0.65rem; -} - -.blog-card h3 { - font-size: 1.2rem; - margin-bottom: 0.55rem; -} - -.blog-card p { - margin-bottom: 0.85rem; -} - -.blog-empty { - padding: 1.2rem; - border: 1px dashed #b9c9e2; - border-radius: 0.75rem; - background: #f8fbff; -} - -.post-shell { - padding: 1.7rem; -} - -.post-meta { - display: flex; - flex-wrap: wrap; - gap: 0.9rem; - margin-bottom: 1rem; - color: var(--muted); - font-size: 0.92rem; -} - -.single-post-content h1, -.single-post-content h2, -.single-post-content h3 { - margin-top: 1.35rem; -} - -.single-post-content { - margin-top: 1rem; - padding: 1.5rem; -} - -@media (max-width: 991px) { - .header_area .navbar { - margin-top: 0; - margin-bottom: 0; - border-radius: 0; - border: none; - background: rgba(255, 255, 255, 0.96); - } - - .header_area .navbar-collapse { - max-height: 65vh; - } - - .hero-banner { - width: 100%; - border-radius: 0; - padding: 7.2rem 0 4.5rem; - } - - .hero-banner--sm { - padding: 5.25rem 0 4rem; - } - - .newslist li { - font-size: 1rem; - } -} diff --git a/_scss/theme/_news.scss b/_scss/theme/_news.scss deleted file mode 100644 index 6192f82..0000000 --- a/_scss/theme/_news.scss +++ /dev/null @@ -1,37 +0,0 @@ -.news { - padding: 10px; - background-color: #fef4e9; - border-radius: 4px; - margin-bottom: 20px; -} -.newslist { - padding-left:10px; -} -.newslist li { - margin-bottom:10px; - font-size: 20px; - color: #2d2929; -} -.newslist details { - font-size: 16px; - color: #797979; - margin-left: 10px; - display: inline; -} -.newslist details[open] { - margin-left: 155px; - display: block; -} -.newsdate { - font-weight: bold; - color: #808080; - width: 100px; - font-size: 18px; - display: inline-block; -} -.newsicon { - font-size: 30px; - width: 50px; - color: $primary-color; - padding-right: 20px; -} diff --git a/_scss/theme/_projects.scss b/_scss/theme/_projects.scss deleted file mode 100644 index 3518a14..0000000 --- a/_scss/theme/_projects.scss +++ /dev/null @@ -1,6 +0,0 @@ -.project-img { - width:100%; -} -.project { - padding-top: 10px; -} \ No newline at end of file diff --git a/_scss/theme/_publications.scss b/_scss/theme/_publications.scss deleted file mode 100644 index c334c37..0000000 --- a/_scss/theme/_publications.scss +++ /dev/null @@ -1,38 +0,0 @@ -a.nodec { - color: #333333; - text-decoration:none -} -a.nodec:hover { - color:#4582ec; -} -.publications { - /* list-style: none; - margin: 0; - font-size: 18px; - */ - padding-left: 1em; -} -.publications li { - padding-left: 2px; - padding-bottom: 10px; - position: relative; -} -.authorlist { -} -.papertitle { -} -.conf { - padding-right: 0.5rem; - border: none; - border-radius: 2px; - display: inline-block; - height: 36px; - line-height: 36px; - vertical-align: middle; -} -a.conf { - color: #dc3545; -} -.publinkitem { - padding: 0 0.5rem; -} \ No newline at end of file diff --git a/_scss/theme/_reset.scss b/_scss/theme/_reset.scss deleted file mode 100644 index 69df23e..0000000 --- a/_scss/theme/_reset.scss +++ /dev/null @@ -1,130 +0,0 @@ -/* global style start - ============================================================================================ */ - -body { - color: $text-color; - font-family: $text-font; - font-size: 16px; - font-weight: 400; - line-height: 1.667; -} - -ul{ - margin: 0; - padding: 0; -} - -a:hover{ - text-decoration: none; -} - -button{ - cursor: pointer; - - &:focus{ - outline: 0; - box-shadow: none; - } -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: $title-font; - color: $title-color; - line-height: 1.25; -} - -h1, -.h1 { - font-size: 30px; - font-weight: 700; - line-height: 1.2; - - @media(min-width: 600px){ - font-size: 50px; - } -} -h2, -.h2 { - font-size: 28px; - font-weight: 700; - - @media(min-width: 1000px){ - font-size: 36px; - } -} -h3,.h3{ - font-size: 20px; - font-weight: 600; - - @media(min-width: 1000px){ - font-size: 22px; - } -} - -.pb-85px{ - padding-bottom: 45px; - - @media(min-width: 1000px){ - padding-bottom: 85px; - } -} - -.section-margin{ - margin: 60px 0; - - @media(min-width: 1000px){ - margin: 60px 0; - } - - @media(min-width: 1200px){ - margin: 65px 0; - } - - &--medium{ - margin: 40px 0; - - @media(min-width: 800px){ - margin: 60px 0; - } - - @media(min-width: 1200px){ - margin: 60px 0; - } - } -} - -.section-padding{ - padding: 60px 0; - - @media(min-width: 1000px){ - padding: 60px 0; - } - - @media(min-width: 1200px){ - padding: 65px 0; - } - - &--small{ - padding: 40px 0; - - @media(min-width: 1000px){ - padding: 60px 0; - } - } -} - -.bg-magnolia{ - background: $magnolia; -} - -.bg-secshade { - background: #262431; -} - -/* global style end - ============================================================================================ */ diff --git a/_scss/theme/_responsive.scss b/_scss/theme/_responsive.scss deleted file mode 100644 index 43fef14..0000000 --- a/_scss/theme/_responsive.scss +++ /dev/null @@ -1,379 +0,0 @@ -@media (max-width:1619px){ - /* Main Menu Area css - ============================================================================================ */ - .header_area .navbar .search { - margin-left: 40px; - } - /* End Main Menu Area css - ============================================================================================ */ -} -@media (max-width:1300px){ -} -@media (max-width:1199px){ - /* Main Menu Area css - ============================================================================================ */ - .header_area .navbar .nav .nav-item { - margin-right: 28px; - } - /* End Main Menu Area css - ============================================================================================ */ - /* Home Banner Area css - ============================================================================================ */ - .home_banner_area .banner_inner { - padding: 100px 0px; - } - /* End Home Banner Area css - ============================================================================================ */ - .header_area .navbar .tickets_btn { - margin-left: 40px; - } - .home_banner_area .banner_inner .banner_content h2 br { - display: none; - font-size: 36px; - } - .home_banner_area .banner_inner .banner_content h2 { - font-size: 36px; - line-height: 45px; - } -} - -@media (max-width:991px){ - /* Main Menu Area css - ============================================================================================ */ - .navbar-toggler { - border: none; - border-radius: 0px; - padding: 0px; - cursor: pointer; - margin-top: 27px; - margin-bottom: 23px; - } - .header_area .navbar { - background: #412fb3; - } - .navbar-toggler[aria-expanded="false"] span:nth-child(2) { - opacity: 1; - } - .navbar-toggler[aria-expanded="true"] span:nth-child(2) { - opacity: 0; - } - .navbar-toggler[aria-expanded="true"] span:first-child { - transform: rotate(-45deg); - position: relative; - top: 7.5px; - } - .navbar-toggler[aria-expanded="true"] span:last-child { - transform: rotate(45deg); - bottom: 6px; - position: relative; - } - .navbar-toggler span{ - display: block; - width: 25px; - height: 3px; - background: #fff; - margin: auto; - margin-bottom: 4px; - transition: all 400ms linear; - cursor: pointer; - } - .navbar .container{ - padding-left: 15px; - padding-right: 15px; - } - .nav{ - padding: 0px 0px; - } - .header_area + section, .header_area + row, .header_area + div { - margin-top: 117px; - } - .header_top .nav{ - padding: 0px; - } - .header_area .navbar .nav .nav-item .nav-link{ - line-height: 30px; - margin-right: 0px; - display: block; - border-bottom: 1px solid #ededed33; - border-radius: 0px; - } - .header_area .navbar .search{ - margin-left: 0px; - } - .header_area .navbar-collapse{ - max-height: 340px; - overflow-y: scroll; - } - .header_area .navbar .nav .nav-item.submenu ul .nav-item .nav-link { - padding: 0px 15px; - } - .header_area .navbar .nav .nav-item { - margin-right: 0px; - } - .header_area + section, .header_area + row, .header_area + div { - margin-top: 41px; - } - .home_banner_area .banner_inner .banner_content .banner_map_img { - display: none; - } - .header_area.navbar_fixed .main_menu .navbar .nav .nav-item .nav-link { - line-height: 40px; - } - .header_area.white_menu.navbar_fixed .main_menu .navbar .nav .nav-item .nav-link { - line-height: 40px; - } - .header_area.white_menu .navbar .nav .nav-item .nav-link { - color: #222; - } - /* End Main Menu Area css - ============================================================================================ */ - /* Blog page Area css - ============================================================================================ */ - .categories_post img{ - width: 100%; - } - .categories_post { - max-width: 360px; - margin: 0 auto; - } - .blog_categorie_area .col-lg-4{ - margin-top: 30px; - } - .blog_area{ - padding-bottom: 80px; - } - .single-post-area .blog_right_sidebar{ - margin-top: 30px; - } - /* End Blog page Area css - ============================================================================================ */ - - /* Contact Page Area css - ============================================================================================ */ - .contact_info{ - margin-bottom: 50px; - } - /* End Contact page Area css - ============================================================================================ */ - .home_banner_area .donation_inner{ - margin-bottom: -30px; - } - .home_banner_area .dontation_item{ - max-width: 350px; - margin: auto; - } - /* Footer Area css - ============================================================================================ */ - .footer_area .col-sm-6{ - margin-bottom: 30px; - } - .footer_area .footer_inner{ - margin-bottom: -30px; - } - .news_widget { - padding-left: 0px; - } - /* End End Footer Area css - ============================================================================================ */ - .home_banner_area .banner_inner .home_left_img { - display: none; - } - .header_area .navbar .tickets_btn { - display: none; - } - .home_banner_area .banner_inner { - padding: 70px 0px 100px 0px; - } - .left_side_text { - margin-bottom: 50px; - } - .price_item { - max-width: 360px; - margin: 0px auto 30px; - } - .price_inner{ - margin-bottom: -30px; - } -} -@media (max-width:767px){ - .home_banner_area { - min-height: 500px; - } - .home_banner_area .banner_inner { - min-height: 500px; - } - .home_banner_area .banner_inner .banner_content { - margin-top: 0px; - } - /* Blog Page Area css - ============================================================================================ */ - .blog_banner .banner_inner .blog_b_text h2 { - font-size: 40px; - line-height: 50px; - } - .blog_info.text-right{ - text-align: left !important; - margin-bottom: 10px; - } - /* End Blog Page Area css - ============================================================================================ */ - .home_banner_area .banner_inner .banner_content h3 { - font-size: 30px; - } - .home_banner_area .banner_inner .banner_content p br { - display: none; - } - .home_banner_area .banner_inner .banner_content h3 span { - line-height: 45px; - padding-bottom: 0px; - padding-top: 0px; - } - /* Footer Area css - ============================================================================================ */ - .footer-bottom{ - text-align: center; - } - .footer-bottom .footer-social { - text-align: center; - margin-top: 15px; - } - /* End End Footer Area css - ============================================================================================ */ - .made_life_inner .nav.nav-tabs li { - flex: 0 0 50%; - max-width: 50%; - margin-bottom: 15px; - } - .made_life_inner .nav.nav-tabs { - margin-bottom: -15px; - } - .made_life_area.made_white .left_side_text { - margin-bottom: 0px; - margin-top: 30px; - } -} -@media (max-width:600px){ - -} -@media (max-width:575px){ - .top_menu { - display: none; - } - .header_area + section, .header_area + row, .header_area + div { - margin-top: 51px; - } - /* Home Banner Area css - ============================================================================================ */ - .home_banner_area .banner_inner .banner_content h2 { - font-size: 28px; - line-height: 38px; - } - .home_banner_area { - min-height: 450px; - } - .home_banner_area .banner_inner { - min-height: 450px; - } - .blog_banner .banner_inner .blog_b_text { - margin-top: 0px; - } - .home_banner_area .banner_inner .banner_content img{ - display: none; - } - .home_banner_area .banner_inner .banner_content h5 { - margin-top: 0px; - } - /* End Home Banner Area css - ============================================================================================ */ - .p_120 { - padding-top: 70px; - padding-bottom: 70px; - } - .main_title h2 { - font-size: 25px; - } - /* Elements Area css - ============================================================================================ */ - .sample-text-area { - padding: 70px 0 70px 0; - } - .generic-blockquote { - padding: 30px 15px 30px 30px; - } - /* End Elements Area css - ============================================================================================ */ - - /* Blog Page Area css - ============================================================================================ */ - .blog_details h2 { - font-size: 20px; - line-height: 30px; - } - .blog_banner .banner_inner .blog_b_text h2 { - font-size: 28px; - line-height: 38px; - } - /* End Blog Page Area css - ============================================================================================ */ - /* Footer Area css - ============================================================================================ */ - .footer-area { - padding: 70px 0px; - } - /* End End Footer Area css - ============================================================================================ */ - .pad_top { - padding-top: 70px; - } - .pad_btm { - padding-bottom: 70px; - } -} - -@media (max-width:480px){ - /* Main Menu Area css - ============================================================================================ */ - .header_area .navbar-collapse{ - max-height: 250px; - } - /* End Main Menu Area css - ============================================================================================ */ - - /* Home Banner Area css - ============================================================================================ */ - .home_banner_area .banner_inner .banner_content { - padding: 30px 15px; - margin-top: 0px; - } - .banner_content .white_btn { - display: block; - } - .home_banner_area .banner_inner .banner_content h3 { - font-size: 24px; - } - /* End Home Banner Area css - ============================================================================================ */ - .banner_area .banner_inner .banner_content h2 { - font-size: 32px; - } - /* Blog Page Area css - ============================================================================================ */ - .comments-area .thumb { - margin-right: 10px; - } - /* End Blog Page Area css - ============================================================================================ */ - .testi_item .media .d-flex { - padding-right: 0px; - } - .testi_item .media .d-flex img { - width: auto; - margin-bottom: 15px; - } - .testi_item .media{ - display: block; - } - .banner_btn{ - margin-bottom: 20px; - } -} \ No newline at end of file diff --git a/_scss/theme/_section-intro.scss b/_scss/theme/_section-intro.scss deleted file mode 100644 index 977631f..0000000 --- a/_scss/theme/_section-intro.scss +++ /dev/null @@ -1,21 +0,0 @@ -/* section intro start - ============================================================================================ */ -.section-intro{ - max-width: 630px; - margin-right: auto; - margin-left: auto; - - &__title{ - font-weight: 700; - color: $title-color; - margin-bottom: 10px; - } - - &__subtitle{ - font-size: 17px; - color: $text-color; - margin-bottom: 0; - } -} -/* section intro end - ============================================================================================ */ diff --git a/_scss/theme/_variables.scss b/_scss/theme/_variables.scss deleted file mode 100644 index 1701c43..0000000 --- a/_scss/theme/_variables.scss +++ /dev/null @@ -1,25 +0,0 @@ -/* font family - ============================================================================================ */ -$title-font: 'Rubik', sans-serif; -$text-font: 'Roboto', sans-serif; - - -/* color variables - ============================================================================================ */ -$title-color: #3a414e; -$text-color: #797979; -$black: #242429; -$magnolia: #faf9ff; - -$primary-color: #21146a; -$offwhite: #f9f9ff; - - -$link-color: #fdc632; -$white: #fff; -// $soapstone : #fff9f7; - - -/* google fonts - ============================================================================================ */ -@import url("https://fonts.googleapis.com/css?family=Roboto:400,400i,500|Rubik:500, 600"); diff --git a/about.html b/about.html deleted file mode 100644 index 19395e1..0000000 --- a/about.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -layout: default -title: About Us ---- -
-
-
-
-
-
- - (Photo credit: Yicheng Liu) -
-
-
-

- The Ordered Systems Lab is led by Professor Ryan Huang - at the Department of EECS at University of Michigan. - The lab conducts broad computer systems research, with a focus on systems reliability, - availability and fault tolerance. Research work from the lab has been published - in top systems conferences including OSDI, ASPLOS and NSDI. Recent highlights of - its research include the LeaseOS work (led by PhD student Yigong Hu) - that receives the Best Paper Award at ASPLOS 2019, and the AutoWatchdog work (led - by PhD student Chang Lou) - that receives the Best Paper Award at NSDI 2020. -

- -

- Currently the lab has four PhD students, one Master's student, - one undergraduate student and one visiting undergraduate student. We are actively recruiting self-motivated graduate students and - undergraduate interns who are interested in systems building and research. Interested students please check this page -

- -

- OrderLab's research projects are supported by the National Science Foundation (NSF), - Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform. -

-
-
-
-
-
diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..1662e33 --- /dev/null +++ b/about/index.html @@ -0,0 +1,145 @@ + + + + + + + + + + + + About Us + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+
+
+ + (Photo credit: Yicheng Liu) +
+
+
+

+ The Ordered Systems Lab is led by Professor Ryan Huang + at the Department of EECS at University of Michigan. + The lab conducts broad computer systems research, with a focus on systems reliability, + availability and fault tolerance. Research work from the lab has been published + in top systems conferences including OSDI, ASPLOS and NSDI. Recent highlights of + its research include the LeaseOS work (led by PhD student Yigong Hu) + that receives the Best Paper Award at ASPLOS 2019, and the AutoWatchdog work (led + by PhD student Chang Lou) + that receives the Best Paper Award at NSDI 2020. +

+ +

+ Currently the lab has four PhD students, one Master's student, + one undergraduate student and one visiting undergraduate student. We are actively recruiting self-motivated graduate students and + undergraduate interns who are interested in systems building and research. Interested students please check this page +

+ +

+ OrderLab's research projects are supported by the National Science Foundation (NSF), + Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform. +

+
+
+
+
+
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + diff --git a/activity.html b/activity.html deleted file mode 100644 index 87cb32d..0000000 --- a/activity.html +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: default -title: Group Activities ---- -
-
-

Fall '21 Group Hike

-

After more than one year of working from home due to the pandemic, our group is finally able to get together!! We did a (masked) group hike in the Cascade Falls Loop Trail in late August, and hiked twice longer than planned due to Ryan's misleading instruction :D - -

-
-
-
-

Fall '19 Group Hike

-

We did our first group hike on the last day of August. We hiked in the Annapolis Rock part of Appalachian Trail. A healthy way to kick off the Fall '19 semester.

- -
-
-
-
-

Spring '18 Group Celebration Dinner

-

We had a group dinner to celebrate Yigong's ASPLOS best paper award and Brian's NSF graduate research fellowship. Hot pot fitted the mood :)

- -
-
\ No newline at end of file diff --git a/activity/index.html b/activity/index.html new file mode 100644 index 0000000..a91132a --- /dev/null +++ b/activity/index.html @@ -0,0 +1,127 @@ + + + + + + + + + + + + Group Activities + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+

Fall '21 Group Hike

+

After more than one year of working from home due to the pandemic, our group is finally able to get together!! We did a (masked) group hike in the Cascade Falls Loop Trail in late August, and hiked twice longer than planned due to Ryan's misleading instruction :D + +

+
+
+
+

Fall '19 Group Hike

+

We did our first group hike on the last day of August. We hiked in the Annapolis Rock part of Appalachian Trail. A healthy way to kick off the Fall '19 semester.

+ +
+
+
+
+

Spring '18 Group Celebration Dinner

+

We had a group dinner to celebrate Yigong's ASPLOS best paper award and Brian's NSF graduate research fellowship. Hot pot fitted the mood :)

+ +
+
+ +
+
+ +
+
+ + +
+ + + + + + + + + + + diff --git a/assets/main.css b/assets/main.css new file mode 100644 index 0000000..e5c9b73 --- /dev/null +++ b/assets/main.css @@ -0,0 +1,277 @@ +/** Reset some basic elements */ +body, h1, h2, h3, h4, h5, h6, p, blockquote, pre, hr, dl, dd, ol, ul, figure { margin: 0; padding: 0; } + +/** Basic styling */ +body { font: 400 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; color: #111; background-color: #fdfdfd; -webkit-text-size-adjust: 100%; -webkit-font-feature-settings: "kern" 1; -moz-font-feature-settings: "kern" 1; -o-font-feature-settings: "kern" 1; font-feature-settings: "kern" 1; font-kerning: normal; display: flex; min-height: 100vh; flex-direction: column; } + +/** Set `margin-bottom` to maintain vertical rhythm */ +h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, .highlight { margin-bottom: 15px; } + +/** `main` element */ +main { display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */ } + +/** Images */ +img { max-width: 100%; vertical-align: middle; } + +/** Figures */ +figure > img { display: block; } + +figcaption { font-size: 14px; } + +/** Lists */ +ul, ol { margin-left: 30px; } + +li > ul, li > ol { margin-bottom: 0; } + +/** Headings */ +h1, h2, h3, h4, h5, h6 { font-weight: 400; } + +/** Links */ +a { color: #2a7ae2; text-decoration: none; } + +a:visited { color: #1756a9; } + +a:hover { color: #111; text-decoration: underline; } + +.social-media-list a:hover { text-decoration: none; } + +.social-media-list a:hover .username { text-decoration: underline; } + +/** Blockquotes */ +blockquote { color: #828282; border-left: 4px solid #e8e8e8; padding-left: 15px; font-size: 18px; letter-spacing: -1px; font-style: italic; } + +blockquote > :last-child { margin-bottom: 0; } + +/** Code formatting */ +pre, code { font-size: 15px; border: 1px solid #e8e8e8; border-radius: 3px; background-color: #eef; } + +code { padding: 1px 5px; } + +pre { padding: 8px 12px; overflow-x: auto; } + +pre > code { border: 0; padding-right: 0; padding-left: 0; } + +/** Wrapper */ +.wrapper { max-width: -webkit-calc(800px - (30px * 2)); max-width: calc(800px - (30px * 2)); margin-right: auto; margin-left: auto; padding-right: 30px; padding-left: 30px; } + +@media screen and (max-width: 800px) { .wrapper { max-width: -webkit-calc(800px - (30px)); max-width: calc(800px - (30px)); padding-right: 15px; padding-left: 15px; } } + +/** Clearfix */ +.footer-col-wrapper:after, .wrapper:after { content: ""; display: table; clear: both; } + +/** Icons */ +.svg-icon { width: 16px; height: 16px; display: inline-block; fill: #828282; padding-right: 5px; vertical-align: text-top; } + +.social-media-list li + li { padding-top: 5px; } + +/** Tables */ +table { margin-bottom: 30px; width: 100%; text-align: left; color: #3f3f3f; border-collapse: collapse; border: 1px solid #e8e8e8; } + +table tr:nth-child(even) { background-color: #f7f7f7; } + +table th, table td { padding: 10px 15px; } + +table th { background-color: #f0f0f0; border: 1px solid #dedede; border-bottom-color: #c9c9c9; } + +table td { border: 1px solid #e8e8e8; } + +/** Site header */ +.site-header { border-top: 5px solid #424242; border-bottom: 1px solid #e8e8e8; min-height: 55.95px; position: relative; } + +.site-title { font-size: 26px; font-weight: 300; line-height: 54px; letter-spacing: -1px; margin-bottom: 0; float: left; } + +.site-title, .site-title:visited { color: #424242; } + +.site-nav { float: right; line-height: 54px; } + +.site-nav .nav-trigger { display: none; } + +.site-nav .menu-icon { display: none; } + +.site-nav .page-link { color: #111; line-height: 1.5; } + +.site-nav .page-link:not(:last-child) { margin-right: 20px; } + +@media screen and (max-width: 600px) { .site-nav { position: absolute; top: 9px; right: 15px; background-color: #fdfdfd; border: 1px solid #e8e8e8; border-radius: 5px; text-align: right; } .site-nav label[for="nav-trigger"] { display: block; float: right; width: 36px; height: 36px; z-index: 2; cursor: pointer; } .site-nav .menu-icon { display: block; float: right; width: 36px; height: 26px; line-height: 0; padding-top: 10px; text-align: center; } .site-nav .menu-icon > svg { fill: #424242; } .site-nav input ~ .trigger { clear: both; display: none; } .site-nav input:checked ~ .trigger { display: block; padding-bottom: 5px; } .site-nav .page-link { display: block; padding: 5px 10px; margin-left: 20px; } .site-nav .page-link:not(:last-child) { margin-right: 0; } } + +/** Site footer */ +.site-footer { border-top: 1px solid #e8e8e8; padding: 30px 0; } + +.footer-heading { font-size: 18px; margin-bottom: 15px; } + +.contact-list, .social-media-list { list-style: none; margin-left: 0; } + +.footer-col-wrapper { font-size: 15px; color: #828282; margin-left: -15px; } + +.footer-col { float: left; margin-bottom: 15px; padding-left: 15px; } + +.footer-col-1 { width: -webkit-calc(35% - (30px / 2)); width: calc(35% - (30px / 2)); } + +.footer-col-2 { width: -webkit-calc(20% - (30px / 2)); width: calc(20% - (30px / 2)); } + +.footer-col-3 { width: -webkit-calc(45% - (30px / 2)); width: calc(45% - (30px / 2)); } + +@media screen and (max-width: 800px) { .footer-col-1, .footer-col-2 { width: -webkit-calc(50% - (30px / 2)); width: calc(50% - (30px / 2)); } .footer-col-3 { width: -webkit-calc(100% - (30px / 2)); width: calc(100% - (30px / 2)); } } + +@media screen and (max-width: 600px) { .footer-col { float: none; width: -webkit-calc(100% - (30px / 2)); width: calc(100% - (30px / 2)); } } + +/** Page content */ +.page-content { padding: 30px 0; flex: 1; } + +.page-heading { font-size: 32px; } + +.post-list-heading { font-size: 28px; } + +.post-list { margin-left: 0; list-style: none; } + +.post-list > li { margin-bottom: 30px; } + +.post-meta { font-size: 14px; color: #828282; } + +.post-link { display: block; font-size: 24px; } + +/** Posts */ +.post-header { margin-bottom: 30px; } + +.post-title { font-size: 42px; letter-spacing: -1px; line-height: 1; } + +@media screen and (max-width: 800px) { .post-title { font-size: 36px; } } + +.post-content { margin-bottom: 30px; } + +.post-content h2 { font-size: 32px; } + +@media screen and (max-width: 800px) { .post-content h2 { font-size: 28px; } } + +.post-content h3 { font-size: 26px; } + +@media screen and (max-width: 800px) { .post-content h3 { font-size: 22px; } } + +.post-content h4 { font-size: 20px; } + +@media screen and (max-width: 800px) { .post-content h4 { font-size: 18px; } } + +/** Syntax highlighting styles */ +.highlight { background: #fff; } + +.highlighter-rouge .highlight { background: #eef; } + +.highlight .c { color: #998; font-style: italic; } + +.highlight .err { color: #a61717; background-color: #e3d2d2; } + +.highlight .k { font-weight: bold; } + +.highlight .o { font-weight: bold; } + +.highlight .cm { color: #998; font-style: italic; } + +.highlight .cp { color: #999; font-weight: bold; } + +.highlight .c1 { color: #998; font-style: italic; } + +.highlight .cs { color: #999; font-weight: bold; font-style: italic; } + +.highlight .gd { color: #000; background-color: #fdd; } + +.highlight .gd .x { color: #000; background-color: #faa; } + +.highlight .ge { font-style: italic; } + +.highlight .gr { color: #a00; } + +.highlight .gh { color: #999; } + +.highlight .gi { color: #000; background-color: #dfd; } + +.highlight .gi .x { color: #000; background-color: #afa; } + +.highlight .go { color: #888; } + +.highlight .gp { color: #555; } + +.highlight .gs { font-weight: bold; } + +.highlight .gu { color: #aaa; } + +.highlight .gt { color: #a00; } + +.highlight .kc { font-weight: bold; } + +.highlight .kd { font-weight: bold; } + +.highlight .kp { font-weight: bold; } + +.highlight .kr { font-weight: bold; } + +.highlight .kt { color: #458; font-weight: bold; } + +.highlight .m { color: #099; } + +.highlight .s { color: #d14; } + +.highlight .na { color: #008080; } + +.highlight .nb { color: #0086B3; } + +.highlight .nc { color: #458; font-weight: bold; } + +.highlight .no { color: #008080; } + +.highlight .ni { color: #800080; } + +.highlight .ne { color: #900; font-weight: bold; } + +.highlight .nf { color: #900; font-weight: bold; } + +.highlight .nn { color: #555; } + +.highlight .nt { color: #000080; } + +.highlight .nv { color: #008080; } + +.highlight .ow { font-weight: bold; } + +.highlight .w { color: #bbb; } + +.highlight .mf { color: #099; } + +.highlight .mh { color: #099; } + +.highlight .mi { color: #099; } + +.highlight .mo { color: #099; } + +.highlight .sb { color: #d14; } + +.highlight .sc { color: #d14; } + +.highlight .sd { color: #d14; } + +.highlight .s2 { color: #d14; } + +.highlight .se { color: #d14; } + +.highlight .sh { color: #d14; } + +.highlight .si { color: #d14; } + +.highlight .sx { color: #d14; } + +.highlight .sr { color: #009926; } + +.highlight .s1 { color: #d14; } + +.highlight .ss { color: #990073; } + +.highlight .bp { color: #999; } + +.highlight .vc { color: #008080; } + +.highlight .vg { color: #008080; } + +.highlight .vi { color: #008080; } + +.highlight .il { color: #099; } + +/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/assets/main.css.map b/assets/main.css.map new file mode 100644 index 0000000..6e1a00f --- /dev/null +++ b/assets/main.css.map @@ -0,0 +1,20 @@ +{ + "version": 3, + "file": "main.css", + "sources": [ + "main.scss", + "vendor/bundle/ruby/3.1.0/gems/minima-2.5.1/_sass/minima.scss", + "vendor/bundle/ruby/3.1.0/gems/minima-2.5.1/_sass/minima/_base.scss", + "vendor/bundle/ruby/3.1.0/gems/minima-2.5.1/_sass/minima/_layout.scss", + "vendor/bundle/ruby/3.1.0/gems/minima-2.5.1/_sass/minima/_syntax-highlighting.scss" + ], + "sourcesContent": [ + "@import \"minima\";\n", + "@charset \"utf-8\";\n\n// Define defaults for each variable.\n\n$base-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$base-font-size: 16px !default;\n$base-font-weight: 400 !default;\n$small-font-size: $base-font-size * 0.875 !default;\n$base-line-height: 1.5 !default;\n\n$spacing-unit: 30px !default;\n\n$text-color: #111 !default;\n$background-color: #fdfdfd !default;\n$brand-color: #2a7ae2 !default;\n\n$grey-color: #828282 !default;\n$grey-color-light: lighten($grey-color, 40%) !default;\n$grey-color-dark: darken($grey-color, 25%) !default;\n\n$table-text-align: left !default;\n\n// Width of the content area\n$content-width: 800px !default;\n\n$on-palm: 600px !default;\n$on-laptop: 800px !default;\n\n// Use media queries like this:\n// @include media-query($on-palm) {\n// .wrapper {\n// padding-right: $spacing-unit / 2;\n// padding-left: $spacing-unit / 2;\n// }\n// }\n@mixin media-query($device) {\n @media screen and (max-width: $device) {\n @content;\n }\n}\n\n@mixin relative-font-size($ratio) {\n font-size: $base-font-size * $ratio;\n}\n\n// Import partials.\n@import\n \"minima/base\",\n \"minima/layout\",\n \"minima/syntax-highlighting\"\n;\n", + "/**\n * Reset some basic elements\n */\nbody, h1, h2, h3, h4, h5, h6,\np, blockquote, pre, hr,\ndl, dd, ol, ul, figure {\n margin: 0;\n padding: 0;\n}\n\n\n\n/**\n * Basic styling\n */\nbody {\n font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;\n color: $text-color;\n background-color: $background-color;\n -webkit-text-size-adjust: 100%;\n -webkit-font-feature-settings: \"kern\" 1;\n -moz-font-feature-settings: \"kern\" 1;\n -o-font-feature-settings: \"kern\" 1;\n font-feature-settings: \"kern\" 1;\n font-kerning: normal;\n display: flex;\n min-height: 100vh;\n flex-direction: column;\n}\n\n\n\n/**\n * Set `margin-bottom` to maintain vertical rhythm\n */\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\nul, ol, dl, figure,\n%vertical-rhythm {\n margin-bottom: $spacing-unit / 2;\n}\n\n\n\n/**\n * `main` element\n */\nmain {\n display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */\n}\n\n\n\n/**\n * Images\n */\nimg {\n max-width: 100%;\n vertical-align: middle;\n}\n\n\n\n/**\n * Figures\n */\nfigure > img {\n display: block;\n}\n\nfigcaption {\n font-size: $small-font-size;\n}\n\n\n\n/**\n * Lists\n */\nul, ol {\n margin-left: $spacing-unit;\n}\n\nli {\n > ul,\n > ol {\n margin-bottom: 0;\n }\n}\n\n\n\n/**\n * Headings\n */\nh1, h2, h3, h4, h5, h6 {\n font-weight: $base-font-weight;\n}\n\n\n\n/**\n * Links\n */\na {\n color: $brand-color;\n text-decoration: none;\n\n &:visited {\n color: darken($brand-color, 15%);\n }\n\n &:hover {\n color: $text-color;\n text-decoration: underline;\n }\n\n .social-media-list &:hover {\n text-decoration: none;\n\n .username {\n text-decoration: underline;\n }\n }\n}\n\n\n/**\n * Blockquotes\n */\nblockquote {\n color: $grey-color;\n border-left: 4px solid $grey-color-light;\n padding-left: $spacing-unit / 2;\n @include relative-font-size(1.125);\n letter-spacing: -1px;\n font-style: italic;\n\n > :last-child {\n margin-bottom: 0;\n }\n}\n\n\n\n/**\n * Code formatting\n */\npre,\ncode {\n @include relative-font-size(0.9375);\n border: 1px solid $grey-color-light;\n border-radius: 3px;\n background-color: #eef;\n}\n\ncode {\n padding: 1px 5px;\n}\n\npre {\n padding: 8px 12px;\n overflow-x: auto;\n\n > code {\n border: 0;\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n\n/**\n * Wrapper\n */\n.wrapper {\n max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));\n max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));\n margin-right: auto;\n margin-left: auto;\n padding-right: $spacing-unit;\n padding-left: $spacing-unit;\n @extend %clearfix;\n\n @include media-query($on-laptop) {\n max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));\n max-width: calc(#{$content-width} - (#{$spacing-unit}));\n padding-right: $spacing-unit / 2;\n padding-left: $spacing-unit / 2;\n }\n}\n\n\n\n/**\n * Clearfix\n */\n%clearfix:after {\n content: \"\";\n display: table;\n clear: both;\n}\n\n\n\n/**\n * Icons\n */\n\n.svg-icon {\n width: 16px;\n height: 16px;\n display: inline-block;\n fill: #{$grey-color};\n padding-right: 5px;\n vertical-align: text-top;\n}\n\n.social-media-list {\n li + li {\n padding-top: 5px;\n }\n}\n\n\n\n/**\n * Tables\n */\ntable {\n margin-bottom: $spacing-unit;\n width: 100%;\n text-align: $table-text-align;\n color: lighten($text-color, 18%);\n border-collapse: collapse;\n border: 1px solid $grey-color-light;\n tr {\n &:nth-child(even) {\n background-color: lighten($grey-color-light, 6%);\n }\n }\n th, td {\n padding: ($spacing-unit / 3) ($spacing-unit / 2);\n }\n th {\n background-color: lighten($grey-color-light, 3%);\n border: 1px solid darken($grey-color-light, 4%);\n border-bottom-color: darken($grey-color-light, 12%);\n }\n td {\n border: 1px solid $grey-color-light;\n }\n}\n", + "/**\n * Site header\n */\n.site-header {\n border-top: 5px solid $grey-color-dark;\n border-bottom: 1px solid $grey-color-light;\n min-height: $spacing-unit * 1.865;\n\n // Positioning context for the mobile navigation icon\n position: relative;\n}\n\n.site-title {\n @include relative-font-size(1.625);\n font-weight: 300;\n line-height: $base-line-height * $base-font-size * 2.25;\n letter-spacing: -1px;\n margin-bottom: 0;\n float: left;\n\n &,\n &:visited {\n color: $grey-color-dark;\n }\n}\n\n.site-nav {\n float: right;\n line-height: $base-line-height * $base-font-size * 2.25;\n\n .nav-trigger {\n display: none;\n }\n\n .menu-icon {\n display: none;\n }\n\n .page-link {\n color: $text-color;\n line-height: $base-line-height;\n\n // Gaps between nav items, but not on the last one\n &:not(:last-child) {\n margin-right: 20px;\n }\n }\n\n @include media-query($on-palm) {\n position: absolute;\n top: 9px;\n right: $spacing-unit / 2;\n background-color: $background-color;\n border: 1px solid $grey-color-light;\n border-radius: 5px;\n text-align: right;\n\n label[for=\"nav-trigger\"] {\n display: block;\n float: right;\n width: 36px;\n height: 36px;\n z-index: 2;\n cursor: pointer;\n }\n\n .menu-icon {\n display: block;\n float: right;\n width: 36px;\n height: 26px;\n line-height: 0;\n padding-top: 10px;\n text-align: center;\n\n > svg {\n fill: $grey-color-dark;\n }\n }\n\n input ~ .trigger {\n clear: both;\n display: none;\n }\n\n input:checked ~ .trigger {\n display: block;\n padding-bottom: 5px;\n }\n\n .page-link {\n display: block;\n padding: 5px 10px;\n\n &:not(:last-child) {\n margin-right: 0;\n }\n margin-left: 20px;\n }\n }\n}\n\n\n\n/**\n * Site footer\n */\n.site-footer {\n border-top: 1px solid $grey-color-light;\n padding: $spacing-unit 0;\n}\n\n.footer-heading {\n @include relative-font-size(1.125);\n margin-bottom: $spacing-unit / 2;\n}\n\n.contact-list,\n.social-media-list {\n list-style: none;\n margin-left: 0;\n}\n\n.footer-col-wrapper {\n @include relative-font-size(0.9375);\n color: $grey-color;\n margin-left: -$spacing-unit / 2;\n @extend %clearfix;\n}\n\n.footer-col {\n float: left;\n margin-bottom: $spacing-unit / 2;\n padding-left: $spacing-unit / 2;\n}\n\n.footer-col-1 {\n width: -webkit-calc(35% - (#{$spacing-unit} / 2));\n width: calc(35% - (#{$spacing-unit} / 2));\n}\n\n.footer-col-2 {\n width: -webkit-calc(20% - (#{$spacing-unit} / 2));\n width: calc(20% - (#{$spacing-unit} / 2));\n}\n\n.footer-col-3 {\n width: -webkit-calc(45% - (#{$spacing-unit} / 2));\n width: calc(45% - (#{$spacing-unit} / 2));\n}\n\n@include media-query($on-laptop) {\n .footer-col-1,\n .footer-col-2 {\n width: -webkit-calc(50% - (#{$spacing-unit} / 2));\n width: calc(50% - (#{$spacing-unit} / 2));\n }\n\n .footer-col-3 {\n width: -webkit-calc(100% - (#{$spacing-unit} / 2));\n width: calc(100% - (#{$spacing-unit} / 2));\n }\n}\n\n@include media-query($on-palm) {\n .footer-col {\n float: none;\n width: -webkit-calc(100% - (#{$spacing-unit} / 2));\n width: calc(100% - (#{$spacing-unit} / 2));\n }\n}\n\n\n\n/**\n * Page content\n */\n.page-content {\n padding: $spacing-unit 0;\n flex: 1;\n}\n\n.page-heading {\n @include relative-font-size(2);\n}\n\n.post-list-heading {\n @include relative-font-size(1.75);\n}\n\n.post-list {\n margin-left: 0;\n list-style: none;\n\n > li {\n margin-bottom: $spacing-unit;\n }\n}\n\n.post-meta {\n font-size: $small-font-size;\n color: $grey-color;\n}\n\n.post-link {\n display: block;\n @include relative-font-size(1.5);\n}\n\n\n\n/**\n * Posts\n */\n.post-header {\n margin-bottom: $spacing-unit;\n}\n\n.post-title {\n @include relative-font-size(2.625);\n letter-spacing: -1px;\n line-height: 1;\n\n @include media-query($on-laptop) {\n @include relative-font-size(2.25);\n }\n}\n\n.post-content {\n margin-bottom: $spacing-unit;\n\n h2 {\n @include relative-font-size(2);\n\n @include media-query($on-laptop) {\n @include relative-font-size(1.75);\n }\n }\n\n h3 {\n @include relative-font-size(1.625);\n\n @include media-query($on-laptop) {\n @include relative-font-size(1.375);\n }\n }\n\n h4 {\n @include relative-font-size(1.25);\n\n @include media-query($on-laptop) {\n @include relative-font-size(1.125);\n }\n }\n}\n", + "/**\n * Syntax highlighting styles\n */\n.highlight {\n background: #fff;\n @extend %vertical-rhythm;\n\n .highlighter-rouge & {\n background: #eef;\n }\n\n .c { color: #998; font-style: italic } // Comment\n .err { color: #a61717; background-color: #e3d2d2 } // Error\n .k { font-weight: bold } // Keyword\n .o { font-weight: bold } // Operator\n .cm { color: #998; font-style: italic } // Comment.Multiline\n .cp { color: #999; font-weight: bold } // Comment.Preproc\n .c1 { color: #998; font-style: italic } // Comment.Single\n .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special\n .gd { color: #000; background-color: #fdd } // Generic.Deleted\n .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific\n .ge { font-style: italic } // Generic.Emph\n .gr { color: #a00 } // Generic.Error\n .gh { color: #999 } // Generic.Heading\n .gi { color: #000; background-color: #dfd } // Generic.Inserted\n .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific\n .go { color: #888 } // Generic.Output\n .gp { color: #555 } // Generic.Prompt\n .gs { font-weight: bold } // Generic.Strong\n .gu { color: #aaa } // Generic.Subheading\n .gt { color: #a00 } // Generic.Traceback\n .kc { font-weight: bold } // Keyword.Constant\n .kd { font-weight: bold } // Keyword.Declaration\n .kp { font-weight: bold } // Keyword.Pseudo\n .kr { font-weight: bold } // Keyword.Reserved\n .kt { color: #458; font-weight: bold } // Keyword.Type\n .m { color: #099 } // Literal.Number\n .s { color: #d14 } // Literal.String\n .na { color: #008080 } // Name.Attribute\n .nb { color: #0086B3 } // Name.Builtin\n .nc { color: #458; font-weight: bold } // Name.Class\n .no { color: #008080 } // Name.Constant\n .ni { color: #800080 } // Name.Entity\n .ne { color: #900; font-weight: bold } // Name.Exception\n .nf { color: #900; font-weight: bold } // Name.Function\n .nn { color: #555 } // Name.Namespace\n .nt { color: #000080 } // Name.Tag\n .nv { color: #008080 } // Name.Variable\n .ow { font-weight: bold } // Operator.Word\n .w { color: #bbb } // Text.Whitespace\n .mf { color: #099 } // Literal.Number.Float\n .mh { color: #099 } // Literal.Number.Hex\n .mi { color: #099 } // Literal.Number.Integer\n .mo { color: #099 } // Literal.Number.Oct\n .sb { color: #d14 } // Literal.String.Backtick\n .sc { color: #d14 } // Literal.String.Char\n .sd { color: #d14 } // Literal.String.Doc\n .s2 { color: #d14 } // Literal.String.Double\n .se { color: #d14 } // Literal.String.Escape\n .sh { color: #d14 } // Literal.String.Heredoc\n .si { color: #d14 } // Literal.String.Interpol\n .sx { color: #d14 } // Literal.String.Other\n .sr { color: #009926 } // Literal.String.Regex\n .s1 { color: #d14 } // Literal.String.Single\n .ss { color: #990073 } // Literal.String.Symbol\n .bp { color: #999 } // Name.Builtin.Pseudo\n .vc { color: #008080 } // Name.Variable.Class\n .vg { color: #008080 } // Name.Variable.Global\n .vi { color: #008080 } // Name.Variable.Instance\n .il { color: #099 } // Literal.Number.Integer.Long\n}\n" + ], + "names": [], + "mappings": "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" +} \ No newline at end of file diff --git a/assets/minima-social-icons.svg b/assets/minima-social-icons.svg new file mode 100644 index 0000000..fa7399f --- /dev/null +++ b/assets/minima-social-icons.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blog/2026/02/21/launching-orderlab-blog/index.html b/blog/2026/02/21/launching-orderlab-blog/index.html new file mode 100644 index 0000000..9069d8c --- /dev/null +++ b/blog/2026/02/21/launching-orderlab-blog/index.html @@ -0,0 +1,138 @@ + + + + + + + + + + + + Launching the OrderLab Blog + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
+

OrderLab Blog

+

Launching the OrderLab Blog

+ +
+
+

We have added a dedicated blog to the lab website to share technical updates in a faster, more narrative format than conference papers.

+ +

Posts here will usually cover:

+ +
    +
  • research ideas in progress,
  • +
  • implementation notes from lab systems,
  • +
  • paper highlights and context,
  • +
  • and student milestones.
  • +
+ +

For archival milestones and announcements, the News page remains the canonical timeline.

+ +
+ +
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + + + + + diff --git a/blog/2026/02/21/writing-posts-for-this-site/index.html b/blog/2026/02/21/writing-posts-for-this-site/index.html new file mode 100644 index 0000000..bbd12fb --- /dev/null +++ b/blog/2026/02/21/writing-posts-for-this-site/index.html @@ -0,0 +1,145 @@ + + + + + + + + + + + + Writing Posts for This Site + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
+

OrderLab Blog

+

Writing Posts for This Site

+ +
+
+

Blog entries are standard Jekyll posts. Create a markdown file under _posts/ with this naming pattern:

+ +

YYYY-MM-DD-title.md

+ +

Recommended front matter:

+ +
---
+title: Your Post Title
+author: Your Name
+---
+
+ +

The site will automatically:

+ +
    +
  • list the post on /blog/,
  • +
  • render it with the post layout,
  • +
  • and include the newest posts on the homepage.
  • +
+ +
+ +
+
+
+ +
+
+ +
+
+ + +
+ + + + + + + + + + + diff --git a/blog/index.html b/blog/index.html index dbc5ee9..98a130a 100644 --- a/blog/index.html +++ b/blog/index.html @@ -1,27 +1,135 @@ ---- -layout: default -title: Blog ---- -
+ + + + + + + + + + + + Blog + + + + + + + + + + + + + + + + +
+ +
+ + +
+

OrderLab Research Notes and Updates

- {% if site.posts.size > 0 %} +
- {% for post in site.posts %} +
-
{{ post.date | date: "%b %-d, %Y" }}{% if post.author %} · {{ post.author }}{% endif %}
-

{{ post.title }}

-

{{ post.excerpt | strip_html | truncate: 190 }}

- Read article +
Feb 21, 2026 · OrderLab
+

Writing Posts for This Site

+

Blog entries are standard Jekyll posts. Create a markdown file under _posts/ with this naming pattern: +

+ Read article
- {% endfor %} -
- {% else %} -
- No posts yet. Add markdown files under _posts/ using YYYY-MM-DD-title.md. + +
+
Feb 21, 2026 · Ryan Huang
+

Launching the OrderLab Blog

+

We have added a dedicated blog to the lab website to share technical updates in a faster, more narrative format than conference papers. +

+ Read article +
+
- {% endif %} +
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + diff --git a/distdebug-bench-uppercase-redirect.html b/distdebug-bench-uppercase-redirect.html deleted file mode 100644 index ee88235..0000000 --- a/distdebug-bench-uppercase-redirect.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: default -title: DistDebug-Bench -permalink: /DistDebug-Bench/ ---- - -
-
-
-

DistDebug-Bench

-

This page has moved to /distdebug-bench/.

-
-
-
diff --git a/distdebug-bench/index.html b/distdebug-bench/index.html index cef7b44..eefb06f 100644 --- a/distdebug-bench/index.html +++ b/distdebug-bench/index.html @@ -1,9 +1,79 @@ ---- -layout: default -title: DistDebug-Bench -permalink: /distdebug-bench/ ---- -
+ + + + + + + + + + + + DistDebug-Bench + + + + + + + + + + + + + + + + +
+ +
+ + +
+

DistDebug-Bench

@@ -49,3 +119,35 @@

Evaluation

+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + diff --git a/feed.xml b/feed.xml new file mode 100644 index 0000000..259db0a --- /dev/null +++ b/feed.xml @@ -0,0 +1,30 @@ +Jekyll2026-07-23T22:23:54-04:00/feed.xmlOrdered Systems Lab at U-MThis is the website for the Ordered Systems Lab (a.k.a Order Lab) at University of Michigan, led by Prof. Ryan Huang.Launching the OrderLab Blog2026-02-21T00:00:00-05:002026-02-21T22:14:27-05:00/blog/2026/02/21/launching-orderlab-blogWe have added a dedicated blog to the lab website to share technical updates in a faster, more narrative format than conference papers.

+ +

Posts here will usually cover:

+ +
    +
  • research ideas in progress,
  • +
  • implementation notes from lab systems,
  • +
  • paper highlights and context,
  • +
  • and student milestones.
  • +
+ +

For archival milestones and announcements, the News page remains the canonical timeline.

]]>
Ryan Huang
Writing Posts for This Site2026-02-21T00:00:00-05:002026-02-21T11:18:52-05:00/blog/2026/02/21/writing-posts-for-this-siteBlog entries are standard Jekyll posts. Create a markdown file under _posts/ with this naming pattern:

+ +

YYYY-MM-DD-title.md

+ +

Recommended front matter:

+ +
---
+title: Your Post Title
+author: Your Name
+---
+
+ +

The site will automatically:

+ +
    +
  • list the post on /blog/,
  • +
  • render it with the post layout,
  • +
  • and include the newest posts on the homepage.
  • +
]]>
OrderLab
\ No newline at end of file diff --git a/index.html b/index.html index fcfd5ae..405e83a 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,78 @@ ---- -layout: home ---- -
+ + + + + + + + + + + + Ordered Systems Lab at U-M + + + + + + + + + + + + + + + + +
+ +
+ +
+
@@ -11,13 +82,13 @@

Ordered Systems Lab

systems that run on diverse computing platforms across the spectrum.

- OrderLab illustration + OrderLab illustration
@@ -94,7 +165,7 @@

News

@@ -110,14 +181,14 @@

Recent Projects

@@ -268,21 +344,53 @@

Sponsors

+ + +
+
+ +
+
+ + + + + + + + + + + + + + diff --git a/join.md b/join.md deleted file mode 100644 index 29ec4e8..0000000 --- a/join.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -layout: single -title: Join Us ---- -

OrderLab is growing!

- -We are seeking PhD students with strong systems building skills -(e.g., kernel programming, Android framework hacking, distributed -system operations) and motivation for research. Background in program -languages, compiler, and formal methods will be a bonus point. Non-technical -qualities including critical thinking, perseverance, communication, -self driven are valuable as well for graduate school in general. - -However, I don't expect applicants to be skilled in everything -mentioned above. It is my goal to help train my students to -be well-rounded researchers throughout the PhD education. Thus, -students who do not have much related background but show promise -that the above skills can be developed are also encouraged to apply. - -We are also open to working with Masters and undergraduate students. Students -who have taken undergrad OS (EECS 482, CS 318/418/618) or grad OS -class (EECS 582, CS -718) are preferred. - -## How to Apply -Prospective PhD students should apply through **University of Michigan CSE** [admission -systems](https://cse.engin.umich.edu/academics/graduate/admissions) by **December 15th** -and mention me in your application. It is helpful to email -me for inquiries before applying (please attach your CV) or for letting me -know you have applied afterwards. I can't promise to reply every email but I -do read most of them. - -Current U-M students can make an appointment with me via email. - -## Useful Links - -### For students considering a PhD - -* [The illustrated guide to a Ph.D](http://matt.might.net/articles/phd-school-in-pictures/) by [Matt Might](http://matt.might.net/) -* [PhD or No PhD](https://medium.com/open-sourced-thoughts/phd-or-no-phd-d3dc89bc8e57) by [Xiao Ma](https://medium.com/@xiaoma) -* [The PhD grind](http://pgbovine.net/PhD-memoir/pguo-PhD-grind.pdf) by [Philip Guo](http://pgbovine.net/index.html) - -### For students applying for a PhD - -* [How to Pick a Graduate Advisor](http://www.cell.com/neuron/fulltext/S0896-6273(13)00907-0) by [Ben Barres](https://profiles.stanford.edu/ben-barres) -* [What to Ask When You're Applying to Grad School](http://transientneha.blogspot.com/2015/02/what-to-ask-when-applying-to-grad.html) by [Neha Narula](http://transientneha.blogspot.com/) -* [Applying to Ph.D. Programs in Computer Science](http://www.cs.cmu.edu/~harchol/gradschooltalk.pdf) by [Mor Harchol-Balter](http://www.cs.cmu.edu/~harchol/) - -### For students doing a PhD - -* [So Long, and Thanks for the Ph.D!](http://www.cs.unc.edu/~azuma/hitch4.html) by [Ron Azuma](http://www.cs.unc.edu/~azuma/) -* [You and Your Research](http://www.cs.virginia.edu/~robins/YouAndYourResearch.html) by Richard Hamming -* [Strong Inference](http://ecoplexity.org/files/Platt.pdf) by John R. Platt -* [Advice to systems researchers](http://www.cs.utexas.edu/users/dahlin/advice.html) by [Mike Dahlin](http://www.cs.utexas.edu/users/dahlin/) -* [Low-level advice for systems research](https://lalith.in/2020/09/27/Low-Level-Advice-For-Systems-Research/) by [Lalith Suresh](https://lalith.in/about) diff --git a/join/index.html b/join/index.html new file mode 100644 index 0000000..7bf9b59 --- /dev/null +++ b/join/index.html @@ -0,0 +1,168 @@ + + + + + + + + + + + + Join Us + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+

OrderLab is growing!

+ +

We are seeking PhD students with strong systems building skills +(e.g., kernel programming, Android framework hacking, distributed +system operations) and motivation for research. Background in program +languages, compiler, and formal methods will be a bonus point. Non-technical +qualities including critical thinking, perseverance, communication, +self driven are valuable as well for graduate school in general.

+ +

However, I don’t expect applicants to be skilled in everything +mentioned above. It is my goal to help train my students to +be well-rounded researchers throughout the PhD education. Thus, +students who do not have much related background but show promise +that the above skills can be developed are also encouraged to apply.

+ +

We are also open to working with Masters and undergraduate students. Students +who have taken undergrad OS (EECS 482, CS 318/418/618) or grad OS +class (EECS 582, CS +718) are preferred.

+ +

How to Apply

+

Prospective PhD students should apply through University of Michigan CSE admission +systems by December 15th +and mention me in your application. It is helpful to email +me for inquiries before applying (please attach your CV) or for letting me +know you have applied afterwards. I can’t promise to reply every email but I +do read most of them.

+ +

Current U-M students can make an appointment with me via email.

+ + + +

For students considering a PhD

+ + + +

For students applying for a PhD

+ + + +

For students doing a PhD

+ + + +
+
+ +
+
+ +
+
+ + +
+ + + + + + + + + + + diff --git a/news.html b/news/index.html similarity index 82% rename from news.html rename to news/index.html index b34a291..9abe958 100644 --- a/news.html +++ b/news/index.html @@ -1,8 +1,79 @@ ---- -layout: default -title: News ---- -
+ + + + + + + + + + + + News + + + + + + + + + + + + + + + + +
+ +
+ + +
+
  • @@ -162,3 +233,35 @@
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + diff --git a/projects.html b/projects/index.html similarity index 61% rename from projects.html rename to projects/index.html index 60e97c8..15cd65f 100644 --- a/projects.html +++ b/projects/index.html @@ -1,15 +1,85 @@ ---- -layout: default -title: Projects ---- + + + + + + + -
+ + + + Projects + + + + + + + + + + + + + + + + +
+ +
+ + +
+

Representative Projects

@@ -37,14 +107,14 @@

Featured Projects

- OpGuard + OpGuard

OSDI 2026

OpGuard

OpGuard uses bitwise alignment to pinpoint the first divergent operator, deployed at production LLM training to cut debugging from days to minutes.

@@ -52,14 +122,14 @@

OpGuard

- TrainCheck + TrainCheck

OSDI 2025

TrainCheck

TrainCheck catches silent errors in deep learning training by learning semantic invariants from sample pipelines and turning them into proactive runtime checks.

@@ -67,14 +137,14 @@

TrainCheck

- TrainVerify figure + TrainVerify figure

SOSP 2025

TrainVerify

TrainVerify uses equivalence-based verification to check the parallelization logic of distributed LLM training and eliminate subtle correctness bugs.

@@ -82,14 +152,14 @@

TrainVerify

- Phoenix figure + Phoenix figure

SOSP 2025

Phoenix

Phoenix introduces OS-level optimistic recovery and partial process state preservation to improve software availability after failures.

@@ -97,14 +167,14 @@

Phoenix

- Atropos figure + Atropos figure

SOSP 2025

Atropos

Atropos mitigates application resource overload with targeted task cancellation, preserving useful work while shedding harmful load.

@@ -112,14 +182,14 @@

Atropos

- T2C figure + T2C figure

OSDI 2025

T2C

T2C derives semantic checkers from existing system tests, transforming developer-written test logic into runtime checks for silent distributed-system failures.

@@ -127,14 +197,14 @@

T2C

- Xinda figure + Xinda figure

NSDI 2025

Xinda

Xinda combines automated slow-fault testing with lightweight adaptive detection to improve slow-fault tolerance in modern distributed systems.

@@ -149,7 +219,7 @@

Xinda

DistDebug-Bench

DistDebug-Bench evaluates code-level diagnosis of distributed-system failures, providing a benchmark for debugging tools on realistic distributed failures.

@@ -172,7 +242,7 @@

More Representative Systems

Anduril

Feedback-driven fault injection that quickly reproduces a target fault-induced production failure in distributed systems.

@@ -183,7 +253,7 @@

Anduril

Legolas

State-guided fault injection that infers abstract states from code to expose partial-failure bugs in large distributed systems.

@@ -194,7 +264,7 @@

Legolas

pBox

Application-level mechanisms for pushing performance isolation boundaries into applications.

@@ -205,7 +275,7 @@

pBox

OathKeeper

Runtime checking for silent semantic violations in large distributed systems, motivated by failures that escape generic detectors.

@@ -216,7 +286,7 @@

OathKeeper

Orbit

Operating-system support for safe and efficient auxiliary execution, enabling speculative work without compromising the main process.

@@ -227,7 +297,7 @@

Orbit

Arthas

System support for understanding and dealing with hard faults in persistent memory systems.

@@ -238,7 +308,7 @@

Arthas

Violet

Automated reasoning for detecting specious configuration in large systems with symbolic execution.

@@ -249,48 +319,80 @@

Violet

OmegaGen

Techniques for understanding, detecting, and localizing partial failures in large system software.

- LeaseOS + LeaseOS

ASPLOS 2019

LeaseOS

Lease-based mobile OS resource management that mitigates app energy bugs while preserving useful work.

- Panorama + Panorama

OSDI 2018

Panorama

Program-analysis and instrumentation support for in situ observability, helping requesters detect gray failures in cloud systems.

- DefDroid + DefDroid

MobiSys 2016

DefDroid

A defensive mobile OS approach that reacts to disruptive app behavior at runtime without compromising app usability.

+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + diff --git a/pubs.html b/pubs/index.html similarity index 90% rename from pubs.html rename to pubs/index.html index 64679b3..262a9e7 100644 --- a/pubs.html +++ b/pubs/index.html @@ -1,8 +1,79 @@ ---- -layout: default -title: Publications ---- -
+ + + + + + + + + + + + Publications + + + + + + + + + + + + + + + + +
+ +
+ + +
+

2026

    @@ -320,3 +391,35 @@

    2010

+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + diff --git a/software.html b/software.html deleted file mode 100644 index 22048e4..0000000 --- a/software.html +++ /dev/null @@ -1,60 +0,0 @@ ---- -layout: default -title: Software ---- -
-
-
-

Group GitHub Repository

-

Most of our lab's code repositories are hosted on GitHub.

-
-
-
-
-
-
-

DistDebug-Bench

-

DistDebug-Bench evaluates code-level diagnosis of distributed-system failures. Visit the project page or the benchmark repository.

-
-
-
-
-
-
-

TrainCheck [OSDI '25]

-

TrainCheck is an innovative tool for detecting silent errors in deep learning training. We are excited to open-source TrainCheck–explore the project and get involved on GitHub!

-
-
-
-
-
-
-

Arthas [EuroSys '21]

-

The source code is available through this repository.

-
-
-
-
-
-
-

Violet [OSDI '20]

-

Violet consists of multiple components. This central repository includes the source code repository of each component.

-
-
-
-
-
-
-

LeaseOS [ASPLOS '19]

-

The source code is available through this manifest repository.

-
-
-
-
-
-
-

Panorama [OSDI '18]

-

The source code is available through this repository.

-
-
-
diff --git a/software/index.html b/software/index.html new file mode 100644 index 0000000..dfa2bc0 --- /dev/null +++ b/software/index.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + Software + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

Group GitHub Repository

+

Most of our lab's code repositories are hosted on GitHub.

+
+
+
+
+
+
+

DistDebug-Bench

+

DistDebug-Bench evaluates code-level diagnosis of distributed-system failures. Visit the project page or the benchmark repository.

+
+
+
+
+
+
+

TrainCheck [OSDI '25]

+

TrainCheck is an innovative tool for detecting silent errors in deep learning training. We are excited to open-source TrainCheck–explore the project and get involved on GitHub!

+
+
+
+
+
+
+

Arthas [EuroSys '21]

+

The source code is available through this repository.

+
+
+
+
+
+
+

Violet [OSDI '20]

+

Violet consists of multiple components. This central repository includes the source code repository of each component.

+
+
+
+
+
+
+

LeaseOS [ASPLOS '19]

+

The source code is available through this manifest repository.

+
+
+
+
+
+
+

Panorama [OSDI '18]

+

The source code is available through this repository.

+
+
+
+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + diff --git a/team.html b/team/index.html similarity index 65% rename from team.html rename to team/index.html index 27edfc4..f23f231 100644 --- a/team.html +++ b/team/index.html @@ -1,8 +1,79 @@ ---- -layout: default -title: OrderLab Team Members ---- - + + + + + + + + + + + + OrderLab Team Members + + + + + + + + + + + + + + + + +
+ +
+ + +
+
@@ -13,7 +84,7 @@

Faculty

- +

Prof. Ryan Huang

@@ -28,7 +99,7 @@

PhD Students

- +
- +

Yunchi Lu

@@ -44,7 +115,7 @@

Yunchi Lu

- +

Kevin Xue

@@ -53,7 +124,7 @@

Kevin Xue

- +

Wanning He

@@ -61,7 +132,7 @@

Wanning He

- +

Yi Chen

@@ -69,7 +140,7 @@

Yi Chen

- +

Yuxuan Jiang

@@ -84,7 +155,7 @@

Undergraduate Students

- +
Xinyan Gong @@ -92,7 +163,7 @@

Undergraduate Students

- +
Ruiyan Hu (SJTU) @@ -100,7 +171,7 @@

Undergraduate Students

- +
Wenye Lu @@ -108,7 +179,7 @@

Undergraduate Students

- +
Yuchen Wang @@ -220,3 +291,35 @@

MS and Undergrad Alumni

+ + +
+
+ +
+
+ + +
+ + + + + + + + + + + diff --git a/vendors/flaticon/_flaticon.scss b/vendors/flaticon/_flaticon.scss deleted file mode 100644 index ccf3dce..0000000 --- a/vendors/flaticon/_flaticon.scss +++ /dev/null @@ -1,104 +0,0 @@ - /* - Flaticon icon font: Flaticon - Creation date: 14/12/2019 04:33 - */ - - @font-face { - font-family: "Flaticon"; - src: url("./fonts/Flaticon.eot"); - src: url("./fonts/Flaticon.eot?#iefix") format("embedded-opentype"), - url("./fonts/Flaticon.woff2") format("woff2"), - url("./fonts/Flaticon.woff") format("woff"), - url("./fonts/Flaticon.ttf") format("truetype"), - url("./fonts/Flaticon.svg#Flaticon") format("svg"); - font-weight: normal; - font-style: normal; -} - -@media screen and (-webkit-min-device-pixel-ratio:0) { - @font-face { - font-family: "Flaticon"; - src: url("./fonts/Flaticon.svg#Flaticon") format("svg"); - } -} - - .fi:before{ - display: inline-block; - font-family: "Flaticon"; - font-style: normal; - font-weight: normal; - font-variant: normal; - line-height: 1; - text-decoration: inherit; - text-rendering: optimizeLegibility; - text-transform: none; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-smoothing: antialiased; - } - - .flaticon-warning:before { content: "\f100"; } -.flaticon-document:before { content: "\f101"; } -.flaticon-add-group:before { content: "\f102"; } -.flaticon-medal:before { content: "\f103"; } -.flaticon-gift:before { content: "\f104"; } -.flaticon-conference:before { content: "\f105"; } -.flaticon-billboard:before { content: "\f106"; } -.flaticon-stationery-stacked-papers:before { content: "\f107"; } -.flaticon-report:before { content: "\f108"; } -.flaticon-distance:before { content: "\f109"; } -.flaticon-calendar:before { content: "\f10a"; } -.flaticon-training:before { content: "\f10b"; } -.flaticon-student:before { content: "\f10c"; } -.flaticon-open-book:before { content: "\f10d"; } -.flaticon-growth:before { content: "\f10e"; } -.flaticon-woman:before { content: "\f10f"; } -.flaticon-employee:before { content: "\f110"; } -.flaticon-female-graduate-student:before { content: "\f111"; } -.flaticon-graduate-student-avatar:before { content: "\f112"; } -.flaticon-project-management:before { content: "\f113"; } -.flaticon-fireworks:before { content: "\f114"; } -.flaticon-options:before { content: "\f115"; } -.flaticon-puzzle:before { content: "\f116"; } -.flaticon-overlap:before { content: "\f117"; } -.flaticon-conference-2:before { content: "\f118"; } -.flaticon-student-1:before { content: "\f119"; } -.flaticon-student-2:before { content: "\f11a"; } -.flaticon-student-3:before { content: "\f11b"; } -.flaticon-browser:before { content: "\f11c"; } -.flaticon-browser-1:before { content: "\f11d"; } -.flaticon-web:before { content: "\f11e"; } -.flaticon-server:before { content: "\f11f"; } - - $font-Flaticon-warning: "\f100"; - $font-Flaticon-document: "\f101"; - $font-Flaticon-add-group: "\f102"; - $font-Flaticon-medal: "\f103"; - $font-Flaticon-gift: "\f104"; - $font-Flaticon-conference: "\f105"; - $font-Flaticon-billboard: "\f106"; - $font-Flaticon-stationery-stacked-papers: "\f107"; - $font-Flaticon-report: "\f108"; - $font-Flaticon-distance: "\f109"; - $font-Flaticon-calendar: "\f10a"; - $font-Flaticon-training: "\f10b"; - $font-Flaticon-student: "\f10c"; - $font-Flaticon-open-book: "\f10d"; - $font-Flaticon-growth: "\f10e"; - $font-Flaticon-woman: "\f10f"; - $font-Flaticon-employee: "\f110"; - $font-Flaticon-female-graduate-student: "\f111"; - $font-Flaticon-graduate-student-avatar: "\f112"; - $font-Flaticon-project-management: "\f113"; - $font-Flaticon-fireworks: "\f114"; - $font-Flaticon-options: "\f115"; - $font-Flaticon-puzzle: "\f116"; - $font-Flaticon-overlap: "\f117"; - $font-Flaticon-conference-2: "\f118"; - $font-Flaticon-student-1: "\f119"; - $font-Flaticon-student-2: "\f11a"; - $font-Flaticon-student-3: "\f11b"; - $font-Flaticon-browser: "\f11c"; - $font-Flaticon-browser-1: "\f11d"; - $font-Flaticon-web: "\f11e"; - $font-Flaticon-server: "\f11f";