ngfTitlecommand description
TQConnection*fUndoundo action
Long_t*fUndoArgsundo values
static Bool_tTQObject::fgAllSignalsBlockedflag used for suppression of all signals
Class Charts
Inheritance Inherited Members Includes Libraries
Class Charts
Function documentation
void Init(const char* cl, void* object, const char* redo, const char* undo)
 common protected method used in several constructors
TQCommand(const char* cl = 0, void* object = 0, const char* redo = 0, const char* undo = 0)
 Constructor.
 Input parameters:
 1. clname - class name.
 2. obj - an object
 3. redo - method or function to do/redo operation
 4. undo - method or function to undo operation
 Comments:
 - if either clname or obj is NULL that means that redo/undo is function
 - to specify default arguments for redo/undo method/function
 '=' must precede to argument value.
 Example:
 TQCommand("TPad", gPad, "SetEditable(=kTRUE)", "SetEditable(=kFALSE)");
 - undo method can be same as redo one. In that case undo parameter
 can be omitted.
 Example:
 TQCommand("TPad", gPad, "SetFillStyle(Style_t)");
TQCommand(TObject* obj, const char* redo = 0, const char* undo = 0)
 Constructor.
 Input parameters:
 1. obj - an object
 2. redo - method or function to do/redo operation
 3. undo - method or function to undo operation
 Comments:
 - to specify default arguments for redo/undo method/function
 '=' must precede to argument value.
 Example:
 TQCommand(gPad, "SetEditable(=kTRUE)", "SetEditable(=kFALSE)");
 - undo method can be same as redo one. In that case "undo"
 can parameter be omitted.
 Example:
 TQCommand(gPad, "SetFillStyle(Style_t)");
TQCommand(const TQCommand& com)
 Copy constructor.
~TQCommand()
 dtor.
TQCommand * GetCommand()
 Return a command which is doing redo/undo action.
 This static method allows to set undo parameters dynamically, i.e.
 during execution of Redo function.
 Example:
 For redo actions like TGTextEdit::DelChar() it is not possible to
 know ahead what character will be deleted.
 To set arguments for undo action ( e.g. TGTextEdit::InsChar(char)),
 one needs to call TQCommand::SetUndoArgs(1, character) from
 inside of TGTextEdit::DelChar() method, i.e.
 TQCommand::GetCommand()->SetUndoArgs(1, somechar);
void Delete(Option_t* option = "")
 If "opt" is not zero delete every merged command which option string is
 equal to "opt". If "opt" is zero - delete all merged commands.
Bool_t CanMerge(TQCommand* c) const
 Two commands can be merged if they can be composed into
 a single command (Macro command).
 To allow merging commands user might override this function.
void Merge(TQCommand* c)
 Add command to the list of merged commands.
 This make it possible to group complex actions together so an end user
 can undo and redo them with one command. Execution of TQUndoManager::Undo(),
 TQUndoManager::Redo() methods only invokes the top level command as a whole.
 Merge method is analogous to logical join operation.
 Note: Merge method invokes redo action.
Long64_t Merge(TCollection* , TFileMergeInfo* )
 Merge a collection of TQCommand.
void Add(TObject* obj, Option_t* opt)
 Add command to the list of merged commands.
 Option string can contain substrings:
 "compress" - try to compress input command
 "radd" - execute redo action of input command
 "uadd" - execute undo action of input command
Bool_t CanCompress(TQCommand* c) const
 By default, commands can be compressed if they are:
 - equal
 - setter commands
 More complicated commands might want to override this function.
void Compress(TQCommand* c)
 Compress command. Compression is analogous to arithmetic "addition operation".
 Note:
 - The compressed command will be deleted.
 - Execution Compress method invokes Redo action with new redo arguments
 inheritied from compressed command.
 More complicated commands might want to override this function.
Bool_t IsEqual(const TObject* obj) const
 Equal comparison. The commands are equal if they are
 applied to the same object and have the same Redo/Undo actions
 More complicated commands might want to override this function.
Bool_t IsSetter() const
 Returns kTRUE is command if Redo is the same as Undo function
 and is the setter action.
 By default, all functions with names like "SetXXX" or "setXXX"
 considered as setters. Another type of setters are Move, Resize operations
 More complicated commands might want to override this function.
void SetArgs(Int_t narg, ...)
 Set do/redo and undo parameters. The format is
 SetArgs(number_of_params, redo_params, undo_params)
 Example:
 move_command->SetArgs(2, 100, 100, 200, 200);
 2 params, (100,100) - do/redo position, (200,200) - undo position
void SetRedoArgs(Int_t narg, ...)
 Set redo parameters. The format is
 SetRedoArgs(number_of_params, params)
 Example:
 move_command->SetRedoArgs(2, 100, 100);
void SetUndoArgs(Int_t narg, ...)
 Set undo parameters. The format is
 SetUndoArgs(number_of_params, params)
 Example:
 move_command->SetUndoArgs(2, 200, 200);
Bool_t CanRedo() const
 Returns kTRUE if Redo action is possible, kFALSE if it's not.
 By default, only single sequential redo action is possible.
Bool_t CanUndo() const
 Returns kTRUE if Undo action is possible, kFALSE if it's not.
 By default, only single tial undo action is possible.
void Redo(Option_t* option = "")
 Execute command and then smerged commands
void Undo(Option_t* option = "")
 Unexecute all merged commands and the command.
 Merged commands are executed in reverse order.
const char * GetName() const
 Returns the command name. Default name is "ClassName::RedoName(args)"
 If list of merged commands is not empty the name is
 "ClassName::RedoName(args):cname1:cname2 ..."
const char * GetTitle() const
 Returns command description.
 By default, "ClassName::RedoName(args)_ClassName::UndoName(args)"
const char * GetRedoName() const
 Returns the name of redo command
const char * GetUndoName() const
 Returns the name of undo command
Long_t * GetRedoArgs() const
 Returns a pointer to array of redo arguments
Long_t * GetUndoArgs() const
 Returns a pointer to array of undo arguments
Int_t GetNRargs() const
 Returns a number of redo arguments
Int_t GetNUargs() const
 Returns a number of undo arguments
void * GetObject() const
 Returns an object for which undo redo acions are applied
Int_t GetStatus() const
 Returns a number of sequential undo or redo operations
Bool_t IsMacro() const
 Returns kTRUE if neither redo nor undo action specified
Bool_t IsUndoing() const
 Undo action is in progress
Bool_t IsRedoing() const
 Redo action is in progress
Bool_t IsExecuting() const
 Returns kTRUE if command execution is in progress
void SetName(const char* name)
 Sets name of the command
void SetTitle(const char* title)
 Sets description of the command
void ls(Option_t* option = "") const
 ls this command and merged commands
void PrintCollectionHeader(Option_t* option) const
 Print collection header.
