This invention relates to pipe lining apparatus wherein a protective coating of mortar or similar material in plastic condition is applied to the interior of a pipe and more particularly to a troweling means for smoothing the surface of such an interior coating directly after the same has been applied to or deposited against the interior wall of a pipe. Such troweling means are generally known in the art as drag trowels and are usually frustoconical, having small leading ends and larger trailing ends. The trowels are commonly connected to the rear ends of mortar applying machines to be drawn through the pipe thereby.
The prior art contains a number of examples of sheet metal frustoconical trowels for the general purpose of smoothing an interior mortar coating by pulling the trowel through a pipe wherein such mortar has been applied to the interior surface of the pipe. The trowel is drawn through the pipe with its small end first and the large or trailing end of the trowel which performs the mortar-smoothing function is necessarily resilient and must be readily expansible and contractable in a diametral direction while still generally retaining its circular form or tending to maintain such form even though local conditions may cause the large troweling end of the trowel to assume somewhat elliptical or other distorted forms temporarily.
Since trowels of this type are drawn through a pipe under conditions where the operation of the trowel cannot be observed during its functional periods, the necessity for safe, accurate and foolproof operation and self-adjustment for various physical conditions which are encountered by the trowel in its passage through a pipe is of great importance.
The present invention is concerned particularly with the means for applying resilient expansive forces to the large trailing end portions of frustoconical trowels of this general type. A considerable variety of trowel expanding arrangements are found in the prior art. Representative examples will be found in Perkins U.S. Pat. No. 2,924,867 and Ruegsegger U.S. Pat. Nos. 3,257,698 and 3,257,699. It is believed that the closest approach to the trowel expansion means of the present invention is found in Barton U.S. Pat. No. 3,263,296 wherein an expansion coil spring is disposed within the large end of the trowel at and extending across each overlap of the trowel plate or plates for applying expansive forces thereto. Such a coil spring is, by its nature, not readily adjustable as to the expansive force which it exerts and, furthermore, is apt to become fouled by dried mortar so that its operation is not uniform and reliable and may in certain cases be more or less entirely useless by reason of the presence of dried mortar in the coils of the spring or other operating parts.


name: linux
on: [push, pull_request]
jobs:

  build:
    name: build
    runs-on: [ ubuntu-latest ]
    steps:
    - name: Check out code
      uses: actions/checkout@v1

    - name: Install mbedTLS
      run: sudo apt-get install libmbedtls-dev

    - name: Install ninja
      run: sudo apt-get install ninja-build

    - name: Configure
      run: mkdir build && cd build && cmake -G Ninja -D NNG_ENABLE_TLS=ON ..

    - name: Build
      run: cd build && ninja

    - name: Test
      run: cd build && ctest --output-on-failure


Twitter is hiding a tweet from the official Drudge Report account that features President Trump’s 2020 campaign slogan, “Keep America Great.”

https://twitter.com/AmandaLeeHouse/status/972646798123847680

When Twitter users navigate to the page of the Drudge Report with their “sensitive content” filter enabled, they are unable to see the Drudge Report’s full tweet. For new Twitter users, the “sensitive content” filter is enabled automatically and has to manually switched off. Instructions on how to do this can be found at the bottom of this piece.

President Trump revealed his new slogan, “Keep America Great,” at a recent rally in Pennsylvania.

Breitbart News recently reported on Twitter filtering tweets from President Trump and his son, Donald Trump Jr. The filter appears to be triggered whenever anyone (including the President of the United States) retweets the Drudge Report. Users navigating to the official account of the Drudge Report, will find that all tweets from the account that contain URLs are hidden behind the same “sensitive content” warning message. When the President – or anyone else – retweets the account, their tweets are hidden too.

Twitter has now placed itself in a position where it is hiding tweets from the President if they contain links to one of the web’s top conservative news sites, in addition to hiding tweets from the Drudge Report that quote the President’s 2020 campaign slogan.

Users who wish to ensure that they continue to see all tweets from the President, Donald Trump Jr. and @DRUDGE_REPORT will have to manually disable their content filter. This can be done by unchecking the box marked “hide sensitive content” in your safety settings.

You can follow Allum Bokhari on Twitter, Gab.ai and add him on Facebook. Email tips and suggestions to allumbokhari@protonmail.com.


Improved survival in central nervous system aspergillosis: a series of immunocompromised children with leukemia undergoing stereotactic resection of aspergillomas. Report of four cases.
Central nervous system (CNS) aspergillosis remains a daunting diagnosis. This opportunistic mycosis historically carries a mortality rate approaching 100% in immunocompromised patients, with death ensuing within days after the onset of neurological symptoms. From their literature review, the authors concluded that children contracting CNS aspergillosis while undergoing systemic chemotherapy for leukemias represent a particularly unfortunate prognostic group. Antifungal medications prove ineffective for treating CNS aspergillosis in patients immunocompromised because of their chemotherapy regimens. In contrast, withholding chemotherapy to reverse immunosuppression, thereby improving the efficacy of antifungal medications, allows for progression of the primary leukemic disease. The authors present a series of four immunosuppressed patients whose course of treatment for leukemia was complicated by CNS Aspergillus sp. abscesses. Multiple cerebral fungal abscesses developed in two patients and a single cerebral abscess developed in two. All four patients underwent frameless stereotactic resection of the aspergilloma. All children later experienced resolution of their CNS infections and full neurological recovery. At 2- to 4-year follow ups, one patient has died of leukemia and the other three continue to thrive without evidence of recurrent aspergillosis. Given the grave natural history cited in the literature for this disease when medical treatment is instituted alone, the authors stress the crucial role of stereotactic neurosurgery for the intelligent treatment of immunocompromised children suspected of harboring a CNS aspergilloma abscesses. The authors propose that the goal for successful treatment in these patients should be gross-total resection of the abscess, its wall, and its capsule.


"Red flag" gun bill passes house

A new bill would allow law enforcement to temporarily take guns from people reported as a threat by family or friends. The bill has just passed the House and is now on its way to the senate.

The Lethal Violence Order of Protection Act says if someone is giving off certain "red flags" a family member can request a judge temporarily take that person's guns away. Red flags could include concerning social media posts or talk of self-harm.

“Every time we've had a serious shooting, a mass shooting, or you talk to someone after a suicide, they're like I saw it and I didn't do anything with it,” bill sponsor Rep. Kathleen Willis, D-Addison said.

If a judge agrees, law enforcement would be given a warrant to take that person's guns immediately.

The accused person has an opportunity to defend themselves before the judge, but, some gun advocates said that isn't enough.

"Anybody could come along and say, I don't like you, I don't like what you're doing, you have guns, I want you to stop,” gun owner Doug Schmidgall said. “And then they'll go file a complaint, a restraining order. Now I've got to go pay the fines and the fees and the legal stuff to get my guns back, when I didn't do anything wrong.”

Schmidgall said he thinks if someone seems to be a threat, law enforcement can address it without this bill.

"They're not just going to step if they know that you're a threat and let you go onto shoot somebody," Schmidgall said.

Along with temporarily confiscating a person’s guns, this bill would also terminate their FOID card for the time being.

"The goal of this bill is to get you the help you need so that you continue to have a long and happy life,” Rep. Willis said. “We don't want to be punitive, we want to be proactive."


10000 Satoshi Per Minute No Further a Mystery

10000 Satoshi Per Minute No Further a Mystery

Best Bitcoin Cloud Mining Services Options

In case you are deep into Ethereum intelligent contracts, Exodus can now ship 0 ETH transactions for all your fancy sensible deal operations.

Just after repeated grievances, the listing for BTC Miner is temporarily grayed out. If your developer has no explanation for that complaints, Will probably be taken off.

Bitcoin Cloud Mining is a way to mine Bitcoin without having possessing mining components. However, you should pick which type of cloud mining suits your desires best – Hosted or Acquired – for which you should compute just how much you might be prepared to devote And the way fast you want the Return on Financial commitment (RoI) to generally be, be cautious the upper the RoI The larger the risk of having ripped off! Joyful investing!

One of several fastest, best but also riskiest methods you may make cash with Bitcoin is by buying and selling it on an exchange. Basically you’re seeking to purchase Bitcoin when its value is very low and market it when the worth rises.

A substantial length of time learning how to trade And just how to beat the various threats associated with trading. Successful traders know they may lose revenue from the short-term but they look at it being an financial commitment in their training, considering the fact that They can be aiming for the long term.

Zcash is extra towards the exchange. You can now Trade any Exodus asset for useful site Zcash to further diversify your portfolio. To exchange for Zcash be sure to 1st take a look at the Configurations portion then simply click Belongings to show it on.

Top latest Five Top 10 Managed Account Platforms Urban news

A few locations around the world continued to report Bitcoin harmony problems following rescanning. Exodus has place supplemental servers in place to safeguard in opposition to this mistake.

