Latest Posts
3D Printing Stores and Labs in Berlin
The idea of accessibility is being used in Berlin because it is believed that everyone should have the ability to become a maker and have access to 3D files, 3D printers, and 3D modeling software. Platforms, such as Thingivers; software, such as Meshmixer; and 3D printers are now available for affordable prices. As a matter of fact, there have been a growth spurt in this accessibility over the previous years. Places like universities have this technology available within their facilities, so that students can develop and research in their fields. Recently, the Technical University of Berlin (TU), for instance, has taken it a step further by making the accessibility of additive manufacturing by opening a student run "3D Printing Repair Café".
berlin-stores-and-labs-to-print
This past April, the 3D Printing Repair Café celebrated its opening by providing students and even non-students with a space to try out the 3D printing technology. They can do this whether need a creative design model, a spare bicycle part, or just a custom made gift. Also, the space consists of Ultimaker brand 3D printers which were launched by the Society of Friends of TU Berlin.
This space also offers assistance in fostering the university's maker community by providing numerous workshops and events in hopes for interdisciplinary exchanges of ideas. These workshops tackle areas, like building DIY 3D printers, and familiarizing with hand tools and machines.
For those interested, the 3D Printing Repair Café is located at the TU's Charlottenburg Campus. For those not in Germany, the student run initiative is still worth reading because it provides a model in a creative and innovative space that is applicable for nearly any university.
In other reports, Formlabs, the Form 1+ desktop 3D printer creators, have recently announced further expansion of the EU market. In responding to the growing demands within the EU market, Formlabs opened its first office outside the United States. As a matter of fact, it's located in the heart of Berlin in which offers greater support and service to Formlabs community within the EU.
Additionally, Formlabs recently announced an official distribution partnership with iGo3D. This is a desktop 3D printer's distributor based in Germany. This partnership is focusing on enhancing support and sales for Formlabs' customers in Germany and the ability in experiencing the printers in primarily being at iGo3D's retail locations in Frankfurt, Oldenburg, Stuttgart, and Hamburg. The one in Hannover would be later. Also, the pricing for these items are affordable.
Lastly, companies like Trigonart, Objectplot, Botspot and blueprint 3D offer 3D printing stuff and services. Botspot is the first 3D printing store of Berlin recently opened. It's located at the Moritz Platz in the Berlin-Kreuzberg area. This company claimed to possess the most comprehensive provision of 3D printing in Germany. Botspot offers full service in 3D which includes self-made 3D designs and architectural models, creating miniatures of customers, selling 3D accessories and printers, and 3D printing of everyday items. Consumers are able to buy 3D printers, such as the MakerBot, Solidoodle, Ultimaker, and Delta Tower.
Blueprint 3D is located in Berlin-Wilmersdorf and offers also very different 3D printing services, individual techniques, materials, surfaces, and colors, for special orders are possible within a few days. 3D data can also be send online, so that there is no need to travel all day through the city. If you need an individual support; it's obviously better to take the path. The company also helps you with paintings or unready files, questions of design and adequate technology.
TrigonArt Bauer Praus GbR
Gundelfinger Str. 43A
10318 Berlin
+49 30 34660330
ObjectPlot.de
Gundelfinger Str. 43A
10318 Berlin
Tel.: 030 – 34 660 331
rapid-tooling-small-article
What is Rapid Tooling
Much progress has been made with direct part fabrication. However, there are still really limited and slow processes with the fastest additive systems. They are incapable of producing parts in a wide enough range of material fast enough to match. They simply aren't able to produce parts in a material range wide enough at a quick enough rate to match the enormous requirements' spectrum across all industries. Thus, conventional processes, such as casting and molding, are still the only methods capable of producing parts in a material range wide enough at a quick enough rate to match the enormous requirements' spectrum.
This is where rapid tooling comes in. Rapid tooling is tooling that is made with additive processes in which the term is derived from the most popular early name within the field called rapid prototyping. Furthermore, rapid prototyping eventually started extending some of the technologies to create objects out of metals and more durable items. This means that rapid prototyping can be used to create tools, like injection molds. Additionally, the natural terminology extension is known as rapid tooling, especially since time saving is very important.
Many additive technologies, such as laser powder forming and laser sintering, may be utilized to create tools directly in metals and other material. And thus, using the term, "rapid tooling" to these procedures in such applications appeared to be quite right.
On the other hand, indirect processes sometimes have been called rapid tooling, and that is not correct. These indirect processes occur when methods of additive fabrication are used to create a pattern or model where a tool is also created using a secondary process. Many of these methodologies existed a long time before additive fabrication was invented. Also, mainly all of these methods are able to use patterns from any fashion. Having said this, it's determined that a process including material transfer by itself is not part of rapid tooling, but using one of these processes with a rapid prototyping pattern would be considered a part of rapid tooling. Methods often referred to as rapid tooling techniques include the following: selective laser melting (SLM), Laser Engineered Net Shaping, Direct Metal Deposition, and others. With rapid tooling, the necessary customization is granted for personal applications, instead of dealing with time-wasted, tedious trial and error measurements. Industries everywhere are able to apply these processes for more acute customization and better accuracy in record time.
Making Plastic Parts by Indirect Processes
When it comes to making plastic parts by using indirect processes, it can be done in various ways. Individual plastic parts or production runs of low quantity that is intended for functional usage may need different material properties other than the material utilized in available additive processes. This is also true even if the material is plastic. As a matter of fact, the additive part may belong to another type of material, such as paper or plaster.
making-plastic-parts-by-indirect-processe
The following include several methods used to produce plastic parts through indirect processes:
Silicone Rubber Toolingis a standard technique in making small amounts of polymer parts. Nearly any physical item is able to be used as a pattern in making silicone rubber tooling, in which turn, these tools can be utilized to mold small and medium quantities of parts within a huge variety of epoxy, urethane, or other polymers. Some polymers have properties that emulate specific engineering thermoplastics. Also, it's possible to fill them for more strength. This method won't produce a part that's identical to a part that's injection molded because the manufacture's conditions aren't the same.
Silicone rubber tooling is usually used in manual casting techniques. However, more automated technologies have shown up in recent years. The reaction injection molding (RIM) systems can make several parts each hour from rubber molds. Additionally, molds last longer due to the lower exposure time of chemical procedures. A great amount of the other procedural variants is also available from some vendors, like rubber plastic molding.
RTV Molding Process – this is when the temperature vulcanizing of silicone rubber is occurring. This process is poured around the pattern of a frame of the silicon rubbing process. During this process, a vacuum may be required for the assembly in order to pull out air bubbles out of the rubber. This will help insure the fidelity of the pattern. And then, the pattern is removed when the rubber is solidified and ready for use.
Aluminum Filled Epoxy Tooling – is a great choice for short prototype and productions requiring an engineering thermoplastic as the final material. Thought to be one step above from the silicone rubber tooling, the fabrication is similar to it in a practice that's more expensive and complicated.
Molds made with this technique are utilized in injection molding machinery, but the fabricated parts are not identical to the parts made in high volume mold. Considerably longer cycle time is required because of the material's poorer thermal conductivity in comparison to metal. Additionally, lower pressures must be utilized to accommodate its lower strength. This process is best for simple shapes. Also, depending on the requirements, the tool life is adequate for a range of 50 to 1000 parts. Lastly, a simple description of the process is provided on the sidebar.
Spray Metal Tooling – made in a similar fashion to aluminum-filled epoxy tooling, an epoxy or metal alloy tool of low melting temperatures is prepared with casting this material against a pattern. Then, a thin coat of metal is arc sprayed on the working surface of the resultant mold to give it more strength. The tool life for this process is approximately the same as for aluminum-filled epoxy. However, this process can accommodate bigger parts.
Kirksite Tooling – is spectacular for more complicated geometries, but


text:
Lucius D. Clay, in full Lucius DuBignon Clay (born April 23, 1897, Marietta, Georgia, U.S.—died April 16, 1978, Cape Cod, Massachusetts) U.S. Army officer who became the first director of civilian affairs in defeated Germany after World War II.
Clay graduated from the U.S. Military Academy at West Point, New York (1918), and served in army engineer assignments before becoming head of the first national civil airport program (1940–41). Soon after the U.S. entrance into the war (December 1941), he became a leading production and supply specialist and was placed in charge of the army procurement program (1942–44).
In 1945 Clay was assigned by Pres. Franklin D. Roosevelt to be deputy military governor in Germany under Gen. Dwight D. Eisenhower. Two years later he was elevated to commander in chief of the U.S. forces in Europe and military governor of the U.S. Zone in Germany. During these demanding years, he had to gauge the requirements of food and shelter for a devastated civilian population and, simultaneously, supervise a de-Nazification and de-industrialization program that would harmonize with the postwar recovery of Germany's neighbours. In 1948–49 his administration was marked by the successful Allied airlift of food and supplies into Berlin during the Soviet blockade of that city.
Following his retirement in May 1949 Clay entered private business and became active in politics as a supporter and adviser of President Eisenhower (1953–61). In 1961 and 1962 Pres. John F. Kennedy asked Clay to serve as his personal representative in Berlin, with the rank of ambassador, to help deal with the critical situation that had developed among the four occupying powers concerning that city's future status.

source: openbmb/Ultra-FineWeb


text:
. Halon is considered to be better for use around expensive electrical equipment because, unlike carbon dioxide, it does not cause condensation or otherwise damage electrical components.
- Foam - Class A, B
- These contain a lightweight chemical foam which coats the surface of the burning material, removing the fuel from the fire. These are particularly effective against Class B fires.