TQConnection * GetRedo() const
{ return fRed


Definitions for danish pastry
This page provides all possible meanings and translations of the word danish pastry
Random House Webster's College Dictionary
Dan′ish pas′try(n.)
 1. a rich, flaky, yeast-leavened pastry, often filled with cheese, nuts, or fruit.
 Category: Cooking
Origin of Danish pastry:
Princeton's WordNet
 1. danish, danish pastry(noun)
 light sweet yeast-raised roll usually filled with fruits or cheese
 1. Danish pastry
 A Danish pastry, sometimes abbreviated Danish especially in the United States, is a viennoiserie pastry, of Viennese origin, which has become a specialty of Denmark and neighboring Scandinavian countries. Certain other countries, like the United States, commonly consume Danish pastries. It is called wienerbrød in Denmark, Finland, Iceland, the Faroe Islands, Norway and Sweden. It is referred to as facturas in some Spanish speaking countries. In Vienna, the Danish is referred to as "Plundergebäck" or "Golatschen". Like other viennoiserie pastries, such as croissants, danishes are made of laminated yeast-leavened doughs, creating a layered texture similar to a puff pastry.
Find a translation for the danish pastry definition in other languages:
Select another language:
Discuss these danish pastry definitions with the community:
Use the citation below to add this definition to your bibliography:
"danish pastry." STANDS4 LLC, 2014. Web. 28 Jul 2014. < pastry>.
Are we missing a good definition for danish pastry?
The Web's Largest Resource for
Definitions & Translations
A Member Of The STANDS4 Network
Nearby & related entries:
Alternative searches for danish pastry:


text:
Registration now open to teachers for WETSHOP 2018
The Louisiana Department of Wildlife and Fisheries (LDWF) is once again offering WETSHOP 2018, a coastal awareness workshop for science, history and social studies teachers.
The workshop is scheduled for July 8 – 13, at the LDWF Grand Isle Research Lab.
The focus of this 6-day workshop is to provide teachers with an in-depth look at issues related to wetland ecology and coastal land loss in Louisiana. Participating teachers will accrue 55 hours of instruction covering a wide variety of topics including wetland ecology, fisheries management, and coastal restoration.
Teachers will also spend a portion of each day in the field learning about maritime forests, barrier island beach ecology, coastal restoration projects, bird life, marsh and swamp habitats and marine organisms.
This year, participants will visit one of the largest coastal restoration projects in the world.
All participating teachers will receive standards-based correlated wetland lessons and many other educational resources from numerous sponsoring agencies and organizations. Lodging and meals are provided once participants reach the workshop site.
Upon completion of the workshop, each participant will receive a $250.00 stipend. An additional stipend is available during the academic year upon completion of a wetland stewardship project.
WETSHOP is sponsored by LDWF in partnership with the Louisiana Wildlife and Fisheries Foundation, Barataria Terrebonne National Estuary Program (BTNEP) and the Louisiana Sea Grant College Program. WETSHOP is also a collaborative effort with partners that provide experts in the field for presentations and educational materials.
Teachers interested in WETSHOP 2018 can register at _URL_
For more information, contact LDWF Biologist Supervisor Angela Capello at _PHONE_ or _EMAIL_.
Posted on Tue, March 20, 2018
by The Lafourche Gazette

source: m-a-p/FineFineWeb


Fisheries Infosite
Rough Skate 3, 4, 5 and 6 (Combined) (RSK3)
Maori name
Scientific name
Zearaja nasuta
Physical characteristics
Rough Skates are brown with multiple white spots on top and white undersides. As their name suggests, they have many small prickles covering their top surface that are more prominent on the males. Rough Skate can grow to a body length (not including tail) of 79 cm.
Life cycle
Rough Skate have a maximum age of 9 years. Maturity in females is reached at a length of 59 cm and 6 years of age. Males reach maturity at 52 cm and 4 years old. Rough Skate lay two eggs at a time in spring-summer, but it is not known how often this happens in a year.
Rough Skate are most commonly found around the South Island, but are known all around New Zealand. They are found on sandy or muddy bottom surfaces at depths down to 500 m.
Key statistics
Reported commercial catch1 (tonnes)
Quota value estimate2 (NZ$m)
Exports estimate2 (NZ$m)


text:
The :lt() selector selects elements using an index number which works on less than a specified number. The index numbers starts from 0.
- index: Index number which is selected. Element which is lesser than the specified index number is selected.
- jQuery | :first Selector
- jQuery | :odd Selector
- jQuery | :not() Selector
- jQuery | :gt() Selector
- jQuery | :last Selector
- jQuery | :even Selector
- jQuery | :has() Selector with example
- jQuery | :contains() Selector
- jQuery | * Selector
- jQuery | #id Selector
- jQuery | :only-of-type Selector
- Not class selector in jQuery
- jQuery | :hidden Selector
- jQuery | :nth-last-of-type() Selector
- jQuery | :selected Selector
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to _EMAIL_. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


text:
Ross Garnaut lunch and panel discussion for AICD (SA)
Rising power costs, energy policy and climate change are major concerns for directors, according to the Director Sentiment Index 2018 (second half of the year). Australia has fallen behind the technological and economic developments of the rest of the world and missed the opportunities to be a leader in adapting to the global energy transition – but is South Australia in the driver's seat for that very change?
What is the big picture? Recent Australian developments have sharpened the need for government, policy makers and business to come to grips with the systemic risks broader environmental sustainability poses to the economy, strategy and governance. The Clean Energy Finance Corp (CEFC) was established in 2012 and plays an enormous role in Australia's energy sector, investing billions in clean energy projects on behalf of the Australian Government.
So, while the issues of energy, power and sustainability bring additional risks and director responsibilities to manage they also bring with it huge opportunities for growth and investment.
What is the role of directors in this transition? Join our panel of experts including Andrea Slattery FAICD, Director – CEFC, Megan Flynn MAICD, Non-Executive Director – Sustainability Victoria and Professor Ross Garnaut AC, Professor of Economics – The University of Melbourne, as they discuss what the priorities should be for boards, business and government.
Date: Friday 29 November
Venue: InterContinental Adelaide, Ballroom, North Terrace, Adelaide SA
Price: $120 (members) $150 (general)


March 31, 2013
C# - Deploying Application with One-Click Install
1. Introduction
In this article, we will explore "Publishing the C-Sharp application" in the network path. The article shows the demonstration steps using Visual Studio 2005 IDE.
Publishing the application to a shared location benefits in such a way that the interested consumers go to that location and starts installing the published application from that network location. There is no need of cutting a CD for each client and shipping it to them.
In the above screen shot, you can see the application developers create an install-able setup and publish that in a shared location. This shared location can be:
 1. Web Location
 2. A Ftp Site
 3. Network share
Multiple clients who have access to the shared location takes the application from the shared location and installs that on their local machine. This happens for the first time. The next time onward publisher of the application publishes the application updates on the same location. When the client starts their application they get the notification about the available update on the published location.
Publishing the application in a shared location is useful and gives benefit for both publisher and clients subscribed to the published application. In the publisher point of view, they no need to cut CDs and ship to every client. In client point of view, they will automatically get the update to the application that they are using.
In this article, we are going to look,
 1. Publishing the application in Network shared path
 2. Providing the Update notification to the Client
 3. Pushing the updates forcibly to the Installed client location
I am not providing any sample application with this article. You can try this article with any simple c# application on your own.
2. Publishing a C# application
To start the publishing wizard, open the project in visual studio, then right-click on the project name is the solution explorer. From the displayed context menu, select the publish… Option as shown below:
Then from the displayed wizard, publish the application on a network share. Once the application is published on a network share, the shared location contains a file called publish.htm by default. Clients can access the file in the Internet explorer using the file protocol as specified below:
When a user accesses the application in Internet explorer the page looks like the below shown:
1: User navigating to publish location
2: After reviewing the content, they install the application on their local machine by clicking Install
In the video below, I explained the process of publishing the application on the network path, then installing the application by navigating to the published page on the network path.
Video 1: Explains how do you publish the application.
3. Publishing the Updates to the Application
Let us say 7 people installed the application from the network published location. Also, say the application is modified with lots of look and appearance changes and published in the same location.
In the above situation, the software update is placed on the published location. When those seven clients start their installed application next time, they get the notification that talks about getting the software update from the published location. This notification provides the end user a choice of updating the application to have the new version installed or skipping the update to use whatever version they have right now.
Click the updates button in the publish property page of the project settings. From the displayed dialog you can specify how you want to provide an update to the end user.
Providing the software updates to all the installed location via the published location is shown in the below video.
Video 2: Explains how user gets the Update from the Published location
Sometimes, we may need to push the important updates to the end locations not providing the end user the option of skipping this update. The Updates dialog has an option for that also. Use the third option shown in the below picture to push the major updates to installed subscribers.
Pushing the update to end-user is shown in the below video.
Video 3: Pushing the Major updates to end user machine.
No Sample application required for this article.
March 19, 2013
SQL 2005 - Understanding Auto Commit, Implicit, Explicit Transaction
1. Introduction
In SQL Server we call a complete set of action as "Transaction". The complete set of action together forms a meaningful change to the database. Say for Example, you are transferring money from one bank account to another one. This involves the below specified actions:
 1. Create a withdraw entry in the First back account
 2. Reduce the Balance in your First Bank account
 3. Create a Deposit entry in the second bank entry
 4. Increment the Balance in the Second bank account.
Now consider replacing first bank account as Savings Account and second bank account as Current Account within the same bank (For easy understanding). Now we say the bank website will consider all these four actions together as Money Transfer Transaction. Even a single action fails the entire transaction get cancelled to avoid existence of unmatched records for the account holder.
In this article, we will explore how do we use transactions in SQL server.
In SQL Server, we can set three different types of transactions. These transactions are:
 1. Auto Commit Transactions
 2. Implicit Transactions
 3. Explicit Transactions
2. Auto Commit Transactions
In "Auto Commit Transaction" mode, SQL Server immediately commits the change after executing the statement. That's why we call this as Auto commit transaction. Auto commit transaction is the default transaction mode in SQL Server.
Have a look at the video 1.
In the video you can observe that we executed three update statements by highlighting each update statement one by one. The second update statement is made wrong intentionally. After executing all three statements, the select query result shows first and third update persisted to the database. Here, after executing each statement, the change is committed to the database automatically. That is why we call this as Auto Commit Transaction, which is the default transaction mode in SQL server 2005.
Now, have a look at the video 2.
The script is same. We have same three update statements with a same spelling mistake in the second update statement. However, this time we update all three update statements at once, by selecting all three and hitting the execute button. Here, all these three statements are executed on a single go and hence we call these three statements as batch. Since the second update statement in the batch is failed, none of the row update takes place in the database. In this case, a Roll-back is performed because of the batch failure (2nd update).
The "Go" statement actually forms the batch of SQL statement. We can write the script for video 1 and video 2 (The way the update statements are executed) as shown below:
--Example 1
--Batch 1
Update Authors Set Au_LName = 'Black' where Au_Id = '172-32-1176';
Go
--Batch 2
Update Authors Ser Au_LName = 'Voyer' where Au_Id = '213-46-8915';
Go
--Batch 3
Update Authors Set Au_LName = 'Peterson' where Au_Id = '238-95-7766';
Go
--Batch 4
Select Au_Id, Au_Fname + ',' + Au_Lname as Name,
Phone, City from Authors where Au_id in ('172-32-1176',
 '213-46-8915','238-95-7766');
Go
--Batch 5
Update Authors Set Au_LName = 'White' where Au_Id = '172-32-1176';
Update Authors Set Au_LName = 'Green' where Au_Id = '213-46-8915';
Update Authors Set Au_LName = 'Carson' where Au_Id = '238-95-7766';
Go
--Example 2
--Treat All three as a Single Batch.
--Batch 1
Update Authors Set Au_LName = 'Black' where Au_Id = '172-32-1176';
Update Authors Ser Au_LName = 'Voyer' where Au_Id = '213-46-8915';
Update Authors Set Au_LName = 'Peterson' where Au_Id = '238-95-7766';
Go
--Batch 2
Select Au_Id, Au_Fname + ',' + Au_Lname as Name,
Phone, City from Authors where Au_id in ('172-32-1176',
 '213-46-8915','238-95-7766');
Go
--Batch 3
Update Authors Set Au_LName = 'White' where Au_Id = '172-32-1176';
Update Authors Set Au_LName = 'Green' where Au_Id = '213-46-8915';
Update Authors Set Au_LName = 'Carson' where Au_Id = '238-95-7766';
Go
From the above statements, I can say that SQL server performs a Commit or Rollback after the Go statement is encountered. Hence, in the Auto commit transaction we don't have to control the commit and rollback as it is taken care by the SQL Server.
Also note that the roll-back will not be applied when SQL Server encounters a Runtime error. Imagine that in example 2, instead of the misspelled keyword Set we violate a constraint (Say Primary key constraint) in the second statement. In this case, SQL server commits first and third statement.
3. Implicit Transactions
In "Implicit Transaction" Mode, we can control the "Rollback" and the "Commit" operation. A new transaction automatically begins after the commit/Rollback. We can turn ON and Turn OFF this transaction mode based on the need.
In the above picture, two commit and one rollback statement are executed after


text:
What do moons on your fingernails mean?
Moons on your fingernails are located at the base of your fingernails, closest to your fingers. They are the lighter half moon shaped growth under your nails. In palmistry, overly large moons can mean an overactive thyroid and high blood pressure. Small or no moons are thought to predict an underactive thyroid and low blood pressure. Scientists have found that a lack of a fingernail moon may indicated you are low in Vitamin B-12 or in iodine which feeds the thyroid. Vitamin B-12 deficiency has been linked with lack of energy, depression, and loss of coordination and memory, among other things. Iodine deficiency has been linked with breast cancer. One palmistry specialist determined there is a link between small moons and carbon monoxide exposure.

source: openbmb/Ultra-FineWeb


text:
One of the most unique biomes is found in the Arctic Ocean and the water around Antarctica. The Polar Ice biome
is a marine biome that is rich in nutrients from the land around them, and contain ice. This makes the perfect environment
for plankton, and plankton fuel the surrounding ecosystem.
Very, very, very few aquatic plants can live in this biome.
ANIMALS AND ORGANISMS
Plankton, which provide food for an extremely diverse group of organisms. Sea lions, penguins, many species of
fish and birds, and other mammals all enjoy this biome.
There are hundreds of gatherings of literally thousands of penguins every year to lay eggs. After laying the eggs,
the female leaves to go fish, and the male does most of the incubating.


text:
New Report Helps Wind Farm Planners Avoid Bird Flyways
Researchers from the National Centers for Coastal Ocean Science recently evaluated techniques to design robust marine bird surveys to support offshore wind energy sites that are in the same location as sensitive bird migratory pathways. Spinning turbine blades can kill birds outright or divert them from their natural routes which disrupt their fairly inflexible behavior.
Knowing where the birds travel, coupled with knowledge of wind strength and seafloor depth, are critical parts of wind farm placement. Furthermore, maps of the migration routes and bird abundance evaluations help energy stakeholders build upon past surveys which reduces uncertainty about future survey requirements and costs while increasing efficiency.
The Department of Interior's Bureau of Ocean Energy Management commissioned this report. They posted that study on their website, along with "Guidelines for Avian Surveys" revised to reflect the new information provided by NCCOS.


Coils come in all different shapes and size variations. The most
common variance is observed by the number of wraps that a
coil will contain, usually anywhere from seven to fourteen. Popular
wrap counts are eight, ten, and twelve. This simply is the
count of how many times the insulated wire is wrapped around
each core. There are different shaped cores on the market as
well, while the most popular is the circular shaped core; however
there is also octagon, square, and oblong shaped cores as
well. Coils will typically be sold in matched pairs. Matched pairs
simply mean that because there is a variance during the wrap
process, two coils will be selected that have complementing
electrical properties, since that will increase the effectiveness
while they work together. How these "effectiveness" qualities are
measured is really up to the manufacturer.
Leave a reply
Log in with your credentials
Forgot your details?


Sign up ×
Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute:
Inspired by the recent question about 2d grids in Haskell, I'm wondering if it would be possible to create a two-dimensional zipper to keep track of a position in a list of lists. A one-dimensional zipper on a list allows us to really efficiently move locally in a large list (the common example being a text editor). But lets say we have a second dimension like this:
grid =
 [[ 1, 2, 3, 4, 5]
 ,[ 6, 7, 8, 9,10]
 ,[11,12,13,14,15]
 ,[16,17,18,19,20]
 ,[21,22,23,24,25]]
Can we create some kind of zipper data structure to efficiently move not only left and right but up and down in the grid here? If so, what if we replace the list of lists with an infinite list of infinite lists, can we still get efficient movement?
share|improve this question
2 Answers 2
up vote 15 down vote accepted
Not quite, no. One of the key aspects of how zippers work is that they represent a location in a structure by a path used to reach it, plus extra fragments created along the way, with the end result that you can backtrack along that path and rebuild the structure as you go. The nature of the paths available through the data structure thus constrains the zipper.
Because locations are identified by paths, each distinct path represents a different location, so any data structure with multiple paths to the same value can't be used with a zipper--for example, consider a cyclic list, or any other structure with looping paths.
Arbitrary movement in 2D space doesn't really fit the above requirements, so we can deduce that a 2D zipper would necessarily be somewhat limited. Perhaps you'd start from the origin, walk a path through the structure, and then backtrack along that path some distance in order to reach other points, for example. This also implies that for any point in the structure, there are other points that can only be reached via the origin.
What you can do is build some notion of 2D distance into the data structure, so that as you follow a path down through the structure, the points "below" you are close to each other; the idea is to minimize the amount of backtracking needed on average to move a short distance in 2D space. This ends up being roughly the same approach needed to search 2D space by distance--nearest neighbor searches, efficient geometric intersection, that sort of thing--and can be done with the same kind of data structure, namely space partitioning to create a higher-dimensional search tree. Implementing a zipper for a quadtree, a kd-tree, or similar structures is straightforward, just like any other tree.
share|improve this answer
1
"One of the key aspects of how zippers work is that they represent a location in a structure by a path used to reach it". Why is having a unique path a key requirement for zippers? I would have thought that any way to represent a "location" in a data structure would suffice – Anupam Jain Jan 18 '12 at 5:54
5
@AnupamJain: Because the fragments used to rebuild are pieces of the original, immutable structure, if one of those contains another path to the "same" location, when you reassemble it that path will still have the original value. The only way to handle it is to walk down both paths and do both replacements--i.e., considering both paths together as the "unique" path. – C. A. McCann Jan 18 '12 at 6:19

@AnupamJain: The more redundant paths possible, the more inefficiency you create. The worst case scenario is something like a cyclic list, where there are an infinite number of paths and each path contains the entire structure, which forces you to rebuild everything. – C. A. McCann Jan 18 '12 at 6:20

Hmm what do you think of my answer below? I'm not sure if it qualifies as a zipper – Anupam Jain Jan 18 '12 at 7:19
1
@habitue: If you're still interested in exploring the idea, I note the spacepart package seems to be abandoned. A more extensive space partitioning library with distance-aware zippers would be a nice addition to hackage... – C. A. McCann Jan 18 '12 at 17:37
Well you can use something simple like the following code. We represent a table by the top rows of the selected element, the bottom rows of the selected element, plus the elements to the left of the selected one, and the elements to the right of the selected one.
The top rows and the left elements are stored in a reverse order to enable efficient movement.
I'm not sure if this qualifies as a zipper though, because even though we hold a "location" in the data structure, it is not a "path".
-- Table sel left right top bottom
data Table a = Table a [a] [a] [[a]] [[a]] deriving Show
left :: Table a -> Table a
left tab@(Table _ [] _ _ _) = tab
left (Table sel (l:ls) rs ts bs) = Table l ls (sel:rs) ts bs
right :: Table a -> Table a
right tab@(Table _ _ [] _ _) = tab
right (Table sel ls (r:rs) ts bs) = Table r (sel:ls) rs ts bs
up :: Table a -> Table a
up tab@(Table _ _ _ [] _) = tab
up (Table sel ls rs (t:ts) bs) = Table sel' ls' rs' ts (b:bs)
 where
 (ls',(sel':rs')) = splitAt (length ls) t
 b = ls ++ (sel:rs)
down :: Table a -> Table a
down tab@(Table _ _ _ _ []) = tab
down (Table sel ls rs ts (b:bs)) = Table sel' ls' rs' (t:ts) bs
 where
 (ls',(sel':rs')) = splitAt (length ls) b
 t = ls ++ (sel:rs)
tableToList :: Table a -> [[a]]
tableToList (Table sel ls rs ts bs) = (reverse ts) ++ [ls ++ (sel:rs)] ++ bs
listToTable :: [[a]] -> Table a
listToTable [] = error "cannot make empty table"
listToTable ([]:_) = error "cannot make empty table"
listToTable ((t:tr):ts) = Table t [] tr [] ts
This even works for infinite lists -
selected :: Table a -> a
selected (Table sel _ _ _ _) = sel
a :: Table Int
a = listToTable $ replicate 10 [1..]
selected a #=> 1
selected $ down a #=> 1
selected $ right $ down a #=> 2
share|improve this answer
2
This provides the same operations as a Zipper, but it isn't one. A zipper, as introduced by Huet, has a constant amount of allocation per navigation step. Your implementation has allocation costs which depend on the size of the total data structure. So, this might be a useful data structure for your use case, I don't know. But I wouldn't call it a zipper. – jmg Jan 18 '12 at 7:50

Ah that makes sense.. I don't know what I was thinking – Anupam Jain Jan 18 '12 at 8:28

@jmg: To be fair, this is a zipper--specifically, two standard list zippers nested, operating on nested lists. The actual navigation steps are moving along an inner list, or moving along the outer list when the selection is the first element of an inner list. The issue is that "up" and "down" aren't part of this zipper's navigation. – C. A. McCann Jan 18 '12 at 17:24

@C.A.McCann: You could say that, but in the end you don't have the usual benefits of a zipper. Above, I already said that it might be useful data structure, depending on the circumstances. I just wouldn't call it a zipper. But, yes it is like to zippers with a reduced set of navigation primitives. – jmg Jan 18 '12 at 20:33
Your Answer

discard
By posting your answer, you agree to the privacy policy and terms of service.
Not the answer you're looking for? Browse other questions tagged or ask your own question.


text:
Showing 1–24 of 25 results
The Girard Wooden Dolls are a large family of figures representing people and animals. They are expertly handmade from solid spruce wood and then painted with an eye for detail and a steady hand. And even though the differences are very minor, each wooden figure is a unique, individual object.
Alexander Girard designed them in 1952 for his own use as decorative objects in his home in Santa Fe. The originals, which are part of Girard's estate managed by the Vitra Design Museum, have served as examples for the current reissues.
Each Wooden Doll is packed in a wooden gift box, printed with logo and accompanied by a booklet.


Our group agreed we wanted use text classification for a data set that is not used often. There aren't many wine recommenders out there or ones we could think of off the top if our heads, so we built one ourselves.
What it Does
This is a recommendation system where a user can describe the type of wine they enjoy and the our system will present the user with varieties of wine they like best, based off their characteristics.
How it was Made
All the initial scripts and testing were done in Jupyter before transferred to actual python programs. React was used so that a user can test the text classification by typing in a sentence explaining their wine preference.
Challenges we ran into was setting up the Bert server, leaning data frames, and running into pandas. I ran into problems in react when I tried to integrate the data set into the search box.
I am proud that I learned how to use react in only a couple hours and gain general knowledge on machine learning and natural language programming.
What Next
We could take this project further by using other databases.
Built With
Share this project:


text:
"Accessible Summer" - summer day camp for the children of the Eshkol Regional Council
On Sunday 14/07/19 the "Access Israel" organization instructed an enjoyable activity for more than 700 children within the "Accessible Summer" day camp for the children of the Eshkol Regional CouncilOn the Day Camp, the children of the Eshkol Regional council experience around 29 enjoyable experience challenges that were set up around the area. Each station represented a different kind of disabilities.
The students went through the different challenges and and in each one learnt what it's like to be a person with disabilities. In each challenge the children got information about a different kind of disability and got to know the man behind the disability. The guide shared his life story; the hardships, the challenges, and the triumphs, while providing tools for public accessibility.
The children passed through an obstacle course while wearing a blindfold. To succeed they had to use their other senses and the help of their teammates.
Blind Bead Threading:
The participants tried to thread beads through a string while their eyes were cover by blindfolds.
With their eyes covered, the children participated in a Paralympic game – "Goalball"
In the picture you can see Rami Dekel, a blind instructor, explaining the rules of the game to the participants:
This station simulates hand disability. In it the participants partake in games, writing, and drawing in creative ways using gloves that restrict their finger movements.
Wheelchair Obstacle Course:
This activity simulates obstacles a person with a mobility disability encounters in their everyday life. Obstacles like crossing grass, bumpers, manhole covers, ramps, and more:
We thank the Day Camp crew for their cooperation for a second year in a row and to the children of the council for showing much curiosity and sensitivity towards the instructors. The reactions of the participants were very enthusiastic and they shared that they experienced a very meaningful and enlightening day.


text: The back of this wooden chair, which belonged to the scribe Reniseneb, is handsomely veneered with ivory and embellished with incised decoration showing the owner seated on a chair of identical form. It is the earliest surviving chair with such a representation, and it is the only non-royal example known. The scene and accompanying text have funerary import and may have been added following Renyseneb's death to make the chair a more suitable funerary object. The high quality of its joinery and the harmony of its proportions testify to the skill of ancient Egyptian carpenters. The mesh seat has been restored following ancient models.

source: HuggingFaceFW/fineweb-edu


text:
Who may enroll in galileo?
The Galileo program caters to pre-school and grade school students ages 3 to 12.
Galileo provides the following benefits for the young learners:
- Improved school grades
- Become academically competitive
- Gain lots of friends
- Nurture skills and talents
- Develop a positive attitude towards studying
When can a student start at galileo?
The best time to begin a student's journey in the Galileo program is NOW. The sooner you get him into the program, the sooner he will be able to reap the program's benefits. Once the student enters the program, he is assessed according to his skills. The student may start his Galileo experience after the assessment, which will only take 15 minutes of his time.
How many times in a week will a student attend galileo?
Students go to the Galileo Center twice a week for 30 to 45 minutes per session. The student works closely with teacher-facilitator and is given fun activities to supplement the lesson for the day. Homework is given so that learning is continuous even outside the center. Parental involvement is strongly encouraged.
How long does a student need to be enrolled in galileo?
Learning is a process that requires time and effort. Students are encouraged to be part of the Galileo program for at least a year to observe significant improvements. The program works with learners in a continuous effort and aims to teach excellent study and independence.


text:
First recorded during the canonisation of Saint Lawrence Justinian under Pope Leo X (_PHONE_), the Devil's Advocate (Advocatus Diaboli) used to be an official position within the Roman Catholic Church, whose job was to uncover character flaws, misrepresentation of evidence or fraudulent behaviour.
During the canonisation process, the Promoter of the Faith (Promotor Fidei), better known as the Devil's advocate (Advocatus Diaboli), was a lawyer appointed by Church authorities to to take a sceptical view of the proposed candidate. Meanwhile, an opposing case would be made by the Promoter of the Cause, also known as God's advocate (Advocatus Dei), who would argue in favour of canonisation.
These specific positions of office are now obsolete and both functions are now performed by the Promoter of Justice (Promotor Justitiae) but, where the candidate might prove controversial, informal testimony may still be sought from those opposed to the canonisation.
However, the Devil's Advocate has now entered into common parlance and is used to refer to someone who takes a contrary position in an argument or discussion, in order to encourage further consideration and debate about the topic's potential ramifications.


text:
Some texts are currently available in German only. We apologize for any inconvenience.
Fri 18 January - Sun 26 May 2013
Marking the 100th anniversary of excavations at the site, the Museum für Islamische Kunst (Museum of Islamic Art) presents an exhibition on the legendary royal city of Samarra, which lay approx. 120 km north of Bagdad on the banks of the Tigris, and which served as the government capital of the powerful Abbasid Caliphate from 836 to 892. Samarra boasted one of most elaborate city plans in the world at the time. With its gigantic palaces, mosques, walled hunting parks, polo fields, and horse racing courses it stretched to an astonishing length of almost 50 km.
Prominent ruins were excavated from 1911 to 1913 by the German archaeologist and Orientalist, Ernst Herzfeld. It was the first scientific excavation expressly dedicated to uncovering a site dating from the Islamic period. Today's exhibition presents a large selection of the finds that made their way to the Berlin museums under the then prevailing antiquities law, by which the found objects were divided up, with half retained by the local country and half removed by the country responsible for financing and conducting the dig. Among the objects on display are wall paintings, stucco, and wood panelling, which once adorned the walls of palaces. Also on show are lusterware ceramics, Chinese porcelain, and cut glass: testaments of the city's innovative artisanship and far-reaching trade links. The exhibition is enriched by a selection of historical excavation photographs taken by Ernst Herzfeld. They amount to important documents of the ruins, but also depict the landscape and everyday life at the dig.
Museum für Islamische Kunst


turning on the Implicit Transaction. As already told after a commit or rollback a new transaction gets started and that is how you see three transactions in the above depiction. Once you turn OFF the implicit transaction, the transaction will be set back to the default Auto Commit transaction.
Use the below SQL statements to Turn-ON or Turn-OFF the implicit transaction:
Set Implicit_Transactions On;
Set Implicit_Transactions Off;
Now Have a look at the below given example:
--Example 3
Set Implicit_Transactions On;
--Transaction 1
Update Authors Set Au_LName = 'Black' where Au_Id = '172-32-1176';
commit;
--Transaction 2
Update Authors Set Au_LName = 'Voyer' where Au_Id = '213-46-8915';
Rollback;
--Transaction 3
Update Authors Set Au_LName = 'Peterson' where Au_Id = '238-95-7766';
commit;
--Select the Authors, to see the effect of Update statement
Select Au_Id, Au_Fname + ',' + Au_Lname as Name,
Phone, City from Authors where Au_id in ('172-32-1176',
 '213-46-8915','238-95-7766');
--Revert back to Original
Update Authors Set Au_LName = 'White' where Au_Id = '172-32-1176';
Update Authors Set Au_LName = 'Green' where Au_Id = '213-46-8915';
Update Authors Set Au_LName = 'Carson' where Au_Id = '238-95-7766';
Go
Set Implicit_Transactions Off;
In this example, three update statements are executed followed by either a Rollback or a commit. Note that, here we have the Freedom of specifying where we want to do a commit or a roll back which we cannot do in the default Auto Commit Transaction mode. Also be aware that even though we can specify where we want to end the transaction, it is not possible to control the starting of the transaction. Because, the transaction starts immediately after it ends.
After the first Update statement, we asked for a commit, so the update of author's last name as Black is committed to the database and new transaction is started after that. The second Transaction comes to an End when the rollback statement is executed. The update of author's last name (as Voyer) kept in the memory is discarded after the rollback and one more new Transaction is started. Note that at the end of the script we turned off the implicit transaction. Once the implicit transaction is turned off, the mode changes to default Auto Commit transaction mode.
OK. What is the Final result of executing this script? The first and last update statement committed to the database and the second update is discarded.
4. Explicit Transactions
In "Explicit Transaction", we control the starting and ending of the transaction. Look at the below Pic:
As we control the starting and ending of the transaction, this transaction type is widely used while making the compiled unit of code Say for Ex. Stored Procedures. Have a look at the below specified code:
Here we started two transactions and note that the transaction will end when there is a commit or rollback. In this example, the first transaction will get succeed and the "Data Inserted message" will appear in the message area while executing the script. The second Transaction fails as Not Null column Contract is skipped from the insert (Note skipping a column means we like to leave the column as null) statement.
As this is a constraint violation and this happens at runtime the "@@Error" in our script returns a Non-Zero Error number. When the statement execution succeeds without any problem, we do get zero in the "@@Error environment variable". The remaining portion of the script is understandable. If you need complete example, you can take that from below:
--Example 04
Declare @ErrNo int
Begin Transaction;
Insert into Authors(Au_id, au_lname, au_fname, Phone, contract)
values ('112-33-1811', 'Jane', 'Marey', '_PHONE_', 1);
Set @ErrNo = @@Error;
if @ErrNo != 0
 Begin
 Print 'Error Occurred. Transaction Cancelled';
 RollBack;
 End
else
 Begin
 Print 'Data Inserted.';
 Commit;
 End
Begin Transaction;
Insert into Authors(Au_id, au_lname, au_fname, Phone)
values ('112-33-1234', 'Billy', 'Jones', '_PHONE_');
Set @ErrNo = @@Error;
if @ErrNo != 0
 Begin
 Print 'Error Occurred. Transaction Cancelled';
 RollBack;
 End
else
 Begin
 Print 'Data Inserted.';
 Commit;
 End
-- Revert back the Change
Delete from Authors where Au_Id = '112-33-1811';
March 7, 2013
[ MFC ] - Setting Image Background for dialog
1. Introduction
In this article, we are going to see how do we set the background image for the dialog based application. You can use the same technique specified here for any dialog by handling the WM_PAINT message.
The example for this article is shown below:
2. Add Bitmap Resource
First, we should create a bitmap resource. Once the resource is ready we can start adding the code to display the background image for the dialog. Follow the below-provided steps:
1) Create a Dialog based MFC Application and name it as DialogBackground.
2) Run the wizard created default application
3) Take screen shot of the dialog and paste it to the paint brush
4) Draw something manually inside the dialog display area.
5) Then copy the image from the display area and create a bitmap resource from it. This fifth step is shown in the below video
Once the resource is ready, we can display the image as a background for the dialog box.
3. About the source code
Modify the OnPaint() handler as shown below:
void CDialogBackgroundDlg::OnPaint()
{
 if (IsIconic())
 {
 CPaintDC dc(this); // device context for painting
 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
 // Center icon in client rectangle
 int cxIcon = GetSystemMetrics(SM_CXICON);
 int cyIcon = GetSystemMetrics(SM_CYICON);
 CRect rect;
 GetClientRect(&rect);
 int x = (rect.Width() - cxIcon + 1) / 2;
 int y = (rect.Height() - cyIcon + 1) / 2;
 // Draw the icon
 dc.DrawIcon(x, y, m_hIcon);
 }
 else
 {
 //Sample 01: Required Declarations
 CDC MemDC ;
 CBitmap bmp ;
 CPaintDC dc(this);

 //Sample 02: Get the Client co-ordinates
 CRect rct;
 this->GetClientRect(&rct);
 //Sample 03: Create the Dialog Compatible DC in the memory,
 // Then load the bitmap to the memory.
 MemDC.CreateCompatibleDC ( &dc ) ;
 bmp.LoadBitmap ( IDB_BITMAP_BKGR ) ;
 MemDC.SelectObject ( &bmp ) ;
 //Sample 04: Finally perform Bit Block Transfer (Blt) from memory dc to
 // dialog surface.
 dc.BitBlt ( 0, 0, rct.Width() , rct.Height() , &MemDC, 0, 0, SRCCOPY ) ;
 CDialog::OnPaint();
 }
}
Explanation:
Sample 01: Required declarations are added.
Sample 02: The client coordinate of the displayed dialog is retrieved and stored in a CRect instance rct. Note this client rectangle returned will match the dimension of the bitmap resource that we created earlier.
Sample 03: The method call CreateCompatibleDC will create the memory device context which compatible to the dialog. That is it takes the settings (Pen, Brush etc) from the device context of the dialog. Once the Memory device context is created, we load the bitmap from the resource into CBimap object bmp. Finally, we load this bitmap to the memory device context MemDC.
Sample 04: BitBlt is called on the CPaintDC. BitBlt stands for Bit Block Transfer. Here we are transferring the bitmap content prepared in the memory (MemDC) to the destination CDialog.
Look at the below video to see the output:
Source Code: Download
Like this site? Tell it to your Friend :)


