text:
using System;
using System.Windows.Forms;
using ChartDirector;

namespace CSharpChartExplorer
{
    public partial class FrmRealTimeZoomScroll : Form
    {
        // The data arrays that store the realtime data. The data arrays are updated in realtime.
        // In this demo, we store at most 10000 values.
        private const int sampleSize = 10000;
        private DateTime[] timeStamps = new DateTime[sampleSize];
        private double[] dataSeriesA = new double[sampleSize];
        private double[] dataSeriesB = new double[sampleSize];
        private double[] dataSeriesC = new double[sampleSize];

        // The index of the array position to which new data values are added.
        private int currentIndex = 0;

        // The full range is initialized to 60 seconds of data. It can be extended when more data
        // are available.
        private int initialFullRange = 60;

        // The maximum zoom in is 10 seconds.
        private int zoomInLimit = 10;

        // In this demo, we use a data generator driven by a timer to generate realtime data. The
        // nextDataTime is an internal variable used by the data generator to keep track of which
        // values to generate next.
        private DateTime nextDataTime = new DateTime(DateTime.Now.Ticks / 10000000 * 10000000);

        public FrmRealTimeZoomScroll()
        {
            InitializeComponent();
        }

        private void FrmRealtimeZoomScroll_Load(object sender, EventArgs e)
        {
            // Initialize the WinChartViewer
            initChartViewer(winChartViewer1);

            // Data generation rate
            dataRateTimer.Interval = 250;

            // Chart update rate, which can be different from the data generation rate.
            chartUpdateTimer.Interval = (int)samplePeriod.Value;

            // Now can start the timers for data collection and chart update
            dataRateTimer.Start();
            chartUpdateTimer.Start();
        }

        //
        // Initialize the WinChartViewer
        //
        private void initChartViewer(WinChartViewer viewer)
        {
            viewer.MouseWheelZoomRatio = 1.1;

            // Initially set the mouse usage to "Pointer" mode (Drag to Scroll mode)
            pointerPB.Checked = true;
        }

        //
        // The data update routine. In this demo, it is invoked every 250ms to get new data.
        //
        private void dataRateTimer_Tick(object sender, EventArgs e)
        {
            do
            {
                //
                // In this demo, we use some formulas to generate new values. In real applications,
                // it may be replaced by some data acquisition code.
                //
                double p = nextDataTime.Ticks / 10000000.0 * 4;
                double dataA = 20 + Math.Cos(p * 2.2) * 10 + 1 / (Math.Cos(p) * Math.Cos(p) + 0.01);
                double dataB = 150 + 100 * Math.Sin(p / 27.7) * Math.Sin(p / 10.1);
                double dataC = 150 + 100 * Math.Cos(p / 6.7) * Math.Cos(p / 11.9);

                // In this demo, if the data arrays are full, the oldest 5% of data are discarded.
                if (currentIndex >= timeStamps.Length)
                {
                    currentIndex = sampleSize * 95 / 100 - 1;

                    for (int i = 0; i < currentIndex; ++i)
                    {
                        int srcIndex = i + sampleSize - currentIndex;
                        timeStamps[i] = timeStamps[srcIndex];
                        dataSeriesA[i] = dataSeriesA[srcIndex];
                        dataSeriesB[i] = dataSeriesB[srcIndex];
                        dataSeriesC[i] = dataSeriesC[srcIndex];
                    }
                }

                // Store the new values in the current index position, and increment the index.
                timeStamps[currentIndex] = nextDataTime;
                dataSeriesA[currentIndex] = dataA;
                dataSeriesB[currentIndex] = dataB;
                dataSeriesC[currentIndex] = dataC;
                ++currentIndex;

                nextDataTime = nextDataTime.AddMilliseconds(dataRateTimer.Interval);
            }
            while (nextDataTime < DateTime.Now);

            // We provide some visual feedback to the numbers generated, so you can see the
            // values being generated.
            valueA.Text = dataSeriesA[currentIndex - 1].ToString(".##");
            valueB.Text = dataSeriesB[currentIndex - 1].ToString(".##");
            valueC.Text = dataSeriesC[currentIndex - 1].ToString(".##");
        }

        //
        // Update the chart and the viewport periodically
        //
        private void chartUpdateTimer_Tick(object sender, EventArgs e)
        {
            WinChartViewer viewer = winChartViewer1;

            if (currentIndex >= 0)
            {
                //
                // As we added more data, we may need to update the full range.
                //

                DateTime startDate = timeStamps[0];
                DateTime endDate = timeStamps[currentIndex - 1];

                // Use the initialFullRange if this is sufficient.
                double duration = endDate.Subtract(startDate).TotalSeconds;
                if (duration < initialFullRange)
                    endDate = startDate.AddSeconds(initialFullRange);

                // Update the full range to reflect the actual duration of the data. In this case,
                // if the view port is viewing the latest data, we will scroll the view port as new
                // data are added. If the view port is viewing historical data, we would keep the
                // axis scale unchanged to keep the chart stable.
                int updateType = Chart.ScrollWithMax;
                if (viewer.ViewPortLeft + viewer.ViewPortWidth < 0.999)
                    updateType = Chart.KeepVisibleRange;
                bool axisScaleHasChanged = viewer.updateFullRangeH("x", startDate, endDate, updateType);

                // Set the zoom in limit as a ratio to the full range
                viewer.ZoomInWidthLimit = zoomInLimit / (viewer.getValueAtViewPort("x", 1) -
                    viewer.getValueAtViewPort("x", 0));

                // Trigger the viewPortChanged event to update the display if the axis scale has
                // changed or if new data are added to the existing axis scale.
                if (axisScaleHasChanged || (duration < initialFullRange))
                    viewer.updateViewPort(true, false);
            }
        }

        //
        // The ViewPortChanged event handler. This event occurs if the user scrolls or zooms in
        // or out the chart by dragging or clicking on the chart. It can also be triggered by
        // calling WinChartViewer.updateViewPort.
        //
        private void winChartViewer1_ViewPortChanged(object sender, WinViewPortEventArgs e)
        {
            // In addition to updating the chart, we may also need to update other controls that
            // changes based on the view port.
            updateControls(winChartViewer1);

            // Update the chart if necessary
            if (e.NeedUpdateChart)
                drawChart(winChartViewer1);
        }

        //
        // Update other controls when the view port changed
        //
        private void updateControls(WinChartViewer viewer)
        {
            // Update the scroll bar to reflect the view port position and width.
            hScrollBar1.Enabled = winChartViewer1.ViewPortWidth < 1;
            hScrollBar1.LargeChange = (int)Math.Ceiling(winChartViewer1.ViewPortWidth *
                (hScrollBar1.Maximum - hScrollBar1.Minimum));
            hScrollBar1.SmallChange = (int)Math.Ceiling(hScrollBar1.LargeChange * 0.1);
            hScrollBar1.Value = (int)Math.Round(winChartViewer1.ViewPortLeft *
                (hScrollBar1.Maximum - hScrollBar1.Minimum)) + hScrollBar1.Minimum;
        }

        //
        // Draw the chart.
        //
        private void drawChart(WinChartViewer viewer)
        {
            // Get the start date and end date that are visible on the chart.
            DateTime viewPortStartDate = Chart.NTime(viewer.getValueAtViewPort("x", viewer.ViewPortLeft));
            DateTime viewPortEndDate = Chart.NTime(viewer.getValueAtViewPort("x", viewer.ViewPortLeft +
                viewer.ViewPortWidth));

            // Extract the part of the data arrays that are visible.
            DateTime[] viewPortTimeStamps = null;
            double[] viewPortDataSeriesA = null;
            double[] viewPortDataSeriesB = null;
            double[] viewPortDataSeriesC = null;

            if (currentIndex > 0)
            {
                // Get the array indexes that corresponds to the visible start and end dates
                int startIndex = (int)Math.Floor(Chart.bSearch2(timeStamps, 0, currentIndex, viewPortStartDate));
                int endIndex = (int)Math.Ceiling(Chart.bSearch2(timeStamps, 0, currentIndex, viewPortEndDate));
                int noOfPoints = endIndex - startIndex + 1;

                // Extract the visible data
                viewPortTimeStamps = (DateTime[])Chart.arraySlice(timeStamps, startIndex, noOfPoints);
                viewPortDataSeriesA = (double[])Chart.arraySlice(dataSeriesA, startIndex, noOfPoints);
                viewPortDataSeriesB = (double[])Chart.arraySlice(dataSeriesB, startIndex, noOfPoints);
                viewPortDataSeriesC = (double[])Chart.arraySlice(dataSeriesC, startIndex, noOfPoints);
            }

            //
            // At this stage, we have extracted the visible data. We can use those data to plot the chart.
            //

            //================================================================================
            // Configure overall chart appearance.
            //================================================================================

            // Create an XYChart object of size 640 x 350 pixels
            XYChart c = new XYChart(640, 350);

            // Set the plotarea at (55, 50) with width 80 pixels less than chart width, and height 85 pixels
            // less than chart height. Use a vertical gradient from light blue (f0f6ff) to sky blue (a0c0ff)
            // as background. Set border to transparent and grid lines to white (ffffff).
            c.setPlotArea(55, 50, c.getWidth() - 85, c.getHeight() - 80, c.linearGradientColor(0, 50, 0,
                c.getHeight() - 35, 0xf0f6ff, 0xa0c0ff), -1, Chart.Transparent, 0xffffff, 0xffffff);

            // As the data can lie outside the plotarea in a zoomed chart, we need enable clipping.
            c.setClipping();

            // Add a title to the chart using 18 pts Times New Roman Bold Italic font
            c.addTitle("  Realtime Chart with Zoom/Scroll and Track Line", "Arial", 18);

            // Add a legend box at (55, 25) using horizontal layout. Use 8pts Arial Bold as font. Set the
            // background and border color to Transparent and use line style legend key.
            LegendBox b = c.addLegend(55, 25, false, "Arial Bold", 10);
            b.setBackground(Chart.Transparent);
            b.setLineStyleKey();

            // Set the x and y axis stems to transparent and the label font to 10pt Arial
            c.xAxis().setColors(Chart.Transparent);
            c.yAxis().setColors(Chart.Transparent);
            c.xAxis().setLabelStyle("Arial", 10);
            c.yAxis().setLabelStyle("Arial", 10);

            // Add axis title using 10pts Arial Bold Italic font
            c.yAxis().setTitle("Ionic Temperature (C)", "Arial Bold", 10);

            //================================================================================
            // Add data to chart
            //================================================================================

            //
            // In this example, we represent the data by lines. You may modify the code below to use other
            // representations (areas, scatter plot, etc).
            //

            // Add a line layer for the lines, using a line width of 2 pixels
            LineLayer layer = c.addLineLayer2();
            layer.setLineWidth(2);
            layer.setFastLineMode();

            // Now we add the 3 data series to a line layer, using the color red (ff0000), green (00cc00)
            // and blue (0000ff)
            layer.setXData(viewPortTimeStamps);
            layer.addDataSet(viewPortDataSeriesA, 0xff0000, "Alpha");
            layer.addDataSet(viewPortDataSeriesB, 0x00cc00, "Beta");
            layer.addDataSet(viewPortDataSeriesC, 0x0000ff, "Gamma");

            //================================================================================
            // Configure axis scale and labelling
            //================================================================================

            if (currentIndex > 0)
                c.xAxis().setDateScale(viewPortStartDate, viewPortEndDate);

            // For the automatic axis labels, set the minimum spacing to 75/30 pixels for the x/y axis.
            c.xAxis().setTickDensity(75);
            c.yAxis().setTickDensity(30);

            //
            // In a zoomable chart, the time range can be from a few years to a few seconds. We can need
            // to define the date/time format the various cases.
            //

            // If all ticks are year aligned, we use "yyyy" as the label format.
            c.xAxis().setFormatCondition("align", 360 * 86400);
            c.xAxis().setLabelFormat("{value|yyyy}");

            // If all ticks are month aligned, we use "mmm yyyy" in bold font as the first label of a year,
            // and "mmm" for other labels.
            c.xAxis().setFormatCondition("align", 30 * 86400);
            c.xAxis().setMultiFormat(Chart.StartOfYearFilter(), "<*font=bold*>{value|mmm yyyy}",
                Chart.AllPassFilter(), "{value|mmm}");

            // If all ticks are day algined, we use "mmm dd<*br*>yyyy" in bold font as the first label of a
            // year, and "mmm dd" in bold font as the first label of a month, and "dd" for other labels.
            c.xAxis().setFormatCondition("align", 86400);
            c.xAxis().setMultiFormat(Chart.StartOfYearFilter(),
                "<*block,halign=left*><*font=bold*>{value|mmm dd<*br*>yyyy}", Chart.StartOfMonthFilter(),
                "<*font=bold*>{value|mmm dd}");
            c.xAxis().setMultiFormat2(Chart.AllPassFilter(), "{value|dd}");

            // If all ticks are hour algined, we use "hh:nn<*br*>mmm dd" in bold font as the first label of
            // the Day, and "hh:nn" for other labels.
            c.xAxis().setFormatCondition("align", 3600);
            c.xAxis().setMultiFormat(Chart.StartOfDayFilter(), "<*font=bold*>{value|hh:nn<*br*>mmm dd}",
                Chart.AllPassFilter(), "{value|hh:nn}");

            // If all ticks are minute algined, then we use "hh:nn" as the label format.
            c.xAxis().setFormatCondition("align", 60);
            c.xAxis().setLabelFormat("{value|hh:nn}");

            // If all other cases, we use "hh:nn:ss" as the label format.
            c.xAxis().setFormatCondition("else");
            c.xAxis().setLabelFormat("{value|hh:nn:ss}");

            // We make sure the tick increment must be at least 1 second.
            c.xAxis().setMinTickInc(1);

            //================================================================================
            // Output the chart
            //================================================================================

            // We need to update the track line too. If the mouse is moving on the chart (eg. if
            // the user drags the mouse on the chart to scroll it), the track line will be updated
            // in the MouseMovePlotArea event. Otherwise, we need to update the track line here.
            if (!winChartViewer1.IsInMouseMoveEvent)
            {
                trackLineLabel(c, (null == viewer.Chart) ? c.getPlotArea().getRightX() :
                    viewer.PlotAreaMouseX);
            }

            viewer.Chart = c;
        }

