site of the package where the display was in, you find the corresponding number like: NX4832T035 in my case.
 3. Then you can select the display direction: vertical or horizontal and confirm all setting by pressing the OK button.
After we create the project you have to know the basic functions of the Nextion Editor. From the picture above you see that there are 8 planes that are described in the following section:
Main Menu: In the Main Menu you find standard options and settings. For example you can open, save and close projects, find the general settings and look for updates.
 - In the tools category you can add new fonts with the font generator. In the generator you can choose from different fonts and select the height. It is useful to create more than one font for your project.
Nextion Editor Font Generator
Toolbar: In the Toolbar you can also open, save or create a new project. In the second line there are multiple functions to align the components of the toolbox. Also you find other functions that we will use:
 - Compile: Before you transfer the project to the display you have to compile the current code.
 - Debug: The debug window is a good option to check how to display will look like. Also you can check implementations that are programmed directly on the display.
Nextion Editor Debug
Toolbox: In the toolbox are all components that you can add to your project. By clicking on a component it is added to the design plane. There are some advanced components that are only available for the intelligent series. The following picture shows what components are available for the different series of displays.
Nextion Editor Toolbox
Resource Plane: In the resource plane you add pictures, fonts as well as video and audio data that is included in the program files.
Event Code: In this section you can define program code that is executed when a component is used. For example you can define what should happen when a button is pressed and what should happen when this button is released.
Toolbox Plane: In the toolbox plane you define the attributes of the selected component. These attributes are separated into two categories:
 1. Can change at run time
 2. Cannot change at run time
The following pictures shows which attributes belong to which of the two categories. The most important attributes which are also needed for the Arduino program code are the "id" and the "objname".
Nextion Editor Toolbox Plane
Page Plane: With the Nextion displays you can create virtual pages where you can show different information. You HMI needs at least one page that is added when you create a new project. Also you can export and import pages so save time and reuse different kind of pages.
Design Plane: The design plane is your main window where you layout the interface with different components that you add with the toolbox.
If you want full detailed information about all features of the Nextion Editor, you can visit the editor guide.
The following video shows how I create a new project for my display and add a font as well as some components.
Nextion Display - Screen Recording
In the video you see the following steps that I make. These basic steps help you to get your first interface running.
 1. I created a new project and save the project on my disk.
 2. After the project is created, I choose the right display model and the select the display direction.
 3. In the resource plan I could add a previous created font but I wanted to create new new one via the Font Generator in the setting menu bar.
 4. The created font is saved to the disk and added to the current project.
 5. For this example I create a text field and changed the text and the maximal text width from 10 to 30. If I had not created a font previously, then I would get an error message.
 6. I created also a button and set the text to button, how creative 🙂
 7. The last step is to check if everything is running in the debugger.
How to get the interface from the Nextion Editor to the display?
The short answer would be via a micro SD card, but in reality it was a little bit trickier. The basic requirement for the Nextion display is that the SD card has to be in FAT32 format. First I tried to use a 64 GB micro SD card but unfortunately when I tried to format the card in Windows 10 there was no option to format the 64 GB micro SD card to FAT32.
SD Card Format
SD Card Format details
Also I tried to format the SD card via the windows PowerShell but this did not work either and I don't wanted to install a third party application only to change the format of the SD card once.
But I was lucky that I found a 32 GB SD card and the formatting via the PowerShell worked this time with the command: format /FS:FAT32 E: (E is the name of the volume of the SD card)
SD Card Format PowerShell
After the SD card is ready we have to compile our code to make sure that the compiler does not find any errors. You find the compile button ins the Toolbox and the output of the compiler in the output box at the bottom left in the Nextion Editor.
Nextion Editor Compile 2
The next step in the Nextion Editor is to export the TFT file to the micro SD card. Click on File in the main menu and select TFT file output. Now you choose your FAT32 formatted micro SD card and export the file to the card. If you wish, you could check if the TFT file is on the SD card.
Nextion Editor TFT output 1
Nextion Editor TFT output 2
The last step is to place the SD cart into the SD card slot of your Nextion display. After powering the display up, you see that the display recognizes the SD card and loads the file in the internal memory of the display.
Nextion Display Upload TFT
Now you disconnect the display from the power source and remove the sd card after transferring the .tft program.
The next step is to prepare the Arduino IDE to enable the connection between the Arduino or ESP8266 based microcontroller and the Nextion display.
Arduino IDE preparation for Nextion Displays
Good news: the Nextion developers created a library for Arduino and Raspberry Pi that makes the coding much easier. The bad thing is, that this library is not included in the Arduino IDE library search. Therefore we install the library manually in 4 steps:
 1. Download the Arduino library for Nextion Display as ZIP file from the official github repository to a local folder of your choice.
 2. Go to your download folder and unzip the zip file. You should get a folder named: ITEADLIB-Arduino-Nextion-master
 3. Rename this folder to: ITEADLIB_Arduino_Nextion.
 4. Move the ITEADLIB_Arduino_Nextion folder to your Arduino IDE installation libraries folder. If you do not know how your library folder is located you can search for Arduino/libraries and will find the folder, see the following picture.
Arduino Libraries Folder
The Nextion library is configured for the Arduino Mega. If you use the Arduino Mega for this project, you can skip the next step. But if you use for example an Arduino Uno, like me, we have to change the configurations of the library because the Arduino Mega has two hardware serials and the Arduino Uno for example only one.
In the library folder open the NexConfig.h file and change the following three lines:
 - Line 27: comment line with //
 - Line 32: comment line with //
 - Line 37: change Serial2 to Serial
Now everything is setup and we can create our first basic example. After the basic example I show you a more advanced example where we also use the program function of the Nextion display itself.
Basic Nextion Example – Increase Counter
The first example is an easy basic example where you learn how to add buttons and use a number field to make a counter with a reset button. This example has only one page to keep it simple. If you are new to the Nextion display, this tutorial is right for you, but if you are already advanced, you can jump to the next example where I show you a more complex example.
You can download every file I use in this example with the following download button. You download a zip file that includes the Nextion Editor TFT file, the used fonts, a picture and the Arduino script.
If you have not already started your Nextion Editor, you can open it now. Like in the video I showed you at the beginning of this tutorial, the first step in a new project is to select your Nextion display and select the horizontal or vertical display direction. In the second step you can create one or more fonts for this project. I created two fonts, one with a height of 16 and the second with a height of 32 to display text a little bit bigger.
I also want to display a picture in the display. Therefore I select picture in the resource plan and with the red plus sign I added the logo of the DIYI0T bog as picture. To display the picture on the display, I choose picture in the toolbox to add a picture frame to the interface. Now you have assign the right picture ID to the frame. Therefore set the pic setting in the toolbox plane to 0.
I also add all other components that we need from the toolbox:
 - 1 text field
 - 2 buttons


text:
Case Study: Confined Site Investigation.
IKM carried out a soil contamination assessment on a site occupied by a three storey building, in the Tradeston area of Glasgow. The building was to be retained for refurbishment as flats and so the investigation had to be carried out within the confines of the building.
The project involved the drilling of boreholes and the installation of monitoring wells through the ground floor of the building. These allowed the sampling of soils, groundwater and soil gas below the footprint of the building.
Planning of the investigation gave consideration to the constraints faced with drilling indoors. A suitable drilling rig was sourced and access and egress assessed before works commenced. Consideration was also given to the existing fabric of the building, services and ventilation during the operation of the rig.
A period of soil, groundwater and soil gas sampling was undertaken and the results used to provide a detailed quantitative risk assessment of the site to address the requirements of the regulators and planning conditions.
By providing this bespoke solution to investigate below the footprint of an existing building, IKM were able to:
- Collect representative samples without major disruption to the existing building.
- Identify contaminants which could possibly put constraints on the development.
- Provide a detailed assessment of conditions with respect to its proposed use.
- Provide specific remedial recommendations such as vapour membranes, soil capping and groundwater extraction at an early stage of design.
- Address planning conditions and so allow the development programme to progress quickly.
State of the art recycling facility for Glasgow IKM...read more.
IKM Consulting sets sail for Port Edgar Marina as new...read more.
New Scots-Irish partnership targets environmental sector: IKM Consulting...read more.
IKM Consulting appointed to £7M school project: IKM Consulting, has...read more.

source: m-a-p/FineFineWeb


text:
Financial health reflects residents' ability to manage their daily finances, be resilient to economic shocks, and pursue opportunities for upward mobility. Credit health is an important component of overall financial health, in addition to savings, income, and wealth. During economic crises like the COVID-19 pandemic, financially healthy residents can better weather the storm, help stabilize city finances, and contribute to economic recovery. But financial health, like economic recovery, is unevenly distributed across racial and economic groups. And advancing inclusion through financial health requires intentional policies and actions.
Using credit bureau and alternative financial services data on over 5 million US adults with a credit file from 2010-2020, we find that:
- Credit health among Chicago residents—measured by changes in credit scores, credit use, and delinquencies—improved after the Great Recession and into COVID-19 as of October 2020. These trends suggest choices by federal, state, and local policymakers and private-sector partners to help families weather the impacts of COVID-19 are making a difference in their credit health.
- Disparities by race illustrate that the last economic recovery failed to adequately address systemic barriers facing families of color. The share of Chicago residents in communities of color with subprime credit scores (39.5 percent) is nearly 4 times higher than in majority-white communities in the city (10.9 percent). Without sustained support and intentional policies that address racial barriers, the economic impacts of COVID-19 could create major setbacks on the pathway to inclusive economic recovery.
- Credit health is one component of financial health; while credit measures improved, other data point to increased food insecurity, employment income loss, and other hardships, indicating an uneven recovery. Credit data cannot capture the experiences of about one in ten US adults who do not have a credit file, and people of color are disproportionately represented in this group. Credit data also do not reflect residents' ability to make timely payments once loan forbearance and other protections end, since reporting requirements make qualifying loans that were current before borrowers sought accommodations appear current during forbearance. Even residents with strong credit health may face challenges if underlying financial circumstances—income and savings—have not improved. Assessing the state of resident's incomes, savings, and other assets will be important for understanding the full impact of COVID-19 on financial health.

