text:
package org.syphr.mythtv.monitor.cli;

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;

public enum CliOption
{
    HELP(new Option("h", "help", false, "show this usage text")),
    QUIET(new Option("q", "quiet", false, "suppress all console output")),
    LOG_FILE(new Option("f", "logfile", true, "log file")),
    LOG_LEVEL(new Option("l", "loglevel", true, "log verbosity level")),
    LOG_CONFIG(new Option("g",
                          "logconfig",
                          true,
                          "logging config file (this will affect the other logging options)")),
    CONFIG(new Option("c", "configdir", true, "configuration directory"));

    private final Option option;

    private CliOption(Option option)
    {
        this.option = option;
    }

    public Option getOption()
    {
        return option;
    }

    public boolean hasOption(CommandLine cl)
    {
        return cl.hasOption(getOption().getOpt());
    }

    public String getValue(CommandLine cl)
    {
        return cl.getOptionValue(getOption().getOpt());
    }

    public static Options getOptions()
    {
        Options options = new Options();

        for (CliOption opt : values())
        {
            options.addOption(opt.getOption());
        }

        return options;
    }
}

redpajama_set_name: RedPajamaGithub


text:
package com.examples.abelanav2.grpc;

import static com.google.api.services.datastore.client.DatastoreHelper.getByteString;
import static com.google.api.services.datastore.client.DatastoreHelper.getPropertyMap;
import static com.google.api.services.datastore.client.DatastoreHelper.getString;
import static com.google.api.services.datastore.client.DatastoreHelper.getTimestamp;

import com.google.api.services.datastore.DatastoreV1.Entity;
import com.google.api.services.datastore.DatastoreV1.Value;
import com.google.api.services.datastore.client.DatastoreException;
import com.google.identitytoolkit.GitkitClientException;
import com.google.identitytoolkit.GitkitUser;
import com.google.protobuf.ByteString;

import com.examples.abelanav2.BackendConstants;
import com.examples.abelanav2.datastore.DbClient;
import com.examples.abelanav2.datastore.DbUtils;
import com.examples.abelanav2.storage.CloudStorage;

import io.grpc.stub.StreamObserver;

import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.SignatureException;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;

/**
 * The controller for the Abelana GRPC server implementation.
 */
public class AbelanaGrpcImpl implements AbelanaGrpc.Abelana {

  /**
   * Logger.
   */
  private static final Logger LOGGER = Logger.getLogger(AbelanaGrpcImpl.class.getName());

  /**
   * Datastore client.
   */
  private DbClient dbClient = new DbClient();

  /**
   * Setter used by Mockito to set a mock DbClient.
   * @param dbClient the new DbClient.
   */
  void setDbClient(DbClient dbClient) {
    this.dbClient = dbClient;
  }

  @Override
  public final void signIn(final SignInRequest request,
                           final StreamObserver<SignInResponse> responseObserver) {

    SignInResponse reply;
    try {
      GitkitUser gitkitUser = AuthUtils.verifyGitkitToken(request.getGitkitToken());
      reply = SignInResponse.newBuilder().setUserToken(AuthUtils.getJwt(gitkitUser.getLocalId()))
          .build();
    } catch (GitkitClientException | IOException | SignatureException | InvalidKeyException e) {
      LOGGER.warning("Authentication error with Gitkit Client " + e.getMessage());
      reply = SignInResponse.newBuilder().setError(getErrorMessage("500", e.getMessage())).build();
    }
    responseObserver.onValue(reply);
    responseObserver.onCompleted();
  }

  @Override
  public final void photoStream(final PhotoListRequest request,
                                final StreamObserver<PhotoListResponse> responseObserver) {
    listPhotos(request, responseObserver, DbClient.PhotoListType.PHOTO_LIST_STREAM);
  }

  @Override
  public final void listMyPhotos(final PhotoListRequest request,
                                 final StreamObserver<PhotoListResponse> responseObserver) {
    listPhotos(request, responseObserver, DbClient.PhotoListType.PHOTO_LIST_MINE);
  }

  @Override
  public final void listMyLikes(final PhotoListRequest request,
                                final StreamObserver<PhotoListResponse> responseObserver) {
    listPhotos(request, responseObserver, DbClient.PhotoListType.PHOTO_LIST_LIKES);
  }

  /**
   * Lists photos for listMyPhotos, listMyLikes.
   * @param request the gRPC request
   * @param responseObserver the gRPC response observer that will send the response to the client
   * @param listKind the kind of list we want to return from dbClient.PhotoListType
   */
  public final void listPhotos(final PhotoListRequest request,
                               final StreamObserver<PhotoListResponse> responseObserver,
                               final DbClient.PhotoListType listKind) {
    PhotoListResponse reply;
    if (AuthUtils.isSignedIn()) {
      long page = request.getPageNumber();
      DbClient.EntityListAndCursorResult photoListAndCursor;
      try {
        ByteString cursor = null;
        boolean pageError = false;
        if (page != 0) {
          Entity cursorEntity = dbClient.getAndDeleteCursor(page);
          if (cursorEntity != null) {
            cursor = getByteString(getPropertyMap(cursorEntity).get("cursor"));
          } else {
            pageError = true;
          }
        }
        photoListAndCursor = dbClient.getPhotoList(AuthUtils.getUserId(), listKind, cursor);

        PhotoListResponse.Builder builder = PhotoListResponse.newBuilder();
        if (pageError) {
          // Invalid cursor, send an error but also return results
          builder.setError(getErrorMessage("400-200",
              "Invalid page, returning results from scratch"));
        }
        for (Entity result : photoListAndCursor.getEntityList()) {
          Map<String, Value> props = getPropertyMap(result);
          long rating = 1;
          if (listKind == DbClient.PhotoListType.PHOTO_LIST_STREAM) {
            rating = dbClient.getVoteValueForPhoto(DbUtils.getEntityId(result),
                getString(props.get("userId")));
          }
          Photo photo = Photo.newBuilder()
              .setPhotoId(DbUtils.getEntityId(result))
              .setUserId(getString(props.get("userId")))
              .setDate(getTimestamp(props.get("date")))
              .setDescription(getString(props.get("description")))
              .setRating(rating)
              .setUrl(BackendConstants.IMAGES_BASE_URL + DbUtils.getEntityId(result) + "_"
                  + getString(props.get("userId")) + ".webp")
              .build();

          builder.addPhoto(photo);
        }
        if (photoListAndCursor.getCursor() != null
            && photoListAndCursor.getEntityList().size() > 0) {
          long cursorId = dbClient.insertCursor(photoListAndCursor.getCursor(),
              AuthUtils.getUserId());
          builder.setNextPage(cursorId);
        }
        // Everything went well
        reply = builder.build();

      } catch (DatastoreException e) {
        // Internal error, impossible to list the photos
        reply = PhotoListResponse.newBuilder().setError(getDbErrorMessage()).build();
      }
    } else {
      reply = PhotoListResponse.newBuilder().setError(getAuthErrorMessage()).build();
    }
    responseObserver.onValue(reply);
    responseObserver.onCompleted();
  }

  @Override
  public final void flagPhoto(final FlagRequest request,
                              final StreamObserver<StatusResponse> responseObserver) {
    StatusResponse reply;
    if (AuthUtils.isSignedIn()) {
      long photoId = request.getPhotoId();
      try {
        Entity photo = dbClient.getPhoto(photoId);
        if (photo == null) {
          throw new DatastoreException("flagPhoto", 404, "Photo not found in Database", null);
        }
        List<Entity> photoFlags = dbClient.getPhotoFlags(photo.getKey());

        boolean hasAlreadyFlagged = false;
        for (Entity flag : photoFlags) {
          Map<String, Value> propsFlag = getPropertyMap(flag);
          String userIdFlag = propsFlag.get("userId").getStringValue();
          if (userIdFlag != null && userIdFlag.equals(AuthUtils.getUserId())) {
            hasAlreadyFlagged = true;
          }
        }
        if (!hasAlreadyFlagged) {
          if (dbClient.insertFlag(photo.getKey(), AuthUtils.getUserId())) {
            if (photoFlags.size() + 1 >= 2 && !dbClient.setPhotoFlagged(photo.getKey())) {
              // Internal error, impossible to flag the photo
              // Let's not say anything to the user as he did
              // his job.
              LOGGER.warning("Impossible to flag photo=" + photoId + " with count_flags="
                  + photoFlags.size());
            }
            // Everything went well
            reply = StatusResponse.newBuilder().build();
          } else {
            // Internal error, impossible to store the flag
            reply = StatusResponse.newBuilder().setError(getDbErrorMessage()).build();
          }
        } else {
          // User has already flagged the picture, do nothing
          reply = StatusResponse.newBuilder().build();
        }
      } catch (DatastoreException e) {
        // Internal error, impossible to store the flag
        reply = StatusResponse.newBuilder().setError(getDbErrorMessage()).build();
      }
    } else {
      reply = StatusResponse.newBuilder().setError(getAuthErrorMessage()).build();
    }
    responseObserver.onValue(reply);
    responseObserver.onCompleted();
  }

  @Override
  public final void uploadPhoto(final NewPhotoRequest request,
                                final StreamObserver<UploadPhotoResponse> responseObserver) {
    UploadPhotoResponse reply;
    if (AuthUtils.isSignedIn()) {
      String description = request.getDescription();
      try {
        Entity photo = dbClient.insertPhoto(description, AuthUtils.getUserId());
        try {
          long photoId = DbUtils.getEntityId(photo);
          // Everything went well, get upload URL
          String uploadUrl = CloudStorage.getUploadUrl(photoId + "_" + AuthUtils.getUserId()
              + ".jpeg");
          if (uploadUrl != null) {
            reply = UploadPhotoResponse.newBuilder()
                .setPhotoId(photoId)
                .setUserId(AuthUtils.getUserId())
                .setUploadUrl(uploadUrl).build();
          } else {
            reply = UploadPhotoResponse.newBuilder().setError(getErrorMessage("500",
                "Impossible to start file upload")).build();
          }

        } catch (NullPointerException e) {
          // Internal error, impossible to insert a new photo in the database
          reply = UploadPhotoResponse.newBuilder().setError(getDbErrorMessage()).build();
        }

      }  catch (DatastoreException e) {
        // Internal error
        reply = UploadPhotoResponse.newBuilder().setError(getDbErrorMessage()).build();
      }
    } else {
      reply = UploadPhotoResponse.newBuilder().setError(getAuthErrorMessage()).build();
    }
    responseObserver.onValue(reply);
    responseObserver.onCompleted();
  }

