text:
Q: Reference a cell that is defined in a string in another cell I have a worksheet set up as follows:
$B$13 = the string "'TopCap'!$C$12"
$D$13 = the string "'TopCap'!$E$12"

The cell in Worksheet TopCap cell $C$12 has the formula that the Goal Seek needs. And TopCap!$E$12 is where the changing cell is.
Here is my code:
Private Sub CommandButton1_Click()

    Range("$B$13").GoalSeek _
        goal:=Range("$C$13").Value, _
        ChangingCell:=Range("$D$13").Value

End Sub

How do I write the code to have the GoalSeek Range look in the cell in TopCap for the formula?
Like Range('TopCap'!$C$12).GoalSeek _
I hope I have described this well.
Please ask if I need to describe it better.
Any assistance is appreciated.
Rich

A: You need to nest a couple of Range objects; one to put the Range.Value property and another one wrapping the first to use the cell's value to define the range.
Private Sub CommandButton1_Click()

    Range(Range("B13").Value).GoalSeek _
        Goal:=Range(Range("C13").Value), _
        ChangingCell:=Range(Range("D13").Value)

End Sub

So Range(Range("D13").Value).Address(external:=True) will resolve to TopCap'!$E$12.
I've removed the $ absolute anchors from the string cell addresses. As strings, they are not going to change and are unnecessary. This is a Private Sub so parent worksheet references may not be necessary (e.g. Range("D13").Value) but wrapping that in a With ... End With statement wouldn't be a bad idea.


Thomaston's Whispering Pines Village Active Adult Community offers 61 units located close to town center with easy access to highways and shopping. This New England Community is nestled amongst Pine trees and nature in Litchfield County. There are several home styles to choose from including units with and without basements to fit every budget. These homes are quality built and all offer first floor master bedroom suites, spacious great rooms, plenty of storage, city utilities, CAIR and more. Choose from various floor plans with or with out upper levels and customize your unit from our list of additional features. Beginning Phase II, low maintenance fees and competitive home packages.


text:
package me.hatter.tools.jtop.main;

import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;

import jline.Terminal;
import me.hatter.tools.commons.args.UnixArgsutil;
import me.hatter.tools.commons.bytes.ByteUtil;
import me.hatter.tools.commons.bytes.ByteUtil.ByteFormat;
import me.hatter.tools.commons.classloader.ClassLoaderUtil;
import me.hatter.tools.commons.collection.CollectionUtil;
import me.hatter.tools.commons.color.Color;
import me.hatter.tools.commons.color.Font;
import me.hatter.tools.commons.color.Text;
import me.hatter.tools.commons.jvm.HotSpotVMUtil;
import me.hatter.tools.commons.jvm.HotSpotVMUtil.JDKLib;
import me.hatter.tools.commons.jvm.HotSpotVMUtil.JDKTarget;
import me.hatter.tools.commons.misc.ShutdownSignal;
import me.hatter.tools.commons.screen.Printer;
import me.hatter.tools.commons.screen.TermUtils;
import me.hatter.tools.commons.screen.impl.BatchOutputScreenPrinter;
import me.hatter.tools.commons.screen.impl.NormalPrinter;
import me.hatter.tools.jtop.main.objects.MainOutput;
import me.hatter.tools.jtop.management.JTopMXBean;
import me.hatter.tools.jtop.rmi.RmiClient;
import me.hatter.tools.jtop.rmi.interfaces.JClassLoadingInfo;
import me.hatter.tools.jtop.rmi.interfaces.JGCInfo;
import me.hatter.tools.jtop.rmi.interfaces.JMemoryInfo;
import me.hatter.tools.jtop.rmi.interfaces.JThreadInfo;
import me.hatter.tools.jtop.rmi.interfaces.StackTraceElement;
import me.hatter.tools.jtop.util.EnvUtil;

public class Main {

    private static Object term;

    public static void main(String[] args) {
        try {
            UnixArgsutil.parseGlobalArgs(args);
            boolean advanced = EnvUtil.getAdvanced();

            HotSpotVMUtil.autoAddToolsJarDependency(JDKTarget.SYSTEM_CLASSLOADER, JDKLib.TOOLS);

            if (advanced) {
                ClassLoaderUtil.addResourceToSystemClassLoader("/commons-resources/jline-2.9.jar");
            }

            if (UnixArgsutil.ARGS.args().length == 0) {
                System.out.println("[ERROR] pid is not assigned.");
                usage();
                System.exit(0);
            }

            String pid = UnixArgsutil.ARGS.args()[0];

            RmiClient rc = new RmiClient(pid);
            JTopMXBean jTopMXBean = rc.getJTopMXBean();
            ShutdownSignal shutdownSignal = new ShutdownSignal();

            long lastNano = System.nanoTime();
            MainOutput lastMainOutput = null;
            Map<Long, JThreadInfo> lastJThreadInfoMap = null;
            int dumpcount = advanced ? Integer.MAX_VALUE : EnvUtil.getDumpCount();
            for (int c = -1; c < dumpcount; c++) {
                long nano = System.nanoTime();
                MainOutput mainOutput = new MainOutput(c + 1);
                JThreadInfo[] jThreadInfos = jTopMXBean.listThreadInfos();
                Map<Long, JThreadInfo> jThreadInfoMap = jThreadInfoToMap(jThreadInfos);
                if (lastMainOutput == null) {
                    System.out.println("[INFO] First Round");
                } else {
                    shutdownSignal.acquire();
                    try {
                        Printer printer = new NormalPrinter();
                        if (advanced) {
                            if (term == null) {
                                term = jline.TerminalFactory.create();
                            }
                            printer = new BatchOutputScreenPrinter(((Terminal) term).getWidth(),
                                                                   ((Terminal) term).getHeight());
                        }
                        displayRound(jTopMXBean, lastNano, lastMainOutput, lastJThreadInfoMap, nano, mainOutput,
                                     jThreadInfos, printer);
                    } finally {
                        shutdownSignal.release();
                    }
                }
                lastNano = nano;
                lastMainOutput = mainOutput;
                lastJThreadInfoMap = jThreadInfoMap;

                if (c < (dumpcount - 1)) {
                    Thread.sleep(EnvUtil.getSleepMillis());
                }
            }
            System.out.println("[INFO] Dump Finish");
        } catch (Exception e) {
            System.err.println("[ERROR] unknow error occured: " + e.getMessage());
            e.printStackTrace();
            System.out.print(TermUtils.RESET);
        }
    }

    private static JMemoryInfo                      oldJMemoryInfo;
    private static JClassLoadingInfo                oldJClassLoadingInfo;
    private static Map<String, JGCInfo>             oldJGCInfoMap     = new HashMap<String, JGCInfo>();
    private static Map<Long, JThreadInfo>           oldJThreadInfoMap = new HashMap<Long, JThreadInfo>();
    private static Map<Thread.State, AtomicInteger> oldStateThreadMap = new HashMap<Thread.State, AtomicInteger>();

