Behavior
Bulbasaur has an easygoing character, due to which it is good for beginner coaches. This is the most calm and peaceful of the Kanto startups. He was very good against the first two leaders of the Kanto stadiums. You must be a leader. The Bulbazavr can be very faithful, as in the series “The Mysterious Monster”, where the Bulbazavr has been waiting for the trainer to abandon him for many years. Complex communities with their own traditions and rituals, and even they are strangers. This is featured in the Mysterious Bulbasaur Garden series.


Do you want to proceed?
You are about to delete the selected hosts.
You are about to check default credentials on the selected hosts.
You are about to screenshot a host.
You are about to screenshot the selected hosts.
Kraken's search functionality performs an 'or' search on several database fields. For example, the search 'jboss tomcat' will return any interfaces with jboss OR tomcat in them.
There is not currently any data to populate this page with. Vists the Setup Page to ingest data and take screenshots. If you need help, please referece the Kraken Github page for a more detailed walkthrough


A good design is characterized by high cohesion and loose coupling
High cohesion: keeping parts of a code base that are related to each other in a single place
Loose coupling: separating unrelated parts of the code base as much as possible
Cohesion vs Coupling
class Circle {
var radius:Int
init(radius:Int) {
self.radius = radius
}
}
class Rectangle {
var width:Int
var height:Int
init(width:Int, height:Int) {
self.width = width
self.height = height
}
}
class Circle {
var radius:Int
init(radius:Int) {
self.radius = radius
}
}
class Rectangle {
var width:Int
var height:Int
init(width:Int, height:Int) {
self.width = width
self.height = height
}
}


12PM-4PM - The Power Hours
| Protein Options | Chicken, Steak. Tuna, Salmon, Turkey Burgers, Ground Beef (90/10, 95/5), Ground Turkey (90/10, 95/5) | 6-8 oz of either protein per meal is excellent. |
| Carbohydrate Options | Quinoa, Brown Rice, Whole Grain Cous-Cous, Buckwheat, Yams, Whole Wheat Pasta | 6-8oz of either carbohydrate is great. Carbs are stored energy so getting the healhty kind as show above is essential! |
| Veggie Options | Peppers, Broccoli, Edamame, Caulifower, Tomatoes, Avacados, Cucumbers, Onions, Scallions, Celery, Mushrooms, Asparagus | 6-8 oz of veggies is a good portion. You can never eat too many vegetables! |
| Option 1 | Chicken w/ Quinoa and Veggies | 5-7 oz of chicken, 5-7 oz of Quinoa, 5-7 oz of assorted veggies. |
| Option 2 | Steak w/ Yams and Veggies | 5-7 oz of steak, 5-7 oz of Yams, 5-7 oz of veggies |
| Option 3 | Tuna w/ cous-cous, and veggies | 1 can of tuna, 5-7 oz of cous-cous, mix in onions, peppers, celery for crunch and low-fat mayo |
| Option 4 | Salmon w/ brown rice and asparagus | 5-7 oz of salmon (baked), 5-7 oz of brown rice (Not Minute-rice brand), and 5-7 oz of asparagus |
| Option 5 | Turkey Burger Sandwich | Lean Turkey Burger w/ whole wheat bread, lettuce, tomatoe, avacado, low fat cheese(optional) |
| Option 6 | Ground Beef / Ground Turkey w/ any of the above carb choices and veggies | 7-10oz of ground beef / ground turkey, 5-7 oz of choice of carbs and 5-7 oz of veggies. |
| Alternative 1 | Healthy Wrap | Ingredients: Whole wheat wrap, chicken/steak/salmon/tuna with lettuce, tomato, avacado, eggs whites, and onions | |
| Alternative 2 | Salad | chicken/steak/salmon/tuna, mixed greens, add assortment of vegetables and take it easy on the dressing. It's a salad not a soup. | Oil Recommendations for salads. |
| Alternative 3 | Chipotle | Recommendation:Burrto bowl, brown rice, chicken/steak, peppers and onions, half pinto/half black beans, and guac. There is no need to get additional fat and extra calories with sour cream, cheese and tortillas. | Times per week: 1x |
| Alternative 4 | Sandwiches | Whole wheat / mutli-grain, a protein(listed above), veggies, low-fat sauce if any. Try and skip out on getting cheese. |


{% extends "site_base.html" %} {% load i18n %} {% load bootstrap_tags %} {% block head_title %}{% trans "Login to Your Shop" %}{% endblock %} {% block body %}
Install this app in a shop to get access to its private admin data.
Don’t have a shop to install your app in handy? Create a test shop.
{% endblock %}


SBGN viewer for PSI-MI protein complexes from http://www.ebi.ac.uk/complexportal/home
This repository requires npm to manage dependencies. Once npm is installed, to install mi-sbgn, run:
npm install --save mi-sbgn
Assuming you now have a folder in your project root called mi-sbgn
, add the bundles and css to your page:
<link rel="stylesheet" href="node_modules/mi-sbgn/dist/styles.css" type="text/css">
<script src="node_modules/mi-sbgn/dist/mi-sbgn-dependencies.bundle.js"></script>
<script src="node_modules/mi_sbgn/dist/mi-sbgn-main.bundle.js"></script>
Somewhere in the body of your HTML, add tags that look like this:
<div class="svgcontainer">
<svg id="mi-sbgn" xmlns="http://www.w3.org/2000/svg" height="100" width="100">
</svg>
</div>
The main.bundle.js file will initialise the component with id mi-sbgn
automatically
Optionally, add an xml export download button:
<button type="button" class="download-sbgn">
<svg id="icon-download" viewBox="0 0 32 32">
<title>download</title>
<path d="M23 14l-8 8-8-8h5v-12h6v12zM15 22h-15v8h30v-8h-15zM28 26h-4v-2h4v2z"></path>
</svg>
Export as SBGN-ML</button>
To initialise a specific protein complex, run initViewer("EBI-SOMECOMPLEXHERE")
, e.g.
<script>
initViewer("EBI-10828997");
</script>
This repository requires npm to manage dependencies. Once npm is installed:
cd mi-sbgn
npm install
cd node_modules/webcola & npm install - g grunt - cli & npm install & grunt
This should install all relevant dependencies, including the MI-model backbone-based application which helps us co-ordinate the protein complex data with other elements on the same page.
Step 4 is required because the npm module from webcola doesn't include a built js version of the script.
We use webpack to build the js into two bundles
To automatically build files while editing them, run this from the mi-sbgn directory root:
./node_modules/.bin/webpack --config webpack.config.js --watch
The dependencies specified in js/denendencies.js are all availabloe on the window. If you already have a common dependency such as backbone or jquery on the window, you could remove the dependency from the bundle and re-bundle to save space by removing it from dependencies.js.


...that teamwork coupled with Information Technology holds the key to future sustainable development.
...create internet solutions that are aimed at enhancing productivity and improving the customer experience.
...A group of young Kenyan developers dedicated to researching and developing tech infrastructure.
Equip yourself with the best Bot to fit your purpose Now!


Consultation outcome
Ref: Ofqual/15/5766 PDF , 238KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
Ref: Ofqual/15/5765 PDF , 371KB , 17 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
We have decided to adopt some of our proposed rules and guidance for reformed GCSEs in drama, and reformed AS and A levels in drama and theatre.
We have also made a number of changes to reflect concerns raised in response to our consultation. In particular, we have:
We have already published final versions of our:
Our new rules will require exam boards offering reformed GCSEs in drama to:
Our guidance explains how awarding organisations should our assessment objectives, as well as certain key terms used in the subject content. It also sets out our expectations for group sizes in performance tasks, and the assessment of non-performance roles.
Our new rules will require exam boards offering reformed AS drama and theatre qualifications to:
Our guidance explains how awarding organisations should our assessment objectives, as well as certain key terms used in the subject content. It also sets out our expectations for group sizes in performance tasks, and the assessment of non-performance roles.
Our new rules will require exam boards offering reformed A level drama and theatre qualifications to:
Our guidance explains how awarding organisations should our assessment objectives, as well as certain key terms used in the subject content. It also sets out our expectations for group sizes in performance tasks, and the assessment of non-performance roles.
This consultation ran from
to
This consultation is about the rules and guidance we need to put in place for new GCSEs, AS and A levels in drama or drama and theatre.
Ref: Ofqual/15/5660 PDF , 747KB , 62 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
This consultation is about the rules and guidance we plan to put in place for new GCSEs in drama, and new AS and A levels in drama and theatre. These rules will apply to the exam boards that want to offer new drama GCSEs and new drama and theatre AS and A levels from September 2016.
This consultation takes forward decisions made following our earlier consultation ‘ Developing new GCSE, A level and AS qualifications for first teaching in 2016 - Part 2 ’, and is part of Ofqual’s work supporting the government’s changes to GCSEs, AS and A levels .
Published: 27 March 2015
Updated: 21 August 2015


Westlife is one of the earliest bands I listened to. They became famous with their debut international album "Westlife". "My love", "Uptown girl", "Flying without wings", and "When you tell me that you love me" are few of my favorite songs.


Nav
HOME
Certificate
Issued Certificate
Unissued Certificate
Transaction
unBroadcasted Transaction
Broadcasted Transaction
About
Log out
blockchain-based educational certificates
MerkleRoot
RawTransaction
User1
User2
User3
State
IsSented
Action
Loading
×
Verify
Transaction Script
Inputs
Txid
N
Script
Signed?
MultiSig?
Outputs
Address
Amount
Script
×
Sign Transaction
Private key
There is a problem with one or more of your inputs, please check and try again
Signed transaction
×
Broadcast Transaction
Enter your hex encoded bitcoin transaction


System space is almost full 11 minutes ago
You have 9 unfinished tasks 20 minutes ago
Monthly report is available 1 hour ago
Weekly meeting in 1 hour 2 hours ago
Your request has been approved 3 days ago
Click the thumbnail to see other layouts.
Wednesday, 22 December
More Widgets


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object edu.cmu.cs.stage3.image.codec.TIFFEncodeParam
public class TIFFEncodeParam
An instance of ImageEncodeParam
for encoding images in
the TIFF format.
This class allows for the specification of encoding parameters. By
default, the image is encoded without any compression, and is written
out consisting of strips, not tiles. The particular compression scheme
to be used can be specified by using the setCompression
method. The compression scheme specified will be honored only if it is
compatible with the type of image being written out. For example,
Group3 and Group4 compressions can only be used with Bilevel images.
Writing of tiled TIFF images can be enabled by calling the
setWriteTiled
method.
This class is not a committed part of the JAI API. It may be removed or changed in future releases of JAI.
| Field Summary | |
|---|---|
static int |
COMPRESSION_GROUP3_1D
|
static int |
COMPRESSION_GROUP3_2D
|
static int |
COMPRESSION_GROUP4
|
static int |
COMPRESSION_LZW
|
static int |
COMPRESSION_NONE
|
static int |
COMPRESSION_PACKBITS
|
| Constructor Summary | |
|---|---|
TIFFEncodeParam()
Constructs an TIFFEncodeParam object with default values for parameters. |
| Method Summary | |
|---|---|
int |
getCompression()
Returns the value of the compression parameter. |
boolean |
getWriteTiled()
Returns the value of the writeTiled parameter. |
void |
setCompression(int compression)
Specifies the type of compression to be used. |
void |
setWriteTiled(boolean writeTiled)
If set, the data will be written out in tiled format, instead of in strips. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int COMPRESSION_NONE
public static final int COMPRESSION_PACKBITS
public static final int COMPRESSION_GROUP3_1D
public static final int COMPRESSION_GROUP3_2D
public static final int COMPRESSION_GROUP4
public static final int COMPRESSION_LZW
| Constructor Detail |
|---|
public TIFFEncodeParam()
| Method Detail |
|---|
public int getCompression()
public void setCompression(int compression)
compression
- The compression type.public boolean getWriteTiled()
public void setWriteTiled(boolean writeTiled)
writeTiled
- Specifies whether the image data should be
wriiten out in tiled format.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


LANDSCAPE
PORTRAIT
MINI
SMALL
MEDIUM
LARGE
XLARGE
This device is in LANDSCAPE mode. class="show-for-landscape"
This device is in PORTRAIT mode. class="show-for-portrait"
CSS:
.landscape .green-on-landscape { color: green; }
.portrait .red-on-portrait { color: red; }
This is GREEN in LANDSCAPE mode. class="green-on-landscape"
This is RED in PORTRAIT mode. class="red-on-portrait"
The screen IS a MINI screen. class="show-for-mini"
The screen is NOT a MINI screen. class="hide-for-mini"
The screen IS a SMALL screen. class="show-for-small"
The screen is NOT a SMALL screen. class="hide-for-small"
The screen IS a MEDIUM screen. class="show-for-medium"
The screen is NOT a MEDIUM screen. class="hide-for-medium"
The screen IS a LARGE screen. class="show-for-large"
The screen is NOT a LARGE screen. class="hide-for-large"
The screen IS a XLARGE screen. class="show-for-xlarge"
The screen is NOT a XLARGE screen. class="hide-for-xlarge"
This text is only on the SCREEN. class="hide-for-print"
This text is only on the PRINT. class="show-for-print"
This is the BIG version
small version


Hosted Web App Notifications
Enter the information you'd like to see displayed in the notification. If fields are left blank they'll be poulated with default values.
Click and interact with the notification to view the retuned values.
-
Create Notification
-
-
-
-


