> str: if self.exitcode < 0: # We don't want to kill the parent process trying to find the signal name. # if the signal doesn't map to a known name, use not available. try: return signal.Signals(-self.exitcode).name except Exception: return _NOT_AVAILABLE else: return _NOT_AVAILABLE def timestamp_isoformat(self): """Return timestamp in ISO format (YYYY-MM-DD_HH:MM:SS).""" return datetime.fromtimestamp(self.timestamp).isoformat(sep="_")
GlobalRank = int _FAILURE_FORMAT_TEMPLATE = """[${idx}]: time : ${time} host : ${hostname} rank : ${rank} (local_rank: ${local_rank}) exitcode : ${exitcode} (pid: ${pid}) error_file: ${error_file} traceback : ${message}""" # extra new lines before and after are intentional _MSG_FORMAT_TEMPLATE = """ ${boarder} ${title} ${section} Failures: ${other_failures} ${section} Root Cause (first observed failure): ${root_failure} ${boarder}"""
[docs]class ChildFailedError(Exception): """ Special exception type that can be raised from a function annotated with the ''@record'' decorator to have the child process' (root exception) propagate up the stack as-is (e.g. without being wrapped in the parent's traceback). Useful in cases where the parent is a simple nanny process and the child (worker) processes are actually doing meaningful compute. In this case, errors typically occur on the child process as the parent is not doing anything non-trivial, and child errors should be propagated to the scheduler for accurate root cause diagnostics. .. note:: The propagation relies on error files rather than exception handling to support both function and binary launches. Example: :: # process tree on a host (container) 0: scheduler-init-process: |- 1: torchelastic_agent: |- 2: trainer_0 (ok) |- 3: trainer_1 (fail) -> error.json |- ... |- n+2: trainer_n (ok) |- n+3: other processes |- ... In the example above, trainer 1's failure (written into error.json) is the root cause and should be reported to the scheduler's init process. The torchelastic agent raises a ''ChildFailedError("trainer", {1: "trainer_1/error.json"})'' upon detecting trainer 1's failure which would propagate the contents of trainer 1's error file to the scheduler's init process. """ def __init__(self, name: str, failures: Dict[GlobalRank, ProcessFailure]): self.name = name self.failures = failures assert ( self.failures ) # does not make sense to create a ChildFaileError with no failures super().__init__(self.format_msg()) def get_first_failure(self) -> Tuple[GlobalRank, ProcessFailure]: rank = min(self.failures.keys(), key=lambda r: self.failures[r].timestamp) return rank, self.failures[rank] def format_msg(self, boarder_delim="=", section_delim="-"): title = f"{self.name} FAILED" root_rank, root_failure = self.get_first_failure() root_failure_fmt: str = "" other_failures_fmt: List[str] = [] width = len(title) for idx, (rank, failure) in enumerate(self.failures.items()): fmt, w = self._format_failure(idx, rank, failure) width = max(width, w) if rank == root_rank: root_failure_fmt = fmt else: other_failures_fmt.append(fmt) # upper boundary on width width = min(width, 60) return Template(_MSG_FORMAT_TEMPLATE).substitute( boarder=boarder_delim * width, title=title, section=section_delim * width, root_failure=root_failure_fmt, other_failures="\n".join(other_failures_fmt or [" <NO_OTHER_FAILURES>"]), ) def _format_failure( self, idx: int, rank: int, failure: ProcessFailure ) -> Tuple[str, int]: # failure.message is either a str (when the failure does not generate a traceback - e.g. signals) # or a dict (json) of the form # {"message": $ERROR_MSG, "extraInfo": {"py_callstack": $TRACEBACK, timestamp: $TS}} # so the display logic is: # 1. if failure.message is not a dict (it is a str) just show it as is # 2. else try to get the traceback (py_callstack) # 3. if the traceback is not there, use the message # 4. if the message is not there show <N/A> msg = failure.message if isinstance(failure.message, dict): msg = ( failure.message.get("extraInfo", {}) .get("py_callstack", failure.message.get("message", "<N/A>")) .replace("\n", "\n ") # to properly indent the traceback ) fmt = Template(_FAILURE_FORMAT_TEMPLATE).substitute( idx=idx, time=failure.timestamp_isoformat(), hostname=socket.getfqdn(), rank=rank, local_rank=failure.local_rank, exitcode=failure.exitcode, pid=failure.pid, error_file=failure.error_file, message=msg, ) width = 0 for line in fmt.split("\n"): width = max(width, len(line)) return fmt, width
[docs]def record( fn: Callable[..., T], error_handler: Optional[ErrorHandler] = None ) -> Callable[..., T]: """ Syntactic sugar to record errors/exceptions that happened in the decorated function using the provided ''error_handler''. Using this decorator is equivalent to: :: error_handler = get_error_handler() error_handler.initialize() try: foobar() except ChildFailedError as e: _, failure = e.get_first_failure() error_handler.dump_error_file(failure.error_file, failure.exitcode) raise except Exception as e: error_handler.record(e) raise .. important:: use this decorator once per process at the top level method, typically this is the main method. Example :: @record def main(): pass if __name__=="__main__": main() """ if not error_handler: error_handler = get_error_handler() def wrap(f): @wraps(f) def wrapper(*args, **kwargs): assert error_handler is not None # assertion for mypy type checker error_handler.initialize() try: return f(*args, **kwargs) except SystemExit as se: # For run_path based entrypoints, SystemExit with code = 0 will never exit. # Handling it here by returning a value: if se.code == 0: return None else: raise except ChildFailedError as e: rank, failure = e.get_first_failure() if failure.error_file != _NOT_AVAILABLE: error_handler.dump_error_file(failure.error_file, failure.exitcode) else: log.info( ( "local_rank %s FAILED with no error file." " Decorate your entrypoint fn with @record for traceback info." " See: _URL_ rank ) ) raise except Exception as e: error_handler.record_exception(e) raise return wrapper return wrap(fn)
Docs
Access comprehensive developer documentation for PyTorch
View Docs
Tutorials
Get in-depth tutorials for beginners and advanced developers
View Tutorials
Resources
Find development resources and get your


text:
Learning how to comprehend literature and information text
Please watch the video from the link above. Then, use the link to take the quiz.
Students can use this template provided to create their own food truck for a business class.
This hyperdoc is about learning the value of coins
For today's lesson, we will be learning how to count coins using manipulatives.
Students will learn about pollution and its effects on the environment.
Introduction to Weather.

source: openbmb/Ultra-FineWeb


