account that the first digit already contributes 8 to the digit sum.
As a more complex example let's look at the number of heavy numbers in the interval \$[1234, 5678]\$. We can first go from 1234 to 1240 in steps of 1. Then we go from 1240 to 1300 in steps of 10. The above formula gives us the number of heavy numbers in each such interval:
\$[1240, 1249]\$ \$10 - f(1, 28 - (1+2+4))\$
\$[1250, 1259]\$ \$10 - f(1, 28 - (1+2+5))\$
\$[1260, 1269]\$ \$10 - f(1, 28 - (1+2+6))\$
\$[1270, 1279]\$ \$10 - f(1, 28 - (1+2+7))\$
\$[1280, 1289]\$ \$10 - f(1, 28 - (1+2+8))\$
\$[1290, 1299]\$ \$10 - f(1, 28 - (1+2+9))\$
Now we go from 1300 to 2000 in steps of 100:
\$[1300, 1399]\$ \$100 - f(2, 28 - (1+3))\$
\$[1400, 1499]\$ \$100 - f(2, 28 - (1+4))\$
\$[1500, 1599]\$ \$100 - f(2, 28 - (1+5))\$
\$[1600, 1699]\$ \$100 - f(2, 28 - (1+6))\$
\$[1700, 1799]\$ \$100 - f(2, 28 - (1+7))\$
\$[1800, 1899]\$ \$100 - f(2, 28 - (1+8))\$
\$[1900, 1999]\$ \$100 - f(2, 28 - (1+9))\$
From 2000 to 5000 in steps of 1000:
\$[2000, 2999]\$ \$1000 - f(3, 28 - 2)\$
\$[3000, 3999]\$ \$1000 - f(3, 28 - 3)\$
\$[4000, 4999]\$ \$1000 - f(3, 28 - 4)\$
Now we have to reduce the step size again, going from 5000 to 5600 in steps of 100, from 5600 to 5670 in steps of 10 and finally from 5670 to 5678 in steps of 1.
An example Python implementation (which received slight optimisations and testing meanwhile):
def binomial(n, k):
 if k < 0 or k > n:
 return 0
 result = 1
 for i in range(k):
 result *= n - i
 result //= i + 1
 return result
binomial_lut = [
 [1],
 [1, -1],
 [1, -2, 1],
 [1, -3, 3, -1],
 [1, -4, 6, -4, 1],
 [1, -5, 10, -10, 5, -1],
 [1, -6, 15, -20, 15, -6, 1],
 [1, -7, 21, -35, 35, -21, 7, -1],
 [1, -8, 28, -56, 70, -56, 28, -8, 1],
 [1, -9, 36, -84, 126, -126, 84, -36, 9, -1]]
def f(d, n):
 return sum(binomial_lut[d][i] * binomial(n + d - 10*i, d)
 for i in range(d + 1))
def digits(i):
 d = map(int, str(i))
 d.reverse()
 return d
def heavy(a, b):
 b += 1
 a_digits = digits(a)
 b_digits = digits(b)
 a_digits = a_digits + [0] * (len(b_digits) - len(a_digits))
 max_digits = next(i for i in range(len(a_digits) - 1, -1, -1)
 if a_digits[i] != b_digits[i])
 a_digits = digits(a)
 count = 0
 digit = 0
 while digit < max_digits:
 while a_digits[digit] == 0:
 digit += 1
 inc = 10 ** digit
 for i in range(10 - a_digits[digit]):
 if a + inc > b:
 break
 count += inc - f(digit, 7 * len(a_digits) - sum(a_digits))
 a += inc
 a_digits = digits(a)
 while a < b:
 while digit and a_digits[digit] == b_digits[digit]:
 digit -= 1
 inc = 10 ** digit
 for i in range(b_digits[digit] - a_digits[digit]):
 count += inc - f(digit, 7 * len(a_digits) - sum(a_digits))
 a += inc
 a_digits = digits(a)
 return count
Edit: Replaced the code by an optimised version (that looks even uglier than the original code). Also fixed a few corner cases while I was at it. heavy(1234, 100000000) takes about a millisecond on my machine.
\$\endgroup\$
8
 - \$\begingroup\$ Hi, this solution works and it was a correct computation, however the time limit for small numbers was only 0.10 second, and time limit for big number was 0.35 second. The above code that you posted took about 1 second. Do you think there is any better way, and smart way of handling this, such that, to skip some numbers because we already know that the particular number would have a digit sum less than 7? Or maybe if there is a smarter way to handle this? For your information, this question was also tagged as a hard question. \$\endgroup\$
 – all_by_grace
 Mar 22, 2011 at 20:50
 - 1
 \$\begingroup\$ @Bob: The code is written in Python, and not optimised at all. If you want it to be fast, write it in C. But also in pure Python there is a lot of room for improvement. The first thing that needs optimisation is the binomial() function. There are also a few more things that can easily be improved. I'll post an update in a few minutes. \$\endgroup\$ Mar 22, 2011 at 21:05
 - \$\begingroup\$ Or we can just use a lookup table with precomputed f(m,n). Given that 200,000,000 is the limit, the memory usage should be minimal. (You have my +1 already). \$\endgroup\$
 – Aryabhatta
 Mar 22, 2011 at 21:11
 - \$\begingroup\$ @Moron: That certainly seems to be the best option -- I'll try it. \$\endgroup\$ Mar 22, 2011 at 21:14
 - \$\begingroup\$ @Moron: I'd need to include the lookup table in the source code. Usually f(d, n) is not called twice with the same parameters during one run of the program. \$\endgroup\$ Mar 22, 2011 at 21:33
5
\$\begingroup\$
Recurse, and use permutations.
Suppose we define a general function that finds the values between a and b with a heaviness more than x:
heavy_decimal_count(a,b,x)
With your example of a=8675 to b=8689, the first digit is 8, so throw it away - the answer will be the same as 675 to 689, and again from 75 to 89.
The average weight of the first two digits 86 is 7, so the remaining digits need an average weight of more than 7 to qualify. Thus, the call
heavy_decimal_count(8675,8689,7)
is equivalent to
heavy_decimal_count(75,89,7)
So our range for the (new) first digit is 7 to 8, with these possibilities:
7: 5-9
8: 0-9
For 7, we still need an average of more than 7, which can only come from a final digit of 8 or 9, giving us 2 possible values.
For 8, we need an average of more than 6, which can only come from a final digit of 7-9, giving us 3 possible values.
So, 2+3 yields 5 possible values.
What is happening is that the algorithm is starting with the 4-digit number and dividing it into smaller problems. The function would call itself repeatedly with easier versions of the problem until it has something it can handle.


text:
Value Driven Purpose - The Lean Transformation Framework
posted on August 25, 2015
Many organisations and business leaders that practice Lean thinking make the mistake that Lean transformation and business improvement is all about running training sessions and improvement projects / events. If this was the case, we should be seeing many more world class businesses by now that always delivered exactly what the customer wanted when they wanted.
Instead most businesses still face a number of common challenges. Familiar examples include:
- Making time for improvement
- Sustaining improvement
- Patchy activity or pockets of improvement throughout the business
- Management support to improving the business
- Low overall business impact from improvement activity
To address these and a number of other common issues, we've developed a series of workshops around the Lean Transformation Framework (click here for the video).
The first of our 5 sessions explores how organisations can define purpose – and align their organisational improvement efforts to their purpose. A key part of this approach involves understanding the business problem(s) we are trying to solve and defining purpose in two dimensions: Firstly, customer purpose – by asking "What do your customers want that you are not currently able to supply?" And secondly organisational purpose – by asking "What does your organisation need to survive and even to prosper?"
As each company's circumstances are unique we need a situational approach to Lean transformation. However the distinctive feature about Lean is that implementation begins by thinking back from the perspective of value to the customer. Our first session called "Value Driven Purpose" (about the roof of the house in John Shook's Lean Transformation Framework) helps us to identify and address the real gaps within our purpose, capability, performance and our ability to manage change.
This aspect is key as the effectiveness of your Lean transformation approach is critical as it impacts: speed of change, achieving our goals and objectives, sustaining improvement and developing long term improvement capability.
Further details of the workshop are outlined below.
Workshop Title: Lean Transformation Framework
The workshop is designed for: leaders, managers, supervisor or Lean practitioners wanting to start or enhance their Lean journeys. The public workshop will be run over 5 Days and will be run at our office in Goodrich, Ross-on-Wye.
Dates: 28th September to the 2nd October & 14th to 18th December (early booking is highly recommended)
The purpose of this workshop is:
- To provide a framework for Lean Transformation
- To explore the five areas of the Lean Transformation Framework
- To develop organisational / team purpose
- To define the problem we are trying to solve and how it links to organisational purpose
- To develop personal and team action plans
Topics that will be examined include:
- Developing organizational purpose and defining the Problem
- Steps and activities organizations can take to improve the actual work
- Building organizational capability for Lean
- Understanding the leadership behaviours required to lead and support Lean transformation
- The basic thinking, mind-set and assumptions comprising culture
Through instruction, small group discussions, exercises and video workshop participants will:
- Learn about the key elements of a successful Lean transformation
- Learn how to develop organisational purpose
- Learn how to define the gaps and the business problems that impede Lean Transformation and Developing Capability to Improve the Work
- Discuss and reflect on how to go beyond where they are now – to close the next set of gaps in the organization
Join us in exploring what additional actions you can take to navigate your own Lean Transformation and deliver improved business performance and long-term improvement capability. More details and to register can be found here.

source: openbmb/Ultra-FineWeb


