class SurrogatePopulation(object):
surrogate f-values for a population.
See also __call__
method.
What is new:
- the model is built with >=3 evaluations (compared to LS-CMA and lmm-CMA)
- the model is linear at first, then diagonal, then full
- the model uses the fitness ranks as weights for weighted regression.
>>> import cma >>> import cma.fitness_models as fm >>> from cma.fitness_transformations import Function as FFun # adds evaluations attribute >>> # fm.Logger, Logger = fm.LoggerDummy, fm.Logger >>> surrogate = fm.SurrogatePopulation(cma.ff.elli)
Example using the ask-and-tell interface:
>>> for ifun, fun in enumerate([cma.ff.elli, cma.ff.sectorsphere]): ... for irun in range(7): ... assert irun < 4 # measure best of four ... es = cma.CMAEvolutionStrategy(5 * [1], 2.2, ... {'CMA_injections_threshold_keep_len': 1, ... 'ftarget':1e-9, 'verbose': -9, 'seed':3 + irun}) ... fitfun = FFun(fun) ... surrogate = fm.SurrogatePopulation(fitfun) ... while not es.stop(): ... X = es.ask() ... es.tell(X, surrogate(X)) # surrogate evaluation ... es.inject([surrogate.model.xopt]) ... # es.disp(); es.logger.add() # ineffective with verbose=-9 ... # print(irun, fitfun.evaluations) # was: (sig=2.2) 12 161, 18 131, 18 150, 18 82, 15 59, 15 87, 15 132, 18 83, 18 55, 18 68 ... assert 'ftarget' in es.stop() ... if ifun == 0: ... if fitfun.evaluations < 20: ... break ... if ifun == 1: ... if fitfun.evaluations < 90: ... break
Example using the parallel_objective interface to cma.fmin
:
>>> for fitfun, evals in [[FFun(cma.ff.elli), 22], [FFun(cma.ff.ellirot), 40]]: ... surrogate = fm.SurrogatePopulation(fitfun) ... inject_xopt = fm.ModelInjectionCallback(surrogate.model) # must use the same model ... xopt, es = cma.fmin2(None, 5 * [1], 2.2, ... {'CMA_injections_threshold_keep_len': 1, ... 'ftarget':1e-12, 'verbose': -9}, ... parallel_objective=surrogate, ... callback=inject_xopt) ... # print(fitfun.evaluations) ... assert fitfun.evaluations == es.result.evaluations ... assert es.result[1] < 1e-12 ... assert es.result[2] < evals >>> # fm.Logger = Logger
| Class |
|
Manage incremental evaluation of a population of solutions. |
| Method | __call__ |
return population f-values. |
| Method | __init__ |
If model is None, a default LQModel instance is used. By setting self.model to None , only the fitness for each population member is evaluated in each call. |
| Instance Variable | count |
Undocumented |
| Instance Variable | evals |
multiply with 1.5 and take ceil [1, 2, 3, 5, 8, 12, 18, 27, 41, 62, 93, 140, 210, 315, 473] +[1, 1, 2, 3, 4, 6, 9, 14, 21, 31, 47, 70, 105, 158] |
| Instance Variable | evaluations |
Undocumented |
| Instance Variable | fitness |
Undocumented |
| Instance Variable | logger |
Undocumented |
| Instance Variable | logger |
Undocumented |
| Instance Variable | model |
Undocumented |
| Instance Variable | settings |
Undocumented |
return population f-values.
Also update the underlying model. Evaluate at least one solution on the true fitness. The smallest returned value is never smaller than the smallest truly evaluated value.
Uses (this may not be a complete list):
model.settings.max_absolute_size
, model.settings.truncation_ratio
,
model.size
, model.sort
, model.eval
, model.reset
, model.add_data_row
,
model.kendall
, model.adapt_max_relative_size
, relies on default value
zero for max_absolute_size.
multiply with 1.5 and take ceil [1, 2, 3, 5, 8, 12, 18, 27, 41, 62, 93, 140, 210, 315, 473] +[1, 1, 2, 3, 4, 6, 9, 14, 21, 31, 47, 70, 105, 158]


P2P Lending
P2P Lending
A crowd-sourced loan market with mortgage based guarantee.
Lender's deck
Borrower's deck


Munch Minder
My Dashboard
Munches
Peeps
See Also
Tutorial
About
Settings
Add Munch
Date
Title
Description
Thumbs Up
👍
Thumbs Down
👎
Image upload