  @Override
  public final void editPhoto(final EditPhotoRequest request,
                              final StreamObserver<StatusResponse> responseObserver) {
    StatusResponse reply;
    if (AuthUtils.isSignedIn()) {
      long photoId = request.getPhotoId();
      Entity photo;
      try {
        photo = dbClient.getPhoto(photoId);
        if (photo == null) {
          throw new DatastoreException("editPhoto", 404, "Photo not found in Database", null);
        }
        Map<String, Value> propsPhoto = getPropertyMap(photo);
        String userIdPhoto = propsPhoto.get("userId").getStringValue();
        if (userIdPhoto != null) {
          if (userIdPhoto.equals(AuthUtils.getUserId())) {
            // Let's update the photo
            if (dbClient.updatePhotoDescription(photo.getKey(), request.getDescription())) {
              // Everything went well
              reply = StatusResponse.newBuilder().build();
            } else {
              // Internal error, impossible to delete
              reply = StatusResponse.newBuilder().setError(getDbErrorMessage()).build();
            }
          } else {
            // The user is trying to edit a photo that he does not
            // own
            reply = StatusResponse.newBuilder().setError(getErrorMessage("403",
                    "Not the owner of the photo")).build();
          }
        } else {
          // Internal error - no property userId on the photo
          reply = StatusResponse.newBuilder().setError(getDbErrorMessage()).build();
        }
      }  catch (DatastoreException e) {
        // Internal error
        reply = StatusResponse.newBuilder().setError(getDbErrorMessage()).build();
      }
    } else {
      reply = StatusResponse.newBuilder().setError(getAuthErrorMessage()).build();
    }
    responseObserver.onValue(reply);
    responseObserver.onCompleted();
  }

  @Override
  public final void deletePhoto(final DeletePhotoRequest request,
                                final StreamObserver<StatusResponse> responseObserver) {
    StatusResponse reply;
    if (AuthUtils.isSignedIn()) {
      long photoId = request.getPhotoId();
      try {
        Entity photo = dbClient.getPhoto(photoId);
        if (photo == null) {
          throw new DatastoreException("deletePhoto", 404, "Photo not found in Database", null);
        }
        Map<String, Value> propsPhoto = getPropertyMap(photo);
        String userIdPhoto = propsPhoto.get("userId").getStringValue();
        if (userIdPhoto != null) {
          if (userIdPhoto.equals(AuthUtils.getUserId())) {
            // Let's delete all the data associated to this photo
            if (dbClient.deletePhotoAndChildren(photo.getKey())) {
              // Everything went well
              reply = StatusResponse.newBuilder().build();
            } else {
              // Internal error, impossible to delete
              reply = StatusResponse.newBuilder().setError(getDbErrorMessage()).build();
            }
          } else {
            // The user is trying to suppress a photo that he
            // does not own
            reply = StatusResponse.newBuilder().setError(getErrorMessage("403",
                    "Not the owner of the photo")).build();
          }
        } else {
          // Internal error - no property userId on the photo
          reply = StatusResponse.newBuilder().setError(getDbErrorMessage()).build();
        }
      }  catch (DatastoreException e) {
        // Internal error
        reply = StatusResponse.newBuilder().setError(getDbErrorMessage()).build();
      }
    } else {
      reply = StatusResponse.newBuilder().setError(getAuthErrorMessage()).build();
    }
    responseObserver.onValue(reply);
    responseObserver.onCompleted();
  }

  @Override
  public final void ratePhoto(final VoteRequest request,
                              final StreamObserver<StatusResponse> responseObserver) {
    StatusResponse reply;
    if (AuthUtils.isSignedIn()) {
      long photoId = request.getPhotoId();
      try {
        Entity photo = dbClient.getPhoto(photoId);
        // Let's rate the photo
        int vote = 0;
        if (request.getVote() == VoteRequest.VoteType.THUMBS_DOWN) {
          vote = -1;
        } else if (request.getVote() == VoteRequest.VoteType.THUMBS_UP) {
          vote = 1;
        }
        if (photo != null && dbClient.voteForPhoto(photoId, vote, AuthUtils.getUserId())) {
          // Everything went well
          reply = StatusResponse.newBuilder().build();
        } else if (photo == null) {
          // Photo does not exist
          reply = StatusResponse.newBuilder().setError(getErrorMessage("404", "Photo not found"))
              .build();
        } else {
          // Internal error, impossible to rate
          reply = StatusResponse.newBuilder().setError(getDbErrorMessage()).build();
        }
      }  catch (DatastoreException e) {
        // Internal error
        reply = StatusResponse.newBuilder().setError(getDbErrorMessage()).build();
      }
    } else {
      reply = StatusResponse.newBuilder().setError(getAuthErrorMessage()).build();
    }
    responseObserver.onValue(reply);
    responseObserver.onCompleted();
  }

  /**
   * Returns an ErrorMessage to send via gRPC.
   * @param code the error code.
   * @param details details on the error.
   * @return the error message to send.
   */
  private Error getErrorMessage(final String code, final String details) {
    return Error.newBuilder().setCode(code).setDetails(details).build();
  }

  /**
   * Returns an ErrorMessage for an authentication error to send via gRPC.
   * @return the error message to send.
   */
  private Error getAuthErrorMessage() {
    return getErrorMessage("403", "You are not authenticated");
  }

  /**
   * Returns an ErrorMessage for an authentication error to send via gRPC.
   * @return the error message to send.
   */
  private Error getDbErrorMessage() {
    return getErrorMessage("500", "Database error");
  }

}


1st item: Chinese bronze vase, trumpet form with lobed rim and relief chilong decoration to the lobed body. 4 3/8" H. Provenance: Purchased in Hong Kong 4/25/1994 the Chinese Arts & Crafts (H.K.) Ltd. The Certificate of Authenticity dates this item to the Late Ming-Wanli Period, 1573-1620. Certificate provided upon request. 2nd item: Chinese bronze "Hu" form vase, with a wide band of keyfret pattern relief decoration to the body above a band of crested waves, flanked by handles with loose rings. 4 5/8" H. Provenance: Purchased in Hong Kong 9/1/1994 from the Chinese Arts & Crafts (H.K.) Ltd. The Certificate of Authenticity dates this item to the 17th Century. Certificate provided upon request. CONDITION: 1st item: Overall good condition with rubbing and surface wear commensurate with age and use. 2nd item: Overall good condition with rubbing, surface wear and oxidation commensurate with age and use. Some minor nicks/losses to underside of base.


Samsung Korea has confirmed that the popular Galaxy S2 smartphone will get an infusion of Android Jelly Bean.
The company revealed details of the update on its official site, but did not say when exactly the refresh will become available to Galaxy S2 owners.
Among the new features are Google Now and the Android Project Butter. It'll also have built-in Google+, Google Play Books and Google Play Movies.
The update will, however, take up an extra 1GB of storage on the Galaxy S2, thanks to a new system partition, and will take an hour to download when it finally arrives.
Alongside the Jelly Bean update, Samsung is also bringing some of the tech it introduced with the Galaxy S3 last year.
S2 owners will get the Smart Stay feature, which prevents the screen from timing out when you're looking at it, while the Camera app will allow users to pause recordings.
It'll also get the Pop-Up Play functionality, allowing users to continue enjoying video while emailing, texting or browsing the web, etc.
So, a new lease of life is on the way for one of the best handsets of the smartphone era. Now its just a waiting game and, as is often the case with Android updates, it could be quite a wait yet.


Click to download. Please credit all photos to Jorge Rivas.
Ann Friedman is a journalist and co-host of the podcast Call Your Girlfriend.
Ann Friedman is a journalist who covers gender, politics, technology, and culture for many publications, including New York magazine, The Los Angeles Times, and The Gentlewoman. She also co-hosts the podcast Call Your Girlfriend. Find her work and subscribe to her popular weekly email newsletter at annfriedman.com.
Ann Friedman is a journalist who writes about gender, politics, technology, and culture. She is a regular contributor to New York magazine and The Los Angeles Times, and a contributing editor to The Gentlewoman. Her work has appeared in a wide range of publications, from The New Republic to ELLE to The New York Times. She co-hosts the podcast Call Your Girlfriend, makes hand-drawn pie charts, and sends a popular weekly email newsletter. She is originally from Iowa and now lives in Los Angeles. Find her work at annfriedman.com.


I'm trying to understand how loops and Foreach works, but need some help on how to iterate over primitives with different offsets and angles in my cuts.
Here is an image I found online to explain what I want to do...or something similar.
2. Loop over the new primitives and cut again, but at different positions and angles.
Thanks Mestela! I had a look at your Greeble example as well.
It seems to do exactly what I had in mind...it's just for learning so your file is very welcome. You should put it up on your website.
Forgot to mention where I got the idea from. There is a beautiful render on the SideFX gall done by Dimitris Ladopoulos, that made me want to explore loops Foreeach.
Thanks again for the great example Mestela. I'm yet to understand how it all works, but I will take my time.
The outer loop is in 'by count' mode in feedback mode on both the begin and end blocks. This means its purely a 'repeat the inner process x times' loop.
Eg, create a sphere, put down a new foreach loop, begin block method to 'fetch feedback', end block iteration to 'by count', gather method to 'feedback each iteration'. By default nothing happens. Put a transform sop inside the loop, with transformX as 1.0. The end result is the sphere moved 10 units, because the same geo is fed back into the loop, and moved 1 unit on x each time.
The inner loop begin block is in 'fetch piece or point' mode, end block in 'by pieces or points', 'merge each iteration', 'primitives'. This means it goes through each primitive, applies the inner loop to just that primitive, and accumulates all the results.
The tricky stuff is if you use a clip, the clip is defined in worldspace, not relative to the prim being clipped. As such, the wrangle does some bookkeeping to work out the center of the prim being processed, and clips there. That looked too regular, so I added some randomness. Then it looked too much in one direction, so I choose a random x or z direction for each prim, and the switch sop flips between them based on that random x or z.
That'll all be easier to explain with gifs.
No, your explanation is great.
Looking at your file, I got the foreach loop part right(thanks to the Masterclass tutorial). I could not find a way to make the clip SOP to work. That is when I got lazy and posted here.
My mind was heading in the right direction, but only starting to learn VEX now. I can see how much more control I will have once I understand it better.
It would be awesome if you placed it on your wiki. The format and explanation is easy to follow, and would help me to understand the VEX part.
Thanks for the incredible resource and effort. Your wiki page is permanently open on my pc.
Now, the idea is to see if I can ad two more clip SOPS at -45 and 45, so that it randomly switches between the 4 angles.
Very exited about this one. I think allot of people will benefit.
I was surprised to find this thread with the Algorithm stuff I posted a few days ago.
I'm glad it got you interested and thankful for people like mestela!
I tried a couple of way but ended up using polysplit with edge loops in order to have local space rather than world space.
I ended up with 2 variations. 1st one splits each primitive with a random number of edge loops (eg. 0-4). Blue loop splits horizontally, green loop splits vertically. I could only get equally spaced splits so in the 2nd example I tried to make it split each primitive a random number but at a random distance (0.2-0.8) each time.
Very cool! The patterns you get are way more interesting than the once I was getting.
Excellent @Dimitris , saw your renders the other day and wondered how you did it.
Thanks too @mestela for your file and write up on the for loops. Added in some diagonal cuts too to your file. These cuts are also with a for loop that I modified from a file @henderthing was kind enough to let me dig around in a while back. Still trying to get my head around these loops, like a lot of Houdini stuff, it's a bit of a dark art.
Nice work! I'll soon post the same idea, this time on solids!
Here is the version for solids.
I used connectivity and clipping this time to achieve this. Green loop takes care of X-axis, red takes care of Y and blue the Z-axis.
Dimitris, great to see you here.
I love the renders you did. Great shading and lighting. I can stare at these patterns all day long.
Added some rotation with a transform just before the clip node in Matt's file. Also added some noise after the for loop to get some variation in the height from the ground.
That is super cool. Beautiful render Paul!
@Werner Thanks, it came out ok, not bad for what took about 1 minute in Redshift. I'm like you, I never tire of looking at patterns like these. I'll no doubt mess around with this scene quite a bit more to see what else it can do.