A fix is set in position for purchasers reporting delays sending Ethereum Vintage. No a lot more aggravating timeouts, send and Trade And so forth to your coronary heart's articles!

Dsh Coin Wallet for Dummies

A reputable Bitcoin On line casino will are aware that their “household edge” is enough to generate a income and for that reason will want to verify to their gamers that they are not manipulating any benefits.

Dsh Coin Wallet for Dummies

The balance of your payment is owing 56 times (133 days for Polar visits) right before departure. Your invoice demonstrates the day your remaining equilibrium is owing and, In case you have booked instantly with Exodus and we have an email address to suit your needs, a reminder will probably be despatched out one to two months prior to this date. To pay, You should use any of the subsequent methods, quoting look at this website your reserving reference in all situations:

Deficiency of Manage and suppleness – tougher to control where to mine or when to provide the bitcoin miner.

If you wish to learn more details on trading, our resource portion below features a website link to a different online video that will provide Learn More you with the fundamentals.

The 2-Minute Rule for Dsh Coin Wallet

With several of those companies in the same nation, only a quantity of countries mine and export a significant quantity of bitcoins.

Naturally there are various approaches you could promote your affiliate website link – you can share it on Facebook, run advert strategies on distinct websites as well as set up your have data web site and market your back links in the articles.


Q:

Action and pass variable to all actions in symfony 1.4

I want to make some action (php script) before all actions in my frontend app and then pass a result from that script to actions in variable - so I can get variable value from all actions. Where should I declare sth like this?

A:

If the filter solution dont feet your needs, you can also create a base action class with a preExecute function:
// app/frontend/lib/baseActions.class.php

class baseActions extends sfActions
{
   public function preExecute()
   {
      $this->myVar = .... // define your vars...
   }
}

Then your module actions class extends your baseActions class:
// app/frontend/modules/myModule/actions/actions.class.php

class myModuleActions extends baseActions
{
   public function executeIndex(sfWebRequest $request)
   {
      // var $this->myVar is available in any action and in your template
      ...
   }
}

if you have to use the preExecute function in your module class action, remember to call parent::preExecute() in it.


Solar Structure

We are leading manufacturers and suppliers of Solar Structures .We have all type of solar structures and clamps readily available.

Solar Mounting Structures

We are providing structure solution for :

a) Ground Mounted Solar Plant

b) Roof –Top solar plant

c) Solar solution for industrial roof

d) Single and double pole hat on hat structure design allows for a faster manufacturing and easy installation on site.The design suits to any type of soil ranging from sandy lands to hard rocky hills.

We are also providing solar mounting structure with intelligent solutions of Seasonal tilt. It is the low cost alternative to tracker systems which facilitates the change in tilt angle to maximize the total annual incident irradiation and total annual energy yield.

Advantages :

Easy manufacturing process with dedicated assembly lines and teams

Adjustable elevation system for a South orientation

An optimized solution for a project specific customization

Significant savings on time and money

No need for earth levelling work, even if the terrain is uneven

Optimized array layout and minimized shading losses

Typical elevation angle of 10 to 20 degrees

Site-specific design, wind analysis and engineering support

Durable and certified to withstand heavy wind and rain loads

Range of solutions to customize for specific needs

Available in single post, dual post and many other variants

Optimized to incorporate ease of manufacturing

Five-year warranty, extendable to ten years

b) Roof-top solar

b.1) LOW ELEVATION BALLAST STRUCTURE

The structure of the systems with wind shield is specially designed (shaped as elongated triangle) for flat roof with limited load capacity. Attached wind shield produces aerodynamic effect making the system stable under big wind load and prevents the frame from overturning/lifting by high wind.

b.2) ELEVATED Dead Weight based STRUCTURE

The solution is advised for flat RCC roofs with shading issues. The structure solution name itself is self explanatory. These structures can be designed for ground clearance upto 1000mm and they can easily combat wind loads caused by winds upto 180 Kmph.

They can be customised for varied array combinations to accommodate 4-20 modules per structure. The tilt can vary from 5-35 degrees.

Solar Tracker

Product Description :

Principle of Operation :

The tracker basically calculates the astronomical position of the sun at any particular point of time at a particular location and controls the actuator accordingly to move the panel to the target angle. The calculation of the next target angle at the next target time is calculated and the tracker accordingly activates the output when the target time has been reached.

The calculation of the target angle depends upon the sunrise and sunset times for the particular date. The principle lies in that the sun moves from the east horizon from sunrise to the west horizon till sunset for a total of 180 degrees. The unit calculates the target angle according to the following limits:

If target angle < start angle then target angle = Start angle.

If target angle > end angle then target angle = End angle.

This ensures that the panel movement is restricted to the minimum/maximum angle set by the user for that particular structure. The panel will start moving in the morning only when the target angle exceeds the start angle .Similarly, in the evening, when the target angle calculated exceeds the end angle , the panel will remain at the end angle position till sunset. At 10 minutes after sunset, the tracker will move the panel to the horizontal position and retain it till the sunrise the next day when it will bring the panel to the start position.

Solar tracking system produce 15-25% more power than traditional solar plant.


I've split all of the OpenSSL and GnuTLS-specific code into their own
separate source files, to clean up some of the #ifdef mess that was in
tls.c before. This approach actually allows support for both to be
compiled in at the same time. I'll probably add an LDAP_OPT_X option to
select which implementation to use at runtime. (It might make sense to
make these dynamically loadable modules, but for now I don't want to
make libldap dependent on ltdl/dlopen/whatever.)

Hah. I was going to be submitting an ITS/patch later this week to add an
ldap.conf option (TLS_MIN_PROTOCOL) and a slapd.conf option
(TLSProtocolMin) for disabling use of either just SSLv2 or both SSLv2 and
SSLv3. I guess I'll wait until your changes go in and redo it against the
new layout.

(My patch only adds this for OpenSSL)

GnuTLS doesn't implement SSLv2, so it's kind of a moot point there.

There's one user-visible change: get_option(LDAP_OPT_X_TLS_SSL_CTX) now
returns a pointer to a privately defined structure. For GnuTLS this is
in fact the same behavior as before. For OpenSSL this is a change; it
used to return the actual (SSL *). If this is going to break something
of yours, holler now...

Ick. If the meaning of the option is going to change, please change the
name at the same time.

Yeah, it's pretty much ugly all around.

It may be best to reserve the old options exclusively for OpenSSL, and
introduce new options for the generic/private structure. This means code that
doesn't expect libldap to be built with GnuTLS will get failure results on
those options in that situation.


Alterations in the levels of ions in blood and liver of freshwater fish, Cyprinus carpio var. communis exposed to dimethoate.
The fingerlings of Cyprinus carpio var. communis were exposed to sublethal concentration of dimethoate for 7, 14 days to evaluate the impact of the pesticide dimethoate on different ions namely sodium, potassium, chloride, calcium, magnesium. The blood potassium, calcium, magnesium and liver chloride and magnesium levels were elevated under sublethal condition. The blood sodium, chloride and liver sodium, potassium, and calcium levels were found to be significantly decreased.


Q:

Does integration wrt to a differential form always come from a measure?

More precisely, is there an $n$-manifold $M$ with an $n$-form $\omega$ such that there is no measure $\nu$ on $M$ satisfying $$\int f \omega = \int f d\mu $$ for all compactly supported smooth functions $f$?
EDIT: More generally, assuming the answer to the above is yes, what if we have a $k$-form  $\omega$ ($k\leqslant n$)? Then for every oriented $k$-submanifold $S$ we have the functional $$f\mapsto \int _S f \omega,$$ so for every such $S$ there is a measure such that this is integration wrt it. But is there a single measure for all such $S$? I guess you'd have to say something about the orientation here...

A:

I am answering my own question because Aloizio Macedo answered it in the comments, and I don't want it to remain unanswered. (I hope this is OK).
$M$ is locally compact and Hausdorff and either $\int (\cdot) \omega$ or $-\int (\cdot) \omega$ is a positive linear functional*, so by Riesz Representation Theorem one of them comes from a measure.
*I'm not entirely sure I understand why one of them is positive, but I think it's probably an elementary fact of differential forms.
I still don't know if there's an answer to the more general question I asked.