source: openbmb/Ultra-FineWeb


text:
St. Ursula Academy invested in its fine and performing arts curriculum by adding a state-of-the-art piano lab, which can be used by students in grades 6-12 for a variety of music-related courses. The piano lab follows last year's addition of a Black Box Theater to also enhance the performing arts curriculum.
The lab is made up of 11 Yamaha Digital Pianos (10 for students, one for a teacher) controlled by an LC4 Lab Controller System. The LC4 system connects all pianos through headsets, which allows students to work individually, in pairs, or in groups. This setup is identical to that offered in university music departments and select high schools around the country. In addition to teaching music and techniques at the piano, the goal of the piano lab is to instill music fundamentals that students may apply to any area of music.
Features of the pianos include 88 weighted keys, with a touch similar to an acoustic piano, as well as the ability to change instrument sounds. For example, students can play 10 different parts of a musical composition, each with a different "instrument." Music faculty member Kristina Perna said, "Often, I'll have students play in ensembles and choose an 'intelligent' instrumentation. For example, we might structure the lesson such that lower sounds might be a cello or trombone, while higher sounds could be a flute or violin."
The Collegiate Block schedule at SUA—where students have four 80-minute classes each semester—allows time for students to learn a subject in more depth. The piano class taught in the lab is a perfect example of a curriculum that needs the extra time for students to learn and practice to master the material.
- Performing Arts


text:
Predicting Volcanic Eruptions Using Real-time 4D+ Microscopy of Bubble Interactions in a Solid-Liquid Mush
DESCRIPTION: Magma, the driver of volcanic eruptions, is a three-phase mixture composed of liquid melt, solid crystals, and gas bubbles. The interaction between these three components determines the style of eruption: a violent explosion, a moderately energetic lava fountain, or a quietly oozing flow. Scientists studying volcanoes have developed theories to describe how particles or bubbles move within a viscous liquid, yet models for the behavior of all three phases together are still lacking. Lab experiments using three-phase mixtures have so far been limited in their ability to directly observe these interactions–experiments have observed flow from the outside of the flow chamber, flows have been limited to only narrow, two-dimensional domains, or three-dimensional images have been made only after flow and interactions have ceased. We will be using a novel microscopy technique (SCAPE) to image, for the first time, the interaction of particles and bubbles suspended in a viscous liquid, in three dimensions and in real time. Our observations will provide constraints to models of three-phase flow and insight into magma dynamics and volcanic eruptions.


text:
|1. Select category||2. Choose calculator||3. Enter data||4. View results|
McNemar's test to analyze a matched case-control study
McNemar's test is used to compare paired proportions. It can be used to analyze retrospective case-control studies, where each case is matched to a particular control. Or it can be used to analyze experimental studies, where the two treatments are given to matched subjects. Read an example with explanation.
Use McNemar's test (and this calculator) only when you are analyzing matched pairs. Each value you enter above represents a number of PAIRS. The total number of subjects in the study is twice the total of the values you enter above.

source: HuggingFaceFW/fineweb-edu


text:
Emancipation is a legal way for children to become adults before they are 18. Once a child is emancipated, his or her parents do not have custody or control of him or her anymore. Emancipation is usually forever. But the court can cancel the emancipation if the minor asking for the emancipation lies to the court or is no longer able to support himself or herself.
If you are emancipated, you can do some things without your parent's permission, like:
If you are emancipated, you will give up the right to be supported by your parents.
Even if you are emancipated:
Note: If you have a legal guardian, all of the information in this section about parents applies to your legal guardian and your case, too.
There are 3 ways to get emancipated:
If you do not want to live with your parents, you do not necessarily have to get emancipated. You can:
You can learn a lot more about emancipation by reading Legal Services for Children's Emancipation Manual. This manual has a lot of answers about emancipation for teenagers.
Read the Emancipation Pamphlet (Form MC-301) for more information about the court process.


text:
Cape Town, South Africa – The population of South Africa increased by more than half a million, 530 000 to be exacy. The amount of people now living in South Africa is 49.99 million according to Statistics South Africa's Mid-year population estimates.
There are also more females in South Africa than males with females making 51% of the population.
There are 79 percent black people making 39.68 million and 4.58 million white people with 4.42 million coloured following.
Gauteng has the biggest population in South Africa standing at 11.19million followed by KwaZulu-Natal with 21.3 percent.
The Northern Cape has the least amount of people according to Stats SA.


text:
Augustus Edward Hough LoveArticle Free Pass
Augustus Edward Hough Love, (born April 17, 1863, Weston-super-Mare, Somerset, England—died June 5, 1940, Oxford), British geophysicist and mathematician who discovered a major type of seismic wave that was subsequently named for him.
Love held the Sedleian professorship of natural philosophy at the University of Oxford from 1899 to 1940. In his analysis of earthquake waves, Love made the assumption that the Earth consists of concentric layers that differ in density and postulated the occurrence of a seismic wave confined to the surface layer, or crust, of the Earth. This wave would be propagated as a result of the difference in density between the crust and underlying mantle. His prediction was confirmed by recordings of the behaviour of waves in the surface layer of the Earth. He proposed a method—based on measurements of Love waves—to measure the thickness of the Earth's crust. In addition to his work on geophysical theory, Love studied elasticity and wrote A Treatise on the Mathematical Theory of Elasticity, 2 vol. (1892–93).
What made you want to look up "Augustus Edward Hough Love"? Please share what surprised you most...


Enquire Today
 - Home
 - Resources
 - How much does it cost to claim against an estate?
How much does it cost to claim against an estate?
In Queensland, there was a perception for a long time that the estate covered the costs for both the successful and unsuccessful parties when claiming against the estate. This is not necessarily the case.
In most instances, the estate covers the costs of the successful party, and in some cases, the unsuccessful party has to pay the legal costs to the estate, but this isn't always the case. In Queensland, the issue of costs is at the discretion of the court. The Court will often discourage a claim if it feels the estate is too small and encourages it to be settled out of court. This prevents the estate from being eroded by legal fees, which can happen if the matter needs to be settled in the court system.
Recent cases in Queensland have seen The Court take the conduct of the claimant into consideration when awarding costs rather than just whether they were successful or not.
It is important to follow the correct process when claiming against an estate. If you have further questions on how to make a claim against an estate click here.
We provide a detailed analysis of your claim before commencing proceedings, so you are fully aware of your legal position and potential costs involved. If you would like more information on this important subject, please contact us.