        //
        // Draw track line with data labels
        //
        private void trackLineLabel(XYChart c, int mouseX)
        {
            // Clear the current dynamic layer and get the DrawArea object to draw on it.
            DrawArea d = c.initDynamicLayer();

            // The plot area object
            PlotArea plotArea = c.getPlotArea();

            // Get the data x-value that is nearest to the mouse, and find its pixel coordinate.
            double xValue = c.getNearestXValue(mouseX);
            int xCoor = c.getXCoor(xValue);
            if (xCoor < plotArea.getLeftX())
                return;

            // Draw a vertical track line at the x-position
            d.vline(plotArea.getTopY(), plotArea.getBottomY(), xCoor, 0x888888);

            // Draw a label on the x-axis to show the track line position.
            string xlabel = "<*font,bgColor=000000*> " + c.xAxis().getFormattedLabel(xValue, "hh:nn:ss.ff") +
                " <*/font*>";
            TTFText t = d.text(xlabel, "Arial Bold", 10);

            // Restrict the x-pixel position of the label to make sure it stays inside the chart image.
            int xLabelPos = Math.Max(0, Math.Min(xCoor - t.getWidth() / 2, c.getWidth() - t.getWidth()));
            t.draw(xLabelPos, plotArea.getBottomY() + 6, 0xffffff);

            // Iterate through all layers to draw the data labels
            for (int i = 0; i < c.getLayerCount(); ++i)
            {
                Layer layer = c.getLayerByZ(i);

                // The data array index of the x-value
                int xIndex = layer.getXIndexOf(xValue);

                // Iterate through all the data sets in the layer
                for (int j = 0; j < layer.getDataSetCount(); ++j)
                {
                    ChartDirector.DataSet dataSet = layer.getDataSetByZ(j);

                    // Get the color and position of the data label
                    int color = dataSet.getDataColor();
                    int yCoor = c.getYCoor(dataSet.getPosition(xIndex), dataSet.getUseYAxis());

                    // Draw a track dot with a label next to it for visible data points in the plot area
                    if ((yCoor >= plotArea.getTopY()) && (yCoor <= plotArea.getBottomY()) && (color !=
                        Chart.Transparent) && (!string.IsNullOrEmpty(dataSet.getDataName())))
                    {
                        d.circle(xCoor, yCoor, 4, 4, color, color);

                        string label = "<*font,bgColor=" + color.ToString("x") + "*> " + c.formatValue(
                            dataSet.getValue(xIndex), "{value|P4}") + " <*/font*>";
                        t = d.text(label, "Arial Bold", 10);

                        // Draw the label on the right side of the dot if the mouse is on the left side the
                        // chart, and vice versa. This ensures the label will not go outside the chart image.
                        if (xCoor <= (plotArea.getLeftX() + plotArea.getRightX()) / 2)
                            t.draw(xCoor + 5, yCoor, 0xffffff, Chart.Left);
                        else
                            t.draw(xCoor - 5, yCoor, 0xffffff, Chart.Right);
                    }
                }
            }
        }

        //
        // Updates the chartUpdateTimer interval if the user selects another interval.
        //
        private void samplePeriod_ValueChanged(object sender, EventArgs e)
        {
            chartUpdateTimer.Interval = (int)samplePeriod.Value;
        }

        //
        // The scroll bar event handler
        //
        private void hScrollBar1_ValueChanged(object sender, EventArgs e)
        {
            // When the view port is changed (user drags on the chart to scroll), the scroll bar will get
            // updated. When the scroll bar changes (eg. user drags on the scroll bar), the view port will
            // get updated. This creates an infinite loop. To avoid this, the scroll bar can update the
            // view port only if the view port is not updating the scroll bar.
            if (!winChartViewer1.IsInViewPortChangedEvent)
            {
                winChartViewer1.ViewPortLeft = ((double)(hScrollBar1.Value - hScrollBar1.Minimum))
                    / (hScrollBar1.Maximum - hScrollBar1.Minimum);

                // Trigger a view port changed event to update the chart
                winChartViewer1.updateViewPort(true, false);
            }
        }

        //
        // Draw track cursor when mouse is moving over plotarea
        //
        private void winChartViewer1_MouseMovePlotArea(object sender, MouseEventArgs e)
        {
            WinChartViewer viewer = (WinChartViewer)sender;
            trackLineLabel((XYChart)viewer.Chart, viewer.PlotAreaMouseX);
            viewer.updateDisplay();
        }

        //
        // Pointer (Drag to Scroll) button event handler
        //
        private void pointerPB_CheckedChanged(object sender, EventArgs e)
        {
            if (((RadioButton)sender).Checked)
                winChartViewer1.MouseUsage = WinChartMouseUsage.ScrollOnDrag;
        }

        //
        // Zoom In button event handler
        //
        private void zoomInPB_CheckedChanged(object sender, EventArgs e)
        {
            if (((RadioButton)sender).Checked)
                winChartViewer1.MouseUsage = WinChartMouseUsage.ZoomIn;
        }

        //
        // Zoom Out button event handler
        //
        private void zoomOutPB_CheckedChanged(object sender, EventArgs e)
        {
            if (((RadioButton)sender).Checked)
                winChartViewer1.MouseUsage = WinChartMouseUsage.ZoomOut;
        }

        //
        // Save button event handler
        //
        private void savePB_Click(object sender, EventArgs e)
        {
            // The standard Save File dialog
            SaveFileDialog fileDlg = new SaveFileDialog();
            fileDlg.Filter = "PNG (*.png)|*.png|JPG (*.jpg)|*.jpg|GIF (*.gif)|*.gif|BMP (*.bmp)|*.bmp|" +
                "SVG (*.svg)|*.svg|PDF (*.pdf)|*.pdf";
            fileDlg.FileName = "chartdirector_demo";
            if (fileDlg.ShowDialog() != DialogResult.OK)
                return;

            // Save the chart
            if (null != winChartViewer1.Chart)
                winChartViewer1.Chart.makeChart(fileDlg.FileName);
        }
    }
}