|
App Engine Python SDK
v1.6.9 rev.445
The Python runtime is available as an experimental Preview feature.
|
Public Member Functions | |
| def | __init__ |
| def | regex |
| def | Regexify |
| def | MatchesString |
| def | MatchesAll |
| def | HasMoreSpecificPatternThan |
| def | __eq__ |
| def | IsFullyHandledBy |
Public Attributes | |
| is_literal | |
Static Public Attributes | |
| list | ALL_PROPERTIES |
Properties | |
| pattern = property(_GetPattern, _SetPattern) | |
Ancestor class for Handler manipulation. Patterns are globs. (http://en.wikipedia.org/wiki/Glob_(programming)).
| def google.appengine.tools.handler.Handler.HasMoreSpecificPatternThan | ( | self, | |
| other_handler | |||
| ) |
Returns True if self is more specific than other_handler. Priority in determining specificity is first determined by literal-ness, second by length. This is according to the Java servlet spec for mapping URL paths. Args: other_handler: another handler to compare against. Returns: True if self.pattern is a literal and other_handler.pattern is not, False if vice versa, and otherwise True if self.pattern is longer.
| def google.appengine.tools.handler.Handler.IsFullyHandledBy | ( | self, | |
| other_handler | |||
| ) |
Returns True if self specifies something unique. For example, If we have a Handler with pattern "foo*bar" which has properties {'type': 'static'}, and other_handler has pattern "foo*" with the same properties, then other_handler does everything that self does. Args: other_handler: other handler to be matched against Returns: Boolean value of whether other_handler fully handles self.
| def google.appengine.tools.handler.Handler.MatchesAll | ( | self, | |
| other_glob | |||
| ) |
Returns True if self matches everything other_glob matches.
| def google.appengine.tools.handler.Handler.MatchesString | ( | self, | |
| pattern_str | |||
| ) |
Returns true if input path string is matched by glob pattern.
| def google.appengine.tools.handler.Handler.Regexify | ( | self | ) |
Returns a regex-looking string to write to Yaml.
|
static |


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
Boil the potatoes in salted water for 15 minutes, or until tender. Drain and place back into the saucepan over the heat to remove excess moisture. Mash the potatoes.
Heat 150g/5½oz of the butter and the milk in a saucepan until the butter is melted. Add to the mash and beat well until soft and creamy. Season with salt and pepper.
For the onion rings, put the yeast and beer into a bowl and whisk together. Add the flour and whisk to a smooth batter. Set aside for 5 minutes.
Fill a deep-fat fryer or a large, deep, heavy-bottomed pan two-thirds full with vegetable oil. Heat the oil to 180C, or until a breadcrumb sizzles and turns golden-brown when dropped into it. (Caution: Hot oil can be dangerous. Do not leave unattended.)
Dip the onion rings in the batter then lower them carefully into the hot oil (you may need to do this in batches). When the onion rings are golden-brown, remove them using a slotted spoon and season with salt and pepper. Drain on kitchen roll.
Add the capers to the deep fat fryer and cook for 1-2 minutes. Remove and drain on kitchen paper.
For the gravy, heat the butter in a frying pan over a medium heat. When the butter is foaming add the shallots and fry for 2-3 minutes, or until just softened.
Add the thyme and red wine, stir well and bring the mixture to the boil. Reduce the heat to a simmer and then simmer until the volume of liquid has reduced by one third.
Add the jus and return the mixture to the boil. Reduce the heat slightly and simmer gently for 15-20 minutes, or until the liquid has thickened. Add the sherry vinegar, chervil and season with salt and pepper. Keep warm until ready to serve.
For the liver, season the plain flour with salt and pepper. Place the slices of calf's liver in the flour and shake off any excess.
Heat the remaining butter in frying pan over a medium heat. When the butter is foaming, add the liver and fry for 1-2 minutes on each side, or until golden-brown on both sides.
Place the mash onto serving plates and liver alongside. Pour over the gravy and top with the onion rings and capers.


CoNLL-U format tests
This file contains an informal mixture of tests for various aspects of the CoNLL-U format.
                  PUNCT . _ 2 punct _ _
space-in-field.conll
# not valid: no field can contain space.
1 not valid valid NOUN SP _ 0 ROOT _ _
token_with_cols_filled.conll
# (TODO: is this the same general case as mutiword-with-pos.conll?)


#
Advanced ArcGIS Server GP Publishing & Maintenance
### Kyle Morgan
GIS Developer @
Wood Rodgers, Inc.
<EMAIL_ADDRESS>|
@gisdev_km
# Why this topic?
#### Highlight the power of Geoprocessing Tools
_or_
`"How to get the most distance out of your server license"`
# Software * Esri ArcGIS Server * Esri ArcGIS Desktop * Python
(Rec. IDE's: PyCharm, Wingware | Rec. Editors: Visual Studio Code, Sublime Text Editor, Atom)
# When to create a GP tool?
1. When your workflow can be automated 2. When your data sources are locked down 3. When your workflow takes several minutes and requires elevated licensing
4. Need to run it both on the Desktop and in a Web Application
=
A Perfect time for a GP Tool \*
_* ArcGIS Server GP capabilities depend on license level (Standard or Advanced)_
# Step 1 ## Write your tool using Python
# Step 2 ## Test your tool using ArcMap
# Step 3 ## Publish the Tool
# Step 4 ## Sprinkle in the Advanced
### Edit
vs
## Server Matrices * [ArcGIS 10.4 for Server](http://links.esri.com/esri-arcgis_server_product_functionality_matrix) * [ArcGIS Enterprise 10.5](http://links.esri.com/enterprise_matrix)


An extension of the jQuery UI tabs widget that adds the ability to display tabs vertically.
Ok. Here you go.
The extension adds a single orientation
option to the jQuery UI tabs widget. For consistency with other jQuery UI widgets, the orientation
option can be set to "horizontal"
or "vertical"
, and defaults to "horizontal"
.
When the tabs are displayed vertically, the extension places a ui-vertical-tabs
class name on the tabs element for styling purposes.
The following creates a vertical tabs control by setting the orientation
option to "vertical"
:
<link href="http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css" rel="stylesheet">
<link rel="stylesheet" href="vertical-tabs.css">

One

Two

Three

One Contents

Two Contents

Three Contents

The option plays nice with jQuery UI widget conventions, so you can use the option()
method to change the orientation...
$( "#tabs" ).tabs( "option", "orientation", "horizontal" });
...or you can change the default of the option by changing it on the widget's prototype. For instance the following changes the default from "horizontal"
to "vertical"
:
$.ui.tabs.prototype.options.orientation = "vertical";
The extension supports AMD usage, including the use of the AMD modules that were introduced in jQuery UI 1.11. For details on usage, refer to this repository's packaged demo, which is a complete example of using this extension in an AMD setting.
bower install jquery-ui-vertical-tabs
MIT. Go nuts.
This extension, as well as the process of building and using jQuery UI extensions is thoroughly explained in jQuery UI in Action.


29+ Best Free Logo Maker Online 2021 UK. Our experts compared the best free logo makers of 2020. Looking for the best logo makers to create a high quality logo?
Renderforest logo maker allows you to create impressive logos in a matter of minutes. Zyro provides not only free website templates but also one of the best free logo makers in the industry. Your logo is more than just a group of symbols, letters, and colors.
How to create a logo?
Our free logo maker is popular. There are many free logo makers online logo maker features a similar interface to graphicsprings, which is also fast and easy to start your logo design journey with tons of font. You can use this platform to create a professional logo with dozens of templates and font styles to choose from. It's always free to make a logo so there's zero risk.


---
excerpt: Emmet is also known as zen code
layout: post
category : HTML5
tags : [tools, sublimetext]
---
1 Install the Package Manager in SublimeText3
1.1 Click the Preferences > Browse Packages… menu
1.2 Browse up a folder and then into the Installed Packages/ folder
1.4 Restart Sublime Text
2 Install Emmet using the Package Manager
2.1 type Command + Shift + P and type "Install", press Enter, type "Emmet" and press Enter again.
3 Install the Python package (if needed)
3.2 Unpack contents of downloaded archive into PyV8/%filename% folder inside Sublime Text Packages (find Browse Packages… menu item in ST editor to get into 'Installed Packages' folder), where %filename% is the name of downloaded file (e.g. it will be pyv8-win64-p3 if you download pyv8-win64-p3.zip file).
3.3 Restart ST editor.


Galvanize Delivers
Order Delivery
MENU
Royale with Cheese
$8.99
Add To Order
Arugula Pie
$11.99
Add To Order
Smoked Swine
$14.99
Add To Order
Ice Cream Biscuit
$7.99
Add To Order
CART
Item
<
Quantity
Price
item here
<
Quantity
price here
Delivery Info
Email:
Password:
Submit


[1]
typically when we stay at there , coffee in the lobby in the morning after breakfast .
[2]
always , but the staff seemed pretty harried and they kept running out of key items .


Character count:
Required field.
Ordering is closed for today! Please choose another request date.
Must select a payment option.


About 2km southeast of the Forbidden City towers Tian Tan, or the Temple of Heaven, where dynastic rulers in China used to worship the heaven. The temple plus subsidiary buildings and a surrounding garden covers an area five times the size of the Forbidden City. As Chinese emperors called themselves Tianzi, or the son of heaven, they had to cede supremacy to the heaven in terms of abiding.


User research sessions EPC metrics part L round 2
Deviations from live:
- B rated property
- Energy rating with bars not chart (multi-colour)
- Carbon emissions with bars (multi-colour)
- Steps with bars (multi-colour)
- 'Estimated energy use' section removed
- Updated energy rating section
- Updated carbon rating section
- Remove pipe separating letter and number from bars
- Use single shade of green for bars
- 'How this affects your energy bills' section added
- Part L warning moved into 'How this affects your energy bills' section
- Updated 'breakdown of property's energy performance' section to 'reasons for this rating' section
- Updated 'Improve this property's energy rating' section to 'How to improve these ratings' section and removed content
- Updated 'Who to contact about this certificate' section headings and content
- Updated 'Paying for energy improvements'
- Added context to primary energy usage of how the property fares compared to the average
- Recommendations bar length adjusted to be proportionate to score using formula (615/100)*score
Deviations from live:
- E rated property
- Energy rating with bars not chart (multi-colour)
- Carbon emissions with bars (multi-colour)
- Steps with bars (multi-colour)
- 'Estimated energy use' section removed
- Updated energy rating section
- Updated carbon rating section
- 'How this affects your energy bills' section added
- Updated 'breakdown of property's energy performance' section to 'reasons for this rating' section
- Updated features in table
- Updated 'Improve this property's energy rating' section to 'How to improve these ratings' section and removed content
- Updated 'Who to contact about this certificate' section headings and content
- Updated 'Paying for energy improvements'
- Added context to primary energy usage of how the property fares compared to the average
- Recommendations bar length adjusted to be proportionate to score using formula (615/100)*score
- Changed the colour of band E bars to the current band F bar


Copyright © 2009, Natacha Porté Copyright © 2011, Vicent Marti
Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


This function partially evaluates an expression, using information from the tbl to determine whether names refer to local expressions or remote variables. This simplifies SQL translation because expressions don't need to carry around their environment - all revelant information is incorporated into the expression.
partial_eval(call, vars = character(), env = caller_env())
| call | an unevaluated expression, as produced by |
|---|---|
| vars | character vector of variable names. |
| env | environment in which to search for local values |
partial_eval()
needs to guess if you're referring to a variable on the
server (remote), or in the current environment (local). It's not possible to
do this 100
If the tbl variables are known, and the symbol matches a tbl variable, then remote.
If the symbol is defined locally, local.
Otherwise, remote.
vars <- c("year", "id") partial_eval(quote(year > 1980), vars = vars)#> year > 1980ids <- c("ansonca01", "forceda01", "mathebo01") partial_eval(quote(id %in% ids), vars = vars)#> id %in% c("ansonca01", "forceda01", "mathebo01")# You can use local to disambiguate between local and remote # variables: otherwise remote is always preferred year <- 1980 partial_eval(quote(year > year), vars = vars)#> year > yearpartial_eval(quote(year > local(year)), vars = vars)#> year > 1980# Functions are always assumed to be remote. Use local to force evaluation # in R. f <- function(x) x + 1 partial_eval(quote(year > f(1980)), vars = vars)#> year > f(1980)partial_eval(quote(year > local(f(1980))), vars = vars)#> year > 1981# For testing you can also use it with the tbl omitted partial_eval(quote(1 + 2 * 3))#> 1 + 2 * 3x <- 1 partial_eval(quote(x ^ y))#> 1^y


CHAPTER 514C
LEASE TO FEE CONVERSIONS FOR
CONDOMINIUMS AND COOPERATIVE HOUSING
CORPORATIONS
Part I. Right of First Refusal
Section
514C-1 Definitions
514C-2 Right of first refusal
514C-3 Improvements
514C-4 Compliance with procedures not required when
514C-5 Offer to other prospective purchasers; time limit
514C-6 Powers of association of owners and cooperative
housing corporation
514C-6.5 Sales to individual lessees
514C-7 Violations; voidable sale
514C-8 Exception
Part II. Voluntary Conversions
514C-21 Definitions
514C-22 Power of association of owners to negotiate, purchase,
and sell lessor's interest
Note
Chapter heading amended by L 1999, c 241, §3(1).
Cross References
Cooperative housing corporations, see chapter 421I.


Blow Out * * * 1/2 (out of * * * * )
Directed by Brian De Palma. Cast: John Travolta, Nancy Allen, John Lithgow, Dennis Franz, Peter Boyden. 1981 - 107 minutes Rated R (for violence and profanity). Reviewed September 1998.
We often hear about and see movies that are an example of style over substance, which is those films that are technically more impressive than the story and characters are. Brian De Palma's "Blow Out," however, is one of the few films I've seen that is a triumph of both style and substance.
"Blow Out" stars John Travolta in one of his best early roles as a sound man for a bunch of B-horror movies. It is in the midst of election season, as well as the 100th-anniversary of the Liberty Bell in Philadelphia, and while out one night on a bridge recording nighttime sounds, including tree branches hitting each other, leaves rustling, and owls hooing, he witnesses a car blow out, which then plunges off the bridge and into the river. Travolta is able to save the woman inside (Nancy Allen), but the driver, who turns out to be the Governor, is killed. Later, while listening to the accident that he got on tape, he is surprised to hear a bang right before the actual blowout occurred, and becomes convinced it was a conspiracy to kill the Governor. Meanwhile, the infamous Liberty Bell Killer is stalking the women of Philadelphia.
"Blow Out" is a truly virtuoso thriller that is superbly made in all aspects, and includes many purely original and visually stunning moments, including one scene in which, as Travolta slowly replays the sound on the tape, he visualizes where all of the sounds came from. Another impressive moment is the first sequence of the picture, a POV shot in which a killer slowly stalks the residents of a college dorm. And without giving anything away, the last brilliant moment comes in the climax, with a giant American flag hanging in the background. All of the scenes, as well as the rest of the movie, are helped considerably by Pino Donaggio's unforgettable music score.
Another aspect of "Blow Out" that is refreshing is the amount of layers the film piles on. On one hand, it is about a conspiracy. There is also a subplot involving the post-production work of the B-movie they are making. And then there is the subplot involving the Liberty Bell Killer, which leads to a few extremely chilling, suspenseful moments. And there is the political election going on. And the anniversary of the Liberty Bell. And the sweet relationship that develops between Travolta and Allen, who has never been better. By the sound of all of these stories, it may seem like the picture may be overstuffed, but it isn't at all. Instead, all of these different plotlines add to the atmosphere of the film, and makes the movie seem richer and more inventive.
"Blow Out" is one of director De Palma's best films, and ranks right up there with 1976's "Carrie," and 1980's "Dressed to Kill," the former starring Travolta and Allen, and the latter featuring Allen once again. Sadly, De Palma has recently fallen on hard times with the recent disappointment, "Snake Eyes," but "Blow Out" is an example of how great De Palma can really be.
- Copyright 1999 by Dustin Putman Http://hometown.aol.com/FilmFan16/index.html
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


by Vytenis Urbonavičius
This utility generates single index.d.ts file for whole NPM package.
It allows creating a bundled NPM library packages without TypeScript sources and yet still keeping code suggestions wherever these libraries are imported.
TypeScript picks up index.d.ts automatically.
Local:
npm install --save-dev npm-dts
Global:
npm install -g npm-dts
Please make sure that target project has "typescript" installed in _node_modules_.
To see full CLI help - run without arguments:
npm-dts
Typical usage (using global install):
cd /your/project
npm-dts generate
npm-dts [options] generate
| Option | Alias | Description |
|---|---|---|
--entry [file] |
-e [file] |
Allows changing main src file from index.ts to something else. |
--force |
-f |
Ignores non-critical errors and attempts to at least partially generate typings (disabled by default). |
--help |
-h |
Output usage information. |
--logLevel [level] |
-L [level] |
Log level (error, warn, info, verbose, debug) (defaults to "info"). |
--output [file] |
-o [file] |
Overrides recommended output target to a custom one (defaults to "index.d.ts"). |
--root [path] |
-r [path] |
NPM package directory containing package.json (defaults to current working directory). |
--tmp [path] |
-t [path] |
Directory for storing temporary information (defaults to OS-specific temporary directory). Note that tool completely deletes this folder once finished. |
--tsc [options] |
-c [options] |
Passed through additional TSC options (defaults to ""). Note that they are not validated or checked for suitability. When passing through CLI it is recommended to surround arguments in quotes. |
--version |
-v |
Output the version number. |
You would want to use "npm-dts-webpack-plugin" package instead.
Example of how you could run generation of index.d.ts automatically before every publish.
{
// ......
"scripts": {
"prepublishOnly": "npm run dts && ......",
"dts": "./node_modules/.bin/npm-dts generate"
}
// ......
}
Another possible option would be to execute "npm run dts" as part of bundling task.
This approach can be used for integration with tools such as WebPack.
Simple usage with all default values:
import {Generator} from 'npm-dts'
new Generator({}).generate()
Advanced usage example with some arguments overridden:
import * as path from 'path'
import {Generator} from 'npm-dts'
new Generator({
entry: 'main.ts',
root: path.resolve(process.cwd(), 'project'),
tmp: path.resolve(process.cwd(), 'cache/tmp'),
tsc: '--extendedDiagnostics',
}).generate()
Above examples were in TypeScript. Same in plain JavaScript would look like this:
const path = require('path')
new (require('npm-dts').Generator)({
entry: 'main.ts',
root: path.resolve(process.cwd(), 'project'),
tmp: path.resolve(process.cwd(), 'cache/tmp'),
tsc: '--extendedDiagnostics',
}).generate()
Constructor of generator also supports two more boolean flags as optional arguments:
Initializing without any options will cause npm-cli to read CLI arguments all by itself.
Generated using TypeDoc


PRINTED
Monday, February 01, 2010
I tried to get Mae to sleep in but she couldn’t go back to sleep so got up before I left for my bus run. Jennifer was late getting to the compound because she fell back to sleep after the alarm went off. We called Chris and William, the first two students that we pick up, and asked if they could be ready when we got there. Both of them were at the curb as I drove up so that helped us make up time. I also pushed the speed limit. We came out ok. Mae had me something to eat when I got home. I took care of the rabbits and chickens and then took a hours nap. This afternoon run went well. Mae and I went to Tanner Clinic and got a physical examination by Dr. Lee, which went well. Mae stopped on the way home and got some food from Little Orient in Layton. I stopped and filled my pickup with natural gas. We talked to Irven and Sandy about letting them put insurance on our pickup but I don’t think that is going to work. I also visited with Bryce about the car he is getting ready for us. We will go into Ogden on Wednesday and get it registered so it can be road tested. I visited with Mike about our Palm and he will show me some things that may work for us on Google. He will visit with us on Friday evening.
Tuesday, February 02, 2010
Mae got up and helped me get off. Nicholas didn’t ride with us today so we finished early. While I was feeding the rabbits and chickens I also cleaned out the chicken coop and part of the chicken run. Scott came for lunch with us. We sure enjoyed having him. Jeff couldn’t make it because of work. My afternoon run also went well. I took our tax papers over to Mr. Sorenson’s and he said that he would have them ready tomorrow. This evening Jeff came over and visited for a few minutes. I called and visited with Rich and Lois and let them know that we were going on another mission. We started to watch a show on TV but realized that it would last too long so turned it off and went to bed.
Wednesday, February 03, 2010
This morning went well and we again finished early because Nicholas didn’t go again. I went into Ogden and met Bryce at the Department of Motor Vehicles where we got the Buick registered in my name. We then went out to look at the car. From the looks of things the cars repairs are going fine. I did get 15 minutes nap before taking the afternoon run. After returning home I took care of the animals and then Mae and I went over to Mr. Sorenson’s and signed our tax returns. We then went to Penny’s where I bought Mae a suit and pajamas. We came home and got something to eat and watched the last of a show on TV. Mae then gave me a haircut and we went to bed.
Thursday, February 04, 2010
I let Mae sleep in this morning, as I kept her awake quite a bit last night. She got up just before I finished my breakfast. The morning run went well although there was heavy fog for the first half of the route. I took the bus in for service this morning when I got back to the compound. I went home and got Mae. We then went out for breakfast with Jennifer and Ron. Jennifer wanted to do something for me before we left. It was a very enjoyable morning being with them. When we got home I fed the animals and then took a nap. When I went back to the bus compound I found that my bus was not completed. I went to dispatch and they assigned me another bus. I went to that bus location but no bus was there. I called and dispatch checked the GPS and said that the bus was on top. I went up top and found a big red sigh “Bus out of service” so called and dispatch assigned me another bus. I went there and again the bus wasn’t in the parking spot. I found another bus and called dispatch and said that I had found one and would take it. No objection. I had to go up to the shop and find some seat harnesses for Christopher and Nicholas. Jennifer was waiting for me when I finally got up to pick her up. The teachers had the students waiting when we finally got there. As we let William off Jennifer indicated she needed to find a restroom so I stopped at an Arby’s and gave her a few minutes. Mae wasn’t home when I got there but came shortly after. Bob prepared spaghetti sauce and Mae cooked some of our spaghetti for dinner. We drove over to Scott and Michelle’s just to visit with them.  They are growing so fast and almost walking. Of course they are into everything and when you remove that item immediately finds something else. Before we left Scott mentioned that their lazy Suzan wasn’t working. I got some tools from the truck and after a few minutes of working with it found the problem and was able to repair it. As we drove over and back Mae read from the novel we are reading. It is sure fun just being with Mae, sure love that woman. It’s getting late and I have one more day to drive the school bus so we had better get to bed.
Friday, February 05, 2010
Mae got up and prepared breakfast of pancakes and eggs. My morning run went well. Mae went into Dr. Bennett’s for a treatment. She then picked up Georgia and the two of them went out to Sandi’s. Georgia had never seen Sandi’s home. After my morning run I filled the bus with fuel. I then stopped at Green’s Farm and Feed and bought feed for the rabbits and chickens. From there I went to the Chevron station and filled my pickup with natural gas. I came home and fed the animals. Cheryl came from Salt Lake to let us know that on the 26th of February, she and Bob will be sealed in the Jordan River Temple. She would also like to have her daughter sealed to them. We set a date next Friday morning for Cheryl to come up and we would help her with the New Family Search program to get the paper works ready for that event. Jennifer had a Dr. appointment and was unable to work with me this afternoon. Dispatch was able to get me a sub to help me. The bus run went well. When I got home Mae still wasn’t home. I took care of the animals and then started getting dressed for the wedding and reception for Marsha and John. Mae got home and we left for the wedding by 4:15 PM. It was a beautiful wedding and reception. We had a lot of Family there and had trouble getting to visit them all. All of our family made it to the reception and most to the Wedding. After Mike and Becky and Mae and I went to Jeff and Gail’s where we played a game and visited for a little while. David, Taylor, Mattie and Jessie had trouble finding the right directions to get to our place. They made it just before we got there. Mike showed Mae and I some things about our computer. I think that I became quite confused with it all. It was late when we finally got to bed.
Saturday, February 06, 2010
We enjoyed having Mike’s family with us this morning. Bob prepared hotcake batter for us for breakfast. We cooked the hotcakes on our grill. After breakfast David and Taylor left for home. The rest of us started to play rook but the deck was worn out so Mike and I went looking for a new deck. We went to 5 stores before we bought a deck of Rook and a deck of Canasta cards. By the time we got back we decided that we would just play Sneaks so that the Mattie and Jessie could play. We had lunch and then they left for home. It was sure good to be with them. I took a short nap and then we went with the Clark’s to Maddock’s in Brigham City. There we met with Brother and Sister Hyer for dinner. It was a fun evening with the six of us. When we returned home Mae and I took showers and watched a show on DVD.
Sunday, February 07, 2010
We slept in until after 8AM. We did some planning on mission preparation including some discussion as to the question “Are we wise in buying this car from Bryce”? I called Bryce about the 1996 Buick and he brought it up to our place. We took it for a test drive and then let Bryce take our car back to his place and he left the 96 with us. I took care of the animals and we took more pictures of our rabbits. I thought it would only take a few minutes to have a picture ready for Mae to put the rabbits on KSL.Com, but an hour and ½ later I had it ready. By then we had to go to our meetings. Meetings were very spiritual and informative. Mae bore her testimony in Relief Society. Bishop Smith read our mission call to the congregation at the beginning of our Sacrament and Testimony meeting. When time was opened for individual testimonies I took the opportunity to express my feelings about our calling. The testimonies that were shared were very well given, even the three that were given by young boys. After getting home from the meetings, Bob invited us for dinner. It was very good. I helped Mae take the monthly ward news letter around to the homes she had been assigned to deliver to. We drove the new Buick and when we had completed the delivery I had Mae drive for a little while. The car sure does ride nice but you can feel a problem with the transmission shifting. I visited with Bryce about it and he is ok if we do not want the car. I wrote this journal entry. Mae made us a strawberry shake and some toast with almond butter & jam. I transferred several documents from the desk top to the lap top. I also played a couple of games of solitary while waiting for files to transfer. I called and visited with Chuck Hyer about getting a newer car. He said that he would do some looking for us and call us back. It was late when we got to bed.
Monday, February 08, 2010
I woke early this morning and couldn’t get back to sleep. I did dose in the recliner a little. After breakfast I took care of the animals and then I called Qwest and was on the phone with them for over ½ hour. I scheduled our services to be removed on March 1st. I expressed my feeling of disappointment with their services and also told them that I would be moving to California which is outside their services. They did agree to wavy the early disconnect charges because of my dissatisfaction and also moving. Bob will probably keep his services with them. Mae and I drove Bryce’s Buick to Jennie’s where we bought some remedies. We then went to the Good Earth Health store. Next we took the Buick over to Dee’s and had his mechanic take a ride in it. He felt that if we got into it for under $1,500 we couldn’t go to wrong. We next went to a detailing shop in Layton and got an estimate to have the Buick cleaned up. We stopped at Deseret Book store in Layton where Mae bought some books. When we got home Bryce was there to get the car. We are still not sure if we should continue with the Buick but I feel like I should wait for Chuck to get back together with us. Bob had looked at a car at Beutler Auto so we went over there and looked at a 1999 Ford Crown Victoria that has 36,000 miles on it. It really looks nice and drove quite nice but it would cost us $55,000 plus tax and licensing. They also had another car we looked at for a little less. I don’t know why but I just didn’t feel good about it. This evening went fast as we looked at some cars on ksl.com and I got the pictures of our car ready for Mae to advertise on ksl.com. I filled out this entry and quite for today.
Tuesday, February 09, 2010
I didn’t get up very early as I woke before 4AM and couldn’t sleep well after that. Most of this day was spent looking for a car. We found three that we checked with Dee on and he didn’t recommend any of those. There is two Buick at Hertz that look good that I will check out in the morning. We watched half of a show on DVD last night before going to sleep so I think we will watch the last half tonight.
Wednesday, February 10, 2010
I woke before 4AM thinking about the cars and when I got up, Mae also woke. We tried to go back to sleep but finally decided that we should get up. Mae wanted to get some apples put up before we leave, so we worked together and got 10 quarts of apple sauce out of the apples that we had remaining from what we got from Gale’s Mother. We then went into Ogden and picked up some of our supplements from Nancy. I tried to call Charles Hyer but could not get through to him. We next tried to reach the Clark’s to see if they had a new phone number for the Hyer’s but they were also not answering their phone. We drove up to Soda Springs in Idaho. Just as we entered Soda Springs Kathleen called and gave us Charles’s phone number. Before we could call Charles he called us. He gave me directions to Can Do Auto sales. We looked at the 2003 Buick and decided to buy it. Because of Charles Hyer we bought the car for 3,100 dollars. We stopped at a café that Charles also recommended. After lunch we went upstairs and went through a privet museum and enjoyed a few minutes there. We came home by way of the freeway and just west of Tremonton there was an accident. Several vehicles had already stopped but the police hadn’t arrived yet. We felt that there was too many people already there so we cautiously drove on. The police were there in just minutes. The accident looked as if it was a one car accident but looked quite serious. As it got dark and I turned the head lights on and we had other indications of problems show up. It made me a little nervous to have unexpected problems with the car. Bob and I went Home Teaching and did visit with all our familys. It was about 9:30PM when we got back home. We were tired tonight, so soon went to bed.
Thursday, February 11, 2010
I woke at 4AM thinking of the problems with the car. With me getting up it woke Mae so we got up early. I decided to call Dee’s and take the car in for a safety inspection which we need before we can get it licensed in Utah. Dee took it right in and called me back a little later and said that he had it all fixed and passed. That was great news for me. After I had taken the car in I fed the animals and then butchered three rabbits. I then had Bob take me back to get the car. I took it to Farmington and got it registered but I didn’t have the previous title so could not get the plates. We will have to wait for the title to come from Idaho. I called Can Do Auto and asked them to get it right out to me. I got home just in time to change and attend the funeral services for LaVern Larson. The services were quite simple but very nice. She has fought a battle with cancer for 10 years and passed away last Sunday morning. Her husband, Richard will surly miss her for he has taken such good care of her through it all. This afternoon I cut up, bottled and pressure cooked the three rabbits. Mae had made Yummy Potatoes for the funeral and so made a dish for Scott and Mishelle.  We watched some shows on TV while we worked here in the kitchen. Mae wrote Chuck and Karen a thank you card for all they have done for us. It was again late by the time we got to bed but we got quite a lot done today.
Friday, February 12, 2010
I don’t know all that we did this morning but it seem to have been busy. About noon Mae and I went to Ogden to Inter Mountain Farmers and bought me some work clothes. We also bought Mae a couple of blouses. We went to Bountiful to meat Sandi and Nick to get Paris. We will tend her for them while they go on a cruise for a few days. Coming home the freeway traffic was really bad so we were late getting back. We were going to take Paris to our place to leave for the evening but by the time we got to Kaysville it was time to meet Georgia and Rick at Sizzlers for dinner. We decided to just go to Sizzlers and take Paris home after eating. We had a very enjoyable dinner and visiting. We took Paris home and then went to the Stake Center in Kaysville. We enjoyed being with Rick and Georgia and especially enjoyed the dance. The Davis High band played and did a good job. It was late when we got home.
Saturday, February 13, 2010
We went to Kylan’s basket ball game that started at 9AM. It was a very good game and we enjoyed watching the two teams. It was a close score but Kylan’s team won and we they excited. When we got home I took care of the animals. At 11 AM Mae went to the Clearfield Swimming pool where she met Jeff and his family and they went swimming. I loaded the rabbits into carrying pens and took them to meet Dian Taylor and her husband. They were later than they had expected but they took the buck, the two doe’s and the eight kits. When we get back they will give us a new buck and two does in exchange. When I got back to the swimming pool Mae and Jeff’s family were just coming out. Mae and I went to Cricket where we purchased a broadband internet receiver for our laptop. We came home and got things packed and went over to Jeff and Gail’s. We enjoyed the children and Jeff, Gail, Mae and I also played games until late. We slept at their place this evening.
Sunday, February 14, 2010
We got up and got ready for church. We had breakfast before going to church. Jeff didn’t attend with us and we saw the strain that Gail had as she tried to care for the two children without help. Jeff did keep the baby home so that was a help. Mae tried to help Gail as much as she could. The Sacrament meeting was very enjoyable. The High Councilman that spoke was especially interesting as he talked about those that experienced tragic things, including death or killing other in line of duty during war. He then tied it into Family History work and Temple work. After Sacrament meeting Mae went to Jr. Sunday School with Benji. Gail took Rachael to her class and I attended Sunday School class and Priesthood meeting. When we got home we had a light lunch. Jeff, Benji, Mae and I went for a walk into the hollow that start behind their house and goes down to the West for quite a ways. There has been paved trails put there so that it is a very nice walking trail area. After we returned from the hike we enjoyed a nice dinner.  We were late getting to bed.
Monday, February 15, 2010
We got up at 6AM. Jeff had got up before that and he went up to Idaho and went skiing with his brother-in-law. We had breakfast and then loaded our things and came home. I helped Bob move some furniture and remove some drapes. They had new windows installed throw out the upstairs. I then had Bob follow me with our new Buick and I drove the pickup to Murdock Chevrolet in Bountiful where I had them Service the car and automatic transmission, check the tires, repair the lining in the trunk and bought a new door lock transmitter. When Bob and I got home Mae and I lay down for a nap. However the phone rang and Mae got up to answer it. I fell asleep so Mae didn’t come back to bed. Bob took both Mae and I back to Murdock’s about 4PM. The car was finished and all went well with the service. The reason that the cornering lights didn’t work is that the car didn’t come with that equipment. Mae and I then drove to Bryce and Deanna’s where we joined with Kim and Jeanenne, Georgia and Rick and the six of us had dinner and then visited about memories of Mom and Dad Porter. We had a very enjoyable evening. I goofed as we were all leaving. We stayed behind to visit with Bryce and Deanna about traveling together when we drive to California. Bryce and Deanna were suggesting that they travel very light so they could take more of our luggage with them. I didn’t handle it right and Mae took offence to it and we drove home in silence. It didn’t make for a good ending but Mae and I finally talked it through.
Tuesday, February 16, 2010
I got up about 3:30AM and was still concerned about last night.  We got up about 8:30AM and I had a 10AM appointment in Ogden. Mae got breakfast ready for me before I left. I went to Praxair where I had my CPAP checked out. I got a new face mask and some filters for it. When I left I drove past Dillard’s and the thought came to me that this is where Dennis Ewing works. Just then I saw Dennis washing the front doors. I stopped and visited with him for a few minutes. He said that he was doing fairly well but that Eleanor wasn’t doing very well. That is why they haven’t been able to attend any of the functions where we have attended together as old friends. Bob wanted me to help him with the paper work that he needs to fill out to get the rebates for installing the windows. We also stopped at Universal Rental to check on the price of a car dolly so that I could tow the Buick behind the pickup. When we got home and I told Mae that it would cost over $200. To rent it but that I would do that if she couldn’t pack all she needs into the Buick. I called Roy and asked him about some questions on Bob and Carroll’s rebates. We visited for a little while. After dinner this evening we did watch a little TV. Mae also got on the computer and did some research on the cost of Hotel rooms in St. George. I caught my journal up today and now it is time for bed.
Wednesday, February 17, 2010
I tried to download our checking accounts onto our laptop computer. I doen’t know what I did but I got things locked up on the computer. I became quite frustrated and finally just left it. Bob needed help with the rebate on his windows. I had called Roy yesterday and then told Bob and Carroll that we needed the information for their last year taxes. They couldn’t find their Social Security information so this morning Bob went into the S.S. Office in Ogden and got copies. I took my computers to Staples and got help from them with the problems. I went to Home Depot and picked up some items I needed. When I got home Mae was trying to help Bob with the papers he was to send to Roy and she was getting quite upset also. I finished getting the papers ready for him. This afternoon I trimmed the rose bushes down, ate lunch and then cut the tree in the front parking down. Bob helped me by loading the branches into the truck. We got the tree cut down and about half of it loaded. We will have to make a second trip to the dumps. Mae and I watched a show on TV while we ate dinner. Bishop stopped by and gave me a check to deposit into our Mission Account. I thought it would be for the full amount but it was for $1,200 which is the amount for the first month. I called Bishop Smith back and he called Brother McPhie who had miss understood so they will give me another check. Mae got on the internet and made reservations for Bryce, Deanna, Mae and I to stay in the Falcon Ridge Hotel in Mesquite, Nevada the night of March 1st. We couldn’t get the printer to work from the laptop again tonight. I gave up and wrote down the information. I entered today’s journal. Mae cleaned out the pantry and got some things ready to pack to take with us.
Thursday, February 18, 2010
Bob & I finished cutting up and loading the tree and took it to the dump. Mae had an appointment to get her hair done. She then went to Wilma’s and bought more Colloidal Silver. This afternoon I took my tool trailer and went up to Jeff and Gail’s. We tended their children while they went on an overnight wedding anniversary get-a-way. Mae got home just as they were pulling out of the driveway. We had a wonderful evening with the children.
Friday, February 19, 2010
The children slept well last night and so did we. Mae tended the children and I went to work cutting off doors and repairing bi-fold that had been hung wrong. Mae sure enjoyed being with the grand children. I just finished up when Jeff and Gail returned home. We came home and I took a shower and changed. We then went down to Randy’s 60th Birthday open house. After that we drove up to David and Shauna’s where we stayed the night. Shauna had a nice dinner for us when we got there. It was a very nice evening just relaxing and visiting with their family. Emily gave up her bed room for us and she and Tyler slept in sleeping bags on the front room floor. David expressed concerns with his company. His boss wants him to train the rest of the company’s reps on his sales tecknicks. There is several legal problems that could occur should he do so. It is really causing David to have stress related problems.
Saturday, February 20, 2010
We slept pretty good last night although I woke with a headache. After a nice breakfast we attended a basket ball game that David is the teams coach and Tyler is one of his main players. Tyler had a gun safety class to attend first. He and another team member were late getting to the game. By the time they got there the other team was 9 to 0 on the score board. David’s team did quite well but could never get closer than 3 points to them and lost by that margin. After lunch Mae and I let David and Shauna go looking for some new furniture while we stayed with the children. I took a short nap but Jeff call and woke me. I caught up my journal this afternoon and I also called and visited with Jackie Winterowd, my cousin. They had just got home from a vacation so had not seen Uncle Lee or Aunt Wilma yet. She had talked to Tonna and was told that both of their parents are doing quite well although they are still in a nursing home. Jackie gave me the phone number where I could call Uncle Lee and Aunt Wilma, so I call them. I visited with the two of them for a few minutes and they seem to be doing fair for the age that they are. We took the children over to the church house where we played in the gym for a while. I played some basket ball with Tyler. Conner brought his race car but he broke the antenna when he got in the car. I took a few minutes and repaired it. Mae played games with Conner and Emily. When David and Shauna returned they told us that David had just heard the news that his company had just received a huge law suit against them. David figures that this will have high negative effects that may very well affect him. Mae and I came home and soon took showers and then watched a movie.
Sunday, February 21, 2010
We were able to do some planning as we don’t have meetings until 1pm. Before leaving for church I tried to set the stove to time bake but was unable to do so. I tried to set Bob’s stove and after a couple of tries was able to get it set. I again tried to set ours but again was unsuccessful. Instead I just left Sunday school class early and came home and turned the stove on. When we got home from meetings Mae and I finished with the dinner preparations. David’s family came about 4:30PM for dinner. Mae had made a wonderful meal and we all enjoyed it. After cleaning up for dinner we played a couple of games. I had David take our two safes to his house to keep them for us while we are gone. Before going to bed I made up more capsules of Ambrotose powder. I finished this entry and we went to bed.
Monday, February 22, 2010
We would have liked to just sleep in this morning but there are too many things that need to be accomplished today. Mae started breakfast and also the washing. After breakfast I went to Home Depot to get two doors to replace two doors t Scott house. They didn’t have the doors that I needed so I went to Stocks and bought them. Mae went to the Motor Vehicle Department and was able to get license plates for our Buick. The number on the plates is (B88 8GE). I finished installing the two doors adjusted the front storm door by 2:15PM. I then borrowed Scott and Michelle’s car and went to Dr. Gray’s office where I had an appointment to have my teeth cleaned. I came back to Scott’s and put my tools in my trailer and came home. I got home just a little before 5PM. Sandi came to get Paris and she stayed and had dinner with us. Bob had prepared a nice roast dinner for us. Jeff came over while we were eating and put our desk top computer back together and was figuring his income tax reports when we came downstairs. Sandi left for home and took Paris with her. Jeff stayed for a little while and got our online Google visual communications working for us. After Jeff left, Mae and I watched a show on TV. Mae has been busy all day getting things packed. Even when we had the TV going Mae was still going strong. Mae made copies of some of my journal entries for 28th 29th & 30th of July, 2009 and added some remarks of her own, for Gail. I then finished my journal entry and we went to bed after mid-night.
Tuesday, February 23, 2010
Things were a little frustrating this morning because the day didn’t start out like it was planned. To start with I slept until 8:30AM without even getting up during the night. Bob wanted to go check on the tiller because they were going to Salt Lake to have Carroll’s eyes checked this afternoon. Besides buying a tiller we also went to Sam’s Club where I bought a Ipod to replace my Palm which I going out on me. Mae was in such a hurry to get things packed and then she had Scott and Jeff come for lunch. Gail also wanted to come for lunch to be with us as much as she can before we leave. I went to the credit union, got gas, went to the post office, went to the auto parts and made a second stop to the credit union to be sure that our credit cards will work when we go to California. Mae did get me to lie down and take a short nap. I got the tool trailer blocked up and things put away. All in all things worked out ok. Jeff came over this evening and finished his income taxes. They will be getting a fair amount back this year. This evening at 8:30PM Mae and I went to the Stake President’s office where he set the two of us apart for our missionary calling. He gave us both beautiful and appropriate blessings. We came home and had some super before going to bed. I set up in the recliner as I didn’t think I could sleep well after eating so late.
Wednesday, February 24, 2010
I got back in bed about 1AM and slept well the rest of the night. We got up about 7AM. Mae was still worried taking everything so I decided to rent a car tote and drive the pickup and pull the car. When I called to rent the tote we found out that U-Haul advised against pulling the 2003 Buick Lasabre with my 1997 Chevy3/4 ton pickup. There for we could have no insurance on it. I tried several other ways and it would cost too much. I brought the Buick down and loaded it and we will get everything in especially with Bryce and Deanna’s car. Mae has been busy all day cleaning and packing. We did lay down this afternoon and take a nap. I mailed a package to Shellie, bought us a Sub-Way for dinner and bought me a couple of white shirts at Kohls. Lanny called this evening and I visited with him for a while. I told him that I had visited with Jackie and also his parents. We visited for several minutes. His company laid him off a year ago because he was getting older and younger family members now owned the company. He said he is doing ok and hasn’t missed a day of work since but it just makes him mad that they treated him that way after all the years he has worked for them. I guess we are going to ride the Trax to Salt Lake in the morning so we had better get to bed before long. Bishop Steadman called just after we went to bed. He said he was going to be in meetings in Salt Lake all day so he would pick us up and take us and then he should be through about the same time as us and would bring us back home. We agreed on that plan.
Thursday, February 25, 2010
We were up at 4:30AM to be ready when Bishop Steadman came. It was nice riding with him and we enjoyed the trip together. We were at the designated meeting place a little early but that was ok. We enjoyed the seminar with Elder and Sister Bretzing. It was good to meet with them and get better acquainted. Also in the seminar were Elder and Sister Evans from Prescott Arizona. They will be going to The United Kingdom to serve. The first thing on the agenda was to have our pictures taken. I realized that I should have been in a dark suit and I felt improperly dressed the rest of the day. We each introduced our self. Kevin Pasker of Risk Management gave a presentation of farm safety. Elder and Sister Bretzing presented a video on Serving on a FRI Mission. At dinner time we were taken to the Joseph Smith Memorial building to the Garden Restaurant for a very good dinner. This afternoon we continued with more training and wound up at 3:30PM. I went to call Bishop Steadman but found that we had left both of our cell phones home. I tried to reach Bishop Steadman but only got his answering service. At 4:30PM we made contact with him and he soon came. During the day I felt that I should have worn a dark suit. Because my dark suit and to small I wore my light one. While waiting for Bishop Steadman we thought about going across the street to Mr. Mack’s but realized that I wouldn’t have time for any alterations or the hemming of the pants. When we got home we were also concerned about the renewal of our Temple Recommends. I called Bishop Smith but he could not interview us this evening. He had me call Brother Mark McPhie his 2nd Counselor, and he said that he could meet us at the office at 7PM. We had time to go to Stake Executive Secretary and get a key to the red chapel. I talked to him about getting a member of the Stake Presidency to sign our recommends and he said that President Mitchell would be at our chapel so we could get him to interview us. It all worked out great. When we mentioned that I needed a bark suit to Bob, he said he had one. Most of the suits that Bob has had doesn’t fit me but this one was just perfect. It looks like all our problems just worked out and we got everything done that we needed. We went to bed late with Mae not feeling very well.
Friday, February 26, 2010
We got up early to go to the Jordan River Temple to be with Bob and Cheryl Bottom as they go through a session for Bob to receive his endowments. When we woke, I felt very rough, so I went back to sleep. We later rode with Bob and Carroll to the Temple and were able to attend their sealing. This afternoon Bob and I went over to Roy and picked up the rotor tiller that we purchased the other day. It looks like it will be a pretty good one. Mae got her hair washed and put up this afternoon and then went to Scott and Michelle’s. She tended their children while Scott and Michelle went out to eat. It was 9:30PM before Mae got home. Bryce and Deanna came over and the two of us loaded most of our luggage into the two cars. Bob cooked liver and onions for he, Carroll and I this evening. After eating I went over to the Winegars to deposit our travel check and looked for some canned sliced apples but they didn’t have any. Mae got her something to eat before we went to bed.
Saturday, February 27, 2010
Bob fixed breakfast for us of bisques and gravy. He also made us an apple pie, using our sweetener, and he made gravy for our family party. I cooked chicken breast on the grill and put them in an electric oven. I also finished packing the car. We went up to the red chapel where all our family (except Shellie’s family and Logan) came and we had a Family birthday Party. We did this so that we can give all the Birthday presents now instead of mailing them. After a very great dinner, we opened gifts and then set up volleyball net and several enjoyed a game. That wound up at 5PM. Mae and I went to the Hail Playhouse and enjoyed Fiddler on the Roof. It was 11:20PM before we got to Mike’s. Becky was still up waiting for Taylor to get home from a Stake dance.
Sunday, February 28, 2010
We got up at 6:30AM and got ready for church. Mae and I were so tired that we only stayed for Sacrament meeting and then came home and took a nap. When I got up Mike and I went over to Costco and purchased some appt cards for our IPod and a membership card for Mae and I. Mike and I spent most of the day putting applications into the IPod for Mae and I.


Note: Year, Make, Model and Photo are optional, but by providing them you get access to vehicle performance reports.


| Overview | Module | Use | Devguide | Index |
| Values | Values' Details |
| enum XPathObjectType |
| Values | |
| XPATH_UNDEFINED | |
| XPATH_NODESET | |
| XPATH_BOOLEAN | |
| XPATH_NUMBER | |
| XPATH_STRING | |
| XPATH_POINT | |
| XPATH_RANGE | |
| XPATH_LOCATIONSET | |
| XPATH_USERS | |
| XPATH_XSLT_TREE |
| Values' Details | |
XPATH_UNDEFINED
|
|
XPATH_NODESET
|
|
XPATH_BOOLEAN
|
|
XPATH_NUMBER
|
|
XPATH_STRING
|
|
XPATH_POINT
|
|
XPATH_RANGE
|
|
XPATH_LOCATIONSET
|
|
XPATH_USERS
|
|
XPATH_XSLT_TREE
|
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


--- layout: splash classes: - landing - dark-theme ---
Diversity Tickets have been reserved and are still available. People in underrepresented groups are encouraged to apply.
To reduce the barrier to attendance, a limited number of bursaries are also available to assist those with costs related to caring responsibilities, such as childcare.
{% include tickets.html %}A larger event is tentatively being considered for early 2018. Members of the waitlist above will be prioritized.


The API's are protected by basic authentication. If a client gets 401 response with "api" realm challenge, then the client either did not present the credential in the request or the presented creadential was not right. Please contact the application operator for available credentials.
Method: GET
URL: https://hostname:port/apis/travelers/
Sample response:
[ { "_id": "52f3f98a87d4808008000002", "createdBy": "liud", "createdOn": "2014-02-06T21:07:22.730Z", "devices": [], "sharedWith": [], "status": 0, "title": "update me" }, { "_id": "52f8ed88f029d24d2b000002", "createdBy": "liud", "createdOn": "2014-02-10T15:17:28.849Z", "deadline": "2014-02-28T05:00:00.000Z", "devices": [], "finishedInput": 4, "sharedWith": [], "status": 1.5, "title": "a long traveler", "totalInput": 36, "updatedBy": "liud", "updatedOn": "2014-03-18T19:12:25.739Z" }, { "title": "test77 update", "status": 0, "createdBy": "liud", "createdOn": "2014-03-31T15:34:27.947Z", "totalInput": 34, "finishedInput": 0, "_id": "53398b03951887482f000002", "sharedWith": [], "devices": [] }, ... ]
The response will be a JSON array containing the list of travelers. Each traveler in the list is represented by a JSON object with traveler id, title, status, devices, createdBy, clonedBy, createdOn, deadline, updatedBy, updatedOn, sharedWith, finishedInput, and totalInput information. The traveler id can be used to retrieve more details of a traveler, https://hostname:port/apis/travelers/:id/ for the JSON representation and http://hostname:port/travelers/:id/ for the HTML representation.
The travler list can also be retrieved by a device name.
URL: https://hostname:port/apis/travelers/?device=:devicename
where :devicename is the name of device that was assigned to the travelers.
Method: GET
URL: https://hostname:port/apis/travelers/:id/
where :id is the id of the traveler to be retrieved
Sample response:
{ "__v": 26, "_id": "53bbf46e2ace2f7f111d76c8", "createdBy": "liud", "createdOn": "2014-07-08T13:38:54.529Z", "description": "", "finishedInput": 2, "referenceForm": "5283aa947185189f61000001", "status": 1, "title": "test validation", "totalInput": 7, "updatedBy": "liud", "updatedOn": "2014-08-12T13:56:02.090Z", "archived": false, "notes": [ "53e2380cd48af61751d91394", "53e38b47d48af61751d91395", "53e39121d48af61751d91396", ... ], "data": [ "53bbf6b52ace2f7f111d76ca", "53bbf6cd2ace2f7f111d76cb", ... ], "activeForm": 0, "forms": [ { "html": "...", "_id": "53bbf46e2ace2f7f111d76c9" } ], "sharedWith": [], "devices": [] }
The traveler details JSON object contains more information than the object in a traveler list. The "forms" property contrains a list of the forms that were used in this traveler. Currently, only one form is allowed for a traveler. The "data" property contrains the data id's that were collected in the traveler. The "notes" property holds the note id's that were inputed in the traveler.
Method: GET
URL: https://hostname:port/apis/travelers/:id/data/
where :id is the id of the traveler whose data is retrieved
Sample response:
[ { "name": "2f067ecd", "value": true, "inputType": "checkbox", "inputBy": "liud", "inputOn": "2014-07-08T13:48:37.972Z", "_id": "53bbf6b52ace2f7f111d76ca" }, { "name": "d134f3cd", "value": "something", "inputType": "textarea", "inputBy": "liud", "inputOn": "2014-07-08T13:49:01.784Z", "_id": "53bbf6cd2ace2f7f111d76cb" }, ... ]
Each data item in the list contains the input name in the form, the input type and the value. Besides, it also records who input the value at what time, by which the input history can be generated. For file input, the value is the file's original name when it was uploaded. In order to retrieve the content of the file, the following file API can be used.
Method: GET
URL: https://hostname:port/apis/data/:id/
where :id is the id of the data whose type is file.
Method: GET
URL: https://hostname:port/apis/travelers/:id/notes/
where :id is the id of the traveler whose notes are retrieved
Sample response:
[ { "name": "2f067ecd", "value": "first notes", "inputBy": "liud", "inputOn": "2014-08-06T14:13:32.233Z", "_id": "53e2380cd48af61751d91394" }, { "name": "2f067ecd", "value": "live stamp", "inputBy": "liud", "inputOn": "2014-08-07T14:20:55.944Z", "_id": "53e38b47d48af61751d91395" }, ... ]
Similar to the data API, each note item in the list contains the input name in the form and the note text. Besides, it also records who input the note at what time, by which the note history can be generated.


|
Crab
(Weezer) |
|
Crab
if you want her
She won't be coming down Crab if you want her She won't be coming down Crab if you need it She put her knickers on Crab if you need it She put her knickers on She said she's feeling lonely And I say that's Ok She won't be coming back 'round here, no way She said she's feeling lonely And I say that's Ok She won't be coming back 'round here, no way Crab at the booty T'aint gonna do no good Crab at the booty T'aint gonna do no good No, crab at the booty T'aint gonna do no good |


NADINE A film review by Dan Frank Copyright 1987 Dan Frank
When we go to the movies, we generally resign ourselves to enjoying the films in spite of their imperfections. We say, "I enjoyed this light comedy, even though it was totally shallow and predictable," or "This was a fun excursion into empty-minded comic-book-style violence," or something of that sort. It's rare to walk out of a movie and not think that somehow it could have been better.
NADINE provides such a rare experience. It stars Kim Basinger and Jeff Bridges as an almost-divorced husband and wife, who get mixed up by accident in the schemes of a particularly nasty wrestling promoter, played with a wonderful mix of debonair sliminess and bewilderment by Rip Torn. Torn was the best feature of EXTREME PREJUDICE, and his departure early in that picture was lamented by many critics. He eats up the screen whenever he's on, and only the presence of Bridges keeps him from completely dominating this film.
I complained in a recent posting about movies that mangle their settings, acting as if the only unique thing about, say, Chicago is its name. Movies like ADVENTURES IN BABYSITTING are made by people who have no sense of the unique contribution a locale can make, above and beyond mere script, to their mood and tone. NADINE is set, and mostly filmed, in Austin, Texas, which I've had the pleasure of making my temporary home this summer. Since the action takes place in 1954, the filmmakers "fiftyized" several Austin locations of the proper vintage to be used for the exterior shots. When the characters are supposed to be on Sixth Street, by God they really ARE on Sixth Street: the day we saw the film, we happened down there, and the block they used (at Sixth and Brazos) is almost identical to its appearance in the movie.
There is simply no substitute for authenticity. Chicago has it, and Texas has it, and NADINE has it in large measure, both in its settings and its characterizations. I wasn't alive in 1954, so I can't compare it to my memories, but I walked out of NADINE feeling, "That's the way it was!" It's a sort of honky-tonk MY FAVORITE YEAR (same year, in fact).
I'm not going to talk about the plot, except to say that NADINE is a comedy adventure with a perfectly plausible premise, and that you'll enjoy the heck out of it. You can pay real money for this one, folks.
-- Dan
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Programmatic collapse,expand,open,close
The story begins as Don Vito Corleone, the head of a New York Mafia family, oversees his daughter's wedding.
His beloved son Michael has just come home from the war, but does not intend to become part of his father's business.
Through Michael's life the nature of the family business becomes clear. The business of the family is just like the head of the family,
kind and benevolent to those who give respect,
but given to ruthless violence whenever anything stands against the good of the family.
The story begins as Don Vito Corleone, the head of a New York Mafia family, oversees his daughter's wedding.
His beloved son Michael has just come home from the war, but does not intend to become part of his father's business.
Through Michael's life the nature of the family business becomes clear. The business of the family is just like the head of the family,
kind and benevolent to those who give respect,
but given to ruthless violence whenever anything stands against the good of the family.
function PanelController($) {
var vm = this;
vm.panel = null;
}


PyTorch 2.0 Troubleshooting¶
Author: Michael Lazos
torch.compile is still in active development, and many of the reasons for graph breaks and excessive recompilation will be fixed with upcoming support for tracing dynamic tensor shapes, more careful choices for guards and better tuned heuristics.
In the meantime, you may need to diagnose a particular issue and determine if it is easy to work around with a change to your model, or file an issue for support.
Also, we are actively developing debug tools, profilers, and improving our errors/warnings. Please give us feedback if you have an issue with this infra, or an idea for an improvement. Below is a table of the available tools and their typical usage. For additional help see Diagnosing Runtime Errors.
Tool |
Purpose |
Usage |
|---|---|---|
Info logging |
View summarized steps of compilation |
|
Debug logging |
View detailed steps of compilation (print every instruction traced) |
|
Minifier for any backend |
Find smallest subgraph which reproduces errors for any backend |
set environment variable |
Minifier for |
If the error is known to occur after AOTAutograd` find smallest subgraph which reproduces errors during TorchInductor lowering |
set environment variable |
Dynamo accuracy minifier |
Finds the smallest subgraph which reproduces an accuracy issue between an eager model model and optimized model, when you suspect the problem is in AOTAutograd |
|
Inductor accuracy minifier |
Finds the smallest subgraph which reproduces an accuracy issue between an eager model model and optimized model, when you suspect the problem is in the backend (e.g., inductor). If this doesn’t work, try the Dynamo accuracy minifier instead. |
|
|
Find graph breaks and display reasoning for them |
|
Record/Replay |
Record and replay frames which to reproduce errors during graph capture |
|
TorchDynamo function name filtering |
Only compile functions with the given name to reduce noise when debugging an issue |
set environment variable |
TorchInductor Debug logging |
Print general TorchInductor debug info and generated Triton/C++ code |
|
TorchInductor Tracing |
Show time taken in each TorchInductor stage + output code and graph visualization |
set the environment variable TORCH_COMPILE_DEBUG=1 or
|
Diagnosing Runtime Errors¶
Below is the TorchDynamo compiler stack.
At a high level, the TorchDynamo stack consists of a graph capture from Python code (TorchDynamo) and a backend compiler. In this example, the backend compiler consists of backward graph tracing (AOTAutograd) and graph lowering (TorchInductor)*. Errors can occur in any component of the stack and will provide full stack traces.
You may use info logging
(torch._dynamo.config.log_level = logging.INFO
) and look for
Step #: ...
outputs in order to determine in which component the
error has occurred. Logs are made at the beginning and end of each step,
so the step that an error should correspond to is the most recent logged
step whose end has not yet been logged. The steps correspond to the
following parts of the stack (according to the image above):
Step |
Component |
|---|---|
1 |
TorchDynamo |
2 |
Compiler Backend |
3 |
TorchInductor |
The beginning and end of AOTAutograd is currently not logged, but we plan to add it soon.
If info logging is insufficient, then there are also some backend options which can enable you to determine which component is causing the error if you’re unable to understand the error message that is generated. These are the following:
"eager"
: only runs torchdynamo forward graph capture and then runs the captured graph with PyTorch. This provides an indication as to whether TorchDynamo is raising the error."aot_eager"
: runs torchdynamo to capture a forward graph, and then AOTAutograd to trace the backward graph without any additional backend compiler steps. PyTorch eager will then be used to run the forward and backward graphs. This is useful to narrow down the issue to AOTAutograd.
The general procedure to narrow down an issue is the following:
Run your program with the
"eager"
backend. If the error no longer occurs, the issue is in the backend compiler that is being used (if using TorchInductor, proceed to step 2. If not, see this section). If the error still occurs with the"eager"
backend, it is an error while running torchdynamo.This step is only necessary if
TorchInductor
is used as the backend compiler. Run the model with the"aot_eager"
backend. If this backend raises an error then the error is occurring during AOTAutograd tracing. If the error no longer occurs with this backend, then the error is in TorchInductor*.
Each of these cases are analyzed in the following sections.
Note
The TorchInductor backend consists of
both AOTAutograd tracing and the TorchInductor compiler itself. We will
disambiguate by referring to TorchInductor
as the backend, and
TorchInductor lowering as the phase which lowers the graph traced by
AOTAutograd.
Torchdynamo Errors¶
If the error that is generated occurs with the "eager"
backend, then
TorchDynamo is the most likely source of the error. Here is a sample code
which will generate an error.
import torch
import torch._dynamo as dynamo
def test_assertion_error():
y = torch.ones(200, 200)
z = {y: 5}
return z
compiled_test_assertion_error = torch.compile(test_assertion_error, backend="eager")
compiled_test_assertion_error()
Which will generate the following error:
torch._dynamo.convert_frame: [ERROR] WON'T CONVERT test_assertion_error /scratch/mlazos/torchdynamo/../test/errors.py line 26
due to:
Traceback (most recent call last):
File "/scratch/mlazos/torchdynamo/torchdynamo/symbolic_convert.py", line 837, in BUILD_MAP
assert isinstance(k, ConstantVariable) or (
AssertionError
from user code:
File "/scratch/mlazos/torchdynamo/../test/errors.py", line 34, in test_assertion_error
z = {y: 5}
Set torch._dynamo.config.verbose=True for more information
==========
As the message suggests you can set
torch._dynamo.config.verbose=True
to get a full stack trace to both
the error in TorchDynamo and the user code. In addition to this flag,
you can also set the log_level
of torchdynamo through
torch._dynamo.config.log_level
. The available levels are the
following:
logging.DEBUG
: Print every instruction that is encountered in addition to all below log levels.logging.INFO
: Print each function that is compiled (original and modified bytecode) and the graph that is captured in addition to all below log levels.logging.WARNING
(default): Print graph breaks in addition to all below log levels.logging.ERROR
: Print errors only.
If a model is sufficiently large, the logs can become overwhelming. If an error occurs deep within a model’s Python code, it can be useful to execute only the frame in which the error occurs to enable easier debugging. There are two tools available to enable this:
Setting the environment variable
TORCHDYNAMO_DEBUG_FUNCTION
to the desired function name will only run torchdynamo on functions with that name.Enabling the record/replay tool (set
torch._dynamo.config.replay_record_enabled = True
) which dumps an execution record when an error is encountered. This record can then be replayed to run only the frame where an error occurred.
TorchInductor Errors¶
If the error does not occur with the "eager"
backend, then the
backend compiler is the source of the error (example
error).
There are different
choices
for backend compilers for TorchDynamo, with TorchInductor or nvfuser
fitting the needs of most users. This section focuses on TorchInductor
as the motivating example, but some tools will be usable with other
backend compilers.
Below is the portion of the stack which we are focusing on:
With TorchInductor as the chosen backend, AOTAutograd is used to
generate the backward graph from the forward graph captured by
torchdynamo. It is important to note that errors can occur during this
tracing and also while TorchInductor lowers the forward and backward
graphs to GPU code or C++. A model can often consist of hundreds or
thousands of FX nodes, so narrowing the exact nodes where this problem
occurred can be very difficult. Fortunately, there are tools available to
automatically minify these input graphs to the nodes which are causing
the issue. The first step is to determine whether the error occurs
during tracing of the backward graph with AOTAutograd or during
TorchInductor lowering. As mentioned above in step 2, the
"aot_eager"
backend can be used to run only AOTAutograd in isolation
without lowering. If the error still occurs with this backend, this
indicates that the error is occurring during AOTAutograd tracing.
Here is an example:
import torch
import torch._dynamo as dynamo
model = torch.nn.Sequential(*[torch.nn.Linear(200, 200) for _ in range(5)])
def test_backend_error():
y = torch.ones(200, 200)
x = torch.ones(200, 200)
z = x + y
a = torch.ops.aten._foobar(z) # dummy function which errors
return model(a)
compiled_test_backend_error = torch.compile(test_backend_error, backend="inductor")
compiled_test_backend_error()
Running this should give you this error with a longer stack trace below it:
Traceback (most recent call last):
File "/scratch/mlazos/torchdynamo/torchinductor/graph.py", line 246, in call_function
return lowerings[target](*args, **kwargs)
File "/scratch/mlazos/torchdynamo/torchinductor/lowering.py", line 185, in wrapped
return decomp_fn(*args, **kwargs)
File "/scratch/mlazos/torchdynamo/torchinductor/lowering.py", line 810, in _foobar
assert False
AssertionError
...
If you then change torch.compile(backend="inductor")
to
torch.compile(backend="aot_eager")
, it will run without error, because
the
issue
is in the TorchInductor lowering process, not in AOTAutograd.
Minifying TorchInductor Errors¶
From here, let’s run the minifier to get a minimal repro. Setting the
environment variable TORCHDYNAMO_REPRO_AFTER=“aot”
(or setting
torch._dynamo.config.repro_after="aot"
directly) will generate a
Python program which reduces the graph produced by AOTAutograd to the
smallest subgraph which reproduces the error. (See below for an example
where we minify the graph produced by torchdynamo) Running the program
with this environment variable should show nearly identical
output,
with an additional line indicating where minifier_launcher.py
has
been written to. The output directory is configurable by setting
torch._dynamo.config.base_dir
to a valid directory name. The final
step is to run the minifier and check that it runs successfully. A
successful run looks like
this.
If the minifier runs successfully, it generates runnable python code
which reproduces the exact error. For our example this is the following
code:
import torch
from torch import tensor, device
import torch.fx as fx
from torch._dynamo.testing import rand_strided
from math import inf
from torch.fx.experimental.proxy_tensor import make_fx
# torch version: 1.13.0a0+gitfddfc44
# torch cuda version: 11.6
# torch git version: fddfc4488afb207971c54ad4bf58130fdc8a4dc5
# CUDA Info:
# nvcc: NVIDIA (R) Cuda compiler driver
# Copyright (c) 2005-2022 NVIDIA Corporation
# Built on Thu_Feb_10_18:23:41_PST_2022
# Cuda compilation tools, release 11.6, V11.6.112
# Build cuda_11.6.r11.6/compiler.30978841_0
# GPU Hardware Info:
# NVIDIA A100-SXM4-40GB : 8
from torch.nn import *
class Repro(torch.nn.Module):
def __init__(self):
super().__init__()
def forward(self, add):
_foobar = torch.ops.aten._foobar.default(add); add = None
return (_foobar,)
args = [((200, 200), (200, 1), torch.float32, 'cpu')]
args = [rand_strided(shape, stride, dtype, device) for shape, stride, dtype, device in args]
mod = make_fx(Repro())(*args)
from torch._inductor.compile_fx import compile_fx_inner
compiled = compile_fx_inner(mod, args)
compiled(*args)
The forward
method of the Repro
module contains the exact op
which causes the issue. When filing an issue, please include any
minified repros to aid in debugging.
Minifying Backend Compiler Errors¶
With backend compilers other than TorchInductor the process for finding the subgraph causing the error is nearly identical to the procedure in errors in TorchInductor with one important caveat. Namely, that the minifier will now be run on the graph that is traced by TorchDynamo, not the output graph of AOTAutograd. Let’s walk through an example.
import torch
import torch._dynamo as dynamo
model = torch.nn.Sequential(*[torch.nn.Linear(200, 200) for _ in range(5)])
# toy compiler which fails if graph contains relu
def toy_compiler(gm: torch.fx.GraphModule, _):
for node in gm.graph.nodes:
if node.target == torch.relu:
assert False
return gm
def test_backend_error():
y = torch.ones(200, 200)
x = torch.ones(200, 200)
z = x + y
a = torch.relu(z)
return model(a)
compiled_test_backend_error = torch.compile(test_backend_error, backend=toy_compiler)
compiled_test_backend_error()
In order to run the code after TorchDynamo has traced the forward graph,
you can use the TORCHDYNAMO_REPRO_AFTER
environment variable. Running
this program with TORCHDYNAMO_REPRO_AFTER=“dynamo”
(or
torch._dynamo.config.repro_after="dynamo"
) should produce this
outputand
the following code in {torch._dynamo.config.base_dir}/repro.py
.
Note
The other option for TORCHDYNAMO_REPRO_AFTER are "aot"
, which
will run the minifier after the backward graph has been generated.
import torch
import torch._dynamo as dynamo
from torch import tensor, device
import torch.fx as fx
from torch._dynamo.testing import rand_strided
from math import inf
from torch._dynamo.debug_utils import run_fwd_maybe_bwd
from torch.nn import *
class Repro(torch.nn.Module):
def __init__(self):
super().__init__()
def forward(self, add):
relu = torch.relu(add); add = None
return (relu,)
mod = Repro().cuda()
opt_mod = torch.compile(mod, backend="None")
args = [((200, 200), (200, 1), torch.float32, 'cpu', False)]
args = [rand_strided(sh, st, dt, dev).requires_grad_(rg) for (sh, st, dt, dev, rg) in args]
with torch.cuda.amp.autocast(enabled=False):
ref = run_fwd_maybe_bwd(mod, args)
res = run_fwd_maybe_bwd(opt_mod, args)
The minifier successfully reduced the graph to the op that raises the
error in toy_compiler
. The other difference from the procedure in
TorhInductor Errors is that the minifier is
automatically run after encountering a backend compiler error. After a
successful run, the minifier writes repro.py
to
torch._dynamo.config.base_dir
.
Performance Profiling¶
Accessing TorchDynamo Profiler¶
TorchDynamo has a builtin stats function for collecting and displaying
the time spent in each compilation phase. These stats can be accessed by
calling torch._dynamo.utils.compile_times()
after executing
Torch._Dynamo. By default, this returns a string representation of the
compile times spent in each TorchDynamo function by name.
TorchInductor Debugging using TORCH_COMPILE_DEBUG¶
TorchInductor has a builtin stats and trace function for displaying time spent in each compilation phase, output code, output graph visualization and IR dump. This is a debugging tool designed to make it easier to understand and troubleshoot the internals of TorchInductor.
Let’s run an example with the following test program (repro.py):
import torch
@torch.compile()
def test_model(x):
model = torch.nn.Sequential(
torch.nn.Linear(10, 10),
torch.nn.LayerNorm(10),
torch.nn.ReLU(),
)
return model(x)
y = test_model(torch.ones(10, 10))
Setting the environment variable TORCH_COMPILE_DEBUG=1
will cause a
debug trace directory to be created, by default this directory will be in the current directory and named torch_compile_debug
(this can be overridden in the torchdynamo configuration field debug_dir_root
and also the env var TORCH_COMPILE_DEBUG_DIR).
Inside this directory, each run will have a separate folder named with the timestamp and process id of the run:
$ env TORCH_COMPILE_DEBUG=1 python repro.py
$ cd torch_compile_debug
$ ls
run_2023_03_01_08_20_52_143510-pid_180167
In the run folder there will be a torchdynamo directory which contains debug logs, and an torchinductor folder which contains a subfolder for each compiled kernel with inductor debug artifacts.
$ cd
run_2023_03_01_08_20_52_143510-pid_180167
$ ls
torchinductor torchdynamo
Moving further into the torchinductor directory, the *.log files are logs from the aot autograd phase of compilation, model__0_forward_1.0 contains the inductor debug artifacts.
$ cd torchinductor
$ ls
aot_model___0_debug.log model__0_forward_1.0
$ cd model__0_forward_1.0
$ ls
debug.log fx_graph_readable.py fx_graph_runnable.py fx_graph_transformed.py ir_post_fusion.txt ir_pre_fusion.txt output_code.py
- Here is a summary of the contents:
fx_graph_readable.py and fx_graph_runnable.py are the readable and runnable versions of the fx_graph received by inductor.
fx_graph_transformed.py is the fx graph after inductor has run all fx passes.
ir*.txt is the inductor ir pre and post fusion.
output_code.py is the compiled triton kernel for the subgraph.
Here are example debug directory contents for the test program:
import torch
@torch.compile()
def test_model(x):
model = torch.nn.Sequential(
torch.nn.Linear(10, 10),
torch.nn.LayerNorm(10),
torch.nn.ReLU(),
)
return model(x)
y = test_model(torch.ones(10, 10))
Each file in that debug trace can be enabled and disabled through
torch._inductor.config.trace.*
. The profile and the diagram are both
disabled by default since they are expensive to generate.
A single node in this new debug format looks like:
buf1: SchedulerNode(ComputedBuffer)
buf1.writes =
{ MemoryDep(name='buf1', index=0, size=()),
MemoryDep(name='buf1', index=0, size=(s0,))}
buf1.unmet_dependencies = {MemoryDep(name='buf0', index=c0, size=(s0,))}
buf1.met_dependencies = {MemoryDep(name='primals_2', index=c0, size=(s0,))}
buf1.group.device = cuda:0
buf1.group.iteration = (1, s0)
buf1.sizes = ([], [s0])
class buf1_loop_body:
var_ranges = {z0: s0}
index0 = z0
index1 = 0
def body(self, ops):
get_index = self.get_index('index0')
load = ops.load('buf0', get_index, False)
get_index_1 = self.get_index('index0')
load_1 = ops.load('primals_2', get_index_1, False)
add = ops.add(load, load_1)
get_index_2 = self.get_index('index1')
reduction = ops.reduction('buf1', torch.float32, torch.float32, 'sum', get_index_2, add)
return reduction
See the example debug directory output for more examples.
Graph Breaks¶
Given a program like this:
def some_fun(x):
...
compiled_fun = torch.compile(some_fun, ...)
...
TorchDynamo will attempt to compile all of the torch/tensor operations within some_fun into a single FX graph, but it may fail to capture everything into one graph.
Some graph break reasons are insurmountable to TorchDynamo, and can’t be easily fixed. - calling into a C extension other than torch is invisible to torchdynamo, and could do arbitrary things without TorchDynamo being able to introduce necessary guards to ensure that the compiled program would be safe to reuse. Graph breaks can hinder performance if the resulting fragments are small. To maximize performance, it’s important to have as few graph breaks as possible.
Identifying the Cause of a Graph Break¶
To identify all graph breaks in a program and the associated reasons for
the breaks, torch._dynamo.explain
can be used. This tool runs
TorchDynamo on the supplied function and aggregates the graph breaks
that are encountered. Here is an example usage:
import torch
import torch._dynamo as dynamo
def toy_example(a, b):
x = a / (torch.abs(a) + 1)
print("woo")
if b.sum() < 0:
b = b * -1
return x * b
explanation, out_guards, graphs, ops_per_graph = dynamo.explain(toy_example, torch.randn(10), torch.randn(10))
print(explanation)
"""
Dynamo produced 3 graphs, with 2 graph breaks and 6 ops.
Break reasons:
1. call_function BuiltinVariable(print) [ConstantVariable(str)] {}
File "t2.py", line 16, in toy_example
print("woo")
2. generic_jump
File "t2.py", line 17, in toy_example
if b.sum() < 0:
"""
Outputs include:
out_guards
- a list of lists where each sublist contains the guards that must pass to ensure the traced graphs are valid.graphs
- a list of graph modules which were successfully traced.ops_per_graph
- a list of lists where each sublist contains the ops that are run in the graph.
To throw an error on the first graph break encountered, use the nopython
mode. This mode disables TorchDynamo’s Python fallback, and only
succeeds if the entire program is convertible into a single graph. Example
usage:
def toy_example(a, b):
...
compiled_toy = torch.compile(toy_example, fullgraph=True, backend=<compiler>)
Excessive Recompilation¶
When TorchDynamo compiles a function (or part of one), it makes certain
assumptions about locals and globals in order to allow compiler
optimizations, and expresses these assumptions as guards that check
particular values at runtime. If any of these guards fail, Dynamo will
recompile that function (or part) up to
torch._dynamo.config.cache_size_limit
times. If your program is
hitting the cache limit, you will first need to determine which guard is
failing and what part of your program is triggering it.
The compile profiler automates the process of setting TorchDynamo’s cache limit to 1 and running your program under an observation-only ‘compiler’ that records the causes of any guard failures. You should be sure to run your program for at least as long (as many iterations) as you were running when you ran into trouble, and the profiler will accumulate statistics over this duration.
If your program exhibits a bounded amount of dynamism, you may be able to tune the TorchDynamo cache limit to allow for each variation to be compiled and cached, but if the cache limit is too high you may find the cost of recompilation outweighs any optimization benefits.
torch._dynamo.config.cache_size_limit = <your desired cache limit>
Torchdynamo plans to support many common cases of dynamic tensor shapes, such as varying batch size or sequence length. It does not plan to support rank-dynamism. In the meantime, setting a specific cache limit can be used in coordination with bucketing techniques to achieve an acceptable number of recompilations for some dynamic models.
from torch._dynamo.utils import CompileProfiler
prof = CompileProfiler()
def my_model():
...
profiler_model = torch.compile(my_model, backend=prof)
profiler_model()
print(prof.report())
Accuracy Debugging¶
Accuracy issues can also be minified if you set the environment variable
TORCHDYNAMO_REPRO_LEVEL=4
, it operates with a similar git bisect
model and a full repro might be something like
TORCHDYNAMO_REPRO_AFTER="aot" TORCHDYNAMO_REPRO_LEVEL=4
the reason
we need this is downstream compilers will codegen code whether it’s
Triton code or the C++ backend, the numerics from those downstream
compilers can be different in subtle ways yet have dramatic impact on
your training stability. So the accuracy debugger is very useful for us
to detect bugs in our codegen or with a backend compiler.
If you’d like to ensure that random number generation is the same across both torch
and triton then you can enable torch._inductor.config.fallback_random = True
File an Issue¶
If you experience problems with TorchDynamo, file a GitHub issue.
Before filing an issue, read over the README, TROUBLESHOOTING, and search for similar issues.
When filing an issue, include the information about your OS, Python< PyTorch, CUDA, and Triton versions info by running:
python tools/verify_install.py
A minimal repro script if possible, which can be generated by running Minifier
A description of the error
The expected behavior
A log (set
torch._dynamo.config.log_file
to a valid file name to dump the logs to a file andtorch._dynamo.config.log_level = logging.DEBUG
andtorch._dynamo.config.verbose = True
)


1)
Jack threw the ball upwards in the sky.
Verb
threw
Adverb
upwards
Verbs
Adverbs
threw
upwards
2)
Amy went to her friend’s house yesterday.
Verb
went
Adverb
yesterday
went
yesterday
3)
Tony accidently slipped over a banana skin.
Verb
slipped
Adverb
accidently
slipped
accidently
4)
I ran quickly to the store.
Verb
ran
Adverb
quickly
ran
quickly
5)
My baby sister slept quietly in her cot.
Verb
slept
Adverb
quietly
slept
quietly
6)
The children walked obediently in a line.
Verb
walked
Adverb
obediently
walked
obediently
7)
The farmers joyfully welcomed the rain.
Verb
welcomed
Adverb
joyfully
welcomed
joyfully
8)
He proudly held his trophy.
Verb
held
Adverb
proudly
held
proudly
9)
Mom looked lovingly at me.
Verb
looked
Adverb
lovingly
looked
lovingly
10)
Fortunately, no one was injured in the accident.
Verb
injured
Adverb
Fortunately
injured
Fortunately