Taylor Martinez Career Information
After only playing in four games during his senior campaign, Taylor Martinez has benen inactive for the rest of the regular season. Martinez was 25 yards off of becoming the second quarterback in the country to pass for over 9000 yards and rush for over 3000 yards in a career since Colin Kaeperneck. Martinez spent the past three seasons re-writing the Nebraska statistical record book. Martinez has started a quarterback school-record 39 games at Nebraska, and the 6-1, 210-pound Martinez has used his dual-threat abilities to torment opposing defenses and lead Nebraska to three straight seasons of at least nine wins. As a junior, Martinez started all 14 games and set Nebraska season records with 3,890 yards of total offense and 33 total touchdowns. Martinez also showed his poise and leadership in the clutch, guiding Nebraska to four victories after trailing by double-digit deficits in the second half. His outstanding play earned Martinez first-team All-Big Ten honors from the Big Ten coaches and second-team accolades by the media. He was also named NebraskaŐs Team and Offensive MVP for his standout junior campaign. His 2,871 yards passing were the most ever for a Nebraska junior and the third-best overall total in NU history. After a strong offseason of work on his passing mechanics, Martinez completed better than 62 percent of his throws in 2012, an improvement of nearly six percent. He also connected on 23 touchdown passes. On the ground, Martinez rushed for 1,019 yards, which ranked as the fourth-best single-season total in school history for a quarterback. Martinez enters his senior season with a school-record 9,449 yards of total offense in his career, easily surpassing the previous record of 7,915 yards by 2001 Heisman Trophy winner Eric Crouch. The 9,449 yards of total offense is third among returning players in the FBS ranks. MartinezŐs 6,591 career passing yards are also a Nebraska career record. In the running game, Martinez is the nationŐs leading returning rusher with 2,858 yards on 545 career rushes, an average of 5.2 yards per carry. Martinez is second in school history among quarterbacks in rushing yards, trailing only CrouchŐs 3,434 yards. Martinez is also eighth overall in NU history in rushing yards and could move as high as No. 2 on that list this fall. Beyond his school records, Martinez is a threat to put himself in elite categories in NCAA history. He is one of only six quarterbacks in the FBS ranks to post a 2,000-yard passing/1,000 yard rushing season in either 2011 or 2012. Martinez is also in position to record 9,000 career passing yards and 3,000 rushing yards, needing 2,409 passing yards and 142 rushing yards to reach those figures. If he would accomplish that feat he would join Colin Kaepernick as the only players in FBS history to reach the 9,000/3,000 career mark. Martinez is already just the 12th player in FBS history to pass for 6,000 yards and rush for 2,500 yards in a career. He was one of only four players to reach that milestone before the end of their junior year, joining Kaepernick, Vince Young (Texas) and Brad Smith (Missouri). An explosive athlete, Martinez holds Nebraska quarterback position testing records in the vertical jump, pro agility run and 10-yard dash. Martinez is set to earn his undergraduate degree in ethnic studies this December. He will be joined on the 2013 Husker roster by his younger brother, Drake, who is expected to begin his Nebraska career in the secondary. *source www.Huskers.com


Collaborate
We are looking for digital projects about the border
If you have information to share with us please fill out this form:
Please help us grow our database by including projects that work with material related to the U.S.-Mexico borderlands from pre-colonial times to the present.
Our consideration of projects relies on our Vision, which encompasses projects that focus on the designated time periods, from pre-colonial times to the present. The formats in consideration are: digital documentation, activism, mapping, blogs, podcast/video channel, etc.
Projects need to have a digital component, either presently active or inactive.
- Active Projects: include the title and a link to the project.
- Inactive: include the title and any information that can help us trace the project.
Definition of the U.S.-Mexico Borderlands
Pre-colonial Times Native lands from the following states:
- Mexico: Baja California, Sonora, Chihuahua, Coahuila, Nuevo León and Tamaulipas
- United States: California, Nevada, Utah, Wyoming, Arizona, Colorado, New Mexico, Kansas, Oklahoma, Texas, Arkansas, Louisiana and Florida
Nineteenth Century (1800-1899):
During the nineteenth century, Spain acquired various territories that were part of the Spanish borderland. Refer to the states above.
Twentieth and twenty-first centuries (1900-Present):
Includes projects from the cities and counties located along the current division line established in 1848.
- Mexico: Baja California, Sonora, Chihuahua, Coahuila, Nuevo León and Tamaulipas
- United States: California, Arizona, New Mexico and Texas
Indigenous work can range from pre-colonial times to the present
Phase Two
Please let us know of people interested in working on Phase 2, the Central America (Southern Mexico, Guatemala, Belize, Honduras, El Salvador) borderlands region, and would like to engage with the project in the near future. Also, if you know people who have projects of this borderlands region, please include their name and email or link.
Contact information:
<EMAIL_ADDRESS>#unitedfronteras #borderlandsDH #fronterasHD


