Literate Programming Using Noweb
Noweb is a tool designed to enable a programmer to write documentation and code at the same time, with the goal of producing code that is easy to understand and maintain.
Writing the Program in Noweb
With the knowledge of what comes out the end of the pipeline in hand, we can now describe the structure of the nw source file itself. The nw source file for our example program is given in Listing 1.
When you write a noweb program, you alternate between explaining some piece of code and providing the formal definition of that piece of code. You must indicate whether you are entering documentation or code by using one of two noweb tags.
To begin writing documentation, one starts with an @ symbol in the left column, followed by either a space or a newline. This indicates that all of the text that follows, at least up to the next tag, is documentation text. All documentation text is passed through the filtering process to the (LA)TeX file. Thus, the author is responsible for providing any special formatting such as sections, tables, footnotes and mathematical formulae which may be desired or needed in the documentation.
In addition to the standard (LA)TeX command set, noweb provides three additional control sequences. Any text surrounded by double square brackets in the text is typeset in the same fashion as literal code, and the \nowebindex and \nowebchunks commands expand into the two types of indices shown at the end of our example in Figure 1.
To indicate the beginning of a code chunk, you use double angle brackets surrounding a name for the code chunk followed by an equal sign:
Everything following this construct is considered to be literal code or a reference to another chunk name. You reference another chunk name by placing its name in double angle brackets with no trailing equal sign. As with documentation, a code chunk is terminated when another tag is encountered. To continue a code chunk definition, you start a new code chunk using the same name within the brackets as the chunk to be continued.
The special formatting and cross-referencing of code chunks is handled automatically by noweb and requires no special input by the user—with the one exception of manually specifying identifier definitions.
To manually list identifiers which are defined in a given chunk, you terminate that chunk with a line of the form:
@ %def
The identifiers given on the line will be placed in a "Defines" footnote for that chunk and will automatically be cross-referenced and indexed by noweb as described in the previous section.
The process by which notangle extracts the code into a form suitable for the compiler or interpreter follows just a few simple rules. A root chunk is specified on the command line as the chunk to be extracted and assembled. This chunk is then printed line by line until a reference to another chunk is encountered. At this point, the referenced chunk is output line by line—and similarly for any chunks referenced therein. When the referenced chunk has been output, notangle continues the process of outputting the root chunk.
When dealing with continued chunks—two or more chunks sharing the same name—notangle concatenates their definitions in order of appearance into a single, named chunk. The extracted code for our example program is in Listing 2, and it can be seen that all spacing and indentation is preserved appropriately in the executable version.
Because of the way notangle extracts and assembles its input, the program can be presented and explained in the best order for human understanding. notangle will make sure that the program chunks are in the right order for the compiler or interpreter.
The Incantations
Now that we know how to create a program in noweb, we can examine the methods of generating our typeset and executable versions of the program. The noweb distribution provides a general shell script called, remarkably, noweb which drives the notangle and noweave processes. However, this method of invocation, though simple, is somewhat limited. We will focus here on using each tool separately as this method provides a more flexible approach.
When you invoke notangle, you specify a chunk name (a root chunk) to extract and assemble from the nw source file. If you fail to specify a chunk, notangle searches for a chunk named * to extract (this is the default root chunk in a noweb program). The notangle tool writes to stdout, so you must redirect this to a file of your choice. The general form of the command is:
notangle [-R
Thus, to extract the executable version of our example program we use:
notangle -Rautodefs.perl autodefs.perl.nw >
The -R option specifies which root chunk to extract. The -L option is used to embed line directives, if they are supported by the compiler/interpreter you are using. The line directives refer to locations in the nw source file. Thus, when debugging your code, you never need to refer to the executable version. Rather, you can edit the code in the nw source file. The default format is for use with the C preprocessor, but it also works well with Perl, with one catch. The line directives are emitted whenever a chunk is entered or returned to, and refer to the next line of code. Therefore, in a script such as ours, a line directive winds up as the first line of the executable version before the #! line, rendering it non-executable. The fix for this is to delete the first line directive, or to move it below the first line and increment the line number by one.
One can write filters for use with either notangle or noweave that manipulate the source once it is in the pipeline. The pipeline representation of the nw source file in noweb is beyond the scope of this article (see the "Noweb Hacker's Guide" included in the documentation of the distribution). However, it should be noted that a filter could easily be constructed which automates the solution to the line directive problem.
The typeset version of the program is generated with the noweave tool. There are several useful options for noweave, all detailed in the man pages. We will only consider a few of the most important options here.
The first option of general interest concerns the desired output: you can specify -latex (default), -tex or -html as the formatting language to be used for the final documentation. Each of these options will supply an appropriate wrapper (which can be suppressed with the -n option) for the typeset version. You can write your nw source file intended for LATeX typesetting and still have the option of producing an HTML document by invoking noweave with the -html option and the LATeX-to-html filter (-filter l2h) included with the distribution.
The -x option enables cross-referencing and indexing of chunk names, as well as any identifiers which are automatically recognized by an "autodefs" filter. Using the -index option implies -x and provides cross-referencing and indexing for manually defined identifiers—those mentioned in @ %def statements in the nw source file.
Normally, noweave inserts additional information, such as the filename for use in page headers, as part of its wrapper. The -delay option causes noweave to suspend the insertion of this information until after the first documentation chunk. This is most useful when you wish to provide your own (LA)TeX wrapper to specify additional packages or to define your own special formatting commands. This implies a -n (omission of wrapper) option and requires that you make sure to include a \end{document} control sequence in a documentation chunk at the end of the file to complete the wrapper. Our example nw source file is written in this fashion.
Our typeset version (Figure 1) was produced by first extracting the autodefs.perl root chunk with notangle and making it executable using the chmod system command. We then placed this executable in the noweb library directory and invoked noweave as:
noweave -autodefs perl -delay -index
 autodefs.perl.nw > autodefs.tex
We can then run LATeX on the resulting file—twice, to resolve page references—to create the dvi file, then use dvips to create the postscript version for inclusion with this article.
Additional options allow you to have the index created from an external file, to expand tabs and to specify alternative formatting options provided by the included noweb.sty file. The latter includes options to omit chunk numbering in the left margins, change text size in code chunks and switch from the symbolic cross-referencing of code chunks occurring at the right margin to simple footnote style cross-referencing similar in style to the "Defines" and "Uses" footnotes.
Learn More
Sponsored by Bit9
Linux Backup and Recovery Webinar
Learn More
Sponsored by Storix


text:
Royal Navy surface fleet
of the British Armed Forces
|History and future|
The Surface Fleet is the name given to the collection of surface vessels (as opposed to submarines or aircraft) of the Royal Navy. At present it consists of two flotillas based at Portsmouth and Devonport, both on the south coast of England, and a flotilla based at the Clyde Naval Base at Faslane in Scotland.
The Surface Fleet consists of a wide variety of vessels, ranging from aircraft carriers to mine countermeasures vessels to offshore patrol vessels, but the backbone of the fleet consists of destroyers (type 42 and type 45) and frigates (type 23).
The surface fleet has recently been engaged in numerous operations in the North and South Atlantic, the Caribbean, the Northern Persian Gulf and the Mediterranean Sea, where the Cyprus Squadron is based. Closer to home, the surface fleet also conducts Fishery Protection Patrols in UK waters, in a formal agreement with DEFRA. The Fishery Protection Squadron is the largest front line squadron in the Royal Navy.
 See also
|This United Kingdom navy-related article is a stub. You can help Wikipedia by expanding it.|

source: HuggingFaceFW/fineweb-edu


Remote Initial Program Load
From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Remote Initial Program Load (RIPL or RPL) is a protocol for starting a computer and loading its operating system from a server via a network. Such a server runs a network operating system such as LAN Manager, LAN Server, Windows NT Server, Novell NetWare, LANtastic, Solaris or Linux.[1]
RIPL is similar to Preboot Execution Environment (PXE), but it uses the Novell NetWare-based boot method. It was originally developed by IBM.
IBM LAN Server[edit]
IBM LAN Server enables clients (RIPL requesters) to load the operating systems DOS or OS/2 via the 802.2/DLC-protocol from the LAN (often Token Ring). Therefore, the server compares the clients' requests with entries in its RPL.MAP table. Remote booting DOS workstations via boot images was supported as early as 1990 by IBM LAN Server 1.2 via its PCDOSRPL protocol. IBM LAN Server 2.0 introduced remote booting of OS/2 stations (since OS/2 1.30.1) in 1992.
RPL and DOS[edit]
For DOS remote boot to work, the RPL boot loader is loaded into the client's memory over the network before the operating system starts. Without special precautions the operating system could easily overwrite the RPL code during boot, since the RPL code resides in unallocated memory (typically at the top of the available conventional memory).[2][3][4] The RPL code hides and thereby protects itself from being overwritten by hooking INT 12h[5][4] and reducing the memory reported by this BIOS service by its own size. INT 12h is used by DOS to query the amount of available memory when initializing its own real-mode memory allocation scheme.[5][4] This causes problems on more modern DOS systems, where free real-mode address ranges may be utilized by the operating system in order to relocate parts of itself and load drivers high, so that the amount of available conventional memory is maximized. Typically, various operating system vendor and version specific "dirty tricks" had to be used by the RPL code in order to survive this very dynamic boot process[2] and let DOS regain control over the memory occupied by RPL once the boot is complete in a seamless manner.
Since MS-DOS/PC DOS 5.0 and DR DOS 6.0, the operating system checks if the RPL has hooked INT 2Fh by looking for a "RPL" signature at the code pointed to by INT 2Fh. If present, DOS calls INT 2Fh/AX=4A06h[3][4][6] to retrieve the amount of memory from the RPL and integrate it into its own memory allocation, thereby protecting the RPL code from being overwritten by other programs.[3][4] Still, it remained the RPL's difficult responsibility to cleanly remove itself from memory at the end of the boot phase, if possible.
RPLOADER and DR-DOS[edit]
In addition to this "RPL" interface, DR DOS supports a more flexible extension named "RPLOADER".[7][4] If DR DOS detects the presence of RPLOADER rather than RPL only, it starts to issue INT 2F/AX=12FFh/BX=0005h[3][7][4] broadcasts at certain critical stages in the boot process.[3][7][4] The RPL code can use them to relocate itself in memory (in order to avoid conflicts with other resident software or to avoid memory fragmentation when the RPL memory is freed later on), or to hook into and better integrate with the operating system in order to perform its final cleanup tasks in a well-defined and coordinated manner through a robust and supported backend interface rather than mere hacks.[3][7][4] This helps to improve compatibility without having to adapt the RPL code with each new version of the operating system, and it avoids unnecessary memory fragmentation and thereby increases available memory for DOS programs to run. The interface can also be utilized to run DR DOS as a task under a host operating system such as Concurrent DOS.[6]
See also[edit]
References[edit]
 1. ^ McKenzie, James; Lightfoot, Chris (1999). "RPLD - an RPL/RIPL remote boot server". Archived from the original on 2017-08-23. Retrieved 2009-06-11.
 2. ^ a b Paul, Matthias (1997-10-02) [1997-09-29]. "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM BOOT.TXT - A short description of how OpenDOS is booted". Archived from the original on 2003-10-04. Retrieved 2009-03-29. [1]
 3. ^ a b c d e f Paul, Matthias (2000-07-17). Brown, Ralf D., ed. "2F4A06: INT 2F - DOS 5+ - DOS SUPERVISOR "REBOOT PANEL" - ADJUST MEMORY SIZE". Ralf Brown's Interrupt List 61. Archived from the original on 2017-08-22. Retrieved 2017-08-22.
 4. ^ a b c d e f g h i Paul, Matthias (2002-08-13). "Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird". de.comp.lang.assembler.x86 (in German). Archived from the original on 2017-09-03. Retrieved 2017-09-03.
 5. ^ a b Brown, Ralf D. (ed.). "12: INT 12 - BIOS - GET MEMORY SIZE". Ralf Brown's Interrupt List. Archived from the original on 2017-08-22. Retrieved 2017-08-22.
 6. ^ a b Chappell, Geoff (1994). DOS Internals. Addison Wesley. ISBN 978-0-201-60835-9. ISBN 0-201-60835-9.
 7. ^ a b c d Paul, Matthias (2000-07-17). Brown, Ralf D., ed. "2F12FFBX0005: INT 2F - DR DOS 6.0+ - BOOT PHASE BROADCASTS FOR MEMORYMAX/RPLOADER/SECURITY". Ralf Brown's Interrupt List 61. Archived from the original on 2017-08-22. Retrieved 2017-08-22. (NB. Additional information is pending for release 62.)
Further reading[edit]


text:
The Marquess of Donegall, a former British war correspondent and London newspaper columnist, died Saturday at his home in Switzerland. His age was 71.
Lord Donegall was the sixth holder of the title, which dates to 1612 and originated in County Antrim, Northern Ireland. Named Edward Arthur Donald St. George Hamilton Chichester, he succeeded to the title when he was one year old. With the title went the designations of Governor of Carrichfergus Castle, and Hereditary Lord High Admiral of Lough Neagh. Lough Neagh is a lake 17 miles long and 10 miles wide in Antrim.
After schooling at Eton and Oxford, Lord Donegall became a reporter and later war correspondent and columnist for The Sunday Dispatch of London and moved to Switzerland to avoid what he described as high British taxes.Continue reading the main story

source: m-a-p/FineFineWeb


Sandra Ericson Manager for Research & Development
Is an OTF Knife Reliable? : Discover a Remarkable Automatic Tool
If you are a knife-lover or a regular user of knives, you must have realized the importance of pocket knives. Not only are they usable in the kitchen to cut food items, but these knives have also been of help to people in terms of performing first aid, rescue victims of burning cars, self-defense, opening boxes, and so on.
As a result of their demand, there has been a rise in many diversified brands of this equipment such that when you go on purchasing one, you may end up confusing yourself in terms of the brand to buy only to realize later that you choose one that can not meet your needs.
What is an OTF knife? : What does it stand for?
If you happen to come across a knife with the label 'OTF,' realize that this is an acronym for the word 'out—thefront,' which should inform you that this knife's blade expands from the grip or handle.
Most people refer to it as a switchblade or automatic knife, which is right, due to its ability to pop the blade out instantly. This tool is categorized in terms of gravity (gravity knife), automatic switchblade (automatic switchblade), manual (manual sliding knife), and spring (spring-assisted).
The gravity knife depends on the force of gravity (hence the name) for it to open. For this reason, the parachutists carried it on their pockets to free themselves from the chute upon landing. For the automatic switchblades, they usually possess a button which, when pushed, releases the blade.
The spring-assisted knife is opened by the person using it with the help of a thumb stand contained in the blade, or a flipper and, the blade of the manual sliding one is obtained through sliding it out with a button, located along the grip length and is mainly used to cut equipment.
What is dual action OTF knife?
Today, these knives are available in three types which are:
 - Single action: whereby the blade is usually closed by hand and to open it, spring-mechanism must be employed.
 - Dual-action: for you to open and close the blade, you must employ spring mechanism for both. It is also referred to us double action.
 - Manual action: Here, you do not use the spring mechanism, but instead use a sliding button if you want to either close or open the blade.
The History of OTF Knife
In the year 1860, the foremost gravity knife was developed, followed by the first spring assisted one in 1861. At this time, the two were used to hold something while opening a folding knife, which later (in the 1970s) resulted to the invention of a thumb-stud which was pushed with the thumb to open the blade easily, and later a wedge (this was a flat disk vertical to the blade spine, this differentiate it from the thumb-stud) whose function resembled that of a thumb-stud.
Instead of the use of a thumb-stud and a wedge, a hole was created in the blade for the user's thumb tip, which led to the creation of a folding knife. People discovered automatic knives when they watched 'gang movies' though, in reality, the gangs and everyone else could not afford them (they were expensive), but in 1970, the Chinese invented cheap ones.
The US government discovered these tools as well as their use through the media; instead of military utilization, criminals also used them for murder, and this led to their ban in the region.
Are OTF knives illegal or not?
The answer is yes and no: The legality of this knife differs from one state to another. In most countries, it is legal to own them while others are against their ownership.
In some states, selling them is prohibited, while most states put it as illegal to carry them concealed (while hiding). Other nations have zero restrictions on these knives.
What is their legality state in Kentucky?
In Kentucky, OTF knives are legal for; purchase, possession, and also their sell, it is legal to carry them openly, but it is illegal to carry them when hidden.
What is a good OTF Knife?
The qualities of the right OTF knife to watch for during purchase include:
 ➡ Durability:
It should be made from a strong material that can last long. Is should retain its shape and performance even after you subject it to harsh conditions and frequent use. These will also save your money because you will not have to return to the market to buy another knife. After all, durable ones stay long before they can break even after performing tough tasks.
➡ The use
Buy one that suits the work. Look for the size to ensure that it can comfortably serve your purpose. For daily use, a small blade serves the best, whereas for technical activities, it preferable to buy the one with a large blade. The handle should take care of your hands from blisters, and the knife should also be of the correct weight to use easily.
➡ The form of the blade
Cutting edges exist in both straight and serrated ones. If your task requires straight cuts or you want to buy a knife for hunting, go for one that has a straight cutting edge. If you need to cut materials made from leather, choose a serrated one. It should be sharp to ease your work, but at the same time safe in use
 Nature of the steel
Choose one made from stainless steel, which is free from rust. Different steel types also require different attention, choose one that will not give you a hard time in its maintenance, one that you can easily sharpen by yourself and which will not require frequent sharpening so that it can serve you well for long.
In conclusion,
OTF knives and quality ones are not easy to find. Check for the qualities of the right one that is equivalent to your intended use to avoid frustrations and losses. Also, consider doing some research to be informed on the best item to purchase, and a reliable seller.
Adhere to the laws of your residence country on these knives to avoid facing charges upon breaking the rules.


text:
Last updated on Apr 20, 2023
Summary: The approximate population of Oslo, Norway is 672,061. People describe Oslo as a vibrant, modern city with a rich cultural heritage. Expats love the city's natural beauty, its excellent public transportation system, and its diverse and welcoming population. The weather in Oslo is generally mild, with temperatures ranging from an average high of 59°F (15°C) in the summer to an average low of 28°F (-2°C) in the winter. The average cost of living in Oslo for an expat is estimated to be around $2,500 per month. The cost of a one bedroom apartment in Oslo is estimated to be around $1,500 per month, while a two bedroom apartment is estimated to be around $2,000 per month.
What do I need to know about living in Oslo?
When we asked people what advice they would give someone preparing to move to Oslo, they said:
"Before retiring in Oslo, expats should be aware of the cost of living, which is higher than in many other countries. They should also be aware of the language barrier, as Norwegian is the official language of the country. Additionally, expats should research the healthcare system in Norway, as it is different from many other countries. It is also important to research the tax system in Norway, as taxes can be high. Finally, expats should research the visa requirements for Norway, as they may need to apply for a residence permit in order to stay in the country," remarked one expat living in Oslo, Norway.
"Absolutely take this opportunity... what a beautiful country and great experience. You make what you want out of it... Take advantage of a country that offers incredible outdoor activities/sports. I was never into skiing, hiking, cycling, but I am a convert...at 45 years old and ejoying what the outdoors has to offer here and have yet to see anywhere else like it in the world," wrote one member in Oslo.
What do I need to know before moving to Oslo?
About the Author
Joshua Wood, LPC joined Expat Exchange in 2000 and serves as one of its Co-Presidents. He is also one of the Founders of Digital Nomad Exchange. Prior to Expat Exchange, Joshua worked for NBC Cable (MSNBC and CNBC Primetime). Joshua has a BA from Syracuse and a Master's in Clinical and Counseling Psychology from Fairleigh Dickinson University. Mr. Wood is also a licensed counselor and psychotherapist.


text:
The diversity of plants and vegetation within Grand Canyons National Park can be attributed the extremely varied terrain and climates that are exclusive to the region. With over 8,000 ft. elevation from the River to the highest point on the North Rim, there is a great variety of high and low altitude plants, as well as varied desert and river species.
In the park, there are approximately:
1,737 known species of vascular plants
167 species of fungi
64 species of moss
195 species of lichen
found in Grand Canyon National Park. Warmer all year round than the North and South Rim, the flora communities of the River boast rare plants such as the white-flowering redbud tree, stream orchid, and McDougall's flaveria.
In the intermediate elevations, mesquite, sagebrush and ocotillo are common. At around 6000 feet, juniper forests come in to abundance, and by 8000 feet, vast Ponderosa Pines intermingle with Mountain Mahogany and Gambel Oaks.
Specific to the North Rim are also populations of sub-alpine grasses, including blue and black grama, big galleta and Indian Ricegrass.


:: lcosex, lsinex integer(ISZ):: nmult,nres real(kind=8):: tol c Calculates the multipole moments as an axial function of z from the c electrostatic potential using a linear least squares fit to extract the c radial dependence. Both the multipole expansion and the numerical c method employed is described in detail in Appendix A and B of HIF note c number 94-3 by Steve Lund. c c Inputs: c c nlmod number of azimuthal mode numbers to calculate moments c lmod(1:nlmod) specific azimuthal mode numbers to calculate moments c irpowmx maximum radial power cutoff of moments c lcosex log. flag -- calc. multipoles, cos(theta) expansion terms c lsinex log. flag -- calc. multipoles, sin(theta) expansion terms c aper aperture of moments calculation (for no apeture set to 1.) c xcen transverse x-coordinate moments are calculated about c ycen transverse y-coordinate moments are calculated about c nmult multipling factor on the number of radial points to fit c nres scaling for minimum radius to fit c tol tolerance for fitting c c Outputs (passed via common block) interpreter variables: c [ All but nmom are actually calculated in the work routine multpwrk c called in multpole. ] c c nmom number of terms in multipole expansion c lazi(1:nmom) vector of azimuthal mode numbers of moments c irpow(1:nmom) vector of radial powers of moments c rmomcex(1:nmom,0:nzlocal) multipoles, cos(theta) expansion terms on axial grid c rmomsex(1:nmom,0:nzlocal) multipoles, sin(theta) expansion terms on axial grid c c c The multipole expansion is of the following schematic form c c c c c /-- /-- c phi(r,theta,iz) = \-- \-- ( rmomcex(iz)_l,k cos(l theta) + c l k c rmomsex(iz)_l,k sin(l theta) )(r/aper)^k c c c where /-- denote constrained sums. The azimuthal mode number sum l c \-- c is over the nlmod mode numbers specified by the vector lmod(1:nlmod), c and the sum over radial powers k ranges from l to irpowmx in steps of c 2 (as a consequence of Maxwell's equations). c integer(ISZ):: l, k c --- Set number of z grid points. nzmom = nzlocal c --- find the total number of moments nmom to be calculated and c --- resize dynamic arrays in the common block Multipole nmom = 0 do l = 1,nlmod do k = lmod(l),irpowmx,2 nmom = nmom + 1 enddo enddo call gchange("Multipole",0) c --- call work routine to do the actual multipole calculation. This c --- structure is necessary to avoid addressing problems associated c --- with resizing multidimensional arrays call multpwrk(lmod,nlmod,irpowmx,lcosex,lsinex,aper,xcen,ycen, & nmult,nres,tol) return end c============================================================================= subroutine multpwrk(lmod,nlmod,irpowmx,lcosex,lsinex,aper,xcen,ycen, & nmult,nres,tol) use Constant use InGen3d use InMesh3d use Picglb3d use Fields3d use Multipole integer(ISZ):: nlmod, irpowmx real(kind=8):: aper, xcen, ycen integer(ISZ):: lmod(nlmod) logical(ISZ):: lcosex, lsinex integer(ISZ):: nmult,nres real(kind=8):: tol c Work routine for the calculation of multipole moments as an axial c function of z. See comments in routine multpole for variable and c general method descriptions. c Standard values for nmult=2, nres=10, tol=1.e-5. integer(ISZ):: nptsmx, nfitmx parameter(nfitmx = 20, nptsmx = 500) integer(ISZ):: k, l, iz, imom, lfund, nfit, npts, ngmin integer(ISZ):: np, ith, ipow, ifit, nth, ix, iy real(kind=8):: ds, xsymin, ysymin, xsymax, ysymax real(kind=8):: dth, xc, yc, phiinter, chisq real(kind=8):: rdat(nptsmx), basis(nptsmx,nfitmx) real(kind=8):: usvd(nptsmx,nfitmx), vsvd(nfitmx,nfitmx), wsvd(nfitmx) real(kind=8):: tmp(nptsmx) real(kind=8):: azicosint(nptsmx), azisinint(nptsmx) real(kind=8):: rmomcst(nfitmx), rmomsst(nfitmx) c --- define constants ds = sqrt((dx*dx+dy*dy)/2.) c --- for each moment index i = 1 to nmom, specify azimuthal mode numbers c --- lmod(i) and radial powers irpow(i) consistent with the mode numbers c --- given in lmod(nlmod) and the maximum radial cutoff power irpowmx imom = 0 do l = 1,nlmod do k = lmod(l),irpowmx,2 imom = imom + 1 lazi(imom) = lmod(l) irpow(imom) = k enddo enddo c --- start moments calculation imom = 0 c --- loop over each moment index with same azimuthal mode number l do lfund = 1,nlmod c --- azimuthal mode number l l = lmod(lfund) c --- number of radial power terms nfit used in least-squares fit nfit = irpowmx/2 + 1 - (l+mod(irpowmx+1,2))/2 if (nfit > nfitmx) then call kaboom("multpwrk: too many radial multipoles, inc. nfitmx") endif c --- calculate number radial data points npts, min grid index ngmin npts = nmult*nfit if (npts > nptsmx) then call kaboom("multpwrk: too many radial data points, inc. nptsmx") endif ngmin = (nres-1)*l/(2.*pi) if (ngmin < 2) ngmin = 2 c --- check for bound errors xsymin = xmmin ysymin = ymmin xsymax = xmmin + dx*nx ysymax = ymmin + dy*ny if (l2symtry) ysymin = -ymmax if (l4symtry) then xsymin = -xsymax ysymin = -ysymax endif if ( (xcen + (npts-1+ngmin)*ds >= xsymax ) .or. & (xcen - (npts-1+ngmin)*ds <= xsymin) ) then call kaboom("multpwrk: data out of x-grid bound") endif if ( (ycen + (npts-1+ngmin)*ds >= ysymax ) .or. & (ycen - (npts-1+ngmin)*ds <= ysymin) ) then call kaboom("multpwrk: data out of y-grid bound") endif c --- calculate npts radial data points and a npts x (kmax-l)/2 basis c --- array of


text:
This giant basin will help water quality, and it's a park
On the surface, it looks like a small park, but beneath lies a giant basin that holds 7 million gallons of raw sewage and stormwater.
On Wednesday, Louisville MSD held a ribbon cutting for this $30 million project, called the Clifton Heights Combined Sewer Overflow Basin.
"This combined sewer overflow basin is a hard project, but it was something that works consistently to protect water quality in the Beargrass Creek," said Tony Parrott, MSD's executive director.
For decades, engineers built stormwater sewers that intersected with raw sewage lines, and the result has not been good for local waterways. Heavy rains flood the stormwater lines, which mix with raw sewage before emptying into Beargrass Creek and the Ohio River.
The Clifton Heights basin and 10 others completed or being built in Louisville will solve that problem. The mixture will empty into the giant underground basins and then be pumped to a water treatment plant before being emptied into the Ohio River.
Above the basin is a public park, complete with a lawn, meadows and wetlands.


Mathematics Colloquia and Seminars
Return to Colloquia & Seminar listing
Linear Programming orientations of Polyhedra
Algebra & Discrete Mathematics
Speaker: Mike Develin, UC Berkeley
Location: 693 Kerr
Start time: Thu, Oct 31 2002, 12:10PM
Given a combinatorial $d$-polytope $P$ and an orientation on its graph, we may ask the following question: Does there exist a realization of $P\subset \mathbb{R}^d$ and a linear functional $f$ such that $f$ induces the given orientation on the graph of $P$? Holt and Klee introduced a set of necessary conditions on the orientation for it to be a so-called LP-orientation; we show that for cubes, these conditions are very insufficient in the sense that the proportional of Holt-Klee orientations of the $d$-cube which are LP-orientations goes rapidly to 0 as $d$ gets large. For cross-polytopes, we give a strengthening of the Holt-Klee conditions which is both necessary and sufficient for an orientation to be LP.


text:
Two cooling water units were being constructed at the BP Whiting Refinery facility. BP Whiting Refinery would like some assurance that, with the current design, surface vortex would not form in the cooling pump suction bay. Surface vortex could reduce pump water delivery and reduce pump reliability. Computational Fluid Dynamics (CFD) was used to model the suction bay.
Computational domain of the suction bay
Three-dimensional CFD models of the cooling tower suction bays were developed to simulate the critical flow conditions at the suction bays. The suction bays were modeled for designed operating condition where all pumps were operating and off-designed operating condition when one of the pump was shut off.
Flow streamlines for the case where one pump is shut off
The simulation results for the ideal operating case where all pump were operating indicated there were very fex vortices formed around the corner of each suction bay. Increased number of vortices was present, especially in the area near concrete pillars, when one of the pumps was shut off. Based on these results, it was recommended to the oil refinery owner to reduce the size of the concrete pillars in order to reduce the possibility of vortex formation.
Vertex formed near a pump suction inlet
Click the movie below to see the Cooling Tower in detail.
If your network blocks youtube please click here.
Faculty Collaborator: Dr. Chenn Q. Zhou


How To Get A Broken Pipe Out Of A Fitting
When a pipe breaks in a fitting, the first step is to remove the broken piece. This can be done with a pair of pliers. The second step is to clean out the fitting. This can be done with a wire brush or a pipe cleaner. The third step is to put the fitting back together. This can be done with a wrench.
How To Get A Broken Pipe Out Of A Fitting
In order to remove a broken pipe from a fitting, the first step is to cut the pipe as close to the fitting as possible. Once the pipe is cut, use a pliers or wrench to remove the fittings. If the fittings are stuck, use a hacksaw to cut through them.
– a pipe wrench – a crescent wrench – a hacksaw – WD-40 or another lubricant
 - Shut off the water supply to the fitting
 - Loosen the fittings on either side of the broken pipe using a wrench
 - Remove the broken pipe from the fitting. replace the broken pipe with
If a pipe is broken off in a fitting, there are a few ways to remove it. One way is to use a hammer and chisel to break the pipe free. Another way is to use a hacksaw to cut the pipe below the fitting. A third way is to use a plumbing extractor tool to remove the pipe.
Frequently Asked Questions
How Do You Remove A Broken Thread Fitting?
There are a few ways to remove a broken thread fitting. One way is to use a screw extractor. Another way is to use a needle-nose pliers.
How Do You Get A Broken Pvc Pipe Out Of A Fitting?
There are a few ways to get a broken PVC pipe out of a fitting. One way is to use a plunger. Put the plunger over the end of the pipe and push and pull the plunger until the pipe comes out. Another way is to use a screwdriver. Put the screwdriver in the end of the pipe and twist it until the pipe comes out.
How Do You Get A Broken Pipe Out Of A Well?
The usual way to get a broken pipe out of a well is to use a pipe-fishing tool. This tool consists of a weighted wire cable that is threaded through the broken pipe. The cable is then attached to a retrieval system, such as a winch, that pulls the cable and the broken pipe out of the well.
How Do You Get A Broken Pvc Pipe Out Of Another Pipe?
There are a few ways to get a broken PVC pipe out of another pipe. One way is to use a hacksaw to cut the broken PVC pipe out of the other pipe. Another way is to use a PVC cutter to cut the broken PVC pipe out of the other pipe.
How Do You Remove A Stuck Pipe Fitting?
There are a few ways to remove a stuck pipe fitting. One way is to use a pipe wrench to try to loosen the fitting. If that doesn't work, you can try using a hacksaw to cut the fitting off. Another way is to use a blowtorch to heat up the fitting and then use a pipe wrench to loosen it.
How Do You Get A Broken Threaded Pipe Out Of A Fitting?
The best way to get a broken threaded pipe out of a fitting is to use a pipe wrench.
How Do You Loosen Tight Copper Pipe Fittings?
There are a few ways to loosen tight copper pipe fittings. One is to use a pipe wrench, which can be effective if the fittings are only slightly tightened. If they are more tightly screwed on, using a hammer and chisel can help to loosen them. Another option is to use a propane torch to heat the fittings, which will cause them to expand and loosen.
How Do I Take Apart A Threaded Pipe?
There are a few ways to take apart a threaded pipe. One way is to use a wrench to unscrew the pipe. Another way is to use a hacksaw to cut the pipe in two.
How Do You Get A Fallen Well Pipe Out?
There are many possible ways to get a fallen well pipe out, depending on the situation. Some common methods include using a crane or other heavy machinery to lift the pipe out of the ground, using a drill to create a hole around the pipe so it can be pulled out, or using explosives to break the pipe into pieces.
Wrap-Up
If the broken pipe is sticking out of the fitting, a wrench can be used to twist it back and forth until it comes free. If the broken pipe is buried in the fitting, a plumber's snake can be used to remove it.
Leave a Comment
Your email address will not be published. Required fields are marked *


text: A typical LIDAR (light detection and ranging) scan contains hundreds of millions of points. As such, the visualization of LIDAR point clouds poses a significant challenge in data analysis. We propose to visualize and process LIDAR point clouds on a large display wall with an array of monitors. This provides researchers with a high-resolution display environment for looking at and studying large data sets. High-resolution large displays offer both global perspectives and local details of point clouds, which is essential in the process of data exploration. The ability to explore, conceptualize, and correlate spatial and temporal changes of topographical records is required for the development of new analytical models that capture the mechanisms contributing toward cliff erosion. Large displays driven by high-performance parallel visualization cluster allow researchers to fully interact with LIDAR point clouds of slopes in Houshanyue mountain and cliff failures observed in Solana Beach in California. In our study, cases studies of visualization based approaches were conducted using large displays in digital immersive environments. Visual analytics techniques such as delineation, segmentation, and classification of features, change detection, and annotation were used to perform erosion assessment. The results showed that the researchers can observe the temporal change of a failure mass effectively in high-resolution large display environments.


text:
What does the Bible say about Christians getting tattoos?
A tattoo is a permanent marking made by inserting ink into the layers of skin to change the pigment for decorative or other reasons. Tattooing is a tradition among indigenous peoples around the world. The symbolism and impact of tattoos varies in different places and cultures.
The only specific mention of tattoos in the Bible is a command given to the Jews in about 1450 BC when they were travelling from Egypt to Canaan: "Do not cut your bodies for the dead or put tattoo marks on yourselves" (Lev. 19:28 TNIV). According to Scripture, Christians are not under Old Testament Law. When Christ fulfilled the Law by paying the death penalty for sin (Mt. 5:17; Rom. 10:4), the Old Testament Law was set aside as obsolete (Eph. 2:15; Heb. 7:18; 8:13), and believers are not under it, but under God's grace (Rom. 6:14; Gal. 3:23-25). However, when specific laws are interpreted in light of their context and the New Testament, useful principles may be derived from them (1 Cor. 10:6-11; 2 Tim. 3:15-17).
The context of Leviticus 19:28 is a set of laws that prohibited Jews from following the pagan practices of the Egyptians and the Canaanites (Lev. 18:1-5, 24-30; 20:22-24). These laws mainly related to sexual immorality, spiritualism and witchcraft and other areas of personal conduct that were to distinguish God's people. The punishment for disobeying them is given in Leviticus 20. As the "tattoo marks" described in Leviticus 19:28 were associated with false religious practices, they were prohibited for these Jews because God did not want them to be identified with idolatry. The New Testament also teaches that believers are to have nothing to do with idolatry (1 Cor. 10:7, 14; 1 Jn. 5:21) and apostasy (Heb. 3:12).
Some other commands in Leviticus 19 are also no longer associated with idolatry: "Do not wear clothing woven of two kinds of material" (19:19), and "'Do not cut the hair at the sides of your head or clip off the edges of your beard" (19:27). Since it is not specifically mentioned in the New Testament, the practice of tattooing is not prohibited for Christians today, but the principle of not being identified with idolatry and not backsliding would still apply.
Today, a tattoo is usually a decorative means of self expression and personal decoration that is not associated with idolatry. In a situation that is not sinful, whether to get a tattoo can be considered a debatable matter, like whether to eat food that has been offered to idols or whether one day is more sacred than another (Rom. 14:1-6). The Bible gives five principles that can help us determine God's will in situations like this.
First, we are to honor God with our bodies (1 Cor. 6:19-20). In other words, will a tattoo honor or dishonor God? Is the reason for getting one to draw attention to ourselves (1 Tim. 2:9)? A related principle is that whatever we do should be done for the glory of God (1 Cor. 10:31). Will He be exalted or disgraced? Will others think less of God, His Church or His Word because of what I do?
Second, it is sinful to cause believers with weaker consciences to stumble by violating their conscience (Rom. 14:13-14, 20-21; 1 Cor. 8:7-13). In this instance we should refrain from doing something that is not specifically forbidden in Scripture if it hinders the spiritual progress of a weaker believer. Paul even extends this principle to unbelievers because he wanted them to accept Christ as their Savior (1 Cor. 10:32-33). It's loving and unselfish to think of others above ourselves (Rom. 14:15; 15:1-2).
Third, with regard to tattoos and other matters of secondary importance, we shouldn't judge others because they are accountable to the Lord and not to us (Rom. 14:4, 10-12). This means respecting each other's opinion as we can have differing views on what pleases the Lord (1 Th. 4:1).
Fourth, make every effort to do the things that lead to peace and spiritual growth (Rom. 14:19). Will what we do help or hinder the harmony of believers?
Fifth, despite our differences of opinion with regard to matters of secondary importance, believers should accept one another just as Christ has accepted us (Rom. 15:7). Our fellowship with one another shouldn't depend on one's viewpoint on such matters.
As tattoos are permanent, consider whether having a tattoo will be regretted by you and your family in years to come. Also, because images affect thoughts, any tattoo that you might get should focus on what is true, honorable, right, pure, lovely, admirable, excellent and praiseworthy, and not obscene (Phil. 4:8; Eph. 5:3-5). For example, it could symbolize a Biblical truth which represents your relationship with Christ.
Finally, our bodies are like "instruments" or tools that can be used for good or bad purposes (Rom. 6:13). The important question to ask is whether we are using our bodies for God, not whether we have a tattoo or not. Romans 12:1-2 says this: "I urge you, brothers and sisters, in view of God's mercies, to offer your bodies as a living sacrifice, holy and pleasing to God … Do not conform to the pattern of this world, but be transformed by the renewing of your mind."
Published July 2010
See the other articles in this series:
- What does the Old Testament say about Christians getting tattoos?
- What does the New Testament say about Christians getting tattoos?


SKIP TO CONTENT
An Example Git-Enforced Policy
In this section, you'll use what you've learned to establish a Git workflow that checks for a custom commit message format, enforces fast-forward-only pushes, and allows only certain users to modify certain subdirectories in a project. You'll build client scripts that help the developer know if their push will be rejected and server scripts that actually enforce the policies.
I used Ruby to write these, both because it's my preferred scripting language and because I feel it's the most pseudocode-looking of the scripting languages; thus you should be able to roughly follow the code even if you don't use Ruby. However, any language will work fine. All the sample hook scripts distributed with Git are in either Perl or Bash scripting, so you can also see plenty of examples of hooks in those languages by looking at the samples.
Server-Side Hook
All the server-side work will go into the update file in your hooks directory. The update file runs once per branch being pushed and takes the reference being pushed to, the old revision where that branch was, and the new revision being pushed. You also have access to the user doing the pushing if the push is being run over SSH. If you've allowed everyone to connect with a single user (like "git") via public-key authentication, you may have to give that user a shell wrapper that determines which user is connecting based on the public key, and set an environment variable specifying that user. Here I assume the connecting user is in the $USER environment variable, so your update script begins by gathering all the information you need:
#!/usr/bin/env ruby
refname = ARGV[0]
oldrev = ARGV[1]
newrev = ARGV[2]
user = ENV['USER']
puts "Enforcing Policies... \n(#{refname}) (#{oldrev[0,6]}) (#{newrev[0,6]})"
Enforcing a Specific Commit-Message Format
Your first challenge is to enforce that each commit message must adhere to a particular format. Just to have a target, assume that each message has to include a string that looks like "ref: 1234" because you want each commit to link to a work item in your ticketing system. You must look at each commit being pushed up, see if that string is in the commit message, and, if the string is absent from any of the commits, exit non-zero so the push is rejected.
You can get a list of the SHA-1 values of all the commits that are being pushed by taking the $newrev and $oldrev values and passing them to a Git plumbing command called git rev-list. This is basically the git log command, but by default it prints out only the SHA-1 values and no other information. So, to get a list of all the commit SHAs introduced between one commit SHA and another, you can run something like this:
$ git rev-list 538c33..d14fc7
d14fc7c847ab946ec39590d87783c69b031bdfb7
9f585da4401b0a3999e84113824d15245c13f0be
234071a1be950e2a8d078e6141f5cd20c1e61ad3
dfa04c9ef3d5197182f13fb5b9b1fb7717d2222a
17716ec0f1ff5c77eff40b7fe912f9f6cfd0e475
You can take that output, loop through each of those commit SHAs, grab the message for it, and test that message against a regular expression that looks for a pattern.
You have to figure out how to get the commit message from each of these commits to test. To get the raw commit data, you can use another plumbing command called git cat-file. I'll go over all these plumbing commands in detail in Chapter 9; but for now, here's what that command gives you:
$ git cat-file commit ca82a6
tree cfda3bf379e4f8dba8717dee55aab78aef7f4daf
parent 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
author Scott Chacon <_EMAIL_> _PHONE_
committer Scott Chacon <_EMAIL_> _PHONE_
changed the version number
A simple way to get the commit message from a commit when you have the SHA-1 value is to go to the first blank line and take everything after that. You can do so with the sed command on Unix systems:
$ git cat-file commit ca82a6 | sed '1,/^$/d'
changed the version number
You can use that incantation to grab the commit message from each commit that is trying to be pushed and exit if you see anything that doesn't match. To exit the script and reject the push, exit non-zero. The whole method looks like this:
$regex = /\[ref: (\d+)\]/
# enforced custom commit message format
def check_message_format
 missed_revs = 'git rev-list #{$oldrev}..#{$newrev}'.split("\n")
 missed_revs.each do |rev|
 message = 'git cat-file commit #{rev} | sed '1,/^$/d''
 if !$regex.match(message)
 puts "[POLICY] Your message is not formatted correctly"
 exit 1
 end
 end
end
check_message_format
Putting that in your update script will reject updates that contain commits that have messages that don't adhere to your rule.
Enforcing a User-Based ACL System
Suppose you want to add a mechanism that uses an access control list (ACL) that specifies which users are allowed to push changes to which parts of your projects. Some people have full access, and others only have access to push changes to certain subdirectories or specific files. To enforce this, you'll write those rules to a file named acl that lives in your bare Git repository on the server. You'll have the update hook look at those rules, see what files are being introduced for all the commits being pushed, and determine whether the user doing the push has access to update all those files.
The first thing you'll do is write your ACL. Here you'll use a format very much like the CVS ACL mechanism: it uses a series of lines, where the first field is avail or unavail, the next field is a comma-delimited list of the users to which the rule applies, and the last field is the path to which the rule applies (blank meaning open access). All of these fields are delimited by a pipe (|) character.
In this case, you have a couple of administrators, some documentation writers with access to the doc directory, and one developer who only has access to the lib and tests directories, and your ACL file looks like this:
avail|nickh,pjhyett,defunkt,tpw
avail|usinclair,cdickens,ebronte|doc
avail|schacon|lib
avail|schacon|tests
You begin by reading this data into a structure that you can use. In this case, to keep the example simple, you'll only enforce the avail directives. Here is a method that gives you an associative array where the key is the user name and the value is an array of paths to which the user has write access:
def get_acl_access_data(acl_file)
 # read in ACL data
 acl_file = File.read(acl_file).split("\n").reject { |line| line == '' }
 access = {}
 acl_file.each do |line|
 avail, users, path = line.split('|')
 next unless avail == 'avail'
 users.split(',').each do |user|
 access[user] ||= []
 access[user] << path
 end
 end
 access
end
On the ACL file you looked at earlier, this get_acl_access_data method returns a data structure that looks like this:
{"defunkt"=>[nil],
 "tpw"=>[nil],
 "nickh"=>[nil],
 "pjhyett"=>[nil],
 "schacon"=>["lib", "tests"],
 "cdickens"=>["doc"],
 "usinclair"=>["doc"],
 "ebronte"=>["doc"]}
Now that you have the permissions sorted out, you need to determine what paths the commits being pushed have modified, so you can make sure the user who's pushing has


text:
Harlan D. Harris and Sarah M. Kiefer
This paper present highlights of the results of a survey of instructors of the introductory Artificial Intelligence course at colleges and universities throughout the United States. Particularly notable results were seen in the Syllabus and Teaching Techniques sections of the survey, and those are reported here. Comparing responses from Doctoral-Extensive universities with other responses, the latter group sometimes tends to teach a syllabus that seems out-of-date relative to current AI research trends. Instructors from less research-oriented institutions reported spending significantly less class time on several current topics in AI, and significantly more time on several more outdated topics. Participants were also asked about what sorts of classroom teaching techniques they used, and what techniques were found to particularly valuable. In general, participants endorsed in-class activities to supplement lectures, and the use of programming homework, group projects, and an agent-themed syllabus.

source: openbmb/Ultra-FineWeb


text:
Groundhogs are also known as the woodchucks and used to live in burrows. However, these animals are experts in climbing and swimming as well. These animals have also known as rodents and belong to a family of rodents called Sciuridae. However, as we know that raccoons are on the list of rodent's predators. So do raccoons eat groundhogs? Let's dig into it.
And if you are interested to know about it, then navigate this article as it will look through this topic.
However, groundhogs are not on the list of raccoon's prey because of several reasons. First, and the main reason is that groundhogs are large and heavy than usual rodents. That's why it would be difficult for raccoons to hunt a groundhog.
Table of Contents
Do Raccoons Eat Groundhogs?
Raccoons are omnivores animals and can eat both plant and animal base matter. Not only this, they are good scavengers as well. And because of these habits, they are famous as opportunistic feeders.
Because they can eat whatever they get, raccoons always try to get a portion of food with little effort or free food. And that's why they can scavenge food from your trash bins as well. They can raid your gardens and houses for food as well.
Not only this, raccoons can eat your pet foods as well. However, raccoons can eat fruits, nuts, vegetables, flowers, insects, worms, fish, frogs, rabbits, squirrels, kittens, etc. Furthermore, raccoons can eat dead animals as well.
As, raccoons can eat such a variety of foods, but why they don't look at groundhogs as their prey. However, the reason is that, as I earlier said that they always look for small animals to hunt.
And groundhogs are quite large animals, and sometimes they are closer to the size of a raccoon, that's why raccoons don't think about them as their prey.
Not only this, there are several other reasons due to which raccoons don't think about groundhogs as their food. Firstly, raccoons are nocturnal animals means that they are active in the night hours and live in their dens during daytimes.
But the groundhogs are opposite to raccoons as they are diurnal animals and stay in their burrows at night. And because it is difficult for these animals to cross their ways.
Secondly, groundhogs are excellent climbers and swimmers, and because of this, it is hard to stalk a groundhog for raccoons. As raccoons are not heavier in weight and cannot waste their energy to catch a groundhog.
As we already discussed, raccoons are always up to a free meal or a meal they can get with a low effort. That's why raccoons don't look for groundhogs as their prey.
Read also: Do Raccoons Eat Lizards?
Do Raccoons eat Dead Groundhogs?
Raccoons are not picky eaters and can eat whatever they get. Even they look for free meal or a meal with little effort. And that's why they can eat from your garden and trash as well.
However, eating meat is necessary for raccoons as they need proteins for their proper body functioning. And meat is a good source of proteins for everyone around the world, including raccoons.
So because of it, raccoons have to hunt or struggle to eat meat to fulfill their body needs. As they are opportunistic animals, that's why they would never mind if they get the meat from a dead animal. Not only this, but meat from your trash is also welcome to raccoons.
And that's why they can eat the dead groundhogs for meat. As the meat of a dead animal is still offering some nutrients with protein.
Not only the meat of dead groundhogs, but raccoons can also eat the dead meat of several other animals like rats, mice, squirrels, etc.
Do Raccoons And groundhogs live together?
A precise answer to this question is no, as raccoons and groundhogs don't live together. However, there are certain reasons behind it that's why they cannot live together. Firstly, both these animals belong to different species and have separate living styles.
As groundhogs are rodents and used to live in borrows while raccoons can live wherever they want. For example, they can live inside the holes of trees and in your attic as well.
Secondly, raccoons are nocturnal animals and forage food in night hours, while groundhogs are diurnal animals and look for food in day hours.
Because of these reasons, raccoons and groundhogs cannot live together, but they can live in the same area.
Do Raccoons Use Groundhog Holes?
As I earlier discussed, groundhogs are rodents and live in the burrows or holes inside the earth. And if groundhogs abandoned that burrow, then these holes stay as it is for years.
That's why many animals can become the second user of these burrows, including raccoons. However, raccoons usually live in hollow trees, rock crevices, abandoned burrows, attics if available, etc.
Moreover, abandoned burrows by groundhogs can also occupy some other animals. For example, skunks and possums. However, skunks like the most abandoned burrows because they don't have to dig them themselves.
Are Groundhogs Good for Anything?
Nothing is without any purpose on the earth, so groundhogs play a useful role in our ecosystem. And the main thing is that they are consumers of several animals and plants. Not only this, they are also a source of food for several animals of the ecosystem.
Let's firstly talk about the animals and plants to which they are consumers. However, they are the consumers of snails, grubs, insects, etc.
At the same time, groundhogs are the food source for several animals of the ecosystem. As they are the prey of larger animals of the ecosystem than raccoons like dogs, foxes, coyotes, humans, etc.
Not only this, the baby groundhogs can be the prey of birds like hawks, eagles, owls, etc.
A Final Thought:
Raccoons can eat whatever they get and usually hunt small rodents like rabbits, squirrels, kittens, rats, mice, etc. As groundhogs also belong to rodents that's why this article explores that do raccoons eat groundhogs?
However, raccoons can eat a wide variety of foods, but they don't eat groundhogs. Because groundhogs are not small in size that raccoons can kill them. Furthermore, both these animals have different time zones for foraging their food. That's why raccoons don't look at groundhogs as their prey.


text:
Autobiography Of An Unknown Indian
- Publisher: Jaico Publishing House
- ISBN-13: 9788172242879
- Pages: 575
- Binding: Paperback
- Year of Pub / Reprint Year: 2016
About The Book
Autobiography of an Unknown Indian is the collective memoir of Nirad C. Chaudhuri, a man remembered for his support of the British Empire at a time that India was struggling to hold on to its newfound freedom.
Chaudhuri, a self-professed anglophile, dedicates the book to the British Empire and showcases the tone of the book from the very beginning. From his childhood in Kishorganj the book follows his growth and mental development. He describes colonial Calcutta and his fascination with the British Empire. An examination of the Indian renaissance, the politics that led to Freedom and the nature of Indian nationalism, the book is considered a vital contribution to Indian literature and contemporary history by several esteemed writers
About The Author
Nirad C. Chaudhuri was a Bengali-English writer and cultural commentator. He is best known for: A Passage to England, The Continent of Circe, The Intellectual in India, Thy Hand, Great Anarch! and Three Horsemen of the New Apocalypse among several other books.
A recipient of the Sahitya Akademi Award for Scholar Extraordinary, a biography of Max Müller, he was later bestowed the title of Commander of Order of the British Empire (CBE) by Queen Elizabeth II in 1992.


text:
SAN FRANCISCO – Earth observation startup Albedo raised $48 million in a Series A funding round led by Breakthrough Energy Ventures and Shield Capital. Participating in the round were new and existing Albedo investors including Republic Capital, San Francisco-based Giant Step Capital Partners, C16 Ventures, Initialized Capital, Liquid 2 and SNR.
With the cash infusion announced Sept. 7, Albedo plans to complete development and testing of its first satellite destined for very low Earth orbit, or VLEO, as well as the software for satellite operations and imagery distribution.
"This basically allows us to start going heads-down on executing our technical roadmap with flying in VLEO and obtaining this level of resolution in both optical and thermal infrared," Topher Haddad, Albedo co-founder and CEO, told SpaceNews. "There's a lot of new core technologies that we're developing to enable us to do that."
Albedo, based in Austin, Texas, and Denver, is developing satellites to acquire optical imagery with a resolution of 10 centimeters per pixel and thermal infrared imagery with two-meter resolution on the same platform. Because the satellites will obtain optical and thermal infrared imagery nearly simultaneously, Albedo can use the higher-resolution optical imagery to sharpen features in the thermal infrared imagery and offer "insights that you couldn't get if you had thermal on its own," Haddad said.
The resulting imagery, which can reveal moisture levels, temperature differences and energy efficiency, has applications for precision agriculture, mapping, insurance, vegetation management, construction, pipeline monitoring, urban planning and defense.
"To reach net zero, we will need high fidelity visual and thermal data that is available at low cost and high frequency, enabling a host of Earth science focused climate solutions," Carmichael Roberts of Breakthrough Energy Ventures said in a statement. "Albedo is the first company we've seen that can provide this data that will enable applications for precision agriculture, forestry management, and wildfire prevention and management."
Earth observation experts say that classified U.S. government satellites obtain optical imagery with a resolution of about 10 centimeters per pixel. As an example, they point to images of a damaged Iranian launchpad tweeted in 2019 by then-President Trump.
At that resolution level, analysts can classify military vehicles and aircraft, and observe missile tests.
In December, Albedo received a National Oceanic and Atmospheric Administration license to sell commercial optical imagery with a resolution of 10 centimeters per pixel. In April 2021, the company raised $10 million in a Seed funding round.
"Beyond the capital, we couldn't be more excited to partner with two lead investors who reflect the markets with some of the strongest needs for Albedo's imagery," said Haddad said in a statement. "We have an exciting and challenging road ahead. With the new funding and regulatory risks behind us, it's time to ramp up our technical development and execute on bringing this capability to market."


The use of the Actiwatch to assess movement in people with profound intellectual and multiple disabilities
OnderzoeksoutputAcademic
Samenvatting
Introduction: People with profound intellectual and multiple disabilities (PIMD) are heavily dependent on support to perform movements. Currently, assessment of movement in people with PIMD involves the use of diaries and heart rate monitors, unable to assess the actual amount of movement of people with PIMD. The purpose of the present study was to investigate the psychometric properties of the Actiwatch to objectively assess movement in people with PIMD.
Methods: Twenty-two persons with PIMD were video recorded for about 6 hours divided in 15-min periods and worn an Actiwatch for at least seven consecutive days. The overlapping period of registration was used for analysis. We used instantaneous sampling per 15 s to record the occurrence of movement, body position, and activity situation. Multilevel analysis were used to analyse the outcomes of the Actiwatch among different (activity) situations and body positions.
Results: Early results, based on basic statistics, show a significant difference in outcomes of the Actiwatch between performed and no performed movements, comparable outcomes for different body postures and a significant effect of one of the activity situations. The final results will be presented at the congress. Implications: This study will demonstrate if the Actiwatch can be used to objectively assess movements of people with PIMD during different activities and performed from different body postures.
Originele taal-2English
StatusPublished - jul-2019
Evenement16th IASSIDD World Conference - Glasgow
Duur: 6-aug-20199-aug-2019
Conference
Conference16th IASSIDD World Conference
Periode06/08/201909/08/2019
Citeer dit


text:
Slide 13 of 78
The facilitator is a specialized server agent that is responsible for coordinating agent communications and cooperative execution of tasks.
Client (non-facilitator) agents may be categorized as follows:
User interface agents accept multimodal input and present results.
Natural language agents translate users' requests into ICL.
Application agents provide services, which may be domain-independent or domain-dependent. Application Agents are frequently wrapped versions of legacy programs.
Meta agents apply domain knowledge to help coordinate the efforts of other agents.
Larger systems can be assembled from multiple facilitator/client groups, each having the sort of structure shown above.
All OAA agents publish their capabilities and communicate requests among themselves using the Interagent Communication Language.


Artificial Intelligence

A Simple Proportional Conflict Redistribution Rule
Authors: Florentin Smarandache, Jean Dezert
One proposes a first alternative rule of combination to WAO (Weighted Average Operator) proposed recently by Josang, Daniel and Vannoorenberghe, called Proportional Conflict Redistribution rule (denoted PCR1). PCR1 and WAO are particular cases of WO (the Weighted Operator) because the conflicting mass is redistributed with respect to some weighting factors. In this first PCR rule, the proportionalization is done for each non-empty set with respect to the non-zero sum of its corresponding mass matrix - instead of its mass column average as in WAO, but the results are the same as Ph. Smets has pointed out. Also, we extend WAO (which herein gives no solution) for the degenerate case when all column sums of all non-empty sets are zero, and then the conflicting mass is transferred to the non-empty disjunctive form of all non-empty sets together; but if this disjunctive form happens to be empty, then one considers an open world (i.e. the frame of discernment might contain new hypotheses) and thus all conflicting mass is transferred to the empty set. In addition to WAO, we propose a general formula for PCR1 (WAO for non-degenerate cases). Several numerical examples and comparisons with other rules for combination of evidence published in literature are presented too. Another distinction between these alternative rules is that WAO is defined on the power set, while PCR1 is on the hyper-power set (Dedekind's lattice). A nice feature of PCR1, is that it works not only on non-degenerate cases but also on degenerate cases as well appearing in dynamic fusion, while WAO gives the sum of masses in this cases less than 1 (WAO does not work in these cases). Meanwhile we show that PCR1 and WAO do not preserve unfortunately the neutrality property of the vacuous belief assignment though the fusion process. This severe drawback can however be easily circumvented by new PCR rules presented in a companion paper.
Comments: 21 pages
Download: PDF
Submission history
[v1] 8 Mar 2010
Unique-IP document downloads: 157 times
Add your own feedback and questions here:
You are equally welcome to be positive or negative about any paper but please be polite. If you are being critical you must mention at least one specific error, otherwise your comment will be deleted as unhelpful.
comments powered by Disqus


Form Recognizer API (v2.0-preview)
Form Recognizer extracts information from forms and images into structured data. It includes the following options:
 - Form - Extracts information from forms (PDFs and images) into structured data based on a model created from a set of representative training forms. Form Recognizer learns the structure of your forms to intelligently extract text and data. It ingests text from forms, applies machine learning technology to identify keys, tables, and fields, and then outputs structured data that includes the relationships within the original file.
 - Receipt - Detects and extracts data from receipts using optical character recognition (OCR) and our receipt model, enabling you to easily extract structured data from receipts such as merchant name, merchant phone number, transaction date, transaction total, and more.
 - Layout - Extracts text and table structure from documents using optical character recognition (OCR).
Analyze Receipt - Get Analyze Receipt Result
Query the status and retrieve the result of an Analyze Receipt operation. The URL to this interface can be obtained from the 'Operation-Location' header in the Analyze Receipt response. We recommend calling this operation no more than once a second.
Select the testing console in the region where you created your resource:
Australia East Brazil South Canada Central Central India Central US Central US EUAP East Asia East US East US 2 France Central Germany West Central Japan East Japan West Korea Central North Central US North Europe South Africa North South Central US Southeast Asia Switzerland North Switzerland West UAE North UK South West Central US West Europe West US West US 2 West US 3 Norway East Jio India West
Request URL
Request parameters
string
Format - uuid. Analyze operation result identifier.
Request headers
string
Subscription key which provides access to this API. Found in your Cognitive Services accounts.
Request body
Response 200
JSON fields in the response body:
Field Type Description
status String Analyze Receipt operation status. Possible values:
 - notStarted: The analysis operation has not started.
 - running: The analysis operation is in progress.
 - failed: The analysis operation has failed.
 - succeeded: The analysis operation has succeeded.
If the status is succeeded, the response JSON will include the receipt understanding and text recognition results. The receipt understanding result is organized as a dictionary of named field values, where each value contains the extracted text, normalized value, and corresponding word elements. The text recognition result is organized as a hierarchy of lines and words, with text, bounding box and confidence information.
createdDateTime String Date and time (UTC) when the operation was created.
lastUpdatedDateTime String Date and time (UTC) when the status is last updated.
analyzeResult Object Results of the analyze operation.
readResults [Object] List of of extracted text result for each page in the input document.
lines [Object] List of text lines. The maximum number of lines returned is 300 per page. The lines are sorted top to bottom, left to right, although in certain cases proximity is treated with higher priority. As the sorting order depends on the detected text, it may change across images and OCR version updates. Thus, business logic should be built upon the actual line location instead of order. This field only appears when includeTextDetails is set to true.
words [Object] List of words in the text line.
boundingBox [Number] Quadrangle bounding box of a line or word, depending on the parent object, specified as a list of 8 numbers. The coordinates are specified relative to the top-left of the original image. The eight numbers represent the four points, clockwise from the top-left corner relative to the text orientation. For image, the (x, y) coordinates are measured in pixels. For PDF, the (x, y) coordinates are measured in inches.
text String Extracted field text in documentResults, or the text content of a word/line in readResults.
confidence Number Confidence value.
width Number The width of the image/PDF in pixels/inches, respectively.
height Number The height of the image/PDF in pixels/inches, respectively.
angle Number The general orientation of the text in clockwise direction, measured in degrees between (-180, 180].
page Integer The 1-based page number in the input document.
unit String The unit used by the width, height and boundingBox properties. For images, the unit is "pixel". For PDF, the unit is "inch".
language String The detected language on the page overall or of a specific line if different from the page.
version String The version of schema used for this result.
documentResults [Object] An array of objects, each representing a receipt detected in the input document.
docType String The value is set to "prebuilt:receipt" to indicate a receipt document.
pageRange [Integer, Integer] First and last page numbers where the receipt is found. Currently, only single-page receipts are supported.
fields Object Dictionary of detected field values.
type String Data type of the field value. Currently, possible types include "string", "number", "phoneNumber", "date", "time", "array", and "object".
valueString String Semantic value of "string" fields.
valueNumber Number Semantic value of "number" fields.
valuePhoneNumber String Semantic value of "phoneNumber" fields.
valueDate String Semantic value of "date" fields.
valueTime String Semantic value of "time" fields.
valueArray [Object] Semantic value of "array" fields.
valueObject Object Semantic value of "object" fields.
elements [String] When includeTextDetails is set to true, a list of references to the text elements constituting this field.
Supported fields:
Name Type Example
ReceiptType string "Itemized"
MerchantName string "Contoso"
MerchantPhoneNumber phoneNumber "_PHONE_"
MerchantAddress string "123 Main St Redmond WA 98052"
TransactionDate date "2019-06-26"
TransactionTime time "16:49:00"
Total number 14.34
Subtotal number 12.34
Tax number 2.00
Tip number 1.00
Items array of objects [
 { "Name": "Surface Pro 6", "Quantity": 1, "Price": 999.00, "TotalPrice": 999.00 },
 { "Name": "SurfacePen", "Quantity": 2, "Price": 99.99, "TotalPrice": 199.98 }
]
Name string "Surface Pro 6"
Quantity number 1
Price number 999.00
TotalPrice number 999.00
{
 "status": "succeeded",
 "createdDateTime": "2020-05-13T07:29:49Z",
 "lastUpdatedDateTime": "2020-05-13T07:29:57Z",
 "analyzeResult": {
 "version": "2.0.0",
 "readResults": [
 {
 "page": 1,
 "angle": 0.2816,
 "width": 600,
 "height": 1172,
 "unit": "pixel",
 "language": "en"
 }
 ],
 "documentResults": [
 {
 "docType": "prebuilt:receipt",
 "pageRange": [
 1,
 1
 ],
 "fields": {
 "ReceiptType": {
 "type": "string",
 "valueString": "Itemized",
 "confidence": 0.878
 },
 "MerchantName": {
 "type": "string",
 "valueString": "Contoso",
 "text": "Contoso",
 "boundingBox": [
 150.1,
 97.9,
 452.2,
 120.4,
 439.1,
 296.5,
 137,
 274
 ],
 "page": 1,
 "confidence": 0.669
 },
 "MerchantAddress": {
 "type": "string",
 "valueString": "123 Main Street Redmond, WA 98052",
 "text": "123 Main Street Redmond, WA 98052",
 "boundingBox": [
 132.8,
 293,
 321.8,
 295.1,
 321,
 369.1,
 132,
 367
 ],
 "page": 1,
 "confidence": 0.994
 },
 "MerchantPhoneNumber": {
 "type": "phoneNumber",
 "text": "_PHONE_",
 "boundingBox": [
 129,
 427,
 263,
 429,
 262,
 456,
 128,
 454
 ],
 "page": 1,
 "confidence": 0.995
 },
 "TransactionDate": {
 "type": "date",
 "valueDate": "2019-06-10",
 "text": "6/10/2019",
 "boundingBox": [
 128,
 520,
 210,
 521,
 210,
 551,
 128,
 550
 ],
 "page": 1,
 "confidence": 0.995
 },
 "TransactionTime": {
 "type": "time",
 "valueTime": "13:59:00",
 "text": "13:59",
 "boundingBox": [
 216,
 521,
 269,
 521,
 269,
 550,
 216,
 551
 ],
 "page": 1,
 "confidence": 0.995
 },
 "Items": {
 "type": "array


text:
Keeping the Power On: 5G Satellites Support Smart Grid Sensors, Pinpointing Problems Promptly
A partnership between Sateliot, operator of a constellation of low earth orbit "nanosatellites" and Sentrisense, developer of power grid sensors, aims to reduce the time required to troubleshoot power outages, minimizing the duration of the outage. The Sateliot satellites support 5G narrowband IoT (NB-IoT) connectivity. The Sentrisense sensors connect to electric towers and electric lines to keep management apprised of their status and condition.
The 5G satellites will provide Sentrisense with connectivity to its devices, even if the devices are out of reach of other forms of connectivity. Sentrisense will monitor the devices and modify amperages as needed to manage the grid more efficiently even in the case of accidents, fires or broken lines. The time required to pinpoint broken wires can be reduced from four hours to just five minutes, according to the partners. The deal with Sateliot will enable Sentrisense to make its platform available anywhere on earth, the companies say. Currently, the system is up and running in the United States, Australia, Belgium, Chile, Spain and Sweden.
The partnership will enable massive data gathering that will make the power grid smarter. The devices can report ambient weather conditions — including humidity and wind speed and direction — which will enable proactive steps to be taken to protect the grid. The system can help prevent energy leaks and help preparations for heat waves or blizzards. "The massive connectivity between 5G satellites and the sensors will allow far more accurate predictions on wear and tear analysis, alert to the presence of fallen trees or ice on the lines, and make models of wire inclination and distance from the ground and model the ideal ampacity, among other applications," said Sateliot CEO Jaume Sanpera in a press release.
Sentrisense sensors last 10 years and can work with a variety of networks, including 4G and Wi-Fi. The devices can be attached with an industry standard clip, even by drone. They are provided with a solar panel and battery.


Sign up ×
When wanting to learn the word for "ID card" I seem to find both "身份证" and "身分证".
They both have the same pronunciation "shēnfèn zhèng".
I don't think they differ by being traditional vs simplified?
What exactly is the difference? Can I use either one? Is it maybe regional?
share|improve this question
Not interchangeable. Only Taiwan uses "身分證", other places use "身份证/身份證". This is not an issue about traditional vs simplified either. For the pronunciation, you're right, they are both shēnfèn zhèng (_USER_-3 you may check the 重編國語辭典). – Stan Feb 5 '14 at 10:24
On a search, I find 身分证 is only used in Taiwan. – amateur Feb 5 '14 at 17:39
_USER_: So it looks pretty much to be regional orthographic (spelling) difference. – hippietrail Feb 5 '14 at 17:52
+1 interesting. I will do some research on this and probably add the alt form to Wiktionary. – deutschZuid Feb 5 '14 at 21:04
It's 身分証 in Japanese, so don't know if Japanese rule in Taiwan could have influenced the Taiwanese way of writing it. 份 is not in common use in Japan. – dainichi Feb 6 '14 at 2:11
2 Answers 2
up vote 6 down vote accepted
The character 分 has two different readings. As fen1, it has a range of meanings. As fen4, it can mean a role or part played by a person, a more general part or portion of something, or a component. Fen4 can also be written 份, and dictionaries I consulted from both Taiwan and the mainland don't seem to differ here.
The Far East Chinese-English Dictionary, pretty much the standard bilingual dictionary in Taiwan, has the following: 身分證 or 身份證 shēnfènzhèng 'ID card'.
The Chinese-English Dictionary from the Foreign Language Teaching and Research Press is a mainland publication. It has 身分证 or 身份证 shēnfenzhèng 'ID card'. This dictionary does one thing a bit differently – it divides the meanings of fen4 into those which can be written with either character and those which use only 分. In the latter category is 分外 'especially'. But this doesn't affect the term for ID card.
There may be some cross-strait difference in actual usage between分 and 份 in this word, but as I have shown here, according to dictionaries both forms are acceptable wherever you are!
share|improve this answer
In simplified, it's 身份证.
In traditional, it's 身分證.
share|improve this answer
No it's not... they're pronounced differently as well. – 50-3 Feb 5 '14 at 9:26
Check your traditional link. It's 身份證 (not 身分證) – amateur Feb 5 '14 at 17:46
Your Answer


text:
Facoltà nelle vicinanze Saltaire
Victoria Hall, Saltaire
Victoria Rd, Bradford, BD18 3JS, Regno Unito, GPS: 53.836937,-_PHONE_
Inspired by opulent 15th century architecture and commissioned by Sir Titus Salt as a centre for recreation, culture and learning for the village inhabitants, the hall opened in 1869, known as the Victoria Hall & Institute.
Abbiamo trovato più di 11 Istruzione a Saltaire, tra cui
- 7 College
- 3 School
- 1 Kindergarten


- It is illegal if any location initialized at the end of the true-branch is not initialized at the end of the false-branch, and vice versa.
The sense of the test can be inverted with not.
repeat
repeat {
 <block>
} until <src-memory-location>
Executes the block repeatedly until the src (observed at the end of the execution of the block) is non-zero. The block is always executed as least once.
 - It is illegal if any memory location is uninitialized at the exit of the loop when that memory location is initialized at the start of the loop.
To simulate a "while" loop, use an if internal to the block, like
repeat {
 cmp y, 25
 if z {
 }
} until z
"until" is optional, but if omitted, must be replaced with "forever":
repeat {
 cmp y, 25
 if z {
 }
} forever
The sense of the test can be inverted with not.
repeat {
 cmp y, 25
 if z {
 }
} until not z
for
for <dest-memory-location> (up|down) to <literal-byte> {
 <block>
}
Executes the block repeatedly, incrementing or decrementing the dest-memory-location at the end of the block, until the value of the dest-memory-location has gone past the literal-byte.
The block is always executed as least once.
 - It is illegal if any memory location is uninitialized at the exit of the loop when that memory location is initialized at the start of the loop.
Grammar
Program ::= {ConstDefn | TypeDefn} {Defn} {Routine}.
ConstDefn::= "const" Ident<new> Const.
TypeDefn::= "typedef" Type Ident<new>.
Defn ::= Type Ident<new> [Constraints] (":" Const | "@" LitWord).
Type ::= TypeTerm ["table" TypeSize].
TypeExpr::= "byte"
 | "word"
 | "buffer" TypeSize
 | "pointer"
 | "vector" TypeTerm
 | "routine" Constraints
 | "(" Type ")"
 .
TypeSize::= "[" LitWord "]".
Constrnt::= ["inputs" LocExprs] ["outputs" LocExprs] ["trashes" LocExprs].
Routine ::= "define" Ident<new> Type (Block | "@" LitWord).
 | "routine" Ident<new> Constraints (Block | "@" LitWord)
 .
LocExprs::= LocExpr {"," LocExpr}.
LocExpr ::= Register | Flag | Const | Ident.
Register::= "a" | "x" | "y".
Flag ::= "c" | "z" | "n" | "v".
Const ::= Literal | Ident<const>.
Literal ::= LitByte | LitWord | LitBit.
LitByte ::= "0" ... "255".
LitWord ::= ["word"] "0" ... "65535".
LitBit ::= "on" | "off".
Block ::= "{" {Instr} "}".
Instr ::= "ld" LocExpr "," LocExpr ["+" LocExpr]
 | "st" LocExpr "," LocExpr ["+" LocExpr]
 | "add" LocExpr "," LocExpr
 | "sub" LocExpr "," LocExpr
 | "cmp" LocExpr "," LocExpr
 | "and" LocExpr "," LocExpr
 | "or" LocExpr "," LocExpr
 | "xor" LocExpr "," LocExpr
 | "shl" LocExpr
 | "shr" LocExpr
 | "inc" LocExpr
 | "dec" LocExpr
 | "call" Ident<routine>
 | "goto" Ident<executable>
 | "copy" LocExpr "," LocExpr ["+" LocExpr]
 | "if" ["not"] LocExpr Block ["else" Block]
 | "repeat" Block ("until" ["not"] LocExpr | "forever")
 | "for" LocExpr ("up"|"down") "to" Const Block
 | "with" "interrupts" LitBit Block
 .


text:
Schoenberg's Verklärte Nacht: history, editions and analyses
Gustafson, Kirk, 1953-
MetadataShow full item record
This dissertation completed in 1989 is a study containing information surrounding Arnold Schoenberg's original composition of Verklarte Nacht in 1899, his arrangement for string orchestra published in 1917, and his Revision published in 1943. This document is the culmination of the following research: biographical information; a comparative study of the editions listed above; manuscripts; and recordings. A survey of twenty-one different analyses is included along with a chapter regarding the ballet "Pillars of Fire," which was choreographed to the music of Verklarte Nacht.
- Music


text:
In the intricate world of cassava processing, where challenges often demand ingenious solutions, the need for innovation is paramount. At Tosmat Foods and Agro Products, we not only recognize this need but embrace it as a guiding principle. In our pursuit of efficiency with minimal resources, we are thrilled to unveil MOCAPI – Mobile Cassava Processing Innovation, a revolutionary concept that brings a mini Garri factory directly to you.
Innovation in Focus: MOCAPI
Imagine a tricycle or truck equipped with the essential Garri processing machinery – that is MOCAPI, designed to streamline the cassava processing value chain, MOCAPI is our answer to enhancing efficiency and mobility in Garri production.
Advantages of MOCAPI
- Mobility : MOCAPI is not confined to a fixed location. Its mobility allows us to bring cassava processing closer to the source, reducing transportation costs and ensuring fresher raw materials.
- Efficiency on the Move: By integrating the majority of Garri processing equipment onto a compact mobile unit, MOCAPI eliminates the need for a traditional processing plant. This not only optimizes space but also significantly reduces operational costs.
- Sustainability: Tosmat Foods believes in sustainable practices. MOCAPI aligns with our commitment by utilizing resources effectively, minimizing waste, and promoting eco-friendly processing.
At Tosmat Foods and Agro Products, MOCAPI represents our dedication to pushing the boundaries of traditional methods, embracing change, and leading the way in the cassava processing revolution. Join us on this journey as we redefine possibilities in the pursuit of excellence. Innovation is not just a choice; it's our commitment to shaping a sustainable and resource-efficient future.


text:
Abstract: While teaching auditing using cases is regarded as an effective approach, spatial separation of students and teachers in online contexts can restrict the application of case teaching. This study examines an undergraduate auditing course implemented to address this challenge by integrating case teaching with ePortfolio assessment. Students' written ePortfolio submissions and scores were analysed. Results show that despite spatial separation of the online learner from peers and teachers, integrating case teaching with ePortfolio assessment elicits learner behaviour desirable in online auditing courses. This approach enables online learners' self-directed engagement as compared to instructor-led case teaching in conventional teaching contexts. Based on a new pedagogical approach for teaching auditing trialled in reduced (or absence of) face-to-face interaction, this study informs course design in auditing. It demonstrates that active student engagement, which presupposes an instructor's role to facilitate student involvement in case discussions, can be implemented in online teaching of auditing.
_PHONE_ 7N9CDTHS items 1 apa default ASC


text:
heading to the Global Refinements tab in the Properties Panel and clicking Invert.
To fix up the hair that wasn't included, select the Refine Hair button at the top. The selection will be more refined with the inclusion of the smaller strands of hair.
The hair is now included in the cutout subject. Now, you can set your output settings to New Layer with Layer Mask, and check Decontaminate Colors, then click OK.
The layer with the mask applied will appear in your Layers Panel.
Option 5: The Magnetic Lasso Tool
The Lasso tool can do a pretty good job making accurate selections — particularly the Magnetic Lasso tool. This tool will allow you to draw a selection around the edge of your subject, to snap the selection to the edge automatically.
This can take a bit longer for more complicated images as you'll have to draw more anchor points in uneven areas, but this method does allow you tons of control over where the selection goes.
Step 1: Activate The Magnetic Lasso Tool (L)
To access the Magnetic Lasso Tool, click and hold the Lasso Tool icon and click the Magnetic Lasso Tool.
Then, in the Options Bar, click the first icon, New Selection.
Step 2: Adjust The Settings In The Options Bar As Needed
The Feather settings allow you to control how soft or hard the edge of the selection is. Width controls the size of the selection brush: any pixels closer to the dot in the middle will be favored as part of a selection, while anything outside will be considered the edge. Photoshop will automatically snap the edges to that.
The Contrast setting helps Photoshop know the amount of contrast — how much of a difference between two different colors and exposures — can be accepted as an edge. Lower contrast will have a wider tolerance. 10% is a good value to keep, but you can adjust it according to your needs.
The Frequency setting adjusts how many anchor points are added as you draw. Higher frequency makes more points, which is often better if the edge you're working with is very uneven because there will be more chances for the path to snap to the edge.
Step 3: Drag Along The Edges Of The Subject
Now, draw along the edge of the subject, trying to keep the center of the brush right along the edge, as this will allow the selection to snap to the edge most accurately. If you accidentally add anchor points that you don't need or want, simply press delete, and it will remove what you've drawn since the last anchor point.
Once you're finished drawing your selection, connect it to the point where the selection began.
Step 4: Refine The Selection Using The Select And Mask Workspace
Then, in the Options Bar, click the Select and Mask button.
This will remove the background from the selection you've made. It's okay if the selection isn't perfect. In the below image, parts of the very bottom edge are cut off.
We can fix this by heading to the Brush Tool icon in the toolbar.
Now, with the plus sign selected to add to your subject or the Minus sign selected to add to the transparent background, you can adjust brush settings like Size, Hardness, and Spacing by clicking the Brush Size icon.
Once your settings are correct, brush along the areas you'd like to add to the subject or correct any weird edges. Once you're satisfied, your background removal is complete!
Finally, in the Properties Panel, head to the Output Settings and make sure "Decontaminate Colors" is checked. Select Output To: New Layer with Layer Mask and click OK.
Your image will appear in your Layers Panel as a new layer with the Mask applied.
Option 6: The Magic Wand Tool
When you click an image with the Magic Wand, it automatically selects all adjacent pixels of the same color as the one you clicked. The tool is best applied to images that have a clear distinction, whether in color or exposure, between the subject and the background. It is also best if this edge isn't overly complicated.
Make sure to unlock the primary layer of the image you're working on. If you don't, deleting the background can fill it with random elements of your image.
Step 1: Unlock The Background Layer
To start, head to your Layers Panel and right-click or Control + click your main layer and select Layer from Background.
In the window that appears, name your layer if you'd like, then click OK, and you'll see the layer in the Layers Panel.
Step 2: Activate The Magic Wand Tool (W)
You can find the Magic Wand tool by clicking and holding or Control + clicking the Object Selection Tool and selecting Magic Wand Tool.
In the Options Bar, make sure the New Selection icon is selected.
Step 3: Adjust The Tolerance In The Options Bar
Check Anti-alias and Contiguous, and set your Tolerance — this refers to the variation of pixels picked up from the sample you make when you click your cursor on the background. The higher the Tolerance, the more of your image will be selected automatically. Because there is a bit of variation in my image, I will keep my Tolerance fairly high at 70.
Step 4: Click On The Background Of The Image
Now, click the background of your image, and Photoshop will automatically select the pixels around that area that are of a similar color or exposure.
You can add to your selection by clicking the Add to Selection icon at the top and clicking around the background until most or all the background pixels are selected.
If the selection goes too far into the subject, as it has gone onto the woman's jeans in the above image, click the Subtract from Selection icon. It might help to lower your Tolerance as well.
Click the areas you'd like to remove from the selection and refine until you're satisfied.
Step 5: Refine And Invert The Selection Using The Select And Mask Workspace
Then, you can click Select and Mask.
If the image appears inverted, with the subject transparent instead of the background, you can head to the Global Refinements tab in the Properties Panel and click the Invert button.
Lastly, you can set the Output Settings in the Properties Panel. Check Decontaminate Colors to remove fringing and set the output to New Layer with Layer Mask.
The new layer will appear in your Layers Panel with the layer mask beside it.
Option 7: The Pen Tool
The Pen Tool (P) is best when you need to cut the background out of a very specific edge; for instance, if you need to cut around a person or people or if you have a very busy background.
Since this tool allows you to have complete control over the selection of your edge, it is great for any edges that aren't clearly defined — as long as you can see the edge of your subject, you can cut it out.
Step 1: Activate The Pen Tool (P)
To access the Pen Tool, press P or click the tool in the Toolbar.
Step 2: Set The Mode To Path In The Options Bar
Then, make sure the mode is set to Path in the Options Bar.
Step 3: Click To Add Anchor Points Around The Subject
Each time you click, an anchor point will be added, and the lines that connect them make up a path.
You'll notice the paths between your anchor points are always straight. To curve them, click and hold, and you'll see a control arm appear as a line along your last anchor point. The farther out you drag the control arm, the more control you'll have over your curve.
You can drag along the line to adjust the curve of the path you've just made, even after you've moved on to create your next anchor point. To do this, hold the Alt (Win) or Option (Mac) key and click the round toggles at the end of the control arms.
It is best to make sure the front of your control arm is lined up well enough along where you'd like your path to follow, like in the image above. If your control arm is off in another direction, the next anchor point you add might create an inaccurate path that doesn't follow your intended direction.
If there are a lot of angles in your subject, you'll need to add lots of anchor points. If you accidentally misplace an anchor point, you can press the Delete button to go back to the previous anchor point.
In the end, attach the end of the path to the beginning.
Step 4: Right-Click And Choose "Make Selection"
Now, right-click inside the complete path and choose Make Selection.
In the Make Selection window, check Anti-aliased and New Selection, and set Feather to 0 or 0.5 if you'd like nice sharp edges.
Click OK, and you'll notice the path turns into a selection.
Step 5: Add A Layer Mask To Remove The Background
Now, click the layer you'd like to cut out and click the Layer Mask icon.
This will remove the background by applying the selection onto a layer mask. You'll see the layer with the mask applied beside it in the Layers Panel.
Option 8: Channels
Channels are the best tool to use for selecting and cutting out those more complex angles, such as hair or treetops.
Step 1: Open The Channels Panel
The Channels Panel can be found right next to your Layers Panel. If you don't see it, go to Window > Channels.
Step 2: Duplicate The Channel With The Most Contrast
The three options here (besides the default RGB) are red, green, and blue, each representing a different color channel. Click through each, and you'll notice they all have varying levels of contrast depending on your image. Find the one with the most contrast