Anonymization Wizard
Restart
Source
Manage
Load From Local
Load From Zenodo
Anonymized
Manage
Hierarchy
Manage
Load from Local
Auto Generate
Algorithms
Solution Graph
Results
Hierarchy Autogenerate Wizard
Hierarchy Autogenerate
Choose Attribute and Hierarchy Type
Choose Attribute
On Attribute
Type
VarType
Hierarchy Info
Hierarchy Information
Name


This section provides information on managing and maintaining a staging or production deployment of JupyterHub. It has considerations for managing cloud-based deployments and tips for maintaining your deployment.
Administrator Guide
jupyterhub_config.py


More warmth on a cold night
Lightness but at the same time protection from the wind
No intermediaries hence lower price
Worldwide shipping
Handmade with love


The hubway is the bike share system in Boston, MA. It is comprised of a series of stations with bike docks around the city and surrounding towns that users can use for 30 minutes periods.
This API is an open source system to make hubway information accessible and easy to play with. The goal of this project is to make it easier for developers to play with and make things with the information hidden away behind the hubway bike system
All calls are made from the url http://thpcod.es/hubwaypi
To contribute to this API/see the code behind it, please checkout: https://github.com/thethp/hubwaypi
HubwAyPI was created under the MIT open Source license, so go nuts! It was created by Todd H. Page with no permission whatsoever, for better or for worse! It uses Node, Express, and MongoDB


PLANET SICK-BOY: http://www.sick-boy.com "We Put the SIN in Cinema"
Usually, Hollywood will only make sequels of films that make a ton of money. Urban Legends grossed an inauspicious $38 million when it was released on the far superior heels of Scream and I Know What You Did Last Summer. Almost exactly two years later, its sequel – Urban Legends: Final Cut (or UL2) – hits the screen with a lamer story and much fewer stars than its predecessor.
Before we get into the content of the movie, let's look at the title. Although it's an attempted clever play on words, Final Cut makes the sequel seem like it's simply an unedited version of the first film. And don't think for a second Final Cut implies that it will be the last film in the series. We've been fooled before. Remember Friday the 13th: The Final Chapter? It was followed up by Friday the 13th: A New Beginning. Later, we saw Jason Goes to Hell: The Final Friday, but there's still another sequel in the works.
Ditto for A Nightmare on Elm Street, which promised Freddy's Dead: The Final Nightmare, but then came back with New Nightmare. In the future, we can probably expect titles like I Finally Forgot What You Did That Summer followed by I Just Remembered What You Did, Like, Seven Summers Ago. Or The Slasher VI: We Swear to Christ It's the Last One and The Slasher VII: We're Broke, and We're Back!
UL2 is set at Alpine University's film school, which apparently specializes in churning out horror film directors (this is the only truly frightening idea in the entire picture). The professor advises his students that the screenplays for their final projects are due, which is odd, because some of them have already completed their films. Amy Mayfield (Jennifer Morrison, Stir of Echoes), the daughter of an Oscar winning documentary filmmaker, pitches the professor an idea of filming the story of a serial killer that slays his victims to popular urban legends. The same urban legend killings that occurred in first film
So UL2 is a sequel about a making a movie about what happened in the sequel's antecedent. Confused? You shouldn't be. You've already seen the exact same thing in Scream 2 and Scream 3. UL2 is full of scenes featuring film props and sets that create a blurry line between the movie and the movie within the movie.
The common belief among the surviving characters is that the killer is a crazy film student bumping off his competition for the school's prestigious Hitchcock Award (in addition to Hitch, UL2 has the audacity to sully the names of François Truffaut and Pam Grier). The knife-wielding maniac dresses in black and wears either a fencing mask, or a large kitchen strainer. It's hard to tell.
The only returning character from the first film (save a surprise cameo right before the closing credits) is the campus security guard played by Loretta Devine (Introducing Dorothy Dandridge). UL2 also features Joey Lawrence from Blossom, although he prefers to go by `Joseph' now. Yeah, I guess you need to be taken more seriously when you make films like this.
UL2 is the directorial debut of John Ottman, who edited and created the score for Bryan Singer's (X-Men) first three films (he also scored and edited this film). The script was written by Hellraiser 5 scribes, Paul Harris Boardman and Scott Derrickson. Ironically, Ottman, Boardman and Derrickson were classmates at the USC School of Cinema-Television. I wonder where they got the idea for this film?
There was a strange bar scene in UL2 where a female student, played by Real World London star Jacinda Barrett, tells a fellow college senior, `Next year, you'll be in the real world.' I have no idea if this was intentional, or just a bizarre coincidence. It doesn't really matter, since UL2 is largely a waste of time and money. You'd be better off reading about urban legends on Snopes.
1:40 - R for violence/gore, adult language and brief nudity and sexual content
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


WITNESS LIST
Open Government, Select
April 7, 2011 8:30 AM
Registering, but not testifying:
For:
Elkins, Keith Executive Director (Freedom of Information Foundation of Texas), Austin,
TX
Patterson, T.J. (City of Fort Worth), Fort Worth, TX
Schneider, Michael Director of Programs (Texas Association of Broadcasters), Austin, TX
Watler, Paul Attorney (Texas Association of Broadcasters, Texas Daily Newspaper
Association, Freedom of Information Foundation, Belo Corporation), Dallas, TX
Whalen, Ken Executive Vice President (Texas Daily Newspaper Association, Texas Press
Association), Austin, TX
On:
Crawford, Amanda Chief-Open Records Division (Office of the Attorney General),
Austin, TX
FOR:
Bresnen, Steve (El Paso County), Austin, TX
ON:
VanHettinga, Brynne (ACLU of Texas), Leander, TX
Registering, but not testifying:
For:
Patterson, T.J. (City of Fort Worth), Fort Worth, TX
Vasquez, Michael Program Manager (Texas Conference of Urban Counties), Austin, TX
Against:
Doyle, Russell Co-Director (Texans Against Tolls), Austin, TX
Providing written testimony:
Against:
Hall, Terri Founder, Texas Turf (Texas Turf, Texans for Accountable Government, Central
Texas Republican Liberty Caucus), San Antonio, TX
ON:
Crawford, Amanda Chief-Open Records Division (Office of Attorney General), Austin,
TX
Registering, but not testifying:
For:
Elkins, Keith Executive Director (Freedom of Information Foundation of Texas), Austin,
TX
Patterson, T.J. (City of Fort Worth), Fort Worth, TX
FOR:
Shaffer, Scott Property Owner (Rural Texas Counties), La Grange, TX
1
WITNESS LIST
Open Government, Select
April 7, 2011 8:30 AM
ON:
Levy, Lori Associate Counsel (Texas Association of Realtors), Austin, TX
Registering, but not testifying:
On:
Levy, Lori Associate Counsel (Texas Association of REALTORS), Austin, TX
FOR:
Gullahorn, Jack (Professional Advocacy Association of Texas), Austin, TX
ON:
Pate, Gardner Attorney (Self), Austin, TX
Spiller, Lee Director of Investigations (Citizens Commission on Human Rights), Austin,
TX
Registering, but not testifying:
For:
Allison, Jim General Counsel (County Judges and Commissioners Association of Texas),
Austin, TX
Lain, Jackie Associate Executive Director (Texas Association of School Boards), Austin,
TX
Simpson, Terry County Judge (San Patricio County and County Judges and
Commissioners Association), Sinton, TX
Vasquez, Michael Program Manager (Texas Conference of Urban Counties), Austin, TX
FOR:
Turner, Frank Deputy City Manager (City of Plano), Plano, TX
Registering, but not testifying:
For:
Calcote, M.L. (Real Estate Council of Austin, Real Estate Council of San Antonio, Real
Estate Council of Texas), Austin, TX
Norman, Scott Executive Director (Texas Association of Builders), Austin, TX
Ortiz, Daniel Attorney (Various property owners), San Antonio, TX
FOR:
Allen, Darlene City Auditor (Self; City of Fort Worth), Fort Worth, TX
Bresnen, Steve (El Paso County), Austin, TX
Gorski, Ted Assistant City Attorney (City of Fort Worth), Fort Worth, TX
Holderman, Terry Assistant City Auditor (Self; City of Fort Worth), Fort Worth, TX
Registering, but not testifying:
For:
Patterson, T.J. (City of Fort Worth), Fort Worth, TX
VanHettinga, Brynne (American Civil Liberties Union of Texas), Leander, TX
2
WITNESS LIST
Open Government, Select
April 7, 2011 8:30 AM
FOR:
Moseley, Jeff President and CEO (Greater Houston Partnership), Houston, TX
AGAINST:
Collister, Brian Investigative Reporter (Texas Association of Broadcasters, Freedom of
Information Foundation of Texas), San Antonio, TX
Registering, but not testifying:
For:
Schwab, Carlton President and CEO (Texas Economic Development Council), Austin, TX
Shields, Chris Consultant (Greater San Antonio Chamber of Commerce), Austin, TX
Valdez, Jerry Lobbyist (Greater Houston Partnership), Austin, TX
Against:
Doyle, Russell Co-Director (Texans Against Tolls), Austin, TX
Elkins, Keith Executive Director (Freedom of Information Foundation of Austin), Austin,
TX
Hall, Terri Founder, Texas Turf (Texas Turf, Texans for Accountable Government, Central
Texas Republican Liberty Caucus), San Antonio, TX
3


LA County Assessor: HR Position Control
Fit Horizontally
Fit Vertically
Reset Chart View
Drag/Drop Layout
Print Layout
Save
Save As
Select a Different Version
Organization Head:
- Please select a head -
Pay Location:
- Please select a pay location -
Selected Head:
Update Org Head
Search Employee in Chart:
Search
Cancel
Selected Position:
Delete Position
Position ID:
Add Position
Temporary Position ID:
Temporary Position Title:
Create Position
Employee ID:
Add Employee
Temporary Employee ID:
Temporary Employee Title:
Create Employee
Clear Employee Info


--- layout: default ---
When it comes to social media posts, consistent and high quality is a recipe for success, just like your food.
Creative copywriting and captioning. A well-crafted message can be the difference between dessert or the bill.
Reactive engagement. Timing is everything, especially when it comes to upselling that second cocktail.
We strive to create a community and start conversations that go beyond the dinner table.
Because in the digital age, ratings and reviews are just as powerful as word of mouth.
We create, optimize and manage your accounts on: Google+, Yelp, TripAdvisor, and Zomato…
Offering stellar customer service in the form of timely replies to all reviews as well as retention strategies to convert even the harshest critics into repeat customers.
Positive reviews can have a direct impact on your bottom line.
Content Creation is similar to running a kitchen, efficiency and coordination is key.
Generating original content your ideal customers crave without disrupting business and maximizing their use is what we strive for.
A high quality menu needs a high quality website.
We will help you design and develop a site that can handle anything from reservations to ecommerce.
We make websites that drive customers to your restaurant.
Discover new restaurants viaGoogle plus other online and digital search methods
1 single star higher reviewcould increase revenues from 5 - 9% for restaurants. (Yelp)
We have delivered this impressive statistic and want you to know about it!


Submit Your Cause
Apply to get more details about how Lemonade
can empower your cause and help you fundraise.
Send