Field of the Invention
The present invention relates to an injection molding system, and more particularly, to an injection molding system configured to insert a molding auxiliary member, such as an inlet or an insert member, into a mold to achieve injection molding.
Description of the Related Art
There is a known method in which a molding auxiliary member, such as an insert or an insert member, is inserted into a mold for injection molding in an injection molding machine.
Japanese Patent Application Laid-Open No. 6-39883 discloses a technique for an injection molding machine in which inserts are inserted into a mold for molding. This injection molding machine is designed to mold molded articles of different shapes by varying the respective internal shapes of the inserts to be inserted. If molding conditions for the individual inserts to be inserted into the mold are different, according to this technique, the different molding conditions are individually managed as separate molding condition files. If the inserts are frequently changed for molding, however, molding conditions unfit for the insert in the mold may possibly be set for molding, thereby producing defectives.
Moreover, Japanese Patent Application Laid-Open No. 9-201849 discloses a technique in which molding is performed after an insert member is inserted into a mold, whereby a molded article integral with the insert member is molded. According to this technique, a plurality of types of insert members are provided so that a plurality of insert-molded articles can be obtained for the individual insert members. However, different molding conditions for the insert-molded articles are individually managed as separate molding condition files. If a wrong insert member is inserted into the mold, therefore, mold failure or defective molding may possibly be caused.


Q:

Unable to get Quartz task to run in Spring web mvc

I am a developer returning back to Java after about 5 years of .NET experience. I am working on a web app project where I need to update a DB and make an http post every 15 mins. I have put together the following but although it shows me in tomcat, that a thread has been started to execute the Quartz job, it does not do anything. The Database is not updated. For the records, the JPA hibernate implementation that I have works. I have tested it because there is a CRUD form too.
For the scheduled task, I have two classes: I have a ContextListener class that will extend the ServletContextListener. It will be registered with the servlet container or AS and scheduled to start when it starts. In this case the AS is Tomcat 7.0.57. I also have a ApiKeyExpirationJob class that represents the job proper. I have also added some config to the web.xml file to instruc Tomcat to start the job whenever it starts.
ContextListener class, that initializes the job in the bounds of the context.
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.quartz.DateBuilder;
import org.quartz.DateBuilder.IntervalUnit;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.TriggerBuilder;
import org.quartz.TriggerKey;
import org.quartz.impl.StdSchedulerFactory;

import org.apache.log4j.Logger;

public class ContextListener implements ServletContextListener
{

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

    // Initiate a Schedule Factory
    private static final SchedulerFactory schedulerFactory = new StdSchedulerFactory();
    // Retrieve a scheduler from schedule factory (Lazy init)
    private Scheduler                     scheduler        = null;

    @Override
    public void contextDestroyed(ServletContextEvent arg0)
    {
        try
        {
            if (scheduler != null && scheduler.isStarted())
                scheduler.shutdown();
        }
        catch (SchedulerException e)
        {
                //LOGGER.error(e);
        }
    }

    @Override
    public void contextInitialized(ServletContextEvent arg0)
    {

        //LOGGER.info("----- Initializing quartz -----");
        try
        {
            scheduler = schedulerFactory.getScheduler();

            // Initiate JobDetail with job name, job group, and executable job class
            JobDetail jobDetail = JobBuilder.newJob(ApiKeyExpirationJob.class)
.withIdentity("db_refresher", "refresher")
.build();

           // Initiate SimpleTrigger with its name and group name.
           SimpleTrigger simpleTrigger = TriggerBuilder.newTrigger()
               .withIdentity(TriggerKey.triggerKey("myTrigger", "myTriggerGroup"))
               .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInHours(1).repeatForever())
               .startAt(DateBuilder.futureDate(15, IntervalUnit.MINUTE))
               .build();

           scheduler.scheduleJob(jobDetail, simpleTrigger);

           // start the scheduler
           //scheduler.start();

         }
         catch (SchedulerException se)
         {
              //LOGGER.error(se);
         }
         catch (Exception e)
         {
              //LOGGER.error(e);
         }
     }
}

ApiKeyExpirationJob class
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
//import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;

import com.google.gson.Gson;
import com.x.apimanager.exception.ApiNotFound;
import com.x.apimanager.model.Api;
import com.x.apimanager.service.ApiService;

@SuppressWarnings("deprecation")
public class ApiKeyExpirationJob implements Job
{
    /* private static final Logger           LOGGER           =
             Logger.getLogger(ApiKeyExpirationJob.class);*/

     @Autowired
        private ApiService apiService;
    // This is the method that will be called by the scheduler when the trigger fires the job.
    @Override
    public void execute(JobExecutionContext arg0) throws JobExecutionException
    {
        // Do you scheduled task here. This is usually the repetitive piece that runs for every firing of the trigger.
        //LOGGER.info("Executing scheduled job");
        List<Api> apiList = apiService.findAll();

        for(Api api : apiList) {
            //System.out.println(api.getApiKey());
            //final SimpleDateFormat df = new SimpleDateFormat( "dd/MM/yyyy HH:mm:ss" );
            final java.util.Calendar cal = GregorianCalendar.getInstance();
            cal.setTime( api.getCreatedDate() );
            cal.add( GregorianCalendar.MINUTE, 1 ); // date manipulation
            Date dateExpectedExpiryDate = cal.getTime();
            Date dateNow = new Date();
            if ((dateNow.compareTo(dateExpectedExpiryDate) > 1) || (dateNow.compareTo(dateExpectedExpiryDate) == 0))
            {
                api.setIsExpired(true);

                try {
                    apiService.update(api);
                    System.out.println("Updating API");

                    //post the entity as JSON
                    String postUrl=api.getUrl();// put in your url
                    Gson gson= new Gson();
                    HttpPost post = new HttpPost(postUrl);
                    StringEntity  postingString = new StringEntity(gson.toJson(api));//convert your pojo to   json
                    System.out.println(postingString.toString());
                    post.setEntity(postingString);
                    post.setHeader("Content-type", "application/json");
                    @SuppressWarnings("deprecation")
                    HttpClient httpClient = new DefaultHttpClient();
                    HttpResponse  response = httpClient.execute(post);
                } catch (ApiNotFound | IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
}

The web application uses the Java based configuration approach of annotations and a WebAppConfig class. This application config java files is shown below. I believe this may be were I am having challenges. Most examples I find online use the xml configuration approach but apart from converting some of the classes, I don't know how to map some other configuration attributes to this class.
import java.util.Properties;

import javax.annotation.Resource;
import javax.sql.DataSource;

import org.hibernate.ejb.HibernatePersistence;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.core.env.Environment;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;
import org.springframework.web.servlet.view.JstlView;
import org.springframework.web.servlet.view.UrlBasedViewResolver;

@Configuration
@EnableWebMvc
@EnableTransactionManagement
@ComponentScan("com.x.apimanager")
@PropertySource("classpath:application.properties")
@EnableJpaRepositories("com.x.apimanager.repository")
public class WebAppConfig {

    private static final String PROPERTY_NAME_DATABASE_DRIVER = "db.driver";
    private static final String PROPERTY_NAME_DATABASE_PASSWORD = "db.password";
    private static final String PROPERTY_NAME_DATABASE_URL = "db.url";
    private static final String PROPERTY_NAME_DATABASE_USERNAME = "db.username";

    private static final String PROPERTY_NAME_HIBERNATE_DIALECT = "hibernate.dialect";
    private static final String PROPERTY_NAME_HIBERNATE_SHOW_SQL = "hibernate.show_sql";
    private static final String PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN = "entitymanager.packages.to.scan";

    @Resource
    private Environment env;

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();

        dataSource.setDriverClassName(env.getRequiredProperty(PROPERTY_NAME_DATABASE_DRIVER));
        dataSource.setUrl(env.getRequiredProperty(PROPERTY_NAME_DATABASE_URL));
        dataSource.setUsername(env.getRequiredProperty(PROPERTY_NAME_DATABASE_USERNAME));
        dataSource.setPassword(env.getRequiredProperty(PROPERTY_NAME_DATABASE_PASSWORD));

        return dataSource;
    }

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
        entityManagerFactoryBean.setDataSource(dataSource());
        entityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistence.class);
        entityManagerFactoryBean.setPackagesToScan(env.getRequiredProperty(PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN));

        entityManagerFactoryBean.setJpaProperties(hibProperties());

        return entityManagerFactoryBean;
    }

    private Properties hibProperties() {
        Properties properties = new Properties();
        properties.put(PROPERTY_NAME_HIBERNATE_DIALECT, env.getRequiredProperty(PROPERTY_NAME_HIBERNATE_DIALECT));
        properties.put(PROPERTY_NAME_HIBERNATE_SHOW_SQL, env.getRequiredProperty(PROPERTY_NAME_HIBERNATE_SHOW_SQL));
        return properties;
    }

    @Bean
    public JpaTransactionManager transactionManager() {
        JpaTransactionManager transactionManager = new JpaTransactionManager();
        transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
        return transactionManager;
    }

    @Bean
    public UrlBasedViewResolver setupViewResolver() {
        UrlBasedViewResolver resolver = new UrlBasedViewResolver();
        resolver.setPrefix("/WEB-INF/pages/");
        resolver.setSuffix(".jsp");
        resolver.setViewClass(JstlView.class);
        return resolver;
    }

    @Bean
    public ResourceBundleMessageSource messageSource() {
        ResourceBundleMessageSource source = new ResourceBundleMessageSource();
        source.setBasename(env.getRequiredProperty("message.source.basename"));
        source.setUseCodeAsDefaultMessage(true);
        return source;
    }

    @Bean
    public org.apache.activemq.ActiveMQConnectionFactory connectionFactory() {
        org.apache.activemq.ActiveMQConnectionFactory connectionFactory = new org.apache.activemq.ActiveMQConnectionFactory();
        connectionFactory.setBrokerURL("tcp://localhost:61616");
        return connectionFactory;
    }

    @Bean
    public org.springframework.jms.core.JmsTemplate jmsTemplate() {
        org.springframework.jms.core.JmsTemplate jmsTemplate = new org.springframework.jms.core.JmsTemplate(connectionFactory());
        jmsTemplate.setDefaultDestinationName("apiqueue");
        return jmsTemplate;
    }

    /*@Bean
    public com.x.apimanager.scheduler.ContextListener contextListener(){
        com.x.apimanager.scheduler.ContextListener contextListener = new com.x.apimanager.scheduler.ContextListener();
        contextListener.
    }*/
    /* @SuppressWarnings("deprecation")
    @Bean
        public AnnotationMethodHandlerAdapter annotationMethodHandlerAdapter()
        {
            final AnnotationMethodHandlerAdapter annotationMethodHandlerAdapter = new AnnotationMethodHandlerAdapter();
            final MappingJacksonHttpMessageConverter mappingJacksonHttpMessageConverter = new MappingJacksonHttpMessageConverter();

            HttpMessageConverter<?>[] httpMessageConverter = { mappingJacksonHttpMessageConverter };

            String[] supportedHttpMethods = { "POST", "GET", "HEAD" };

            annotationMethodHandlerAdapter.setMessageConverters(httpMessageConverter);
            annotationMethodHandlerAdapter.setSupportedMethods(supportedHttpMethods);

            return annotationMethodHandlerAdapter;
        }*/
}

The Initializer class is below:
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

public class Initializer implements WebApplicationInitializer {