text:
Disparities in the District of Columbia: Poverty Is Major Cause| November 2nd, 2006 |
By Stacey Rolland
PDF of this Report (15pp.)
Two Measures of Poverty
Poverty can have effects in two ways – family poverty and neighborhood poverty:
Family poverty is when a family or individual has income below the federal poverty threshold. It shapes such factors as nutrition, job stability and adequate housing.
Neighborhood poverty is the share of families and individuals in a neighborhood living in poverty. High neighborhood poverty affects the quality of schools and other social institutions, safety, and peer influence.
Poverty remains persistently high in the District of Columbia, despite a strong economic rebound in recent years. DC's poverty rate — 19 percent in 2004-2005 — is higher than the national poverty rate of 13 percent and even higher than the poverty rate in most major cities. Census data show that poverty in DC has increased in recent years — from 17 percent to 19 percent — as 10,000 more residents fell below the poverty line. Poverty rates are especially high in some DC neighborhoods, resulting in areas of concentrated poverty. The number of high-poverty neighborhoods increased in the District of Columbia in the 1990s, while they were falling in many other cities.
Research shows that numerous social problems — such as poor health, low school performance, violence, and teen parenthood — are tied to family poverty. The impact of poverty reflects the fact that poor families and individuals often live in overcrowded or substandard housing, suffer from poor nutrition, and lack access to health care. The stresses of poverty also are a major contributing factor behind child neglect and other negative behaviors.
The adverse effects of family poverty are compounded when poor individuals and families live in neighborhoods with high-poverty rates. Just as the socioeconomic status of a family matters for their well-being, the economic and social environments of neighborhoods have significant influence on the life course and outcomes of individual residents, even after taking account of their personal and family characteristics.
Research tends to show that both family poverty and neighborhood poverty create hardships. For example:
- Poor children have lower math and reading test scores than more affluent children within the same schools.
- Children at all income levels tend to have lower test scores when they attend schools in low-income neighborhoods than when their school is in a more affluent area. Children from poor families do better when they attend schools in low-poverty neighborhoods.
A review of data covering the District of Columbia — from the Census Bureau and DC government data sources — confirms that residents of high-poverty neighborhoods in the District suffer from a far-greater incidence of serious social ills than do residents of low-poverty neighborhoods. For example:
- Only 20 percent of students in elementary schools in DC's poorest neighborhoods score at or above grade level, while 60 percent of students in schools in the lowest-poverty neighborhoods score at grade level or better.
- Nearly half of all children with substantiated cases of abuse and neglect in the District come from the poorest fifth of its neighborhoods. Children in DC's poorest neighborhoods are seven times more likely than children in low-poverty neighborhoods — and twice as likely as children in moderate-poverty neighborhoods — to have such substantiated cases of abuse.
Neighborhood-level data also show that rates of violent crime and teen births are far higher in DC's poorest neighborhoods than in lower-poverty neighborhoods.
These data are striking because they show a consistently strong correlation between neighborhood poverty and negative social outcomes on a number of indicators. On every measure, DC's poorest neighborhoods face the worst conditions, high-income neighborhoods enjoy the best conditions, and the conditions in moderate-income areas fall between the two. The findings confirm that poverty — and the concentration of poor families in certain neighborhoods — is a major contributing factor to many of DC's largest problems.
These data also confirm that the daily experiences for families living in DC's low-income neighborhoods are vastly different from those living in higher-income areas. High rates of crime, poor quality schools, and other factors create tremendous barriers to success for families in poorer neighborhoods.
Family and neighborhood poverty, of course, are not the only factors behind DC's negative social outcomes. Public services that are inadequate city-wide also play a significant role in many cases. For example, test scores among students in DC Public Schools fall below those in many other urban school districts with similar rates of poverty, suggesting that there are significant weaknesses in the District's public education system.
A multi-pronged approach is necessary to improve the negative outcomes caused by family and neighborhood poverty.
- Boost incomes of low-income families: Steps to raise the incomes of low-income residents such as increasing employment, raising the minimum wage, and increasing public assistance benefits can reduce family poverty — which in turn would reduce neighborhood poverty rates;
- Reduce concentrations of poverty: Steps to prevent the loss of affordable housing in gentrifying neighborhoods and to promote mixed-income housing developments across the city will help create economic diversity and reduce concentrations of poverty;
- Target critical social services to the highest-poverty neighborhoods: Because some high-poverty neighborhoods will persist, targeted services are needed to offset the negative effects associated with high neighborhood poverty rates.
 Paul A Jargowsky, "Stunning Progress, Hidden Problems: The Dramatic Decline of Concentrated Poverty in the 1990s," Brookings Institution, May 2003.

source: HuggingFaceFW/fineweb-edu


Note: When changing "the sixth branch" to "the sixth sign of the Chinese zodiac" (the former being a tad more obscure than the latter!), removed the meaning of certain hours of the day, as each of the signs has these (the day is divided using the signs) and none of the other entries mention them. The signs are also used to denote other things besides the hours, and such usage is not common except in astrological contexts anyway (when the signs are presumed to be known).
Return to "巳" page.


