News
0.6.5 / 2010-03-11
- Fix pidfile
- Fix Exception Error
0.6.4 / 2010-03-08
- Use cStringIO for performance when possible.
- Fix worker freeze when a remote connection closes unexpectedly.
0.6.3 / 2010-03-07
- Make HTTP parsing faster.
- Some fixes (see logs)
0.6.2 / 2010-03-01
- Added support for chunked response.
- Added proc_name option to the config file.
- Improved the HTTP parser. It now uses buffers instead of strings to store temporary data.
- Improved performance when sending responses.
- Workers are now murdered by age (the oldest is killed first).
0.6.1 / 2010-02-24
- Added gunicorn config file support for django admin command
- Fix gunicorn config file. -c was broken.
- Removed TTIN/TTOU from workers which blocked other signals.
0.6 / 2010-02-22
- Added setproctitle
- Change privilege switch behaviour. We now work like NGINX, master keeps the permissions, new uid/gid permissions are only set for workers.
0.5.1 / 2010-02-22
- Fix umask
- Added debian packaging
0.5 / 2010-02-20
- Added configuration file handler.
- Added support for pre/post fork hooks
- Added support for before_exec hook
- Added support for unix sockets
- Added launch of workers processes under different user/group
- Added umask option
- Added SCRIPT_NAME support
- Better support of some exotic settings for Django projects
- Better support of Paste-compatible applicatins
- Some refactoring to make the code easier to hack
- Allow multiple keys in request and response headers


Add New Inventory
Update Inventory
Office Branch:
Serial Number:
Name:
Type:
Status:
Manufacturer:
Model:
OS Name:
OS Version:
OS Service Pack:
Memory:
Disk Drive:
Processor Name:
Processor Count:
Acquisition Date:
Acquisition Cost:
Warranty Provider:
Warranty Expiration:
Save
Reset
Cancel


Name: (Minimum 8 characters)
Number: (Only numbers)
Password: (6 to 16 characters, at least one number and one special character)
Email: (Valid email regex)


{% extends "base.html" %} {% block title %}Places that have been flagged as "current"{% endblock %} {% block content %}
current{% if pagination.total == 1 %} There is one place that has been flagged as
current{% elif pagination.total > 1 %} There are {{ pagination.total |number_format|e }} places that have been flagged as
current{% if pagination.pages > 1 %} {% if pagination.cursor %} and this is one page of many {% else %} and this is page {{ pagination.page |number_format|e }} of {{ pagination.pages |number_format|e }} {% endif %} {% endif %} {% else %}{% endif %}
There aren't any places that have been flagged as current


