41 research outputs found

    Bridging the GUI gap with reactive values and relations

    Get PDF
    There are at present two ways to write GUIs for functional code. One is to use standard GUI toolkits, with all the benefits they bring in terms of feature completeness, choice of platform, conformance to platform-specific look-and-feel, long-term viability, etc. However, such GUI APIs mandate an imperative programming style for the GUI and related parts of the application. Alternatively, we can use a functional GUI toolkit. The GUI can then be written in a functional style, but at the cost of foregoing many advantages of standard toolkits that often will be of critical importance. This paper introduces a light-weight framework structured around the notions of reactive values and reactive relations . It allows standard toolkits to be used from functional code written in a functional style. We thus bridge the gap between the two worlds, bringing the advantages of both to the developer. Our framework is available on Hackage and has been been validated through the development of non-trivial applications in a commercial context, and with different standard GUI toolkits

    Prospective Power Calculations for the Four Lab Study of A Multigenerational Reproductive/Developmental Toxicity Rodent Bioassay Using A Complex Mixture of Disinfection By-Products in the Low-Response Region

    Get PDF
    In complex mixture toxicology, there is growing emphasis on testing environmentally representative doses that improve the relevance of results for health risk assessment, but are typically much lower than those used in traditional toxicology studies. Traditional experimental designs with typical sample sizes may have insufficient statistical power to detect effects caused by environmentally relevant doses. Proper study design, with adequate statistical power, is critical to ensuring that experimental results are useful for environmental health risk assessment. Studies with environmentally realistic complex mixtures have practical constraints on sample concentration factor and sample volume as well as the number of animals that can be accommodated. This article describes methodology for calculation of statistical power for non-independent observations for a multigenerational rodent reproductive/developmental bioassay. The use of the methodology is illustrated using the U.S. EPA’s Four Lab study in which rodents were exposed to chlorinated water concentrates containing complex mixtures of drinking water disinfection by-products. Possible experimental designs included two single-block designs and a two-block design. Considering the possible study designs and constraints, a design of two blocks of 100 females with a 40:60 ratio of control:treated animals and a significance level of 0.05 yielded maximum prospective power (~90%) to detect pup weight decreases, while providing the most power to detect increased prenatal loss

    Managing Stack Frames in Smalltalk

    No full text
    The Smalltalk programming language allows contexts (stack frames) to be accessed and manipulated in very general ways. This sometimes requires that contexts be retained even after they have terminated executing, and that they be reclaimed other than by LIFO stack discipline. The authoritative definition of Smalltalk [Goldberg and Robson 831 use s reference counting garbage collection to manage contexts, an approach found to be inadequate i n practice [Krasner, et al . 831 . Deutsch and Schiffman have described a technique that uses an actual stack as much as possible [Deutsch and Schiff - man 84]. Here we offer a less complex techniqu e that we expect will have lower total overhead an d reclaim many frames sooner and more easily. We are implementing our technique as part of a stat e of the art Smalltalk interpreter . The approach may apply to other languages that allow indefinite lifetimes for execution contexts, be they interpreted or compiled

    Managing stack frames in Smalltalk

    No full text

    Detecting performance anti-patterns for applications developed using object-relational mapping

    No full text
    Object-Relational Mapping (ORM) provides developers a conceptual abstraction for mapping the application code to the underlying databases. ORM is widely used in industry due to its convenience; permitting developers to focus on de-veloping the business logic without worrying too much about the database access details. However, developers often write ORM code without considering the impact of such code on database performance, leading to cause transactions with timeouts or hangs in large-scale systems. Unfortunately, there is little support to help developers automatically de-tect suboptimal database accesses. In this paper, we propose an automated framework to de-tect ORM performance anti-patterns. Our framework auto-matically flags performance anti-patterns in the source code. Furthermore, as there could be hundreds or even thousands of instances of anti-patterns, our framework provides sup-port to prioritize performance bug fixes based on a statis-tically rigorous performance assessment. We have success-fully evaluated our framework on two open source and one large-scale industrial systems. Our case studies show that our framework can detect new and known real-world perfor-mance bugs and that fixing the detected performance anti-patterns can improve the system response time by up t
    corecore