text:
Michael Keany's Blog – August 2011 Archive (38)
What's the formula for a good school? By Jay Mathews
What's the formula for a good school?
By Jay Mathews, Published: August 28
Summer's gone, almost. It's time to get serious about fixing our schools.
I had fun in July and August jousting with readers about provocative topics such as teachers making unannounced home visits and getting D.C. schools leaders…
Added by Michael Keany on August 29, 2011 at 12:28pm — No Comments
What Schools Can Learn From Google, IDEO, and Pixar
The country's strongest innovators embrace creativity, play, and collaboration -- values that also inform their physical spaces.
A community about to build or rehab a…
Added by Michael Keany on August 29, 2011 at 9:11am — No Comments
Twenty Movies Every Educator Should See
By Nicholas Provenzano [1]…
Added by Michael Keany on August 26, 2011 at 6:21pm — 1 Comment
Arne Duncan's Twitter Town Hall: Orwell Would Be Proud By Anthony Cody
Arne Duncan's Twitter Town Hall: Orwell Would Be Proud
By Anthony Cody on August 25, 2011
Added by Michael Keany on August 26, 2011 at 1:14pm — No Comments
School Superintendents Walk a Tightrope By Walt Gardner
School Superintendents Walk a Tightrope
By Walt Gardner on August 26, 2011
It's customary for…
How to Fix Our Math Education By SOL GARFUNKEL and DAVID MUMFORD
How to Fix Our Math Education
By SOL GARFUNKEL and DAVID MUMFORD
THERE is widespread alarm in the United States about the state of our math education. The anxiety can be traced to the poor performance of American students on various international tests, and it is now embodied in George W. Bush's No Child Left Behind law, which requires…
How Teachers and New Administrators Can Lead Together
By Cindi Rigsbee
Teacher Leader Network
A few weeks ago, the faculty at my school received an unexpected call from our principal. He used the synchronized messaging system that delivers phone calls to all of us at once, usually announcing weather delays and PTA meetings. And even though I was…
There are more successful schools than you think (see for yourself) By Sean Slade
There are more successful schools than you think (see for yourself)
By Valerie Strauss
This was written by Sean Slade, director of Healthy School Communities at ASCD, a global association empowering educators to support…
How Do We Prepare Our Children for What's Next? by Cathy Davidson
How Do We Prepare Our Children for What's Next?
What kids learn at a young age will determine whether they're prepared for a future full of unknowns.
When most of us were deciding what to major in at college, the word Google was not a verb.…
The Hidden Costs of Higher Ed By NOAH S. BERNSTEIN
The Hidden Costs of Higher Ed
By NOAH S. BERNSTEIN
OVER the next few weeks, millions of Americans will be heading off to college, and despite the promise of need-blind admissions, more of them than ever will be struggling to pay for it. It's not just the economy's fault: even as they publicize lavish financial aid packages, colleges and universities are making it harder for average American families…
Ten Tell-Tale Signs that It's Time to Get Back to the Classroom
By Holden Clemens [1]
Added by Michael Keany on August 20, 2011 at 11:44am — No Comments
Professional Judgment: Beyond Data Worship
By Justin Baeder on August 15, 2011
We've been "data driven" for…
How to Create Nonreaders Reflections on Motivation, Learning, and Sharing Power By Alfie Kohn
ENGLISH JOURNAL
Fall 2010 -- vol. 100, no. 1
How to Create Nonreaders
Reflections on Motivation, Learning, and Sharing Power
By Alfie Kohn
Autonomy-supportive teachers seek a student's initiative
- whereas controlling teachers seek a student's…
When A "Good" Class Goes "Bad" (And Back To "Good" Again!) by Larry Ferlazzo
Larry Ferlazzo
When A "Good" Class Goes "Bad" (And Back To "Good" Again!)
Note: I posted a version of this piece last week in In Practice , a group blog written by teachers who work in lower-income communities. It originally included nine actions I had taken. Since that original posting, I remembered a tenth step I took, and also solicited anonymous feedback from my students about their perception of changes that have occurred in the classroom. I've included both the… Continue
Helping Students Deal with Uncertainty in the Classroom BY BEN JOHNSON
Helping Students Deal with Uncertainty in the Classroom
BY BEN JOHNSON
I did an experiment with a group of adult educators. I gave them very vague instructions on how to arrange groups. The goal was that each educator would participate in four different groups. I told them that the composition of each group had to be different. Some of the adults were willing to work it out, trial and error even. Others would get to a point and then realize that they did not… Continue
To Waive or not to Waive by former U.S. Secretary of Education Margaret Spellings
This is the first of a series of posts former U.S. Secretary of Education Margaret Spellings is writing for The Huffington Post over the next few weeks through back-to-school season on U.S. Education.
Hopelessness and lack of confidence, spending dominating policymaking conversations, angst at all levels of government, and a public disgusted, disconnected and disappointed -- descriptors of our current economic situation? No, (well yes), they're descriptors of the current…
The 'absurd' debate about length of school year by Mark Phillips
The 'absurd' debate about length of school year
This was written by Mark Phillips, professor emeritus of secondary education at …
Mathematics Education: A Way Forward By David Wees
Mathematics Education: A Way Forward
By David Wees -
Population × Bad curriculum Multiple generations = Functionally innumerate population
The objective of good math teaching should not be to "cover the curriculum" but to show students how to explore our fascinating and beautiful world through the lens of…
Super Teachers Alone Can't Save Our Schools by Steven Brill
Super Teachers Alone Can't Save Our Schools
Extraordinary educators are rare and often burn out. To save our schools, says Steven Brill, we have to demand more from ordinary teachers and their unions.…
The 6 Dumbest Things Schools Are Doing in the Name of Safety By:Sara J., Steve Blair
The 6 Dumbest Things Schools Are Doing in the Name of Safety
By:Sara J., Steve Blair August 14, 2011 …
Music ed pays off across curriculum, justifying costs
Removing the Stigma of Observations
Why Can't Education Progress Like Medicine Does? by Robert E. Slavin
Suspending suspensions
The Best Videos For Teaching About Iran-U.S. Tensions
Strategies to Help You Integrate Differentiated Instruction in Your Classroom Teaching
What Could Be
Today, for the first and only time in as long as I can remember, I wasn't sure I wanted to be a teacher. by Jennifer Higgins
A Hero Superintendent in Long Island Says: "To Hell with These Scores. They Do Not Matter" By Diane Ravitch
A Sandy Hook Parent's Letter to Teachers By Nelba Marquez-Greene
Dr. Don Sternberg's Speech at More than a Number Forum - April 10, 2013
Richard Allington on Doing Right by Struggling Readers
Virginia Teacher of the Year Tells Why He Resigned
Dear Parents - A Must Read by Donald Sternberg

redpajama_set_name: RedPajamaCommonCrawl


text:
package com.qihoo360.replugin.utils;

import android.os.Build;
import android.util.Log;

import com.qihoo360.replugin.RePluginInternal;

import java.io.File;
import java.io.IOException;

/**
 * @author RePlugin Team
 *
 * Art Dex2Oat utils
 */
public class Dex2OatUtils {

    public static final String TAG = "Dex2Oat";

    private static final boolean FOR_DEV = RePluginInternal.FOR_DEV;

    /**
     * 判断当前是否Art模式
     *
     * @return
     */
    public static boolean isArtMode() {
        return System.getProperty("java.vm.version", "").startsWith("2");
    }

    /**
     * 在真正loadDex之前 inject
     *
     * @param dexPath
     * @param optimizedDirectory
     * @param optimizedFileName
     * @return
     */
    public static void injectLoadDex(String dexPath, String optimizedDirectory, String optimizedFileName) {
        if (Dex2OatUtils.isArtMode()) {
            File odexFile = new File(optimizedDirectory, optimizedFileName);

            if (!odexFile.exists() || odexFile.length() <= 0) {

                if (FOR_DEV) {
                    Log.d(Dex2OatUtils.TAG, optimizedFileName + " 文件不存在");
                }

                long being = System.currentTimeMillis();
                boolean injectLoadDex = innerInjectLoadDex(dexPath, optimizedDirectory, optimizedFileName);

                if (FOR_DEV) {
                    Log.d(Dex2OatUtils.TAG, "injectLoadDex use:" + (System.currentTimeMillis() - being));
                    Log.d(Dex2OatUtils.TAG, "injectLoadDex result:" + injectLoadDex);
                }
            } else {
                if (FOR_DEV) {
                    Log.d(Dex2OatUtils.TAG, optimizedFileName + " 文件存在, 不需要inject,size:" + odexFile.length());
                }
            }
        }
    }

    private static boolean innerInjectLoadDex(String dexPath, String optimizedDirectory, String optimizedFileName) {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
            if (FOR_DEV) {
                Log.d(TAG, "before Android L, do nothing.");
            }
            return false;
        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && Build.VERSION.SDK_INT <= Build.VERSION_CODES.N_MR1) {
            return injectLoadDex4Art(dexPath, optimizedDirectory, optimizedFileName);
        } else {
            return injectLoadDex4More();
        }
    }

    private static boolean injectLoadDexBeforeN() {
        if (isArtMode()) {

            long begin = System.currentTimeMillis();

            if (FOR_DEV) {
                Log.d(TAG, "Art before Android N, try 2 hook.");
            }

            try {
//                ArtAdapter.setDex2oatEnabledNative(true);
            } catch (Throwable e) {
                if (FOR_DEV) {
                    e.printStackTrace();
                    Log.e(TAG, "hook error");
                }
            }

            if (FOR_DEV) {
                Log.d(TAG, "hook end, use:" + (System.currentTimeMillis() - begin));
            }

            return true;
        }

        if (FOR_DEV) {
            Log.d(TAG, "not Art, do nothing.");
        }
        return false;
    }

    private static boolean injectLoadDex4Art(String dexPath, String optimizedDirectory, String optimizedFileName) {
        if (FOR_DEV) {
            Log.d(TAG, "Andorid Art, try 2 interpretDex2Oat, interpret-only.");
        }

        String odexAbsolutePath = (optimizedDirectory + File.separator + optimizedFileName);

        long begin = System.currentTimeMillis();
        try {
            InterpretDex2OatHelper.interpretDex2Oat(dexPath, odexAbsolutePath);
        } catch (IOException e) {
            if (FOR_DEV) {
                e.printStackTrace();
                Log.e(TAG, "interpretDex2Oat Error");
            }
            return false;
        }

        if (FOR_DEV) {
            Log.d(TAG, "interpretDex2Oat use:" + (System.currentTimeMillis() - begin));
            Log.d(TAG, "interpretDex2Oat odexSize:" + InterpretDex2OatHelper.getOdexSize(odexAbsolutePath));
        }

        return true;
    }

    private static boolean injectLoadDex4More() {
        return false;
    }
}

redpajama_set_name: RedPajamaGithub


On Dec 29- Dec 31st I decided to take a vow of silence. Not to be silent but to listen to the people unheard. I sat down in Wynwood which is one the busiest areas in Miami to just listen to people. I decided to do this solely because we are stuck in a digital time were everyone is fighting to have their voice heard. I listened to over 100 stories and didn't say 1 single word. Heard stories of happiness, stories of pain , stories of all kinds. The steps I choose to do was listen to strangers on Dec 29-30th. On Dec 31st, I decided to listen to my family.When the New Year hit my first words were Happy New Years to the one's I love. On Jan 1st 2016 my life changed. I went to the smoky mountains to listen now to myself and I realized we all speak just to know that one is alive.


text:
For International Women's Day 2019, The Survivors Trust wanted to send a message to every woman and girl who has ever experienced rape or sexual violence at any point in their lives. Although The Survivors Trust supports all survivors, no matter their sex or gender, on this day we wanted to celebrate the strength of female survivors in particular. It is estimated that in the last year, 561,000 women experienced sexual assault. We wanted to let everyone of them, and every female survivor who has ever been abused, that they are strong, loved and believed.
That's why for International Women's day 2019, we brought our giant blow up elephant to our local Women's Well-being event and collected messages of support for our female survivors.
Our blow up elephant is a physical representation of the saying 'the elephant in the room.' No one wants to talk about sexual violence and yet it is endemic within our society. The elephant acts as a great way of drawing people in and engaging with them about a difficult and often avoided topic of conversation. On this evening, we asked every woman who attended to write a message of support to a survivor and stick it on the elephant. We were so inspired and grateful for what we received. Thank you to everyone at the Rugby Seroptimist's Womens Well-Being Evening at Lawrence Sheriffs School for expressing your support for survivors in such beautiful and eloquent words.
Published: 8th March, 2019
We will always store your personal details securely. We'll use them to provide the service that you have requested, and communicate with you in the way(s) that you have agreed to. Your data may also be used for analysis purposes, to help us provide the best service possible. For full details see our Privacy Policy
All organisations listed on this website are independent of The Survivors Trust. Organisational Membership to The Survivors Trust does not indicate responsibility for any material that may be represented by our member organisations. We review all material that is selected for this website before publication but do not take responsibility for material that is changed after the date of publication.
1.3 Our website uses cookies; by using our website or agreeing to these terms and conditions, you consent to our use of cookies in accordance with the terms of our privacy and cookies policy.
(d) stream audio and video files from our website;
(c) exploit material from our website for a commercial purpose.


