inference.Rd
Carry out statistical inference on greta models by MCMC or likelihood/posterior optimisation.
mcmc(model, sampler = hmc(), n_samples = 1000, thin = 1, warmup = 1000, chains = 4, n_cores = NULL, verbose = TRUE, pb_update = 50, one_by_one = FALSE, initial_values = initials(), trace_batch_size = 100) stashed_samples() extra_samples(draws, n_samples = 1000, thin = 1, n_cores = NULL, verbose = TRUE, pb_update = 50, one_by_one = FALSE, trace_batch_size = 100) initials(...) opt(model, optimiser = bfgs(), max_iterations = 100, tolerance = 1e-06, initial_values = initials(), adjust = TRUE, hessian = FALSE)
| model | greta_model object |
|---|---|
| sampler | sampler used to draw values in MCMC. See
|
| n_samples | number of MCMC samples to draw per chain (after any warm-up, but before thinning) |
| thin | MCMC thinning rate; every |
| warmup | number of samples to spend warming up the mcmc sampler (moving chains toward the highest density area and tuning sampler hyperparameters). |
| chains | number of MCMC chains to run |
| n_cores | the maximum number of CPU cores used by each sampler (see details). |
| verbose | whether to print progress information to the console |
| pb_update | how regularly to update the progress bar (in iterations).
If |
| one_by_one | whether to run TensorFlow MCMC code one iteration at a time, so that greta can handle numerical errors as 'bad' proposals (see below). |
| initial_values | an optional |
| trace_batch_size | the number of posterior samples to process at a time when tracing the parameters of interest; reduce this to reduce memory demands |
| draws | a greta_mcmc_list object returned by |
| ... | named numeric values, giving initial values of some or all of the variables in the model (unnamed variables will be automatically initialised) |
| optimiser | an |
| max_iterations | the maximum number of iterations before giving up |
| tolerance | the numerical tolerance for the solution, the optimiser stops when the (absolute) difference in the joint density between successive iterations drops below this level |
| adjust | whether to account for Jacobian adjustments in the joint
density. Set to |
| hessian | whether to return a list of analytically differentiated Hessian arrays for the parameters |
mcmc
, stashed_samples
& extra_samples
- a
greta_mcmc_list
object that can be analysed using functions from the
coda package. This will contain mcmc samples of the greta arrays used to
create model
.
opt
- a list containing the following named elements:
par
a named list of the optimal values for the greta arrays
specified in model
value
the (unadjusted) negative log joint density of the
model at the parameters 'par'
iterations
the number of iterations taken by the optimiser
convergence
an integer code, 0 indicates successful
completion, 1 indicates the iteration limit max_iterations
had
been reached
hessian
(if hessian = TRUE
) a named list of hessian
matrices/arrays for the parameters (w.r.t. value
)
For mcmc()
if verbose = TRUE
, the progress bar shows
the number of iterations so far and the expected time to complete the phase
of model fitting (warmup or sampling). Occasionally, a proposed set of
parameters can cause numerical instability (I.e. the log density or its
gradient is NA
, Inf
or -Inf
); normally because the log
joint density is so low that it can't be represented as a floating point
number. When this happens, the progress bar will also display the
proportion of proposals so far that were 'bad' (numerically unstable) and
therefore rejected. Some numerical instability during the warmup phase is
normal, but 'bad' samples during the sampling phase can lead to bias in
your posterior sample. If you only have a few bad samples (<10\
usually resolve this with a longer warmup period or by manually defining
starting values to move the sampler into a more reasonable part of the
parameter space. If you have more samples than that, it may be that your
model is misspecified. You can often diagnose this by using
calculate()
to evaluate the values of greta arrays, given
fixed values of model parameters, and checking the results are what you
expect.
greta runs multiple chains simultaneously with a single sampler,
vectorising all operations across the chains. E.g. a scalar addition in
your model is computed as an elementwise vector addition (with vectors
having length chains
), a vector addition is computed as a matrix
addition etc. TensorFlow is able to parallelise these operations, and this
approach reduced computational overheads, so this is the most efficient of
computing on multiple chains.
Multiple mcmc samplers (each of which can simultaneously run multiple
chains) can also be run in parallel by setting the execution plan with the
future
package. Only plan(multisession)
futures or
plan(cluster)
futures that don't use fork clusters are allowed,
since forked processes conflict with TensorFlow's parallelism. Explicitly
parallelising chains on a local machine with plan(multisession)
will
probably be slower than running multiple chains simultaneously in a single
sampler (with plan(sequential)
, the default) because of the overhead
required to start new sessions. However, plan(cluster)
can be used
to run chains on a cluster of machines on a local or remote network. See
future::cluster
for details, and the
future.batchtools
package to set up plans on clusters with job
schedulers.
If n_cores = NULL
and mcmc samplers are being run sequentially, each
sampler will be allowed to use all CPU cores (possibly to compute multiple
chains sequentially). If samplers are being run in parallel with the
future
package, n_cores
will be set so that n_cores *
future::nbrOfWorkers
is less than the number
of CPU cores.
After carrying out mcmc on all the model parameters, mcmc()
calculates the values of (i.e. traces) the parameters of interest for each
of these samples, similarly to [calculate]{calculate}
. Multiple
posterior samples can be traced simulataneously, though this can require
large amounts of memory for large models. As in calculate
, the
argument trace_batch_size
can be modified to trade-off speed against
memory usage.
If the sampler is aborted before finishing (and future
parallelism isn't being used), the samples collected so far can be
retrieved with stashed_samples()
. Only samples from the sampling
phase will be returned.
Samples returned by mcmc()
and stashed_samples()
can
be added to with extra_samples()
. This continues the chain from the
last value of the previous chain and uses the same sampler and model as was
used to generate the previous samples. It is not possible to change the
sampler or extend the warmup period.
Because opt()
acts on a list of greta arrays with possibly
varying dimension, the par
and hessian
objects returned by
opt()
are named lists, rather than a vector (par
) and a
matrix (hessian
), as returned by optim()
.
Because greta arrays may not be vectors, the Hessians may not be matrices,
but could be higher-dimensional arrays. To return a Hessian matrix covering
multiple model parameters, you can construct your model so that all those
parameters are in a vector, then split the vector up to define the model.
The parameter vector can then be passed to model. See example.
# NOT RUN { # define a simple Bayesian model x <- rnorm(10) mu <- normal(0, 5) sigma <- lognormal(1, 0.1) distribution(x) <- normal(mu, sigma) m <- model(mu, sigma) # carry out mcmc on the model draws <- mcmc(m, n_samples = 100) # add some more samples draws <- extra_samples(draws, 200) #' # initial values can be passed for some or all model variables draws <- mcmc(m, chains = 1, initial_values = initials(mu = -1)) # if there are multiple chains, a list of initial values should be passed, # othewise the same initial values will be used for all chains inits <- list(initials(sigma = 0.5), initials(sigma = 1)) draws <- mcmc(m, chains = 2, initial_values = inits) # you can auto-generate a list of initials with something like this: inits <- replicate(4, initials(mu = rnorm(1), sigma = runif(1)), simplify = FALSE) draws <- mcmc(m, chains = 4, initial_values = inits) # or find the MAP estimate opt_res <- opt(m) # get the MLE of the normal variance mu <- variable() variance <- variable(lower = 0) distribution(x) <- normal(mu, sqrt(variance)) m2 <- model(variance) # adjust = FALSE skips the jacobian adjustments used in MAP estimation, to # give the true maximum likelihood estimates o <- opt(m2, adjust = FALSE) # the MLE corresponds to the *unadjusted* sample variance, but differs # from the sample variance o$par mean((x - mean(x)) ^ 2) # same var(x) # different # initial values can also be passed to optimisers: o <- opt(m2, initial_values = initials(variance = 1)) # and you can return a list of the Hessians for each of these parameters o <- opt(m2, hessians = TRUE) o$hessians # to get a hessian matrix across multiple greta arrays, you must first # combine them and then split them up for use in the model (so that the # combined vector is part of the model) and pass that vector to model: params <- c(variable(), variable(lower = 0)) mu <- params[1] variance <- params[2] distribution(x) <- normal(mu, sqrt(variance)) m3 <- model(params) o <- opt(m3, hessians = TRUE) o$hessians # }


We've talked about git for version control and explored Github a bit and how teams work together using the platform. Now let's dig in!
Let's start contributing to our first open source project! I've left a few issues in my own projects so that we can see the full project development life cycle at play here. I'm providing links below so your job is to fix one of these things and issue a pull request just like we did in the practice.
EVERYONE (me included) start out getting into a development community by updating documentation, making sure acronyms made sense and fixing links and typos. The best way to get into a software community is to fix things around the edges and ensure that you can effectively communicate with people in the project. It also helps prove they are human.
For our reflection piece this week, pick one of the following topics (or multiple if you like)
In your screencast talk about one of these four above as far as what it is and then showcase it in context of what we did in the lab. This could involve talking about what Pull Requests are while showing off a link that has good tutorials on Pull Request workflows, then showing the relevant links in the project you selected associated with a pull Request. It could also be showing you talking about proposing changes to a file in a repo, then doing it in the UI and talking about what's happening.
I only bold that text because then you'd be saving time; doing the Lab while talking about doing the lab; which demonstrates you get the concept, while showing someone else how to accomplish the same task.
This week our blogging piece will take place in the fork of your github repo for Lab2. There's a boilerplate file I created called lab2/blob/master/Reflection.md which asks you to write your post there using some basic markdown for practice and linking to your video post.
Then when you've made your post in github , post it into the #lab-2-github channel in our ist-402 slack group.


Products
| |
PRODUCT NAME |
UNIT SOLD |
IN STOCK |
EXPIRE DATE |
|
|
Lorem Ipsum Product 1 |
1,450 |
550 |
28 March 2019 |
|
|
Lorem Ipsum Product 2 |
1,250 |
750 |
21 March 2019 |
|
|
Lorem Ipsum Product 3 |
1,100 |
900 |
18 Feb 2019 |
|
|
Lorem Ipsum Product 4 |
1,400 |
600 |
24 Feb 2019 |
|
|
Lorem Ipsum Product 5 |
1,800 |
200 |
22 Feb 2019 |
|
|
Lorem Ipsum Product 6 |
1,000 |
1,000 |
20 Feb 2019 |
|
|
Lorem Ipsum Product 7 |
500 |
100 |
10 Feb 2019 |
|
|
Lorem Ipsum Product 8 |
1,000 |
600 |
08 Feb 2019 |
|
|
Lorem Ipsum Product 9 |
1,200 |
800 |
24 Jan 2019 |
|
|
Lorem Ipsum Product 10 |
1,600 |
400 |
22 Jan 2019 |
|
|
Lorem Ipsum Product 11 |
2,000 |
400 |
21 Jan 2019 |
|
Add new product


ERC20 Generator
Features:
Pausable - Provides possibility to pause/unpause token transfers.
Mintable - Provides possibility to mint (create) new tokens when needed. Can be used to create and sell new tokens during ICOs, and minting can be stopped when required.
Capped - Provides token limit for minting.
Increase/Decrease Cap amount - Makes token minting limit adjustable to the needs.
Burnable - Provides possibility to destroy unwanted/unnecessary tokens.
Is Burnable by everyone - Should everyone be able to destroy tokens, or only the token owner.
Include Approve and Call - Provides flexibility for other contracts to work with the token. Approve and then communicate the approved contract in a single transaction.
Include Transfer and Call - Provides flexibility for other contracts to work with the token. Transfer and then communicate the contract in a single transaction.
Create Token
ERC20 Contract


{% extends 'base.html' %} {% block title %}Home {% endblock title %} {% block body %}
Students lack connection during the pandemic. After surveying 10 students, all agreed that they felt increased mental pressure during the pandemic. We are expected to perform and excel at the same level as before the pandemic, yet deal with so much more pressure. Many mental health and isolation issues have been perpetuated by the pandemic. Feelings of loneliness and isolation during the pandemic are very common and despite our differences in time zones and borders, the entire team felt that the pandemic had impacted their mental health. Anxiety and mental illnesses perpetuated by COVID-19 know no borders, and support systems are very scarce. When discussing how to address these issues which impact all of us, one of our teammates voiced an experience they had with the IBO Discord Server. Although the server is primarily academic, there is a channel dedicated to ranting where people type out their anger anonymously and no one responds. You see people from the other side of the world facing similar experiences and you feel less lonely. Therefore, SupportWall, an anonymous support system where you can rant, read or share your happiness, was created to provide people with a simple website where anyone could contribute and feel anonymous but appreciated and heard.
{% endblock body %}


Targets are in fact daemontools-style services too.
The normal service in the regular services collection is an example of a target.
Its start
, stop
, run
, and restart
programs all simply exit "true".
In the case of the run
program, this would normally result in the program being repeatedly re-executed by the service manager.
The "remain" flag file tells system-control
, however, to set a "run on empty" flag for this service when loading it.
This causes the service manager to consider the service to be still in the running state even if its last service process has exited.
(Normally, exiting the last service process causes a state transition, via the failed state either back to the running state or to the stopped state.)
Thus targets show up in the output of service-status as running services with no process ID.
(An alternative way of creating a target is to not use the "remain" flag but to use the pause
built-in command in nosh.
This has the usually undesirable effect of having an indefinitely running process in the process list that is sitting swapped out and doing nothing.
But it has the advantage of not having the service manager treat it as a special "run on empty" service, which cannot be adjusted at runtime after a target has been loaded, and permitting the target to actually do something concrete if so desired.)
The major part of a target is in its service bundle. The normal target's service bundle causes the normal target to also encompass the "server", "workstation", "basic", "multi-user", "static-networking", and "users" targets (and everything that they themselves, in their turns, encompass). The target is stopped by "shutdown" (which doesn't mean very much because of course the target itself does very little), and is ordered in the startup sequence after the "basic" target.


what a is
———distributed
————system
what is it?
A distributed system is a software system in which components located on networked computers communicate and coordinate their actions by passing messages.
Wikipedia
message passing you say?
Here be dragons!
- out of order messages
- duplicated messages
- lost messages
a nice distributed system
- scales up/out
- has homogenic nodes
- supports change number of nodes
- for databases: don't brake under Jepsen test © Aphyr
a few examples
- Databases: Cassandra, Riak, EventStore, FoundationDB
- Queues: RabbitMQ (:D), Azure Queues
- Data processing: Storm
- Configuration: Zookeeper, Consul, etcd
CAP theorem
Eric Brewer asks you to choose two of them. You cannot satisfy them all.
- Consistency - linearizability (allows perceving a history of operations as a sequence)
- Availability - every request receives a response ok/error
- Partition tolerance - can operate despite loosing messages, message copies etc.
CP, AP, AC?
Only when nodes communicate is it possible to preserve both consistency and availability, thereby forfeiting P. The general belief is that for wide-area systems, designers cannot forfeit P and therefore have a difficult choice between C and A.
Eric Brewer
CP, AP, AC? 2
- CP: EventStore, Cassasnda (lightweight transactions), FoundationDB
- AP: Riak (allow_mult), Cassandra, Dynamo (Amazon)
- AC: lies, lies, lies...
Consensus, where are you?
It's needed for CP systems.
State machine
- F(state, input) -> newState
- F(F(F(s0, i0), i1), i2) -> s3
- a sequence of s0, i1, i2, i3, i4, ... will give the same result for the same F
State machine replication
If there was a way to replicate a sequence of entries across multiple machines,
having the same function applied to the sequence, would result in having the same state on all machines. That would bring consensus to all machines/processes...
Paxos
- rooted in Leslie Lamport state machine approach
- published in 1989
- the algorithm family consists of many algorithms with different trade-offs
Paxos - a dictionary
- processor - a node in a given cluster
- quorum - a strong majority of processors (for 2N+1 nodes its N+1)
- hard to understand like Paxos - a common phrase for implementors of distributed systems
Paxos - processor roles
- Client
- Acceptor (voter)
- Proposer
- Learner
- Leader
- Shouldn't we switch to RAFT?
RAFT - basic info
- authors: Diego Ongaro; John Ousterhout
- written to be easy to understand
- it is easy to understand
- splits algorithm into:
- leader election
- replication
RAFT - logical clock
- synchronizing clocks is hard (Google Spanner: GPS + atomic clocks)
- use logical, natural, incrementing numbers
- term - a logical epoch of the system
- clock can only go forward - never accepts messages sent in earlier terms
RAFT - roles
- follower - simply follow the leader and vote if no leader. The initial state
- candidate - votes for itself, steps down if leader elected, or becomes the leaders
- leader - a strong leader, replicating its logs to other nodes
RAFT - election
- when no msgs from leader, after given timeout, inc the term become a candidate
- candidate votes for itself in the given term and asks others for votes
- follower, votes for the first candidate in the given term
- all votes are persisted, when a crush occur it's disallowed to vote second time in the same term
- if no leader emerged, inc the term, reelection occurs
RAFT - election example
- N1, N2, N3 - nodes
- N1 and N2 times out and becomes candidates
- each votes for itself and sends vote request to N3
- N3 votes for N1
- N1 becomes a leader
RAFT - election questions
- is it possible to get two leaders in one term?
- is it possible to get two leaders in different terms?
RAFT - replication
- leader sends AppendEntries messages
- when a follower has a corrupted entries, leaders steps back in its history finiding the matching one and resends
- leader commits entries via AppendEntries messages
- leader commits ONLY iff it successfully appended at least one entry


{% include 'head.html' { page: "index" }%}
MOVA1 is an interior architecture and furniture design firm that seeks to promote inventive and polished modern living solutions.
The website and branding for Jobsplane had to be modernised without losing the unique look users had become used to. The challenge was to stick with the same red and grey branding as on the jobsplane.com website, and combine it with the material design guidelines to get a cohesive design identity for the app. We made the logo sleeker, and created a color palette based on the colors used in the logo and website. We also worked on a mascot for the brand, which w
Username Availability Checker lets you input a username, and almost instantly find out if it’s been taken on Facebook, Twitter, Instagram, Tumblr, Pinterest, Soundcloud and Github. Seriously! Try it out now! No more late nights spent in regret! No more silent tears in the rain! Only one username that you can use anywhere on the internet.
This project was the result of an afternoon spent with my friend Manvendra trying to learn Python. We used Flask, a python framework, to create an API which checks if a username exists on a website. It’s all very clever, and you can read more about it on the project page on Github.


This is a continuation of my last blog post about the data processing part 2 of the CC-data catalog visualization project. I recommend you to read that last post for a better understanding of what I'll explain here.
Hello! In this post I am going to talk you about the extraction of unique nodes, and links, and the visualization of the force-directed graph with the processed data.
Nodes and links generation
The nodes and links will be visualized using force-graph. I spoke about this library in my blog post: Visualize CC Catalog data. My first step is to use the data to generate the json file that it needs. Force-graph needs to be passed a single json file with two lists: one containing information about the nodes, and the other containing the links. They are both arrays of dictionaries. I have huge input files (and over 100 million unique domains in total). So in Pandas I need to build a DataFrame of a tsv input file using chunks. The challenge I am facing now is to generate a list of unique nodes. Here is why this is a challenge:
- In order to build the nodes list, I need to think aboutwhat are the source and target nodes.
- Take into account a source node can also be a target node.
- I can delete duplicate entries per column, but as I process the data in chunks, my scope is limited to the chunk size.
- A domain can be repeated not only within a chunk, but in different chunks too.
- Source and target must have licensed content
So as you can see, dealing with duplications is not that trivial when you have a lot of data. Next what I tried was to analyze smaller files, in order to be able to keep the data in memory in a single DataFrame. So for each TSV file I had before, now I have several small TSV files. This may extend the data analysis, but it can smooth the coding complexity.
I first started by formatting the data into source and target columns to generate the unique nodes for the graph. I iterate through each row of the current DataFrame I have (the one with provider_domain, cc_licences,links column, etc), and by reading the links column, I load the json of each row. For each key in the json, I create a new row with provider_domain as source, they key as target, and the value of the key as a value feature. I append that new row to a new DataFrame. I build a new row each time I read a line, so I have a DataFrame with all the links of a single provider_domain. When I finish iterating over the rows, I convert the DataFrames to list and save the output. That is how I get a new DataFrame containing all the existing links of the graph, with source, target and value columns. Yeah!
The visualization I get is the following:
Force-directed graph with the real data.
Force-directed graph with the real data.
Coming soon
As you could visualize before, there are a lot of lonely nodes (nodes with no neighbors). My thoughts are to filter out the provider_domains that do not have a minimum quantity of licensed content. I will try with different values, starting form 100 to 1000, and see how the graph changes. I believe a lot of those nodes do not have a relevant amount of licensed content, so with this filter rule they will be removed. The other tasks left to do are:
- Visualization of the pie chart
- Development or modification of pruning/filtering rules.
You can follow the project development in the Github repo.
CC Data Catalog Visualization is my GSoC 2019 project under the guidance of Sophine Clachar, who has been greatly helpful and considerate since the GSoC application period. Also, my backup mentor, Breno Ferreira, and engineering director Kriti Godey, have been very supportive.
Have a nice week!
Maria


Reports
protected
instance variables. Constants (i.e. variables marked
static
and
final
) are not reported.
Powered by InspectionGadgets


Hi, welcome to my scheduling page.
If you're coming from Wyzant, please message me through Wyzant to book a session. Feel free to use this calendar to check my availability. Thank you.
Hi, welcome to my scheduling page.
If you're coming from Wyzant, please message me through Wyzant to book a session. Feel free to use this calendar to check my availability. Thank you.


Britain's ten most hated Christmas songs have been named and shamed - is your favourite listed?
Band Aid and Birmingham band Wizzard make up rest of top three most annoying festive tunes - and Black Country rockers Slade are not too far behind
by Brett Gibbons, https://www.birminghammail.co.uk/authors/brett-gibbons/It's not even December and shops, stores and radio stations are turning up the volume on those classic Christmas tunes.
Those festive favourites are everywhere and there's still more than a month to go until the big day on December 25.
But it's never too early for many folk who absolutely love the chart-topping Christmas crackers.
Heart Radio has already launched its 'Extra Xmas' station playing nothing but Christmas songs 24/7, wasting no time with news and presenters, but simply back-to-back Christmas Anthems to provide the 'perfect soundtrack to your personal winter wonderland'.
After taking to the airwaves a full 54 days before Santa visits, there's going to a fair bit of repetition in the build up to the most wonderful time of the year.
As we begin to hear the same soundtracks everywhere we go, Brits have had their say on their most hated Christmas songs they'll be hoping to avoid.
Surprisingly, Mariah Carey's Christmas classic 'All I Want For Christmas Is You' topped the poll to take the unfortunate crown of being the most annoying.
The top three was made up of runner-up 'Do They Know It's Christmas?' from Band Aid and Birmingham band Wizzard's 'I Wish It Could Be Christmas Everyday' in the poll of 2,000 people in a survey conducted by HUAWEI to celebrate the launch of its new FreeBuds 3 headphones.
Top 10 most hated Christmas song:
- All I Want for Christmas is You - Mariah Carey
- Do They Know It's Christmas? - Band Aid
- I Wish It Could Be Christmas Everyday - Wizzard
- Merry Xmas Everybody - Slade
- Last Christmas - Wham!
- Fairytale of New York - The Pogues and Kirsty MacColl
- Baby It's Cold Outside - Tom Jones & Cerys Matthews
- Santa Claus is Coming to Town - Jackson 5
- Santa Baby - Eartha Kitt
- Jingle Bells - Andrews Sisters
If the list looks more like a perfect winter soundtrack to you, B&M has released a doormat sensor which will play Christmas songs every time someone visits your grotto.
You'll be treated to club classics including 'We Wish You A Merry Christmas' and 'Jingle Bells' every time someone comes to your door - and the best bit is it's only £4.99.


layout: true class: typo, typo-selection --- class: nord-light, center, middle ## Machine Time For Humans ![jim carrey watch](https://media.giphy.com/media/P40Gkig2OTlLy/giphy.gif) --- class: nord-light ## Milliseconds - We work with them a lot - 5000ms timeout - 100ms HTTP response time --- class: nord-light ## Microseconds and Nanoseconds - Microbenchmarking - JMH - Profiling - YourKit, VisualVM --- class: nord-light ## Microseconds and Nanoseconds - A microsecond = 1 millionth of a second - A nanosecond = 1 billionth of a second --- class: nord-light, center, middle ## Imagine a world where computers are slow ![computer rage](https://media.giphy.com/media/3ohs81rDuEz9ioJzAA/giphy.gif) --- class: nord-light, center, middle ## No, I mean
really
slow A 1 nanosecond operation now takes 1 second ![slow sloth](https://media.giphy.com/media/OocLVILtd7ybm/giphy.gif) --- class: nord-light ## a + b ```scala a + b ``` - This takes 2 seconds --- class: nord-light ## Map.get ```scala ints.get(key) ``` - This takes 8.5 Seconds --- class: nord-light, center, middle ## Quiz time! --- class: nord-light ## Half then sum ```scala ints.values.map(_ / 2).sum ``` --- class: nord-light, center, middle ## 37 Minutes --- class: nord-light ## Sum then half ```scala ints.values.sum / 2 ``` --- class: nord-light, center, middle ## 15 Minutes --- class: nord-light ## Create an Exception ```scala new Exception("Oh no!").getStackTrace ``` --- class: nord-light, center, middle ## 1 Hour 52 Minutes --- class: nord-light ## Parse some JSON ```scala io.circe.parser.parse ( """{ "foo": "bar", "baz": 123, "list of stuff": [ 4, 5, 6 ] }""" ) ``` --- class: nord-light, center, middle ## 9 Minutes 8 Seconds --- class: nord-light ## HTTP - localhost ```scala http.client.expect[String]("http://localhost:8080/hello").unsafeRunSync() ``` --- class: nord-light, center, middle ## 3 Days --- class: nord-light ## HTTP - London server ```scala http.client.expect[String]("https://dynamodb.eu-west-2.amazonaws.com").unsafeRunSync() ``` --- class: nord-light, center, middle ## 6 Months --- class: nord-light ## HTTP - us-east-1 server ```scala http.client.expect[String]("https://dynamodb.us-east-1.amazonaws.com").unsafeRunSync() ``` --- class: nord-light, center, middle ## 2 Years 11 Months --- class: nord-light ## HTTP - us-west-2 server ```scala http.client.expect[String]("https://dynamodb.us-west-1.amazonaws.com").unsafeRunSync() ``` --- class: nord-light, center, middle ## 4 Years 11 Months --- class: nord-light ## Integration tests ```scala sbt it:test ``` --- class: nord-light, center, middle ## 19.97 Millenia --- class: nord-light, center, middle ## Thanks!


{% extends "header.html" %} {% block body %}
There are many applications for image recognition. One of the largest that people are most familiar with would be facial recognition, which is the art of matching faces in pictures to identities. Image recognition goes much further, however. It can allow computers to translate written text on paper into digital text, it can help the field of machine vision, where robots and other devices can recognize people and objects.
Here, our goal is to begin to use machine learning, in the form of pattern recognition, to teach our program what text looks like. In this case, we'll use numbers, but this could translate to all letters of the alphabet, words, faces, really anything at all. The more complex the image, the more complex the code will need to become. When it comes to letters and characters, it is relatively simplistic, however.
How is it done? Just like any problem, especially in programming, we need to just break it down into steps, and the problem will become easily solved. Let's break it down!
First, you are going to need some sample documents to help with this series, you can get the sample images here.
From there, extract the zip folder and move the "images" directory to wherever you're writing this script. Within it, you should have an "images" directory. Within that, you have some simple images that we'll be using and then you have a bunch of example numbers within the numbers directory.
Once you have that, you're going to need the Python programming language. This specific series was created using Python 2.7. You can go through this with Python 3, though there may be some minor differences.
You will also need Matplotlib, NumPy and PIL or Pillow. You can follow the video for installation, or you can also use pip install. At the time of my video, pip install wasn't really a method I would recommend. With any newer version of Python 2 or 3, you will get pip, and pip support on almost all packages is there now.
Don't know what pip is or how to install modules?Pip is probably the easiest way to install packages Once you install Python, you should be able to open your command prompt, like cmd.exe on windows, or bash on linux, and type:
pip install numpy
pip install matplotlib
Having trouble still? No problem, there's a tutorial for that: pip install Python modules tutorial.
If you're still having trouble, feel free to contact us, using the contact in the footer of this website.
Once you have all of the dependencies, then you are ready to move on to the next part!


Search and Display - Countries and Capitals of Europe
Search Capitals
Countries and Capitals of Europe
Country
Capital


public abstract class
Restriction
extends java.lang.Object
implements java.io.Serializable
An expression to be pushed into a Table Function so that the Table Function can short-circuit its processing and return fewer rows. A restriction is represented as a binary tree. The non-leaf nodes are ANDs and ORs. The leaf nodes are ColumnQualifiers. A ColumnQualifier is a simple expression comparing a constant value to a column in the Table Function.
| Modifier and Type | Class and Description |
|---|---|
static class
|
Restriction.AND
An AND of two Restrictions
|
static class
|
Restriction.ColumnQualifier
A simple comparison of a column to a constant value.
|
static class
|
Restriction.OR
An OR of two Restrictions
|
| Constructor and Description |
|---|
Restriction
()
|
| Modifier and Type | Method and Description |
|---|---|
protected java.lang.String
|
parenthesize
(java.lang.String raw)
Utility method to parenthesize an expression
|
abstract java.lang.String
|
toSQL
()
Turn this Restriction into a string suitable for use in a WHERE clause.
|
Apache Derby 10.9 API Documentation - Copyright © 2004,2012 The Apache Software Foundation. All Rights Reserved.


Hwa Sa states she wanted to be a monk when she was younger?
by sl278MAMAMOO's Hwa Sa shocked everyone by revealing that she wanted to be a monk when she was younger.
The popular star recently participated in a media showcase on November 14 for MAMAMOO's second full-length album 'reality in BLACK'.
Hwa Sa stated that her mother wanted her to become a monk, stating: "if I wasn't a singer, I would probably living freely somewhere as a monk."
The unexpected career choice definitely took netizens by surprise. Comments include:
"She really seems like she's a good daughter though."
"If HwasA went bald, that really would be a sight to see."
"It's still not too late! Haha."
What do you think Hwa Sa's unexpected career choice?


_X-Men_ (PG-13) *** (out of ****)
As geeky as it sounds, I must admit it--when it comes to _X-Men_, I am what is called a "fanboy." I grew up fervently following the comic book exploits of the team whose membership is made of genetically evolved, superpowered "mutants." Seeing a group of guys and gals kicking serious ass with their superhuman abilities is undoubtedly a major factor in my (and many others') interest, but what has made _X-Men_ so popular--and very passionately so, at that--are the realistic characters, authentic people who just happen to have powers. And while most comics treat their heroes' and heroines' abilities as simply a cool gift, for the X-Men and mutants in general, it is also very much a curse; much like any other minorities, mutants face severe prejudice from the rest of the population.
So adapting _X-Men_ and its sprawling, 30-year-plus history into a 100-minute feature film is a dicey proposition for any filmmaker, and even moreso for one who was not a fan to begin with--such as Bryan Singer, who is at the helm of Fox's lavish, long-awaited $80-million extravaganza. Not only must he appease the fanboys by not deviating too far from the source material, he must also make what is essentially a three-decade-long-and-counting soap opera accessible to the non-fan. And contrary to fans' greatest fears, Singer's _X-Men_ is an exciting, fast-paced adventure that will satisfy both audiences.
For a summer blockbuster--especially one based on a comic book--an $80-million budget is a pittance, but it's an appropriate figure for _X-Men_. Spectacular visual effects are called for (and are effectively employed) to bring the team's powers to life, but the budget limitation forces the filmmakers to make the effects a carefully used enhancement of the story and characters, which are hence given more weight (as they always had been in the comic).
For the most part, credited scripter David Hayter and a gaggle of uncredited scribes (including Singer's Oscar-winning _Usual_Suspects_ partner Christopher McQuarrie and _Buffy_ maestro Joss Whedon) succeed in making the characters mirror their counterparts on the page. The X-Men is a team of mutants led by Professor Charles Xavier (Patrick Stewart), a powerful telepath who runs a school for "gifted youngsters" and fights for mutant tolerance. As the film begins, his team consists of Jean Grey (Famke Janssen), a telekinetic (i.e., can move objects with her mind) and a telepath herself; Scott Summers, a.k.a. Cyclops (James Marsden), who cannot control his deadly optic blasts; and Ororo Monroe, a.k.a. Storm (Halle Berry), who can control the weather.
Those established members, however, take a backseat in the film to the new recruits, Logan, a.k.a. Wolverine (Hugh Jackman) and Rogue (Anna Paquin). The wild, mysterious Wolverine is perhaps best known for his retractable, razor-sharp claws made of the indestructible metal adamantium (his entire skeleton is also bonded with it), but his mutant abilities are heightened senses and a rapid healing factor. Rogue can absorb a person's lifeforce, personality, and memories (and, in the case of other mutants, powers) with a single touch. After discovering her ability after kissing her boyfriend, a distraught Rogue flees her native Mississippi for snowy Canada, where she meets Wolverine. When the two are attacked by the evil and animalistic Sabretooth (Tyler Mane), it's Storm and Cyclops to the rescue, and Wolverine and Rogue soon find themselves getting acquainted with the ways of Xavier's school.
Jackman, an unknown Australian actor known for his musical theater credits, and the teenage Paquin were Singer's two most controversial casting choices. Only one will completely win over skeptical fans: Jackman, who completely inhabits Wolvie's wild, woolly persona; from his first scene, fans should have no doubt about the actor's ability to embody the character's trademark ferocity. Paquin will have a harder time of convincing the fanboys. Young, waifish, and unglamorous, she in no way resembles (in appearance and temperament) the sexy, sassy, voluptuous, and now-20something comic book Rogue (the team's most popular female member). But within the context of the film's story--that is, as a "starting point" Rogue--her casting is understandable, and aside from an inconsistent Southern accent, Paquin is perfectly adequate. Even so, for the inevitable sequel, I suggest Singer pull an Anakin Skywalker and age Rogue a few years by way of a recast--and thus bringing to the screen the true Rogue fans know and love.
Needless to say, Rogue is the character that is least true to her printed incarnation. In addition to the change in age, she is given a real name (Marie), and her upbringing by evil mutant shapeshifter Mystique (and, hence, Rogue's history as a villain) is completely jettisoned. Mystique does appear in the film (played by Rebecca Romijn-Stamos), but only as part of a fairly faceless support team (along with Sabretooth and the aptly named Toad, played by Ray Park) for the film's central villain, Magneto (Ian McKellen). Magneto is an old friend of Xavier's, but the two drifted apart over their difference of philosophy. Xavier believes that there is hope for regular humans to accept mutantkind, but Magneto doesn't, preferring to go to war with them.
Magneto's dastardly scheme to bring humans and mutants to level genetic ground is the focus of the plot, and this thin story is indeed the film's weakest element. But the shortcoming is easy to forgive when the atmosphere and smaller details feel so right. The whole allegorical issue of "mutant hysteria"--perpetuated by bigoted U.S. Senator Robert Kelly (Bruce Davison)--is well-developed and played with the earnestness it deserves, as is a WWII-era-set prologue that faithfully details Magneto's beginnings. In fact, the serious--though never pretentious--tone of the film perfectly matches that of the comic, never veering into the camp sensibilities that have marred other comic-to-screen adaptations. Singer and the writers must also be commended for doing a bang-up job with the character relationships. The tense triangle between Scott, Jean, and Logan is perfectly played out; and Wolvie's bond with Rogue is also nicely handled.
But, being a fanboy, I'm not above nitpicking over certain things. While the Wolverine/Rogue relationship works in the film's context, in terms of the comics it bears more resemblance to his bond with two other young mutants, Kitty Pryde and Jubilee (both of whom have cameos in the film), than anything he ever had with Rogue. Another throwaway mutant appearance, that of Iceman (here referred to only by his real name, Bobby), is sure to upset purists; he's a teen and Rogue's kinda-sorta boyfriend at Xavier's school. Rogue's young age also means the erasure of the fascinating sexual tension between her and Magneto, which could have come into play at a crucial juncture of the film. And pity poor Storm. While Berry gives the character appropriate poise and elegance, the writers give her very little to do. Her forceful leadership abilities are gone, as are her claustrophobia (which should have been a factor in one scene) and sisterly relationship with Jean. Plus, what is the deal with that woefully unconvincing wig and her brown eyes (they should be blue)?
But some things have to give when adapting a comic to film (much like any book-to-screen translation), and for this fanboy, it's a relief that overall _X-Men_ the film bears uncommon fidelity to its source material. And as a critic, it's a relief to see an effects-laden popcorn movie offer a bit more meat than is traditionally required of such films. That said, _X-Men_ is best seen as just the jumping-off point for a possible big screen franchise--one whose full potential can be realized in subsequent installments.
Michael Dequina<EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS>Mr. Brown's Movie Site: http://welcome.to/mrbrown CinemaReview Magazine: http://www.CinemaReview.com on ICQ: #25289934 | on AOL Instant Messenger: MrBrown23
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


CUBKS TRAININGS
My info about 1:
My info about 2:
My info about class bottom: 3
My info about 4
1 65465464 3215852
2 3215852
main-body: para


The LastFMBase class is the base class for all classes in this API.
LastFMBase holds all the repetative methods and constanants used throughout the API.
public static var api_sig:String
public var loader:URLLoader
public static var sk:String = ""
xml:XML
[read-only]Implementation
public function get xml():XML
public function createAPI_Signature(variables:Array):String
Parameters
Returns
public function requestURL(url:String, method:String, variables:Object = null):void
Typical format of a simple multiline comment.
This text describes the requestURL() method, which is declared below.
Parameters
| url:String |
| |
| method:String |
| |
| variables:Object (default = null )
|
public static const API_KEY:String = ""
public static const API_URL:String = "http://ws.audioscrobbler.com/2.0/"
public static const SECRET:String = ""
public static const TOKEN:String = ""
© Copyright www.polyneme.co.uk | www.spry-soft.com


--- layout: post tags: [Miscellaneous] date: 2009-01-28 09:03:29 UTC title: "Living In Interesting Times" description: "As readers of my old MSDN blog will know, ploeh blog is moving to this new site." --- {% include JB/setup %}
As readers of my old MSDN blog will know, ploeh blog is moving to this new site.
Responding to the current financial crisis, Microsoft is cutting costs and laying off 1400 employees. During that process, the entire Microsoft Dynamics Mobile Team is being disbanded, which is very sad, since it was a very nice place to work. The team spirit was great, and we were really committed to agile development methodologies, but all good things must end...
Currently, I can't even begin to guess what the future looks like for me, although to regular readers of my blog I can state that I sincerely intend to keep writing as I always have. If you subscribed to my old blog, then please subscribe here instead. The blog is moving because the old blog belongs to Microsoft, and only employees can post, so I'll soon be writing my last post on the old blog.
Until now, it's always been Microsoft's policy to retain the old blogs, even when the original authors leave the company, so while I will not be able to post to the old blog, I expect the old posts to be around for a long time yet.
Professionally, I don't know what I will do now. If I can find new employment in these times, I may simply decide to take on new challenges with a new employer. However, I'm also considering free-lancing for a while: Coding, mentoring, lecturing, writing...
If you are in the position where you think you can use my services, whether for full-time employment or just a few days, please let me know. Keep in mind that I'm based in Copenhagen, Denmark, and while I can certainly travel after work, I cannot permanently move due to family obligations.
Comments
I'm very sorry to hear that; but you are a very smart person so I'm sure you'll have no problem finding a new job
I wish you the best
We're currently looking for senior developers with MS competencies. So have a look at our website and send me your CV, if you're interested.
Regards
Simon B. Jensen
Head of Development
IT Practice
Mark,
You're a good man. A software genius. The fact that you got laid off is a crime. I would hire you any day, and I wish you the best. Friend me on Facebook<EMAIL_ADDRESS>All my best,
Brian


Drag the number card on the top down to match with number slot at the bottom
You did it!
Author: Trung Huynh
This game was made based on Jquery Draggable Droppable tutorial.
Thanks Hakim El Hattab for a wonderful Reveal.js librabry.


{% extends "gruppeapp/base.html" %} {% load static %} {% load gruppeapp_extras %} {% block title %}My classes{% endblock %} {% block stylesheets%} {%endblock%} {% block body %}
Here you can create classes to save your students. This will make it way faster to create new groups since you do not have to enter them again.
To create groups from a class, go to the main page, select a class and click "Create groups from class".
{{class.description}}
{% endfor %}


Hello, my name is David Mendoza and I enjoy working out, drawing, watching movies, reading, and spending time with my friends. The drawing I do is mostly graffiti letters and the genre of movies I like to watch are thriller, horror, and action. Recently, I have only been reading mystery and self-help books. I enjoy staying active so I try to go to the gym atleast 6 days a week. I am a middle child and I am trying to major in Cybersecurity and minoring in Graphic Design.
I have a lot of hobbies the most recent one I picked up is Spikeball. However, I enjoy to play video games on my PC and sketching graffiti letters. The games I am currently playing are Valorant, Apex Legends, and Stardew Valley.
I have a small collection of cologne, Funko Pop's, and sneakers.


--- title: Pythagorean Triples with Comprehensions author: Jonathan Carroll date: '2023-08-13' slug: pythagorean-triples-with-comprehensions categories: - haskell - rstats - julia - python - rust - lisp - clojure - scala - c tags: - haskell - rstats - julia - python - rust - lisp - clojure - scala - c type: '' subtitle: '' image: '' editor_options: chunk_output_type: console ---
I’ve been learning at least one new programming language per month through Exercism and the #12in23 challenge.  Plus, once you know \(N\) languages, the \(N+1^{\rm th}\) is significantly easier. This post covers a calculation I came across in Haskell, and how I can now do the same in a lot of other languages - and perhaps can’t as easily in others.
I’ve been learning at least one new programming language per month through Exercism and the #12in23 challenge.  Plus, once you know \(N\) languages, the \(N+1^{\rm th}\) is significantly easier. This post covers a calculation I came across in Haskell, and how I can now do the same in a lot of other languages - and perhaps can’t as easily in others.
All of the languages here, I’m learning via Exercism, or at least I’m completing a handful or more exercises in each of the languages, which means learning enough of the syntax to be able to complete those. The #12in23 challenge is to try 12 languages in 2023… I’m doing just fine so far
I’ve been reading the (great!) online version of Learn You a Haskell for Great Good! - Haskell is a (properly) “pure” functional language, part of which means it has no side-effects, which includes, say, printing to the console. Haskell, of course, has a way around this (monads!) but it means there’s a lot to get through before you even get to a printing “Hello, World!” example. It’s also lazy which means it doesn’t evaluate something if it doesn’t need to, which makes for some good performance, sometimes.
This video does a really nice job explaining the principles of pure functional programming using JavaScript to introduce Haskell, building recursive functions that only take a single argument and return a single value.
One example that caught my eye in the list comprehensions section was this
ghci> let rightTriangles' = [ (a,b,c) | c <- [1..10], b <- [1..c], a <- [1..b], a^2 + b^2 == c^2, a+b+c == 24]
ghci> rightTriangles'
[(6,8,10)]
This perhaps isn’t too hard to read, even for those unfamiliar with the language. ghci
is
the interactive REPL for the Glasgow Haskell Compiler, so the prompt starts with that.
Haskell uses a let
binding to identify variables, and the apostrophe just indicates that
this is a slightly different version compared to the one defined slightly earlier in the chapter.
The list comprehension itself is perhaps not so dissimilar to one you’d find in Python; it
defines some tuple (a, b, c)
and |
identifies some constraints, namely that c
is taken
from a range of 1 to 10, b
is taken from a range of 1 to c
, and a
is taken from
a range of 1 to b
, along with the criteria that \(a^2 + b^2 = c^2\) (the numbers form a Pythagorean
triple) and their sum is 24. I discussed the Pythagorean triples in my last post - no
coincidence (/s). If you evaluate this line, you more-or-less immediately get back the result
[(6,8,10)]
which is a Pythagorean triple
\[6^2 + 8^2 = 36 + 64 = 100 = 10^2\]
for which
\[a + b + c = 6 + 8 + 10 = 24\] This isn’t a groundbreaking calculation, but I’ve done a lot of R, and my mind was a little blown that such a calculation could really be done in a single line just by specifying those constraints. Not a solver, not a grid of values with a filter, just specifying constraints.
Anyone who knows me knows I write a lot of R. I wrote a book on it. I solved all of the Advent of Code 2022 puzzles in strictly base R (I really need to write that post).
Now, R (unfortunately) doesn’t have any comprehensions, list or otherwise, so I started to wonder how I would do this in R. The best I can come up with is
expand.grid(a=1:10, b=1:10, c=1:10) |>
dplyr::filter(a^2 + b^2 == c^2 &
a + b + c == 24 &
a < b &
b < c)
## a b c
## 1 6 8 10
but that involves explicitly creating all 1000 combinations of a
, b
, and c
. There
may be a multi-step way to limit the grid to \(a < b\) and \(b < c\) but that’s more code. Maybe the
Haskell solution also has to generate these behind the scenes, but it isn’t up to the user to
do that, so it feels nicer. I like the filter()
verb here - technically the &
joining is
redundant and I could have passed each condition as its own argument. expand.grid()
is one
of those underutilised functions that comes in very handy sometimes - or its cousin
tidyr::crossing()
which wraps this and additionally performs de-duplication and sorting.
Now that I know more languages, I felt I could explore this a bit further!
In Python, which I feel is well-known for list comprehensions, this translates more or less 1:1 to
[(a,b,c) for c in range(1,11) for b in range(1,c) for a in range(1,b) if ((a**2 + b**2) == c**2) if a+b+c==24]
[(6, 8, 10)]
Of course, ranges are specified differently, but otherwise this follows the Haskell
solution quite nicely, including the dynamic ranges of b
and a
which avoids needing
to search the entire 10*10*10
space.
I appreciate there’s a silly language war between Python and R but honestly, a lot of stuff is written in Python and a lot of people write in Python. I figure it’s better to understand that language for when I need it than to stick my head in the sand and claim some sort of superiority. There’s bits I don’t like, sure, but that doesn’t mean I shouldn’t learn it. I’m even registered and attending PyConAU next weekend.
Rust is a fun language with easily the most helpful compiler ever made - you can make a lot of mistakes, but the error messages and hints are unparalleled. I’m currently taking Tim McNamara’s ‘How To Learn Rust’ course which has a lot of practical lessons and I’ve built some fun things already. I completed the first 13 Advent of Code 2022 puzzles in Rust, after which it all got a bit too complicated (and I do really need to write that post).
Rust doesn’t have list comprehensions (I believe there are cargo crates which do add such functionality) so it’s back to nested loops
for c in 1..=10 {
for b in 1..=c {
for a in 1..=b {
if a*a + b*b == c*c && a+b+c == 24 {
println!("{}, {}, {}", a, b, c);
}
}
}
};
6, 8, 10
That doesn’t allocate a result at all, it just prints the values when it encounters them, and since the loop is nested, it can limit the search to \(b \leq c\) and \(a \leq b\), but it does explicitly run the loop across all those combinations. It’s possible there’s a much better way to do this, but I couldn’t think of it.
I like the idea of Common Lisp, and I’m making my way through Practical Common Lisp slowly. I suspect I enjoy some of the descendants like Clojure a bit more, but it’s absolutely worth learning. Miles McBain has a great post about how learning about lisp quoting helps understand more of the tidyverse. I have used lisp in a code-golf post.
Lisp doesn’t have comprehensions so it relies on loops, and again, just prints the
result, returning NIL
(loop for c from 1 to 10
do (loop for b from 1 to c
do (loop for a from 1 to b
do (when (and (= (+ a b c) 24) (= (+ (* a a) (* b b)) (* c c)))
(format t "~d, ~d, ~d~%" a b c)))))
6, 8, 10
NIL
The loop is still constrained to \(b \leq c\) and \(a \leq b\), but definitely runs through all those values.
I really want to learn more Julia, but I’m not entirely new to the language. I have completed the first 25 Project Euler problems in Julia (by no means optimised solutions). I think what’s holding me back is the fact that almost every presentation using it is so very mathsy - and I’m a physicist by training. I love that the tidyverse is making its way over in the forms of Queryverse, DataFramesMeta, and more recently (and most likely with more success) the Tidier family.
Julia does have list comprehensions, and additionally has an “element” operator with
the mathematically-familiar symbol ∈
[(a,b,c) for c ∈ 1:10, b ∈ 1:10, a ∈ 1:10 if (a^2 + b^2 == c^2) && (a+b+c == 24) && b <= c && a <= b]
1-element Vector{Tuple{Int64, Int64, Int64}}:
(6, 8, 10)
Unfortunately, the choices for b
and a
still need to run through all 10 values because
Julia doesn’t allow these to be co-defined like Haskell and Python do. I came to Julia from
mainly only knowing R, so dealing with an output of type Vector{Tuple{Int64, Int64, Int64}}
initially proved to be a challenge, but I’d say learning more Rust has made me feel a lot more
comfortable around working with types.
Clojure feels to me like “lisp, but with good libraries”. There’s definitely syntax differences, but most of them feel like improvements.
(for [c (range 11)
b (range c)
a (range b)
:when (and (== (+ (* a a) (* b b)) (* c c)) (== (+ a b c) 24))]
[a b c])
([6 8 10])
This still feels like a comprehension, but the syntax is certainly a bit more
convoluted. Bonus points for the dynamic ranges of b
and a
. Still, a long way
off of completely unreadable, I’d say.
I’m learning a lot of functional programming, and I think I’m happy that some of the textbooks use Scala rather than some alternatives. I’m still very new to this language, but so far I think I like it.
Again, we’re back to a loop, but most of it is straightforward assignments and we
get the dynamic ranges of b
and a
for {
c <- 1 until 11
b <- 1 until c
a <- 1 until b
if a * a + b * b == c * c & a + b + c == 24
} {
println(s"Side lengths: $a, $b, $c")
}
Side lengths: 6, 8, 10
I mentioned that I performed this calculation in C in my last post - that ends up being just a loop
int a, b, c
printf("%4s\t%4s\t%4s\t%4s\n", "a", "b", "c");
printf(" -------------------------\n");
for (c = 1; c <= 24; c++)
for (b = 1; b <= c; b++)
for (a = 1; a <= b; a++)
if ( ( pow ( a, 2 ) + pow ( b, 2 ) ) == pow ( c, 2 ) ) {
printf("%4i\t%4i\t%4i\t%4i\n", a, b, c);
}
I haven’t run the output directly, since it needs an entire program supporting it, but it’s the right answer.
So, what does it look like if you run all of these together? I’ve been getting back into using tmux and it’s very powerful. One of the features is splitting a window into panes, so I did that - one for each of these languages!
I still think the Haskell solution shines above all the rest. It has all of the simplicity and language richness with none of the boilerplate. I like that it’s declarative (“get an answer to this”) rather than imperative (“do this, then that, then loop here…”). Comparing all of these, it’s clear there’s no guarantees about being able to define the dynamic iteration ranges so another win for Haskell, there.
Following my last post, @Kazinator mentioned to me that the “TXR Lisp code, calling calcsum directly via FFI using Lisp nested arrays” could be written as
$ cat calcsum.tl
(typedef arr3d (ptr (array (ptr (array (ptr (array int)))))))
(with-dyn-lib "./calcsum.so"
(deffi calcsum "calcsum" void (int (ptr arr3d))))
(let* ((dim 16)
(arr (vector dim)))
(each ((a 0..dim))
(set [arr a] (vector dim))
(each ((b 0..dim))
(set [[arr a] b] (vector dim 0))))
(calcsum (pred dim) arr)
(each-prod ((a 1..dim)
(b 1..dim)
(c 1..dim))
(let ((sum [[[arr a] b] c]))
(if (plusp sum)
(put-line (pic "### + ### + ### = ####" a b c sum))))))
$ txr calcsum.tl
3 + 4 + 5 = 12
5 + 12 + 13 = 30
6 + 8 + 10 = 24
9 + 12 + 15 = 36
This calculates all the combinations up to some value (as my post did) but it’s already clear there’s some cool features there.
How does your favourite language calculate the Pythagorean triple with a sum of 24? What can I do better in the solution I have above for a language you know?


Rather than giving you a list of API calls you could have figured out by glancing at the code, I'm going to talk about what I was thinking when I made the APIs and how to build a sample application.
Everything you read here may be wrong. Sucktastic documentation is a characteristic of open source projects. But I'm going to make an effort to keep these docs somewhat up to date. I hate it when developers respond to my queries by saying "the source code is self-documenting (you idiot)" which is a total crock of stuff we can't really mention in software documentation.
If something in this document doesn't make sense, get some coffee and see if it makes sense later. If it still doesn't make sense (you're going to hate this) take a look at the source code. It's possible I messed up or just haven't updated the docs.  If you still can't figure it out, feel free to drop me a line and I'll try to answer your question as best I can.
You know that verbage in end user licenses that says "no representations are made about the suitability of this softare for any purpose" ?? I've always sort of wondered what that means since softare companies spend millions (if not billions) of dollars every year trying to convince you their brand of bits is the niftiest thing since sliced bread.
I know, I know... It's boilerplate legalese crafted to prevent nuisance law suits when someone tries to say "You didn't tell me your software wouldn't make me waffles!" when it's clear all software is suitable for making crepes. This software doesn't make waffles. It actualy doesn't even make crepes. That is, unless you add a crepe-making application yourself, in which case it's not my fault your crepe-making app doesn't work, so buzz off.
No... there's no warranty on this software or it's documentation. If it does something useful, it's probably a complete accident and the result of a bug that will be removed in the next version of the code. And not only are no representations made about the suitability of this software (or it's documentation) for any particular purpose, you will be sadly disappointed if if you expect it to even work.
That being said, the way it doesn't work is the niftiest thing since bread started coming sliced. If this software happens to randomly make you a waffle, please let me know about it.


Contents
- Index
Start FreeCAD
Open the CodeSharkFC application
Select the FreeCAD menu item
Select Run FreeCAD from the sub menu.
The FreeCAD Interface dialog is displayed.
Click the Run FreeCAD button.
The FreeCAD application starts with a blank project. The panels that are visible on inital startup are specified by the script PanelViewScript.py.
Use the FreeCAD File Menu item to open the desired drawing file.
The drawing file is displayed.
Top


How do we understand what is spoken to us or what we read? Language comprehension is a process that we are all so extremely skilled at that it is often difficult to think about how it happens. You read a sentence and immediately understand it, or so it seems. But as with many things in life, the true story is usually not a simple as it seems. Researchers in a variety of disciplines, from psychology and linguistics to computer science and many more, have been trying for many years to understand exactly how we understand language. This page discusses just a few of the issues which researchers have explored, with an short example experimental task for each that you can complete. These experiments are designed to show you the methods that researchers use, as well as to give some insight into how the data from these experiments can inform our understanding of language comprehension.
The process of understanding language is often thought of as being composed of several stages. When hearing or reading a sentence we first have to identify the individual sounds and letters, then identify and determine the meaning of the individual words, and finally analyze the overall structure of the sentence to determine how the individual words relate to one and other to determine the overall meaning of the sentence. While it seems reasonable to conclude that this process happens serially, with letters being identified first, then words, and finally the sentence understood, there is increasing evidence that this is not necessarily strictly the case. The meaning of a word can help us identify an unclear sound or letter within the word, or information from the sentence level can help to disambiguate what is meant by a word with several meanings. This interaction between the different stages of comprehension will be discussed in more detail in relation to the specific experiments below.
The first two experiments below will address how we recognize individual words, either spoken or written. We won't be addressing the first step of comprehension, that of sound and letter recognition, but you can get more information on those here and here. The second two experiments will address two different aspects about processing sentences.
We are constantly surrounded by spoken language. Conversations with friends, talk-radio, your favorite television show, they are all filled with spoken language. How do we understand each of the words when we hear them? First, it's important to realize that when we hear a word, we do not hear it all at once, but spread out over time. Early on in the word, we can't be sure of it's final meaning, because at that point it could end up being several words. It's only after we have finished hearing the spoken word that we can be sure of what word it actually was. But do we wait until the end of the word before we ascribe meaning to it? Probably not. Instead, we try to predict what the word is going to be, based on what we've heard so far.
Once we've heard the word in it's entirety, we still might not be sure of the actual meaning. Many, many words are ambiguous. The word 'saw' could refer to the tool used to cut things, or to the act of using one's eyes to view something. The experiment below explores how this ambiguity in language affects the time it takes to recognize individual words.
While recognizing written words seems like it should probably be very similar to recognizing spoken words, there are important differences. When we hear a work, the word enters our language system one sound at a time. In contrast, when reading, we can process the whole word at once. We don't need to incrementally process each part of the word, because it is all there for us to see in a single glance.
If this were truly the case, and we could immediately and uniquely identify written words, we wouldn't expect the semantics, or meaning, of the word to influence this process. We simply see a word, and look up it's meaning, similar to how we use a dictionary. But is this actually how the language system works?
One way to test this question is by having people read words and make judgements about them, and vary how semantic information can be applied when making those judgements. The experiment below shows one example of how this can be tested. Click on the button below to run through the experiment, or jump ahead to the results to see a detailed explanation of why it doesn't seem to be quite as simple as dictionary lookup!
Once we have identified the words in the sentence (or at least have identified them well enough to give us a place to start) we can begin to try to determine the overall idea being conveyed. Language is a very complex thing and there are often many ways to say the same thing:
Given all the ways we can express an idea, as well as embed ideas within other ideas, it is remarkable that we can understand language at all. The language processing system has learned to rely on many different cues to help in understanding what is meant by a given sentence. One such cue that is used regularly in many different ways is that of agreement. Language has a variety of dependencies built in that helps disambiguate complex sentences. One such agreement is that of gender between nouns and pronouns. The phrase 'Adam tripped and then he fell' follows the rules of gender agreement, 'Adam tripped and she fell' does not (unless there is another person we are talking about who also fell). Similarly, there are noun-verb agreement dependencies based on whether the subject of the sentence is singular or plural: 'Adam tires of writing' makes sense, while 'Adam tire of writing' does not (but 'Students tire of writing' would.)
In order to use agreement to help disambiguate sentences, we have to be able to track them. The experiment below looks at how we are able to hold on to and track agreement while listening to sentences.
The last aspect of language processing that we will look at why some sentences are harder to comprehend than others, even if they appear superficially to be very similar (i.e., they are the same number of words, with similar overall structure, etc.) A good example of this phenomenon occurs with relative clauses, subclauses in a sentence that modify a noun (show in italics below):
Most people find the second sentence harder to read than the first. Why might this be? The final experiment examines this phenomenon by looking at the time it takes to read individual words in a sentence.


Bufck
Island.
June.
1969,
Roy
O.
Woodbury
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


set vpage xmin xmax ymin ymax
This command defines a "virtual page" that fits within the specified
limits of the real page. All graphics output will be drawn into this
"virtual page" until another set vpage
command is entered. A
clear
command clears the physical page (and any virtual pages
drawn on it).
When GrADS is first started, it prompts for landscape or portrait mode. This defines the size of the real page (11x8.5 or 8.5x11), and the dimensions for the virtual page must fit within this real page.
The set vpage
command will define virtual page limits in
terms of inches (virtual page inches), which are the coordinates that will
be used in the various commands that require inches to be used. The new
page limits are printed when the set vpage
command completes.
To return to the default state where the real page equals the virtual page, enter:
set vpage off


We all love our world, but it doesn't stop us right? We also strive to discover something new, always look around the corner, always in anticipation of something wonderful! So this is it. It is not about new places, although there are plenty of them, it's even not about new experiences, though you will find them in multitude, it all about new worlds!
If you have any questions or propositions, please contact us during business hours on week days!


you will be answered when the time is right. it is not the right time
When will the time be right to answer:
ComputerGenie 👴👴👴Today at 9:31 PM
OK, so 0ne notice says 2 months, one says 3, one says 4 is ok
does anyone actually know what dafuq is going on? :persevere:
?


Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Foreshore Technologies Incorporated
Mailing Address:
120 Garden AveNORTH VANCOUVER, British Columbia
V7P 3H2
Location Address:
120 Garden AveNORTH VANCOUVER, British Columbia
V7P 3H2
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
- Association of Registered Professional Biologists
- Canadian Wood Preservation Association member
- Pacific Coast Congress of Harbourmasters and Port Managers,
Inc.
- Washington State Department of Transportation Routine Bridge
Inspection certification
- Non destructive testing certification - ultrasonic (below and
above-water)
Full profile
Full profile
Contact information
Company description
541620 - Environmental Consulting Services
541710 - Research and Development in the Physical, Engineering and Life Sciences
Product / Service / Licensing
Vehicle (DOV). The "Toad" is capable of operating in depths
ranging from 3 meters to 20 plus meters. The operating diver is
towed by a boat at speeds up to 8 km/hour while being able to
communicate with the surface using a "hard wire" communication
system. Some of the uses of the 'Toad Sled' are: Search and
Rescue, fisheries habitat mapping and surveys, marine biological
studies and salvage operations.
This DOV is diver friendly!
operated by the diver and towed by the boat. It can be used
from marine or aquatic biological surveys to police or military
operations such as evidence and body recovery. The sled
completely protects the diver from fast currents and impact with
bottom debris. The sled has been used in up to 10 knots of
river current.
Our sled is currently being used by the Canadian Army Combat
divers as well as the Niagara Regional Police Service's
Underwater Search & Recovery Team.
The "Toad" sled comes equipped with high power lights, hardwire
comms, surface video or sonar feed and a Spectra stength
member. The sled body can be detached to pack up into a 2.5' x
4' x 4' crate for transporting and only weighs approx. 65lbs.
We can produce most custom designs requests.
Please contact us for more information.
testing instrument. It is used to determine the remaining cross-
section in timber piling. The PEER is self contained and can be
operated by a single diver.
The accuracy of the PEER System is +/- 10% at a 95% confidence
interval.
inspections on all areas of timber, steel and concrete structures
above and below-water.
This includes ultrasonic non-destructive testing of steel
supports (above/below-water) and timber piling (below-water only)
in the marine environment.
FTI has a unique ultrasonic instrument capable of assessing the
internal damage of marine timber piling to an accuracy level that
exceeds the U.S. Navy's accuracy requirements.
water condition assessments on all areas of timber, concrete and
steel structures.
We specialize in the under water non-destructive testing of
timber piles. Our ultrasonic testing instrument is accurate to
within +/- 15% (relative error) 95 times out of a hundred. Our
instrument has a 16 year history of accurately assessing Toredo
"worm" and other marine borer damage in the marine environment.
We also conduct non-destructive testing for steel concrete
piles and supports, cathodic protection system analysis and
steel thickness testing. Above water services include
structural inspections for wood rot, insect infestation,
mechanical damage and structural failure.
Above water inspection services include timber pile/post
inspections for fungus and insect infestation, steel corrosion,
weld damage and mechanical damage, and concrete pile/support
inspections for chemical deterioration, mechanical and impact
damage. Foreshore Technologies Inc. also treats timber piles
and supports for fungus & insect infestation with a treatment
guaranteed to last ten years. Our method of installing this
treatment has been approved for use over fish bearing waters.
Marine biological surveys and environmental monitoring.
In conjunction with our "Toad" diver sled, we are able to
conduct marine or aquatic environmental surveys over large
areas. Because our sled does not restrict the biologist/diver,
we can cover the entire survey or mapping area, rather than rely
on mean or averaging transects. Our services include bottom
surveys, ground truthing previous survey or side scan
information, collecting mud or specimen samples, mapping the
substrate and biota, epi-benthic survey and collection etc.
We have the capability to map the information using dGPS with
sub meter (3.3 feet) accuracy.
search & recovery services. Some of our services included:
simple recovery of lost equipment, mapping environmentally
sensitive areas, search & recovery of car/plane wreckage and
body recovery. With the use of one specialized diver operated
sled, we can search or map any body of water regardless of
current speed, down to a depth of 30 meters (100 feet).
If requested, Differential Global Positioning equipment can be
used in conjunction with our sled - with a sub-meter accuracy
range (<3 feet).
We have vast experience working with federal, civic and
private agencies. Our typical projects range from surveying and
mapping over 400 kilometers of sensitive fishery habitats for the
Department of Fisheries and Oceans, to search and recovery of
case sensitive evidence with Police search and recovery teams.
We have also conducted training courses on sled searching
operations with the Canadian Department of Defence divers.
B002-Animal and Fisheries Studies
B109-Other Environmental Studies
C213-A&E Inspection Services
E199-Other Environmental Services
H300-Inspection Services (incl. commercial testing and Laboratory Services, Except Medical/Dental)
Market profile
Alliances:
Strategic alliances:
Foreshore Technologies Inc. (FTI) would entertain joint venturewith another Engineering or Inspection company that operates in
the marine environment. FTI has produced a highly accurate marine
timber piling testing instrument for determining the
cross-section loss of piling due to marine borers. We have an
extensive client base on the West Coast of North America at the
moment, however we would like to expand our operating area into
the East Coast.
Industry sector market interests:
- Environment
Geographic markets:
Export experience:
- United States
- Alaska
- California
- Michigan
- Washington
Actively pursuing:
- Australia
- District of Columbia
- Hawaii
- New Hampshire
- New Jersey
- New York
- Oregon
- Rhode Island
- Texas
Sector information
Key / Major clients:
Acres InternationalAgra Earth & Environmental
Ajatan Enterprises Ltd.
Alberta Wheat Pool
Alcan Aluminum
Allnorth Engineering
American Pacific Marine, CA
Annacis Terminals
BelPacific Excavating & Shoring
Bennett Surveyors
B.C. Ferries
B.C. Hydro
B.C. Packers Ltd.
B.C. Research
B.H. Levelton
B.P. Oil, WA
Burrard Inlet Environmental Action Program (BIEAP)
Canadian Coastguard
Canadian Fishing Company
Canadian Forest Products
Canatech
Can Dive Services Ltd.
Canpac Divers Inc.
Canadian Broadcasting Corporation
Canadian Institute of Treated Wood
Cascadia Terminals
Chevron Canada Ltd.
Choukalos, Woodburn
Charles I. Rauw Consulting Engineers, CA
City & Borough of Sitka, AK
City of Monterey, CA
City of Vancouver
City of Valdez, AK
City of White Rock
Coast River Enviro. Services
Continental Lime Inc., WA
Corporation of Delta
Creegan & D'Angelo, CA
C.F.B. Chilliwack
C.F.B. Esquimalt
CN Rail
C.P. Rail
Delta Catalytic
Dept. of National Defence
District of North Vancouver
District of Powell River
District of West Vancouver
Dodd Pacific Engineering, WA
D.C.D. Piledriving Ltd.
Earthwerks Marine Ltd.
East Prince Ports Ltd.
Esso Petroleum
Envirochem Services
Environment Canada
False Creek Harbour Authority
Fiberco Export Inc.
Fisheries & Oceans Canada
Fletcher Challenge
Forintek Canada
Fraser River Harbour Commission
Fraser River Pile & Dredge
Fraser Shipyard
Golder Associates
Graeme & Murray Consultants
Greater Vancouver Regional District
Harbour Ferries Ltd.
Hart Crowser Inc., WA
Hernando Island Holdings
Hi-Rise West Ltd.
Hoyle Industries
Huntington Investments
IMF Yarrows
Indian & Northern Affairs
Inshore Divers, CA
International Sea Search
Island Paper Mills
Johnson Allen Properties
J.A. Murdoch & Company Ltd.
J.S. McMillan Fisheries
Kerr, Wood, Leidel Associates
Kennedy Russell Ltd.
Kitimaat Village Indian Band
Klohn Leonoff
Landplan Group Inc.
MacMillan Bloedel Ltd.
Mandeville Productions BC Ltd.
Marathon Development Inc.
Methanex Corporation
Ministry of Forests
Ministry of Transportation & Highways
Morrow Engineering
MTR Consultants
Mychem Wood Protection Consultants
M.B.A. Pacific Engineering
N.D. Lea Consultants
Nanaimo Harbour Commission
Ocean Cement Ltd.
Ocean Fisheries Ltd.
Pacific Coast Terminals
Pacific Elevators Ltd.
Pacific Piledriving Ltd.
Patrick Consultants
Peratrovich, Nottingham & Drage, AK
Petro Canada Products
Port of Anacortes, WA
Port Edward Harbour Authority
Port of Friday Harbor, WA
Port of Seattle, WA
Pottinger Gaherty
Prall Construction
Precision Marine Services
Public Works Canada
Quai Construction
RCMP - Ottawa
Reid Crowther
Robert Orr Development Corporation
Sandwell Inc.
Seafood Products Co. Ltd.
Shell Canada Ltd.
Shell Anacortes Refining Co., WA
Shelter Island Marina Inc.
Small Craft Harbours
SNC Lavalin Inc.
Squamish Terminals
Sverdrup Civil, Inc., WA
Tectonics, San Francisco, CA
Tolko Industries
Tosco Refining Company, WA
United Marine Divers, WA
United Grain Growers Ltd.
United States Coast Guard, WA
Vancouver Parks Board
Vancouver Port Authority
Vancouver Shipyards
Vancouver Wharves Ltd.
Veco Engineering Ltd.
Versacold Canada Corporation
Versatile Pacific
Victoria Highways Maintenance
Village of Gold River
Village of Port Edward
Villholth Jensen & Associates
Weldwood of Canada
West Coast Divers, CA
West Shore Constructors Ltd.
Western Forest Products
Western Pulp Partnership
Westin Bayshore
Westmar Consultants Inc.
Westmin Resources
Weyerhaeuser Canada
Wilson Walton International
Winnipeg Police Service
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
541620 - Environmental Consulting Services
541710 - Research and Development in the Physical, Engineering and Life Sciences
Products, services and licensing
Product / Service / Licensing
Vehicle (DOV). The "Toad" is capable of operating in depths
ranging from 3 meters to 20 plus meters. The operating diver is
towed by a boat at speeds up to 8 km/hour while being able to
communicate with the surface using a "hard wire" communication
system. Some of the uses of the 'Toad Sled' are: Search and
Rescue, fisheries habitat mapping and surveys, marine biological
studies and salvage operations.
This DOV is diver friendly!
operated by the diver and towed by the boat. It can be used
from marine or aquatic biological surveys to police or military
operations such as evidence and body recovery. The sled
completely protects the diver from fast currents and impact with
bottom debris. The sled has been used in up to 10 knots of
river current.
Our sled is currently being used by the Canadian Army Combat
divers as well as the Niagara Regional Police Service's
Underwater Search & Recovery Team.
The "Toad" sled comes equipped with high power lights, hardwire
comms, surface video or sonar feed and a Spectra stength
member. The sled body can be detached to pack up into a 2.5' x
4' x 4' crate for transporting and only weighs approx. 65lbs.
We can produce most custom designs requests.
Please contact us for more information.
testing instrument. It is used to determine the remaining cross-
section in timber piling. The PEER is self contained and can be
operated by a single diver.
The accuracy of the PEER System is +/- 10% at a 95% confidence
interval.
inspections on all areas of timber, steel and concrete structures
above and below-water.
This includes ultrasonic non-destructive testing of steel
supports (above/below-water) and timber piling (below-water only)
in the marine environment.
FTI has a unique ultrasonic instrument capable of assessing the
internal damage of marine timber piling to an accuracy level that
exceeds the U.S. Navy's accuracy requirements.
water condition assessments on all areas of timber, concrete and
steel structures.
We specialize in the under water non-destructive testing of
timber piles. Our ultrasonic testing instrument is accurate to
within +/- 15% (relative error) 95 times out of a hundred. Our
instrument has a 16 year history of accurately assessing Toredo
"worm" and other marine borer damage in the marine environment.
We also conduct non-destructive testing for steel concrete
piles and supports, cathodic protection system analysis and
steel thickness testing. Above water services include
structural inspections for wood rot, insect infestation,
mechanical damage and structural failure.
Above water inspection services include timber pile/post
inspections for fungus and insect infestation, steel corrosion,
weld damage and mechanical damage, and concrete pile/support
inspections for chemical deterioration, mechanical and impact
damage. Foreshore Technologies Inc. also treats timber piles
and supports for fungus & insect infestation with a treatment
guaranteed to last ten years. Our method of installing this
treatment has been approved for use over fish bearing waters.
Marine biological surveys and environmental monitoring.
In conjunction with our "Toad" diver sled, we are able to
conduct marine or aquatic environmental surveys over large
areas. Because our sled does not restrict the biologist/diver,
we can cover the entire survey or mapping area, rather than rely
on mean or averaging transects. Our services include bottom
surveys, ground truthing previous survey or side scan
information, collecting mud or specimen samples, mapping the
substrate and biota, epi-benthic survey and collection etc.
We have the capability to map the information using dGPS with
sub meter (3.3 feet) accuracy.
search & recovery services. Some of our services included:
simple recovery of lost equipment, mapping environmentally
sensitive areas, search & recovery of car/plane wreckage and
body recovery. With the use of one specialized diver operated
sled, we can search or map any body of water regardless of
current speed, down to a depth of 30 meters (100 feet).
If requested, Differential Global Positioning equipment can be
used in conjunction with our sled - with a sub-meter accuracy
range (<3 feet).
We have vast experience working with federal, civic and
private agencies. Our typical projects range from surveying and
mapping over 400 kilometers of sensitive fishery habitats for the
Department of Fisheries and Oceans, to search and recovery of
case sensitive evidence with Police search and recovery teams.
We have also conducted training courses on sled searching
operations with the Canadian Department of Defence divers.
B002-Animal and Fisheries Studies
B109-Other Environmental Studies
C213-A&E Inspection Services
E199-Other Environmental Services
H300-Inspection Services (incl. commercial testing and Laboratory Services, Except Medical/Dental)
Market
Market profile
Alliances:
Strategic alliances:
Foreshore Technologies Inc. (FTI) would entertain joint venturewith another Engineering or Inspection company that operates in
the marine environment. FTI has produced a highly accurate marine
timber piling testing instrument for determining the
cross-section loss of piling due to marine borers. We have an
extensive client base on the West Coast of North America at the
moment, however we would like to expand our operating area into
the East Coast.
Industry sector market interests:
- Environment
Geographic markets:
Export experience:
- United States
- Alaska
- California
- Michigan
- Washington
Actively pursuing:
- Australia
- District of Columbia
- Hawaii
- New Hampshire
- New Jersey
- New York
- Oregon
- Rhode Island
- Texas
Sector
Sector information
Key / Major clients:
Acres InternationalAgra Earth & Environmental
Ajatan Enterprises Ltd.
Alberta Wheat Pool
Alcan Aluminum
Allnorth Engineering
American Pacific Marine, CA
Annacis Terminals
BelPacific Excavating & Shoring
Bennett Surveyors
B.C. Ferries
B.C. Hydro
B.C. Packers Ltd.
B.C. Research
B.H. Levelton
B.P. Oil, WA
Burrard Inlet Environmental Action Program (BIEAP)
Canadian Coastguard
Canadian Fishing Company
Canadian Forest Products
Canatech
Can Dive Services Ltd.
Canpac Divers Inc.
Canadian Broadcasting Corporation
Canadian Institute of Treated Wood
Cascadia Terminals
Chevron Canada Ltd.
Choukalos, Woodburn
Charles I. Rauw Consulting Engineers, CA
City & Borough of Sitka, AK
City of Monterey, CA
City of Vancouver
City of Valdez, AK
City of White Rock
Coast River Enviro. Services
Continental Lime Inc., WA
Corporation of Delta
Creegan & D'Angelo, CA
C.F.B. Chilliwack
C.F.B. Esquimalt
CN Rail
C.P. Rail
Delta Catalytic
Dept. of National Defence
District of North Vancouver
District of Powell River
District of West Vancouver
Dodd Pacific Engineering, WA
D.C.D. Piledriving Ltd.
Earthwerks Marine Ltd.
East Prince Ports Ltd.
Esso Petroleum
Envirochem Services
Environment Canada
False Creek Harbour Authority
Fiberco Export Inc.
Fisheries & Oceans Canada
Fletcher Challenge
Forintek Canada
Fraser River Harbour Commission
Fraser River Pile & Dredge
Fraser Shipyard
Golder Associates
Graeme & Murray Consultants
Greater Vancouver Regional District
Harbour Ferries Ltd.
Hart Crowser Inc., WA
Hernando Island Holdings
Hi-Rise West Ltd.
Hoyle Industries
Huntington Investments
IMF Yarrows
Indian & Northern Affairs
Inshore Divers, CA
International Sea Search
Island Paper Mills
Johnson Allen Properties
J.A. Murdoch & Company Ltd.
J.S. McMillan Fisheries
Kerr, Wood, Leidel Associates
Kennedy Russell Ltd.
Kitimaat Village Indian Band
Klohn Leonoff
Landplan Group Inc.
MacMillan Bloedel Ltd.
Mandeville Productions BC Ltd.
Marathon Development Inc.
Methanex Corporation
Ministry of Forests
Ministry of Transportation & Highways
Morrow Engineering
MTR Consultants
Mychem Wood Protection Consultants
M.B.A. Pacific Engineering
N.D. Lea Consultants
Nanaimo Harbour Commission
Ocean Cement Ltd.
Ocean Fisheries Ltd.
Pacific Coast Terminals
Pacific Elevators Ltd.
Pacific Piledriving Ltd.
Patrick Consultants
Peratrovich, Nottingham & Drage, AK
Petro Canada Products
Port of Anacortes, WA
Port Edward Harbour Authority
Port of Friday Harbor, WA
Port of Seattle, WA
Pottinger Gaherty
Prall Construction
Precision Marine Services
Public Works Canada
Quai Construction
RCMP - Ottawa
Reid Crowther
Robert Orr Development Corporation
Sandwell Inc.
Seafood Products Co. Ltd.
Shell Canada Ltd.
Shell Anacortes Refining Co., WA
Shelter Island Marina Inc.
Small Craft Harbours
SNC Lavalin Inc.
Squamish Terminals
Sverdrup Civil, Inc., WA
Tectonics, San Francisco, CA
Tolko Industries
Tosco Refining Company, WA
United Marine Divers, WA
United Grain Growers Ltd.
United States Coast Guard, WA
Vancouver Parks Board
Vancouver Port Authority
Vancouver Shipyards
Vancouver Wharves Ltd.
Veco Engineering Ltd.
Versacold Canada Corporation
Versatile Pacific
Victoria Highways Maintenance
Village of Gold River
Village of Port Edward
Villholth Jensen & Associates
Weldwood of Canada
West Coast Divers, CA
West Shore Constructors Ltd.
Western Forest Products
Western Pulp Partnership
Westin Bayshore
Westmar Consultants Inc.
Westmin Resources
Weyerhaeuser Canada
Wilson Walton International
Winnipeg Police Service


SIM.JS Tutorial¶
Traffic Lights at Intersection models the flow of cars at an intersection with traffic lights. The objective of the simulation is to study the average wait duration for cars at the intersection and the average number of cars waiting at the intersection.
Buffet Restaurant models buffet-style restaurant. Customer arrive at restaurant, pick up food from buffet area (we will will assume only one food item: salad), reach cashier for payment and leave the restaurant. The objective of the simulation is to study the average time spent by customers at the restaurant, and the average number of customers inside the restaurant.


--- layout: post authors: ["Raniere Silva", "Sheldon McKay"] title: "2015 Post-Workshop Instructor Debriefing, Round 18" date: 2015-10-15 time: "10:00:00" tags: ["Debriefing"] ---
On September 15th, the mentoring subcommittee held the 18th round of debriefing for instructors. At this round, we have a great discussion about teaching (or not) branches during the Git lesson and about Python packages used in examples.
Instructors reported that they still encountering some installation issues during the workshops that they or the helpers solve in a couple of minutes. The most common are:
Along this lines,
there is also the problem of man
not be installed in Git Bash on Windows.
In one of the workshops, instructors had problem due cyrilic characters.
Learners from one of the workshops suggested in their feedback that instructors provide a cheat sheet at the begin of the workshop so the learners could consult what they learn easily.
The "Reference" part of our lessons is close to a cheat sheet and can be provide to students.
You can print the "Reference" directly from your web browser since it has a special special style sheet for printers.
Instructors reported that they are having problems to show enough code for learners when using Jupyter Notebook, with code scrolling above the top of the screen. Unfortunately we didn't settle on a good solution to this but is was helpful having a helper translate all the code onto the etherpad.
We discussed if we should or shouldn't teach branching during the Git lesson. Branch is a powerful tool that enables one to experiment with different changes, while avoiding the problem of different copies of the files. Unfortunately, it is a lot for learners to take in and understand during the workshop and it can confound some beginners. However, it should also be noted that git made the made the eyes of the more experienced shell users in the group light up quite spectacularly.
We also discussed that some packages are more suitable for some audiences. For example, Pandas is more suitable for learners that need to do data analysis and NumPy is more suitable for learners that need to process/create data.


Dear Sir, Difficulties encountered in efforts to establish a business abroad necessitate this search for someone to assist me in securing and investing the sum of USD21,000.000 (twenty one million dollars)inherited from my father's business reserve. I am the heir of a Zimbabwean family; my father was an agriculturist. He became rich from his old-aged investment in agriculture and later was victimized by President Robert Mugabe's land reform policy. He was assassinated by unknown gunmen for defending his land ownership and siding the minority white farmers. Before his death, my father foresaw the insecurity of both our lives and property then decided to deposit the above sum with a private finance and security firm in Europe. This money has become the only inherited property of our family since our home was burnt,and the farmlands and machines seized; yet the government and it's loyalists are bent on making life difficult for us. To summarise this traumatic story, my mother and I have decided to offer 15% of the above sum to anyone who assists us to secure this funds overseas or 25% share for possible help on investing in any reliable venture. There are however some minimal cost involved in securing the release of this deposit from the present holding company.i do not intend to overburden you with these cost.but you must know beforehand that we will be sharing whatever cost involved in retrieving this deposit and putting it to beneficial use. if you would want to proceed under these terms,please reply for detailed information. if you do not accept my offer,please in good fate treat with utmost confidentiality . A quick reply with your name,telephone and fax numbers to for more confidential communication will be highly appreciated. Sincerely yours, frankzambani


Type: Primary
Name: Elena Nastase
Background
- Date of Birth:
- Gender: Female
- Location: Bucharest, Romania
- Work place: Organization Name, Poet
- School: University of Bucharest
- Technology Level: Barely use a computer
Main Points
- Have a rich imagination;
- Loves to read and write poems;
- Knows how useful technology can be.
- She is very organized
Goals
- Apply herself to becoming a better master of Romanian language;
- Publish second full-length poetry collection;
- Become faimous, rich or both.
Frustrations and Pain Points
- She cannot keystroke fast enought; the thoughts, words and ideas run wild like horses;
- writing is a lonely adventure; here only validation come from feedback, but nobody sends an email to say how great her poems are.
- Writer's block
Detailed Description
Nastase Elena is a 43 Romanian poet. Educated in Bucharest, she went on to receive a degree in philology from the University of Bucharest, starting a grade school teacher career that lasted almost ten years, first in a village along the Danube, then in Bucharest. With her first book won the Romanian Writers Union Prize for a debut in poetry.
She knows how useful can be a computer and that's why she bought one, but has a bit of problem by using it. Her son, Dragos teached her how to use it: explain how to get for informations from the internet, how to be organized on the computer and how to write an save the documents. Elena learn quick and now she use the computer alone. There are moments when she have writer's block and use the internet for informations and moments when she have a lot of ideeas but cannot keystroke fast enought and lose some of that.
Scenarios
Looking for a word in dictionary: When she read poems she confonts with some words that she doesn't know what it means. Enter in dictionary application and search for that word. Now she knows what it means!
Have an history about her work: She goes to her editor to show him the new poems that she had wrote lately. Enter in history an view all her last poems.
Get a rhyme for a specific word: Sometimes she met some friends and play a game called: "Best Rhymes" where they must get the perfect rhyme in a context. She write the context in the application, select the last word from the previous line and the applications show her all the rhymes possible for that word and she choose the best.