Stan and Sam are kittens. Can kittens sit" Sam can sit. Can Stan Sit" Stan can sit. Can kittens lap" Stan and Sam can lap. Can kittens nap" Stan and Sam can nap. Can kittens have a spat" Stan and Sam have a spat. Can kittens hiss" Stan can hiss.
in-context


Trance of Empathy
Force enemies to share the damage they inflict upon you by forming a telepathic link to their minds that conveys only pain and siphons life in retribution.
${value} Active Energy Cost per Second
1
${value}m Radius
12
${value}% Damage Reflected
15 18 21 24 28 32 36 40 44 49 54 60 65 71 77 85
${value}% of Attack damage converted to Health
min: 3.0 max: 10.0
MaxLevel
12
UltimateLevel
16


--- title: Overview linkTitle: Overview main_menu: true weight: 1 menu: main: name: "Documentation" weight: 20 cascade: type: docs ---
Welcome to the LocalStack Documentation!
Explore and learn about LocalStack.
Here are some commonly asked questions and related articles.


This Agreement was last modified on February 13, 2014.
Please read these Terms of Service ("Agreement", "Terms of Service") carefully before using http://www.textalysis.tech/ ("the Site") operated by Textalysis ("us", "we", or "our"). This Agreement sets forth the legally binding terms and conditions for your use of the Site at http://www.textalysis.tech/.
By accessing or using the Site in any manner, including, but not limited to, visiting or browsing the Site or contributing content or other materials to the Site, you agree to be bound by these Terms of Service. Capitalized terms are defined in this Agreement.
Intellectual Property
The Site and its original content, features and functionality are owned by Textalysis and are protected by international copyright, trademark, patent, trade secret and other intellectual property or proprietary rights laws.
Termination
We may terminate your access to the Site, without cause or notice, which may result in the forfeiture and destruction of all information associated with you. All provisions of this Agreement that by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity, and limitations of liability.
Limitation of Liability
We and any Affiliated Party shall not be liable for any loss, injury, claim, liability, or damage of any kind resulting in any way from any errors in or omissions from the Site or any services or products obtainable therefrom, the unavailability or interruption of the Site or any features thereof, your use of the Site, the content contained on the Site, or any delay or failure in performance of the software.
Links To Other Sites
Our Site may contain links to third-party sites that are not owned or controlled by Textalysis.
Textalysis has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third party sites or services. We strongly advise you to read the terms and conditions and privacy policy of any third-party site that you visit.
Governing Law
This Agreement (and any further rules, polices, or guidelines incorporated by reference) shall be governed and construed in accordance with the laws of Delhi, India, without giving effect to any principles of conflicts of law.
Changes To This Agreement
We reserve the right, at our sole discretion, to modify or replace these Terms of Service by posting the updated terms on the Site. Your continued use of the Site after any such changes constitutes your acceptance of the new Terms of Service.
Please review this Agreement periodically for changes. If you do not agree to any of this Agreement or any changes to this Agreement, do not use, access or continue to access the Site or discontinue any use of the Site immediately.
Contact Us
If you have any questions about this Agreement, please contact us.


We known for producing some of the thicket puppies and adults in the , without sacrificing conformation or health, “structure over color” Our American Bullies are known for having massive heads, dense bone, wide shoulders, short muzzles, with muscle on short & compact frames.
We can ship puppies worldwide, when request shipping our customer pick up their new family member in the near airpot. If you're local we will hand deliver your new puppy.
We provide a contract and registration papers as well as health certificate from a veterinarian.
If you are looking to improve your program we have our studs available , we ship semen worldwide and we also provide a contract when stud service requested.


The purpose of life is not to be happy. It is to be useful, to be honorable, to be compassionate, to have it make some difference that you have lived and lived well.We are here to help you .
Help-Others
The best way to not feel hopeless is to get up and do something. Don’t wait for good things to happen to you.
Support-Us
There are only four kinds of people in the world.
Those who have been caregivers.
Those who are currently caregivers.
Those who will be caregivers, and those who will need a caregiver.


WiFi: MWC2013_FREE_WIFI / mwc2013wifi
Moderator: http://bit.ly/ZDkQHM
HTML5 ecosystem for mobile and platform convergence
Google Moderator page can be found here.


Enter one word per line. Word that wrapped with slash will be parsed as RegExp. (ex. /spam/)
* Requires reload to apply.
Show retweet of following user
If turned on, ln.is(or linkis.com) URL will be converted to original URL.
* Requires reload to apply.
If turned on, External Link will be opened in TweetDeck Player's browser window.
The default web browser will be used otherwise.
Hold down the Shift key to open the retweet/quote dialog.
Press Shift+Enter to insert a line break.


Nicky Henderson: Altior in great shape ahead of Ascot
by Graham ClarkNicky Henderson is juggling a range of emotions as Altior prepares to take on Cyrname in a mouthwatering showdown at Ascot on Saturday.
Unbeaten in 19 races over obstacles, Altior has carried all before him in the two-mile division - but is setting out on a different path this term, with a tilt at the Ladbrokes King George VI Chase over three miles the big aim in the first part of the season.
Henderson first wants to try him over the intermediate trip of two miles and five furlongs in the Christy 1965 Chase.
Not only must Altior answer stamina questions, in opposition is set to be the only jumper in training with a higher official rating - the Paul Nicholls-trained Cyrname.
Henderson said: "He has been in great form and his work has been excellent. It is going to be a fascinating clash and it will sort one thing out - who is the top-rated horse.
"It is a big ask - because of the step up in trip you are asking a big question.
"His jumping is so quick and slick, so hopefully his jumping will help him relax, which I hope he does. If he goes into attack mode it will get very aggressive early on.
"It's going to be interesting, as we could all do with a dry week - Altior could. Let's hope the race lives up to its billing. It's a big test for both of them."
Henderson could feasibly have been quite content to have kept his winning run going over two miles, but outside pressures appear to have played a part in him doing something different.
He said: "Why step up in trip? It's media pressure, thanks guys. Everybody says it is boring watching him go round over two miles, so let's show us what he can do.
"If you saw him last Friday, you would have thought this can't be the right thing.
"The timing of this race is right. It's lovely you have two horses like this and people are building it up to be something quite exciting, that might be worth going to watch. It's the sort of clash you do want.
"I think it is exciting. It is good stuff and you would rather be involved than not. We will be the ones slightly a bit more jumpy than everyone else. We are putting on the show.
"If he is a true champion he has got to be able to do it over a variety of distances and this is where we are testing it. There are a lot of questions to be answered and a lot to prove.
"Paul and I have got more to lose and the two boys riding (Nico de Boinville and Harry Cobden) have got a big job."


Denver's Von Miller puts Josh Allen in an elite — but unexpected — category
Denver Broncos All-Pro pass rusher Von Miller did a good job talking up Buffalo Bills quarterback Josh Allen in advance of Sunday’s game at New Era Field.
Miller put Allen in elite company — for an unexpected trait — on a conference call with Buffalo-area media Thursday.
“He can escape the pocket, and it’s a challenge to get him down in the open field,” Miller said. “He’s 6-7. He’s got a mean stiff arm like Bo Jackson.”
That line apparently caused someone on Miller’s end of the line to chuckle, which caused Miller to laugh.
“He does, though — he’s got a stiff arm like Bo Jackson,” Miller insisted. “Whenever you get in the open field, you’ve gotta bring the heavy luggage and bring him down.”
The Bills will try their best to keep Miller from bringing his luggage too close to Allen on Sunday.
Miller, a seven-time Pro Bowler, has 103 sacks in nine NFL seasons. He has five sacks this year. He has had seven straight seasons of 10 or more sacks. Miller ranks third in NFL history in sacks per game among players with at least 100 games.
Miller will be a huge challenge for Bills rookie right tackle Cody Ford. Miller has played about 75% of his snaps this year across from right tackle and 25% across from left tackle.
“It’s the league,” Miller said of going against a rookie. “Everybody can play. Everybody’s been the man at some point or another. It doesn’t matter if you’re second string or third string, if you make it here in the NFL you can play. I’m expecting him to play. I’m expecting great play out of all those guys. And dealing with a quarterback like Josh Allen, you don’t really need much help from the offensive line.
“He’s a great quarterback, big, tall, strong, fast, runs the ball,” Miller said. “He’s the future of great quarterbacks for this league.”
| NFL MOST SACKS PER GAME | ||||
| Rk | Player | Games | Sacks | Sk/Gm |
| 1 | J.J. Watt | 118 | 101 | 0.86 |
| 2 | Reggie White | 251 | 210 | 0.84 |
| 3 | Von Miller | 137 | 109.5 | 0.80 |
| 4 | DeMarcus Ware | 186 | 146 | 0.78 |
| 5 | Derrick Thomas | 179 | 133 | 0.74 |
| Min. 100 games. Includes post-season. |
Miller’s last visit to Buffalo, in 2017, was memorable in part because he got an unsportsmanlike conduct penalty in the fourth quarter for offering his hand to pick Tyrod Taylor off the ground, then pulling it back. It was a joke. But the officials did not have a sense of humor about it.
“We were talking about that earlier in the week, the last time I was in Buffalo,” Miller said. “It wasn’t too funny during the game. But looking back on it, it was pretty funny.”
The Bills almost had a chance to draft Miller in 2011. He went to Denver with the second overall pick. The Bills took Marcell Dareus with the third pick.
Did Miller ever think he might get picked by the Bills at No. 3 that year?
 “I didn’t want to go to Buffalo. I wanted to be a Denver Bronco from Day One, and that’s where I’m at. There was a little chance. They took Marcell. I thought for a little bit I was going to Buffalo. Now I know a little bit about the fans, how Bills Mafia is, about all the legends. ... But I’m happy to be a Denver Bronco.”


Primary Keys - Surrogate v. Natural
This Saturday I’ll be speaking about databases at Chippewa Valley Code Camp. So I’ve been thinking a lot about various database topics including how to choose a primary key for your database table. I am a big proponent of using surrogate keys, however, on a few occasions I have been convinced otherwise.
To me, a surrogate key means the primary key of a database that is not related at all to the actual data being saved. This usually ends up being an auto-incremented integer column. I have been using surrogate keys for so long I forget that many developers use natural keys by making a key out of data from the table.
To make a good primary key you need a unique value that cannot be null. It also needs be unchanging for the row it refers to and a data type that is easily indexed. While there are certainly other options I always choose an integer.
So, why do we care whether or not this number has meaning? Once you assign it meaning it becomes subject to your business rules or even worse the business rules of another group. There was a time when social security numbers were a common choice of primary key within the United States. The logic was that since the SSN was controlled by the US government everybody would have a unique one that never changed so it would meet all the rules of a good primary key. Not so fast. This design doesn’t take into account non-citizens or victims of identity theft that get assigned new SSNs. Now for compliance reasons most companies should be encrypting the SSN column so it no longer is useful as a primary key. I have made similar arguments against pretty much any data column that could be used as a key.
I often caution developers about assigning meaning to a surrogate primary key. I have heard arguments that if the meaning is only behind the scenes it doesn’t break these rules. However, this can still lead to problems. One example I remember seeing is a users table where an ID less than 100 was an administrator, 100 to 999 was an non administrator employee and 1000 and above was a customer. Let’s think about what that means. First, you are limiting yourself to a particular number of employees. Next, your user creation script will be unnecessarily complicated. Also, what happens when a standard employee gets a promotion and now gets administrator rights? You have to re-key that user which is not an easy task. This can get dangerous too because it allows for accidentally assigning admin rights to a user.
I myself have accidentally turned a surrogate key into a natural key. About fifteen years ago I created a table for user’s of a system. A few years later the business wanted a bar code on reports that a user submitted, so an easy choice was to add the user ID there in bar code form. At this point business users started referring to this ID and at that point I lost control over it. Now, much to my surprise this same application is still running and the business has requested changes to the ID. They want the ID to start at certain values at various times so we can quickly tell when the user created their account. There has also been talk of other numbering schemes that are not necessarily sequential so that this ID can mean even more. In this case the fix isn’t too bad. I have just created a column in our users table to hold this new meaningful number and have left the primary key alone.
So, is there ever a time when a natural key is a good choice? Sometimes I use them in lookup tables. A common example for me is a U.S. state table. We want more information saved about what happens to mail in a certain state. However, for practical reasons we want to save the two digit state code in our mailing addresses table.
So, by now even if I haven’t convinced you to always use surrogate keys hopefully you’ll at least be able to make your decision with a little more knowledge and understanding.