text:
Giggles and happy chatter could be heard on December 10th as 16 children received brand-new bicycles from Pedal Up Polk, a new non-profit started by Graham Turner, a high school student at Polk County High School. WNC Bridge Foundation recently awarded Pedal Up a NOW Grant to support the organization's Christmas Experience Project, which provides new bicycles, equipment, and informative bike clinics to youth in Polk County.
"I would like to thank Graham and everyone involved in giving my daughter a bike and helmet. It came at a perfect time, was very much appreciated, and was entirely unexpected. This experience was a bright light in my world, and it impressed me so much to see a young man doing such good in a community with so much joy on his face while doing it." ~Parent of bike recipient
Graham Turner, founder of Pedal Up distributes new bikes and helmets to children in Polk County.


Junior Java Developer (Scala Spring TDD Agile DevOps Docker Java 8). Fantastic opportunity for a bright Junior Java Developer to take on a varied and interesting role where you will be able to have lots of ownership and responsibility. Working alongside a friendly, dynamic and sociable team, you will face daily technical challenges allowing you to develop your skills further whilst utilising the latest tools and best fitting technology for each project you work on (including Java 8, Scala, Spring, Docker and Linux).
As a Junior Java Developer you can expect to earn a competitive salary (up to £40k) plus benefits.
Apply today or call to have a confidential discussion about this Junior Java Developer role.


text:
Nicolas Desmarest ou Desmarets, né le  à Soulaines (Aube) et mort à Paris le , est un géologue, géographe et physicien français.

Biographie

De parents maraîchers peu riches, Nicolas  Desmarest sait à peine lire à 15 ans. À la mort de son père son tuteur l'envoie en pension chez les oratoriens de Troyes. Il progresse rapidement et ses maîtres lui font poursuivre ses études à Paris, en mathématiques et physique. En 1753, il remporte le prix de l'Académie des Sciences, des Lettres et des Arts d'Amiens sur la question relative à l'ancienne jonction continentale de l'Angleterre à la France.

En 1765 et 1766, il fait un long voyage en Italie, accompagnant le duc Louis-Alexandre de La Rochefoucauld d'Enville dans son « Grand Tour ».

Administrateur et enseignant

Il est élu adjoint dans la classe de mécanique de l'Académie des sciences en 1771, et promu associé en 1773. En 1785 il devint pensionnaire de la nouvelle classe d'histoire naturelle et de minéralogie.

Il est nommé inspecteur général des manufactures en 1788.

Il est emprisonné pendant la Terreur en 1792. Quand il en sort, il accepte, quoique déjà septuagénaire, la place de professeur d'histoire naturelle à l'École centrale.

Il est membre de la Société d'agriculture, du Conseil du commerce, etc., un des administrateurs de la manufacture de Sèvres et membre de la commission temporaire qui, en 1793, sauve de la destruction tant de monuments des arts.

Travaux scientifiques

Nicolas Desmarest est peu reconnu comme géologue. Pourtant il y a fait un travail de pionnier, n'a publié que des travaux originaux, et - à l'encontre d'un grand nombre de « scientifiques » d'hier et d'aujourd'hui - démontre comme Guettard une attention scrupuleuse pour ce qui est de la bibliographie; c'est-à-dire de la connaissance de ce qui a déjà été dit sur le sujet.

Géographie, géologie et volcans

 Géographie

Il contribue aux deux grandes encyclopédies de la fin du  sur des sujets concernant la géographie.
Il écrit pour l'Encyclopédie de Diderot les articles « Géographie physique » et « Fontaine » (volume publié en 1757) (mais pas l'article « Montagne » comme l'affirme Numa Broc ; cet article est probablement dû à Paul Henri Thiry d'Holbach). Son article sur la géographie physique contient et démontre un exposé magistral sur la démarche inductive de Francis Bacon qui, affirme Ellenberger (1996), garde encore toute sa valeur.
Les quatre premiers volumes de son Dictionnaire de géographie physique destiné à entrer dans lEncyclopédie méthodique de Panckoucke, sont publiés en 1795, 1803, 1809 et 1811. Il meurt en 1815, et Huot supervise l'achèvement du cinquième et dernier volume.

 Géologie et volcans

La forte recrudescence des tremblements de terre et autres séismes aux s a amené les membres de l'Académie des sciences à se pencher sur les phénomènes sismiques dès les années 1740. Le célèbre séisme du  novembre 1755 à Lisbonne ne fonde pas en France une conscience du risque, mais accélère un mouvement déjà engagé.

Dans cette mouvance, Jean-Étienne Guettard annonce et démontre le volcanisme en Auvergne.

On doit à Desmarest les Conjectures physico-mathématiques sur la propagation des secousses dans les tremblements de terre (1756).

 Il étend ses recherches sur le basalte dont jusque là on attribuait la formation à l'action de la mer, et détermine que cette roche est d'origine volcanique - une nouveauté importante, note Richet (2003), car elle « permet de conclure, même en l'absence de tout volcan, à l'existence d'un volcanisme éteint d'après la seule observation de roches ». Il rentre à Paris fin 1764 et convainc l'intendant d'Auvergne de l'importance de cartographier la partie volcanique de l'Auvergne. François Pasumot, ingénieur-géographe du roi possédant de bonnes notions de minéralogie, en est chargé. Ce long travail dure de 1764 à 1766, années au cours desquelles Pasumot et Desmarest arpentent les « cantons incendiés », et d'abord la région du Mont-Dore. Desmarest profite de son voyage en Italie en 1765-1766 pour comparer les formations volcaniques auvergnates et italiennes, dont il établit la similarité. La première carte des volcans de l'Auvergne paraît en 1771, accompagnée de descriptions complètes par Desmarest. La carte définitive, à laquelle Desmarest travaille pratiquement tout le restant de sa vie, est achevée en 1823. Son fils Anselme la publie, huit ans après sa mort.

Ses idées sur les volcans apparaissent clairement dans un manuscrit dans lequel il montre sa rivalité avec William Hamilton (1731-1803). Contrairement à Hamilton, Desmarest croit notamment que les éruptions volcaniques se produisent souvent dans des montagnes préexistantes, que les feux se produisent à faible profondeur et ne sont pas très chauds, dans la mesure où très souvent du quartz est retrouvé dans les couches sédimentaires alors que ce minéral est réfractaire à ces feux.

Le volcanisme d'Auvergne et d'autres lieux est repris dans son Dictionnaire de géographie physique.

 Sur les manufactures de drap
En 1757, le gouvernement le charge de visiter les principales manufactures de draps pour recueillir les meilleurs procédés sur ce genre de fabrication ; c'est d'après les renseignements qu'il lui fournit que Duhamel rédige l'Art du drapier.

 Sur les fromageries
En 1761, il visite les fromageries de Franche-Comté et de Lorraine, dont le gouvernement désire introduire les procédés en Auvergne, et compose plus tard l'Art de fabriquer le fromage inséré dans lEncyclopédie de Diderot à laquelle il a également donné les articles « Troyes, blanc de », « fromage d'Auvergne », « fromage de gruieres », « fromage de Gérardmer » (sixième volume des planches).

 Sur la fabrication du papier