    private static void displayRound(JTopMXBean jTopMXBean, long lastNano, MainOutput lastMainOutput,
                                     Map<Long, JThreadInfo> lastJThreadInfoMap, long nano, MainOutput mainOutput,
                                     JThreadInfo[] jThreadInfos, Printer printer) {
        // display to console
        if (printer.getClass() == NormalPrinter.class) {
            System.out.println("NEW ROUND =================================================================== ");
        }
        JThreadInfo[] cJThreadInfos = caculateJThreadInfos(jThreadInfos, lastJThreadInfoMap);
        cJThreadInfos = sortJThreadInfos(cJThreadInfos);
        int threadtopn = EnvUtil.getThreadTopN();
        int stacktracetopn = EnvUtil.getStacktraceTopN();

        long cost = nano - lastNano;
        long totalCpu = 0;
        long totalUser = 0;
        for (JThreadInfo jThreadInfo : cJThreadInfos) {
            totalCpu += jThreadInfo.getCpuTime();
            totalUser += jThreadInfo.getUserTime();
        }
        mainOutput.setTotalThreadCount(cJThreadInfos.length);
        mainOutput.setTotalCpuTime(totalCpu);
        mainOutput.setTotalUserTime(totalUser);

        String size = EnvUtil.getSize();

        DecimalFormat YFF = new DecimalFormat("0.00");

        Map<Thread.State, AtomicInteger> stateMap = new HashMap<Thread.State, AtomicInteger>();
        for (JThreadInfo jThreadInfo : cJThreadInfos) {
            Thread.State state = jThreadInfo.getThreadState();
            if (stateMap.containsKey(state)) {
                stateMap.get(state).incrementAndGet();
            } else {
                stateMap.put(state, new AtomicInteger(1));
            }
        }

        if (!UnixArgsutil.ARGS.flags().contains("summaryoff")) {
            JMemoryInfo jMemoryInfo = jTopMXBean.getMemoryInfo();
            mainOutput.setjMemoryInfo(jMemoryInfo);
            // print heap
            printer.print("Heap Memory: ");
            if ((!EnvUtil.getColor()) || (oldJMemoryInfo == null)) {
                printer.print("INIT=" + toSize(jMemoryInfo.getHeap().getInit(), size));
                printer.print("  ");
                printer.print("USED=" + toSize(jMemoryInfo.getHeap().getUsed(), size));
                printer.print("  ");
                printer.print("COMMITED=" + toSize(jMemoryInfo.getHeap().getCommitted(), size));
                printer.print("  ");
                printer.print("MAX=" + toSize(jMemoryInfo.getHeap().getMax(), size));
            } else {
                printer.print(Text.createText(getFont(jMemoryInfo.getHeap().getInit(),
                                                      oldJMemoryInfo.getHeap().getInit()),
                                              "INIT=" + toSize(jMemoryInfo.getHeap().getInit(), size)));
                printer.print("  ");
                printer.print(Text.createText(getFont(jMemoryInfo.getHeap().getUsed(),
                                                      oldJMemoryInfo.getHeap().getUsed()),
                                              "USED=" + toSize(jMemoryInfo.getHeap().getUsed(), size)));
                printer.print("  ");
                printer.print(Text.createText(getFont(jMemoryInfo.getHeap().getCommitted(),
                                                      oldJMemoryInfo.getHeap().getCommitted()),
                                              "COMMITED=" + toSize(jMemoryInfo.getHeap().getCommitted(), size)));
                printer.print("  ");
                printer.print(Text.createText(getFont(jMemoryInfo.getHeap().getMax(), oldJMemoryInfo.getHeap().getMax()),
                                              "MAX=" + toSize(jMemoryInfo.getHeap().getMax(), size)));
            }
            printer.println();

            // print non heap
            printer.print("NonHeap Memory: ");
            if ((!EnvUtil.getColor()) || (oldJMemoryInfo == null)) {
                printer.print("INIT=" + toSize(jMemoryInfo.getNonHeap().getInit(), size));
                printer.print("  ");
                printer.print("USED=" + toSize(jMemoryInfo.getNonHeap().getUsed(), size));
                printer.print("  ");
                printer.print("COMMITED=" + toSize(jMemoryInfo.getNonHeap().getCommitted(), size));
                printer.print("  ");
                printer.print("MAX=" + toSize(jMemoryInfo.getNonHeap().getMax(), size));
            } else {
                printer.print(Text.createText(getFont(jMemoryInfo.getNonHeap().getInit(),
                                                      oldJMemoryInfo.getNonHeap().getInit()),
                                              "INIT=" + toSize(jMemoryInfo.getNonHeap().getInit(), size)));
                printer.print("  ");
                printer.print(Text.createText(getFont(jMemoryInfo.getNonHeap().getUsed(),
                                                      oldJMemoryInfo.getNonHeap().getUsed()),
                                              "USED=" + toSize(jMemoryInfo.getNonHeap().getUsed(), size)));
                printer.print("  ");
                printer.print(Text.createText(getFont(jMemoryInfo.getNonHeap().getCommitted(),
                                                      oldJMemoryInfo.getNonHeap().getCommitted()),
                                              "COMMITED=" + toSize(jMemoryInfo.getNonHeap().getCommitted(), size)));
                printer.print("  ");
                printer.print(Text.createText(getFont(jMemoryInfo.getNonHeap().getMax(),
                                                      oldJMemoryInfo.getNonHeap().getMax()),
                                              "MAX=" + toSize(jMemoryInfo.getNonHeap().getMax(), size)));
            }
            printer.println();
            oldJMemoryInfo = jMemoryInfo;

            // print gc info
            JGCInfo[] jgcInfos = jTopMXBean.getGCInfos();
            for (JGCInfo jgcInfo : jgcInfos) {
                printer.print("GC ");
                printer.print(jgcInfo.getName());
                printer.print("  ");
                printer.print(jgcInfo.getIsValid() ? "VALID" : "NOT_VALID");
                printer.print("  ");
                printer.print(Arrays.asList(jgcInfo.getMemoryPoolNames()).toString());
                printer.print("  ");
                JGCInfo oldJGCInfo = oldJGCInfoMap.get(jgcInfo.getName());
                if ((!EnvUtil.getColor()) || (oldJGCInfo == null)) {
                    printer.print("GC=" + jgcInfo.getCollectionCount());
                    printer.print("  ");
                    printer.print("GCT=" + jgcInfo.getCollectionTime());
                } else {
                    printer.print(Text.createText(getFont(jgcInfo.getCollectionCount(), oldJGCInfo.getCollectionCount()),
                                                  "GC=" + jgcInfo.getCollectionCount()));
                    printer.print("  ");
                    printer.print(Text.createText(getFont(jgcInfo.getCollectionTime(), oldJGCInfo.getCollectionTime()),
                                                  "GCT=" + jgcInfo.getCollectionTime()));
                }
                printer.println();
                oldJGCInfoMap.put(jgcInfo.getName(), jgcInfo);
            }

            JClassLoadingInfo jClassLoadingInfo = jTopMXBean.getClassLoadingInfo();
            printer.print("ClassLoading ");
            if ((!EnvUtil.getColor()) || (oldJClassLoadingInfo == null)) {
                printer.print("LOADED=" + jClassLoadingInfo.getLoadedClassCount());
                printer.print("  ");
                printer.print("TOTAL_LOADED=" + jClassLoadingInfo.getTotalLoadedClassCount());
                printer.print("  ");
                printer.print("UNLOADED=" + jClassLoadingInfo.getUnloadedClassCount());
            } else {
                printer.print(Text.createText(getFont(jClassLoadingInfo.getLoadedClassCount(),
                                                      oldJClassLoadingInfo.getLoadedClassCount()),
                                              "LOADED=" + jClassLoadingInfo.getLoadedClassCount()));
                printer.print("  ");
                printer.print(Text.createText(getFont(jClassLoadingInfo.getTotalLoadedClassCount(),
                                                      oldJClassLoadingInfo.getTotalLoadedClassCount()),
                                              "TOTAL_LOADED=" + jClassLoadingInfo.getTotalLoadedClassCount()));
                printer.print("  ");
                printer.print(Text.createText(getFont(jClassLoadingInfo.getUnloadedClassCount(),
                                                      oldJClassLoadingInfo.getUnloadedClassCount()),
                                              "UNLOADED=" + jClassLoadingInfo.getUnloadedClassCount()));
            }
            printer.println();
            oldJClassLoadingInfo = jClassLoadingInfo;
        }

        // print thread cpu usage
        printer.print("Total threads: ");
        if ((!EnvUtil.getColor()) || oldStateThreadMap.isEmpty()) {
            printer.print(String.valueOf(cJThreadInfos.length));
            printer.print("  ");
            printer.print("CPU=" + TimeUnit.NANOSECONDS.toMillis(totalCpu) + " ("
                          + YFF.format(((double) totalCpu) * 100 / cost) + "%)");
            printer.print("  ");
            printer.print("USER=" + TimeUnit.NANOSECONDS.toMillis(totalUser) + " ("
                          + YFF.format(((double) totalUser) * 100 / cost) + "%)");
        } else {
            printer.print(Text.createText(getFont(cJThreadInfos.length, mainOutput.getTotalThreadCount()),
                                          String.valueOf(cJThreadInfos.length)));
            printer.print("  ");
            printer.print(Text.createText(getFont(totalCpu, lastMainOutput.getTotalCpuTime()),
                                          "CPU=" + TimeUnit.NANOSECONDS.toMillis(totalCpu) + " ("
                                                  + YFF.format(((double) totalCpu) * 100 / cost) + "%)"));
            printer.print("  ");
            printer.print(Text.createText(getFont(totalUser, lastMainOutput.getTotalUserTime()),
                                          "USER=" + TimeUnit.NANOSECONDS.toMillis(totalUser) + " ("
                                                  + YFF.format(((double) totalUser) * 100 / cost) + "%)"));
        }
        printer.println();

        // print thread state count
        for (int i = 0; i < Thread.State.values().length; i++) {
            Thread.State state = Thread.State.values()[i];
            AtomicInteger ai = stateMap.get(state);
            AtomicInteger oldAi = oldStateThreadMap.get(state);
            ai = (ai == null) ? new AtomicInteger(0) : ai;
            if (EnvUtil.getColor() || (oldAi == null)) {
                printer.print(state + "=" + ai.get());
            } else {
                printer.print(Text.createText(getFont(ai.get(), oldAi.get()), state + "=" + ai.get()));
            }
            if (i < (Thread.State.values().length - 1)) {
                printer.print("  ");
            }
            oldStateThreadMap.put(state, ai);
        }
        printer.println();
        printer.println();

        // print thread stack detail
        for (int i = 0; ((i < cJThreadInfos.length) && (i < threadtopn)); i++) {
            JThreadInfo jThreadInfo = cJThreadInfos[i];
            JThreadInfo oldJThreadInfo = oldJThreadInfoMap.get(jThreadInfo.getThreadId());
            printer.print(jThreadInfo.getThreadName());
            printer.print("  ");
            printer.print("TID=" + jThreadInfo.getThreadId());
            printer.print("  ");
            printer.print("STATE=" + jThreadInfo.getThreadState().name());
            printer.print("  ");
            if ((!EnvUtil.getColor()) || (oldJThreadInfo == null)) {
                printer.print("CPU_TIME=" + TimeUnit.NANOSECONDS.toMillis(jThreadInfo.getCpuTime()) + " ("
                              + YFF.format(((double) jThreadInfo.getCpuTime()) * 100 / cost) + "%)");
                printer.print("  ");
                printer.print("USER_TIME=" + TimeUnit.NANOSECONDS.toMillis(jThreadInfo.getUserTime()) + " ("
                              + YFF.format(((double) jThreadInfo.getUserTime()) * 100 / cost) + "%)");
                printer.print(" ");
                printer.print("Allocted: " + toSize(jThreadInfo.getAlloctedBytes(), size));
            } else {
                printer.print(Text.createText(getFont(jThreadInfo.getCpuTime(), oldJThreadInfo.getCpuTime()),
                                              "CPU_TIME=" + TimeUnit.NANOSECONDS.toMillis(jThreadInfo.getCpuTime())
                                                      + " ("
                                                      + YFF.format(((double) jThreadInfo.getCpuTime()) * 100 / cost)
                                                      + "%)"));
                printer.print("  ");
                printer.print(Text.createText(getFont(jThreadInfo.getUserTime(), oldJThreadInfo.getUserTime()),
                                              "USER_TIME=" + TimeUnit.NANOSECONDS.toMillis(jThreadInfo.getUserTime())
                                                      + " ("
                                                      + YFF.format(((double) jThreadInfo.getUserTime()) * 100 / cost)
                                                      + "%)"));
                printer.print(" ");
                printer.print(Text.createText(getFont(jThreadInfo.getAlloctedBytes(), oldJThreadInfo.getAlloctedBytes()),
                                              "Allocted: " + toSize(jThreadInfo.getAlloctedBytes(), size)));
            }
            printer.println();
            int matchCount = 0;
            for (int j = 0; ((j < jThreadInfo.getStackTrace().length) && (matchCount < stacktracetopn)); j++) {
                StackTraceElement stackTrace = jThreadInfo.getStackTrace()[j];
                if (isMatch(stackTrace)) {
                    matchCount++;
                    printer.println("    " + stackTrace.toString());
                }
            }
            if ((matchCount == 0) && (jThreadInfo.getStackTrace().length > 0)) {
                printer.println("    ---- all filtered ----");
            }
            printer.println();
            oldJThreadInfoMap.put(jThreadInfo.getThreadId(), jThreadInfo);
        }
        printer.println();
        printer.finish();
    }

    static boolean isMatch(StackTraceElement element) {
        List<String> excludes = UnixArgsutil.ARGS.kvalues("excludes");
        List<String> includes = UnixArgsutil.ARGS.kvalues("includes");
        if (CollectionUtil.isEmpty(excludes)) {
            return true;
        }
        boolean isMatch = false;
        for (String e : excludes) {
            if (isMatchOne(element.toString(), e)) {
                isMatch = true;
            }
        }
        if (!isMatch) {
            return true;
        }
        if (!CollectionUtil.isEmpty(includes)) {
            for (String i : includes) {
                if (isMatchOne(element.toString(), i)) {
                    return true;
                }
            }
        }
        return false;
    }

    static boolean isMatchOne(String ele, String pattern) {
        if (pattern.startsWith("^")) {
            if (ele.toString().startsWith(pattern.substring(1))) {
                return true;
            }
        } else {
            if (ele.toString().contains(pattern)) {
                return true;
            }
        }
        return false;
    }