address it is found at. Any initialization
 545. sequence to enable that external flash or sdram should be found in the
 546. board file. Boards may also contain multiple targets, ie: Two cpus, or
 547. a CPU and an FPGA or CPLD.
 548. @item @b{target}
 549. @* Think CHIP. The ''target'' directory represents a jtag tap (or
 550. chip) OpenOCD should control, not a board. Two common types of targets
 551. are ARM chips and FPGA or CPLD chips.
 552. @end itemize
 553. @b{If needed...} The user in their ''openocd.cfg'' file or the board
 554. file might override a specific feature in any of the above files by
 555. setting a variable or two before sourcing the target file. Or adding
 556. various commands specific to their situation.
 557. @section Interface Config Files
 558. The user should be able to source one of these files via a command like this:
 559. @example
 560. source [find interface/FOOBAR.cfg]
 561. Or:
 562. openocd -f interface/FOOBAR.cfg
 563. @end example
 564. A preconfigured interface file should exist for every interface in use
 565. today, that said, perhaps some interfaces have only been used by the
 566. sole developer who created it.
 567. @b{FIXME/NOTE:} We need to add support for a variable like TCL variable
 568. tcl_platform(platform), it should be called jim_platform (because it
 569. is jim, not real tcl) and it should contain 1 of 3 words: ''linux'',
 570. ''cygwin'' or ''mingw''
 571. Interface files should be found in @t{$(INSTALLDIR)/lib/openocd/interface}
 572. @section Board Config Files
 573. @b{Note: BOARD directory NEW as of 28/nov/2008}
 574. The user should be able to source one of these files via a command like this:
 575. @example
 576. source [find board/FOOBAR.cfg]
 577. Or:
 578. openocd -f board/FOOBAR.cfg
 579. @end example
 580. The board file should contain one or more @t{source [find
 581. target/FOO.cfg]} statements along with any board specific things.
 582. In summery the board files should contain (if present)
 583. @enumerate
 584. @item External flash configuration (ie: the flash on CS0)
 585. @item SDRAM configuration (size, speed, etc)
 586. @item Board specific IO configuration (ie: GPIO pins might disable a 2nd flash)
 587. @item Multiple TARGET source statements
 588. @item All things that are not ''inside a chip''
 589. @item Things inside a chip go in a 'target' file
 590. @end enumerate
 591. @section Target Config Files
 592. The user should be able to source one of these files via a command like this:
 593. @example
 594. source [find target/FOOBAR.cfg]
 595. Or:
 596. openocd -f target/FOOBAR.cfg
 597. @end example
 598. In summery the target files should contain
 599. @enumerate
 600. @item Set Defaults
 601. @item Create Taps
 602. @item Reset Configuration
 603. @item Work Areas
 604. @item CPU/Chip/CPU-Core Specific features
 605. @item OnChip Flash
 606. @end enumerate
 607. @subsection Important variable names
 608. By default, the end user should never need to set these
 609. variables. However, if the user needs to override a setting they only
 610. need to set the variable in a simple way.
 611. @itemize @bullet
 612. @item @b{CHIPNAME}
 613. @* This gives a name to the overall chip, and is used as part of the
 614. tap identifier dotted name.
 615. @item @b{ENDIAN}
 616. @* By default little - unless the chip or board is not normally used that way.
 617. @item @b{CPUTAPID}
 618. @* When OpenOCD examines the JTAG chain, it will attempt to identify
 619. every chip. If the @t{-expected-id} is nonzero, OpenOCD attempts
 620. to verify the tap id number verses configuration file and may issue an
 621. error or warning like this. The hope is this will help pin point
 622. problem OpenOCD configurations.
 623. @example
 624. Info: JTAG tap: sam7x256.cpu tap/device found: 0x3f0f0f0f (Manufacturer: 0x787, Part: 0xf0f0, Version: 0x3)
 625. Error: ERROR: Tap: sam7x256.cpu - Expected id: 0x12345678, Got: 0x3f0f0f0f
 626. Error: ERROR: expected: mfg: 0x33c, part: 0x2345, ver: 0x1
 627. Error: ERROR: got: mfg: 0x787, part: 0xf0f0, ver: 0x3
 628. @end example
 629. @item @b{_TARGETNAME}
 630. @* By convention, this variable is created by the target configuration
 631. script. The board configuration file may make use of this variable to
 632. configure things like a ''reset init'' script, or other things
 633. specific to that board and that target.
 634. If the chip has 2 targets, use the names @b{_TARGETNAME0},
 635. @b{_TARGETNAME1}, ... etc.
 636. @b{Remember:} The ''board file'' may include multiple targets.
 637. At no time should the name ''target0'' (the default target name if
 638. none was specified) be used. The name ''target0'' is a hard coded name
 639. - the next target on the board will be some other number.
 640. The user (or board file) should reasonably be able to:
 641. @example
 642. source [find target/FOO.cfg]
 643. $_TARGETNAME configure ... FOO specific parameters
 644. source [find target/BAR.cfg]
 645. $_TARGETNAME configure ... BAR specific parameters
 646. @end example
 647. @end itemize
 648. @subsection TCL Variables Guide Line
 649. The Full Tcl/Tk language supports ''namespaces'' - JIM-Tcl does not.
 650. Thus the rule we follow in OpenOCD is this: Variables that begin with
 651. a leading underscore are temporal in nature, and can be modified and
 652. used at will within a ?TARGET? configuration file
 653. @b{EXAMPLE:} The user should be able to do this:
 654. @example
 655. # Board has 3 chips,
 656. # PXA270 #1 network side, big endian
 657. # PXA270 #2 video side, little endian
 658. # Xilinx Glue logic
 659. set CHIPNAME network
 660. set ENDIAN big
 661. source [find target/pxa270.cfg]
 662. # variable: _TARGETNAME = network.cpu
 663. # other commands can refer to the "network.cpu" tap.
 664. $_TARGETNAME configure .... params for this cpu..
 665. set ENDIAN little
 666. set CHIPNAME video
 667. source [find target/pxa270.cfg]
 668. # variable: _TARGETNAME = video.cpu
 669. # other commands can refer to the "video.cpu" tap.
 670. $_TARGETNAME configure .... params for this cpu..
 671. unset ENDIAN
 672. set CHIPNAME xilinx
 673. source [find target/spartan3.cfg]
 674. # Since $_TARGETNAME is temporal..
 675. # these names still work!
 676. network.cpu configure ... params
 677. video.cpu configure ... params
 678. @end example
 679. @subsection Default Value Boiler Plate Code
 680. All target configuration files should start with this (or a modified form)
 681. @example
 682. # SIMPLE example
 683. if @{ [info exists CHIPNAME] @}


text:
The house was bought by Baron Napoleon Gourgaud (_PHONE_), great grandson of General Gaspard Gourgaud (_PHONE_), who was present when the Emperor left the Île d'Aix,and who would follow him to Saint Helena. Thanks to his wife's fortune, the rich American Eva Gebhard (_PHONE_), Napoleon Gourgaud was able to acquire much historical memorabilia to which he added gifts that he obtained from his friends, many of whom were part of the nobility of the Empire. He opened his Napoleon Museum in the Emperor's house in 1928, and gave it to the State in 1933 retaining a life interest.
On his death, in 1944, his widow continued his work, and when she died in 1959, the museum became part of the Musée National de Malmaison. Reorganised for the first time in _PHONE_, the museum displays were redesigned in _PHONE_. Each of its ten rooms focuses on a specific theme, retracing, as far as possible, the life of the Emperor and his entourage. Some rooms are devoted to the history of the Île d'Aix, the Gourgaud family and to the legend of Napoleon whose prolific exploits marked the 19th century.


From Wikipedia, the free encyclopedia
Jump to: navigation, search
Typewritten page of canary onionskin, 1912. Note the translucency in the upper right corner, where the red library stamp on the transverse is visible.
Onionskin or onion skin is a thin, light-weight, strong, often translucent paper. Not made from onions, it is named for their thin, papery skins which it superficially resembles. It was usually used with carbon paper for typing duplicates in a typewriter, for permanent records where low bulk was important, or for airmail correspondence.[1] It typically has a 9-pound basis weight, and may be white or canary-colored.
In the typewriter era, onion skin often had a deeply textured cockle finish which allowed for easier erasure of typing mistakes, but other glazed and unglazed finishes were also available then and may be more common today.
Onionskin paper is relatively durable and lightweight due to its high content of cotton fibers. Because of these attributes and its crispness when folding, onionskin paper is one of the best papers to use for toy kites and advanced paper airplanes. Paper airplanes made from onionskin paper tend to fly very well due to their low weight and high integrity once folded.
 1. ^ "Bookbinding and the Conservation of Books: A Dictionary of Descriptive Terminology". CoOL: Conservation OnLine. Etherington & Roberts. 2011-11-19. Archived from the original on 2014-10-16. Retrieved 2014-10-16.


First, you may want to have a look at the Appearance settings. By going to the Keeble app, and then selecting Keyboard Settings > Theme > Custom Theme, you can choose your own colors for all the different types of keys (e.g. high-contrast colors that suit the user best) if any of the 5 included themes don't meet the user's needs
Now tap Keyboard Settings, scroll down to the Access section, and make sure that Alternative Access is ON. Next, tap Select, and then tap Select on Release. When Select on Release is ON, Keeble keeps following your finger as it travels over the screen, and only decides which button should be selected when you lift your finger off the screen.
While traveling over the screen, it will mark which button you are touching with your selected Tracking Color and Cue Width, and can even speak each letter that you are touching when Spoken Cue is ON. After making a selection, the key will be marked with the Confirmation Color.
You may also want to check out the Auditory Feedback section. Speak As You Type can give the user confirmation that he or she is typing the correct letters and words. Keeble can speak each key, word, or sentence. In Voices and Speech Rate, you can personalize how Keeble speaks as the user is typing. Note that Keeble's voice feedback does not work when your device is muted.
If the user benefits from Word Prediction, change the Prediction Height to Large and change the Max Numbers of Suggestions to the least suggestions possible. Both features will make it easier for the user to see and access word prediction.


text:
The purpose of this Paper is to address in more detail Industry's recommendations for the technology content of the Preparatory Action and the characteristics of the work it should support. In this respect, this Paper can be seen as an Industry contribution to the Scoping Paper which will guide the Preparatory Action. The aim of this paper is therefore not to present a list of proposals. The European Commission has established a formal process of governance which will prepare the Work Programme with calls for proposals. Our objective at this stage is rather to contribute to the strategic thinking that sets the basis and the framework for the future work programme.
The analysis in this Paper will presume the structure and research categories proposed in the previous Paper, and as listed above. However, because of its importance within the total programme of the Preparatory Action, the focus will be on the technology demonstration and the security of supply of key Defense technologies.
Read our Position Paper >


A. A. The Netware migration tool (nwconve.exe) does not support the NetWare Directory Services (NDS) service type of logon on Windows NT 4.0, and therefore you will need bindery emulation configured on the NetWare server for the migration to successfully migrate.
To configure bindery emulation perform the following on the NetWare Server
 1. Load Servman on the NetWare Server Console
 2. Select "Server Parameters" from the menu options
 3. Select "Directory Services" from the menu
 4. Scroll down to the "Bindery Emulation" section. If there is no SET statement to the right of the entry then bindery emulation has not been enabled.
To set it perform the following (still on the NetWare Server)
 1. Using Servman get back to "Bindery Emulation" (the same menus as above) and press ENTER
 2. A text entry box will appear where you should type in the command in the format of
 where is the Organisational Unit of the users are from and is the name of the Organization (TREE) where the OU resides
You should then log off and back on to the NT Server. Rerunning NWCONVE.EXE should then run.