    private static final String DISPATCHER_SERVLET_NAME = "dispatcher";

    public void onStartup(ServletContext servletContext)
            throws ServletException {
        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        ctx.register(WebAppConfig.class);
        servletContext.addListener(new ContextLoaderListener(ctx));

        ctx.setServletContext(servletContext);

        Dynamic servlet = servletContext.addServlet(DISPATCHER_SERVLET_NAME,
                new DispatcherServlet(ctx));
        servlet.addMapping("/");
        servlet.setLoadOnStartup(1);
    }

}

I added the following to the web.xml file
<context-param>
    <param-name>quartz:shutdown-on-unload</param-name>
    <param-value>true</param-value>
</context-param>
<context-param>
    <param-name>quartz:wait-on-shutdown</param-name>
    <param-value>false</param-value>
</context-param>
<context-param>
    <param-name>quartz:start-scheduler-on-load</param-name>
    <param-value>true</param-value>
</context-param>
<listener>
    <listener-class>com.x.apimanager.scheduler.ContextListener</listener-class>
</listener>

evolving the final web.xml to the below
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

    <display-name>apimanager</display-name>
        <context-param>
        <param-name>quartz:shutdown-on-unload</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>quartz:wait-on-shutdown</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>quartz:start-scheduler-on-load</param-name>
        <param-value>true</param-value>
    </context-param>
    <listener>
        <listener-class>com.x.apimanager.scheduler.ContextListener</listener-class>
    </listener>
</web-app>

The above did not work even though tomcat started a thread each time it was started.
I then attemped to use the spring @Scheduled annotation to run the job. I added the job tasks to a void method (void ApiExpirationTask()) in my service class and annotated it with @Scheduled and added <task:annotaion-driven></task:annotaion-driven> to the web.xml file.
Service class
import java.io.IOException;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import javax.annotation.Resource;
//import javax.inject.Inject;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.google.gson.Gson;
import com.x.apimanager.exception.ApiNotFound;
import com.x.apimanager.model.Api;
import com.x.apimanager.repository.ApiRepository;

@Service
public class ApiServiceImpl implements ApiService {

    private static final int PAGE_SIZE = 5;

    //@Inject private ApiRepository apiRepository2;

    @Resource
    private ApiRepository apiRepository;

    public Page<Api> getApiLog(Integer pageNumber) {
        PageRequest request =
            new PageRequest(pageNumber - 1, PAGE_SIZE, Sort.Direction.DESC, "id");
        return apiRepository.findAll(request);
    }

    @Override
    @Transactional
    public Api create(Api api) {
        Api createdApi = api;

        createdApi.setIsExpired(true);

        //getting current date and time using Date class
       //DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
       Date dateobj = new Date();

        //createdApi.setCreatedDate(df.format(dateobj));
        //createdApi.setModifiedDate(df.format(dateobj));

        createdApi.setCreatedDate(dateobj);
        createdApi.setModifiedDate(dateobj);

        return apiRepository.save(createdApi);
    }

    @Override
    @Transactional
    public Api findById(int id) {
        return apiRepository.findOne(id);
    }

    @Override
    @Transactional(rollbackFor=ApiNotFound.class)
    public Api delete(int id) throws ApiNotFound {
        Api deletedApi = apiRepository.findOne(id);

        if (deletedApi == null)
            throw new ApiNotFound();

        apiRepository.delete(deletedApi);
        return deletedApi;
    }

    @Override
    @Transactional
    public List<Api> findAll() {
        return apiRepository.findAll();
    }

    @Override
    @Transactional(rollbackFor=ApiNotFound.class)
    public Api update(Api api) throws ApiNotFound {
        Api updatedApi = apiRepository.findOne(api.getId());

        if (updatedApi == null)
            throw new ApiNotFound();

        updatedApi.setApiKey(api.getApiKey());
        updatedApi.setUrl(api.getUrl());
        updatedApi.setModifiedDate(new Date());
        return updatedApi;
    }