Home : Computers : Linux : Man Pages : kpartx
kpartx
SYNOPSIS
 kpartx [-a | -d | -l] [-v] wholedisk
DESCRIPTION
 This tool, derived from util-linux' partx, reads partition tables on
 specified device and create device maps over partitions segments
 detected. It is called from hotplug upon device maps creation and dele-
 tion.
OPTIONS
 -a Add partition mappings
 -r Read-only partition mappings
 -d Delete partition mappings
 -u Update partition mappings
 -l List partition mappings that would be added -a
 -p set device name-partition number delimiter
 -f force creation of mappings; overrides 'no_partitions' feature
 -g force GUID partition table (GPT)
 -v Operate verbosely
 -s Sync mode. Don't return until the partitions are created
EXAMPLE
 To mount all the partitions in a raw disk image:
 kpartx -av disk.img
 This will output lines such as:
 loop3p1 : 0 20964762 /dev/loop3 63
 The loop3p1 is the name of a device file under /dev/mapper which you
 can use to access the partition, for example to fsck it:
 fsck /dev/mapper/loop3p1
 When you're done, you need to remove the devices:
 kpartx -d disk.img
SEE ALSO
 multipath(8) multipathd(8) hotplug(8)
AUTHORS
Subscribe to us on YouTube


text:
The exchange rate between Brazilian Real (BRL) and United States Dollar (USD) is among the popular foreign exchange pairs traded globally. In 2023, the exchange rate remains a crucial indicator for traders, investors, and individuals seeking to transfer money between Brazil and the United States.
What is the Current Exchange Rate between BRL and USD?
As of January 2023, the exchange rate between BRL and USD is 31 BRL to 5.68 USD. The exchange rate may fluctuate depending on various factors, including inflation rates, political stability, and market demand.
Factors Affecting the BRL to USD Exchange Rate
The BRL to USD exchange rate is influenced by various factors, including:
1. Economic Stability
The economic stability of Brazil and the United States affects the exchange rate. A stable economy attracts foreign investments, which leads to a higher demand for the local currency, increasing its value.
2. Inflation Rates
Inflation rates affect the purchasing power of a currency, which affects the exchange rate. High inflation rates lead to a depreciation of the local currency, leading to a lower exchange rate.
3. Political Stability
Political stability plays a crucial role in the exchange rate. A country with a stable political environment attracts foreign investments, leading to a higher demand for the local currency.
How to Convert 31 BRL to USD
To convert 31 BRL to USD, you need to multiply the amount of BRL by the current exchange rate. For instance, if the exchange rate is 31 BRL to 5.68 USD, you will multiply 31 by 5.68, which gives you 176.08 USD.
Tips for Transferring Money Between Brazil and the United States
When transferring money between Brazil and the United States, consider the following tips:
1. Compare Exchange Rates
Different financial institutions offer different exchange rates. It is essential to compare the rates to get the best deal.
2. Consider Transfer Fees
Some financial institutions charge transfer fees, which may affect the amount you receive. Consider the fees before making a transfer.
The timing of the transfer can affect the exchange rate. Monitor the exchange rate and make a transfer when the rate is favorable.
The BRL to USD exchange rate remains a crucial indicator for individuals and businesses seeking to transfer money between Brazil and the United States. Factors such as economic stability, inflation rates, and political stability affect the exchange rate. To convert 31 BRL to USD, multiply the amount of BRL by the current exchange rate. Consider the tips when transferring money between Brazil and the United States to get the best deal.