text:
Is your congregation curious about energy efficiency and/or renewable energy? Have you heard about the financial resources, tax incentives and pathways provided by this year's legislation passed through the U.S. Congress for some of these kinds of projects?
While not all congregations will be able to make use of these resources, some may be able to use opportunities now while others could use some of these ideas to plan for the future. These aren't the easiest resources to figure out how to access. Thus, we are grateful for experts, organizations and friends who've shared ideas of how to make good use of these offerings.
In addition to the curated list below, you can find other great webinars from Interfaith Power and Light (_URL_ as well as Presbyterians for Earth Care (_URL_ to help in your learning.
Webinars and Web Sites for more information
- _URL_ Holy Heat Pumps! explained how heat pumps work and how to lower the costs for installation at your congregations with the new government funds available to congregations for the first time.
- _URL_ Tools & Resources to Green Congregations webinar covers the ways houses of worship and religious institutions can update their facilities to become more energy efficient and save on their energy bills. Also, important information regarding first-time federal funding available to nonprofits to support investment in energy efficiency and renewables
- _URL_ Summer Solstice Webinar on Solar Financing. Learn about the different ways congregations can finance solar from Jerry Bernstein, author of IPL's Solar Financing for Congregations. Then we'll take a deeper look at one of the options that allow a congregation to install solar with no up-front costs, called power purchase agreements.
- _URL_ PEC webinar on Federal Funding Resources for Houses of Worship with Tiffany Hartung
- _URL_ to save money on church energy bills.
- A follow-up website is _URL_ It's a lot of content but this spreadsheet might be particularly helpful to you as it has things broken down by types of work: _URL_
- Website explains sort of what is covered by the "direct pay" that's referenced on IPLS page _URL_ and this FAQ may also be useful: _URL_
In addition to these webinars and web sites about public funding and tips for saving energy and money, a reminder about the Restoring Creation Loan _URL_ from Presbyterian Investment and Loan! Many congregations have made use of this great resource as a way to get started.
The work of the Presbyterian Hunger Program is possible thanks to your gifts to One Great Hour of Sharing.


text:
Previous abstract Next abstract
Session 17 - Supernovae.
Display session, Monday, January 15
North Banquet Hall, Convention Center
Numerical calculations of the formation and evolution of luminous supersoft X-ray sources will be presented. The probabilities associated with the various pathways leading to the formation of these systems will be discussed. The method used in calculating the evolution of these systems will also be described and the observational implications will be addressed. Probability distributions of observational properties will be developed. Particular attention will be paid to the hypothesis that supersoft X-ray sources could be the progenitors of Type Ia supernovae. The viability of this hypothesis will be investigated in light of some of the theoretical uncertainties associated with their formation and evolution (e.g., common-envelope evolution, the late phases of mass transfer).
Program listing for Monday


Using Google Dart as an online collaboration calculator
When I'm stuck on math questions I turn to my friend Chris who can write pixel perfect C# code in a chat window. Yesterday I needed to calculate where a line intersects a circle so after a few google searches I came up with this Google Dart code:
double x1=100.0;
double y1=100.0;
double x2=200.0;
double y2=200.0;
double radians=Math.atan2(y2-y1, x2-x1) ;
double radius=50.0;
double y3=y2+radius * Math.cos(radians);
double x3=x2+radius * Math.sin(radians);
As it turned out, I made two mistakes. The last two lines should be:
double y3=y1+radius * Math.sin(radians);
double x3=x1+radius * Math.cos(radians);
How did I find out? Easy! I entered the code in the Dart editor and sent the generated link to Chris. He looked at the code, made some changes and sent a link back.
Calculate intersection point of line and circle
I wrote this post to point out the power of a shared code editor and to show how to calculate where a line intersects a circle. Open the link in a recent Chrome or Firefox browser and press play!


text:
Clipping wings is necessary for all of the more social birds that are out of the cage. Birds such as canaries and other finches that stay in the cage don't need their wings clipped. Birds have been known to fly into windows, into pots of boiling water or other food, into ceiling fans, etc. We need to take the responsibility to protect them and this responsibility includes clipping wings.
Watch your veterinarian or bird groomer trim the wings the first time. A proper trim allows the bird to exercise its muscles and to coast to a landing if needed. It should prevent the bird from attaining additional altitude.
One person should restrain the bird wrapped in a towel. The wing should be extended. Using sharp scissors, remove the ends of the outer 6-7 feathers (these are the flight feathers). More of the feather can always be trimmed if needed. If a blood or pin feather is cut, it will bleed. This bleeding usually stops in a short amount of time. If the bird continues to pick at it and it continues to bleed, the feather can be plucked out.
Check the feathers on a monthly basis and trim as necessary. If the outer 2-3 feathers are left unclipped for looks, monitor closely as the bird may be able to fly.
If the bird does manage to escape to the outside world and fly off, immediately put his cage out in the yard with the door open and a big bowl of his favorite food in and on it. Hopefully, within a day or two, your feathered friend will decide the cage isn't so bad after all. Let people know you lost your bird. Put up fliers, call veterinary clinics and humane societies, and put an ad in the paper. Don't give up hope. Some birds are found and caught weeks after the escape. Keep up-to-date photos of the bird. Take pictures from both sides, front, and back. Write down the ID information whether it is from a leg band or a microchip. Having this information will help prove ownership if the need arises.


TwitterFacebookGoogle
The Janitor Process
The janitor process carries out periodic cleanup tasks. For example, it is used by omfile to close files after a timeout has expired.
The janitor runs periodically. As such, all tasks carried out via the janitor will be activated based on the interval at which it runs. This means that all janitor-related times set are approximate and should be considered as "no earlier than" (NET). If, for example, you set a timeout to 5 minutes and the janitor is run in 10-minute intervals, the timeout may actually happen after 5 minutes, but it may also take up to 20 minutes for it to be detected.
In general (see note about HUP below), janitor based activities scheduled to occur after n minutes will occur after n and (n + 2*janitorInterval) minutes.
To reduce the potential delay caused by janitor invocation, the interval at which the janitor runs can be be adjusted. If high precision is required, it should be set to one minute. Janitor-based activities will still be NET times, but the time frame will be much smaller. In the example with the file timeout, it would be between 5 and 6 minutes if the janitor is run at a one-minute interval.
Note that the more frequent the janitor is run, the more frequent the system needs to wakeup from potential low power state. This is no issue for data center machines (which usually always run at full speed), but it may be an issue for power-constrained environments like notebooks. For such systems, a higher janitor interval may make sense.
As a special case, sending a HUP signal to rsyslog also activate the janitor process. This can lead to too-frequent wakeups of janitor-related services. However, we don't expect this to cause any issues. If it does, it could be solved by creating a separate thread for the janitor. But as this takes up some system resources and is not not considered useful, we have not implemented it that way. If the HUP/janitor interaction causes problems, let the rsyslog team know and we can change the implementation.
See also
Help with configuring/using Rsyslog:
 - Mailing list - best route for general questions
 - GitHub: rsyslog source project - detailed questions, reporting issues that are believed to be bugs with Rsyslog
 - Stack Exchange (View, Ask) - experimental support from rsyslog community
See also
Contributing to Rsyslog:
© 2008-2019, Rainer Gerhards and Others. This site uses the "better" theme for Sphinx.


text:
FORECASTS OF AIRCRAFT ACTIVITY BY ALTITUDE, WORLD REGION, AND AIRCRAFT TYPE
The level of international air traffic on a world-wide basis is analyzed for the base year of 1975 and forecast for the years of 1980, 1985, and 1990. An econometric model is used to forecast flight activity using regional economic and population data and data on fuel prices and other aircraft operating costs. Other models transform these forecasts into estimates of aircraft flight hours at various altitudes over areas of the globe. A special model was devised which probabilistically assigns flight-hour activity to specific aircraft types in future years as fleet composition changes. The evidence illustrates the prominence of U.S., European, and U.S.-European traffic in total activity. It also indicated the gradual transition to wide-body aircraft and the gradual phasing out of four-engine, narrow-body transports. (Author)
- See also Rept. no. FAA-RD-76-15 dated Apr 76, AD-A027 880.
Stanford Research Institute333 Ravenswood Avenue
Menlo Park, CA United States 94025
- Pozdena, R J
- Publication Date: 1976-11
- Pagination: 130 p.
- TRT Terms: Aeronautics; Air pollution; Air traffic; Air transportation; Altitude; Areas; Civil aviation; Databases; Econometrics; Flight paths; Forecasting; International; International trade; Mathematical models; Military organizations; Operating costs; Passenger aircraft; Routing; Scheduling; Wide body aircraft
- Uncontrolled Terms: Military applications; Models
- Old TRIS Terms: Air traffic forecasts; Geographic areas
- Subject Areas: Aviation; Economics; Planning and Forecasting;
- Accession Number: 00158550
- Record Type: Publication
- Source Agency: National Technical Information Service
- Report/Paper Numbers: FAA-AVP-76-18 Final Rpt.
- Contract Numbers: DOT-FA75WA-3574
- Files: TRIS
- Created Date: Aug 31 1978 12:00AM


How do diffusion-based generative models work?
Thu, Nov 2023
Bard AI
Diffusion-based generative models (DBMs) are a type of generative model that can be used to learn the distribution of data. They work by iteratively applying a diffusion process to a latent representation of the data, starting from a random point and gradually moving towards the data. This process can be thought of as a kind of "smoothing" of the data, which helps to capture the underlying distribution.
DBMs are typically trained using a variational autoencoder (VAE) approach. This involves first learning a generative model for the data, and then using the generative model to learn the parameters of the DBM. The generative model is typically a deep neural network, and the parameters of the DBM are a set of weights that control the diffusion process.
Once the DBM has been trained, it can be used to generate new data by starting from a random point and applying the diffusion process. The generated data will be similar to the training data, but it will not be exactly the same. This is because the diffusion process introduces some noise into the data, which helps to prevent overfitting.
DBMs have been shown to be effective for a variety of tasks, including image generation, text generation, and speech generation. They are particularly well-suited for tasks where the data is high-dimensional and complex.
Here is a more detailed explanation of how DBMs work:
 1. A latent representation of the data is first learned using a VAE. This latent representation is a high-dimensional vector that captures the essential features of the data.
 2. The parameters of the DBM are then learned using the latent representation. This is done by iteratively applying the diffusion process to the latent representation, starting from a random point and gradually moving towards the data.
 3. Once the DBM has been trained, it can be used to generate new data by starting from a random point and applying the diffusion process. The generated data will be similar to the training data, but it will not be exactly the same. This is because the diffusion process introduces some noise into the data, which helps to prevent overfitting.
DBMs are a powerful tool for learning the distribution of data. They are particularly well-suited for tasks where the data is high-dimensional and complex.
ChatGPT 4
Diffusion-based generative models are a type of generative model that uses the concept of diffusion processes to generate new data samples. The basic idea is to start with a simple distribution, such as a Gaussian, and then gradually transform it into a complex distribution that represents the data. The process begins by training a model on the data set. This model learns to predict the next state in a Markov chain, which starts from the data and ends at some simple noise distribution. The Markov chain is defined by a diffusion process, which is essentially a series of small random steps. Each step in the chain corresponds to adding a small amount of noise to the current state. Once this model is trained, it can be used in reverse to generate new samples. Starting from noise sampled from the simple distribution, we iteratively apply the reverse of the learned transition operator until we reach something that looks like our data. The key advantage of diffusion-based generative models is that they can capture complex dependencies in high-dimensional data distributions without requiring explicit density modeling or adversarial training. They have been successfully applied in various domains including image synthesis and molecular design. However, one downside is that generating new samples can be computationally expensive because it requires running many steps of the Markov chain. This makes them less suitable for applications where fast sampling is required. In summary, diffusion-based generative models work by learning how to gradually transform simple noise into complex data through a series of small random steps. This allows them to capture intricate patterns in high-dimensional datasets without needing explicit density modeling or adversarial training techniques.
Add Your Answer :
Most Recent Questions:


Take the 2-minute tour ×
My question is simple:
What tactics are used with PostgreSQL based applications to avoid the user ever being presented with a DB generated error caused by constraints and foreign keys etc.?
The rationale for this question is:
It is common practise within all DBs I've worked with to trap at least some user errors. Generally you try to make sure the application guides the users away from error but no matter how idiot proof you make something, someone will always make a better idiot. As a result you always need to encode constraints such as unique constraints and foreign key constraints to ensure that a brilliantly foolish individual does not corrupt your data.
These need to be DB constraints and not application logic because frequently they involve race conditions (only the DB can correctly keep something unique or enforce foreign keys etc).
For modern software it no longer acceptable to present a user with a message such as: ERROR: duplicate key value violates unique constraint "test_x_key". Just the word "error" makes some users phone tech support to tell them the application has broken. Users expect to be talked to as people not as a computer. And well they should... computers the servants of people; not the other way around.
The problem is, I have never found a good solution to reliably catch a DB error resulting from a constraint and trace it's precise origin in order to a) have the application take appropriate action such as correcting the error automatically and retrying or b) presenting the user with a meaningful error message written by the application designer not the makers of PostgreSQL.
I have thought of parsing the resulting human readable error message which usually available in some form or other depending on which language you're working in. My concern over this answer is that I don't see the error messages specified in the manual and so I'm not certain how reliable they are from one version of PostgreSQL to the next.
I'm interested to know: What techniques do people use to identify which DB constraint caused a DML statement to fail or what techniques do people use to avoid hitting these constraints entirely.
share|improve this question
add comment
closed as too broad by Juhana, Charles, Dimitri M, Harry Johnston, Chris Mar 3 at 7:08
2 Answers
When you catch the error, extract the constraint name from the exception/error message and use the constraint name as a key to a resource bundle that maps the name to a human readable message
Given the table:
create table foo
 id integer constraint pk_foo primary key,
 some_value integer
create a resource bundle (or whatever technique you use in your programming language) with this content:
pk_foo=This record already exists in the database
For FK constraints you can have something like:
fk_foo_bar=There is no corresponding "bar" record available.
These messages can then even be localized.
To supply "generic" error messages, you should rely on the error code and not on the message. The error codes are described in the manual
share|improve this answer
Could you elaborate a little on the reliability of error messages. You suggest that parsing them is acceptable. What is the scope for them changing from one version to the next and thus messing up the "extraction" of the constraint name? – couling Jan 6 '13 at 23:14
_USER_: although there is a chance they will change, I doubt that existing message will change substantially. I would however make sure that the language is always set to english, so that you don't need to worry about that. – a_horse_with_no_name Jan 7 '13 at 8:02
add comment
Another possibility (although I can't comment on whether it's a good solution) is to create your own set of translated messages.
See Native Language Support for a description of how message catalogs are written for PostgreSQL. Many of the message strings are parameterized so you may find that the information that you plan to parse out of the error message is already treated as a parameter anyway.
share|improve this answer
This is exactly what we do with LedgerSMB. One note I would make is that the best way to do this is to translate the SQL State code to a human readable message, not the db error string. – Chris Travers Mar 4 '13 at 11:55
add comment


text:
m, also known as Monarda, is a beautiful perennial flower that is a favorite of gardeners and pollinators alike. However, when it comes to winterizing bee balm, many gardeners are unsure of what to do. While there are no specific products that are necessary for winterizing bee balm, there are a few steps you can take to ensure your plants survive the winter and come back strong in the spring.
Step-by-Step Guide for Preparing Bee Balm for Winter
- Cut back the stems - Once the flowering season is complete, it is time to cut back the stems of the bee balm. Cut the stems back to a height of about 2-3 inches from the ground. This will prevent the plant from producing new growth, which can be damaged by frost.
- Clean up the garden bed - Remove any plant debris from the garden bed, including dead leaves and stalks. This will help prevent the spread of diseases and pests.
- Mulch the garden bed - Apply a layer of mulch over the garden bed to protect the roots of the bee balm. Mulch will help to regulate the soil temperature and keep the soil moist during the winter.
- Fertilize the soil - Applying a slow-release fertilizer to the soil in the fall will provide the plant with nutrients it needs to survive during the winter. The fertilizer will break down slowly over time, providing a steady source of nutrients to the plant.
- Cover the plants - Covering the bee balm with a sheet of burlap or row cover will provide additional protection during the winter. These covers will help to trap heat and moisture around the plants, keeping them protected from harsh winter weather.
Examples of Products That Can Help Winterize Bee Balm
- Compost - Adding compost to the soil in the fall will improve the soil structure and fertility, providing the bee balm with the nutrients it needs to survive the winter.
- Slow-release fertilizer - Applying a slow-release fertilizer to the soil in the fall will provide the plant with nutrients it needs to survive during the winter. The fertilizer will break down slowly over time, providing a steady source of nutrients to the plant.
- Mulch - Applying a layer of mulch over the garden bed will protect the roots of the bee balm. Mulch will help to regulate the soil temperature and keep the soil moist during the winter.
In conclusion, winterizing bee balm is an important step in ensuring that the plant survives the winter and comes back strong in the spring. While there are no specific products that are necessary for winterizing bee balm, following the steps outlined above and using products such as compost, fertilizer, and mulch can help to provide the plant with the nutrients and protection it needs to survive the winter.
You may want to see also
Are there any risks associated with winterizing bee balm, and how can you avoid them?
Bee balm is a beautiful flowering plant that is commonly grown in North America for its fragrant blooms and medicinal properties. However, as fall approaches and winter looms, bee balm growers face the important task of winterizing their plants to ensure their survival during the harsh winter months. While this process is relatively simple, there are a few risks involved that could potentially harm your bee balm if not addressed properly. In this article, we'll take a closer look at these risks and provide you with some tips to help you avoid them, so you can keep your bee balm looking and feeling healthy all winter long.
Risk 1: Frost-bite. One of the first risks associated with winterizing bee balm is frost-bite damage. Frost-bite can occur when the temperature drops below freezing, causing ice crystals to form on the leaves and stems of the plant. These ice crystals can damage the cellular structure of the plant, resulting in wilted, discolored leaves, and sometimes, death. To avoid frost-bite damage, it's important to cover your bee balm with a blanket or mesh cloth before the first frost. This will help to insulate the plant and prevent any ice crystals from forming on the leaves and stems.
Risk 2: Root rot. Another risk involved in winterizing bee balm is root rot. Root rot occurs when the soil around the roots of the plant becomes too moist, leading to the growth of harmful bacteria and fungi. This can cause the roots to rot, which in turn can cause the entire plant to die. To avoid root rot, it's important to make sure the soil around the roots of your bee balm is well-drained. You can achieve this by adding a layer of mulch around the base of the plant, which will help to absorb excess moisture and promote healthy root growth.
Risk 3: Pests. The final risk associated with winterizing bee balm is pest infestation. Pests such as aphids, spider mites, and whiteflies are notorious for attacking stressed plants, and bee balm is no exception. To avoid pest infestation during the winter months, it's important to keep an eye on your bee balm for signs of insect activity. If you notice any bugs, use an insecticidal soap or oil spray to eliminate the infestation. You can also use natural predators such as ladybugs or lacewings to help control the infestation.
In conclusion, there are a few risks associated with winterizing bee balm, but with a little bit of care and attention, you can easily avoid them. By covering your plants with a blanket or mesh cloth, promoting healthy root growth, and keeping an eye out for pest activity, you can ensure that your bee balm stays healthy and vibrant all winter long. With these tips in mind, you can enjoy the benefits of this beautiful flowering plant year after year.
You may want to see also
Frequently asked questions
Bee balm should be watered only when its soil dries out during winterization.
Bee balm should be winterized in late fall or early winter, after the first frost or freeze.
Yes, the stems of bee balm should be removed down to about 3 inches above the ground during winterization to protect the plant from harsh winter weather.


text:
We thought you might find this article about New York artist Eve Mosher's work interesting. In 2007, she used art to illustrate the potential high water mark for a 100-year flood in New York City. Images from Hurricane Sandy last October show the reality of the flooding that occurred in some of the same places Eve had marked.
Here in Portland, we're working to protect and reconnect natural floodplains as important natural resources and to protect homes and businesses from flooding during some storm events. Environmental Services' East Lents project to restore part of the Johnson Creek floodplain is nearly complete—watch for the 150,000 newly planted native shrubs and trees to really take off this spring. And, last month we announced the exciting purchase of 54 acres of natural area in the Columbia Slough watershed. This property, with sensitive wetlands that store and filter rain water, is a rare remnant of the Columbia River's historic floodplain.
Aerial photo of the January 2009 Johnson Creek flood after a fresh snowfall.
The approx. 70 acre East Lents project area is circled in red.


text:
Activity indicators and progress indicators
Activity indicators and progress indicators show users that their BlackBerry devices are performing an action, such as searching for items or removing languages.
Use an activity indicator if you want to show that the BlackBerry device is working and you cannot determine the duration of the action. You can add an activity indicator to any component, such as a screen, text field, or list item. You can also add text to an activity indicator to describe the action.
Use a progress indicator if you can determine the duration of an action. Progress indicators include a label to indicate what the action is and a horizontal bar that fills from left to right as the action progresses. A percentage appears in the bar to indicate how much of the action is complete.
Best practice: Implementing activity indicators and progress indicators
- Always indicate progress when an action takes more than 2 seconds to complete.
- Use a progress indicator when you can determine the duration of an action.
- Use an activity indicator when you cannot determine the duration of an action.
- Provide useful progress information. For example, if users are downloading an application to their device, indicate the percentage of data that their BlackBerry device has downloaded. Be as accurate as possible with the progress information.
- Always allow users to use the End key to hide a progress indicator.
Guidelines for text
- Use a concise, descriptive text (for example, "Loading data" or "Building an application list").
- If an action is long and you want to communicate what is happening at each stage, provide text that describes each stage (for example, "Downloading" or "Installing").
- Use sentence case capitalization.


+_PHONE_
Cargo container ships are the largest ships in the shipping industry, and their size is about to get even larger. With the completion of the $5.25 billion Panama Canal Expansion project in 2016, it made way for New Panamax ships with are almost two times larger than the prior Post-Panamax Plus container ships. As a result of this expansion, more shipping ports around the United States and the world need to be dredged, and bridges raised to accommodate these 18,000 TEU vessels to remain competitive ports.
How Much Cargo Can the Largest Shipping Container Ship Really Hold?
The largest shipping container ship is the Ultra Large Container Ship, or ULCV, introduced in 2013 as the "Triple-E" style ship, used by the Maersk line and manufactured by Daewoo Shipbuilding & Marine Engineering in South Korea. Triple-E stands for "economy of scale, energy efficiency, and environmentally-approved." These ULCVs are currently the largest mega vessels on earth, and the most fuel-efficient.
These mega vessels are 23-container widths across and can stack 10 containers high on the top deck, and 8 containers high below deck. They have 24 bays and are measured in 18,000-21,000 20-foot equivalents or TEUs. The TEUs are equal to the number of containers the ships can carry. The Triple-E can carry between 18,000-21,000 containers or up to 165,000 tons.
Will Container Ships Keep Growing in Size Forever?
With the growing demand for goods across the world from major export countries such as China, the United States, Germany, Japan, and Hong Kong, the need for larger container ships to carry more in one trip will continue to grow as well. There are designs in the works for a "Malacca Max" class, which would be the largest container ships ever constructed. These would have a shipping capacity of 27,000-30,000 TEUs.
How Many Containers Fit on a Container Ship?
Depending on the size of the container ship, most cargo vessels hold anywhere between 10,000 TEU to 21,000 TEUs. Since containers are measured in TEUs, the TEU capacity indicates exactly how many containers can be placed on the deck and below the deck of the ship.
The Benefits of Using Bigger or Smaller Container Ships
While larger container ships sound like a better option for long distances, this is not always the case. Large vessels create bottlenecks in shipping ports and places like the Panama Canal, which can slow down the shipping trade route even further.
Exporters in Asia and Europe often find that smaller vessels, around 12,000-14,000 TEUs, offer versatility that larger ships don't have. However, larger container ships offer better fuel economy than smaller ships. Smaller ships tend to output more harmful carbon gas emissions into the atmosphere, which is a concern for the impacts on global climate change. In an era where shipping companies want to be viewed as eco-friendly, erring on the side of larger ships may actually be a better choice.
Liner Companies Face Rising Cost to Charter Container Ships
Rent is a problematic factor in the rising costs of liner companies' rental of container ships. Between July 2018 and 2019, the costs of chartering rose over 20%. Many companies own half of their fleet and charter out the other half, which makes rental costs a significant expense for many liner companies.
Big Ocean Ships Equal Big Problems but Small Benefits
While it may seem that the more cargo that can be loaded onto a carrier, the cheaper the cost of shipping will be, in reality, the port costs for these ships are much higher which does not reduce the price. Additionally, larger ships are limited to certain ports that can accommodate them and can create bottlenecks and ship lines that extend shipping time.
Why Cargo Ships Might (Literally) Sail the High Seas Again
Because of the concern for pollution and carbon emissions from traditional carbon fuel-powered ships, the International Windship Association is pushing for projects to develop sailing cargo ships. Other groups, such as the Smart Green Shipping Alliance believe lower emissions can be achieved with a combination of clean fuel sources and wind sailing technology.
How Much Bigger Can Container Ships Get?
Container ships could get as big as 30,000 TEUs in the near future, but shipping ports and waterways will have to be adjusted to accommodate these monstrous vessels, which will take many years. Infrastructure, from bridges to waterways to adjoining properties will all need to be adjusted. For instance, the current size of the Suez Canal maxes out at 22,000 TEUs.
What Should Be Done to Prevent Fires on Container Ships?
Fires aboard a container ship are frightening, and crews are at risk. The German Insurance Association made several proposals they believe can help reduce the risk of fires on board container ships. These include:
 - Building compartments below-deck so the fire cannot spread
 - Install thermal systems and infrared cameras
 - Install a firefighting system that is water-based and will trigger when a fire is detected
 - Install water curtains for above-deck containers to cool and contain a fire
Five Fast Facts about Maritime Cargo
Here are some important facts you should know about the maritime cargo industry:
 - Los Angeles received the largest amount of TEUs in 2017, bringing in 16 million containers into port.
 - Around 99% of goods are transported by sea, with about 70% of those goods housed in containers.
 - Shipping across the sea is the safest form of cargo transport.
 - Women are a minority in the shipping industry, making up only 2% of the 1.5 million seafarers employed.
 - Shipping and port industries constitute 26% of the U.S. GDP, or around $5.4 trillion.
Final Thoughts
Shipping containers are already quite large, but with more demand for goods across the world, the sizes of ships, ports, rivers, and canals will need to expand. At Asiana USA, we can help you get your goods from point A to point B at the best cost. Contact us today at _PHONE_.
Call Now Button


text:
Scrambled Eggs Beef and Cheese.
You can cook Scrambled Eggs Beef and Cheese using 8 ingredients and 4 steps. Here is how you cook it.
Ingredients of Scrambled Eggs Beef and Cheese
- It's 1/2 cup of dried beef.
- Prepare 1 cup of tomatoes.
- Prepare 1/4 cup of grated cheese.
- Prepare 2 tablespoons of butter.
- Prepare of Paprika.
- It's 3 of eggs.
- It's of Black pepper.
- You need of Few grains red pepper.
Scrambled Eggs Beef and Cheese step by step
- Chop beef heat over hot water.
- Heat tomatoes add cheese butter seasoning well beaten eggs and later beef.
- Cook until eggs are creamy but not dry.
- Serve on hot buttered toast.


text:
The right turn to ease traffic headaches?
VicRoads is investigating a radical proposal to redesign some of Melbourne's busiest, most congested intersections to reduce right-turn logjams.
ABOUT 16,000 vehicles will pass through the intersection of Ferntree Gully Road and Stud Road in Melbourne's east in this evening's peak. Behind the wheel of many of them will be a frustrated driver, cursing the heavy traffic.
Perhaps complaining the loudest will be those people turning right into Stud Road as they commute home from the city, for it will take them between three and five minutes, and two or three phases of the lights, to pass through the intersection.
Right-hand turns are one of the major sources of conflict and delay on our roads, and VicRoads is investigating a radical proposal to redesign some of Melbourne's busiest, most congested intersections to reduce right-turn logjams by between 50 and 90 per cent.
The proposed model - called the continuous-flow intersection - originated in Mexico and has recently been introduced with great success in Utah, reducing travel times and slashing the number of accidents on one of Salt Lake City's most heavily congested highways.
At standard intersections, through traffic must either wait at the lights while right-turning traffic gets a turning phase, which creates delay, or right-turning traffic must turn into oncoming traffic, which increases the risk of accidents.
Continuous-flow intersections cut out both these problems by giving right-hand traffic a dedicated lane on the far right-hand side of the road, which traffic enters a short way before the intersection by driving across the oncoming lanes. This way, left and right-turning traffic is free to move through the intersection at the same time as through traffic.
VicRoads is considering building one continous-flow intersection on a major arterial in Melbourne as a trial, but has not yet settled on a location.
''Could we do this? Yes, we could,'' said Dean Zabrieszach, VicRoads' director of road user services.
''We have a handful of designs for Melbourne intersections where the space is already there and there would be no need to use additional land.''
Both the RACV and Labor's roads spokesman, Luke Donnellan, support a trial.
''You'd try it on one of the major intersections first, get the figures and then go on and look at others because it's an incredibly cheaper way of addressing these issues,'' Mr Donnellan said.
The investigation has been led by veteran traffic engineer John Cleeland, 72, who began working for VicRoads in the early 1960s but is due to leave the organisation this week, his position having been made redundant under the Baillieu government's public sector job cuts.
His research into continuous-flow intersections has found they could improve traffic flow by between 50 and 90 per cent at some of Melbourne's busiest junctions. A computer simulation of the intersection of Ferntree Gully Road and Stud Road, for example, found traffic would flow 54 per cent better in the morning and 49 per cent better in the evening, crucially without any need to widen the road.
In the US, it has also been found the intersections reduce the risk of accidents. In Salt Lake City, where a string of seven continuous-flow intersections have been built along the Bangerter Highway, the number of crashes has dropped 51 per cent, Utah's Department of Transportation says.
Mr Cleeland said a string of these intersections could be built along Hoddle Street and Punt Road, Melbourne's most infamously congested north-south arterial.
''My calculation for the intersection of Hoddle Street and Victoria Street is, you could get 70 per cent better flow in the am peak and 90 per cent in the pm,'' he said.
But the RACV's head of public policy, Brian Negus, who has investigated digging a $1.2 billion tunnel along Hoddle Street, said building continuous-flow intersections there would require widening the road and buying some private properties.


Chris Chris - 1 year ago 82
Javascript Question
How to group and transform dictionary array on a certain key attribute to a different format with javascript (functional programming)?
I'd like to transform the below dataset array into a different format. Currently, each dictionary in the array has a 'count', 'fruit', and 'first name'. I'd like to create a new dictionary for each distinct first name and values that first name has for each 'fruit' type.
For example, see below for some input data
var input_data = [{"count":1,"fruit":"apple","first_name":"abe"},{"count":1,"fruit":"apple","first_name":"bob"},{"count":10,"fruit":"banana","first_name":"bob"},{"count":5,"fruit":"cherry","first_name":"abe"}]
We know for this dataset that the categories are ['apple', 'banana', 'cherry']
var desired_output =
[{name: 'abe',data:[1,0,5]},
{name: 'bob',data:[1,10,0]}]
Answer Source
You could use a hash table for the name reference and an object for the rigth index for counting.
var input_data = [{"count":1,"fruit":"apple","first_name":"abe"},{"count":1,"fruit":"apple","first_name":"bob"},{"count":10,"fruit":"banana","first_name":"bob"},{"count":5,"fruit":"cherry","first_name":"abe"}],
 categories = ['apple', 'banana', 'cherry'],
 cat = {},
 result = [];
categories.forEach(function (a, i) { cat[a] = i; });
input_data.forEach(function (a) {
 if (!this[a.first_name]) {
 this[a.first_name] = { name: a.first_name, data: categories.map(function () { return 0; }) };
 result.push(this[a.first_name]);
 }
 this[a.first_name].data[cat[a.fruit]] += a.count;
}, Object.create(null));
console.log(result);
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download


Should You Cover a Dog Crate?
Should You Cover a Dog Crate?
Image Credit: lempelziv/iStock/GettyImages
If you're crate training your dog or puppy using a wire crate, cover it with a lightweight sheet, cloth, towel, blanket or purchased crate cover. Covering a crate can contribute to a cozy and private environment that's similar to dog dens. It can be especially helpful at night when your pooch needs to wind down and go to sleep.
Privacy and Silence
Covering a crate not only can be beneficial for giving a dog privacy and a sense of security, but it can be beneficial for encouraging overall silence and peace. If you cover your pet's crate, it can reduce the sounds of the typical disruptions of your household -- think your television, music playing, people walking around and phone calls, for example. Cover the back sections, sides and tops of your dog's crate to provide him with a quiet and relaxing environment. Cover the crate loosely to allow your pet to look out from it easily, too.
Covering often can be helpful for soothing dogs and puppies who are crying inside their crates.
Material Pulling
It isn't uncommon for dogs and puppies to feel nervous and uneasy inside their crates. These feelings sometimes cause them to tug on the materials covering their crates. If they successfully drag the material into their crates, they can chew on or eat them, which can lead to serious health emergencies that may require surgery. Prevent your dog from being able to do this by folding the sides of the blanket, cloth, towel or sheet underneath the crate.
Crate Covering and Car Trips
Crate covering can come in handy for a reason that's totally unrelated to privacy and rest. If you're taking your dog on a trip in the car, covering his crate can be a great idea. Dogs often become frustrated when they're in vehicles. This frustration is often a combination of all of the things they spot zipping by through the windows and the movement of the car in general. Covering your pet's crate may decrease his stress by calming him and taking the nonstop, overwhelming stimuli out of the equation. Beyond that, crating dogs in cars is important for safety considerations.
Ready-Made Crate Covers
If you don't have an old towel, blanket or sheet available to cover your dog's crate, never fear. Many pet supplies stores sell ready-made crate covers that are designed to give dogs much-needed privacy and relaxation. Since these covers are form-fitting and hug crates snugly, you don't have to worry about restless dogs pulling them off. They're much easier to keep in place.
Crate covering is not suitable in all situations. It isn't always suitable for dogs who have thick and heavy coats, for example, particularly during the warm or hot spring and summer months. You don't want to keep your pet in an environment that's overly hot and therefore uncomfortable. When you cover your dog's crate, it's vital to make certain he has ample airflow, too.


text: This is a study of the Protestant utopian movement that began in Germany, inspired in large measure by the writings of Johann Valentin Andreae and came to England through the efforts of the emigre Samuel Hartlib. The first chapters examine Andreae's utopian writings, including the Rosicrucian manifestos, as part of his lifelong commitment to found a Societas Christiana, a spiritual elite that would improve religious and intellectual life. His writings sparked a transnational movement in early modern Europe. The most significant of the German learned societies are discussed: The Societas Ereunetica, Unio Christiana and Antilia. The latter chapters consider Hartlib's English circles and various utopian and learned societies in the 1650s. The text seeks to contribute to the understanding of the role that "secret" societies and epistolary networks had in the republic of letters.


text:
Strong, well-written contracts are important for influencers to protect their rights and establish the terms of their collaborations. Specific contract provisions may vary depending on each influencer's work, but there are some key provisions that are important to be aware of. In this blog, we will discuss the most important contract provisions that influencers should pay attention to and include in their contracts.
- Scope of work: A provision outlining the scope of the influencer's services, specifically the type and frequency of the content to be created, platforms to be used, and milestones or deliverables, is important so that influencers know the boundaries of their content and what is expected of them.
- Compensation and payment: The compensation provision is a key provision for influencers to be aware of because it lays out the terms for how they will be paid. This provision should state whether the influencer will be paid a flat fee, commission, or combination of the two, the payment date, method of payment, and any interest or late payment penalties. Influencers should always include this provision in their contracts to ensure they will get paid for their work.
- Exclusivity and conflicts of interest: This provision discusses whether the influencer must only work exclusively with the brand in the contract for the duration of the agreement, or if the influencer can still work with other brands. Any restrictions on collaborations with competitors or similar brands should be noted here. Influencers are smart to include this provision in their contracts to avoid potential disagreements and understand the limits on what they can and cannot do.
- Intellectual property rights: This provision protects the influencer's content by defining who owns the created content and who has the right to use it, including repurposing, modifying, or licensing content. Influencers should keep an eye out for these provisions to ensure they do not unknowingly sign away their rights to their content.
- Term and termination: The duration of the contract should be specified to avoid any misunderstandings arising later and ensure the influencer knows how long these rights and responsibilities last. Additionally, any grounds for termination, notice periods, or process for termination by either party should be specified.
- Confidentiality and non-disclosure: A provision protecting confidential information shared between the influencer and the brand is important to protect the influencer's sensitive data. When implementing this provision into your contract, it is wise to define how long the confidentiality obligations last.
- Disclosure and compliance: Influencers must be careful to comply with laws and regulations, including disclosing sponsored content, following FTC guidelines, and honoring copyright and trademark laws. These provisions are important for influencers to understand their responsibilities under the contract.
- Indemnification and liability: This provision establishes which party will be held accountable for any claims, damages, or losses arising from the collaboration.
- Dispute resolution: By choosing a preferred method of resolving potential disputes, the parties can establish a fair approach to resolving possible future conflicts. In your contract, you can specify a preference for arbitration, mediation, or negotiation, and the jurisdiction or governing law to be applied.
Contact Venustas Law to review and/or negotiate your contracts!


text:
Western wins grant for endangered species breeding study
The National Leadership grant, from the Institute of Museum and Library Services, will allow a team at the school to study how genetics can be used to maximize diversity and robustness in breeding endangered species. The study will focus on snow leopards, but researchers believe the findings could be applied to other endangered species in the future.
The research team at Western University will collect DNA samples from snow leopards and form a draft of its genome, which will be used to identify specific genes associated with immune function.
Oregon State University, the Great Plains Zoo & Delbridge Museum of Natural History and the Snow Leopard Species Survival Plan also will be involved in the study.


text:
A new research program launched by the FINRA Foundation and the Center for Economic and Social Research (CESR) has shown that repeated exposure to fraud awareness education can lower a person's susceptibility to investment fraud.
The study "Can Educational Interventions Reduce Susceptibility to Financial Fraud?", which was focused on adults in the United States, showed that fraud awareness education can make a person more likely to recognize investment frauds.
The new findings were announced in a FINRA press release in March, 2021.
Repeated exposure might be the key
"These findings underscore the need for repeated exposure to educational resources that enable individuals to make informed choices and help them to recognize, avoid and report financial fraud," says Gerri Walsh, President of the FINRA Foundation. "Practitioners working in this space have been forced to rely on anecdotal evidence when justifying their efforts because until now, very little published research has examined whether educational interventions can meaningfully reduce individuals' susceptibility to financial fraud, whether they discourage investing in general, and whether any positive effects might persist over time."
Is online education the answer?
The study indicates that more online education might be a feasible way of reducing consumers' likelihood of being the victims of investment fraud.
"Our research suggests that short, easily scalable online education programs can meaningfully reduce adults' susceptibility to investment fraud—and that these effects can persist with repeated exposure," says CESR researcher Jeremy Burke.
Does scam awareness make people less interested in investing?
Does awareness of frauds and scams make a person less willing to invest in anything, even in legitimate investment opportunities?
The answer from this study is no, as the project found no evidence that the interventions reduced consumers' interest in investing in legitimate investment opportunities.
A study on 2,000 adults
The study was comprised of 2,000 adults in the United States. The individuals were drawn from the Understanding America Study – a nationally representative survey panel.
The three groups
Each of the 2,000 individuals was randomly assigned to one of three groups.
- The video group
Individuals in the video group were provided with a 3-minute long educational video about five techniques often present in investment frauds.
- The text group
Individuals in the text group was provided with reading materials about techniques often present in investment frauds. This was the same information as in the video, but in a concise text format.
- The control group
Individuals in the control group received no educational materials.
Researchers measured fraud susceptibility in the three groups immediately after the educational intervention (or for the control group: lack of intervention) and then again six months later.
The testing was carried out using investment pitches drawn from real-world investment offers. Legitimate offers were mixed with fraudulent offers.
A second educational intervention
Some of the members of the video group and the text group received a second educational intervention three months after the first one. This was to see if repeated exposure to educational material would have any impact.
Notable findings from the study
- The educational interventions had an immediate positive impact. This was true for both video intervention and text intervention. Both groups displayed a significantly lower willingness to invest in fraudulent offers compared to the control group.
- The impact of the first educational intervention decayed over time.
- Individuals who received a secondary intervention three months after the first one were less likely to invest in fraudulent opportunities at the six-month mark compared to the control group. (Those who received the secondary intervention were 10% less likely to go for the fraudulent opportunities compared to the control group.)
- The educational interventions did not impact the individuals' willingness to invest in legitimate investment offers at the six-month mark.
Cognitive ability and financial literacy are important to benefit from educational intervention
In the study, an individual's cognitive ability and financial literacy was shown to be very important for their ability to benefit from educational interventions.
- Individuals with higher cognitive ability and higher financial literacy disproportionately benefited from the educational interventions.
- Researchers did not see any effect of the interventions for those with low cognitive ability or low financial literacy.
This last point is of course very interesting and also concerning since it highlights how these types of educational interventions (video or text) might not be able to reach individuals in an impactful way when cognitive abilities and/or financial literacy levels are low.
Fraud is more compelling than honest investment opportunities
Another very interesting finding from this study was that despite the effectiveness of the interventions, study participants were still more willing to invest in fraudulent opportunities than legitimate ones. This was true across all treatment conditions. This is likely due to the fact that financial frauds often promise higher returns than honest business opportunities. A contributor factor is that financial frauds often are based on complicated financial instruments. It can, as an example, be very hard to differentiate a fraudulent and an honest forex instrument without knowing extensive knowledge of the forex trading industry.
About Center for Economic and Social Research (CESR)
CESR is a center within the University of Southern California's Dana and David Dornsife School of Letters, Arts and Sciences.
The Financial Industry Regulatory Authority (FINRA) is a private United States corporation that acts as a self-regulatory organization for member brokerage firms and exchange markets. It is the largest independent regulator for all securities firms doing business in the United States.


text:
What is winter like in Holland Michigan?
Climate and Average Weather Year Round in Holland Michigan, United States. In Holland, the summers are warm and partly cloudy and the winters are freezing, snowy, windy, and mostly cloudy. Over the course of the year, the temperature typically varies from 20°F to 81°F and is rarely below 6°F or above 89°F.
What month does it snow the most in Michigan?
The month with the most snow in Michigan Center is February, with an average snowfall of 5.7 inches. The snowless period of the year lasts for 7.1 months, from April 10 to November 15. The least snow falls around July 20, with an average total accumulation of 0.0 inches.
What is the most snowfall in Michigan?
The small Upper Peninsula town of Calumet is the snowiest place in Michigan with a yearly average of 187.4 inches and a record total of 390.4 inches set during the winter of 1978-79. Michigan has seen its share of big snowstorms.
How many months does it snow in Michigan?
Detroit's first snowfall of winter usually arrives in November. About one in five years also receive a light snowfall in October. The season's last snowfall typically happens in April, although at least one in four Aprils receive no fresh snow. Detroit is normally free of snow every year from May to September.
How hot does it get in Holland Michigan?
Holland enjoys distinct seasons and a variety of temperatures and precipitation rates throughout the year. Average temperatures range from around 25 degrees in the winter months to mid-80's in the summer (we can have a handful of days of temperatures below zero and above 90 degrees).
What is it like to live in Holland Michigan?
Holland is in Allegan County and is one of the best places to live in Michigan. Living in Holland offers residents a dense suburban feel and most residents own their homes. In Holland there are a lot of parks. Many families and young professionals live in Holland and residents tend to lean conservative.
What part of Michigan gets the least amount of snow?
In the Saginaw Valley and eastern Michigan, the Saginaw/Bay City area is slimmest on snowfall. The Saginaw/Bay City area has recorded just 1.9 inches of snow, which is almost seven inches below normal to date.
What is the warmest place in Michigan?
Warmest: Benton Harbor, Michigan
Benton Harbor, located in the southwest part of the Michigan on the shore of Lake Michigan, is the warmest city in the state. Its average high is 60 degrees.
What is the sunniest city in Michigan?
Grand Rapids is the only city in Michigan with an official sunshine measuring device.
What city gets the most snow in Michigan?
Michigan Average Snow City Rank
|Rank||Average Snow ▼||City / Population|
|1.||179.98 inches||Dodgeville, MI|
|2.||170.30 inches||Dollar Bay, MI / 896|
|3.||166.64 inches||Lake Linden, MI / 1,108|
|4.||166.46 inches||Hubbell, MI / 1,068|
How bad are winters in Michigan?
Detroit, Michigan, gets about 43 inches of snow each winter, and temperatures usually sit between 20 and 35 degrees Fahrenheit. But its winters are truly tough because of the lack of sunshine. It averages 59 days of heavy cloud every winter.
What was the snowiest winter in Michigan?
The largest snowstorm in metro Detroit history came on April 6, 1886 when 24.5 inches of snow fell. That's followed by 19.3 inches of snow between Dec. 1-2, 1974.
What is the coldest Michigan has ever been?
It was Feb. 9, 1934 when Michigan's all-time coldest recorded temperature of -51°F was recorded 11 miles northeast of town. The National Weather Service in Gaylord notes unofficial colder temperatures have been observed across portions of Western Upper Peninsula, but the -51 degrees is the official record.
Does Michigan get a lot of snow?
Michigan receives an average of 60.66 inches of snow per year. Heavy snowstorms Michigan are very common, especially because of lake effect snow. The eastern shore of Lake Michigan in the Lower Peninsula receives more snow annually than any other part of the state.


Tag Icon
Content Rating
 Reacts to touch! light up eyes communicate how they feel!
 - Update! Pomsies Wave 2 with three additional Pomsies are in stores, now!
 Skyrocket's Pomsies are adorable, interactive, fashionable plush pets for kids to nurture, designed to travel with a child, either wrapped stylishly around a wrist or on a backpack. The pompom-inspired kitties have one mode for social play with friends, and another mode to encourage nurturing. When the Pomsie is happy, sleepy or hungry, it will let a child know by changing its eye color and making cute kitty sounds.
 Pomsies can help a young child develop nurturing skills. When the toy feels cared for over time, it even rewards its owner by developing rainbow-colored eyes.
 Many Pomsies to choose from!


text: The vibration of a circular cylinder due to fluid forces is of interest in various engineering fields. In this study, we investigate an approach to estimate fluid forces acting on a circular cylinder in a flow field based on experimental flow visualizations using a deep neural network (DNN). Specifically, the wake patterns and fluid forces are correlated in a computational fluid dynamics (CFD) simulation, and the forces in the experiment are estimated by comparing experimental and computational wake patterns with DNN. The approach is tested via dye-ink visualization around a circular cylinder at Reynolds number of 560, referring Seyed-Aghazadeh et al. (Physics of Fluids, 2015). First, the CFD simulation of a circular cylinder with forced vibration in the crossflow direction is conducted with various vibration frequencies. Subsequently, the visualized wake images of the resulting flow fields and corresponding fluid forces are used as training data for DNN. In the estimation, the images from the experiment are detected by the CFD-trained DNN. With this, we can also recall the fluid forces correlated by CFD. The average drag coefficient and the peak value of lift coefficient estimated from streaming experimental images have the standard deviations of 2.1 to 13.7% and 6.6 to 18.6%, respectively, depending on the number of training images. The root-mean-square value of the lift coefficient obtained from the present estimation is 0.82, which is similar to the experimental value of 0.8 under the same flow and oscillation conditions.


text:
From scholarships to meeting and networking opportunties, the American Meteorological Society (AMS) can help foster your growing contribution to the weather, water, and climate community.
AMS offers various scholarship and fellowship opportunities for the 2023-2024 academic year to students pursing degrees in the atmospheric and related oceanic and hydrologic sciences.
The National Oceanic and Atmospheric Administration (NOAA) Office of Education is pleased to announce the availability of scholarships for undergraduate students majoring in disciplines related to oceanic and atmospheric science, research, or technology, and supportive of the purposes of NOAA's programs and mission. Over 100 students are selected each year for participation in the Ernest F. Hollings (Hollings) and Educational Partnership Program (EPP) with Minority Serving Institutions (MSI) undergraduate scholarship programs. These scholarships include support for two years of undergraduate study and summer internship opportunities at NOAA facilities across the country.
The AMS Board for Private Sector Meteorologists has designed this mentorship program to create and foster one-on-one personal interactions between mentors employed in the private sector and students interested in working in the private sector.
AMS Student Membership is open to any student, undergraduate or graduate, enrolled at least half-time at an accredited institution of higher learning.
Are you considering a degree in meteorology or are you not sure what career path to pursue, but have a strong interest in weather, water, and climate? Visit our Careers in Meteorology page to find resources on this exciting field.


What does '<:' as a type parameter mean?
julia> Array{<:,2}
Matrix{<:} (alias for Array{<:, 2})
julia> Array{<:,2} === Array{<:Any,2}
false
julia> Matrix{<:} isa UnionAll
false
I wonder if Matrix{<:} means anything?
I think even while === returns false, it's equivalent in use to the expression with <:Any because all types are <: Any and an empty UnionAll can contain any type.
No, this specifies a Matrix with elements of type <:, which can't be instantiated unless you shadow the definition in Base:
julia> struct <: end
julia> f(x::Array{<:,2}) = x
f (generic function with 1 method)
julia> f(fill(<:(), 2, 2))
2×2 Matrix{<:}:
 <:() <:()
 <:() <:()
There are no checks to ensure that the first type parameter of Array actually is a type, so Array{2,3} is also "valid".
3 Likes
To complement @pfitzseb's answer, I think Matrix{<:} is similar to Matrix{sin}: in both cases an existing function is used as type parameter. As the doc says, any isbits value can be used as type parameter, and functions are isbits values.
3 Likes


text:
On the results page, you could create a download form in the results row, you would need a hidden form element and a submit button. Set the value hidden form element to use the fileName column from the results recordset. Then add a Download File Behavior
insert -> Webassist -> File Manipulation -> Download if you have Universal Email 4 or Webassist -> File Manipulation -> Download in Form builder 2
Set the Folder to the folder that contains the files. Set the File field to use the Hidden form element.
Creating a download link on another page would be pretty similar, you just need a way to pass the file name into the download server behavior.


Sign up ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.
In math mode, I'm trying to make a square with a diamond in it. My failed attempt has been to put the following in the preamble:
\newcommand{\sqdiamond}{\mathbin{\rlap{$\mspace{2mu}\diamond$}\hbox{$\square$}}}
However, the diamond symbol is not scaled properly relative to the square. I'd like the corners of the diamond to touch the midpoints of the sides of the square, and I can't figure out how to "scale" the diamond appropriately. Is there another way to do this?
share|improve this question

Related question: Overlay symbol with another – Martin Scharrer Apr 1 '11 at 20:46
3 Answers 3
up vote 7 down vote accepted
It is quit difficult to get the two symbols scaled and align correctly in all four math modes. Better draw it using TikZ. One difficulty is to properly scale the size and line width. This can be best done using amsmath \text macro. I made two versions which are slightly different.
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tikz}
\newcommand{\sqdiamond}{\mathbin{\text{\tikz [x=1ex,y=1ex,line width=.1ex,line join=round] \draw (0,0) rectangle (1,1) (0,.5) -- (.5,1) -- (1,.5) -- (.5,0) -- (0,.5) -- cycle;}}}
\newcommand{\varsqdiamond}{\mathbin{\text{\tikz [x=1ex,y=1ex,line width=.1ex,line join=round] \draw (0,0) rectangle (1,1) (.5\pgflinewidth,.5) -- (.5,1ex-.5\pgflinewidth) -- (1ex-.5\pgflinewidth,.5) -- (.5,.5\pgflinewidth) -- (.5\pgflinewidth,.5) -- cycle;}}}
\begin{document}
% Test code:
.. $a \sqdiamond b$ ..
\[a \sqdiamond b \]
.. $X_{a \sqdiamond b}$ ..
.. $X_{X_{a \sqdiamond b}}$ ..
.. $a \varsqdiamond b$ ..
\[a \varsqdiamond b \]
.. $X_{a \varsqdiamond b}$ ..
.. $X_{X_{a \varsqdiamond b}}$ ..
\end{document}
Result 1
Zoomed:
Variant 1: sqdiamond
Variant 2: varsqdiamond
share|improve this answer
This seems to work with the Computer Modern fonts, but it's font dependent:
\newcommand{\sqdiamond}{\mathbin{\ooalign{%
 $\scriptstyle\square$\cr\hfil\raisebox{.15pt}{$\diamond$}\hfil\cr}}}
share|improve this answer
Here's one possibility, using TikZ:
\usepackage{tikz}
\newcommand{\sqdiamond}{%
 \tikz{\draw (0,0) rectangle (6pt,6pt);
 \draw (3pt,0) -- (6pt,3pt) -- (3pt,6pt) -- (0,3pt) -- (3pt,0);}
}
share|improve this answer

The problem here is that it doesn't scale correctly in subscripts etc. Also the spacing around is wrong if \mathbin isn't used. – Martin Scharrer Apr 1 '11 at 20:32

@Martin Scharrer: yes, I know that, but it wasn't completely clear (at least for me) if the symbol should be used as a binary symbol, or as a relation symbol, or if it was just meant to be used as, for example, an endmark. – Gonzalo Medina Apr 1 '11 at 20:44
Your Answer

discard
By posting your answer, you agree to the privacy policy and terms of service.


text: A good example of a Victorian birch bird scarer or police rattle having a beech handle. When the metropolitan police were formed in 1829, they were issued with rattles that fitted into specially made pockets in the swallow tails of their coats. In 1884 whistles were introduced and by 1887 all rattles had been withdrawn, as they found that whistles could be heard twice the distance of a rattle. They were often used in football matches. This is an excellent example and has a lovely rich colour and excellent patination.


objects (regardless of which program they use).
The p_unlit shader is never actually used in the scene graph; we just use the scene graph as a convenient way to load the shader. Similarly, the m_sphere mesh is not used in a scene graph node. We pull references to both of these out of the graph and use them ourselves where needed. We extract some uniform locations from the unlit shader, so that we can draw unlit objects with colors.
The code as written here is designed to be exception safe. Most of the functions that find nodes by name will throw if the name is not found. What this exception safety means is that it is easy to make the scene reloadable. It only replaces the old values in the global variables after executing all of the code that could throw an exception. This way, the entire scene, along with all meshes, textures, and shaders, can be reloaded by pressing Enter. If something goes wrong, the new scene will not be loaded and an error message is displayed.
Two of the objects in the scene rotate. This is easily handled using our list of objects. In the display method, we access certain nodes and change their transforms them:
 360.0f * g_timer.GetAlpha(), glm::vec3(0.0f, 1.0f, 0.0f)));