很荣幸在今年 2 月到 5 月的时间里，以顾问的身份加入饿了么，参与 PWA 的相关工作。这篇文章其实最初是在以英文写作发表在 medium 上的：Upgrading Ele.me to Progressive Web Apps，获得了一定的关注。所以也决定改写为中文版本再次分享出来，希望能对你有所帮助 ;)
本文首发于 CSDN 与《程序员》2017 年 7 月刊，同步发布于 饿了么前端 - 知乎专栏、Hux Blog，转载请保留链接。
自 Vue.js 官方推特第一次公开到现在，我们就一直在进行着将饿了么移动端网站升级为 Progressive Web App 的工作。直到近日在 Google I/O 2017 上登台亮相，才终于算告一段落。我们非常荣幸能够发布全世界第一个专门面向国内用户的 PWA，但更荣幸的是能与 Google、UC 以及腾讯合作，一起推动国内 web 与浏览器生态的发展。
多页应用、Vue、PWA？
对于构建一个希望达到原生应用级别体验的 PWA，目前社区里的主流做法都是采用 SPA，即单页面应用模型（Single-page App）来组织整个 web 应用，业内最有名的几个 PWA 案例 Twitter Lite、 Flipkart Lite、Housing Go 与 Polymer Shop 无一例外。
然而饿了么，与很多国内的电商网站一样，青睐多页面应用模型（MPA，Multi-page App）所能带来的一些好处，也因此在一年多将移动站从基于 Angular.js 的单页应用重构为目前的多页应用模型。团队最看重的优点莫过于页面与页面之间的隔离与解耦，这使得我们可以将每个页面当做一个独立的“微服务”来看待，这些服务可以被独立迭代，独立提供给各种第三方的入口嵌入，甚至被不同的团队独立维护。而整个网站则只是各种服务的集合而非一个巨大的整体。
与此同时，我们仍然依赖 Vue.js 作为 JavaScript 框架。Vue 除了是 React/Angular 这种“重型武器”的竞争对手外，其轻量与高性能的优点使得它同样可以作为传统多页应用开发中流行的 “jQuery/Zepto/Kissy + 模板引擎” 技术栈的完美替代。Vue 提供的组件系统、声明式与响应式编程更是提升了代码组织、共享、数据流控制、渲染等各个环节的开发效率。Vue 还是一个渐进式框架，如果网站的复杂度继续提升，我们可以按需、增量地引入 Vuex 或 Vue-Router 这些模块。万一哪天又要改回单页呢？（谁知道呢……）
2017 年，PWA 已经成为 web 应用新的风潮。我们决定试试，以我们现有的“Vue + 多页”的架构，能在升级 PWA 的道路上走多远，达到怎样的效果。
实现 “PRPL” 模式
“PRPL”（读作 “purple”）是 Google 的工程师提出的一种 web 应用架构模式，它旨在利用现代 web 平台的新技术以大幅优化移动 web 的性能与体验，对如何组织与设计高性能的 PWA 系统提供了一种高层次的抽象。我们并不准备从头重构我们的 web 应用，不过我们可以把实现 “PRPL” 模式作为我们的迁移目标。“PRPL”实际上是 Push/Preload、Render、Precache、Lazy-Load 的缩写，我们会在下文中展开它们的具体含义。
1. PUSH/PRELOAD，推送/预加载初始 URL 路由所需的关键资源。
无论是 HTTP2 Server Push 还是 <link rel="preload">
，其关键都在于，我们希望提前请求一些隐藏在应用依赖关系（Dependency Graph）较深处的资源，以节省 HTTP 往返、浏览器解析文档、或脚本执行的时间。比如说，对于一个基于路由进行 code splitting 的 SPA，如果我们可以在 webpack 清单、路由等入口代码（entry chunks）被下载与运行之前就把初始 URL，即用户访问的入口 URL 路由所依赖的代码用 Server Push 推送或 <link rel="preload">
进行提前加载。那么当这些资源被真正请求时，它们可能已经下载好并存在在缓存中了，这样就加快了初始路由所有依赖的就绪。
在多页应用中，每一个路由本来就只会请求这个路由所需要的资源，并且通常依赖也都比较扁平。饿了么移动站的大部分脚本依赖都是普通的 <script>
元素，因此他们可以在文档解析早期就被浏览器的 preloader 扫描出来并且开始请求，其效果其实与显式的 <link rel="preload">
是一致的。
我们还将所有关键的静态资源都伺服在同一域名下（不再做域名散列），以更好的利用 HTTP2 带来的多路复用（Multiplexing）。同时，我们也在进行着对 API 进行 Server Push 的实验。
2. RENDER，渲染初始路由，尽快让应用可被交互
既然所有初始路由的依赖都已经就绪，我们就可以尽快开始初始路由的渲染，这有助于提升应用诸如首次渲染时间、可交互时间等指标。多页应用并不使用基于 JavaScript 的路由，而是传统的 HTML 跳转机制，所以对于这一部分，多页应用其实不用额外做什么。
3. PRE-CACHE，用 Service Worker 预缓存剩下的路由
这一部分就需要 Service Worker 的参与了，Service Worker 是一个位于浏览器与网络之间的客户端代理，它以可拦截、处理、响应流经的 HTTP 请求，使得开发者得以从缓存中向 web 应用提供资源而闻名。不过，Service Worker 其实也可以主动发起 HTTP 请求，在“后台” 预请求与预缓存我们未来所需要的资源。
我们已经使用 Webpack 在构建过程中进行 .vue
编译、文件名哈希等工作，于是我们编写了一个 webpack 插件来帮助我们收集需要缓存的依赖到一个“预缓存清单”中，并使用这个清单在每次构建时生成新的 Service Worker 文件。在新的 Service Worker 被激活时，清单里的资源就会被请求与缓存，这其实与 SW-Precache 这个库的运行机制非常接近。
实际上，我们只对我们标记为“关键路由”的路由进行依赖收集。你可以将这些“关键路由”的依赖理解为我们整个应用的 “App Shell” 或者说“安装包”。一旦它们都被缓存，或者说成功安装，无论用户是在线离线，我们的 web 应用都可以从缓存中直接启动。对于那些并不那么重要的路由，我们则采取在运行时增量缓存的方式。我们使用的 SW-Toolbox 提供了 LRU 替换策略与 TTL 失效机制，可以保证我们的应用不会超过浏览器的缓存配额。
4. LAZY-LOAD 按需懒加载、懒实例化剩下的路由
懒加载与懒实例化剩下的路由对于 SPA 是一件相对麻烦点儿的事情，你需要实现基于路由的 code splitting 与异步加载。幸运的是，这又是一件不需要多页应用担心的事情，多页应用中的各个路由天生就是分离的。
值得说明的是，无论单页还是多页应用，如果在上一步中，我们已经将这些路由的资源都预先下载与缓存好了，那么懒加载就几乎是瞬时完成的了，这时候我们就只需要付出实例化的代价。
这四句话即是 PRPL 的全部了。有趣的是，我们发现多页应用在实现 PRPL 这件事甚至比单页还要容易一些。那么结果如何呢？
根据 Google 推出的 Web 性能分析工具 Lighthouse（v1.6），在模拟的 3G 网络下，用户的初次访问（无任何缓存）大约在 2 秒左右达到“可交互”，可以说非常不错。而对于再次访问，由于所有资源都直接来自于 Service Worker 缓存，页面可以在 1 秒左右就达到可交互的状态了。
但是，故事并不是这么简单得就结束了。在实际的体验中我们发现，应用在页与页的切换时，仍然存在着非常明显的白屏空隙，由于 PWA 是全屏运行的，白屏对用户体验所带来的负面影响甚至比以往在浏览器内更大。我们不是已经用 Service Worker 缓存了所有资源了吗，怎么还会这样呢？
从首页点击到发现页，跳转过程中的白屏
多页应用的陷阱：重启开销
与 SPA 不同，在多页应用中，路由的切换是原生的浏览器文档跳转（Navigating across documents），这意味着之前的页面会被完全丢弃而浏览器需要为下一个路由的页面重新执行所有的启动步骤：重新下载资源、重新解析 HTML、重新运行 JavaScript、重新解码图片、重新布局页面、重新绘制……即使其中的很多步骤本是可以在多个路由之间复用的。这些工作无疑将产生巨大的计算开销，也因此需要付出相当的时间成本。
图中为我们的入口页（同时也是最重的页面）在 2 倍 CPU 节流模拟下的 profile 数据。即使我们可以将“可交互时间”控制在 1 秒左右，我们的用户仍然会觉得这对于“仅仅切换个标签”来说实在是太慢了。
巨大的 JavaScript 重启开销
根据 Profile，我们发现在首次渲染（First Paint）发生之前，大量的时间（900 毫秒）都消耗在了 JavaScript 的运行上（Evaluate Script）。几乎所有脚本都是阻塞的（Parser-blocking），不过因为所有的 UI 都是由 JavaScript/Vue 驱动的，倒也不会有性能影响。这 900ms 中，约一半是消耗在包括 Vue 运行时、组件、库等依赖的运行上，而另一半则花在了业务组件实例化时 Vue 的启动与渲染上。从软件工程角度来说，我们需要这些抽象，所以这里并不是想责怪 JavaScript 或是 Vue 所带来的开销。
但是，在 SPA 中，JavaScript 的启动成本是均摊到整个生命周期的： 每个脚本都只需要被解析与编译一次，诸如生成 Virtual DOM 等较重的任务可以只执行一次，像 Vue 的 ViewModel 或是 Virtual DOM 这样的大对象也可以被留在内存里复用。可惜在多页应用里就不是这样了，我们每次切换页面都为 JavaScript 付出了巨大的重启代价。
浏览器的缓存啊，能不能帮帮忙？
能，也不能。
V8 提供了代码缓存（code caching），可以将编译后的机器码在本地拷贝一份，这样我们就可以在下次请求同一个脚本时一次省略掉请求、解析、编译的所有工作。而且，对于缓存在 Service Worker 配套的 Cache Storage 中的脚本，会在第一次执行后就触发 V8 的代码缓存，这对于我们的多页切换能提供不少帮助。
另外一个你或许听过的浏览器缓存叫做“进退缓存”，Back-Forward Cache，简称 bfcache。浏览器厂商对其的命名各异，Opera 称之为 Fast History Navigation，Webkit 称其为 Page Cache。但是思路都一样，就是我们可以让浏览器在跳转时把前一页留存在内存中，保留 JavaScript 与 DOM 的状态，而不是全都销毁掉。你可以随便找个传统的多页网站在 iOS Safari 上试试，无论是通过浏览器的前进后退按钮、手势，还是通过超链接（会有一些不同），基本都可以看到瞬间加载的效果。
Bfcache 其实非常适合多页应用。但不幸的是，Chrome 由于内存开销与其多进程架构等原因目前并不支持。Chrome 现阶段仅仅只是用了传统的 HTTP 磁盘缓存，来稍稍简化了一下加载过程而已。对于 Chromium 内核霸占的 Android 生态来说，我们没法指望了。
为“感知体验”奋斗
尽管多页应用面临着现实中的不少性能问题，我们并不想这么快就妥协。一方面，我们尝试尽可能减少在页面达到可交互时间前的代码执行量，比如减少/推迟一些依赖脚本的执行，还有减少初次渲染的 DOM 节点数以节省 Virtual DOM 的初始化开销。另一方面，我们也意识到应用在感知体验上还有更多的优化空间。
Chrome 产品经理 Owen 写过一篇 Reactive Web Design: The secret to building web apps that feel amazing，谈到两种改进感知体验的手段：一是使用骨架屏（Skeleton Screen）来实现瞬间加载；二是预先定义好元素的尺寸来保证加载的稳定。跟我们的做法可以说不谋而合。
为了消除白屏时间，我们同样引入了尺寸稳定的骨架屏来帮助我们实现瞬间的加载与占位。即使是在硬件很弱的设备上，我们也可以在点击切换标签后立刻渲染出目标路由的骨架屏，以保证 UI 是稳定、连续、有响应的。我录了两个视频放在 Youtube 上，不过如果你是国内读者，你可以直接访问饿了么移动网站来体验实地的效果 ;) 最终效果如下图所示。
在添加骨架屏后，从发现页点回首页的效果
这效果本该很轻松的就能实现，不过实际上我们还费了点功夫。
在构建时使用 Vue 预渲染骨架屏
你可能已经想到了，为了让骨架屏可以被 Service Worker 缓存，瞬间加载并独立于 JavaScript 渲染，我们需要把组成骨架屏的 HTML 标签、CSS 样式与图片资源一并内联至各个路由的静态 *.html
文件中。
不过，我们并不准备手动编写这些骨架屏。你想啊，如果每次真实组件有迭代（每一个路由对我们来说都是一个 Vue 组件）我们都需要手动去同步每一个变化到骨架屏的话，那实在是太繁琐且难以维护了。好在，骨架屏不过是当数据还未加载进来前，页面的一个空白版本而已。如果我们能将骨架屏实现为真实组件的一个特殊状态 —— “空状态”的话，我们理论上就可以从真实组件中直接渲染出骨架屏来。
而 Vue 的多才多艺就在这时体现出来了，我们真的可以用 Vue.js 的服务端渲染模块 来实现这个想法，不过不是用在真正的服务器上，而是在构建时用它把组件的空状态预先渲染成字符串并注入到 HTML 模板中。你需要调整你的 Vue 组件代码使得它可以在 Node 上执行，有些页面对 DOM/BOM 的依赖一时无法轻易去除得，我们目前只好额外编写一个 *.shell.vue
来暂时绕过这个问题。
关于浏览器的绘制（Painting）
HTML 文件中有标签并不意味着这些标签就能立刻被绘制到屏幕上，你必须保证页面的关键渲染路径是为此优化的。很多开发者相信将 script 标签放在 body 的底部就足以保证内容能在脚本执行之前被绘制，这对于能渲染不完整 DOM 树的浏览器（比如桌面浏览器常见的流式渲染）来说可能是成立的。但移动端的浏览器很可能因为考虑到较慢的硬件、电量消耗等因素并不这么做。不仅如此，即使你曾被告知设为 async
或 defer
的脚本就不会阻塞 HTML 解析了，但这可不意味着浏览器就一定会在执行它们之前进行渲染。
首先我想澄清的是，根据 HTML 规范 Scripting 章节，async
脚本是在其请求完成后立刻运行的，因此它本来就可能阻塞到解析。只有 defer
（且非内联）与最新的 type=module
被指定为“一定不会阻塞解析”。（不过 defer
目前也有点小问题……我们稍后会再提到）
而更重要的是，一个不阻塞 HTML 解析的脚本仍然可能阻塞到绘制。我做了一个简化的“最小多页 PWA”（Minimal Multi-page PWA，或 MMPWA）来测试这个问题，：我们在一个 async
（且确实不阻塞 HTML 解析）脚本中，生成并渲染 1000 个列表项，然后测试骨架屏能否在脚本执行之前渲染出来。下面是通过 USB Debugging 在我的 Nexus 5 真机上录制的 profile：
是的，出乎意料吗？首次渲染确实被阻塞到脚本执行结束后才发生。究其原因，如果我们在浏览器还未完成上一次绘制工作之前就过快得进行了 DOM 操作，我们亲爱的浏览器就只好抛弃所有它已经完成的像素，且一直要等待到 DOM 操作引起的所有工作结束之后才能重新进行下一次渲染。而这种情况更容易在拥有较慢 CPU/GPU 的移动设备上出现。
黑魔法：利用 setTimeout() 让绘制提前
不难发现，骨架屏的绘制与脚本执行实际是一个竞态。大概是 Vue 太快了，我们的骨架屏还是有非常大的概率绘制不出来。于是我们想着如何能让脚本执行慢点，或者说，“懒”点。于是我们想到了一个经典的 Hack： setTimeout(callback, 0)
。我们试着把 MMPWA 中的 DOM 操作（渲染 1000 个列表）放进 setTimeout(callback, 0)
里……
当当！首次渲染瞬间就被提前了。如果你熟悉浏览器的事件循环模型（event loop）的话，这招 Hack 其实是通过 setTimeout 的回调把 DOM 操作放到了事件循环的任务队列中以避免它在当前循环执行，这样浏览器就得以在主线程空闲时喘息一下（更新一下渲染）了。如果你想亲手试试 MMPWA 的话，你可以访问 github.com/Huxpro/mmpwa 或 huangxuan.me/mmpwa/ 访问代码与 Demo。我把 UI 设计为了 A/B Test 的形式并改为渲染 5000 个列表项来让效果更夸张一些。
回到饿了么 PWA 上，我们同样试着把 new Vue()
放到了 setTimeout
中。果然，黑魔法再次显灵，骨架屏在每次跳转后都能立刻被渲染。这时的 Profile 看起来是这样的：
现在，我们在 400ms 时触发首次渲染（骨架屏），在 600ms 时完成真实 UI 的渲染并达到页面的可交互。你可以拉上去详细对比下优化前后 profile 的区别。
被我 “defer” 的有关 defer
的 Bug
不知道你发现没有，在上图的 Profile 中，我们仍然有不少脚本是阻塞了 HTML 解析的。好吧让我解释一下，由于历史原因，我们确实保留了一部分的阻塞脚本，比如侵入性很强的 lib-flexible，我们没法轻易去除它。不过，profile 里的大部分阻塞脚本实际上都设置了 defer
，我们本以为他们应该在 HTML 解析完成之后才被执行，结果被 profile 打了一脸。
我和 Jake Archibald 聊了一下，果然这是 Chrome 的 Bug：defer
的脚本被完全缓存时，并没有遵守规范等待解析结束，反而阻塞了解析与渲染。Jake 已经提交在 crbug 上了，一起给它投票吧~
最后，是优化后的 Lighthouse 跑分结果，同样可以看到明显的性能提升。需要说明的是，能影响 Lighthouse 跑分的因素有很多，所以我建议你以控制变量（跑分用的设备、跑分时的网络环境等）的方式来进行对照实验。
最后附上一张图，这张图当时是做给 Addy Osmani 的 I/O 演讲用的，描述了饿了么 PWA 是如何结合 Vue 来实现多页应用的 PRPL 模式，可以作为一个架构的参考与示意图。
一些感想
多页应用仍然有很长的路要走
Web 是一个极其多样化的平台。从静态的博客，到电商网站，再到桌面级的生产力软件，它们全都是 Web 这个大家庭的第一公民。而我们组织 web 应用的方式，也同样只会更多而不会更少：多页、单页、Universal JavaScript 应用、WebGL、以及可以预见的 Web Assembly。不同的技术之间没有贵贱，但是适用场景的差距确是客观存在的。
Jake 曾在 Chrome Dev Summit 2016 上说过 “PWA !== SPA”。可是尽管我们已经用上了一系列最新的技术（PRPL、Service Worker、App Shell……），我们仍然因为多页应用模型本身的缺陷有着难以逾越的一些障碍。多页应用在未来可能会有“bfcache API”、Navigation Transition 等新的规范以缩小跟 SPA 的距离，不过我们也必须承认，时至今日，多页应用的局限性也是非常明显的。
而 PWA 终将带领 web 应用进入新的时代
即使我们的多页应用在升级 PWA 的路上不如单页的那些来得那么闪亮，但是 PWA 背后的想法与技术却实实在在的帮助我们在 web 平台上提供了更好的用户体验。
PWA 作为下一代 Web 应用模型，其尝试解决的是 web 平台本身的根本性问题：对网络与浏览器 UI 的硬依赖。因此，任何 web 应用都可以从中获益，这与你是多页还是单页、面向桌面还是移动端、是用 React 还是 Vue 无关。或许，它还终将改变用户对移动 web 的期待。现如今，谁还觉得桌面端的 web 只是个看文档的地方呢？
还是那句老话：让我们的用户，也像我们这般热爱 web 吧。
最后，感谢饿了么的王亦斯、任光辉、题叶，Google 的 Michael Yeung、DevRel 团队， UC 浏览器团队，腾讯 X5 浏览器团队在这次项目中的合作。感谢尤雨溪、陈蒙迪和 Jake Archibald 在写作过程中给予我的帮助。
Read at medium.com: Upgrading Ele.me to Progressive Web Apps
Since the very first experiments that @Vue.js tweeted, we at Ele.me (the biggest food ordering and delivering company in China) have been working on upgrading our mobile website to a Progressive Web App. We’re proud to ship the world-first PWA exclusively for the Chinese market, but even prouder to collaborate with Google, UC and Tencent to push the boundary of web experience and browser supports in China.
Multi-page, Vue, PWA?
There is a prevailing opinion that only structuring a web app as a Single Page App can we build PWAs that deliver app-like user experience. Popular reference examples including Twitter Lite, Flipkart Lite, Housing Go and Polymer Shop are all using the SPA model.
However at Ele.me, we’ve come to appreciate many advantages of a Multi-Page App model, and decided to refactor the mobile site from an Angular 1 SPA to a Multi-Paged app more than a year ago. The most important advantage we see is the isolation and decoupling between pages, which allows us to built different parts of the mobile site as “micro-services”. These services can then be independently iterated, embedded into 3rd-party apps, and even maintained by different teams.
Meanwhile, we still leverage Vue.js to boost our productivity. You may have heard of Vue as a rival of React or Angular, but Vue’s lightweight and performance make it also a perfect replacement of traditional “jQuery/Zepto + template engine” stack when engineering a Multi-page app. We built every component as Single File Components so they can be easily shareable between pages. The declarative-ness plus reactivity Vue offered help us manage both code and data flow. Oh, did I mention that Vue is progressive? So things like Vuex or Vue-Router can be incrementally adopted if our site’s complexity scales up, like…migrating to SPA again? (Who knows…)
In 2017, PWA seems to be all the rage, so we embark on exploring how far can our Vue-based Multi-page PWAs actually go.
Implementing “PRPL” with MPA
I love PRPL pattern because it gives you a high-level abstraction of how to structure and design your own PWA systems. Since we are not rebuild everything from scratch, we decided taking implementing PRPL as our migration goal:
1. PUSH critical resources for initial URL route.
The key of pushing/preloading is to prioritize resources hidden in deep dependency graph and make browser’s network stack busy ASAP. Let’s say you have a SPA with code splitting by route, you can push/preload chunks for the current route before the “entry chunks” (e.g. webpack manifest, router) finish downloading and evaluating. So when the actual fetches happen, they might already be in caches.
Routes in MPAs naturally fetch code for that route only, and tend to have a flattening dependency graph. Most scripts depended by Ele.me are just <script>
elements, so they can be found and fetched by good old browser preloader in early parsing phase without explicit <link rel="preload">
.
To take benefits from HTTP2 Multiplexing, we currently serve all critical resources under a single domain (no more domain sharding), and we are also experimenting on Server Push.
2. RENDER initial route & get it interactive ASAP
This one is essentially free (ridiculously obvious) in MPA since there’s only one route at one time.
A straightforward rendering is critical for metrics such as First-Meaningful-Paint and Time-To-Interactive. MPAs gain it for free due to the simplicity of traditional HTML navigation they used.
3. PRE-CACHE remaining routes using Service Worker
This’s the part Service Worker come to join the show. Service Worker is known as a client-side proxy enabling developers to intercept requests and serve responses from cache, but it can also perform initiative fetch to prefetch then precache future resources.
We already used Webpack in the build process to do .vue
compilation and asset versioning, so we create a webpack plugin to help us collecting dependencies into a “precache manifest” and generating a new Service Worker file after each build. This is pretty much like how SW-Precache works.
In fact, we only collect dependencies of routes we flagged as “Critical Route”. You can think of them as “App Shell” or the “Installation Package” of our app. Once they are cached/installed successfully, our web app can boot up directly from cache and available offline. Routes that “not critical” would be incrementally cached at runtime during the first visit. Thanks to the LRU cache policies and TTL invalidation mechanisms provided by SW-Toolbox, we have no worries of hitting the quota in a long run.
4. LAZY-load & instantiate remaining routes on demand
Lazy-loading and lazily instantiating remaining parts of the app is relatively challenging for SPA to achieve. It requires both code splitting and async importing. Fortunately, this is also a built-in feature of MPA model, in which routes are naturally separated.
Noticed that the lazy-loading can be done instantly if the requested route is already pre-cached in Service Worker cache, no matter whether SPA or MPA is used. #ServiceWorkerAwesomeness
Surprisingly, we found Multi-page PWA is kinda naturally “PRPL”! MPA has already provided built-in support for “PRL”, and the second “P” involving Service Worker can be easily fulfilled in any PWA.
So what about the end result?
In Lighthouse simulation (3G & 5x Slower CPU), we made Time-To-Interactive around 2 seconds, and this was benchmarked on our HTTP1 test server.
The first visit is fast. The repeat visit with Service Worker is even faster. You can check out this video to see the huge difference between with or without Service Worker:
Did you see that? No, I mean the annoying blank screen. Even in the Service Worker one, the blank screen is still conspicuous during navigating. How can that be?
Multi-page Pitfall: Redo Everything!
Unlike SPA, changing routes in MPA means actual browser navigation happens: The previous page is discarded completely and the browser need to redo everything for next route: re-download resources, re-parse HTML, re-evaluate JavaScript, re-decode image data, re-layout the page and re-paint the screen, even many of them could be shared across routes. All of these works combined requires significant computing and time.
So here is the profile (2x slower CPU simulated) of our entry page (most heavy one). Even we can make Time-To-Interactive around 1s in repeat visit, our users can still feel too slow for just “switching a tab”.
Huge JavaScript Re-Startup Cost
According to the profile, most of the time (900ms) before hitting the first paint is spent on evaluating JavaScript. Half is on dependencies including Vue Runtime, components, libraries etc., another half is on actual Vue starting-up and mounting. Because all UI rendering is depended on JavaScript/Vue, all of the critical scripts remain guiltily parser-blocking. I’m by no means blaming JavaScript or Vue’s overheads here, It’s just a tradeoff when we need this layer of abstraction in engineering.
In SPA, JavaScript Start-up Cost is amortized during the whole lifecycle. Parsing/Compiling for each script is only once, many heavy executing can be only once. The big JavaScript objects like Vue’s ViewModels and Virtual DOM can be kept in memory and reused as much as you want. This is not the case in MPA however.
Could Browser Caches Help?
Yes or no.
V8 introduced code caching, a way to store a local copy of compiled code so fetching, parsing and compilation could all be skipped next time. As @addyosmani mentioned in JavaScript Start-up Performance, scripts stored in Cache Storage via Service Worker could trigger code caching in just the first execution.
Another browser cache you might hear of is “Back-Forward Cache”, or bfcache. The name varies, like Opera’s “Fast History Navigation” or WebKit’s “Page Cache”. The idea is that browsers can keep the previous page live in memory, i.e. DOM/JS states, instead of destroying everything. In fact, this idea works very well for MPA. You can try every traditional Multi-page websites in iOS Safari and observe an instantaneously loading when back/forward. (With browser UI/Gesture or with hyperlink can have a slight difference though.)
Unfortunately, Chrome has no this kind of in-memory bfcache currently concerning to memory consumption and its multi-process architecture. It just leverages HTTP disk cache to simplify the loading pipeline, almost everything still needs to be redone. More details and discussions can be seen here.
Striving for Perceived Performance
Although the reality is dark, we don’t want to give up so easily. One optimization we try to do is to render DOM nodes/create Virtual DOM nodes as less as possible to improve the Time-To-Interactive. While another opportunity we see is to play tricks on perceived performance.
@owencm have written a great post “Reactive Web Design: The secret to building web apps that feel amazing” covering both “Instant loads with skeleton screens” and “Stable loads via predefined sizes on elements” to improve perceived performance and user experience. Yes, we actually used both.
What about we showing the end result after these optimizations first before entering technical nitty gritty? There you go!
Too fast and can not see the pulsing Skeleton Screen clearly? Here is a version showing how it looks like under 10 times slower CPU.
This is a much better UX, right? Even we have slow navigation in slow devices, at least the UI is stable, consistent and always responding. So how we get there?
Rendering Skeleton Screen with Vue at Build-Time
As you might have guessed, the Skeleton Screen that consists of markups, styles, and images is inlined into *.html
of each route. So they can be cached by Service Worker, be loaded instantly, and be rendered independently with any JavaScript.
We don’t want to manually craft each Skeleton Screen for each routes. It’s a tedious job and we have to manually sync every change between Skeleton Screens and the actual UI components (Yes we treat every route as just a Vue component). But think about it, Skeleton Screen is just a blank version of a page into which information is gradually loaded. What if we bake the Skeleton Screen into the actual UI component as just a loading state so we can render Skeleton Screen out directly from it without the issue of syncing?
Thanks to the versatility of Vue, we can actually realize it with Vue.js Server-Side Rendering. Instead of using it on a real server, we use it at build time to render Vue components to strings and injected them into HTML templates.
Fast Skeleton Painting…
Having markups in *.html
doesn’t mean that they will be painted fast, you have to make sure the Critical Rendering Path is optimized for that. Many developers believed that putting script tags in the end of the body is sufficient for getting content painted before executing scripts. This might be true for browsers supporting rendering an incomplete DOM tree (e.g. streaming render), But browsers might not do that in mobile concerning slower hardwares, battery, and heats. And even we are told that script tags with async
or defer
is not parser-blocking, it also doesn’t mean we can get content painted before executing scripts in reality.
First I want to clarify it a little bit. According to the Scripting section of HTML (WHATWG living standard, the W3C’s same here), async
scripts would be evaluated as soon as it is available thus could potentially blocking parsing. Only defer
(and not inlined) is specified to be never block parsing. That’s why Steve Souders ever posted “Prefer DEFER Over ASYNC”. (defer
has its own issue and we will cover it later.)
Then I want to say: A script not blocking parser could still block painting nonetheless. So here is a reduced test I wrote named “Minimal Multi-page PWA”, or MMPWA, which basically render 1000 list items within an async
(and truly not parser-blocking) script to see if we can get Skeleton Screen painted before scripts get executed.  The first paint is blocked. I was also surprised here. The reason I guess is that if we touch DOM so quickly that the browser has still NOT finished previous painting job, our dear browser has to abort every pixel it has drawn, and has to wait until current DOM manipulation task finished and redo the rendering pipeline again. And this more often happens with a mobile device with a slower CPU/GPU.
Fast Skeleton Painting with setTimeout Hack
We indeed encountered this problem when testing our new beautiful Skeleton Screen. Perhaps Vue finishes its job and start to mount nodes too fast ;). But anyway we have to make it slower, or rather lazier. So we try to put DOM manipulation things inside setTimeout(callback, 0)
, and it works like a charm!
I think you may curious about how this change performs in the wild, so I have refined MMPWA by rendering 5000 list items rather 1000 to make the differences more obvious, and by designing it in an A/B testing manner. The code is on Github and the demo is live on huangxuan.me/mmpwa/. Here is also a video for loungers.
This famous setTimeout
hack (a.k.a. Zero Delays) looks quite magic, but it is science™. If you are familiar with event loop, it just prevents these code from executing in the current loop by putting everything to the task queues with the Timer Callback, so the browser could breath (update the rendering) in the main thread.
So we applied what we learned from MMPWA by putting new Vue()
inside setTimeout
and BOOM! We have Skeleton Screen painted consistently after every navigating! Here is the profile after all these optimizations.
Huge improvements right? This time we hit First Paint (Skeleton Screen Paint) at 400ms and TTI at 600ms. You should really go back to have a before-after comparison in details.
 Are them all async