Desmarest fait en 1768 et 1777 deux voyages en Hollande pour étudier la fabrication du papier et, par ses conseils, contribue beaucoup aux améliorations introduites dans les fabriques d'Annonay. On lui doit un Mémoire sur les principales manipulations dans les papeteries en Hollande, avec l'explication physique de leur résultat (1771), et un Second mémoire sur la papeterie, dans lequel on traite de la nature & des qualités des pâtes  & ….

 Publications

 .
 .
 .
 .
 .
 .
 .
 Dictionnaire de géographie physique (de l'Encyclopédie) (1778-1828, 5 vol., avec atlas).
 .
 .

 Autres
 1754 : Révision et mise à jour de l'ouvrage par Francis Hauksbee Expériences physico- sur  sujets et principalement sur la lumière et l'électricité, produites par le frottement des corps, traduit de l'anglais par Brémond :
 .
 .

Notes et références
 Notes

 Références

Voir aussi

Bibliographie

 .
 .
 .
 .
 .
 .
 .

Liens externes

Géographe français
Membre de l'Académie des sciences (France)
Collaborateur de l'Encyclopédie (1751-1772)
Membre de l'Académie des sciences, des lettres et des arts d'Amiens
Volcanologue français
Naissance dans la province de Champagne
Naissance en septembre 1725
Décès en septembre 1815
Collaborateur de l'Encyclopédie méthodique
Décès à Paris
Membre de l'Académie nationale des sciences, belles-lettres et arts de Bordeaux

redpajama_set_name: RedPajamaWikipedia


This reality-based system is designed to teach real self-defense in the shortest possible time.
and I'm the owner of USA KARATE. When I was a child, I began my martial arts journey and the positive impact it had on my life was remarkable. It was always my dream to someday own my own school in Memphis and create an enjoyable environment for students to improve their fitness while building confidence they can carry into their everyday lives. Take advantage of one of our amazing web specials today - join us as we empower ourselves and our community with martial arts!


Be one of only 3 homes on a private driveway leading you to this site with beautiful inter-coastal views. Located on a quiet cul de sac in the estate section of Palencia build your dream home on almost 2 acres. This is a rare opportunity to build on one of the very few remaining inter-coastal view lots in the community.


Spyware is a type of software that is installed on your computer to watch and record your activity. Some types of spyware record your keystrokes and information such as your password , credit card details that you type into websites or other programs and then use that information for targeted advertising or identity theft.
These programs can be installed on your computer in many ways, but often they are hidden inside of software such as free games, screen savers, or animated cursors and freewares that you download.
· You notice new toolbars, links, or favorites that you didn't intentionally add to your web browser.
· Your home page, mouse pointer, or search program changes unexpectedly.
· You type the address of a specific website into your web browser, but you're taken to a completely unrelated website.
· You see pop-up ads, even if your computer isn't connected to the Internet.
· Your computer suddenly starts running slowly. Not all computer performance problems are caused by spyware, but spyware can cause a noticeable change.


This image gallery named as Small Front Porch Inspiration DesignLively might be ideal solution for your decoration. As the author has insert this image into Small Front Porch Chairs post section, would ease you to find the perfect match of you decor desire.
Light is the best company to get a white small front porch inspiration designlively. It'll make your chair appears bright, warm and airy. Natural light is always the ideal. But white LED lamps can also be a wonderful addition for your beautiful white chair cabinets with white countertops.
A composite of white small front porch inspiration designlively cabinets with white appliances would be the principal step in designing a white controlled chair. But if you're not careful, white could produce the room appears dull and boring. If you want to have a stunning and elegant yet lively white chair, be sure to adhere to these next steps.
When you're confused to purchase small front porch inspiration designlively appliance packs, chair appliance packages Home Depot may be the best choice for you. There are several chair appliance packages you can choose in Home Depot. Not just it, but you can acquire many benefits by purchasing chair appliance packages Home Depot. Here some information for you about chair appliance packs Home Depot.
Home depot is reliable and popular merchant that offers lots of home appliances from a number of brands. Thus, you are able to purchase chair appliance packs in Home Depot without any doubt. There are lots of packages can be your recommendation, and the price is competitive. You might also get a high quality of chair appliances also receive warranty. Buying chair appliance packs in Home Depot is actually right choice for you personally.
When you're confused to purchase small front porch inspiration designlively appliance packs, Lowes chair appliance bundles can be the ideal option for you. There are so many chair appliance bundles you can choose from Lowes. Not only it, you can get many advantages by buying Lowes chair appliances. Here some tips for you about Lowes chair appliances bundles.
Stainless Steel is utilized in professional small front porch inspiration designlively. So using stainless steel will definitely facilitate the appearance of your house chair. The shiny finish is also very lavish and disperse an costly atmosphere to the entire chair.
If you still have uncertainty to operate with Home Depot to set up your dream cabinets, then you can open several websites that provide Home Depot small front porch inspiration designlively cupboard reviews especially in Consumer Affairs official website.
It is possible to apply dark counter to balance the color of black appliances and white cabinet. As we are aware that white is quite weird when blending with black colour. But if the counter tops of white cupboard includes a dark color, it is going to be equilibrium along with your black appliances. Use black backsplash. It's also the option that you balance the color of black white and appliances cabinet. Use darker backsplash, but do not use the color that is darker than countertop. Use darker floor. For the recommendation, you may use hardwood floors because it seems match with black appliances and white cupboard.


text:
Gannon offers scholarship named for longtime professor
By Times-News staff
Jerry A. Selvaggi scholarship is available to electrical engineering students.
A new scholarship at Gannon University honors a professor who taught there from 1954 to 1989.
The Jerry A. Selvaggi Endowed Scholarship in Electrical Engineering is funded by a donation from Gannon graduate Gregory F. Reed and his wife, Chantal. An anonymous donor pledged an additional $100,000 to match the couple's commitment.
"I am forever grateful for the education Professor Selvaggi provided me and my fellow students, and thankful that we now have this opportunity to recognize and honor his legacy with this scholarship tribute," Gregory Reed said in a statement.
Reed graduated from Gannon in 1985 and is the founder and director of the University of Pittsburgh Energy G.R.I.D. Institute and Electric Power Systems Laboratory. He is a professor of electric power engineering at Pitt.


Logo, the leading LGBT entertainment brand, will premiere the documentary Gen Silent, a moving portrait of a group of lesbian, gay, bisexual and transgender (LGBT) elders on Monday, November 9, 2015 at 9 p.m. ET/PT. To coincide with the premiere, Logo and a collection of progressive bloggers led by Mombian.com's Dana Rudolph, will launch "Blogging for LGBT Elders Day." Together with Logo, sites, blogs and organizations will share posts using #GenSilent to raise awareness for issues facing LGBT seniors, a population expected to double to at least 3 million by 2050.
Lawrence Johnson: An African-American gay man in his mid-sixties who struggles to find a nursing home that will accept his 86-year-old partner with Parkinson's.
Sheri Barden and Lois Johnson: A married lesbian couple who have lived most of their lives in the heart of Boston's gay community who struggle to think of safe alternative living situations as they age.
KrysAnne Hembrough: A transgender woman who is estranged from her family since making her transition. She is struggling to find someone to care for her as she faces a terminal illness.
Mel Simms: A closeted senior who was fortunate to find an elder services agency that helped as he dealt with a dying partner.
Gen Silent has received audience awards at Frameline, Sacramento Film & Music Festival, Connecticut Gay & Lesbian Film Festival, Charlotte Film Festival, and received the Alternative Spirit Award at the Rhode Island International Film Festival.
Logo Documentary Films division shares powerful stories that capture LGBT life and culture in all its diversity. The division launched earlier this year with the critically-acclaimed films Out in the Night, Matt Shepard is a Friend of Mine, and Out & Around.


The British Army Training Unit Suffield (BATUS) is a unit located at the vast training area of Canadian Forces Base Suffield in Alberta, Canada. BATUS is generally regarded as the British Army's largest armoured training field in the world and it can accommodate live-firing exercises up to the brigade level.
The Suffield area was first utilised by the British forces during the Second World War. A British chemical weapons testing facility was located in French-controlled Algeria, however, upon the conquest of France by Germany, the facility was lost. The British could find no suitable location in the UK and thus an agreement was signed between Canada and the UK to allow the Suffield area to become available to British scientists for testing. Consequently, British and Canadian forces employed the area for a variety of experiments. Upon the end of WWII, the British departed the Suffield area and it was formally taken over by the Canadian Defence Research Board.
In 1969, Colonel Gaddafi orchestrated a coup in Libya, and duly took control of the country and proceeded to, after negotiations, close down British military installations located at El Adem and Tobruk, and additionally American installations located near Tripoli. This presented the UK with quite a dilemma as there were no suitably expansive areas to allow the British Army to undertake armoured warfare exercises on a suitably large scale in Europe. Thus, in 1971, a 10-year lease was signed between the British and Canadian Governments that authorised battle group training to take place in the Suffield area by the British Army. In January 1972 the British Army Training Unit Suffield was formally established. In July the first live rounds were fired by the 4th Royal Tank Regiment Battle Group. In 1981 the lease for Suffield was extended and in 1991, the lease was again extended. In 2006, on the expiration of this lease, the British and Canadian governments concluded an agreement that will allow British forces to maintain their training practices in Canada indefinitely .
Just over 30 Challenger 2 tanks, numerous armoured personnel carriers (APC) and 29 (BATUS) Flight Army Air Corps are allocated to BATUS. A single regiment is dispatched to Canada on a 6-month deployment to perform the role of 'enemy' for the 6 regiments that annually take part in a variety of exercises that last for approximately 6 weeks. It provides invaluable training for the British Army that they would otherwise mostly not experience.


GIF Breakdown: How Good Is JC Ramirez?
We see this every year. Relatively unknown pitchers have a few starts that blow us away and we simply don't know what to do. Is this player going to have a breakout season? Is this just a flash in the pan? Is it something in-between? JC Ramirez is the latest example after collecting 25 strikeouts across his last three starts and 17.2 innings. With a 3.36 xFIP to his name, a 10.96 K/9, 2.93 BB/9, and 23.9% soft contact, all the advanced peripherals are suggesting the 28-year-old may be the real deal. However, I wanted to know what makes the flamethrower tick and I watched his latest start against the Texas Rangers to get to the bottom of the Angels' phenom. Here is my inning-by-inning analysis of that start with 15 HD GIFs.
A few things pop out to me. First is the heavy Slider usage down-and-glove side that Ramirez hinged on constantly in the outing. It's a great spot to hit consistently – it's what made Kenta Maeda so good last year – and he's been making a season out of it thus far. Meanwhile, his Curveball is hanging out inside the strike zone a good amount – another good sign as Ramirez uses the pitch to steal free strikes early and as a surprise putaway offering. Problem here is his Fastball – a Two-Seamer that he didn't have confidence with through the outing. Save for one inning, Ramirez barely used his heater and when he did, it often sailed arm-side, as he pulled his left shoulder open too soon (possiblly a product of overthrowing). Keep this in mind as we go through each inning of his start.
Right off the bat, Ramirez wanted to establish his Fastball, but couldn't get it done, walking DeShields on four heaters. This was a common theme in his previous start against the Athletics and it doesn't seem to have changed thus far.
Sadly, Ramirez still couldn't locate his Fastball, missing arm-side when trying to nail the outside corner, allowing Gomez to slug an RBI single to center. The following AB was all around poor – Gomez stole second, Ramirez missed with each option in his repertoire across the five pitch at-bat, resulting in a single to left on a hanging Slider inside. Thankfully Gomez was gunned out at home or this could have been a nightmarish start to the afternoon.
An elevated Slider away to Elvis Andrus led to a lazy flyout to right field and Ramirez has one frame in the books. Not a good start by any means and I was already nervous that he would get his Fastball command in order.
This is the typical kind of at-bat from Ramirez. He couldn't find his Fastball so relied on his breaking stuff and rendered a desirable result, even if it snuck through for a base hit and probably could have rendered a strikeout if he located his slide piece a touch lower.
I like emphasizing the pitch above because even with the poor command of his heater, the pitch still comes in at a good velocity with a great amount of movement. The sky is the limit for Ramirez if he can harness the pitch, but even in the meantime he's able to avoid getting punished despite his mistakes with the pitch just because of its speed and life.
The final at-bat of the second goes a bit as you'd expect. Sliders away to start, followed by a heater (this one had decent location this time), then another Slider for the flyout. He escaped without any damage though there are clear signs for concern.
This was the first Fastball of the game that was a called or swinging strike. Amazing that we had to wait 37 pitches for that to happen, but hey, we got there! Considering how we hadn't seen it yet in the game, I wondered if it meant he'd start turning to the pitch more with added confidence. Sure enough, the 1-1 pitch was another Fastball – fouled off late by Mazara – and made me encouraged for future at-bats.
Needless to say, I was pumped and really hoping it would carry into the fifth. Maybe Ramirez just needed to ramp up first?
At first I thought they were Changeups, but they are definitely Two-Seamers that just didn't have the same kick as the others. It's a terrible sign after looking so great with his Fastball just an inning ago. I wonder if Ramirez will ever be able to have that consistency through the year.
Ramirez struck out the side in this inning – all with the Slider – and while that seems excellent, it does make me concerned against better talent as his Slider carried him through the entire inning, each strikeout ending on slide pieces that were far from his best.
If you read through the entire article, the answer is pretty clear: JC Ramirez has a lot of polish left to add if he's going to be a major impact arm this year. His Slider sets a great foundation to build upon and will help him continue striking batters out, but there is a lot of work left to do with his Two-Seamer that he just doesn't have the command for at the moment. He flashed brilliance in the fourth inning, especially with his at-bat against Joey Gallo, but it's hard to believe that he's close to being that pitcher consistently through any given outing. His Curveball is a good third offering that doesn't need to be more than it currently is and he could rely on it more when he lays a better foundation with his heater. There's also a question of longevity as Ramirez hasn't been a starter since 2011 in Double-A, and hasn't eclipsed 100 frames since.
I put Ramirez at #57 on The List this week due to his obvious strikeout ability. There is clear upside with a lively Fastball that makes for an excellent 1-2 combination when executed properly. However, it's tough to believe Ramirez will be able to command this approach consistently in the near future and he is inside the Top 60 as a major upside play with a good strikeout upside. Hold a short leash and don't expect Ramirez to be the arm that carries you through the season.
Wood, Ramirez, and Hahn were both available for pickup in my league, and I was having a tough time deciding which one to go with? I would prob lead with Wood being the favorite, but his lack of a guaranteed starting spot worries me.
Not sure I have the stones to make a move that probably needs to get done. Drop Duffy for JC Ramirez?


text:
https://www.barrons.com/articles/ubp-brings-institutional-investing-to-asias-wealthy-1489721427
Penta Asia
UBP Brings Institutional Investing to Asia's Wealthy
Abby Schultz
Here's one reason Union Bancaire Privée's private bank clients in Asia may be sticking with their new bank — entry to an institutional strategy for investing in hard-to-access corners of the fixed-income markets like subordinated debt from leveraged buyouts or infrastructure debt.
At the start of this year UBP teamed with the investment manager Partners Group to create the fund, UBP PG - Active Income, which also invests in more liquid public debt markets across the globe. It's the kind of alternative investment UBP can offer private bank clients in Asia given its relationship with UBP Asset Management. It's also the type of offering that wasn't available via Royal Bank of Scotland's Coutts International, which UBP bought last year, says Michael Blake, the 42-year-old CEO of UBP's Asia private bank.
New investment opportunities, and the fact Blake, who was the former chief executive of Coutts International, based in Singapore, remains with the firm probably explains why UBP was able to retain 80% of Coutts' Asia clients since the acquisition was announced in 2015. "You always expect some asset attrition in these kinds of situations," Blake says, but instead, the bank's assets under management rose 10%-to-11%.
Michael Blake - CEO of UBP's Asia private bank
Overall, UBP's Asia assets banked out of its branches in Hong Kong and Singapore have ballooned ten times from about $1 billion to about $12 billion post-acquisition as of the end of 2016. UBP CEO Guy de Picciotto's goal is to reach $15 billion in the short-term and $20 billion in the medium-term, says Blake, a goal he'll facilitate by boosting UBP's number of relationship managers from about 60 to 100.
What's attractive about the UBP Partners Group offering is it gives clients a way to invest in a part of the fixed income markets - private debt - that's increasingly desirable to institutional investors for the diversification it offers, but has been out of reach of many private clients. Under UBP, the bank's private clients can now also invest directly in various enterprises, which in the past year has included European student housing and commercial aviation. "For a number of clients in the region, particularly ultra-high-net-worth or family office clients, those are very relevant and sought-after products we've been able to offer," Blake says
The private bank's affiliation with UBP Asset Management, which has about $30 billion in assets and a 20-year presence in Asia, also allows it to devise customized solutions. This could mean creating a personal investment committee for a client who has a particular strategy to pursue. The asset management team will manage it as if the client was a mini-institution. "That's an extremely powerful proposition, particularly for family office clients and some of our ultra-high-net-worth clients," Blake says. About 40% of UBP's Asia clients are family offices or the ultra-wealthy, a percentage Blake intends to grow. You need at least $3 million to be a UBP client.
One way to spur growth is to introduce UBP asset management clients to the private bank. Recently a Hong Kong family office client who had invested in UBP's UBAM funds and utilized the firm's hedge fund advisory services met with the private bank to hear about a range of services, from loans that can be used as leverage, to structured products, foreign exchange and private investments. The private bank is also talking with the client about how UBP can assist the family with its philanthropic aspirations.
Another reason Blake says clients have stuck with UBP is that it's a private, family-owned firm. "It gives us stability — the family continues to be the owner of the bank and provides that leadership," he says. "And secondly, it enables us to make fast decisions. Ultimately we have a flat structure, and it enables us to meet the needs of our clients…in a very responsive way."
Lately that's led to a lot of conversations with clients about how to manage their portfolios for rising rates, rising inflation and corporate earnings surprises on the upside, he says. He was making the case, too, that private banking continues to be relationship-driven, despite advances in technology designed to provide clients with more real-time data and advice. "There's a need to sit around a table and talk about all the various scenarios each of those factors can lead to over the course of this year," he says.
Blake, who grabs time with his daughters, ages 3 and 5, whenever he's not traveling or at the bank, has lived and worked in Asia much of the past 18 years, since he was in the British Diplomatic Service in Beijing. He continues to be fascinated by the region.
"No matter where I go, whether it's to China, to Indonesia or any country in-between, I see people who are by and large interested in building and developing their economies. That's what took me to Asia in the first place," Blake says. "Nothing I see in Asia tells me that that's going to stop."
Email: abby.schultz@barrons.com
@aschultzbarrons
Comments? E-mail us at asia.editors@barrons.com
Like Barron's Asia on Facebook
Follow Barron's Asia on Twitter


text:
NSW health authorities are giving a coronavirus update
The secret life of fungi
By Julie Street and Fiona Pepper for Late Night Live
Posted SatSaturday 22 DecDecember 2018 at 7:00pmSatSaturday 22 DecDecember 2018 at 7:00pm
Just 150,000 of the world's estimated 3 million fungi varieties have been identified. (Supplied: SA State Herbarium)
The word 'fungi' may conjure up thoughts of mushrooms on pizza, or cartoon-like red and white spotted toadstools poking up from the forest floor.
But fungi also gives us bread, wine and cheese, provides the foundation of many pharmaceuticals, plays a critical role in ecosystems — and could hold the key to plastic recycling.
There's an estimated 3 million varieties of fungi around the world — but the vast majority are still largely unknown to science.
Sorry, this audio has expired
Dr Tom May, a senior mycologist at the Royal Botanic Gardens in Melbourne, says that's partly because the fungi we can see is just "their spore producing structure".
"That is just the tip of the iceberg," he says.
"The feeding and growing part of the fungus is hidden away as very, very fine threads; microscopic threads in soil or wood.
"And that mass of fine threads — which we call the mycelium — can be enormous."
Mycelium is the furry, weblike substance that grows off fungi. (Flickr: Vincent L (CC BY-NC-ND 2.0))
A single mushroom, for example, can have a mycelium that extends as far as a hectare underground.
"They can get into all the nooks and crannies, right down in amongst the soil particles, and they can extract nutrients and water out of those little crannies in the soil," Dr May says.
Like animals, fungi forage for food
Dr May says we need to take another look at how we define fungi.
While they have "been lumped in with plants in history", they're actually "fundamentally different", he says.
"They are a completely separate kingdom of the natural world," Dr May says.
"They are actually more closely related to animals, to us, than they are to plants."
Unlike plants, fungi can't create carbon compounds through photosynthesis.
Instead, they have to get their food elsewhere, which Dr May says they do by "basically slobbering out over the substrate".
"They are really good at breaking down organic matter — dead wood, leaves, bits of insects, feathers, whatever — and so they've got whole batteries of enzymes that they can use to do that," he says.
Our forests would look very different if it wasn't for a network of fungi breaking down organic matter. (Audience submitted: Karen Johns)
In that search for food, Dr May says, fungi do a very good job of cleaning up forest floors.
"If we didn't have fungi and we walked through the forest, all of that dead wood and litter would just build up," he says.
"It would be impenetrable, you wouldn't be able to walk through the forest."
An 'undiscovered diversity'
This ghost mushroom, omphalotus nidiformis, is one variety of fungi. (Phillip Dubbin)
To try and get a clearer picture of the world's fungi, Dr May and a team of scientists recently compiled the State of the World's Fungi report.
It found that of the estimated 3 million species on the planet, just 150,000 have been identified.
"I think it brings fungi out of the darkness a bit and it establishes a baseline for what our knowledge is at the moment," Dr May says of the world-first report.
"It highlights this undiscovered diversity, and it also highlights the important roles, the benefits for humanity through agriculture and health."
Dr May is now working to identify more fungi, so their many uses can be exploited.
"Each different fungus is trying to grow in its particular area to feed on a particular substrate, it has its own battery of enzymes and a lot of those have potential and actual industrial usages," Dr May says.
From razor-sharp analysis of current events to the hottest debates in politics, science and culture, Late Night Live puts you in the big picture.
His mission has been helped by a recent advancement in fungal taxonomy that uses DNA fingerprinting to identify species.
While it may be news to most that fungi have DNA, Dr May says "inside fungi there are little tiny bits of DNA that more or less are unique for each different species".
He knows he is facing a mammoth task.
"As mycologists we certainly are not going to run out of things to do," Dr May jokes.
"We're not going to come into work and say, 'right, we've done it, we've described everything'."
Posted 22 DecDecember 2018SatSaturday 22 DecDecember 2018 at 7:00pm
Vomiting fungi could be solution to plastics dilemma
Posted 53mminutes agoSatSaturday 16 JanJanuary 2021 at 11:19pm


text:
Business of Optometry
Comanagement
Contact Lenses/Eye Wear
Low Vision/Geriatrics
Primary Care Optometry
All Subspecialties Business of Optometry Cataract Surgery Comanagement Contact Lenses/Eye Wear Cornea/External Disease Glaucoma Low Vision/Geriatrics Nutrition Optics Pediatrics Practice Management Primary Care Optometry Refractive Surgery Regulatory/Legislative Retina/Vitreous Technology Therapeutics
Vision Expo East
Profession supports CDC contact lens education effort
NEW YORK – In response to past outbreaks of Fusarium and Acanthamoeba in contact lens wearers, the U.S. Centers for Disease Control and Prevention has developed a website designed to promote healthy contact lens wear, according to a speaker here at the Global Contact Lens Forum held prior to Vision Expo East.
Joseph Barr, OD, chairman of the Contact Lens Institute (CLI), told attendees that the CLI, a nonprofit organization supported by major contact lens manufacturers, provided a grant to fund this CDC initiative, Healthy Contact Lens Wear and Care.
"In the last year, expert working groups were organized and partnerships with professional associations were developed to put together objective information on contact lens care and compliance," Barr said.
"The vision of this group is to ensure proper hygiene and adherence to contact lens wear recommendations so the benefits of contact lens wear can be accomplished with health," he said. "The CDC has done a lot of studies on Acanthamoeba and contact lens wear. They would like to prevent these infections."
The activities of this group are supported by the American Academy of Optometry, American Academy of Ophthalmology, American Optometric Association, Contact Lens Society of America and the Contact Lens Association of Ophthalmologists, according to the website.
Forum speaker Michael A. Ward, MMS, FAAO, Emory University School of Medicine, Atlanta, is also involved with the efforts behind this educational website.
"We've been producing a new handout for patients to discuss topics such as infection and lens care," Ward said. "People can sign up for automatic email updates from the website." – by Nancy Hemphill, ELS
Disclosures: Barr is chairman of the Contact Lens Institute. Ward is a consultant for Alcon and Bausch + Lomb.


text:
NBA Betting Tips – Saturday December 18th, 2021
We have betting tips for three of the best NBA games on Saturday.
Our feature games include the Nuggets vs Hawks, Warriors vs Celtics and Grizzlies vs Kings, so kick off your weekend with some NBA action.
Denver Nuggets vs Atlanta Hawks @ State Farm Arena
The Atlanta Hawks have lost four of their last five games and they're not looking like last year's team at all.
We weren't impressed with Trae Young's comments about the regular meaning nothing, but at 13-14, they're in danger of missing the playoffs.
Denver isn't going much better at 14-13, but the Nuggets have won their last two games over San Antonio and Washington.
Those performances hold them in good stead, and despite the likes of Will Barton and Aaron Gordon nursing injuries, they could have too much power for the struggling Hawks.
Winning road games is important for the Nuggets, who are 6-9 away from home. However, they defeated the Spurs on the road last week and a repeat of that performance takes them close.
Atlanta comes off a loss to Houston after leading by 13 points after three quarters. That's an unforgivable loss, so its confidence levels are low.
Bet: Denver Nuggets – Bet @ Sportsbet
Golden State Warriors vs Boston Celtics @ TD Garden
Steph Curry got the record for most three pointers on Wednesday and the Warriors look to continue that momentum on Saturday.
The Warriors improved to 23-5 with the 105-96 win over the New York Knicks, who were no match for the Warriors in the second half.
Despite some inconsistencies on offense, the Warriors are too slick for most teams in the NBA. Boston needs to play outstandingly well to beat the Warriors, but it got its confidence levels up against Milwaukee.
The Celtics' win over the Bucks was much-needed. They were under pressure after losing three on the bounce to the Lakers, Clippers and Suns. Beating last season's winners is a key win in the Eastern Conference, so the Celtics could be worth sticking with.
It's a good spot for the Celtics, who have had more rest and the Warriors play their third consecutive road game.
Punters won't get a better spot to bet the Celtics, who should be the home underdog.
Bet: Boston Celtics – Bet @ Sportsbet
Memphis Grizzlies vs Sacramento Kings @ Golden 1 Center
The Memphis Grizzlies are traveling nicely with three wins on the bounce and they will be tough to hold out against the Kings.
Memphis has won four of its last five, including wins over Miami, Los Angeles Lakers, Houston and Philadelphia. Those are quality wins, so the confidence levels of the Grizzlies are sky high.
The most impressive win came last time on court when beating the 76ers 126-91. That was a polished effort against a good team, so they're heading in the right direction.
Sacramento is 11-17 and struggling after three consecutive losses. Despite having a talented team, the Kings are young and it's showing.
De'Aaron Fox is doing his job with 21 points per game, but he's not getting enough consistent help from the likes of Richuan Holmes and Tyrese Haliburton.
Momentum is firmly with the Grizzlies and we're not betting against them on this occasion.
Bet: Memphis Grizzlies – Bet @ Sportsbet
18/12/2021 NCAAB College Basketball Picks & Predictions
19/12/2021 NCAAF College Football Picks & Predictions
A-League Week 9 - Tips, Predictions & Odds


High humidity and warm conditions will contribute to thunderstorm chances over the next 24 hours. During the day today, the rain will be hit and miss. Skies will stay mostly cloudy. A concern for severe weather arrives Tuesday. There could be two rounds of strong to severe storms. The first round is expected early Tuesday morning. The second round is expected later in the afternoon. Hail and high winds will be possible along with heavy rain. The threat for tornadoes is low, but one or two can't be ruled out. The bottom line is that you'll want to be "weather aware" Tuesday.
Cooler and more tranquil weather returns Wednesday. A nice stretch of fall weather can be expected later in the week. A reinforcing cold front will really cool things down for the weekend!
TODAY: Mostly cloudy with a 40% chance for scattered showers and storms. High: 86. Wind: SE 10-15 mph.
FRIDAY: Partly cloudy. Low: 59. High: 73. Wind: E/SE 10 mph.
SATURDAY: Partly to mostly cloudy with a 20% chance for a few stray showers. Low: 56. High: 68. Wind: NE 10-15 mph.
SUNDAY: Partly cloudy and cool. Low: 55. High: 66. Wind: NE 10 mph.
MONDAY: Partly cloudy and cool. Low: 51. High: 65. Wind: NE 10 mph.
TUESDAY: Partly cloudy and cool. Low: 51. High: 68. Wind: E/SE 10 mph.
WEDNESDAY: Partly cloudy and cool. Low: 52. High: 70. Wind: SE 10 mph.


text:
Hermarchus trigonus är en insektsart som först beskrevs av Carl Peter Thunberg 1815.  Hermarchus trigonus ingår i släktet Hermarchus och familjen Phasmatidae. Inga underarter finns listade i Catalogue of Life.

Källor

Spökskräckor
trigonus


text:
Die Liste der politischen Parteien in Vietnam zählt alle aktiven politischen Parteien in Vietnam auf.

Vietnam ist ein Einparteienstaat, in welchem die Kommunistische Partei Vietnams die Einheitspartei darstellt und somit das Monopol auf die Macht innehat und fast alle Sitze in der Nationalversammlung stellt. Die Regierung verbot alle restlichen politischen Vereinigungen im Land. Viele von denen bestehen im Ausland, meist in den Vereinigten Staaten weiter. Diese haben keinen Einfluss auf das politische Geschehen in Vietnam, veranstalten jedoch viele Demonstrationen im Inland und Ausland. Zudem besitzen manche Parteien eigene Parteizeitungen, die zumeist kritische Enthüllungen gegen die kommunistische Regierung in Vietnam beinhalten.

Parteien

Siehe auch
 Liste der politischen Parteien nach Staat
 Einparteiensystem

Einzelnachweise

!
Vietnam


text:
Generated at Sat, 18 Jan 2020 06:21:14 GMT exp-ck: 6TRSm27DSis1VpaBJ1iGic_1; xpa: 6TRSm|7DSis|VpaBJ|iGic_;
Electrode, Comp-701333584, DC-prod-dfw01, ENV-prod-a, PROF-PROD, VER-19.1.31, SHA-771c9ce79737366b1d5f53d21cad4086bf722e21, CID-7418dc2b-7da-16fb7500cdabcf, Generated: Sat, 18 Jan 2020 06:21:14 GMT
/Children's & Kids' Books
/Science Fiction, Fantasy & Magic Kids' Books
Leo Gray and the Lunar Eclipse
Average rating:3.9out of5stars, based on7reviews7 reviews
K.J. Kruk
$13.51$13.51$13.51$13.51
Free delivery on $35+ orders
Free pickup Thu, Jan 23
Ships to San Leandro, 1919 Davis St
Sold & shipped byWalmart
Gifting note:Ships in the manufacturer's original packaging, which may reveal the contents.
2 other sellers from $13.96$13.96
+ Freedelivery
Sold & shipped bythebookpros
Sold & shipped byHomeOnline
Compare all 3 sellers
What kid hasn't dreamed of going to the moon? That dream for 11-year-old Leo Gray is about to come true--but he's in for the surprise of his life in this epic adventure set in an imaginative, futuristic world overflowing with robots, anti-gravity sports, and superhero-esque suspense. 1/2.
Fun new book about a boy who chases his dreams and goes to the moon. Kids will like it because it's set in a believable future and the plot and characters are both fun and interesting. I couldn't wait to finish reading it even as a adult.
RockyMountainMom, April 12, 2019
Who hasn't dreamed of going to the moon? That dream for eleven-year-old Leo Gray is about to come true—but he's in for the surprise of his life!
In the year 2113, most people live in robotically maintained homes, ride around in self-flying cars, and wear ozone-resistant clothes. Most people that is; just not Leo Gray's parents. They're stuck in the past, and science know-it-all Leo is completely fed up with his beyond-embarrassing living arrangement with them. But when he enters a rocket-building competition for a chance to attend the Lunar Academy, Leo's luck finally seems to turn in his favor!
However, it's not long after stepping foot into his dorm room that Leo discovers the moon's celebrated city is harboring a world of dark secrets. It's soon a race against the clock for Leo and his friends Andromeda Groves (a code-hacking whiz from Canada), Pavo Digbi (a history buff from Brazil), and Grus Pinwheel (a musically gifted and comically endearing Aussie) to intercept and foil plans to destroy the city—leaving the group's leader faced with a decision that no eleven-year-old should ever have to make: save Earth or save himself and the city he fought so hard to reach.
?Leo Gray and the Lunar Eclipse is an epic adventure set in a wonderfully imaginative, futuristic world overflowing with robots, anti-gravity sports, superhero-esque suspense, and page after page of laughter and heart that will leave boys and girls equally gripped under its spell!
Original Languages
Fun Space Adventure
This is an imaginative...
This is an imaginative young reader piece of science fiction following a smart boy as he journeys to the moon. Leo lives in a anachronistic world, stuck in the past due to his families livelihood but dreaming of the future. The book follows the events Leo goes through as he attempts to achieve this dream. The book is fun and has several fun, original ideas. It is an easy read and it is not difficult to get into the story. It mostly feels like it is world-building and setting up more works in the future. When plot issues come up, they are almost rushed through to this end. The plot has some pretty big inconsistencies and the same could be said for the character development. Several characters undergo noticeable personality shifts before being discarded altogether. Other characters are characters of archetypes commonly found in youth literature. This book felt like an attempt to take a well-known wizard series into a futuristic setting. There is potential but consistency needs to be established, the plot needs to be paced better, and conflict points could use a little more depth. Here's hoping the author has the chance to expand his universe in another volume.
1-5 of 7 reviews
Fun Scifi Mystery
This was a fast fun read! The author's writing style is really different. Instead of greeting us with a typical dystopian setting, we meet the main character in a present day setting within a futuristic setting, ex: Leo's family still watch tv and use a dishwasher even though robots now do everything and tvs no longer exist. This adds to the books humor, but there is also some mystery and conflict here as to why that is, which I suspect the author is holding back from us for a later installment. There are a number of minor stories in this book as well, ex: trees are disappearing all over town and Leo's neighbor (who's the landscaping security guy) claims to have worked for the government and that his wife was abducted by aliens called Lunalings. This is another example of where the author leaves us to wonder about what's really going on, as we only get the answer to where the trees went and why they disappeared. We don't find out more about the alien abducted wife, which I was really curious about. The main story takes off when Leo leaves his sheltered home on Earth to attend the moon's academy after winning a national science competition. At the academy Leo meets other kids who were awarded acceptance for various talents like math, history, theater, and music, though some did gain entrance from their rich parents. Low and behold, the selection of Earth's most gifted comes with a Doom's Day message for Earth: Melkorg invasion! An evil alien race that consumes time and erases life on planets are on track to attack ours. And Leo and his friends are now on a mission to stop them before their portal opens on the night of the lunar eclipse. Only a second internal plan to destroy the moon is soon revealed, and Leo ends up in a hospital bed with no way to better assist when he runs into it. In the end, we find out that eclipse hasn't yet happened and that there is something more going on behind the office doors of the lunar president. Leo ultimately leaves the reader with an even bigger question in the end that shouts out: sequel! I'm really looking forward to seeing where this series will go!
lemoncupcakes, April 29, 2019
This was a fast fun re...
Written by a customer while visiting librarything.com
Thanks to Greenleaf Bo...
Thanks to Greenleaf Book Group for a copy of this book through a LibraryThing giveaway. It was a pleasant read and a very action oriented book about a boy attending school on the moon. I found the author stuck to the future and kept away from things that could reflect our society. Well thought out and fun. I plan on forwarding this to my 13 year old grandchild who is always eager for a book where the hero is a boy. Check the book synopsis for a more detailed view of the plot. That's not my job.
MikeDI, March 23, 2019
Leo Gray and the Lunar...
Leo Gray and the Lunar Eclipse By: K.L. Kruk I received a free ARC of this book in exchange for my honest opinion. I did really like this book. It has a great mystery at its core. It feels like the beginning of a very solid series of books. Setting: The setting for this story is about 100 years in the future. The futuristic details are fantastic and abundant. They are just enough ahead of where we are to be believable. It was exciting and felt like the ideas were coming from a very free and happy brain. Even the use of language is just altered enough to be definitely different but understandable. The language is breezy and light. I was mesmerized by this world. Characters First, I have to just comment that "Leo Gray" in real life is the name of one of the original Tuskegee Airmen. I'm a flight nerd so I wondered if this was done on purpose or purely accidentally. We are told that Leo's eyes are the color of Mercury which is gray (his last name). These two things just felt like little space nuggets that the author was giving us. Okay, back to the characters ... The story is told from Leo Gray's (11 years old) perspective. Occasionally though, it shifts narrators. For instance, we hear the internal musings of Leo's Dad as he contemplates his reasoning for distrusting government, etc. This helps the reader understand his character better but from a narrative standpoint, it is disconcerting to have this sort of shift of view. There is a mystery and the reader needs to follow the trail with Leo Speaking of Leo's Dad, I had a hard time really understanding his character. At the beginning, he seems sort of eccentric but okay. As the story progresses, the book reveals him to be sort of a bully. The family can't dig into the noodle casserole until Dad has the first helping. Dad unilaterally decides that Leo isn't going to the Lunar Academy. Mom stands by helplessly, trying to connive and lie behind his back but unable to stand up to him bravely. Then, Dad blames Leo because someone stole something from the store while Dad was distracted. He then sells Leo's ticket to the Lunar Academy to make up the money. Then, after Leo gets another ticket, Dad agrees to let him go and now we are supposed to see the more tender side to him as he says goodbye to Leo. Nope, I am not buying that at all. Speaking of that second ticket, how is that working? So, he gets a second ticket to Lunar City from Gudrun. First, why does Gudrun have this ticket? Secondly, is it a ticket to Lunar City or Space Camp? Thirdly, why, if it is a ticket to Lunar City, does Leo now have admittance to the school at Lunar City? Those two things don't conflate. Another odd thing is that after Leo arrives at school, the reader doesn't see or hear anything more about his family. The story is all about his friends. The friends are a bit predictable - smart girl, wise cracking but not too brainy roomy, true blue best friend - but I felt real affection for them. However, I think it was odd that we don't see or hear from his family. Leo is basically in a coma for months. He has been involved in a serious event but no family. So, lots of complaints and lots of odd holes in this book. They were distracting to me and forced me out of the narrative stream. However, I liked the story enough to hope that the future of this series is better than this present book.
pammycats, March 30, 2019
© 2020 Walmart. All Rights Reserved. To ensure we are able to help you as best we can, please include your reference number: F2UOXZGAI6
Electrode, Comp-701332494, DC-prod-dfw03, ENV-prod-a, PROF-PROD, VER-19.1.31, SHA-771c9ce79737366b1d5f53d21cad4086bf722e21, CID-e7b8602a-e55-16fb7500cda4fd, Generated: Sat, 18 Jan 2020 06:21:14 GMT
Electrode, Comp-283025169, DC-prod-dfw7, ENV-prod-a, PROF-PROD, VER-30.0.3, SHA-4e0ebe6153b5de8f631f166026b0435ff681f967, CID-d7f46b11-46d-16fb7500ca5c57, Generated: Sat, 18 Jan 2020 06:21:14 GMT