text:
Ariarne Titmus swipes second gold of Tokyo Games, Ledecky fifth
Australia's Ariarne Titmus won her second Olympic gold medal of the Tokyo Games, beating Katie Ledecky once again.
By: Eric Goodman
Breakout Australian swimming star Ariarne Titmus backed up her 400m freestyle victory with another gold medal performance in a field that included Katie Ledecky, winning the 200m freestyle in an Olympic record 1:53.50.
Hong Kong's Siobhan Haughey, who led Titmus by a half-second at the 150 mark, took silver.
Titmus closed with a final split of 28.8 to pass Haughey with 15 meters to go.
Canada's Penny Oleksiak, a Rio 2016 gold medalist in the 100 free, took bronze as Katie Ledecky, never seeming to be in contention for the win, finished fifth.

redpajama_set_name: RedPajamaCommonCrawl


text:
When a Rare Mutation Causes a Rare Disease: Jacob's Story
For some parents, a physician's advice to "just take him home and love him," presumably letting nature take it's most likely course, is just not acceptable. This blog has championed many such parents, who serve as catalysts for others.
New to rare disease territory is Orah Lasko, whose toddler Jacob not only has an exceedingly rare disease, but a highly unusual mutation behind it. With all of the media coverage of the high costs of new biotech-based treatments – gene therapy, targeted cancer drugs, monoclonal antibody-based drugs, antisense oligonucleotides – having such a double dose of rarity could be quite an obstacle.
But that's not stopping Orah. Nor are the words of a neurologist who advised her to stop pursuing treatments.
The Diagnostic Odyssey
Orah Lasko's pregnancy, her third, had been uneventful, with normal findings on the standard prenatal tests. Jacob seemed okay when he was born in September 2017, with minor feeding issues that went away. His small genitals didn't set off any alarm bells.
But as the months went on, other things appeared. Or didn't.
Low muscle tone made Jacob floppy, so that he couldn't put any weight on his feet when Orah and her husband Avi tried to help him stand. Orah, who did graduate work in speech therapy and is a court stenographer, became alarmed when the boy wasn't babbling. Jacob also had a prominent forehead and a big head, and by 13 months old, had yet to crawl.
And so began the diagnostic odyssey.
"When Jacob was around 9 months old, I went to the pediatrician and said to her 'something's not right,'" Orah recalls. "He had too many things wrong with him for this to be just delayed speech. It didn't make sense."
But with persistence, Orah was, finally, heard. "See a geneticist," the pediatrician said.
The symptoms reminded the geneticist of Prader-Willi syndrome, but the test for that was negative. Ditto for Klinefelter's syndrome. So too was a microarray test for chromosomal duplications and deletions.
"I don't think we'll find out what's wrong, so go live your life and enjoy him," Orah recalls being told.
"If this was your child, would you accept that as an answer? If you knew in your gut something was wrong?" she answered.
After doing some research, Orah convinced the geneticist to send a blood sample off for Jacob's exome to be sequenced. The exome, the protein-encoding portion of the genome, holds the information behind 85% of single-gene diseases.
"Something was wrong and I wanted to know, now. I realized how much of an advocate you have to be for your child. A lot of doctors give up and if you don't do your own research and go with your gut, you're left with no answers," Orah told me.
Exome Reveals Rare Mutation
Jacob had his exome test sent off when he was 15 months old, with samples from his parents too to see if whatever mutations he had were inherited or had originated in him. Getting results took 4 months, with Orah calling weekly for updates. Finally, the test results revealed an answer.
Although the geneticist, from a hospital near their home in Florida, told the distraught parents that the findings were worse than expected, he didn't fully explain them. Fortunately, Orah found Olaf Bodamer at Boston Children's Hospital, who translated the jargon in the lab report.
This image shows the coding region in a segment of eukaryotic DNA. Image credit: Smedlib via Wikimedia, CC-BY-SA-4.0
A key finding: Jacob's mutation had happened in him – neither parent had it. It was dominant, meaning that only one copy of the gene was mutant. This may turn out to be crucial information for developing a treatment. And practically it meant that future pregnancies for the parents shouldn't be at risk. But a new dominant mutation often introduces what geneticists call a "toxic gain of function" – something new, rather than something missing that could be replaced.
Jacob's mutation is in a gene called USP7. Genes are in pieces, with exons that are transcribed into messenger RNA (mRNA) and then translated into the amino acid sequence of proteins. Introns are segments that are snipped out before the protein is made.
Cell's "read" the genetic information 3 DNA bases at a time, each triplet specifying an amino acid. If a mutation disturbs a "splice site" where an intron is normally removed, a mangled protein, or none at all, results. Cells have machinery to recognize and destroy misfolded proteins.
USP7 mutated in the egg or sperm that went on with its partner to become Jacob. The gene consists of 35 exons. Something went awry at the boundary of intron 19 – a wrong DNA base appears in the sequence, an A (adenine) where a G (guanine) should be to create the signal for intron splicing. Jacob's ultrarare splice-site mutation is part of one of the pair of his 16th largest chromosome.
A Block in Protein Recycling
Jacob has a condition that doesn't yet have a catchy name: USP7-related-diseases (see Tess's Tale: Social Media Catalyzes Rare Disease Diagnosis). A quarter of children never speak, and most have developmental delay, intellectual disability, and abnormal brain MRI findings. Other symptoms are the low muscle tone and small genitals that first alerted Jacob's parents, and autism spectrum disorder, feeding difficulties, reflux, seizures, abnormal gait, low weight, and short stature.
At the microscopic level, USP7 protein is normally made in abundance in many tissues. The inability to synthesize it reverberates from a cellular back-up in misfolded protein processing to the whole-body constellation of symptoms.
Normally, USP7 assembles with three other types of proteins, and the group activates a protein called WASH, which turns on the cellular process for handling misfolded proteins. The aberrant folding happens when proteins don't contort into their specific three-dimensional shapes as they peel off from the messenger RNAs that represent genes. Usually these renegade proteins don't do what they normally would. USP7 is critical for overseeing that all-important folding.
The cells' quality-control response to weed out misfolded proteins sends them from the membranous labyrinthine where they're made (the endoplasmic reticulum) into the gel-like surrounding cytoplasm. Here they're "tagged" with yet another protein, the wonderfully-named ubiquitin.
Misfolded proteins are stretched out and refolded, correctly, in proteasomes. Image credit: Jawahar Swaminathan and MSD staff at the European Bioinformatics Institute via Wikimedia, Public Domain
A misfolded protein tagged with just one ubiquitin may straighten itself out and refold correctly. But doomed proteins festooned with ubiquitins are escorted into bubbles, called endosomes, that in turn ferry them to a spool-like conglomeration of proteins called a proteasome. As the harpooned misshapen protein moves through the opening of a proteasome, it is stretched and then chopped up, like a log in a wood chipper. The original misfolded protein is dismantled, liberating amino acids that are recycled into new proteins.
While researchers often discover how a rare disease arises from affected families like Jacob's and Tess's, a report from 2015 zeroed in on USP7 disease from a different starting point. Yi-Heng Hao, of UT Southwestern Medical Center and colleagues, looked at databases of microdeletions, exome sequences, and symptoms, and found that variants of USP7 cause the same symptoms as mutations in a better-studied protein with which it associates (MAGEL2). Mutations that affect different proteins that interact in a shared biochemical pathway often cause the same spectrum of symptoms, like clotting disorders.
After the diagnosis Orah and Avi gave themselves a few days to cry, and then went into action.
Although Jacob's condition is exceedingly rare, Orah quickly found Bo Bigelow online, the dad from the Tess's Tale post linked to above. Orah organized community fundraisers for research; posted on Facebook, where I circuitously found her; spoke to a researcher at St. Jude's working on a mouse model of USP7 conditions; and contacted pharmaceutical companies, all of which said USP7 wasn't in the pipeline.
Orah thought first of gene therapy, but anything involving ubiquitin, as the very name suggests, would be too pervasive to want to try to disrupt. That is, a gene therapy that goes off-target could be devastating.
When I heard "splice site mutation," I suggested antisense oligonucleotide (ASO) technology. That approach slaps a bit of DNA-like material onto the errant splice site, acting like a cloaking device and restoring how the gene is "read." ASOs work for a few conditions, such as the recently FDA-approved Spinraza to treat spinal-muscular-atrophy. Antisense also makes sense for some patients with splice-site mutations causing familial dysautonomia.
But when Orah sent me Jacob's exome results, the jargon was unfamiliar. The parameters for the site of the glitch in the USP7 gene includes a mysterious "+1G>A". I knew a guanine had been replaced with an adenine, but I didn't recognize the significance of the +1.
Fortunately, a researcher Orah's dad contacted explained in an email that the +1 meant that the splice site had a G that had to remain a G for the intron to be removed. The resulting mRNA, with the A substitution, would be too large or too small. ASOs to patch the glitch wouldn't work, nor do we yet have ways to correct splicing errors, he informed the distraught family.
Orah was at first devastated – she shares her thoughts frequently in beautifully written Facebook posts – but then chose to focus on the optimism in the kind researcher's response. For his email went on to explain that the finding just meant they'd have to find another way. And then he offered specific suggestions.
One: study the copy of Jacob's USP7 gene that is okay, figure out a way to express or overexpress it, and find out if doing so can override the mutation's effect. That is, his genome has the instructions for the normal protein; find a way to access them.
Two: target or replace the USP7 enzyme with a protein therapy.
Three: tackle one of the proteins with which USP7 interacts.
Because genetics is an informational science, if one strategy to correct or compensate for misinformation derails, researchers can hypothesize others. But all of these clever approaches must first be tried in non-human animals, or in cultured cells or organoids.
The story of a family's quest for a way to counteract an extremely rare mutation behind an extremely rare disease illustrates the importance of basic research. Understanding the intron-exon make-up of genes is critical in the Lasko's journey.
I remember when introns were discovered – something completely unexpected that was revealed with basic research. Walter Gilbert famously wrote an essay in Nature in 1978, "Why Genes in Pieces?" to explain the surprise. The essay is behind a paywall, but here's a revisit from 2019. The discovery forever changed our view of the genes of complex organisms; most human genes are riddled with introns. Proteasomes, too, were discovered within the realm of basic research.
I hope that recent funding trends – more $ for the FDA, including the 21st Century Cures Act, but 12 percent less for the National Institutes of Health – doesn't signal a trend in cutting off the very knowledge base and pipeline of drug candidates that fuel clinical trials.
For if gene therapy and ASOs won't work to tackle Jacob's disease, something else will, but not if we shift funding away from discovery. The loss of $80 million to the National Human Genome Research Institute for 2020, bringing funding down to $495 million, is horribly short-sighted.
Cures don't come out of thin air. Cutting funding for basic research is never a good idea.
Source: PLOS EveryONE