Take the 2-minute tour ×
I have redone this question:
On $\mathbb R^n$ the Carleson Operator if defined by $$Cf(x) = \sup_{R>0} \left \vert \int_{B_R(0)} e^{2\pi i x\cdot \xi} \widehat{f}(\xi) d \xi \right \vert. $$ (In the previous version I had an incorrect version of this written down which lead to some stupid conclusions).
 - For $n=1$ Carleson proved that this operator is strong (p,p) which is equivalent $L^p(\mathbb R)$ convergence of $S_Rf(x)=\int_{B_R(0)} e^{2\pi i x\cdot \xi}\widehat{f}(\xi)d\xi\to f(x)$ as $R\to \infty$. The modern proof uses boundedness of the Hilbert-Transform and the ''translation trick'' $$\chi_{[-r,r]}(\xi)\widehat{f}(\xi) = \widehat{[\frac{i}{2}(m_{-r}H m_r - m_r H m_{-r})f] }(\xi).$$
 - For $n>1$ Fefferman proved (using a Becosivitch set) that the transform $T$ defined by $$ \widehat{Tf}(\xi) = \chi_{B_1(0)}(\xi) \widehat{f}(\xi)$$ is unbounded in $L^p$ for $p\neq 2$. (There is no Hilbert Transform in higher dimensions, these become the Reisz Transform and the ''translation tricks'' to express $S_R$ in terms of the Hilbert Transform don't work).
 - The Bochner-Reisz conjecture is about boundedness of smoothened characteristic functions and an MO question about it can be found here Recent progress on Bochner-Riesz conjecture
I was originally thinking that $Cf(x)$ could be defined easily for locally compact abelian groups and compact groups and that perhaps a ''translation trick'' existed in some generality. This appears to not be the case for two reasons
 1. The second bullet shows that it is not true in $\mathbb{R}^n$ for $n>1$.
 2. The third bullet shows you that multiplier operator in $\mathbb{R}^n$ are delicate which makes the definition of a Carleson operator for general abelian groups difficult.
Is the operator $$Cf(x) = \sup_{n\geq 0} \left \vert \int_{\frac{1}{p^n}\mathbb{Z}_p} e^{2\pi i \lbrace x \xi\rbrace } \widehat{f}(\xi) d \mu(\xi) \right \vert. $$ bounded as an operator $L^r(\mathbb Q_p) \to L^r(\mathbb Q_p)$. (I think one can define a similar operator on the Adeles no?). How does smoothness of multipliers effect the problem in more general groups?
I'll make it a community wiki so people can fix it if it has errors.
share|improve this question
I've just deleted the comments, which all referred to a previous incarnation of the question, dumping a copy at tea.mathoverflow.net/discussion/1083/comment-cleanup – Scott Morrison Jul 13 '11 at 21:22
2 Answers 2
up vote 3 down vote accepted
There is a p-adic analogue of Carleson's theorem. This was worked out by Hunt and Taibleson and you can find an exposition in Taibleson's book "Fourier analysis on local fields". (NB Taibleson did a lot of work extending Euclidean harmonic analysis results such as Carleson's theorem and boundedness of singular integrals to local fields.) I don't know if an adelic Carleson's theorem has been worked out.
The notion of smoothness in the p-adics is different than in real spaces since the p-adics are totally disconnected. Instead of say differentiability (which can be defined at least formally), one looks at locally constant functions. For more general groups, you need to have an appropriate notion(s) of smoothness to ask how changing the smoothness affects your problem.
share|improve this answer
Assuming your question is actually about Carleson's theorem:
Carleson's theorem about the pointwise convergence of Fourier series is really a one-dimensional statement. It makes use of the fact that one can write the (symmetric) partial sum operators in terms of the Hilbert transform. After some manipulations, one arrives at showing that the maximal operator
$\displaystyle\sup_{N\in\mathbb{R}}\left|\int\textrm{signum}(\xi-N)\hat{f}e^{2\pi ix\xi}d\xi\right|$
is bounded from $L^2(\mathbb{R})$ to itself (or weak $L^2$), where the signum function simply outputs the sign of the input. Indeed, proving this operator is bounded is quite difficult, and Carleson's proof has not been drastically simplified in the last 55 years, although I admit this is hearsay as I have never read Carleson's original proof.
If one moves from the line to the plane, how does one change the signum function? Does it become the characteristic function of some half-space? Can the set of discontinuities be the intersection of two lines? Can it be curved? These variations of the problem can drastically change the answer as well as the difficulty of the problem. For instance the question of whether the partial sums of the Fourier series of a function on the 2-torus converges pointwise is a bit more delicate: if you take the sum over bigger and bigger squares in $\mathbb{Z}^2$, the answer is yes, but if one sums over bigger and bigger discs, the question is open.
The one counterexample to the general trend that things outside of $\mathbb{R}$ are harder (which I know of, anyway) is the finite field variant of the Kakeya conjecture: it eluded harmonic analysts for many years but was recently solved by a graduate student in computer science in about two pages. This was a pretty big deal. So anyway, for your particular problem (if it is actually about Carleson's Theorem), I would be surprised if the answer is known but not the top search on google for 'Carleson's Theorem for Adeles'. The result will almost certainly be group-specific if it is known.
share|improve this answer
Sorry for changing the question on you. Thanks for the response. – Taylor Dupuy Jul 9 '11 at 12:43
I wanted to accept both answers. Is it possible to do that? – Taylor Dupuy Nov 21 '11 at 19:26
I don't think you can accept more than one answer, but that's ok. I just hope what I wrote helped in some way! – Peter Luthy Nov 23 '11 at 1:01
Your Answer


File Extension Search
.adu File Extension
Developer: Addictive Software
File type: Addict User Dictionary File
You're here because you have a file that has a file extension ending in .adu. Files with the file extension .adu can only be launched by certain applications. It's possible that .adu files are data files rather than documents or media, which means they're not meant to be viewed at all.
what is a .adu file?
Files stored in the ADU format are used by an application that can be added to word processing software or to text editing applications developed for Microsoft Windows-based systems. These ADU files are classified as data files because stored in a file with the .adu extension includes pieces of data which can be referenced by a word processing software or a text editor that has been added with the main application that is used to create, open and edit these ADU files. These ADU files are also called Addict user dictionary files due to the nature of the content of a file stored in the .adu format. The Addict software can be used to create, open and edit the content of an ADU file. Addictive Software developed the Addict software as an application which can be added to widely used word processing and text editing programs like Microsoft Word, Microsoft WordPad and Microsoft Notepad among others. This application can be installed by users of computers running on Microsoft Windows systems, so they can create and open these ADU files. The content of these ADU files include dictionary terms that can be referenced by the associated word processing or text editing software added with the Addict software, and this happens when the user accesses the grammar and spell checking features integrated into the word processing or text editor application. Files with the .adu extension are also used as reference data files when a user accesses the thesaurus features implemented into the associated word processing or text editor software.
how to open a .adu file?
Launch a .adu file, or any other file on your PC, by double-clicking it. If your file associations are set up correctly, the application that's meant to open your .adu file will open it. It's possible you may need to download or purchase the correct application. It's also possible that you have the correct application on your PC, but .adu files aren't yet associated with it. In this case, when you try to open a .adu file, you can tell Windows which application is the correct one for that file. From then on, opening a .adu file will open the correct application. Click here to fix .adu file association errors
applications that open a .adu file
Addictive Software Addict
Addictive Software Addict
Addictive Software Addict is a suite of applications that is integrated with a set of features for implementing grammar and spell checking functionalities into C++Builder and Delphi programs. As of this writing, version 4.4 of Addict is the latest release from Addictive Software. This new version includes the implementation of better compatibility support for C++Builder XE2 and Delphi, simpler to operate configuration dialogues and spelling features through an improved UI (User Interface) and an updated database for phonetic suggestions among other functionalities. Unicode support for this program's dictionary feature has also been implemented into Addict v4.4. This version is also integrated with backwards compatibility support for previous releases of Addictive Software Addict. Users could also find it quicker and easier to access the integrated features of Addictive Software Addict through the new editing controls integrated into this program's UI.
a word of warning
Be careful not to rename the extension on .adu files, or any other files. This will not change the file type. Only special conversion software can change a file from one file type to another.
what is a file extension?
A file extension is the set of three or four characters at the end of a filename; in this case, .adu. File extensions tell you what type of file it is, and tell Windows what programs can open it. Windows often associates a default program to each file extension, so that when you double-click the file, the program launches automatically. When that program is no longer on your PC, you can sometimes get an error when you try to open the associated file.
leave a comment
Registry Reviver
Are You Sure?
Repair file extension issues on your PC.
Install and try Registry Reviver for Free!
Copyright © 2022 Corel Corporation. All rights reserved. Terms Of Use | Privacy | Cookies
follow us
Summer Sale!
Up to 40% off
on Premium Suite package plus get Parallels Toolbox FREE!
Save
40
%


text:
What is a Battery PCB?
A battery PCB is a small circuit board that is typically placed between the battery and the device it powers. The board contains various electronic components, such as transistors, resistors, and microcontrollers, which work together to monitor and control the battery's charge and discharge processes.
The primary objectives of a battery protection board are:
- Prevent overcharging
- Prevent over-discharging
- Protect against short-circuits
- Balance cell voltages (in multi-cell batteries)
- Provide a safe operating environment for the battery
Key Components of a Battery Protection Board
To understand how a battery protection board works, let's take a closer look at its key components:
1. Voltage Monitoring Circuit
The voltage monitoring circuit consists of a voltage divider and a comparator. The voltage divider scales down the battery voltage to a level that can be safely measured by the comparator. The comparator then compares this scaled voltage to preset thresholds for overcharge and over-discharge protection.
|Scales down battery voltage for safe measurement
|Compares scaled voltage to preset thresholds
2. Current Monitoring Circuit
The current monitoring circuit uses a small, high-precision resistor (known as a current sense resistor) to measure the current flowing in and out of the battery. The voltage drop across this resistor is proportional to the current, and an amplifier is used to boost this voltage for further processing.
|Current Sense Resistor
|Measures current flowing in and out of the battery
|Boosts voltage drop across sense resistor for processing
3. Protection MOSFET
A MOSFET (Metal-Oxide-Semiconductor Field-Effect Transistor) is used as a switch to disconnect the battery from the load in case of an overcharge, over-discharge, or short-circuit event. The MOSFET is controlled by the output of the voltage and current monitoring circuits.
|Disconnects battery from load during fault conditions
4. Microcontroller (optional)
Some advanced battery protection boards include a microcontroller that provides additional features, such as coulomb counting (for state of charge estimation), temperature monitoring, and communication with the host device.
|Provides advanced features like coulomb counting and temperature monitoring
How Battery Protection Boards Work
Now that we have a basic understanding of the key components, let's explore how a battery protection board works in various scenarios.
When the battery voltage rises above a preset threshold (typically 4.2V for a single Li-ion cell), the voltage monitoring circuit detects this condition and triggers the protection MOSFET to disconnect the battery from the charging source. This prevents the battery from being charged further, which could lead to reduced lifespan, swelling, or even fire.
Similarly, when the battery voltage drops below a preset threshold (typically 2.5V for a single Li-ion cell), the voltage monitoring circuit detects this condition and triggers the protection MOSFET to disconnect the battery from the load. This prevents the battery from being discharged further, which could cause permanent damage to the cells.
The current monitoring circuit continuously measures the current flowing through the battery. If a short-circuit occurs, the current will suddenly increase to a very high level. The protection board detects this rapid increase and quickly triggers the protection MOSFET to disconnect the battery, preventing damage to the battery and the connected device.
Cell Balancing (Multi-Cell Batteries)
In multi-cell battery packs, it is essential to ensure that all cells are at the same voltage level. If one cell is at a significantly different voltage than the others, it can lead to reduced performance and even safety issues. Battery protection boards designed for multi-cell packs often include a cell balancing feature.
Cell balancing is typically achieved through a passive or active balancing method. Passive balancing involves dissipating excess energy from the higher-voltage cells through resistors, while active balancing redistributes energy from higher-voltage cells to lower-voltage cells using switched capacitors or inductors.
Benefits of Using a Battery PCB
Incorporating a well-designed battery protection board offers several benefits:
Enhanced Safety: By preventing overcharge, over-discharge, and short-circuit conditions, battery PCBs significantly reduce the risk of battery-related accidents, such as fires or explosions.
Prolonged Battery Life: Protecting the battery from damaging conditions helps to maintain its health and extends its lifespan, reducing the need for frequent replacements.
Improved Device Performance: A battery operating within its safe limits will provide more consistent power output, leading to better overall device performance.
Cost Savings: Although battery PCBs add to the initial cost of a device, their long-term benefits in terms of safety and battery life can result in significant cost savings over time.
Frequently Asked Questions (FAQ)
1. Can I use a battery protection board with any type of lithium battery?
Battery protection boards are designed for specific battery chemistries and configurations. While most are compatible with lithium-ion and lithium-polymer batteries, it's essential to choose a board that matches your battery's voltage, current, and cell configuration.
2. How do I choose the right battery protection board for my project?
When selecting a battery PCB, consider factors such as your battery's voltage, maximum charging and discharging current, number of cells, and any additional features you may require (e.g., temperature monitoring or communication). Consult the protection board's specifications to ensure compatibility with your battery and application.
3. Can a battery protection board be used with non-rechargeable batteries?
While battery PCBs are primarily designed for use with rechargeable lithium-based batteries, some specialized protection boards are available for non-rechargeable batteries, such as primary lithium cells. However, these boards typically focus on over-discharge and short-circuit protection rather than overcharge protection.
4. How do I install a battery protection board?
Installing a battery PCB involves connecting it between the battery and the device it powers. The board will have separate connections for the battery and the load, often labeled as "B+" and "B-" for the battery and "P+" and "P-" for the load. Ensure that the connections are secure and the board is properly oriented.
5. Can a faulty battery protection board cause damage to the battery or connected device?
Yes, a malfunctioning battery protection board can fail to prevent overcharge, over-discharge, or short-circuit conditions, potentially leading to battery damage or even safety hazards. It's crucial to use high-quality, reliable battery PCBs and to regularly inspect them for any signs of damage or malfunction.
Battery protection boards play a vital role in ensuring the safe and efficient operation of lithium-based batteries in a wide range of applications. By understanding how these boards work and their key components, engineers and developers can make informed decisions when designing battery-powered devices and systems.
As battery technologies continue to evolve, so will the capabilities and features of battery PCBs. Staying up-to-date with the latest developments in battery protection will help you create safer, more reliable, and longer-lasting battery-powered solutions.

source: m-a-p/FineFineWeb


The Power of Seed Oils
Have you harnessed the power of seed oils yet?
If not, why not?
Seed oils are packed with antioxidants and nutrients and really are nature's little secret.
If you want to remain to look young and beautiful then seed oils are the answer.
PURU only uses hand-pressed organic seed oils of the highest quality.
A common feature of oils is that they blend with the secretions of the dermal glands so that they can easily remove various impurities without drying the skin.
Absorbing oils form a protective layer on the skin and prevent water's dehumidifying effect of cold, wind and dry air.
Vegetable and seed oils containing the right blend of ingredients should be included in skin creams and lotions as they are able to prevent cell loss of water without inhibiting skin respiration.
Sun protection
Most plant-based oils also protect the skin from the potentially harmful effects of UV rays. Natural sun protection (SPF) from plant waxes and oils is generally considered to be SPF4, while sesame and avocado oils are considered to have a natural SPF of 1-2. (However, in direct sunlight and for light-skinned people, safer protection is also needed).
Seed oils make the skin elastic
Seed oils are also great for pregnancy by helping to loosen the skin and prevent stretch marks. The oils will intensely soften and elasticize the skin.
They soothe and heal
We can count on vegetable-based oils after sunbathing. Shea butter and geranium oil soothe and regenerate sunburned skin.
Oil for oily skin?
Yes. A good blend of oils will normalize sebaceous glands and tighten the broad pores.
Cares for sensitive skin
For the delicate sensitive skin of children then jojoba oil with antioxidant properties is most definitely suitable. PURU Body Butter Seed Oils contains many seed oils that can even help treat eczema, dermatitis and other skin conditions.


text:
What Does Fox Scat Look Like?
Because foxes are nocturnal and avoid people, homeowners typically discover fox poop long before catching a glimpse of the animal itself. Fox scat can look like scat of other pests, so proper identification is important. Fox droppings are similar to coyote scat, only smaller. Usually, their feces are tan or brown and about two to three inches long with pointy ends. A fox's variable diet affects the look of its feces, so waste may contain bones, hair, insects, and pieces of fruit or seeds.
Hazards of Fox Feces
While foxes themselves can spread diseases like rabies and mange, contact with their droppings is equally as dangerous. It is not unusual for fox scat to contain tapeworms and roundworms. Additionally, these parasites and their eggs contaminate the soil beneath fox poop, as well. In addition to carrying a number of diseases that can infect people and pets, foxes may become aggressive if threatened. If you suspect a fox has taken residence on your property, Contact Us at Critter Control of Salt Lake City for professional removal!


text:
A gaily decorated carriage stands in front of a commemorative arch on Queen Street, Masterton, on the occasion of Queen Victoria's diamond jubilee (the 60th year of her reign). Ten years before, in 1887, Masterton had held a procession and put up a memorial arch, but in 1897 the Wairarapa Daily Times decreed that, compared with the golden jubilee, 'there had been better weather, better arrangements and better enjoyment'. The central focus of the public display was this substantial arch built on a timber frame and decorated with foliage. There were portraits of Queen Victoria over each footpath, and a crown was suspended from the centre of the arch. At night fireworks were let off from the top of the arch, which was decorated with fairy lamps. Further along Queen Street local businesses brightly decorated their shop fronts and the streets had lines of flags and bunting. There was a procession in the morning, and sports in the afternoon. The local newspaper expressed delight that the day was not marred by drunkenness or larrikinism.
Te whakamahi i tēnei tūemi
This item has been provided for private study purposes (such as school projects, family and local history research) and any published reproduction (print or electronic) may infringe copyright law. It is the responsibility of the user of any material to obtain clearance from the copyright holder.


text:
Dedicated to the preservation, restoration and interpretation of the Tavern Museum
Indian King Tavern Museum's more than 270 year-old historic building is New Jersey's first state-owned historic site (1903). It's where New Jersey completed the transition from colony to State passing laws revising election procedures, creating township governments, and setting up state courts. At the Indian King, the assembly passed measures imposing martial law, strengthening the militia, regulating a war economy, and providing emergency support to the Continental Army after its defeat at Brandywine. We know that more might be done with this marvelous space, if we had the resources available. Our mission is to obtain those resources so that more people can benefit from this amazing historical relic.


text:
Ten thousand years ago, the Tribe of the Moon were the super-heroes of their time. They battled many foes, such as Ice Devils, the Creatures of the Caves, the Sharks from Beyond Time, Lemurian Deviants and the Dimension Giants. Their most famous battle was when they were led by their member, Talisman (an earlier self of the current Talisman), against Llan, the Sorcerer. Willow-Dancer was slain in the battle, but Llan was defeated.
Equipment: None known.
Transportation: None known.
Weapons: None known.
- No special notes.
- No trivia.
- 5 Tribe of the Moon (Earth-616) Members
- 4 Appearances of Tribe of the Moon (Earth-616)
- Media Tribe of the Moon (Earth-616) was Mentioned in
- 1 Images that include Tribe of the Moon (Earth-616)
- Team Gallery: Tribe of the Moon (Earth-616)


Why Are These Two Scientists Sneezing On A Rabbit?
A bizarre scene from the Popular Science archives
Let's take a break from trying to wrap our brains around quantum teleportation and robot aliens, and focus on some simpler science: How do sneezes work?
That's the mystery two researchers are working on in this photo from the April 1940 issue of Popular Science:
Infectious germs are spouted from the mouth of a mechanical sneezer developed for medical research by William F. Wells of the University of Pennsylvania medical school in Philadelphia. By means of compressed air, the apparatus blows air-borne germs through a tube into a glass bell housing an experimental rabbit, to simulate the common method of transmission of germs by human sneezers and coughers.
Hey, it only took us 73 more years to invent a barfing machine! Now that's progress.


text:
1. make a sketch of the situation (see attachment)
2. A solid with a mass of 25 kg develops a vetrical force of
3. Cable and pole have to develop an uplifting force of the same value. In my sketch this uplifting force is labeled
4. The angle between pole and cable is
5. The cable is pulling upward.
6. The pole is pushing to the right.
7. The angle between the cable and the uplifting force is 30°.
8. You are dealing with a right triangle which angles you know and the length of one leg.
9. The force with which the cable is pulling can be calculeted by:
10. The force with which the pole is pushing to the right can be calculated by:


text:
What if the air we breathe could be purified by pollution-eating concrete? According to a real-world study conducted by researchers at Eindhoven University of Technology in the Netherlands, it can. The researchers tested this concrete on 1,000 square meters of roads and discovered a 25 to 40 percent decrease in oxides of nitrogen over the roads.
The concrete contains titanium dioxide, which acts as an air purifier by removing nitrogen oxides from the air and, with the aid of sunlight, converting them into "harmless nitrates" (according to an article in Treehugger.) The nitrates are then "rinsed away" by the rain. The concrete also breaks down algae and dirt, so it always stays clean.
This bandaid solution seems like a good (albeit, temporary) way to clean up the outdoor air polluted by toxic vehicle emissions; however, a solution for one problem seems to be the cause of another, in this case. Nitrates in water are not entirely harmless. Too much nitrate can be dangerous, especially for babies and pregnant women or nursing mothers. Nitrates are one of the contaminants filtered out by advanced water filters. If the nitrates are collected and "rinsed away" by the rain, there's a good chance they could end up in our drinking water, in larger doses than are deemed safe.
So, is there a way to get clean air without risking water contamination in the process?


"Tönya" then the document containing "Tönya" would match but documents containing "Tonya" would not, as if your use of a diacritical in the search term had indicated a kind of diacritical wild card. You're doing a word-based search, but what you're searching for is the start of a word; so, you'll also match a document containing "tonyatastic", though not a document containing "retonyafication". (To specify that you want to match entire words, put "tonya" in quotes; now you won't match "tonyatastic". Quotes can also be used to search for exact multi-word phrases.) But the notion of a word includes camel-cased word components, so you'll also match a document called "HelloTonya". Oh, and the search is performed over every kind of metadata, so you'll match documents with "tonya" in their names, in their contents, in their Spotlight comments, and so on.
Two kinds of modification permit to you restrict the search term's application. First, you can specify the kind of metadata you're interested in searching. This is done using a colon-based syntax. For example, to find files that have "tonya" in their Spotlight comments in the Finder, but not files with "tonya" in other types of metadata, you'd put "comment:tonya". The Help documentation gives several other examples of this syntax, some of which are surprisingly powerful. For example, you can ask for files modified on or before a certain date by saying "modified:<=8/10/2007", or files created in a certain range of dates with "created:8/10/2007-8/12/2007". The trouble, though, is that as usual Apple spurns the notion of stooping to provide you with any real documentation: there is no complete conspectus or systematic explanation of the syntax, or even a list of the metadata terms you can specify in this way. (The way I found out about "comment:" in the first example was by trial and error.)
Second, you can combine terms using the Boolean operators AND and OR (in capitals), and modify a term with NOT; a minus sign before a term, with no space, means "and not". The default operator, supplied if you use multiple words without quotation marks or an intervening Boolean operator, is AND. Thus, on my machine, searching on "tonya tidbits" finds 103 items, those that contain both terms; "tonya OR tidbits" finds 530 items; "tonya -tidbits" finds just 15 items, because it's so rare on my computer for Tonya to be mentioned without also mentioning TidBITS.
The Finder Search Window -- To summon the Finder search window, click Show All in the Spotlight menu after a search, or press Command-Option-Space, or (in the Finder) choose File > Find (Command-F), or just start typing in a Finder window's search field. You can use the search term syntax I described in the previous section, but you can also use the Location Bar and the Criteria Bars to restrict and specify your search in a more graphical fashion.
The first question to ask yourself is whether you want to restrict the search location to one particular folder. If you do, then you must start by being in that folder in the Finder before starting the search by pressing Command-F or typing in the search field. When the window changes to a Finder search window, the Location Bar will display the name of the folder you started in; click that name to restrict the search to that folder.
Another nice feature of the Location Bar is that it offers an option to restrict the search to the "File Name", as opposed to the "Contents" - the latter being a misleading term which actually means the default of searching all the metadata at once. These two choices, search by name or search by all metadata, are the two most common forms of search, so it's very sensible of Apple to provide some simple, up-front interface for choosing between them.
To tweak your search further, click the + button at the right end of the Location Bar. This reveals a Criteria Bar. Here you can choose a metadata type in the leftmost pop-up menu. By default, there are just six sorts of metadata listed here: Kind, Last Opened Date, Last Modified Date, Created Date, Name, and Contents. (Here, "contents" really does mean contents.) When you choose one, other operators, fields, and pop-up menus appropriate to your choice appear. So, with "Contents" the only operator is "contains" and you get a text field for typing some text. With "Name" you get a pop-up menu of five operators: "matches", "contains", "begins with", "ends with", and "is". (The difference between "matches" and "is" is that "matches" is word-based; thus, "tonya" matches a file named "Adam and Tonya" using "matches" but not using "is".) With "Kind" you get a pop-up of subtypes, and some of those subtypes have subtypes of their own; thus, the "Kind" called "Music" can be "All", "MP3", "AAC", or "Purchased".
There is also a seventh item in the leftmost pop-up menu of a Criteria Bar: Other. This is where things really start to get good. When you choose Other, you get a dialog listing all the kinds of metadata the Spotlight index knows about. You can just pick one to use it; you can also select a checkbox to specify that that option should appear in the menu from now on, so you don't have to pass through the Other dialog to access it. I recommend that you immediately check two items that I think you'll be using quite a lot:
 - System files. When set to Include, files are sought even in special locations such as /Library/Caches and ~/Library/Preferences. For example, if you search on "com.apple" you won't find much, but if you include system files, you'll find hundreds of preference files.
 - Spotlight items. When set to Include, searches are expanded beyond files and folders to include other sorts of entities, such as iCal events, Safari history items, and preference panes.
A huge power user tip: When you summon the Finder search window with Command-Option-Space, or from the Spotlight menu, Spotlight items is set to Include. When you summon the Finder search window with Command-F or by typing in a Finder window's search field, Spotlight items is not set to Include. This is actually quite brilliant. Spotlight is making a very reasonable distinction and assumption here: if you started in the Finder, you probably just want to look for files and folders, but if you summoned the search window in a more global way, you probably want to look at all kinds of entities. Of course you can always summon a Criteria Bar and change the setting if the initial default isn't what you intended.
You specify additional criteria by showing and configuring additional Criteria Bars; to do so, just click the + button in any existing Criteria Bar. But here's the real trick: if you click the + button while holding the Option key, you get a special Boolean Operator Criteria Bar. The pop-up menu here says Any, All, or None (the equivalents of the Boolean OR, AND, and NOT operators), and it applies to the Criteria Bars that are grouped just after the Operator Bar and indented to the right. Such groups can themselves include a Boolean Operator Criteria Bar, and so you can form Boolean expressions of any depth and complexity (the equivalent of using parentheses in a logical expression). The default operation, used if you simply set multiple criteria without grouping them, is AND (that is, all the criteria must be true at once to get a match).
Conclusions -- Spotlight in Leopard is what Spotlight in Tiger should have been but wasn't. (Don't get me started on a rant about why Apple has so much trouble getting these things right the first time out.) How good is it? Maybe not quite good enough to put NotLight completely out of business. NotLight will need modification in order to take advantage of some of the new features of Spotlight's underlying technology, but it has three features that the built-in Spotlight interfaces do not:
 1. With NotLight, the search is not live, so things don't keep flashing and bogging down while you're typing a search term; you type until you're ready, then do the search.
 2. The Finder Path Bar is great for determining where a found item is by selecting it, but with NotLight you know where every found item is, without having to select it.
 3. NotLight lets you choose between case-sensitive and case-insensitive term matching; sometimes that's actually useful.
Nevertheless, the improvement in Leopard's Spotlight is very, very dramatic - so dramatic that, whereas, in Tiger, once I'd written NotLight, I never used any of the built-in Spotlight interfaces, but used NotLight exclusively for all searching, in Leopard it is quite probable that I will very rarely turn to NotLight


text:
Sylvia Dee is a climate scientist at Rice University specializing in atmospheric modeling, water isotope physics, and paleoclimate data-model comparison. She completed her undergraduate degree in Civil and Environmental Engineering with certificates in Geological Engineering and Environmental Sciences at Princeton University, and her Ph.D. at the University of Southern California Earth Sciences department. She previously held postdoctoral fellowships at the UT Institute for Geophysics and Brown University. Sylvia's research projects include topics in climate modeling and climate of the past millennium, using general circulation models (GCMs) and proxy system models (PSMs) to explore the dynamics of the tropical climate system.
Sylvia is the developer of the water isotope-enabled, fast-physics atmospheric dynamical model, SPEEDY-IER, and a public platform for proxy system modeling development, PRYSM. This modeling platform allows for multi-centennial simulations of common era climate with water isotope physics, which, coupled with proxy system models for proxy records, facilitates the comparison of model output to paleoclimate data.
Department of Earth, Environmental, and Planetary Sciences
News: The Climate, Water, and Energy Lab at Rice is recruiting! Please contact _EMAIL_ for information about Ph.D. and postdoc positions.
Conferences: check out our session at AGU 2018!
Water Isotope Systematics: Improving Modern and Paleoclimate Interpretations
Student News: Zihan Chen (photo on left, Brown University) completed an Undergraduate Research Fellowship (UTRA) this past summer, working with Sylvia and Jim Russell on African Lake Systems! Zihan presented a poster at the UTRA research symposium in August.


Intel® Arria® 10 Core Fabric and General Purpose I/Os Handbook
ID 683461
Date 10/25/2023
Public
Document Table of Contents
Give Feedback
4.1.2. Hierarchical Clock Networks
Intel® Arria® 10 devices cover 3 levels of clock networks hierarchy. The sequence of the hierarchy is as follows:
 1. GCLK, RCLK, PCLK, and GCLK and RCLK feedback clocks
 2. Section clock (SCLK)
 3. Row clocks
Each HSSI and I/O column contains clock drivers to drive down shared buses to the respective GCLK, RCLK, and PCLK clock networks.
Intel® Arria® 10 clock networks (GCLK, RCLK, and PCLK) are routed through SCLK before each clock is connected to the clock routing for each HSSI or I/O bank. The settings for SCLK are transparent. The Intel® Quartus® Prime software automatically routes the SCLK based on the GCLK, RCLK, and PCLK networks.
Each SCLK spine has a consistent height, matching that of HSSI and I/O banks. The number of SCLK spine in a device depends on the number of HSSI and I/O banks.
Figure 51. SCLK Spine Regions for Intel® Arria® 10 Devices
Intel® Arria® 10 devices provide a maximum of 33 SCLK networks in the SCLK spine region. The SCLK networks can drive six row clocks in each row clock region. The row clocks are the clock resources to the core functional blocks, PLLs, and I/O interfaces, and HSSI interfaces of the device. Six unique signals can be routed into each row clock region. The connectivity pattern of the multiplexers that drive each SCLK limits the clock sources to the SCLK spine region. Each SCLK can select the clock resources from GCLK, RCLK, LPCLK, or SPCLK lines.
The following figure shows SCLKs driven by the GCLK, RCLK, PCLK, or GCLK and RCLK feedback clock networks in each SCLK spine region. The GCLK, RCLK, PCLK, and GCLK and RCLK feedback clocks share the same SCLK routing resources. To ensure successful design fitting in the Intel® Quartus® Prime software, the total number of clock resources must not exceed the SCLK limits in each SCLK spine region.
Figure 52. Hierarchical Clock Networks in SCLK Spine


DEC2BIN function
This article describes the formula syntax and usage of the DEC2BIN function (function: A prewritten formula that takes a value or values, performs an operation, and returns a value or values. Use functions to simplify and shorten formulas on a worksheet, especially those that perform lengthy or complex calculations.) in Microsoft Excel.
Converts a decimal number to binary.
DEC2BIN(number, [places])
 - Number Required. The decimal integer you want to convert. If number is negative, valid place values are ignored and DEC2BIN returns a 10-character (10-bit) binary number in which the most significant bit is the sign bit. The remaining 9 bits are magnitude bits. Negative numbers are represented using two's-complement notation.
 - Places Optional. The number of characters to use. If places is omitted, DEC2BIN uses the minimum number of characters necessary. Places is useful for padding the return value with leading 0s (zeros).
 - If number < -512 or if number > 511, DEC2BIN returns the _TAG_! error value.
 - If number is nonnumeric, DEC2BIN returns the _TAG_! error value.
 - If DEC2BIN requires more than places characters, it returns the _TAG_! error value.
 - If places is not an integer, it is truncated.
 - If places is nonnumeric, DEC2BIN returns the _TAG_! error value.
 - If places is zero or negative, DEC2BIN returns the _TAG_! error value.
ShowHow do I copy an example?
Selecting an example from Help
Selecting an example from Help
 1. Press CTRL+C.
 2. Create a blank workbook or worksheet.
Formula Description (Result)
=DEC2BIN(9, 4) Converts decimal 9 to binary with 4 characters (1001)
=DEC2BIN(-100) Converts decimal -100 to binary _PHONE_)
Applies to:


text:
13th March 2014, Cavendish Conference Centre, London
Practical, real world insights for deploying cost-effective and innovative ICT
Healthcare is changing
Rising costs, changing demographics and growing consumer expectations are changing healthcare. Providers and payers are seeking better quality care and improved outcomes whilst striving for much more efficient models of delivery. The recent reforms in the UK, the US and other countries are all part of this movement.IT facilitates a Health Information Revolution
These pressures for transformation are changing the status of IT in healthcare as it facilitates an information revolution in healthcare. Increasingly, ICT (information and communication technologies) is being used more collaboratively to support and drive substantial cultural and strategic change and provide the infrastructure, processes and tools to support this.How to leverage technology to implement effective change?
Ovum's Smart healthcare Summit has been developed to provide critical input for IT leaders in healthcare, providing objective, timely, evaluation of the different healthcare challenges and applications and solutions for tackling them.
The format of the event is discursive with roundtable discussions and case studies from leading CIO and Clinical Directors in healthcare providers, sharing their experiences on what works and what does not.


How Traffic Tickets Work
By: Jacob Silverman
Do you know what to do when you're pulled over by a police officer? See more pictures of police
Matthias Clamer/Getty Images
The United States is a country that loves to drive. Although cities such as New York and Washington D.C. have excellent public transportation systems, millions of Americans still drive as part of their daily commute. And even though most drivers are licensed, having passed a written test and a driving exam, many drivers make occasional mistakes, while some openly flout the law. The result is that millions of traffic tickets are issued in the United States every year. With the fines for many tickets costing more than $100, that makes traffic tickets a billion dollar industry. Some critics of the traffic ticket system say that it doesn't ensure safety and only encourages police officers to satisfy ticket "quotas." Even so, tickets are intended as a deterrent and knowing how traffic tickets work is important whether you're fighting a ticket in court or trying to better understand the traffic laws. In this article, we'll look at how traffic tickets work, the different types of offenses and what to do when you're pulled over by a police officer. We'll also pass along some tips on how to avoid tickets and how to contest a ticket in court.
Types of Traffic Offenses
Generally traffic law is broken up into infractions and violations. An infraction is an offense that is not considered a crime and its penalty is a fine. A person who is guilty of an infraction can't be jailed, receive large fines, have a jury trial or a court-appointed lawyer. Most traffic tickets, such as non-moving violations and non-dangerous moving violations, are infractions. Some speeding tickets can still be relatively large, as many states determine the fine based on how many miles per hour beyond the speed limit the offender was driving.
A violation is more severe than an infraction, and though its definition differs between states, it is usually considered a crime. More serious violations are classified as misdemeanor or felony traffic violations. These include DUI, reckless driving, driving without auto insurance and failure to stop at the scene of an accident. Suspects who are charged with a misdemeanor or felony traffic violation have all the normal rights afforded to criminal defendants. They undergo the booking and bail processes and have the right to a jury trial and a court-appointed attorney.
Although they've created some controversy, automated cameras are becoming increasingly common at busy intersections and are used to catch drivers who run red lights.
An offender will usually be charged with a misdemeanor or felony if the traffic violation caused, or threatened to cause, injury to a person or property damage. A traffic offense can move from infraction to violation, depending on the circumstances. For example, running a stop sign may only be an infraction, but if running a stop sign results in a pedestrian getting hit, the infraction may be classified as a misdemeanor or even a felony. A felony is a serious crime. If convicted of a felony, at a minimum, you would face a year imprisonment. A felony can also result in a death sentence. Repeat DUI, hit and run and vehicular homicide are all examples of felonies.
Traffic law differs from state to state, so it's important to familiarize yourself with the laws where you live. Still, in most states, there are three basic types of traffic offenses.
 - Strict Liability Offenses Whereas many serious crimes require proof of "criminal intent" to convict someone, the only proof needed to convict someone of a strict liability offense is that the person committed the act. Examples of strict liability offenses include driving with a broken or burned-out headlight, making an illegal U-turn, neglecting to yield or use a turn signal or parking in a handicap space without authorization. For most people, the most familiar strict liability offenses are speeding and letting the time on a parking meter expire.
 - Moving and Non-moving Violations The names of these types of violations offer a good idea of what they encompass. A moving violation refers to a traffic violation committed by a moving vehicle while a non-moving violation is related to a car that is not in motion. Generally moving violations are considered more severe -- and the fines are higher -- than for non-moving violations because of the potential for an accident or other dangers. Moving violations include running a red light or stop sign, DWI/DUI and speeding. Tickets for non-moving violations are usually for parking violations, such as parking more than 18 inches from a curb, parking in front of a fire hydrant, parking in a no-parking zone or parking beside an expired meter. Illegal vehicle modifications or faulty equipment can also merit a ticket for a non-moving violation. If your window tint is darker than the law allows or if you have illegal lights on you car, a police officer may issue you a ticket. These infractions count as non-moving violations no matter if you received the ticket while parked or after being pulled over by an officer.