? OK, ok. For historical reasons, we do keep some parser-blocking scripts, like lib-flexible, we couldn’t get rid of it without a huge refactoring. But most of these blocking scripts are in fact defer
. We expected that they can be executed after parsing and in order, however the profile kinda slap on my face. :(
Remember I said I would talk about one issue of defer
previously? Yes, that’s it. I have had a conversation with Jake Archibald and it turns out it might be a bug of Chrome when the deferred scripts are fully cached. Vote it at crbug!
Similar improvements can be seen from Lighthouse (Under same server and network environment). A Pro Tip is you should always use lighthouse in a variable controlling approach.
Performance In the Real World
Alex Russell has given a very insightful talk on mobile web performance at Chrome Dev Summit 2016, talking about how hard can we build performant web applications on mobile devices. Highly recommended.
Chinese users tend to have a pretty powerful phone. MI4 is shipped with snapdragon 801 (slightly out-performs Nexus 5) but only costs 100$. It’s affordable by at least 80% of our users so we take it as a baseline.
Here is a video screen-recorded on my Nexus 5 showing switching between 4 tabs. The performance varies between tabs due to their variant scale. The heaviest one, entry page, take around 1s to hit real Time-To-Interactive on my Nexus 5.
FYI. This is surprisingly comparable to what I get from Chrome Simulation with 2x CPU throttling. With 5x throttling, this can spend 2–3s to get TTI, horribly. (To be honest, I found even under same throttling, the results can vary drastically depended on my Macbook’s “mood”.)
Final Thoughts
This article is much longer than I could imagine. I am really appreciated if you could get here. So what can we learn from it?
MPA still has some way to go
Jake Archibald ever said that “PWA !== SPA” at Chrome Dev Summit 2016. But the sad truth is that even we have taken advantages of bleeding edge technologies such as “PRPL” pattern, Service Worker, App-Shell, Skeleton Screen, there is still a distance between us and many Single Page PWA just because we are Multi-page structured.
The web is extremely versatile. Static blogs, e-business sites, desktop-level software, all of them should be the first-class citizens of the web family. MPA might have things like “bfcache API”, navigation transitions to catch up the SPA in the future, but it is not today certainly.
PWA is Awesome No Matter What
Hey, I am not overblowing it. Even we as a Multi-page PWA couldn’t be as stunning and app-like as many Single Page PWAs are. The idea and technologies behind PWA still help us deliver a much better experience to our users on the web that hasn’t been possible before.
What PWA is trying to solve are some fundamental problems of current web application model such as its hard dependencies to network and browser UIs. That’ why PWA can be always beneficial no matter what architecture or what framework you actually used. Addy Osmani would give a talk Production Progressive Web Apps With JavaScript Frameworks at this year’s I/O (and I/O 16). You won’t want to miss it!
Finally, I’d love to thank:
- my colleagues YiSi Wang, GuangHui Ren, JiyinYiyong from Eleme
- collaborator Michael Yeung, Liam Spradlin and other collaborators from Google
- collaborators from UC/Tencent
And special thanks to
- invited reviewer, Evan You.
- Chrome “StackOverflow”, Jake Archibald.
Thank you all!


Relevant Courses Taken:
Stucture and Interpretation of Computer Programs
Data Structures
Discrete Mathematics and Probability Theory
Designing Information Systems and Devices I
Introduction to Artificial Intelligence
Introduction to Data Science
Ruby on Rails
Courses in Progress:
Affiliations:
UC Berkeley's ANova
- operating on the Curriculum Committee and developing/teaching Introduction to Computer Science and AP CS Principles courses twice a week at Montera Middle School and Oakland Charter High School, both in Oakland, CA.
|
Currently...
TBA
Previously...
- serving first generation, low-income, historically underrepresented students in STEM (like me) by hosting exposure events, panels, and semesterly resources.
- teaching Scratch , Python , HTML/CSS/JavaScript , and C , as well as teaching students how to be confident, successful, and resilient women programmers.
Program Coordinator for AGE UP
- facilitated social justice focused conversations on topics such as race, class, and gender, as well as coached the Girls JV Ultimate Frisbee team at Franklin High School for two seasons.
|
Currently...
Self-Care
- focused on making meditation, reflection, and self-evaluation/self-care techniques more readily accessible and exciting through the mobile app I'm developing using Swift.
Past Projects:
DogParty
- a Ruby on Rails web application used to plan dog parties based on user input where users enter preferred time/date/local park and DogParty outputs the perfect "dog party" consisting of time, date, location, and other users.
|


@{_('Open Reports')}
@{_('Includes all open reports for subs you can moderate.')}
@{_('Total Open Reports:')} @reports['open_report_count'] | @{_('Total Closed Reports:')} @reports['closed_report_count']
| @{_('Sub')} | @{_('Type')} | @{_('Reporter')} | @{_('Reason')} | @{_('User reported')} | @{_('Time')} | @{_('Close')} |
|---|---|---|---|---|---|---|
| @if report['type'] == 'comment': @{_('Comment')} @else: @{_('Post')} @end | @{report['reason']} | @{_('[x]')} |


We would like to use third party cookies and scripts to improve the functionality of this website.
Got it
{% if jekyll.environment == 'production' and site.google_analytics_key != '' %}
{% endif %}


Filipe Fernandes
Aug 24, 2018
whoami
Rather than a reproducibility crisis
https://www.nature.com/news/interactive-notebooks-sharing-the-code-1.16261
https://www.theatlantic.com/science/archive/2018/04/the-scientific-paper-is-obsolete/556676
Numerical model example
How to properly document all that so others can reproduce the simulation?
Write your answers on the etherpad and comment on the barriers, if any, you encountered?
PS: shameless copied from the awesome tutorials available at: http://bitsandchips.me/Talks/PyCon.html and http://bitsandchips.me/JNB_reproducible.
… and share it!
In research, experiments/results are not trusted unless:
So why would scientific software be any different?
The code test-document-publish cookie cutter!
(Yep! Another cookie cutter for Scientific Python package!)
https://github.com/lsetiawan/rppc GitHub account Travis-CI account
hands on… … python package choose a license https://choosealicense.com write doctest… … with a bug fix test / re-run / Travis-CI / CircleCI AppVeyor upload source dist and docs DOI


#include <btQuickprof.h>
Public Member Functions | |
| btClock () | |
| The btClock is a portable basic clock that measures accurate time in seconds, use for profiling. | |
| void | reset () |
| Resets the initial reference time. | |
| unsigned long long int | getTimeMilliseconds () |
| unsigned long long int | getTimeMicroseconds () |
| btScalar | getTimeSeconds () |
Definition at line 24 of file btQuickprof.h.
| unsigned long long int btClock::getTimeMilliseconds | ( | ) |
Returns the time in ms since the last call to reset or since the btClock was created.
Returns the time in ms since the last call to reset or since the btClock was created.
Definition at line 143 of file btQuickprof.cpp.
00144 { 00145 #ifdef BT_USE_WINDOWS_TIMERS 00146 LARGE_INTEGER currentTime; 00147 QueryPerformanceCounter(¤tTime); 00148 LONGLONG elapsedTime = currentTime.QuadPart - 00149 m_data->mStartTime.QuadPart; 00150 // Compute the number of millisecond ticks elapsed. 00151 unsigned long msecTicks = (unsigned long)(1000 * elapsedTime / 00152 m_data->mClockFrequency.QuadPart); 00153 00154 return msecTicks; 00155 #else 00156 00157 #ifdef __CELLOS_LV2__ 00158 uint64_t freq=sys_time_get_timebase_frequency(); 00159 double dFreq=((double) freq) / 1000.0; 00160 typedef uint64_t ClockSize; 00161 ClockSize newTime; 00162 SYS_TIMEBASE_GET( newTime ); 00163 //__asm __volatile__( "mftb %0" : "=r" (newTime) : : "memory"); 00164 00165 return (unsigned long int)((double(newTime-m_data->mStartTime)) / dFreq); 00166 #else 00167 00168 struct timeval currentTime; 00169 gettimeofday(¤tTime, 0); 00170 return (currentTime.tv_sec - m_data->mStartTime.tv_sec) * 1000 + 00171 (currentTime.tv_usec - m_data->mStartTime.tv_usec) / 1000; 00172 #endif //__CELLOS_LV2__ 00173 #endif 00174 }
| unsigned long long int btClock::getTimeMicroseconds | ( | ) |
Returns the time in us since the last call to reset or since the Clock was created.
Returns the time in us since the last call to reset or since the Clock was created.
Definition at line 178 of file btQuickprof.cpp.
Referenced by getTimeSeconds().
00179 { 00180 #ifdef BT_USE_WINDOWS_TIMERS 00181 //see https://msdn.microsoft.com/en-us/library/windows/desktop/dn553408(v=vs.85).aspx 00182 LARGE_INTEGER currentTime, elapsedTime; 00183 00184 QueryPerformanceCounter(¤tTime); 00185 elapsedTime.QuadPart = currentTime.QuadPart - 00186 m_data->mStartTime.QuadPart; 00187 elapsedTime.QuadPart *= 1000000; 00188 elapsedTime.QuadPart /= m_data->mClockFrequency.QuadPart; 00189 00190 return (unsigned long long) elapsedTime.QuadPart; 00191 #else 00192 00193 #ifdef __CELLOS_LV2__ 00194 uint64_t freq=sys_time_get_timebase_frequency(); 00195 double dFreq=((double) freq)/ 1000000.0; 00196 typedef uint64_t ClockSize; 00197 ClockSize newTime; 00198 //__asm __volatile__( "mftb %0" : "=r" (newTime) : : "memory"); 00199 SYS_TIMEBASE_GET( newTime ); 00200 00201 return (unsigned long int)((double(newTime-m_data->mStartTime)) / dFreq); 00202 #else 00203 00204 struct timeval currentTime; 00205 gettimeofday(¤tTime, 0); 00206 return (currentTime.tv_sec - m_data->mStartTime.tv_sec) * 1000000 + 00207 (currentTime.tv_usec - m_data->mStartTime.tv_usec); 00208 #endif//__CELLOS_LV2__ 00209 #endif 00210 }
| btScalar btClock::getTimeSeconds | ( | ) |
Returns the time in s since the last call to reset or since the Clock was created.
Returns the time in s since the last call to reset or since the Clock was created.
Definition at line 276 of file btQuickprof.cpp.
References getTimeMicroseconds().
00277 { 00278 static const btScalar microseconds_to_seconds = btScalar(0.000001); 00279 return btScalar(getTimeMicroseconds()) * microseconds_to_seconds; 00280 }


METAL GUITAR DEPOT
Home
Guitars
Acoustic
Electric
Specialty
Accessories
Strings and Cables
Hardware
Login
Logout


Set up Bluejeans
Read notes from previous calls
Open up their Business Manager
Open up relevant ad accounts
Find relevant hook involving 1 optimization and 1 pitch
Have Intent
Call Disclosure
Introduce yourself, role, and ME program
Confirm Decision Maker ask to be connected to DM.
Confirm Budget or changes to budget
Set an agenda with desired outcomes for the call
Demonstrate adequate call preparation referencing previous performance, research, or a relevant hook.
Review current advertising strategies or revisit previous strategies. Results from previous campaigns
Restate questions, issues / statements to confirm understanding
Offer an optimization, product, or solution relevant to the client's needs.
Communicate the recommendation in a clear, thorough, and accurate manner.
Confirm advertiser understood the solution/recommendation found it acceptable.
Address all of the advertiser's questions correctly Results from previous campaigns
Ask if there was anything else they could help with.
Provide a summary or recap reinforcing key points from the call.
Confirm next steps/ask the advertiser for an appropriate follow up interaction based on the opportunity.
Properly close the conversation in a friendly manner.
Match the advertiser's level of expertise with language and behavior.
Build rapport, express empathy, humanize yourself, to not sound robotic.
Manage an appropriate pace and call flow./ Demonstrate call control
Sarting your thoughts/responses in a logical sequence/Keeping the call on track.
Use Bluejeans to screenshare when appropriate.
Ask for the proper contact information in Salesforce and CRM.
Include a proper greeting/statement w/ advertiser's name/ reason for email.
Email consists of a relevant template or email that was appropriately customized (so as not to sound robotic).
Include a summary of the previous interaction
Follow up on all commitments made
Provide additional resource links or attachments in the emails
Use proper grammar, spelling, and syntax in the email communication
Log Client Interactions in CRM
Log the corresponding call with the correct task code and stage the opportunity correctly in Salesforce.
Follow all team policies for use of Salesforce.
Leave detailed notes summarizing the call in all appropriate places, per team guidelines
Discovery
Follow Up Call


subject
DOCUMENTS DIRECTORY 0QCLYVZFKU2B
-dones-del-espiritu-gifts-of-the-spirit.pdf
August 18, 2016
Filetype: PDF
|
1128 views
system_update_alt
Download
subject
Read
-the-other-end-of-the-spear-the-tooth-to-tail-rat.pdf
January 28, 2017
Filetype: PDF
|
2179 views
system_update_alt
Download
subject
Read
-path-integrals-for-stochastic-processes-an-intro.pdf
December 31, 2016
Filetype: PDF
|
654 views
system_update_alt
Download
subject
Read
-java-in-a-nutshell-a-desktop-quick-reference.pdf
August 14, 2016
Filetype: PDF
|
1456 views
system_update_alt
Download
subject
Read
-linguistics-a-complete-introduction-teach-yourse.pdf
October 21, 2016
Filetype: PDF
|
1355 views
system_update_alt
Download
subject
Read
-from-colonies-to-country-elementary-grades-teach.pdf
August 25, 2016
Filetype: PDF
|
453 views
system_update_alt
Download
subject
Read
-feeding-winter-birds-in-the-pacific-northwest.pdf
September 24, 2016
Filetype: PDF
|
1734 views
system_update_alt
Download
subject
Read
-rainy-day-picnic-english-for-me-book-x2f-audioca.pdf
January 21, 2017
Filetype: PDF
|
3322 views
system_update_alt
Download
subject
Read
-the-newport-harbor-murders-revisited-the-crimina.pdf
October 31, 2016
Filetype: PDF
|
1966 views
system_update_alt
Download
subject
Read
-thumbs-up-thumbwrestler-tattoos-paperback.pdf
January 13, 2017
Filetype: PDF
|
1189 views
system_update_alt
Download
subject
Read
-star-education-king-papers-loose-leaf-selection--5.pdf
November 20, 2016
Filetype: PDF
|
1409 views
system_update_alt
Download
subject
Read
-oil-and-gas-pipeline-construction-site-quality-i.pdf
October 23, 2016
Filetype: PDF
|
746 views
system_update_alt
Download
subject
Read
-studyguide-for-beginning-algebra-9th-edition-by--1.pdf
January 08, 2017
Filetype: PDF
|
416 views
system_update_alt
Download
subject
Read
-from-bilateralism-to-isolation-germany-and-the-u.pdf
October 27, 2016
Filetype: PDF
|
1137 views
system_update_alt
Download
subject
Read
-ponteland.pdf
November 03, 2016
Filetype: PDF
|
2034 views
system_update_alt
Download
subject
Read
-mk-genuine-brand-new-guarantee-folk-optional-gui.pdf
October 26, 2016
Filetype: PDF
|
523 views
system_update_alt
Download
subject
Read
-de-katholiek-33.pdf
September 30, 2016
Filetype: PDF
|
2727 views
system_update_alt
Download
subject
Read
-branding-your-business.pdf
December 07, 2016
Filetype: PDF
|
2504 views
system_update_alt
Download
subject
Read
-superannuation-bill-explanatory-and-financial-me.pdf
September 26, 2016
Filetype: PDF
|
1175 views
system_update_alt
Download
subject
Read
-fair-play-paperback.pdf
November 23, 2016
Filetype: PDF
|
1915 views
system_update_alt
Download
subject
Read
-new-jersey-jography-a-fun-run-through-our-state-.pdf
September 23, 2016
Filetype: PDF
|
1150 views
system_update_alt
Download
subject
Read
-population-biology-of-grasses-paperback.pdf
September 29, 2016
Filetype: PDF
|
930 views
system_update_alt
Download
subject
Read
-the-armies-of-the-night-history-as-a-novel-x2f-t.pdf
October 31, 2016
Filetype: PDF
|
537 views
system_update_alt
Download
subject
Read
-the-adventures-of-woodmouth-and-moxy-the-monkey-.pdf
January 29, 2017
Filetype: PDF
|
2472 views
system_update_alt
Download
subject
Read
-heartache-falls.pdf
January 05, 2017
Filetype: PDF
|
1739 views
system_update_alt
Download
subject
Read
-aqa-home-economics-for-gcse-child-development-co-1.pdf
November 02, 2016
Filetype: PDF
|
1003 views
system_update_alt
Download
subject
Read
-siren-song-book-1-of-the-siren-song-trilogy-pape.pdf
January 20, 2017
Filetype: PDF
|
1712 views
system_update_alt
Download
subject
Read
-more-population-nature-and-what-women-want.pdf
January 16, 2017
Filetype: PDF
|
2791 views
system_update_alt
Download
subject
Read
-the-book-unsealed-an-exposition-of-prophecy-and--5.pdf
September 07, 2016
Filetype: PDF
|
1886 views
system_update_alt
Download
subject
Read
-hidden-gems-naming-and-teaching-from-the-brillia.pdf
January 03, 2017
Filetype: PDF
|
2395 views
system_update_alt
Download
subject
Read
-mothers-who-kill-their-children-understanding-th.pdf
August 22, 2016
Filetype: PDF
|
3119 views
system_update_alt
Download
subject
Read
-ermengard-of-narbonne-and-the-world-of-the-troub.pdf
September 08, 2016
Filetype: PDF
|
3228 views
system_update_alt
Download
subject
Read
-dark-tide-i-onslaught-star-wars-the-new-jedi-ord.pdf
October 12, 2016
Filetype: PDF
|
732 views
system_update_alt
Download
subject
Read
-new-monasticism-what-it-has-to-say-to-today-x27-.pdf
September 20, 2016
Filetype: PDF
|
2783 views
system_update_alt
Download
subject
Read
-journeys-from-my-pen-to-your-heart-paperback.pdf
August 24, 2016
Filetype: PDF
|
3301 views
system_update_alt
Download
subject
Read
-georgia-reports-volume-94.pdf
September 13, 2016
Filetype: PDF
|
2144 views
system_update_alt
Download
subject
Read
-leavening-thought-based-on-learned-unity-truths-.pdf
September 09, 2016
Filetype: PDF
|
3248 views
system_update_alt
Download
subject
Read
-grand-lodge-bulletin-grand-lodge-of-iowa-afam-vo.pdf
October 29, 2016
Filetype: PDF
|
1652 views
system_update_alt
Download
subject
Read
-the-large-color-life-reading-library-saut-tangba.pdf
December 06, 2016
Filetype: PDF
|
730 views
system_update_alt
Download
subject
Read
-warigion-blood-on-the-rising-sun.pdf
December 09, 2016
Filetype: PDF
|
3114 views
system_update_alt
Download
subject
Read
-bend-of-quiet-paperback.pdf
January 03, 2017
Filetype: PDF
|
3060 views
system_update_alt
Download
subject
Read
-over-and-out-the-private-war-diary-of-captain-sa.pdf
January 04, 2017
Filetype: PDF
|
502 views
system_update_alt
Download
subject
Read
-job-interview-counterpunch-paperback.pdf
December 14, 2016
Filetype: PDF
|
516 views
system_update_alt
Download
subject
Read
-ion-cyclotron-resonance-spectrometry-ii.pdf
December 16, 2016
Filetype: PDF
|
547 views
system_update_alt
Download
subject
Read
-arctic-sea.pdf
September 19, 2016
Filetype: PDF
|
1193 views
system_update_alt
Download
subject
Read
-hey-girlfriend-75-monologues-for-girls.pdf
October 12, 2016
Filetype: PDF
|
3169 views
system_update_alt
Download
subject
Read
-universal-behavior-of-a-cyclic-oxidation-model.pdf
January 12, 2017
Filetype: PDF
|
1583 views
system_update_alt
Download
subject
Read
-the-social-climbers-handbook-a-novel.pdf
January 14, 2017
Filetype: PDF
|
1134 views
system_update_alt
Download
subject
Read
-the-mad-professor-of-babeldu-hardback.pdf
September 28, 2016
Filetype: PDF
|
2920 views
system_update_alt
Download
subject
Read
-burnt-surviving-against-all-the-odds-beaten-burn.pdf
September 07, 2016
Filetype: PDF
|
626 views
system_update_alt
Download
subject
Read
-molecular-and-structural-archaeology-cosmetic-an.pdf
August 23, 2016
Filetype: PDF
|
838 views
system_update_alt
Download
subject
Read
-pedigree-how-elite-students-get-elite-jobs-revis.pdf
September 07, 2016
Filetype: PDF
|
2053 views
system_update_alt
Download
subject
Read
-the-finalists-guide-to-passing-the-osce-clinical.pdf
October 15, 2016
Filetype: PDF
|
1036 views
system_update_alt
Download
subject
Read
-the-annals-of-jamaica-vol-1-classic-reprint-pape.pdf
August 08, 2016
Filetype: PDF
|
634 views
system_update_alt
Download
subject
Read
-environmental-safety-and-occupational-health-com.pdf
October 02, 2016
Filetype: PDF
|
2695 views
system_update_alt
Download
subject
Read
-easter-rising-1916-birth-of-the-irish-republic.pdf
November 16, 2016
Filetype: PDF
|
745 views
system_update_alt
Download
subject
Read
-once-upon-a-dream-paperback.pdf
December 16, 2016
Filetype: PDF
|
589 views
system_update_alt
Download
subject
Read
-go-math-grade-2-chapter-11-chapter-resources.pdf
January 09, 2017
Filetype: PDF
|
438 views
system_update_alt
Download
subject
Read
-venus-education-and-the-phs-family-class-job-gra-2.pdf
August 27, 2016
Filetype: PDF
|
2437 views
system_update_alt
Download
subject
Read
-classic-political-clangers-paperback.pdf
January 03, 2017
Filetype: PDF
|
2661 views
system_update_alt
Download
subject
Read
-literacy-student-reader-grade-1-level-11-giant-a.pdf
September 24, 2016
Filetype: PDF
|
2467 views
system_update_alt
Download
subject
Read
-report-on-insurance-business-in-the-united-state.pdf
September 24, 2016
Filetype: PDF
|
1546 views
system_update_alt
Download
subject
Read
-music-in-science-fiction-television-tuned-to-the.pdf
November 13, 2016
Filetype: PDF
|
2971 views
system_update_alt
Download
subject
Read
-el-manual-de-la-dominatrix-guia-de-una-buena-chi.pdf
December 29, 2016
Filetype: PDF
|
1698 views
system_update_alt
Download
subject
Read
-the-news-from-ireland-foreign-correspondents-and.pdf
November 08, 2016
Filetype: PDF
|
2159 views
system_update_alt
Download
subject
Read
-make-your-own-puppets-amp-puppet-theaters-willia.pdf
August 17, 2016
Filetype: PDF
|
2785 views
system_update_alt
Download
subject
Read
-prentice-hall-literature-timeless-voices-timeles-23.pdf
January 21, 2017
Filetype: PDF
|
1028 views
system_update_alt
Download
subject
Read
-acceso-y-clasificaci-oacute-n-profesional-en-las.pdf
December 11, 2016
Filetype: PDF
|
385 views
system_update_alt
Download
subject
Read
-developmental-exercises-to-accompany-the-bedford.pdf
August 18, 2016
Filetype: PDF
|
2286 views
system_update_alt
Download
subject
Read
-suspicions-paperback.pdf
December 26, 2016
Filetype: PDF
|
2299 views
system_update_alt
Download
subject
Read
-latinos-and-the-u-s-racial-wealth-divide.pdf
August 29, 2016
Filetype: PDF
|
511 views
system_update_alt
Download
subject
Read
-ground-safety-investigations-and-reports-paperba.pdf
November 05, 2016
Filetype: PDF
|
3243 views
system_update_alt
Download
subject
Read
-transient-techniques-in-electrochemistry.pdf
October 22, 2016
Filetype: PDF
|
1841 views
system_update_alt
Download
subject
Read
-understanding-the-dreams-you-dream-vol-2-every-d.pdf
September 14, 2016
Filetype: PDF
|
2866 views
system_update_alt
Download
subject
Read
-boris-vallejo-and-julie-bell-the-ultimate-collec.pdf
January 20, 2017
Filetype: PDF
|
1413 views
system_update_alt
Download
subject
Read
-a-first-date-with-death-a-love-or-money-mystery.pdf
October 11, 2016
Filetype: PDF
|
2016 views
system_update_alt
Download
subject
Read
-introduction-to-salesforce-analytics-building-re.pdf
January 14, 2017
Filetype: PDF
|
1261 views
system_update_alt
Download
subject
Read
-the-unwelcomed-child.pdf
October 08, 2016
Filetype: PDF
|
1881 views
system_update_alt
Download
subject
Read
-picture-the-past-derby.pdf
November 01, 2016
Filetype: PDF
|
356 views
system_update_alt
Download
subject
Read
-chicago-transformed-world-war-i-and-the-windy-ci.pdf
January 23, 2017
Filetype: PDF
|
2189 views
system_update_alt
Download
subject
Read
-de-tales-stories-from-urban-brazil.pdf
January 06, 2017
Filetype: PDF
|
3102 views
system_update_alt
Download
subject
Read
-i-am-reading-with-cd-captain-pepper-x27-s-pets-u.pdf
September 14, 2016
Filetype: PDF
|
2874 views
system_update_alt
Download
subject
Read
-new-revised-standard-version-bible-with-apocryph.pdf
December 13, 2016
Filetype: PDF
|
3068 views
system_update_alt
Download
subject
Read
-the-genuine-book-ball-in-the-history-of-the-most.pdf
August 19, 2016
Filetype: PDF
|
415 views
system_update_alt
Download
subject
Read
-the-sportsman-s-vade-mecum-for-the-himalayas-con.pdf
September 30, 2016
Filetype: PDF
|
1344 views
system_update_alt
Download
subject
Read
-primary-batteries-classic-reprint-paperback.pdf
August 14, 2016
Filetype: PDF
|
1733 views
system_update_alt
Download
subject
Read
-does-hellenism-contribute-constituent-elements-t.pdf
September 10, 2016
Filetype: PDF
|
2888 views
system_update_alt
Download
subject
Read
-lucky-x27-jim-pleass-the-memoirs-of-glamorgan-x2.pdf
October 31, 2016
Filetype: PDF
|
2321 views
system_update_alt
Download
subject
Read
-baby-face-ears.pdf
January 31, 2017
Filetype: PDF
|
2691 views
system_update_alt
Download
subject
Read
-datamining-using-artificial-neural-networks-tech.pdf
January 27, 2017
Filetype: PDF
|
1268 views
system_update_alt
Download
subject
Read
Other Files
description
-controlled-delivery-of-anti-diabetic-drug-from-m.pdf
[41.91 KB]
description
-on-the-go-innovative-way-of-living-paperback.pdf
[41.91 KB]
description
-sima-kazuhiko-copybook-writing-exercises-every-d.pdf
[41.91 KB]
description
-the-journey-to-becoming-a-professional-soccer-pl.pdf
[41.91 KB]
description
-cautions-to-continental-travellers-classic-repri.pdf
[41.91 KB]
description
-h1-genuine-sacred-memories-and-repentance-chines.pdf
[41.91 KB]
description
-essential-tools-diy-essentials.pdf
[41.91 KB]
description
-home-made-with-love-sweet-treats-for-every-occas.pdf
[41.91 KB]
description
-snowdrops.pdf
[41.91 KB]
description
-skara-brae-turquoise-x2f-band-07.pdf
[41.91 KB]
description
-hiv-and-aids-in-literary-history.pdf
[41.91 KB]
description
-planning-a-perfect-living-room-creating-a-home.pdf
[41.91 KB]
description
-george-vs-george-the-revolutionary-war-as-seen-b.pdf
[41.91 KB]
description
-practical-and-mental-arithmetic-on-a-new-plan-in-1.pdf
[41.91 KB]
description
-ronnie-the-wreck-saves-the-day-paperback.pdf
[41.91 KB]
description
-metal-cowboy-ten-years-further-down-the-road-les.pdf
[41.91 KB]
description
-this-strange-quantum-world-you.pdf
[41.91 KB]
description
-the-nifty-new-hampshire-coloring-book.pdf
[41.91 KB]
description
-why-did-sarah-laugh.pdf
[41.91 KB]
description
-studies-in-history-economics-and-public-law-volu-8.pdf
[41.91 KB]
description
-big-bear-hug.pdf
[41.91 KB]
description
-politics-escorts-blackmail.pdf
[41.91 KB]
description
-cuyahoga-valley-national-park-handbook.pdf
[41.91 KB]
description
-miles-on-the-mississippi-people-move-from-place-.pdf
[41.91 KB]
description
-sports-based-health-interventions-case-studies-f.pdf
[41.91 KB]
description
-french-and-indian-war-aftermath-notices-abstract.pdf
[41.91 KB]
description
-que-hay-en-mi-jardin-x2f-what-x27-s-in-my-garden.pdf
[41.91 KB]
description
-talking-back-an-open-letter-in-response-to-my-mo.pdf
[41.91 KB]
description
-minnie-hocus-bow-cus-turtleback-school-amp-libra.pdf
[41.91 KB]
description
-secondary-vocational-and-technical-schools-opera.pdf
[41.91 KB]
description
-transforming-places-lessons-from-appalachia-pape.pdf
[41.91 KB]
description
-bad-prince-charlie.pdf
[41.91 KB]
description
-primary-mathematics-curriculum-top-student-a-pas.pdf
[41.91 KB]
description
-embracing-the-spiral-model-creating-systems-with.pdf
[41.91 KB]
description
-the-small-hours-paperback.pdf
[41.91 KB]
description
-ask-amy-green-wedding-belles.pdf
[41.91 KB]
description
-ye-of-little-faith-paperback.pdf
[41.91 KB]
description
-johnny-angel-paperback.pdf
[41.91 KB]
description
-the-american-city-volume-1-2-paperback.pdf
[41.91 KB]
description
-hot-times-in-panama-what-would-you-do-to-serve-y.pdf
[41.91 KB]
description
-the-small-orange-beans-induction-of-primary-scho.pdf
[41.91 KB]
description
-make-change-work-for-you.pdf
[41.91 KB]
description
-a-topps-league-story-book-five-you-x27-re-out.pdf
[41.91 KB]
description
-the-most-powerful-weight-loss-device-ever-made-t.pdf
[41.91 KB]
description
-the-proceedings-of-the-first-all-india-sanitary-.pdf
[41.91 KB]
description
-excellent-training-capacity-100-mathematics-thir.pdf
[41.91 KB]
description
-the-alaska-cruise-handbook-joe-upton.pdf
[41.91 KB]
description
-just-plain-stupid-an-unauthorized-autobiography-.pdf
[41.91 KB]
description
-i-murdered-the-spelling-bee-paperback.pdf
[41.91 KB]
description
-i-x27-ll-stand-by-you-one-woman-x27-s-mission-to.pdf
[41.91 KB]
description
-junior-high-school-english-reading-comprehension-2.pdf
[41.91 KB]
description
-interactive-notebook-for-blood-on-the-river-jame.pdf
[41.91 KB]
description
-start-from-scratch-learning-to-read-the-tape-ful.pdf
[41.91 KB]
description
-u-turn-your-life-5-simple-steps-to-achieve-succe.pdf
[41.91 KB]
description
-fort-wagner-fifty-fourth-regiment-massachusetts-.pdf
[41.91 KB]
description
-stephen-crane-x27-s-short-story-quot-the-blue-ho.pdf
[41.91 KB]
description
-harry-potter-and-the-pythagorean-theorem-student.pdf
[41.91 KB]
description
-top-10-delhi-mixed-media-product.pdf
[41.91 KB]
description
-using-spss-for-social-statistics-and-research-me.pdf
[41.91 KB]
description
-math-nifty-graph-paper-notebook-1-x2f-2-inch-squ-1.pdf
[41.91 KB]
description
-this-book-is-gay.pdf
[41.91 KB]
description
-kyoto-protocol.pdf
[41.91 KB]
description
-tombstone-two-the-untold-story-the-first-sissy-m.pdf
[41.91 KB]
description
-game-of-scones.pdf
[41.91 KB]
description
-how-to-train-your-dragon-book-4-how-to-cheat-a-d.pdf
[41.91 KB]
description
-your-first-ent-job-a-survivor-x27-s-guide.pdf
[41.91 KB]
description
-sporting-chancer-one-man-x27-s-journey-to-take-o.pdf
[41.91 KB]
description
-introductory-and-intermediate-algebra-paperback.pdf
[41.91 KB]
description
-catalogue-of-the-officers-and-students-of-boston.pdf
[41.91 KB]
description
-h1-genuine-handsome-middle-aged-chinese-edition.pdf
[41.91 KB]
description
-evaluation-of-the-sensitivity-of-inventory-and-m-13.pdf
[41.91 KB]
description
-miami-luxe-city-guide-paperback.pdf
[41.91 KB]
description
-ap-english-language-and-composition-2005-an-apex.pdf
[41.91 KB]
description
-schaum-x27-s-outline-of-college-algebra-4th-revi.pdf
[41.91 KB]
description
-the-north-american-review-volume-91-paperback.pdf
[41.91 KB]
description
-the-flash-master-of-mirrors-paperback.pdf
[41.91 KB]
description
-lord-my-god-fall-bulletin-2015-pkg-of-50.pdf
[41.91 KB]
description
-say-it-right-in-korean-the-fastest-way-to-correc.pdf
[41.91 KB]
description
-laser-satellite-communication-the-third-generati.pdf
[41.91 KB]
description
-the-divine-master-life-and-teachings-of-guru-nan.pdf
[41.91 KB]
description
-the-american-anti-slavery-almanac-for-1844-being.pdf
[41.91 KB]
description
-wild-roses-or-simple-stories-of-country-life-pap.pdf
[41.91 KB]
description
-autocad-2013-interior-design-from-entry-to-the-m.pdf
[41.91 KB]
description
-invincible-college-entrance-examination-in-engli.pdf
[41.91 KB]
description
-system-level-design-of-a-shape-memory-alloy-actu.pdf
[41.91 KB]
description
-computer-aided-drafting-basis-autocad-2012-versi.pdf
[41.91 KB]
description
-nelson-english-international-student-book-6-pape.pdf
[41.91 KB]
description
-princess-ellie-to-the-rescue-large-print-edition.pdf
[41.91 KB]
description
-the-conquerors-roosevelt-truman-and-the-destruct.pdf
[41.91 KB]
description
-study-and-solutions-guide-precalculus.pdf
[41.91 KB]
description
-charles-dickens.pdf
[41.91 KB]
description
-scholastic-success-with-traditional-cursive-work.pdf
[41.91 KB]
description
-s-chand-x27-s-engineering-chemistry.pdf
[41.91 KB]
description
-picacho-and-the-cargo-muchachos-gold-guns-and-ge.pdf
[41.91 KB]
description
-angels-around-us-what-the-bible-really-says-pape.pdf
[41.91 KB]
description
-spark-english-the-four-exam-simulation-papers-ju.pdf
[41.91 KB]
description
-the-repossession-mambo-paperback.pdf
[41.91 KB]
description
-lm-scale.pdf
[41.91 KB]
description
-investigation-of-loss-of-well-control-south-timb-1.pdf
[41.91 KB]
description
-aristotle-verb-meaning-and-functional-grammar-to.pdf
[41.91 KB]
description
-jubilee-rose-paperback.pdf
[41.91 KB]
description
-now-will-you-serve-me-a-collection-of-inspiratio.pdf
[41.91 KB]
description
-maryland-test-prep-parcc-practice-book-mathemati-1.pdf
[41.91 KB]
description
-prophetic-journals-volume-lll-end-time-prophetic.pdf
[41.91 KB]
description
-the-epyllia-or-the-many-tales-paperback.pdf
[41.91 KB]
description
-oxford-handbook-of-respiratory-medicine-by-grace.pdf
[41.91 KB]
description
-uncle-robbie.pdf
[41.91 KB]
description
-the-dark-lady-paperback.pdf
[41.91 KB]
description
-india-with-sanjeev-bhaskar-one-man-x27-s-persona.pdf
[41.91 KB]
description
-hedgehogs-nocturnal-foragers.pdf
[41.91 KB]
description
-the-leader-x27-s-guide-to-radical-management.pdf
[41.91 KB]
description
-shadow-baby-a-novel.pdf
[41.91 KB]
description
-homo-99-and-44100-nonsapiens-revised-with-new-in.pdf
[41.91 KB]
description
-bartleby-and-benito-cereno-paperback.pdf
[41.91 KB]
description
-against-the-night-a-collection-of-ghost-stories-.pdf
[41.91 KB]
description
-the-blood-red-dawn-classic-reprint-paperback.pdf
[41.91 KB]
description
-2014-autumn-1-1-lightweight-championship-optimiz.pdf
[41.91 KB]
description
-kindergarten-readiness.pdf
[41.91 KB]
description
-contributions-to-economic-geology-1908-part-i-me.pdf
[41.91 KB]
description
-financial-accounting-8e-binder-ready-version-wil.pdf
[41.91 KB]
description
-debbie-dumplings-magical-adventures.pdf
[41.91 KB]
description
-the-limits-of-loyalty-imperial-symbolism-popular.pdf
[41.91 KB]
description
-the-ageless-body-how-to-hold-back-the-years-to-a.pdf
[41.91 KB]
description
-cigar-bar-paperback.pdf
[41.91 KB]
description
-arabian-nights-paperback.pdf
[41.91 KB]
description
-dark-love-the-underground-paperback.pdf
[41.91 KB]
description
-what-is-self-defense-kenpo-jiu-jitsu.pdf
[41.91 KB]
description
-darwin-s-spectre-evolutionary-biology-in-the-mod.pdf
[41.91 KB]
description
-characters-from-the-histories-memoirs-of-the-sev.pdf
[41.91 KB]
description
-the-magic-school-bus-rides-the-wind.pdf
[41.91 KB]
description
-geometric-inequalities.pdf
[41.91 KB]
description
-mapping-murder-1.pdf
[41.91 KB]
description
-report-of-the-tests-of-metals-and-other-material.pdf
[41.91 KB]
description
-americanism-versus-imperialism-paperback.pdf
[41.91 KB]
description
-advances-in-cell-and-molecular-biology.pdf
[41.91 KB]
description
-meng-jianping-series-primary-summer-convergence--4.pdf
[41.91 KB]
description
-i-dolori-del-giovane-walter.pdf
[41.91 KB]
description
-innovative-surface-structures-technologies-and-a.pdf
[41.91 KB]
description
-learning-about-insects-the-natural-world.pdf
[41.91 KB]
description
-camb-ielts-2-with-answers-with-2acds.pdf
[41.91 KB]
description
-briquetting-tests-of-lignite-at-pittsburg-pa-190.pdf
[41.91 KB]
description
-bridging-learning-unlocking-cognitive-potential-.pdf
[41.91 KB]
description
-the-american-vol-1-classic-reprint-paperback.pdf
[41.91 KB]
description
-exactly-what-i-needed-to-hear-52-messages-to-hel.pdf
[41.91 KB]
description
-the-hope-of-anarchy.pdf
[41.91 KB]
description
-poor-richard-s-almanack-and-other-writings-paper.pdf
[41.91 KB]
description
-the-memory-room-a-novel.pdf
[41.91 KB]
description
-studyguide-for-elementary-amp-intermediate-algeb-2.pdf
[41.91 KB]
description
-operating-within-the-law-a-practical-guide-for-s.pdf
[41.91 KB]
description
-cloning-me-cloning-you-weird-world.pdf
[41.91 KB]
description
-an-anniversary-address-delivered-before-the-fede.pdf
[41.91 KB]
description
-celebration-of-the-fiftieth-anniversary-of-the-m.pdf
[41.91 KB]
description
-the-transactions-of-the-royal-irish-academy-volu-2.pdf
[41.91 KB]
description
-the-partnership-charter-how-to-start-out-right-w.pdf
[41.91 KB]
description
-ben-over-night.pdf
[41.91 KB]
description
-the-ultimate-olympic-quiz-book.pdf
[41.91 KB]
description
-adventures-in-cutie-patootie-land-and-the-cutie-.pdf
[41.91 KB]
description
-insight-guides-phrasebooks-japanese.pdf
[41.91 KB]
description
-birch-lake-safety-book-the-essential-lake-safety.pdf
[41.91 KB]
description
-cima-f3-financial-strategy-study-text-paperback.pdf
[41.91 KB]
description
-remarks-on-a-report-of-the-honourable-committee-.pdf
[41.91 KB]
description
-dizzy-from-dancing-sticker-book-angelina-balleri-1.pdf
[41.91 KB]
description
-changes-in-statehood-and-sovereignty-of-modern-s.pdf
[41.91 KB]
description
-a-multidisciplinary-introduction-to-information-.pdf
[41.91 KB]
description
-tales-of-infidelity-and-redemption-the-golden-po.pdf
[41.91 KB]
description
-dust-and-glory-daily-bible-readings-from-ash-wed.pdf
[41.91 KB]
description
-microbiology-with-diseases-by-body-system-hardba.pdf
[41.91 KB]
description
-even-silence-has-an-end-my-six-years-of-captivit.pdf
[41.91 KB]
description
-noctes-ambrosian-volume-1-6.pdf
[41.91 KB]
description
-magi-the-labyrinth-of-magic.pdf
[41.91 KB]
description
-the-description-and-use-of-a-new-instrument-enti.pdf
[41.91 KB]
description
-modern-database-management-oracle-7-3-4-edition.pdf
[41.91 KB]
description
-description-of-richard-s-improved-steam-engine-i.pdf
[41.91 KB]
description
-mensa-quot-assess-your-personality.pdf
[41.91 KB]
description
-an-address-to-the-graduating-class-of-the-law-de.pdf
[41.91 KB]
description
-on-the-move-market-for-mobility-on-the-roads.pdf
[41.91 KB]
description
-blessings-and-prayers-for-men-a-devotional-compa.pdf
[41.91 KB]
description
-dv-dynamic-electronic-albums-produced-100-whh-ch.pdf
[41.91 KB]
description
-from-concept-to-consumer-how-to-turn-ideas-into-.pdf
[41.91 KB]
description
-hsp-math-enrich-workbook-with-projects-grade-k.pdf
[41.91 KB]
description
-thicker-n-thieves-hardback.pdf
[41.91 KB]
description
-chocolate-rich-and-luscious-recipes-for-cakes-co.pdf
[41.91 KB]
description
-mystic-tides-paperback.pdf
[41.91 KB]
description
-a-student-x27-s-guide-to-literature.pdf
[41.91 KB]
description
-2011-national-registered-consulting-engineer-inv.pdf
[41.91 KB]
description
-nonfiction-writing-grade-5.pdf
[41.91 KB]
description
-hunting-regulations.pdf
[41.91 KB]
description
-considerations-on-representative-government.pdf
[41.91 KB]
description
-honduras-interoceanic-railway-preliminary-report.pdf
[41.91 KB]
description
-cambridge-essentials-mathematics-core-9-pupil-x2.pdf
[41.91 KB]
description
-supplementary-educational-monographs-volume-22-2.pdf
[41.91 KB]
description
-corporate-acquisitions-and-mergers-in-serbia.pdf
[41.91 KB]
description
-nfpa-72-national-fire-alarm-and-signaling-code-a.pdf
[41.91 KB]
description
-supernatural-scotland.pdf
[41.91 KB]
description
-little-miss-sunshine-the-shooting-script.pdf
[41.91 KB]
description
-sexy-notes-for-her-sensual-notes-to-make-sparks-.pdf
[41.91 KB]
description
-thinking-and-study-skills-writer-x27-s-choice-gr.pdf
[41.91 KB]
description
-law-of-five-a-katie-reid-x2f-redwood-violet-nove.pdf
[41.91 KB]
description
-eliot-x27-s-banana.pdf
[41.91 KB]
description
-evaluation-of-a-survey-method-for-estimating-and-1.pdf
[41.91 KB]
description
-respiration-calorimeters-for-studying-the-respit.pdf
[41.91 KB]
description
-lyrics-of-leisure-classic-reprint-paperback.pdf
[41.91 KB]
description
-the-physical-review-volume-14-paperback.pdf
[41.91 KB]
description
-a-faithful-history-of-the-cherokee-tribe-of-indi.pdf
[41.91 KB]
description
-wax-paper-techniques-for-combining-handmade-pape.pdf
[41.91 KB]
description
-climate-change-and-risk-securitization-and-emerg.pdf
[41.91 KB]
description
-d-day-in-numbers-the-facts-behind-operation-over.pdf
[41.91 KB]
description
-witham-voices-tempus-oral-history-series.pdf
[41.91 KB]
description
-timothy-and-sarah-the-homemade-cake-contest.pdf
[41.91 KB]
description
-orbit.pdf
[41.91 KB]
description
-environmental-technology-verification-program-si.pdf
[41.91 KB]
description
-freedom-in-science-and-teaching-paperback.pdf
[41.91 KB]
description
-idle-dreams-of-an-idle-day-classic-reprint-paper.pdf
[41.91 KB]
description
-creating-curriculum-using-children-s-picture-boo.pdf
[41.91 KB]
description
-chimney-and-hearth-pro-s-resource-book-paperback.pdf
[41.91 KB]
description
-making-the-scene-nashville-how-to-live-network-a.pdf
[41.91 KB]
description
-subversive-wisdom-sociopolitical-dimensions-of-j-1.pdf
[41.91 KB]
description
-americamysis-bahia-stochastic-matrix-population-.pdf
[41.91 KB]
description
-american-clydesdale-stud-book-volume-3-paperback.pdf
[41.91 KB]
description
-the-history-of-mary-prince.pdf
[41.91 KB]
description
-the-adventures-of-hotsy-totsy-paperback.pdf
[41.91 KB]
description
-peterson-field-guide-coloring-books-butterflies-.pdf
[41.91 KB]
description
-our-city.pdf
[41.91 KB]
description
-the-sins-of-soldiers.pdf
[41.91 KB]
description
-visita-de-tinieblas.pdf
[41.91 KB]
description
-analytical-chemistry-vocational-second-five-teac.pdf
[41.91 KB]
description
-your-first-foal.pdf
[41.91 KB]
description
-the-wings-of-forgiveness-working-with-the-angels.pdf
[41.91 KB]
description
-is-it-ethically-correct-to-shoot-down-hijacked-a.pdf
[41.91 KB]
description
-preparing-to-teach-in-secondary-schools-a-studen.pdf
[41.91 KB]
description
-the-saints.pdf
[41.91 KB]
description
-optimization-strategies-in-wireless-network-plan.pdf
[41.91 KB]
description
-dodo-destiny-an-american-eye-on-mauritius-paperb.pdf
[41.91 KB]
description
-cimatron-e-mold-design-and-nc-machining-practica.pdf
[41.91 KB]
description
-jazz-amp-blues-play-along-solos.pdf
[41.91 KB]
description
-ignoring-nature-no-more-the-case-for-compassiona.pdf
[41.91 KB]
description
-over-25-of-the-best-hawaiian-recipes-delicious-h.pdf
[41.91 KB]
description
-new-grade-9-1-gcse-biology-edexcel-revision-guid.pdf
[41.91 KB]
description
-the-hobbit-the-desolation-of-smaug-sheet-music-s.pdf
[41.91 KB]
description
-teaching-children-x27-s-gymnastics.pdf
[41.91 KB]
description
-evangelische-freiheit-32.pdf
[41.91 KB]
description
-lying-prophets-paperback.pdf
[41.91 KB]
description
-mcdougal-littell-math-course-2-chapter-resources-3.pdf
[41.91 KB]
description
-workbook-x2f-video-manual-x2f-lab-manual-answer--1.pdf
[41.91 KB]
description
-types-of-the-laramie-flora-volume-37-paperback.pdf
[41.91 KB]
description
-discharge-for-cause-arbitral-enforcement-under-t.pdf
[41.91 KB]
description
-nelson-spelling-revision-book-year-6-x2f-p7.pdf
[41.91 KB]
description
-the-total-obliteration-of-hell-paperback.pdf
[41.91 KB]
description
-the-dolphins-the-whales-and-the-gudgeon-paperbac.pdf
[41.91 KB]
description
-english-picture-dictionary.pdf
[41.91 KB]
description
-radical-criminology-5-on-public-criminology-ii-p.pdf
[41.91 KB]
description
-justus-von-liebig-his-life-and-work-1803-1873-cl.pdf
[41.91 KB]
description
-herbal-medicine-for-beginners-a-beginner-s-guide.pdf
[41.91 KB]
description
-y-o-u-your-own-uniqueness.pdf
[41.91 KB]
description
-moon-pie.pdf
[41.91 KB]
description
-some-recent-decisions-on-the-labourers-ireland-a.pdf
[41.91 KB]
description
-tabloid-love.pdf
[41.91 KB]
description
-the-ultimate-guide-to-healthy-skin-paperback.pdf
[41.91 KB]
description
-critical-inquiries-readings-on-culture-and-commu.pdf
[41.91 KB]
description
-lethal-legacy-an-alexandra-cooper-thriller.pdf
[41.91 KB]
description
-molecular-cell-biology-4e-student-companion.pdf
[41.91 KB]
description
-callirrhoe-and-fair-rosamund-paperback.pdf
[41.91 KB]
description
-comment-apprendre-en-s-x27-amusant.pdf
[41.91 KB]
description
-food-storage-for-self-sufficency-and-survival-th.pdf
[41.91 KB]
description
-the-flutist-volume-1-2.pdf
[41.91 KB]
description
-army-techniques-publication-atp-4-35-1-technique.pdf
[41.91 KB]
description
-cocktails-cocktails-and-more-cocktails-hardback.pdf
[41.91 KB]
description
-time-enough-for-drums-paperback.pdf
[41.91 KB]
description
-engineering-mathematics-textbook-series-probabil.pdf
[41.91 KB]
description
-poems-and-prose-about-faith-and-family-by-father.pdf
[41.91 KB]
description
-reassembling-social-security-a-survey-of-pension.pdf
[41.91 KB]
description
-kawari.pdf
[41.91 KB]
description
-engineering-mechanics-statics-study-pack-bundle-.pdf
[41.91 KB]
description
-the-organic-god-falling-in-love-with-him-all-ove.pdf
[41.91 KB]
description
-gene-machines.pdf
[41.91 KB]
description
-daily-science-grade-5.pdf
[41.91 KB]
description
-pretty-little-liars-9-twisted-format-hardcover.pdf
[41.91 KB]
description
-john-chrysostom-and-the-jews-rhetoric-and-realit.pdf
[41.91 KB]
description
-gothic-ten-original-dark-tales.pdf
[41.91 KB]
description
-did-force-xxi-validate-the-brigade-reconnaissanc.pdf
[41.91 KB]
description
-physics-for-joint-entrance-examination-jee-advan-15.pdf
[41.91 KB]
description
-my-music-journal-student-assignment-book-hlspl-f.pdf
[41.91 KB]
description
-the-golden-age-of-indiana-high-school-basketball.pdf
[41.91 KB]
description
-all-i-want-is-you-a-coral-cove-novel.pdf
[41.91 KB]
description
-doodle-sudoku-2-0-a-mesmerizing-sudoku-puzzle-an.pdf
[41.91 KB]
description
-lyrical-mallards.pdf
[41.91 KB]
description
-covert-technological-murder-big-brother-approved.pdf
[41.91 KB]
description
index.html
[41.91 KB]
description
-frommer-x27-s-singapore-amp-amp-malaysia-frommer.pdf
[41.91 KB]
description
-divine-healing.pdf
[41.91 KB]
description
-the-poems-of-philip-freneau-vol-2-poet-of-the-am.pdf
[41.91 KB]
description
-1-001-bites-of-chinese-fortune-cookie-wisdom-pap.pdf
[41.91 KB]
description
-jiu-jitsu-a-comprehensive-and-copiously-illustra.pdf
[41.91 KB]
description
-men-in-the-church-an-address-delivered-before-th.pdf
[41.91 KB]
description
-making-a-map-of-the-river-paperback.pdf
[41.91 KB]
description
-the-unrepealed-central-acts-of-the-governor-gene.pdf
[41.91 KB]
description
-from-this-life-to-the-next-everything-you-want-t.pdf
[41.91 KB]
description
-ground-zero-a-zombie-apocalypse.pdf
[41.91 KB]
description
-leyte-1944-return-to-the-philippines.pdf
[41.91 KB]
description
-j-b-ed-ready-to-use-activities-reading-skills-co-3.pdf
[41.91 KB]
description
-flying-saucers-over-los-angeles.pdf
[41.91 KB]
description
-the-religion-of-the-samurai-a-study-of-zen-philo.pdf
[41.91 KB]
description
-robur-the-conqueror-paperback.pdf
[41.91 KB]
description
-running-out-of-time-running-raw-around-australia.pdf
[41.91 KB]
description
-the-great-margarita-book-a-handbook-with-recipes.pdf
[41.91 KB]
description
-catching-ricebirds-a-story-of-letting-vengeance-.pdf
[41.91 KB]
description
-living-liturgy-2016-year-c-spirituality-celebrat.pdf
[41.91 KB]
description
-light-runner-paperback.pdf
[41.91 KB]
description
-world-cultures-amp-geography-grades-6-8-western-.pdf
[41.91 KB]
description
-muerte-en-la-vicaria-spanish-edition.pdf
[41.91 KB]
description
-medea-dover-thrift-editions.pdf
[41.91 KB]
description
-just-turn-left-at-the-mountain-multi-entry-trial.pdf
[41.91 KB]
description
-reports-of-harvey-s-chase-expert-accountant-made.pdf
[41.91 KB]
description
-familiar-strangers-x2f-quicksand.pdf
[41.91 KB]
description
-mountain-bike-guide-dorset.pdf
[41.91 KB]
description
-beta-male.pdf
[41.91 KB]
description
-little-sponges-teaching-toddlers-the-basic-conce.pdf
[41.91 KB]
description
-culture-and-belief-in-europe-1450-1600-an-anthol.pdf
[41.91 KB]
description
-quarterly-journal-of-dental-science-volume-1.pdf
[41.91 KB]
description
-the-wild-zone.pdf
[41.91 KB]
description
-vindication-of-the-society-of-friends-being-a-re.pdf
[41.91 KB]
description
-2010-pubmed-writing-scores-recitation.pdf
[41.91 KB]
description
-congressional-serial-set-volume-4353.pdf
[41.91 KB]
description
-the-rebecca-notebook.pdf
[41.91 KB]
description
-u4-95-10-songs-of-the-x27-90s.pdf
[41.91 KB]
description
-essays-on-some-unsettled-questions-of-political-.pdf
[41.91 KB]
description
-sex-iq-tests-for-increasing-sexual-intelligence-.pdf
[41.91 KB]
description
-nantucket-red-paperback.pdf
[41.91 KB]
description
-your-day-in-court-navigating-your-way-through-th.pdf
[41.91 KB]
description
-mechanics-of-materials.pdf
[41.91 KB]
description
-criminal-law-core-text-core-texts-series.pdf
[41.91 KB]
description
-problem-solving-survival-guide-to-accompany-fina.pdf
[41.91 KB]
description
-gansu-province-dedicated-civil-servants-exam-mat.pdf
[41.91 KB]
description
-ranching-with-the-lords-and-commons-being-a-reco.pdf
[41.91 KB]
description
-poems-for-the-utopian-nihilist-paperback.pdf
[41.91 KB]
description
-the-java-native-interface-programming-guide-and-.pdf
[41.91 KB]
description
-100-mcq-tips-for-baby-bar-students-look-inside-t.pdf
[41.91 KB]
description
-when-commas-meet-kryptonite-classroom-lessons-fr.pdf
[41.91 KB]
description
-based-on-paper-the-marzona-collection-revolution.pdf
[41.91 KB]
description
-silverman-s-game-a-special-class-of-two-person-z.pdf
[41.91 KB]
description
-the-goldfish-and-its-systematic-culture-a-thorou.pdf
[41.91 KB]
description
-reading-the-city-quot-the-concept-of-language-in.pdf
[41.91 KB]
description
-understanding-your-suicide-grief-support-group-g.pdf
[41.91 KB]
description
-violin-grade-2-violin-solo-new-edition.pdf
[41.91 KB]
description
-mechanical-drawing-national-secondary-vocational.pdf
[41.91 KB]
description
-new-welsh-drama-quot-safar-quot-quot-gulp-quot-q.pdf
[41.91 KB]
description
-simazine-health-advisory-draft-paperback.pdf
[41.91 KB]
description
-lady-gaga-strange-and-beautiful-the-fabulous-sty.pdf
[41.91 KB]
description
-elementary-progressive-studies-set-ii.pdf
[41.91 KB]
description
-christian-life-coaching-to-success-volume-1-easy.pdf
[41.91 KB]
description
-crs-report-for-congress-the-public-health-and-me.pdf
[41.91 KB]
description
-love-football-notebook-journal-x2f-cuaderno-x2f-.pdf
[41.91 KB]
description
-twelve-years-a-slave-barnes-amp-noble-library-of.pdf
[41.91 KB]
description
-stray-leaves-and-some-fruit-on-cancer-and-tuberc.pdf
[41.91 KB]


grip- Start the server and serve a specific Markdown file:
grip path/to/file.md- Start the server and open the `README` file of the current directory in the browser:
grip --browser- Start the server in the specified port and serve the rendered `README` file of the current directory:
grip port


--- title: Apartment Balcony Gardening layout: post tags: [meatspace] uuid: be2e4bcd-2563-31ea-da05-f1748ffe84d0 ---
My wife was interested in growing a garden this summer. She has never done it before and wanted to learn. However, we live in an apartment so we don't exactly have a yard. Instead, we got some pots and started growing a balcony garden.
I thought we were being clever, but it turns out this is a common practice called container gardening. Searches online for "balcony gardening", "apartment gardening", and "container gardening" will bring up lots of useful information.
I think it's more convenient than regular gardening, as the plants are practically in the apartment. In fact, it's about 4 feet from our bed, through the balcony door. We can move the plants around to the other balcony, or even inside, if needed.
Gardening is a lot of fun, really.
This year, we are growing (or trying to grow) carrots, peppers, strawberries, catnip, and dactylis (cat grass). We'll see how things turn out in a couple months. Here's how it looks right now,


Storm Compatibility
Gearpump provides binary compatibility for Apache Storm applications. That is to say, users could easily grab an existing Storm jar and run it on Gearpump. This documentation illustrates Gearpump’s comapatibility with Storm.
How to run a Storm application on Gearpump
This section shows how to run an existing Storm jar in a local Gearpump cluster.
-
launch a local cluster
./target/pack/bin/local
-
submit a topology from storm-starter.
bin/storm -verbose -config storm.yaml -jar storm-starter-${STORM_VERSION}.jar storm.starter.ExclamationTopology exclamation
Users are able to configure their applications through following options
jar
- set the path of a storm application jarconfig
- submit a customized storm configuration file
That’s it. Check the dashboard and you should see data flowing through your topology.
Note that submission from UI is not supported yet.
How is it different from running on Storm
Topology submission
When a client submits a Storm topology, Gearpump launches locally a simplified version of Storm’s Nimbus server GearpumpNimbus
. GearpumpNimbus
then translates topology to a directed acyclic graph (DAG) of Gearpump, which is submitted to Gearpump master and deployed as a Gearpump application.
GearpumpNimbus
supports the following methods
submitTopology
/submitTopologyWithOpts
killTopology
/killTopologyWithOpts
getTopology
/getUserTopology
getClusterInfo
Topology translation
Here’s an example of WordCountTopology
with acker bolts (ackers) being translated into a Gearpump DAG.
Gearpump creates a StormProducer
for each Storm spout and a StormProcessor
for each Storm bolt (except for ackers) with the same parallelism, and wires them together using the same grouping strategy (partitioning in Gearpump) as in Storm.
At runtime, spouts and bolts are running inside StormProducer
tasks and StormProcessor
tasks respectively. Messages emitted by spout are passed to StormProducer
, transferred to StormProcessor
and passed down to bolt. Messages are serialized / deserialized with Storm serializers.
Storm ackers are dropped since Gearpump has a different mechanism of message tracking and flow control.
Task execution
Each Storm task is executed by a dedicated thread while all Gearpump tasks of an executor share a thread pool. Generally, we can achieve better performance with a shared thread pool. It’s possible, however, some tasks block and take up all the threads. In that case, we can
fall back to the Storm way by setting gearpump.task-dispatcher
to "gaerpump.single-thread-dispatcher"
in gear.conf
.
Message tracking
Storm tracks the lineage of each message with ackers to guarantee at-least-once message delivery. Failed messages are re-sent from spout.
Gearpump tracks messages between a sender and receiver in an efficient way. Message loss causes the whole application to replay from the minimum timestamp of all pending messages in the system.
Note that ack from bolt is a no-op while fail throws an exception.
Flow control
Storm throttles flow rate at spout, which stops sending messages if the number of unacked messages exceeds topology.max.spout.pending
.
Gearpump has flow control between tasks such that sender cannot flood receiver, which is backpressured till the source.
Configurations
All Storm configurations are respected with the following priority order
defaults.yaml < storm.yaml < application config < component config < custom user config
where
- application config is submit from Storm application along with the topology
- component config is set in spout / bolt with
getComponentConfiguration
- custom user config is specified with the
-config
option when submitting Storm application from command line
Limitations
- Trident support is ongoing.


One of the two developers of the original symthic.com site.
Mainly works on extraction scripts and backend, and lets others do the nice graphics.
Software engineer and programming savant whose personal skills bring the weapon charts to life.
Rumored Star Trek & Howard Stern superfan.
The wizard behind the updates to the Call of Duty sections of Sym.
Likes Rum.