    static JThreadInfo[] sortJThreadInfos(JThreadInfo[] cJThreadInfos) {
        boolean isSortMem = EnvUtil.getSortMem();
        if (isSortMem) {
            Arrays.sort(cJThreadInfos, new Comparator<JThreadInfo>() {

                public int compare(JThreadInfo o1, JThreadInfo o2) {
                    int rMem = Long.valueOf(o2.getAlloctedBytes()).compareTo(Long.valueOf(o1.getAlloctedBytes()));
                    if (rMem != 0) {
                        return rMem;
                    }
                    return o2.getThreadName().compareTo(o1.getThreadName());
                }
            });
        } else {
            Arrays.sort(cJThreadInfos, new Comparator<JThreadInfo>() {

                public int compare(JThreadInfo o1, JThreadInfo o2) {
                    int rCpu = Long.valueOf(o2.getCpuTime()).compareTo(Long.valueOf(o1.getCpuTime()));
                    if (rCpu != 0) {
                        return rCpu;
                    }
                    int rUser = Long.valueOf(o2.getUserTime()).compareTo(Long.valueOf(o1.getUserTime()));
                    if (rUser != 0) {
                        return rUser;
                    }
                    return o2.getThreadName().compareTo(o1.getThreadName());
                }
            });
        }
        return cJThreadInfos;
    }

    private static Font getFont(long v1, long v2) {
        if ((!EnvUtil.getColor()) || (v2 == v1)) {
            return Font.createFont(null);
        } else if (v2 < v1) {
            return Font.createFont(Color.getColor(TermUtils.XBack.RED));
        } else {
            return Font.createFont(Color.getColor(TermUtils.XBack.GREEN));
        }
    }

    private static JThreadInfo[] caculateJThreadInfos(JThreadInfo[] jThreadInfos,
                                                      Map<Long, JThreadInfo> lastJThreadInfoMap) {
        JThreadInfo[] cjThreadInfos = new JThreadInfo[jThreadInfos.length];
        for (int i = 0; i < jThreadInfos.length; i++) {
            JThreadInfo jThreadInfo = jThreadInfos[i];
            JThreadInfo lastJThreadInfo = lastJThreadInfoMap.get(Long.valueOf(jThreadInfo.getThreadId()));
            if (lastJThreadInfo == null) {
                cjThreadInfos[i] = jThreadInfo;
            } else {
                cjThreadInfos[i] = new JThreadInfo(jThreadInfo,
                                                   jThreadInfo.getCpuTime() - lastJThreadInfo.getCpuTime(),
                                                   jThreadInfo.getUserTime() - lastJThreadInfo.getUserTime(),
                                                   jThreadInfo.getAlloctedBytes() - lastJThreadInfo.getAlloctedBytes());
            }
        }
        return cjThreadInfos;
    }

    private static Map<Long, JThreadInfo> jThreadInfoToMap(JThreadInfo[] jThreadInfos) {
        Map<Long, JThreadInfo> jThreadInfoMap = new HashMap<Long, JThreadInfo>();
        for (JThreadInfo jThreadInfo : jThreadInfos) {
            jThreadInfoMap.put(Long.valueOf(jThreadInfo.getThreadId()), jThreadInfo);
        }
        return jThreadInfoMap;
    }

    private static String toSize(long b, String s) {
        return ByteUtil.formatBytes(ByteFormat.fromString(s), b);
    }

    private static void usage() {
        System.out.println("Usage[b121209]:");
        System.out.println("java -jar jtop.jar [options] <pid> [<interval> [<count>]]");
        System.out.println("-OR-");
        System.out.println("java -cp jtop.jar jtop [options] <pid> [<interval> [<count>]]");
        System.out.println("    -size <B|K|M|G|H>             Size, case insensitive (default: B, H for human)");
        System.out.println("    -thread <N>                   Thread Top N (default: 5)");
        System.out.println("    -stack <N>                    Stacktrace Top N (default: 8)");
        System.out.println("    -excludes                     Excludes (string.contains)");
        System.out.println("    -includes                     Includes (string.contains, excludes than includes)");
        System.out.println("    --color                       Display color (default: off)");
        System.out.println("    --sortmem                     Sort by memory allocted (default: off)");
        System.out.println("    --summaryoff                  Do not display summary (default: off)");
        System.out.println("    --advanced                    Do display like 'top' (default: off)");
        System.out.println();
    }
}

redpajama_set_name: RedPajamaGithub


At Zesty we are proud to support Milton Keynes University Hospital with their Innovation roadmap, please vote for them in the #DL100 Awards 2019.
The MKUH MyCare Patient Portal has been a huge 2 year success for patients, staff and clinicians.
MyCare Patient Portal Milton Keynes University Hospital NHS Foundation Trust It is easier to change flights or book hotels than it is to change hospital out-patient appointments.
Empowering people to manage appointments on their smartphones is a unique and crucial first step in developing our patient portal, working together as partners and providing comprehensive access to their health records.
Click on the link below to vote now!


AJ and Susan Jacques of Stillwater are two of five Oklahoma State University graduates who are being inducted into the OSU Hall of Fame on February 8.
The Jacqueses both graduated from OSU in 1975 – Susan with a degree in recreation and AJ in agricultural economics. While at OSU, AJ was a member of Alpha Gamma Rho, and Susan was a member of Pi Beta Phi.
AJ would go on to have a successful career as an oil and gas producer and contractor for more than 35 years, including serving as the president of Atlas Drilling, LLC in Woodward, Oklahoma. In addition to starting Atlas Drilling, LLC, AJ also started Cheyenne Drilling Company and built it into a multi-state drilling operation with 17 rigs. Susan worked as a middle school teacher and received her middle school science degree from St. Mary of the Plains in 1987.
The couple have volunteered their time on various boards and councils. Both are members of the OSU Board of Governors. AJ serves on the Alumni Board for Alpha Gamma Rho. He also serves on the Board of Directors for the National Cowboy & Western Heritage Museum and the Board of Trustees for the OSU Foundation. Susan is an active member of the Pi Phi Alumnae Club and the Friends of Music Board. She is also on the Events Committee for Women for OSU.
Over the years, AJ and Susan have been honored multiple times. The OSU Foundation recognized them as Proud & Immortal Society Inductees. They are also members of the OSU Heritage Society. AJ was honored as the Alpha Gamma Rho Outstanding Alumnus, and Susan was inducted into the OSU College of Education, Health and Aviation Hall of Fame in 2014. The couple has continued to contribute to OSU throughout the years, including gifts to the College of Agricultural Sciences & Natural Resources, McKnight Center, OSU Athletics, and the College of Education, Health and Aviation.
AJ and Susan currently reside in Stillwater, Oklahoma. They have two daughters and three grandchildren. They are both life members of the OSU Alumni Association.
This year's other inductees include Joseph Eastin, Jennifer M. Grigsby, and Neal McCaleb. The induction ceremony, hosted by the OSU Alumni Association, will take place on Friday, February 8 at the ConocoPhillips OSU Alumni Center. For more information about the 2019 OSU Hall of Fame honorees and induction ceremony, visit ORANGECONNECTION.org/awards.


text:
Q: How to call a function from another file I have a livescript which is trying to call another function. This function is called "attempt1.m" and is located in the same location as the live script.
[f,A,b,staffNumberVector] = attempt1(staffTable,requirements);

However I generate the following error "undefined function or variable "attempt1""

redpajama_set_name: RedPajamaStackExchange


text:
Box Office: 'Halloween' Still Scares Around The Globe
By: LATF Staff | Oct. 28, 2018, 4:03 p.m.
Filed in: Film > Box Office
Universal's horror hit 'Halloween' has another great weekend pulling in $57.645 million globally in its second weekend for a worldwide total to date of $172.3 million as Warner Bros.' awards season contender 'A Star Is Born' crosses the $100 million mark internationally for a global cume of $253.3 million while Sony's 'Venom' impressively eclipses the $500 million mark worldwide.
The top 10 worldwide weekend box office estimates:
Halloween - Universal - $57.6M
Star Is Born, A - Warner Bros. - $31.7M
Venom - Sony - $28.1M
Smallfoot - Warner Bros. - $22.1M
Predator, The - 20th Century Fox - $20.7M
Goosebumps 2: Haunted Halloween - Sony - $17.8M
Bohemian Rhapsody - 20th Century Fox - $12.2M
First Man - Universal - $11.2M
Hunter Killer - Multiple - $9.8M
Johnny English Strikes Again - Universal - $8.7M
Rampant - Multiple - $7.9M
Grand Bain, Le - Multiple - $7.8M
The top 10 domestic weekend box office estimates:
Goosebumps 2: Haunted Halloween - Sony - $7.5M
Hunter Killer - Lionsgate - $6.7M
Hate U Give, The - 20th Century Fox - $5.1M
First Man - Universal - $4.9M
Smallfoot - Warner Bros. - $4.8M
Night School - Universal - $3.3M
Mid90s - A24 - $3.0M
Box Office: 'Venom' Rises Above 'A Star Is Born'
Box Office: 'Venom' & 'A Star Is Born' Go Head-To-Head For #1
Box Office: 'Halloween' Reboot Scares Its Way To #1
'Bohemian Rhapsody' Rocks The Global Box Office Earning $122 Million
Box Office: 'Fantastic Beasts 2' Had A Magical Opening Weekend
Box Office: 'Smallfoot' & 'Night School' Prove That Animation & Comedy Rule
Box Office: 'Dr. Seuss' The Grinch' Takes On 'Bohemian Rhapsody'
Mega Millions $1.5 Billion Winner In South Carolina
2018 People's Choice Awards: And The Winners Are...
Santa Is Ready For Macy's Thanksgiving Day Parade On NBC
Jordan Peele To Produce 'Candyman' Remake

redpajama_set_name: RedPajamaCommonCrawl


Nearly 3.3 million women were working twelve hours a week or more last year, an increase by more than 460 thousand relative to 2002. The number of women with part-time jobs of 20 to 35 hours a week grew rapidly. The main reason for women to opt for part-time jobs is the care for family or household according to Statistics Netherlands.
The labour participation rate in the 15 to 65-year-old population increased from 64.5 percent to more than 67 percent between 2002 and 2011. Women account entirely for the increase. In 2002, 53 percent of women had jobs of twelve hours a week or more versus over 60 percent in 2011.
The increase in part-time working women was almost entirely realised in the category part-time jobs of 20 to 35 hours a week. Nearly a third of all 15 to 65-year-old women were working 20 to 35 hours a week in 2011, as against only a quarter a decade ago.
Nearly half of part-time working women had opted for this solution, because they had to care for their families or households; 23 percent of women in large part-time jobs (20 to 35 hours a week) and 17 percent of women in small part-time jobs (12 to 20 hours a week) stated they did not want to work on a full-time basis. Women in small part-time jobs three times as often as women in large part-time jobs said that attending some form of education was the reason for working part-time.