Now that we've gone over ticket types and some of the legal facts surrounding traffic tickets, let's consider what to do when you're pulled over by a police officer.


The Pied Piper of Hamelin
In the town of Hamelin, the rich and greedy live like kings and queens while the poor and sick scavenge rubbish tips for scraps. A lame orphan boy tells the classic tale of how a plague of rats take over the town and how a fantastic piper offers to rid Hamelin of its rats for a single gold coin, then lures away the town's children when the greedy mayor breaks his word. Masterfully weaving contemporary social and environmental themes into a gripping tale, and celebrating it with breathtaking illustrations, former British Children's Laureate Michael Morpurgo and illustrator Emma Chichester Clark team up to create a compelling new take on this timeless story.
Teaching Resources
The Pied Piper of Hamelin Cover Sheet
The Pied Piper of Hamelin Classroom Resource
The Pied Piper of Hamelin Worksheet


text:
In affirmative judgments, on the contrary, lack of this or that communication between subjects and a predicate reveals. They share on judgments with a positive predicate, and judgments with a negative predicate.
The amount of judgment is its other major logical characteristic. Under quantity here certainly not any concrete number of imaginable objects in it. The general, private, single judgments are allocated.
Conclusion - a form of thinking in which of one or several judgments on the basis of certain rules of a conclusion the new judgment with need or a certain degree of probability following from them turns out.
Judgment predicate, being the novelty carrier, can have the most various character. From this point of view in all variety of judgments three groups are allocated: attributive, relational and existential.