Context manager for testing forward compatibility of generated graphs.
tf.compat.v1.compat.forward_compatibility_horizon
tf.compat.v2.compat.forward_compatibility_horizon
tf.compat.forward_compatibility_horizon( year, month, day )
To ensure forward compatibility of generated graphs (see forward_compatible
)
with older binaries, new features can be gated with:
if compat.forward_compatible(year=2018, month=08, date=01): generate_graph_with_new_features() else: generate_graph_so_older_binaries_can_consume_it()
However, when adding new features, one may want to unittest it before the forward compatibility window expires. This context manager enables such tests. For example:
from tensorflow.python.compat import compat def testMyNewFeature(self): with compat.forward_compatibility_horizon(2018, 08, 02): # Test that generate_graph_with_new_features() has an effect
year
: A year (e.g., 2018). Must be an int
.month
: A month (1 <= month <= 12) in year. Must be an int
.day
: A day (1 <= day <= 31, or 30, or 29, or 28) in month. Must be an
int
.Nothing.


Beep Boop
a number generator inspired by
2001: A Space Odyssey
What is your preferred name?
Please enter a number:
Count up!
Count down!
Beep boop, let's count
!
Just what do you think you're doing, Dave? There are no numbers to count.


---
layout: product
title: PMDG737 2005年国航湿租山航复合涂装
description: 注册号 B-5066
date: 2018-07-08
categories: repaints
tags: [涂装]
header-img: "./img/repaints/PMDG73GSCCA.jpg"
size: 17.6 MB
price: 6
link: "https://bbs.sinofsx.com/forum.php?mod=viewthread&tid=180022"
platform: FSX/P3D
addon: PMDG 737-700NGX
---


Today we are going to build a pair of sunglasses that are attached to LED's. This is a very small part of a e-texile world. The process of combining electronics and fashion has grown to be a large industry. The area of wearables has exploded over the past several years as you most likely own several wearables. They process of adding electronics to fashion and everyday items stretchs from clothing to accessories.
Your task to complete a pair of sunglasses by adding LED's to the glasses.