text:
Tollway proposal sparks criticism (DOCUMENT)
KARI C. BARLOW / Daily News
Some local officials are criticizing a state proposal to fold the Mid-Bay Bridge Authority into a new regional tollway agency.
Read the FDOT proposal. >>
The proposal from the Florida Department of Transportation, which has not been introduced as a bill to the Legislature yet, would �transfer the governance and control� of the Bridge Authority to the Okaloosa-Bay Regional Tollway Authority.
�It�s really eliminating the Mid-Bay Bridge Authority,� said Jim Vest, executive director of the Bridge Authority. �For the last three years, we�ve been a target of this kind of consolidation. This looks like it is a continuation of that effort.�
Vest said he sees the proposal as a way for the DOT to have �a lot more control� over future road projects in Northwest Florida.
DOT Secretary Ananth Prasad announced the proposal Wednesday at the Emerald Coast Transportation Symposium on Okaloosa Island.
The plan also would create the Northwest Florida Regional Tollway Authority for Escambia and Santa Rosa counties and the Suncoast Regional Tollway Authority for Citrus, Levy, Marion and Alachua counties.
Under the proposal, which would form the Florida Regional Tollway Authority Act, projects would be planned and developed by an authority and built by the DOT. The infrastructure would be operated and maintained by the DOT, which would be reimbursed through toll revenues.
Retired Air Force Gen. Gordon Fornell, chairman of the Mid-Bay Bridge Authority, said he was aware of the proposal but would have liked more information before it was announced.
�There was no collaboration,� he said. �I just don�t see the advantage. I�m all for regional control, but we have been so successful on the Mid-Bay Bridge and the connector. � We specialize in execution. We get things done.�
Fornell added that the Bridge Authority is �a model throughout the country on its financing� of various transportation projects.
Mid-Bay Bridge Authority member Jimmy Nielson said he wouldn�t want to see toll revenues from the bridge be used on road projects outside Okaloosa County.
Nielson said it�s likely that the Bridge Authority �will mount an opposition� to the proposal in an effort to keep its autonomy.
�I would hope that our local legislative people, Rep. Matt Gaetz and Sen. Don Gaetz, would come to our rescue,� he added.
Don Gaetz, the Senate president, has criticized the Bridge Authority in the past for its overhead and administrative expenses. He said he still has to review the DOT�s proposal.
He also said he would like to know how the new regional tollway authority would function differently from the Northwest Florida Transportation Corridor Authority, which spans Escambia to Wakulla County.
�It seems there are a lot of questions to be asked and answered before Secretary Prasad�s proposal would get all the way through the Senate,� Gaetz said.
He said he expects the proposal to get a sponsor, after which he would refer it to the Senate Transportation Committee.
�I think we should look at every opportunity to reduce duplicative government overhead,� Gaetz said. �And we should look at every opportunity to use the lowest possible interest rate on transportation bonding so that we can build more roads for the same amount of money.�
Contact Daily News Staff Writer Kari Barlow at 850-315-4438 or kbarlow@nwfdailynews.com. Follow her on Twitter @KariBnwfdn.


Give your kitchen a new look by putting in a backsplash. Ceramic or glass tiles, metal sheeting, or even damaged plates, utilized in a mosaic pattern, could make good backsplashes. Placing backsplashes on the partitions behind the sink and range, current great protection from splashes and stains. You may continue the sample throughout the whole room in case you desire.
To forestall animals like birds or squirrels from nesting in your chimney, set up a chimney cap. These gadgets characteristic mesh sides that enable smoke to flee, however the secure excessive prevents animals from getting into your chimney to construct nests, which can ignite and cause a chimney fireplace when you use the fireplace.
To save lots of plenty of on your vitality invoice, attempt changing your mild bulbs. Compact fluorescent gentle bulbs and LED delicate bulbs worth greater than frequent mild bulbs, however use much less power to gentle your home and last longer. It's best to see returns in your month-to-month vitality bill in a short time after altering all the normal bulbs in your home with these.
To seal your home in opposition to pesky drafts and protect your warmed or cooled air inside, pick up some foam insulators for retailers and lightweight switches located on exterior partitions, especially these on the north side of your home. These cheap insulators can forestall money in your vitality funds and are quite simple to put in.
A beauty of home decor is that oftentimes it doesn't ought to match. You should buy an awesome dining room desk and mix and match chairs. This is nice for cottage and nation-styled homes. Purchasing for a desk second hand and together with chairs from different areas really creates a fantastic design component, in addition to a manner of accomplishment. Give these used chairs a possibility to shine!
Maintain your home smelling scented and modern by making your personal potpourri sachets. Purchase some little jewellery organza baggage and fill them with store purchased potpourri. To spice up the scent, pour some aromatherapy oils on excessive. Present them in quite a few areas of your home to create a nice and scented environment.
Before you start reworking or redecorating a room, herald educated to check out the electrical and the plumbing, to make sure that it's in good working state of affairs. It is slightly disheartening having to tear out a brand new ground or rip into a brand new wall, to make a restore that ought to have been finished before doing the work.


text:
Trump victory makes Iowa businesses hopeful and anxious
Joel Aschbrenner
jaschbrenn@dmreg.com
Iowa business leaders watched Donald Trump's upset presidential victory with mixed emotions, feeling optimism about his pro-business tax and regulatory positions but angst about trade policy and international relations.
That turmoil was displayed in financial markets. Stocks dropped on election night as Trump's win became clear, but they rallied Wednesday, climbing into positive territory as investors embraced the Republican businessman's election.
"I think there is both a little hope and a little anxiety with this outcome," said Elliot Smith, executive director of the Iowa Business Council. "The hope is based in the fact that President Trump has talked about removing some regulatory burdens."
But major employers, particularly export-dependent manufacturers and agriculture firms, may be apprehensive about hiring more workers or building new facilities until they learn more about the Trump administration's trade policies, Smith said.
"There is an element of unknown here which doesn't lend itself to strong business planning in the near term," he said.
Craig Hill, a farmer and president of the Iowa Farm Bureau, said Trump's election did not drastically change his outlook for the state's agriculture economy.
Global markets in tailspin as Trump victory declared
Farmers are hopeful a Republican president will scale back proposed regulation of waterways and throw out "burdensome" health insurance requirements, Hill said.
But trade is also a concern. Iowa exported more than $3.5 billion in agricultural products (not including tractors and other farm equipment) in 2014, the most recent year with available data.
The Farm Bureau supported the Trans Pacific Partnership, while Trump's opposition to the proposed trade deal was a centerpiece of his campaign.
"If you take away the opportunity to access other markets — and 95 percent of the consumers of the world live outside the U.S. — it will have a devastating effect on our economy," Hill said.
Suku Radia, CEO of Des Moines-based Bankers Trust, said he expects financial markets will be steadier moving forward, "assuming that Trump governs and behaves with far more civility than how he campaigned."
But Radia said more volatility could be in store if Trump enacts some of his campaign promises, such as repealing the Affordable Care Act, known as Obamacare, or dismantling Dodd Frank, a Wall Street regulatory law.
"If Trump is not held in check, then there will be some 'real' volatility, but I do not see Congress allowing that to happen," Radia said in an email.
Robin Anderson, a senior economist with the Principal Financial Group, said she would advise investors to focus on the larger strength of the U.S. economy, which has seen a mini-rebound in the second half of 2016, rather than getting caught up in the overnight market turmoil.
Election 2016: Complete coverage of Iowa races
While there is some uncertainty about how Trump will translate his positions on trade and immigration into policies, companies in the U.S. and Iowa are likely to continue investing in their operations, thanks to the underlying economic strength, Anderson said.
"Going into the election, the U.S. economy was in a really good place," she said. "I think companies will want to take advantage of the modest strength."
The Iowa Association of Business and Industries was holding a board meeting Wednesday as news of the stock market's rebound emerged. Checking their smartphones, business leaders from around the state were eager to see the rally, though many never doubted the market would bounce back, ABI President Mike Ralston said.
"There was a lot of optimism in the room today," he said.
Financial firms, which play a large role in Iowa's economy, are hopeful a Trump administration can reform Dodd Frank to reduce broad regulations and provide more targeted oversight, said John Sorensen, president and CEO of the Iowa Bankers Association
Sorensen said he expects a more stable market moving forward. He compared the overnight market volatility to the turmoil seen when Britain voted to leave the European Union, which was also followed by a rebound and more stability.
Real estate officials expressed confidence in the local economy. Des Moines area home sales, while slowing a bit in the past couple months, have been fast-paced in recent year as more people move to the city and young people start buying homes.
"I think there is also a sense with Iowans and with realtors that the economic fundamentals in central Iowa are among the best in the country," said Brennan Buckley, president of Iowa Realty.


SARDINAS BEACH, Tola – A polemic land dispute over a pristine slice of Pacific coast beachfront came to a head recently after a judge trying to clear land for a U.S.- owned eco-surf resort backed down to a crowd of machete-wielding indigenous protestors.
The standoff was the latest run-in in the 3- year-old land battle in which a local community has clashed with police and U.S. developer Phillip Christopher, who last year – by his own admission – fired rubber bullets at protestors who he says came on the property with machetes and stones.
"It's an away game, so to speak," Christopher said, referring to how he's had to adapt to the wild-west circumstances of defending rural property in Nicaragua.
Eviction attempts and an ongoing police presence at the disputed beach property has the indigenous community pleading for the Sandinista government to live up to its promise not to evict campesinos from their property.
"Our community can't stop the investment coming in. We possess this beautiful beach that has awakened the greed of investors," said the indigenous group's legal representative, Geovanny Loáisiga.
Christopher, a Missouri-born investor, insists the local group's land is farther inland, and questions the Nahualap community's ethnic indigenous claims.
In what is one of several land quarrels in the Tola region – a surfer's paradise to the north of the booming surf mecca San Juan del Sur – the indigenous community celebrated a ruling in their favor last December by Tola Judge Astrid Fonseca. But the sentence, which orders Christopher to pay damages, hasn't been executed. Christopher says the ruling was flawed since it was against the wrong party – himself – instead of his Flor De Mayo development company, the registered owner of the land.
But the indigenous community's momentum in the courts hit a wall in February, when Loáisiga's home was raided before he was arrested in Rivas on orders of a higher district judge for allegedly withholding a court document. He claims he was held illegally for a week without charges. The Nica Times tried contacting the Rivas police chief but didn't get a response by press time.
The Rivas judge then ordered the Nahualap indigenous group, a community of about 4,000 who have been guarding the beachfront around the clock on rotating shifts, to be removed from the 1.4 kilometers of disputed beachfront.
But when the judge showed up on the beach territory with three cops to execute the eviction order on April 10, she yielded to a throng of indigenous campesinos who were backed by a handful of U.S. activists armed with cameras.
"It's not my intention to create a blood bath," Fonseca said, before walking away from the cheering crowd.
The Nahualap community claims their ancestors have been living on the land since the 17th century, and they trace communal ownership to an 1877 deed.
But Christopher says that deed never included the disputed 12 manzanas of beachfront where he plans to build his ecofriendly resort that would transport surfers around on solar-powered golf carts.
Though Loáisiga claims the land Christopher bought in 2005 from an indigenous family didn't include the beachfront, Christopher insists it does. He points to a GPS assessment he recently did of the property, which he claims was more accurate than previous measurements.
"It's not as if we've tried to take land from anybody. It's just that science has improved," he says.
Extortion and bribery allegations have been slung back and forth in the escalating quarrel. Yet neither side seems interested in throwing in the towel.
"From a financial standpoint, we're in," Christopher told The Nica Times in a recent interview. His group of 24 U.S. investors has already put $4 million into the $26 million project, he says.
Loáisiga, meanwhile, spent much of last week filing a slew of complaints with human rights organizations in Managua – the NicaraguanHumanRightsCenter, the National Assembly's Ethnic Affairs Committee and the Ombudsman's office – against what he claims was local police harassment of indigenous beach dwellers last Monday. He says the Sandinista government should live up to its promise of not using police to evict campesinos from their land.
It's a point Ortega has repeated in several recent speeches.
Though the Sandinistas have been publicizing Ortega's visits to poor neighborhoods such as the one in Masaya, where he hands out property titles to the poor, Phillips is quick to point out that he too has a photo of himself with his arm around Ortega.
Loáisiga says the indigenous community isn't opposed to investors on principle.
"The land can only be used on concession with the community's consent. But they have to respect our culture, customs," Loáisiga told a group of mostly U.S. activists at The Casa Ben Linder meeting house in Managua the day before last week's beach stand-off in Tola.
Christopher questions whether the Spanish-speaking group qualifies as indigenous under 1914 and 1918 Nicaraguan laws. But insists he wants to help regardless.
"I don't care, because a community is a community," he says.
Christopher says that if his development weren't a year and a half behind schedule due to the legal dispute, his company would already have created some 200 jobs for the local community. His resort would provide housing for employees, he says.
"We want these cultures to come together," he says. "The day this ends, I forgive every local."He says he'll be reluctant to forgive the indigenous community's leaders, though.
Christopher says he hopes his project will receive a shot in the arm soon, when it receives expected municipal construction permits.