Splitting Flightlines
Some PIs will request that processed flight lines are split in to smaller lines, especially if the files generated are of a large size.
Fenix Splitting
It is recommended that you do this after you have found the correct SCT offset values and are ready to generate the final files, as the splitting is done by aplcal when you submit the jobs to the grid. The splitting of the flight lines can be done by following this process:
 1. Find out the number of smaller segments the PI wants the flight lines split in to. This could be in the ticket or in emails. Ask someone if unsure.
 2. If it is not already there, append cal_args_extra = -lines to each flight line section of the config file. This tells aplcal which raw lines to process for this particular flight line section, using the -lines argument of aplcal.
 1. Note: If there is a global cal_args_exrtra = record in the config file (i.e. in the [DEFAULT] section, at the top of the file), this will be overridden by ones local to flight lines. Therefore, you will need to copy the arguments from the global section in to each flight line section to overcome this.
 3. Copy and paste each flight line section in the hyperspectral processing file <number of segments required> -1 times below the original flight line section so that the number of sections for each line is equal to the number of segments required by the PI.
 4. Divide the number of lines in each raw header file (the lines record in the raw header files (found in .../<root project directory>/hyperspectral/fenix) by the number of segments required and round it up/down to something sensible.
 5. After the cal_args_extra = -lines, put in the numbers of the raw flight lines to process.
 1. For the first one, this will be 1 (the first flight line) and the number you obtained in the previous step.
 2. If no overlap is required, the next section should be double the result, and so on. If an overlap is required, the first number used in the latter of the two should be <overlap in metres> less than the second number used in the section before it.
 6. Change the header of each flight line section so that the numbers in the section headers are sequential, and change the line_id and line_number fields to match this.
 7. Change the raw_filebase in each flight line section so that they point to the raw files. Do this by changing what's already there to raw_filebase = %(fenix_filebase)s-<original line number>. You can find this out by doing <new flight line number> / <number of sections required by PI>, and rounding it up.
Below is part of an example config file that was used for splitting hyperspectral data. In this example, each flight line was split in to three segments and used an overlap of 500m.
[fenix_-1]
process_line = false
line_id = -1
line_number = 01
altitude = 2037
airspeed = 137
track = 102.0
raw_filebase = %(fenix_filebase)s-1
output_filebase = f%(julian_day)s%(sortie)s%(line_number)s
sct = 0.98
cal_args_extra = -lines 1 8000
[fenix_-2]
process_line = false
line_id = -2
line_number = 02
altitude = 2037
airspeed = 137
track = 102.0
raw_filebase = %(fenix_filebase)s-1
output_filebase = f%(julian_day)s%(sortie)s%(line_number)s
sct = 0.98
cal_args_extra = -lines 7500 16000
[fenix_-3]
process_line = false
line_id = -3
line_number = 03
altitude = 2037
airspeed = 137
track = 102.0
raw_filebase = %(fenix_filebase)s-1
output_filebase = f%(julian_day)s%(sortie)s%(line_number)s
sct = 0.98
cal_args_extra = -lines 15500 24557
[fenix_-4]
process_line = true
line_id = -4
line_number = 04
altitude = 1922
airspeed = 141
track = 282.0
raw_filebase = %(fenix_filebase)s-2
output_filebase = f%(julian_day)s%(sortie)s%(line_number)s
sct = 0.96
nav2_args_extra = -force
cal_args_extra = -lines 1 8000
[fenix_-5]
process_line = false
line_id = -5
line_number = 05
altitude = 1922
airspeed = 141
track = 282.0
raw_filebase = %(fenix_filebase)s-2
output_filebase = f%(julian_day)s%(sortie)s%(line_number)s
sct = 0.96
nav2_args_extra = -force
cal_args_extra = -lines 7500 16000
Following is part of the raw header file used for the first flight line for the above example flight:
ENVI
description = { Copy of FENIX88-14-1.hdr with wavelengths replaced by wavelengths from /users/rsg/arsf/calibration/2014/fenix/fenix_201405.txt.}
samples = 384
lines = 24557
bands = 622
header offset = 0
file type = ENVI Standard
data type = 12
interleave = bil
byte order = 0
himg2 = {1, 384}
tint1 = 29.3000
tint2 = 25.9000
x start = 0
fps_set = 33.003
fps_qpf = 32.976
qpfTiming = {655.66, 744687.31}
GPS Start Time = UTC TIME: 10:47:32.0000
NavSync Timing = {0, 0}
GPS Stop Time = UTC TIME: 10:59:57.0000
sw_binning2 = {1, 1}
Splitting LiDAR point clouds
Discrete LiDAR
In the case of purely discrete point clouds we can use lasmerge to produce equal divided files.
A script exists to do this automatically:
split_las.py (-d INPUTDIR | -i INPUTFILE | -l INPUTLIST... ) -o OUTPUTDIR (--time time | --speed SPEED --distance DISTANCE )
This can be run on either a single file, a space separated list or a directory of las files. You can specify the number of seconds for overlap using --time (default is 1s aka 65ish metres), you can also specify the overlap in metres if you specify the plane speed too. If you dont want overlap use --time 0. This script will split full waveform and discrete LAS files.
lassplit Is a C++ program which will split LAS files based on a GPS time range.
lassplit -l las_input_file -o las_output_file -s gps_start_time -e gps_end_time
Full Waveform
Left this in as it is still useful.
It is worthwhile using the script above to divide a discrete line then using the x/y coordinates from each section for your division. This will give you a consistent split across the waveform data. If you have variable pitch/roll you will likely have to process each line seperately.
To give a fence in alspp go to filters > points on the ground. In the dialogue that displays click "selected projection (x,y,z)" then enter the min/max of your x/y coordinates for a square.
Alspp will not run on waveform data simultaneously with another alspp instance.
Seemingly at random some lines will not process with the fence options that every other line in the dataset will run under. This will result in an output of 22.6 k las files, you will need to change the fence size or in some cases create an entirely new alspp reg file to overcome this bug.
Once waveform data is completed you should test a couple from each segment in lashistoviewer or a similar waveform visualiser to check they are valid.
Last modified 9 years ago Last modified on Jul 2, 2015, 10:45:46 AM


Skip to Content
CONTENT
1. What is a SLAW and what are its Benefits?
 1.a. Extensibility-When the XI Environment is shared between Multiple Projects
 1.b. Relative Performance Enhancement
 1.c. Pre-build Error Handling Functions
 1.d. File Size based Rotation
 1.e. Controlled Logging & Tracing
2. How to Collaboratively Use XI's Message Monitoring and SLAW's Logging & Tracing Functionality?
3. How does SLAW work?
4. How to Use SLAW for Error Handling & Logging/Tracing in XI?
5. Appendix
DETAILS
1. What is a SLAW and what are its Benefits?
SLAW (SAP Logging API Wrapper) is an abstract interface developed around SAP Logging APIs to hide its complexity from its users (e.g. XI developers). For example, how to format the logging content using the TraceFormatter patterns, how to load a configuration file instead of hard-coding the configurations, how to implement periodic reload of the configuration file, how to optimize the performance using the static methods of the wrapper instead of initiating objects every time we need to use the SAP logging APIs, etc. The objective of SLAW is to provide developers a common framework and a more powerful option to log and trace in XI relative to XI's default logging and tracing capabilities.
Following are few primary benefits of developing a SLAW:
a. Extensibility-When the XI Environment is shared between Multiple Projects
SLAW enables multiple projects to meet their unique logging & tracing requirements when sharing a single XI environment. Using XI's built-in logging and tracing configuration may not be an ideal solution in this scenario since this configuration is applied globally to an integration engine. We can extend the SLAW to allow each project to log and trace at their desired steps at runtime at their desired severity levels (fatal, error, warning, info).
b. Relative Performance Enhancement
A new Java object is required to be initialized every time we need to use SAP logging API or even the MappingTrace object for logging and tracing in XI. Such frequent initializations can lead to performance burden on JVM in the runtime environment. SLAW uses a static Java object which is initialized only once when the Wrapper class is loaded in JVM. Such programming approach can lead to performance enhancement, especially when the number of interfaces grows during the lifetime of an XI project. SLAW also limits the loading of logging properties (format, logging destination, etc.) to only once when the Wrapper class is loaded in JVM which also improves the performance relative to loading the logging properties every time we need to use SAP logging API in XI during design time.
c. Pre-build Error Handling Functions
SLAW provides the build-in error handling functions such as assertion and throw which will be used to validate user-defined conditions at runtime and throw errors with relevant information for quicker diagnosis and resolution as compared to just a basic error message (for example, ArrayOutOfBound exception versus country code for interface X is not in correct format). Using the error handling functions of SLAW also gives us more control and flexibility on how to handle the errors compared to pre-determined error handling of XI's integration engine, for example, it gives us the ability to gracefully log and handle the errors and permit the execution to continue which, based on pre-determined error handling, may completely stop the execution.
d. File Size based Rotation
During development, testing and production, it is typical to come across situations when the log and trace files are so huge that it becomes a time-consuming process to first open such huge logs (may be by breaking it up into multiple relatively smaller files) and then be able to use this log for error diagnosis purposes. SLAW gives us the ability to rotate log and trace files based on the file size. For example, we can configure SLAW to rotate to a new file after the current log file reaches a pre-defined file size limit.
e. Controlled Logging & Tracing
SLAW enables more controlled logging & tracing (i.e. what is logged, when is it logged & how much is logged). This can be a big advantage in terms of limiting the growth of database (used by XI to store message information) when just the message header size roughly doubles from tracing level '0' (25KB) to '1' (50KB). If we extrapolate based on this information, it will take twice as long to fill the database in any environment if we have tracing set to '0';. Logging in XI is extremely verbose so it is normally turned off in production.
2. How to Collaboratively Use XI's Message Monitoring and SLAW's Logging & Tracing Functionality?
Note that default message monitoring in XI logs thorough details for a processed message, such as Sender Namespace, Sender Interface, Receiver Service, Receiver Namespace, Receiver Interface, Queue ID, etc., which are available via the SXMB_ADMIN transaction (Figure 1). Such details may not be captured by SLAW.
Figure 1
image
On the other hand, SLAW provides significant benefits (as discussed in section, 'What is a SLAW and what are its Benefits?') which are not available via XI's message monitoring. Therefore, it is imperative to use a combined approach to track the processing of a message or to diagnose and resolve any processing errors. Following is an exemplary scenario steps (Figure 2) showing the collaborative use of XI's logging details available through message monitoring and SLAW's logging and tracing functionality to resolve a message processing failure:
Step 1: Notification of a message failure in XI either via SXMB_ADMIN or alerts.
Step 2: Collect XI message details pertaining to the failure from SXMB_ADMIN transaction.
Step 3: Capture the Unique Message ID of the failed message.
Step 4: Search for the message ID in SLAW logs.
Step 5: Proceed with failure diagnosis & resolution.
Figure 2
image
3. How does SLAW work?
SLAW is imported into the XI environment in the form of a Java Archive (JAR) file called utility.jar. All functions of the Wrapper class are available globally at runtime. Similarly, utility.jar can also be used to accommodate any globally available user-defined function needed by the XI developers during both design and runtime. For example, we can have a globally available XML manipulative function which adds or remove XML elements from a given XML message.
When utility.jar is imported into the XI environment, the following steps take place as part of the initial loading of the SLAW class:
a. Instantiate a static location object which acts as a linkage between the use of this wrapper and the configurations assigned to this wrapper. Please note that the location name should not contain any numerical characters because such characters will not show up in the logs. For example, A2A will show up as AA, therefore we have decided to use ClientWrapper instead of SLAW.
b. Load the wrapper configuration file. I have included a sample configuration file in the APPENDIX section. This file contains the following configuration which can be easily modified for specific requirements:
i. The logging severity (Severity.DEBUG, Severity.PATH, Severity.INFO, Severity.WARNING, Severity.ERROR, Severity.FATAL, Severity.ALL, and Severity.NONE).
ii. File rotation configuration. For example, the file size limit and the sequence number to be used for file rotation.
iii. Log destination: whether the logs will be outputted to a file or a console or both.
iv. Identify the pattern which will drive the format of the logged information.
c. Call the setPeriordicity method to set the time interval after which the configuration file will be regularly uploaded.
We have wrapped the widely used logging, tracing and error handling methods of SAP logging API with the method declared in the SLAW class. So when any of the methods of the wrapper class is invoked, such as SLAW.info(argumentA,argumentB);, the wrapper calls the corresponding method of the SAP logging API using the same arguments passed to it and returns the results of the method call if applicable. For example, method SLAW.assertion(method, 5 < 3,"INVALID comparison") returns either NULL or LogRecord object.
We have the flexibility to add or change any function in the SLAW class. This could either be a currently available function in SAP logging API or a newly developed user-defined function.
4. How to Use SLAW for Error Handling & Logging/Tracing in XI?
The following steps briefly explain how to use the Wrapper. Also please see the code sample in the Appendix section of this weblog:
NOTE: C: is used as a root directory in the following explanation. Please note that both the location of the configuration file and log files can be easily modified to meet specific requirements of a given environment. For example, in production, these references can be updated to use a drive hosted on a Storage Area Network (SAN).
a. Create logging and configuration directories on the XI server. This is a one time step. Two directories should be available at the end of this step: C:SLAWclientconfig and C:SLAWclientlogs).
b. Copy the clientlogging.properties file to the C:SLAWclientconfig directory.
c. Modify the configuration values in clientlogging.properties if needed. Following configurations can be modified:
i. Severity
ii. Location of the logs
iii. File rotation limit and sequence range
iv. Log destination (console or log file or both)