(function() {
var rebound = {};
var util = rebound.util = {};
var concat = Array.prototype.concat;
var slice = Array.prototype.slice;
Rebound is a simple library that models Spring dynamics for the purpose of driving physical animations.
Rebound was originally written in Java to provide a lightweight physics system for Home and Chat Heads on Android. It’s now been adopted by several other Android applications. This JavaScript port was written to provide a quick way to demonstrate Rebound animations on the web for a conference talk. Since then the JavaScript version has been used to build some really nice interfaces. Check out brandonwalkin.com for an example.
The Library provides a SpringSystem for maintaining a set of Spring objects and iterating those Springs through a physics solver loop until equilibrium is achieved. The Spring class is the basic animation driver provided by Rebound. By attaching a listener to a Spring, you can observe its motion. The observer function is notified of position changes on the spring as it solves for equilibrium. These position updates can be mapped to an animation range to drive animated property updates on your user interface elements (translation, rotation, scale, etc).
Here’s a simple example. Pressing and releasing on the logo below will cause it to scale up and down with a springy animation.
Here’s how it works.
// Get a reference to the logo element.
var el = document.getElementById('logo');
// create a SpringSystem and a Spring with a bouncy config.
var springSystem = new rebound.SpringSystem();
var spring = springSystem.createSpring(50, 3);
// Add a listener to the spring. Every time the physics
// solver updates the Spring's value onSpringUpdate will
// be called.
spring.addListener({
onSpringUpdate: function(spring) {
var val = spring.getCurrentValue();
val = rebound.MathUtil
.mapValueInRange(val, 0, 1, 1, 0.5);
scale(el, val);
}
});
// Listen for mouse down/up/out and toggle the
//springs endValue from 0 to 1.
el.addEventListener('mousedown', function() {
spring.setEndValue(1);
});
el.addEventListener('mouseout', function() {
spring.setEndValue(0);
});
el.addEventListener('mouseup', function() {
spring.setEndValue(0);
});
// Helper for scaling an element with css transforms.
function scale(el, val) {
el.style.mozTransform =
el.style.msTransform =
el.style.webkitTransform =
el.style.transform = 'scale3d(' +
val + ', ' + val + ', 1)';
}
(function() {
var rebound = {};
var util = rebound.util = {};
var concat = Array.prototype.concat;
var slice = Array.prototype.slice;
Bind a function to a context object.
util.bind = function bind(func, context) {
var args = slice.call(arguments, 2);
return function() {
func.apply(context, concat.call(args, slice.call(arguments)));
};
};
Add all the properties in the source to the target.
util.extend = function extend(target, source) {
for (var key in source) {
if (source.hasOwnProperty(key)) {
target[key] = source[key];
}
}
};
SpringSystem is a set of Springs that all run on the same physics timing loop. To get started with a Rebound animation you first create a new SpringSystem and then add springs to it.
var SpringSystem = rebound.SpringSystem = function SpringSystem(looper) {
this._springRegistry = {};
this._activeSprings = [];
this.listeners = [];
this._idleSpringIndices = [];
this.looper = looper || new AnimationLooper();
this.looper.springSystem = this;
};
util.extend(SpringSystem.prototype, {
_springRegistry: null,
_isIdle: true,
_lastTimeMillis: -1,
_activeSprings: null,
listeners: null,
_idleSpringIndices: null,
A SpringSystem is iterated by a looper. The looper is responsible for executing each frame as the SpringSystem is resolved to idle. There are three types of Loopers described below AnimationLooper, SimulationLooper, and SteppingSimulationLooper. AnimationLooper is the default as it is the most useful for common UI animations.
setLooper: function(looper) {
this.looper = looper;
looper.springSystem = this;
},
Add a new spring to this SpringSystem. This Spring will now be solved for during the physics iteration loop. By default the spring will use the default Origami spring config with 40 tension and 7 friction, but you can also provide your own values here.
createSpring: function(tension, friction) {
var springConfig;
if (tension === undefined || friction === undefined) {
springConfig = SpringConfig.DEFAULT_ORIGAMI_SPRING_CONFIG;
} else {
springConfig =
SpringConfig.fromOrigamiTensionAndFriction(tension, friction);
}
return this.createSpringWithConfig(springConfig);
},
Add a spring with a specified bounciness and speed. To replicate Origami compositions based on PopAnimation patches, use this factory method to create matching springs.
createSpringWithBouncinessAndSpeed: function(bounciness, speed) {
var springConfig;
if (bounciness === undefined || speed === undefined) {
springConfig = SpringConfig.DEFAULT_ORIGAMI_SPRING_CONFIG;
} else {
springConfig =
SpringConfig.fromBouncinessAndSpeed(bounciness, speed);
}
return this.createSpringWithConfig(springConfig);
},
Add a spring with the provided SpringConfig.
createSpringWithConfig: function(springConfig) {
var spring = new Spring(this);
this.registerSpring(spring);
spring.setSpringConfig(springConfig);
return spring;
},
You can check if a SpringSystem is idle or active by calling getIsIdle. If all of the Springs in the SpringSystem are at rest, i.e. the physics forces have reached equilibrium, then this method will return true.
getIsIdle: function() {
return this._isIdle;
},
Retrieve a specific Spring from the SpringSystem by id. This can be useful for inspecting the state of a spring before or after an integration loop in the SpringSystem executes.
getSpringById: function (id) {
return this._springRegistry[id];
},
Get a listing of all the springs registered with this SpringSystem.
getAllSprings: function() {
var vals = [];
for (var id in this._springRegistry) {
if (this._springRegistry.hasOwnProperty(id)) {
vals.push(this._springRegistry[id]);
}
}
return vals;
},
registerSpring is called automatically as soon as you create a Spring with SpringSystem#createSpring. This method sets the spring up in the registry so that it can be solved in the solver loop.
registerSpring: function(spring) {
this._springRegistry[spring.getId()] = spring;
},
Deregister a spring with this SpringSystem. The SpringSystem will no longer consider this Spring during its integration loop once this is called. This is normally done automatically for you when you call Spring#destroy.
deregisterSpring: function(spring) {
removeFirst(this._activeSprings, spring);
delete this._springRegistry[spring.getId()];
},
advance: function(time, deltaTime) {
while(this._idleSpringIndices.length > 0) this._idleSpringIndices.pop();
for (var i = 0, len = this._activeSprings.length; i < len; i++) {
var spring = this._activeSprings[i];
if (spring.systemShouldAdvance()) {
spring.advance(time / 1000.0, deltaTime / 1000.0);
} else {
this._idleSpringIndices.push(this._activeSprings.indexOf(spring));
}
}
while(this._idleSpringIndices.length > 0) {
var idx = this._idleSpringIndices.pop();
idx >= 0 && this._activeSprings.splice(idx, 1);
}
},
This is our main solver loop called to move the simulation forward through time. Before each pass in the solver loop onBeforeIntegrate is called on an any listeners that have registered themeselves with the SpringSystem. This gives you an opportunity to apply any constraints or adjustments to the springs that should be enforced before each iteration loop. Next the advance method is called to move each Spring in the systemShouldAdvance forward to the current time. After the integration step runs in advance, onAfterIntegrate is called on any listeners that have registered themselves with the SpringSystem. This gives you an opportunity to run any post integration constraints or adjustments on the Springs in the SpringSystem.
loop: function(currentTimeMillis) {
var listener;
if (this._lastTimeMillis === -1) {
this._lastTimeMillis = currentTimeMillis -1;
}
var ellapsedMillis = currentTimeMillis - this._lastTimeMillis;
this._lastTimeMillis = currentTimeMillis;
var i = 0, len = this.listeners.length;
for (i = 0; i < len; i++) {
listener = this.listeners[i];
listener.onBeforeIntegrate && listener.onBeforeIntegrate(this);
}
this.advance(currentTimeMillis, ellapsedMillis);
if (this._activeSprings.length === 0) {
this._isIdle = true;
this._lastTimeMillis = -1;
}
for (i = 0; i < len; i++) {
listener = this.listeners[i];
listener.onAfterIntegrate && listener.onAfterIntegrate(this);
}
if (!this._isIdle) {
this.looper.run();
}
},
activateSpring is used to notify the SpringSystem that a Spring has become displaced. The system responds by starting its solver loop up if it is currently idle.
activateSpring: function(springId) {
var spring = this._springRegistry[springId];
if (this._activeSprings.indexOf(spring) == -1) {
this._activeSprings.push(spring);
}
if (this.getIsIdle()) {
this._isIdle = false;
this.looper.run();
}
},
Add a listener to the SpringSystem so that you can receive before/after integration notifications allowing Springs to be constrained or adjusted.
addListener: function(listener) {
this.listeners.push(listener);
},
Remove a previously added listener on the SpringSystem.
removeListener: function(listener) {
removeFirst(this.listeners, listener);
},
Remove all previously added listeners on the SpringSystem.
removeAllListeners: function() {
this.listeners = [];
}
});
Spring provides a model of a classical spring acting to
resolve a body to equilibrium. Springs have configurable
tension which is a force multipler on the displacement of the
spring from its rest point or endValue
as defined by Hooke’s
law. Springs also have
configurable friction, which ensures that they do not oscillate
infinitely. When a Spring is displaced by updating it’s resting
or currentValue
, the SpringSystems that contain that Spring
will automatically start looping to solve for equilibrium. As each
timestep passes, SpringListener
objects attached to the Spring
will be notified of the updates providing a way to drive an
animation off of the spring’s resolution curve.
var Spring = rebound.Spring = function Spring(springSystem) {
this._id = 's' + Spring._ID++;
this._springSystem = springSystem;
this.listeners = [];
this._currentState = new PhysicsState();
this._previousState = new PhysicsState();
this._tempState = new PhysicsState();
};
util.extend(Spring, {
_ID: 0,
MAX_DELTA_TIME_SEC: 0.064,
SOLVER_TIMESTEP_SEC: 0.001
});
util.extend(Spring.prototype, {
_id: 0,
_springConfig: null,
_overshootClampingEnabled: false,
_currentState: null,
_previousState: null,
_tempState: null,
_startValue: 0,
_endValue: 0,
_wasAtRest: true,
_restSpeedThreshold: 0.001,
_displacementFromRestThreshold: 0.001,
listeners: null,
_timeAccumulator: 0,
_springSystem: null,
Remove a Spring from simulation and clear its listeners.
destroy: function() {
this.listeners = [];
this.frames = [];
this._springSystem.deregisterSpring(this);
},
Get the id of the spring, which can be used to retrieve it from the SpringSystems it participates in later.
getId: function() {
return this._id;
},
Set the configuration values for this Spring. A SpringConfig contains the tension and friction values used to solve for the equilibrium of the Spring in the physics loop.
setSpringConfig: function(springConfig) {
this._springConfig = springConfig;
return this;
},
Retrieve the SpringConfig used by this Spring.
getSpringConfig: function() {
return this._springConfig;
},
Set the current position of this Spring. Listeners will be updated
with this value immediately. If the rest or endValue
is not
updated to match this value, then the spring will be dispalced and
the SpringSystem will start to loop to restore the spring to the
endValue
.
A common pattern is to move a Spring around without animation by calling.
spring.setCurrentValue(n).setAtRest();
This moves the Spring to a new position n
, sets the endValue
to n
, and removes any velocity from the Spring
. By doing
this you can allow the SpringListener
to manage the position
of UI elements attached to the spring even when moving without
animation. For example, when dragging an element you can
update the position of an attached view through a spring
by calling spring.setCurrentValue(x)
. When
the gesture ends you can update the Springs
velocity and endValue
spring.setVelocity(gestureEndVelocity).setEndValue(flingTarget)
to cause it to naturally animate the UI element to the resting
position taking into account existing velocity. The codepaths for
synchronous movement and spring driven animation can
be unified using this technique.
setCurrentValue: function(currentValue, skipSetAtRest) {
this._startValue = currentValue;
this._currentState.position = currentValue;
if (!skipSetAtRest) {
this.setAtRest();
}
this.notifyPositionUpdated(false, false);
return this;
},
Get the position that the most recent animation started at. This can be useful for determining the number off oscillations that have occurred.
getStartValue: function() {
return this._startValue;
},
Retrieve the current value of the Spring.
getCurrentValue: function() {
return this._currentState.position;
},
Get the absolute distance of the Spring from it’s resting endValue position.
getCurrentDisplacementDistance: function() {
return this.getDisplacementDistanceForState(this._currentState);
},
getDisplacementDistanceForState: function(state) {
return Math.abs(this._endValue - state.position);
},
Set the endValue or resting position of the spring. If this value is different than the current value, the SpringSystem will be notified and will begin running its solver loop to resolve the Spring to equilibrium. Any listeners that are registered for onSpringEndStateChange will also be notified of this update immediately.
setEndValue: function(endValue) {
if (this._endValue == endValue && this.isAtRest()) {
return this;
}
this._startValue = this.getCurrentValue();
this._endValue = endValue;
this._springSystem.activateSpring(this.getId());
for (var i = 0, len = this.listeners.length; i < len; i++) {
var listener = this.listeners[i];
var onChange = listener.onSpringEndStateChange;
onChange && onChange(this);
}
return this;
},
Retrieve the endValue or resting position of this spring.
getEndValue: function() {
return this._endValue;
},
Set the current velocity of the Spring. As previously mentioned, this can be useful when you are performing a direct manipulation gesture. When a UI element is released you may call setVelocity on its animation Spring so that the Spring continues with the same velocity as the gesture ended with. The friction, tension, and displacement of the Spring will then govern its motion to return to rest on a natural feeling curve.
setVelocity: function(velocity) {
if (velocity === this._currentState.velocity) {
return this;
}
this._currentState.velocity = velocity;
this._springSystem.activateSpring(this.getId());
return this;
},
Get the current velocity of the Spring.
getVelocity: function() {
return this._currentState.velocity;
},
Set a threshold value for the movement speed of the Spring below which it will be considered to be not moving or resting.
setRestSpeedThreshold: function(restSpeedThreshold) {
this._restSpeedThreshold = restSpeedThreshold;
return this;
},
Retrieve the rest speed threshold for this Spring.
getRestSpeedThreshold: function() {
return this._restSpeedThreshold;
},
Set a threshold value for displacement below which the Spring
will be considered to be not displaced i.e. at its resting
endValue
.
setRestDisplacementThreshold: function(displacementFromRestThreshold) {
this._displacementFromRestThreshold = displacementFromRestThreshold;
},
Retrieve the rest displacement threshold for this spring.
getRestDisplacementThreshold: function() {
return this._displacementFromRestThreshold;
},
Enable overshoot clamping. This means that the Spring will stop immediately when it reaches its resting position regardless of any existing momentum it may have. This can be useful for certain types of animations that should not oscillate such as a scale down to 0 or alpha fade.
setOvershootClampingEnabled: function(enabled) {
this._overshootClampingEnabled = enabled;
return this;
},
Check if overshoot clamping is enabled for this spring.
isOvershootClampingEnabled: function() {
return this._overshootClampingEnabled;
},
Check if the Spring has gone past its end point by comparing the direction it was moving in when it started to the current position and end value.
isOvershooting: function() {
var start = this._startValue;
var end = this._endValue;
return this._springConfig.tension > 0 &&
((start < end && this.getCurrentValue() > end) ||
(start > end && this.getCurrentValue() < end));
},
Spring.advance is the main solver method for the Spring. It takes the current time and delta since the last time step and performs an RK4 integration to get the new position and velocity state for the Spring based on the tension, friction, velocity, and displacement of the Spring.
advance: function(time, realDeltaTime) {
var isAtRest = this.isAtRest();
if (isAtRest && this._wasAtRest) {
return;
}
var adjustedDeltaTime = realDeltaTime;
if (realDeltaTime > Spring.MAX_DELTA_TIME_SEC) {
adjustedDeltaTime = Spring.MAX_DELTA_TIME_SEC;
}
this._timeAccumulator += adjustedDeltaTime;
var tension = this._springConfig.tension,
friction = this._springConfig.friction,
position = this._currentState.position,
velocity = this._currentState.velocity,
tempPosition = this._tempState.position,
tempVelocity = this._tempState.velocity,
aVelocity, aAcceleration,
bVelocity, bAcceleration,
cVelocity, cAcceleration,
dVelocity, dAcceleration,
dxdt, dvdt;
while(this._timeAccumulator >= Spring.SOLVER_TIMESTEP_SEC) {
this._timeAccumulator -= Spring.SOLVER_TIMESTEP_SEC;
if (this._timeAccumulator < Spring.SOLVER_TIMESTEP_SEC) {
this._previousState.position = position;
this._previousState.velocity = velocity;
}
aVelocity = velocity;
aAcceleration =
(tension * (this._endValue - tempPosition)) - friction * velocity;
tempPosition = position + aVelocity * Spring.SOLVER_TIMESTEP_SEC * 0.5;
tempVelocity =
velocity + aAcceleration * Spring.SOLVER_TIMESTEP_SEC * 0.5;
bVelocity = tempVelocity;
bAcceleration =
(tension * (this._endValue - tempPosition)) - friction * tempVelocity;
tempPosition = position + bVelocity * Spring.SOLVER_TIMESTEP_SEC * 0.5;
tempVelocity =
velocity + bAcceleration * Spring.SOLVER_TIMESTEP_SEC * 0.5;
cVelocity = tempVelocity;
cAcceleration =
(tension * (this._endValue - tempPosition)) - friction * tempVelocity;
tempPosition = position + cVelocity * Spring.SOLVER_TIMESTEP_SEC * 0.5;
tempVelocity =
velocity + cAcceleration * Spring.SOLVER_TIMESTEP_SEC * 0.5;
dVelocity = tempVelocity;
dAcceleration =
(tension * (this._endValue - tempPosition)) - friction * tempVelocity;
dxdt =
1.0/6.0 * (aVelocity + 2.0 * (bVelocity + cVelocity) + dVelocity);
dvdt = 1.0/6.0 * (
aAcceleration + 2.0 * (bAcceleration + cAcceleration) + dAcceleration
);
position += dxdt * Spring.SOLVER_TIMESTEP_SEC;
velocity += dvdt * Spring.SOLVER_TIMESTEP_SEC;
}
this._tempState.position = tempPosition;
this._tempState.velocity = tempVelocity;
this._currentState.position = position;
this._currentState.velocity = velocity;
if (this._timeAccumulator > 0) {
this.interpolate(this._timeAccumulator / Spring.SOLVER_TIMESTEP_SEC);
}
if (this.isAtRest() ||
this._overshootClampingEnabled && this.isOvershooting()) {
if (this._springConfig.tension > 0) {
this._startValue = this._endValue;
this._currentState.position = this._endValue;
} else {
this._endValue = this._currentState.position;
this._startValue = this._endValue;
}
this.setVelocity(0);
isAtRest = true;
}
var notifyActivate = false;
if (this._wasAtRest) {
this._wasAtRest = false;
notifyActivate = true;
}
var notifyAtRest = false;
if (isAtRest) {
this._wasAtRest = true;
notifyAtRest = true;
}
this.notifyPositionUpdated(notifyActivate, notifyAtRest);
},
notifyPositionUpdated: function(notifyActivate, notifyAtRest) {
for (var i = 0, len = this.listeners.length; i < len; i++) {
var listener = this.listeners[i];
if (notifyActivate && listener.onSpringActivate) {
listener.onSpringActivate(this);
}
if (listener.onSpringUpdate) {
listener.onSpringUpdate(this);
}
if (notifyAtRest && listener.onSpringAtRest) {
listener.onSpringAtRest(this);
}
}
},
Check if the SpringSystem should advance. Springs are advanced a final frame after they reach equilibrium to ensure that the currentValue is exactly the requested endValue regardless of the displacement threshold.
systemShouldAdvance: function() {
return !this.isAtRest() || !this.wasAtRest();
},
wasAtRest: function() {
return this._wasAtRest;
},
Check if the Spring is atRest meaning that it’s currentValue and endValue are the same and that it has no velocity. The previously described thresholds for speed and displacement define the bounds of this equivalence check. If the Spring has 0 tension, then it will be considered at rest whenever its absolute velocity drops below the restSpeedThreshold.
isAtRest: function() {
return Math.abs(this._currentState.velocity) < this._restSpeedThreshold &&
(this.getDisplacementDistanceForState(this._currentState) <=
this._displacementFromRestThreshold ||
this._springConfig.tension === 0);
},
Force the spring to be at rest at its current position. As described in the documentation for setCurrentValue, this method makes it easy to do synchronous non-animated updates to ui elements that are attached to springs via SpringListeners.
setAtRest: function() {
this._endValue = this._currentState.position;
this._tempState.position = this._currentState.position;
this._currentState.velocity = 0;
return this;
},
interpolate: function(alpha) {
this._currentState.position = this._currentState.position *
alpha + this._previousState.position * (1 - alpha);
this._currentState.velocity = this._currentState.velocity *
alpha + this._previousState.velocity * (1 - alpha);
},
getListeners: function() {
return this.listeners;
},
addListener: function(newListener) {
this.listeners.push(newListener);
return this;
},
removeListener: function(listenerToRemove) {
removeFirst(this.listeners, listenerToRemove);
return this;
},
removeAllListeners: function() {
this.listeners = [];
return this;
},
currentValueIsApproximately: function(value) {
return Math.abs(this.getCurrentValue() - value) <=
this.getRestDisplacementThreshold();
}
});
PhysicsState consists of a position and velocity. A Spring uses this internally to keep track of its current and prior position and velocity values.
var PhysicsState = function PhysicsState() {};
util.extend(PhysicsState.prototype, {
position: 0,
velocity: 0
});
SpringConfig maintains a set of tension and friction constants for a Spring. You can use fromOrigamiTensionAndFriction to convert values from the Origami design tool directly to Rebound spring constants.
var SpringConfig = rebound.SpringConfig =
function SpringConfig(tension, friction) {
this.tension = tension;
this.friction = friction;
};
AnimationLooper plays each frame of the SpringSystem on animation timing loop. This is the default type of looper for a new spring system as it is the most common when developing UI.
var AnimationLooper = rebound.AnimationLooper = function AnimationLooper() {
this.springSystem = null;
var _this = this;
var _run = function() {
_this.springSystem.loop(Date.now());
};
this.run = function() {
util.onFrame(_run);
};
};
SimulationLooper resolves the SpringSystem to a resting state in a tight and blocking loop. This is useful for synchronously generating pre-recorded animations that can then be played on a timing loop later. Sometimes this lead to better performance to pre-record a single spring curve and use it to drive many animations; however, it can make dynamic response to user input a bit trickier to implement.
rebound.SimulationLooper = function SimulationLooper(timestep) {
this.springSystem = null;
var time = 0;
var running = false;
timestep=timestep || 16.667;
this.run = function() {
if (running) {
return;
}
running = true;
while(!this.springSystem.getIsIdle()) {
this.springSystem.loop(time+=timestep);
}
running = false;
};
};
SteppingSimulationLooper resolves the SpringSystem one step at a time controlled by an outside loop. This is useful for testing and verifying the behavior of a SpringSystem or if you want to control your own timing loop for some reason e.g. slowing down or speeding up the simulation.
rebound.SteppingSimulationLooper = function(timestep) {
this.springSystem = null;
var time = 0;
this.run is NOOP’d here to allow control from the outside using this.step.
this.run = function(){};
Perform one step toward resolving the SpringSystem.
this.step = function(timestep) {
this.springSystem.loop(time+=timestep);
};
};
Math for converting from Origami to Rebound. You mostly don’t need to worry about this, just use SpringConfig.fromOrigamiTensionAndFriction(v, v);
var OrigamiValueConverter = rebound.OrigamiValueConverter = {
tensionFromOrigamiValue: function(oValue) {
return (oValue - 30.0) * 3.62 + 194.0;
},
origamiValueFromTension: function(tension) {
return (tension - 194.0) / 3.62 + 30.0;
},
frictionFromOrigamiValue: function(oValue) {
return (oValue - 8.0) * 3.0 + 25.0;
},
origamiFromFriction: function(friction) {
return (friction - 25.0) / 3.0 + 8.0;
}
};
BouncyConversion provides math for converting from Origami PopAnimation config values to regular Origami tension and friction values. If you are trying to replicate prototypes made with PopAnimation patches in Origami, then you should create your springs with SpringSystem.createSpringWithBouncinessAndSpeed, which uses this Math internally to create a spring to match the provided PopAnimation configuration from Origami.
var BouncyConversion = rebound.BouncyConversion = function(bounciness, speed){
this.bounciness = bounciness;
this.speed = speed;
var b = this.normalize(bounciness / 1.7, 0, 20.0);
b = this.projectNormal(b, 0.0, 0.8);
var s = this.normalize(speed / 1.7, 0, 20.0);
this.bouncyTension = this.projectNormal(s, 0.5, 200)
this.bouncyFriction = this.quadraticOutInterpolation(
b,
this.b3Nobounce(this.bouncyTension),
0.01);
}
util.extend(BouncyConversion.prototype, {
normalize: function(value, startValue, endValue) {
return (value - startValue) / (endValue - startValue);
},
projectNormal: function(n, start, end) {
return start + (n * (end - start));
},
linearInterpolation: function(t, start, end) {
return t * end + (1.0 - t) * start;
},
quadraticOutInterpolation: function(t, start, end) {
return this.linearInterpolation(2*t - t*t, start, end);
},
b3Friction1: function(x) {
return (0.0007 * Math.pow(x, 3)) -
(0.031 * Math.pow(x, 2)) + 0.64 * x + 1.28;
},
b3Friction2: function(x) {
return (0.000044 * Math.pow(x, 3)) -
(0.006 * Math.pow(x, 2)) + 0.36 * x + 2.;
},
b3Friction3: function(x) {
return (0.00000045 * Math.pow(x, 3)) -
(0.000332 * Math.pow(x, 2)) + 0.1078 * x + 5.84;
},
b3Nobounce: function(tension) {
var friction = 0;
if (tension <= 18) {
friction = this.b3Friction1(tension);
} else if (tension > 18 && tension <= 44) {
friction = this.b3Friction2(tension);
} else {
friction = this.b3Friction3(tension);
}
return friction;
}
});
util.extend(SpringConfig, {
Convert an origami Spring tension and friction to Rebound spring constants. If you are prototyping a design with Origami, this makes it easy to make your springs behave exactly the same in Rebound.
fromOrigamiTensionAndFriction: function(tension, friction) {
return new SpringConfig(
OrigamiValueConverter.tensionFromOrigamiValue(tension),
OrigamiValueConverter.frictionFromOrigamiValue(friction));
},
Convert an origami PopAnimation Spring bounciness and speed to Rebound spring constants. If you are using PopAnimation patches in Origami, this utility will provide springs that match your prototype.
fromBouncinessAndSpeed: function(bounciness, speed) {
var bouncyConversion = new rebound.BouncyConversion(bounciness, speed);
return this.fromOrigamiTensionAndFriction(
bouncyConversion.bouncyTension,
bouncyConversion.bouncyFriction);
},
Create a SpringConfig with no tension or a coasting spring with some amount of Friction so that it does not coast infininitely.
coastingConfigWithOrigamiFriction: function(friction) {
return new SpringConfig(
0,
OrigamiValueConverter.frictionFromOrigamiValue(friction)
);
}
});
SpringConfig.DEFAULT_ORIGAMI_SPRING_CONFIG =
SpringConfig.fromOrigamiTensionAndFriction(40, 7);
util.extend(SpringConfig.prototype, {friction: 0, tension: 0});
Here are a couple of function to convert colors between hex codes and RGB component values. These are handy when performing color tweening animations.
var colorCache = {};
util.hexToRGB = function(color) {
if (colorCache[color]) {
return colorCache[color];
}
color = color.replace('#', '');
if (color.length === 3) {
color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2];
}
var parts = color.match(/.{2}/g);
var ret = {
r: parseInt(parts[0], 16),
g: parseInt(parts[1], 16),
b: parseInt(parts[2], 16)
};
colorCache[color] = ret;
return ret;
};
util.rgbToHex = function(r, g, b) {
r = r.toString(16);
g = g.toString(16);
b = b.toString(16);
r = r.length < 2 ? '0' + r : r;
g = g.length < 2 ? '0' + g : g;
b = b.length < 2 ? '0' + b : b;
return '#' + r + g + b;
};
var MathUtil = rebound.MathUtil = {
This helper function does a linear interpolation of a value from
one range to another. This can be very useful for converting the
motion of a Spring to a range of UI property values. For example a
spring moving from position 0 to 1 could be interpolated to move a
view from pixel 300 to 350 and scale it from 0.5 to 1. The current
position of the Spring
just needs to be run through this method
taking its input range in the from parameters with the property
animation range in the to parameters.
mapValueInRange: function(value, fromLow, fromHigh, toLow, toHigh) {
var fromRangeSize = fromHigh - fromLow;
var toRangeSize = toHigh - toLow;
var valueScale = (value - fromLow) / fromRangeSize;
return toLow + (valueScale * toRangeSize);
},
Interpolate two hex colors in a 0 - 1 range or optionally provide a custom range with fromLow,fromHight. The output will be in hex by default unless asRGB is true in which case it will be returned as an rgb string.
interpolateColor:
function(val, startColor, endColor, fromLow, fromHigh, asRGB) {
fromLow = fromLow === undefined ? 0 : fromLow;
fromHigh = fromHigh === undefined ? 1 : fromHigh;
startColor = util.hexToRGB(startColor);
endColor = util.hexToRGB(endColor);
var r = Math.floor(
util.mapValueInRange(val, fromLow, fromHigh, startColor.r, endColor.r)
);
var g = Math.floor(
util.mapValueInRange(val, fromLow, fromHigh, startColor.g, endColor.g)
);
var b = Math.floor(
util.mapValueInRange(val, fromLow, fromHigh, startColor.b, endColor.b)
);
if (asRGB) {
return 'rgb(' + r + ',' + g + ',' + b + ')';
} else {
return util.rgbToHex(r, g, b);
}
},
degreesToRadians: function(deg) {
return (deg * Math.PI) / 180;
},
radiansToDegrees: function(rad) {
return (rad * 180) / Math.PI;
}
}
util.extend(util, MathUtil);
Here are a few useful JavaScript utilities.
Lop off the first occurence of the reference in the Array.
function removeFirst(array, item) {
var idx = array.indexOf(item);
idx != -1 && array.splice(idx, 1);
}
var _onFrame;
if (typeof window !== 'undefined') {
_onFrame = window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.msRequestAnimationFrame ||
window.oRequestAnimationFrame;
}
if (!_onFrame && typeof process !== 'undefined' && process.title === 'node') {
_onFrame = setImmediate;
}
Cross browser/node timer functions.
util.onFrame = function onFrame(func) {
return _onFrame(func);
};
Export the public api using exports for common js or the window for normal browser inclusion.
if (typeof exports != 'undefined') {
util.extend(exports, rebound);
} else if (typeof window != 'undefined') {
window.rebound = rebound;
}
})();
/**
* Copyright (c) 2013, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/


Recommended you to {{ recsCount }} Asks
Recommended {{ firstName | titlecase }} to {{ recsCount }} Ask
3 shared trusted crowds
Looking for a good UX Designer
any location / remote
{{ date | date:'dd LLLL' }}


When politicians talk about “spending” have you ever wanted to know where your tax dollars actually go? This visualization shows you how congress allocates expenditures across three government levels (Federal, State, and Local.) The thicker the line, the more that is being spent.


--- layout: post title: Vim Follow-up post_id: 72 categories: - tips & tricks date: 2008-11-17 12:09:00.000000000 -07:00 author: Jamis permalink: 2008/11/17/vim-follow-up.html summary: > The fallout from the author's return to Vim is recounted, with a review of tips and plugins that have been found to be particularly useful ---
So, it’s been over a month and a half since I switched back to Vim, and I figured I’d post a bit about how things are going.
I love it. Though the future is notoriously difficult to foretell, I think it’s safe to say that I won’t be switching editors again anytime soon. Vim is where it’s at, for me.
Here’s the combination of plugins and such that I’ve found work best for me.
Any Vim will do, really, but if you’re on a Mac, you really ought to consider MacVim. Like any self-respecting Vim port, it does the command-line really well, but it also has a great OS X GUI interface.
I’ve got my <Leader> character (:h mapleader
) mapped to the comma (since it’s easier to reach than the backspace character).
let mapleader = "," |
I’ve installed ack and have configured Vim to use ack for grep.
1 2 |
set grepprg=ack set grepformat=%f:%l:%m |
I’m a believer in spaces instead of tabs (let’s just agree not to go there), and I prefer a tab size of 2. I also like editors to try and guess the indentation level.
1 2 3 4 5 6 |
set tabstop=2 set smarttab set shiftwidth=2 set autoindent set expandtab set backspace=start,indent |
But, some file types really do require explicit tabs, and not spaces:
1 2 |
autocmd FileType make set noexpandtab autocmd FileType python set noexpandtab |
(Update: apparently, python can do tabs or spaces. All my python vimming for the last 8 years has been read-only, so it never actually came up.)
I like my lines numbered, syntax highlighting on, and highlighted searches:
1 2 3 |
set number set hlsearch syntax on |
I’ve got quite a few other things tweaked in my .vimrc, but those are the major biggest ones.
The FuzzyFinder and FuzzyFinder TextMate plugins have become essential for me. For now, installation of the TextMate-like behavior is kind of painful, but I plan to get something up on the Vim scripts index in the nearish future.
My settings for FuzzyFinder TextMate:
1 2 3 4 5 |
let g:fuzzy_ignore = "*.log" let g:fuzzy_matching_limit = 70 map <leader>t :FuzzyFinderTextMate<CR> map <leader>b :FuzzyFinderBuffer<CR> |
Thanks to all who recommended the NERD tree plugin by Marty Grenfell. It really is fantastic, definitely the best-of-breed of VIM project/directory explorers. I especially like that it is easily toggled away. I usually keep it hidden, and toggle it open only when I need to browse to something. (Thanks to the fuzzyfinder stuff, my need for a project browser is pretty small, but when I need one, NERD_tree works great.)
1 |
map <leader>d :execute 'NERDTreeToggle ' . getcwd()<CR> |
The rails.vim plugin is pretty extensive, and I’m currently only scratching the surface. I don’t use snippets at all (never did in TextMate, either), but the Rake integration is pretty handy, and I’ve used the migration generator pretty often lately.
I need to spend some more time reading the docs for this one, and practicing some of the commands, since I’m sure it could turn into a real time-saver for programmers (like myself) who spend a good part of their day in Rails code.
I’ve really come to love scratch.vim. Sometimes I just need to jot down some numbers, or paste the result of some query, or even take notes on a phone call. Writing any of that on a scrap of paper is a sure way to lose the info. The scratch plugin lets me take notes right where I am all day: in Vim. It doesn’t come with a way to toggle the scratch buffer (which is odd), so I wrote a quick one:
1 2 3 4 5 6 7 8 9 |
function! ToggleScratch() if expand('%') == g:ScratchBufferName quit else Sscratch endif endfunction map <leader>s :call ToggleScratch()<CR> |
Maybe it’s just my own coding style, but I find myself commenting and uncommenting large blocks of code on a daily basis. The tComment plugin from Tom Link is perfect for this. You can toggle comments by using the Vim motion operators, or just do a quick visual block followed by “gc”. Good stuff!
There are a few other plugins I’m experimenting with (surround.vim, vcscommand.vim), but which I use infrequently enough that they haven’t become muscle memory yet.
Because I prefer the GUI version of MacVim, I typically have only one or two terminal windows open. I then type “mvim” to open vim from the root of whichever project(s) I’m working on, and then use ”,t” (my FuzzyFinder TextMate trigger) to search for and open files. I also use ”,b” (my FuzzyFinderBuffer trigger) to search my buffer list if I know the file is already open.
Switching between buffers with the carat character ”^” is a huge time saver. I used to use :ls (to list open buffers) and :buffer (to jump to a buffer), but the FuzzyFinderBuffer has really taken the place of both of those.
Ironically, split windows (which I missed most of all when I switched to TextMate) have taken me the longest to fit back into my workflow. TextMate trained them out of me. :) That said, I’m still trying to fit them back in, and when I remember to use them, I love them.
So, that’s me. How does Vim fit in your own workflow? What settings do you prefer, and why? And what customizations are you using in your own setup?


font
font(fontname, fontsize=None)
Sets the current font. The first parameter is the valid name of a font installed on the system. The valid name is the name as it appears in the Font Book application as "Postscript Name". The second parameter is optional and specifies the font size, in the same way as when calling the fontsize() command. All text() commands following the font() command will be drawn in this font.
|
font("Helvetica")
text("Ni!", 10, 10) |
the name of the current font


--- title: Waco Home Prices Sad Plot 2.0 author: Alex Michel date: '2018-06-20' slug: waco-home-prices-sad-plot-2-0 categories: - blog tags: - plot - R Markdown - sad plot - Waco description: Desc hacker_news_id: '' lobsters_id: '' meta_img: /images/image.jpg ---
knitr::opts_chunk$set(echo = TRUE)
library(dplyr)
library(ggplot2)
library(tidyverse)
library(ggthemes)
library(plotly)
library(RColorBrewer)
waco <- txhousing %>%
filter(city == "Waco", year >= 2004) %>%
group_by(year) %>%
mutate(median_waco = median(median),
gt_median = median >= median_waco)
waco_homes <- ggplot(waco, aes(x = year, y = median, color = gt_median)) +
geom_point(alpha = 0.7) + labs(title = "Waco, TX median Sale Price Over Time",
subtitle = "Note, the show Fixer Upper debuted in 2013", caption = "Source: ggplot2 txhousing data") +
xlab("Year") +
ylab("Median sale price by month") +
scale_x_continuous(breaks = seq(2004, 2015, by = 2)) +
scale_y_continuous(breaks = seq(90000, 175000, by = 10000)) +
scale_color_discrete(name="Yearly Median Home Prices",
breaks=c("FALSE", "TRUE"),
labels=c("Below Median", "Above Median"))
waco_homes +
theme_minimal()
This is a scatterplot.
The data for this graph was pre-included in the R package. The data includes quantitative data on real estate prices for housing in Texas, including the city of Waco. The data has been pre-cleaned so that it is easy to work with right out of the box. The raw data includes 11 variables with 139 observations, with a .
This could be useful for a homebuyer or a real estate agent, someone interested in whether a particular house is priced high or low for the overall market.
There are two main things that I wanted to show with this graph:
The general trend in Waco real estate – which is clearly going up over time.
Whether particular houses are above or below the median valuation for Waco that year (i.e., is this a good deal or not?). Obviously there’s a lot of other factors to consider, but it’s an interesting way to see the market differences between “low value” real estate and “high value” real estate over time.
This scatterplot graph uses a cartesian coordinate system where the year is along the x-axis and the median sale prices are along the y-axis. Each dot represents the median sale price for all houses sold during one month. This graph type is helpful at showing the relationship between house pricing and time – it’s very clear that home prices (even lower valued ones) are going up over time regardless of the economic recession from 2008.
It’s important to note that the dots in the plot are monthly medians, so if I had more time to get to play with analyzing this I would want to know whether particular months are just bad for sales (maybe including some lines grouped by month?).
There are so many different variations for this type of graph. One that I see a lot is the use of bubbles that are sized according to the magnitude of values such that larger bubbles represent larger values.
I initially made this graph as part of the color lab. I initially used continuous colors to help illustrate changes in price overall (higher prices were darker red, lowest prices were yellow).
I started off with the dataset for all of Texas and decided to filter just for Waco after a 24-year old classmate asked me “What’s Waco?”. Also, in Cecile Richards’ new book she talks about Waco as being famous for Chip and Johanna and HGTV, which is uh…not what the city of Waco brings to mind for me.
Anyway, I started with a simple scatterplot using median house sale price and year variables. I noticed that there were several years in the dataset that didn’t have the needed values, so I filtered for years after 2004. I played around with some of these values until I got a satisfactory looking scatterplot, then I added color using the ColorBrewer package.
waco <- txhousing %>%
filter(city == "Waco", year >= 2004) %>%
group_by(year)
waco_homes <- ggplot(waco, aes(x = year, y = median, color = median)) +
geom_point(alpha = 0.7) + labs(title = "Waco, TX median sale price over time",
subtitle = "Note, the show Fixer Upper debuted in 2013", caption = "Source: ggplot2 txhousing data") +
xlab("Year") +
ylab("Median sale price") +
scale_x_continuous(breaks = seq(2004, 2015, by = 2)) +
scale_y_continuous(breaks = seq(90000, 175000, by = 10000))
waco_homes +
scale_color_gradientn(colours = brewer.pal(n=7, name="YlOrRd")) +
theme_minimal()
With help from Emile during our lab, I created a new indicator variable (a logical TRUE or FALSE) using mutate to show whether the home prices in a given year were above or below a threshold of the median home price for that year (which is the sad plot 2.0 at the top of the page). One of the things I like about the 2.0 version of the graph is that the viewer can compare across the full timescale as well as across individual years much more easily. The continuous color is helpful for a big picture impression (and it looks pretty) but it ultimately doesn’t include as much information.


Status
System
Hostname
Firmware Version
Local Time
Running Time
Load Average
Memory
Total Available
0 kB / 61252 kB (0%)
Free
0 kB / 61252 kB (0%)
Cached
0 kB / 61252 kB (0%)
Buffer
0 kB / 61252 kB (0%)
Network
WAN状态
?
未连接
LAN
?
Not Connected
ARP Table
IPv4-Address
MAC-Address
Net-Card


--- layout: default title: The Team hero-image: url(../assets/images/stock-images/group.jpg) hero-message: Meet the PiE Team hero-button: Join Us! hero-button-url: ../get-involved/join-staff.html ---
{{ member.name }}
{{ member.title }}
{{ member.name }}
{{ member.project }}
{{ advisor.name }}
{{ advisor.title }}
{{ alumnus.name }}
{{ alumnus.title }}


To view the most up-to-date version of the Visual Studio 2008 Readme, click here.
Table of Contents
1.2. Supported Operating Systems
To use the SharePoint workflow development tools in Visual Studio Tools for Office, complete the following installation steps in the specified order.
1. Install Windows Server 2003.
2. Install Internet Information Services (IIS). In Control Panel, select Add/Remove Windows components, then Application Server, then Details, then Internet Information Services (IIS).
3. Install .NET Framework 2.0 and .NET Framework 3.0.
4. In IIS Manager, enable ASP.NET 2.0.5727.
5. Install Microsoft Office SharePoint Server 2007. Make sure to run the configuration wizard.
6. Install Visual Studio 2008. Use the default installation or make sure that Visual Studio Tools for Office is selected on the Custom installation page of the Setup wizard.
7. (Optional) SMTP Service. Installing this service lets you use SharePoint email-enabled features. Consult the SharePoint product documentation to learn more about these capabilities.
To resolve this issue:
No workaround is available.
Upgrading from the CTP and Beta versions of SQL Server Compact 3.5 to the release version is not supported.
To resolve this issue:
Before you install the release version of either SQL Server Compact 3.5 or Visual Studio 2008, uninstall all CTP and Beta versions of SQL Server Compact 3.5, SQL Server Compact 3.5 for Devices, and SQL Server Compact 3.5 Design Tools
Users get the error message, "A problem has been encountered while loading the setup components. Canceling setup" and then Setup is cancelled. This only occurs on systems that do not have Windows Installer 3.1. Users should install Windows Installer 3.1 and then retry Setup.
To resolve this issue:
1. In Add or Remove Programs, look for Windows Installer 3.1 in the list of installed programs.
2. If Windows Installer 3.1 is not present, complete the following steps.
a. Go to Windows Installer 3.1 Redistributable (v2) and then install Windows Installer 3.1.
b. Retry Visual Studio 2008 Setup.
Setup stops and displays an error message, "Setup failed to stop Windows Installer service. You must stop all other applications running Windows Installer service or restart your computer before the installation".
To resolve this issue:
Try the following options:
- This message indicates that a setup program other than Visual Studio 2008 Setup might already be running on the computer. After the other setup is finished, restart the computer and then run Visual Studio 2008 Setup.
- This message might also indicate that Windows updates are being installed on the computer. After Windows Update is finished, restart the computer and then run Visual Studio 2008 Setup.
- Look for msiexec.exe in Task Manager. If msiexec.exe is already running, wait for it to finish and then restart the computer and run Visual Studio 2008 Setup.

When Visual Studio 2008 is installed on the same computer as Visual Studio 2005, Visual Studio 2005 repair fails to repair the .NET Framework 2.0.
To resolve this issue:
Repair .NET Framework 2.0 separately by using Add or Remove Programs.
Visual Studio 2008 Setup may display a message that prompts you to close running applications. In the message, some of the applications may have a numeric process identifier and some may have an empty identifier. Names of applications are not shown.
To resolve this issue:
We recommend that you close the applications so that they do not affect the installation process.
You can find the names of the applications by looking up their Process IDs in Task Manager.
1. Press CTRL+ALT+DEL and then click Task Manager.
2. On the View menu, click Select Columns.
3. Select PID (Process Identifier) and then click OK.
4. In Task Manager, click PID to sort entries by PID.
5. Look for the Process IDs that are shown in the message.
You may also click Ignore in the message box and then continue with the installation. Doing this may require a reboot at the end of Setup.
If you install either the Windows SDK for Windows Vista or the Windows SDK Update for Windows Vista together with Visual Studio 2008, and then uninstall the Windows SDK, the registry keys that Visual Studio requires to find Windows headers, libraries, and tools are removed.
To resolve this issue:
Do one of the following things:
- Repair Visual Studio 2008 by using Add or Remove Programs (Windows Server 2003 and Windows XP) or by using Programs and Features (Windows Vista and Windows Server 2008).
- Install the Windows SDK for Windows Server 2008 and .NET Framework 3.5.
If you install Visual Studio 2008 Team Test Load Agent on a computer that has Visual Studio 2005 Team System Edition for Testers or Visual Studio 2005 Team Suite Edition, and then uninstall Visual Studio 2005, the uninstallation will clear the following registry entries that are required for load generation.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"MaxUserPort"=dword:0000FFFE
"TcpTimedWaitDelay"=dword:0000001e
To resolve this issue:
After you uninstall Visual Studio 2005, put these entries back in the registry.
If two versions of Visual Studio 2008 are installed on a computer (for example, the English and Japanese versions) and then one is uninstalled, you can no longer debug workflows in the remaining version. WDE.dll, which is part of the Workflow debugger, is uninstalled when either one of the installations is removed from the computer.
To resolve this issue:
In Visual Studio 2008 Setup, repair or reinstall the remaining Visual Studio version.
Visual Studio 2008 Setup may display a message that prompts you to close running applications. In the message, some of the applications may have a numeric process identifier and some may have an empty identifier. Names of applications are not shown.
To resolve this issue:
We recommend that you close the applications so that they do not affect the installation process.
You can find the names of the applications by looking up their Process IDs in Task Manager.
1. Press CTRL+ALT+DEL and then click Task Manager.
2. On the View menu, click Select Columns.
3. Select PID (Process Identifier) and then click OK.
4. In Task Manager, click PID to sort entries by PID.
5. Look for the Process IDs that are shown in the message.
You may also click Ignore in the message box and then continue with the installation. Doing this may require a reboot at the end of Setup.
Running a custom installation of the Windows SDK may change file link paths to point to non-existent files. If Visual Studio 2008 is installed and then the Windows SDK is installed, an important registry key is changed. That key points to the SDK tools as well as the Windows headers and libraries. However, if you run a custom installation of the Windows SDK that does not include tools or headers and libraries, the link to those files is broken and some Visual Studio functionality will be broken.
To resolve this issue:
Either repair Visual Studio 2008 or use the Windows SDK Configuration Tool, which is installed with the Windows SDK for Windows Server 2008 and .NET Framework 3.5.
If you debug your workflow with both the workflow debugging and T-SQL debugging enabled, unexpected results could occur.
To resolve this issue:
No workaround is available.
The Locals window is not visible when Visual Studio is running on the 64-bit version of Windows Vista.
To resolve this issue:
No workaround is available.
Adding a new database unit test to a workflow project displays the following message.
"An error occurred while loading the workflow. Please correct the following error and try reloading the document to view the workflow.
The designer could not be shown for this file because none of the classes within it can be designed.
The designer inspected the following classes in the file: DatabaseUnitTest1. The base clase DatabaseUnitTest1 for the class needs to be an Activity."
This message is displayed incorrectly. The new database unit test is actually valid. You can dismiss the message, and it will not reappear.
To resolve this issue:
Close the error. It will not reappear.
After Visual Studio 2008 is installed in Visual Basic-only mode, the Workflow Foundation designer does not work correctly. You cannot specify the required fields in Workflow projects, and that makes it impossible to build the solution.
To resolve this issue:
Install Visual Web Developer by using Visual Studio 2008 Setup.
Solutions and projects that are created in Visual Studio 2008 can be opened and edited in Expression Blend, but they cannot be built there. Also, when you open Expression Blend projects in Visual Studio 2008, they will be upgraded to the Visual Studio 2008 format. After the project is upgraded, it can no longer be built in Expression Blend; however, you can still open it and edit it in Expression Blend.
To resolve this issue:
For more information about availability and for installation instructions, visit here or the Microsoft Expression Web site.
If a user installs Visual Studio 2008 on a computer that already has Windows Mobile 6 SDK, Visual Studio 2008 will not recognize the SDK. Repairing Windows Mobile 6 SDK will not solve this.
To resolve this issue:
1. Uninstall Windows Mobile 6 SDK.
2. Reinstall Windows Mobile 6 SDK.
The Encrypt property in the SqlCeConnection class should not be used. The property is retained in SQL Server Compact 3.5 only for backward compatibility.
To resolve this issue:
Use the encryption mode property of the SqlCeConnection class to encrypt SQL Server Compact 3.5 database files. Uses of encryption mode, together with code samples, are as follows.
1. To create a new encrypted SQL Server Compact 3.5 database.
SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform
default;Password=passw0rd;");
engine.CreateDatabase();
2. To upgrade a SQL Server 2005 Compact Edition (version 3.1) or SQL Server 2005 Mobile Edition (version 3.0) database to an encrypted SQL Server Compact 3.5 database.
SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=passw0rd;");
engine.Upgrade ("Data Source=Northwind.sdf;encryption mode=platform default;Password=passw0rd;");
3. To change the encryption mode of an existing SQL Server Compact 3.5 database.
SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=passw0rd;");
engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=passw0rd;");
4. To encrypt an unencrypted SQL Server Compact 3.5 database.
SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf");
engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=passw0rd;");
A Smart Device programmer is unable to use any of the designer features, such as Add Datasource, Add New Connection, Create Database, Generate Data Forms, and drag-and-drop datasource objects onto the form designer, when she is programming against a SQL Server Compact Edition 3.1 database. The Smart device designer features default to SQL Server Compact 3.5 database.
To resolve this issue:
Use Visual Studio 2005 Service Pack 1 to program against SQL Server Compact Edition 3.1 database for Smart Device programs. For more information about using Visual Studio 2008 with SQL Server Compact Edition 3.1 database, see http://go.microsoft.com/fwlink/?LinkID=101885.
Database files (*.sdf) that are created by earlier version of SQL Server Compact are not compatible with SQL Server Compact 3.5. Un-encrypted database files from earlier versions of SQL Server Compact are upgraded when a Visual Studio 2005 project is upgraded in Visual Studio 2008. Encrypted database files must be manually upgraded. If the Visual Studio 2005 project uses ClickOnce to publish applications, the application should be re-published after the project has been upgraded in Visual Studio 2008.
To resolve this issue:
Upgrade the encrypted database files by completing the following steps.
1. Click Data.
2. Click Add New Data Source.
3. Click Add Connection. If an earlier version of the database file is open, a message appears. If you click OK, the Upgrade to SQL Server Compact 3.5 Database dialog box appears.
Alternatively the SqlCeEngine.Upgrade API can be used for programmatic scenarios, as shown in the following code example.
SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=passw0rd;");
engine.Upgrade ("Data Source=Northwind.sdf;encryption mode=platform default;Password=passw0rd;");
If the project uses ClickOnce to publish applications, the application should be re-published after it has been upgraded in Visual Studio 2008. When you re-publish the Click Once application in Visual Studio 2008, you may see a warning that SQL Server 2005 Compact Edition prerequisite cannot be found for bootstrapping. You can ignore the warning.
If the data types for parameters such as SqlDbType or DbType are not explicitly set, an exception will be thrown.
To resolve this issue:
Explicitly set the data type for parameters such as SqlDbType or DbType. Doing this is critical in case of BLOB data types (image and ntext). A code example follows.
SqlCeEngine engine = new SqlCeEngine(connString);
engine.CreateDatabase();
engine.Dispose();
SqlCeConnection conn = new SqlCeConnection(connString);
conn.Open();
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText = "CREATE TABLE BlobTable(name nvarchar(128), blob ntext);";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO BlobTable(name, blob) VALUES (@name, @blob);";
SqlCeParameter paramName = cmd.Parameters.Add("name", SqlDbType.NVarChar, 128);
SqlCeParameter paramBlob = cmd.Parameters.Add("blob", SqlDbType.NText);
paramName.Value = "Name1";
paramBlob.Value = "Name1".PadLeft(4001);
cmd.ExecuteNonQuery();
You may encounter one of the following problems:
- A Visual Studio 2005 project was upgraded to Visual Studio 2008, and now a build warning says that a prerequisite is missing.
- A built application that depends on MDAC does not run on Windows 2000.
- Windows 2000 users cannot run a ClickOnce application because MDAC is missing.
To resolve this issue:
- If you do not require MDAC and you are getting a build warning, open the Prerequisites dialog box and then clear the MDAC prerequisite.
- If you are targeting Windows 2000 clients and require the MDAC prerequisite, get the Bootstrapper package from the Internet, as follows.
1. Open the Prerequisites dialog box and then click 'Check Microsoft Update for more redistributable components'. Doing this will open http://go.microsoft.com/fwlink/?linkid=40981.
2. On the Web page, download the MDAC Bootstrapper package and save it in a new folder in \Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\.
- Get the Bootstrapper package from Visual Studio 2005.
1. If Visual Studio 2005 is installed on the same computer, you can copy the MDAC28 folder in \Program Files Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\ and then paste it in \Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\.
There are no known issues.
In Visual Studio 2008 Beta 2, the O/R Designer created .dbml files as UTF-8 byte-order even if UTF-16 encoding was specified in the actual file. Opening .dbml files created by using Beta 2 could raise the “There is no Unicode byte order mark. Cannot switch to Unicode” error.
To resolve this issue:
Right-click the .dbml file in Solution Explorer, open by using the XML Editor, and then save the file. Doing this does not impact the actual content of the .dbml file and there is no data loss.
Previewing Office InfoPath 2007 form templates in Visual Studio 2008 by pressing F5 or clicking the Preview button will fail and display an error, unless InfoPath 2007 Service Pack 1 or the QFE is installed.
To resolve this issue:
The QFE is available at http://go.microsoft.com/fwlink/?LinkId=102084.
Visual Studio 2008 throws two exceptions if you try to create a SharePoint workflow project (SharePoint 2007 Sequential Workflow or SharePoint 2007 State Machine Workflow) on a 64-bit computer. The first exception message is "Object reference not set to an instance of an object". The second message is "SharePoint site location entered is not valid. The SharePoint site at http://<serverpath> could not be found. Verify that you have typed the URL correctly…"
To resolve this issue:
Do not use the Visual Studio SharePoint workflow templates on a computer that is running a 64-bit operating system. For more information, see the Help topic, "Troubleshooting SharePoint Workflow Solutions".
You may experience build and runtime errors when building and running Beta 2 Office projects in the final release version of Visual Studio. Changes have been made to a number of VSTO reference assemblies.
To resolve this issue:
Renamed Assemblies: If you receive an error for any of the following reference assemblies, delete the old reference assembly and add the corresponding new reference assembly to your project and then rebuild.
Old Reference New Reference
Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll
Microsoft.VisualStudio.Tools.Office.dll Microsoft.Office.Tools.v9.0.dll
Microsoft.VisualStudio.Tools.Office.Common.dll Microsoft.Office.Tools.Common.v9.0.dll
Microsoft.VisualStudio.Tools.Office.Excel.dll Microsoft.Office.Tools.Excel.v9.0.dll
Microsoft.VisualStudio.Tools.Office.Outlook.dll Microsoft.Office.Tools.Outlook.v9.0.dll
Microsoft.VisualStudio.Tools.Office.Word.dll Microsoft.Office.Tools.Word.v9.0.dll
There are no known issues.
The Biztalk Service SDK introduces a metadata exchange (MEX) endpoint in the <client> section of the <system.serviceModel> element in the machine.config file. This setting generates the following exception when the service is invoked in WcfTestClient:
System.NullReferenceException: Object reference not set to an instance of an object
To resolve this issue:
When you run the WcfTestClient, modify the machine.config file (located in \WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\),by commenting out the <client> section that is nested in the <system.serviceModel> element. Re-enable the section when you use the Biztalk service SDK.
On Windows Vista, if the NetMsmqActivator service is enabled and Message Queuing (MSMQ) is not installed, then the iisreset utility does not work and the WCF samples setup script Setupvroot.bat will not run.
To resolve this issue:
Make sure that MSMQ is installed, or disable the NetMsmqActivator service on Windows Vista before you run the WCF samples setup script, Setupvroot.bat.
The following features of WCF are not supported by the WcfTestClient in this release:
- Message contract and XML serialization, non-WCF Web services
- Session/Context binding
- Transaction
- Duplex contract
- Windows CardSpace, Certificate, User name/Password, Windows Authentication
- Types: Stream, IDictionary collection, and DataSet
To resolve this issue:
No workaround is available.
An example at the end of the Svcutil.exe help output indicates that you can use the /dataContractOnly (/dconly) option to generate data contracts from a running service.
svcutil.exe /dconly http://service/metadataEndpoint
- Generate Data Contract types from a running service or online metadata documents.
This usage does not work. You can only use the /dconly option to generate data contracts from local metadata files.
To resolve this issue:
1. Download the metadata from the running service by running the following command.
svcutil.exe /target:metadata http://service/metadataEndpoint
2. Run Svcutil.exe with the /dconly option on the downloaded metadata files, as follows.
svcutil.exe /dconly *.wsdl *.xsd
The Svcutil.exe tool can generate code for Web service clients and data types, from metadata in any language that has a managed code provider. Svcutil.exe has been tested with the C#, Visual Basic, and C++ managed code providers. Other code providers have not been tested and may generate code that does not compile or may be otherwise unusable.
To resolve this issue:
Use one of the supported managed code providers, or manually edit the generated code to resolve any compilation issues.
You can use the Svcutil.exe tool to generate code for Web service clients and data types, from metadata. However, there are known issues with the C++ code provider in Visual Studio 2008 that can cause Svcutil.exe to generate Managed C++ code that may not compile.
To resolve this issue:
Manually alter the generated code to resolve any compiler errors.
The property browser in the WPF designer displays and edits values by using the U.S. format. This matches the XAML convention of using the en-US CultureInfo. For example, dates and numbers are always in U.S. format. Dates are always displayed mm/dd/yy. If you enter a date value in the property browser. it will be converted with the assumption that it is in mm/dd/yy format.
To resolve this issue:
No workaround is available.
If you use code refactor to make type or member modifications, the refactoring will not propagate to the XAML files.
For example, given a UserControl named MyCustomControl, if you use refactor to change the name of that UserControl to FancyControl in the code file, that name change will only affect code files and any instances of MyCustomControl in XAML files will not be updated.Additionally, the build may incorrectly succeed without error until a rebuild or clean of the project or solution is performed.
To resolve this issue:
There is no direct resolution. You must make the modifications by using Find and Replace.
If you make changes to a type or member in a XAML file, those changes will not propagate to the code files.
For example, if you change the name of Button that has event handlers associated
with it by using the XAML editor, the code behind will not be updated.
To resolve this issue:
There is no direct resolution. You must make the modifications by using Find and Replace.
If you right-click a XAML file in Solution Explorer and then click Rename, the file name will be changed but there will not be any prompt to refactor the class name in XAML or code-behind. In particular, if you rename the XAML file that is referred to by the StartupUri property in the Application XAML file, for example, rename Window1.xaml to MainWindow.xaml, then you must manually change the StartupUri property.
To resolve this issue:
There is no direct resolution. You must make the modifications by using Find and Replace.
Custom activities do not appear in the Visual Studio 2008 toolbox when you use Visual C++ Development settings.
To resolve this issue:
Use different development settings, for example, Visual Basic or C#.
There are no known issues.
3.1. Visual Studio Team Foundation Server Readme: http://go.microsoft.com/fwlink/?LinkId=102510
3.2. Visual Studio Express Edition Readme: http://go.microsoft.com/fwlink/?LinkId=102509
3.3. .NET Framework Readme:http://go.microsoft.com/fwlink/?LinkId=1102511
3.4. MSDN Library for Visual Studio Readme: http://go.microsoft.com/fwlink/?LinkId=102512
3.5. Download SQL Server Compact 3.5 Books Online and Samples from http://go.microsoft.com/fwlink/?LinkID=96191 and Synchronization Services for ADO.NET v1.0 Books Online and Samples from http://go.microsoft.com/fwlink/?LinkId=80742. To add these to the Visual Studio Combined Help Collection, complete the following steps.
1. Click Start, point to All Programs, Microsoft Visual Studio
2008, and then click Microsoft Visual Studio 2008 Documentation.
2. In the Visual Studio Combined Help Collection, click Help
and then click Index.
3. In the Look for box, enter collection manager, and then
click the Help entry under collection manager in the Index.
4. In the Combined Help Collection Manager topic, select SQL
Server Compact 3.5, and then click Update VSCC.
5. In the two dialog boxes that appear, read the requirements,
and then click OK.
6. Close and then reopen the Visual Studio Combined Help Collection.
SQL Server Compact Books Online is now available in the Table of Contents, Index,
Search, and F1 Help.
3.6. For the latest information about issues with using the WPF designer in Visual Studio 2008, see the Cider wiki on Channel9, http://go.microsoft.com/fwlink/?LinkId=83541.
3.7. Visual J# MSDN developer center:http://go.microsoft.com/fwlink/?LinkId=102513
3.8. The XML to Schema tool can be downloaded from http://go.microsoft.com/fwlink/?LinkId=102514
The XML to Schema tool is a free project-item template that automates the creation
of XML schema sets from any number of XML documents. If you are working with LINQ
to XML in Visual Basic 2008, this utility may significantly improve your editing
experience by adding XML schemas (.xsd files) to your project that then provide
IntelliSense for XML properties. The tool can also be used to create an
XML schema set from a set of existing XML documents.
© 2007 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy Statement


?I
Chrysophyllum
.
New
York
Botanical
Garden
Arthur
Cronquist,
EX
HERB.
HORT.
BOT.
REG.
KEW.
NEW
YORK
BOTANICAL
Plantai
Cubenscs
Wrigbtionĺ.
No.
IT
j—
^r',ylyt/U'—'7‘Lr1'
Coll.
C.
WRIGHT,
in
Cuba
Orientali,
prope
'
*>•'
.»
,r
LJ.
v
I860.;
01442379
01442379
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high