At the dawn of the twenty-first century, America faces many challenges, both at home and abroad. Too often, however, our democracy, the very system that should be able to address those challenges, seems to fall short. A divided citizenry, Washington gridlock, an often superficial media, and the overwhelming influence of money in politics often prevent government from serving the common good.


The hill districts of Assam in the eastern Himalayas have traditionally been famous for their succulent fruits and vegetables. Mandarin oranges, in particular, originate from the districts of Karbi Anglong and Dima Hasao in the Brahmaputra valley. Over the last decade however, orange orchards have been taken over by pests and diseases, resulting in immense losses for farmers and forcing them to look for alternative crops.
The Assam State Action Plan On Climate Change (2015-2020), which analyzed data between 1951 to 2010, states that mean temperatures in the state have increased by 0.01 degree centigrade per year, and annual rainfall has fallen by 2.96 mm per year. These factors could reduce GDP growth in agriculture by 2% according to the plan.
Amrit Borbora, chief scientist of the Citrus Research Station in Tinsukia (Assam), agreed and added that apart from viral diseases induced by climate change, the production of mandarin oranges has also been affected by a bacterial disease called "citrus greening", also known as Huanglongbing. Interestingly, a similar trend of viral and other diseases have hit orange production in the neighboring country of Bhutan, also in the Himalayan range. Climate change and its manifestations like erratic rainfall have been attributed as one of the reasons.
This article was written as part of IHCAP-CMS Media Fellowship Program. It was first published in the Third Pole.
as I сan not find your e-mail subscription hyperlink or newslettеr service.
that I may јust subscribe. Thanks.


Parashat Terumah is the first of two parashiyot that describes the design of the Mishkan, the portable Tabernacle that the Israelites build and then carry with them throughout their time in the wilderness. It also describes the furnishings that resided within the Mishkan.
The Mishkan becomes a somewhat "permanent" temporary structure. Even after the Israelites enter the Promised Land, it will take several centuries before the Beit Hamikdash, the Temple, to be built by King Solomon in Jerusalem, using the Mishkan as a model.
V'asu li mikdash v'shakhanti b'tokham. "Build for me a Sanctuary that I may dwell in your midst," God instructs Israel through Moses. The Mishkan is the place where God's Transcendent Presence becomes immanent. The people can simply look to the center of the camp, see the clouds of incense hovering over the Tent, and know that God was there to protect them, bless them, and bring them prosperity.
Everything pertaining to the Mishkan, and later the Beit Hamikdash, is deeply symbolic.
In the ancient world, the belief was that when people sin, impurity becomes attached to the Mishkan, and specifically to the altar. God's Presence cannot remain in an impure Sanctuary.
That is where the priests come in. By conducting the rituals, they cleanse the Mishkan and the altar of impurity, allowing God's Presence to return, bringing blessings to the people.
This is true for the Mishkan in the wilderness, and later for the Beit Hamikdash in Jerusalem.
But something begins to change when the Rabbis come on the scene about two thousand years ago.
They take over from the biblical prophetic tradition, which tends to be skeptical of the automatic nature of the Temple rituals. Prophets like Isaiah, Micah, and Amos recognize that while the priests conducted all of the Temple rituals with care and precision, people continues to behave with greed and callousness. There must be more to being a people of God than merely offering sacrifices.
The Rabbis inherit and replace this countercultural prophetic tradition. They interpret the Mishkan and Beit Hamikdash symbolically, deriving universal moral lessons from the specific rituals that were once conducted only by the priests. Even before the destruction of the Second Temple in the year 70 CE, certain Jewish circles are starting to imagine a decentralized Judaism. They embrace the ancient Temple symbols, but add them new layers of meaning that make them accessible to any Jew, in any place.
Three of the important pieces of furniture in the Mishkan are described in Parashat Terumah – the altar, the ark, and the table. The altar, the mizbeaḥ, is where the sacrifices are performed. The Ark, the aron, houses the tablets of the Ten Commandments and serves as God's footstool in the Holy of Holies. The table, the shulḥan, is where twelve loaves of bread are placed every week on Shabbat.
In describing each of these items, the Torah indicates that they are to have a zer of gold encircling the top. It is not clear what a zer is. Our English translation uses the word "molding." It is some sort of decorative gold rim around the top of the altar, ark, and table. The Talmud (Yoma 72b) describes this zer as a crown, with symbolic meaning that extends way beyond mere aesthetics.
Rabbi Yoḥanan teaches: "There were three crowns on the sacred vessels in the Temple: The crown of the altar, and of the Ark, and of the table." Each of these crowns is available to be claimed by someone who is deserving. For the crown of the altar, it is Aaron who is deserving. He takes it, becomes the High Priest, and passes on the crown of priesthood to his sons after him. The crown on the table is understood to represent kingship. David is the deserving one. He takes it for himself and passes it on to his children after him. What about the third crown – the crown of the ark? It still sits unclaimed, says Rabbi Yoḥanan. Kol ha-rotzeh likaḥ, yavo v'yikaḥ. Anyone who wishes to take it may come and take it. What is this crown of the ark? It is the crown of Torah. Anyone is allowed to come and wear the crown of Torah.
The midrash continues: You might think that this third, unclaimed, crown is inferior to the crowns of kingship and of priesthood. After all, nobody has taken it. This is not the case. It is in fact greater than both of them. The Book of Proverbs states, "Through me kings will reign" (Pr. 8:15). The strength of the crowns of priesthood and kingship is derived from the crown of Torah, which is greater than them all.
This midrash undermines the old system. Torah, that is to say, learning, has replaced the old dynastic systems of religious leadership. This is one of the great legacies that the Rabbis have left to us: a meritocracy based on learning that is accessible to anyone who chooses to embrace it, regardless of lineage, wealth, or background.
This idea is developed further. What does it mean to take the crown of Torah? The Talmud again derives its answer through a creative analysis of the Mishkan. We have already identified the ark as representing Torah. It contains, after all, the Ten Commandments. This ark, we read in the this morning's Parashah, is constructed preciselt. It is kind of like one of those Russian nesting dolls, with three compartments. The middle compartment is a box made out of acacia wood. It is sandwiched between an inner compartment and an outer compartment, each of which are made out of gold.
Torah is not meant to be merely an intellectual pursuit. It is a living document, one that must transform the behavior of the one who studies it.


SAM ALLARDYCE went for smart casual on his first day as the England football manager yesterday. Brown brogues with red tongue, dark suit open at the neck and crisp white shirt underneath.
Modern yet stylish – a good look when seeking to make the right initial impression.
It was only when he reached out his arms to stress a point he was making that something odd became apparent – blue lettering on the cuffs of the shirt. Closer inspection showed an 'S' and an 'A' stitched in.
What to make of a man whose shirts have his own initials embroidered upon them?
There was no questioning Allardyce's pride in landing the England job yesterday.
It seeped from every pore.
To reach the top of such a competitive profession is a commendable achievement for a dyslexic kid raised on a Dudley council estate.
Allardyce's assumption is that his personality and attention to detail will win them over. As well as his emphasis on cutting edge sports science, he is not averse to some old-school fun – he once asked his Bolton players to race toilets around a field in the Lake District.
"I'm pretty alright to get on with you know? I'm not that bad," he said. "I want the players to feel comfortable in my presence and I have to earn their respect of course and ultimately I can do that pretty quickly.
If he had followed in his father's footsteps, he would have ended up as a policeman rather than a football manager and there is something of the lawman about his manner. At 61 he looks as if he is capable of handling himself.
The five security men deployed at St George's Park for his unveiling were entirely unnecessary.
If Allardyce's England are to be built in the image of their boss Slovakia – their first opponents – had better invest in helmets and padding.
He knows he carries baggage with him over the bull-in-a-china-shop football his teams have played – his detractors would have you believe he would have pulled the blind down rather than watch the visiting Barcelona side train at St George's Park yesterday – but while he acknowledges he is a "pragmatic" manager, he insists he will use the talent available to him with England.
"What tactics will we use? There won't be massive changes. There will be subtle changes throughout my time here," he said.
Subtle Sam? That one will never stick but there will be other, less generous soubriquets from the headline writers when the inevitable banana-skin games arrive.
"I think I'm tough enough to take it so bring it on eh lads?" he said.
What would he call himself then? He laughs.


Selena's 20 Years of Music - Ones! is a celebration of her music and legacy as one of the most influential latin artist of our time. Featuring 19 greatest hits, plus one Selena Re-Mix. All tracks are remastered.


text:
Ван Гог () — 99-километровый ударный кратер на планете Меркурий. Он назван в честь голландского художника Винсента ван Гога (1853—1890). Был открыт в 1976 году. В том же году имя, данное кратеру, было одобрено Международным астрономическим союзом.

Примечания

Литература

См. также
 Список кратеров Меркурия

Кратеры Меркурия

redpajama_set_name: RedPajamaWikipedia


