Stories
Slash Boxes
Comments

SoylentNews is people

Log In

Log In

Create Account  |  Retrieve Password


NASA Training 17-Year-Old Girl to DIE ON MARS

Posted by takyon on Thursday July 12 2018, @08:19AM (#3378)
7 Comments
Career & Education

HOME / INSPIRING

NASA Is Training This 17-Year-Old Girl to Become One of the First Humans on Mars

Better than dying on the Space Shuttle, I suppose.

ThorCon, Nvidia, 10 Billion Person Cities, Game Bars

Posted by takyon on Monday July 09 2018, @05:07AM (#3369)
10 Comments

Rainbow Text!!!!!

Posted by cafebabe on Sunday July 08 2018, @07:06PM (#3367)
2 Comments
Code

If there was any doubt about processing HTML (from stdin to stdout) into rainbow text, an example implementation is provided. It works best on long paragraphs of text and many find the result too irritating to read:-

begin 644 rainbow-text.pl.gz
M'XL(`$P&0EL"`X5376O;,!1]]Z]0$C>58SN2G&84;'F%P-C#^K(%-HA=<!)G
M\>9:0;)IH4E_^R3Y*QD9PQ:Z.N?HWJ.OT0!5@J-U5J!#RG/@?C>,$?B\?/P"
MOB99L68O8)F^EA*#"\O#9.[>@^4^!0M6",;+K'J>&B/)2NH>WWD?0)G\3@NP
MX^P9+!Z_&<8#K]-@"CU\Y[0-RT_VEM\)"(78(=C3-)D31_[XC/<47W^*K2<;
MHEJ#1@#>#`!RMDER:&:%1<4^VY5^C[&JM/KA@SBDF_/Q3YYL]=C<L)P*B24<
M=NXMERA.SZ+BD&<E1#`8N.YT\M%UPV.P>@KC27B$T7CU%(31V(]M_ZA"$)51
M$?'8>B/.[&2A3#C*GJXD+=4VZ\0:JRLTY;5)-%/$H1+[6N;<WM:_UBO?%*MP
MQS@T<QF;>:#3R,"V+;TO`&0[J,&5F4]F\>`=K8(P1BW;)))D3'5DV[XF3D;=
M7%?#"E29=%6*V^EJ)5/ZBV4%E,[ZO06`IV7%"RWPFU3_]3G8IKNL2+>P\V2=
M^=2ESI8R[6/;BQO7(,U%VL\Y,(&I.MA)EQ)UZ]&*A&J1FQ4EU)'546M*7#/Q
M+W)=D<D1J9/8I`755BD\5+7[-71JB;;2T\7ZQ('+$CLX##ZQHI3/+6><1L/1
M#?9^M"T:AC?B1@1(2<*A8[:7=:5=Q!-S;5]B1&*)C:?S3DNN:,D_M-X5K?>W
MMC\7Y^)<K,OK='$M3H;QLL_R%';GGLN.!F%S[/7P7:"5?DFVB1`3^DVH30+C
4QDL]S7*&43'42?\`&U52+MT$````
`
end

(Usual instructions for uudecode process.)

Building A Mega-Corporation With Makefiles And Shell Scripts

Posted by cafebabe on Sunday July 08 2018, @07:05PM (#3366)
2 Comments
Code

I apologize for only contributing occasionally to SoylentNews. I've been mostly off-line and, since Apr 2018, working on a website. It seem like a contradiction to have no radio, no television, no telephone, no Internet connection and work on a website but let me explain.

  1. I'm ill.
  2. I'm in pain and it adversely affects my concentration.
  3. I require money for medical treatment.
  4. I have to engage in what P.T. Barnam described as money-getting.
  5. I must have some valuable skills. I've had a rather unusual career progression from Internet cafés to e-commerce to agriculture (including hydroponics) to search engines to databases (including OLAP and field consultancy) to film post-production to streaming video.

You'd think that I'd be an Internet millionaire. Maybe I am a millionaire but I'd like to make another million from another venture. (Actually, I've been a paper millionaire. From direct experience, that involved eating noodles multiple meals in a row.) With far less ethics, I would certainly be a millionaire. Unfortunately, the time has come to compromise my ethics. I hope to compromise my ethics as little as possible but this could be a succession of compromises.

A modern money-getting venture invariably requires a website. This is often the first mistake. A brief read of Joe Karbo's book: The Lazy Mans's Guide To Riches (either edition) describes mail order business principles which are incredibly similar to e-commerce. In particular, and from direct experience, a shopping basket with credit card integration will, at most, double sales. This magnifying effect means that zero doubled is still zero. A chain of logic, from emperical observations, leads to the conclusion that a venture should be profitable without a website or shopping basket. As I noted, the website is often the first mistake. This is because it is a trap.

The first failure is a venture which is focused on style rather than substance. Such websites invariably fail. A venture which correctly focuses on content may also fail but a certain level of expertise greatly helps. In part, this prevents an overly ambitious venture which is doomed to fail. It also ensures that a website is implemented competently. From emperical observation, the threshold of competence is just beyond the ability to use SQL JOIN with appropriate database indexes. I don't want to be contentious because there are numerous cases where not using SQL is a distinct advantage. However, there has to be a very good business reason to discard ad hoc queries. A search engine is a very good case for not using SQL. A search engine is a special case of partial ordered, partially materialized JOIN for the purpose of displaying the most likely results. Even if you do this, you very probably aren't doing it at the scale required to discard a conventional database.

From reading Tracy Kidder's book: The Soul Of A New Machine and the direct experience of friends, programming was a tedious practice which often occurred in absence of a computer. This involved a formal definition of a problem, use cases, data structures, flow-charts, pseudo-code and dry runs before making punch cards. The deployed program may be the second, third or fourth implementation. Nowadays, a prototype system may gain one million users before the venture is acquired by a conglomerate. Said conglomerate then grafts a subsequent implementation onto its NoSQL infrastructure. On this basis alone, software should be written for conciseness and correctness rather than efficiency. People complain that modern software is in a state of perpetual beta testing but this is a symptom of fast processors and cheap memory which only tangentially encourages poor programming practices.

Indeed, I am a victim of Moore's law. I am no longer a database field consultant because people make the same mistake on much larger systems. With the exception of some market leaders, the majority of organizations grow slower than Moore's law and the related laws for bandwidth and image quality until their function becomes trivial. As an example, it is difficult to write a spell check within 128KB RAM. A dictionary of words is typically larger than 128KB and word stemming was quite awkward to implement at speed. For this reason, when Microsoft Word required a spell check function, Microsoft merely acquired a company with a working implementation. It seems outrageous to acquire a company to obtain a spell check. It can be written very concisely in a scripting language but that doesn't work on an 8MHz system with 128KB RAM. Likewise, it is difficult to write a search engine within 16MB RAM but trivial to write in a scripting language with 1GB RAM.

Anyhow, the brief for the website is quite loose:-

  1. It can say anything.
  2. It can do anything.
  3. It can look like anything.
  4. There is no concern for efficiency, throughput or scale.
  5. There is great concern about various classes of attack:-
    1. XSS and SQL injection are regarded as the same class of mis-matched string concatenation which is exacerbated by poor language design.
    2. Buffer overflow remains a problem.
    3. Denial of service remains a problem.
    4. Processor architectures don't meet specification.
    5. Attacks which are more sneaky include corrupting cryptographic keys in de-duplicated memory (and here and here). This could feasibly be used to attack a kernel, database, web server or language interpreter.

More specifically:-

  1. The website should be truthful and legal. We're quite libertarian but there is no point being a martyr when there is no collective gain. Website is likely to cover medicinal use of cannabis and/or other contentious topics and therefore jurisdiction of website hosting may have to be considered carefully.
  2. Majority of website will be static HTML. Remainder is contained and not essential. By law (and as a matter of professional competence), majority of content will be accessible to disabled users.
  3. We choose an overly corporate style. Testing indicates that it is possible to veer significantly into vaporware and fiction when a corporate style is used.
  4. Static website can be served from one thread of nginx web server or similar. HTTPS greatly complicates this scenario but a patch to FreeBSD9.0 from Netflix provides an extension to POSIX sendfile() which allows a kernel to implement hardware acceleration of HTTPS. Dynamic content may remain very vulnerable to denial of service.
  5. May develop and test website in a deliberately hostile environment and then deploy in a slightly more sane environment. However, will not have physical control of servers and full administrative control is doubtful. Therefore, web hosting should be regarded as an untrusted and unreliable pocket in someone else's cloudy system.
  6. Considered payment integration. We're not limited to existing options but found cryptographic currencies unsuitable as a default payment option. Block-chain and proof-of-work schemes also limit hosting options.

Plan to have a website which lists products speculatively and/or which are manufactured on demand. Trivial products include a buzzer game or an alarm clock. More substantial products may include a 5W per channel, 32 channel audio amplifier or a hydroponic controller in (matching) 1U rack-mount boxes. There is no reason to discontinue products unless parts become scarce. There is incentive to design products using the least variation of components. This allows more products to be manufactured from a fixed quantity of stock. However, it does make designs more susceptible to component scarcity. Most tediously, this may require standardizing resistor and capacitor values across products.

Although component costs may fall, overall costs, such as shipping, may rise. We don't want to be in the situation where someone orders a large quantity of products, all of the components are in stock but a sale loses money, either through labor/opportunity cost or returns on a marginal design. To counter this, component costs, labor and other costs will be defined as exponentials. For example, component cost may be defined as a specific cost on a specific day plus an increase of 10% per year. A monthly re-build of the static website plus hashes allows advertised prices to be honored - even if purchase occurs during site re-build. This may occur without tracking details too closely. If correctly configured, legacy products default to being too expensive rather than being too cheap.

Preferable to have a basic website, such as Wikipedia, CraigsList, Reddit or SoylentNews where the focus is on (allegedly) factual content. However, whipper-snappers prefer audio, video and animation. Ignoring this, desktop computer sales are steady in a growing market and the majority of casual use (and consumer spending) is on touch-screens devices of various descriptions. How is it possible to satisfy the majority of use cases while making a website which is easy to use while looking old, crufty and corporate? It is very simple and actually saves work. After the transition from the hierarchical Gopher protocol to the more free-form HTTP, people tried various navigation constructs including virtual galleries, virtual offices and virtual cities with street numbers. And then people moved back to a hierarchical structure. Steve Krug's book: Don't Make Me Think! explains in more detail. A brief overview is that navigation elements should be a blend of newspaper layout and department store signage. A trite summary would be "copy Amazon.Com slavishly" but Steve Krug notes that they've thought about it more than you and they have more turnover than you.

The website is also a place for orphaned content and software. Much of the software is CGI scripts and therefore they can be run via the website. The intention is for more people to ask "How many people update your website?" There is about 100,000 words or orphan content (excluding 80,000 words on SoylentNews) and at least 20,000 words which can be gleaned from e-mail. Also have more than four hours of video presentations. This can all be strung together with Makefile configurations and one of the numerous static HTML builders. While there is no shortage of content at the leafs of the website, it is tedious to repeatedly summarize branches towards the root. There is also the matter of intertwingularity in which anyone without a masters degree in library science is unlikely to devise a taxonomy which accomodates all content in a obvious manner.

This deficiency can be largely covered with large, clickable icons. The design of the icons is not too important. It helps if they don't change frequently but they function as landmarks in the navigational structure. Some people will merely select the red one followed by the stripey one or suchlike. Actually, icons towards the root of the navigational structure will be deliberately bad to provide fake antiquity. This is described fully in the Ye Olde section of the book: The Bluffer's Guide To Small Business. Essentially, antiquated style and unrounded pricing contributes to a corporate image of longevity, steadfastness and trustworthiness.

The icons have to be really obviously hyperlinked. This can be achieved by ignoring the fashionable, minimal, flat, Bauhuas style and having 1980s style mwm style bevelled edges. This was popularized in Microsoft Windows3.0 but was yet another innovation which was devised elsewhere. Bevelled edges can be automated with ImageMagick's convert -raise 12 or similar. What should be the size of the icons? I'm off-line and I have better things to do than find common sizes of icons. However, it should be noted that an icon bookmarked via a touch-screen interface may be promoted to the main menu icon tray typically found on a tablet or smartphone. From cached webpages, there are references to square icon sizes 16×16, 32, 48, 57, 60, 64, 70, 72, 76, 96, 114, 120, 128, 144, 150, 152, 155, 160, 167, 180, 192, 194, 256, 270 and 310 pixels. (256×256 was found on the ARM Developer website.) Cannot guarantee any size has been used by any device or that list is complete. However, much looks like Apple idiocy. In the era of MacOS7, it was common to design icons of different sizes for a 2 color MacIntosh, a 16 color MacIntosh, a 256 color MacIntosh and a 16 million color MacIntosh. Omissions were frequent (along with Balloon Help "text goes here" or suchlike). However, when all Apple devices support 16 million colors, vector image formats and MIP mapping, it is inexcusable to require multiple icon sizes in meta-data (sent to all clients) to support a device which may not be supported by Apple. Screw that, we're designing everything as 256×256 pixels and MIP mapping down by a factor of two or more. (We suspect the ARM Developers had a similar sentiment.) It is also useful to design buttons which are 256×96 pixels to be similarly scaled. This 8:3 ratio is very similar to the ratio of the legacy 88×31 pixel button format and it is quite easy to upscale legacy buttons. Also designing 8:1 ratio banners although this very probably requires further research.

Anyhow, there is lazy method to fill the void between the content. This will be complimented by text descriptions but there is primarily a casual interface which can be accessed easily on a small screen. The laziest part is that many of the icons are designed with OpenOffice Draw and pasted to GIMP. This technique casts vector to bitmap prior to MIP mapping, bevelling and other trashing of mediocre designs. Many designs use the same template but use different fonts, colors or gradients. Some designs are above average but the majority look like amateur corporate logos - and that's good enough. It looks worst on a thumb sheet where 300 logos are tightly bunched. However, it looks more moderate when there are 20 or less icons which are suitable spaced and captioned.

Icon spacing is adapted from some HTML <table> abuse learned from a ex-colleague. This is probably not original but he implemented a grid of products which automatically fills width of a web browser. This requires tweaking CSS display properties of <table>, <a> and, optionally, <span>. By default, <h1>, <p>, <table> and other HTML tags are rendered as block level elements. Whereas, <a>, <img> and other HTML tags are rendered inline. This is mutable on a per tag basis. Indeed, by having single-cell tables which are all the same width and with CSS display: inline, tables flow as a grid. When a web browser's width is changed (desktop window resize or touch-screen device is tilted), tables re-flow to a different number of columns. Furthermore, if <a> is set to CSS display: block then an icon, caption and all contiguous surround space is hyperlinked. Furthermore, where sub-categories have a hyperlink to a parent directory, use of <span> may make an up button unprintable. Therefore, any attempt to print a category of icons will omit the icon to the parent category and possibly allow the remaining icons to be printed in less space.

This menu system is most obviously applied to static HTML. It can also be applied to scripts. Indeed, it is possible to take 20 year old PERL4 scripts from Matt's Script Archive and - with suitable icons and meta-data - make them accessible like "apps" on a smartphone. But, like, in the cloud 'n' stuff. It is also possible to nest menus deeper than is typically allowed on a smartphone. However, we have yet to explain how menu and scripts all obtain the same style as the static website. This requires consideration of the history of dynamic content over HTTP. This probably omits developments but covers the important cases. Initially, there was no dynamic content. Then people wrote custom web servers so that URLs were dynamic rather than mapping directly to static files. Then there was server-side image maps with a URL suffix in the format ?(x,y). Then there was forms with HTTP Method GET parameters suffixed in the format ?foo=1&bar=2. Then there was client-side image maps. Then there was HTTP Method POST. This detacted parameters from URLs and was useful for file upload and to circumvent client implementation limitations of HTTP Auth. Then there was extended HTTP Method POST which preserved file meta-data, such as file name. Within a CGI environment on a Unix server (one of many server environments), HTTP Method is passed to a script as an environment variable. HTTP Method GET parameters are passed as a separate environment variable whereas HTTP Method POST is available via Unix stdin. This is rather messy but fits with the historical development of dynamic content. Command line arguments aren't used but this dormant mechanism can be used for testing scripts or using them outside of a CGI environment. In the laziest case, it is possible to create sub-directories within /cgi-bin/ and within each sub-directory, have a shell script called index.cgi with the following content:-

#!/bin/sh

./prog.cgi $@ | ./wrapper.cgi $@

This allows separation of content and style in a manner which was not feasible when CGI was developed in the 1990s. It remains infeasible to deploy this on a high-volume website but it significantly eases development. The shell script uses a Unix pipe to pass the output of the application logic to a styling wrapper script. This has several uses. It allows a naked application to be tested without HTML style. The shell script propagates environment variables and command line parameters to the application and the wrapper. This allows common functionality, such as session management, to be off-loaded to the wrapper. Unfortunately, only the application receives HTTP Method POST parameters. Fortunately, the majority of scripts do not require HTTP Method POST and the remainder may pass parameters of interest to the wrapper. Meanwhile, the wrapper may re-write URLs to ensure session keys are always propagated. The wrapper may perform performance measurements, grammatical checks, sampling of output, redaction and rate limiting. It is also possible for the wrapper to distill a superset of HTML into something more conventional. When such functionality is separated, programs are typically less than 10KB and the wrapper is less than 100KB (but common to all scripts written in all programming languages from all sources). It is also possible to provide a central location for HTTP cache header configuration. Obviously, as functionality increases, processing load also increases. This make the technique unsuitable for popular websites unless caching is very well tuned. Regardless, it is a technique to shrink legacy scripts while improving the quality and consistency of their output.

There are three unresolved problems when using a wrapper script. All are easily overcome. The first problem is that scripts typically make incorrect URL references to themselves. A script should use the provided environment variable. It is more common to use $0 (or similar) or a parameter name defined in the begining of the script. It is tedious to correct and test all cases. The second problem is the HTTP looks like e-mail and output from CGI scripts is no exception. Specifically, RFC822 style colon separated headers (with optional tabs, spaces and indented line breaks) are followed by a blank line and then the content. The header should specify a MIME type and therefore, in some modes, the output of a script may not be HTML. In this case, the wrapper should pass-through the content unchanged. The third problem is that trivial implementation of the wrapper may introduce considerable latency. This is greatly reduced if processing occurs incrementally. In the trivial case, it should be possible to distill </box> separately from <box> or defer processing of <rainbowtext> until the tag is closed.

Although the wrapper creates additional system bottleneck and additional latency, this is unlikely to be a significant problem if the application is I/O intensive (for example, if the application makes heavy database queries) or milti-core hosting is available. This was typically unavailable when CGI was typically deployed on 25MHz single-core servers with 16MB RAM. For low-volume use, this is not a problem for a 700MHz dual-core server with 256MB RAM. Indeed, it runs quite well on many credit-card size computers.

This is not a complete guide to boot-strapping and mega-corporation by only using electronics which will fit in a rucksack but it demonstrates that it is possible to make something which is above average without considerable skill. Joe Karbo noted that an average product or service covers half of the market. Presumably, further improvement leads to diminishing returns. Also, in a case of less is more, being the best may also imply being the most abstract and detached.

Without being too abstract, it is possible to comprehensively satisfy one part of the Joel Test. Specifically, it is possible compile a web server, compile a database, compile a script interpreter, build a website, tutorial videos and/or embedded software with one invocation. This is important because style isn't.

Apology For Lack Of Technical Articles

Posted by cafebabe on Sunday July 08 2018, @07:04PM (#3365)
0 Comments
/dev/random

I will be posting considerably less technical content over the next month or three. If you want more technical content, I highly recommend an introduction to the Plan9 Operating System. I also highly recommend DTACK Grounded which describes how to make a fast, small computer using a Motorola 68000 processor optionally with a 8087 co-processor. Similar systems (and dup) have been covered on SoylentNews.

Twitch and Other Thots

Posted by takyon on Friday July 06 2018, @07:56AM (#3363)
5 Comments
Business

14m2s video: TWITCH VICTIMS

Polygon article: Streamer Amouranth is latest example of ‘Twitch thot’ harassment problem1

In summary (since you may not be arsed to watch a 14 minute video), (some... many?) girl streamers wear skimpy clothing and cultivate a fanbase on Twitch and other streaming platforms. People, mostly young men (or boys with the parents' credit card), shell out lots of money2 to get attention from these streamers, despite getting far less for their money than what a camgirl would show off. The streamers are often accused of violating Twitch's terms of service by "accidentally" shaking their ass, showing major cleavage, actual nudity, and other on-camera mishaps (you can look for compilations of these on YouTube if you want). However, Twitch tends to overlook these infractions (which are lucrative for Twitch since scantily-clad girl gamers drive traffic and Twitch gets a cut of the stream's ads or revenue), while punishing males more regularly for their bits of nudity and terms of service violations, sometimes including things that are done/said on entirely different platforms.

In this case, the streamer repeatedly lied on camera to portray herself as single, fueling the fevered dreams of her fans. She also revealed that she lived in Houston, TX (making doxxing her an easy task), and filmed inside of a gym (identifying it, since it was getting phone calls) and lied about it to the gym's employees and manager until she decided to leave. None of this is justification for being harassed or really so bad at all (lying to grift some horny kids and acting like an asshole in a private establishment aren't exactly crimes), but after being called out on her deception by fans and apparently harassed/"doxxed", she found a ready-made ally in the form of a lazy gaming media outlet.

1. Polygon appears to have made itself resistant to archive.is, but not archive.org.

2. Apparently, lots more money than I expected. One of Amouranth's fans donated about $10-13k. Yikes.

Why you should care: You don't have to, but it's another fascinating look at how millennials make a buck online these days.

Similar drama:

Pewdiepie vs. Twitch streamer Alinity

TanaCon (one big unmentioned detail is that the venue was intended to hold about a thousand, not the ~5,000 that tickets were sold to, so the event was doomed from the start and there are layers of lies involved)

Come to think of it, I keep on forgetting that Twitch is a subsidiary of Amazon now.

It's Finally Time...

Posted by NotSanguine on Thursday July 05 2018, @10:05PM (#3361)
10 Comments
/dev/random

To go really highbrow here in my journal.

Yo mama so fat that when she sits around the house, she sits around the house!

Yo mama so ugly that they need to tie a steak on to get the dog to play with her!

Yo mama so fat, she got her own zip code!

Yo mama so stank, she's her own superfund site!

Yo mama so stupid, when I told her I had to take a piss, she asked for it back!

Yo mama so ugly, she crashed Facebook's facial recognition software!

Yo mama so fat, her blood type is Ragu!

There's a good start. Please tell us more about 'Yo mama'!

ScarJo Cast as a Transgender Man, Outrage Ensues

Posted by takyon on Thursday July 05 2018, @05:56PM (#3359)
34 Comments
Career & Education

Scarlett Johansson’s Casting as Transgender Man Draws a Backlash

Scarlett Johansson faced a storm of criticism this week after it was reported that she would play a transgender man in a movie, a year after she drew scrutiny for taking on a role that was originally Japanese.

The newly announced film, “Rub & Tug,” is based on the real-life story of Dante “Tex” Gill, who ran a string of massage parlors that were fronts for prostitution dens in the 1970s and ’80s.

The online backlash was led by transgender actors, who argued that such casting decisions take opportunities away from members of marginalized communities.

[...] The actress faced further anger online after the website Bustle published a statement from an unidentified representative for Ms. Johansson that said, “Tell them that they can be directed to Jeffrey Tambor, Jared Leto, and Felicity Huffman’s reps for comment.”

Scarlett Johansson faces firestorm amid news she will play a transgender man

Trans Actors Slam Scarlett Johansson Rub & Tug Casting

Scarlett Johansson's Defense of Her New Role as a Trans Man Is Only Fueling Critics

Scarlett Johansson

People of Praise (Amy Coney Barrett as Supreme Court Pick)

Posted by takyon on Wednesday July 04 2018, @05:08AM (#3353)
18 Comments

Empires are parasites, and their destiny is decay

Posted by Azuma Hazuki on Monday July 02 2018, @09:36PM (#3350)
32 Comments
/dev/random

Not for the first time, the thought has occurred to me that an empire, defined as any nation with an expansionist and/or colonialist system of existence, bears several striking resemblances to parasitic and parasitoid species. Beyond simple resource theft, I speak mostly of parallels to how these organisms often lose functions from their own genomes in favor of allowing the host to perform them instead...and their subsequent complete dependence on said host species. When the hosts either die out or move on, the parasite too withers and dies.

There has been a pattern throughout history of analogous processes taking place in imperialist nations. What chiefly concerns me here is the effective outsourcing of both manufacture and raw-material procurement, beyond what is necessary due to said resource not existing natively or lack of infrastructure at home. Rome, in its middle and latter days, relied on grain imports and slave labor. Britain's loss of India had much to do with its economic dependence on its colony, for textile manufacture for example. And I don't think I need to paint you a picture of the effects of globalization on the US's economy, specifically with regard to wage depression and overseas flight of production.

What all these have in common is that the people at the top are essentially trading the vitality and independent function of the nation they rule--and make no mistake, the golden rule, that the guys with the gold make the rules, is and has always been in full force--for their own personal enrichment. Whether it be kings or CEOs of multinational corporations with US headquarters, the end effect is the same, because the concentration of power is the same.

(Incidentally, this is why the Citizens United decision was such a complete disaster and why lobbying itself ought to be illegal: making money does not always coincide with the interests of the nation, and very often opposes them in a global society.)

So...where does this end? Eventually, the empire in question allocates more resources to maintaining its "interests" (read: colonies) overseas and across borders than it does internally. And the citizens of the empire, especially the poorer ones, suffer more and more over time. There grows, between the moneyed powers and the average citizen, a great, impassible chasm, a gap of not just material wealth but of anomie and hopelessness. The laws and law enforcement apparatus turn inward, protecting not citizens from criminals, but the haves from the have-nots. Long-term planning by the ruling class for the good of the nation becomes not just impossible, not just unthinkable, but outright mocked. The average citizen completely loses faith in the institutions of the nation, and with good reason, for they have become an enemy and they see the citizens as such.

Add to this that no empire ever truly got its power and resource base by above-board, honest, peaceful means--with the possible exception of the Marshall Plan, and even that struck me, all the way back in sixth grade, as a particularly cynical piece of international brinksmanship. Empires have terrible karma. They become ringed with enemies, many of whom may at one point have been allies. Foolish decisions regarding allies and trade and warfare are made. Eventually, the global order shifts...and the empire in question, overextended beyond endurance, demoralized from within, decadent and incompetent and decrepit from decades of internal misrule, is vulnerable and weak and *completely* unable even to see the coming seismic shift as it happens, let alone respond to it after the fact.

Time flows like a river. History does not repeat, but it does rhyme. Care to guess where the US is in this pattern?