text: Two hundred and fifty male 1-day-old broiler chicks (Ross 308) were used to investigate the effects of dietary supplementation of turmeric and cinnamon powders on meat quality and lipid peroxidation of broilers under heat stress condition. The five treatment groups were control (recommended temperature for Ross 308), heat stressed (32 ± 1 ˚C from 9:00 AM to 5:00 PM during finisher period) and heat stressed birds fed with 0.50% turmeric, 0.50% cinnamon and a blend of cinnamon and turmeric (0.25% turmeric + 0.25% cinnamon). The results showed that there were no significant differences between the treatments for ether extract, ash and crude protein contents of thigh meat at 42 day of age ( p > 0.05). Heat stress decreased the pH value and dry matter (DM) content of thigh meat, whereas the consumption of all experimental diets (turmeric, cinnamon and both of them) compensated the decreased pH and DM values due to heat stress to some extent but could not restore them to the level of control treatment ( p < 0.01). Furthermore, the thigh meat lightness was increased under heat stress ( p < 0.05). The thiobarbituric acid reactive substances and free radicals scavenging activity were increased in thigh meat of broilers reared under heat stress ( p < 0.05), while these parameters were reduced by the combination of both plants ( p < 0.01). It was concluded that heat stress reduces antioxidant properties and quality of thigh meat and dietary supplementation of turmeric and cinnamon powders together can remove the detrimental effects of heat stress on meat quality.

source: m-a-p/FineFineWeb


L5r: Legend of the Five Rings
Kakita Isako
28,498pages on
this wiki
Add New Page
Talk0 Share
Kakita Isako was a renowned bladesmith of the Crane Clan. Alongside with Asahina Yuri, a crafter of nemuranai, the two woman sought the unique weapon known as Dragon's Claw Katana, which was in the hands of Daidoji Kedamono's descendant. After several months of careful observation, they fashioned eight copies of the original sword, two for each of the families of the Crane. They took three years to complete the weapons, and the toll was so grat that both were found unconscious the morning after their work was finished. The "patronesses of the blade" had aged 50 years overnight. Those whose actions would dishonor the Crane caused the weapons to bend and warp into useless pieces of metal. [1]
 1. Prayers and Treasures, pp. 123-124
Ad blocker interference detected!


text:
Monoisopropanolamine is a basic chemical used in many applications serving as an emulsifier, stabilizer, chemical intermediate, and a neutralizer that achieves basicity, buffering, and alkalinity objectives. MIPA has the lowest molecular weight of the three standard isopropanolamines. It is a colorless liquid with an ammonia-like odor.
|Molar Weight||75.111 g/mol|
|Melting Point||1.74 °C|
|Boiling Point||159 °C|
|Forms||Liquid (clear), Colourless|
Synonyms: MIPA, 1-Amino-2-propanol, Isopropanolamine, Threamine
Chemical Formula: C3H9NO
CAS Number: 78-96-6


Decline in Consumption of Fruit and Veg
In the two year the fruit and vegetable intake has dropped by 900,000 amongst Britons. This is uncovered as research reveals that the poorer in the country are opting for cheaper and more filling a food which often means meals that have higher fat, sugar and saturate content.
It is believed that the increase in eating unhealthy meals is a way of coping with increasing food prices and the fact that household incomes are decreasing. As a result families with the lowest income are the worst affected and therefore have unhealthy diets.
This means that those that are running a restaurant may still be feeling these effects and therefore paying their restaurant insurance among other things may be a struggle.
The amount of people eating fat saturates and sugar and has rapidly increased sine 2012 even though the amount of food being bought is the same says the Guardian. Households that have an income of less than £25,000 are more inclined to buy foods such as meat balls, instant noodles, tinned pies pizza and friend food.
The research revealed that price was the main motive for the decrease in consumption of fruit. 4.4 per cent of Britons year on year are eating more and more saturated foods. On top of this there was a 25 per cent increase in chilled ready meals being consumed.
This reflects the huge 32 per cent increase on food in the last five year which has stretched those budgets that are already full to capacity. Giselle Cory is a senior research and policy analyst at the Resolution Foundation and they have said, "When food prices go up and household incomes go down, people on low to middle incomes buy less healthy food and more unhealthy food."
While we are out of recession it is clear that many are still feeling the effects of the last few years.


text:
repotted, its roots should be able to spread out in the new pot without being constricted. If the pot is too large, the roots will not be able to get enough nutrients and water, and the plant will eventually die.
Another reason a plant might die after repotting is if the soil is not the right type for the plant. Different plants require different types of soil, and if the wrong type is used, the plant will not be able to get the nutrients it needs to survive.
A plant might also die after repotting if the water is not pH balanced. Plants need water that is pH balanced in order to get the nutrients they need from the soil. If the water is not pH balanced, the plant will not be able to absorb the nutrients it needs and will eventually die.
In order to prevent a plant from dying after repotting, it is important to understand the reasons why it might happen. Make sure to use the correct pot size, soil type, and water pH when repotting a plant.


text:
Finding animals with a name beginning with the letter Q can be difficult, but don't worry! We have you covered. Check out the creatures listed below.
The Quokka is a small marsupial native to Western Australia. It usually stays in its natural habitat and is comfortable around people, so if you are lucky enough to spot one there, why not take a selfie?
The Quoll is another type of marsupial found mainly in Australia and New Guinea, which comes in four varieties: Eastern, Northern, Western and Tiger Quoll. Unfortunately all species are either endangered or vulnerable due to human interference such as habitat destruction.
Lastly, the Queenfish is commonly found near coasts near tropical waters – mainly in southern India and Southeast Asia. This fish can grow up to 25 inches long; however it is often sold for food so look before purchasing one!
List of animals that start with the letter Q
All animals A-Z
Animals that start with common Digraph Phonics
Cristian GonzalezHowdy! I created this website to learn all about the amazing creatures that are the animals. I have two cats called Santiago and Valentina.


or Login to see your representatives.
Key Votes
SCS HB 1804 - Immigration Reform - Key Vote
Oklahoma Key Votes
Stage Details
Legislation - Signed (Executive) -
Title: Immigration Reform
Legislation - Bill Passed (House) (84-14) - (Key vote)
Title: Immigration Reform
Vote Smart's Synopsis:
Vote to pass a bill that establishes laws and regulations regarding immigration in the State of Oklahoma.
-Makes it a felony to transport or conceal undocumented immigrants with knowledge of the immigrants illegal presence in the United States (Sec. 3). -Requires that applicants present valid evidence of their legal status in the United States in order to be issued identification cards (Sec. 4). -Requires that every public employer and their contractors register with an approved employment eligibility verification system (Sec. 6). -Places liability on employers who discharge U.S. citizens from employment while retaining undocumented immigrants in a job requiring equal skill, effort, responsibility (Sec. 7). -Prohibits individuals unlawfully present in the United States from receiving resident tuition or financial aid unless the individual has resided in the state for a least two years and provides a pending application for legalized status (Sec. 13).
Legislation - Bill Passed With Amendment (Senate) (41-6) -
Legislation - Bill Passed (House) (88-9) -
Legislation - Introduced (House) - (Key vote)
Title: Immigration Reform
 - James A. Williamson (OK - R) (Out Of Office)
Back to top