Join me for a live and interactive FutureofEducation.com interview with Ted Kolderie, founding partner of Education|Evolving, about education reform, open enrollment and school choice, charter schools, and teachers as owners of professional partnerships that are responsible and accountable for managing schools.
Education|Evolvling works to convince those who make and influence policy that America's success depends on creating radically different and better ways for young people to learn and for teachers to work.
Ted Kolderie has worked on system questions and with legislative policy in different areas of public life: urban and metropolitan affairs and public finance through the 1960s and '70s. He is most recognized nationally for his work on K-12 education policy and innovation, which he has focused on since the early 1980s. Ted was instrumental in the design and passage of the nation's first charter school law in Minnesota in1991, and has since worked on the design and improvement of charter legislation in over seventeen states. He has written about the charter idea and its progress in a variety of publications, and is the author of "Creating the Capacity for Change: How and Why Governors and Legislatures are Opening a New-Schools Sector in Public Education " (Education Week Press, 2005).
A graduate of Carleton College and of the Woodrow Wilson School of Public Affairs at Princeton University, Ted was previously executive director of the Twin Cities Citizens League, a reporter and editorial writer for the Minneapolis Star and Tribune, and a senior fellow at the University of Minnesota's Hubert H. Humphrey Institute of Public Affairs.


text:
Q: Error running ESLint I'm working on an open source project that uses ESLint before submitting a PR, sounds like a pretty standard procedure, the only problem is when running ESLint npm run lint I get an error
Cannot find module '\webpack\dlls\vendor.json'
I've recently uninstalled node and installed nvm-windows and am currently using node 6.11.2and npm 3.10.10. Any help would be greatly appreciated as I'm not finding anything on google.
package.json
`
{
  "name": "Mantenuto",
  "description": "",
  "version": "0.0.1",
  "engines": {
    "node": "6.11.2",
    "npm": "5.2.0"
  },
  "keywords": [
    "react",
    "isomorphic",
    "universal",
    "webpack",
    "express",
    "hot reloading",
    "react-hot-reloader",
    "redux",
    "starter",
    "boilerplate",
    "babel"
  ],
  "main": "bin/server.js",
  "scripts": {
    "start": "concurrently --kill-others \"npm run start-prod\"",
    "start-prod": "better-npm-run start-prod",
    "build": "better-npm-run build",
    "build-dlls": "webpack --verbose --colors --display-error-details --config webpack/vendor.config.js",
    "postinstall": "concurrently \"npm run build\" \"npm run build-dlls\"",
    "lint": "node_modules/.bin/eslint -c .eslintrc src",
    "start-dev": "better-npm-run start-dev",
    "start-dev-local": "better-npm-run start-dev-local",
    "start-dev-server-debug": "better-npm-run start-dev-server-debug",
    "watch-client": "better-npm-run watch-client",
    "start-dev-debug": "better-npm-run start-dev-debug",
    "start-dev-debug-local": "better-npm-run start-dev-debug-local",
    "debug": "concurrently --kill-others \"npm run watch-client\" \"npm run start-dev-debug\"",
    "debug-local": "concurrently --kill-others \"npm run watch-client\" \"npm run start-dev-debug-local\"",
    "dev": "concurrently --kill-others \"npm run watch-client\" \"npm run start-dev\"",
    "dev-local": "concurrently --kill-others \"npm run watch-client\" \"npm run start-dev-local\"",
    "test": "jest $(find src -name '*.test.js')",
    "tdd": "jest --watch $(find src -name '*.test.js')",
    "debug-tests": "node --inspect-brk node_modules/.bin/jest --runInBand --watch $(find src -name '*.test.js')"
  },
  "betterScripts": {
    "start-prod": {
      "command": "node ./bin/server.js",
      "env": {
        "NODE_PATH": "./src",
        "NODE_ENV": "production",
        "HOST": "localhost",
        "API_ENDPOINT": "https://api.projectrefit.us"
      }
    },
    "start-dev": {
      "command": "node ./bin/server.js",
      "env": {
        "NODE_PATH": "./src",
        "NODE_ENV": "development",
        "HOST": "localhost",
        "API_ENDPOINT": "https://api.projectrefit.us",
        "PORT": 3000,
        "WEBPACK_DLLS": 1
      }
    },
    "start-dev-local": {
      "command": "node ./bin/server.js",
      "env": {
        "NODE_PATH": "./src",
        "NODE_ENV": "development",
        "HOST": "localhost",
        "PORT": 3000,
        "API_ENDPOINT": "http://localhost:3030",
        "WEBPACK_DLLS": 1
      }
    },
    "start-dev-debug": {
      "command": "node --inspect --debug ./bin/server.js",
      "env": {
        "NODE_PATH": "./src",
        "NODE_ENV": "development",
        "HOST": "localhost",
        "API_ENDPOINT": "https://api.projectrefit.us",
        "PORT": 3000,
        "WEBPACK_DLLS": 1
      }
    },
    "start-dev-debug-local": {
      "command": "node --inspect --debug ./bin/server.js",
      "env": {
        "NODE_PATH": "./src",
        "NODE_ENV": "development",
        "HOST": "localhost",
        "API_ENDPOINT": "http://localhost:3030",
        "PORT": 3000,
        "WEBPACK_DLLS": 1
      }
    },
    "watch-client": {
      "command": "node webpack/webpack-dev-server.js",
      "env": {
        "UV_THREADPOOL_SIZE": 100,
        "NODE_PATH": "./src",
        "PORT": 3000,
        "APIPORT": 3030,
        "WEBPACK_DLLS": 1
      }
    },
    "build": {
      "command": "webpack --verbose --colors --display-error-details --config webpack/prod.config.js",
      "env": {
        "NODE_ENV": "production"
      }
    }
  },
  "jest": {
    "moduleDirectories": [
      "node_modules",
      "src"
    ],
    "globals": {
      "__CLIENT__": true,
      "__SERVER__": false,
      "__DEVELOPMENT__": true,
      "__DEVTOOLS__": false,
      "__DLLS__": "process.env.WEBPACK_DLLS === '1'"
    },
    "moduleNameMapper": {
      "\\.(css|scss|eot|otf|svg|ttf|woff|woff2|m4a|aac|oga)$": "identity-obj-proxy",
      "\\.(jpg|jpeg|gif|png|mp4|mkv|avi|webm|swf|wav|mid)$": "jest-static-stubs/$1"
    }
  },
  "dependencies": {
    "async": "^2.4.1",
    "babel-core": "^6.25.0",
    "babel-plugin-add-module-exports": "^0.2.1",
    "babel-plugin-transform-decorators-legacy": "^1.3.4",
    "babel-plugin-transform-object-assign": "^6.22.0",
    "babel-plugin-transform-react-display-name": "^6.25.0",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-polyfill": "^6.23.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "babel-register": "^6.24.1",
    "babel-runtime": "^6.23.0",
    "body-parser": "^1.17.2",
    "compression": "^1.6.2",
    "concurrently": "^3.5.0",
    "cookie-parser": "^1.4.3",
    "domkit": "github:hdngr/domkit",
    "express": "^4.14.0",
    "express-session": "^1.15.3",
    "feathers": "^2.1.4",
    "feathers-authentication-client": "^0.3.2",
    "feathers-authentication-hooks": "^0.1.4",
    "feathers-authentication-jwt": "^0.3.2",
    "feathers-authentication-local": "^0.4.3",
    "feathers-errors": "^2.8.1",
    "feathers-hooks": "^2.0.2",
    "feathers-hooks-common": "^3.5.5",
    "feathers-memory": "^1.1.0",
    "feathers-rest": "^1.7.3",
    "feathers-socket-commons": "^2.4.0",
    "feathers-socketio": "^2.0.0",
    "fs": "0.0.1-security",
    "history": "^3.0.0",
    "http-proxy": "^1.16.2",
    "is-promise": "^2.1.0",
    "js-cookie": "^2.1.4",
    "jsonwebtoken": "^7.4.1",
    "localstorage-memory": "^1.0.2",
    "lodash.isplainobject": "^4.0.6",
    "lru-memoize": "^1.0.2",
    "morgan": "^1.8.2",
    "multireducer": "^3.1.0",
    "pretty-error": "^2.1.1",
    "prop-types": "^15.5.10",
    "react": "^15.6.1",
    "react-bootstrap": "^0.30.10",
    "react-cookie": "^0.4.9",
    "react-dom": "^15.6.1",
    "react-helmet": "^3.3.2",
    "react-redux": "^4.4.8",
    "react-router": "^3.0.5",
    "react-router-bootstrap": "^0.23.3",
    "react-router-redux": "^4.0.8",
    "react-router-scroll": "^0.4.2",
    "react-spinners": "0.0.30",
    "redux": "^3.7.0",
    "redux-connect": "^3.0.0",
    "redux-form": "^6.8.0",
    "redux-persist": "^4.4.0",
    "redux-thunk": "^2.2.0",
    "serialize-javascript": "^1.3.0",
    "serve-favicon": "^2.4.3",
    "socket.io-client": "^1.7.4",
    "superagent": "^3.5.2",
    "webrtc-adapter": "^4.2.1"
  },
  "devDependencies": {
    "autoprefixer-loader": "^3.2.0",
    "babel-eslint": "^7.2.3",
    "babel-jest": "^17.0.2",
    "babel-loader": "^6.4.1",
    "babel-plugin-typecheck": "^3.9.0",
    "babel-preset-airbnb": "^2.4.0",
    "babel-preset-es2017": "^6.24.1",
    "better-npm-run": "0.0.11",
    "bootstrap-sass": "^3.3.7",
    "bootstrap-sass-loader": "^1.0.10",
    "chai": "^3.5.0",
    "clean-webpack-plugin": "^0.1.16",
    "css-loader": "^0.26.4",
    "enzyme": "^2.9.1",
    "eslint": "^4.7.0",
    "eslint-config-airbnb": "^15.1.0",
    "eslint-import-resolver-webpack": "^0.8.3",
    "eslint-loader": "^1.8.0",
    "eslint-plugin-chai-friendly": "^0.4.0",
    "eslint-plugin-import": "^2.7.0",
    "eslint-plugin-jsx-a11y": "^5.1.1",
    "eslint-plugin-react": "^7.3.0",
    "extract-text-webpack-plugin": "^1.0.1",
    "file-loader": "^0.9.0",
    "font-awesome": "^4.7.0",
    "font-awesome-webpack": "0.0.4",
    "happypack": "^3.1.0",
    "html-webpack-plugin": "^2.28.0",
    "identity-obj-proxy": "^3.0.0",
    "jest": "^17.0.3",
    "jest-static-stubs": "0.0.1",
    "json-loader": "^0.5.4",
    "less": "^2.7.2",
    "less-loader": "^2.2.3",
    "lighthouse": "^1.6.5",
    "mocha": "^3.4.2",
    "node-sass": "^3.13.1",
    "piping": "^1.0.0-rc.4",
    "react-a11y": "^0.3.4",
    "react-addons-test-utils": "^15.6.0",
    "react-hot-loader": "^3.0.0-beta.7",
    "react-to-html-webpack-plugin": "^2.2.0",
    "redux-devtools": "^3.4.0",
    "redux-devtools-dock-monitor": "^1.1.2",
    "redux-devtools-log-monitor": "^1.3.0",
    "sass-loader": "^4.1.1",
    "socket.io": "^1.7.4",
    "strip-loader": "^0.1.2",
    "style-loader": "^0.13.2",
    "sw-precache-webpack-plugin": "^0.6.3",
    "timekeeper": "^0.1.1",
    "url-loader": "^0.5.9",
    "webpack": "^1.15.0",
    "webpack-dev-middleware": "^1.11.0",
    "webpack-hot-middleware": "^2.18.0",
    "webpack-isomorphic-tools": "^2.6.6"
  }
}

`
npm run lint
"lint": "node_modules/.bin/eslint -c .eslintrc src"