text:
By: Rob Burt
Have you ever heard the expression, "A picture is worth a thousand words"? That is definitely true for family history work. You can learn lots of valuable information from family and historical photographs... as long as you interpret them correctly.
Take the following picture as an example. It is a well-known photograph of Henry McCarty, alias Henry Antrim and William H. Bonney—better known as Billy the Kid.
For years, historians, writers, and aficionados of the West used this image to argue that the infamous Western outlaw was a minority in the gunfighter community—a left-hander. This idea was so common that a film titled The Left-Handed Gun on the life of Billy the Kid and starring Paul Newman was released in 1958, and many history books note that he was a southpaw.
In this picture, the rifle Billy is holding is a Winchester Model 1873. If you look closely at the gun, the loading gate (where bullets are put into the rifle) appears on the left-hand side of the gun. (See highlighted area below.)
However, an observant historian eventually noted a problem with the picture: the 1873 Winchester didn't have a loading gate on the left side—only on the right side. The picture was reversed! In the early days of photography, most negatives were produced backwards as a result of the technical process used in the first cameras. If the technicians were not careful when developing the film, they would produce a mirror image of the actual scene. This is what happened to the famous photo of Billy the Kid.
The correct image, depicting Billy as a right-hander, is shown below.
This example illustrates how important family photographs can be. Not only do they give us an image of our ancestors, but important clues about the past can be found in the details surrounding them. Clothing, hairstyles, pins, military awards, automobiles, even rocks and plants can all help tell our ancestors' stories, even if they have not left a lot of written information for us. Some of these details are easily identified; others are more difficult and may need a specialist's eye in order to be fully understood. Regardless, a picture may be worth a thousand words of an ancestor's life story, so don't delay! Pull out those old pictures and see what they may tell you about the lives of your loved ones.
Have you found interesting facts from old photos? Tell us about it, leave a comment.