g_nodes[3].NodeSetOrient(g_spinBarOrient * glm::rotate(glm::fquat(),
 360.0f * g_timer.GetAlpha(), glm::vec3(0.0f, 0.0f, 1.0f)));
We simply set the orientation based on a timer. For the second one, we previously stored the object's orientation after loading it, and use that as the reference. This allows us to rotate about its local Z axis.
Multiple Scenes
The split-screen trick used here is actually quite simple to pull off. It's also one of the advantages of the scene graph: the ability to easily re-render the same scene multiple times.
The first thing that must change is that the projection matrix cannot be set in the old reshape function. That function now only sets the new width and height of the screen into global variables. This is important because we will be using two projection matrices.
The projection matrix used for the left scene is set up like this:
Example 17.4. Left Projection Matrix
glm::ivec2 displaySize(g_displayWidth / 2, g_displayHeight);
 glutil::MatrixStack persMatrix;
 persMatrix.Perspective(60.0f, (displaySize.x / (float)displaySize.y), g_fzNear, g_fzFar);
 ProjectionBlock projData;
 projData.cameraToClipMatrix = persMatrix.Top();
 glBindBuffer(GL_UNIFORM_BUFFER, g_projectionUniformBuffer);
 glBufferData(GL_UNIFORM_BUFFER, sizeof(ProjectionBlock), &projData, GL_STREAM_DRAW);
 glBindBuffer(GL_UNIFORM_BUFFER, 0);