BUSN 3378 Behavioral Finance and Economics
(Prior to Fall 2010, this course was known as BUS 78.
3 hours; 3 credits
The interaction of human psychology, decision making and financial markets in order to understand how human behavior plays a significant role in finance. Topics covered include: personal financial planning, corporate finance, and portfolio management within the context of behavioral finance and behavioral economics. This course is the same as Economics 3378.
Prerequisite: Finance 3310 or [Business 3310] or Economics 3332 [70.8] or BUS 3330 [70.3]; Economics 2200 [20.1] or Business 2200 [20.1].
Access the college's current and recent course bulletins.


Click here to Skip to main content
Click here to Skip to main content
Customizing the Windows Common File Open Dialog
, 19 Nov 1999
Rate this:
Please Sign up or sign in to vote.
 - Download demo project - 15 Kb
 Sample Image
 Abstract
 This article describes how to go beyond the normal customization associated with the Windows common file open dialog. The common file open dialog is easily one of the most often customized entity in the Windows world, but given the limited customization options included with it, it usually isn't very intuitive as to how go about customizing it the way you want. This article tells you how to make it look and behave the way you want it to. Readers are reminded that though the following ideas and concepts deal with the common file open dialog, the techniques presented here can easily be applied to any other common dialog as well.
 Aim
 Customizing the common file open dialog has the following goals:
 1. Start up in a particular desired directory, specified by the client.
 2. Display only folders in that directory, not files.
 3. Hide the two buttons of the toolbar, so that the user cannot move up one level or create a new folder.
 4. Make the combo box on the top of the dialog that shows the current folder read only, so that the user may not select another directory from here.
 5. Prevent the user from changing directory when user types in different paths in the edit box at the bottom of the dialog. Includes wild card characters.
 Basic Architecture
 Basically the following steps need to be taken, to achieve the above goals:
 1. Create a common file open dialog.
 2. Setup a hook that intercepts all messages that flow to the common file open dialog.
 3. Trap desired messages, for desired child windows-say, the toolbar or the combo box.
 4. Change the behavior by writing customization code.
 In Detail
 Creating the common file open dialog
 Creating the common file open dialog is a simple process. However, it should be sub-classed first. Sub-classing is necessary, because we need access to the dialog's OnInitDialog() handler, which is where we basically set up a hook. Towards this end, we have a class CCustomFileDlg derived publicly from CFileDialog. The OnInitDialog() function is overridden. Also, the destructor for the derived class removes the hook that was set in the OnInitDialog() function. The m_ofn structure is filled with relevant details, and DoModal() is called to create and display the dialog.
 Making Controls Read Only
 In the dialog's OnInitDialog() handler, first, the combo box on the top of the dialog is made read only. This is done by enumerating the child windows, till we reach the combo box and its handle. The EnumChildProc() function does this:
 BOOL CALLBACK EnumChildProc(HWND hWnd, LPARAM lParam)
 {
 int id = ::GetDlgCtrlID(hWnd);
 switch(id)
 {
 case LOOK_IN_COMBO : // Combo box on top of the dialog
 ::EnableWindow(hWnd, FALSE);
 break;
 }

 return TRUE;
 }

 The id for the combo box is identified by LOOK_IN_COMBO, is 1137 and is defined in the header file.
 Setting the Hook
 The hook is set as follows, in the OnInitDialog() handler:
 HookHandle = SetWindowsHookEx( WH_CALLWNDPROC,
 (HOOKPROC) Hooker,
 (HINSTANCE)NULL,
 (DWORD)GetCurrentThreadId() );

 The hook is of type WH_CALLWNDPROC. This means that the hook gets all messages first, before the target window procedure(s) gets it. Therefore, custom processing can be made at this point, since we get a first crack at the message.
 Inside the Hook Procedure
 The hook procedure is passed a pointer to a CWPSTRUCT in its LPARAM. This structure contains the following information, about the message intended for a particular window:
 1. LPARAM
 2. WPARAM
 3. Message
 4. Window Handle
 For our purposes, the window handle and the message are the most important. Much processing will depend on these two parameters.
 The main reason we have this hook is that we cannot subclass the controls on the dialog straight away, since some of the controls, such as the list view control and toolbar do not even exist in the common dialog template, which is present in the VC++ include directory. Also, their id's are not known-they are not available in the template, which makes things much harder to work with. Stranger still, there is a list box control with an id lst1 that seems to be in the template for no rhyme or reason. This is hidden, and the list view control sits on top of it, when the dialog shows up.
 Two of the most important things when working with windows are its handle and id. One major problem with the sub-classing approach is as follows: In order to sub-class a control, the control must be there first! The list view control on start up shows the folders and files. We can now sub-class it, but then, the damage is already done-it shows the folders and files-we need only the files! Ideally, we need something that intercepts the list view control before it initializes, so that we can remove the folders-and then, we can let the list view control continue to display only the files. Using a hook is most convenient for us since it circumvents certain problems of traditional sub-classing. One of the main advantages of using a WH_CALLBACK type hook is that before a control gets the message, we get it first. Therefore, we can trap an intended message for the list view control, and modify it by changing processing. Further, the CWPSTRUCT pointer passed in to the hook via the LPARAM has vital information that we can put to use-the window handle and message.
 The hook is a catchall. In other words, all messages generated go to the hook first. Since we want to select which windows we need to modify, we must first identify the target window handle. This is done by using the GetClassName() API on the window handle obtained via the CWPSTRUCT. GetClassName() returns the class name as a string, of the window we're interested in. For the list view control's handle, GetClassName() returns "syslistview32" and for the toolbar, it returns "toolbarwindow32". And for the last control we want to modify, the edit control, it returns "edit".
 The following code shows how to obtain the class name for a control whose handle is identified in the CWPSTRUCT pointer:
 CWPSTRUCT *x = (CWPSTRUCT*)lParam;
 GetClassName(x -> hwnd, szClassName, MAX_CHAR);

 Using the relevant class names, we do processing accordingly. For example, if it is a "syslistview32" based control, do something, if it is a "toolbarwindow32" based control, do something else, etc. This is achieved by making simple calls to strcmp().
 Customizing the List View Control
 Here is the code:
 if (strcmp(_strlwr(szClassName), "syslistview32") == 0)
 {
 switch(x->message)
 {
 case WM_NCPAINT :
 case LAST_LISTVIEW_MSG : // Magic message sent after all items are inserted
 {
 int count = ListView_GetItemCount(x-> hwnd);
 for(int i= 0; i < count; i++)
 {
 item.mask = LVIF_TEXT | LVIF_PARAM;
 item.iItem = i;
 item.iSubItem = 0;
 item.pszText = szItemName;
 item.cchTextMax = MAX_CHAR;
 ListView_GetItem(x -> hwnd, &item);

 if (GetFileAttributes(szItemName) & FILE_ATTRIBUTE_DIRECTORY)
 ListView_DeleteItem(x -> hwnd, i);
 break;
 }
 }
 } // end switch
 HideToolbarBtns(hWndToolbar);
 } // end if

 A check is performed first using strcmp() to make sure it is the list view control. If it is, we switch to the message part of the CWPSTRUCT pointer (in this case, x). Two messages are trapped, WM_NCPAINT needed so that folder items can be removed before the list view control actually shows up and LAST_LISTVIEW_MSG (defined in my header file) which is the last message the list view control receives after displaying all items. The message has a value of 4146, which I figured out by studying the messages to the list view control.
 Since we now have a handle to the list view control, we can perform ordinary list view control operations-in this case, we simply run down the entire list of items, checking to see if any item has the FILE_


text:
Corn Seed Drying Optimization Using Predrying and Air Drying Temperature Treatment.
Optimasi Pengeringan Benih Jagung dengan Perlakuan Prapengeringan dan Suhu Udara Pengeringan
|Suharsi, Tatiek Kartika
|Drying is an important operation in corn seed processing. Long duration of seed drying can reduce seed viability. The high moisture content causes the initiation of seed germination and increase fungal attacks, thus it will loss seed viability. Long duration of seed drying also decreases production capacity and will increase production cost. One of the efforts to increase drying rate is increase air drying temperature. But, the high temperature in seed drying will give risk. It will give effect on chemical composition destruction so it could be decline seed viability. Maintaining seed viability could be done by using predrying treatment. Predrying was done by blowing air using blower machine and it applied before ear corn dried with heated air. Combination between predrying and air drying temperature were the effective treatment to increase drying rate and maintain corn seed viability. The objectives of the research were to increase corn seed drying efficency by develop design of drying system and combine between predrying treatment with air drying temperature to get maximum seed quality. This research was conducted at PT BISI International, Tbk. on June till October 2012. This research consisted of three phases, 1. Drying system design, 2. Corn seed drying optimization, and 3. Economic analysis. The first research consisted of two phases, 1. Mini box dryer assembling, and 2. Mini box dryer testing. Corn seed drying optimization consisted of periods of predrying (0, 12, 24, and 36 hours) and temperature level factor (40, 45, 50, and 55 °C), used randomized complete block design with three replications. Physical and physiological quality were analyzed to find treatment which produced good seeds. Economic analysis were used to find treatment which give highest of B/C Ratio. The result showed that predrying during 36 hours on temperature setting 50 °C was the optimum treatment for corn seed drying, because it had good germination and had highest B/C Ratio.
|IPB (Bogor Agricultural University)
|Corn Seed Drying Optimization Using Predrying and Air Drying Temperature Treatment.
|Optimasi Pengeringan Benih Jagung dengan Perlakuan Prapengeringan dan Suhu Udara Pengeringan
Files in this item
This item appears in the following Collection(s)
MT - Agriculture

source: m-a-p/FineFineWeb


A. No. When the Failover Clustering feature is enabled, a MAC from the machine is used for the fault tolerant (NetFT) network. If you used Sysprep to create an image of a machine after the Failover Cluster feature is enabled, all nodes created from this image would have the same MAC for the NetFT virtual adapter. This would break communications, and cluster validation would fail when this duplicate MAC for NetFT was detected—clustering won't work.
The solution is to use Sysprep before you enable the Failover Cluster feature, and enable the Failover Cluster feature after cloning through an unattended script.
As a best practice, you should have a minimal number of OS images and then customize them using unattended scripts and processes such as System Center Configuration Manager's task sequences. This is another reason you should have a Windows Server image and then automate the node joining a cluster through scripting, rather than having a specific "cluster node" image.
Related Reading:


text:
ASL Version of SRP 15 Principles for Reading to Deaf Children Now Available Online
The Clerc Center is pleased to announce that a new American Sign Language (ASL) version of the 15 Principles for Reading to Deaf Children is now online. The 15 Principles are a great starting place for parents and teachers who want to know how to engage young children in book sharing. The new ASL version brings to life each of the principles accompanied by a voiceover in English. A Spanish language voiceover option will be available soon.
The Shared Reading Project (SRP) is designed to teach parents and caregivers how to read to their deaf and hard of hearing children using ASL, and to use strategies to make book sharing most effective.
For a closer look at these strategies, parents and teachers can learn from the Reading to Deaf Children: Learning from Deaf Adults DVD and manual, which gives samples of each of the principles in action. Training workshops on this topic, as well as other workshops related to literacy and language development,are also available from the Clerc Center upon request.
For more information:

source: HuggingFaceFW/fineweb-edu


text:
Research Applied: FBR Précis for the Practitioner
We continue our series of Research Applied with summaries and practical applications of two articles on philanthropy from the September Special Issue of FBR: Social Issues in the Family Enterprise
- Does Family Involvement Make Firms Donate More? Empirical Evidence from Chinese Private Firms
- Firm Philanthropy in Small and Medium-Sized Family Firms: The Effects of Family Involvement in Ownership and Management
Summary 1: Does Family Involvement Make Firms Donate More? Empirical Evidence From Chinese Private Firms
Junsheng Dou, Zhongyuan Zhang and Emma Su
This article's research question is: Whether and under what condition family involvement positively impacts firms' charitable donations?
The authors studied 2,921 private Chinese firms' charitable donations, which are seen as a main part of firms' proactive stakeholder engagement (PSE). Donations are a discretionary responsibility, which means that firms make their own decisions on whether and how much to donate. Donations also put pressure on firms' flow of cash and other resources, and thus are short-term sacrifices for the potential long-term advantages of enhancing firms' reputations and public images and accumulating moral and social capital for the firm.
The authors define family involvement as composed of three dimensions:
- Family ownership describes the ownership percentage of the family
- Family management describes how many family members are practically involved in management
- Family duration of control describes how long the family has control over the firm
The authors argue that these three dimensions of family involvement positively influence the level of donations. They further tested whether or not the willingness of the next generation to assume control of the firm altered these relationships.
The importance of measuring the influence of family involvement on charitable donations lies in its theoretical implications since it demonstrates the different logic attributed to family firm owners as compared to nonfamily ones. An empirical validation like this study could help researchers and practitioners answer questions such as:
- Do family firms really have a different decision making process?
- Do family owners really sacrifice economic short-term gains for the long-term ones?
- What dimension of family involvement influences the social initiative at the firm level?
- What is the negative influence of the next generation's unwillingness to assume control of the firm on charitable donations?
This study found that family ownership and duration of control were positively associated with charitable giving. The study further shows that family percentage of ownership and a longer duration of family control have a significant positive influence on charitable donations.
However, the next generation's unwillingness to assume control of the firm weakened the positive family ownership-charitable giving relationship. This study reinforces the role of the next generation of family business leaders on the long-term orientation and pro-social behavior of family firms.
Practitioners will find that this study continues the stream of recent family business research which demonstrates the power of non-financial pursuits in family firms. Practitioners need to continue to be cognizant of the strength of the non-financial pursuits of their clients.
Summary 2: Firm Philanthropy in Small and Medium-Sized Family Firms: The Effects of Family Involvement in Ownership and Management
Giovanna Campopiano, Alfredo De Massis and Francesco Chirico
This study of 130 small and medium sized firms in northern Italy was conducted with the purpose of learning about the effects of family involvement in ownership and management on firm philanthropy. (Small and medium-sized firms are defined as having an annual turnover of between 2 and 50 million Euros.) The authors describe "firm philanthropy" as:
- altruistic activities intended to serve others
- the act of donating money, goods and services to support a socially beneficial or humanitarian cause
- a discretionary wealth transfer of net income to stakeholders
The study draws on stewardship theory, which considers the family as a source of competitive advantage based upon three main aspects:
- significant investment in the business and its future
- virtually unconditional funding of this investment
- a strong willingness to pursue long-term goals even at the expense of short-term gains
Social networks and reputational capital, which can be fueled by philanthropy, are key resources to maintain competitive advantages.
The authors describe the study results as supporting the propositions that the propensity for philanthropic activity in a family firm:
- increases with the degree of family ownership
- increases as ownership becomes more dispersed among family members
Reasons for this propensity include the higher motivation in family owned businesses to create a multi-generational family enterprise which, in turn, depends upon a number of factors, some of which are strengthened through firm philanthropy, such as:
- building the reputation of the firm
- helping to build a working environment that rewards support and collaboration
- fostering and developing a skilled workforce
- making connections to stakeholders in the community
As the number of family owners involved in the business increases, their social networks are likely to expand as well.
In a somewhat counterintuitive perspective, the authors interpret some mixed survey data to conclude that a greater concentration of family members as managers, in proportion to all family members involved in the company, reduces the propensity for firm philanthropy. They argue that a significant number of family managers leads to more conflict, more divergent views of priorities, less stewardship behavior and more allocation of resources inwardly toward business needs. Further studies are needed to determine whether these propositions apply to larger family firms or might change with a larger sample size across countries and cultures.
Practitioners should consider some useful lessons that arise from the authors' work. To maximize the positive impact of firm philanthropy on the long-term success of a family firm, efforts are needed to help family firms understand the benefits of firm philanthropy and its relationship to business sustainability. Governance efforts are important to help align family managers, family employees and family ownership goals for firm philanthropy. The larger the number of family managers in the firm, the more challenging the governance process to focus and sustain firm philanthropy commitment.
About the Contributor:
Karen L. Vinton, Ph.D. is a 1999 Barbara Hollander Award winner and Professor Emeritus of Business at the College of Business at Montana State University, where she founded the University's Family Business Program. An FFI Fellow, she has served on the FFI board of directors and chaired the Body of Knowledge committee. From 1997 through 2011, Vinton served on the editorial board of Family Business Review and is the current assistant editor. Karen can be reached at [email protected].
Yours in Practice,


text:
Fraction of pore volume occupied by oil at the end of oil displacement that used a specific fluid. This reservoir engineering quantity signifies the ultimate recovery under a given displacement process and represents the endpoint of the relative permeability curves in reservoir simulation. The residual oil saturation quantity is.
It is defined as the remaining hydrocarbon after the reservoir has been fully flooded. An Sor study has been performed in one of the major carbonate fields onshore Abu Dhabi UAE.
The hydrocarbon is oil and. The oil that remains in the porous media after waterflooding is called remaining oil saturation (ROS) which is larger than the relative permeability residual oil saturation (Sorw or simply Sor). This residual oil saturation varies depending on lithology, pore size distribution, permeability, wettability, fluid characteristics, recovery. Nomenclature What is the residual oil saturation for water flooding vs immiscible gas. Residual oil relationships.
Ask PERM (QA) Bufret Lignende Oversett denne siden 26. Amir Asks PERHi there,.
Field scale definitions define residual NAPL saturation in terms of NAPL mobility relative to the scale of the problem (e.g. oil reservoir production, NAPL plume recovery). One definition for residual oil saturation is focused on liquid saturated conditions in the reservoir or aquifer when oil (or LNAPL) ceases to be recovered. During recovery and transport of the core, the majority of the water will drain out, leaving residual oil and irreducible water.
The sum of residual oil saturation plus irreducible water saturation is usually less than 1. In older reservoirs with many years of production, there may. It is the reduction of oil saturation which mainly occurs in reservoirs which are being depleted in secondary and primary programs. It is an important measure used to decide whether EOR are suitable for exploitation. Abstract New techniques of determining residual oil saturation from logs are proposed. The inherent technical constraints, such as stripping, are discusssed. A reduction in oil saturation occurs as reservoirs are depleted during primary and secondary recovery programs.
However even the most effective secondary recovery programs still may not reduce oil saturation to the unrecoverable oil saturation point of the reservoir. In order to continue to reduce. This necessitates the estimation of movable oil saturation, which represents the maximum volume of oil that can be moved or produced ultimately from a reservoir. Laboratory tests and field applications show that low-salinity water flooding could lead to significant reduction of residual oil saturation.
There has been a growing interest with an increasing number of low-salinity water flooding studies. However, there are few quantitative studies on flow and transport behavior of low -salinity.
The objective of this study was to determine the influence of surfactant concentration, surfactant adsorption and interfacial tension between oil and aqueous phase on the Amott wettability index and the residual oil saturation during waterflooding. The flooding experiment and Amott wettability tests were performed on core. DETERMINATION OF RESIDUAL OIL SATURATION Reliable evaluation and knowledge of residual oil saturation is a key factor in the selection and proper planning of tertiary recovery methods. Looking for abbreviations of SOR? Displacement efficiency can approach 1 if residual oil saturation can be driven to zero.
Conventional miscibleor near-miscible-gasflood simulation often overestimates oil recovery, mostly because it does not capture a series of physical effects tending to limit interphase compositional exchanges. The authors present a new engineering solution to this problem in the near-miscible case. Whether thermal or non-thermal methods are employe the objective of EOR is to reduce residual oil saturation and improve sweep efficiency, while maximizing rate of return on capital and reducing operating cost.
Non-thermal methods include chemical, microbial, and COflooding. But heat–primarily steamflooding –is. In general, cores obtained with the pressure core barrel under conditions of minimal flushing are needed in order to obtain residual saturations that can be treated with reasonable confidence.


text:
I am using the same code on two different websites which are hosted on different servers. In one of them the Facebook oauth log in works as it has to but on the other one after the authentication, it redirects to a url like this:
The odd part is that it works on one of the servers but not on the other one. What do you think causes this?
In the Facebook Connect case: 1. The Website (client in OAuth speak) redirects the user to Facebook asking for access to the users portion of the Facebook Graph API endpoint. 2. Facebook gets the users Authorization to give that access. 3. Facebook then redirects the user back to the client passing an access token in the URL fragment. 4. The client performs a GET on the Facebook API endpoint using the access token from step 3. 5. The Graph API endpoint returns a JSON object that contains a Facebook user_id and other public and perhaps private information based on what access the user granted. 6. The Website logs in user in as the user_id from the Graph API endpoint. I think my server can not do the 5th part.


Click here to view the latest version of this page.
What is Pyste?
Pyste is a Boost.Python code generator. The user specifies the classes and functions to be exported using a simple interface file, which following the Boost.Python's philosophy, is simple Python code. Pyste then uses GCCXML to parse all the headers and extract the necessary information to automatically generate C++ code.
Let's borrow the class World from the tutorial:
 struct World
 std::string greet() { return msg; }
 std::string msg;
Here's the interface file for it, named world.pyste:
 Class("World", "world.h")
and that's it!
The next step is invoke Pyste in the command-line:
python --module=hello world.pyste
this will create a file "hello.cpp" in the directory where the command was run.
Pyste supports the following features:


text:
8.2 mm diagonal, approx. 1.34 effective megapixel SWIR image sensor
4.1 mm diagonal, approx. 0.34 effective megapixel SWIR image sensor
As manufacturers in various industries continue to seek higher productivity, there is growing interest in sensing both in the visible spectrum and beyond it, at SWIR wavelengths.
In IMX990 and IMX991, SenSWIR technology has enabled Sony to overcome challenges in pixel miniaturization to offer sensors that are compact, high-resolution, and capable of imaging from the visible spectrum to SWIR wavelengths. IMX990 and IMX991 are global shutter sensors with a digital output allowing for many features and functionality in industrial camera applications such as ROI and Trigger Mode
The advances in performance and functionality introduced by the IMX990 and IMX991 pave the way for the development of SWIR industrial cameras and inspection equipment for a diverse range of applications such as inspection, identification, and measurement.
Advantages of the sensors promise to expand SWIR sensing applications. The sensors' higher resolution offers higher inspection precision, and smaller cameras afford greater freedom in installation.
Inspection that once required multiple cameras to cover visible and SWIR wavelengths can now be performed with a single unit. Such broad coverage expands both the type of objects that can be inspected and the type of inspection available. System costs can be reduced, and faster image processing can increase throughput.
Unlike the analog output that most SWIR sensors are limited to, the sensors also feature digital output, for performance on the level of current industrial CMOS sensors. Analog sensors require developers to implement an ADC or other functionality for industrial equipment on the camera. In contrast, the new sensors already include this functionality, which saves time and effort in camera development and makes it easier to develop versatile cameras.
|Image size||8.2 mm diagonal (1/2-inch type)||4.1 mm diagonal (1/4-inch type)|
|Effective pixels||1296 (H) × 1032 (V),
approx. 1.34 megapixels
|656 (H) × 520 (V),
approx. 0.34 megapixels
|Unit cell size||5μm（H）×5μｍ（V）|
|Optical black||Horizontal direction||front 0 pixels, rear 96 pixels|
|Vertical direction||front 12 pixels, rear 0 pixels|
|Input drive frequency||37.125MHz/74.25MHz/54MHz|
|Shutter mode||Global shutter|
1/30 sec. accumulation
|Frame rate (max.)
A wide-band and high-sensitivity SWIR image sensor technology implemented by the combination of compound semiconductor InGaAs photodiodes and Si readout circuits through Cu-Cu bonding.
*SenSWIR and logo are registered trademarks or trademarks of Sony Group Corporation or its affiliates.
Sony reserves the right to change products and specifications without prior notice.


text:
this is my investigation processed so far.could anyone pro have a look at my investigation to see if anything needs improving?
titile page: the effect of light intensity on the distribution of helice crassa.
Introduction: the ecological niche of Helice crassa: Helice crassa belongs to biological class Malacostraca(1). The helice crassa studied were found at Tohuna Torea estuary at the end of Riddel Road.they were usually found under the mud covered by the sea water,in dark damp conditions.so that they are not exposed to high light intensity.because they are prone to dessication.many adaptation features help them reduce the effect of dessication.these include:
1.helice crassa tend to move close to the dark place but move away from the light area. Because high light intensity is often associated with large amount of heat. –biology individual animal study helice crassa: mud crab Mary Melrose department of education Auckland 1988
2. Large pincers-this helps scoop up mud so that they can burrow to shelter from searing heat which is associated with high light intensity. the behaviour of two estuarine crab species by C.G..BEER, department of zoology,university of otago,new Zealand.(received by editior,April 15,1958)
3. the impermeable exoskeleton,strengthened with calcium carbonate,protects the crab from desiccation in air.
_URL_ htm#Helice
living under the mud often covered by the sea means cooler temperature,damp condition,low light intensity,im going to investigation the preferred light intensity of helice crassa which is the best light intensity which helps reduce the effect of dessication.
Aim: the purpose of this experiment is to find out wether or not the number of helice crassa burrowing into the mud changes with increasing light intensity.
Hypothesis: the number of helice crassa burrowing into the mud increases with increasing light intensity.
(reason:high light intensity is often associated with a large amount of heat, if an increasing number of helice crassa burrowing into the mud is found,then high light intensity would have an effect of the amount of dessication)
Null hypothesis: the number of helice crassa burrowing into the mud remains the same with increasing light intensity
(Reason: if high light intensity has no effect on the amount of desiccation then helice crassa will not show any responses to the increasing light intensity)
Equipment: 30 helice crassa.
3 ice cream containers
Paper to mark
Mud-6 cm deep(the same percentage of mud as well as sand)
Method: 1.go down the riddel road to collect 30 helice crassa.
2. Put mud (6 cm deep) into each ice cream container, the percentage of mud and sand remains constant in each ice cream container.
3.seperate 30 helice crassa into three groups with each group(10) put into each ice cream container.
3.cover the first ice cream container with a piece of wipe,then cover the second ice cream container with 2 pieces of wipe then the third ice cream container with 3 pieces of wipe.
4.measure the light intensity in each of the ice cream container.record light intensity in a table
5.after 5 minutes covered by the wipe, uncover it to count the number of helice crassa that has burrowed into the mud.
6.record the number of helice crassa burrowed into the mud against different light intensity.
according to the experiment with Helice crassa is looks well to me and the details too. you have te record all the changes and their etiology (crab's) and alos i think you have to read some more materials about physiology of crabs becsase they are different from other arthropods because the the chitina that they have allover their body. They stay in dark areas because they insticts sent them for protection.
I hope that i give an understanable answer.
Hi, I'm Karole, and I want to know what you mean by helice crassa is 'different from other arthropods because of the chitina'.
What is chitina? Do you mean chitin? And even so, don't all arthropods have it?
Also, is having chitin all over the body mean that the mud crabs have exoskeleton all over their body?
Is it a physiological adaptation? I'm looking for any physiological adaptations of helice crassa that reduces desiccation. By the way, I'm doing this research assignment for water content of the mud that helice crassa lives in.
im doing my research on the effects (on the weight of the helice crassa) of different salinities. i have searched everywhere but i cant find any general knowledge about the helice crassa and any adaptations of the crab related to the range of salinities and how it effects their weight, to help introduce my investigation. Any suggestions?
Who is online
Users browsing this forum: No registered users and 0 guests


text:
Open Share menu
You can share each text or image to any other apps, such as Twitter, Notion, email, etc.
To open the Share menu, tap the 3-dot icon. This menu contains not only sharing functions, but also source and text copying.
Tap 3-dot icon to open the Share menu.
Choose Share image or Share text depending on what you want to share to other apps.
When you select Share image or Share text, you will see a list of Apps where text or images can be shared, and a list of actions such as Copy, Save Image, etc.
For example, let's say you have a draft of a tweet saved in Ikes. In such a case, you can tap the Twitter icon to insert the shared text or image directly into the Twitter post screen.
You can also insert text and a selected image into your email application, Notion's database, etc. Try integrating Ikes with other applications.


text: This article reviews the results of bone collagen stable carbon and nitrogen isotope paleodietary studies conducted in Australia. Stable isotopic analyses of prehistoric human and faunal bones and teeth provide a means to assess past Aboriginal dietary patterns and habitat use, palaeoclimate, and palaeoecology. In some cases, the relative consumption of marine versus terrestrial foods or use of C3-vs C4-based foods within terrestrial ecosystems and access to these various habitats can be inferred from stable isotope values. The relationship between mortuary variability and dietary differences can also be addressed. In addition, stable carbon, nitrogen, oxygen, and strontium isotopes can provide information about changes in past rainfall patterns, climate and plant and animal distributions. Thus, stable isotope studies provide an independent method to assist with the reconstruction of prehistoric subsistence-settlement systems, social systems, and palaeoecology. These biochemical data can supplement information obtained from conventional archaeological studies. Potential contributions of stable isotope research to Australian archaeology and future research directions are discussed.


text:
Brief Introduction a
|Date added: 2012-08-04 12:51:41 Hits: 12|
The classifier.htm">spiral separator is one of the numerous water conservancy classification equipments, a kind of mechanical classifier with the structure of elevating and conveying desilting. According to the spiral numbers, it can be divided into two types, one is single-spiral classifier, and the other is double spiral classifier. According to the height of the downflow weir, it can be further sorted into high weir type, low weir type as well as immersed weir type. As for the specification of the spiral separator, it can be presented by its spiral number and the spiral.
Henan Hongxing Mining Machinery Co., Ltd. is a professional spiral separator manufacturer, with decades experience and advanced technology. Now, our engineer will give you a brief introduction about the spiral separator to make our customers know the spiral separator better.
Spiral separator refers to a device for separating slurry components by density, or a device for sorting particles by shape. It has been widely used in coal choosing industry to sort the crude slime in 0.15~3mm level since the beginning of 1990s, especially in some coal-producing countries, such as China, America, Australia, and so on. Usually, the spiral separator can be divided into two types, the wet spiral separator and the dry spiral separator.
Spiral classifier is one of the beneficiation equipments. According to the different proportion of solid particles, the rate of precipitation in the liquid is also different. Spiral classifier concentrates fine ore based on the principle. After grinding, the materials will pass through filter, through which the coarse materials will return to ball mill and the fine ore will be discharged from the overflow pipe.
Generally, the spiral classifier matches with ball mill to form a closed circuits and used for ore concentrating. When used in the gravity concentrator, the match can also grades ore and fine mud, and particle size classification in metal slurry beneficiation processes. Besides, this set of spiral classifier and ball mill is used in washing off mud and dehydration. The machine is simple structure, reliable and easy to operate.
|Powered by Sigsiu.NET|


text:
Our team is developing a SPO2 measurement instruments by ADPD144. However, several problems were found.
The first one, the optical sensor VREF voltage ac coupling measurement was a sawtooth wave;
the second, through the FIFO continuous read the IR and RED 500 sampling data is change each channel;
Third, cover the sensor with your finger, the data is unchanged;
the fourth one, can you help provide demo code?


9 Additional Configuration Steps For Using Nonintegrated Replicat
This chapter contains instructions that are specific only to Replicat when operating in nonintegrated mode. When Replicat operates in nonintegrated mode, triggers, cascade constraints, and unique identifiers must be properly configured in an Oracle GoldenGate environment.
This chapter is a supplement to the basic configuration requirements that are documented in Configuring Oracle GoldenGate Apply.
9.1 Disabling Triggers and Referential Cascade Constraints on Target Tables
Triggers and cascade constraints must be disabled on Oracle target tables when Replicat is in nonintegrated mode.
Oracle GoldenGate provides some options to handle triggers or cascade constraints automatically, depending on the Oracle version:
 - For Oracle and later 11gR2 versions, Replicat automatically disables the work performed by triggers during its session. It does not disable a trigger, but instead prevents the trigger body from executing. The WHEN portion of the trigger must still compile and execute correctly to avoid database errors. To enable triggers to fire, or to disable them manually, use the NOSUPPRESSTRIGGERS option of DBOPTIONS and place the statement after the USERIDALIAS parameter. To allow a specific trigger to fire, you can use the following database procedure, where trigger_owner is the owner of the trigger and trigger_name is the name of the trigger. Once the procedure is called with FALSE for a particular trigger, it remains set until the procedure is called with TRUE.
 - dbms_ddl.set_trigger_firing_property(trigger_owner "trigger_name", FALSE)
 - For Oracle and later 11gR2 versions, you can use the DBOPTIONS parameter with the DEFERREFCONST option to delay the checking and enforcement of cascade update and cascade delete constraints until the Replicat transaction commits.
 - For other Oracle versions, you must disable triggers and integrity constraints or alter them manually to ignore the Replicat database user.
Constraints must be disabled in nonintegrated Replicat mode because Oracle GoldenGate replicates DML that results from the firing of a trigger or a cascade constraint. If the same trigger or constraint gets activated on the target table, it becomes redundant because of the replicated version, and the database returns an error. Consider the following example, where the source tables are emp_src and salary_src and the target tables are emp_targ and salary_targ.
 1. A delete is issued for emp_src.
 2. It cascades a delete to salary_src.
 3. Oracle GoldenGate sends both deletes to the target.
 4. The parent delete arrives first and is applied to emp_targ.
 5. The parent delete cascades a delete to salary_targ.
 6. The cascaded delete from salary_src is applied to salary_targ.
 7. The row cannot be located because it was already deleted in step 5.
9.2 Deferring Constraint Checking on Target Tables
When Replicat is in nonintegrated mode, you may need to defer constraint checking on the target.
Perform the following steps to defer the constraints:
 1. If constraints are DEFERRABLE on the source, the constraints on the target must also be DEFERRABLE. You can use one of the following parameter statements to defer constraint checking until a Replicat transaction commits:
 - Use SQLEXEC at the root level of the Replicat parameter file to defer the constraints for an entire Replicat session.
 SQLEXEC ("alter session set constraint deferred")
 - Use the Replicat parameter DBOPTIONS with the DEFERREFCONST option to delay constraint checking for each Replicat transaction.
 2. You might need to configure Replicat to overcome integrity errors caused by transient primary-key duplicates. Transient primary-key duplicates are duplicates that occur temporarily during the execution of a transaction, but are resolved by transaction commit time. This kind of operation typically uses a SET x = x+n formula or some other manipulation that shifts values so that a new value equals an existing one.
 The following illustrates a sequence of value changes that can cause a transient primary-key duplicate if constraints are not deferred. The example assumes the primary key column is CODE and the current key values (before the updates) are 1, 2, and 3.
 update item set code = 2 where code = 1;
 update item set code = 3 where code = 2;
 update item set code = 4 where code = 3;
In this example, when Replicat applies the first update to the target, there is an ORA-00001 (unique constraint) error because the key value of 2 already exists in the table. The Replicat transaction returns constraint violation errors. By default, Replicat does not handle these violations and abends.
9.2.1 Handling Transient Primary-key Duplicates in Versions Earlier than
To handle transient primary-key duplicates in versions earlier than, use the Replicat parameter HANDLETPKUPDATE. In this configuration, a nonintegrated Replicat handles transient primary-key updates by temporarily deferring constraints. To support this functionality, you must create or alter the constraints as DEFERRABLE INITIALLY IMMEDIATE on the target tables. If the constraints are not DEFERRABLE, Replicat handles the errors according to rules that are specified with the HANDLECOLLISIONS and REPERROR parameters, if they exist, or else it abends.
9.2.2 Handling Transient Primary-key Duplicates in Version or Later
For versions later than, a nonintegrated Replicat by default tries to resolve transient primary-key duplicates automatically by using a workspace in Oracle Workspace Manager. In this configuration, Replicat can defer the constraint checking until commit time without requiring the constraints to be explicitly defined as deferrable.
The requirements for automatic handling of transient primary-key duplicates are:
 - Grant the Replicat database user access to the following Oracle function:
 - The target tables cannot have deferrable constraints; otherwise Replicat returns an error and abends.
To handle tables with deferrable constraints, make certain the constraints are DEFERRABLE INITIALLY IMMEDIATE, and use the HANDLETPKUPDATE parameter in the MAP statement that maps that table. The HANDLETPKUPDATE parameter overrides the default of handling the duplicates automatically.The use of a workspace affects the following Oracle GoldenGate error handling parameters:
When Replicat enables a workspace in Oracle Workspace Manager, it ignores the error handling that is specified by Oracle GoldenGate parameters such as HANDLECOLLISIONS and REPERROR. Instead, Replicat aborts its grouped transaction (if BATCHSQL is enabled), and then retries the update in normal mode by using the active workspace. If ORA-00001 occurs again, Replicat rolls back the transaction and then retries the transaction with error-handling rules in effect again.
If Replicat encounters ORA-00001 for a non-update record, the error-handling parameters such as HANDLECOLLISIONS and REPERROR handle it.
A workspace cannot be used if the operation that contains a transient primary-key duplicate also has updates to any out-of-line columns, such as LOB and XMLType. Therefore, these cases are not supported, and any such cases can result in undetected data corruption on the target. An example of this is:
update T set PK = PK + 1, C_LOB = 'ABC';


text:
Distance from Syria to Lima
Driving route: -- ( - )
Driving route: -- ( - )
Extended route information
The flight distance between the nearest airports Syria (ALP) and Lima (LIM) is 8,111.54 mi (13,054.26 km). This corresponds to an approximate flight time of 15h 51min. Similar flight routes: ALP → CUZ , ALP → LTX , ALP → UIO , ALP → VVI , LTK → LIMBearing: 246.68° (WSW)
The initial bearing on the course from Syria to Lima is 246.68° and the compass direction is WSW.Midpoint: 20.49296,-27.42059
The geographic midpoint between Syria and Lima is in 4,053.69 mi (6,523.78 km) distance between both points in a bearing of 246.68°.Distance: 8,107.37 mi (13,047.56 km)
The shortest distance (air line) between Syria and Lima is 8,107.37 mi (13,047.56 km).Driving route: -- ( - )
The shortest route between Syria and Lima is according to the route planner. The driving time is approx. . Half of the trip is reached in .Time difference: -7h
The time difference between Syria (Asia/Damascus) and Lima (America/Lima) is -7 hours. This means that it is now 10:09 (03.12.2023) in Syria and 03:09 (03.12.2023) in Lima.
How is the distance calculated?
To calculate the distance between Syria and Lima, the place names are converted into coordinates (latitude and longitude). The respective geographic centre is used for cities, regions and countries. To calculate the distance the Haversine formula is applied.
Similar distance (± 0.5%)
Lima is just as far away from Syria as Syria from Buenos Aires (12,634 km), Mexico City (12,459 km), Santiago (13,602 km), Melbourne (13,645 km), Guayaquil (12,663 km), Iztapalapa (12,461 km), Ecatepec de Morelos (12,439 km), Guadalajara (12,605 km), Puebla (12,435 km).
Syria to New York, Syria to Los Angeles, Syria to Chicago, Syria to Houston, Syria to Philadelphia, Syria to Phoenix, Syria to San Antonio, Syria to San Diego, Syria to Dallas, Syria to San Jose, Syria to Austin, Syria to Jacksonville, Syria to Indianapolis, Lima to New York, Lima to Los Angeles, Lima to Chicago, Lima to Houston, Lima to Philadelphia, Lima to Phoenix, Lima to San Antonio, Lima to San Diego, Lima to Dallas, Lima to San Jose, Lima to Austin, Lima to Jacksonville, Lima to Indianapolis,
Help make this service available to everyone in the world and translate distance.to into other languages. Translate now!
- Distance calculator
- Kalkulačka vzdálenosti
- Distancia entre ciudades
- Distancia entre cidades
- Distance entre deux villes
- Distanze chilometriche
- מחשבון מרחק
- Afstand berekenen
- Beräkna Avstånd
- Калькулятор расстояний
- Distanta de calculator
- المسافة حاسبة
- Mesafe hesaplama
- Kalkulator odległości
- Калькулятор відстані
Maps and Geodata: © OpenStreetMap contributors


text:
The hydraulic transportation of thickened sludges
Industries which pump sludges are under continuous pressure to decrease water content, and increase concentration. Environmentally
superior disposal techniques are demanding that such sludges have high mechanical strength properties. This results in a sludge with an increasing viscous character. At high concentration, the viscous forces – which are usually highly non-Newtonian
and yield stress in nature – become dominant, and flows inevitably become laminar.
The objective of this paper is to demonstrate the effect and evaluate the impact that increasing non-Newtonian viscous stresses – particularly yield stress – have on the pipelining problem. An industrially relevant sludge pipe flow study is presented, demonstrating and quantifying the relationship between sludge rheology and flow regime. It is argued that laminar flow will result in settlable solids accumulating on the pipe invert, leading to pipe blockage. Although some practical remedies have been proposed, this problem requires urgent and focussed research..
Water SA Vol. 30 (5) 2005: pp.66-68


Difference between revisions of "CSS Panel"
From FirebugWiki
Jump to: navigation, search
m (Added link to preferences page)
m (Renamed "Options Mini Menu" to "Options Menu")
Line 2: Line 2:

When you want to manipulate CSS rules the CSS panel is the right place for this. It offers options for adding, editing and removing CSS styles of the different files of a page containing CSS. Furthermore it offers an editing mode, in which you can edit the content of the CSS files directly via a text area.

When you want to manipulate CSS rules the CSS panel is the right place for this. It offers options for adding, editing and removing CSS styles of the different files of a page containing CSS. Furthermore it offers an editing mode, in which you can edit the content of the CSS files directly via a text area.

== Options Mini Menu ==
+
== Options Menu ==

{| class="wikitable" style="width:100%; vertical-align:top;"

{| class="wikitable" style="width:100%; vertical-align:top;"

|- bgcolor=lightgrey

|- bgcolor=lightgrey
Revision as of 03:47, 8 June 2011
CSS Panel
When you want to manipulate CSS rules the CSS panel is the right place for this. It offers options for adding, editing and removing CSS styles of the different files of a page containing CSS. Furthermore it offers an editing mode, in which you can edit the content of the CSS files directly via a text area.
Options Menu
Option Preference Description
Expand Shorthand Properties extensions.firebug.expandShorthandProps Toggles between the display of shorthand CSS styles like they are defined and separating them into their single-value equivalents (e. g. padding -> padding-top, padding-right, padding-bottom, padding-left)
Refresh - Reloads the CSS styles display
For more info about tweaks available in Firebug please see the full list of preferences.
Panel Toolbar
Edit
The "Edit" option opens a text editor, in which you can edit the styles and rules of the currently selected CSS file directly. Clicking the "Edit" button again switches back to the formatted display mode.
CSS Location Menu
The CSS Location Menu shows all the files of the current page, which include CSS rules and lets you choose between them. When switching to another file the panel shows the contained CSS rules of that file.
Panel
Color and image preview
When hovering images or colors inside the styles the panel offers you a little popop preview of them, which helps finding the right color or investigating, if an image could be loaded.
Editing rules
For editing rules the CSS panel offers you different helping features including an auto-completion, a Color and image preview and an option to toggle styles. To edit a rule, a style property or its value simply click on it. An inline text field appears at that position and you can start typing. When you finished editing hit Enter. To edit the next style just hit Tab instead of Enter. When you want to create a new property you have three possibilities to do so: Double-click on the white area besides a style definition, editing the last value of a style block and hit Tab or right-click at a style and choose "New Property...". To add a new rule choose the appropriate option from the context menu or click on the very last value of a style sheet and hit Tab.
Auto-completion
An auto-completion feature supports you while entering or editing styles. This means it completes the command while you are typing. If there are several commands starting with the same phrase like "bol" for the font weight you can switch through the different possible values by pressing the up and down key. If a numeric value is entered like "10px" pressing Up/Down increases resp. decreases the value by 1 keeping the unit. Holding the key increases/decreases the value continuously. For a bigger step size press the Page Up/Page Down key. This changes the value by 10. When editing shorthand properties you can toggle through each individual value separately. Just set the cursor to one of the values before pressing the Up/Down resp. the Page Up/Page Down key.
Toggling styles
You can toggle off the application of a specific style by clicking on the disable icon, which appears when you hover a style. When it's disabled a red disabled symbol is shown. For re-enabling the style simply click on it again.
Context options
Right-clicking inside the CSS panel offers you at least three functions: Adding a new rule to the CSS, refreshing the display of the styles and opening the clicked rule in the DOM tab. Besides this general functionality there are other options shown depending on what was right-clicked. The context menu for a rule offers the possibility to add a new property. Right-clicking on a property furthermore offers editing, deleting or disabling it. When right-clicking on a URL or imported file the context menu offers the possibility to open it inside a new tab and to copy the file's location. And inside the context menu of a color value you find an option for copying the value to the clipboard.


Question: Is Regular Corn Flour The Same As Whole Grain Flour
December 30, 2009
Anonymous's picture
Although corn (or maize) is considered a whole grain, when referred to in powder form, corn flour is not considered to be the same as whole grain flour. Whole grain flour typically refers to wheat flour derived from grinding whole grain into flour.


.
(1.411 kg )
( 3.681 kg )
9.81 m/s 2 − 3.760 m/s 2
= 1.641 kg
9.81 m/s 2 + 3.760 m/s 2
THINK: This problem involves friction, so the only forces acting on the curling stone are gravity, the
normal force, and the frictional force. Since gravity and the normal force act in the vertical direction, the
only force slowing the horizontal movement of the curling stone is the frictional force. It is necessary to
come up with a way to relate the initial velocity to the mass, coefficient of friction, and total distance
traveled by the stone. Since the curling stone is slowing to a stop, there is a net external force, so it will be
necessary to use Newton's Second law.
SKETCH: It is helpful to draw the free body diagrams for the curling stone at three different times: the
moment the curling stone is released, part of the way along its path, and after it has stopped. When the
stone is at rest, there is no velocity and no kinetic friction (there is, however, static friction).
RESEARCH: The only unknown force acting on the curling stone is the kinetic friction force. The
magnitude is given by f k = µk N . But the normal force is equal and opposite to the gravitational force


(N =
−Fg =
− ( mg ) ), so the magnitude of the normal force is N = mg. The initial kinetic energy of the stone
is K = 12 mv02 and the kinetic energy of the stone at rest is zero. So, all of the kinetic energy has been
dissipated by friction. The energy dissipated by friction is equal to the magnitude of the force times the
distance traveled, f k d = K . This will allow us to find the initial velocity in terms of known quantities.
SIMPLIFY: First, it is necessary to combine f k d = K with the equations for the kinetic energy, normal
force, and frictional force. So:
f k d= K ⇒
N ) d 12 mv02 ⇒
( µk =
µk ( mg ) d = 12 mv02
221
Bauer/Westfall: University Physics, 2E
Use algebra to find an expression for the initial velocity in terms of known quantities:
µk ( mg
=
)d
mv02 ⇒
2
2 1 2
=
µk mgd
mv0 ⇒
m
m2
2 µk gd= v02 ⇒
1
2
2 µk gd = v0
CALCULATE: The mass of the curling stone m = 19.00 kg, the coefficient of kinetic friction between the
stone and the ice μk = 0.01869 and the total distance traveled d = 36.01 m. The acceleration due to gravity
on the surface of the Earth is not given in the problem, but it is g = 9.81 m/s2. Using these values,
v0 = 2 µk gd
=
2 ⋅ 0.01869 ⋅ 9.81 m/s 2 ⋅ 36.01 m =
3.633839261 m/s
ROUND: The mass of the curling stone, distance traveled, and coefficient of friction between the ice and
the stone are all given to four significant figures. These are the only measured values in the problem, so the
answer should also be given to four significant figures. The initial velocity was 3.634 m/s.
DOUBLE-CHECK: Since the gravitational and normal forces are perpendicular to the direction of the
motion and cancel one another exactly, they will not affect the velocity of the curling stone. Between the
time the stone is released and the moment it stops, the frictional force acts in the opposite direction of the
velocity and is proportional to the normal force, so this is one-dimensional motion with constant
acceleration. It is possible to check this problem by working backward from the initial velocity and force to
find an expression for velocity as a function of time, and then use that to find the total distance traveled.
Newton's Second law and the equation for the frictional force can be combined to find the acceleration of
the curling stone: f k =
− µk mg =
max ⇒ ax =
− µk g . If the spot where the curling stone was released is x0 =
0, then the equations for motion in one dimension with constant acceleration become:
1
d =x0 + v x 0t + at 2
=
v v x 0 + at
2
and
1
=
3.634 − 0.01869 ⋅ 9.81t
0 + 3.634t − 0.01869 ⋅ 9.81t 2
=
2
3.634
Solving the first equation for v = 0 gives 0 =
3.634 − 0.01869 =
⋅ 9.81t ⇒ t = 19.82 sec. (The
0.01869 ⋅ 9.81
stone was in motion 19.82 seconds, which is reasonable for those who are familiar with the sport of
curling.) This value can be used to compute the distance traveled by the stone at the moment it stops as
1
d=
0 + 3.634t − 0.01869 ⋅ 9.81t 2
2
1
2
=
0 + 3.634 (19.82 ) − 0.01869 ⋅ 9.81(19.82 ) =
36.01 m
2
This confirms the calculated result.
4.104.
( µk mg ) d =
1
mv02
2
( 2.788 m/s )
mv02
v02
= =
= 36.11 m
2 ( µ k mg ) 2 µ k g 2 ( 0.01097 ) ( 9.81 m/s 2 )
2
d
=
4.105.
( µk mg ) d =
1
mv02
2
( 3.070 m/s )
v02
=
µk =
= 0.01327
2 gd 2 ( 9.81 m/s 2 ) ( 36.21 m )
2
222
Chapter 5: Kinetic Energy, Work, and Power
Chapter 5: Kinetic Energy, Work, and Power
Concept Checks
5.1. c 5.2. b 5.3. d 5.4. a) True b) False c) True
Multiple-Choice Questions
5.1. c 5.2. d 5.3. a 5.4. d 5.5. e 5.6. e 5.7. c 5.8. b 5.9. b 5.10. c 5.11. e 5.12. d 5.13. b 5.14. a
Conceptual Questions
5.15.
If the net work done on a particle is zero, then the net force on the particle must also be zero. If the net
force is zero, then the acceleration is also zero. Hence, the particle's speed is constant.
5.16.
If Paul and Kathleen both start from rest at a height h , then, by conservation of energy, they will have the
same speed when they reach the bottom. That is, their initial energy is pure potential energy mgh and
their final energy is pure kinetic energy (1/ 2 ) mv 2 . Since energy is conserved (if we neglect friction!) then
mgh = (1/ 2 ) mv 2 ⇒ v = 2 gh . Their final velocity is independent of both their mass and the shape of
their respective slides! They will in general not reach the bottom at the same time. From the figure,
Kathleen will likely reach the bottom first since she will accelerate faster initially and will attain a larger
speed sooner. Paul will start off much slower, and will acquire the bulk of his acceleration towards the end
of his slide.
5.17.
No. The gravitational force that the Earth exerts on the Moon is perpendicular to the Moon's displacement
and so no work is done.
5.18.
When the car is travelling at speed v1 , its kinetic energy is (1/ 2 ) mv12 . The brakes do work on the car
causing it to stop over a distance d1 . The final velocity is zero, so the work Fd1 is given by the initial
kinetic energy: (1/ 2 ) mv12 = Fd1 . Similarly, when the car is travelling at speed v2 , the brakes cause the car
to stop over a distance d2 , so we have (1/ 2 ) mv22 = Fd2 . Taking the ratio of the two equations, we have
(1/ 2 ) mv22 = Fd2
(1/ 2 ) mv12 = Fd1
( 2v1 )
v2
→ d2= d1 22= d1
= 4d1 .
v1
v12
2
Thus the braking distance increases by a factor of 4 when the initial speed is increased by a factor of 2.
Exercises
5.19.
THINK: Kinetic energy is proportional to the mass and to the square of the speed. m and v are known
for all the objects:
(a) m = 10.0 kg, v = 30.0 m/s
(b) m = 100.0 g, v = 60.0 m/s
(c) m = 20.0 g, v = 300. m/s
SKETCH:
1
RESEARCH: K = mv 2
2
1 2
SIMPLIFY: K = mv is already in the right form.
2
223
Bauer/Westfall: University Physics, 2E
CALCULATE:
1
=
(10.0 kg)(30.0 m/s)2 4500 J
(a) K =
2
1
(100.0 ⋅ 10 −3 kg)(60.0 m/s)2 =
180 J
(b) K =
2
1
(20.0 ⋅ 10 −3 kg)(300.


text:
|About this Abstract
||2016 TMS Annual Meeting & Exhibition
||Aluminum Reduction Technology
||Technology Research on Decreasing the Aluminum Surface Waves and Reducing the Cathode Voltage Drop in Aluminum Electrolysis Cells
||Zhirong Shi, Dengpeng Chai, Haibo Huang, Yanan Zhang, Bin Fang
|On-Site Speaker (Planned)
The effect of cathode carbon block materials and the materials, size and assembly ways of cathode steel bar on horizontal current and cathode voltage drop was studied using simulation calculation and industrial cells tests. The results indicate that it can effectively reduce the aluminum surface waves and the cathode voltage drop through comprehensive optimization of cathode carbon block and steel bar materials, reasonable design of cathode steel bar size and optimizing steel bar assembly ways. The cell voltage for the 350 kA test cells was determined at a anode current density of 0.73 A/cm2. It ranges from 3.82 to 3.85 mV and the fluctuation range is about 6-8 mV. Starting after 180 days, the cathode voltage drop was about 190-220 mV. It realized the cells operated at low voltage and high current efficiency for aluminum electrolysis production.
||Planned: Light Metals Volume


text:
The Type 1 solar array drive assembly offers a minimum weight, minimum power solution for positioning solar array panels at the lower end of the size/power spectrum. It is based on the Moog Type 1 rotary incremental actuator. Continuous rotation of the solar array is facilitated by the integration of a slip ring assembly on the output of the actuator, and the rear accessory section of the Type 1 actuator is available for a position feedback device-potentiometer or encoder. Selecting the qualified unit in its existing configuration will have cost and schedule benefits. However, as with all Moog designs, the slip ring assembly is modular. Substitutions and modifications to meet mission requirements are easily implemented. Integration of the actuator with another similar Type 1 actuator will produce a Type 11 biaxial SADA. Typical Type 1 performance specifications are shown in the table below. The unit is driven by the standard Moog Electronic Control Unit.
Moog is a proven leader in components, subsystems, and systems for spacecraft of all sizes, from smallsats to GEO spacecraft. Moog has been successfully providing spacecraft controls, inspace propulsion, and major subsystems for science, military, and commercial operations for more than 60 years.


Original URL: _URL_
Wave goodbye to your TV... literally
Out goes the remote, in comes gesturing tech
By James Sherwood
Posted in Hardware, 18th July 2007 10:57 GMT
Losing a remote control down the back of the sofa could soon become a thing of the past, thanks to two Australian boffins' development of a TV controller system operated entirely by hand signals.
The system combines a webcam, a gesture processing unit and a universal remote control. The webcam captures the hand signal, which is decoded using special software and converted it into a command which can by used to trigger the appropriate infrared signal from remote control. The result: give the thumbs up signal and the TV changes channel.
The system uses a set of pre-defined hand movements, such as an outstretched palm with the thumb pointing upwards to turn the TV on.
A series of sucsessful tests have already been performed with the system on TVs and VCRs, which involved using it under different lighting conditions and making gestures from different distances.
Mitsubishi testing its own TV remote replacement design
Developers Dr Prasham Premaratne, from the School of Electrical, Computer and Telecommunications Engineering at the University of Wollongong, Australia, and Quang Nguyen, from the Research School of Information Science and Engineering at the Australian National University, claim it can even distinguish between intentional and unintentional gestures - handy if you use it while watching sports or playing on your Wii.
However, the Australian boffins aren't the first to come up with such a system. Back in 1994, Mitsubishi researchers William T Freeman and Craig D Weissman began working on a prototype that used a two-screen rig, combining a computer and a television. They admitted that the system could prove "somewhat tiring for extended viewing".
No details have been given by the designers for plans to release the system onto the market, but they did say are working on ways to miniaturise it and incorporate it into games consoles.


You are viewing documentation for Kubernetes version: v1.22
Kubernetes v1.22 documentation is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the latest version.
Monitor Node Health
Node Problem Detector is a daemon for monitoring and reporting about a node's health. You can run Node Problem Detector as a DaemonSet or as a standalone daemon. Node Problem Detector collects information about node problems from various daemons and reports these conditions to the API server as NodeCondition and Event.
To learn how to install and use Node Problem Detector, see Node Problem Detector project documentation.
Before you begin
You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. It is recommended to run this tutorial on a cluster with at least two nodes that are not acting as control plane hosts. If you do not already have a cluster, you can create one by using minikube or you can use one of these Kubernetes playgrounds:
Limitations
 - Node Problem Detector only supports file based kernel log. Log tools such as journald are not supported.
 - Node Problem Detector uses the kernel log format for reporting kernel issues. To learn how to extend the kernel log format, see Add support for another log format.
Enabling Node Problem Detector
Some cloud providers enable Node Problem Detector as an Addon. You can also enable Node Problem Detector with kubectl or by creating an Addon pod.
Using kubectl to enable Node Problem Detector
kubectl provides the most flexible management of Node Problem Detector. You can overwrite the default configuration to fit it into your environment or to detect customized node problems. For example:
 1. Create a Node Problem Detector configuration similar to node-problem-detector.yaml:
 apiVersion: apps/v1
 kind: DaemonSet
 metadata:
 name: node-problem-detector-v0.1
 namespace: kube-system
 labels:
 k8s-app: node-problem-detector
 version: v0.1
 _URL_-service: "true"
 spec:
 selector:
 matchLabels:
 k8s-app: node-problem-detector
 version: v0.1
 _URL_-service: "true"
 template:
 metadata:
 labels:
 k8s-app: node-problem-detector
 version: v0.1
 _URL_-service: "true"
 spec:
 hostNetwork: true
 containers:
 - name: node-problem-detector
 image: _URL_-detector:v0.1
 securityContext:
 privileged: true
 resources:
 limits:
 cpu: "200m"
 memory: "100Mi"
 requests:
 cpu: "20m"
 memory: "20Mi"
 volumeMounts:
 - name: log
 mountPath: /log
 readOnly: true
 volumes:
 - name: log
 hostPath:
 path: /var/log/
 2. Start node problem detector with kubectl:
 kubectl apply -f _URL_

Using an Addon pod to enable Node Problem Detector
If you are using a custom cluster bootstrap solution and don't need to overwrite the default configuration, you can leverage the Addon pod to further automate the deployment.
Create node-problem-detector.yaml, and save the configuration in the Addon pod's directory /etc/kubernetes/addons/node-problem-detector on a control plane node.
Overwrite the configuration
The default configuration is embedded when building the Docker image of Node Problem Detector.
However, you can use a ConfigMap to overwrite the configuration:
 1. Change the configuration files in config/
 2. Create the ConfigMap node-problem-detector-config:
 kubectl create configmap node-problem-detector-config --from-file=config/

 3. Change the node-problem-detector.yaml to use the ConfigMap:
 apiVersion: apps/v1
 kind: DaemonSet
 metadata:
 name: node-problem-detector-v0.1
 namespace: kube-system
 labels:
 k8s-app: node-problem-detector
 version: v0.1
 _URL_-service: "true"
 spec:
 selector:
 matchLabels:
 k8s-app: node-problem-detector
 version: v0.1
 _URL_-service: "true"
 template:
 metadata:
 labels:
 k8s-app: node-problem-detector
 version: v0.1
 _URL_-service: "true"
 spec:
 hostNetwork: true
 containers:
 - name: node-problem-detector
 image: _URL_-detector:v0.1
 securityContext:
 privileged: true
 resources:
 limits:
 cpu: "200m"
 memory: "100Mi"
 requests:
 cpu: "20m"
 memory: "20Mi"
 volumeMounts:
 - name: log
 mountPath: /log
 readOnly: true
 - name: config # Overwrite the config/ directory with ConfigMap volume
 mountPath: /config
 readOnly: true
 volumes:
 - name: log
 hostPath:
 path: /var/log/
 - name: config # Define ConfigMap volume
 configMap:
 name: node-problem-detector-config
 4. Recreate the Node Problem Detector with the new configuration file:
 # If you have a node-problem-detector running, delete before recreating
 kubectl delete -f _URL_
 kubectl apply -f _URL_

Overwriting a configuration is not supported if a Node Problem Detector runs as a cluster Addon. The Addon manager does not support ConfigMap.
Kernel Monitor
Kernel Monitor is a system log monitor daemon supported in the Node Problem Detector. Kernel monitor watches the kernel log and detects known kernel issues following predefined rules.
The Kernel Monitor matches kernel issues according to a set of predefined rule list in config/kernel-monitor.json. The rule list is extensible. You can expand the rule list by overwriting the configuration.
Add new NodeConditions
To support a new NodeCondition, create a condition definition within the conditions field in config/kernel-monitor.json, for example:
{
 "type": "NodeConditionType",
 "reason": "CamelCaseDefaultNodeConditionReason",
 "message": "arbitrary default node condition message"
}
Detect new problems
To detect new problems, you can extend the rules field in config/kernel-monitor.json with a new rule definition:
{
 "type": "temporary/permanent",
 "condition": "NodeConditionOfPermanentIssue",
 "reason": "CamelCaseShortReason",
 "message": "regexp matching the issue in the kernel log"
}
Configure path for the kernel log device
Check your kernel log path location in your operating system (OS) distribution. The Linux kernel log device is usually presented as /dev/kmsg. However, the log path location varies by OS distribution. The log field in config/kernel-monitor.json represents the log path inside the container. You can configure the log field to match the device path as seen by the Node Problem Detector.
Add support for another log format
Kernel monitor uses the Translator plugin to translate the internal data structure of the kernel log. You can implement a new translator for a new log format.
Recommendations and restrictions
It is recommended to run the Node Problem Detector in your cluster to monitor node health. When running the Node Problem Detector, you can expect extra resource overhead on each node. Usually this is fine, because:
 - The kernel log grows relatively slowly.
 - A resource limit is set for the Node Problem Detector.
 - Even under high load, the resource usage is acceptable. For more information, see the Node Problem Detector benchmark result.
Last modified January 22, 2021 at 11:39 AM PST : change capitalization of daemon name (a09fc68df)


text:
LACMA's newest exhibition,Children of the Plumed Serpent: The Legacy of Quetzalcoatl in Ancient Mexico, opens to the public this Sunday (members get exclusive previews Thursday, Friday, and Saturday). Children of the Plumed Serpent is the first major survey of art created by a particular alliance of ancient kingdoms in southern Mexico who believed its people to be direct descendants of the Plumed Serpent god, Queztzalcoatl. Featuring more than two hundred objects, including painted codices, gold, turquoise mosaics, and ceramics, Children of the Plumed Serpent explores the incredible aesthetic and economic achievements of these little-known cultures.
Now that the installation is complete, we thought we would give you a behind-the-scenes look at the creation of this major exhibition.
These pair of monumental feet come from the site of Tula. The feet belonged to an atlantid warrior who stood behind the column fragment in the third picture below.
These pair of monumental feet come from the site of Tula. The feet belonged to an atlantid warrior who stood behind the column fragment in the next picture.
This image shows the installation of a column fragment from the site of Tula. Because of it's weight, we needed to use a gantry to hoist it upright. The low relief carvings around the column show images of cut shells and feathers, the emblems of Quetzalcoatl.
This image shows a monumental serpent sculpture from the site of Cholula. This serpent, excavated a few years ago, was found in proximity to the great pyramid of Cholula.
Conservator John Hirx examines an incense burner in the form of Quetzalcoatl from the site of Mayapan.
Curator Victoria Lyall works with art preparators Jordan Measavage and Eddie Diaz to arrange objects in the case dedicated to the rain god.
Curator Bertina Olmedo from the Museo Nacional de Antropologia, Mexico, and conservator Lily Doan examine objects after they have arrived from Mexico.
One of the art preparators holding a gold bell recovered from Monte Alban's Tomb 7 in present-day Oaxaca. They need to examine each piece in the round to devise a mount for it.
Curator Fernando Carrizosa and conservator María Barajas from the Templo Mayor Museum in Mexico City watch with conservator Lily Doan as art preparators place the Templo Mayor's turquoise mosaic disk recovered from Offering 99.
This entry was posted on Wednesday, March 28th, 2012 at 9:58 am and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.


text:
Use Default Code Snippets in.NET to Accelerate Coding
Knowing how to use default code snippets in.NET is really beneficial for any programmer. Code snippets are pre-written codes in.NET which programmer can quickly insert using shortcut keys. This makes programmer's job easy by not having to retype frequent reused structures of code.
Code snippets are an excellent way to accelerate your coding. Most frequently used code constructions are included. I'll use MessageBox in my first sample.
Whenever you need to use MessageBox.Show method, you write the entire one line code like this:
But using default Code Snippets you could save time and build more productivity.
Type 'mbox' and press Tab key twice, and the Visual Studio IDE will fill in MessageBox.Show method for you.
Let us try another. Type 'for' and press Tab key twice. IDE will generate the loop syntax automatically.
for (int i = 0; i < length; i++)
Like this way, you can use the following default code snippets.
These are the available Code snippets in Visual Studio IDE.
_TAG_ Creates _TAG_ and _TAG_ directive. _TAG_ Creates _TAG_ and _TAG_ directive. ~ Creates a Destructor. attribute Creates a declaration for a class that derives from Attribute. checked Creates a checked code block. class Creates a class declaration. ctor Creates a constructor. cw Creates a Console.Writline code block. do Creates a do while loop. else Creates an else code block. enum Creates an enum declaration. equals Creates a method declaration that overrides the Equals method. exception Creates a declaration for a class that derives from an exception. for Creates a for loop. foreach Creates a foreach loop. forr Creates a for loop with decrementing loop variable. If Creates a if block. Indexer Creates an index declaration. Interface Creates an interface declaration. Invoke Creates a block that invoke an event. Iterator Creates an iterator. Iterindex Creates a "named" iterator and indexer pair by using a nested class. lock Creates a lock block. mbox Creates a call to MessageBox.Show method. namespace Creates a namespace declaration. prop Creates an auto-implemented property declaration. propfull Creates a property declaration with get and set successors. propg Creates a read-only auto-implemented property with a private "set" accessor. sim Creates a static int Main method declaration. struct Creates a struct declaration. svm Creates a static void Main method declaration. switch Creates a switch block. try Creates a try-catch block. tryf Creates a try-finally block. unchecked Creates an unchecked block. unsafe Creates an unsafe block. using Creates a using directive. while Creates a while loop.
Follow the reactions below and share your own thoughts.


Writing Queries and Interpreted Expressions
 1. Writing Queries and Interpreted Expressions
 1. Introduction
 2. General Rules
 3. Using the Specialized interpreters
 4. Using Acceleo
 5. Using Raw OCL
 6. Using AQL
 7. Providing a Custom Language
 8. Writing Java Services
Introduction
Many parts of a VSM require you to provide interpreted expressions, which will be evaluated at runtime to provide a behavior specific to your domain and representations. Some of these expressions return model elements (in which case we call them queries), while others simply produce text (for example the expressions used for labels), but the principles stay the same.
Sirius does not force the use of a specific language to write these queries. Currently, three different languages are provided by default, and if you have specific needs, you can extend the system and provide your own. You can use several different languages inside the same VSM (but only one in each expression).
Whatever the language(s) you use, because they are all optional from Sirius's point of view, make sure the Viewpoint Specification Project which contains your VSMs explicitly depends on the Sirius plug-in which provides supports for these languages. Otherwise when you modelers are deployed to end-users you can not be sure the proper support will be available. The Viewpoint Specification Projects which are created using the standard wizard are pre-configured to use Acceleo 3. See the sections below for each of the standard languages for the name of the Sirius support plug-ins to depend on if you use the language.
General Rules
Some general rules are independent of the language details.
Auto-completion. First, in the VSM editor, any field in the property view which has a yellow background is an interpreted expression. In these fields, auto-completion can be triggered by hitting Ctrl+Space.
The completion will correspond to the empty expression for the installed query language (e.g. [/] for Acceleo 3). It will also place the cursor at the expected place where it is ready to start typing the expression.
When hitting auto-completion on an empty expression, the first completion proposal will correspond to the variables which are available in the expression's context, and the rest correspond to all the features, services, etc. which are available on the current element.
Sometimes Sirius is not able to statically determine the precise type of the model elements on which an expression will be evaluated. In that case, it assumes a plain EObject. This means you will not get completion proposals specific to your custom types, and that if you use features or services which are not available on EObject, the VSM's validation will fail. To prevent this, if you know the precise type of the elements and the language supports it, add a cast operation to tell Sirius the actual type (e.g. [filter(ExpectedType).theRestOfTheExpression/] if using Acceleo 3.
The Interpreter view. The Interpreter view can be used to develop complex expressions interactively. The view can work in either the native Acceleo mode (corresponding to Acceleo 3/MTL) or in the Sirius mode. In the Sirius mode, you can use any of the languages supported by Sirius, but you lose the benefits of syntax coloring and auto-completion.
To use the Interpreter view, simply open a Sirius representation, select and element in it (for example a shape on a diagram), and type some expression in the view's upper text field. The result of the expression (a set of model elements or a string) will appear in the lower part of the view. If you select a different element, the result will automatically be re-evaluated in the context of the new element.
Warning: When using the Interpreter view from an element selected in a Sirius representation, the context of the expression is not the semantic element, but the view model element used internally by Sirius. To access the semantic element you must use the view's target reference. More concretely, imagine you have a Sirius diagram representing UML classes with nodes. If you select a class and enter [self/] in the interpreter view, the result will not be a UML Class element, but a DNode (the type used internally by Sirius to represent graphical nodes). To get the UML class, you must enter [self.target/]. Keep this in mind when using the Interpreter view to develop expressions you want to use inside a VSM: most expressions defined in the VSM will be evaluated in the context of a semantic element, so you will need to add/remove target references when switching between the two.
Determinism. In general, you should try to ensure that your queries are deterministic, i.e. from the same input model they should always return the same result, and in the same order (if returning collections of elements). Otherwise, each time a representation is refreshed it might become dirty (as Sirius will see the order difference as a change) or even visually unstable (i.e. elements shown in a different order). There are several things to be aware of in order to ensure determinism in your queries:
Using the Specialized interpreters
Sirius provides several specialized interpreters to handle more efficiently some forms of simple expressions which can occur very often in a typical VSM. Each interpreter focuses on a very limited case, and none supports complex expressions. This allows them to be very fast, but it requires that you use them explicitly when possible. All these interpreters are available by default in Sirius, you do not need to declare additional dependencies in your VSM project to be able to use them.
Using Acceleo
Acceleo is the recommended language to use for new VSMs. It provides better static validation than the rest, and more precise auto-completion when editing your expressions. Viewpoint Specification Projects created with the default wizard will be already setup to use it. Otherwise you need to add a dependency to the org.eclipse.sirius.common.acceleo.mtl plug-in to ensure Acceleo support will be available wherever your modelers are used.
Acceleo expressions are enclosed in brackets: [theExpression/]. Inside the brackets you can write any valid Acceleo expression, including using if and let statements, for example. See the Acceleo documentation for the exact syntax and semantics of the language.
Note that currently Acceleo expressions used inside VSMs must be enclosed inside a single bracket. It is not currently possible to mix Acceleo expressions and fixed text (like "prefix[someExpression/]suffix"). Instead, you can use Acceleo's string manipulation operations to obtain the same result: [‹prefix› + someExpression + ‹suffix›/]). Related to this, auto-completion only works if you are inside a well-formed bracket (i.e. [<cursor>/]); if you have simply opened the bracket but not closed it (i.e. [<cursor>), completion will not be available.
Acceleo expressions can transparently invoke methods from Java classes which follow the service methods conventions and have been properly declared in the VSM. Note that currently this only works if the Java service class is in the same project as the VSM. You can also invoke Acceleo queries defined in .mtl files in your Viewpoint Specification Project. For this to work, your Viewpoint Specification Project should be an Acceleo Generator project. This is the default for projects created with the wizard. If you want to use queries from .mtl files in you Sirius project, the parent Viewpoint element must have a Java Extension element which references the MTL file, using the com::example::domain::design::module syntax. Also make sure to read _URL_ to ensure the project is built correctly, or the queries defined in the .mtl files may not be available when the project is deployed as a plug-in.
Note: due to an incompatible change in serialization format in EMF 2.9, if you use external .mtl files in your modeler definitions and build your modeler plug-ins using EMF 2.9 or later, the resulting modeler will not work with previous versions of EMF (as the resulting .emtl files will not load correctly with EMF 2.8 and earlier). For reference, EMF 2.9 corresponds to Eclipse 4.3 (Kepler).
Acceleo is very precise (and very demanding) about the types of elements your queries are executed on. This generally means you get better auto-completion and more useful validation and diagnostics. However sometimes Sirius is not able to statically determine the precise type of the model elements on which an expression will be evaluated. In that case, it assumes a plain EObject. If you know the actual type which will be used, prefix your expression with filter(ExpectedType) to help Sirius. Note that if the actual type at runtime is not compatible with ExpectedType, the rest of your expression will silently be ignored.
In the context of Sirius, you have access to a special feature which can be used to follow «back-links» or «cross-references». From a given model element, this allows you to easily (and efficiently) find all the elements which refer to it in the scope of the models and representations in the same modeling project. This feature is available through the eInverse() method, which can be used on any model element inside an Acceleo expression.
Note that in most cases, expressions in Sirius are evaluated in a context where variables are


Y 5554
Known as: Y-5554

National Institutes of Health
Topic mentions per year
Topic mentions per year
_PHONE_
_PHONE_
Papers overview
Semantic Scholar uses AI to extract papers important to this topic.
1975
1975
The toxicity of drugs was determined using embryonic skin and muscle from humans (Flow 1,000). The dosage causing a 50… (More)
Is this relevant?
1975
1975
 - Nihon yakurigaku zasshi. Folia pharmacologica…
 - 1975
Effects of drugs were studied on L-cell line: L, of mouse subcutaneous tissue origin. Results are as follows: the concentrations… (More)
Is this relevant?


Supported by a Cigna research study, Maddy Rao sensibly details the importance of forming connections and a sense of community while experiencing isolation, due to the uncertainty of our new normal way of life. stressing that "brand building is a long game, and like any relationship, requires constant nurturing." She explores, also, how certain brands have provided messages of unity and community, aiming to provide a sense of hope and togetherness. In identifying challenges people feel due to isolation, she demonstrates that "with uncertainty around consumer spending, supply chain challenges and consumer behaviors not seen in any marketing playbook, brands are faced with tough decisions around their communication."
Kinesso is our partner and parent company.
Read the original article on