A Pagosa Springs man was arrested on a variety of charges Monday following an investigation by the Pagosa Springs Police Department.
• Theft, a class-two misdemeanor.
• Theft of trade secrets, a class-one misdemeanor.
• Forgery, a class-five felony.
• Criminal impersonation, a class-six felony.
• Issuing a false financial statement, a class-two misdemeanor.
• Computer crime, a class-four felony.
• Identity theft, a class-four felony.
Maxwell said a search warrant was carried out contemporaneous to Kubiak's arrest.
"Most of the charges related to … crimes which were committed while Mr. Kubiak was working for a former employer," Maxwell said. That former employer, a local company, was not named by Maxwell.
Other charges relate to an alleged attempt to obtain financing, Maxwell indicated.
Additionally, Maxwell reported that Kubiak was allegedly found to be in possession of the financial information of a client.
Maxwell said Kubiak is being held on $10,000 bond, and has had bond revoked on two pending cases, one relating to bribery and another for a prior traffic case. He is also on a probation hold.
No court date had been set for Kubiak as of presstime Tuesday.
This story was posted on November 28, 2012.


There are the main default programs which can be accessed via 'settings'/'default apps' – this allows you to state which programs you want to use for email, browsing, maps, photos etc..
At the bottom of the right hand column however, is the option for 'choose default options by file type' – clicking on this gives you the whole list of file types on the left, and the default programs on the right.
You can see on this illustration that I have OpenOffice writer as my preferred option for opening 'doc' and 'docx' files (in other words documents created using Microsoft WORD). Clicking on a square icon on the right-hand side should allow you to change the default for any other suitable software you have installed currently on your PC, or to choose an app from the Widows 10 store.
Now, my experience with the Windows 10 store has been disappointing to put it mildly, so personally I think things would have to be pretty desperate for me to decide to opt for an 'app'. I would always go for an 'old school' software download option (from a trusted download site).
Nonetheless, if you were struggling to find this particular feature in the Windows 10 environment whether on your desktop or your 'phone – I trust this post would have been useful to you.


