Ideas posts

Ideas: Local + Proxy Remote Hosting for Personal Site

Hosting your personal website on a computer at your home puts extra indie in indieweb. You truly control all of your data. I did this for several years. I did this with a very modest setup, serving from a mobile home using an iBook G3 800 with Windstream DSL internet. Performance obviously wasn’t the same as a web host would’ve provided. Of course, it helped a lot that I didn’t have much traffic. But I still had a lot of downtime, for a number of reasons:

  • Dynamic IPs: most consumer level internet service plans do not have a static IP, and change occasionally. I used DynDNS to accomodate this, but it still led to downtime between the time that the IP changed to the time the daemon was run, DynDNS updated its records, and the DNS propagated.
  • Internet outages: consumer level plans definitely don’t have the robust connection that a web host has. This was especially true at my mobile home, where perhaps old wiring led to fairly frequent outages, especially on windy days.
  • Power outages: hosting companies have backup power. Most homes do not. My power went out from the electric company at least several times while I was hosting, but also went out whenever I had to turn off the power to work on something electrical. My server would stay on because it was a laptop, but not the router. A UPS is a reasonably priced option for reducing or eliminating this problem though.
  • Computer / router issues, updates, etc: Any reboots, shutdowns, or stopping of server daemons will mean your site is down, which could be needed for updates or various problems. Web hosts usually have robust servers, and if they’re managing them, they’re usually very good about keeping them up and doing updates quickly and during down-times.

My idea to mitigate performance and downtime problems would be to use a reverse proxy, such as varnish, running on a remote web host, with your DNS pointing at it. It would be configured to go to your home server’s IP for content. You’d have to set up a daemon to contact the remote server and update this when it changes. Public pages would be set with long cache times so that they would be available if your home server goes down. The application(s) on the server would then have to be set up to send a PURGE request when pages were updated. Or perhaps, if the proxy allows, you could use whatever maxage times you want but have the proxy store the cached responses indefinitely and server them if the home server can’t be reached even if the maxage has been passed.

This idea is not without its problems. For instance:

  • Security of connection between servers: If your site is using SSL, the connection between the servers would also have to be over SSL or the SSL used between the client and remote server would be virtually worthless. Without SSL between the two, a man in the middle could easily eavesdrop on the traffic or divert all traffic to their own server. Because of the changing IP address, the home server would have to use a self-signed certificate possibly increasing the risk of a man in the middle attack between the two servers and at the least requiring the remote server to accept that cert from any IP that it considers your home server.
  • Non-cacheable requests would always need the home server: Private pages like admin pages as well as any mutating (POST, etc.) requests, would always have the same performance and robustness issues as the home server. Most importantly for many personal sites, webmentions / pingbacks / trackbacks / comment submissions would fail if the home server went down. So would any other form submissions. To deal with this, you’d probably have to do some programming on the remote server to have it queue these requests and give it an appropriate generic response for the request. For admin and logged in user activity, you could build the client side of your app to operate as you desire in offline mode.

And, as is always the case with serving from home, server and home network configuration, security, maintenance, etc. is all on you. There isn’t really a “managed” option available. You’ll have to get everything working, apply updates, deal with server and network problems, etc. In a home environment, security also includes physical access to the device.

Socialisms: Government Provision of Essentials

This is somewhat a revisit and modified version (probably a better one at that) of an idea I discussed earlier. The revisit is in part because of the recent health care legislation. Some argue that health care is a “right” not afforded to some, something that everyone should be given regardless of income on ethical grounds. I’m not sure why health care is considered more essential than food, water, shelter, etc, but it is certainly where a lot of money is spent and made.

The government will provide relatively bare essentials deemed required for survival. These will include food, water, shelter, clothing, protection, education, occupation, health care, and probably some others that I can’t think of. They will be provided in whole by the government, directly, no intermediaries such as with food stamps, medicare, etc and with no fees. Provisions will be bare essential: For instance, food provisions will be limited to calculated nutritional need, and there will in theory be no overuse possible. The government services will be minimums, and will not place any limits on private provision of them that will favor the government provision. Quality will range from mediocre to craptacular, not only to follow real world precedence but also for providing incentive for folks to work hard and obtain better services from the private sector.

Teacher spot reports for knowledge check

School administration would on occasion randomly choose some teachers to write a report. The report would be either a short (1-2 page) paper that must be written on the spot with little or no resources, or a longer (perhaps 10 pages) research paper which they will have a specified period to complete and can use any resources they want.

The topic of the paper would be randomly assigned, asking how they apply or could use certain educational principles in the classroom. Some possible topics might include how the teacher uses or could use Piaget’s or Vygotsky’s theories, positive reinforcement, levels-of-processing theory; how do they handle the different learning styles of students; what implications a recent educational news story might have for them; how do they apply technology in the classroom; or a more general question like how new educational theories have shaped their teaching styles.

The check would help ensure that teachers are paying attention to and using both well established and new educational theories to hopefully provide the best education they can to their children. Educational theories often are adopted slowly or aren’t translated well into teaching styles. There is a whole lot that can be done to improve the education system just by fully implementing the recommendations of the vast available knowledge pool of educational learning theory.

Appropriate living place service

To help ensure people can easily move to the country best suited to them, there would be a program which all countries could choose to join. Joined countries would have buildings that citizens interested in moving away or even just seeing if there is something better could visit.

A counselor would be provided. The citizen would discuss their political, social, religious, and other wants and views, and the counselor would talk to them about the countries seeming most appropriate. The counselor would then give them guidance in how to research and choose a country as well as how the country moving procedures work.

The citizen would be given access to a computer database with political and social characteristics, news, geography, and all sorts of information about all of the participating countries, with advanced searches available.

After researching the countries, the citizen would talk to the counselor to make a final decision. If the citizen decides to go through with the move, the counselor would tell the citizen everything they need to do to proceed with the move.

The counselor would meet with a counselor from the other country to start the process toward citizenship for the citizen. This process should be an agreement between the two countries plus the citizen that would help ensure both success and safety for both the citizen and the new country. The process should be relatively quick and easy, with important records provided from the originating country so the destination country can more easily do background checks.

Some countries might only do exchanges, have number limits, or have certain stipulations on the citizens they will take, though the movement of citizens must be generally relatively free and easy.

A similar but simpler version of this service could be provided for intra-country moves, helping citizens find the best city or place within a country for them to live.