text:
Population movement, such as commuting, can affect water supply pressure and efficiency in modern cities. However, there is a gap in the research concerning the relationship between water use and population mobility, which is of great significance for urban water supply planning and supporting urban sustainable development. In this study, we analyzed the spatial–temporal dynamics of the population and its underlying mechanisms, using multi-source geospatial big data, including Baidu heat maps (BHMs), land use parcels, and point of interest. Combined with water consumption, sewage volume, and river depth data, the impact of population dynamics on water use was investigated. The results showed that there were obvious differences in population dynamics between weekdays and weekends with a ratio of 1.11 for the total population. Spatially, the population concentration was mainly observed in areas associated with enterprises, industries, shopping, and leisure activities during the daytime, while at nighttime, it primarily centered around residential areas. Moreover, the population showed a significant impact on water use, resulting in co-periods of 24 h and 7 days, and the water consumption as well as the wastewater production were observed to be proportional to the population density. This study can offer valuable implications for urban water resource allocation strategies.
Analysis of spatiotemporal population distribution and mobility based on the Baidu heat map.
Population dynamics mechanisms related to land use.
A novel idea exploring the impact of population dynamics on water use.
Valuable implications for optimizing and controlling water supply and wastewater treatment systems.


diagram of relative velocity.
If the relative velocities are not constant, we suppose
RAMS
another system in which the velocities are equal to the velocities of the given system at the given instant and con-tinue constant for a unit of time. The diagram of dis-placements for this imaginary system is the required diagram of relative velocities of the actual system at the given instant.
It is easy to see that the diagram gives the velocity of any one point relative to any other, but cannot give the absolute velocity of any of them.
Diagram of Acceleration.
By the same process by which we formed the diagram of displacements from the two diagrams of initial and final configuration, we may form a diagram of changes of rela-tive velocity from the two diagrams of initial and final velocities. This diagram may be called that of total accelerations in a finite interval of time.
By the same process by which we deduced the diagram of velocities from that of displacements we may deduce the diagram of rates of acceleration from that of total accelera-tion.
We have mentioned this system of diagrams in elementary kinematics because they are found to be of use especially when we have to deal with material systems containing a great number of parts, as in the kinetic theory of gases. The diagram of configuration then appears as a region of space swarming with points representing molecules, and the only way in which we can investigate it is by consider-ing the number of such points in unit of volume in different parts of that region, and calling this the density of the gas.
In like manner the diagram of velocities appears as a region containing points equal in number but distributed in a different manner, and the number of points in any given portion of the region expresses the number of molecules whose velocities lie within given limits. We may speak of this as the velocity-density.
Path and Ilodograph.
When the number of bodies in the system is not so great, we may construct diagrams each of which represents some property of the whole course of the motion.
Thus if we are considering the motion of one particle relative to another, the point on the diagram of configura-tion which corresponds to the moving particle will trace out a continuous line called the path of the particle.
On the diagram of velocity the point corresponding to the moving particle will trace another continuous line called the hodograph of the particle.
The hodograph was invented and used with great success by Sir W. B. Hamilton as a method of studying the motions of bodies.
DIAGRAMS OF STRESS.
Graphical methods are peculiarly applicable to statical questions, because the state of the system is constant, so that we do not need to construct a series^ of diagrams corresponding to the successive states of the system.
The most useful of these applications relates to the equilibrium of plane framed structures. Two diagrams are used, one called the diagram of the frame and the other called the diagram of stress.
The structure itself consists of a number of separable pieces or links jointed together at their extremities. In practice these joints have friction, or may be made pur-posely stiff, so that the force acting at the extremity of a piece may not pass exactly through the axis of the joint; but as it is unsafe to make the stability of the structure depend in any degree upon the stiffness of joints, we assume in our calculations that all the joints are perfectly smooth, and therefore that the force acting on the end of any link passes through the axis of the joint.
The axes of the joints of the structure are represented by points in the diagram of the frame.
The link which connects two joints in the actual struc-ture may be of any shape, but in the diagram of the frame it is represented by a straight line joining the points repre-senting the two joints.
If no force acts on the link except the two forces acting through the centres of the joints, these two forces must be equal and opposite, and their direction must coincide with the straight line joining the centres of the joints.
If the force acting on either extremity of the link is directed towards the other extremity, the stress on the link is called pressure and the link is called a strut. If it is directed away from the other extremity, the stress on the link is called tension and the link is called a tie.
In this case, therefore, the only stress acting in a link is a pressure or a tension in the direction of the straight line which represents it in the diagram of the frame, and all that we have to do is to find the magnitude of this stress.
In the actual structure, gravity acts on every part of the link, but in the diagram we substitute for the actual weight of the different parts of the link, two weights which have the same resultant acting at the extremities of the link.
We may now treat the diagram of the frame as composed of links without weight, but loaded at each joint with a weight made up of portions of the weights of all the links which meet in that joint.
If any link has more than two joints we may substitute for it in the diagram an imaginary stiff frame, consisting of links, each of which has only two joints.
The diagram of the frame is now reduced to a system of points, certain pairs of which-are joined by straight lines, and each point is in general acted on by a weight or other force acting between it and some point external to the system.
To complete the diagram we may represent these external forces as links, that is to say, straight lines joining the points of the frame to points external to the frame. Thus each weight may be represented by a link joining the point of application of the weight with the centre of the earth.
But we can always construct an imaginary frame having its joints in the lines of action of these external forces, and this frame, together with the real frame and the links representing external forces, which join points in the one frame to points in the other frame, make up together a complete self-strained system in equilibrium, consisting of points connected by links acting by pressure or tension. We may in this way reduce any real structure to the case uf a system of points with attractive or repulsive forces acting between certain pairs of these points, and keeping them in equilibrium.
The direction of each of these forces is sufficiently indicated by that of the line joining the points, so that we have only to determine its magnitude.
We might do this by calculation, and then write down on each link the pressure or the tension which acts in it.
We should in this way obtain a mixed diagram in which the stresses are represented graphically as regards direction and position, but symbolically as regards magnitude.
But we know that a force may be represented in a purely graphical manner by a straight line in the direction of the force containing as many units of length as there are units of force in the force. The end of this line is marked with an arrow head to show in which direction the force acts.
According to this method each force is drawn in its proper position in the diagram of configuration of the frame. Such a diagram might be useful as a record of the result of calculation of the magnitude of the forces, but it would be of no use in enabling us to test the correctness of the calculation.
But we have a graphical method of testing the equilibrium of any set of forces acting at a point. We draw in series a set of lines parallel and proportional tc these forces. If these lines form a closed polygon the forces are in equilibrium. We might in this way form a series of polygons of forces, one for each joint of the frame. But in so doing we give up the principle of draw-ing the line representing a force from the point of applica-tion of the force, for all the sides of the polygon cannot pass through the same point, as the forces do.
We also represent every stress twice over, for it appears as a side of both the polygons corresponding to the two joints between which it acts.
But if we can arrange the polygons in such a way that the sides of any two polygons which represent the same stress coincide with each other, we may form a diagram in which every stress is represented indirection and magnitude, though not in position, by a single line which is the com-mon boundary of the two polygons which represent the joints at the extremities of the corresponding piece of the frame.
We have thus obtained a pure diagram of stress in which no attempt is made to represent the configuration of the material system, and in which every force is not only represented in direction and magnitude by a straight line, but the equilibrium of the forces at any joint is manifest by inspection, for we have only to examine whether the corresponding polygon is closed or not.
The relations between the diagram of the frame and the diagram of stress are as follows :—
To every link in the frame corresponds a straight line in the diagram of stress which represents in magnitude and direction the stress acting in that link,
To every joint of the frame corresponds a closed polygon in the diagram, and the forces acting at that joint are represented by the sides of the polygon taken in a certain cyclical order. The cyclical order of the sides of the two adjacent polygons is such that their common side is traced in opposite directions in going round the two polygons.
The direction in which any side of a polygon is traced is the direction of the force acting on that joint of the frame which corresponds to the polygon, and due to that link of the frame which corresponds to the side.
This determines whether the stress of the


