Tasks
Queued command execution with resource management.
A task
expression, just like sys
expression, also executes a command.
The main difference is that a task
is "scheduled for execution" instead of executed immediately.
Task execution order is not guaranteed but bds
provides a mechanism for creating task dependencies by means of wait
statements.
A task expression either performs basic resource management or delegates resource management to cluster management tools.
The idea is that if you schedule a hundred tasks, but you are executing on your laptop which only has 4 CPUs, then bds
will only execute 4 tasks at a time (assuming each task is declared to consume 1 CPU).
The rest of the tasks are queued for later execution.
As executing tasks finish and CPUs become available, the remaining tasks are executed.
Similarly, if you schedule 10,000 tasks for execution, but your cluster only has 1,000 cores, then only 1,000 tasks will be executed as a given time. Again, other tasks are queued for later execution, but in this case, all the resource management is done by your cluster's workload management system (e.g. GridEngine, PBS, Torque, etc.).
Warning: Most cluster resource management do not guarantee that tasks are executed in the same order as queued. Even if they do or if they are executed in the same host, a task can start execution and immediately be preempted. So the next task in the queue can effectively start before the previous one.
There are different ways to execute tasks
| System | Typical usage | How it is done |
|---|---|---|
aws |
Running on an AWS EC2 instance | An AWS EC2 instance is created and the task runs in the instance. |
cluster |
Running on a cluster (GridEngine, Torque) | Tasks are scheduled for execution (using 'qsub' or equivalent command). Resource management is delegated to cluster workload management. |
generic |
Enable user defined scripts to run, kill and find information on tasks | This 'generic' cluster allows the user to write/customize scripts that send jobs to the cluster system. It can be useful to either add cluster systems not currently supported by bds, or to customize parameters and scheduling options beyond what bds allows to customize in the config file. For details, see bds.config file and examples in the project's source code (directories config/clusterGeneric ). |
local |
Running on a single computer. E.g. programming and debugging on your laptop or running stuff on a server | A local queue is created, the total number of CPUs used by all tasks running is less or equal than the number of CPU cores available |
moab |
Running on a MOAB/PBS cluster | Tasks are scheduled for execution (using 'msub'). Resource management is delegated to cluster workload management. |
pbs |
Running on a PBS cluster | Tasks are scheduled for execution (using 'msub'). Resource management is delegated to cluster workload management. |
sge |
Running on a SGE cluster | Tasks are scheduled for execution (using 'qsub'). Resource management is delegated to cluster workload management. |
slurm |
Running on a SLURM cluster | Tasks are scheduled for execution (using 'sbatch'). Resource management is delegated to cluster workload management. |
ssh |
A server farm or a bunch of desktops or servers without a workload management system (e.g. computers in a University campus) | Basic resource management is performed by logging into all computers in the 'cluster' and monitoring resource usage. |
Scheduling tasks
A task is scheduled by means of a task
expression.
A task
expression returns a task ID, a string representing a task.
E.g.:
File test_09.bds
tid := task echo Hello
print("Task is $tid\n")
Running we get:
$ ./test_09.bds
Task is test_09.bds.20140730_214947_810/task.line_3.id_1
Hello
task
is non-blocking, which means that bds
continues execution immediately without waiting for the task to finish.
So, many tasks can be scheduled by simply invoking a task statement many times.
Once a task
is scheduled, execution order depends on the underliying system and there is absolutely no guarantee about execution order (unless you use a wait
statements or other dependency mechanism).
E.g., this example shows clearly all the tasks are NOT executed in order, even on local computers: File test_10.bds
#!/usr/bin/env bds
for( int i=0 ; i < 10 ; i++ ) task echo Hi $i
$ ./test_10.bds
Hi 0
Hi 5
Hi 4
Hi 3
Hi 2
Hi 1
Hi 7
Hi 6
Hi 9
Hi 8
Resource consumption and task options
Often task
requires many CPUs or resources.
In such case, we should inform the resource management system in order to get an efficient allocation of resources (plus many cluster systems kill tasks that fail to report resources correctly).
E.g., In this example we allocate 4 CPUs per task and run it on an 8-core computer, so obviously only 2 tasks can run at the same time: File test_11.bds
#!/usr/bin/env bds
for( int i=0 ; i < 10 ; i++ ) {
# Inform resource management that we need 4 core on each of these tasks
task ( cpus := 4 ) {
sys echo Hi $i ; sleep 1; echo Done $i
}
}
Executing on my 8-core laptop, you can see that only 2 tasks are executed each time (each task is declared to require 4 cpus)
$ ./test_11.bds
Hi 0
Hi 1
Done 0
Done 1
Hi 3
Hi 2
Done 2
Done 3
Hi 4
Hi 5
Done 4
Done 5
Hi 6
Hi 7
Done 6
Done 7
Hi 9
Hi 8
Done 8
Done 9
List of resources or task options
| Variable | Default value | Resource / Task options |
|---|---|---|
allowEmpty |
false | If true, empty files are allowed in task's outputs. This means that a task producing empty files does not result in program termination and checkpointing. |
canFail |
false | If true, a task is allowed to fail. This means that a failed task execution does not result in program termination and checkpointing. |
cpus |
1 | Number of CPU (cores) used by the process. |
detached |
false | If true, the task will be detached, i.e. independent from the bds script originating it |
| 'mem' | 0 | Maximum amount of memory in bytes used by the process (0 means no restrictions or use cluster default) |
node |
If possible this task should be executed on a particular cluster node. This option is only used for cluster systems and ignored on any other systems. | |
queue |
Queue name of preferred execution queue (only for cluster systems). | |
retry |
0 | Number of times a task can be re-executed until it's considered failed. |
taskName |
Assign a task name. This adds a label to the task as well as the taskId returned by task expression. Task ID is used to create log files related to the task (shell script, STDOUT, STDERR and exitCode files) so those file names are also changed. This makes it easier to find tasks in the final report and log files (it has no effect other than that). Note: If taskName contains non-allowed characters, they are sanitized (replaced by _ ). |
|
timeout |
0 | Time in seconds that a task is allowed to execute (e.g. when running on a cluster). Ignored if zero or less. If process runs more than timeout seconds, it is killed. Zero means no limit. |
walltimeout |
0 | Time in seconds since the task is dispatched to the processing environment. E.g. in busy clusters a task can spend a long time being scheduled (cluster's PENDING state) until the task is run (cluster's RUNNING state), walltimeout limits the sum of those times (as oposed to timeout that only limits the RUNNIG state time). Zero means no limit. |
Conditional execution
Conditional execution of tasks can, obviously, be achieved using an if
statement.
Since conditional execution is so common, we allow for some syntactic sugar by task( expression1, expression2, ... ) { ... }
.
where expression1
, expression2
, etc. are either boolean expressions or variable declarations.
The task is executed only if all bool
expressions are true
.
So the following programs are equivalent
shouldExec := true
if( shouldExec ) {
task( cpus := 4 ) {
sys echo RUNNING
}
}
Is the same as:
shouldExec := true
task( shouldExec, cpus := 4 ) {
sys echo RUNNING
}
Note: This feature is particularly useful when combined with the dependency operator <-
For instance, the following task
will be executed only if 'out.txt' needs to be updated with respect to 'in.txt'
in := 'in.txt'
out := 'out.txt'
task( out <- in , cpus := 4 ) {
sys echo $in > $out
}
Syntax sugar
There are many ways to write task expressions, here we show some examples.
- A simple task
task echo RUNNING
- The same simple task
task {
sys echo RUNNING
}
- A simple, multi-line task (a backslash at the end of the line continues in the next line, just like in a shell script)
task cat file.txt \
| grep "^results" \
| cut -f 2 \
| sort \
> out.txtx
- A more complex multi-line task (
sys
commands are just multiple lines in a bash script)
task {
sys cat file.txt | grep "^results" > out.txt
sys cat other.txt | grep "^exclude" > words.txt
sys grep -v -f words.txt out.txt > excluded.txt
sys wc -l excluded.txt
}
- A task with dependencies
task ( out <- in ) {
sys cat $in | grep "^results" > $out
sys cat other.txt | grep "^exclude" > words.txt
sys grep -v -f words.txt $out > excluded.txt
sys wc -l excluded.txt
}
- A task with multiple inputs and outputs dependencies
task ( [out1, out2] <- [in1, in2] ) {
sys cat $in1 | grep "^results" > $out1
sys cat $in1 $in2 | wc -l > $out2
}
- A task with multiple inputs and outputs dependencies, using 4 CPUs and declaring a local variable 'tmp'
task ( [out1, out2] <- [in1, in2] , cpus := 4 , tmp := "$in1.tmp" ) {
sys cat $in1 | grep "^results" > $out1
sys cat $in1 $in2 > $tmp
sys wc -l $tmp | wc -l > $out2
}
- A task with a label (
taskName
) is easier to find in the report
task ( out <- in, cpus := 4 , taskName := "Filter results" ) {
sys cat $in | grep "^results" > $out
}


Next: not (Type Specifier), Previous: satisfies, Up: Types and Classes Dictionary
Combining.
(member
{{object}*})
object—an object.
This denotes the set containing the named objects. An object is of this type if and only if it is eql to one of the specified objects.
The type specifiers (member) and nil are equivalent. * can be among the objects, but if so it denotes itself (the symbol *) and does not represent an unspecified value. The symbol member is not valid as a type specifier; and, specifically, it is not an abbreviation for either (member) or (member *).
the type eql


Character Network Visualization Demo
Choose a movie from the list below and click submit to load its character network graph
Select a movie Above to see its graph.
Usage
The graph is interactive!
- Zoom in(alt+click) and rotate(shift+click) the graph to reveal interesting patterns
- Each node in the graph represents a character in the movie; hover on it to reveal its name
- Size of the node represents number of utterances by that character
- Male characters are blue colored, female characters are green colored
- The graph title indicates if a movie passes the Bechdel test
- Red nodes represent female characters that pass the Bechdel test


The TodoApp helps a user to generate a list of items, filter through, and delete list items from the log.
The app also marks every Todo as active or completed, and displays only all, active or completed Todo list.
It also clears all completed Todos from the list array.
The design is programmed with pure JavaScript also known as Vanilla JavaScript.
The todo-list-app is built using the MVC - Model, View, Controller blueprint
The Model, View and the Controller are separate entities. The Controller serves as the intermidiary between the Model and the View, thereby making it the only entity that can interact with the both.
The Model View Controller
In the app.js file, the Model, View and Controller is being initialized. This manages the user actions and connects the View with the Model in terms of interactions and operations.
The store.js file stores the last time the user visited the TodoApp. It stores it in the local storage.
This delivers helper functions for DOM elements - querying, wrapping, delegating events
Data management methods
file that concern template function to display list items, change button states, escape characters
This defines how the data will be displayed on the client side of the Todo
Bug which not allows adding new todos to the list (simple typo bug).
bug:
Solved:
Bug which may leads to potential conflict between duplicate IDs
bug:
Solved:
Missing id in input tag for toggle-all label which prevent toggle all todos to work properly.
Test was carried out using Jasmine
Jasmine is a JavaScript Open Source testing Framework
Show entries on start-up
Show active entries
Show completed entries
Show the content block when todos exists
Highlight "All" filter by default
Toggle all todos to completed
Update the view
Add a new todo to the model
Remove an entry from the model
Loading
Memory
Loading
Memory
| Evaluated Parameter | Our Todo App | Our Competitor App |
|---|---|---|
| Page load time | 498ms | 12.86s |
| DOM content load time | 508 ms | 3.50s |
| Number of requests sent | 11 requests | 106 requests |
| Amount of data transferred | 42.8kb | 165kb |
Short loading time
Low memory usage
Short time of performing functionalities
Simple design
The functionality is limited
Only local storage is used to store data
Ability to sort tasks
Ability to print list
User can create multiple list
User can create categories
Long loading time
High memory usage
Google ads significantly extend loading time