glViewport(0, 0, (GLsizei)displaySize.x, (GLsizei)displaySize.y);
Notice that displaySize uses only half of the width. And this half width is passed into the glViewport call. It is also used to generate the aspect ratio for the perspective projection matrix. It is the glViewport function that causes our window to be split into two halves.
What is more interesting is the right projection matrix computation:
Example 17.5. Right Projection Matrix
 glutil::MatrixStack persMatrix;
 ProjectionBlock projData;
 projData.cameraToClipMatrix = persMatrix.Top();
 glBindBuffer(GL_UNIFORM_BUFFER, g_projectionUniformBuffer);
 glBindBuffer(GL_UNIFORM_BUFFER, 0);
glViewport(displaySize.x + (g_displayWidth % 2), 0,
 (GLsizei)displaySize.x, (GLsizei)displaySize.y);
Notice that we first take the camera matrix from the perspective view and apply it to the matrix stack before the perspective projection itself. Remember that transforms applied to the stack happen in reverse order. This means that vertices are projected into 4D homogeneous clip-space coordinates, then are transformed by a matrix. Only the rotation portion of the right camera matrix is used. The translation is removed by the conversion to a mat3 (which takes only the top-left 3x3 part of the matrix, which if you recall contains the rotation), then turns it back into a mat4.
Notice also that the viewport's X location is biased based on whether the display's width is odd or not (g_displayWidth % 2 is 0 if it is even, 1 if it is odd). This means that if the width is stretched to an odd number, there will be a one pixel gap between the two views of the scene.
Intermediate Projection
One question may occur to you: how is it possible for our right camera to provide a rotation in NDC space, if it is being applied to the end of the projection matrix? After all, the projection matrix goes from camera space to clip-space. The clip-space to NDC space transform is done by OpenGL after our vertex shader has done this matrix multiply. Do we not need the shader to divide the clip-space values by W, then do the rotation?
Obviously not, since this code works. But just because code happens to work doesn't mean that it should. So let's see if we can prove that it does. To do this, we must prove this:
This might look like a simple proof by inspection due to the associative nature of these, but it is not. The reason is quite simple: w and w' may not be the same. The value of w is the fourth component of v; w' is the fourth component of what results from T*v. If T changes w, then the equation is not true. But at the same time, if T doesn't change w, if w == w', then the equation is true.
Well, that makes things quite simple. We simply need to ensure that our T does not alter w. Matrix multiplication tells us that w' is the dot product of V and the bottom row of T.
Therefore, if the bottom row of T is (0, 0, 0, 1), then w == w'. And therefore, we can use T before the division. Fortunately, the only matrix we have that has a different bottom row is the projection matrix, and T is the rotation matrix we apply after projection.
So this works, as long as we use the right matrices. We can rotate, translate, and scale post-projective clip-space exactly as we would post-projective NDC space. Which is good, because we get to preserve the w component for perspective-correct interpolation.
The take-home lesson here is very simple: projections are not that special as far as transforms are concerned. Post-projective space is mostly just another space. It may be a 4-dimensional homogeneous coordinate system, and that may be an odd thing to fully understand. But that does not mean that you can't apply a regular matrix to objects in this space.