This blog is written by students and staff of Go Higher, Liverpool University's unique one-year, part-time access Diploma for people aged 20 + without the traditional entry qualifications for degree-level study. The programme has a long history of helping hundreds of talented individuals in to higher education, many of them people who had assumed that university was beyond their reach.
Go Higher students typically progress to undergraduate programmes at the University of Liverpool and beyond. This year our students have been offered places on History, English, Business Studies, Psychology, Philosophy, Sociology, Egyptology, Law – there are many more disciplines across the arts, humanities and social sciences available too, both as single honours or combined. Many of our students have gone on to do postgraduate degrees and some doctorates. Take a look at our video below.
Hi my intentions is to complete a undergraduate degree in egyptology. I have just been introduced to your "gohigher"access course and i like the idea of doing this course.
I have just a few question if you could ablige.
What is the cost of this course and can it be funded?
What sort of subjects would be covered?
Is there exams at the end of the course?
As enrolment closes this month could i please have a quick answer as i dont want to miss the deadline.
Hi Linda – we have been a little late responding to you. Hopefully you have contacted us via our University web and discovered the answers you need. If not, please email gohigher@livepool.ac.uk and we will get back to you asap.


Dunefields are formed above the beach as dry sand blows inland. Dunes occupy about 1,100 km of the New Zealand coastline. An impressive dunefield stretches 130 kilometres from Paekākāriki to Pātea on the west coast of the North Island, and up to 19 kilometres inland. Wide, gentle-sloping beaches are framed by fore dunes, formed when wind-blown beach sands become trapped by plants and driftwood on the beach. If there is a ready supply of sands on the beach, more dunes may develop in front of the original. The dunes further back may be stabilised by plants, or blown inland if they fail to retain a good plant cover.
Beyond the high-water mark three plants can colonise the damp sands – pīngao (Desmoschoenus spiralis) and spinifex (Spinifex sericeus), two native sand-binding plants, and the introduced marram grass (Ammophila arenaria). The shape of the dune is influenced by the vegetation: spinifex and pīngao produce dunes with a low, regular profile; clumps of marram produce higher, irregular dunes.
Marram was widely planted on New Zealand dunes in the early 1900s, in an effort to stabilise dunes that were moving inland. It is now the dominant coloniser, often backed by stabilised dunes planted with introduced lupins and pine plantations.
New Zealand's venomous native spider – the katipō – is a sand-dune specialist. Two species are now recognised: red katipō (Latrodectus katipo), with a red-orange stripe on its back, and black katipō (Latrodectus atritus), a wholly black spider. They inhabit the landward side of fore dunes, where they spread webs in pīngao and marram, or under driftwood. The female can deliver a nasty bite, but by nature is a retiring animal and only attacks if frightened. They are in serious decline throughout New Zealand as dunes become covered by dense marram, lupin, pines or pasture grasses – the spider prefers more open clusters. A similar-looking South African spider (Steatoda capensis), which can inflict a painful bite, has moved into coastal sites and may be competing for resources.
The harmless shiny black sand scarab (Pericoptus truncatus) is one of New Zealand's largest beetles – 4 centimetres long. Its larvae make numerous little tracks that lead to holes in the dunes.
Middens – ancient refuse heaps – are scattered along the dunes of the North Island and much of the South Island. They date from pre-European times, and reveal a wealth of environmental and cultural information about coastal conditions 200 to 700 years ago. The oldest shell middens contain bones of forest birds and fur seals. But within 200 years of human settlement, fur seals had disappeared from northern sites and fewer forest birds were eaten at coastal sites.
About 450 years ago coastal gardening by early Māori failed in the South Island and southern North Island. This coincided with an advance of coastal dunes inland. One trigger was probably Māori clearance of coastal forest, which removed shelter and exposed the soil to wind erosion. Climate cooling may also have contributed to crop failure.


Available in 17 models to handle a wide range of processing requirements, Vector peristaltic pumps are ideal for pumping challenging fluids without altering their composition.
They move high-viscosity (up to 100,000 cps) pasty, pulpy, thick, abrasive, and corrosive solutions as well as fluids containing solids up to 3-1/2 inches (90 mm) in size.
Vector pumps isolate the fluid being pumped into a single, durable hose so they can handle tough fluids.
Vector pumps are ideal for several applications in production of industrial and commercial paints, coatings, inks, and dyes.