redpajama_set_name: RedPajamaStackExchange


If you missed the news, Wilson Home Organizing is growing! This blog post comes from one of our new team members, Alina Stakhovich. Alina is a pediatric nurse here in Tacoma, WA, and is working on growing her own home organization business. Alina is passionate about living a healthy lifestyle, and below shares four ways having an organized home is actually beneficial to your overall health!
1) Having a clutter-free kitchen promotes healthy eating.
If you are trying to eat healthier, a good place to start is to take a look in your pantry. Is it filled with nutrient-packed foods such as nuts, seeds, dried fruit, and legumes or does it overflow with refined grains, processed snack foods, and canned goods? Having healthier, fewer, and better organized options in your pantry is the first step to minimizing or optimizing snacking, and to improving eating habits in general. As for the kitchen at large, it's definitely much easier to prepare quick, home-cooked meals, when you know exactly where to find your favorite pan or that wooden stirring spoon. Who wants to waste time rummaging through drawers and cabinets just to find a clean utensil?
Purge your pantry of heavily processed, sugary, and, of course, expired items.
Stock and organize your pantry with only foods that would treat your body well.
Donate your kitchen gadgets, utensils, cookware that you don't use.
Optimize your kitchen space by using bins, shelves, baskets, dividers, and racks to organize your space.
2) You are less stressed when everything in your home has a place.
Think of your home office. (Or wherever you keep your papers.) Are you filled with dread when you think about trying to find something you need to do your taxes this season? Clutter in the home office is common, but when you are able to easily locate what you need when you need it, you don't have to experience that stress - financially or otherwise. This principle applies to the rest of the home as well. Having a designated space for everything allows you to put things away easily, and then find them again when you need them. Knowing exactly where to locate your summer clothes and gear allows you to enjoy the changing seasons, not stress over them. Both your body and mind will thank you for minimizing that stress wherever you can.
Purge your office of old papers (receipts, credit card statements, bills), and create a filing system for the papers you do need.
Purge your closet of clothing you haven't worn in more than a year or two and consider storing off-season clothes away from your closet.
Designate a place for everything in your home.
3) More space can mean a designated area for morning stretches or a home gym.
When your home is free of clutter, you actually have more free living space. Even if you live in in a small apartment, having less clutter out makes your space feel and appear bigger! For a workout area, It really doesn't take much. A 5 ft x8 ft area of floor space is all you need to lay down a yoga mat - unlimited possibilities for body weight exercise routines. Even more possibilities when you add in some free weights! You really don't even need a yoga mat if you've got a carpeted floor in your bedroom or living room. The Department of Health and Human Services recommends at least two days per week of strength training and at least 30 minutes of physical activity per day. Recent studies have shown that the 30 minutes can be broken up into chunks throughout the day. Fifteen minutes in the morning and fifteen at lunch - you're the boss. We all know that physical activity is great for our body, and stretching in the morning (or at any time, if you're not a morning person!) improves clarity of mind and flexibility. Take care of your body: increase your energy levels and help prevent injuries with stretching and exercise.
Designate a space for daily stretch sessions (10 minutes in the morning is just fine!) and for exercising.
Commit to an exercise routine that works for you and your schedule. There are many tools out there, but if you need some specific routines for getting started, don't hesitate to ask me!
Consistently keep your floor areas clean and clear of clutter.
4) An orderly home makes entertaining a real possibility, leading to more interpersonal relationships and improved mental health.
Have you ever avoided inviting someone over to your apartment or house for fear that it wasn't good enough (too cluttered, too messy, or just not "presentable")? What if your home radiated coziness and tidiness? It's amazing what organizing and tidying up your space can do for your attitude about having guests over. You no longer dread having people over for fear of not being able to find where to seat them. On top of that, you know exactly where those pretty dishes are that you've been keeping for entertaining, and can access them with ease. You're less uptight when friends come over because you don't fear them opening a cabinet and judging the contents. Also, cleaning up after entertaining is a breeze when you know exactly where things go. As an extra perk, new friendships are formed and existing ones are strengthened. Your home may just become your friends' next favorite hangout spot.
When inviting friends over, ask them to bring snacks or sides to whatever you are considering serving to lessen the preparation burden. If they're great friends, they might even help you clean up afterwards!


text:
Login and narrow your search. If you have fewer than 200 results, you can save your search.
Narrow Your SearchRefine Search
Search All Towns
Welcome to the Monadnock Region, the "Currier and Ives" corner of New Hampshire. Located in the heart of New England, within easy distance of the major urban areas of the East, you'll find the quiet village greens, tall white church steeples, rambling stone walls, rolling hills and dales, and rural countryside as you've pictured it.
Towns in the Monadnock Region of New Hamphisre include:
Antrim, Bennington, Dublin, Francestown, Greenfield, Hancock, Harrisville, Jaffrey, Lyndeborough, Peterborough, Rindge, Sharon, Temple
10 Sort By NewestPrice Low to HighPrice High to LowMLS NumberRecently UpdatedAvailability Date
Greenfield, NHR1-2 Muzzy Hill Road
7.8 million yards of gravel on this land. There were borings done in 2018 which are available. The property is accessed by 2 roads. One being Dodge Road a paved road in Bennington, which goes to the lower part of the land and abuts another gravel pit. The road is a Town Maintained road until it gets to the Greenfield line, then is a class 6 road which you need to go apx. 200 feet to get to this land. The other access is Muzzey Hill Road in Greenfield. Take the road all the way to the end, which is a Town Maintained Gravel road. When you get to the last house, you go another 3-400 feet to the land. The frontage on this side is also not town maintained, however I drove my Cadillac to the land on both entries of the land. The 2 roads that accesses this land connect, but are Class 6.
Listed by James Goddard of Coldwell Banker RB
Zoning GRD
7.8 million yards of gravel on this land. There were borings done in 2018 which are available. The property is accessed by 2 roads. One, Dodge Road a paved road in Bennington, which goes to the lower part of the land and abuts another gravel pit. The road is a Town Maintained road until it gets to the Greenfield line, then is a class 6 road which you need to go approx. 200 feet to get to this land. The other access is Muzzy Hill Road in Greenfield. Take the road all the way to the end, which is a Town Maintained gravel road. When you get to the last house, you go another 300-400 feet to the land. The frontage on this side is also not town maintained, however I drove my Cadillac to the land on both entries of the land. The 2 roads that accesses this land connect, but are Class 6.
Peterborough, NH307/290 Windy Row Road
Overlook Farm is a magnificent gentleman's farm on 89 acres in the beautiful Monadnock region of New Hampshire. The main house is an outstanding brick colonial with fine craftsmanship and detail including wide pine flooring, built ins, coffered ceilings and multiple fireplaces with 6 bedrooms and 7 baths. Several out buildings include a quaint guesthouse with 2 bedrooms/2 baths and the "Main Barn" has been converted into a wonderful entertainment space with glass walls, commercial kitchen and superb furnishings. The grounds are amazing, plantings for extensive gardens are grown from seed in the on site greenhouse and compliment the beautiful stone walls, 3 ponds and tennis court. A grand silver maple in the center of the property is one of the largest in N.H. A large equipment barn has an office, studio apartment with plenty of storage for vehicles, equipment, livestock and feed. Overlook Farm hosts a breeding program for quality grass and grain finished Registered Polled Herefords. A variety of beef packages are available year round. Sheep and horses graze in separate pastures adding to this picturesque property, one of the most stunning farms in Southern N.H. Included with the main farm is a wonderful fully dormered cape with 2 bedrooms/2 baths with attached 2 car garage on 12 acres, located directly across the road. Peterborough is a special place that offers a wide variety of activities, great hiking, shopping on Main Street and The Peterborough Players Theatre.
Listed by Steven McDonough of Four Seasons Sotheby's Int'l Realty
Virtual TourSave FavoriteSchedule A VisitAsk A QuestionMore Details
Peterborough, NH10 Sharon Road
10 Sharon Road is a 56,640 +/- square foot corporate office and industrial building sited on 8.42 +/- acres in beautiful Peterborough, New Hampshire. This building was used by a national publishing company as a regional office headquarters with storage facilities and distribution areas. The office portion of the property totals approximately 31,152 square feet and the remainder of 25,488 square feet is industrial warehouse space with (3) loading docks and (2) at-grade drive-in doors. The Town of Peterborough is an attractive location for residential, commercial, and industrial development and business with several easy access roads to major transportation routes and air service at the Manchester Boston Regional Airport.
Listed by Bill Riffert and Colin Murdough of Bean Group / Portsmouth
Croydon, NH10 Loon Lake Campground Road
Loon Lake Campground and Function Lodge is a beautiful business now being offered for sale. 4,168 feet of waterfront and 40 acres of well maintained land & buildings, is the only exclusively "seasonal" campground in the Dartmouth/Lake Sunapee region A lovely 63 acre private man-made lake is the backdrop for the 102 sites with full hook ups for all sites. This campground has enjoyed full occupancy for 14 years. A 3200 square foot Function Lodge has hosted many a wedding or special event. There is a year round, 2 bedroom, 2 bath residence located on the property for owner, manager or short term rental possibilities. A large 2,500 square foot garage is used for storage and maintenance. A 576 square foot bath house offers showers and rest room facilities. Campground events are hosted in the 900 square foot gazebo. Swimming, canoeing, kayaking sailing and fishing are enjoyed in this peaceful oasis for campers and visitors alike. Wonderful fishing abounds in this private (no public access) lake that is stocked with warm water species of fish. A large, sandy beach is the jewel of the campground and playground area along with an overlook from the horseshoe pits above. Close to Sunapee Mountain Ski/Recreation and New London,NH which boasts many recreational and cultural offerings. Seller is Realtor with interest in the property.
Listed by Debbie Goodwin of C.G. Shepherd Realty, LLC
Croydon, NH6 Loon Lake Campground Road
Spectacular opportunity to own a lovely ranch home with 1400 square foot floorplan, 4,168 feet of waterfront, large sandy beach and 40 acres of well maintained land & buildings situated on a private 63 acre man-made lake. Swimming, canoeing, kayaking sailing and fishing are enjoyed in this peaceful oasis. Wonderful fishing abounds in this private (no public access) lake that is stocked with warm water species of fish. A seasonal, owner operated campground with 102 full hook up sites and a 3,200 square foot Function Lodge, 2,500 square foot garage, 576 square foot bath house and 900 square foot gazebo are all included with this year round residential house. Close to Sunapee Mountain Ski/Recreation and New London, NH which boasts many recreational and cultural offerings. Square footage listed above is for all buildings on property. Seller is Realtor with interest in the property.
Newport, NH2 Croydon Brook Road
Secure in its unmatched setting of over 100 acres of protective field and forest land ...is one of New Hampshire's most elegant and historic estates ...remodeled in the late 1800's by Austin Corbin, a dynamic self-made millionaire who was known as the "Father of the Banking Industry" and founder of the nearby 25,000 acre Corbin Park hunting preserve and Blue Mountain Forest Association. Offering views of Mt. Sunapee and distant hills, flanked by the Sugar River and accessed by a covered bridge, the hilltop residence offers exquisite living space including a 51 foot great room gallery with gilded ceiling, exotic walnut and mahogany detailing and massive fireplace hearth, ornate mahogany bar with curved gilded paper ceiling, elegant paneled reception hall with fireplace and sitting room, modern kitchen with wet-bar pantry, large master suite with delightful sleeping porch, newly installed elevator, central air conditioning, three-car attached garage. Property also includes four bedroom guest house, to be sold subject to life tenancy agreement to caretaker. Several additional outbuildings include gentlemen's library, heated workshop and a wonderful three level 40 x 45 barn with lower level vehicle storage, large heated office with lavatory, 16' ceilings and full storage attic. Additional land available. A singular country retreat and magnificent personal domain!
Peterborough, NH127 Windy Row
Newly updated and improved, this gracious Gentleman's Farm on its prestigious site spanning approximately 144 investment quality acres, awaits your inspection. Meticulously maintained residence, barns and outbuildings are surrounded by prime open land offering broad regional views. Established riding and nature trails nearby, fenced pastures, broad stone walls. A country domain...just minutes drive from Peterborough village center...a rare find indeed! Property to be sold i "current use" taxation status. Also available subject to town subdivision approval-with 8.33 acre+/- parcel, see MLS listing 4746374 A unique and desirable property in a prime rural location...just minutes from Peterborough village center!
Peterborough, NH21 Gray Hill Road
Miles of dense New England forest, with 3200 foot high Grand Monadnock in the far distance, is the view from the covered slate terraces and many paned windows of this handsome, two story Dutch Colonial estate located just minutes drive from Peterborough village center. Approached by a private drive lined with laurels, this beautifully preserved and updated residence, which was home to the inventor of Monopoly, George Parker also served as the original model for the Clue board game, is attractively set on an over 19 acre privacy ensuring parcel of encompassing broad stone wall bound fields and extraordinary formal gardens. Built c.1790 with major additions in 1925 by the Parker family, the property includes a twelve room, three and one half bath Main House, featuring a c.1769 Samuel McIntryre staircase, originally in the Watson-Parker house in Salem, Massachusetts, a four bedroom two bath guest house, previously a wing of the original 1790's farmstead, Detached 35x35 heated garage barn, woodshed, equipment shed, additional outbuildings including original ice house and hand made tree house. The South and North formal gardens include fountains and statuary, formal rose bushes dating from 1938, a fenced vegetable garden with screen house gazebo, waterfalls, mature plantings and vintage stone sitting areas. A one of a kind country estate...rich in history and such graceful dignity as is seldom seen. Additional land available...
New Ipswich, NH61 Appleton Road
Active With Contract
Attractive 23 Unit Apartment Investment with a huge upside potential. Single 23-unit building on 3 acres. Year 2018 financials are below market rents: $165,439 Gross, $86,994 NOI. Property has a large off-street paved parking lot. Unit mix is 12 / 2-bedroom, 11 / 1-bedroom Apts. Tenant paid heat and electric, Landlord paid hot water. Good rental history, well maintained and well managed, onsite laundry.
Listed by Ronald Fredette of Keller Williams Realty-Metropolitan