Events data, as returned by get_issue_events()
, provides
a granular view of issues in your GitHub repository. As opposed to the
issue-level data returned by get_issues()
,
get_issue_events()
provides timestamped event-level data
for each issue, such as the addition and deletion of labels and
milestones. See the Issue Events
GitHub API documentation for a more comprehensive list.
This detailed information has many potential uses. One use in
reporting and visualization is if if the created_at
date
for your issues does not have an intrinsic meaning and does not
represent when work on an issue was started.
For example, let’s suppose we pull some issues from our repo and
visualize their time-to-completion with viz_gantt()
.
my_repo <- create_repo_ref('emilyriederer', 'my_repo') issues <- get_issues(experigit, state = 'closed', milestone = 1) %>% parse_issues()
viz_gantt(issues)
Issue 1 stands out as having taken a very long time to complete. However, it’s possible it was created long before anyone started actively working on it. Instead, we might want to consider the start time to be, for example, when an issue was tagged with the “in-progress label”.
We can get events for a specific issue with the following code. Due
to the potentially massive size of this data, the function returns
events for a single issue at a time and, thus, has a required
number
parameter to specify the issue for which events
should be returned. As such, to events for multiple issues, we need to
use purrr::map()
.
Since events can also include adding assignees or milestones, we
filter our dataset to 'labeled'
events where the
label_name
is “in-progress”.
issue_events <- purrr::map(1:3, ~get_issue_events(experigit, number = .)) %>% purrr::map_df(parse_issue_events) %>% dplyr::filter(event == 'labeled' & label_name == 'in-progress')
The fields of the resulting dataframe are shown below. Note that in
this dataset, the created_at
field refers to when the
event was created (i.e. when the issue was labelled in this
case) and not when the issue was created.
head(issue_events) #> number id actor_login event created_at label_name milestone_title #> 1 1 123 emilyriederer labeled 2018-04-15 in-progress NA #> 2 2 124 emilyriederer labeled 2018-04-02 in-progress NA #> 3 3 125 emilyriederer labeled 2018-04-20 in-progress NA #> assignee_login assigner_login #> 1 NA NA #> 2 NA NA #> 3 NA NA
Next, we can join our datasets together. THe suffix
parameter allows us to append _event
to all the field names
from the events data to distinguished between the issue and event
created_at
fields.
issue_with_events <- dplyr::inner_join(issues, issue_events, by = "number", suffix = c("", "_event"))
Finally, we can use this new dataset to remake our plot by specifying
the name of the new created_at_event
variable as the
appropriate issue start date, via the optional start
parameter.
viz_gantt(issue_with_events, start = "created_at_event")


--- layout: post status: publish published: true title: "下雨前的天空" author: Leask author_login: leask author_email<EMAIL_ADDRESS>author_url: https://leaskh.com wordpress_id: 573 wordpress_url: http://leaskh.wordpress.com/2006/04/14/%e4%b8%8b%e9%9b%a8%e5%89%8d%e7%9a%84%e5%a4%a9%e7%a9%ba date: '2006-04-14 22:03:59 +0800' date_gmt: '2006-04-14 22:03:59 +0800' categories: - Life tags: [] comments: - id: 265 author: renee author_email: '' author_url: '' date: '2006-04-15 09:26:56 +0800' date_gmt: '2006-04-15 09:26:56 +0800' content: "事物噶原貌" - id: 266 author: renee author_email: '' author_url: '' date: '2006-04-15 09:26:25 +0800' date_gmt: '2006-04-15 09:26:25 +0800' content: "如果周围无黑色框 更加好 个人认为" ---