St. Gerard's provide after school provision every day from 3pm - 5.30pm during term time.
The children have lots of fun and exciting activities to get involved in. They also have a snack and drink during the session. If you would like more information including costs per session or would like to book a place for your child to attend please see Mrs. Glossop in the school office.


text:
Financing the Pandemic: The Political Economy of Rising Government Debt
This discussion paper advances the idea that the Covid-19 pandemic has been a seismic event for government economic policies around the world.
This paper advances the idea that the Covid-19 pandemic has been a seismic event for government economic policies around the world. Even after the pandemic is brought under control, its consequences are likely to have a major long-term impact on issues ranging from government fiscal behaviour to international borrowing and trade. Moreover, rising government debt will serve to tilt the economic balance between developed and developing countries in favour of the former due to the fact that developed economies have much wider fiscal flexibility than developing countries. However, in the case of a catastrophic economic downturn in developing countries, such as another lost decade of economic growth, there may be damaging side effects for developed countries as well. Unless developed economies act quickly and boldly to alleviate the debt burden of developing countries, the potential for a total collapse in international finance and trade will substantially increase. This may also lead to a new wave of migration towards developed countries, with significant implications for domestic politics in these countries.
Download the Discussion Paper
M. Metin Başbay
Which Way is the Bird Flying?
Discussion Papers 17 January 2023
Examining the Universality of International Human Rights from an Iranian Perspective
Discussion Papers 23 December 2022
Media and Information Literacy in the Digital Age


The Blindside 180 Street Scooter is the ideal scooter for young riders. Featuring a deck with cool purple Chinese dragon graphics, the Blindside 180 Street Scooter is an amazing ride.
The handlebar grips and wheel trims add bright flashes of purple to the black frame and look great with the graphics on the deck. The 3.5 inch aluminium deck is crafted to ensure that this street scooter gives you the ultimate in strength and durability. The one piece pro style T bar gives you the control you need, as well as looking cool and sleek. The T bar features rubber grips to give the rider a comfortable hold as they scoot. The reinforced steel alloy threaded fork is equipped with an aluminium double clamp. This clamp is designed to improve the stability of the scooter and allow for a safe and steady ride. The steel alloy quick stop brake is an important part of the Blindside 180 Street Scooter's safety system, designed for your protection. The 100mm PU wheels are enhanced by an alloy core and BEC-5 bearings.
Scooters are great for improving motor skills, balance and coordination. They can enhance confidence, as well as being incredible fun. The Blindside 180 Street Scooter is not a stunt scooter.
EU Warning: Always wear a helmet, protective pads and correct footwear while riding. Children must be fully supervised by an adult while using this scooter.Do not use on wet or uneven surfaces. Do not ride this scooter on the road.


I am trying to connect an EGI device to openvibe, I read that a driver "EGI Net Amps 300 (through AmpServer)" had been developped by the community. However, I cannot find it among the list proposed by the Openvibe acquisition server (even when activating the unstable drivers). Has someone already used it and know where to find?
Moreover, it is said to be unstable, in which situation?
I finally found that the "EGI netAmps 300 through Amp Server" driver was present in the 0.15.0 release of OpenVIBE. Does anyone know why it has been removed from the next versions?
Thank you for your answer(s)!
looking at the 0.16.0 source archive, it turns out that the driver source code is present in the core platform, but is not declared in the ovasCAcquisitionServerGUI.cpp file ; I believe this is a mistake due to the source tree reorganisation. This might hopefully be fixed in 0.17.0, meanwhile, you could rebuild the 0.16.0 from sources after you manually declare the EGI driver in the ovasCAcquisitionServerGUI.cpp file. By the way, in order to use this driver, you will need the AmpServer Pro from EGI with a dongle for realtime raw data access.
It seems that we must have forgotten to check that all the drivers are there that should be there when releasing 0.16.0. Sorry about that.
We'll try to get the driver back for 0.17.0, which is due December.
Nevertheless, thank you for the report. Without it, the driver might have been missing from 0.17.0 as well.
Currently, we have an EGI GES300 system in our lab. I try to connect AmpServer with OpenViBE.
I check the Netstation and it says "Amp Server: Connected to "Amp Server Pro SDK" (local)" in the "preferences" dialog.
In the OpenVibe AcqusitionServer, I set the IP of the "AmpServer host name" in the "device config." dialog.
If the Net amp is connected to acquisition computer and NetStation is running, then when I click play, NetStation stops acquisition (Waveform display is frozen).
If the Net amp is not connected but NetStation is running in emulator mode (5 channels: zero, +max, -max, 1 Hz sine and 1 Hz square), then NetStation continues emulating but OpenViBE connection is dropped when I click play.
What could be the issue? I would be grateful for any help.
I've successfully used the driver with an EGI system of our collaborators in 2015 and 2016, however the definite spec of the equipment escapes my memory, and even less I remember the versions of the EGI programs involved. What I remember is that the amp was connected to an Apple acquisition computer running the AmpServer. The acquisition computer was connected to a Windows PC which ran OpenViBE. I don't remember any mentions about 'Pro' or 'SDK': the ov driver is not calling an SDK API but instead just sends requests to a port over TCP/IP.
The driver is pretty straightforward, so if you're not stranger to C++ code you could always try to add a few debug prints to it etc to see whats the state of it at different points. Basically it just sends text string commands like "(sendCommand cmd_ListenToAmp 0 -1 -1)" to a Command port of the AmpServer and then continuously reads signal from the Stream port.
By the way, better make sure there's no firewall on either side blocking any sockets it tries to use.
I checked the drivers and tested commands on the Mac to which amp is connected.
I opened a telnet session for local-host in terminal. Using commands I can start or stop the acquisition which I confirm from the "Dense Waveform Display" of the Netstation software. However, when I try to listen to amp ((sendCommand cmd_ListenToAmp 0 -1 -1) as typed in the driver file) telnet returns (status error).
On the other hand, OpenViBE created four .script files which are ...initialize, ...start, ...stop and ...unitilize. In the "initialize" script, there are 5 telnet commands there which ask for number of amps connected to mac, set power off, set power on, get amp details, and set decimated rate 1000. The remaining scripts are empty! Is this OK?
If the other commands pass without failure, then I suppose the problem is the server side not accepting the convention that openvibe is using. Perhaps this has changed from the EGI side? If you can figure out from the egi manuals or examples (I dont have them) what command sequence would work instead and let us know, we can try to fix the driver.
About the empty files, I suppose its by design. You'll find four files like 'share/openvibe/applications/acquisition-server/scripts/egi-default-initialize.script'; I think the idea is that you can modify all these files to suit your needs.
Ouch. Unfortunately the alternatives are not exactly cheap either, so you'll have to balance pros and cons of the different choices. If you consider buying the SDK make sure it gives you what you want (I dont know).
Meanwhile regarding openvibe+egi, if its the case that the server simply doesn't want to provide the data due to license restrictions, there's not much we can do on the OpenViBE side. I'll leave the issue be until there's further information.
Btw, by chance, I'll be going to visit our egi-owning collaborators next week. To get our knowledgebase more complete I'll take notes of their system.
It looks time consuming to get two signals from different amps in synch. On the other hand, the price is an issue... So I try to figure out what to do.
The role and location of the amp server / sdk is not that clear, it doesnt seem to be installed as a separate component on the mac. The net station simply mentions in some preferences window that its communicating with the net amps 300 through it.
Usually in their workflow they use net station with some profile, and calibrate the amp and fix impedance issues with that. After that, they record with openvibe acquisition server running on a separate pc, providing AS an ip address to the mac. The net station is kept running at the same time.
I tried to run Amp Server (not Pro SDK - there is no such a file) on terminal, and it notified that Amp Server Pro SDK hasp license is not activated.
In addition, EGI support said hasp license has to be activated in order to connect to the Amp Server Pro SDK.
I guess I will purchase the SDK.


look for two songs, music videos, movies or TV series that have religious messaging.
Describe the lyrics and/or themes, then analyze your chosen media and the religious messages imbedded in the media. Tell us what those messages imply and state whether the messages are explicit or implicit.
Think about the themes we discussed in class to help you write your response.
Hashtags and the power of social media?
Resolving Large- and Small Scale Systems..


Scott Cloud is Director of Sales and Marketing for The Retirement Plan Company, LLC (TRPC) and serves clients and their advisors through TRPC's Dayton, OH office. He is also a Managing Director of U.S. Employee Benefits Services Group, the parent company of TRPC. Scott began his career in 2002 with Miami Valley Pension, LLC in Dayton, where he gained a breath of experience in plan design, documents, administration, and consulting. He later joined Benefits Integrity, LLC in Denver, where he developed and managed strategic relationships with investment advisors and recordkeeping platform providers, and gained additional experience in plan conversions and employee education/enrollment.
Scott joined TRPC in 2007 as a Compliance Manager in the Consulting/Administration department. In that role, he acted as relationship manager and handled all aspects of year-end compliance reporting for plans on TRPC's daily valuation recordkeeping platform; served as lead consultant for client matters requiring research and technical guidance; and managed the plan document department. Scott joined TRPC's Sales/Marketing team in 2012, and in his current role as Director of Sales and Marketing he provides support to TRPC's sales team and oversees the development and execution of strategies aimed at helping TRPC's investment advisor partners to acquire, manage, and scale retirement plan advisory business.
Scott is a graduate of Miami University (OH) where he majored in Decision Sciences and minored in Marketing, and he later earned an MBA from The Ohio State University with a concentration in Investment Management and a minor in Marketing. Scott earned the Certified Pension Consultant (CPC) professional designation from the American Society of Pension Professionals and Actuaries (ASPPA), and holds a Series 65 securities license.