text:
LegalFling To Use BlockChain Technology To Log Explicit Sexual Consent
Posted: Jan 10 2018, 1:07pm CST | by Luigi Lugmayr , Updated: Jan 11 2018, 2:16am CST , in Technology News
Creative use of BlockChain technology in answer developments in Sweden.
Today, Dutch software company LegalThings One, a company specialized blockchain technology and smart contracts announced the LegalFling app. The app is designed to conveniently log explicit sexual consent. The app appears to be the right solution for the implications of Sweden's plans to change the rape legislation, requiring the explicit consent of both partners before sexual contact.
Sweden is moving closer to making changes to its rape laws that would require people to get explicit consent before sexual contact. But changing the law is not enough. To make the law succeed, it also requires an easy way to legally document the consent. The app LegalFling is a smart solution for the practical implications of the law in people's daily lives according to LegalThings One.
Rick Schmitz, CEO of LegalThings and creator of Legal Fling: "Asking someone to sign a contract before having sex is a little uncomfortable. With LegalFling, a simple swipe to consent is enough to legally justify the fling."
The law proposed in Sweden is a great gesture but is merely symbolic as it is, in the absence of witnesses, usually impossible to prove that there was an agreement or not. LegalFling proposes to use the Blockchain technology to solve this. You ask for consent through the app and indicate upfront what the do's and don't are in the bedroom. You accept or decline with the swipe of a finger. A lot easier than putting on protection.
In case you agree to take pictures in the bedroom, you can also explicitly agree that none may be shared at any time with anyone afterward. LegalFling attaches a penalty clause to this agreement. This makes taking your fling to court later a lot easier.
"This probably does not apply to 99.9% of the users. But please bear in mind this can happen to anyone. And you are totally helpless when it happens. The (social) life of the subject person is never the same afterward. This app provides a helping hand for these situations.", says Schmitz.
Legal Fling is based on the company's Live Contracts, a platform for building and executing legally binding agreements on the blockchain. The LegalFling app will be free for iOS and Android. The company is testing the response of the public to the app. If enough people support it on Legalfling.io.
Don't miss these new Technology News Reports
Oculus Go VR headset's price permanently slashed by $50
1 day ago, 6:49am CST
Mario Kart Tour to roll out multiplayer mode beta to all users
G.I. Joe: War on Cobra strategy game now available for Android and iOS devices
Monopoly Game: L.O.L. Surprise Edition Board Game now available
Sony to debut new fiber Triporous for textile and apparels at ISPO Munich 2020
Lowe's unveils NFL community 'Lowe's Hometown' for Super Bowl 2020
Luigi Lugmayr
Manfred "Luigi" Lugmayr (Google+) is the founding Chief Editor of I4U News and brings over 25 years experience in the technology field to the ever evolving and exciting world of gadgets, tech and online shopping. He started I4U News back in 2000 and evolved it into vibrant technology news and tech and toy shopping hub.
Luigi can be contacted directly at ml[@]i4u.com.
Get the Free Tracker App to find a SNES Classic in Stock


The eejitus youlookyumium likes to make friends. It may look cute but it is a devious hunter using its large amount of charm to befriend it's prey before using its large amount of teeth to chomp down on them. Shame really as it hosts some awesome parties…..


text:
Campaign success: Sainsbury's told to stop advertising 'Fairly Traded' non-Fairtrade tea
Sainsbury's supermarket has been ordered to stop using the misleading 'Fairly Traded' label in adverts for its own-brand tea, in a campaign victory for Co-operative Party MPs, activists and campaigners this Fairtrade Fortnight.
Archived: Ben West Communications & Digital Officer
Blog Westminster International Development & Affairs
The Advertising Standards Authority (ASA), which regulates adverts and packaging, ruled that adverts featuring Sainsbury's 'Fairly Traded' tea has the potential to mislead consumers, by implying that the tea was in fact Fairtrade Certified when it is not.
As we reported in November, last year Sainsbury's withdrew its tea from the official Fairtrade scheme, instead opting to set up its own internal ethical standards which it labelled as 'Fairly Traded'.
At the time campaigners pointed out that Sainsbury's labelling lacked the transparency and accountability of Fairtrade, and amounted to the supermarket piggybacking on consumer recognition of fair trade, while ducking the standards and certification fees paid to the Fairtrade Foundation which administers the official scheme.
As one of the UK's largest Fairtrade retailers, there are fears that Sainsbury's apparent loosening of its commitment to Fairtrade could threaten the integrity of the label, as well as confusing consumers as to what the standards mean.
Co-operative Party MPs, led by Stella Creasy and Stephen Doughty have been instrumental in challenging what they dub 'fauxtrade' tea, working in partnership with Labour colleagues including Holly Lynch and other members of the cross-party Fairtrade APPG to draw attention to the issue.
Since November, thousands of party members and supporters have also signed a petition calling on Sainsbury's to reverse the decision. While the supermarket has not yet agreed to resume Fairtrade certification of its tea, today's ruling presents a huge opportunity for it to do the right thing and to restore its well-earned reputation as a champion of fair trade.
Commenting on the ruling, Co-operative MP Stella Creasy said:
This ruling should be a wake-up call for Sainsbury's that backing out of the Fairtrade movement and pretending its Fairly Traded tea is the same won't wash – the ASA agree how Sainsbury's present its products will confuse consumers. Put simply, its 'fauxtrade' tea is not the same thing and consumers deserve the right to know.
Today the ruling on our complaint about @sainsburys #fauxtrade scheme has been made public as upheld by advertising standards authority- their pretence that their tea is ethically sourced to consumers to the standard of @FairtradeUK. It's not and shouldn't be marketed as such. https://t.co/nGMvpw57UJ
— stellacreasy (@stellacreasy) March 7, 2018
Fairtrade Fortnight debate in Parliament
Separately,Geraint Davies MP led Co-operaitve MPs in a debate in Parliament today to mark Fairtrade Fortnight. He joined with MPs of all parties in drawing attention to the enduring strength of the Fairtrade label and the positive impact it makes on the lives of the World's poorest.
https://twitter.com/GeraintDaviesMP/status/971357341609324544
Building on the Party's campaign 'Don't Make the World's Poorest Pay for Brexit', Davies also secured assurances from the government's International Development Minister Harriet Baldwin MP that trade deals pursued by the UK post-Brexit will uphold existing protections for developing countries. Baldwin's comments are warmly welcomed, and we look forward to hearing them reiterated by her colleagues across government.
So with action in parliament, beyond and by members across the country, voices across the Co-operative Party are using this year's Fairtrade Fortnight to celebrate the success of Fairtrade and to champion a fair deal for the world's poorest.
Ask Sainsbury's to reverse its decision to scrap Fairtrade on its own-brand tea