FARGO A film review by Michael John Legeros Copyright 1996 Michael John Legeros
(Gramercy) Directed by Joel Coen Written by Joel and Ethan Coen Cast William H. Macy, Steve Buscemi, Frances McDormand, Peter Stormare, Harve Presnell MPAA Rating "R" (presumably for language and violence) Running Time 98 minutes Reviewed at Shelard Park Cinemas, St. Louis Park, MN (21MAR96)
==
In the remarkably rich and furiously funny FARGO, brothers Joel and Ethan Coen have returned to their roots, both thematically and geograph- ically. The "brats," as they are called by some, have effectively remade their first film, BLOOD SIMPLE, as a Midwestern murder mystery with a cutting comedic edge. (Think of a snowy stew of darkness and deadpan-- BLOOD SIMPLE mixed with a little RAISING ARIZONA.) More importantly-- more hilariously-- the Twin Cities- born brothers have concocted their first loving celebration of all things Minnesota.
William H. Macy (last seen in what I call MR. HOLLAND'S ANUS) stars as a scheming Minneapolis car salesman (and putz), whose idea for raising cash involves kidnapping his wife to get the ransom from her rich father. Things quickly go wrong for everyone involved, including two "hired hands" from Fargo (Steve Buscemi and Peter Stormare). Three murders, two hookers, and one jump-start later, the very-pregnant, very-polite Brainerd (MN) Chief of Police Marge Gunderson (Joel's wife, Frances McDormand) steps into the picture. Or, rather, waddles.
FARGO is the least-stylized and, probably, most-mature Coen film to date. The oft-criticized brothers have, finally, achieved a balance between their love of eccentricity and their audience's base need for feeling. Simply, they've made a very quirky (read: very Coen) film with a heart. Here are characters with real, negotiable emotions-- unlike the past cartoon creations that have been all too common in the Coen universe. (THE HUDSUCKER PROXY, for example, is both a visual tour de force and an emotional black hole. Jennifer Jason Leigh's character-- the eventual force of good in the story-- never makes an emotional impact. She just talks fast.)
As we're in very SIMPLE territory, expect plenty of grisly details and sadistic flourishes. (A couple of tree-clearing tools are used to particularly fine effect. Nods to Paul Bunyan?) The laughs are there, too. FARGO is recorded in sing-song, Scandinavian stereo, with dialects and dialogue that you just don't hear south of Lake Michigan. (Yes, they really *do* talk like that. Yup, you betcha.) Don't expect an easy explanation for it all, tho. FARGO is more than a little intentionally obscure. For example, we don't know what to make of a hotel encounter between Marge and an old schoolmate. Is it a comment on her perpetual politeness? A deduction about her powers of reasoning? For all we know, the moment exists solely to hear an Asian-American who also talks with that wonderful accent.
Grade: A
--
Mike Legeros - Raleigh, NC
<EMAIL_ADDRESS>(h) -<EMAIL_ADDRESS>(w)
MOVIE HELL is on the Web!
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


DIRECTED BY: Keenen Ivory Wayans WRITTEN BY: Marlon and Shawn Wayans CAST: Anna Faris, Shannon Elizabeth, Cheri Oteri, Dave Sheridan
MPAA: Rated R for strong crude sexual humor, language, drug use and violence. Runtime: USA:112 (unrated version)
RATING: 8/10
"What's your favorite scary movie?"
Most good comedies can be recognized by a solid script with twists, turns and funny surprises. "Scary Movie" is comedy in Leslie Nielsen-style, which consists of canned satirical whacks and rough jokes tied together by slapsticks. It makes fun of practically every scary movie that has been released during the last decade: Borrowing the overall plot on an almost scene-by-scene basis, director Keenen Ivory Wayans sharpens his knives and starts cutting away at characters and situations. He then throws in sliced-and-diced pieces from I Know What You Did Last Summer, Scream 2, Election, The Blair Witch Project, Titanic/Amistad, The Sixth Sense, The Matrix, The Usual Suspects, The Exorcist and probably a few others into a colorful and sometimes crude mix.
''Scary Movie'' peaks pretty early when a bodacious high school student Drew Becker (Carmen Electra, who cheerfully toys with her image) making popcorn when the phone rings. A voice on the other end inquires what her favorite scary movie. Frightened she looks around and then at the table. On it she sees: a gun, a grenade, a condom and a banana. Naturally she chooses the banana. Soon, she's running through sprinklers in her underwear with a masked man in pursuit. She then sees two traffic signs. One says ''Safety,'' the other says ''Death.'' She obviously knows the rules of a slasher movie and chooses "Death". The next day, her murder is big news at the local high school, and pushy reporter Gale Hailstorm (Cheri Oteri) is shoving her mike into the faces of the glazed teens and shrieking at her cameraman while trying to harvest material for a sequel to her bestseller ''You're Dead, I'm Rich.'' Meanwhile, cute and innocent Cindy (Anna Faris) begins to worry that the murder might have something to do with a man she and her friends accidentally killed last Halloween. Her closest pals, Buffy (Shannon Elizabeth) Brenda (Regina Hall), and her boyfriend Bobby (Jon Abrahams), try to convince her otherwise. But the killer is soon stalking her, and not even the efforts of Deputy Dufy (Dave Sheridan) can save the day. The whole thing ends with a "Wild Things" epilogue.
Ever since ''Friday the 13th,'' ''Halloween,'' and ''The Evil Dead,'' the genre has rested on a solid, if inexplicable, base of teens rushing to dark, lonely places where they know violent murders occur. And director Wayans portrays their uncovered stupidity, primitive dialogue through ironysing every rule of scary movies -- every cliche of the horny teen horror genre, the teenage students played by actors in their 20s and early 30s, the sex kittens, and fringe characters like the student pothead and the doofus cop.
"Scary Movie" proves to be the kind of film that will offend the cultivated elderly audience and leave just about everyone else laughing until tears run down their cheeks. However, the films is far from perfect. The most obvious element is that "Scary Movie" requires that the viewer is familiar with the movies it so hard tries to parodieses. But even then you are not guarantee. Only about 40% of the jokes in Scary Movie work.  It moves from clever parallels to farts and body fluids and back again in a second. There are a lot of crude moments, and some that are simply too dumb to generate a response. However, considering the sheer quantity of material that is thrown at us, even a gigantic failure rate represents a lot of laughs. The film has a significantly higher laugh quotient at the beginning than near the end, the satire is sharper, the jokes funnier. During the final half-hour there are several noticeable dead spots, when there is no laughing in the theatre, just an awkward silence. In addition it is absolutely necessary to remember that "Scream" was also a slight parody on the slasher films as well. And so "Scary Movie" becomes at times a pushy parody on a parody on a parody, which is kind of unnecessary.
The question facing the target audience for ''Scary Movie'' is whether the funny bits will be enough of a payoff for sitting through the tedious stuff between them. Many have written angry remarks about the risky content of this film -- the discriminating "gay humor", the disturbing remarks on culture and art. This is very unfortunate. I believe that "Scary Movie" doesn't take anything too seriously, including itself. Being somehow provoked by this movie is completely unnecessary. I admit that it does push too hard at times and often crosses the line of decency and good taste, but the laughs are coming in a row - non stop and that's a sign of a successful comedy. And speaking for myself -- this is certainly my favorite scary movie in a very long time.
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


{% extends "docs/base.html" %} {% block title %}ID Docs Home{% endblock %} {% block content %}
This site helps transgender and gender nonconforming people to navigate federal and state rules to update their documentation.
What would you like to do?


?New
York
Botanical
Garden
6
7
8
9
10
Ñ
XT
w
The
New
York
copyright
reserved
botanical
Garden
PLANTS
OF
CUBA
SOUTHERN
ORIENTE
AND
PICO
TURQUINO
Det.
by
B.A.Krukoff,
1938.
Erythrina
cubensis
bright
______
Coll:
Fre.
Leon
No...
?±U.U.
E.
L,
Ekman
No,
JULY
19Z2
1618926
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


<input>
with aria-valuemin
← Return to main list
This is a test case designed to determine how the aria-valuemin
attribute is announced. In real situations, authors should always provide clear instructions on how to successfully complete form questions.
Example
Code

Choose a number
<input
type="number"
id="number"
aria-valuemin="5"
>

Assistive technologies
VoiceOver
- Chrome: Choose a number. Stepper. [aria-valuemin attribute not announced]
- Firefox: Choose a number. Stepper. [aria-valuemin attribute not announced]
- Safari: Choose a number. Incrementable. Edit text. [aria-valuemin attribute not announced]
NVDA
- Chrome: Choose a number. Spin button. Editable. [aria-valuemin attribute not announced]
- Firefox: Choose a number. Spin button. Has autocomplete. Editable. [aria-valuemin attribute not announced]
- Edge: Choose a number. Spin button. Editable. [aria-valuemin attribute not announced]
JAWS
- Chrome: Choose a number. Edit. Spin box. To set the value use the arrow keys or type the value. [aria-valuemin attribute not announced]
- Firefox: Choose a number. Edit. Spin box. To set the value use the arrow keys or type the value. [aria-valuemin attribute not announced]
- Edge: Choose a number. Edit. Spin box. To set the value use the arrow keys or type the value. [aria-valuemin attribute not announced]
← Return to main list


Investment Portfolio Dashboard
About
Support
Download .zip
GitHub Project
Investment Portfolio Dashboard
Goals
Portfolio
Performance
Allocation
Bonds
Stocks
Portfolio Performance
Time
(25 years)
1 year
50 years
Instruments Details
Portfolio Performance
S&P 500
Dow
NASDAQ


The new adult Selena Gomez simply. isn't nearly as much fun lyrics, Selena Gomez has quashed rumors that the song is somehow about her and ex boyfriend
Apr 29, 2013. Listen to Selena Gomez - Come & Get It [Gogo Remix] - WPGC 95. 5 Exclusive by The song has already become the new rave of the city.
Apr 8, 2013. Selena Gomez's upcoming single "Come & Get It" wasn't supposed to drop until Tuesday, but the Internet couldn't wait So after the track leaked May 8, 2013 Watch Come & Get It by Selena Gomez free. in HD with high quality sound on MUZU TV plus. over. Support the artists you love by watching this legal music video itn - Selena Gomez launches new. clothing range in Berlin May 8, 2013 After a quick succession of live performances of her new single "Come & Get It", Selena Gomez premieres its almost five-minute music video.
Apr 30, 2013. Get a Behind-the-Scenes Look at Selena. Gomez's New Music Video be a scene in her new music video for "Come. and Get It," the lead single
Watch Music Clip Come & Get It of Selena Gomez in video on Jukebox ! Add a Clip Add a. new Music video Music Clip - Love you like. a love song · 4 Apr 30, 2013 After personally introducing the music. video, Gomez will sit for an MTV Gives First Look at SELENA GOMEZ's New Video 'Come & Get It May 9, 2013 Selena Homez appears in a photo from. her 2013 music video Come and. Gomez seems to be happy that the new video is going over well, May 12, 2013. She's a former Disney girl who shot to fame thanks to her wholesome and innocent image, but Selena Gomez couldn't be further away from her Watch the music video premiere of Selena Gomez's single Come & Get It and more new music videos on Slack-Time.
Apr 7, 2013 Last night, Aril 6, Selena Gomez's new song 'Come & Get It' leaked early and her Selenators rushed to Ryan Secrest's website so quickly they
The music video for the song was filmed in Paris and was released on July " Exclusive: Selena Gomez reveals the title of her new single as 'Come and Get It'" Apr 7, 2013. Type: Audio > Music; Files: 1; Size: 9. 05 MiB (9486681. Bytes) Album : Come & Get It - Single Album/Performer : Selena Gomez Part/Position Aug 25, 2013 Selena Gomez won the award for Best Pop Video for her song Come & Get It at the 2013 MTV Video Music Awards The singer, who wore a long blue gown to the award show at New York's Barclays Center, said her thanks May 8, 2013 Selena Gomez and Demi Lovato both have new music videos out, for 'Come & Get It' and 'Heart Attack' respectively, with very different themes. May 9, 2013 Grand Prairie's own Selena Gomez has released the music. video for her latest single Come & Get It The song was also performed on the


Hi there and welcome to Bus Mall! We're looking to survey prospective buyers so we can get an accurate idea of what people want!
There are 3 products below. Please click on the one that interests you most. We'll have you go through this 25 times. Thanks again for clicking!


---
format: html
title: "ADC Web Standards Monthly \xE2\x80\x93 FREE Newsletter"
author: Holly Schinsky
type: post
external: true
link: http://devgirl.org/2013/02/12/adc-web-standards-monthly-free-newsletter/
status: publish
tags:
- PhoneGap Network
date: 2013-02-12 23:55:17 Z
---
Brian Rinaldi at the Adobe Developer Connection (ADC) has recently put together a free monthly newsletter to help keep you up to date on all the latest and greatest content available on the ADC. The topics span a variety of subjects including HTML5, JavaScript, CSS, Mobile Development, PhoneGap, Responsive Design and more. The January newsletter [...]


Hi! I'm Eric Dell'Aringa. A recent San Francisco transplant from Chicago. Before starting to code I worked as a Civil Engineer designing roads. My passions and hobbies include competive gaming, music and spending time with my wonderful girlfriend Sarah.


Just a URL.
URL and title.
URL and title.
URL and title.
URL and title.
5
Empty.
URL and title.
URL and title.
URL and title.
URL and title.
10
URL and title.
URL and title.
[URL and title] (/url/file.txt “title”).
[URL and title]
(/url/file.txt “title”).
URL and title.
15
URL and title.
URL and title.
URL and title.
URL and title.


Your communities are completely devoid of posts! You could be the first to unite people around a common vision. Just click the button above to start.


---
layout: post
title:
date: '2016-01-14T09:24:00.001-08:00'
author: geoff purdy
tags:
modified_time: '2016-01-14T09:24:22.798-08:00'
blogger_id: tag:blogger.com,1999:blog-1206336038417661147.post-1261256166452720739
blogger_orig_url: http://geoffreypurdy.blogspot.com/2016/01/i-found-new-front-runner-for-worst-uiux.html
---
I found a new front runner for worst UI/UX in the HR recruiting arena: https://breezy.hr


Title: {{ MOVIE.TITLE }}
Year: {{ MOVIE.YEAR }}
Original Title: {{ MOVIE.ORIGINAL_TITLE }}
Set: {{ MOVIE.SET }}
Genres: {{ MOVIE.GENRES }}
Tags: {{ MOVIE.TAGS }}
Plot: {{ MOVIE.PLOT }}
Plot simple: {{ MOVIE.PLOT_SIMPLE }}
Tagline: {{ MOVIE.TAGLINE }}
Writer: {{ MOVIE.WRITER }}
Director: {{ MOVIE.DIRECTOR }}
Trailer: {{ MOVIE.TRAILER }}
Rating: {{ MOVIE.RATING }}
Votes: {{ MOVIE.VOTES }}
Runtime: {{ MOVIE.RUNTIME }}
Playcount: {{ MOVIE.PLAY_COUNT }}
Last played: {{ MOVIE.LAST_PLAYED }}
Countries: {{ MOVIE.COUNTRIES }}
{{ BEGIN_BLOCK_TAGS }}
Tag: {{ TAG.NAME }}
{{ END_BLOCK_TAGS }}
{{ BEGIN_BLOCK_GENRES }}
Genre: {{ GENRE.NAME }}
{{ END_BLOCK_GENRES }}
{{ BEGIN_BLOCK_COUNTRIES }}
Country: {{ COUNTRY.NAME }}
{{ END_BLOCK_COUNTRIES }}
{{ BEGIN_BLOCK_STUDIOS }}
Studio: {{ STUDIO.NAME }}
{{ END_BLOCK_STUDIOS }}
{{ BEGIN_BLOCK_ACTORS }}
Actor: {{ ACTOR.NAME }}: {{ ACTOR.ROLE }}
{{ END_BLOCK_ACTORS }}
Video width: {{ FILEINFO.WIDTH }}
Video height: {{ FILEINFO.HEIGHT }}
Video aspect ratio: {{ FILEINFO.ASPECT }}
Video codec: {{ FILEINFO.CODEC }}
Video duration in seconds: {{ FILEINFO.DURATION }}
Audio codec(s) (joined by |): {{ FILEINFO.AUDIO.CODEC }}
Audio channels(s) (joined by |): {{ FILEINFO.AUDIO.CHANNELS }}
Audio languages(s) (joined by |): {{ FILEINFO.AUDIO.LANGUAGE }}


I think Python's functional nature is largely misunderstood. For instance, from a Lambda the Ultimate post on Python 2.5 (re: partial):
yeah, espesially as GvR's attitude so far seems to have been that functional programing is not in the style of python, and should be avoided. With the proposed removal of lambda and so on. Is this a change in policy? Will they make functional programing in Python reasonable? do we get tail call optimisations?
This comes up a lot. It doesn't help that some people often say with glee that Guido has said Python isn't a functional language. Like it's a big stick in the eye to every Lisper.
My own interpretation is that Guido has bristled at the suggestions by functional programming proponents that Python take on certain features simply because they are in other languages. These arguments are often presented with little justification involving real use cases. Similarly people will argue for features -- like truly private instance variables -- with the argument that this is required for Python to be a "real" object oriented language. The functional people at least have a pleasant academic air to their claims; the OO people often finish their argument with a "this is necessary for Python to be taken seriously in the enterprise."
But I digress... in reality, Python is a pretty decent functional programming language, with functional alternatives to many mutating operations (e.g., + instead of .extend(), sorted() instead of .sort()), closures, many immutable types, you can use tuple as the poor man's cons, and so forth.
If its any indication, the OO-flavored interface and adaptation proposals have lingered for years, in large part because Guido's resisted, or at least his apathy towards them. When generic functions were brought up as an alternative -- a much more functional approach to the same problems -- he warmed to it quickly.
Decorators are another case where a major functional feature has been adopted in Python, with pretty good uptake. It's not a pattern or syntax I see in other functional languages that much (at least I'm not aware of it), but it's still a strongly functional feature and is serving as the basis for many other functional constructs (including generic functions).
Some functional concepts are unlikely to get traction anytime soon, like tail call optimization. I would argue because tail call optimization is inaccessible to programmers who aren't steeped in recursive theory, and rather boring in its effect.
Lambda is syntactically -- not semantically -- awkward, but Python has true closures so the fundamental technique is still just as available. If you read Guido's explanation about why lambda isn't being improved, nor another function-expression syntax added, it's not that he thinks the idea of first class functions is wrong. First class functions are used all over the place in typical Python programs. It's just an issue of syntax.
The functional module itself is more about introducing functional language into Python, without rephrasing Python as a whole in those terms (hence partial is not added to builtins). Also it's just a place to put some functional patterns. Though there was discussion of renaming that module to just to functools, because the scope seemed a little funky -- there are functional constructs elsewhere in the standard library already (e.g., itertools), and some other routines seem related but not really "functional".
But I'm still curious: what other functional concepts aren't in Python that people think should be? Functional patterns that rely on removing ideas won't work -- like removing mutation -- but what is there that could be added to Python to make it more functional-friendly? I honestly can't think of a whole lot.
What I liked most about OCaml (and I think Haskell has it, too) is pattern matching. I don't think that it will ever make its way into python and I'm not sure if I liked it either.
But it's definately one of the cooler, functional language/syntax features out there.
Somehow it could be done, though.
def insertElementIntoTree(tree, element): if element < tree.left: if (Pattern(tree) == Pattern(left=None) and element < tree.left: insertElementIntoTree(left) # ...Anyway, it's kind of obscuring the code if Pattern would not become part of the standard library.
It is extremly easy to implement, by the way: http://home.in.tum.de/~bayerj/patternmatch.py
(not extremly well tested, just a scratch...)
Generic functions, or particularly RuleDispatch, accomplishes just this. Maybe like:
@generic def insert_element(tree, el): raise NotImplementedError @insert_element.when('tree.left is None or el < tree.left') def insert_element_left(tree, el): insert_element(tree.left, el) ...At least, I think that does what you want. I wouldn't bank on the performance of that algorithm ;) But the functionality is there, particular in RuleDispatch (which with arbitrary predicate dispatch is more general/powerful than what is being proposed for py3k). Well, I guess I'm not entirely clear on the intention f Pattern(left=None); I guess I'd express that as lambda tree: tree.left is None. I assume the distinction is primarily in a language like OCaml, where you can statically analyze aspects of patterns, which is not generally possible in Python.
# Ian Bicking
Is the reason that you don't bank on the performance ;) that eval()-ing the condition in quotes would be a bottleneck?
It's not eval'd, it's compiled on import; it's just that doing that branching operation for every pass of a rather tight loop (in tree traversal) isn't an efficient way to do that operation.
# Ian Bicking
www.katalog.wesnoth.pl holifld.info/katalog www.elate.pl/cat/ marek.holewinski.pl/katalog www.strony.pinia.pl www.dobredomy.pl/katalog/ www.artefakt.pl/katalog/ katalog.programisci.com.pl strony.shaco.pl katalog.twojapraca.info www.katalog.gigante.pl www.kat.plusk.info k1024.toreuse.pl b2b.wroclaw.pl/katalog/ news.stylokna.pl ale.biurka.pl k1024.telewizorek.pl stop.perfectfresh.com kat.gigahurt.pl www.strony.prbox.pl katalog.gcity.pl ups.markpol.biz www.coolmarket.net/katalog


{% extends "layout.html" %} {% block page_title %} Example - Forms {% endblock %} {% block content %} {% include "includes/phase_banner_alpha.html" %} Questions scaffolding {{formData | safe}} Are you putting scaffolding in or over a river? Are you erecting scaffolding or ladders in or over a river? Yes No {% endblock %}


You can specify different actions to be performed when a method is invoked with different parameters:
allowing (calculator).add(1,1); will(returnValue(3)); allowing (calculator).add(2,2); will(returnValue(5)); allowing (calculator).sqrt(-1); will(throwException(new IllegalArgumentException());
You can specify that the same method can be invoked a different number of times with different parameters:
one (calculator).load("x"); will(returnValue(10)); never (calculator).load("y");
Actual parameters match if they are equal to the expected parameters.
For most values, equality is determined by the equals
method.
Null values are checked beforehand, so it is safe to pass
null
as an expected or actual parameter value. Arrays are
treated as a special case and compared recursively: two arrays are
considered equal if they are the same size and all their elements are
considered equal. If you want to ignore parameters or match parameter
values in a different way, you will need to define matchers for each parameter of the
expectation.


One-colored border!
Two-colored border!
Three-colored border!
Four-colored border!
Note: The "border-color" property does not work if it is used alone. Use the "border-style" property to set the borders first.


능력치 HTML5 / CSS3 100% Javascript / jQuery 70% Responsible Web 80% Web Standard 60% Web Accessibility 60% Photoshop / Illustrator 100% Branding 85% English 100% Tagalog 25%
경험치 YEARS IN THE PHILIPPINES 10 YEARS IN W/ DESIGN 05 WEBS DEVELOPED 06 LOGOS IN USE 25 LOGOS DESIGNED 556+


| 1 |
| Midterm Exam Handout for e01 |
| CS24 W18 |
INSTRUCTIONS FOR QUESTION 1
The Aircraft
class is intended to represent one of the rows in the table shown here,
which is a portion of the United Airlines fleet:
| Boeing 747-400 (744) | wifi | 52 Business First | 240 Economy | 70 Economy Plus | 12 Global First |
| Boeing 767-300 (763) | wifi | 26 BusinessFirst | 80 Economy | 71 Economy Plus | 6 Global First |
| Boeing 787-8 (788) | wifi | 36 BusinessFirst | 113 Economy | 70 Economy Plus | |
| Boeing 787-9 (789) | wifi | 48 BusinessFirst | 116 Economy | 88 Economy Plus | |
| Embraer EMB 170 | wifi | 48 Economy | 16 Economy Plus | 6 First | |
| Embraer EMB 175 | no wifi | 48 Economy | 16 Economy Plus | 12 First | |
| Bombardier CRJ-200 | no wifi | 46 Economy | 4 Economy Plus | ||
| Bombardier CRJ-700 | no wifi | 28 Economy | 32 Economy Plus | 6 First |
As you can see, for each Aircraft in a fleet, we need to be able to store:
- a
name
, such as"Boeing 747-400 (744)"
or"Embraer EMB 175"
- an indication of whether the plane has wifi or not
- a collection of Cabins
For your convenience, you may assume that there is a Cabin
class available to you with:
- a constructor:
public Cabin(String name, int seats)
- public getter methods:
String getName()
andint getSeats()
- a public
String toString()
method that returns a cabin in the format shown in the table, e.g."28 Economy"
Your job is to write the public class Aircraft
, with all of the following:
- (10 pts) Correct syntax and structure of a Java class.
- (8 pts) Private instance variables for the data members (attributes)
-
(8 pts) A two-argument constructor that takes arguments for the name of the aircraft, and whether or not the aircraft has wifi: Example invocation:
Aircraft a = new Aircraft("Boeing 747-400 (744)",true); Aircraft b = new Aircraft("Embraer EMB 175",false);
- (8 pts) getter methods called
getName
andhasWifi
that return appropriate values -
(8 pts) a method
addCabin
that adds a Cabin object to the aircraft. For example,Aircraft a = new Aircraft("Boeing 747-400 (744)",true); Cabin bf = new Cabin("Business First",52); a.addCabin(bf); Cabin e = new Cabin("Economy",240); a.addCabin(e);
-
(8 pts) a correct
toString()
method. The method should return a representation of the aircraft object in a format that follows these examples.Boeing 747-400 (744) (Capacity: 374 ) Bombardier CRJ-200 V1 (Capacity: 50)
The capacity should be the sum of the capacities of all cabins that have been added to the Aircraft.
Note that for this exam, you do NOT need to include Javadoc comments
or write a .equals
method.
Total Points: Total points: ?
The list contains data for the United Airlines fleet as shown on the website SeatGuru, Copyright © TripAdvisor LLC, 2016. Reproduced here under “fair use” doctrine for classroom use.
Code for Question 6
public class Dog {
private static Dog dogOfTheWeek = null;
private String name;
public void setAsDogOfTheWeek() {
dogOfTheWeek = this;
}
public static Dog getDogOfTheWeek() {
return dogOfTheWeek;
}
public Dog(String name) { this.name = name;}
public static void main(String [] args) {
Dog d1 = new Dog("Snoopy");
Dog d2 = new Dog("Princess");
Dog d3 = new Dog("Rover");
Dog d4 = new Dog("Spot");
Dog d5 = new Dog("Fido");
d5.setAsDogOfTheWeek(); /* 1 */
d2 = d1; /* 2 */
Dog d3 = d6; /* 3 */
Dog temp = d2; /* 4 */
d2 = d5; /* 5 */
d5 = temp; /* 6 */
d3 = getDogOfTheWeek(); /* 7 */
d1.setAsDogOfTheWeek(); /* 8 */
d1 = null; /* 9 */
d2 = null; /* 10 */
d3 = null; /* 11 */
d4 = null; /* 12 */
d5 = null; /* 13 */
temp = null; /* 14 */
} /* 15 */
}


Protein¶
This module calculates the abundance of each of the 20 amino acids who compones proteins. The main input files by user are the GenBank annotation file as well as the proteomic data.
Note
Quantitative proteomic is hard to obtain. Using transcriptomic data assuming a 1:1 RNA abundance to protein may provide a working estimate for the cell’s amino acid composition.
The total protein weight percentage in the cell is provided as a fraction (number between 0 and 1). The GenBank files and proteomic should be compatible together. This means that the Gene IDs provided by the proteomic file should be accessible in the GenBank file Protein uses CDS elements only. The translation into amino acid should be available as well as the locus tag. Hence the transcriptomic file should include the GenBank locus tags as gene identifiers in the first column and the relative abundances in the second.


Sample Custom Configuration
// all fields are optional to override
// the gauge uses defaults if the config field is not overridden
config = {
strokeWidth: DonutWidth.Thick,
gradientDirection: DonutGradientOrigin.BottomLeft,
gradientColors: ['#9d11af', '#309aad', '#cef995'],
baseColor: '#dae5c9',
textColor: '#309aad',
label: 'testLabel',
title: 'title'
};
To get constants that
strokeWidth
and
gradientDirection
use, please import them from
donut-gauge.constants.ts
.
Custom Parameters:
strokeWidth
|
Width of the stroke. See
donut-gauge.constants.ts for possible values. |
gradientDirection
|
The starting direction of the linear gradient for the colors used in the gauge. See
donut-gauge.constants.ts for possible values. |
gradientColors
|
Takes array of colors in hexadecimal strings prefixed by with
# . The first color in the array is the color at the source of the gradient and the rest goes in order. For
a solid color, supply only 1 color in the array. |
baseColor
|
The color of the gauge base. Is grey by default. Takes a hexadecimal string prefixed with
# . |
textColor
|
The color of the percentage value and label in the middle. Is black by default. Takes a hexadecimal string prefixed
with
# . |
label
|
Optional text label under the percentage. |
title
|
SVG Chart Title for accessibility purposes. |


{% extends "templates/partials/base.html" %}
{# This sets our page
. It will append videos to the site title defined in base.html #}
{% block title %}{% parent %} - videos{% endblock %}
{% block content %}
{# The first thing we do is call videos data from the CMS. #}
{% set data = cms.videos %}
{# Next we sort the data by publish_date. The true bit reverses it so it's newest first. Learn more: #}
{# http://www.webhook.com/docs/template-rules-and-filters/#sortproperty_reverseorder #}
{% set data = data|sort('publish_date', true) %}
{# This is how you set pagination. It's always important to do this after your sort. #}
{% set data = paginate(data, 5) %}
List of videos
{# This forloop can use any data from http:localhost:2000/cms/#/form/videos/ #}


{include file="public/head" /}
{include file="public/header" /}
{include file="public/breadcrumb" /}
{__CONTENT__}
{include file="public/script" /}


From this section you can launch a new Nuke instance with the profiler listener active, so to create the xml report file.
By default the Nuke instance will be created with the current Nuke executable.
However, it can be changed to a different one.
Also, when selecting the nuke executable, be sure to select the base Nuke and not the other modes.
You can also specify the mode in which Nuke's will launch (NukeX, NukeStudio, etc.).


Occasionally it is necessary to add a literal segment to a key definition, usually to provide data for some tag field that has a fixed literal value in a related file. Even more occasionally, it may be necessary to specify a literal value that includes trailing spaces.
For example, if you are attempting to define a literal key segment to map to and provide a value for a tag field in another structure that is defined as an A3, and the value you need to specify is "1 " (the digit 1 followed by two spaces), then there can be a problem, because literal key segment values are stored in an A30 variable, and are trimmed by repository, which then considers the length of the literal key segment to be 1.
To get around this problem, CodeGen allows you to indicate significant trailing spaces in a literal key segment value using the tilde character (~). So in the previous example, the literal value could be specified as 1~~ (the digit one followed by two tilde characters).
Doing so will result in CodeGen considering the length of the key segment to be as defined by the string as stored (three in the example), but the tilde characters are replaced by spaces by expansion tokens such as <SEGMENT_LITVAL> and <LITERAL_SEGMENT_VALUE> that insert the literal value.
Copyright © 2021 Synergex International, Inc.


Bailian Group Fashion Center YanQingLi / Stefano Boeri Architetti
- Curated by 韩爽 - HAN Shuang
- about 2 hours
- version="1.0" encoding="UTF-8"? Architects: Stefano Boeri Architetti
- AreaArea of this architecture projectArea: 6233.0 m2
- version="1.0" encoding="UTF-8"?YearCompletion year of this architecture project Year: 2018
- version="1.0" encoding="UTF-8"?PhotographsPhotographs: Haiting Sun
- Lead Architects Stefano Boeri Architetti China
- Partners Stefano Boeri, Yibo Xu
- Project Director Pietro Chiodi
- Project Architect Yifan Xu, Claudia Scaglioni
- Design Team Zhiyang Huang, Yitao Huang, Yifan Fei, Mengting Shi
- Clients Bailian Yingshi Enterprise Management Co., Ltd
- Structure Shanghai Tongji Interior Design & Construction Co., Ltd
- The construction team Shanghai Construction NO.5 (Group) Co.,Ltd
More Specs Less Specs
"Preservation and restoration of excellent historical buildings should give consideration to both protection and utilization. On the premise of protecting the value of excellent historical buildings, reasonable use of their architectural functions should be made to explore their social value and realize sustainable utilization. “Said Stefano Boeri, founder architect of Stefano Boeri Architetti.
"After the renovation, YanQingLi adheres to the principle of repairing the old as the old, and making up the new with the new. It respects the history while reflecting the original historical and cultural connotation, and fully considers the relationship and dialogue with the surrounding environment, landscape and architecture. “Said Dr. Yibo Xu, the Chinese partner and studio director of Stefano Boeri Architetti.
YanQingLi is a warehouse located at Suzhou South Road NO. 955-991, with a total construction area of 6,233.12 square meters. This wooden old warehouse with gray titles was built in 1929. It is a typical English style building with three layers of gray tiles. The wall is made of blue and red bricks, with partial cement finish and rows of archy windows. Meanwhile, this building is regarded as one of the fifth group of excellent historical buildings.
Italian architect Stefano Boeri and his China Partner Dr. Yibo Xu made the design principles based on the need of protection of historical relics and creating new fashionable office space.
Firstly, the design should keep its original structure to show respect to the old appearance. At the same time utilize modern technologies to make the building more complete and highlight its features. During the design process, designers have taken a history, local culture, surrounding environment, landscape and the connection among the buildings into account thus trying the best to keep the old stuff.
The atrium is reopened as the main entrance of the construction. At the same time, the interaction between the building and the neighborhood community has been established due to its open attitude. Individuals so now have the opportunity to get closer to the historical relics and enjoy the advanced facilities.
What’s more, the interior space distribution is designed according to a rational utility. Advanced facilities and different functions have been adopted to facilitate the requirement of top fashion office operation. So that it attracts potential overseas fashion academy to enter here to work and exhibit.
This project restores the historical building and revives the culture along the Suzhou River. It not only remains the original landscape of this region but also brings new blood to the local industry, becoming a model of encouraging the fashion industry around the Suzhou River district. And this entirely matches Shanghai City’s ambition of being the fashion city of the country, leading to a positive effect on the price of the rental.


Page Links: Index Page
| Biggles78 18th Aug 2010, 16:19 permalink Post: 19 |
10,000kg in a trim tank?
 Also wish someone had recorded her being rolled (like the B707 when being displayed). Now that would be something that would stand along side the noise abatement takeoff or maybe not. The T/O is impressive!!
M2dude and ChristiaanJ, please keep posting any anecdotes that you remember about this incredible aeroplane. It really is fascinating learning about the technical side from those who actually knew her. |
|||
| EXWOK 24th Aug 2010, 18:13 permalink Post: 96 |
Attitudes
Always more nose up than a conventional a/c.
As you note, about 4 in the CRZ. About 10.5 degs on approach. As part of the performance calcs we calculated a 'theta 2' value of pitch. This was bugged on the ADI with a little bug controlled from a thumbwheel on the yoke - at all speeds very accurate pitch control was required, hance this device and the ADI being calibrated in 1 degree increments. Theta 2 was attitude reqd to obtain V2 in the first segment with one engine out, i.e. the target attitude if an engine failed after V1. Once the gear was up (second segment) one would pitch up a little to hold V2 until 600ft then start initial accel. On all engines, one held it until 250kts then pitched up to maintain that speed. You'd typically reach it before passing over the M25 departing LHR to the West. In all cases, as soon as SID altitude or noise abatement limits had been reached you went to the barber's pole asap (400kts initially) as this was where best performance lay. |
|||
| EXWOK 26th Aug 2010, 10:23 permalink Post: 128 |
take-off performance
Galaxy flyer -
TO perf calcs were basically sinilar to a susonic type, which involved a tabulation for each runway in a manual and an A4 proforma. It was no more complex than a 'Classic' 747, but with a slightly different emphasis - e.g. all take-offs at full, reheated thrust, calculation of fuel transfer or burn off during taxy to achieve TOCG, calculation of timings and thrust setting for runway-specific noise abatement procedures, calculation of theta 2, and planned fuel flow and P7 to set in the take-off monitor (A system designed to aid, but not substitute, the decision of the FE as to whether TO thrust had been achieved, as well as auto selection of contingency power if a failure was detected). You'd also determine whether a single reheat failure was acceptable that day - the little '3' or '4' bug at the lower left of the engine instruments was set as a visual reminder. Not sure what you mean by Vzf? No flaps on this machine, so no change. May be a difference of nomenclature. Since there is no defined stalling speed for a delta (by conventional standards we lifted off about 60kts below 'stalling speed') Vzrc was substitued. This is the speed at which full thrust would result in a zero rate of climb. On three engines, this was the basis of the perf calculation, but we also calculated 2-eng Vzrc's gear up and gear down. IIRC they would come out at about 250kts/300kts. On a transatlantic sector you would do all this and the speeds would invariably be within 5 kts of 160/190/220kts. (V1,Vr,V2)...... In the end we had a little handheld computer which would perform take off calcs, but to be honest it was only a minute more effort to carry out a manual calc. |
|||
| Brit312 27th Aug 2010, 21:32 permalink Post: 144 |
ChristiaanJ
The way I remember it was "3-2-1 now" was to ensure that all 3 crew members started their stop watch at the same time i e on the call of NOW as that was the point the throttles were moved rapidy to the forward stops. In fact the noise abatement timing assumed the engines were allowed to accelerate at their own rate, rather than at a rate controlled by the crew "Green lights" served two purposes 1] To allow the pilots to have a quick reference as to the state of the engines during the Take off 2] Prior to the nose gear mod ona rough runway [when it could be difficult to red the engine instruements] it did give the F/E an indication that the engines had reached the basic power required 3/4 tab. as different T/Os required diferent minimum reheats either 3 or 4 The small 3/4 tab was there just to visually remind crew as a back up to the briefing whether they were on a 3 or 4 reheat day I have not I believe been on an aircraft where you run up to full power before releasing the brakes, but there again the memory could be fading, and I am sure the sudden release of brakes at full power would not do them any good Mind you I could be wrong |
|||
| EXWOK 3rd Nov 2010, 04:17 permalink Post: 660 |
They weren't used for take off because there was no relevant mode. The initial climb was to hold 250kts after takeoff until a predetermined time for noise abatement (a little over a minute ex-LHR, less ex-JFK) and then start to accelerate after the NA thrust reduction.
It was a balancing act and different for each departure - the RoC actually went up the faster you went so you were easing up, maximising the acceleration, while ensuring you (just) made the SID alt requirements. So, apart from a few seconds holding 250kts, there really wasn't a mode that would work in pitch; you would have to take vert speed and be constantly asking the NHP to select different VS's and HDGs and they had quite enough to do already. No benefit, so don't use it. Once you'd got to Vmo during the SID (it was 400kts at that point) you could use Max Climb mode (see earlier discussions) and that was generally when the FD was engaged. It was permissable to engage the AP at an early stage, in which case HDG mode and Pitch Hold would be used, but it was more effort than hand-flying, less accurate and less fun so that was a rare event. On approach, if an ILS was being flown, you are correct that the FD could be used, although for a typical approach it needed to be off at 300'. This was because wherever possible we flew a 'Reduced Noise Approach' (again, see earlier comments) which consisted of holding 190kts to 800' then reducing to final speed to be stable by 300'. AP/FD had to out by 300' in this case, owing to the very tight pitch control required for which it wasn't certificated (although it could carry out a very good coupled approach and landing if given a more stable approach). In summary - a very 'hands-on' aeroplane. And all the better for it |
|||
| M2dude 18th Nov 2010, 00:32 permalink Post: 719 |
Mr Vortex
Quote:
The area of the primary nozzle Aj, was varied for 2 'primary' purposes : a) To act as a military type 'reheat' or 'afterburning' nozzle; opening up to control the rise in jet pipe pressure P7, as reheat is in operated. b) To match the INLET TOTAL TEMPERATURE RELATED (T1) speed of the LP compressor N1 to the HP compressor N2 against a series of schedules, ensuring easch spool is as close as safely possible to its respective surge boundary, (with a constant TET, see below) and therefore at peak efficiency. Now, in doing this a complex set of variables were in place. As the nozzle is opened there is a REDUCED pressure and temperature drop across the LP turbine. This has the effect of enabling a HIGHER N1,as less work is being done by the turbine. Also the change (in this case a decrease) in the temperature drop across the turbine will obviously affect the turbine entry temperature, TET. A closing down of the nozzle would obviously have the opposite effect, with a DECREASE in N1 and an INCREASE in TET. In practice at a given T1 there was always an ideal N1 versus N2 on the control schedule (known as the E Schedule), the TET staying more or less constant from TAKE-OFF to SUPERSONIC CRUISE!! As far as noise abatement went; when reheat was cancelled and power reduced after take-off, an E Schedule known as E Flyover was automatically invoked. This had the effect of driving the primary nozzle nearly wide open, reducing both the velocity of the jet efflux and in essence the noise below the aircraft. The real beauty of this primary nozzle system was that it really did not care if the engine was operating dry or with afterburning ('it' did not even know). P7 was controlled against a varying compressor outlet pressure, the variable being controlled by a needle valve operated by the electronic engine controller. (If this is unclear I can post a diagram here that shows this control in action).
Quote:
I hope this answers some of your queries Best Regards Dude |
|||
| M2dude 18th Nov 2010, 12:25 permalink Post: 724 |
Mr Vortex
Quote:
Quote:
The use of E LOW above 220KIAS was not only strictly inhibited by the automatics, if you over-rode the automatics and 'hard selected' E LOW , the aircraft would fall out of the sky when reheat was cancelled at Mach 1.7. This was because the low N1/√θ scheduled by E LOW would now invoke an N2/√θ limit (The E3 Limiter in the diagram) and claw off fuel flow by the tonne. The most efficient schedule for supersonic cruise was E HI which again would be automatically selected. E-MID was automatically selected during afterburning operation, to minimise the chance of an N1 overspeed on cancellation of reheat. E-MID could also be selected by the E/O for noise abatement approach. E Flyover was as we discussed before used for take-off flyover noise abatement as well as subsonic cruise if desired. (If Mach 1 was exceeded with E Flyover still selected, a yellow NOZZLE light illuminated and E HI would be automatically selected. I sincerely hope that this blurb is not clear as mud, feel free to ask away.
Quote:
Regards Dude Last edited by M2dude; 18th Nov 2010 at 15:04 . Reason: I goofed.. (another sign of age) |
|||
| Bellerophon 25th Nov 2010, 21:00 permalink Post: 776 |
Nick Thomas
... Am I right in assuming that TLA stands for throttle lever angle? ... Yes. TLA was a TLA for throttle lever angle. ... did setting the throttles to a certain angle then give a known thrust setting? ... Yes, the calculated thrust required at the noise abatement point. The TLA was calculated by the NHP (as part of the take-off performance calculations) and later cross-checked by the Captain and F/E. I don\x92t know whether it is audible on the DVD, but the checklist question was \x93Clock and TLA bugs\x94 . If not already set, the Captain and F/O would set the noise abatement time on their respective (countdown) clocks and the F/E would cross-checked them, and, if not already set, the F/E would set the TLA bugs (on an engraved scale on either side of the throttle quadrant) to the noise abatement setting and the Captain and F/O would cross-check him. The checklist response was \x94Set\x94 . Best Regards Bellerophon |
|||
| Bellerophon 18th Dec 2010, 15:20 permalink Post: 876 |
JFK 31L, Kennedy 9 Departure, Canarsie transition, Concorde climb
Speedbird 2, cleared take-off 31L. You call 3-2-1 Now , start your stopwatch, pre-set to countdown from 58 seconds, and slam the throttles fully forward till they hit the stops. Four RR Olympus engines start to spool up to full power and four reheats kick in, together producing 156,000 lbs of thrust, but at a total fuel flow of 27,000 US gallons per hour. A touch of left rudder initially to keep straight, as the #4 engine limiter is limiting the engine to 88% until 60 kts when it will release it to full power. The F/O calls Airspeed building, 100 kts, V 1 , and then, at 195 kts, Rotate . You smoothly rotate the aircraft, lift-off occurs at around 10\xb0 and 215 kts. You hear a call of V 2 but you keep rotating to 13.5\xb0 and then hold that attitude, letting the aircraft accelerate. The F/O calls Positive Climb and you call for the Gear Up . On passing 20 feet radio height, and having checked the aircraft attitude, airspeed and rate of climb are all satisfactory, the F/O calls Turn and you slowly and smoothly roll on 25\xb0 left bank to commence the turn out over Jamaica bay. Some knowledgeable passengers will have requested window seats on the left side of the aircraft at check-in, and are now being rewarded with a very close look at the waters of Jamaica Bay going by very fast! As you accelerate through 240 kts, the F/O calls 240 and you pitch up to 19\xb0 to maintain 250 kts and keep the left turn going to pass East of CRI. 54 seconds from the start of the take off roll you hear the F/O counting down 3-2-1 Noise whereupon the F/E cancel the re-heats and simultaneously throttles back to noise abatement power, around 96% as you pitch the nose down to 12\xb0 to maintain 250 kts. It is less than a minute from start of roll and already 435 US gallons of fuel have been used. Speedbird 2, contact departure, so long. Turning through heading 235\xb0M, the F/E quickly re-applies full dry power as you pitch up to 17\xb0 to maintain 250 kts, but simultaneously reduce the left bank to 7.5\xb0, in order to increase both the radius of turn (to stay on the optimum noise abatement track) and the rate of climb (less bank, higher RoC). On climbing through 2,500 ft you increase the bank angle back to 25\xb0 left bank and as you approach the 253\xb0 radial JFK, you hear 3-2-1 Noise from the F/O for the second time. The F/E actions the second noise-abatement power cut back, you pitch down to 12\xb0 and, if not in cloud, sneak a quick peek out of your left hand window, looking for the car park by the Marine Parkway bridge, as you would ideally like to pass right over the car park, if possible, as we tip-toe quietly across the Rockaway Beaches, in order to minimise the noise impact on the residents. Keep the left turn going and intercept the 176\xb0 radial outbound from CRI, and at 5 miles DME from CRI, call for the F/E to slowly re-apply full climb power as you pitch up to maintain 250 kts. We are still in US territorial airspace, below 10,000 ft, and subject to statutory speed control. Speedbird 2, present position direct to SHIPP, climb FL230, no speed control. The F/O selects direct SHIPP in the INS and tells you that she has selected that information into your Flight Director. Having checked that the gear lever is at neutral, you call for the Nose Up , and then the Visor Up .  Now more than 12 miles away from the coast, we are clear of US speed control requirements so lower the attitude to 9\xb0, accelerate to V MO , currently 400 kts, and ask for the After Take Off Checks. Speedbird 2, present position direct to LINND, climb in the block FL550-600, accelerate Mach 2.0 Call for the Climb Checklist at Mach 0.7, which will trigger the F/E to start pumping fuel rearwards to move the CG aft, then when he's done that, straight into the Transonic Checklist . Maintain 400 kts IAS, and around 24,500 ft, at M0.93, ask for the re-heats back on, in pairs, and raise the nose by 3\xb0 to maintain 400 kts as they kick in. Precise, smooth flying is required through the high drag transonic region, as the mach meter creeps up towards Mach 1. A sudden flicker on the VSI and Altimeter confirms that the shock wave has just passed over the static ports, and the aircraft is now supersonic. A quick glance at the elapsed time indicator shows that you\x92ve been hand flying for just over 9 minutes since the start of the take off roll. Another fun start to a day in the office, and to think we got paid for doing it! Best Regards Bellerophon |
|||
| NW1 21st Dec 2010, 00:13 permalink Post: 905 |
Quote:
|
|||
| twochai 17th Feb 2011, 02:44 permalink Post: 1194 |
Quote:
Concorde had that 'je ne sais quoi' that encouraged airplane people everywhere to think big and ask themselves 'what can be done?'. Correct me if I'm wrong, but I do not remember anybody ever whining (at least in print) about the significant premium revenue traffic diverted from the competing US airlines! Of course, if the Yanks had actually produced an SST, things might have been very different. Last edited by twochai; 17th Feb 2011 at 03:17 . |
|||
| CliveL 23rd Jun 2011, 05:53 permalink Post: 1396 |
Quote:
|
|||
| Mr Hoppy 13th Dec 2011, 00:13 permalink Post: 1524 |
Performance Question
Could I ask a performance question of you folks?
I was watching the ITVV Concorde program the other day and a couple of things really stood out. The noise abatement take off from JFK looked pretty alarming from a climb rate point of view, looked like the aircraft tottered over the coastline with a pretty low rate of climb compared to the subsonic stuff. That being said she was supersonic 12 minutes after the thrust levers were advanced so she could certainly pick up her heels. So the question is, if you were operating the aircraft out of somewhere with no climb or noise abatement restrictions (BGI?) on an average day with make take off weight what would be the typical time to M1? Course the 7 year old in me also want to know what the fastest time was that you saw on a revenue trip. |
|||
| ChristiaanJ 16th Dec 2011, 15:31 permalink Post: 1527 |
Quote:
It was a JFK-LHR BA Concorde which landed at Cardiff (in Wales) with some kind of tech problem. The paxs were ferried to LHR and the repairs were done at Cardiff. Then the a/c was flown back to LHR. Since the take-off was over the sea (so no noise abatement needed), and the plane was empty, with only little fuel, she went "like a scalded cat" and hit Mach 1 in about 6 minutes. Mr Hoppy , I am aware it doesn't quite answer your question... I hope one of the pilots can answer that. But I doubt they would normally have kept specific records. CJ |
|||
| CliveL 5th Feb 2012, 21:58 permalink Post: 1561 |
LE slats
Although the Concorde site describes them as slats, the LE changes were a simple LE droop as shown in the Concorde 'B' site sketch.
The intention was to give some forward facing area (at low speed) so that the LE suction had something to work on and give "LE thrust". The AoA for vortex generation would have been delayed, but the net effect was to reduce TO drag and hence power required in noise abatement climb. For cruise the LE went back to its normal position of course. The original prototype had a similar LE droop to the Concorde 'B' (but a bit less extreme). It was changed when it was found that the droop generated an underwing vortex at low AoA (towards zero 'g') at supersonic speeds and that this vortex went down the intake with unpleasant effects on engine face distortion. This could be avoided with the moveable LE. |
|||
| CliveL 1st Sep 2012, 18:36 permalink Post: 1672 |
I entirely agree with John Farley's comments. We were planning to fit canards on the second generation SST for exactly those reasons - they also gave a slightly better L/D in take-off climb which was useful for noise abatement, but they only just earned their keep in terms of economics!
|
|||
| stilton 2nd Mar 2013, 20:32 permalink Post: 1704 |
Departure without noise or boom considerations
Just for theories sake, if there were no noise, speed or boom considerations what would be the optimum profile for Concorde to fly after departure ?
In normal service I understand it had to comply with normal noise abatement departures, speed limits and remain subsonic until far enough from land to prevent the boom being a consideration. But what if it could accelerate immediately, with no restrictions of any kind ? I imagine you would stay in afterburner, accelerate to VMO and on to M2 in the climb ? or would airframe heating at lower altitudes prevent this ? Lastly, was this ever done in testing, or for example leaving Barbados ? |
Page Links: Index Page


### Preparation * Insgesamt 45 Minuten, steuerbar Übungen und Diskussion am Ende Notebooks noch mal ansehen: 1. embedding 2. glove-embedding
Embeddings: Smart encoding of Word Vectors
Oliver Zeigermann
/
@DJCordhose
https://djcordhose.github.io/ai/2018_nlp_embeddings.html
### Motivation: What makes text and sequences so different?
https://www.tensorflow.org/tutorials/word2vec
### One Hot Encoding
https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/
### Limitations of One Hot Encoding / Bag of Words * Positions and context of words get lost * No notion of semantics to words
Deep Learning with Python
### Word Embeddings can carry semantics
https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/
### Using t-SNE to project from higher dimensions to 2d
https://www.tensorflow.org/tutorials/word2vec
Arithmetic on Vectors may express semantics
Vectors for King, Man, Queen, & Woman
King – Man + Woman = ?
https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/
### Fancy Example * misspelled words in GloVe embedding are close to each other * there is a vector for the concept 'misspelled' that you can apply to any word to retrieve the correct spelling
http://forums.fast.ai/t/nlp-any-libraries-dictionaries-out-there-for-fixing-common-spelling-errors/16411/7 https://twitter.com/jeremyphoward/status/997264148655259648
Learning Word Vectors
### Distributional Hypothesis __Words that appear in the same contexts share semantic meaning.__ https://en.wikipedia.org/wiki/Distributional_semantics
### Sliding Word Window
https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/
### Standard Predictive Method: word2vec Comes in two flavours 1. _Continuous Bag-of-Words model (CBOW)_: predicts target words (e.g. 'mat') from source context words ('the cat sits on the') - _good for small data sets_ 1. _Skip-Gram model_: does the inverse and predicts source context-words from the target words - _good for larger datasets_.
### Continuous Bag-of-Words
https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/
### Training objective _maximize the conditional probability of observing the actual output word (the focus word) given the input context words_
### Skip-Gram
https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/
### How do we train for that objective? * objective is to learn to predict the output for the input * that means we have to have a loss function to minimize * minimization as in supervised learning using SGD
### Naive approach: Expensive
Have a probability for all words (v)
### Inexpensive Approach
Just choose k random words
### The loss function * objective is maximized when the model assigns high probabilities to the real words, and low probabilities to noise words * this is called Negative Sampling * scales only with the number (k) of noise words that we select, not all words in the vocabulary (v) * makes it much faster to train This is called noise-contrastive estimation (NCE) loss
### What are the actual parameters learned? * vectors for Embedding per word * in other words: where in the vector space is a word located * similar words have similar vectors similarity is expressed by the context a word occurs in
### Now what? You can either * use the results all by themselves to find out about similarities - visualize by projecting down to 2d using t-SNE as shown before * or use the vectors as representations for words - treat texts as sequences of words * use these representations to train a classifier etc.
### Visualizing Embeddings
https://projector.tensorflow.org
### Embeddings 300 d on Google News
https://twitter.com/pmbaumgartner/status/989512625934434309
### Exercise: Get an intuition for Word Embeddings * Was bedeuten die Farben? * Hättest du dasselbe Vokabular verwendet?  (Magnitude, je heller desto mehr) * Hättest du dieselben Wörter verwendet? (Typische Stopwords raus)
## Creating our very own sentiment analysis ### Part II: Encoding text as embedding
Notebook: https://colab.research.google.com/github/djcordhose/haw/blob/master/notebooks/nlp/1-embeddings.ipynb
Discussion: What kind of learning is this?
Supervised vs Unsupervised
there is no need manual labelling
but labelling is implicit in sequence of words in training data
We would still call this Unsupervised


Elm-Vega Parameter Tests
For Vega-Lite 5 params allowing signals and selections to be used in a specification.
Simple constant parameter. Should show bars with 5px corner radius.
Parameter bound to slider value.
Expression that resizes bar width by height of vis.
Point and interval selection parameters.
Source


Feb 8 & 9
Integrated Startup Complex, Kalamassery, Kerala, India
2015
Hack Club is born
Hack Camp began as an experiment to discover new ways of teaching coding at our clubs around the world.
2015
First Hack Camp in SF
2016
SF Hack Camp v2
2017
A Camp appears in Mason, OH
2018
Camp runs again in Mason
2018
A Camp appears in Kerala, India
2019
SF Hack Camp v3
2020
Hack Camp returns to Kerala
09AM Registration starts
10AM Inaugration ceremony
11AM Hackathon starts
01PM Lunch
02PM Speaker #1
08PM Dinner
09AM Breakfast
10AM Speaker #2
11AM Hackathon ends
12PM Speaker #3
01PM Lunch
02PM Speaker #4
03PM Evaluvation
05PM Results Announcement
IoT
AI
AR & VR
Blockchain
General Hack
Yep! Hack Camp is Totally Free And Always Will Be!
A hackathon can be best described as an “invention marathon”, or in simple words hackathons are about bringing your crazy ideas to reality. It’s an event where any tech-enthusiast, regardless of their individual field can come & participate to learn, build & share their creations over the course of a weekend, in a relaxed & productive environment. Hackathons are simply a venue for self-expression & creativity, where people come together & transform their thoughts into reality, through technology.
You're advised to bring your own broadband/hotspot device as we can arrange for atmost one connection per team.
The maximum team size is four and lone rangers are also welcome. Participants selected on an individual basis and can team up on the spot as well.
This is a student hackathon and only students are allowed to participate. You’ll be required to verify at the event by showing your student ID card.
If you love to code, you are more than welcome to participate in the Hackathon. Though we may screen applications to maintain high standards.
Of course you can! We at Hack Camp ensure that no one is left behind during the hacking, thanks to our mentors and volunteers who help us achieve the same. We make sure that you learn the best you can alongside having fun and experiencing what it feels to belong to a community.
No. In the interest of fairness, students should not be working on their projects before Hack Camp begins and we do not allow participants to work on pre-existing projects. However, you can familiarize yourself with all the tools and technologies you intend to use beforehand!
If you couldn't find an answer to your question please do send your queries to<EMAIL_ADDRESS>We’re Hack Club, a global nonprofit network of student lead coding clubs. Hack Camp has been a part of Hack Club since the beginning. It’s a great way for us to try out the best ideas from our community, develop curriculum, and stay sharp as teachers. We also just love doing it! Hack Clubs meet weekly at their schools, typically for 1.5hrs after school. There are no teachers or lectures—members work at their own pace making websites, apps, & games, and presenting them to the group.


| java.lang.Object | |
| ↳ | com.carto.packagemanager.PackageManager |
| Known Direct Subclasses |
Base class for offline map package manager. Package manager supports downloading/removing packages.
It can be queried about available packages and status of the packages. It works asynchronously in
the background and can inform app when packages have been updated.
It works persistently. If a package download is started and app is closed, the download will resume
when the package manager is started next time.
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
PackageManager(String packageListURL, String dataFolder, String serverEncKey, String localEncKey)
Constructs a new package manager, given URL for package list and data folder.
|
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| void |
cancelPackageTasks(String packageId)
Cancels the current/pending tasks involving of the specified package.
| ||||||||||
| synchronized void | delete() | ||||||||||
| boolean |
equals(Object obj)
Checks if this object is equal to the specified object.
| ||||||||||
| PackageInfo |
getLocalPackage(String packageId)
Returns the specified local package.
| ||||||||||
| PackageStatus |
getLocalPackageStatus(String packageId, int version)
Returns the status of the specified package.
| ||||||||||
| PackageInfoVector |
getLocalPackages()
Returns the list of available local downloaded packages.
| ||||||||||
| PackageManagerListener |
getPackageManagerListener()
Returns the current listener for package manager events.
| ||||||||||
| PackageInfo |
getServerPackage(String packageId)
Returns the specified server package.
| ||||||||||
| int |
getServerPackageListAge()
Returns the age of server package list.
| ||||||||||
| PackageMetaInfo |
getServerPackageListMetaInfo()
Returns the metainfo of server packages.
| ||||||||||
| PackageInfoVector |
getServerPackages()
Returns the list of available server packages.
| ||||||||||
| int |
hashCode()
Returns the hash value of this object.
| ||||||||||
| boolean |
isAreaDownloaded(MapBounds mapBounds, int zoom, Projection projection)
Tests if the specified map area at specified zoom level is downloaded.
| ||||||||||
| void |
setPackageManagerListener(PackageManagerListener listener)
Sets the package manager listener.
| ||||||||||
| void |
setPackagePriority(String packageId, int priority)
Sets the priority of the specific package.
| ||||||||||
| boolean |
start()
Starts the package manager.
| ||||||||||
| boolean |
startPackageDownload(String packageId)
Starts downloading specified package asynchronously.
| ||||||||||
| boolean |
startPackageImport(String packageId, int version, String packageFileName)
Starts importing the specified package asynchronously.
| ||||||||||
| boolean |
startPackageListDownload()
Starts downloading package list asynchronously.
| ||||||||||
| boolean |
startPackageRemove(String packageId)
Starts the removal of specified package asynchronously.
| ||||||||||
| void |
stop(boolean wait)
Stops the package manager.
| ||||||||||
| PackageInfoVector |
suggestPackages(MapPos mapPos, Projection projection)
Suggests packages for given map position.
|
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
From class
java.lang.Object
|
Constructs a new package manager, given URL for package list and data folder.
The data folder must exist before creating a new package manager and it is assumed to be persistent.
Note: the package manager must be explicitly started using start() method!
| packageListURL | The URL that defines all packages. |
|---|---|
| dataFolder | The folder where downloaded packages are kept. It must exist and must be writable. |
| serverEncKey | Encryption key for server packages |
| localEncKey | Encryption key for local packages |
| Exception | If package manager fails to open or create package database. |
|---|---|
| IOException |
Cancels the current/pending tasks involving of the specified package.
| packageId | The id of the package to cancel. |
|---|
Checks if this object is equal to the specified object.
| obj | The reference object. |
|---|
Returns the specified local package.
| packageId | The id of the package. |
|---|
Returns the status of the specified package.
| packageId | The id of the package. |
|---|---|
| version | The version of the package. Use -1 for the latest version. |
Returns the list of available local downloaded packages.
Returns the current listener for package manager events.
Returns the specified server package.
Note that the list must be retrieved from the server first, using startPackageListDownload.
| packageId | The id of the package. |
|---|
Returns the age of server package list. This method can be used to measure the time of the download and check whether the list should be updated.
Returns the metainfo of server packages.
Returns the list of available server packages.
Note that the list must be retrieved from the server first, using startPackageListDownload.
Returns the hash value of this object.
Tests if the specified map area at specified zoom level is downloaded.
| mapBounds | The area bounding box. |
|---|---|
| zoom | The zoom level to check. |
| projection | The projection for the bounding box. |
Sets the package manager listener.
| listener | The new package manager listener to use. |
|---|
Sets the priority of the specific package.
If the given priority is higher than priority of any other package, other operations will be paused and this package is processed immediately.
If the given priority is set to negative value, package download will be paused until priority is reset to non-negative value.
| packageId | The id of the download package. |
|---|---|
| priority | The priority of the download package. If it is less than zero, package download is paused. |
Starts the package manager. All previous tasks will be resumed after this.
Starts downloading specified package asynchronously. When this task finishes, listener is called and local package list is updated.
Note: In general, package manager may need temporary storage equal to the size of the package during download. It is the responsibility of the app to perform such checks.
| packageId | The id of the package to download. |
|---|
Starts importing the specified package asynchronously. When this task finishes, listener is called and local package list is updated.
Note 1: In general, package manager may need temporary storage equal to the size of the package during import. It is the responsibility of the app to perform such checks.
Note 2: the package may not be deleted after this call, as the import is asynchronous operation. It is safe to delete the original file once import is complete (this is notified via manager listener).
| packageId | The id of the package to download. |
|---|---|
| version | The version of the package. |
| packageFileName | The fully qualified path of the package. The file name may also refer to URL or asset (using 'asset://' prefix). |
Starts downloading package list asynchronously. When this task finishes, listener is called and server package list is updated.
Starts the removal of specified package asynchronously. When this task finishes, listener is called and local package list is updated.
| packageId | The id of the package to remove. |
|---|
Stops the package manager. The stopping can be asynchronous or synchronous.
| wait | If set to true, then synchronous stopping is performed and the operation may take a while. |
|---|
Suggests packages for given map position. Note that in order this to work, local package list must be available first.
| mapPos | The map position. |
|---|---|
| projection | The projection for the map position. |


53 North Railway Street
Okotoks, Alberta
Canada T1Q 4H5
53 North Railway Street
Okotoks, Alberta
Canada T1Q 4H5


This class is designed to assist with [link:https://en.wikipedia.org/wiki/Ray_casting raycasting]. Raycasting is used for mouse picking (working out what objects in the 3d space the mouse is over) amongst other things.
const raycaster = new THREE.Raycaster();
const pointer = new THREE.Vector2();
function onPointerMove( event ) {
// calculate pointer position in normalized device coordinates
// (-1 to +1) for both components
pointer.x = ( event.clientX / window.innerWidth ) * 2 - 1;
pointer.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
}
function render() {
// update the picking ray with the camera and pointer position
raycaster.setFromCamera( pointer, camera );
// calculate objects intersecting the picking ray
const intersects = raycaster.intersectObjects( scene.children );
for ( let i = 0; i < intersects.length; i ++ ) {
intersects[ i ].object.material.color.set( 0xff0000 );
}
renderer.render( scene, camera );
}
window.addEventListener( 'pointermove', onPointerMove );
window.requestAnimationFrame(render);
[example:webgl_interactive_cubes Raycasting to a Mesh]
[example:webgl_interactive_cubes_ortho Raycasting to a Mesh in using an OrthographicCamera]
[example:webgl_interactive_buffergeometry Raycasting to a Mesh with BufferGeometry]
[example:webgl_instancing_raycast Raycasting to a InstancedMesh]
[example:webgl_interactive_lines Raycasting to a Line]
[example:webgl_interactive_raycasting_points Raycasting to Points]
[example:webgl_geometry_terrain_raycast Terrain raycasting]
[example:webgl_interactive_voxelpainter Raycasting to paint voxels]
[example:webgl_raycaster_texture Raycast to a Texture]
[page:Vector3 origin] — The origin vector where the ray casts from.
[page:Vector3 direction] — The direction vector that gives direction to
the ray. Should be normalized.
[page:Float near] — All results returned are further away than near. Near
can't be negative. Default value is `0`.
[page:Float far] — All results returned are closer than far. Far can't be
lower than near. Default value is Infinity.
This creates a new raycaster object.
The far factor of the raycaster. This value indicates which objects can be discarded based on the distance. This value shouldn't be negative and should be larger than the near property.
The near factor of the raycaster. This value indicates which objects can be discarded based on the distance. This value shouldn't be negative and should be smaller than the far property.
The camera to use when raycasting against view-dependent objects such as billboarded objects like [page:Sprites]. This field can be set manually or is set when calling "setFromCamera". Defaults to null.
Used by [name] to selectively ignore 3D objects when performing
intersection tests. The following code example ensures that only 3D
objects on layer `1` will be honored by the instance of [name].
raycaster.layers.set( 1 );
object.layers.enable( 1 );
An object with the following properties:
{
Mesh: {},
Line: { threshold: 1 },
LOD: {},
Points: { threshold: 1 },
Sprite: {}
}
Where threshold is the precision of the raycaster when intersecting
objects, in world units.
The [Page:Ray] used for the raycasting.
[page:Vector3 origin] — The origin vector where the ray casts from.
[page:Vector3 direction] — The normalized direction vector that gives
direction to the ray.
Updates the ray with a new origin and direction. Please note that this method only copies the values from the arguments.
[page:Vector2 coords] — 2D coordinates of the mouse, in normalized device
coordinates (NDC)---X and Y components should be between `-1` and `1`.
[page:Camera camera] — camera from which the ray should originate
Updates the ray with a new origin and direction.
[page:Object3D object] — The object to check for intersection with the
ray.
[page:Boolean recursive] — If true, it also checks all descendants.
Otherwise it only checks intersection with the object. Default is true.
[page:Array optionalTarget] — (optional) target to set the result.
Otherwise a new [page:Array] is instantiated. If set, you must clear this
array prior to each call (i.e., array.length = 0;).
Checks all intersection between the ray and the object with or without the descendants. Intersections are returned sorted by distance, closest first. An array of intersections is returned...
[ { distance, point, face, faceIndex, object }, ... ]
[page:Float distance] – distance between the origin of the ray and the
intersection
[page:Vector3 point] – point of intersection, in world coordinates
[page:Object face] – intersected face
[page:Integer faceIndex] – index of the intersected face
[page:Object3D object] – the intersected object
[page:Vector2 uv] - U,V coordinates at point of intersection
[page:Vector2 uv1] - Second set of U,V coordinates at point of
intersection
[page:Vector3 normal] - interpolated normal vector at point of
intersection
[page:Integer instanceId] – The index number of the instance where the ray
intersects the InstancedMesh
`Raycaster` delegates to the [page:Object3D.raycast raycast] method of the passed object, when evaluating whether the ray intersects the object or not. This allows [page:Mesh meshes] to respond differently to ray casting than [page:Line lines] and [page:Points pointclouds].
*Note* that for meshes, faces must be pointed towards the origin of the [page:.ray ray] in order to be detected; intersections of the ray passing through the back of a face will not be detected. To raycast against both faces of an object, you'll want to set the [page:Mesh.material material]'s [page:Material.side side] property to `THREE.DoubleSide`.
[page:Array objects] — The objects to check for intersection with the
ray.
[page:Boolean recursive] — If true, it also checks all descendants of the
objects. Otherwise it only checks intersection with the objects. Default
is true.
[page:Array optionalTarget] — (optional) target to set the result.
Otherwise a new [page:Array] is instantiated. If set, you must clear this
array prior to each call (i.e., array.length = 0;).
Checks all intersection between the ray and the objects with or without the descendants. Intersections are returned sorted by distance, closest first. Intersections are of the same form as those returned by [page:.intersectObject].
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]


2020, Day 15: Rambunctious Recitation 🔥 🎭
This Advent of code seems to be about presents:
- First present today: rambunctious or "full of energy and difficult to control".
- Second present: Van Eck's sequence, see also the Numberphile episode
- Third present: part 2 is just simple brute force.
- Is the fourth present going to be someone from Advent of Code discovering something new about this interesting sequence?
Nothing much to say about the implementation. I had to debug a bit in order to get part 1 straight. Part 2 took around 5 seconds on my machine.
import
tables, times
template upd() =
## extracted since it is repeated twice
if last notin spoken:
spoken[last] = turn
elif last notin spokenAgain:
spokenAgain[last] = turn
else:
spoken[last] = spokenAgain[last]
spokenAgain[last] = turn
var nTurns = 2020
proc play(numbers: openarray[int]): int =
var
spoken = initTable[int, int]()
spokenAgain = initTable[int, int]()
last: int
for turn in 1 .. nTurns:
if turn <= numbers.len:
last = numbers[turn - 1]
spoken[last] = turn
elif last in spoken and last notIn spokenAgain:
last = 0
upd
elif last in spoken and last in spokenAgain:
last = spokenAgain[last] - spoken[last]
upd
else:
return -1
last
echo play [0, 3, 6] ## 436
echo play [1, 3, 2] ## 1
echo play [2, 1, 3] ## 10
echo play [1, 2, 3] ## 27
echo play [2, 3, 1] ## 78
echo play [3, 2, 1] ## 438
echo play [3, 1, 2] ## 1836
echo "part 1: ", play [15, 5, 1, 4, 7, 0] ## 1259
436 1 10 27 78 438 1836 part 1: 1259
That's the right answer! You are one gold star closer to saving your vacation.
nTurns = 30000000
echo play [0, 3, 6] ## 175594
echo play [1, 3, 2] ## 2578
echo play [2, 1, 3] ## 3544142
echo play [1, 2, 3] ## 261214
echo play [2, 3, 1] ## 6895259
echo play [3, 2, 1] ## 18
echo play [3, 1, 2] ## 362
let start = now()
echo "part 2: ", play [15, 5, 1, 4, 7, 0] ## 689
echo "part 2 completed in ", now() - start
175594 2578 3544142<PHONE_NUMBER>259 18 362 part 2: 689 part 2 completed in 5 seconds, 502 milliseconds, 622 microseconds, and 600 nanoseconds
That's the right answer! You are one gold star closer to saving your vacation.