Temperature Measurement (Sensing) and Monitoring
Temperature measurement (sensing) and monitoring will be economical and straightforward if we apply the input of TC9400 V/F converter with a voltage from output of a probe, such as shown in diagram below. The V/F output is simply counted to display the temperature. The TC9400 can be used to modulate an RF transmitter for a long distance data transmission.
The temperature display should have latch control, means that the counting process is not transparently displayed on the seven segment until a latch signal is triggered to transfer the counting result to be displayed. After latched, the reset signal would reset the counter without affecting the latched display. [Circuit's schematic diagram source: Microchip Datasheet]


Categories
Strictly Fish Wrap
Just another WordPress site
What Is Vro On Johnson Outboard
There are many different types of outboard motors on the market today, and each has its own specific set of features and benefits. One type of outboard motor that is gaining popularity is the VRO, or Variable Ratio Oil Injection, motor. This type of motor is designed to provide optimal performance and fuel economy by automatically adjusting the oil/fuel mixture to match the conditions.
VRO, or Variable Ratio Oil Injection, is a system found on some older Johnson outboard motors. It allowed the operator to premix oil and gas at a 50:1 ratio, but also had the ability to inject oil into the fuel stream at a higher ratio, up to about 150:1. This system was designed to give the engine more lubrication at high speeds, when the oil/gas mixture is more likely to separate.
VRO systems were eventually phased out in favor of direct injection systems, which are simpler and more reliable.
Understanding and Preventing Failure of Your OMC Johnson Evinrude VRO System
What does VRO mean on Johnson outboard?
The term VRO stands for "Variable Ratio Oil Injection" and is found on some older model Johnson outboard motors. This system injected oil into the fuel mixture at a set ratio, regardless of the fuel/air mixture. The benefits of this system were two-fold.
First, it ensured that the engine always had a sufficient amount of oil in the mixture, which helped to lubricate and protect the engine. Second, it helped to improve the overall efficiency of the engine by reducing the amount of fuel that was needed to run it. However, the VRO system was eventually phased out by Johnson in favor of a more traditional oil injection system.
What does VRO do on a outboard motor?
VRO, or Variable Ratio Oil Pump, is a device fitted to some outboard motors. It allows the user to mix oil and fuel directly in the outboard motor, in the correct ratio, without the need for a separate fuel/oil mixing container. The VRO pump is fitted to the side of the outboard motor, and has a fuel hose and an oil hose attached to it.
The oil hose delivers oil to the pump from an oil tank, and the fuel hose delivers fuel to the pump from a fuel tank. The pump has a lever which the user can adjust to change the ratio of oil to fuel being delivered to the engine. The advantage of a VRO pump is that it eliminates the need to premix fuel and oil, and also eliminates the risk of getting the ratio wrong and damaging the engine.
It also means that fuel can be stored for longer periods of time without the risk of it going off. The disadvantage of a VRO pump is that it can be expensive to repair or replace if it goes wrong, and also that it can be difficult to find replacement parts for older models.
How does a Johnson VRO pump work?
The Johnson VRO pump is a type of oil pump that was specifically designed for use with outboard motors. It is a positive displacement pump that is driven by the engine, and it is used to pump oil from the oil tank to the engine. The VRO pump is a very important part of the outboard motor, and it is responsible for lubricating the engine and keeping it cool.
Without the VRO pump, the outboard motor would not be able to function properly.
How do I know if my VRO pump is working?
If you have a VRO pump, you may be wondering how you can tell if it is working properly. There are a few things that you can look for to see if your pump is functioning correctly. One way to tell if your VRO pump is working is to check the oil level in the pump.
If the oil level is low, it could be a sign that the pump is not working properly. You should also check the oil level in the engine to make sure that it is full. Another way to tell if your VRO pump is working is to listen to the sound of the pump.
If the pump is making a loud noise, it could be a sign that the pump is not working properly. If you notice any of these signs, you should take your VRO pump to a mechanic to have it checked out.
what is vro on johnson outboard
Credit: _URL_
Johnson vro pump diagram
If you're looking for a Johnson vro pump diagram, you've come to the right place. Here at Johnson Pump Diagrams, we have a wide selection of diagrams for all types of Johnson pumps, including the vro pump. The vro pump is a versatile pump that can be used for a variety of applications, from irrigation to water treatment.
It's a popular choice for many because it's easy to install and operate. When it comes to choosing a vro pump, there are a few things to keep in mind. First, you need to decide what type of vro pump you need.
There are two main types: the standard vro pump and the high-pressure vro pump. The standard vro pump is the most common type. It's designed for applications where the water pressure isn't too high.
The high-pressure vro pump is designed for applications where the water pressure is higher, such as in irrigation systems. Once you've decided on the type of vro pump you need, the next step is to find a reputable supplier. There are many companies that sell vro pumps, but not all of them are created equal.
Make sure to do your research and find a supplier that you can trust. Johnson Pump Diagrams is a great place to start your search. We offer a wide selection of diagrams for all types of Johnson pumps, including the vro pump.
Johnson 40 hp vro removal
In order to remove the Johnson 40 hp vro, it is necessary to first disconnect the power. Next, remove the cowl and the engine cover. Then, disconnect the fuel lines and the electrical connections.
Finally, remove the bolts that hold the vro in place.
Converting vro to pre-mix
If you're a fan of two-stroke engines, you're probably familiar with the differences between premix and oil injection. Oil injection systems automatically mix oil and gas in the proper ratio, while premix systems require you to mix the oil and gas yourself. Many people believe that premix is the superior option, as it eliminates the potential for problems that can occur with oil injection systems.
If you're converting a two-stroke engine from oil injection to premix, there are a few things you need to do. First, you'll need to drain the oil from the engine. Next, you'll need to remove the oil injection pump and all associated hoses and fittings.
Finally, you'll need to mix the gas and oil yourself, using a ratio of 50:1. Mixing the gas and oil can be a bit tricky, so it's important to get the ratio right. Too much oil in the mixture will cause the engine to smoke, while too little oil will cause serious damage.
Once you've mixed the gas and oil, you can fill up the tank and enjoy the benefits of premix!
Conclusion
The VRO on a Johnson outboard is the oil pump. It is responsible for supplying oil to the engine. The VRO is located on the side of the engine, near the oil filter.
The VRO has two hoses that connect to it, one from the oil tank and one from the oil filter. The VRO also has a bleed screw that is used to bleed the air out of the system.
Back to top


Unilateral Transfer
What is a 'Unilateral Transfer'
A unilateral transfer is an economic transactions between residents of two nations over a stipulated period of time, usually a calendar year. Typically, these transactions consist of gift exchanges, pension payments and the like, but they can encompass other goods and services as well.
BREAKING DOWN 'Unilateral Transfer'
Unilateral transfers are included in the current account of a nation's balance of payments. They are distinct from international trade, encompassing such things as humanitarian aid and payments made by immigrants to their former country of residence.


Love Poems
American Sonnets for My Past and Future Assassin is the title of a poetry collection, the title of each sonnet that appears in the collection, a political statement and a riddle. What is an American sonnet and who is the assassin, Terrance Hayes asks. And why would anyone want to write their assassin a love poem?
American Sonnets for My Past and Future Assassin by Terrance Hayes
I lock you in an American sonnet that is part prison,
Grinder to separate the song of the bird from the bone.
I lock your persona in a dream-inducing sleeper hold
While your better selves watch from the bleachers.
I make you both gym & crow here.
Terrance Hayes, American Sonnets for My Past and Future Assassin (Penguin RandomHouse 2018)
Ye Olde Sonnet
The sonnet originated in Italy during the 13th century. The little song was popularized by Petrarch before being co-opted by Shakespeare in the 17th century. For those of us who were educated in the Anglophone world, you may have traumatic memories of parsing the Shakespearean sonnet.
A sonnet is typically a love poem, an ode, praises in verse to that special someone or something. The form requirements are rigid: 14 lines in iambic pentameter (da-DUM, da-DUM, da-DUM) with a repeating rhyme scheme (say, ABAB CDCD EFEF GG). It sounds like something an old dead white guy would write. So why does a hip and happening Black man like Hayes choose to write inside such a tight fitting box?
Every sonnet consists of a proposition and a resolution. The first part is a proposition that poses a question or problem. Between proposition and resolution, we find the volta or sudden turn, a new argument that can change our perspective.
Voltas of acoustics, instinct & metaphor. It is not enough
To love you. It is not enough to want you destroyed.
From: I lock you in an American sonnet
An American sonnet
According to Hayes, the volta is what makes a sonnet implicitly American: the ability to change your mind, the willingness to change your course. The subject matter of his poems is, of course, largely rooted in the American experience. They were written in direct response to the election of Donald Trump as the US president in 2016. Is he the titular Assassin?
On some level, I'm always full of Girl Scout cookies
In the land of a failed landlord with a people of color
If every sonnet were addressed to the current resident of the White House, Hayes' collection would be little more than a rant. But this collection is far more complex than that. Hayes speaks, among many other topics, about being Black in America today.
It feels sadder when a black person says Nigga
Because it sounds like Nigger. It feels sadder
When a brother or sister says Nigga because
It sounds like Nigger. I have never heard either
Word in the mouth of my mother or father.
This wouldn't be a proper sonnet collection if Hayes had not included some true love poems. To the women in his life, old and young, real and imagined.
A brother versed in ideological & material swagger
Seeks dime ass trill bitch starved enough to hang
Doo-ragged in smoke she can smell & therefore inhale
And therefore feel.
Hayes sings of his heroes: Maxine Waters, James Baldwin, Jimi Hendrix, Aretha Franklin, Thelonius Monk and Miles Davis. And to his antiheroes, too.
I pour a pinch of serious poison for you
James Earl Ray Dylann Roof I pour a punch of piss
For you George Zimmerman John Wilkes Booth
Robert Chambliss Thomas Edwin Blanton Jr
Bobby Frank Cheer Herman Frank Cash your name
Is a gate opening upon another gate I pour a punch
Of perils I pour a bunch of punches all over you
I pour unmerciful panic into your river I damn you
With the opposite of prayer
This is a sonnet written for the 21st century. Rather than iambic pentameter, listen for a jazz bass line. Look for the rhymes flying free from the ends of lines. Take these words into your mouth and roll them around like cool marbles. Now, sing.
2 Nov 2020 | Karen Kao


abilities are comparable to those of human children. However, the IQ of a chimpanzee cannot be accurately measured using a traditional IQ test designed for humans. Still, chimpanzees' cognitive abilities are impressive and have helped scientists better understand animal intelligence and the evolution of cognition in primates.
Resources
 1. Smartest Animals: 15 Species That Are Truly Genius
 2. Top 12 Most Intelligent Animals in the World, Ranked in 2022
 3. The 10 Smartest Animals in the World – 2022 Rankings
 4. Top 10 Smartest Animals on Earth
 5. 13 Smartest Animals In The World


text:
A Cross-Section of the Calabi-Yau Quintic
Hidden deep inside the dimensions of string theory are the microscopic Calabi-Yau spaces.
According to string theory, space-time is not four-dimensional as you might expect, but actually 10-dimensional. The extra six dimensions are believed to be compactified or rolled up into such a small space that they are unobservable at human scales of sight. Their size and six dimensions make Calabi-Yau spaces difficult to draw. But, this model shows a three-dimensional cross-section of this likely space to reveal its structure and shape.
This 3" cube and the surface within is a wildly self-intersecting ride through space. Cement your place in string theory history by adding this highly intriguing crystal to your collection. It includes clear rubber feet for scratch-free display. And, if you want to learn more about the mathematics of this wondrous cube, read on...This particular space is one of the most appealing candidates, because there's a series of Calabi-Yau spaces embedded in CPN (N-dimensional complex projective space) described by homogeneous polynomials of degree (N+1).
These spaces have real dimension 2(N-1), so the hypothesis that there are six hidden dimensions in string theory means that there is a unique choice within this series of Calabi-Yau spaces, namely N=4, and the polynomial must be this quintic (degree N+1=5): z15 + z25 + z35 + z45 + z55 = 0.
The 2-D surface is computed by dividing by z5 and setting z3/z5 and z4/z5 to be constant. This defines a 2-manifold slice of the 6-manifold; we then normalize the resulting inhomogeneous equations to simplify them, yielding the complex equation that is actually solved for the surface, z15 + z25 = 1. The resulting surface is embedded in 4D and projected to ordinary 3D space for display
This 3" cube includes clear rubber feet for a scratch-free display. Lighted base is available separately.


text:
In this new on-demand webinar we demonstrate how to generate a hybrid hexahedral-tetrahedral mesh for the Potsdam Propeller. You'll see both approaches (solid meshing and fault tolerance meshing) to generating surface meshes on the geometry model, the T-Rex technique for generating boundary layer resolved meshes, Glyph scripting, and more.
The Potsdam Propeller Test Case (PPTC) is a benchmark case used for assessing the accuracy of existing computer codes and modeling strategies in simulating hydrodynamic propeller performance. The controllable pitch propeller design was tested at several different conditions and has a wealth of experimental data for CFD validation.
In this on-demand webinar, we walk through creating an unstructured hybrid mesh consisting primarily of hexahedra and tetrahedra for the PPTC geometry while presenting several meshing best-practice guidelines.
Discover how to:
- Apply both Solid Modeling and Fault Tolerant surface meshing techniques to create, repair, and add localized grid resolution
- Automate frequently-used meshing tasks by using Glyph utility scripts
- Improve cell quality of structured surface domains with the elliptic solver
- Copy, Transform, and Paste existing grid entities to substantially reduce time spent meshing
- Quickly create 3-D volume grids for simple shapes like boxes, cylinders, spheres, and polygons
- Export grid, boundary, and volume conditions to over sixty CAE solver grid formats by using the built-in CAE Solver plug-in


text:
It's almost the end of the year, so you need to prepare tax deduction documents for 2023. For those who earn more than 120,000 Baht per year, don't forget to file personal income tax return. As there are many tax deduction documents required, you need to prepare all the documents to reduce taxes and not lose your tax deduction right. Let's see how much health insurance or life insurance is tax deductible and also see a checklist of required tax deduction documents for each insurance.
Checklist of tax deduction documents required in 2023
Tax reductions are divided into 4 groups detailed as follows:
1. Personal and family allowances
1.1 Personal allowance 60,000 Baht, eligible without any conditions required.
1.2 Spouse allowance 60,000 Baht, must be legal spouse who has no income (up to 1 person)
Must be legal spouse who has no income (up to 1 person)
1.3 Pregnancy and maternity allowance Deductible as charged, not more than 60,000 Baht per pregnancy. This tax deduction shall be given to the wife. In case the wife has no income, the husband shall exercise the right instead.
1.4 Child allowance 30,000 Baht for each
- Must be a legal child or an adopted child who has already been registered for adoption
- Not more than 20 years old or not more than 25 years old and currently studying
- In case the child is over 25 years old but declared incapacitated or quasi-incompetent, the child is eligible for the tax deduction.
- Counted from the second child born since 2018, the tax deduction is 60,000 Baht each.
1.5 Allowance for parental care
Allowance for a parent of the taxpayer or the spouse 30,000 Baht per person, up to 4 persons, up to 120,000 Baht
- The parents must be over 60 years old and have an annual income of no more than 30,000 Baht. The allowances cannot be reapplied between siblings.
- Must not be an adoptive parent
1.6 Allowance for a disabled person or person with disability 60,000 Baht per person, and the disabled must have an income not exceeding 30,000 Baht per year and must have a disabled card. The taxpayer must have petitioner's certificate.
2. How much are insurance and investment tax deductible?
2.1 Premiums of life and saving insurance The deduction amount is subject to the actual payment, up to 100,000 Baht.
2.2 Premiums of health insurance The deduction amount is subject to the actual payment, up to 25,000 Baht. (Tax deduction combined with Item 2.1 Life and Savings Insurance must not exceed 100,000 Baht.)
2.3 Social security fund contribution The deduction amount is subject to the actual payment, up to 9,000 Baht.
2.4 Health insurance premium for parent(s) The deduction amount is subject to the actual payment, up to 15,000 Baht.
2.5 Investments in Social Enterprise The deduction amount is subject to the actual payment, up to 100,000 Baht.
2.6 Annuity life insurance premiums The deduction is for 15% of the actual payment, up to 200,000 Baht. Financial planning with annuity insurance provides you tax deduction and annuity payment after retirement.
2.7 Retirement Mutual Fund (RMF) The deduction is for 30% of the actual payment, up to 500,000 Baht.
2.8 Super Saving Funds (SSF) The deduction is for 30% of the actual payment, up to 200,000 Baht.
2.9 PVD/ Private School Teacher's Welfare Fund The deduction is for 15% of the actual payment, up to 500,000 Baht.
2.10 Government Pension Fund of Thailand (GPF) The deduction is for 30% of the actual payment, up to 500,000 Baht.
2.11 National Savings Fund (NSF) The deduction amount is subject to the actual payment, up to 30,000 Baht.
(For insurance, savings, and investment Item 2.6 – 2.11, total tax deduction amount must not exceed 500,000 Baht.)
👉 Choose the insurance you need, and exercise your tax deduction right in 2023.
3.1 General donations The deduction amount is subject to the actual payment, up to 10% of income after tax deduction
3.2 Donations for education, sports, social development, public benefits and government hospitals Tax deductible of 2 times of the actual donation amount, up to 10% of income after tax deduction
3.3 Donations to political parties Tax deductible up to 10,000 Baht, starting from 1 January 2018 onwards
4. Economic stimulus of the government
4.1 Shop and Payback Campaign 2023 Tax deductible up to 40,000 Baht. Products and services eligible for tax deduction in 2023 are products and services subject to VAT, OTOP products, and books (including e-books).
4.2 Interest on loans for the purchase or construction of housing The deduction amount is subject to the actual payment, up to 100,000 Baht
What insurance is not tax deductible?
Q: Is group insurance tax deductible?
Group insurance is a welfare that a company provides to its employees. It is tax deductible for the company but not for the employees.
Q: Is insurance for children tax deductible?
Premiums of insurance for children are not tax deductible. Parents can deduct the tax with child allowance as specified by the government. Therefore, before purchasing an insurance to reduce tax, please be careful in choosing the type of insurance.
For anyone who has not yet studied the different types of insurance but would like tax deductions in 2023, it is recommended to purchase a health insurance first as it provides both health coverage and tax deduction. After that, you can study and purchase more insurance as needed, such as annuity insurance and savings insurance which are eligible for tax deductions as well. This is to plan your finances in the future to not worry about retirement life.
Choose lump sum health insurance to take care of both small and critical illnesses with coverage amount from 200,000 Baht to 100,000,000 Baht, covering heart disease, cancer, common diseases, including medical treatment technologies. The insurable age is up to 90 years, with long-term coverage until the age of 99 years.
- Coverage period of the rider must not exceed the coverage period of the life insurance policy that this rider is attached to.
- Premium is eligible for tax deduction. Conditions are as specified by the Revenue Department.
- Underwriting is subject to the Company's rules.
- Conditions are as specified by Muang Thai Life Assurance PCL and the banks.
- Conditions are according to the medical standard and necessity.
- Please study the details of coverage, conditions and exclusions before making a decision to purchase insurance.
Resources: Data retreived on 24/07/2023
Content Reposted from Muang Thai Life Assurance Website


text:
The synthesis and characterizations of fluorinated telomers based on vinylidene fluoride (VDF) by iodine transfer polymerization (ITP) are presented. These telomers were prepared in the presence of ω-iodoperfluorinated functional chain transfer agents, C6F13I or C4F9I. ITPs were initiated by thermal decomposition of bis(4-tert-butylcyclohexyl) peroxydicarbonate (BBCHPDC), in solution (in the presence of acetonitrile). The obtained telomers were characterized by different analyses such as elemental analyses, nuclear magnetic resonance (NMR), Fourier transform infrared spectroscopy, size exclusion chromatography, X-ray diffraction (XRD), and finally by thermal analyses such as differential scanning calorimetry (DSC) and thermogravimetric analyses. These technical analyses enabled one to assess their chemical structures, various thermal properties, and their crystalline forms. The assignments of the characteristic signals obtained by 19F NMR spectroscopy enabled one to calculate the average degrees of polymerization (DPn) and percentages of CH2CF2I end group functionalities that depend on the initiator and the fractionation process after reaction. A good control of polymerization was shown by the absence of reversed CH2CF2CF2CH2 (VDF–VDF dyads) and narrow polydispersity indices (<1.2). The XRD and DSC evidenced the influence of the chain length of the telomers on the crystallinity rate (>70%) and indicated two crystalline forms, α and β, that depended on DPn values. © 2010 Wiley Periodicals, Inc. J Polym Sci Part A: Polym Chem, 2010
If you can't find a tool you're looking for, please click the link at the top of the page to "Go to old article view". Alternatively, view our Knowledge Base articles for additional help. Your feedback is important to us, so please let us know if you have comments or ideas for improvement.


text:
Aven Family History
14-Day Free Trial
Aven Name Meaning
Scandinavian: unexplained. English: variant spelling of Avon. German: patronymic from the Frisian personal name Ave. The surname is frequent in the areas of Oldenburg and Jeverland. Dutch: metonymic occupational name from Middle Dutch haven 'pot'. Americanized form of French Avenne or Avoine, literally 'oats', hence a metonymic occupational name for a grain grower or merchant.
Source: Dictionary of American Family Names ©2013, Oxford University Press
Similar surnames: Avena, Ave, Even, Raven, Avey, Aden, Bien, Aveni, Savin, Laven


HashTable(){
 this.hashArr = new Array();
 this.length = 0;
}
HashTable.prototype.get = function(key) {
 return this.hashArr[key];
};
HashTable.prototype.put = function(key, value) {
 if (typeof(this.hashArr[key]) == 'undefined') {
 this.length++;
 }
 this.hashArr[key] = value;
};
HashTable.prototype.remove = function(key) {
 if (typeof(this.hashArr[key]) != 'undefined') {
 this.length--;
 var value = this.hashArr[key];
 delete this.hashArr[key];
 return value;
 }
};
HashTable.prototype.has = function(key) {
 return (typeof(this.hashArr[key]) != 'undefined');
};
Now let's create a sample hash table for an efficient phone lookup:
var phoneLookup = new HashTable();
phoneLookup.put('Jane', '_PHONE_');
phoneLookup.put('John', '_PHONE_');
alert(phoneLookup.get('Jane'));
18. Check Whether an Item Exists in the Array
JavaScript Array object does not provide a built-in method to return whether a given value exists in the array. However, we can add a prototype method to extend Array functionality by adding a method to return whether the array has the given value.
Array.prototype.has = function(value) {
 var i;
 for (var i = 0, loopCnt = this.length; i < loopCnt; i++) {
 if (this[i] === value) {
 return true;
 }
 }
 return false;
};
Note that this method uses === operator to check if the value is identical (is equal to and is of the same type) to the value in the array. If you want to check only whether they are equal, you should replace === with == operator (is equal to).
Then, we can use this method as follows:
var arr = new Array();
arr[0] = 'test';
alert(arr.has('test')); // Should display true
alert(arr.has('test2')); // Should display false
19. Retrieve Query String Values
ASP.NET provides Request.QueryString collection that retrieves the values of the variables in the HTTP query string, but there is no built-in mechanism to retrieve query string collection on the client-side. However, you can parse the window location search property to get the query string values by using the GetAttributeValue method that we provided in one of our previous tips to center your window. Note that window.location.search property gets or sets the substring of the href property that follows the question mark.
function GetAttributeValue(attribList, attribName, firstDelim, secondDelim) {
 var attribNameLowerCase = attribName.toLowerCase();
 if (attribList) {
 var attribArr = attribList.split(firstDelim);
 for (var i = 0, loopCnt = attribArr.length; i < loopCnt; i++) {
 var nameValueArr = attribArr[i].split(secondDelim);
 for (var j = 0, loopCnt2 = nameValueArr.length; j < loopCnt2; j++) {
 if (nameValueArr[0].toLowerCase().replace(/\s/g, '') ==
 attribNameLowerCase && loopCnt2 > 1) {
 return nameValueArr[1];
 }
 }
 }
 }
}
This method takes three arguments: a name/value pair list, the attribute name to retrieve its value, the first delimiter and the second delimiter. The first delimiter will be ampersand and the second delimiter would be equal sign to parse query string variables. Then you can use the following method to retrieve the query string value for given query string variable name.
function GetQueryStringValue(varName) {
 return GetAttributeValue
 (window.location.search.substring(1), varName, '&', '=');
}
20. Move the Focus Away from your Dropdown after Change Event
When the user changes the selection in a DropDownList, the focus remains inside the dropdown. If the user presses up/down arrow key or moves the mouse wheel, that action triggers the onchange event on the dropdown.
You can prevent this by making the dropdown lose focus in the onchange event.
JavaScript
function LoseFocus(ddlElem) {
 ddlElem.blur();
}
ASPX
<asp:DropDownList id="ddlLoseFocus" runat="server" AutoPostBack="true" />
C#
protected void Page_Load(object sender, EventArgs e)
{
ddlLoseFocus.Attributes.Add("onchange", "LoseFocus(this)");
}
21. Handle Asynchronous Operations with Minimally Growing Arrays
When you work with asynchronous AJAX callbacks, you might need to store the callback results in an array to process them later. The tricky part is to keep the array size at minimum. In order to do this, you can empty the array item when you are done with processing it and make it available for future callback results and always insert the new callback result to the first available array item.
function InsertActiveCallbackArr(arrayObj, arrayElem) {
 var i = 0;
 for (var loopCnt = arrayObj.length; (i < loopCnt) && arrayObj[i]; i++);
 arrayObj[i] = arrayElem;
}
When you are done with the callback result, simply set that array item to null.
function ProcessActiveCallbackArr(arrayObj) {
 for (var i = 0, loopCnt = arrayObj.length; i < loopCnt; i++) {
 // Process the callback result here
 // Then set the array item to null
 arrayObj[i] = null;
 }
}
22. Pass Data from One Page to Another using Post
If you need to pass small amounts of data from one page to another, you can pass it in the query string and the target page can retrieve it through Request.QueryString collection (GET operation). However, if you need to pass a large amount of data, you cannot pass it in the query string since Internet Explorer has maximum 2048 character limit on the address of the page. In these cases, you can pass data from one page to another using POST operation. In your source page, define a hidden variable to hold the data to pass and pass only its ID to the target page in the query string.
The target page should first get that ID through Request.QueryString collection. Then it should set its own hidden variable value with the one in the source frame on the client-side during BODY onload event handler. You can use opener object on the client-side to retrieve the DOM elements in the opener page. Then it should do a postback to itself and retrieve the value of its hidden variable through Request.Form collection.
Source Page JavaScript
function PassData(ctlID) {
 window.open('TargetPage.aspx?ctlID=' + ctlID, 'NewWindow', 'width=400,height=300,
 location=no,menubar=no,resizable=no,scrollbars=no,status=yes,toolbars=no');
}
Source Page ASPX
<asp:TextBox ID="txtPassData" runat="server" Text="Data to pass"
 CssClass="TextBox"></asp:TextBox>
<asp:Button ID="btnPassData" runat="server" Text="Pass Data"
 CssClass="Button" OnClientClick="PassData('txtPassData'); return false;" />
Target Page JavaScript
function Body_Onload() {
 var pageStatusElem = document.getElementById('hfPageStatus');
 // Page status hidden field value is initially empty string
 if (pageStatusElem.value == '') {
 // Set text to spell check hidden field value to the
 // text in the opener window
 document.getElementById('hfTextPassed').value =
 opener.window.document.getElementById
 ('<%=Request.QueryString["ctlID"]%>').value;
 // Set page status hidden field value so that when the page is posted back


text:
Open Observatory of Network Interference (OONI)
The Open Observatory of Network Interference (OONI) is a free software project under the Tor Project which aims to detect internet censorship, traffic manipulation and signs of surveillance around the world through the collection and processing of network measurements. Since late 2012, OONI has collected millions of network measurements across more than 90 countries around the world, shedding light on multiple cases of network interference. OONI is based on various free software tests which are designed to measure the following: a) Blocking of websites; b) Detection of systems responsible for censorship, surveillance and manipulation; and c) Reachability of Tor, proxies, VPNs, and sensitive domains. This will be added to Privacy Resources Subject Tracer™, This will be added to Entrepreneurial Resources Subject Tracer™. This will be added to World Wide Web Reference Subject Tracer™.


text:
John L. Hall held his Nobel Lecture December 8, 2005, at Aula Magna, Stockholm University. He was presented by Professor Sune Svanberg, Chairman of the Nobel Committee for Physics. Summary: A historical account of mechanical clockworks is followed by an in-depth survey of methods to measure optical frequencies with very high resolution. The evolution of the experimental programme at JILA, University of Colorado, is described in detail. The re-definition of metre is discussed.
Credits: World Television Sweden AB (production)
Copyright © Nobel Web AB 2005
The Nobel Prize in Physics 2005 Lecture (pdf)