text:
Water board Aa en Maas (The Netherlands) is located in the South-East , it is rather flat and slopes from the south to the north. The area is known as on of the driest areas in the Netherlands, as a result large parts are irrigated (supplementary irrigation). Recent years drought seems to have increased whereas possibilities for water supply and surface water abstraction decreased. Water board Aa en Maas is responsible for the design and management of the water system in the case study area.
Farmers irrigate by sprinkling, recent also subsurface drainage is introduced and increases fast. Water supply (from the river Meuse) reaches the area via a system of channels with several inlets. Abstraction from surface water is allowed unless the discharge or water level drop below minimum levels. Irrigation from groundwater is allowed unless at the start of the growing season a minimum ground water level is not met.
The farm produces maize for grain production and also biofuel.
Meteorological data from the regional network, hydrological stations, irrigation volumes, soil moisture measurements, groundwater levels, satellite data in the visible and thermal infrared, soil type, land use.


Dave Froslie – Microsoft Development on the Prairie _URL_ Wed, 06 Jul 2016 13:23:44 +0000 en-US hourly 1 Data rollback _URL_ _URL_ Wed, 06 Jul 2016 13:23:43 +0000 _URL_ A major challenge in testing, particularly data driven applications like ERP systems, is managing data during the test execution. For a test to execute reliably, it needs to start from a known state… every single time. How can we make that happen reliably? Fortunately in AX7, a significant testability feature was added to the SysTest framework that enables this behavior.
Before describing the new feature, let's dive into the problem a bit further. A book that I highly recommend, XUnit Test Patterns: Refactoring Test Code, uses the term fixture to describe the setup for a test. There are several different fixture patterns, but I will focus on only a couple.
The fresh fixture pattern creates a new environment for each test method. This is the most common approach for tests at the bottom of the test pyramid, primarily unit tests (see this post on the test pyramid). This typically produces the most reliable tests as there is no possible carryover from previous tests.
The shared fixture pattern creates an environment that is reused by many tests. As tests get broader in scope as in integration or business cycle tests, more and more data needs to exist for the test to execute in a reasonable amount of time. This is where a shared fixture is frequently used, but it has its downsides. A significant challenge can be inadvertent state carryover that impacts downstream tests. This situation impacts test reliability, can be very frustrating to debug, and results in lost confidence in the test suite.
An ERP system, with its mass of back end, interconnected, data, lends itself to a shared fixture for tests broader than unit tests. Internally, we've come up with different approaches to address the data sharing and fixture tear down challenges over past releases – things like test suites and various isolation approaches. Most of these were "bolt-ons" to the SysTest framework, and all ultimately had some drawbacks.
For AX'7′, we focused on reliably rolling back data at different layers directly within the SysTest framework. To accomplish this, the transaction savepoint feature in SQL Server was leveraged. Savepoints are created at the start of each class and each method, enabling nested rollback to these known states as part of the teardown process. Because it leverages native SQL capabilities, it is both reliable and fast.
Data rollback using SQL transaction savepoints is the default behavior for all SysTest classes. You can choose to disable it at the class level using the SysTestTransaction attribute with the 'NoOp' value. This might be helpful while debugging tests, but you should almost always take the default behavior.
Now that we have reliable and fast data rollback, we've discouraged the use of legacy test isolation mechanisms. This has resulted in big reduction of 'flaky' tests… and that has been a huge benefit to our engineering efforts!
]]>
_URL_ 0
X++ FormAdaptors – A Simple Example _URL_ _URL_ Mon, 16 May 2016 15:00:51 +0000 _URL_
My last post introduced a testability feature in the new AX called FormAdaptors. That post described changes in the product architecture that enabled FormAdaptors and why they have been so valuable for our internal automated regression testing strategy. In summary, FormAdaptors provide an API to interact with forms from X++ and run server side tests that are fast and reliable.
This post provldes a simple example of FormAdaptors so you can get a feel for the API. The form that we're going to be targeting is the VendParameters form. We're specifically going to interact with the two controls in the red and green boxes in the screenshot of the form shown below.

image
The scenario that we want to test is to verify that the green box control gets enabled and defaulted to false whenever the red box control is set to 'Yes'. The red box control is the InvoiceMatching_UseInvoiceMatching control. The green box control is the InvoiceMatching_UseTotalPriceMatching control.
The X++ test code shown below implements the test scenario.
/// <summary>
/// Tests Invoice totals matching field settings
/// </summary>
[SysTestMethod]
public void InvoiceMatching_TotalsFieldSettings()
{
 using (VendParametersFormAdaptor vendParameters = VendParametersFormAdaptor::open())
 {
 vendParameters.InvoiceMatching_UseInvoiceMatching().setValue(true);
 vendParameters.InvoiceMatching_UseTotalPriceMatching().validateEnabled(true);
 vendParameters.InvoiceMatching_UseTotalPriceMatching().validate(false);
 }
}
The goal for this API is that the test is self explanatory when read… hopefully that is true for you! A few notes on this sample follow:
 - [SysTestMethod] identifies the X++ method as a test method.
 - Each form has a FormAdaptor class associated with it named <FormName>FormAdaptor. The class has multiple static constructors on it, one of which is the open() method shown.
 - The FormAdaptor is wrapped in a using statement so the class is properly disposed after use.
 - Chaining calls together is how you initiate actions on the form. For example, setValue() is a method on a CheckBoxControl.
 - Convenience calls such as validateEnabled() interact with SysTest methods to assert failures and log additional information to aid in debugging failures.
Because this test is running on the server, there is no actual visualization of the test running. This is one disadvantage of executing form tests in this manner and was an initial concern for engineers on the team. This quickly went away when they saw how easy it was to debug the tests in addition to the benefits outlined in the previous post.
]]>
_URL_ 0
X++ FormAdaptors – An Introduction _URL_ _URL_ Mon, 25 Apr 2016 14:01:56 +0000 _URL_ In recent posts I've mentioned some testability features in AX'7′ that have significantly improved our regression test qualities (_URL_ The foremost of these features is the addition of X++ FormAdaptors to use for server side execution of form tests.
In order to describe FormAdaptors, we first need to take a step back to discuss the architecture changes made to enable a web based client that executes against an Azure service in the new AX. The pictures below comparing AX 2012 with the new AX illustrate how the logical control tier has moved to the server. The physical controls, which are now web friendly HTML and JavaScript based, still reside on the client.
clip_image001 >>>> clip_image002
Since the form logic is now running on the server, we have the opportunity to execute form based tests on the server.
But why would we want to do this? Don't we want tests to replicate exactly what the customer does with the product? To do that, you would want to exercise the full product stack starting with the physical control on the client… right?
Well… I can't put it any other way… that's wrong. And if you don't understand why, you should go back and read the posts that are linked at the end of this post. But let me summarize why we want to do this:
 - Server side form based tests are 10X to 100X faster than client side tests. Our form based test times are now measured in seconds (at most) whereas AX 2012 client side tests were measured in minutes.
 - Server side form based tests are much more reliable as the number of moving parts in the test interface is drastically reduced.
 - Because of the previous two bullets, it is easier to write more granular tests that are more precise, simpler, and more maintainable.
 - Replicating what the customer does with the product is frequently not the best way to write a regression test that supports the engineering team.
 - Writing test code in the same language and environment as the product code is a win for engineering productivity.
Now that I've justified why we want form based server side tests, we still need to author these tests. This is where FormAdaptors come into play. The adaptor pattern "is a software design pattern that allows the interface of an existing class to be used from another interface." (_URL_ FormAdaptors provide an API for test classes to interact with the form and its controls in a natural, strongly typed way. Under the covers, the API interacts with the form layer on the server ("Logical control" in the picture above) to replicate what a user working with the product in a browser would do.
In summary… I guess I wasn't very precise in my opening paragraph. FormAdaptors are really just a wrapper around the big change in testability – the


Copy & Pate
 - When I copy text it also copies the background colour, which I don't want and I can't delete.
 - After copying, use "Paste as Plain text"
 This will remove all the formatting.
 Note: at the moment there is a problem with the keyboard shortcut for this (Ctrl+Shift+V) see
 _URL_
 However, using the mouse right-click menu "Paste as plain text" works OK.
 - Just curious, why (or when) is the need to paste non-plain text in address bar or search box ? I mean why the special need to paste as plain text instead of just paste as plain text without any user special action ?
 - @secarica:
 Just curious, why (or when) is the need to paste non-plain text in address bar or search box ? I mean why the special need to paste as plain text instead of just paste as plain text without any user special action ?
 There is no need if the only pasting is to address/search box!
 However, most pasting is done to other fields/forms (e.g. these post/reply forms or into emails/documents etc.). Thus the default is almost always that "what is copied" is the same as "what is pasted" - including ALL formatting.

Looks like your connection to Vivaldi Forum was lost, please wait while we try to reconnect.