During the life of a worker's compensation claim injured workers are exposed to many people. It can be overwhelming when claimants don't know whom they can trust and whom they cannot. The truth is that the vast majority of these people are compensated by the insurance company, in one way or another, and they often provide the injured worker, either intentionally or unintentionally, with inaccurate information. Many times, claimants rely on this information and end up missing out on benefits that they should receive. It is important for workers to understand that, in Indiana, a worker's compensation claim is part of an adversarial system. The insurance company tries hard to wind-up with a result that is best for them, and the claimants must do the same. The problem is that worker's comp claimants are rarely as knowledgeable about what they should receive as the adjusters are. This creates an unfair playing field.
Regardless of how friendly or helpful an insurance adjuster or nurse case manager may seem on a particular claim, it is important for injured workers to understand that the "other side" has no legal or ethical obligation to tell them how to maximize their rightful benefits. It is up to injured workers to learn this on their own (which is often times unrealistic), or to hire an Indiana worker's compensation lawyer to level the playing field.
Even after claimants hire a knowledgeable work injury attorney, they are still often given "bad information" from nurse case managers and even sometimes from the treating doctors themselves. The best course of action for injured employees is to take this "information" with a grain of salt and to discuss it with their attorney before considering it to be reliable.
Injured workers in Indiana are often confused by the question of "who gets to choose the doctor?" The answer varies depending on the specific situation, but the general rule is that the employer (or more likely, the worker's compensation insurance company) gets to select the medical providers. This creates a large advantage for the insurance companies and a significant disadvantage for Indiana workers.
The reality is that relationships often develop between worker's compensation insurance companies and the medical providers they choose. The adjusters have the ability to learn which doctors prescribe inexpensive treatment options (rather than more elaborate and costly treatment options), and which doctors give lower PPI ratings (which is one of the factors considered when evaluating settlement value). It is not surprising that the more "conservative" doctors end up getting a lot of repeat business and the more "patient-friendly" doctors get a lot less.
This dynamic can be particularly troubling when it comes to an injured worker's "pain management". Because this area of medicine involves not only science, but also a degree of art, different doctors use different approaches to it. While certain medical providers are open to using many different tools (such as injections, TENS units, spinal cord stimulators, and a variety of medications), other doctors have preconceived philosophies against some of these types of treatments, and simply won't ever recommend them. This can leave injured workers wondering whether they are truly getting the best care possible or whether they are getting quickly pushed through a low-cost course of treatment.
The good news is that, in certain circumstances, injured workers can acquire, free of charge, an independent medical exam (IME) from a doctor chosen by the Worker's Compensation Board (rather than one chosen by the insurance company) to challenge the findings of the insurance company's doctor. Additionally, injured workers always have the right to seek a second opinion from a doctor of their choosing. Although this may cost claimants some money, a second opinion from a patient-friendly doctor can be a valuable tool to challenge the findings of the insurance company's doctor.
For more answers to worker's comp questions, check out our Indiana worker's comp FAQs.


text:
Carbon dioxide reduces belly fat
Technique is safe but needs to be optimized for longer-lasting results
Technique performed outside U.S., but no previous randomized trial to study effectiveness
Non-invasive fat reduction increasingly sought after by patients
'Not yet ready for prime time'
CHICAGO --- The first randomized, controlled trial testing carbon dioxide gas injections (carboxytherapy) to reduce belly fat found the new technique eliminates fat around the stomach. However, the changes were modest and did not result in long-term fat reduction, according to the Northwestern Medicine study.
"Carboxytherapy could potentially be a new and effective means of fat reduction," said lead author Dr. Murad Alam, vice chair of dermatology at Northwestern University Feinberg School of Medicine and a Northwestern Medicine physician. "It still needs to be optimized, though, so it's long lasting."
The paper was published this week in the Journal of the American Academy of Dermatology.
The new technique's benefits are that it is a "safe, inexpensive gas, and injecting it into fat pockets may be preferred by patients who like natural treatments," Alam said. "Non-invasive fat reduction has become increasingly sought-after by patients."
Benefits of a non-invasive approach are diminished downtime, avoidance of scarring and perceived safety.
Current technologies routinely used for non-invasive fat reduction include cryolipolysis, high intensity ultrasound, radiofrequency, chemical adipocytolysis and laser-assisted fat reduction.
Carboxytherapy has been performed primarily outside the U.S., with a few clinical studies suggesting it may provide a lasting improvement in abdominal contours. The way carboxytherapy works is not well understood. It is believed that injection of carbon dioxide causes changes in the microcirculation, and damages fat cells.
No randomized controlled trials for carboxytherapy efficacy and benefit over time have been previously conducted. The purpose of this study was to assess the effectiveness of carboxytherapy for fat reduction in a randomized, controlled trial, and to determine if any observed benefits persisted for six months. ?
The Northwestern study consisted of 16 adults who were not overweight (body mass of 22 to 29) and were randomized to get weekly carbon dioxide gas injection to one side of their abdomens and a sham treatment on the other side once a week for five weeks. A high-resolution ultrasound detected a reduction in superficial fat after five weeks but not at 28 weeks. The patients' body weight did not change over the course of the study.
That the difference was not maintained at six months suggests the treatment stimulated a temporary metabolic process that reduced the size of fat cells without inducing cell death, Alam said.
"If carboxytherapy can provide prolonged benefits, it offers patients yet another noninvasive option for fat reduction," Alam said. "But we don't feel it's ready for prime time."
Other Northwestern authors are: Dr. Divya Sadhwani, Amelia Geisler, Dr. Imran Aslam, Dr. Inder Raj S. Makin, Daniel I.Schlessinger, Dr. Wareeporn Disphanurat, Dr. Marisa Pongprutthipan, Dr. Nataya Voravutinon, Alexandra Weil, Brian R. Chen, Dr. Dennis P. West, Emir Veledar and Emily Poon.
More News at Northwestern Now
Find experts on our Faculty Experts Hub
Follow @NUSources for expert perspectives
http://news.feinberg.northwestern.edu/tag/press-release/
Marla Paul
marla-paul@northwestern.edu
@northwesternu
http://www.northwestern.edu
Journal of the American Academy of Dermatology
DIET/BODY WEIGHT
More in Medicine & Health
Scurvy is still a thing in Canada McMaster University
Ingestible medical devices can be broken down with light Massachusetts Institute of Technology
View all in Medicine & Health


text:
//@flow

/* This program exhibits variable capture, very subtly.
   When we create the `new P`, we first specialize the `PolyT`
   for `P` by substituting `R` by `this`--the `this` for L.
   We then fix the `ThisClassT` for `P` (which was wrapped in
   the `PolyT` that we just specialized), which involves
   substituting `this` for a self-referential tvar. But when
   we do this substitution, we'll see the `this` that we just
   replaced `R` with as a valid thing to substitute away, even
   though that `this` is supposed to be `L`'s `this`, not `P`'s!
   `L`'s `this` has been captured by the `ThisClassT` abstraction
   for `P`. */
declare class P<+R> {
  constructor(r: R): void;
}

export default class L {
  lef(): P<this> {
    const p = new P(this);
    return p;
  }
}

/* This program, surprisingly, still doesn't
   exhibit free variable capture. Why not?
   After all, we're subsituting a free `X` for
   `Y` within a binding for `X`: why doesn't the
   resulting type, `<X>() => X`, have the return type
   `X` refer to the abstraction?

   The answer is more or less coincidental: we don't
   susbtitute through OpenTs, even fully-resolved ones,
   and the free variable `X` that replaces `Y` is wrapped
   in a fully resolved OpenT. If we made a change that replaced
   the resolved OpenT with the type it's resolved to (a
   change that one would like to be a no-op) we would suddenly
   have capture. */
function f<X>(): X {
  declare var a: <Y>() => <X>() => Y;
  var b = a<X>();
  var c = b<number>();
  return c;
}


text:
Deborah Chow, née le June 16 1972 à Toronto, est une cinéaste, réalisatrice de télévision et scénariste canadienne connue pour ses films indépendants et son travail à la télévision dans l'univers Star Wars. Deux de ses premiers courts métrages, Daypass (2002) et The Hill (2004) ont tous deux remporté des prix dans divers festivals de films internationaux. Son premier long métrage, Le Prix à payer, qu'elle a écrit et réalisé, a rencontré un important succès critique

Deborah Chow a réalisé divers projets pour la télévision, dont l'adaptation en téléfilm de Les Enfants du péché (2014) et des épisodes des séries  Copper, Les Enquêtes de Murdoch, Reign : Le Destin d'une reine, Beauty and the Beast, et Mr. Robot. Dans l'univers  Star Wars , Deborah Chow est également la réalisatrice de plusieurs épisodes de The Mandalorian et des six parties de la série Obi-Wan Kenobi pour Lucasfilm et Disney+.

Jeunesse
Deborah Chow est la fille à moitié chinoise de parents qui ont émigré d'Australie à Toronto, Ontario, Canada, où elle a grandi.

Son père chinois était un passionné de cinéma et lui a fait découvrir le monde des films classiques et du cinéma. Deborah Chow est diplômé de la Gordon Graydon Memorial Secondary School à Mississauga, en Ontario.

Elle a obtenu son diplôme de premier cycle, majeure en théorie culturelle et mineure en histoire de l'art, de l'Université McGill à Montréal, où elle a réalisé son premier court métrage. Après l'obtention du diplôme elle a ensuite terminé sa maîtrise en réalisation à l'université Columbia à New York, où elle a réalisé deux courts métrages et un scénario de long métrage, dont son court métrage Daypass qui a été projeté à plus de 35 festivals et a remporté plusieurs prix.

Carrière
Deborah Chow a commencé sa carrière en écrivant et en réalisant des courts métrages tout en étudiant le cinéma à l'université et s'est fait connaître avec son premier long métrage, Le Prix à payer, en 2010. En tant que réalisatrice, elle a notamment  travaillé avec des acteurs tels que James Urbaniak, Zach Braff et Isabelle Blais.

En tant que réalisatrice de télévision, elle a travaillé sur la série BBC Copper, les programmes CW Reign : Le Destin d'une reine et Beauty and the Beast, l'émission de CBC Les Enquêtes de Murdoch et la série USA Network Mr. Robot. Elle a également réalisé l'adaptation des Enfants du péché sur Lifetime, qui mettait en vedette Heather Graham et Kiernan Shipka.
Chow a été réalisatrice de deux épisodes de la série télévisée diffusée en streaming sur Disney+, Star Wars : The Mandalorian, dans laquelle elle a également fait un caméo en tant que pilote X-wing de la Nouvelle République. Elle est en 2022  l'unique réalisatrice des six épisodes de la série Obi-Wan Kenobi. La présidente de Lucasfilm  Kathleen Kennedy a déclaré que « Nous voulions vraiment sélectionner un réalisateur capable d'explorer à la fois la détermination tranquille et la riche mystique d'Obi-Wan d'une manière qui se coule de façon transparente dans la saga Star Wars. Sur la base de son travail phénoménal de développement de nos personnages dans The Mandalorian, je suis absolument convaincue que Deborah est la bonne réalisatrice pour raconter cette histoire »

Deborah Chow a également réalisé le clip de Black Summer, le premier single de l'album des Red Hot Chili Peppers, Unlimited Love sorti en avril 2022.

Références

Liens externes

Réalisateur de télévision
Réalisatrice canadienne
Diaspora chinoise au Canada
Scénariste canadien de cinéma
Naissance en Ontario

redpajama_set_name: RedPajamaWikipedia


Cool off and relax with a tall glass of berry goodness. This refreshing burst of strawberry, blueberry, raspberry and blackberry flavors will have you sipping slowly to make it last just a little bit longer.
Hydrolyzed Gelatin, Whey Protein Isolate (From Milk), Resistant Maltodextrin (Dietary Fiber), Citric Acid, Fructose, Malic Acid, Potassium Citrate, Natural and Artificial Flavors, Maltodextrin, Guar Gum, Ascorbic Acid, Soy Lecithin, Gum Arabic, Sucralose, Salt, Acesulfame-K, Red #40, Soy Protein Isolate.


text:
Chicago NOW
Join CNOW
June 29, 2020 chicagonow Blog, Homepage, News
Legal Update: LGBTQ Rights Victory at SCOTUS
June 15, 2020 was a celebratory day for LGBTQ rights when the U.S. Supreme Court issued a 6–3 decision in favor of the most expansive federal protections provided to the LGBTQ community to date. In Bostock v. Clayton County, Georgia, the U.S. Supreme Court held that Title VII of the Civil Rights Act of 1964, which prohibits employment discrimination on the basis of sex, included the prohibition of employment discrimination on the basis of sexual orientation and gender identity. The opinion, which was penned by Justice Gorsuch, was joined by Justices Ginsburg, Breyer, Sotomayor and Kagan, and Chief Justice Roberts.
This case had been consolidated with two other LGBTQ rights cases, Altitute Express v. Zarda and R.G. & G.R. Harris Funeral Homes v. EEOC. The facts were undisputed that Plaintiffs Gerald Bostock and Donald Zarda were terminated when their employers learned of their sexual orientation, and Plaintiff Aimee Stephens was fired when she informed her employer that she would be transitioning. The U.S. Supreme Court held that "an employer who fires an individual merely for being gay or transgender defies law." This decision provides millions of individuals with the respect and protection they deserve in the workplace. UCLA's Williams Institute reports that approximately 1 million U.S. workers identify as transgender, and approximately 7.1 million U.S. workers identify as lesbian, gay and bisexual. A study by the Human Rights Commission found that almost half of LGBTQ individuals are closeted in the workplace. Every person deserves the right to work with dignity and should not fear that at any time they could be legally fired based solely on their sexual orientation or gender identity. This landmark decision is an enormous legal victory for the LGBTQ community and a necessary step toward overdue equality under the law.
However, the fight for equality is far from over. The Equality Act, which has already passed in the U.S. House of Representatives, must be enacted. The Equality Act prohibits discrimination based on race, color, sex, national origin, religion, sexual orientation and gender identity beyond the workplace and extends to the marketplace, public services, housing, medical insurance coverage, public accommodations and federally funded programs. These protections are especially important to those individuals who face many other discriminatory barriers. Without such comprehensive legislation, true equality under the law cannot be reached.
For now, we relish in a long-fought victory. To Plaintiffs Donald Zarda and Aimee Stephens, who unfortunately passed before they were able to witness this groundbreaking decision in their favor, rest in power.
June 23, 2020 June 24, 2020 chicagonow Blog, Events, Homepage, News
Nominate your favorite local feminist superhero: Women Who Dared 2020
Rep. Kelly Cassidy and Sendy Soto accept their awards at Women Who Dared 2019
The Chicago Chapter of the National Organization for Women is seeking nominations for Women Who Dared, our annual awards gala celebrating feminist superheroes dedicated to making our city and state a better place for all women and girls. Each fall, we honor one elected official and one community organizer working to serve and uplift women and girls in our city and beyond. This year's event will be held virtually due to the COVID-19 pandemic.
Know of a badass Chicago shero who's fighting to transform the lives of women and girls? Nominate her for Women Who Dared! Please include her name and a brief summary explaining your nomination by July 15.
Join us in the fight for equality and justice for all women and girls. Nominate your favorite feminist superhero for Woman Who Dared today!
Update: Chicago NOW Calls for Swift Reform and Toni Van Pelt's Immediate Resignation – We Will Not Be Complicit
Today, Chicago NOW joins the state and local chapters of the National Organization for Women calling for President Toni Van Pelt's immediate resignation. Further, we call for swift reform of NOW's bylaws to decentralize power at the national level and empower the hundreds of grassroots chapters nationwide to take immediate action during times of crisis.
Last week, we called for transparency and concrete answers from President Van Pelt regarding several recent news articles claiming a disturbing pattern of racist behavior among NOW's national leadership. As of now, we have not received any official response from the national board about these allegations. Today, we realize our previous demand is not enough. We no longer have confidence in President Van Pelt's leadership, and we do not believe she can effectively speak for the thousands of women in this organization.
We believe women of color. It is now evident that the allegations of racism at NOW reported in recent news stories were merely the tip of the iceberg. Furthermore, we see that this is not a new problem, but that our national leadership has allowed a toxic environment to fester for far too long. We have driven women of color out of our organization by turning a blind eye to their pain. To that end, it is not possible for those who were silent and complicit while the cancer of racism spread throughout our leadership to continue to helm our organization as we take steps to root out this toxicity once and for all.
Our members deserve leaders who will take immediate action to rally behind their sisters. To that end, we reiterate our call for a transparent, comprehensive investigation into all racism allegations at all levels of leadership within NOW, and for the results of this investigation to be provided to local chapters. Should this investigation confirm the widespread pattern of racist behavior suggested by these allegations, we believe that allowing all those currently in power to continue to steer the course would be a conflict of interest that would further erode the faith our members should have in their national leadership. However, we are constrained by NOW's archaic bylaws from taking further necessary drastic action to root out corruption. We call on our fellow grassroots organizers to join us in demanding we overhaul a system that has allowed racism to thrive for far too long.
We meant it when we said that no form of feminism is legitimate unless it is intersectional, that we trust the experiences of women of color, and that we take all allegations of racism seriously. We fear the current leadership of NOW cannot advocate for our mission in an inclusive way. As such, we call upon our fellow grassroots chapters to join us in demanding legislative reform and calling on our leadership to listen to women of color, drive change, and earn the trust of all of our nation's women.
June 9, 2020 chicagonow Action Items, Blog, Homepage, News
Chicago NOW Denounces Racism and Calls for Investigation Within NOW Ranks
Chicago NOW has reviewed several recent news articles claiming a disturbing pattern of racist behavior among NOW's national leadership.
We call for transparent and concrete answers from President Toni Van Pelt. We also call for a comprehensive investigation into all allegations at the national level, and for the results of this investigation to be provided to local chapters.
As one of hundreds of independent local chapters of the National Organization for Women, we do not have the facts surrounding the allegations made at the national level. Chicago NOW affirms that no form of feminism is legitimate unless it is intersectional. That means trusting the experiences of women of color and taking all allegations of racism seriously. We must denounce racist acts within our own organization before we can effectively advocate for anti-racism in our communities.
As intersectional feminists, we must reckon with some hard truths: the feminist movement has a long, storied history that includes many racist practices, and the city of Chicago has its own racist history. It is on every one of us to recognize these realities and take active steps to improve them. We demand the same from our leaders and look forward to a full and transparent investigation into allegations of racism among our ranks.
June 3, 2020 June 3, 2020 chicagonow Blog, Homepage, News
CNOW Calls on YOU to be a Co-Conspirator in the Black Liberation Movement
Dear Chicago NOW Community,
The mask of community has been further tattered as nefarious systemic racism reveals itself during our pandemic response. Breonna Taylor was murdered in her home by police. A former police officer and his son cornered and murdered innocent jogger Ahmaud Arbery. And we all watched in horror as the police drained the life from George Floyd as others stood by in silence and inaction.
At Chicago NOW, we are examining how to be better. Not just as non-racists, but as anti-racists. It is important during this time for our white and non-black community members to listen and watch with open hearts. We must take this inquiry further by also examining how our personal inaction supports an inherently unjust system and perpetuates violence against men and women of color.
We must do more. Our collective action must be urgent, intentional and unambiguous. We invite community feedback as to how CNOW can be a stronger community partner in the march for justice as we affirmatively stand in solidarity with our black sisters and brothers.
This is the fight of our lifetimes. We cannot stand idly when justice requires action.
Last Friday, we released a call to action for critical change. You can read that statement on our website.
Please read on for links to local organizations on the frontlines that you can support at this time, as well as some recommended reads for further education.
Local Organizations to Follow & Support:
Assata's Daughters
Black Lives Matter Chicago
Black Lives Matter Lake County
Black Lives Matter Springfield
Bloomington-Normal NAACP
Brave Space Alliance
BYP100 Chicago
Chicago Community Bond Fund
Chicago Freedom School
My Block, My Hood, My City
Recommending Reading & Other Resources
"Anti-Racism Resources for White People" | Forbes
"Six Simple Ways White Women Can Be Feminist Allies to Black Communities" | Ms. Magazine
"Your Kids Aren't Too Young to Talk About Race: Resource Roundup" | Pretty Good
What CNOW Board Members Are Currently Reading
Ella Baker and the Black Freedom Movement by Barbara Ransby
White Fragility by Robin D'Angelo
The Death Gap by David Ansell
Consider ordering books from Semicolon Chi (515 N. Halsted St.), the only Black woman-owned bookstore in Chicago!
Again, we welcome community feedback as to how CNOW can be a stronger community partner in the march for justice.
Subscribe to CNOW Alerts
info@chicagonow.org
For inquiries regarding our community initiatives you may email info@chicagonow.org. Press inquiries may be directed to press@chicagonow.org. For urgent press inquiries please contact 715.218.1665.


text:
Q: Factory pattern with inheritance I am having a problem with Factory pattern when it use with Inheritance,
This is my code
public class Animal {
  public int numberOfLegs() { return 2 ;}
}

public class Cat extends Animal {
  public String getSound() {return "Maaaw";}
}
public class Dog extends Animal {
  public String getSound() {return "woof";}
}

public class AnimalFactory {
  public Animal getAnimal(String name){
    Animal an= null ;
    if(name=="cat"){an = new Cat();}
    else if(name=="dog"){an=new Dog();}
    return an ;
  }
}

public class FactoryDemo {

  public static void main(String[] args) {
    AnimalFactory anmF=new AnimalFactory();
    Animal anm=anmF.getAnimal("cat") ;
    System.out.println("legs : "+anm.numberOfLegs()); // working fine
    System.out.println("sound : "+anm.getSound());    // giving error
  }
}

When I run this, I can't go to the getSound() method. It giving a error.
This'll work fine if I define the Animal class as Abstract class,
But I want to how to deal Factory pattern such a situation like this.

A: You need to add an abstract method for getSound
public abstract class Animal {
    public int numberOfLegs() { return 2 ;}
    public abstract String getSound();
}

A: Change your code to:
public abstract class Animal {
    public int numberOfLegs() {
        return 2;
    }

    public abstract String getSound();
}

public class Cat extends Animal {
    public String getSound() {
        return "Maaaw";
    }
}

public class Dog extends Animal {
    public String getSound() {
        return "woof";
    }
}

public class AnimalFactory {
    public Animal getAnimal(String name) {

        Animal an = null;
        if ("cat".equals(name)) {
            an = new Cat();
        } else if ("dog".equals(name)) {
            an = new Dog();
        }
        return an;
     }
}

You shall add abstract method, and use equals in your factory method instead of using == on Objects.

A: The code you included, is nothing like a Factory anything. If you refer to the Factory Method Pattern then, what you implemented as part of your OP is an incorrect implementation. There are two "Factory" code designs, one is the Factory Method Pattern I indicated before (your code is definitely not that) and the Factory recommended in the Effective Java book, which is the design of choice for the Java JDK i.e. the valueOf or create* methods.


text:
Stenzler ist der Familienname folgender Personen:

 Adolf Friedrich Stenzler (1807–1887), deutscher Indologe
 Laurentius Stenzler (1698–1778), deutscher evangelischer Theologe
Siehe auch:
 Stänzler


Hardcover, 9.5 x 10.25 in. / 128 pgs / 80 color.
Foreword by Lawrence Rinder. Text by Apsara DiQuinzio, Robert Gober, Lauren Kroiz.
Charles Howard: A Margin of Chaos accompanies the first museum exhibition dedicated to American artist Charles Houghton Howard (1899–1978) since 1956. Howard, part of a circle of artists that included Alexander Calder, Gordon Onslow Ford, Grant Wood and Ben Nicholson, had an active and distinguished career in midcentury America and England. His enigmatic, meticulous paintings, often intimate in scale, bridge figurative, Surrealist and abstract currents in modern art. Though his work evolved over his career, Howard said that all of his pictures "are closely related … They are in fact all portraits of the same general subject, of the same idea, carried as far as I am able at the time." The first scholarly publication on Howard, this fully illustrated volume includes essays by Apsara DiQuinzio, Robert Gober and Lauren Kroiz, a reprint of one of Howard's own essays from 1946, an illustrated chronology and exhibition history.
FORMAT: Hbk, 9.5 x 10.25 in. / 128 pgs / 80 color.


text:
Hashtag #IStandWithHarsha shows support for former B.C. Civil Liberties Association executive director Harsha Walia
Several people have stepped forward to condemn the organization for parting ways with the longtime activist
by Charlie Smith on July 18th, 2021 at 7:27 AM
1 of 1 2 of 1
The recent resignation of Harsha Walia as executive director of the B.C. Civil Liberties Association has generated a fair amount of rumbling on Twitter.
One of the challenges for those feeling disappointed in the organization is that this is being characterized as a "resignation".
Therefore, it's hard to condemn the parting of Walia from the organization over a single tweet as a "dismissal" or "firing".
But the reality is that the board of directors did not defend Walia for using a phrase—"burn it all down"—that's been employed many times in the past as a metaphor for dismantling structures of oppression against marginalized people.
It reminds me of something veteran journalist Zuhair Kashmeri told me shortly before his death in 2019.
He stated that when mostly white organizations hire people from other cultural backgrounds who've experienced the negative aspects of colonialism directly, these organizations must make room for these employees to express this part of themselves.
Kashmeri added that too often they don't do this, causing these employees to leave or to engage in self-censorship.
That, in turn, reinforces the dominant cultural narrative within these mostly white organizations.
Kashmeri was making these comments in connection with newsrooms.
In his view, creating a diverse newsroom meant accommodating employees whose viewpoints collide head-on with those of managers who've benefited from colonialism.
But one could argue that it applies equally to nonprofit organizations engaged in trying to bring about positive changes in society.
Walia was born in Bahrain, where, like in Canada (thanks in part to her efforts), the abuse of migrant workers has been extensively documented. Her 2013 book, Undoing Border Imperialism, offered a transnational analysis of how neoliberalism and globalization are coming together to exploit workers around the world.
Below, you can read recent tweets by some of Walia's supporters, including some who believe she was fired.
https://twitter.com/WordsandGuitar/status/1416541383872159745
https://twitter.com/Reakash/status/1416527914775023618
https://twitter.com/JoshuaSealy/status/1416470461551202308
https://twitter.com/debcowen/status/1416745658590109701
https://twitter.com/NankyRai/status/1416703870886203395
https://twitter.com/FruittiLoopz/status/1416470603620573184
https://twitter.com/gindaanis/status/1416352860711882752
https://twitter.com/Kris_Statnyk/status/1416428641836167173
https://twitter.com/rjjago/status/1416257094685270018
https://twitter.com/garthmullins/status/1416487605063995392
https://twitter.com/KarineMyrgianie/status/1416500867176468480
https://twitter.com/genevievejoelle/status/1416442161277587461
Click here to report a typo.
@charliesmithvcr
Charlie Smith was editor of the Georgia Straight from 2005 until September 2022. Prior to that, he was the news editor.
B.C. Civil Liberties Association announces resignation of executive director Harsha Walia
B.C. Civil Liberties Association executive director Harsha Walia at centre of social media firestorm
B.C. Civil Liberties Association names Vancouver activist Harsha Walia its new executive director
Facebook comments not loading? Please check your browser settings to ensure that it is not blocking Facebook from running on straight.com


text:
Siphonosoma dayi is een soort in de taxonomische indeling van de Sipuncula (Pindawormen).

Het dier behoort tot het geslacht Siphonosoma en behoort tot de familie Sipunculidae. De wetenschappelijke naam van de soort werd voor het eerst geldig gepubliceerd in 1942 door Stephen.

Pindawormen


text:
Astronomers Witness Whopper Galaxy Collision
By Ker Than 06 August 2007
This artist's concept shows what the night sky might look like from a hypothetical planet around a star tossed out of an ongoing four-way collision between big galaxies (yellow blobs). NASA's Spitzer Space Telescope spotted the quadruple merger of galaxies within a larger cluster of galaxies located nearly 5 billion light-years away.
(Image: © NASA/JPL-Caltech/Harvard-Smithsonian CfA)
A major cosmic pileup involving four large galaxies could give rise to one of the largest galaxies the universe has ever known, scientists say.
Each of the four galaxies is at least the size of the Milky Way, and each is home to billions of stars.
The galaxies will eventually merge into a single, colossal galaxy up to 10 times as massive as our own Milky Way.
"When this merger is complete, this will be one of the biggest galaxies in the universe," said study team member Kenneth Rines of the Harvard-Smithsonian Center for Astrophysics.
The finding, to be detailed in an upcoming issue of Astrophysical Journal Letters, gives scientists their first real glimpse into a galaxy merger involving multiple big galaxies.
"Most of the galaxy mergers we already knew about are like compact cars crashing together," Rines said. "What we have here is like four sand trucks smashing together, flinging sand everywhere."
Galaxy collisions are a common occurrence in the universe. Our own Milky Way is fated to collide and merge with its neighbor, Andromeda, in about 5 billion years.
Astronomers have observed several clashes involving one big galaxy and several larger ones, and they have also witnessed more major mergers among pairs of big galaxies. But the new findings mark the first time major mergers between multiple hefty galaxies have ever been seen.
NASA's Spitzer Space Telescope serendipitously spotted the quadruple merger during a routine survey of a distant galaxy cluster, called CL0958+4702, located nearly 5 billion light years away. Spitzer's infrared eyes observed an unusually large fan-shaped plume of light emerging from a gathering of four blob-shaped elliptical galaxies. Three of the galaxies are about the size of the Milky Way, while the fourth is three times as large.
The plume turned out to be billions of elderly stars ejected and abandoned during the clash. About half of the stars in the plume will later fall back into the galaxies.
Spitzer observations also show that, unlike most known mergers, the galaxies involved in the quadruple collision are bereft of gas, the source material that fuels star birth. As a result, astronomers predict that relatively few new stars will be born in the new, combined galaxy.
VIDEO: The Biggest Cosmic Collisions
A Cosmic Storm: When Galaxy Clusters Collide
IMAGE GALLERY: Amazing Galaxies


text:
Q: WTForms in Flask: UndefinedError: 'form' is undefined I'm new to Flask and WTForms, and I cannot render my HTML page. I've been through the WTforms documentation again and again, but I can't find the source of the error:
jinja2.exceptions.UndefinedError, UndefinedError: 'form' is undefined

My code is below:
forms.py
from flask.ext.wtf import Form
from wtforms import TextField, BooleanField, TextAreaField, StringField, PasswordField, SelectField, validators

class LoginForm(Form):
    username = TextField('Username', [
        validators.Required(),
        validators.Length(min=4, max=25)
    ])
    password = PasswordField('New Password', [
        validators.Required()
    ])

app.py
from forms import *
from wtforms import Form, fields, BooleanField, TextField, StringField,     PasswordField, validators
from werkzeug.security import generate_password_hash, \
 check_password_hash

@app.route('/login/', methods=['GET', 'POST'])
def login():
    form = LoginForm(request.form)
    if request.method == 'POST' and form.validate():
        if load_user(form.username.data) is None:
            flash('Invalid username')
        else:
            if check_password_hash(cred.password, form.password.data):
                return redirect(url_for('browse'))
            else:
                flash('Invalid password')
    return render_template('login.html', title='Login', form=form)

login.html
{% extends "base.html" %}
{% block body %}
    <form action="{{ url_for('login') }}" method="Post">
        <fieldset>

{{ form.username.label }}: {{ form.username() }}

{{ form.password.label }}: {{ form.password() }}

                <button class="btn btn-default" type="submit">

                    Log In
                </button>

        </fieldset>
    </form>

    or Register for an account

{% endblock %}

A: You still have to use the return statement - for ex:
return render_template('login.html', title='Login', form=form)

in all your if-else branches because, else, the form context variable is not passed to the template. The login function should look like:
@app.route('/login/', methods=['GET', 'POST'])
def login():
    form = LoginForm(request.form)
    if request.method == 'POST' and form.validate():
        if load_user(form.username.data) is None:
            flash('Invalid username')
            return render_template('login.html', title='Login', form=form)
    else:
        if check_password_hash(cred.password, form.password.data):
            return redirect(url_for('browse'))
        else:
            flash('Invalid password')
            return render_template('login.html', title='Login', form=form)
    return render_template('login.html', title='Login', form=form)