text:
2) elements of B, etc.
By Ulrich Elsnerfoo=cumsum(B); C=diff([0 foo(cumsum(A))])
Find the maximum of sin(x) * cos(y) where x is 1,2..7 and y is 1,2.. 5.
x=1:7 [rx,cx]=size(x); y=1:5 [ry,cy]=size(y); X=repmat(x,cy,1) Y=repmat(y',1,cx) % Doing max(max( sin(X).*cos(Y))) would find the max in one % line. To know the location of the maximum too, use XY=sin(X).*cos(Y) [r,c]=max(XY); [r2,c2]=max(max(XY)); sprintf('The biggest element in XY is %d at XY(%d,%d)',r2,c(c2),... c2)
Count how many times the components of a matrix are repeated.
bins = min(min(X)):max(max(X)); [numTimesInMatrix, Number] = hist(X(:),bins);From Mathworks - "Hist can only partially vectorize this problem, so it uses a loop as well. Therefore, the algorithm runs with order O(length(bins)). Also, this algorithm reports the number of occurrences of all numbers in bin, including those that appear zero times. To get rid of these, add this":ind=find(~numTimesInMatrix); Number(ind)=;numTimesInMatrix(ind)=;
x = sort(X(:)); difference = diff([x;max(x)+1]); count = diff(find([1;difference])); y = x(find(difference));Note that we use the (:) operation to ensure that x is a vector.
count = sparse(1,X,1);(read about sparse if, like me, you were surprised by this)
- Retrieve those elements that are shared in matrices
A and B
For positive integers:
a=A(:); % make A a row b=B(:); m=max([a;b]); x1=zeros(m,1); x2=zeros(m,1); x1(a)=ones(length(a),1); x2(b)=ones(length(b),1); find(x1&x2)
For equally sized A and B:
a = A(:)'+1; b = B(:)'+1; simple = [find(sparse(1,a,1)>0);find(sparse(1,b,1)>0)]; values = find(full(sparse(1,simple',1))>1)-1
Scale all the rows of each column by the data in col 300.
[nr,nc] = size(A); B = A(:,300); A = A./ B( :, ones(nc,1) );
Write an m-file which will replace each element of a matrix
with a 4x4 matrix of that element.
x=[1 2 3; 4 5 6]; y=kron(x,ones(4))
- From _EMAIL_
- Duplicate each element of a vector.
By Ulrich Elsner
rep=2; foo=repmat(b,rep,1); b=foo(:)' % reshape into row
- By Ulrich Elsner
Multiply every column of matrix X of size (1000,500) by another vector
V which has dimension (1000).
A non-vectorised way to do this is:
X2 = zeros(1000,500) for k = 1:500 X2(:,k) = V.*X(:,k); end
X2 = diag(V)*X;
rows=1000; columns = 500; Gcolvec = [1:rows]'; % Be sure that G is a column vector Gmatrix = repmat(Gcolvec,1,columns); R = ones(rows, columns); tic, GxR = Gmatrix.*R; toc
Ra = R.* (G * ones(1,500)); Rb = R.* repmat(G,1,500); Rc = R.* G(:,ones(1,500));
- The solution proposed in the Mathworks "How Do I Vectorize My
Code?" is the fastest
X2 = diag(sparse(V))*X;
- A non-vectorised way to do this is:
If you have two matrices, which together give x and y coordinates into another
xc = [1 2 1; 3 2 4 ]; yc = [1 1 1; 2 2 1; ]; M = [ 6 7 8 9; 10 11 12 13];produce the 2x3 matrix R which contains the values of M at the locations given in xc and yc. Thus:
R = [ 6 7 6; 12 11 9];
a = [1 4 3 2] b = [2 3 1 4] ind = sub2ind([4 4],a,b) A = rand(4,4) A(ind)
Create a matrix X, where each column is a shifted copy of the vector v
v = (1:5)'; X = toeplitz(v, v([1,length(v):-1:2]))To shift up rather than down, use% By Robert Richter hankel(v,v([end,1:end-1]))
Unique sort (i.e. duplicates removed)
- x = sort(x(:)); unique(x)
- x = sort(x(:)); difference = diff([x;NaN]); y = x(difference~=0);From Mathworks - "You may be wondering why we didn't use the find function, rather than ~=0 - especially since this function is specifically mentioned above. This is because the find function does not return indices for NaN elements, and the last element of difference as we defined it is a NaN."
Given a 2D matrix remove all duplicate rows (where a row is a considered a duplicate of another if it has the same elements)
a=[1 2 5 2 6 7 1 2 9 1 3 6 5 1 2 3 6 7 7 2 6] [result_sorted,INX] = unique(sort(a,2),'rows'); a(INX,:)(by Jos)
Create a vector vi which is made by interleaving elements from an
array v1 of length N and an array v2 of length N-1
% By Peter J. Acklam N=10000 v1 = 1:N; v2 = 1:N-1; vi = zeros(1, 2*N-1); vi(1:2:end) = v1; vi(2:2:end) = v2; % or vi = [ v1 ; v2 0 ]; vi = vi(1:end-1);
Write a function d = nearney(x, y) where x, y and d are
column vectors of the same length and where d(i) is
the smallest distance on a plane from the point
[x(i) y(i)] to [x(j) y(j)] for all i ~= j; that is the
distance from [x(i) y(i)] to its nearest neighbor.
From _EMAIL_ - "This gets good marks for terseness, but has lousy time and space complexity"
function d = nearney(x,y) [X,Y] = meshgrid(x+i*y); d = min(abs(X-Y) + realmax*eye(length(x)))';
- From Sijmen de Jong
z = [x, y]; d = sum(z'.^2); [m,n] = size(z); d = sqrt(min(d(ones(m,1),:)+d(ones(m,1),:)'-2*z*z'+realmax*eye(m)));
- From _EMAIL_ - "This gets good marks for terseness, but has lousy time and space complexity"
- Another 'find the nearest' question
Write the code to do this
function out = nearest(y,x1,x2); % function out = nearest(y,x1,x2); % y,x1,x2, and out are row vectors of the same length % out(i) = x1(i) or x2(i) depending on which one is closer to y(i) % % for example if: % y = [3 5 7 9 11] % x1 = [3.1 6 7 8.9 12] % x2 = [3.2 5.9 0 0 10.9] % then out = [3.1 5.9 7 8.9 10.9]
a = [x1; x2]; [c d] = min(abs([y; y] - a)); out = diag(a(d,:))';
out = x1; i2 = find(abs(x1-y) > abs(x2-y)); out(i2) = x2(i2);
function out = nearest(y,x) % function out =nearest(y,x) % y is a row-vector and x is composed of row-vectors of the same length as y. % % out(i)=the element of x(:,i) closest to y(i) % % For example if: % y= [3 5 7 9 11] % x=[[3.1 6 7 8.9 12]; % [3.2 5.9 0 0 10.9]] % then out=[3.1 5.9 7 8.9

source: HuggingFaceFW/fineweb-edu


Weather
Windmill.
Homesteaders took advantage of wind power with windmills, which were used to pump water to the surface.
NPS Photo.
Nebraska weather is notable for its wide seasonal variations in temperature, precipitation, and humidity. The average low temperature in Beatrice is 12 degrees Fahrenheit in January, and the average high is 90 degrees Fahrenheit in July. Since land heats and cools much faster than water; Nebraska's position in the center of the continent, away from major water bodies, leads to sudden fluctuations in temperature.
Nebraska receives cool, dry air from the Rocky Mountains in the west, as well as warm, moist air from the Gulf of Mexico in the south. The interaction of these air masses produces frequent and sometimes violent thunderstorms, particularly from April through September. Precipitation averages 28 inches per year in Beatrice. Tornadoes are common in spring months.
Homesteaders harnessed frequent winds with windmills, which pumped precious water supplies to the surface. By the 1870s, windmills were a common sight throughout the countryside. Many of these historic structures still stand today, testaments to the resourcefulness of those who took what benefit they could from an often adverse climate.

Contact the Park
Mailing Address:
8523 West State Highway 4
Beatrice , NE 68310
Phone:
_PHONE_
Contact Us


text:
Scientists get to the bottom of a big sheep mystery
By Tim Friend, USA Today
15 September 2002: After a 10-year search, scientists have found the gene that causes certain sheep to have big, muscular bottoms. The discovery may sound odd, but experts say it may shed new light on why some people seem destined to be obese while others are natural-born muscular speed skaters. More important, the method used to find the gene also could be used to locate genes for disorders such as autism, bipolar disorder and some cancers, says Randy Jirtle, professor of radiation oncology at Duke University in Durham, N.C.
During fetal development, the big-bottom gene (called callipyge, Greek for ''beautiful buttocks'') shuts down production of fat cells. With few fat cells, energy is converted into bulky muscle. It is possible a disruption in the same gene or its region in humans could load a person with extra fat cells from birth.
The story of big-bottomed sheep began 20 years ago when a farmer observed a young ram in his flock growing muscular, oversized buttocks, a result of a naturally occurring mutation. He reasoned that if flocks of such sheep could be bred, they would yield more meat per animal. The ram was bred with normal females and, as predicted, they produced big-bottomed lambs, some of them females. But when the big-bottomed females were bred to normal rams: no big bottoms. That defied traditional patterns of inheritance, Jirtle says, but no one knew why.
Ten years ago, scientists began hunting for the big-bottom gene, but traditional methods found nothing. Finally, U.S. Department of Agriculture geneticist Brad Freking, who led this study, obtained DNA from inbred offspring of the original ram, decoded it and compared it with DNA from normal sheep. Among more than 450,000 letters of code, he found a single letter out of place; from that mutation, scientists tracked down the genes. Usually they find a gene first, then look for mutations.
The gene was invisible to standard gene-hunting methods because of the strange inheritance pattern observed 20 years ago. That complex and poorly understood pattern is called imprinting. Normally, people inherit two copies of their genes -- one from the mother, one from the father. That way, if one copy goes bad, the good copy can do the work. With imprinting, only one copy works to begin with; the other copy is essentially bound and gagged. A single mutation can completely knock out gene function.
Imprinting already is associated with at least three serious genetic disorders and is probably linked to many more, including autism, bipolar disorder, schizophrenia and Tourette's syndrome. Scientists have searched for genes for these disorders without any luck. If they start looking with imprinting in mind, the genes might be revealed. The same may hold true for cancer.
As for the big-bottomed sheep, all that muscle and no fat make the meat tough and dry. No one wants to buy them.
''All that meat and not a bite to eat,'' Jirtle laments.


text: We study the late-time evolution of the Universe where dark energy (DE) is presented by a barotropic fluid on top of cold dark matter (CDM). We also take into account the radiation content of the Universe. Here by the late stage of the evolution we refer to the epoch where CDM is already clustered into inhomogeneously distributed discrete structures (galaxies, groups and clusters of galaxies). Under this condition the mechanical approach is an adequate tool to study the Universe deep inside the cell of uniformity. More precisely, we study scalar perturbations of the FLRW metric due to inhomogeneities of CDM as well as fluctuations of radiation and DE. For an arbitrary equation of state for DE we obtain a system of equations for the scalar perturbations within the mechanical approach. First, in the case of a constant DE equation of state parameter w, we demonstrate that our method singles out the cosmological constant as the only viable dark energy candidate. Then, we apply our approach to variable equation of state parameters in the form of three different linear parametrizations of w, e.g., the Chevallier-Polarski-Linder perfect fluid model. We conclude that all these models are incompatible with the theory of scalar perturbations in the late Universe.


PyQt Tips and Tricks
(Stacked Windows)
(Example Applications)
Line 70: Line 70:
* maelophone
* maelophone
* healthcheck
* healthcheck
* qlister
* Gonvert (1.0+)
* Gonvert (1.0+)
* [ WifiEye]
* [ WifiEye]
Revision as of 15:17, 16 June 2010
With Meego there is a lot of interest in developing applications in Qt rather than GTK. This page spawned from a discussion thread.
Tips and Tricks
Identifying the Sender of a Signal
There are two main approaches for this. The first is to wrap the slot with a lambda to pass in any additional arguments
def notifyMe(foo)
 print foo
f = QPushButton("Click me!")
x = lambda: notifyMe("they call him tim")
self.connect(f, SIGNAL("clicked()"), x)
The second and more general solution is to use the QSignalMapper[2]
Learning to use Qt CSS
Much like web development, CSS is also available within Qt. There's a list of examples that can be tried out just using Qt Designer. If you're using custom CSS, using palette() in your CSS definitions will allow you to use colors that the theme already knows about. As an example, this is an easy way to get the default blue color on your buttons when you want that color.
Depending on your needs, there's a number of built-in icons that are available for use.[3]
Style sheets and the native QMaemo5Style do not mix very well, since Maemo 5 lays out and draws some widgets very differently (e.g. QRadioButton). We recommend using local style sheets on specific widgets only, instead of setting one via QApplication::setStyleSheet().[4]
QString and Python
I've had some unicode-relate issues when moving strings between python datatypes and Qt datatypes. Somehow, the unicode stuff would get lost. So, it's likely easiest (At least when you're new to python and Qt) to use QString and QStringList than their pure python counterparts.
If you're not bringing in data from anywhere else, this isn't that big of a deal, but if you're interacting with data from any other source, unicode is a pretty likely scenario these days.[5]
Just to note that, in my experience, locales fail to work with PyQt - QTextCodec.codecForLocale() does not return the correct codec, which also means QString's toLocal8Bit() and fromLocal8Bit() fail.
The python locale stuff works fine, but then you have the joy of converting between QString and python strings (which works perfectly when it does it implicitly, but an explicit conversion seems to go via ASCII unless you specifically tell it to use utf-8 instead). [6]
Qt and Threads
import threading
Spread the work across multiple callbacks to allow the UI to remain responsive. See multiple QTimer types
Stacked Windows
 class showWindowQtGui.QMainWindow):
 def __init__(self, parent=None):
 QtGui.QWidget.__init__(self, parent)
 self.ui = Ui_main_window()
Example Applications
 - ncalc
 - nclock
 - maesynth
 - Uses QGraphicsView
 - maelophone
 - healthcheck
 - qlister
 - Gonvert (1.0+)
 - WifiEye
 - MaeGirls
 - pyPianobar
 - Threading and Qt
 - pyRadio
 - Threading and Qt
Web Resources


text:
Can hamsters eat asparagus? And if they can, should they? After all, just because they can eat something doesn't always mean it should.
In this guide, I'm going to cover everything you need to know before adding this vegetable to your hamster's diet.
Feeding your hamster new things is always exciting. It's always a lot of fun to see them enjoying new foods. However, while they seem to eat everything you give them you always have to be careful before feeding them new things.
It's a good idea to do some research on whether or not your hamster can tolerate new foods you introduce to their diet. If you're here, you're most likely considering giving your hamster asparagus but first, you want to know if it's safe for them to eat it.
You'll be glad to know that hamsters can eat asparagus perfectly fine. They're a good source of fiber, vitamins, and antioxidants and are not harmful in any way. Make sure to wash the skin and not give them too much and they will love it. Also, make sure to give them only fresh asparagus, the canned variety has many preservatives that are not good for them.
Don't go just yet though, because there's much more to learn about feeding this delicious vegetable to your furry friend.
Is asparagus healthy for hamsters?
Asparagus is a vegetable that is very low in calories and fat but contains a lot of essential nutrients. According to the USDA, it contains the following nutrients per 1 cup (134 grams):
- 27 calories
- 3 grams of protein
- 5.2 grams of carbs
- 2.52 grams of sugar
- 2.81 grams of fiber
- 125 grams of water
- 0.16 grams of fat
In addition, it also contains a lot of vitamins and minerals such as:
- Vitamin C
- Vitamin A
- Vitamin K
- Vitamin E
As you can see, this vegetable contains a ton of minerals, vitamins, and other essential nutrients in a very low-calorie and low-fat package.
None of the compounds that are found in it are unhealthy for your hamster, while it contains a lot of things that are an essential component in their diet. So the answer to the question of whether asparagus are healthy for them is a definitive yes!
What benefits do asparagus have for hamsters?
First off, asparagus, like most other vegetables, contains vitamin C. Vitamin C is important for your hamster because it boosts its immune system. This means that it will make it less likely for them to get sick. Just like humans, hamsters can get scurvy if they do not get enough vitamin C in their diet.
It also has a good amount of fiber. Fiber is important for them because it helps their digestion.
Additionally, the antioxidants found in this vegetable will help prevent DNA damage.
Are there any risks associated with feeding asparagus to hamsters?
There aren't any life or health-threatening risks associated with hamsters eating asparagus. However, there are a few things you should take into consideration.
First off, if you've ever eaten this vegetable yourself, you're probably aware that it can cause your urine to smell pretty nasty. The same applies to hamsters. The asparagusic acid in the vegetable produces sulfurous byproducts that are responsible for this smell. If you give your pet too of it, your nose might regret it!
Also, whenever you add new foods to your hamster's diet, do not go overboard. Start off slowly so that their digestive system can get used to the new food.
Frozen, fresh, or canned asparagus for hamsters?
Asparagus comes frozen, fresh, and canned. You might think that since it is healthy for hamsters it doesn't matter in what way you give it to them, but this is not true. The best way to give it to them is when it's fresh.
Do not give them the canned variant because this is loaded with preservatives that are bad for their health.
Also, always make sure to wash the fresh asparagus carefully before you give it to your hamster because farmers often spray it with pesticides. Even though it ironically contains an enzyme that breaks down common pesticides, it's still a good idea to wash them.
How much asparagus can my hamster eat?
As I've mentioned, when you first start giving your hamster asparagus you have to build it up slowly because their digestive tract is not used to the food yet. Once they're used to the food, it's perfectly fine to feed them small amounts (a couple of grams) of it once every few days.
It's best used as a healthy snack for them rather than a staple of their diet.
Do hamsters like eating asparagus?
No two hamsters are the same and they all have different preferences for what they like. However, most do seem to enjoy asparagus quite a lot, and for some, it's even their favorite snack.
It's very easy to find out if yours likes it, just put it in their cage and see if they eat it. If your hamster doesn't, don't force it on them. There are many other healthy treats that they can enjoy!
It's not all that uncommon that hamsters do not want to eat asparagus. If yours is one of those picky eaters, don't worry, there are plenty of other healthy, delicious foods that they can snack on instead. Here are some ideas to get you started:
- Peanuts (unsalted)
- Cheese (very small amounts)
- Green beans
Also, if you want to learn what your furry friend is not allowed to eat and a complete list of vegetables that you can give them safely, I suggest checking out this article. It will teach you a lot of what you need to know about what hamsters can eat.
How to feed asparagus to your hamster
Preparing asparagus for your hamster to eat is a very simple process. Let's go over it step by step.
- Decide if you want to feed it raw or cooked (both are fine, but raw contains more vitamin c)
- If you decide to cook it, make sure to wait until it's completely cooled before you continue to the next step. If you choose to go for raw asparagus, make sure to wash it properly.
- Once it is ready, chop it into pieces that can be easily held by your hamster's tiny paws.
- Either put it in their cage or let them take it from your hand.
- Watch them enjoy their new food!
So, to sum it all up, hamsters can eat both raw and cooked asparagus without any problems and it actually has health benefits for them. Make sure to introduce it to their diet slowly and ensure to wash it properly before giving it to them.
The one thing you have to keep in mind is to not give it to them frozen or canned and you're good to go!
I hope you found this nutritional guide helpful. If you've got any more questions, I'd love to hear them. For now, I'll leave you with this adorable video of hamsters munching on some of these delicious vegetables!
- Do Guinea Pigs Hibernate? Exploring the Truth Behind This Myth - March 24, 2023
- Why Is My Guinea Pig Losing Weight? Should You Be Concerned? - March 24, 2023
- How to Introduce Guinea Pigs to Each Other: A Comprehensive Guide - March 24, 2023


text:
About a month after the first Abydos mission, Daniel Jackson, who had remained behind on the planet, discovered a cartouche in an ancient map room near the Abydos pyramid. The huge wall was covered with glyphs and symbols, all of which are on the Abydos stargate, and many of which represent constellations visible in the Abydos night sky. The cartouche was determined to be a chart or map of a vast network of stargates all over the galaxy, with the symbols representing all the stargate addresses known to the Goa'uld. The discovery of the cartouche enabled the SGC to make the necessary calculations for stellar drift that would allow the dialing computer to successfully connect to other planets beyond Abydos.
For some time it was believed that all stargates were represented on the cartouche, however, following the mission to P3R-272, during which the knowledge of the Ancients was downloaded into O'Neill's brain, O'Neill entered new programming into the main SGC computer to identify many new stargates not shown on the Abydos cartouche, and therefore not known to the Goa'uld. Currently the SGC database includes stargate address references from both the Abydos cartouche, indicated in yellow, and the Ancients' original map added by O'Neill, indicated in red.
Cross Reference: Abydonians, Abydos, Ancient Repository, DHD, Stargate
Episode Reference: Children of the Gods, The Fifth Race, Maternal Instinct, 2001


text:
|This article does not cite any references or sources. (September 2007)|
A hot spare or hot standby is used as a failover mechanism to provide reliability in system configurations. The hot spare is active and connected as part of a working system. When a key component fails, the hot spare is switched into operation. More generally, a hot standby can be used to refer to any device or system that is held in readiness to overcome an otherwise significant start-up delay.
Examples of hot spares are components such as A/V switches, computers, network printers, and hard disks. The equipment is powered on, or considered "hot," but not actively functioning in (i.e. used by) the system.
Electrical generators may be held on hot standby, or a steam train may be held at the shed fired up (literally hot) ready to replace a possible failure of an engine in service.
In designing a reliable system, it is recognized that there will be failures. At the extreme, a complete system can be duplicated and kept up to date—so in the event of the primary system failing, the secondary system can be switched in with little or no interruption. More often, a hot spare is a single vital component without which the entire system would fail. The spare component is integrated into the system in such a way that in the event of a problem, the system can be altered to use the spare component. This may be done automatically or manually, but in either case it is normal to have some means of error detection. A hot spare does not necessarily give 100% availability or protect against temporary loss of the system during the switching process; it is designed to significantly reduce the time that the system is unavailable.
Hot standby may have a slightly different connotation of being active but not productive to hot spare, that is it is a state rather than object. For example, in a national power grid, the supply of power needs to be balanced to demand over a short term. It can take many hours to bring a coal-fired power station up to productive temperatures. To allow for load balancing, generator turbines may be kept running with the generators switched off so as peaks of demand occur, the generators can rapidly be switched on to balance the load. Being in the state of being ready to run is known as hot standby. Though it is not a modern phenomenon, steam train operators might hold a spare steam engine at a terminus fired up, as starting an engine cold would take a significant amount of time.
The spare may be similar component or system, or it may be a system of reduced performance, designed to cope for the duration of the time to repair and recover the original component. In high availability systems, it is common to design so that not only is there a spare that can quickly be switched in, but also that the failed component can be repaired or replaced without stopping the system - this is known as hot swapping. It may be considered that the probability of a second failure is low, and therefore the system is designed simply to allow operation to continue until a suitable maintenance period. The appropriate solution is normally determined by balancing the costs of implementing the availability against the likelihood of a problem and the severity of that problem. there are two types of hot standby: 1. hot standby master - slave 2. hot standby in shearing mode
Computer usage
A hot spare disk is a disk or group of disks used to automatically or manually, depending upon the hot spare policy, replace a failing or failed disk in a RAID configuration. The hot spare disk reduces the mean time to recovery (MTTR) for the RAID redundancy group, thus reducing the probability of a second disk failure and the resultant data loss that would occur in any singly redundant RAID (e.g., RAID-1, RAID-5, RAID-10). Typically, a hot spare is available to replace a number of different disks and systems employing a hot spare normally require a redundant group to allow time for the data to be generated onto the spare disk. During this time the system is exposed to data loss due to a subsequent failure, and therefore the automatic switching to a spare disk reduces the time of exposure to that risk compared to manual discovery and implementation.
The concept of hot spares is not limited to hardware, but also software systems can be held in a state of readiness, for example a database server may have a software copy on hot standby, possibly even on the same machine to cope with the various factors that make a database unreliable, such as the impact of disc failure, poorly written queries or database software errors.
Hot standby operation in railway signalling
At least two units of the same type will be powered up, receiving the same set of inputs, performing identical computations and producing identical outputs in a nearly-synchronous manner. The outputs are typically physical outputs (individual ON/OFF type digital signals, or analog signals), or serial data messages wrapped in suitable protocols depending upon the nature of their intended use. Outputs from only one unit (designated as the master or on-line unit, via application logic) are used to control external devices (such as switches, signals, on-board propulsion/braking control devices, etc.) or simply to provide displays. The other unit is a hot-standby or a hot spare unit, ready to take over if the master unit fails. When the master unit fails, an automatic failover to the hot spare occurs within a very short time and the outputs from the hot spare, now the master unit, are delivered to the controlled devices and displays. The controlled devices and displays may experience a short blip or disturbance during the failover time. However, they can be designed to tolerate/ignore the disturbances so that the overall system operation is not affected.


OOI Sonar for Ecosystem Monitoring
Wu-Jung Lee edited this page Jan 8, 2017 · 5 revisions
Vision
The temporal and spatial occurrence of predator-prey interactions, and the associated biomass change across the food chain, are of central importance in the marine ecosystem. Compared to net-based sampling methods, sonar systems (echosounders) offer promising potentials for quantifying such interactions, by delivering synoptic observation of the whole water column at each ensonification (echogram; Fig. 1). The Ocean Observatories Initiative (OOI) recently deployed numerous such systems, with an ambitious goal of cross-trophic observation at a significantly longer time scale than previously possible. However, there are imminent challenges, since the traditional subjective and non-adaptive echo analysis methods are not effective for analyzing the continuous ocean observatories sonar data flow with limited biological ground truth information (e.g., species composition) at the majority of locations.
To overcome these challenges, we will develop a suite of data-driven machine learning and inverse methods for objective segmentation and interpretation of OOI sonar echo time series. This is a crucial step toward delivering foundational biological information to understand the marine ecosystems under the changing climate – a highlight of the OOI program. We will use multi-dimensional echo features, including the mean echo strengths, distribution of echo fluctuation, and their joint variation across frequency as data descriptors. Since these features are strong functions of the size and identity of marine organism aggregations, by learning patterns based on echo features, we parse the incoming sonar data stream into biologically meaningful groups (e.g., fish-zooplankton foraging assemblage) useful for ecological research. The analysis framework will be structured such that the data parsing rules are updated adaptively based on the temporal evolution of echoes in the data stream.
Objectives
The overall goal of this project is to develop a suite of objective, automated processing methods to interpret water-column echosounder data for biological information. The specific goal during the Incubator is a proof-of-concept study using a more confined set of data (e.g., one season) and use the results as basis of future development and continuing collaboration. The key objectives are:
 1. Construct a pipeline to query and download data from the [OOI data repository] (_URL_ We will contact the OOI data management team and see if this may be of use to them. The current target data set is from the [OOI Cabled Array nodes off Oregon Coast] (_URL_
 2. Convert existing sonar echo feature extraction code from Matlab into Python and use them to process the target data set. The features include the absolute values and the statistical distribution of echo amplitudes received from the same ensonified water volume at different frequencies.
 3. Identify and test a few library methods that may be useful for parsing echogram, compare performance, and identify areas that require algorithm improvements or implementation of new algorithms.
 4. Formulate the problem using structured deconvolution with dynamic constraints, make necessary changes and apply existing algorithms with help from Prof. Sasha Aravkin, and test and compare with results from library methods.
The longer term goals after the Incubator include:
 1. Interpret the parsed echogram into compositions of marine organisms via a combination of physics-based acoustic scattering models and inversion methods. This will be pursued in collaboration with scientists from the [NOAA Northwest Fisheries Science Center (NWFSC)] (_URL_ who are familiar with the local fauna.
 2. Enable cloud computing for established processing algorithms and make the code available to a wider user base in the fisheries and biological oceanography community.
Success Criteria
We will use the following methods to evaluate the success of the developed algorithms:
 1. Apply the developed algorithms to a set of simulated data with patches of varying composition of organisms at different depths (known ground-truth) and examine the algorithm performance.
 2. Apply the developed algorithms to a set of real data which were "ground-truthed" using net-tows. I will contact scientists at NOAA NWFSC scientists to determine relevant data sections.
 3. Compare the outputs of the developed algorithms to those from conventional methods that employ empirically determined hard threshold.
Deliverable Schedule
 - Now-Jan 27: Getting the data cube ready for method development. The data cube is a 3D array in which the dimensions are 1) depth (echo time series from a single sonar ping), 2) time (across multiple pings), and 3) multi-frequency echo features.
 - Jan 27-Midterm: Explore and apply library methods for segmenting echogram based on the data cube.
 - Midterm-Final: Continue using library methods and develop new formulation using structured deconvolution for segmenting echogram. Investigate inversion methods for interpreting organism composition in the segmented echogram.
You can't perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.


text:
ISO 15797 specifies test procedures and equipment which can be used in the evaluation of cotton, polyester/cotton and reverse blend workwear intended to be industrially laundered. They serve as a basis for testing relevant properties such as dimensional stability, colour fastness, creasing and seam puckering. This International Standard does not provide instructions and specifications for the procedures and equipment to be used by industrial launderers.
Since it is not possible, in practice, to reproduce industrial laundry processes (washing and finishing) in a laboratory setting, ISO 15797 provides an approach using defined intermediate scale equipment and exacting test procedures which may be used for the evaluation of workwear intended to be laundered industrially.
The methods described in this International Standard simulate the effect of industrial laundering on workwear. Provision is made for eight different washing procedures based on the use of a front- or side-loading horizontal rotating drum type washer/extractor. Each washing procedure is considered to represent a single industrial wash.
ISO 15797 also specifies two drying/finishing test procedures, namely tumble drying and tunnel/cabinet finishing.


Tables > What's in a Table?
Navigation: Tables >
What's in a Table?
Previous pageReturn to chapter overviewNext page
Stu Alderman
Stu Alderman explores the structure of your Access database and discusses the relationship between Access objects and System tables.
ad7468x60
I'm currently developing an application that imports several files from mainframe sources at the State of Nevada. The application uses a number of tables in a local Access database to clean up and normalize the data before it's transferred to a SQL Server database. I'd been using a very good commercial tool to document my Access database designs, but at the time I needed the tool, the version for Access 2000 wasn't available.
The documentation that I usually produce for an Access project consists primarily of a list of table attributes and a description of the relationships between the tables in my applications. I usually use a screenshot of the Access Relationships diagram and a limited listing of attributes by table to document my database (see Table 1 for a typical attributes listing for a single table).

Table 1. Example of documentation produced for the USystblDoc table.
Attribute
Type
Size
Default
Reqd
Description
TableName
Text
64

Yes

FieldName
Text
64

Yes

FieldType
Text
16

Yes

FieldSize
Text
8

Yes

FieldReqd
Boolean
1
No
No

FieldDflt
Text
64

No

FieldDescr
Text
255

No

RecordID
Long
4
GenUniqueID()
No
Random Number Primary Key

Objects and system tables
The best way I've found to visualize an Access .mdb file is to think of it as a container holding all of the objects necessary to build a database and/or an application. If you've ever poked around in Access, you'll find that a great deal of information about the tables, queries, and other objects that you create is contained in a set of hidden tables. Objects like TableDefs and QueryDefs, as their names imply, are just definitions or blueprints of tables and queries. When you're using Design View for a table, you're actually updating those system tables. The table that you're creating doesn't really exist until you start populating it with data (and do so according to the rules contained in your TableDef). A QueryDef is really nothing but a definition stored in a system table, which is then used to generate a recordset.
To view those hidden tables, select the View tab from the Tools | Options menu choice and put a check mark in the System Objects checkbox. The tables will then appear in your database window. The names of the hidden tables are prefixed with the letters "MSys" (you can use the prefix "USys" to name tables that you want to keep hidden from casual users). Depending on your version of Access, you might lack the permission to view some of these tables, and you'll find that some of the information in the tables has been encrypted. The structure, layout, and meaning of the information in these tables can be difficult to determine.
Rather than work with those tables, however, Access provides a set of objects that give you the ability to extract whatever information you want. These objects include the TableDefs, QueryDefs, and Recordset objects. Each of these objects may give you access to other objects through their properties and collections (for example, the Fields collection in a TableDef object provides access to the Field objects for the a table). Collections, like Fields, are objects in and of themselves, with their own properties (such as Count) and collections (such as Properties). There are so many places to look up information that the job of finding the specific data in which you're interested might appear overwhelming. Furthermore, you'll find that much of the information that appears in one collection seems largely duplicated in another, leading you to ask which data is correct. The answer is, "All of it."
Each successive version of Access seems to rearrange where internal data is stored and which objects have access to which pieces of information. You can normally count on upward compatibility to preserve the code that you create to use these objects. For instance, the original version of my documenter was written for Access 2000 and wouldn't work for Access 97. The version that I rewrote for Access 97, however, worked just fine under Access 2000.
Extracting information
Before I show you how I drill down to get the information I want, let's look at two routines I use that help my main documentation procedure. My first routine is used as part of a procedure to remove all of the data that was generated in an earlier run of the documenter:
Private Function DelTblData(strName As String) _
 As Boolean
Dim DB As Database
Dim QD As QueryDef

Dim strSQL As String

Set DB = CurrentDb
Set QD = DB.CreateQueryDef("")

strSQL = "DELETE " & strName & ".* "
strSQL = strSQL & "FROM " & strName & ";"
QD.SQL = strSQL
QD.Execute (DB_FAILONERROR)

DelTblData = True

DeleteTableData_Exit:
 Set QD = Nothing
 Set DB = Nothing
 Exit Function

End Function
The DeleteTableData function removes all data from the table whose name is passed in the strName argument (as long as no rows are locked and no integrity rules are violated). DelTblData is a general-purpose procedure that appears in most of my applications. I've found that Visual Basic doesn't always destroy (or release memory for) object variables when they go out of scope. So, the DelTblData function sets all of its local object variables to Nothing before exiting the procedure. This habit makes sure that my modules run cleanly.
A second procedure is the GetType function. Passed a value that represents a data type for a field in the database, this routine converts that value into a name:
Private Function GetType(lType As Long) As String
Select Case lType
 Case dbBigInt
 GetType = "BigInt"
 Case dbBinary
 GetType = "Binary"
 Case dbBoolean
 GetType = "Boolean"
 'handle other data types
 Case Else: GetType = "Undefined"
 End Select
End Function
As an example, the Field object has a property called Type that returns an integer indicating the data type of the field. GetType converts that value into a name that I can print in my documentation:
Dim fld As Field
strDataName = GetType(fld.Type)
Neither of my private procedures has an error handler. Since private procedures can be called only by other procedures within the module, any errors these routines generate will end up being passed back to the calling procedure. My main documenter procedure, sdaGetAttributes, calls all of the other routines and performs all error handling.
The sdaGetAttributes routine first uses DelTblData to clean out the documentation table USystblDoc. The routine then opens a recordset on my documentation table, opens a transaction, and iterates through the TableDefs collection, retrieving the TableDef objects in the collection. The transaction will buffer output until I issue a WS.CommitTrans, when the data will actually be commited to disk. Although the documentation for a typical database is often a small amount of data, the use of transactions can dramatically speed up processing by reducing the number of disk writes required. Here's that opening code:
Sub sdaGetAttributes()
On Error GoTo sdaGetAttributes_Err

Dim WS As Workspace
Dim DB As Database
Dim TD As TableDef
Dim RSOut As DAO.Recordset

Dim lngI As Long

Call DelTblData("USystblDoc")
Set WS = DBEngine.Workspaces(0)
Set DB = WS.Databases(0)
WS.BeginTrans
With DB
For Each TD In .TableDefs
Once I've retrieved a TableDef from the collection, I check to see if the table name begins with the standard "tbl" prefix. If it does, I use the TableDef's Fields collection to retrieve each of the fields that make up the table definition. Having retrieved the field, I move the properties in which I'm interested into my documentation table:
 If Left(TD.Name, 3) = "tbl" Then
 For lngI = 0 To TD.Fields.Count - 1
 RSOut.AddNew
 RSOut("TableName") = TD.Name
 RSOut("FieldName") = _
 TD.Fields(lngI).Name
 RSOut("FieldType") = _
 GetType(TD.Fields(lngI).Type)
 RSOut("FieldSize") = _
 CStr(TD.Fields(lngI).Size)
 RSOut("FieldReqd") = _
 TD.Fields(lngI).Required
 RSOut("FieldDflt") = _
 TD.Fields(lngI).DefaultValue
 On Error Resume Next
 RSOut("FieldDescr") = _
 TD.Fields(lngI).Properties _
 ("Description")
 On Error GoTo sdaGetAttributes_Err
 RSOut.Update
 Next lngI
 End If
 Next TD
 End With
After updating my table, I commit the transaction to save


Skip to main content
Google Pixel 2's HSM Protects Users Against Malicious Firmware Updates
Google confirmed that its Pixel 2 uses a Secure Enclave on steroids called a hardware security module (HSM). The company revealed how the module helps protect users against malicious actors stealing the firmware signing key in order to replace the original device firmware and unlock the user's phone without their cooperation.
The iPhone has long been considered the most secure mobile device available. One its of the main security features is the Secure Enclave, a portion of the chip that has strict separation from the main operating system and stores encryption keys as well as other sensitive data you wouldn't want attackers to easily obtain.
Google said that it too has been deploying features to make its Pixel smartphones more secure, such as encrypting all user data on the smartphones by default and storing the encryption keys in secure hardware. This hardware runs secure firmware that is responsible for checking the user's password when decrypting the device.
To prevent attackers from replacing the firmware with malicious firmware (something the FBI wanted Apple to do in order to unlock user's iPhones), Google applies digital signatures. However, an attacker could still bypass this mechanism by finding and exploiting vulnerabilities in the signing process or gaining access to the signing key through other means. Once the attacker has the signing key, they can replace the firmware, and the users would see it as a legitimate update to their device.
Google said that although its firmware is tiny, isolated, and thoroughly vetted, the signing keys must be kept somewhere and at least several people must have access to them. This opens the possibility for an inside attacker. The people holding the keys could also become targets of intelligence agencies or other sophisticated hacking groups and fall prey to social engineering or coercion.
Enter Pixel 2 Insider Attack Resistance
In Android P, Google announced support for HSMs, which are sort of a Secure Enclave on steroids. The HSM comes with a CPU, secure storage, a true random-number generator, and other mechanisms to resist tampering and unauthorized side-loading of apps. The HSM cam be used in conjunction with a new implementation of the Keymaster hardware abstraction layer (HAL) called the "StrongBox Keymaster."
Google now confirmed that the Pixel 2 already uses a tamper-resistant HSM, which enables the insider attack resistance. The module prevents attackers from replacing the original firmware with properly signed yet malicious firmware without the user's cooperation: the user would need to input their device's passphrase, too, before the firmware can be replaced. Firmware upgrades without the original user's cooperation are still possible, but all the user's encryption keys would be wiped, so the data would become inaccessible.
Google recommended all device makers to implement insider attack resistance (and therefore use an HSM and the StrongBox Keymaster implementation available in Android P) in order to better protect their users against malicious parties. Google also said any interested device maker can reach out to the Android security team for help with implementing this solution.
 - canadianvice
 Neat. Just remember though that your phone is only secure within certain parameters - in Canada, for instance, one can be compelled to give a fingerprint scan. I think this is permissible in the US as well.
 So.... if you're running, make sure you take a moment to turn your phone off!
 - Christopher1
 That needs to change, Canadianvice. We need to change the laws so that a fingerprint is equivalent to a number or letter password and you cannot be compelled to give it without a warrant.
 - canadianvice
 The trouble is what they are. While I won't say I fundamentally disagree, a fingerprint is ultimately available for public consumption, so to speak.
 Passwords and such are hidden in the last refuge, but anyone can see an fp. It may also be awk on account of police being allowed an fp database.
 I imagine someone would try making an argument against that if fp were defined to be afforded 5th protection.


text:
The Brotherhood of Logicians was an assemblage of intelligent humans who emphasised pure logic. (TV: The Tomb of the Cybermen). It was originally founded by students during the Cyber-War as a secret society who opposed the war on the grounds they believed that humans should become more like Cybermen. (AUDIO: Last of the Cybermen)
Five hundred years after the Cyber-Wars, Eric Klieg and Kaftan (both members of the Brotherhood of Logicians) openly financed an archaeological expedition to the cyber-tombs of Telos, secretly motivated by the belief they could form an alliance with the Telosian Cybermen to help the Brotherhood seize power. Both were both killed by the Cybermen. (TV: The Tomb of the Cybermen)
Behind the scenes
The tongue-in-cheek article "You Know Our Ways" by Jonathan Morris in DWM 504 is formatted as an email sent to the Croydon and Bromley branch of the Brotherhood of Logicians concerning a recently acquired infostamp containing information on the Cybermen.


text:
Got that pioneering spirit? You're invited to help build Israel's periphery by planting roots in southern soil with Nefesh B'Nefesh.
Generally speaking, any food produced by a non-kosher animal is non-kosher. Thus, the egg of a non-kosher bird is not kosher but the egg of a kosher bird, such as a chicken, is kosher. If one comes across an egg and does not know which bird laid it, how does one tell a non-kosher egg from a kosher egg?
The Talmud gives us two ways to tell if an egg is of a non-kosher bird. If the egg is totally round like a ball rather than round at one end and tapered at the other end, a non-kosher bird laid the egg. So, too, if the yolk of the egg surrounds the white of the egg rather than the other way around, or if the egg has no white but is filled with yolk. If, however, the egg is round at one end and tapered at the other, the white of the egg surrounds the yolk and it looks like the egg of a chicken or of another identifiable kosher bird, the egg is kosher and may be eaten without any further investigation as to its pedigree.
In accordance with the general principle articulated above, the egg of a neveilah chicken that died before it was properly slaughtered, as well as the egg of a treif chicken that suffered from one of the treif-rendering defects previously discussed, is prohibited for consumption.
If a non-kosher egg, such as the egg of an eagle, was cooked in the same pot as kosher eggs, the kosher eggs remain kosher and may be eaten provided the non-kosher egg was cooked in its shell. The reason for this is that a kosher item cooked with a non-kosher item only becomes non-kosher if it absorbs the taste of the non-kosher item cooked together with it.
The shell of the non-kosher egg acts as a buffer through which the taste cannot be transferred to the kosher eggs. If, however, the non-kosher egg is taken out of its shell or its shell is cracked and it is cooked with the kosher eggs, the kosher eggs become non-kosher and cannot be eaten even if the kosher eggs remain in their shells unless the ratio of the kosher eggs to the non-kosher egg is at least 61 kosher eggs to the 1 non-kosher egg.
What is the status of an egg with bloodstains or blood specks?
The basic principle here is that the Torah only prohibits the consumption of blood of meat but not the blood of eggs. Nevertheless, there is a concern that a blood spot in an egg may indicate the presence of the beginning of the formation of the embryo of a chick. Although a hatched chick would be permissible for consumption if properly slaughtered, the embryo of a chick inside an egg of a bird, even a kosher bird, is forbidden for consumption. Such a blood spot that raises the concern of the existence of the beginnings of an embryo in the egg is referred to in the halacha as dam rikum.
The concern of dam rikum, however, is only present in the case of an egg laid by a chicken that mated with a rooster but it is not present in the case of an egg laid by a chicken that was not fertilized by a rooster. A fertilized egg may hatch into a chick after the hen has sat upon it for a period of three days whereas an egg that was not fertilized by a rooster, referred to in the halacha as beitza hamuzeret, will never hatch into a chick never mind how long the hen sits on it. Accordingly, any blood found in an unfertilized egg cannot be dam rikum and under Torah law may be eaten.
About the Author:
If you don't see your comment after publishing it, refresh the page.
No tweets found.
The Rambam, therefore, adds a second component: by getting angry, Moshe misled the people as to the nature of God. The masses felt that Moshe's anger was reflective of God's anger.
One of the most complex Tanach personalities is the central figure of this week's Haftorah: Yiftach, the Shofet, Judge.
"I saw an advertisement for group swimming lessons during the summer," Mr. Leiner said to his wife. "I think it would be good for our Pinchas."
Rabbeinu Tam Tefillin
'Transgressing Bal Tigra'
Question: As Shavuot is fast approaching – a holiday on which we dwell on the story of Ruth and the origins of the royal house of David – I was wondering if you could help me resolve something. The Mishnah never makes any mention of the Hasmonean kings, the mitzvah to light a Chanukah menorah, or the miracle of the oil that lasted eight days. Some people say that Rabbi Yehudah HaNassi – the redactor of the six orders of the Mishnah and a scion of King David – omitted these topics because the Hasmoneans improperly crowned themselves, ignoring the rule that all Jewish kings are supposed to come from the tribe of Yehudah. They argue that this is also why the Talmud does not include a separate tractate on Chanukah. Is this true?
In this week's parshah the Torah discusses many halachos of tumah. One halacha is that a person who is tamei may not enter the Mikdash. Doing so makes him liable for kareis.
The highway was packed with bumper-to-bumper traffic, and there I sat with hands gripped tightly on the steering wheel, begging the cars to move. My heart swelled at the thought of seeing my son, who was just coming back from his year of learning in Eretz Yisrael. How I had missed him! Though I was used to him being away (if you can ever really get used to a child being away), a special space in my heart was empty – as I waited for him.
No one lives in a vacuum. No, that doesn't mean we didn't get sucked up through a vacuum cleaner hose in the pre-Pesach cleaning frenzy, it means that whether we like it or not, our environment—the people and things around us—makes a big impact on who we are.
According to biblical law, once an area has been converted in to a reshut hayachid by enclosing it with a halachically acceptable eruv, one may carry inside the enclosed area. But according to rabbinical law, it is simply not enough to enclose an area in which one wants to carry with an eruv. This alone will not permit carrying from the home into the street or vice versa. Neither will it alone permit carrying from a condominium apartment into the lobby or other common areas.
Yidsville had a small but dedicated Jewish community. There was one Orthodox synagogue, led by Rabbi Well, a day school, women's mikveh, kosher butcher shop, pizza store and restaurants.
In this week's parshah the Torah tells us that Hashem told Aharon to redeem every firstborn child. This is known as pidyon haben. The Rema, in Yoreh De'ah 305:10, rules in the name of the Rivash that one may not appoint a shaliach to perform pidyon haben. Many Acharonim argue with this ruling and posit that one can appoint a shaliach to perform pidyon haben.
You may remember how we once did an experiment with a story (about a monster fire in Arizona) without Jewish protagonists, but containing a universal lesson that I believed worthy to record for the readers of Chodesh Tov. We are there yet again, this time directly north in Wisconsin.
Please bear with me as we once again record a story we investigated in the hope that the lesson is unique and worthy of our attention. It is going to take us five full columns to complete the tale, and I thank you in advance for your patience.
Elevated Train Tracks And Eruvin
(Please note: The question has been modified to reflect amendments suggested by a reader, Yisrael Levi, in last week's column.)
More evidence that Jews tried to change their fate at the hands of the Nazis: Archaeologists discovered that Jews at the Sobibor death camp built an escape tunnel but apparently didn't live to use it.
An ancient frog can now be added to Israel's history. The "painted frog," though to be extinct, turns out to be a descendant of a one million-old frog.
Sen. Frank Lautenberg of New Jersey died Monday at the age 89. His life was a classic Jewish rag-to-riches story of a young man who worked his way to business and political success.
The Middle Ages have returned to Europe, or maybe they never left. Jews dipping matzos in blood is old hat. Now a Norwegian newspaper depicts circumcision as a violent and bloody religious custom.
The heinous crime that put "Prisoner X" Ben Zygier in an Israel jail where he killed himself was not known until today: He butchered a secret Mossad operation to bring home the remains of 3 soldiers.
The surgery was a complete success, but the surviving twin is still not out of danger.
Last week, police executed a search warrant in the couple's former home in Dewitt.
"They located the barbecue in a grassy area, ignoring safety guidelines."
Printed from: _URL_


text:
We present a low-coherence interferometric imaging system designed for 3-dimensional (3-D) imaging of a macroscopic object through a narrow passage. Our system is equipped with a probe-type port composed of a bundle fiber for imaging and a separate multimode optical fiber for illumination. To eliminate the need for mechanical depth scanning, we employ a spatial frequency multiplexing method by installing a 2-D diffraction grating and an echelon in the reference arm. This configuration generates multiple reference beams, all having different path lengths and propagation directions, which facilitates the encoding of different depth information in a single interferogram. We demonstrate the acquisition of 9 depth images at the interval of 250 µm for a custom-made cone and a plaster teeth model. The proposed system minimizes the need for mechanical scanning and achieves a wide range of depth coverage, significantly increasing the speed of 3-D imaging for macroscopic objects.
Bibliographical noteFunding Information:
Funding. Institute for Basic Science (IBS-R023-D1); National Research Foundation of Korea (2021R1A2C2012069); Institute of Information and Communications Technology Planning and Evaluation (IITP) grant funded by the Korea government (MSIT-2020-0-00864, Development of Hologram-based Deformation/Defect Detection Techology for Nondestructive Products, 30%)
© 2021 Optical Society of America under the terms of the OSA Open Access Publishing Agreement.
ASJC Scopus subject areas
- Atomic and Molecular Physics, and Optics


text:
Drastic changes to travel behavior during the pandemic have decreased fuel tax revenue in many states, but the extent and timing of financial recovery in the years to come remain uncertain. New research from the Mineta Transportation Institute (MTI), "The Impact of the COVID-19 Recovery on California Transportation Revenue: A Scenario Analysis through 2040," estimates the impact the COVID-19 pandemic would have on state-generated transportation revenue under six potential economic recovery scenarios, projecting the state's future transportation revenue through 2040.
The six scenarios vary by several variables, including the length of the economic downturn and differences in transportation trends such as vehicle miles traveled (VMT), light-duty fleet size, and the mix of internal-combustion engine (ICE) vs. zero-emission vehicles (ZEV). The study used a tested spreadsheet model and well-known data sources to project transportation revenues generated by California's Senate Bill 1 (2017) package of taxes and fees. These are taxes on gasoline and diesel fuel, plus two annual fees levied on vehicles.
While there is no certainty that the future will resemble any of the chosen scenarios, they nevertheless help state leaders assess and design policies to achieve desired outcomes.
The study's revenue projections under these six scenarios found that:
- The projections demonstrate that annual California transportation revenue by 2040 could range from as little as $6.5 billion to as much as $10.9 billion.
- The projected cumulative revenue raised between 2020 and 2040 varies across the scenarios by more than $40 billion.
- In 2020, taxes on fuels will generate roughly three-quarters of state generated transportation revenue but will likely generate a much smaller percentage of overall revenue by 2040 (in four of the six scenarios, they generate less than a quarter of revenues).
"The findings highlight the need for California's policy leader to prepare a long-term strategy for raising adequate transportation revenues that take into account the wide variation that will arise," says Principal Investigator Dr. Asha W. Agrawal.
Researchers suggest that in order to achieve its policy goals of reducing carbon emissions from the transportation sector, California's policymakers may wish to change the structure of taxes to replace the revenue lost from fuel taxes. For instance, the research team suggests supplementing the existing tax structure with a new road-user charge of one cent per mile.


Tech
How to implement in-memory caching in ASP.NET Core
[ad_1]
Design patterns have evolved to address problems that are often encountered in software applications. They are solutions to recurring problems and complexities in software design. Design patterns fall into thrее distinct catеgoriеs: crеational, structural, and bеhavioral.
Crеational dеsign pattеrns arе usеd to abstract and simplify objеct crеation. Structural pattеrns arе usеd to define thе rеlationships among objects (e.g., inheritance and composition). And bеhavioral design patterns are used to control the ways objects interact with each other (e.g., collaboration and delegation).
Thе dеcorator dеsign pattеrn is a structural pattеrn that can bе usеd to attach functionality or bеhavior to an objеct dynamically or statically without altеring thе objеct's structurе. In this article, we'll use the decorator pattern to implement an in-memory cache in an ASP.NET Core application.
Note that ASP.NET Core does not have a cache object like its predecessor ASP.NET. However, it does offer various aching options including in-memory caching, distributed caching, and response caching. We can implement caching seamlessly in an ASP.NET Core application by leveraging the power of middleware or services alongside the decorator pattern.
To use the code examples provided in this article, you should have Visual Studio 2022 installed in your system. If you don't already have a copy, you can download Visual Studio 2022 here.
Create an ASP.NET Core Web API project in Visual Studio 2022
To create an ASP.NET Core 7 Web API project in Visual Studio 2022, follow the steps outlined below.
 1. Launch the Visual Studio 2022 IDE.
 2. Click on "Create new project."
 3. In the "Create new project" window, select "ASP.NET Core Web API" from the list of templates displayed.
 4. Click Next.
 5. In the "Configure your new project" window, specify the name and location for the new project.
 6. Optionally check the "Place solution and project in the same directory" check box, depending on your preferences.
 7. Click Next.
 8. In the "Additional Information" window shown next, leave the "Use controllers (uncheck to use minimal APIs)" box checked. We won't be using minimal APIs in this project.
 9. Elsewhere in the "Additional Information" window, leave the "Authentication Type" set to "None" (the default) and make sure the check boxes "Enable Open API Support," "Configure for HTTPS," and "Enable Docker" remain unchecked. We won't be using any of those features here.
 10. Click Create.
We'll use this ASP.NET Core Web API project to work with the code examples in the sections below.
What is a cached repository? Why do we need one?
Thе rеpository pattеrn is a widеly usеd dеsign pattеrn that hеlps sеparatе thе data accеss logic from thе rеst of an application. A cachеd rеpository is usеd to еnhancе thе еfficiеncy and pеrformancе of data accеss opеrations. It combinеs thе commonly usеd rеpository pattеrn with caching tеchniquеs.
Encapsulating opеrations likе quеrying, insеrting, updating, and dеlеting data in a rеpository class providеs a clеar abstraction layеr that allows thе application to intеract with thе undеrlying data storagе through thе rеpository. Adding caching functionality to the rеpository we can short-circuit rеpеtitivе, rеsourcе-intеnsivе data accеss opеrations and improve the performance our our application.
How a cached repository works
Hеrе is how a cachеd rеpository typically works:
 1. Thе cachеd rеpository first vеrifies if data requested by the client is storеd in the cachе.
 2. If thе data is not found in thе cachе, thе cachеd rеpository will pass thе rеquеst to thе undеrlying rеpository. Thе undеrlying rеpository will thеn fеtch thе data from its original sourcе, such as a databasе.
 3. Aftеr thе data is rеtriеvеd from thе data sourcе it is storеd in thе cachе.
 4. Finally, thе rеquеstеd data is rеturnеd to the client.
Using a caching mеchanism improvеs ovеrall pеrformancе and rеducеs thе load on thе data sourcе. Instеad of pеrforming thе еxpеnsivе opеration of rеtriеving data from the underlying data source again and again, subsеquеnt rеquеsts for thе samе data can bе sеrvеd from thе cachе.
You can implеmеnt cachеd rеpositoriеs using diffеrеnt caching mеchanisms such as in-mеmory caching, distributеd caching, or еvеn custom caching solutions. A cachеd rеpository can significantly еnhancе your application's pеrformancе by rеducing data accеss timе, reducing latеncy, and improving scalability.
By minimizing calls to thе original data sourcе, a cached repository improves application rеsponsivеnеss. Howеvеr, maintaining data consistеncy of the cache with thе actual data sourcе rеquirеs carеful considеration of cachе invalidation stratеgiеs.
Create a cache repository in ASP.NET Core
Before we create our cache repository, let's create a model class for our application. Right-click on our Web API project in the Solution Explorer window and create a new .cs file. Replace the default generated code with the following piece of code to create our model class.
 public class Author
 {
 public Guid Id { get; set; }
 public string FirstName { get; set; }
 public string LastName { get; set; }
 public string Address { get; set; }
 public string Phone { get; set; }
 public string City { get; set; }
 public string PostalCode { get; set; }
 public string Country { get; set; }
 }
Next, create an interface named IAuthorRepository that contains the declaration of the methods corresponding to the operations supported by our repository class. Replace the default generated code with the following code.
public interface IAuthorRepository
{
 Task<List<Author>> GetAuthorsAsync();
}
Now create a new class named AuthorRepository in a file having the same name with a .cs extension and enter the following code in there.
public class AuthorRepository: IAuthorRepository
 {
 private readonly List<Author> authorList;
 public AuthorRepository()
 {
 authorList = new List<Author>() {
 new Author()
 {
 Id = Guid.NewGuid(),
 FirstName = "Joydip",
 LastName = "Kanjilal",
 Address = "1 ABC Road",
 City = "Hyderabad",
 Country = "India",
 PostalCode = "500089",
 Phone = "_PHONE_"
 },
 new Author()
 {
 Id = Guid.NewGuid(),
 FirstName = "Steve",
 LastName = "Barnes",
 Address = "9/2A CT Road",
 City = "Chicago",
 Country = "USA",
 PostalCode = "101010",
 Phone = "_PHONE_"
 },
 new Author()
 {
 Id = Guid.NewGuid(),
 FirstName = "Michael",
 LastName = "Bogan",
 Address = "81 Red Road",
 City = "Sydney",
 Country = "Australia",
 PostalCode = "123456",
 Phone = "_PHONE_"
 }
 };
 }
 public async Task<List<Author>> GetAuthorsAsync()
 {
 return await Task.FromResult(authorList);
 }
 }
Create a