text:
Difference between revisions of "PgCon 2013 Developer Meeting"
(→Incremental Maintenance of Matviews)
(Moar goals and resources!)
|Line 440:
|Line 440:
* Peter E has the transforms feature outstanding. And wants to move the documentation to XML. Wants to improve test coverage.
* Peter E has the transforms feature outstanding. And wants to move the documentation to XML. Wants to improve test coverage.
* Frost will be doing pg infrastructure. Wants to help with CFs. Also fix some stuff with optimizer.
* Frost will be doing pg infrastructure. Wants to help with CFs. Also fix some stuff with optimizer.
[[Category:PostgreSQL Events]]
[[Category:PostgreSQL Events]]
Revision as of 22:06, 22 May 2013
A meeting of the most active PostgreSQL developers is being planned for Wednesday 22nd May, 2013 near the University of Ottawa, prior to pgCon 2013. In order to keep the numbers manageable, this meeting is by invitation only. Unfortunately it is quite possible that we've overlooked important code developers during the planning of the event - if you feel you fall into this category and would like to attend, please contact Dave Page (firstname.lastname@example.com).
Please note that this year the attendee numbers have been kept low in order to keep the meeting more productive. Invitations have been sent only to developers that have been highly active on the database server over the 9.3 release cycle. We have not invited any contributors based on their contributions to related projects, or seniority in regional user groups or sponsoring companies, unlike in previous years.
This is a PostgreSQL Community event. Room and refreshments/food sponsored by EnterpriseDB. Other companies sponsored attendance for their developers.
- 1 Time & Location
- 2 Attendees
- 3 Proposed Agenda Items
- 4 Agenda
- 5 Notes
- 5.1 Parallelism
- 5.2 Pluggable plan/exec nodes
- 5.3 Volume Management
- 5.4 Utilization of upcoming non-volatile RAM devices
- 5.5 Logical changeset generation review & integration
- 5.6 Representing Severity
- 5.7 Error Logging Infrastructure
- 5.8 Incremental Maintenance of Matviews
- 5.9 Lunch Notes
- 5.10 GIN generalization
- 5.11 An Extensibility Roadmap
- 5.12 Failback with Backup
- 5.13 9.4 Commitfest schedule and tools
- 5.14 Goals, priorities, and resources for 9.4
Time & Location
The meeting will be from 8:30AM to 5PM, and will be in the "Red Experience" room at:
Novotel Ottawa 33 Nicholas Street Ottawa Ontario K1N 9M7
Food and drink will be provided throughout the day, including breakfast from 8AM.
The following people have RSVPed to the meeting (in alphabetical order, by surname):
- Josh Berkus (secretary)
- Jeff Davis
- Andrew Dunstan
- Peter Eisentraut
- Dimitri Fontaine
- Andres Freund
- Stephen Frost
- Peter Geoghegan
- Kevin Grittner
- Robert Haas
- Magnus Hagander
- KaiGai Kohei
- Alexander Korotkov
- Tom Lane
- Fujii Masao
- Noah Misch
- Bruce Momjian
- Dave Page (chair)
- Simon Riggs
Proposed Agenda Items
Please list proposed agenda items here:
- 9.4 Commitfest schedule and Commitfest tools.
- Parallel Query Execution (Bruce, Noah)
- logical changeset generation review & integration (Andres)
- utilization of upcoming non-volatile RAM device (Kaigai)
- pluggable plan/exec nodes (Kaigai)
- to offload targetlist calculation, sorting, aggregates, ...
- GIN generalization (Alexander)
- An Extensibility Roadmap (dim) (http://pgsql.tapoueh.org/temp/extensibility.pdf) (15 min)
- Representing severity - derive severity from SQLSTATE (Peter Geoghegan - see http://email@example.com) (10 min)
- Error logging infrastructure - store normalized statistics about errors in a circular buffer (Peter Geoghegan). Arguably this could be discussed alongside SQLSTATE item. (10 min)
- Failback with backup (Fujii Masao - related discussion is: http://email@example.com)
- Volume Management (Stephen Frost - wiki page will be forthcoming before the meeting)
- AXLE Project - Big data analytics for Postgres (Simon Riggs) - an overview of the feature plan, how project works and what community can expect (15 min)
- Incremental maintenance of materialized views (Kevin) - differential REFRESH and infrastructure for counting algorithm (30 min)
|08:30 - 08:45
|Welcome and introductions
|Dave Page
|08:45 - 09:45
|Parallel Query Execution
|09:45 - 10:15
|Pluggable plan/exec nodes
|10:15 - 10:30
|Volume Management
|Stephen Frost
|10:30 - 10:45
|Coffee break
|10:45 - 11:00
|Utilization of upcoming non-volatile RAM devices
|11:00 - 11:30
|Logical changeset generation review & integration
|11:30 - 11:40
|Representing severity
|Peter G.
|11:40 - 11:50
|Error logging infrastructure
|Peter G.
|11:50 - 12:30
|Incremental maintenance of materialized views
|12:30 - 13:30
|13:30 - 14:15
|GIN generalization
|14:15 - 14:30
|An Extensibility Roadmap
|14:30 - 15:00
|Failback with backup
|15:00 - 15:15
|Tea break
|15:15 - 15:45
|9.4 Commitfest schedule and tools
|15:45 - 16:45
|Goals, priorities, and resources for 9.4
|16:45 - 17:00
|Any other business/group photo
|Dave Page
- Dave Page, EnterpriseDB
- Andres Freund, 2ndQuadrant
- Kevin Grittner, EnterpriseDB
- Dimitri Fontaine, 2ndQuadrant
- Andrew Dunstan, PostgreSQL Experts
- Noah Misch, EnterpriseDB
- Bruce Momjian, EnterpriseDB
- Fujii Masao, NTT Data
- Tom Lane, Salesforce
- Magnus Hagander, Redpill Linpro
- Robert Haas, EnterpriseDB
- Josh Berkus, PostgreSQL Experts
- Kaigai Kohei, NEC
- Jeff Davis, Teradata
- Alexander Korotkov
- Peter Geoghegan, Heroku
- Peter Eisentraut, Meetme
- Stephen Frost
Bruce Momjian is looking at where Postgres is and hardware changes, and it's time to look at parallelism. Unlike the Windows port and pgUpgrade, there's no clear "done" with Parallelism. We're going to have to do a lot of small things, but not one big feature. Concern anout code cleanliness and stability. What is going to have to happen is that we'll attack one small thing, and build the infrastructure for parallelism.
Robert Haas is talking about EnterpriseDB's commitment to parallelism. The two things EDB wants is materialized views and parallel query. The way we're approaching this is the same way as 2Q approached logical replication for the last release cycle. We're doing this as a company, and we have buy-in from our management. So far there's a wiki page on parallel sort and Noah's posted some stuff to pgsql-hackers. The first part is to get a credible worker system in place, and then we can tackle parallelising particular things.
Stephen Frost pointed out that users are currently ad-hoc implementing parallelism in their middleware code. Bruce said that there was a basic set of steps for all parallel tasks. There's a false sense that threads automatically give you infrastructure for parallelism. Bruce doesn't think that's true. Having the worker/marshalling stuff sprinkles all over the code would be really bad, so we want central infrastructure.
Jeff Davis pointed out that there were different approaches to parallelism. One is "cluster parallelism". Do we know what approaches were taking? Cluster parallelism involves making the parallel tasks according to data partitions. It's popular in data warehousing. Robert Haas doesn't expect to get that far in one release cycle.
Haas: People come up with great ideas for PostgreSQL, and they do two things: either they figure out how to do it without modifing the query planner, or they fail. So we looked at index building, which wouldn't require dealing with the query planner. But the general problem of parallel query planning, we have to solve harder problems. I don't want to get bogged down in those sorts of questions at the outset, because there's a bunch of stuff to get done to execute parallel jobs in general.
Josh Berkus suggested implementing a framework for parallel function execution because then users could implement parallel code for themselves. It would help the Geo folks. Noah thinks this is possible today, but isn't specific how. Tom argues against exposing it to users in early iterations because the API will change.
There's a few things you need:
- and efficient way for passing data to the parallel backends, probably using a shared memory facility, because sockets are too slow.
- some logic for starting and stopping worker processes. Custom background workers aren't quite what we need for this. Also different from Autovacuum, which is a bit kludgy.
- you need to be able to do stuff in the worker processes as if they were the parent process. They need to share the parent worker's state, and there are a lot of state things which are not shared. If the master takes new snapshots or acquires extra XIDs, not sure how to share that. Some things will need to be prohibited in parallel mode. Threads don't solve this. Syscache lookups are also a problem, but we need them.
Noah wants to target parallel sort, specifically parallel memory sort. This hits a lot of the areas we need to tackle to make parallelism work in general. We need a cost model as well. How are we going to mark the functions which are safe to run in a parallel worker. We don't want to just call functions *_parallel because that will change. Maybe there will be an internal column in pgproc, as a short-term solution.
Peter E. asked about timeline. For 9.4, we want to at least have an index build which runs a user-specified amount of parallelism. It needs to be reasonably fast.
Peter G. asked about having a cost model for parallelism. Right now we don't have costing for how long it takes to sort things based on the number of rows. Sorting a text column in bad collation can be 1000X as expensive as sorting integers, for example. We might pick a single operator and make that the cost reference operator. Perfect costing isn't possible, but we can do some approximates. The initial operations we choose for parallelism will be very long operations. Startup costs are too high otherwise. We're not going to parallelize something that's 200ms. Something that takes 10s or a minute or a couple minutes.
Haas thinks that a lot of people will be appalled for starting up a parallel worker. That can be optimized later. It's OK for the initial version to be unoptimized. Even if it takes a full second to start up a new backend, there are sorting tasks which take large numbers of seconds. Those are existing issues which we'll hammer on as we get into this space; we may fix starting up a new connection speed in the process.
Josh pointed out that taking a hour to build an index, it's probably an external sort. Noah posted a patch to allow larger internal sorts, over 1GB. Andrew pointed out that a process model would tie us to certain large operations. Threads would add a lot of overhead to everything, though. We'd have to rewrite palloc. Haas things we can get the minimum unit down to something fairly small. Andrew pointed out that on windows process creation is very expensive. Haas doesn't want rewrite the entire internal infrastructure.
With Threads, everything is shared by default, with processes, everything is unshared by default. The process model and explicit sharing is a shorter path from where we are currently. Parallelism helps with CPU-bound processes, but not IO. Josh argued with Kevin that there are some types of storage where this isn't true. Kevin just pointed out that if the resource you're using the most of isn't bottlenecked, then it's not helpful to parallelize. Haas pointed out that parallelizing seq scan on a single rotating disk won't help, as opposed to parallelizing scan from memory, which would be much faster. Our cost model isn't up to this; we might even have to have a recheck model where the executor notices things are slow and switches approaches.
Bruce pointed out how Informix switched to threads between 5 and 7 and it killed the database. Parallelism will take Postgres into new markets.
Andrew pointed out that prefork backends will help us form new connections if we can get it to work. Haas pointed out that we're going to have to cut nonessential issues to avoid taking forever.
Pluggable plan/exec nodes
Kaigai is working on GPU execution. When he worked on writable FDW, pseudo-column approach for foreign scan node returning an already computed value, but that was rejected, because the scan plan needs to return the data structure as its definition. So Kaigai wants to add an API to add a plan node to the exeuction node, allowing executor to run extension code during query execution. When plan tree tries to scan large table with sequential scan, and the target list has a complex calculation, we can have a pseudo-column which does this calculation on a GPU.
Kaigai is talking about planner and executor. Haas doesn't understand how we would have pluggable planner nodes, as opposed to executor nodes. How would you allow it generate completely new types of plan nodes? We can replace existing plan nodes, but new types of nodes would require a new extensibility infrastructure. To do this, we need two new infrastructures to inject plan nodes and executor nodes. But Kaigai is mainly focused on is replacing existing scans and sort nodes. He didn't investigate the difficulty on planner extension yet.
Peter E. pointed out that 65% of the work will be the ability to add new nodes at all. Replacement will be MUCH easier. However, the ability to add new nodes would be very useful to PostgreSQL in general. Tom thinks that it could be done. Haas pointed out that we have a lot of wierd optimizations about what plan node connects to which other plan node. Tom doesn't think that we have that many. Noah says we'll probably use a hook.
For a new executor node we have a dispatch table, it's easy. Plan nodes could use a jump table too. Right now we have function volatility markers; for nodes we'll need the same thing. But that's a problem only for expression nodes.
This was discussed in the cluster meeting. PostgresXC wanted pluggable nodes for cluster scan, as do some other people. So a general pluggability infrastructure would be good. If we have pluggable scan nodes, we can plug in cluster scan as well as GPU scan.
Jeff Davis pointed out that range join could be our first pluggable node. Haas pointed out that opclass support requirements might make it difficult; there are easier cases. Range join might need to be hardcoded. Pluggable planner stuff is hard.
This would also maybe get people who fork Postgres to stay closer to the core project and implement extensions instead of having an incompatible fork which then doesn't work with others.
Volume Management
Right now we have tablespaces. Having some more automation around using them would help. Like we want the indexes on a separate tablespace from the heap; there ought to be automation for this. Somebody hacked up something like this ... maybe Depesz, in 2007.
Haas asked if having indexes on a separate volume was actually faster. Frost asserted that it was. Josh brought up that with new small fast storage there's reasons to want stuff to move around again. Also, index-only scans. If I only have one column, then I can do index-only scans, so I want to put the index on faster storage. Josh pointed out that indexes-separate worked back when at OSDL.
Stephen Frost pointed out that they have pairs of drives, with a whole lot of pairs. Stephen asked about whether or not we'll ever have things like Oracle Volumes. Kevin said that that configuration works on raw devices, but not so much on complex filesystems. FRost says that for specific workloads, it really works to parallelize everything for massive joins.
Several people asserted that modern RAID is fairly efficient. Josh asked if any default automated rules would work for a general class.
Frost explained Oracle Volumes. They can be used to go to raw drives. Volumes are disks or drives or files. You can have multiple volumes under a single tablespace, and Oracle will manage them together. Do we want to do that? Maybe we should just use LVM.
There's also some other things we could do with volumes, like compressed volumes. Noah has seen tablespaces abused 5 times as much as used properly. We should be careful that what we're adding is really useful. People want things like encrypted & compressed tablespaces. Every time something like this comes up, Tom or someone says "use a filesystem which provides that." There are some advantages to having the database do that, but there's a lot of development effort.
Noah suggested that event triggers would do this. Frost says that they already have code, they want to simplify it. Josh points out that there aren't simple rules for this; most DWs don't have rules which are as simple as "indexes go here, tables go there". A lot of this is misplaced Oracle knowledge. Josh brought up the backup issue again.
Utilization of upcoming non-volatile RAM devices
Kagai is just presenting an idea and asking for opinions. Wants to consider the impact of these new devices. Wants to boost the performance to write the transaction logs. Once we have mmaped to the nvram device, then we can consider that completion of log writing. Non-volatile ram will be exposed as main memory. There are Linux patches which allows mmaping to these devices. Once we have these devices, it dramatically reduces the overhead to write the transaction log.
Kaigai said that this topic comes from the forks on ram storage devices. We wanted improvement of row-writing performance. Also appliable for general fast SSD storage. Wants to add fork around row-writing and create extensions where we maybe have nvram and mmapped region for the xlog.
Josh points out that this dovetails with transactional memory, which allows lock exchange for multiple K of data and multiple instruction. Like we might not need as much from the WAL. Others disputed that.
Kaigai wants to implement this for the write-ahead log. Then later we can look at the heap. NVRam has limited write cycles, so we don't want to use it for main storage.
Logical changeset generation review & integration
Andres gave a progress report on current status of the changeset generation patch. It's mostly done, but we need to integrate it and it needs substantial review. He needs someone to help, not from 2Q -- someone independant. How can he proceed to get the pieces into core?
Haas suggested that they could swap for review on parallel query. The patch is currently about 12,000 lines. Peter G says he can take a shot at it, but he wants someone else.
Frost asked how much was additional stuff there is vs. changes to existing behavior. There's new kinds of TOAST tuples. There's mapping relfilenode back to the OID, which is controversial. Andres says that it's safe the way they do it, and if it's broken in logical replication then it's already broken in Hot Standby, so we should fix it. There's some changes to heapam.c, like preventing full page writes from removing the tuple contents.
Haas points out that Heikki objects to most of the functionality in core. Andres says that he can reduce complexity in some areas. Noah says that having zero implications for nonusers it can't possibly work. If it's a good thing, we're going to have to accept some code complexity cost to do it.
The write-ahead log currently is designed to do crash recovery. We've pushed that for hot standby and PITR, but this is pushing it even further, we're adding another level of pain. TOAST tuples are a good example of this; how we crash recover them doesn't work for logical replication. To what extent do we use the WAL format we have now, and how much do we modify it? What's the performance cost?
Some things don't need much intervention. But we have to look up stuff in the catalogs, and do catalog time travel to figure out what the object references mean. Peter E asked about simply creating a completely separate log for logical replication. Andres says that the tried this, but it had a huge extra cost, because you have to add a whole bunch of extra data to it. That would double synchronous writes, at least. So are we not going to investigate this? The logical replication stream would need to include catalog updates.
Haas points out that the kludges for this aren't as bad as hot standby. Magnus points out that MySQL has to do 2PC between the binlog and the innodb log. But a lot of people are going to want this feature.
Steve Singer has written 80% of the code for basing Slony on LCR. 2Q is also working on their own replicated solution for this.
So the other modification we need to deal with xmin for pg_catalog and user tables differently. But this had some benefits for general Postgres efficiency. Can we split this up at all? The earlier patches can be reviewed separately.
One other thing we devised for this is logical replication slots. You need to know where readers last left off. We could maybe use this for binary replication as well. You can decode on a hot standby, not just on a master. Primary key updates are handled. We only have the TOAST tuples if they change, though. We have before images, but they have some limitations. Kevin asked about rolling backwards to an earlier state.
Haas will review some of the patch, but not the whole thing. We had the same issue with streaming replication, not enough reviewers. Haas would like to get it done early in the first commitfest. Andres will submit but is not sure we can commit it in the first round.
Representing Severity
Peter G. agitated about that there's no principled way to discover whether a "severe" error occurs, such as corruption from errors in xlog.c. There's no way that DBAs can confirm that an error of particular severity has occured, except grepping for particular strings. There's multiple distinctions here. Such as there are various "can't happen" errors which our developers want to see as soon as possible. Heroku also wants to bring errors to the attention of the lists automatically. The tail-n-mail approach is not scalable.
Haas's object is whether it's possible to agree on categorization about whether or not something is severe. We have hundreds of ereports, so we need a very simple categorization scheme which everyone can agree on. Tom points out that "can't happen" and "severe" aren't necessarily the same thing. Maybe we could use SQLSTATE and tweak some things. Everyone thinks this is the way to go.
It would be very useful to be able to filter the volume of logging too. We need to log sqlstate though. We might in addition put the severity concept into the log. We'd have to clean up how we use SQLSTATE too. We could supply some default filters, but users would need to tweak them. Filtering the log is a separate feature from fixing the SQLSTATE. That can be done later.
Error Logging Infrastructure
Peter G: As a complimentary feature, it would be great to be able to store errors in a circular buffer available, like pg_stat_statements. Peter E is doing a presentation related to this tommorrow using logging hooks. You can already do this.
Peter E argues against doing more aggregated views like pg_stat_statements, because it doesn't provide historical or granular data. With logging hooks, you can build this more granularly. It already exists in 9.2. The average DBA can't write code in C, logging hooks allow you to work around this, you can get log data in JSON. Peter E argued against having a hardcoded system for this.
Josh pointed out the efficiency argument. Robert pointed out the usefulness of "last message repeated 351 times". Peter G envisaged doing pg_stat_errors as a contrib module. This could be build on logging hooks. Dimitri pointed out that you can also do this with FDWs and CSV logs. Some discussion about how does Oracle Enterprise Manager do this? PEM uses CSV logs.
Discussion about alternative approaches ensued.
Heroku can feed back some information about errors using log aggregation. Frost would love to have performance information from Heroku.
Incremental Maintenance of Matviews
Kevin: Matching other DBs who have matviews will require a 5 year plan. We have a foundation in 9.3, you can declare a view, and it's materialized. It's just a foundation at this point. For 9.4, we want the first level of incremental maintenance. We can't get all the optimizations in, we just want to make the infractructure for the simplest cases in there.
For the first commitfest, I want a transactional REFRESH using the approach on the lists. There will always be cases where incremental maintenance won't work. So we want transactional refres first, so that we can analyze whether it pays to update using the delta. If every row is touched, that's a loser. So we want to fall back to the full refresh if the delta is too large.
He won't speculate on what we can get into each subsequent release. Planning to use the counting algorithm, it's very well established. Will only handle the simple cases at first, and will work through complex cases and see how far they get.
Need a new system column, count_t, which counts the number of ways a give tuple can be derived from source data. It's a kind of reference count. There's a completely different algo for recursive views. Handling NOT EXISTS is a separate implementation too.
What he wants to get in these first releases is how to implement the count_t column, how to implement other stuff in the first commitfest. Then the other CFs can be refinements. Peter E points out that count could overflow. The new column will be added only for new matviews which are specified as "incremental". We'll probably have other stratgies for incremental update, and it'll only be used by the counting strategy. You'd have to do an ALTER table to change that.
Thinking of doing the incremental change as synchronous in the transaction. Initially will not work for async maintenance. You need a delta with a count which can be plus or minus, you need a snapshot for before and after the change. You need to generate the deltas with each change to the base table, but you don't need to update the matview immediately.
There was discussion about how this applies to expensive, infrequently updated materialized views.
The extra column would only be present in incremental materialized views and the deltas. There would also need conditional code in execution nodes which know how to handle the column. Haas questioned if there was some way we could add a non-system column. How do the executor nodes know not to display the system column. It's not like SELinux because it wouldn't be present in every table.
Maybe we need a general notion of invisible columns. That would be generally useful. Then we could have extra state information. Bucardo could use it. A lot of things want to hide columns from "select *". We should add this concept.
There was discussion about having stable system views. This change will break things like the ODBC driver, because it gets the list of columns from pg_attribute. We can start with just matviews. But right now drivers assume that anything with a positive attnum is visible. But there's no patch for logical column numbers now. Alvaro has a patch for it, it's complete but it's bitrotted. This is just like attisdropped; it broke a lot of things. Alvaro might update it, he's not sure he'll have time. But we have to get this done in CF1.
If the next version is 10.0, though, we could break things. So maybe it's a good time.
Lunch Notes
Robert suggested getting rid of the v2 protocol in the next version. He thinks there's hacks in COPY which slow it down and are required for support of v2. But people want to see numbers on that. v2 is also used for JDBC, but that's to fix the plan cache issue which is fixed in 9.2. We need to see concrete improvements, though, and then there'd be an easy switch. We also should know what drivers are using v2, like pygresql.
GIN generalization
Alexander talked about general advances in GIN. Many people use external full text search because it's faster. One of the reasons GIN is slower is that it's used only for filtering, forcing the executor to page all of the results, and ranking. And it doesn't do LIMIT.
So how the extended indexing solution works: there's positional information, so that we can calculate relevance. So there's now a structure to add extra infromation to the vector for any additional information. We can extract positions of words. To keep the index small we're using run-length compression. The index is then about the same size as the uncompressed index, with a lot of extra information.
The problem is that we use the infrastructure from KNN. GIN declares that it can do ORDER BY with an operator, so you can get ORDER BY and filtering from the same index. Noah asked what ordering operator he's talking about. GIN calculates distance on item vectors, and then sorts by an array, and then executes gin_get_tuple(), which is new. It can then return them one-by-one for sorting. It's kind of like KNN, but it works differently, but it's much cheaper than getting the tuple from the heap. We need to tell the planner that we can return the original tuple from the index.
This will be a new operator class. And we modify the operator classes for tsvector.
Peter E asked for applications outside tsearch. Alexander said that it would also work for similarity searches. Can also be used for regex index. You can build a regex, index it, and then search for text strings which match that regex.
Andres pointed out an alternate method for doing this, but it requires improvements to the planner. Haas encouraged maybe taking this approach. If we assume that the planner can get an expression from the index, then we need sorting before we go into the heap. That's going to be hard. That's a real issue for any steps which happen between checking the index and the heap. You could see tuples which aren't visible. This might not be a problem for the GIN case, but it's liable to be a problem for the general case.
Maybe this is related to bitmap indexes. Btree operators need to be able to deal with invisible tuples, so this isn't new.
Discussion of implementation methods ensued. There was question about what doesn't work in KNN-Gist infrastructure. Like it doesn't work without a WHERE clause. But this could be generalized. This will break amproc, but it's not like anyone makes access methods outside of core. Maybe we should get rid of pg_am and just have a jump table, pg_am just isn't really useful. We can't drop it because the oids there are used as keys elsewhere, and there's really not much cost.
Another infrastructure question is that currently GIN only has to know one data type. Now when we introduce additional information, we need to know datatypes. SP-GIst needs 3 datatypes. That's why we have spgist_config. For GIN we'll need a new configuration method to return this datatype. So there's a question of breaking older stuff. Can you support both opclasses? Storage parameter would define it, so it would appear in conflict.
This should probably be GIN2 with new access methods, etc. We'll be changing the storage format of GIN indexes. But that would require supporting the original GIN indefinitely. We could bump the version number on the GIN node page. Two choices: write the code so that it supports the old format, or add a whole new access method. Are we changing the operators or the access methods? Changes are mostly in GIN, a lot less in the operator class. Peter E pointed out that the compression could be a separate feature. Alexander says that the the change is not easily separable because of some of the performance optimizations.
There was more implementation discussion about the methods for doing online upgrade if we change GIN. Rewriting on selects is out. In general we want to deprecate the old GIN, but we'll need a couple versions to do it.
Frost raised the idea of general infrastructure to support upgrade-in-place. Like we could have a flag in pg_class. But several people dismissed this idea as not really helpful.
An Extensibility Roadmap
See slides linked from this page.
We've already did some extensibility with create extension and create event trigger. Now I need the extension templates. I want reviewers and committers to understand where I want to go.
DDL Execution Plans is after that ... like EXPLAIN ALTER TABLE. Dimitri wants CREATE EXTENSION to fetch code from the internet. But core doesn't want that, so Dimitri wants to do that using extension templates and event triggers. Then he wants a PL/C language which compiles on-the-fly. This would allow creating extensions from source dynamically. But the source is in a place only root has access to.
Dimitri wants extensions to follow replication. There's some security issues with that. There's issue with having such things like downloading in core and having it not suck. There's a lot of reliability issues. Haas isn't keen on the whole idea. But Dimitri doesn't want to code all of the extension features in C. But this is already a problem with external PLs.
Dimitri wants to be able to build full set of extensions using only a PostgreSQL connection and superuser access. Josh talked about the developer-push issue. But there's security issues with arbitrary C code, so a lot of people have issues with it. Peter G suggested we could somehow sandbox the C code. Haas says that this is possible, but you need kernel-level help.
Josh says 3 problems: developer push, relication, and backup. But what if we solved it for non-C cases, but not C cases? Some people thing it would be useful. Extension Templates for packaged user code would be very useful for in-house code, so it can be packaged as an extension.
Failback with Backup
Fujii hears complaints from users: why do we need to take a full snapshot for failback? If the database is very large, this can take a long time. Three problems: timeline ID mismatch, WAL record mismatch, database inconsistency.
Timeline ID: we can't start the old master as a replica because of the timeline ID. This is resolved now in 9.3.
WAL Record Inconsistency: if the master crashes after writing a WAL record but not sending it to the standby, then it has WAL records the standby doesn't have. We can resolve this by removing all WAL records in the old master before starting it up in standby mode. Old master will then try to start recovery, and them start replication to retrieve the WAL records. One problem: last checkpoint record may not be replicated to the standby. Could we make the checkpointer wait for replication? If the Standby goes offline checkpoint would hang.
Frost asked how large of a user problem this is? People cited examples.
Haas suggested a holdback for datafile sync. Magnus pointed out that if we distinguish between failover and switchover. So we could have failback only for switchover circumstances. Jeff pointed out that you have to break replication and resync standbys after upgrade. He also thinks that we can use the WAL to help a diff between datafiles. Controlled switchover would fix the upgrade case too maybe.
We could create a list of dirty blocks from the WAL. But there are a lot of special cases which would prevent rollback.
Database inconsistency can happen if the master crashes. There can be some missing database changes. One solution is implementing undo logic, but that's very very difficult. Fujii's approach would be to add some write points to the master. Before the master writes the database to the disk, it writes the WAL to disk. It could wait for replication of WAL before writing to the LSN. Except for hint bits. And what if the replica goes away?
Fujii wants to solve both controlled switchover case as well as the crash & failover case. The controlled swithover case is a lot easier to solve. You could freeze out existing connections, finish writes, and then switch over. There's a lot of similar ideas in Oracle QS.
Josh suggested that the crash case isn't any different if we're already in synch rep. Others disagreed. Haas suggested that we could use Andres' infrastructure of slots for replication. Noah suggested that we could delay hint bit application until we're after walflushlocation. Maybe we should only solve this for controlled switchover.
Jeff: for checksums, we already store the first modified record after the checkpoint. We could store very abbreviated information the WAL for checkpoints. There would be some significant cost for hint bits on a seq scan. If you want to be able to turn the WAL log into an undo log. You only have to copy certain pages. You could log only the first change since the last checkpoint.
9.4 Commitfest schedule and tools
The CF schedule will be the same as last year. This time do what we said we'd do, not what we actually did. So include the triage periods etc. Josh will run first CF.
Discussion about patch development during commitfest. Ending a commitfest takes a lot of work. There's a lot of work for moving stuff along. We could make a commitment that -hackers will not argue with the CF manager. Josh also wants to have a commitfest assistant. He called for volunteers. The author ought to be the one to take the patch out, it shouldn't wait on the CFM. Each patch deserves one solid review per CF, but not more than one.
Kevin points out that the biggest issue is finding reviewers and getting the reviewers to do the review. Josh asked if having reviewers put their name down is actually helpful. Maybe we need to be really aggressive about taking names off. There's a big difference between Noah doing a review and some new reviewer doing a review. Josh suggested clearing reviewer after 5 days. Frost suggested removing them earlier. Maybe more tightly tying them to the archives would be good.
Lots of discussion ensued.
We should tell people to not put their names down until they are ready to start reviewing. The 10K line patches are not the problem, the 10 line patches are.
Josh discussed replacing the CF tool, either with Gerrit or Reviewboard or something new. Frost suggested Github. Josh discussed some issues for reviewers. Discussion ensued, but not recorded because the secretary was speaking. Josh also wants automated patch build. Other people suggested automated apply.
Josh will develop a spec for a new tool. He will run it past the CF managers for comment. Then post it to -hackers for comment. Haas is skeptical about 3rd-party tools. He hates git stuff. Frost discussed using forks in github. We should be able to track a git branch in the tool.
Goals, priorities, and resources for 9.4
- Dave hopes to start writing pgAdmin4 this year.
- Kevin will work on materialized views.
- Dimitri: Extension templates and event triggers.
- Andrew: most JSON work is complete, the rest can be extensions. Wants to work on grouping sets.
- Noah working on EDB features (see above), and bug fixes.
- Bruce is working on pgPool to make it better and more usable, maintainable and debugged.
- Fujii is working on PostgreSQL replication. Would also like to work on pg_trigram for Japanese.
- Simon (via Skype) Tablesample patch, COPY tuning, and security reviews (SEPostres).
- Tom will take an interest in pluggable storage. Maybe also Autonomous transactions.
- Magnus will work on a new CF tool. Also more improvements to pgbasebackup.
- Haas will be working on side issues on matviews and parallel query as they come up.
- Josh will be working on new CF tool. With time/funding will work on automated testing.
- Kaigai will work on row-level security. Also GPU stuff.
- Jeff will be working on convincing Robert to remove pdallvisible. Also corruption detection. And Range JOIN, or inclusion constriants.
- Alexander will work on new GIN.
- Peter G will be working on error stuff (per above). Also wants to work on fixing archiving falling behind and panic shutdown. Also doing a little bit of work on upsert.
- Andres will be doing logical replication.
- Peter E has the transforms feature outstanding. And wants to move the documentation to XML. Wants to improve test coverage.
- Frost will be doing pg infrastructure. Wants to help with CFs. Also fix some stuff with optimizer.
- Greg Smith is working on autovacuum style I/O limits for other statements.


text:
MIAMI - LeBron James scored 32 points, Dwyane Wade added 31 points and eight assists, and the Miami Heat held off the Houston Rockets 114-108 on Wednesday night.
Shane Battier scored 12, Norris Cole added 10 and Udonis Haslem grabbed 13 rebounds for Miami, which moved to 20-3 at home.
James Harden finished with 36 points and 12 rebounds for Houston, which got a 15-point, 14-rebound night from Omer Asik and 15 more points from Patrick Patterson. Jeremy Lin and Chandler Parsons each scored 13 for the Rockets.
A night after tying an NBA record by connecting on 23 3-pointers, the Rockets finished 9 for 25 from beyond the arc.
Miami played without Chris Bosh, who missed the game with the flu. Heat coach Erik Spoelstra said he hoped Bosh would be well enough to play Friday when Miami hosts the Los Angeles Clippers.
MINNEAPOLIS (AP) — Danny Green hit eight 3-pointers and scored a career-high 28 points to help San Antonio win its 11th straight game.
Tony Parker added 31 points and eight assists and Kawhi Leonard finished with 19 points and 10 rebounds for the Spurs, who kept right on rolling without injured stars Tim Duncan and Manu Ginobili.
Nikola Pekovic had 21 points and 10 rebounds and Derrick Williams added 15 points and 12 boards for the Timberwolves, who added do-it-all forward Andrei Kirilenko (bruised right quadriceps) to a seemingly endless list of injured players.
OKLAHOMA CITY (AP) — Kevin Durant scored 25 points, Russell Westbrook added 22 and Oklahoma City won consecutive games for the first time in nearly three weeks.
Playing on the second night of a back-to-back, the Warriors didn't get settled in Oklahoma City until almost daybreak and it showed in the early going. The Thunder finally put it away with a 16-4 run to start the fourth quarter that featured 10 points from sixth man Kevin Martin.
That allowed coach Scott Brooks to go without Durant or Westbrook in the fourth quarter for the second straight game.
Harrison Barnes and Klay Thompson had 19 points apiece for the Warriors. Golden State played without Andrew Bogut, who is still easing his way back from a left ankle injury, and Jarrett Jack was sidelined by a right shoulder contusion.
DALLAS (AP) — O.J. Mayo scored 28 points, Vince Carter hit a critical jumper in the final minute and Dallas gave coach Rick Carlisle his 500th career victory.
Mayo had 20 in the first half and was mostly quiet before getting two important baskets with Portland trying to rally late in the fourth quarter.
Carter put Dallas ahead 99-94 with a jumper just inside the 3-point line with the shot clock winding down.
LaMarcus Aldridge had 27 points and 10 rebounds a week after he beat the Mavericks at the buzzer in Portland.
WASHINGTON (AP) — John Wall had 21 points and nine assists, Trevor Ariza scored 20 points and Washington Wizards broke New York's five-game winning streak.
The Wizards also snapped New York's 10-game winning streak over them.
Wall, playing in front of his college coach, John Calipari, and Hall of Famer Magic Johnson, scored 10 points in the fourth quarter as Washington took control.
New York never got closer than 97-92 with 2:57 to play and the Wizards pulled away at the end.
Martel Webster added 19 for Washington, which has won just 13 games, but has beaten five of the six NBA division leaders.
Carmelo Anthony led the Knicks with 31 points. Amare Stoudemire scored 19 and Raymond Felton had 17.
ORLANDO, Fla. (AP) — Eric Bledsoe had 27 points, including 19 in the second half, and Los Angeles used a big third quarter to snap a three-game losing streak.
The Clippers won despite playing without their three top scorers in All-Stars Chris Paul and Blake Griffin, and Jamal Crawford. Paul remains sidelined with a bruised right kneecap and Griffin sat with a strained hamstring. Crawford was out with a sore right shoulder.
Jameer Nelson scored 18 points to lead the Magic and Nikola Vucevic added 15 points and 13 rebounds.
TORONTO (AP) — Kevin Garnett scored a season-high 27 points with 10 rebounds, Paul Pierce had 12 points and 11 rebounds, and Boston won its fifth straight game.
Courtney Lee added 15 points, Leandro Barbosa had 14, Avery Bradley 11 and Brandon Bass 10 as the Celtics remained unbeaten since losing guard Rajon Rondo to a season-ending knee injury.
Garnett scored 11 points in the fourth quarter as the Celtics rallied from a 10-point deficit to snap a two-game skid in Toronto. Boston had lost three of its last four in Canada.
The victory also ended a three-game road losing streak for the Celtics, who had dropped 11 of 14 away from home.
Andrea Bargnani returned after missing 26 games with a torn ligament in his right elbow to score 13 points for Toronto, while DeMar DeRozan also had 13, making 5 of 16 field goal attempts.
CLEVELAND (AP) — Kyrie Irving scored 22 points in just three quarters, rookie Dion Waiters added 19 and Cleveland didn't overlook a team with a worse record than its own.
The Cavaliers were coming off a stunning upset of Oklahoma City, one of the league's best teams. It would have been easy to take the lowly Bobcats (11-37) for granted, but Cleveland came out energized from the start, built a 33-point lead after three quarters and sent Charlotte to its 11th loss in 13 games.
Tristan Thompson scored 17 for the young-and-improving Cavs, who are 8-9 since Jan. 1.
Byron Mullens scored 15 to pace Charlotte. Bobcats leading scorer Kemba Walker, averaging 17.8 points per game, had just five on 2-of-11 shooting.
PHILADELPHIA (AP) — Roy Hibbert had 16 points and 13 rebounds to lead Central Division-leading Indiana to its third victory in three nights.
The Pacers showed no signs of weariness despite being the only team to play back-to-back-to-back games this season.
Paul George, George Hill and David West each scored 15 for the Pacers.
Indiana has won five in a row overall to move a season-best 12 games above .500. The Pacers snapped a three-game road losing streak and won for just the third time in 10 games away from home.
Jrue Holiday had 17 points for the Sixers, who saw their season-best three-game winning streak end.
ATLANTA (AP) — Jeff Teague had 22 points and a season-high 13 assists, Josh Smith added 19 points and 11 rebounds and Atlanta snapped a two-game skid.
Al Horford added 17 points and 11 rebounds for the Hawks.
Zach Randolph scored 20 points and Mike Conley had 17 as the Grizzlies lost their second straight.
Atlanta played without No. 2 centre Zaza Pachulia, veteran guard DeShawn Stevenson and swingman Anthony Morrow, but still held the Grizzlies to 26.3 per cent shooting in the third quarter.
Memphis missed its first 13 shots from the field in the third before Randolph hit a 22-footer at the 6:26 mark, but the Grizzlies trailed by 19 and never recovered.
AUBURN HILLS, Mich. (AP) — Brook Lopez had 17 points, and Brooklyn won at Detroit for the first time since 2006.
Will Bynum's tying 3-point attempt from the right corner was short in the final seconds.
Joe Johnson scored 16 points for Brooklyn, including two free throws with 8.8 seconds left that made it a three-point game.
Detroit led by 13 in the second quarter, but the Pistons were only ahead 46-40 at halftime, and they were held to 17 points in the fourth quarter. Greg Monroe led Detroit with 23 points.
The Nets had lost 10 in a row to the Pistons on the road.
Brooklyn improved to 18-1 when facing a team under .500.
NEW ORLEANS (AP) — Greivis Vasquez scored 19 points, Al-Farouq Aminu added 16, and New Orleans snapped a four-game losing streak.
Vasquez, who scored 15 points in the first half, was 8 of 9 from the field and had 12 assists in his 19th double-double of the season.
Ryan Anderson added 14 points and Robin Lopez 11 for the Hornets, who were making a rare appearance in New Orleans Arena. Because of the Super Bowl this past week, the Hornets were playing only their second home game in the past eight and fourth in the past 13.
Marcin Gortat and Jared Dudley each scored 14 points for the Suns, who came in off a win at Memphis on Tuesday night.
SALT LAKE CITY (AP) — Paul Millsap and Al Jefferson each scored 19 points, Enes Kanter had 17 and a career-high five blocks, and Utah dominated inside to earn the victory.
Kanter went 5 of 5 with five rebounds and a block during the second quarter when the Jazz took control after trailing by 12 in the first.
Utah was able to control inside despite being without the NBA's leading shot blocker, Larry Sanders, because of a back injury. The Jazz held a 31-10 advantage on second-chance points and a 56-36 edge on points in the paint.
Jefferson and Derrick Favours led Utah with 11 rebounds apiece, and the Jazz had a 50-37 advantage on the boards.
Brandon Jennings and Ersan Ilyasova led Milwaukee with 17 points apiece.

subset: commoncrawl


text:
Posted 10 years ago
(1 item)
This is my favorite Christmas ornament. It was given to me when I was in the 2nd grade by a classmate. I don't know who made it or where it was made. I am now 47 and look forward to putting it on my tree every Christmas.


text:
Three Tier Express Delivery Locker - 1800H x 300W x 450D
Overnight Delivery is Available - please call 01772 322634
*ORDERS BEFORE 12.00 noon MAY BE DELIVERED THE NEXT DAY AT ADDITIONAL COST
Standard delivery is 5-7 working days
Our Express Delivery lockers are available in 3 different door colours (Red/Grey/Blue). We offer 2 lock options (cam lock or padlock fitting). Padlock fittings do not include padlocks but these are available in the drop down lock option box. These lockers are a great choice if you need secure storage for your business, school, gym or sports club in a hurry.
• Delivered Fully Assembled
• 1, 2, 4 and 6 door options also available
• Anti-Bacterial Powder coated
• Key or swivel catch option
• Louvred Doors for ventilation
• Strong steel construction
• Master keys available
• 3000 key differs
Dimensions: 1800 x 300 x 450 (H x W x D mm)


text:
Like most websites we use cookies. This is to ensure that we give you the best experience possible.
Continuing to use www.cabi.org
means you agree to our use of cookies. If you would like to, you can learn more about the cookies we use.
Supporting your research in animal production, welfare and health
Log out of
Animal Science Database
and My CABI.
This will :
Access to over 3 million abstracts, more than 166,000 full text documents, over 360 CAB Reviews and some 4,190 news articles
Advanced Bibliographic Search
Animal Science Database smart searches are based on commonly researched topics, and your own requests
Sign up to receive our Veterinary & Animal Sciences eNewsletter, book alerts and offers direct to your inbox.
2 results found
Results per page:
This issue presents the proceedings of the 35 Scientific Conference of the Tanzania Veterinary Association, held in Arusha, Tanzania, last 5-7 December 2017. Topics of papers focused on the feeding, breeding, welfare, and reproduction of animals as well as on the diagnosis and treatment of diseases ...
Copyright © 2020 CABI. CABI is a registered EU trademark


text:
Our hand-dyed wools are dyed one pot at a time, one color at a time. Because of this, no two pots turn out exactly the same way but that just adds to their charm. Sizes are approximate. During the dying process, the wool will shrink but the amount of shrinkage is dependent on the type of wool. 100% wools come 54" to 60" on the bolt.
Please select a size and also a texture to be over-dyed. If no texture is selected, we will assume that you want your piece dyed over a solid natural.
Not all textures are suitable to all colors. If we feel that your selection may not give the desired effect, we will contact you with suggestions.


text:
From inside the book
9 pages matching pressure in this book
Where's the rest of this book?
Results 1-3 of 9
What people are saying - Write a review
We haven't found any reviews in the usual places.
Other editions - View all
Common terms and phrases
action active acute American anesthesia appear applied arch associated biopsy blood transfusion body bone cause cells cent changes chronic circulation City clinical combination COMPANY complete danger DIABETES diagnosis discussed disease disturbances donor doses effect endocrine examination exists experience flat foot fluid four frequently function given gives gland growth head hospitality hypothyroid illustrated important increase indications injection Intracranial Pressure irradiated Journal less limitation liver means measure MEDICAL HERALD medicine method mixture muscles needle nerve normal observed Obstetrics occurs operation Oregon organs original oxygen patients period Physical Therapy physicians Portland practice preparation present pressure Price prostatic reported rickets secretion showed skin solution spinal fluid stimulating success Surgery symptoms technique temperature tion tissue treated treatment trypaflavine usually vaginal various veins volume York


text:
Wednesday, March 31, 2010
Cowboy Calzones a la The Pioneer Woman
***A great friend of mine, Ashley, recently told me about some calzones that she had had at a friend's house. At the party, everyone made their own calzones...sounds fun, doesn't it? Basically, she said they all started with pizza dough, and then added the toppings of their choice from a big selection. That sounds like my kind of party!
So, when I saw these calzones the very next day in The Pioneer Woman's new cookbook, The Pioneer Woman Cooks, I decided that I just HAD to give homemade calzones a try. It was just meant to be!
Now, I have to warn you...These aren't the tomato sauce and pepperoni type calzones that you're probably used to ordering at your local Italian eatery. These are truly "COWBOY" calzones...hamburger meat, sausage, onion, Rotel, and lots of cheese make up the filling. And I also will admit that I used store-bought pizza dough...I just couldn't be bothered with making my own dough that night. They still tasted fantastic!
I think you'll really enjoy these hearty calzones. They'll fill ya up and leave you with a happy tummy!
Bon Appetit!***
Cowboy Calzones
Source: The Pioneer Woman Cooks by Ree Drummond
Pizza Dough:
1 tsp or 1/2 packet of active dry yeast
4 cups all purpose flour
1 tsp kosher salt
1/3 cup extra virgin olive oil
1. Pour 1 1/2 cups warm water in a bowl and sprinkle in yeast.
2. Combine the flour and salt in a mixing bowl.
3. With an electric mixer on low speed, drizzle in olive oil until combined
4. Add water and yeast mixture slowly until ball forms.
5. Let it rise for 1 to 2 hours or can be refriderated for 2 days.
Calzone Filling:
1/2 lb breakfast sausage
1 lb ground beef
1/2 diced onion
8 oz can of Rotel
8 oz whole milk ricotta cheese
1/2 cup grated mozzarella cheese
1/2 cup grated Monterey Jack cheese
1 egg, beaten
Salt and Pepper
1. Preheat oven to 450. In a large skillet brown ground beef, sausage and onion over medium heat. Drain excess grease
2. Add Rotel and cook for 2 mins. remove from heat and let cool slightly.
3. Combine ricotta, mozzarella, monterey jack, and egg in a bowl. Add salt and pepper to taste.
4. Combine cheese mixture with meat mixture.
5. Divide dough into 8 equal balls. Roll into 6 inch circles.
6. Place one-eighth of the mixture in the middle of each circle.
7. Fold one half of the circle over and pinch the edges to seal. Brush with olive oil.
8. Bake for 12 to 15 mins
Posted by Celeste at Wednesday, March 31, 2010 1 comments Links to this post
Labels: Dinner, Italian Cuisine, The Pioneer Woman
Monday, March 29, 2010
I Need Your Help! Vote for Gooseman!
Meet "Gooseman"...Isn't he the cutest? :-)
UPDATE: THANK YOU so very much to everyone who voted for Gooseman. I'm thrilled to report that our efforts paid off...Gooseman is officially "Bama's Best Dog!!" That's so exciting! Congrats Gooseman!
Hello to all of my wonderful blog readers...I usually don't publish posts that don't have anything to do with food, HOWEVER...One of my best friends, Mary Katherine, needs your help! Her sweet, sweet puppy "Gooseman" has been selected out of over 1,300 entries for a chance to win "Bama's Best Dog."
Please take a few minutes to vote for her furbaby at THIS LINK. It only takes a few seconds. I'd be so grateful if ya'll could help her out! A three-night beach vacation is on the line for Mary Katherine!
Please hurry...the voting only continues through 11:59 p.m. on Wednesday, March 31!
Go Gooseman!!! :-)
Posted by Celeste at Monday, March 29, 2010 4 comments Links to this post
Friday, March 26, 2010
It's Giveaway Time! - Win a $50 Earth Fare Giftcard!
Economic times are tough. We all know that. And, Earth Fare, the healthy supermarket, seems to know that too. Have you been to their stores? If so, you would know that they are always trying to make healthy eating affordable, easy and delicious! Seriously - have you tried their homemade, all-natural chocolate chip cookies - if not, it is .99 cents of deliciousness! Well, in celebration of the opening of their new Huntsville, AL store on May 12th, Earth Fare gave me a $50.00 gift card to give away! Yeah, very cool. They just said, hey Celeste...Give this away for us!
So, now, we want you to tell us why you deserve or just plain want this gift card. We've all got stories. You may have a family of four to feed on a tight budget. You may have lost your job recently and just need some extra help. You may be a cookie lover or organic food nut! Or, perhaps for whatever reason, you've never tried a healthy food store and just want to see what it's like! Give us your best reason, and we'll consider it for the prize.
The best story gets the card. So, ready, set, and get writing. Post your reason in the comments below today! Before entering, be sure to check THIS LINK to see if there's an Earth Fare store near you!
You only have until Friday, May 7th to get your entry in. Good Luck!!!
Photos courtesy of http://www.earthfare.com/
Posted by Celeste at Friday, March 26, 2010 9 comments Links to this post
Labels: Tid Bits
Monday, March 22, 2010
Greek Chicken - Ready in Minutes!
***Oh my...This dish is enough to make your heart flutter. The colors...the presentation...the fact that it's super easy! Dinner doesn't get much better than this. The flavors of the feta cheese and kalamata olives will take you straight to Greece, and you'll be sad when you take that last bite...I promise!
This recipe is so fantastic, that I've made it twice already! The mint adds a wonderful freshness that really sends the flavors over-the-top. A simple salad of tomato, feta, olives, mint and olive oil are mixed together first, and then that is allowed to marinate and get happy while the chicken cooks. A quick saute of the chicken, and you're almost done. Just add the salad over the top, and dinner is served!
I can always count on Martha Stewart's online recipe collection when I need a fast and easy weeknight dinner option. She really hit a homerun here...You'll LOVE this dish!
Bon Appetit!***
This recipe is so fantastic, that I've made it twice already! The mint adds a wonderful freshness that really sends the flavors over-the-top. A simple salad of tomato, feta, olives, mint and olive oil are mixed together first, and then that is allowed to marinate and get happy while the chicken cooks. A quick saute of the chicken, and you're almost done. Just add the salad over the top, and dinner is served!
I can always count on Martha Stewart's online recipe collection when I need a fast and easy weeknight dinner option. She really hit a homerun here...You'll LOVE this dish!
Bon Appetit!***
Greek Chicken Cutlets
Source: http://www.marthastewart.com/recipe/greek-chicken-cutlets
Serves 4
1 pint cherry or grape tomatoes, halved
1/3 cup pitted Kalamata olives4 ounces feta cheese, coarsely crumbled (1 cup)
1/2 cup fresh mint leaves2 to 3 tablespoons olive oil
Coarse salt and ground pepper1 1/2 pounds thin chicken cutlets (about 8)
1.In a medium bowl, combine tomatoes, olives, feta, mint, and 1 tablespoon oil. Season with salt and pepper; set aside.
2.Heat a grill pan over high; brush lightly with oil. Season cutlets with salt and pepper. Cook, working in batches as necessary, until chicken is cooked through, 1 to 2 minutes per side. Transfer to a plate, and cover with aluminum foil to keep warm. Top chicken with tomato mixture, and serve.
Posted by Celeste at Monday, March 22, 2010 1 comments Links to this post
Labels: Chicken, Dinner, Top-Rated Recipes
Sunday, March 21, 2010
Caramel-Peanut-Topped Brownie Cake
***After just one look through Dorie Greenspan's Baking: From My Home to Yours, this Caramel-Peanut-Topped Brownie Cake stands out even among the other scrumptious desserts. The full-page photo immediately sold me on this cake...Gooey caramel dripping down the sides, a perfectly chocolate brownie cake base, and caramel-covered peanuts strategically placed on the top...It's enough to make you drool, alright!
I was in search of the perfect birthday cake for my sis-in-law, and this looked and sounded great. It was a something different, and it definitely didn't disappoint! Creamy vanilla ice cream just put it over the top. With the ice cream, it tasted a lot like a Peanut Buster Parfait from Dairy Queen.
If you're worried about making your caramel from scratch, you shouldn't be. Dorie is so wonderful about giving clear and concise instructions...She really takes the guesswork out of baking. Just be sure to watch the caramel while it is cooking, because once it starts to change color, it happens fast! The minute you walk away will be the minute that it's ready! Her suggestion of checking the color on a white plate works great. Don't be nervous...you can definitely do it!
Bon Appetit!***
Caramel-Peanut-Topped Brownie CakeSource - Baking: From My Home to Yours by Dorie Greenspan
For the brownie cake:
1 cup all-purpose flour
1 tsp. baking soda
¼ tsp. salt
8 tbsp. unsalted butter, cut into 8 pieces
5 oz. bittersweet chocolate, coarsely chopped
3 large eggs
½ cup packed light brown sugar
¼ cup sugar
3 tbsp. light corn syrup
½ tsp. vanilla extract
For the topping:
2 cups sugar
½ cup water
1½ tbsp. light corn syrup
2/3 cup heavy cream
2 tbsp. unsalted butter, at room temperature
1 cup salted peanuts
Center a rack in the oven and preheat the oven to 350° F. Butter an 8-inch springform pan, dust the inside with flour, tap out the excess and line the bottom of the pan with a piece of parchment paper. Place the springform pan on a baking sheet.
To make the cake, combine the flour, baking soda and salt in a small bowl; whisk together and set aside. Add the butter and chocolate to a heatproof bowl set over simmering water. Heat, stirring occasionally, until the ingredients are just melted – do not let them get so hot that the butter separates. Remove the bowl from the heat and set aside.
In a large mixing bowl, whisk together the eggs and sugars until well blended. Whisk in the corn syrup, followed by the vanilla. Add in the melted butter and chocolate mixture, and whisk until combined. Gently whisk in the dry ingredients, mixing only until they are just incorporated. The batter should be thick, smooth and shiny. Pour the batter into the prepared pan and jiggle the pan a bit to even out the batter.
Bake for 40-45 minutes or until a thin knife inserted in the center comes out almost clean. Transfer the pan to a rack and cool for 15 minutes, then run a thin knife between the cake and the pan and carefully remove the sides of the springform. The cake may have puffed up during baking, but don't be concerned if it develops a crater in the center while cooling. Allow to cool to room temperature. When the cake is totally cool, invert it, remove the base of the pan and peel off the parchment paper. Turn the cake right side up onto a serving platter.
To make the topping, combine the sugar, water and corn syrup in a medium heavy-bottomed saucepan, stirring just to combine the ingredients. Place the pan over medium-high heat. Heat, without stirring, until the caramel turns deep amber, 5 to 10 minutes depending on the size of your saucepan and the intensity of the heat. As the sugar is caramelizing, wipe down any splatters on the sides of the pan with a pastry brush dipped in cold water. To test the color of the caramel, drop a bit onto a white plate. Don't be timid about the color – if it's too pale, it won't have much flavor.
Lower the heat a bit and, standing back from the saucepan, add the cream and butter. When the spatters are less vehement, stir to calm down the caramel and dissolve any lumps. Stir in the peanuts and pour the caramel and peanuts into a 1-quart Pyrex measuring cup or a heatproof bowl.
You will have more caramel than you need, but you want to get all of the peanuts onto the cake, so spoon all of the peanuts out of the hot caramel and onto the top of the cake. Pour or spoon enough caramel to cover all the nuts, drizzling a bit over the edges of the cake for presentation. Allow the topping to set at room temperature, about 20 minutes, before serving. Keep the leftover caramel at room temperature and save for another use.
Posted by Celeste at Sunday, March 21, 2010 7 comments Links to this post
Labels: Cakes, Desserts, Top-Rated Recipes
Friday, March 12, 2010
Penne a la Betsy...Food for a Broken Heart
Me & GrannyRene...Having fun in the kitchen.
***This post is going to be difficult for me. I'm writing this entry at the end of what has easily been one of the hardest weeks I've ever been through. On the morning of March 5th, I found out that my GrannyRene had been rushed to the hospital. She passed away later that afternoon. It was so unexpected. We had to say goodbye way too early, and my heart is broken.
My GrannyRene was one of the strongest people that I've ever known...Strong in every way. She was so kind and loving...and was incredibly involved in the community...especially her church. She volunteered so much of her time, because she truly enjoyed helping people and doing her part to make this world a little brighter. She's taught me so many things through the years, including the fact that we have to take one day at the time...and that's exactly what I'll have to do. I know she's smiling down on me right now.
GrannyRene had a knack for making everyone feel loved...and you were richly blessed to have her in your life. She was beautiful, classy, and a tremendous cook! In fact, she was famous around here for her Chicken & Dumplings. You may even remember THIS POST, where I shared her recipe. The hand-written recipes and photos from that particular post are things that I will treasure forever. She was so proud of this food blog and told so many people about it. She was so excited when she read that post and saw those photos.
I do find peace in the fact that she's with my grandfather, Papa, right now. They loved each other so much, and I can't imagine how happy they are to finally be together again. I have also found that getting back into the kitchen has been soothing...it puts me at ease and reminds me of GrannyRene.
This is the dish that got me back into the kitchen. Cooking can calm the mind, and making this pasta did just that. It was just what I needed...comfort food to the highest degree. It's easy to put together, and the taste is truly outstanding. The creamy tomato sauce is brightened by the fresh basil and parsley. This is a meal that feels luxurious and would be a great dish for a dinner party...easy, stress-free, but sure to impress.
I'm so blessed to have such wonderful memories of my GrannyRene...I know she'll continue to live on in our hearts forever. I love you, GrannyRene...
Until next time...Bon Appetit!***
Penne a la Betsy
Source: The Pioneer Woman
¾ pounds Penne Pasta
1 pound Shrimp
3 Tablespoons Butter
3 Tablespoons Olive Oil
1 whole Onion (small)
2 cloves Garlic
½ cups White Wine
1 can Tomato Sauce (8 Oz)
1 cup Heavy Cream
Fresh Parsley, to taste
Fresh Basil, to taste
Salt & Pepper, to taste
Cook the penne pasta until tender-firm, also known as al dente.
Peel, devein and rinse (under cool water) 1 pound of extra large shrimp. Heat about 1 tbsp. butter and olive oil in a skillet. Add the shrimp and cook for a couple minutes until just opaque. Do not overcook them. Remove from heat and let cool for a few minutes. Now, put the cooked shrimp on the cutting board and pull off the tails. Chop the shrimp into bite –sized pieces and set aside.
Finely dice one small onion. Mince two cloves of garlic.
In a large skillet heat 2 tablespoons of butter and 2 tablespoons olive oil. Add the garlic and onion and sauté, stirring occasionally. After the garlic and onions have cooked a bit add your white wine. Let the wine evaporate for a few minutes, stirring occasionally. If you would rather not use wine, you can use low-sodium chicken broth instead (about ½ cup).
Now add an 8-ounce can of plain tomato sauce. Stir well until combined. Then add 1 cup of heavy cream. Continue stirring. Turn heat down to low and let simmer.
Now chop your herbs, about a tablespoon of chopped parsley and about the same amount of chopped basil, or if you're feeling very proper, chiffonaded.
Now add your chopped shrimp back into the tomato cream sauce. Give it a stir and add salt and pepper to taste. Throw in your herbs and stir until combined. Finally add your cooked penne pasta and give it a good stir.
Posted by Celeste at Friday, March 12, 2010 14 comments Links to this post
Labels: Comfort Foods, Dinner, Italian Cuisine, Perfect Pastas, The Pioneer Woman, Top-Rated Recipes
Subscribe to: Posts (Atom)


text:
Adult Swim
Adult Swim's Total Day Delivery ranked as basic cable's #1 network for the week among adults 18-24, 18-34 & 18-49 and men 18-24 & 18-34. Total day delivery grew across the board vs. the same time period in 2011 - adults 18-24 by 8%, adults 18-34 by 3%, adults 18-49 by 3%, men 18-24 by 1%, men 18-34 by 4% and men 18-49 by 4%.
Adult Swim ranked among the top 5 basic cable networks in Prime Time (Broadcast definition) delivery of adults 18-34. Compared to the same week in 2011, Prime delivery increased across all adults 18-34, 18-24 & 18-49 and men 18-24 & 18-49.
The premiere of Adult Swim's original series Robot Chicken (Sunday, 12 a.m.) was #1 in its time period among men 18-34/18-49, growing by double and triple digits across the board vs. the same time period year ago. The season finale of Superjail (Sunday, 12:15 a.m.) also increased delivery across the board vs. last year's time period.
A new episode of NTSF:SD:SUV:: (Thursday, 12:15 a.m.) was #1 in its time period with all key adults and men 18-24 & 18-34.
Sunday's premiere of the acquired series, The Cleveland Show (10:30 p.m.) was #1 in its timeslot with adults 18-24 & 18-34 and all key men, while growing vs. year ago with all key adults.
Adult Swim programming accounted for 13 of the top 50 telecasts on basic cable for the week with adults 18-34 and 17 of the top 50 for men 18-34, both more than any other network.
Cartoon Network
Cartoon Network scored as the #1 network for all boys 2-11, 6-11 & 9-14 on all TV on Monday Night (7-9 p.m.), and the #1 network among boys 2-11 & 6-11 on Wednesday Night (7-9 p.m.).
An all-new episode of Regular Show (Monday, 8 p.m.) ranked as the #1 telecast of the week among boys 9-14 on all TV, #1 telecast of the day among kids 9-14 and boys 6-11 & 9-14, and #1 in its time period among all key kids and boys. Adventure Time (7:30p) also ranked #1 in its timeslot among kids 6-11 & 9-14 as well as all boy demos.
Cartoon Network's premiere of Smurfs Christmas Carol (Wednesday, 7:30 p.m.) ranked as the #1 telecast of the day among boys 6-11, while #1 in its time period among kids 2-11 & 6-11, and boys 2-11. The premiere was also up by mostly double digits across the board vs. the same time period year ago. Immediatley afterward, action-adventure hit Dragons: Riders of Berk (8 p.m.) ranked #1 in its time period among all boys 2-11, 6-11 & 9-14.
The annual presentation of the holiday classic Dr. Seuss's How The Grinch Stole Christmas (Wednesday, 7 p.m.) ranked #1 in its time period among kids 2-11 and boys 2-11 & 6-11. Average delivery also increased vs. the same time period last year - kids 2-11 delivery grew by 11%, kids 6-11 by 5%, boys 2-11 by 1% and boys 6-11 by 1%.
It was another outstanding week for The Big Bang Theory on TBS as the series accounted for 14 of basic cable's Top 15 sitcom telecasts with total viewers, 12 of the Top 15 with adults 18-34 and all 15 of the Top 15 with adults 18-49. The Big Bang Theory is on track to finish 2012 as basic cable's #1 acquired series.
Last week, TBS's CONAN delivered 960,000 total viewers, 261,000 adults 18-34 and 567,000 adults 18-49. When compared to the same week last year, total viewers were up 20%. For the quarter-to-date, CONAN is up +10% among total viewers and +1% among adults 18-49, compared to Q4 2011.
Last Monday, TNT's Rizzoli & Isles ranked as basic cable's #1 program for the day with 4.8 million viewers, up a remarkable 38% compared to the prior week. The hit crime drama also brought in 1.1 million adults 18-49, up 13%, and 1.4 million adults 25-54 up 9%.
TNT's hit caper series Leverage followed with more than 2.4 million viewers, up 26% over the prior week, with 636,000 adults 18-49 and 825,000 adults 25-54.
truTV's breakout hit Hardcore Pawn (Tuesday at 9 p.m.) drew more than 2.5 million fans last week and ranked as basic cable's #1 unscripted program in the timeslot with key adult and male demos. Hardcore Pawn led truTV to land among basic cable's Top 10 networks for the night with adults 18-49 and men 18-49.
South Beach Tow (Wednesday at 9:30 p.m.) garnered more than 1.7 million viewers, ranking among basic cable's Top 5 programs in its timeslot with key demos. South Beach Tow also scored double-digit time-period growth and dropped the timeslot's median age (37) by five years compared to last year.
The acquired hit Wipeout (Sunday at 8 p.m.) scored remarkable growth, with double-digit increases across the board compared to the same timeslot last year. The show also shaved 12 years off the timeslot's median age, reducing it to only 29.
NBA TV's five NBA Fan Night presented by Sprint telecasts this season are averaging 482,000 total viewers, up 6% compared to last season (455,000 total viewers for 22 telecasts).


text:
by Yaron Weitzman | @YaronWeitzman
Three years ago, while working out with renowned physical therapist Alex McKechnie in Vancouver, Baron Davis was introduced to an individual whose mere presence turned the NBA All-Star into a quizzical fanboy, similar to the ones that he frequently encounters himself. This individual, however, was not an NBA legend, nor someone who could claim to offer Davis any sort of guidance on running the pick-and-roll or defending smaller and quicker opponents. In fact, the conversation between the two had almost nothing to do with anything that takes place on a basketball court.
What Sean O'Brien was able to talk to Davis about was video games. As a veteran of the industry, O'Brien was able to answer all the questions that Davis was burning to ask. Where was industry heading? What markets had yet to be tapped? What features did players look for in games? A friendship had begun.
For the next year-and-a-half, the two frequently spoke, throwing gaming ideas back-and-forth. Eventually, the friends decided to start a company, 5 Balloons Interactive, with the goal of presenting celebrities a new marketing opportunity: the ability to promote their individual brands through digital games. A year-and-a-half later, Getting Buckets, the company's first game, was released.
"There's really no kind of fun, immediate game that you can play that involves your favorite athletes," Davis says. "What Sean and I wanted to do was to really create a gaming app that would connect fans with athletes."
Adds O'Brien: "The first vision that Baron had was to create something accessible. He didn't want to do a simulation game where there are a lot of controls that you have to try to master. He wanted casual fans to be able to pick up their iPhone or iPad or iPod Touch and just be able to play and interact with the athlete. And we really felt there was an opening in mobile gaming."
The goal of the game, which was designed as a 3-D, "endless-runner," is for users to collects as many "buckets" as they can while dribbling through the game's different levels (East Coast, West Coast, South Beach and Hoosier Country) with whichever basketball player they choose to play with. The athletes—Steve Nash, Rajon Rondo, Brandon Jennings and Candace Parker—were all handpicked, and recruited by Davis. Social media savvy and on-the-court creativity were the required credentials.
But while Davis' influence on the look and feel and features of Getting Buckets is unmistakable, all his input would have been for naught if it weren't for the 40-year-old O'Brien's expertise. As a former employee of EA Sports, where he worked as a designer and producer on both the NBA Live and NCAA Basketball series, and an entertainment prouder for the past 15 years, O'Brien had both the technical talent and video game acumen to bring the vision that he and Davis had, a mobile game routed in the culture of basketball, to life. And being a former Division II basketball player—O'Brien played for former Toronto Raptors head coach Jay Triano at Simon Fraser University—O'Brien has the basketball eye capable of targeting the rarities of an athletes game, and filling his or her avatar with that personality.
"Sean is the man and I'm the connector," Davis says. "The ideas for the game came from both of us, but, because he's the expert, I rely on him to determine what's best. And because of my social media background, it was just a natural fit."
And the start of a collaboration that O'Brien says wouldn't have worked with anyone else.
"Baron is not just a figurehead throwing money at this," O'Brien says. "He's extremely bright and creative, and he's bringing a lot of design ideas to the table, along with his marketing ideas. He's fully committed, and is really the only athlete that I would consider doing this with."
Getting Buckets is now available for download on iTunes. You can watch the game's trailer in the video above.


text:
Welcome to our online shop and craft site
Coronavirus update!
We are still here and orders are being posted each day - so you can feel confident for the time being that orders will reach you - stay home and stay safe Joanna x
Have a look at the Online Craft Shop section of the site, there are so many varied products that might be just what you are looking for and our supplies are all offered with free postage and packing or shipping worldwide with a minimum spend of £15. We have so much more to add and increase the selection every month.
It's worth have a browse round the website - from special offers to videos, galleries and loads of different products - why not while away an hour or two finding some inspiration!
Happy Crafting!
What's new?
There are so many fabulous crafty designs and items being created this year, our website has a constant flow of new things for sale and new ideas.
We are always open to suggestions from you all, whether for new products, new ideas for our Signature dies range or anything else!
We continue to work hard on getting post out as quickly as we can and we are very grateful for all your orders, thank you so much!


text:
The Power of Women Working Together
List of winners for the 2021-2022 academic year posted on the website.
Many students contact us with the same questions. For your convenience we have included the answers to those questions in the Frequently Asked Questions section. Please review the FAQs before contacting the Fellowships Program Manager.
Question: Do I have to belong to the Canadian Federation of University Women (CFUW) in order to be eligible to apply for CFUW Fellowships and Awards?
NO, but you do have to be a Canadian Citizen or Permanent Resident in Canada.
Question: Can I apply if I am an International Student (not a Canadian Citizen or Permanent Resident) studying in Canada with International Student Visa status?
NO, you are not eligible to apply for CFUW Fellowships and Awards but you may be eligible for the CFUW Dr. A. Vibert Douglas International Fellowship. The application information for this Fellowship is posted on www.cfuw.org.
Question: If I am a Canadian Citizen studying outside of Canada, can I apply for CFUW Fellowships and Awards?
YES, there are several CFUW Fellowships and Awards for candidates studying outside of Canada.
Question: If I am not enrolled in a Masters or Doctoral program,must I be already accepted into the proposed program and place of study, at the time of application?
YES. A copy of the official "letter of acceptance" into the program of proposed study from the host institution MUST BE INCLUDED with your CFUW Fellowship or Award application, if you are not enrolled at the time of application. This document will not be accepted after the November 9 postmarked deadline date.
Question: If I hold a scholarship from another funding organization, does CFUW have policy that restricts my application for CFUW Fellowships and Awards?
NO, there are no CFUW policies that restrict your applications for CFUW Fellowships and Awards.
Question: If I am searching for scholarships to fund my undergraduate degree, can I apply for CFUW Fellowships and Awards?
NO, CFUW Fellowships and Awards are for Masters and Doctoral Programs. An applicant pursuing her undergraduate degree may be eligible to apply for scholarships funded and administered by CFUW Clubs in her region. Contact the CFUW Fellowships Program Manager for more information.
Question: Can men apply for a CFUW Fellowship or Award?
NO, CFUW Fellowships and Awards Program is an Affirmative Action Program as provided for in the Constitution of Canada. Eligibility for these fellowships and awards is restricted to women.
Question: Can I ask the same three referees to support my applications for several CFUW Fellowships and Awards?
Question: Are filing fees ever waived?
NO, CFUW is entirely self-funded by its members and is a not-for-profit organization.
Question: Can I apply ONLINE?
Question: When are the winners selected and do I receive notification?
The winners are selected in April and contacted by the CFUW Fellowships Chair. Only the winners are contacted and all other candidates can check this website in May for the results of the Competition.
Canadian Federation of University Women (CFUW)
331 Cooper Street, Suite 502
Ottawa, Ontario, K2P 0G5
Toll-free in Canada & the US: 1-888-220-9606; Phone: 613-234-8252 ext. 104
Email: email@example.com; firstname.lastname@example.com


text:
if the first two days of 2012 are any indication of what the rest of the year is gonna look like, then i need to prepare for two things:
The World Series of Poker & a seriously sore toosh!
i've played in three games and have won two...i've already equaled my number of wins from 2011. i know what you're saying, "you should play all day/everyday." well let me tell ya, i would be parked by that felt table if my booty didn't start aching 20 minutes into the game. i've dealt with bleacher butt before but this is on a whole new level! i'm talking about 'what what in the butt'!!!
you gotta endure the pain to fully enjoy the pleasure...so bring on the cards
and the painkillers!
here's to a great 2012!!! #winning


text:
or make 4 interest-free payments of
$8.50 AUD fortnightly with
More info
Jetset to the jurassic land of dinosaurs. This cushion is made from a soft cotton with bright and bold print panels. Perfect for the bed or couch in a cluster or on it's own.
Based and designed in Melbourne. Little Wolff collaborates with local and international designers. All digitally printed.
Cushion cover is made from 100% Cotton and measures 50 x 50cm.
Covered zip opening.
Option of Cushion cover only.
Cushion cover and 100% PET fibre Eco friendly Insert included. 100% non-allergenic.
To ensure the lifespan of insert we recommend that they are hand washed and line dried.
Please note that product colours may display differently on screen.


text:
|Product code
|300 lt
|82 cm
|33 cm
|122 cm
|Cover Diameter
|30 cm
300 Lt Polyethylene Square Warehouse Features
- Food compliance is certified.
- It has a flexible structure due to its low density.
- It is not affected by sunlight. UV additive.
- No taste, odor change occurs.
- Hygienic, does not contain carcinogenic substances.
- It does not react with chemicals and has excellent chemical durability.
- It is economical and long lasting.
- The monoblock is a single piece and does not have weld, rivet, spot, solder joint.
- Because it is nonporous and resistant to absorption, it does not hold algae, fungus and mildew do not occur.
- It does not rot, it does not crack, it does not tilt, it does not break down and it does not deteriorate.
- It is resistant to bumps.
- Corrosive materials are resistant to oil and petroleum, pests, sea salt and other environmental factors.
300 LT Polyethylene Square Water Depot
- Brand: As Su Deposu
- Product Code: ASK300
- Availability: In Stock
Condition: New
- Including Tax: 346.00USD


text:
Why You'll Pay to Watch Ads on the iPhone and iPad
The new iAds that Apple (AAPL) launched yesterday are interesting. But they had better be: You're going to pay to see them.
This isn't news, exactly. But consider it a reminder: AT&T's (T) switch from an unlimited data plan to a tiered model means that everything iPad and iPhone users stream down to their devices via the carrier's wireless network comes at a cost, measured in bytes.
So: Streaming a video to your iPad from Netflix (NFLX) or Hulu will chew up a lot bandwidth, and downloading an app will chew up much less. And clicking on an "in-app" ad, like the kind Apple is rolling out with iAd, will cost something, too: Each time you click on an app's ad, the app makes a real-time call to Apple, which serves up a download.
How much will that cost you, bytewise? Web video producer Eric Spiegelman guesstimates that a tricked out iAd like the Nissan spot that debuted yesterday could require five megabytes.* Translate that into AT&T's data plans, and you're looking at something like six cents to 40 cents worth of data per iAd, depending on the package.
So not a bank-breaker! And again, no different than anything else you download to your iPhone or iPad. But maybe, depending on your use case and data plan, worth thinking about before you click.
If the idea of spending any of your precious data budget on ads really rankles you, by the way, you do have a choice. Either make sure you're connected to a Wi-Fi connection before you click, or go completely offline, and you won't see the iAds at all.
*Anyone else want to weigh in on the size of iAd downloads? Happy to hear your thoughts.


text:
Use Zerust ICT Yellow Bags to
protect ferrous metal components like machined parts, engines and tools or any
ferrous metal item you want to protect from rust and corrosion. The Zerust ICT
Yellow Ferrous Films that the bags are made out of is the most widely used
Zerust packaging product and has proven its performance with thousands of
customers worldwide for over 20 years. Protect any iron, steel, or cast iron
metal on items such as electronics, tools, hardware and spare parts.
Zerust ICT Ferrous Film Bags are an
easy-to-use packaging solution that contains the proven Zerust ICT corrosion
inhibiting technology. Just place your clean item in the bag and zip
closed for protection of up to 5 years. The Zerust VCI Poly Bags bags provide
protection against corrosion damage for ferrous metals, such as iron, steel or
cast iron, in typical storage conditions.
Size: 12 in x 18 inThick: 4 mil


text:
Miami Has an Electric Nervous System (Dec, 1955)
Miami Has an Electric Nervous System
CAPTAIN Verner Smith pushed the attitude lever and nosed the blimp down closer to the water. Now it was within 50 feet of choppy Biscayne Bay off Miami, Fla., so close that the trailing landing lines of the huge powered balloon almost touched the water. A loudspeaker in the cabin blared: "This is Miami Communications, Vern. What's happening?"
The sun-browned pilot pulled a control and the blimp nosed up again. "He's still struggling. Trying to hold onto his boat. Get the patrol boat here—fast."
The loudspeaker talked again. "The police boat radios that he's coming over. Stay directly overhead. He'll sight on you."
Guided by the blimp, a patrol boat of the Miami Police Department scudded to the rescue scene.
Blimps and even horses mount two-way radios in Miami, a city with an electronic nervous system that is as complete as the latest in modern science can make it. The Magic City was first in the nation with a unified system to handle all city communications—fire calls, police intercom, hurricane warnings, Civil Defense and the routine business of running a metropolis.
Miami's head start is largely due to cheerful, energetic Ben Demby, a radio-electronics enthusiast who keeps his Miami Communications Department equipped with the latest advances in technology.
He's been so successful that, as one observer remarked, "Miami offers a preview of what the average city may expect in 10 or 20 years."
At every stop-light intersection in Miami you'll find an emergency telephone that allows you to summon fire trucks or an ambulance in jig time. The system, suggested by Ben Demby to Bell Telephone and installed first in Miami, is duplicated in only 10 other American towns.
Demby's Communications Department, together with Detroit and the FBI, was the first to employ Speedphoto machines to flash pictures, fingerprints and information about dangerous criminals across the country.
Ben Demby, against the advice of FCC experts, was first to employ high-frequency radio in everyday use. Today, the six-foot antennas that are the mark of the old 30-megacycle radios are slowly disappearing from squad cars all over the nation. In their place appear thin little wands no longer than a man's hand—the antennas of high-frequency radios that give better, surer reception.
In the nerve center of the Miami Communications Department, a two-story stucco building beside Biscayne Bay, the blare of a police loudspeaker mingles with the sound of Teletypes and card-sorting machines. The crackle of an acetylene torch and the whir of a drill float in from the adjacent electronic shop. An attractive red-haired girl dispatcher in a soundproof glass booth tries to keep calm as excited squad-car police give a running account of a shooting and the chase for the gunman.
Next to her, in a similar booth, a soft-spoken girl dispatcher directs a squad car to a child who has just been hurt.
Banks of files along one wall hold cards with information on the 300,000 cars registered in Dade County. And spotted through all the files are thousands of pink cards— reports on all the stolen cars in the United States.
An electronic card sorter that speeds through cards at the rate of 700 per minute starts a check on used cars newly registered. Moments later a card is flung out of the machine. It's a duplicate of a pink card placed in the sorter—a 1955 blue Cadillac convertible stolen in southern Georgia and sold to a dealer in Miami.
"With this latest equipment," says Demby, "we can often catch a hit-run driver before he's able to remove the blood and dent from his fender—even when we know only the last three digits of his license. In an hour, given those few digits and a description of the car, we can narrow the list down to a handful of suspects."
Another valuable crime-fighting tool in the center is the Speedphoto machine—an instrument that links Miami with 25 other major cities and the FBI. In Detroit, a 17-year-old boy ran amuck, killed his mother and sister, then headed south. He landed in Miami and was picked up by Miami police on a minor charge. Although the police had no inkling of his Detroit crime, they put his picture on the wire as a matter of routine. The boy was identified by Detroit police and he was booked on suspicion of murder within the hour. If police had depended upon air mail, the boy would have been released before it became possible to identify him.
Just a few steps away from the Speed-photo darkroom is a mobile TV unit. Weighing only a few pounds, the compact camera with its tripod can be carried in one hand, set up anywhere, and linked to a "watching station."
Police receive a "hot" telephone tip that a bank robber wanted for murder is headed for Miami. It's believed he'll stay at a certain hotel near the business district. Communications men hide the TV camera behind the hotel desk and string a coaxial cable to a room above where detectives gather around an ordinary television receiver.
Two nights later, the murderer checks in. The detectives alert headquarters by walkie-talkie, a call goes out to a cruising squad car and police nab the criminal as he opens the door of his room. But the mobile TV camera is not just a police tool. Each year it's set up on the grounds of the city golf course to give sports reporters in the clubhouse a stroke-by-stroke account of the Miami Open Tournament. A wide-angle shot of the golfer and the turf ahead turns into a close-up as the Zoomar lens goes into action and catches the almost-spent ball bouncing on the green. The camera is used as effectively for traffic checks and the relay of election returns.
Fire Phones
Of all the features of the Communications Department, Demby is perhaps proudest of the emergency telephones installed at all traffic-light intersections.
The moment you pick up the receiver of one of them a light flashes on the fire-department board and you're talking to the fire dispatcher. If you're reporting a fire, he gets the exact address and nature of the blaze from you, looks up at a chart of the city, and engages a plug that sets one, two or a fleet of trucks rolling to the scene in 30 seconds.
The telephone system, inaugurated by Miami in 1952, replaces the familiar red fire box still used in all but ten American cities. According to Demby, the old system took three minutes longer to alert the nearest fire station — enough time for a minor fire to turn into a major one.
Miami mounts two-way radios on all rolling pieces of fire equipment. Once at the scene of the blaze, fire-department officers direct operations not by shouted commands but by radio. Smoke-eaters rescuing fire victims inside the blazing building carry walkie-talkies to get instructions or summon more help to squelch flames or cut through a wall.
The Network Begins
The city's complete communications network began in 1934 when Ben Demby was placed in charge of the newly formed police communications system.
But the first radios he purchased and installed in the police cars crackled, buzzed and were undependable. During the month of August, especially, the ionosphere played strange tricks on policemen operating the 30-megacycle radios. A call would go out to a cruising squad car, but the sheriff's office in Hartford, Conn., would answer. The message would then be relayed to Hartford, which would contact the Miami patrolman who couldn't hear his own dispatcher.
Demby was convinced that a frequency of 155 megacycles would solve his problems. No one was using over 100 megacycles at the time, and the FCC assured him his dream was impractical.
He proceeded to rip out the old radios and install 155-megacycle sets built to his design by Communications technicians. They worked fine. Later, the same opposition and the same success were repeated when Demby's department, now expanded to cover all city communications, went to 460 megacycles.
Teletypes and Radio
Nine Teletype machines, some of them operating on circuits to municipal "clients" as well as to local police and fire stations, are located in the headquarters of the Communications Department.
Two radio dispatchers in Communications headquarters operate the county and suburban radio systems. These operators are in addition to the regular Miami operations: A telephone switchboard and a radio dispatcher in the fire department, a radio-dispatching system at police headquarters and a switchboard in City Hall that links all phones in the city government.
In touch with surrounding communities, the center also has direct contact with several agencies.
Pick up a telephone marked "Coast Guard" and an officer at the local Coast Guard headquarters answers immediately. Lift another receiver and a phone rings at the Strategic Air Command post in Marietta, Ga., 550 miles away. A phone call reporting bombers approaching Miami would alert the nation in 12 seconds. Meanwhile, switches in the Miami Communications Center would be pulled to set air-raid sirens sounding all over the city. Miami would start broadcasting messages over an emergency radio-communications frequency that reaches out over a 500-mile radius.
The emergency communications network, invaluable in air raids, was set up to counter havoc that Miami is familiar with —hurricanes. In touch by Teletype and radio with the United States Weather Bureau, Demby's department must alert the city when a hurricane veers too close.
When the alert is sounded, it's also time for the Communications Center to secure itself against wind and flood. It does this by packing bag and baggage, IBM machine and Teletype, and transferring its entire operation to a stand-by center on the third floor of the Dade County Courthouse. The job takes 30 minutes and is accomplished without a break in communications.
Meanwhile, a bus converted into a rolling communications headquarters is heading for a flooded area on the outskirts of the city, ready to direct evacuation operations. Equipped with all ten radio circuits, telephones and a Teletype, it is the third line of defense in case of emergency. For it alone could function as a complete communications center for the Miami area.
In certain emergencies, other than hurricanes, the radio-equipped Goodyear blimp that winters for six months in Miami could serve as a radio relay and connect Miami patrol cars with cities as far away as Day-tona Beach, 250 miles up the peninsula.
Last Resort
The last communications center — the fourth line of defense—is Ben Demby's personal automobile. Its instrument panel would make a Detroit designer turn handsprings of delight. Demby's array of instruments, however, has a practical purpose. By lifting various receivers and turning certain dials, he can communicate by radio with all branches of his department —wherever he may be around Miami. All the radios in the department can also contact others on the same band. So radio communications do not depend solely on one or two transmitting towers.
Demby, who has been building up the city's nervous system for over 20 years, is still convinced that improvements can be made. Once again he may raise the frequencies of city radios. Soon microwave television circuits will be set up. The projected city jail and city hall will naturally be equipped with the latest closed-circuit TV. In 1956 a location detector for mobile units will be installed. After that? "If it's invented and we need it, we'll get it," says Demby. "A modern city needs all the help that electronics can give."