    @Scheduled(fixedDelay=60000)
    @Transactional
    public void ApiExpirationTask()
    {
        List<Api> apiList = findAll();

        for(Api api : apiList) {
            //System.out.println(api.getApiKey());
            //final SimpleDateFormat df = new SimpleDateFormat( "dd/MM/yyyy HH:mm:ss" );
            final java.util.Calendar cal = GregorianCalendar.getInstance();
            cal.setTime( api.getCreatedDate() );
            cal.add( GregorianCalendar.MINUTE, 1 ); // date manipulation
            Date dateExpectedExpiryDate = cal.getTime();
            Date dateNow = new Date();
            if ((dateNow.compareTo(dateExpectedExpiryDate) > 1) || (dateNow.compareTo(dateExpectedExpiryDate) == 0))
            {
                api.setIsExpired(true);

                try {
                    update(api);
                    System.out.println("Updating API");

                    //post the entity as JSON
                    String postUrl=api.getUrl();// put in your url
                    Gson gson= new Gson();
                    HttpPost post = new HttpPost(postUrl);
                    StringEntity  postingString = new StringEntity(gson.toJson(api));//convert your pojo to   json
                    System.out.println(postingString.toString());
                    post.setEntity(postingString);
                    post.setHeader("Content-type", "application/json");
                    @SuppressWarnings("deprecation")
                    HttpClient httpClient = new DefaultHttpClient();
                    HttpResponse  response = httpClient.execute(post);
                } catch (ApiNotFound | IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

}

Changes to web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

    <display-name>apimanager</display-name>
    <task:annotaion-driven></task:annotaion-driven>
</web-app>

The second approach also did not work and it is not throwing any exceptions. Trying to step through Eclipse STS IDE did not yield anything because the break point I set was not hit. Please can someone help me with this?
Thank you very much.

A:

I eventually had success using the second approach: using spring scheduling. As I was using a Configuration class for my bean definitions instead of xml namespaces or bean definitions in xml configuration files, I removed the <task:annotaion-driven></task:annotaion-driven> xml namespace from the web.xml file and replaced it with an annotation in my WebAppConfig class, my @Configuration class in this case.
I then proceeded to move the ApiExpirationTask() method from the Service class/layer below to the its Controller class. I removed the @Transactional annotation from the code snippet and fixed some logical control flow issues.
@Service
public class ApiServiceImpl implements ApiService {

The final method with the job tasks/steps that works and is currently declared in a Controller class is
@Scheduled(fixedDelay=60000)
    public void ApiExpirationTask()
    {
        // Beginning of the ApiKeyExpirationJob Workflow
        List<Api> apiList = apiService.findAll();

        for(Api api1 : apiList) {
            //logger.info(api.getApiKey());
            //final SimpleDateFormat df = new SimpleDateFormat( "dd/MM/yyyy HH:mm:ss" );
            final java.util.Calendar cal = GregorianCalendar.getInstance();
            cal.setTime( api1.getCreatedDate() );
            cal.add( GregorianCalendar.MINUTE, 1 ); // date manipulation
            Date dateExpectedExpiryDate = cal.getTime();
            Date dateNow = new Date();
            if ((dateNow.compareTo(dateExpectedExpiryDate) >= 0) && (api1.getIsExpired() == false))
            {
                api1.setIsExpired(true);

                try {
                    //TODO: Fix apache commons logging to work with SLF4J. Then remove the out.println statements.
                    //logger.info("Updating API");
                    System.out.println("Updating API");
                    apiService.update(api1);

                    //post the entity as JSON
                    String postUrl=api1.getUrl();// put in your url
                    Gson gson= new Gson();
                    HttpPost post = new HttpPost(postUrl);
                    StringEntity  postingString = new StringEntity(gson.toJson(api1));//convert your pojo to   json
                    //logger.info("API Entity in json representaton is: " + gson.toJson(api1));
                    System.out.println("API Entity in json representaton is: " + gson.toJson(api1));
                    //logger.info(postingString.toString());
                    post.setEntity(postingString);
                    post.setHeader("Content-type", "application/json");
                    @SuppressWarnings("deprecation")
                    HttpClient httpClient = new DefaultHttpClient();
                    HttpResponse  response = httpClient.execute(post);
                    //logger.info(response.getStatusLine().toString());
                    System.out.println(response.getStatusLine().toString());
                } catch (IOException | ApiNotFound e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        //End of ApiKeyExpirationJob Workflow

The @Configuration class
@Configuration
@EnableWebMvc
@EnableTransactionManagement
@ComponentScan("com.x.apimanager")
@PropertySource("classpath:application.properties")
@EnableJpaRepositories("com.x.apimanager.repository")
@EnableScheduling
public class WebAppConfig {

As the Controller class that I moved the ApiExpirationTask() method to, has the @Controller annotation, which is a specialization of the generic @Component annotation, the already existing @ComponentScan annotation on the WebAppConfig class (@Configuration class), does the job of scanning and the location the ApiController class which contains the task that should be executed at intervals. If the hosting class is not annotated with @Component or any of its specializations such as @Controller, then we would need to declare an @Bean method in WebAppConfig class to enable detection of the task that has been annotated with @Scheduled in the container or application server.
You can get more information from the following resources.
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/annotation/EnableScheduling.html
http://javapapers.com/spring/spring-component-service-repository-controller-difference/
Thank you very much.


Healthcare Prescription App

The mobile application can be used by Doctors, Patients, Medical Stores and Laboratories. It enables doctors to view their patient’s complete medical history in one place, write digital prescriptions, and get compensated for in-app calls. Patients on the other hand have digital prescriptions, laboratory test reports, and medical history reports all accessible on their phone. They can use the app for consultations with multiple doctors. The prescribed lab tests and reports are directly recorded on the app for future access. Patients can make prioritized phone calls with the doctor through the app.

The app is a handy Doctor-Patient collaboration tool useful across table consultations with doctors.

It primarily aims to give doctors accessibility to their patients’ previous medical records. This enables doctors to review the complete medical history of a patient in one place, in the presence of the patient or when on all. At the same time, it helps the patients organize their medical records in one place, for easy and all time access.

An important feature of the app is to enable the doctor to feed in the medical findings and prescription into the app for all future access. The prescription interestingly allows the doctor to trigger lab tests and send out notifications to registered laboratories and chemists to follow up with the patients on the desired tests.

Laboratories can upload reports directly into patient records.

The patient in turn has the medial prescriptions to follow up on, and to consult with other doctors too. He or she can go with the referred laboratory for the tests and have their reports fly into the app automatically, for immediate and easy access. They not only enable instant viewing of the reports, but also get added to the medical history of the patient, for future follow up.

One of the USPs of the app is its in-app calling feature which gives patients a prioritized direct calling feature with any consulting doctor. The calls are chargeable and hence helps deter unnecessary calls from patients. Doctor’s can also avail of the calling feature to call other doctors for reference.


Q:

VBA many Vlookups on filtered cells

I've been banging my head on this one for a while.
I have a big macro I made doing a number of operations on  a file but got stuck on doing a series of filtering and vlookups.
Here is a portion of what I got. I added comments to make it clearer.
 'FILTER ALL 3P VALUES IN ONE COLUMN AND ADD A VALUE IN ALL RESPECTIVE CELLS IN OTHER COLUMN
        Application.ScreenUpdating = False
      With ActiveSheet.UsedRange
        .AutoFilter Field:=22, Criteria1:="*3P*"
        .Offset(1).Range("AU1:AU" & Cells(Rows.Count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Select

 'HERE I SELECT ALL VISIBLE FILTERED CELLS BY COUNTING IN ROW A BECAUSE THESE CELLS ARENT BLANK
        .Selection.Value = "3P PROGRAM"
        .AutoFilter
      End With

 'NOW I WANT TO FILTER ROW FOR BLANKS AND THEN FILL THIS RANGE WITH A FORMULA
 'HERE IS THE PROBLEM

      With ActiveSheet.UsedRange
        .AutoFilter Field:=47, Criteria1:="="
        .Offset(1).Range("AU1:AU" & Cells(Rows.Count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Select
        .Selection.FormulaR1C1 = "=VLOOKUP(RC[-38],'[WeeklyData.xlsx]Sheet1'!C8:C16,9,FALSE)"
        .AutoFilter
      End With

Problem is at the vlookup step. I want that range of visible filtered blank cells to get the value gotten by vlookup. Every cell should take a cell 38 columns to the left as a vlookup reference.
I cant find a way to make formula work. I would like to:
-insert vlookup to that filtered range,
-remove filter (Autofilter)
-Select calculated column with offset of 1 for headers and paste as special values
- carry on to do this process 5, 6 more times for blank or invalid entries in other columns.
Is there a way to do this?
Any help is appreciated

A:

I prefer the Range.CurrentRegion property over the Worksheet.UsedRange property. It refers to the 'data island' created at the origin point (in this case, A1).
With ActiveSheet
    If .AutoFilterMode Then AutoFilterMode = False
    With .Cells(1, 1).CurrentRegion
        'Set the filter
        .AutoFilter Field:=22, Criteria1:="*3P*"
        'Shift off the header row
        With .Resize(.Rows.Count - 1, .Columns.Count).Offset(1, 0)
            'check if there are any visible cells
            If CBool(Application.Subtotal(103, .Cells)) Then
                'Put 3P PROGRAM into the visible cells in column AU
                Intersect(.Columns(47), .SpecialCells(xlCellTypeVisible)) = "3P PROGRAM"
            End If
        End With
        'remove the filter
        .AutoFilter Field:=22

        'set the formula on column AU blank cells
        Intersect(.Columns(47), .SpecialCells(xlCellTypeBlanks)).FormulaR1C1 = _
          "=VLOOKUP(RC[-38], '[WeeklyData.xlsx]Sheet1'!C8:C16, 9, FALSE)"

        'revert column AU within the .CurrentRegion to the values returned by the formulas
        .columns(47).cells = .columns(47).cells.value

    End With
End With

The second filter is replaced by using the Range.SpecialCells method with the xlCellTypeBlanks property. The Intersect method isolates the cell range reference to the blank cells within column AU. You may want to make a check for blank cells before running that operation.


An integrally formed screw, such as a wood screw has a threaded cylindric stem and a head (9). At least a part (25) of the head (9) is shallowly convexly curved (25) and is provided with a screwdriver recess (26). The head (9) has an annular, shallowly concave underside (22) adapted to accommodate a...http://www.google.com/patents/US20030175093?utm_source=gb-gplus-sharePatent US20030175093 - Screw having a head with concave underside

An integrally formed screw, such as a wood screw has a threaded cylindric stem and a head (9). At least a part (25) of the head (9) is shallowly convexly curved (25) and is provided with a screwdriver recess (26). The head (9) has an annular, shallowly concave underside (22) adapted to accommodate a relatively soft, polymeric washer (27).

Images(4)

Claims(18)

1. An integrally formed screw having a circular head including a peripheral rim and a stem which includes a thread formed in at least a part thereof;

(a) the stem having a root end, and an opposed free end portion;

(b) the head including a top surface portion facing away from the stem and including a screwdriver engaging recess; and an annular underside disposed about the root end of the stem;

(c) the underside defining a shallowly concave annular portion co-axial with said stem and slightly decreasing in depth in the radial direction toward said rim.

2. The screw of claim 1, wherein the root end merges with the underside at a merger located on a first reference plane (P1) perpendicular to the stem, and a part of the rim nearest the free end portion of the stem defines a perimeter section coincident with a second reference plane (P2) parallel with said first reference plane (P1); whereby the merger and the perimeter section, form a radially inner limit and a radially outer limit of said shallowly concave annular portion, respectively.

3. The screw of claim 1, wherein the depth of said shallowly concave annular portion is about 6 to 8% of the diameter of said head.

4. The screw of claim 1, wherein the depth of said shallowly concave annular portion is about 0.5 mm and the diameter of said head is about 12 mm.

5. The screw of claim 2, wherein the stem at said root end of the stem includes a reinforcement portion having a radial cross-sectional area larger than that of the rest of the stem, said reinforcement portion merging with the underside of the head portion at said first reference plane.

6. The screw of claim 1, wherein the root end merges with the underside of the head at a circular merger defining a first reference plane (P1) perpendicular to the stem, and a perimeter section of the rim nearest the free end portion coincides with a circular perimeter defining a second reference plane (P2) parallel with said first reference plane (P1), said second reference plane (P2) being closer to the free end portion, the distance between the first and second reference planes (P1, P2) defining the depth of said shallowly concave annular portion; and wherein the top surface portion of the head comprises a convexly curved central projection with a screwdriver engaging recess.

7. The screw of claim 6, wherein the central projection has a predetermined outer diameter (B2) which is smaller than the maximum diameter (B1) of said head, the top surface of the head further comprising an annular washer section disposed about and projecting generally radially away from the central projection, said washer section having a minor diameter coincident with said outer diameter (B2) of the central projection, and a major diameter which defines the outer diameter (B1) of the head.

8. The screw of claim 7, wherein said washer section is shallowly generally convexly curved or shallowly generally frustoconical and said underside is shallowly concave, to define at least a part of said shallowly concave annular portion.

9. The screw of claim 8, wherein the depth of said shallowly concave annular portion is about 8% to about 10% of the outer diameter (B1) of said head.

10. The screw of claim 8, wherein the outer diameter (B1) of said head is about 12 mm and the depth (D1) of said shallowly concave annular portion is about 0.5 mm.

11. An integrally formed screw comprising a head and a stem;

(a) said stem including:

(i) a generally cylindric stem portion having a tapering, pointed free end portion and a root end;

(ii) a helical thread projecting from the surface of the cylindric stem portion and extending over at least a part of said tapering, pointed free end portion and over at least a part of the overall length of the cylindric stem portion located between said tapering, pointed, free end portion and said root end;

(iii) said root end including a reinforcement portion having a radial cross-sectional area larger than that of the cylindric stem portion;

(b) said head comprising:

(i) an underside;

(ii) a generally convex upper portion turned away from the stem and a washer section having a rim which defines the maximum diameter (B1) of the head;

(iii) said washer section including a shallowly convex, generally frustoconical annular upper face section turned away from said underside, and a shallowly concave annular underside, the washer section having a major diameter which is a multiple of that of the reinforcement portion;

(iv) a centrally disposed shallowly convex central portion projecting from said upper face section, and having a generally circular outer boundary coinciding with a minor diameter of said annular upper face section of the washer section;

(v) said shallowly convex central portion being provided with a screwdriver engagement recess.

12. The screw of claim 11, wherein the root end merges with the underside of the head at a first reference plane (P1) perpendicular to the stem, and a part of the rim nearest the free end portion of the stem defines a circular perimeter coincident with a second reference plane parallel with said first reference plane; said second reference plane (P2) being closer to the free end portion of the stem than the first reference plane, whereby the merger and the circular perimeter define, respectively, a radially inner limit and a radially outer limit of said shallowly concave annular underside, respectively.

13. The screw of claim 11, wherein the depth of said shallowly concave annular underside is about 6 to 8% of the maximum diameter (B1) of said head portion.

14. The screw of claim 11, wherein the depth of said shallowly concave annular underside is about 0.5 mm and the diameter of said head portion is about 12 mm.

15. An integrally formed screw comprising, in combination:

(a) a stem comprising a cylindric main section merging with a tapering, pointed free end portion, and a root end;

(b) a helical thread projecting from the surface of the main section, the thread extending over at least a part of said free end portion, to a point spaced from said root end;

(c) said root end being defined by a reinforcement portion which merges with the main section at a minor base end of a frustoconical section;

(d) said frustoconical section further including a major base end spaced from said minor base end, said major base end corresponding in diameter to and being coincident with a first end of a cylindric part of the reinforcement portion;

(e) a second end of the cylindric part being coincident with a shallowly concave annular underside of a head of the screw, the head including a washer section which has a circular rim the diameter of which is a multiple of that of said cylindric part;

(f) said cylindric portion defining a continuous cylindric wall extending throughout from said first end of the cylindric part to said second end thereof;

(g) said washer section including a generally frustoconical, annular upper face section turned away from said shallowly concave annular underside, and a rim defining a maximum diameter of the head; and

(h) a centrally disposed, shallowly convex head portion disposed centrally of the head and provided with a screwdriver engagement recess;

(i) said shallowly convex head portion having an outer perimeter (B2) which coincides with an inner diameter of said annular upper face section.

16. The screw of claim 15, wherein:

(a) the depth of said shallowly concave annular underside is about 0.5 mm;

(b) the second end of the cylindric part merges with the shallowly concave annular underside at a merger defining a first reference plane (P1) perpendicular to the stem;

(c) a part of said rim nearest the free end portion of the stem defines a lower edge coincident with a second reference plane (P2) parallel with said first reference plane (P1);

(d) said second reference plane (P2) being closer to the free end portion of the stem than the first reference plane (P1);

(e) the merger and the lower edge forming, respectively, a radially inner limit and a radially outer limit of said shallowly concave annular underside.

17. An integrally formed screw comprising, in combination:

(a) a stem having a tapering, pointed free end portion, a generally cylindric main section, and a root end;

(b) a helical thread projecting from the surface of at least a part of the free end portion and over at least a part of said main section;

(c) said root end including a frustoconical portion having a minor base end coincident with the main section near the root end of the stem, and a major base end coincident with a first end of a generally cylindric portion;

(e) the second end of the generally cylindric portion being coincident with a shallowly concave annular underside of a washer section having a diameter which is a multiple of that of the cylindric portion;

(h) said upper face section merging, at an inner diameter (B2) thereof, with a shallowly convex central projection provided with a screwdriver engagement recess; and

(i) the axial length (A1) of said central portion being only a fraction of the inner diameter (B2) of said annular upper central portion.

18. The screw of claim 17, wherein the ratio of the axial length (A1) of said central portion to the inner diameter (B2) of said annular upper face section of the washer section is about 0.2 to about 0.5, the axial distance between the inner (B2) and an outer (B1) diameter of the annular upper face section is about 1 mm and the depth of said shallowly concave annular underside is about 0.5 mm.

Description

FIELD OF INVENTION

[0001] The present invention relates to an integrally formed screw such as a woodscrew. Wood screws are used in many different applications. Some applications require a wood screw combined with a soft, polymeric washer. In such applications, it is often required that when the screw and the polymeric washer is in place, the screw head be as unobtrusive as possible in order to avoid damage to the screw head or other problems when working on the surface from which the screw heads project, e.g. when shoveling snow from the roof.

[0002] The known screws have a flat underside which engages the polymeric washer. The flat underside often causes a non-uniform deformation of the soft washer whereby the sealing or locking performance of the washer is lost or reduced.

[0003] My U.S. Pat. No. 5,919,020 describes a wood screw in which the specific pressure exerted by the screw head on a workpiece is relatively low, the fastening force high and the top surface of the head relatively unobstructive. This is achieved by combining the shape of a round head screw with an integrally formed radial extension resembling a washer having a flat underside. While this type of screw enjoys a considerable commercial success, in use with a polymeric, e.g. rubber washer the disadvantages mentioned in the preceding paragraph could be encountered.

SUMMARY OF INVENTION

[0004] It is an object of the present invention to provide a screw, particularly, but not exclusively, a wood screw, which would avoid or at least reduce the problem of undesired lack of uniformity of compression of a soft washer while securing the unobtrusive state in a fully applied condition and providing strength sufficient for use with power screwdrivers.

[0005] In broad terms, the invention provides an integrally formed screw having a circular head defining a peripheral rim, and an integrally formed stem which includes a thread formed in at least a part thereof. The stem has a root end at the head of the screw, and a free end portion. The head includes an underside from which the stem projects. The top surface portion of the head, facing away from the stem, includes a screwdriver engaging recess. An annular underside of the head is disposed about the root end of the stem. In accordance with the invention, the underside of the head defines a shallowly concave annular portion co-axial with the stem and decreasing in depth in the radial direction toward the circumference of the head.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006] The invention will now be described by way of a preferred and an exemplary embodiments, it being understood that many other embodiments may exist which differ from those described, without departing from the present invention.

[0007] In the drawings:

[0008]FIG. 1 is a diagrammatic, not-to-scale enlarged side view, partly in section, of a wood screw including the combination of features according to the present invention;

[0009]FIG. 2 is a cross-sectional view of a polymeric washer used with the screw of

[0010]FIG. 3 is a view similar to that of FIG. 1 but showing a modified, exemplary embodiment of the invention; and

[0011]FIG. 4 is a diagrammatic, simplified view similar to that of FIG. 1 showing approximate measurements of different sizes of the screw of the present invention.

DETAILED DESCRIPTION

[0012] The screw shown in the drawings is an integrally formed product usually made from suitable steel, it being understood that certain applications may warrant or require different material, e.g. nylon.

[0013] The screw shown in the drawings comprises a stem having, in the embodiment shown, a cylindric portion 10 (also referred to as “main section”). As is known, the stem has a free end portion 11 which, in the embodiment shown, is pointed. The opposite end of the stem is designated as a root end 12. In the embodiment shown, a major part of the stem is cylindric except for a reinforcement at the head and at the pointed free end portion 11 where the shape is conical. A helical thread 13 projects from the surface of the stem. The thread extends from the pointed free end portion 11 and terminates at a root end portion 14 of the thread 13, which is spaced from the reinforced root end 12 of the stem.

[0014] Preferably, but not necessarily, the reinforcement of the stem includes a minor base end 15 of a frustoconical portion 16. The opposite end of the frustoconical portion 16 defines a major base end 18. In the embodiment shown, the major base end 18 coincides with, and thus has the same diameter as a cylindric part 20. The reference numbers 15, 16, 18 and 20 thus combine to form one embodiment of what is generally referred to as a reinforcement portion of the stem.

[0015] The cylindric part 20 merges, at a merger 21, with a shallowly concavely formed, downwardly facing underside 22, also referred to as a “shallowly concave annular portion 22” which includes the underside of a washer section 23.

[0016] It is emphasized that the primary purpose of the reinforcement portion is to provide the screw with suitable strength for use with a power screwdriver. Therefore, the actual size or shape of the reinforcement portion is optional and may differ from what is shown in the drawings, without departing from the scope of the present invention. In certain embodiments, it may even be entirely eliminated leaving the diameter of the cylindric portion 10 uniform up to the underside 22 of the head.

[0017] The term “shallowly” concavely formed refers to an annular concave underside 22 having the depth D1 of the order of about 0.5 mm in a screw whose head 9 has the outer diameter B1 of about 12 mm, the thickness A2 (FIG. 4) of the washer section 23 being in the order of about 1.5 to about 2 mm. Thus, the depth D1 of said shallowly concave annular underside 22 is about 6 to 8% of the outer diameter B1 of the head 9 of the screw. The top of the washer section 23 defines a shallowly generally frustoconical, annular upper face section 24. The reference to “generally” frustoconical includes embodiments (as shown in the drawings) where the surface may actually be somewhat convexly rounded due to the rolling process in the manufacture of the screw. In the embodiment of FIGS. 1 and 4 the axial height D2 of the generally frustoconical portion is about 1 mm. It is emphasized that the size figures refer to a typical size of a wood screw and are not to be interpreted as limiting the invention to the specific measures.

[0018] Reference number 17 designates the rim of the washer section 23. The rim 17 defines the outside diameter B1 of the head 9 of the screw. The deepest part of the shallowly concave underside 22 is disposed on a first reference plane P1 perpendicular to the stem of the screw. The lowermost part 19 or edge of the rim 17 presents a part of the head 9 which is located on a second reference plane P2, which is parallel with and is axially spaced from the first reference plane P1. The second reference plane P2 is closer to the tip 11 than the first reference plane P1. The depth D1 of about 0.5 mm referred to above is the axial between the reference planes P1, P2. The depth D1 is provided, for example, by rolling the top face 24 of the washer section 23 to change its shape from a planar to generally frustoconical.

[0020] The term “shallowly convex” within the context of the central portion 25, designates an arrangement, wherein the maximum axial thickness Al of the shallowly convex head portion 25 is only slightly larger than the thickness A2 of the washer section 23. In the embodiment shown, the thickness A1 is about 3 to 4 mm.

[0021] The screw of the present invention is intended for use with a polymeric washer 27 which does not form a part of the invention and is readily commercially available. The size of the washer 27 is selected to have the inner diameter roughly corresponding to the maximum diameter of the reinforcing portion 12. The washer is preferably bevelled at its end facing the underside 22 of the screw.

[0022] With particular reference to FIGS. 4, Table 1 presents three examples of different size embodiments of the screw of the present invention, having typical physical measurements. The three embodiments shown are 6, 7 and 8 mm which roughly corresponds to ¼′; {fraction (5/16)}′ and ⅜′ wood screws each having a total length of about 80 mm, respectively. The respective size particulars of the screw.

TABLE 1

APPROXIMATE SIZE PARTICULARS OF ADDITIONAL EXAMPLES

OF THE INVENTIVE SCREW (in mm)

Size of the screw

8

7

6

A1 thickness range of the head 25

2.4

2

1.6

A2 thickness range of washer section 23

1.8-1.5

1.6-1.3

1.4-1

A4 the length of frustocon. port. 16

2

2

1.5

B1 diameter range of washer section 23

18.5-16

16.5-14

14-12.5

B2 diameter range of head portion 25

10.5-10

10-9.7

9-8.7

B3 outer dia. range of thread 13

8-7.5

7.2-6.7

6.2-5.7

B4 diameter range of stem 10

5.4-5.1

4.82-4.79

4.24-4.18

D1 depth of the shallowly concave underside 22

1.2

1.1

0.9

D2 axial height of the frustoconical portion 24

1.4

1.2

1.1

[0023] It follows from the above that a wide range of the screws utilizing the present invention can be produced.

[0024] Turning now briefly to the exemplary embodiment shown in FIG. 3, the concavely formed underside 22 is disposed under a continuously convex, rounded head 28 rather than a combined head and washer section portion described with reference to with FIG. 1.

[0025] As mentioned, the invention can be modified to a greater or lesser degree to differ from the embodiments disclosed, without departing from the scope of the present invention as set forth in the accompanying claims.


As a rule, the energy for motor-vehicle electrical systems is supplied by at least one battery and one generator. Under normal conditions, the battery has a sufficient storage and buffer effect to keep the system voltage stable, that is to say, the battery supplies a newly switched-in consumer with energy in the meantime, until the generator is adjusted to a higher power level.
Increasingly, systems such as electrohydraulic braking systems or electrical power steering, for whose operation a stable electrical energy supply is important, are being used in vehicles. In particular, the functioning of safety-relevant systems must be ensured, and must not be jeopardized, for example, by unacceptable voltage dips. At full operativeness of the battery, sufficient buffer effect is present to meet this requirement.
However, if, for example, the battery is in a discharged state before driving begins, and the vehicle is started by an external starting aid, then the buffer effect of the battery is not sufficient. The same also holds true for a weak or defective battery which is able to provide less reserve power.
If, at this point, an electrical consumer is switched in with pronounced starting current, then, because of the relatively large exciter-circuit time constant (approximately 50–100 ms), the generator is only able to react comparatively slowly, and the vehicle system voltage falls briefly below acceptable values. Control units of safety-relevant systems may also thereby fail for a short time. Using an electrical steering or braking system as an example, this represents a very critical state for the controllability of the vehicle. Therefore, the goal must be to achieve rapid stabilization of the voltage.
From the related art, it is known, when the main battery is weak or has failed, to switch in an auxiliary battery until the main battery has been charged or exchanged. A voltage stabilization from some other quarter is therefore not necessary. On the other hand, an additional buffer battery with monitoring electronics and a switching element must further be provided.


Sugars and flowering in the grapevine (Vitis vinifera L.).
Sugars play an important role in grapevine flowering. This complex process from inflorescence initiation to fruit maturity takes two growing seasons. Currently, most of the available data concern the involvement of sugars as energy sources during the formation of reproductive structures from initiation of inflorescences during the summer of the first year, until flower opening during the following spring. Sugars devoted to the development of reproductive structures are supplied either by wood reserves or by photosynthesis in leaves or inflorescences, depending on the stage of development. Female meiosis appears to be a key point in the success of flower formation because (i) flowers are vulnerable at this stage and (ii) it corresponds in the whole plant to the transition between reserve mobilization from perennial organs (roots, trunk, and canes) towards efficient leaf photosynthesis. The perturbation of reserve replenishment during the previous year provokes perturbation in the development of inflorescences, whereas altering the photosynthetic sources affects the formation of flowers during the same year. In particular, a lack of sugar availability in flowers at female meiosis caused by various environmental or physiological fluctuations may lead to drastic flower abortion. Apart from energy, sugars also play roles as regulators of gene expression and as signal molecules that may be involved in stress responses. In the future, these two topics should be further investigated in the grapevine considering the sensitivity of flowers to environmental stresses at meiosis.


Naperville Historic District

The Naperville Historic District is a set of 613 buildings in Naperville, Illinois. Of these 613 buildings, 544 contribute to the historical integrety of the area. The district represents the town as it was originally platted and a few early additions.

History
Stephen Scott established a farm on the DuPage River in 1830, marking the first settlement in what would become Naperville. A sawmill, grist mill, trading post, and school were erected soon after several other families migrated to the land. Among the earliest settlers was Joseph Naper, who, in 1831, made a claim to land and built a cabin at the earliest site of Naperville. By 1832, 180 residents lived in the Naperville region. The village was briefly abandoned in 1832 as families fled to Fort Dearborn during the Black Hawk War, but most returned after fighting had ceased. The first post office was constructed in 1833. The Galena Road between Chicago and Galena opened in 1834 and brought commerce to the area. In the 1850s through the early 1870s, Naperville battled politically with Wheaton over which town should be the county seat of DuPage County. Though the town built a courthouse, a court decided in favor of Wheaton. The courthouse was demolished and was converted to a park.

The First Congregational Church of Naperville was founded in 1833, and is the oldest church in DuPage County.

Naperville primarily found economic success through the management of local resources. Stone quarries exported limestone, breweries produced alcohol, and three separate plant nurseries flourished. Other important industries were Naperville Agricultural, producing farming equipment, and Martin Mitchell's Naperville Title and Brick Works. By World War I, the largest employer was Naperville Manufacturing Co., which eventually became of the nation's leading furniture exporters. Plainfield College in Plainfield moved its campus to Naperville in 1870, and was later renamed to North Central College. The Evangelical Theological Seminary was organized in 1873 and was closely associated with North Central until merging with Garrett Theological Seminary in 1974. Despite this economic welfare and religious presence, Naperville grew slowly; the population in 1910 was only 3,449. The town's first major population boom was in the 1950s, as increased ease of traveled enhanced Naperville's place a Chicago suburb. Most of the older sections of town, however, are intact.

The Naperville City Council established the Naperville Historic District in 1986.

In 2019, North Central College announced their plans to purchase and demolish the P. E. Kroehler mansion, owned by Little Friends, for the purpose of rezoning and redeveloping the property with new academic buildings.  The college subsequently withdrew from the purchase, but Little Friends stated their intent to proceed with applying to demolish the building.

Selected sites of structures of significance
Naperville selected twenty sites and structures of particular value to exemplify the historical merit of the district.
 Willard Scott, Jr. House (1887) – Son of Stephen Scott. Operated Scott's General Store and the Naperville Hotel.
 Elmholm (built before 1917) – Designed by Harry Robinson. Proprietor Rollo M. Givler owned the Clarion, a local newspaper
 205 North Wright – Purchased by the seminary in 1908, moved to present site in 1912 for use as a dormitory
 122 South Brainard (1874) – Owned by Hammerschmidt family, notable for quarrying business
 North Central College (1870) – Designed by John M. Van Osdel. South wing added in 1890
 Nichols House (1917) – Designed by Harry Robinson
 227 East Jefferson (1866) – Designed by G. N. Gross. Later the home of ecologist May Theilgaard Watts
 Dieter House (1846) – Designed by Dr. David Hess. Moved to present location in 1898.
 Wilson House (c. 1879)
 Kroehler Manufacturing Company (1905) – Alterations in 1909 and 1913
 Paw Paw Station (1833) – First public building in the county (post office). Considerable alterations
 J. L. Nichols House (c. 1890) – Donated funds for public library and North Central College, founder of Kroehler Manufacturing Company.
 General Store (1847–9) – Designed and operated by Joseph Naper, the town's founder
 Central Park (1868) – Former site of county courthouse
 221 West Jefferson (c. 1870)
 Dr. Truitt House (c. 1917) – Truitt practiced medicine for over 50 years and helped establish the city hospital
 Kreger Family House (c. 1860)
 Nichols Library (1898) – Designed by Mifflin E. Bell
 First Congregational Church (1906)
 P. E. Kroehler House (built before 1917) – Became president of Kroehler Manufacturing Company. Part of North Central College in 1950s

References

National Register of Historic Places Registration Form: Naperville Historic District

External links
Historic District, The City of Naperville
Naperville Historic Walking Tour -- Downtown

Category:Historic districts in DuPage County, Illinois
Category:Geography of Naperville, Illinois
Category:National Register of Historic Places in DuPage County, Illinois
Category:Historic districts on the National Register of Historic Places in Illinois


In the arts of cooking and making of flavors it is well known that the human senses of smell and taste are very closely related. In cooking when a chef wants to check a certain dish he usually smells it before tasting it. Similarly a wine conoisseur smells the "bouquet" of a wine before sampling it.
In the art of making flavors, most staple ingredients are volatile. A flavorist who is trying to either create a new flavor or improve an existing one also uses his sense of smell extensively. When his combination of ingredients has an acceptable aroma he knows that he is close to his target. However, in order to reach this point, the flavorist must actually mix the ingredients together before he can smell them. Some flavors require hundreds of ingredients. Furthermore, the amount of certain ingredients used in any given flavor is also critical for obvious reasons. Thus the process of flavor making is very long and painstaking.
One method that has been used to obviate the need for mixing the ingredients before smelling them is to dip a so-called smelling blotter in a bottle containing each ingredient and then placing them in close proximity to each other. The vapors from each ingredient mingle together. Obviously, this method may be used with only literally a handful of ingredients. Furthermore, the method does not reveal any quantitative information.
The above considerations are very applicable in the art of making fragrances.


A 9/11 Reflection: Peace, Healing, and Reconciliation

Justice, Peace & Human Development

3 years ago

Fr. John Crossin, OSFS

Like many people, I can clearly remember where I was and what I was doing on September 11, 2001. As I was riding home on a mostly empty Metro train late that afternoon, I saw that the Pentagon Station was closed. As we passed Reagan National Airport, the sky was completely clear, the runways empty, the parking lot vacant, the entrances blocked, the setting eerie. My heart was numb.

Two days later, numbness gave way to admiration as I talked to government workers who worked downtown. At the time, they thought there could be more planes. On the day they thought they might die, they tried to help one another. They thought about their families. They tried in vain to contact them. Even two days later as they processed their feelings of fear and uncertainly, they maintained a focus on others.

Of course, even after all these years, we have scars. Death and trauma leave marks on us.

There still can be a need for healing and reconciliation in our lives—even these many years later. In my experience, healing of major traumas is more an ongoing process extending over time than a ‘once and for all experience.’

Pope Francis will come to the National September 11 Memorial and Museum in New York City on September 25 for a Multireligious Gathering for Peace. Christian, Jewish, Muslim, Hindu, and other religious leaders from the Metropolitan New York area and beyond will pray in the presence of one another and give a common witness to peace.

This Gathering will be an impetus to peace, healing, and reconciliation. It could become a milestone in the process. But the long-term impact will work itself out in our individual lives as we let the healing power of Christ’s mercy come more deeply into our hearts and as we show that healing mercy to those around us.

John W. Crossin, OSFS, is executive director of the Secretariat for Ecumenical and Interreligious Affairs at the USCCB.


Q:

Is there a specific name for the "Square inherits from Rectangle" paradox?

A certain failure of OOP is shown with a class Square inheriting from Rectangle, where logically Square is a specialization of Rectangle and should therefore inherit from it, but everything falls apart when you attempt to change a Square's length or width.
Is there a specific term for describing what is going wrong with that case?

A:

Wikipedia merely refers to it as the Circle-ellipse problem

The circle-ellipse problem in software development (sometimes known as the square-rectangle problem) illustrates a number of pitfalls which can arise when using subtype polymorphism in object modelling. The issues are most commonly encountered when using object-oriented programming.
This is the L in the acronym S.O.L.I.D. which is known as the Liskov substitution principle. This problem arises as a violation of that principle.
The problem concerns which subtyping or inheritance relationship should exist between classes which represent circles and ellipses (or, similarly, squares and rectangles). More generally, the problem illustrates the difficulties which can occur when a base class contains methods which mutate an object in a manner which might invalidate a (stronger) invariant found in a derived class, causing the Liskov substitution principle to be violated...

A:

I would consider it a violation of the Liskov Substitution Principle - the Square subclass specifically violates the invariant that length and width are independent.

A:

At a more fundamental level than the Liskov Substitution Principle, this is a category error or category mistake
In the context of modeling behaviour a square simply is not a type of rectangle.
When you realize this the problem evaporates since the initial assumption (a square is a type of rectangle) is removed from play.
The issue with this answer is that since school it is drilled into anyone doing geometry that a square is a type of rectangle. But it is very important to understand that this is only true within a very specific context (the classification of geometric shapes based on the properties of their internal angles). In terms of behaviour a square is not a rectangle. To view one set of classification in the wrong context is a category mistake.