My name is Martin and I'm OK. I sleep all
night and work all day!
Well that's just grand, because we're all
SAYFE as houses
So let's get crackin shall we?
Ship it!!
Ship it!!
Ship it!!
Job done
Just in time for tea!
That's just smashing that is!
## An Important SSML Implementation Note
There is a **small but crucial detail** that you should know at this point. When you want to use SSML to generate speech with your own Custom Voice endpoint, you need to specify the voice. This is because SSML requires a "voice" attribute, which
defines the custom sound, usually one of the standard voices as shown below:
blah blah blah
You need to use the name of your custom voice here, the name you gave it when you create the endpoint.
The **name** attribute for the endpoint (shown being created below) would be "**Martin Test**", instead of the highlighted text above.
blah blah blah
Creating an endpoint for generating your own speech from text:
[![ ](https://social.technet.microsoft.com/wiki/resized-image.ashx/__size/550x0/__key/communityserver-wikis-components-files/00-00-00-00-05/5228.CustomVoiceNameEndpoint.PNG)](https://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/5228.CustomVoiceNameEndpoint.PNG)
↑ [
Back to top](#Top)
* * *
# Generate Subtitles
Now that you have a set of curated, time-boxed utterances, you can export them as subtitles (captioning) - for feeding back into an original video!
Since starting this article, I added a fourth tab to the toolbox. You can generate a TTML or SRT formatted file.
## Timed Text Markup Language
Below is an example of the TTML that is generated:
Hello everybody!
I'm Martin Woodward.
Marti.. I was gonna do<EMAIL_ADDRESS>but Pete's ruined that forever fer me now, so...
If you haven't, don't know what that means, then go.. go look it his LinkedIn.
@martinwoodward on Twitter, if you wanna send some abuse for me being late, that'd be great!
And then we'll get cracking! So what I was going to do tonight was kinda talk through
some of the sort of habits and some of the things we learnt on our team
as we became.. as we sort of did our journey towards DevOps.
DevOps is never.. it's a destination you're never going to get to, you know I mean?
It's a journey were going to be on forever, and we're going to get better at, as we go.
But we'll talk about that more as we get started. So let's get cracking!
## *SubRip Subtitle*
In contrast to the formal tagged approach of TTML, here is the export for the SRT format. This works with video editing applications like
[**Camtasia**](https://www.techsmith.com/video-editor.html).
1
00:00:00,280 --> 00:00:01,280
Hello everybody!
2
00:00:01,790 --> 00:00:02,930
I'm Martin Woodward.
3
00:00:02,990 --> 00:00:09,010
Marti.. I was going to do<EMAIL_ADDRESS>but Pete's ruined that forever for me now so...
4
00:00:09,200 --> 00:00:12,650
If you haven't, don't know what that means, then go... go look it his LinkedIn.
5
00:00:12,960 --> 00:00:17,450
@martinwoodward on twitter, if you wana send some abuse for me being late, that'd be great!
6
00:00:17,640 --> 00:00:21,700
And then we'll get cracking! So what I was going to do tonight was just kinda talk through
7
00:00:22,610 --> 00:00:26,020
some of the sort of habits and some of the things we learnt on our team
8
00:00:26,140 --> 00:00:29,400
as we became, as we sort of did our journey towards DevOps.
9
00:00:29,650 --> 00:00:34,030
DevOps is never... it's a destination you're never going to get to, you know I mean?
10
00:00:34,080 --> 00:00:37,770
It's a journey were going to be on forever, and we'll going to get better at, as we go.
11
00:00:37,900 --> 00:00:41,040
But we'll talk about that more as we get started. So let's get cracking!
## TTML for your Windows 10 Films & TV app
The clip below shows importing the above TTML script, into a matching clip from the original footage.
This can all be done with your free**Windows10 baked-in "Films & TV"** app!
[https://www.youtube.com/v/SytAC9vz5dA?fs=1&rel=0](https://www.youtube.com/v/SytAC9vz5dA?fs=1&rel=0)
SSML and SRT are just two common formats for subtitles, although there are a great many more.
If you're new to all this, the GitHub demo code should help you learn how to implement your own file formats.
↑ [
Back to top](#Top)
* * *
# "Any CPU" Not Supported
If you download the project and just run it, you'll probably get the following error message:
[![ ](https://social.technet.microsoft.com/wiki/resized-image.ashx/__size/550x0/__key/communityserver-wikis-components-files/00-00-00-00-05/8816.NotAnyCpu.PNG)](https://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/8816.NotAnyCpu.PNG)
This simply means you have to change that drop-down to x64 or x86 configuration.
If neither are listed, click the "configuration manager" option, shown below:
[![ ](https://social.technet.microsoft.com/wiki/resized-image.ashx/__size/550x0/__key/communityserver-wikis-components-files/00-00-00-00-05/0083.Config-manager.png)](https://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/0083.Config-manager.png)
Then select active solution platforms and "" as shown below:
[![ ](https://social.technet.microsoft.com/wiki/resized-image.ashx/__size/550x0/__key/communityserver-wikis-components-files/00-00-00-00-05/6013.Config-manager-2.png)](https://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/6013.Config-manager-2.png)
Finally, type in your choice of platform as "x64" or "x86" and "copy the settings from Any CPU".
**No changes are needed.**
[![ ](https://social.technet.microsoft.com/wiki/resized-image.ashx/__size/550x0/__key/communityserver-wikis-components-files/00-00-00-00-05/2543.Config-manager-3.png)](https://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/2543.Config-manager-3.png)
Then you should find it in the drop-down and the project should compile.
**PM me on social media, if you have any problems.**
[![ ](https://social.technet.microsoft.com/wiki/resized-image.ashx/__size/550x0/__key/communityserver-wikis-components-files/00-00-00-00-05/7268.Config-manager-4.png)](https://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/7268.Config-manager-4.png)
↑ [
Back to top](#Top)
* * *
# Test Services Directly Via Swagger
This article is long enough already, so if you want to explore the many other features of Speech Services, you can do so via the
[**Swagger page for your service region**](https://westus.cris.ai/swagger/ui/index).
[![ ](https://social.technet.microsoft.com/wiki/resized-image.ashx/__size/550x0/__key/communityserver-wikis-components-files/00-00-00-00-05/0871.Swagger1.PNG)](https://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/0871.Swagger1.PNG)
Each operation has a section, where you can learn the methods and parameters.
There is also a form for each where you can test the service call, against your own subscription.
**Important notes:**1. You must select the correct service "region" where your subscription is created. Above shows the default "[westus](https://westus.cris.ai/swagger/ui/index)" service.
2. Notice the "api key" textbox in the green header above and the red exclamation icon below. Enter your key or click the icon to log in. Then you can use the actual service methods directly against your own subscription data.
[![ ](https://social.technet.microsoft.com/wiki/resized-image.ashx/__size/550x0/__key/communityserver-wikis-components-files/00-00-00-00-05/5734.Swagger2.PNG)](https://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/5734.Swagger2.PNG)
The Swagger page uses the same REST endpoints that the code uses. There is no more risk or difference from using the web page or code.
So, once you have some data uploaded to the service, go ahead and play with the other features via Swagger, before you code it up!
↑ [
Back to top](#Top)
* * *
# What is a Microsoft "IT Implementer"?
As a [
Microsoft IT Implementer](https://www.microsoft.com/en-gb/atwork/it-implementer/), I give this work to you, in the hope that it helps others to
**implement such a cool and free technology**. We're here to help demystify today's top technology. To debunk the myths that may deter others, to deep dive and demonstrate. Below are some other links for this
**Custom Voice** project.
- [This article announcement on Microsoft Azure Developer blog](https://blogs.msdn.microsoft.com/azuredev/2019/01/25/azure-speech-service-example-project-for-custom-voices-transcribe-videos-generate-subtitles/)
- [The initial announcement on LinkedIn](https://www.linkedin.com/feed/update/urn:li:activity:6494716261556195329/)
- [The Twitter announcement, with stamp of "like" from Martin](https://twitter.com/NetityNews/status/1088950635037224960)
- [Microsoft IT Implementer home page](https://www.microsoft.com/en-gb/atwork/it-implementer/)
↑ [
Back to top](#Top)
* * *
# See Also
- [Try for yourself: Download this project from GitHub](https://github.com/ProjectPete/AzureCustomSpeech/)
- [Get the tools to build your own apps for free, with Visual Studio Community and VS Code](https://www.linkedin.com/pulse/devops-habits-from-microsofts-martin-woodward-peter-laker/)
- [Microsoft Cognitive Custom Speech Service](https://github.com/Microsoft/Cognitive-Custom-Speech-Service)
- [Cognitive Services: Speech to Text & Demo (STT)](https://azure.microsoft.com/en-us/services/cognitive-services/speech-to-text/)
- [How to customize a
Voice Font (digitized voice)](https://docs.microsoft.com/en-gb/azure/cognitive-services/speech-service/how-to-customize-acoustic-models%20https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/how-to-customize-voice-font)
- [All the insights and revelations from Microsoft and their ways of working, from Martin Woodward](https://www.linkedin.com/pulse/devops-habits-from-microsofts-martin-woodward-peter-laker/)
- [More about Timed Text Markup Language](https://en.wikipedia.org/wiki/Timed_Text_Markup_Language)
- [Everything else is here (SDK for Microsoft.CognitiveServices.Speech Namespace)](https://docs.microsoft.com/en-gb/dotnet/api/microsoft.cognitiveservices.speech?view=azure-dotnet)
- [Alternatively, get more flexibility with the REST service](https://docs.microsoft.com/en-gb/azure/cognitive-services/speech-service/rest-apis)
- [Swagger link - for playground page to test the service directly.](https://westus.cris.ai/swagger/ui/index)
- [Dive deeper into DevOps by following Martin Woodward on Twitter](https://twitter.com/martinwoodward)
↑ [
Back to top](#Top)
* * *


In this post I will introduce a theoretical model for computation in centralized distributed massively parallel computational systems (or in short clusters like those used by Google many other companies). Over the last decades the supercomputer architecture has moved towards such designs and there seem to be no signs of this trend slowing (see Wikipedia article for more information).
MapReduce-style Computation
MapReduce is a programming model for cluster computing introduced by Jeff Dean and Sanjay Ghemawat in their seminal paper. There exist multiple different implementations of MapReduce, Apache Hadoop being one of the most popular among them.
Below I will describe a theoretical version of the model for MapReduce-style computation. This model is easy to understand, avoiding low-level technical details involved in the implementation of the MapReduce model. For those familiar with the standard MapReduce implementations, which use key-value pairs and Map/Shuffle/Reduce phases, let me just say that these two are interchangeable abstractions of the same thing.
This model has emerged in a sequence of papers:
- Jon Feldman, S. Muthukrishnan, Anastasios Sidiropoulos, Clifford Stein, Zoya Svitkina: On distributing symmetric streaming computations. SODA 2008.
- Howard J. Karloff, Siddharth Suri, Sergei Vassilvitskii: A Model of Computation for MapReduce. SODA 2010.
- Michael T. Goodrich, Nodari Sitchinava, Qin Zhang: Sorting, Searching, and Simulation in the MapReduce Framework. ISAAC 2011
- Paul Beame, Paraschos Koutris, Dan Suciu: Communication steps for parallel query processing. PODS 2013
Storage Model
First, let’s discuss the data storage. Data of size is partitioned between identical machines. Each machine is the standard RAM machine with bits of RAM. The data fits into the overall memory with possibly some extra memory left for the algorithm to use so that , where is an overhead replication factor. Unless otherwise specified, replication will be constant, i.e. so I will ignore it.
Without loss of generality I will assume that and . Here is a constant, which is typically significantly greater than zero, but less than (think of a cluster with thousands of machines, each having gigabytes of RAM).
Computational Steps
The key parameter in the study of massively parallel algorithms is the number of supersteps (or rounds) of computation. The entire computation is divided into such rounds, each consisting of two phases:
-
Local computation phase. In this phase each machine performs a local computation based on its data. This computation should be as efficient as possible (ideally linear or close to linear time, sometimes allowing polynomial time for particularly hard problems). Typically local running times for all machines will be identical at a given round so let’s denote them as at round .
-
Communication phase. In the communication phase each machine can send and receive at most bits of information. The limitation on received data comes from the memory bound of every machine. Note that this doesn’t allow, say, streaming computations to be performed on the fly on the incoming data. The limitation on sent data comes from the technical details of the MapReduce framework. For those familiar with the low-level details I will just say that the key-value pairs have to be stored locally before they get redistributed between machines.
Number of Rounds
Overall, if the number of rounds is then the total local computational time is . The total communication time is , where is the time it takes to redistribute the data between machines in each round. This parameter is dependent on the under the hood implementation of the system so I will assume it as given.
For example, if local running times are linear then we get total running time of . This emphasizes the number of rounds as the key parameter for understanding the complexity of algorithms in MapReduce-like systems. Other considertaions, such as fault-tolerance, also suggest that ideally we would like to have just a few rounds. So having rounds is great, while rounds might be also ok for some problems.
Examples
Let’s look at some examples of how many rounds it takes to solve some basic problems:
- Sorting. rounds suffice to sort numbers. This is a result from: Michael T. Goodrich, Nodari Sitchinava, Qin Zhang: Sorting, Searching, and Simulation in the MapReduce Framework. ISAAC 2011.
- Connectivity. rounds suffice to check whether a graph with edges is connected or not. This is a result from: Howard J. Karloff, Siddharth Suri, Sergei Vassilvitskii: A Model of Computation for MapReduce. SODA 2010.
In practice it takes two rounds for a terabyte dataset using TeraSort, which uses essentially the same algorithm as the theoretical -round algorithm mentioned above. Here is a simplified version:
- Take a random sample of size .
- Assuming that in the first round we can sort this sample locally on one of the machines, obtaining a sequence .
- In the second round send all keys in the range to the -th machine and sort them locally on that machine.
The connectivity algorithm is more complex so I will describe it in more detail below.
Connectivity in rounds
The data consists of edges of an undirected graph on the vertex set . The goal is to compute the connected components of this graph. For every vertex let be its unique integer id (a number between and ). During the algorithm we will also maintain a label for each vertex . Let be the set of vertices with the label . During the execution of the algorithm this set will be a subset of the connected component containing . We will use and to denote the set of neighbors of a vertex and a subset of vertices respectively.
Here is a high-level description of the algorithm. I will call some of the vertices active. The idea is that every set of vertices with the same label according to will have exactly one active vertex during the execution of the algorithm.
- Mark every vertex as active and label .
- For phases do:
- Call each active vertex a leader with probability . If is a leader, mark all vertices in as leaders.
- For every active non-leader vertex , find the smallest leader (with respect to ) vertex .
- If is not empty, mark passive and relabel each vertex with label by .
- Output the set of connected components, where vertices having the same label according to are in the same component.
It is easy to see if for two vertices and it holds that then and are in the same connected component. It remains to show that every connected component will have a unique label with high probability after phases. We will show that for every connected component in the graph the number of active vertices in this component reduces by a constant factor in every phase. Indeed, half of the active vertices in every component is declared as non-leaders. Fix an active non-leader vertex . If there are at least two different labels in the connected component containing then there exists an edge such that and . The vertex is marked as a leader with probability so in expectation half of the active non-leader vertices will change their label in every phase. Overall, we expect of labels to disappear. By a Chernoff bound after phases the number of active labels in every connected component will drop to one with high probability.
Finally, I will leave it as an excercise to check that each phase of the algorithm above can be implemented in constant number of rounds. Indeed, it is not hard to see that selection of leaders, computation of (the smallest label in for active non-leader nodes ) and relabeling can all be done in constant number of rounds.
Open Problem
Is it possible to solve connectivity in constant number of rounds? This is a big open problem in the area and the consensus seems to be that this is not possible. In fact, it is open even whether one can distinguish a cycle on vertices from two cycles on vertices each in constant number of rounds.


Inputs/Outputs
-
IO data and metadata are listed here.
To reload data from the database, press the Refresh button below
Refresh
-
Outputs
- Add/Edit/Remove
outputname
-
Inputs
-
NameIDGPIO1InterfaceGPIOType18Address18
- Add/Edit/Remove


ace
Close
Home
About
Email
Résumé
Photography
#AmateurPhotographer
Photography Exploration
Exploration:
I enjoy spending my spare time exploring parts of the city on the weekends. Taking photographs allows me to capture the different places I travel and the spontaneous trips through out my travels.
Portfolio
About
Contact
Résumé


Contains functions to access movement data stored in 'movebank.org' as well as tools to visualize and statistically analyze animal movement data, among others functions to calculate dynamic Brownian Bridge Movement Models. Move helps addressing movement ecology questions.
| Version: | 3.1.0 |
| Depends: | geosphere (≥ 1.4-3), methods, sp, raster (≥ 2.4-15), rgdal, R (≥ 2.15.0) |
| Imports: | httr, memoise, xml2, Rcpp |
| LinkingTo: | Rcpp |
| Suggests: | adehabitatHR, adehabitatLT, circular, ggmap, mapproj, maptools, testthat |
| Published: | 2018-09-11 |
| Author: | Bart Kranstauber [aut, cre], Marco Smolla [aut], Anne K Scharf [aut] |
| Maintainer: | Bart Kranstauber <bart.kranstauber at ieu.uzh.ch> |
| BugReports: | https://gitlab.com/bartk/move/issues |
| License: | GPL (≥ 3) |
| NeedsCompilation: | yes |
| SystemRequirements: | C++11 |
| Materials: | ChangeLog |
| In views: | SpatioTemporal |
| CRAN checks: | move results |
| Reference manual: | move.pdf |
| Vignettes: |
Browsing Movebank using the move package Using the move package |
| Package source: | move_3.1.0.tar.gz |
| Windows binaries: | r-devel: move_3.1.0.zip, r-release: move_3.1.0.zip, r-oldrel: move_3.1.0.zip |
| OS X binaries: | r-release: move_3.1.0.tgz, r-oldrel: move_3.1.0.tgz |
| Old sources: | move archive |
| Reverse depends: | moveWindSpeed |
| Reverse imports: | moveVis |
| Reverse suggests: | amt, ctmm, EMbC, recurse, segclust2d |
Please use the canonical form https://CRAN.R-project.org/package=move to link to this page.


SqlQuery
With SqlQuery we can execute sql queries without any entity beans or dto beans. Instead we can:
- Read JDBC
ResultSet
directly - Read as
SqlRow
objects - Use
mapToScalar()
and read simple scalar values like Long, BigDecimal, OffsetDateTime etc - use
mapTo()
andRowMapper
to map and read objects
Example findOne with SqlRow
String sql = "select id, name, when_active from customer where id = :id"
SqlRow row = DB.sqlQuery(sql)
.setParameter("id", 42)
.findOne();
String name = row.getString("name");
Timestamp active = row.getTimestamp("when_active");
Example findEachRow with ResultSet
String sql = "select id, name, status from customer order by name desc";
DB.sqlQuery(sql)
.findEachRow((resultSet, rowNum) -> {
long id = resultSet.getLong(1);
String name = resultSet.getString(2);
...
});
Example mapToScalar()
String sql = "select mysequence.nextval";
Long nextVal = DB.sqlQuery(sql)
.mapToScalar(Long.class)
.findOne();
Binding positioned parameters using ?
Positioned parameters use ?
as the placeholder.
String sql = "select id, name, when_active from customer where status = ? and when_created > ?";
List<SqlRow> rows = DB.sqlQuery(sql)
.setParameter(1, "NEW")
.setParameter(2, lastWeek)
.findList();
We can omit the index positions like the next example.
String sql = "select id, name, when_active from customer where status = ? and when_created > ?";
List<SqlRow> rows = DB.sqlQuery(sql)
.setParameter("NEW")
.setParameter(lastWeek)
.findList();
We can alternatively set multiple positioned parameters using setParameters()
.
String sql = "select id, name, when_active from customer where status = ? and when_created > ?";
List<SqlRow> rows = DB.sqlQuery(sql)
.setParameters("NEW", lastWeek)
.findList();
Binding named parameters using :name
Named parameters use the form :foo
as the placeholder. Named parameters have the
advantages that we can use them to bind collections into an IN
expression and
that the same parameter can appear multiple times in the SQL.
Binding using named parameters
String sql =
"select id, name, when_active " +
"from customer " +
"where status = :status and when_created > :created";
List<SqlRow> rows = DB.sqlQuery(sql)
.setParameter("status", "NEW")
.setParameter("created", lastWeek)
.findList();
Binding collections
To bind collections of values into an IN clause we need to used named parameters or indexed positioned parameters.
Named parameter example (:names)
String sql = "select c.id, c.name from customer c where c.name in (:names)";
List<SqlRow> rows = DB.sqlQuery(sql)
.setParameter("names", asList("Rob", "Fiona", "Jack"))
.findList();
Index parameter example - ?2
String sql = "select c.id, c.name from customer c " +
"where c.status = ? and c.name in (?2) and c.when_created > ?";
List<SqlRow> rows = DB.sqlQuery(sql)
.setParameter("NEW")
.setParameter(asList("Rob", "Fiona", "Jack"))
.setParameter(lastWeek)
.findList();
Postgres ANY
When using Postgres we can use Postgres ANY
in SqlQuery with positioned parameters.
The benefit of using Postgres ANY
is that we end up using a single SQL query regardless of the number
of parameters - a single JDBC PreparedStatement and the database has a single SQL query to parse. This results in
the database doing less hard parsing and better use of PreparedStatement cache, less query plans to cache, less memory consumed.
Example
When using index positioned parameters and binding a collection that will bind as a JDBC ARRAY.
List<Integer> ids = List.of(1, 2);
List<SqlRow> list = DB.sqlQuery("select id, name from o_customer where id = any(?)")
.setParameter(1, ids) // bind as JDBC ARRAY
.findList();
When using Postgres we would often prefer to use that over using an IN
clause
like the example below. The reason we prefer ANY
is that it does not matter how
many elements we have in the ARRAY we end up with a single SQL statement. This gives us a single
query plan, single PrepareStatement and on the database end a single query statement to parse regardless
of the number of id values we are binding.
In comparison to using an IN
clause, if we have 3 ids that is a different SQL query to one
that has 4 ids for example - we end up with more distinct PreparedStatements, potentially a lot more depending
on the number of id values we have.
List<SqlRow> list = DB.sqlQuery("select id, name from o_customer where id in (:idList)")
.setParameter("idList", ids) // bind parameter expansion
.findList();
Using the IN
clause will result in a different SQL query when we have different numbers of
id values. With 4 id values supplied then in (:idList)
is turned into SQL in (?, ?, ?, ?)
.
firstRow / maxRows
We can specify firstRow and maxRows on a SqlQuery and Ebean will modify the SQL based on the database platform to add the appropriate row limit clause.
String sql = "select id, name, when_active from customer where status = ?";
List<SqlRow> rows = DB.sqlQuery(sql)
.setParameter(1, "NEW")
.setFirstRow(10)
.setMaxRows(10)
.findList();
mapToScalar() - single column scalar result
Use mapToScalar()
when the query has a single column in the select clause.
This specifies the type to use to read the result.
String sql = "select mysequence.nextval";
Long nextVal = DB.sqlQuery(sql)
.mapToScalar(Long.class)
.findOne();
String sql = "select max(unit_price) from order_lines where order_qty > ?";
BigDecimal maxPrice = DB.sqlQuery(sql)
.setParameter(42)
.mapToScalar(BigDecimal.class)
.findOne();
String sql = "select max(order_date) from orders where customer_id = ?";
OffsetDateTime maxDate = DB.sqlQuery(sql)
.setParameter(42)
.mapToScalar(OffsetDateTime.class)
.findOne();
All scalar types that Ebean supports can be used - refer to mapping types.
mapTo() - RowMapper
We can implement a RowMapper to convert a ResultSet into a dto bean.
Note that this similar to DtoQuery except that the mapping is here is explicit and with DtoQuery the mapping is effectively automatic (no effort) based on naming convention mapping. In that sense the expectation is that people will use DtoQuery first and only use this explicit RowMapping when necessary.
static class CustomerDtoMapper implements RowMapper<CustomerDto> {
@Override
public CustomerDto map(ResultSet resultSet, int rowNum) throws SQLException {
long id = resultSet.getLong(1);
String name = resultSet.getString(2);
String status = resultSet.getString(3);
return new CustomerDto(id, name, status);
}
}
...
static final CustomerDtoMapper CUSTOMER_MAPPER = new CustomerDtoMapper()
Then we can use it to return DTO beans.
String sql = "select id, name, status from customer where name = ?";
List<CustomerDto> rob = DB.sqlQuery(sql)
.setParameter("Rob")
.mapTo(CUSTOMER_MAPPER)
.findList();


Independence Day (1996)
Grade: 41
ID4 was an huge escapist summer hit. The audience came to see the White House blown up, and to see writhing aliens get theirs. If special effects are all you care about, by all means check out this otherwise dumb-dumb movie.
Aliens place enormous spaceships over Earth's biggest cities, and just leave them there, apparently for sustaining dramatic tension.
Bill Pullman is the U.S. President. Will Smith is a jetfighter pilot. Randy Quaid is a confused cropduster who claims to have once been kidnapped by aliens. His kids are amazingly good looking. Jeff Goldblum is a goofy nerd, Judd Hirsch his goofy dad.
Goldblum, who just happens to be the only techno-wizard smart enough to figure out when the Aliens will launch their attack, just happens to have an ex-wife who is the President's Chief of Staff, who just happens to be a young and gorgeous woman.
One of Goldblum's co-workers is fluttery and cowardly and has a raspy voice. He wins the 1996 non-Academy Award for most annoying supporting actor.
Finally, the long-promoted event arrives. Aliens blow up the White House, the Capital, make thousands of cars fly in the air, killing the raspy voiced guy (no loss). However, Will Smith's perfect "10" stripper girlfriend is about the city's only survivor, the only one smart enough to flee her car and hide in an office located in a subway tunnel. Afterwards, she leads a relief effort and finds and comforts the injured first lady, whom the President apparently couldn't find room for in Air Force 1.
Will Smith and his squadron attack an enemy spaceship. All the jets are destroyed except Smith's. We get to see lots of planes blow up. Smith's plane runs out of gas (wouldn't he have refueled before he left?) but he parachutes to safety. After some trash talk, he takes an alien hostage. He soon encounters Randy Quaid, who gives Smith and alien a ride.
Pullman learns that aliens did crash in Roswell, New Mexico, in 1949. He visits the top secret laboratory there, meeting goofy mad scientist Brent Spiner. Smith and alien also show up, and meet the President. Spiner operates on the alien, which springs back to life (the operation is a success) and attacks Spiner. Pullman has a conversation with the alien. When the icky alien isn't polite, it is shot.
Smith commandeers a helicopter (apparently he can fly anything) and thru ESP finds his girlfriend and the first lady, who lives just long enough for a tender bedside moment with Pullman.
Clever Goldblum somehow creates a computer virus that can take down the alien shields, allowing counterstrikes. Ever-handy Smith learns to fly the alien spacecraft from the Roswell crash, and docks with the mothership to allow passenger Goldblum to execute the virus. Alien vessels attack the base and the jets, destroying all but the supporting cast. Drunken oaf Quaid volunteers for a strike force and blows up the mothership. Pullman also flies a jet to fight the aliens. Even more amazing, Smith and Goldblum escape the aliens alive.
http://members.tripod.com/~Brian_Koller/movies.html
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


§42F-106 Monitoring and evaluation. Every grant shall be monitored by the expending agency to ensure compliance with this chapter and the public purpose and legislative intent of the grant. [L 1997, c 190, pt of §3; am L 2014, c 96, §10]


JavaScript (JS)
An object-oriented computer programming language commonly used to create interactive effects within web browsers.
Operators
An assignment operator assigns a value to its left operand based on the value of its right operand.
Variables
Can be thought of as containers used to store information. They allow for a way to label data with a descriptive name.
Variable naming conventions
Functions
A set of statements that performs a task or calculates a value.
Methods
A function which is a property of an object.
Arguments
An Array like object accessible inside functions that contains the values of the arguments passed to that function.
Parameters
A named variable passed into a function.
Return
A statement that stops the execution of a function and returns a value from that function
Chaining methods
Also known as Cascading, means repeatedly calling one method after another on an object, in one continuous line of code.
Strings
An object that is used to represent and manipulate a sequence of characters.
Booleans
An object wrapper for a boolean value.
Undefined
A global property that represents the primitive value undefined. It is one of JavaScript's primitive types.
NaN
The global property value representing Not-A-Number.
Null
Represents the intentional absence of any object value. It is one of JavaScript's primitive values and is treated as falsy for boolean operations.
Alert
A method that displays an alert dialog with the optional specified content and an OK button.
Comments
An interface that represents textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view.
jQuery
A JavaScript Library that focuses on simplifying DOM manipulation, AJAX calls, and Event handling.
Attributes
A property that returns a live collection of all attribute nodes registered to the specified node.


请参阅: 说明
| 接口 | 说明 |
|---|---|
| Highlighter |
Highlights a search result.
|
| 类 | 说明 |
|---|---|
| AbstractHighlighterBuilder<HB extends AbstractHighlighterBuilder<?>> |
This abstract class holds parameters shared by
HighlightBuilder and HighlightBuilder.Field
and provides the common setters, equality, hashCode calculation and common serialization |
| CustomQueryScorer | |
| FastVectorHighlighter | |
| FragmentBuilderHelper |
Simple helper class for
FastVectorHighlighter FragmentsBuilder implementations. |
| HighlightBuilder |
A builder for search highlighting.
|
| HighlightBuilder.Field | |
| HighlighterContext | |
| HighlightField |
A field highlighted with its highlighted fragments.
|
| HighlightPhase | |
| HighlightUtils | |
| PlainHighlighter | |
| SearchContextHighlight | |
| SearchContextHighlight.Field | |
| SearchContextHighlight.FieldOptions | |
| SimpleFragmentsBuilder |
Direct Subclass of Lucene's org.apache.lucene.search.vectorhighlight.SimpleFragmentsBuilder
that corrects offsets for broken analysis chains.
|
| SourceScoreOrderFragmentsBuilder | |
| SourceSimpleFragmentsBuilder | |
| UnifiedHighlighter |
| 枚举 | 说明 |
|---|---|
| HighlightBuilder.BoundaryScannerType | |
| HighlightBuilder.Order |
Highlighter
and
SearchPlugin.getHighlighters()
.


George Zimmerman briefly taken into custody after domestic dispute
George Zimmerman has been taken into custody following an incident that may have involved a gun, CBS News has confirmed.
In a telephone interview the Lake Mary, Florida police chief said George Zimmerman was in "investigative detention" after his estranged wife, Shellie, called authorities to say he was threatening her and her parents with a gun. She later backed off from that statement, saying she never saw a gun despite what she told the 911 dispatcher.
Lake Mary police say they were called to the Sprucewood Road home of Shellie Zimmerman's parents Monday afternoon. Lake Mary Police Chief Steve Bracknell told CBS News officers did not see a gun when they arrived on scene.
As of 3:45 p.m., George Zimmerman was no longer in custody, reports CBS affiliate WKMG. Police said they assumed a gun was in Zimmerman's car, but they don't plan on getting a warrant to look or retrieve it.
"He's in his car and he continually has his hand on his gun and he keeps saying 'step closer' and he's just threatening all of us," Shellie Zimmerman said in a 911 call, reports the station, adding that George Zimmerman was "trying to shut the garage door" on her.
"He punched my dad in the nose my dad has a mark on the nose. I saw his glasses were on the floor," Shellie Zimmerman said in the call. "He then accosted my father then took my iPad out of my hands. He then smashed it and cut it with a pocketknife, and there is a Lake Mary city worker across the street that I believe saw all of it."
Shellie Zimmerman tells her father on the call to get behind a car. "I don't know if he's going to start shooting at us or something," she says in the call.
She said her father "feels like he's going to have a heart attack." She requested medical attention for her father, saying it looked as though his nose may be broken.
"I don't know what he's capable of," Shellie Zimmerman said in the call. "I'm really scared."
Lake Mary police spokesman Zach Hudson tells the station police are "trying to determine what exactly happened."
No arrests have been made. The estranged husband and wife are blaming each other for starting the fight, police said, though Shellie Zimmerman has said she won't press charges.
Police are investigating the incident as a "possible domestic battery," the Orlando Sentinel reports. No significant injuries were reported, police said, according to the report.
The incident comes days after Shellie Zimmerman filed for divorce and discussed her relationship with George Zimmerman in a TV interview.
George Zimmerman, 29, was acquitted of second-degree murder in the Feb. 2012 shooting death of 17-year-old Trayvon Martin on July 13. The case made international news after it took police several weeks to arrest Zimmerman in the case.
Shellie Zimmerman has also had trouble with the law. On Aug. 28, she pleaded guilty to misdemeanor perjury and was sentenced to one year of probation. She had been accused of lying about the couple's financial situation when she testified at George Zimmerman's bond hearing in June 2012.
On the same day she pleaded guilty, Shellie Zimmerman told ABC's Good Morning, America that she would "think about" staying married to her husband.
Zimmerman has been pulled over for speeding twice since his acquittal.


Front-and-center propulsion on push and pull.
Low maintenance internal gearing.
Intuitive design providing tremendous handling and support.
High performance braking and secure parking. Safety first.
Easily accessible, non-slip, and room to adjust.
Ultra maneuverable. Great stability. Speeds up to 15 mph.
Gearing to help you climb and an anti-roll back transmission.
Small footprint. 36-inch turning radius. Push-rims for shunts and spins.
Power is applied to the rear wheel with the greatest traction. Wheels rotate independently when cornering.
Integrated powertrain. Delivers power on push and pull from propulsion lever to both rear wheels.
Double chain powertrain with an internal hub gear. Change between 8 speeds with grip shift.
Easily accessible, non-slip, and room to adjust.
Integrated into propulsion lever. Connects steering linkage to front fork crown.
To propel RoTrike push forward and pull back in a rowing motion on the font-and-center mounted handlebar. To steer just turn the handlebar the direction you wish to go. To brake just pull back all the way on the handlebar.
It’s all ergonomic, simple and intuitive.
RoTrike is designed with your safety in mind. Key features include.
Finding the right fit is so important. RoTrike can be adjusted to your optimum riding geometry. Built-in adjustments include:
RoTrike has integrated mounts for custom accessories.
Check out the RoTrike Cargo Tray. It’s perfect for a trip to the local grocery store.
There’s more fantastic new accessories in the pipeline. Stay tuned.


Log out {% else %}
{% endif %} {% endcomment %}Four years ago, you boarded a train, And hence began an unforgettable journey. Now that you would change trains soon, Let's look back at this wonderful train ride, And smile at those silly but precious memories.
(PS: Don't forget to use your college email-id as ticket ;) )


{{partial "head.html"}} {{range $i, $css := .Params.extra_css}} {{end}}
If you enjoyed this screencast, please consider becoming a backer and supporting Go in 5 Minutes. Cool stickers and more await you!


Speakers
Invited Speaker
Yoichi Matsuda
Affiliations- Avian Bioscience Research Center, Graduate School of Bioagricultural Sciences, Nagoya University, Nagoya 464-8601, Japan.
- Department of Applied Molecular Biosciences, Graduate School of Bioagricultural Sciences, Nagoya University, Nagoya, 464-8601 Japan
Barry Pongson
Deputy Director of the ARC Centre of Excellence in Plant Energy Biology (PEB), a cutting edge research centre focused on better understanding the way in which plants interconvert forms of chemical energy in response to environmental change, at the Australian National University. His research involves the controls and regulators of communication between the chloroplast and nucleus, which include discovery of genes and metabolites involved in epigenetics, RNA metabolism, chloroplast-nuclear signaling, carotenoid biosynthesis, photosynthesis and drought. He is a co-editor at the Plant Cell, the most highly cited research journal in plant biology and is the Australian representative on the Multinational Arabidopsis Steering Committee (MASC). He also leads the Global Plant Council's Nutritional-Security initiative on improving plants for human health.


JJTECH AWS GROUP 3
HOW TO HOST STATIC WEBSITE ON S3 USING CLOUDFRONT.
Hello, we are going to demonstrate how to host a static website on s3 and CloudFront.
STEPS TO FOLLOW:
- Create an S3 Bucket
- Upload the Static content making object permission public
- Enable Website Hosting on the Bucket
- Make the bucket Publicly Accessible
- Configure Index Document
- Test the Static Web Endpoint
Group Members:
Roland
Estevia
Yvonne
Collins
Christian
Senge


{include file="common/header-css-index" /} {load href="__PURPLEADMIN__node_modules/jqvmap/dist/jqvmap.min.css" /}


{% extends "base.html" %} {% block jumbotron %}
You are looking at box #{{ box.id }}:
Update
Back to box index


System configuration library.
get_compile_flags(...)
: Get the compilation flags for custom operators.
get_include(...)
: Get the directory containing the TensorFlow C++ header files.
get_lib(...)
: Get the directory containing the TensorFlow framework library.
get_link_flags(...)
: Get the link flags for custom operators.


Starts a macro whenever the specified sheet is activated from another sheet.
Syntax
ON.SHEET(sheet_text, macro_text, activate_logical)
Sheet_text is the name of the sheet that triggers a macro when it is activated, in the form "[Book1]Sheet1". If omitted, then when any sheet in any book is activated, macro_text will run.
Macro_text is the name of the macro to run when the specified sheet is activated. If omitted, then the triggering of a macro on the specified sheet is cancelled.
Activate_logical is a logical value that specifies if the macro is run when the sheet is activated or deactivated. If TRUE or omitted, the macro is run when the sheet is activated. If FALSE, the macro is run when the sheet is deactivated.
Examples
ON.SHEET("[STORE.XLS]Sheet1","WeeklyCalc") will run the macro "WeeklyCalc" when "[STORE.XLS]Sheet1" is activated.
ON.SHEET(,"WeeklyCalc") runs "WeeklyCalc" when any sheet in the book is activated.
ON.SHEET("[STORE.XLS]Sheet1") cancels the triggering of "WeeklyCalc" when Sheet1 in the book STORE.XLS is activated.
ON.SHEET("[STORE.XLS]","WeeklyCalc") runs "WeeklyCalc" when any sheet in the book STORE.XLS is activated
Related Function
ON.WINDOW Runs a specified macro when you switch to a particular window.
Return to index


There are multiple ways to get mlpack up and running. Python bindings can be installed using pip or conda, or built from source (see the README). Julia bindings can be installed via Julia's 'Pkg' package manager. For C++, if mlpack is not available via your preferred OS package manager, or if you need to build your own version (e.g. to apply optimizations, use a different set of BLAS/LAPACK, or build a different configuration), please also refer to the README. For Windows, prebuilt binaries will help you get started without the need of building mlpack. These packages include both the C++ mlpack library as well as the CLI tools.
Once you get mlpack running, check out the documentation or the examples repository, which contains simple example usages of mlpack.
In case none of the binary packages listed on our website work for your system, or you want to modify mlpack, you will need to build it from source. See the "source" section for your operating system above, or the extended directions below.
© 2007 - 2022 mlpack developers (BSD License).
Home • Quick Start • Documentation • Community • FAQ • GitHub


filmcritic.com presents a review from staff member James Brundage. You can find the review with full credits at http://www.filmcritic.com/misc/emporium.nsf/2a460f93626cd4678625624c007f2b46/6bc44eb43d6bf1ef88256879000a7ed5?OpenDocument
The Hurricane (1999, R)
Directed by Norman Jewison
Written by Armyan Berstein and Dan Gordon
Produced by Armyan Berstein, Norman Jewison, John Ketcham
Starring Denzel Washington, Vicellous Reon Shannon, Deborah Kara Unger, Liev Schreiber, John Hannah, Dan Heyada
As Reviewed by James Brundage
If anyone even dares to hum the lyrics of the Bob Dylan song, I'm going to have to kill them. All right. So this is an empty threat. I have zero way of knowing whether or not you are humming the Bob Dylan song just to spite me, but please don't do it anyway. After seeing The Hurricane, I have Bob Dylan stuck in my head.
In fact, Bob Dylan and Denzel Washington are about the only things stuck in my head after that movie… that and enormous sense of racial injustice and a newfound respect for the residents of Toronto.
The Hurricane is the story of Rubin `Hurricane' Carter, welterweight champion who was wrongfully imprisoned for a triple-murder that he didn't commit. To clear this up to younger readers, this actually happened. Although the wrongfully-imprisoned genre film is terribly passé at this point in time, having a falsely accused man in prison is something worth making into a movie again.
The question, walking into The Hurricane, was whether making a `wrongfully accused' movie is a viable option after the genre has been sucked dry by fictional (or semi-fictional) counterparts such as The Fugitive, U.S. Marshals, Double Jeopardy, and Wrongfully Accused.
To its credit, The Hurricane shows us that such a film is possible.
Most of the credit in this case goes to Denzel Washington, who I now am absolutely sure deserved the Golden Globe he won for Best Actor. Washington is in flawless form here, pushing every emotional button in the book. He is able to take a character that would otherwise be contrived and make it into something new and impressive. The film is carried squarely on Washington's shoulders, and the result is a potentially terrible film is turned into something that jerks a tear or two out of even the most heartless of viewer (or critic).
The big flaws in the movie come in the form of the writers, who are dead-set convinced that the story of Rubin Carter (which, face it, would have been better as a documentary) needed a little extra oomph. To add said oomph, the film takes poetic license and creates a corrupt cop (Den Heyada) out of thin air. To add even more oomph, the film takes more poetic license with the do-good Canucks (Schrieber, Unger, and Hannah), who are portrayed as the major detectives of the film. Being as the film is more based-on-a-true story than actual biopic, the Canucks are placed in a large degree of artificial danger from a possibly imaginary web of New Jersey corruption stretching all of the way up to Christie Todd Whitman (all right, to whomever was New Jersey's governor at the time). We know the Garden State is screwy, but not that screwy.
Said poetic license, contrived events and characters, make The Hurricane terribly difficult for anyone who is an admirer of Rubin Carter to take easily. Scorcese fans, on the other hand, will be undoubtedly pissed by the Raging Bull knock-offs that pose as fight scenes.
In the end, however, when all is said and done, Denzel Washington has made pearls out of swine. Without Denzel Washington, The Hurricane would just be another contrived prison-drama, whether or not it actually happened.
3.5 stars
-- Christopher Null -<EMAIL_ADDRESS>- http://www.filmcritic.com
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


BlackCandlesStudion.com is
official website
that will always show you
all updates
about studio and appointment's
schedures
so we hope that you're
going to enjoy!
Through here sound is Flash!
this is a list of most deals we made:
Audio Production
Mixing and mastering
movie background souds and musics
This is the aditional deals in progress:
Video production
movie editting
theatre teaching
Author: AkaiJoe
you can contact us by using this numbers in the
following table:


{% set pagetitle = 'Things to avoid' %} {% set seq_length = 0 %} {% set seq_position = 0 %} {% set seq_llink = "javascript:;" %} ## set rlink equal to next page href {% set seq_rlink = "javascript:;" %} ## set llink equal to previous page href {% extends "templates.jinja/base.page-with-sequence.html" %} {% block title %} Hesperian - Pregnancy & Birth{% endblock %} {% block id %}Smoking_and_alcohol{% endblock %} {% block content %}
Cigarette smoke, alcohol, and other drugs are all harmful to the mother. When a woman smokes, drinks, or takes drugs, they also pass through her blood to her baby. This causes babies to be born small or dead, or can cause permanent damage to the baby's brain and body.
{% endblock %}


--- layout: post title: "Which Online Services Do I Depend On?" url: 'http://kinlane.reclaimyourdomain.org//2014/04/12/which_online_services_do_i_depend_on/' image: 'https://s3.amazonaws.com/kinlane-productions/bw-icons/bw-question-mark.png' ---
The first step in reclaiming my domain is understanding which online services I depend on. After the recent OpenSSL Heartbleed security episode, I am going through all of my accounts and changing my passwords. I’m using this opportunity to being using 1Password which has been on my list for a while now, after watching Audrey use it this year.
I already maintain a list of services that I depend on, as part of my own personal IT efforts, but this is a great occasion to pull them together, institute 1Password across the board, and pull together my Reclaim Your Domain strategy.
Currently I have a list of 52 services that I depend on:
|
|
|
|
I know there are more, and as I find them I put them on my master list, but this represents the core of what I depend on. I will use this list to guide me on my password change process, and as a roadmap to reclaiming my domain from each of these providers.
Next up I will need short list of questions to ask of each of these providers—I'll call this a reclaim profile.


get_on_off_times¶
-
Data_Reduction.DSN.logs.
get_on_off_times
(eaclog)¶ Get the times when the antenna is on-source or off-source.
This parses an EAC macro log for the times when the antenna is on source and when it is off. It also gets the offset amount and direction and the source name. It returns a list of [on time, off time, source, offset, deg] list.
:param eaclog : The full path to an EAC macro response file. :type eaclog : str
- Returns
(list of lists) The sublist consist of:: - on_time: UNIX timestamp for when the antenna is on-source - offtime: UNIX timestamp for when the antenna is off-source - source: name of the source (string) - direction: direction of the offset (string) - amount: the amount of the offset (degrees, float)


Written by Bas Peters (bpeters {at} eos.ubc.ca), February 2014.
Contents
Wavefield Reconstruction Imaging
This script will show examples of migration in the BG Compass model. The theory behind this imaging method is described in [1],[2] and the example shown here was previously presented in [3]. The images are formed as follows: We use the Wavefield Reconstructing Inversion objective functional
\( \bar{\phi}_{\lambda}(\mathbf{m}) = \frac{1}{2}\| P \bar{\mathbf{u}} -\mathbf{d}\|^{2}_{2} + \frac{\lambda^2}{2}\|A(\mathbf{m})\bar{\mathbf{u}}-\mathbf{q}\|^{2}_{2} \)
of which we calculate its gradient with respect to the model parameters (slowness squared)
\( I_{\lambda}=\nabla_{\mathbf{m}} \bar{\phi}_\lambda = \lambda^2 G(\mathbf{m},\bar{\mathbf{u}})^* \big( A(\mathbf{m})\bar{\mathbf{u}} -\mathbf{q} \big) \)
This gradient is our image. The field \( \bar{\mathbf{u}} \) is defined as:
\( \bar{\mathbf{u}}= (\lambda^2 A(\mathbf{m})^* A(\mathbf{m}) + P^*P)^{-1} (\lambda^2 A(\mathbf{m})^* \mathbf{q} + P^* \mathbf{d}) \)
Note that a different choice of \( \lambda \) will give us a different image.The results are compared to the image obtained by Reverse-Time Migration. This method also computes the image as the gradient of an objective functional. It is the gradient of a reduced Lagrangian least-squares objective:
\( \phi_{r}(\mathbf{m})=\frac{1}{2}\| P A^{-1}\mathbf{q} - \mathbf{d}\|^{2}_{2}, \)
and the gradient can be computed using an adjoint-state method as
\( I_r = \nabla_{\mathbf{m}}\phi_r(\mathbf{m}) = G(\mathbf{m},\mathbf{u})^* \mathbf{v} \)
where \( \mathbf{v}= -A^{-*} P^*(P \mathbf{u}- \mathbf{d}) \) is the adjoint-field.
The modeling used in this example is described in https://slim.gatech.edu/SoftwareDemos/applications/Modeling/2DAcousticFreqModeling/modeling.html.
System requirements:
- This script was tested using Matlab 2013a with the parallel computing toolbox.
- Parallelism is achieved by factorizing overdetermined systems (one for each frequency) in parallel. Each factorization requires about 8 GB.
- Runtime is about 9 hours when factorizing 5 overdetermined systems in parallel. Tested using 2.6GHz Intel processors.
close all %plot true and background velocity v0 = reshape(1e3./sqrt(m0),n); %convert back to velocity in [m/s] figure(1) subplot(2,1,1);set(gca,'Fontsize',14) imagesc(x,z,v,[1500 4500]);colorbar;title('True model') xlabel('x [m]');ylabel('z [m]');axis equal tight;h = colorbar;ylabel(h, 'Velocity [m/s]','FontSize',14); subplot(2,1,2);set(gca,'Fontsize',14) imagesc(x,z,v0,[1500 4500]);colorbar;title(['Initial model']) xlabel('x [m]');ylabel('z [m]');axis equal tight;h = colorbar;ylabel(h, 'Velocity [m/s]','FontSize',14); %plot migration results np = gpen./hpen; %Gauss-Newton image (for sufficiently small $$ \lambda$$ ). gr = reshape((gred),n); %Reduced Lagrangian image (RTM) gp = reshape((gpen),n); %WRI method image np = reshape(np,n); hp = reshape(hpen,n); %WRI Gauss-Newton Hessian (diagonal) %optional: take the vertical diff to get rid of constant trends in the %result gr=diff(diff(gr)); gp=diff(diff(gp)); np=diff(diff(np));
figure(2) set(gca,'Fontsize',14) imagesc(x,z,(gr),[-3e5 3e5]);colormap prx;title('Result reduced Lagrangian') xlabel('x [m]');ylabel('z [m]');axis equal tight;
figure(3);set(gca,'Fontsize',14) imagesc(x,z,(gp),[-8e0 8e0]);colormap prx;title(['Result WRI, \lambda=',num2str(params.lambda)]) xlabel('x [m]');ylabel('z [m]');axis equal tight;
figure(4);set(gca,'Fontsize',14) imagesc(x,z,(1e5*np),[-15 15]);colormap prx;title(['Result WRI (GN), \lambda=',num2str(params.lambda)]) xlabel('x [m]');ylabel('z [m]');axis equal tight;
References
[1] Tristan van Leeuwen, Felix J. Herrmann, Geophysical Journal International,2013. Mitigating local minima in full-waveform inversion by expanding the search space.
[2] Tristan van Leeuwen, Felix J. Herrmann. 2013. A penalty method for PDE-constrained optimization.
[3] Bas Peters, Felix J. Herrmann, Tristan van Leeuwen. EAGE, 2014. Wave-equation based inversion with the penalty method: adjoint-state versus wavefield-reconstruction inversion.


Details
| Username | State | ||
|---|---|---|---|
| Connected at | Heartbeat | ||
| Authentication | Channel max | ||
| Frame max | TLS version | ||
| Cipher |
Client properties
| Client name | |
|---|---|
| Capabilities | |
| Product | |
| Platform | |
| Version | |
| Information |
Rates
Channels
| Name | Virtual Host | Username | Mode | Consumers | Prefetch limit | Unacked messages |
|---|


| This page is obsolete; see http://readable.sourceforge.net instead. |
Some Lisp die-hards believe that Lisp notation descended from the gods, and thus cannot be improved on. I think that's nonsense - I believe Lisp notation can be improved, so that it retains its good properties (like homoiconicity) while being easier to read. Here's a retort, for those Lisp users willing to consider alternatives.
While I respect many other long-time Lisp users, some of them are extremely hard-headed about Lisp notation - they seem to think that the current Lisp notation was handed down by gods. I believe they are grossly mistaken on this point; here is my technical rebuttal.
Thankfully, their perspective on indentation and other notation improvements is well expressed in the Common Lisp FAQ. So, here's a point-by-point rebuttal to that FAQ, as it existed on January 26, 2008, with the FAQ material in italics. The editor of the FAQ is Peter Seibel, who I respect personally; it's just that on this particular technical issue, I think he (and others) are completely wrong. Let's see why I believe that, with the point-by-point rebuttal below.
Q: What's up with all the parentheses?
Lisp's most superficially obvious characteristic is its extensive use of
parentheses to delimit expressions. Unfortunately many would-be Lispers
get stuck on the parentheses and never get far enough into Lisp to
see that they are a feature, not a bug.
Hogwash. There's actually a simpler explanation - most developers quickly realize that this overuse of parentheses is a bug that is often worse than the advantages of Lisp. Even people like me, who have used Lisp for over 20 years, understand that it's a bug. I wrote my first Lisp program circa 1982, and professionally wrote Lisp code on $120,000 equipment. Lisp has advantages, which is why I used and use it.
But all the whining about it being "superficial" doesn't change the fact that most developers avoid Lisp-like languages, precisely because they're unreadable. There's a reason why Lisp is widely referred to as "Lots of Irritating Silly Parentheses" (and worse).
Lots of vendors have tried to tell me that a bug is a really feature. Let's call a spade, a spade, and call a bug, a bug.
.... Other folks figure that syntax is ultimately not that important and wonder why Lisp can't use a more "normal" syntax. It's not because Lispers have never thought of the idea—indeed, Lisp was originally intended to have a syntax much like FORTRAN, the predominant high-level language of the day, as John McCarthy describes in his history of Lisp3...
In other words, even Lisp's creator understood that directly using s-expressions for Lisp programs was undesirable.
That's disproving, not proving the case - nobody can say that McCarthy didn't understand Lisp. Syntax is important if it significantly impedes readability, and Lisp notation is awful.
However it wasn't simply inertia that caused Lispers to prefer S-expressions to M-expressions. People have tried, numerous times to create a more Algol-like syntax for Lisp...
In other words, this is such a serious problem that a large number of people have tried to fix it. Again, this is disproving, not proving, the case that Lisp's syntax is a serious problem.
 It's actually true that lots of people have tried and failed, but I think there's a reason for it: People didn't really understand the requirements. Creating a new syntax is easy, but what people don't appreciate is that Lisp's syntax has some subtle advantages. For example, its syntax is generic (it does not imply a particular semantic) and homoiconic (the mapping of programming construct to syntactic tree is quite obvious). Previous efforts didn't realize that those were requirements, and so they failed.
But now that we understand the requirements better, we can fix it.
Guy Steele and Richard Gabriel recount the history of some of these attempts in their paper "The Evolution of Lisp" ...
Guy Steele? The guy who helped developed both Common Lisp and Scheme, but has now moved on from Lisp to lead the development of Java and later Fortress? Java and Fortress, both of which decidedly do not have an s-expression-based surface syntax for programming? Oh, yeah, that guy.
To be fair, I agree with Guy Steele that no one language can be all things to all people. And Steele's a genius. But it's worth noting that although in this old paper he heaped scorn on those who tried to add Algol-like syntax to Lisp, his work for many years now has been primarily focused on making languages like Java and Fortress, which have a programmer-friendly syntax instead of Lisp's raw s-expression syntax.
So for many years Steele's primary work has not been on improving Lisp-based languages, because few people want to program directly using S-expressions. Even many Lisp experts mostly give up on Lisp, in part because its awful syntax causes other smart programmers to avoid Lisp. It's not power; Lisp has power. It's the hideous notation.
The idea of introducing Algol-like syntax into Lisp keeps popping up and has seldom failed to create enormous controversy between those who find the universal use of S-expressions a technical advantage (and don't mind the admitted relative clumsiness of S-expressions for numerical expressions) and those who are certain that algebraic syntax is more concise, more convenient, or even more natural (whatever that may mean, considering that all these notations are artificial).
So even they admit that s-expressions are clumsy. This endorses the idea that s-expressions need to be improved on, not that they must never change.
We conjecture that Algol-style syntax has not really caught on in the Lisp community as a whole for two reasons. First, there are not enough special symbols to go around. When your domain of discourse is limited to numbers or characters, there are only so many operations of interest, and it is not difficult to assign one special character to each and be done with it. But Lisp has a much richer domain of discourse, and a Lisp programmer often approaches an application as yet another exercise in language design; the style typically involves designing new data structures and new functions to operate on them—perhaps dozens or hundreds—and it's just too hard to invent that many distinct symbols (though the APL community certainly has tried). Ultimately one must always fall back on a general function-call notation; it's just that Lisp programmers don't wait until they fail.
This is nonsense. You don't need hundreds of special symbols. Pretty much every language today accepts "<=" as being "less than or equal to". We don't need hundreds of new symbols, we can just combine existing symbols to create compound symbols, just as occurs in any language.
More importantly, you don't need legions of special syntactic constructs - just a few turn out to be enough to fix s-expression's problems, without hoardes of special cases. See my sweet-expressions proposal, which adds a few syntactic abbreviations that are not tied to any semantic.
Second, and perhaps more important, Algol-style syntax makes programs look less like the data structures used to represent them. In a culture where the ability to manipulate representations of programs is a central paradigm, a notation that distances the appearance of a program from the appearance of its representation as data is not likely to be warmly received (and this was, and is, one of the principal objections to the inclusion of loop in Common Lisp).
Here Steele and Gabriel are extremely insightful - which given their massive brains, is hardly surprising. I think they're exactly right here, a syntax that makes programs look significantly less like the data structures used to represent them is a problem for a Lisp-like language.
This property is typically called "homoiconicity", and is very rare among programming languages. Lisps are one of the very few language groups that are homoiconic, and it's why Lisps are still used, decades after their development.
Steele and Gabriel are right; there have been many efforts to create readable Lisp formats, and they all failed because they did not create formats that accurately represented the programs as data structures. Instead, they just copied existing formats like Fortran or Algol, since they would be "easier to read". They all failed for the same basic reason: When the semantics changed underneath, their syntax failed to work, and the constant maintenance eventually caused the approach to fail.
The whole point of a Lisp-like language is that you can treat code as data, and data as code. Any notation that makes this difficult means that you lose Lisp's advantages, and then there are many other languages (which whip Lisp, frankly, once you take that away). Homoiconicity is critical if you're going to treat a program as data. To do so, you must be able to easily "see" the program's format. If you can, you can do amazing manipulations.
But what Gabriel and Steele failed to appreciate in their paper is that it's possible to have both.
At the time, no one understood why the previous efforts at readable Lisps failed. Now that we have a good diagnosis for why these previous efforts failed, we can avoid their mistakes! My thanks to Gabriel, Steele, and others, who had this key insight. This insight is absolutely necessary for any future effort to even have a chance to succeed.
Unfortunately, their paper presumed that this readability problem was unsolvable, and that strong claim has meant that people who could have solved this problem in the past didn't even try. After all, why work on an impossible problem?
But now that we know why past efforts failed, let's have a better chance at solving the problem. So let's do it.
On the other hand, precisely because Lisp makes it easy to play with program representations, it is always easy for the novice to experiment with alternative notations. Therefore we expect future generations of Lisp programmers to continue to reinvent Algol-style syntax for Lisp, over and over and over again, and we are equally confident that they will continue, after an initial period of infatuation, to reject it. (Perhaps this process should be regarded as a rite of passage for Lisp hackers.)
Software developers certainly do reject it. The "it" they reject is Lisp itself. Even if they learn Lisp-based languages - and I heartily recommend learning them - almost all of them avoid using Lisp-based languages for "real" projects. You have to read code to change it, or determine if it's correct, so avoiding a hard-to-read notation is a wise decision.
When Steele and Gabriel are talking about manipulating representations of programs, they are, of course, talking about macros. This is where the s-expression notation really shines. An Algol-style syntax is all well and good for languages that have a finite number of basic constructs—one can define a grammar that specifies how various syntactic constructs get translated into an abstract syntax tree (AST) that can then be processed by an interpreter or compiler. Open any compiler textbook and you'll learn how to write a parser that can turn the infix syntax: 1 * 2 + 3 / 4 into the AST....
according to the precedence of the operators *, +, and /. But in a language that supports macros we can't know, at language design time, all the possible legal language constructs. Thus we can't rely on having a grammar that knows how to translate all possible syntactic constructs into ASTs. Rather, we need a way to represent arbitrary ASTs. Which is what s-expressions are. Even if we know nothing about the precedence of *, +, and / this s-expression:
(+ (* 1 2) (/ 3 4))
unambiguously represents the same AST shown above.
Likewise, when Lisp sees something like this:
(with-whatever (something)
(do-one-thing)
(do-another-thing))
it can parse it into an AST without knowing anything about the internal syntax of the with-whatever construct. If with-whatever is a macro, it will be passed the AST, represented as an s-expression, and is responsible for producing a new s-expression representing the AST that should be used in place of the original with-whatever form.
This is accurate as far as it goes, but misses the point. I completely agree that when we can't know at language design time all the possible legal language constructs, we need to be able to cleanly represent arbitrary ASTs. And I agree that s-expressions can do that.
But I do not believe that the traditional textual form of s-expressions are the best way to represent the underlying data structures that Lisp-like languages are based on, at least for programs and program-like data.
The current notation for s-expressions was merely the first way that was created, one created in the 1950s. It wasn't even intended for use in programming, it's just that no one created a better one, and so the programming community quickly ossified on a notation from the 1950s. So, let's work to find better ways of representing these constructs.
Q: "I have this cool idea for a new Lisp dialect / Lisp syntax
that doesn't involve so many parentheses!
It uses indentation to show structure!"
Since the advent of Python, this comes up on c.l.l. with some regularity.
We've had 'sweet-expressions' and 'indented Lisp' and probably others.
In other words, many people see the obvious: Lisp notation is hideously hard to read, and that simple things like the use of indentation would be a big improvement. I know of at least 4 implementations of this idea, many of them created independently. So, clearly a lot of people do see this as valuable.
Realize a few things:
* You should use an editor that makes writing Lisp easier, like Emacs or Vim. Both of these can indent based on parenthesis nesting, highlight matching parentheses, cut and paste entire blocks of code based on the parentheses, and so on. If your editor can't do all that, get a new editor.
Yes, tools help, but tools don't fix bad notation. This answer misses the point, on two levels:
Emacs users should check out parenface.el, which de-emphasizes parentheses with a diminished font color (or "face" in Emacs-speak). For instance, if your normal face is black-on-white, it'll make parentheses a shade of gray, so that they're less "in your face" while still being visible.
Again, this is evidence against traditional Lisp notation, not for it. Let's read that again: "Hey, look, with effort you can work to reduce the presence of those ugly parens!" If you have to use tools to reduce the problems of your notation, perhaps you should use a better notation.
* Lispers already read code based on indentation, but their editors indent and re-indent code automatically. Removing the parentheses makes that harder.
I'm rolling on the floor! This is really missing the point.
If indentation were actually syntactically meaningful, you wouldn't need tools to fix indentation in most cases - the indentation would already be correct.
Tools you don't need are the easiest tools to create and maintain!
But even when you do need reindentation, it's hogwash that it can't be done without parentheses. You just read it in, and pretty-print it out... just like notations that only support parentheses. There are pretty-printers for many languages that don't require users to enter programs as S-expressions.
* After you've written and read enough Lisp, you stop seeing the parentheses. (Reports vary from a few days to a few weeks.) They don't disappear in some magical way, but you start to see the structure of the code rather than just "lots of fingernail clippings". For example, you can view (+ (* 1 2) (/ 3 4)) as "(+ (* 1 2) (/ 3 4))"...
This statement is partly true, but it's also misleading. Let me explain why.
I agree that after you've written and read enough Lisp, you can mentally work around the parentheses and get to the "meat" of code. And yes, it doesn't even take that long, I can do it quite well. But it's an effort that is not required by other languages at all, and that's the problem. Sure, if this was the only way to program a computer, or to manipulate symbols, you could put up with a lot - but other languages show conclusively that this is not true.
The biggest problem, though, is working with others. Today, most developers avoid using Lisp-based languages, even when they'd be appropriate. The notation is just too hard to read. Yes, many will learn the Lisps - they're interesting, and have some very nice properties. But their bad notation overcomes their other advantages, and unnecessarily so.
Lots of people will buy Lisp books, play with it, and go away with a better understanding of programming. But for the most part, they will go away. They will not choose to write serious programs in Lisp, even though mature tools and books are available, because they cannot easily work with others using an unreadable notation.
I've been writing Lisp code for over 20 years, and though I can read Lisp well, I still think Lisp's syntax is a serious problem. John Wiseman (with 13 years experience) had the same experience. So clearly there are people with long experience with Lisp, who nevertheless don't find raw S-expressions all that loveable.
The FAQ hints at a quote, but it doesn't give the full quote nor who said it. Here's the full quote: "Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in." What's funny is that this is by Larry Wall, the creator of Perl. Perl itself has a reputation for being an ugly, write-only language! If even the creator of Perl finds Lisp syntax too ugly, and Perl itself has a reputation for ugly code, that should tell you something - Lisp must be really ugly.
For example, in my 'curly infix' abbreviation included in my my proposed notations, I can represent:
(+ (* 1 2) (/ 3 4))as this instead:
{{1 * 2} + {3 / 4}}.This is a big deal, but why it's a big deal isn't immediately obvious. It's a big deal because this notation does not depend on any precedence rules, or registration, and it doesn't depend on knowing what the final language is (or which operators are infix). Instead, all operators will work the same way. So the fact that you don't know exactly what the final language will be like, or which operators are infix operators, doesn't matter... and you can change it without trouble. This notation exposes exactly where every list begins and ends, too. Curly infix adds only one abbreviation: if a list is surrounded by {...}, the operators are presented in infix order instead of in prefix order. This is just like the abbreviation 'x, which is actually (quote x) but happens often enough that an abbreviation makes life easier.
A few quotes are useful, I think:
Adding or removing parentheses — or adding indentation — to the tree notation makes no sense. To a Lisper that has learned to recognize the () notation as the structure denoted by the tree diagram, it makes just as little sense.
That's not true - essentially all Lisp code is already indented. Nobody would accept Lisp code today if it wasn't indented! Common Lisp even builds in a pretty-printer, specifically to indent code, and most major Scheme implementations (e.g., guile) include one too.
Indentation-based approaches basically say that "every time you indent, it's the equivalent of (, and every time you outdent, it's equal to )". In other words, since Lisp code already uses indentation, combined with ugly excess parens, why not get rid of the unneeded baggage?
Given all the above, if you go ahead and build or use an indentation-based Lisp ("IBL"), be prepared to abandon it after you get sufficiently into Lisp. And if you post about your IBL to c.l.l., be prepared for a less-than-welcoming response.
Here we see the real problem.  Hard-to-read programs are hard to improve later!
Most of the people left on newsgroups/mailing lists like c.l.l are die-hards who believe that no improvements or innovations can occur in Lisp notation, and are actively hostile to others who are interested in improvements.
This is not univerally true, thankfully. Paul Graham is a widely-respected advocate of Lisp, and yet he's willing to publicly say that "Common Lisp and Scheme only directly support s-expressions; disadvantage: long-winded". He recommends Syntax as abbreviation, specifically, that additional notation would be an abbreviation for longer still-valid syntax. This just like 'x is today. In particular, he is an advocate of showing structure by indentation instead of parentheses (which would become optional where no ambiguity results). He also admits that infix notation would be nice.
Peter Norvig, another well-known Lisper, developed a Lisp variant that allowed abbreviations so infix is automatically noted and used. In short, some are willing to acknowledge that there are problems, and hunt for a solution.
(We'd love to hear about an IBL-er abandoning it for parentheses, though. This would provide empirical evidence to which we could direct later newbies.)
No doubt there will be several, but since documents like this will only report people abandoning indentation - and not those who switch to indentation - their reporting will be completely biased. It would be more interesting to see, as the alternatives become mature, what the numbers are in both camps.
If you can't accept that there is a problem, please stay in the Lisp ghetto. That's the ghetto where Common Lisp still doesn't have a standard way to access the network. That's the ghetto where Scheme didn't even have a standard way to have modules until 2007, and most Schemes don't implement that module system anyway... instead, they have numerous incompatible module systems. Emacs Lisp still hasn't gotten around to implementing lexical scoping.
Why all this stagnation? A fundamental problem with Lisp-based systems is that nearly all software developers have abandoned Lisp, because Lisp has an unreadable notation. Nobody wants to write code others can't read. The few who are left behind in Lisp-land tend to be those who are unable to see that it needs fixing. In contrast, Lisp's inadequate notation drives away that much larger set of people who could give it more life.
Those of us who can perceive the problem clearly are trying to fix it. If you use Lisp, and are willing to consider or create new ideas (like I-expressions, sweet-expressions, and standardized infix macros), you're welcome to join us. Help us move beyond the current state - please join the "readable" mailing list! See my Readable s-expressions page for more information.


AKAN NAME
The Akan population of Ghana frequently name their children after the day of the week they were born and the order in which they were born. These names are derived from the Ghananian culture. This is an application that will calculate the day of the week that someone was born depending on their date of birth and give them an akan name based on their gender.
Please select your gender:


| Pedigree of : |
| Belquest Victory At Staghorn |
| Born: August 01, 2002 |
|
Am Ch Tabatha's Hunterleigh Riot |
Scent Trails Tug Of War |
Am Ch Guideline's
Century Condensed Back
|
Novacroft Mixed Spice |
| Cambremer Copy Cat | |||
|
Specl Occasion Putwyn Prairie |
Ch Chablais Rhapsodie En Bleu | ||
| Special Occasion Putwyn Prelude | |||
|
Am Ch Tabatha's Morning
Chat
|
Am Ch Tabatha's Drifter
At Dickendall JH
|
Am Ch Dickendall Arnold | |
|
Am Ch Tabatha's Valleywood
Decoy
|
|||
|
Am Ch Tabatha's
Morning Dove
|
Am Ch Borador's Lord Travis | ||
| Am Ch Tabatha's Valleywood Decoy |
|
Parents
|
Grand Parents
|
Great Grand Parents
|
Great Great Grand Parents
|
|
Am Ch Belquest Worth The Risk |
Hennings Mill Frost
Warning
|
Am Ch Scartho Frost
|
Eng Sh Ch Simandem Kings Neptune |
| Eng Ch Scartho Briar Crest | |||
|
Henning Mill
Charming Beauty
|
Hennings Mills Calypso Man
|
||
|
Bradking Beverly
|
|||
|
Am Ch Beautawn's
Importer CD
|
Can Ch Shadowvale's
Just Reward
|
Am Ch Jayncourt Ajoco Justice | |
| Am Can PR Ch Heatherbourne Forget Me Not | |||
|
Beautawn's Brandy
On The Rock CDX WC
|
Am Ch Braemar's Oakmead Dillon CD WC | ||
| Can Ch Springfield's Native Fancy CD WC |
Copyright © 2000 - 2003 Harold deGroot
- Last Update : August 04, 2004
All Rights Reserved
Webmaster: hdegroot@staghorn-labs.com


{% extends "layout.html" %} {% block title %}Plot Page{% endblock %} {% block content %}
The following plot was generated by Matplotlib in a Flask WebApp but without ever touching the hard drive.


DevAcademy's journal
Personal adventures becoming a web developer
Home
About me
Posts
Contact me
This is a list of my lastest posts:
Sprint 2-
Tech Challenge
- 29/06/2021
Sprint 2-
Identity values
-30/06/2021
Sprint 2-
Learning Plan
-30/06/2021
Sprint 2-
Emotional Intelligence
-01/07/2021
Sprint 3-
JavaScript Challenge
-08/07/2021
Sprint 4-
Neuroplasticity
-11/07/2021
Sprint 4-
JavaScript problem solving
-16/07/2021
Sprint 5-
Foundations Reflection
-27/07/2021


Certainly we need code to be understandable when we read the source files directly. We also need the code to be understandable when we encounter it in diffs, merges, patches, debuggers, code inspections, compiler messages, and a variety of other contexts and tools. As it turns out, code written with the Seven Pillars in mind is more readable in more of the tools we use to manage code.
For example, DiffMerge code is human-readable even without syntax highlighting. In other words, we don't have to depend on context-sensitive source code editors to read it. It's just as readable when displayed as plain text by debuggers, compilers, and web browsers. Here's a snippet of DiffMerge in gdb:
Breakpoint 3, DiffMerge::DiffDiff (this=0x80e10c0) at diff/diffmerge.cc:510 510 Mode initialMode = d.mode; (gdb) list 505,515 505 DiffGrid d = diffGrid 506 [ df1->StartLeg() == 0 ][ df1->StartBase( ) == 0 ] 507 [ df2->StartLeg() == 0 ][ df2->StartBase( ) == 0 ] 508 [ df3->StartL1() == 0 ][ df3->StartL2( ) == 0 ]; 509 510 Mode initialMode = d.mode; 511 512 // Pre-process rules, typically the outer snake information 513 // contradicts the inner snake, its not perfect, but we use 514 // the length of the snake to determine the best outcome. 515 (gdb) print d $1 = {mode = CONF, diffs = DD_CONF} (gdb)
When working on code that changes as often as DiffMerge (it has been changed 175 times since it was first written), programmers spend considerable time looking at it in diff and merge tools. What these tools have in common is that they restrict the horizontal view of source files, and they add a certain amount of clutter of their own. Code like DiffMerge's is readable even in these conditions. In command-line diffs, its lines don't wrap. In graphical diff tools, we don't have to fiddle with the horizontal scroll bar to see the bulk of its lines, as Figure 32-1 demonstrates.[§]
[§] This is a screenshot from P4Merge, a graphical tool built on DiffMerge itself.
And as Figure 32-2 shows, a margin-hungry annotated history viewer is positively roomy when displaying the bookish DiffMerge code.
Bookishness not only makes code more readable in merge tools, it makes the code itself easier to merge. For one thing, the scope of an edit is easier to control when logical blocks are set off by whitespace. And for another, having less nested code means having proportionally fewer instances of inverted and leapfrogged block delimiters to sort out.


Observed (red crosses) and calculated profiles (full black line) for Sr 0.9Ba 0.1Co 0.95Ru 0.05O 3−δ perovskite after Rietveld refinement of the crystal structure in a standard perovskite model in the Pm-3m space group, with unit-cell parameter of a = 3.9159(5) Å. The difference plot (full blue line) and allowed Bragg reflections (green vertical lines) are also shown.


Loading...
Home
Question 1301 answer
The complex number
is such that
where
is the complex conjugate of
. Find
in the form
, where
and
are real.
This question is worth 4 marks.
Go to answer
Your attempt:
The answer:
4
Question
Return home
Try again


|
SVG plot
|
An example to demonstrate boxplot settings, including auto-scaling. More...
#include <boost/quan/meas.hpp>
#include <boost/quan/unc.hpp>
#include <boost/svg_plot/svg_boxplot.hpp>
#include <boost/svg_plot/detail/pair.hpp>
#include <boost/algorithm/minmax.hpp>
#include <boost/algorithm/minmax_element.hpp>
#include <boost/svg_plot/detail/auto_axes.hpp>
#include <iostream>
#include <limits>
#include <vector>
#include <set>
#include <utility>
Functions | |
| int | main () |
| void | scale_axis (double min_value, double max_value, double *axis_min_value, double *axis_max_value, double *axis_tick_increment, bool origin, double tight, int min_ticks, int steps) |
Variables | |
| constexpr double | tol100eps = 1000 * numeric_limits<double>::epsilon() |
An example to demonstrate boxplot settings, including auto-scaling.
See also: example auto_1d_containers.cpp
for an example autoscaling with multiple data-series. example demo_boxplot.cpp
for a wider range of use.
Copyright Jacob Voytko 2007 Copyright Paul A Bristow 2008, 2020
Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
This file is written to be included from a Quickbook .qbk document. It can be compiled by the C++ compiler, and run. Any output can also be added here as comment or included or pasted in elsewhere.
Caution: this file contains Quickbook markup as well as code and comments: don't change any of the special comment markups!
[auto_boxplot_1
!`First we need a few includes to use Boost.Plot ! (and some others only needed for this example).
| int main | ( | ) |
| void scale_axis | ( | double | min_value, |
| double | max_value, | ||
| double * | axis_min_value, | ||
| double * | axis_max_value, | ||
| double * | axis_tick_increment, | ||
| bool | origin, | ||
| double | tight, | ||
| int | min_ticks, | ||
| int | steps | ||
| ) |
|
constexpr |


Settings
All
Gallery
Jane Doe
Auckland, New Zealand
Likes to travel with my families and friends.
Joined Ocotber, 2010
Log Out
Itinerary Posted
All
London Adventure
Likes to travel with my families and friends.
Joined Ocotber, 2010
Plan
Home
Me
Search
9:41
Profile


public interface SyntaxTree extends java.lang.Iterable<SyntaxTree>, java.io.Serializable
| Modifier and Type | Method and Description |
|---|---|
int |
end()
Gets the position at which this token ends.
|
SyntaxIterator |
iterator() |
SyntaxIterator |
iteratorFromLast() |
Lexer |
lexer()
Gets the lexer used for the parsing.
|
int |
nexts()
Gets the number of children of this node.
|
default boolean |
query(java.lang.String type,
java.lang.String... production)
Queries for a rule start part.
|
java.util.Set<java.lang.String> |
similarTypes()
Gets the set of similar types matched by this token.
|
java.lang.CharSequence |
source()
Gets the source string the token was extracted from.
|
int |
start()
Gets the position at which this token starts.
|
boolean |
terminal()
Verify if this node represents a terminal token.
|
java.lang.CharSequence |
token()
The characters string extracted by the source string for this token.
|
java.lang.String |
type()
Gets the primary type for this token
|
SyntaxIterator iterator()
iterator
in interface java.lang.Iterable<SyntaxTree>
SyntaxIterator iteratorFromLast()
boolean terminal()
java.lang.String type()
java.util.Set<java.lang.String> similarTypes()
int nexts()
int start()
int end()
java.lang.CharSequence token()
java.lang.CharSequence source()
Lexer lexer()
default boolean query(java.lang.String type, java.lang.String... production)
EditableParser.TERMINAL_PREFIX
.EditableParser.addRule(String, String...)
for more information.a -> b c d | x y z | x f g
b -> p q | #
SyntaxTree tree;
tree.query("a", "x")
will return true if tree is of type "a" and its first next is of type "x".a -> x y z
" or "a -> x f g
"
tree.query("a", "x", "y")
will return true if tree is of type "a" and its first next is of type "x" and its second next is of type "y".a -> x y z
" matched.
tree.query("b", "#")
will return true if tree is of type "b" and it has no next.b -> #
" matched.
tree.query("a", "#")
will return true if tree is of type "a" and it has no next.a -> #
" is not defined.
tree.query("b", "!#")
will return true if tree is of type "b" and it has some next.b -> p q
" matched.
tree.query("a", "!#")
will return true if tree is of type "a" and it has some next.a -> #
" is not defined.
type
- the type of this syntax nodeproduction
- the types of the first k children of this tree


Create Product
Product creation
Home
eCommerce
Product Edit
New Product
Back
Reset
Save
Save & Continue Edit
General
Meta
Product Lines


Email us
<EMAIL_ADDRESS>We can help your with a range of financial services to help you reach your lifestyle goals
We can help find you a life insurance policy which would help protect you or your loved ones if you got sick, seriously ill or kicked the bucket. We will help to find the most suitable policy and incorporate it within your monthly budgetary requirements
Whether you are saving for a home, your kids' futures or just to for the sake of it we will help you find the most suitable home for your money and the best way to save to reach your financial goals.
If you are planning to save for a goal which is a little way into the future (typically five or more years away) we can help you find a clear investment vehicle to get you a a better return than a cash savings account in the most tax-efficient way possible.
We would all love to stop working one day (hopefully the sooner the better). We hate using the 'P' word - pension but we will help you plan to reach your retirement as soon as you can, in the most comfortable way possible by building a great future fund!
Now that we know who you are, I know who I am. I'm not a mistake! It all makes sense! In a comic .Now that we know who you are, I know who I am. I'm not a mistake! It all makes sense! In a comic.
Now that we know who you are, I know who I am. I'm not a mistake! It all makes sense! In a comic
IFAs
Mortgage
Advisers
Legal
IFAs
Mortgage
Advisers
Legal


This file defines python-cicero specific errors.
This error is raised when the Cicero API itself responds with an error message. Often, this is the result of incorrect authentication, a wrong query parameter, or other misuse of the API.
class CiceroError(Exception):
def __init__(self, error_dict):
self.error_list = error_dict['response']['errors']
self.status_code = error_dict['status_code']
self.representation = ('\nError status code from Cicero server: %s\n'
'Error list from Cicero response:\n%s' %
(self.status_code, self.error_list))
def __str__(self):
return str(self.representation)
This error is raised when python-cicero is physically unable to communicate or get a response from the Cicero API. Often, this is a network connection error. self.reason should be the reason attribute from the urllib2.URLError that arises to give as much context to this network error as we can.
class NetworkError(Exception):
def __init__(self, text, reason):
self.text = str(text)
self.reason = str(reason)
self.representation = ('\n%s' '\n%s' % (self.text, self.reason))
def __str__(self):
return str(self.representation)