text:
Tourism Brochure
It's time to celebrate in the City of Newburgh! On Thursday, September 28, City officials, community partners, and press gathered at the Captain David Crawford House to formally launch a new tourism brochure, "Experience! Newburgh." The full-color, illustrated "cultural heritage brochure" is filled with information on the City's history and architecture, and includes points of interest and maps. The event was hosted by the Historical Society of Newburgh Bay and the Highlands.
"Now, with increased attention focused on Newburgh's renaissance and all that the City has to offer, the time is right to provide a brochure and map detailing the historic, architectural, and natural gems in Newburgh," said Mayor Nicholas Valentine.
Recognition was given to Senator William Larkin for his assistance in obtaining funding for the brochure, and to Central Hudson Gas and Electric, Tom Daley, Ellen Epstein, the Historical Society of Newburgh Bay and the Highlands, the late Bob Goodbread and his wife, Vivian, Roberta Hanson, Jim Hoekema, George Linton, Tom Knieser, Ed McCarthy, Records Management Officer Betsy McKean, City Historian Mary McTamaney, Karsten Staiger, Linda Thomas, Bud Whitaker, Daniel Muñoz of the Orange County Water Authority, and Sue Young, owner of Design by Sue on Liberty Street, who designed the brochure.
The land that would become the City of Newburgh was first glimpsed by Henry Hudson in 1609. In 1709, Queen Anne of England gave refuge to Palatine Germans fleeing the armies of Louis XIV. Finding the land ill-suited for farming, the settlers were replaced by those interested in river commerce; soon all roads led to Newburgh, which collected the bounty of the region to be shipped on the Hudson River.
In the 19th century, Newburgh grew and thrived as a major hub of shipping, commerce and culture. The nation's premier artists and architects, captivated by the Hudson River vistas and the charisma of the country's premier landscape architect, Andrew Jackson Downing, flocked here, along with dignitaries, statesmen, and scientists. In 1835, architect A.J. Davis designed the Dutch Reformed Church (now a National Historic Landmark), as a testimony to the "taste, discrimination and sense of classical beauty of the inhabitants of Newburgh." In 1953, Look Magazine designated the City of Newburgh an "All-America City."
Some 20 years later, the City of Newburgh, along with municipalities across the country, suffered the devastation of a changing economy. Residents and businesses migrated to the suburbs. The river and rails were replaced as commercial thoroughfares by major highways. Factories, homes, and other buildings were left to decay, and were demolished during Urban Renewal. Yet, plenty of the City's historical and architectural gems remain, and can be found within the pages of the brochure.
The City's renaissance is well underway. The renovated waterfront boasts world-class restaurants, art galleries and shops, and businesses large and small are popping up throughout the City. Young professionals and a cadre of artists have discovered what keeps long-time residents here- Newburgh's affordability, potential, and charm. Major newspapers throughout the state confirm the City's rebound.
"Experience! Newburgh is a celebration of our unique history, culture, diversity, and our progress," said City Manager Jean-Ann McGrane. "We want everyone to think of the City of Newburgh as a destination, whether it's for a day trip, a weekend, or a place to make a home."
In July 2006, the City of Newburgh published a fold-out color tourist brochure, with detailed maps, photographs, and text describing trails through the city, its heritage sites, parks, statues and cemeteries.
You can download sections of the brochure below. Print them out and take them with you!
Explore Newburgh (PDF)
Newburgh Heritage Map (PDF)
Newburgh Parks and Trails Sitesmap (PDF)
Summer 2015 Tourism Brochure (PDF)
European Settlement
A.J. Downing
Later 19th Century
The Post-War Years
Newburgh Today
Downing Park
Downing Park Planning Committee
Park Amenities & History
Map of Newburgh (PDF)
Pedestrian & Bicycle Law (PDF)
Preservation Association
Charrette 2002
Eye-Spy Coloring Book
Project Chronology
Project Files & Maps
Quassaick Creek Amenities
2012 Scrapbooks
2012 Arbor Day Tree Plantings
2012 International Festival
2012 Newburgh Rowing Club Shoreline Regatta
City Council Honors NFA Track Teams
City Hosts Rabies Clinic
GNP Clean & Green Event - September 17, 2012
Habitat for Humanity Home Builders Blitz 2012
HMS Bounty Pirate Weekend
July 4th, 2012 Celebration Highlights
Newburgh Fire Department & Technical Rescue Team
NFA Solar Racing Team Receives "Key to City"
Police Community Basketball Game
Youth Pride Day 2012
2014 Newburgh Illumination
2016 Newburgh Illuminated
Video Tour of Newburgh


Tags: Germany, photovoltaic panels, renewable energy, solar energy.
Tags: energy efficiency, energy-efficient home, energy-efficient technology, Green Building Council, ground source heat pump, LEED, National Institute of Standards and Technology, net zero energy test facility, NIST, photovoltaic panels, US Department of Commerce, US Department of Energy, US Green Building council, zero energy home.
Tags: Andreas Gutsch, battery, Competence E project, energy storage, Karlsruhe Institute of Technology, KIT, photovoltaic panels, solar energy, solar power.


text:
Q: Xcode, Swift Could not cast value of type '__NSCFNumber' (0x7fff87c511a0) to 'NSString' (0x7fff87d0eee8) Im facing with error : Could not cast value of type '__NSCFNumber' (0x7fff87c511a0) to 'NSString' (0x7fff87d0eee8).
the line : self.setNewMessagesCount(newMessagesCount: Int((Response["newMessagesCount"] as? String)!)!)

what im doing wrong? (im using newer version of xcode)
thank you for help and have a good day! :)

A: The phrase Int((Response["newMessagesCount"] as? String)!)! means:

*

*look up the value for the key "newMessagesCount" in Response;

*check whether that's a String, if so then keep a String reference to it, otherwise keep nil;

*the first ! then says "oh, but I assume I didn't get nil even though I allowed for it just then, act as if I definitely have a reference to a String now, otherwise raise an exception";

*the Int wrapping then attempts to parse what you've now guaranteed is a String to an Int;

*the final ! then basically says: assume that conversion definitely worked, and raise an exception if not.

So you might at least neaten that to:
Int(Response["newMessagesCount"] as! String)!

... but it looks like you're parsing content you've received from elsewhere, so actually the error is in using ! at all, anywhere, since you're failing to validate your input.
You probably want something more like:
if let newMessagesCountResponse = Response["newMessagesCount"] as? String,
   let newMessagesCount = Int(newMessagesCountResponse) {
   print("\(newMessagesCount) new messages")
} else {
   print("newMessagesCount wasn't present in the dictionary,",
         "or its value wasn't a string,",
         "or the string couldn't be parsed as an int")
}


text:
Q: Cannot become the key window after setting the window to a fake full screen on OSX 10.6.8 My application initially had a window (Def). Then it spawned a new window (New). All the two windows can be switched from the Window sub menu item or by the space control.
But if I tried to set the "New" window to a fake full screen mode on OSX 10.6.8, there would be a problem that if I switched to the "Def" window either by menu or space control. I cannot "fully" switch back to "New" window.
     // setting a fake full screen window on 10.6.8
     NSApplicationPresentationOptions prereqOptions =
        NSApplicationPresentationAutoHideDock |
        NSApplicationPresentationAutoHideMenuBar;
     [[NSApplication sharedApplication]
        setPresentationOptions:prereqOptions];

     [[self window] setToolbar:nil];
     [[self window] setStyleMask:NSBorderlessWindowMask];
     [[self window] setFrame:[[NSScreen mainScreen] frame]
                     display:YES];

The "fully" means I can see the "New" is brought to the top of screen, but the window controller cannot receive the notification "NSWindowDidBecomeKeyNotification". Furthermore, by
[NSApp keyWindow], I can see the key window is always the "Def". And I can always see the "Def" is checked in the Window submenu.
Anyone had ever encountered this issue?

A: Finally after 2 days investigation, the answer goes back to the documentation of NSWindow.
There are two related methods.

*

*(BOOL)canBecomeKeyWindow
  Return Value
  YES if the window can become the key window, otherwise, NO.

  Discussion
  Attempts to make the window the key window are abandoned if this method returns NO. The NSWindow implementation returns YES if the window has a title bar or a resize bar, or NO otherwise.

And

canBecomeMainWindow
  Indicates whether the window can become the application's main window.

*

*(BOOL)canBecomeMainWindow
  Return Value
  YES when the window can become the main window; otherwise, NO.

  Discussion
  Attempts to make the window the main window are abandoned if this method returns NO. The NSWindow implementation returns YES if the window is visible, is not an NSPanel object, and has a title bar or a resize mechanism. Otherwise it returns NO.

So the conclusion is that if the window doesn't have a title bar or resize bar, it by default cannot become a main and key window. When setting the window to the fake full screen on 10.6.8 by [NSWindow setStyleMask:NSBorderlessWindowMask], the title bar is gong.
To resolve this issue, one needs to override the above 2 methods with returning YES.


text:
Posted inCalendar+Scene, The Scene
Homegrown Concert sold out despite the storm
by Erica Jackson August 15, 2009
"God must like country music," Dierks Bentley quipped to the sold-out crowd at Thursday night's Homegrown Concert at Family Circle Stadium. Indeed, the afternoon downpour seemed to be letting up, and a rainbow reached across the sky. But alas, the rain did not stop all night.
Luckily, concert-goers really, really liked the handsome country star and Darius Rucker, host of the annual event. The packed stands were unusually colorful, as fans in bright rain-gear shrugged off the storm. The less-prepared folks just seemed to embrace the wetness and enjoyed the show as if it were perfect weather.
But enough about the rain. Darius Rucker took the stage briefly at the beginning of the show, thanking the crowd for coming out, reminding us of the reason for the event (supporting Charleston County Schools students), and introducing Dierks Bentley.
The curly-haired crooner, quite the sex symbol among country music fans, gave an energetic performance of favorite songs like "Lot of Leavin' Left to Do," "Free and Easy (Down the Road I Go)," and "Settle for a Slow Down," during which he used the drama of the rain to great effect. He spoke of his love for Charleston, admitting that he'd sang at Henry's the night before, and no one had even recognized him. (For shame!) Dierks wrapped up the set with a few acoustic songs, including "My Last Name," then got the crowd amped with his cheeky super-hit "What Was I Thinking."
While we waited for Darius to come on, the rain seemed to be letting up, and we lowered our umbrellas for a bit … until he took the stage and it started up again in earnest. At that point, most folks were soaked anyway, and gave up on trying to stay dry. The crowd's mood stayed high as Darius played mostly songs from his platinum-selling country album, Learn to Live. Not surprisingly, single "Don't Think I Don't Think About It" was a huge hit with the crowd.
Tagged: Darius Rucker, Dierks Bentley, Family Circle Cup Stadium, Homegrown Concert Series, Live Reviews, scene