Friday, November 28, 2014

On Ferguson, Racism, and Police....

My friend, let's call him Mike, posted this recently. What broke my heart was not the end point, but that he posted the picture without a touch of commentary. It is very tough to post something like that to social media and not have it taken in the wrong way. The fact that most of the United States, right now (alas from my perspective, but the protests have shown something), wouldn't batt an eye at this cartoon speaks volumes:



But not a lot of people have really explained why. So I thought it an appropriate time to review some of the basic facts, and really summarize why I believe the situation currently is so infuriating. I'm seriously pissed. I issue here, a serious challenge, to the peopld & government of this United States to fix this. Whether through abolishing grand juries (nobody has them but us, and everyone is still entitled to the same evidentiary hearing in the first place), or allowing referendum for criminal cases. My entire life I have been told that Grand Juries establish if there is evidence for a trial.

1) I'll get to race shortly, but I want to give first an observation which is undeniable:

Not a single witness seems to have disputed that the victim (no matter the cause he is a victim - he was unarmed as we only now know in hind sight) tussled hand to hand with the officer, and shots  were fired.

2) Who doesn't find #1 frightening (I write this from that perspective)? Law of the wild, law of the seas, you call it. We actually would, typically (I believe) give most people in the situation where a gun was tussled over hand to hand, the benefit of doubt. Alas for an officer of the law there is a down side to this. In my book anything premeditated, or remotely intentional is off the table. Involuntary manslaughter? How is that not discussed? Here is the big point.....

3) He is an officer of the law, and he MIGHT have made a mistake. The racism here was not that he was shot and killed. Unfortunately he is an officer of the law, and his JOB is to treat everyone equally according to the law and the constitution. I'm not sure of the proper protocol for handling someone walking down the middle of the street. So unfortunately...

4) The only question, with regard to Officer Wilson is if he made a mistake. Not if he is racist, or intended to murder Brown. If anyone reading this thinks a cop wouldn't be crass to someone in the middle of the street, I challenge you. If you think anyone shouldn't get premeditation thrown out the window, I challenge you. 

I can't blame the Grand Jury either - they are the only ignorant's in this contorted by a corrupted process....

BUT

When I read that the prosecutor has been presenting both sides of the case to the grand jury extensively, I was astounded. Attorneys are required by law to follow certain rules. Judges, if they have a conflict, must recuse themselves. I see this same limitation in the legislative branch with legislators who oversee their donators (i.e. corporations or unions) in any way. The point is, that these district attorneys, judges, and police, all have a very clear relationship, along with the populace that requires drastic measures.

Lawyers are required, by their bar, to represent the interests of their client. How can a prosecutor be expected to behave differently? This prosecutors job was ACTUALLY just to get to a trial. How could none of the judges acknowledge this, and set a precedent, not only for themselves but those around them.

The problem is there is no plaintiff for the people. Nobody but the government can charge someone with a criminal charge. That is why people are taking to the streets. They are shutting down malls, and I wasn't sure if I could get back to San Francisco this afternoon, as there were protests at the West Oakland BART station earlier. 

THIS DID NOT GO TO TRIAL?!?

The race problem here IS NOT WITH OFFICER WILSON. I think this is probably why he is scared. If everyone had not resisted charges, and let a trial happen, I think things would have been much more clear, open, and real. The fact that the prosecutor, in this occasion, seemingly decided to behave in a manner that doesn't befit their duties requires all branches to take action. The fact that there are newspaper articles discussing "if the grand jury proceedings will be made public," are exactly the absurdity that dictates that people take to the streets. 

This all points to Officer Brown as a government, and frankly, media scapegoat, for the underlying truth, that the corruption these days is in the prosecutors office. In this case the prosecutors office failed to dutifully recuse themselves of conflict. These days, cases of non-disclosed, nor explained details (channeling my inner economist) in America are profligate. In fact I've been watching this trend in The Economist, my favorite periodical, for a long time now. So now we all focus on a scared police officer, and what happened in a moment, while millions of minorities are abused in different, yet real ways. 

So the question is how did this not go to trial? Is there an American amongst us, who believes it shouldn't have? By whom, did we believe it should have been tried? It was, by the media it seems? To literally quote the Public Defender's Office in San Francisco:


This ethical failure resulted in the exceedingly rare step of the prosecuting attorney refusing to recommend an indictment against the police officer he was prosecuting.

Everyone tried to brush it under the rug. The police officer had nothing to do with that. He should not be vilified. The fact that he was honest, probably exposed some racists along the way that rejected due process. Let's find them. Not officer Wilson. The prosecutors were not objective, that is clear. Who's job is that to fix by law? The State Bar (Pun enjoyed)? If we disprove those things, then we can have a discussion, but for now, I think we've got it all wrong.

Friday, November 21, 2014

Regular Expressions, Redirects, and Rewrites oh my!

I recently got a request worded as such:
You choose a technical topic related to programming computers that you know a great deal about already, send me the topic so I can read up on it if necessary, and then prepare to give in-depth 10 to 15 minute lecture about the topic to me and I'll ask follow questions.
I thought this would be the perfect thing to share with everyone else as well. One of my biggest strengths is networking, which I had already covered with that person a bit. As well my extensive embedded experience gives me command at the HW-SW interface. We had already touched on optimizing databases and critical code which I view as more abstract computer architecture (things like pipelining and spacial locality effects on cache misses), and things like pull-ups, flash loaders, and bypass capacitors were not an appropriate subject.

I pondered a bit diving into computability, and the things one could evaluate with seminal computing models like the state machine, push down automata, and Turing machines, but this seemed a bit too much to bite off in short order. However thinking about state machines (e.g. a soda machine), gave me an idea that would incorporate a bit of one of my favorite subjects, Regular Expressions (regex), and let me touch on a scenario that we run into often in the modern interconnected web world.

It will also allow me to demonstrate a few interesting things under the hood of the internet. What you often perceive as simply loading a web page is often becoming a server accessing databases and services on the server side to serve a page which may still yet deliver executable code that can load local and cached resources, as well as make browser side calls to further web services. While below I use the example of loading web content this is analogous (via 4 - code, and combinations of other methods) to using any remote procedure call be it REST, SOAP, or some other method which may deliver JSON, XML, or other things instead of an HTML document.

The Problem


I use case 1 as the base problem, and will add to the problem as we come up with decision points down the line:

1) I want to type www.example.com and see the content of www.yahoo.com

The following cases follow as we go through the analysis:

2) I want to be able to share a URL by itself as a way to share the content I am viewing at the moment. (No iFrame)

3) I want query parameters to pass through to my page, easily, without server or browser code (No iFrame)

4) I want cookies to be shareable between domains (no cross domain iFrame, or careful consideration).

5) I want to support https (no matter what you must get certificates).

6) I want a custom path scheme for my content (no CNAME).

7) I want the user to type www.example.com every they want to get to the site (don't send an HTTP 301)

8) I want the user to still see the domain www.example.com even though they see the content from www.yahoo.com (don't send an HTTP 302)

9) The site/content I am integrating with uses a different version of javascript, jquery, node.js, etc. or I need to tightly control the order of javascript execution, for example using a message passing interface (don't use client side javascript without using an iFrame, or heavy focus on synchronization constructs).

Solution 1: HTML iFrame

This is probably the easiest way for most people to think of. HTML has a mechanism for this called an iFrame. This simple document will embed a window with www.example.com in my page. I created a simple page like this at:

http://hl1264.blogspot.com/2014/11/blog-post.html

I will note some limitations:

1) I click a link inside the iFrame. The iFrame content changes, but my URL doesn't. This is ok for me, but say I am on my nth click and wan't to send a link to a friend. When I copy-paste the URL I will go to my blog post, not to the page I wanted to share!

2) Query parameters are not passed through. I actually ran into this problem when I asked someone to forward a domain in a way I'll cover next, but they used an iFrame. While 1) above was an issue, we were using google analytics and while the user might enter:

http://hl1264.blogspot.com/2014/11/blog-post.html?utm_source=Tom&utm_medium=Blogspot&utm_campaign=Example1

I would not get:

www.example.com/?utm_source=Tom&utm_medium=Blogspot&utm_campaign=Example1

which would allow the information to pass through. I would just get a hit on:

www.example.com

So the information was lost. While it's a quick Javascript or PHP script to grab those parameters and append to the iFrame address, I don't want to do this with code because it's messy, and in this particular case the partner would not do this for us as well.

3) Cookies will not automatically be shared without careful consideration. I run into this often when using iFrames to integrate multiple sites. You must carefully navigate this with a smart CNAME, cookie declaration, and possibly certificate which I will give as a real world example at the end.

iFrames are a useful tool, and can be blended with following items in various ways to achieve different end goals. One prime example is blending sites or content that use different versions of javascript or

Solution 2: DNS CName

In DNS parlance a "cname" is short for "canonical name," and means one domain is an alias for another. This is analogous to a file alias in the Mac world, a shortcut in PC land, and a link in the *nix universe. This allows you to say in 1 DNS entry:

www.example.com     CNAME  www.yahoo.com

As long as the site uses relative paths, then you can navigate the entire site and the paths on example.com will mirror those on yahoo.com or whatever target site you choose. For example most sites will have something like this in place:

www.example.com     CNAME  example.com
example.com               A              93.184.216.119

Where the second line is an "A" or "address" record. The above two lines mean that the canonical name of www.example.com is example.com, and the address of example.com is 93.184.216.119.

1) One limitation here is https, which is rapidly becoming the norm for all sites. If you use this method but your domain is different, modern browsers will block the content or warn users that they are likely entering a dicey situation. This is because the domain the user entered will not match the domain on the certificate. There is no way around this, and any valid case will have no trouble justifying the cost of a new certificate for the project.

2) Another limitation is with regard to the path. With this method the path will always mirror that of the aliased site. In the case of www.example.com and example.com this makes obvious sense but there may be cases where you will want a custom mapping whether arbitrary, or for backwards compatibility, but more on that later.

Solution 3: HTTP Protocol

The Hyper Text Transfer Protocol (HTTP) is used to transfer Hyper Text Markup Language (HTML) documents. You get a code 200, for success almost every time you load a web page, and most people will recognize 404 (Not Found - usually mistyped or dead link), and 503 (Service Unavailable - usually server maintinence or overload), and 500 (Internal Server Error - any unhandled exception, for me usually an unhandled PHP error). Within this protocol there is a class of responses (3XX) which are specifically aimed at redirection. 

These codes also fulfill our purpose in some ways:

301 - Moved Permanently

Sending this response would indicate a permanent change. If I clicked on a bookmark, and receive this response, a smart browser should change the URL in my bookmark. Smart search engines should know longer index the old URL, and should index the new URL.

302 - Moved Temporarily OR Found

Moved Temporarily is the old nomenclature, and now Found is used, but this means keep the URL you have. This response is frequently used in parts of sites that are dynamic with respect to site structure, things like AB testing which could guide user subsets to slightly different interfaces. You can still type www.example.com and get your other site content, but by the time you looked up at the address bar you would quickly see the result site, in our case www.yahoo.com so this option is out if you want to see www.example.com as the domain name.

Solution 4 - The code silly!

There are, of course, many ways to do this by writing good old code! Here I present 3 different modalities of using server and browser side code to accomplish the effect. In all cases one can get the path from the request URL and use that in the URL requested, with similar effects to the cname mapping. This is the method we did not consider before in the simple iFrame case. In a simple Pseudocode:

Take www.example.com/path
read www.yahoo.com/path
return the html document received

This is also a simple example analogous to getting data via a SOAP or REST call and applying a CSS style sheet to it

Regex Aside 1

A quick introduction to regular expressions. Most people know that '*' means "everything," and often people will know that 'ap*' will match "ap," "app," "application," "apache" and anything else that starts with "ap." To get particular let's talk about some typical regex syntax ( the particulars which may be platform and language dependant ). Some regex basics:
  • '.' represents any character, except in a character class
    • '.' will match 'a' or 'b' but also 'ab' as there was in fact a character, there just happened to be a second
  • '+' represents one or more of the preceding character
    • a+ will match 'a', 'aa', 'ab' but not 'b'. It will still match 'ba' and 'baa'
  • '*' represents 0 or more of the preceding character - be careful
    • '*' will match everything
    • '.*' will match everything
    • 'ab*a' will match 'aa', 'aba', 'abbbbbba'
  • '?' makes something optional, or indicates 0 or 1 of the preceding character
    • 'ab?a' will match anything with 'aa' or 'aba' in it but not 'abba'
  • () groups a piece of the regex for later reference. The value in the first params can be referred to typically as $1 or \1, the second as $2 and so on....
  • [] are used to indicate a character class, such that multiple characters are possible
    • [aeiou] will match any string with a vowel in it
    • [1234567890] will match anything with a decimal digit in it
  • ^ Matches the start of a string
    • '^ab' matches "abatement"or "absinthe" but not "an abatement system" or "a bottle of absinthe"
  • $ Matches the end of a string
    • 'ing$' matches "fishing", "swimming", and "lounging", but not "stinking fish", "It's to freezing out there  
In PERL, which is similar enough to PHP, Python, and Javascript with respect to regular expressions here is a simple, yet befuddling looking expression that breaks out the pieces of a URL:

if ($uri =~ m!^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?!) {
        print "protocol:$2, domain:$4, path:$5, query:$7, fragment:$9\n";
}

$uri = "http://www.yahoo.com/folder1/page1.html?key1=val1&key2=val2#FragmentOrAnchor\n\n";

gives 

protocol:http, domain:www.yahoo.com, path:/folder1/page1.html, query:key1=val1&key2=val2, fragment:FragmentOrAnchor

$uri = "ftp://ftp.example.com/user1?user=tom&password=12345";

I will leave deconstructing that regex in your favorite scripting language for you as an exercise later. Regex will come in handy again later when we talk about rewrite rules in 5).

Solution 4a: Server Code loads destination site and serves it

In this case code on the server will naively call the content, and can programatically parse the path out and append it to the call. For example in PERL I could write:

$command = "wget http://www.yahoo.com/".$path; # Where # '.' being string concatenation.
print `$command`; #backtick executes the command in the shell and returns stdout

In this case, as with others https is a concern. In this case, however I could insert elements around or inside the page loaded, modify the style sheet, and do many dynamic things. This modality will frequently be used in the form of Server Side RESTful calls.

Solution 4b: SSI

This will normally not be an option as it opens all kinds of security vulnerabilities, but an easy way for demonstration purposes is to use a Server Side Includ (SSI). This command let's the web page execute any command with group permissions that match with apache's permissions. In this case the simple example is:



Adding in the path needs could be accomplished multiple ways via further code, but is messy, and this example is just academic.

Solution 4c: Browser side java script

With java script you can actually accomplish the feat in many ways that parallel some of the other pitfalls. One way to achieve this is to simply change to the destination URL:

var url = "http://www.yahoo.com.com/"

window.location = url;

But this will give you the destination URL in your browser, and really is equivalent to using an HTTP 3XX code to change your destination. Another option is to load the code and re-write the current document with something like the wget above, or even more fun, just insert the iFrame:

document.body.innerHTML= < iframe src = "http://www.example.com" >< / iframe >


The sensible time to do this may be when you are actually receiving for example XML to be rendered according to CSS rules. This is a much more complex but typical case for embedding widgets and 3rd party content into your site. Especially in the case where all of the traffic is between a 3rd party server, this option will reduce latency, but require smart tricks like subdomains to deal with XSS issues. 
The common trouble is, again, different versions of java script and js frameworks. Doing this on the client side also exposes you to race conditions (The 'A' in AJAX is asynchronous), so this route is not recommended in that case either without careful consideration and synchronization.


Solution 5 Rewrite Rules

Solution 5a: Web Server Rewrite Rules

I know that a similar mechanism exists in Windows world, but I'm used to apache, where they have the mod_rewrite module. From the apache documentation:

The mod_rewrite module uses a rule-based rewriting engine, based on a PCRE regular-expression parser, to rewrite requested URLs on the fly. By default, mod_rewrite maps a URL to a filesystem path. However, it can also be used to redirect one URL to another URL, or to invoke an internal proxy fetch.

So you can use this module to map one path to another, as well as parse things like HTTP headers as I mention below. It is regular expression based ( you see regex everywhere ), so you can create logical mappings, not just one to one relationships. Examples aboud on the net but a couple of examples excerpted:

In the example ruleset below we replace /~user by the canonical /u/user and fix a missing trailing slash for /u/user.

RewriteRule   ^/~([^/]+)/?(.*)    /u/$1/$2  [R]
RewriteRule   ^/([uge])/([^/]+)$  /$1/$2/   [R]

The goal of this rule is to force the use of a particular hostname, in preference to other hostnames which may be used to reach the same site. For example, if you wish to force the use of www.example.com instead of example.com, you might use a variant of the following recipe.

# For sites running on a port other than 80
RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^/(.*)         http://www.example.com:%{SERVER_PORT}/$1 [L,R]

# And for a site running on port 80
RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http://www.example.com/$1 [L,R]

Solution 5b: Rewrite Rules with Sub-domains & Cookies

In the modern world, while i can load an iFrame with content from another site, as soon as you run to active content, especially scripts, the domains can become a problem. If I want to run this script:

www.example.com/cgi-bin/script.js

using my cname example, this would be forwarded as a request to:

www.yahoo.com/cgi-bin/script.js. Certificates aside, a modern browser will not let this happen. It's behavior will be somewhere from simply nothing happening (my default behavior for Firefox at the moment), to getting a warning/error about cross domain scripts or security. In addition if I wrote a re-write rule as in example 5) above, based on HTTP cookies

Real World Examples

To be discussed live....

HTTP Refer

Unified CSS and templating for white label applications via CNAME and rewrite rules

Redirect to Mobile site based on User Agent using Apache ModReWrite

Have you noticed that you typically get redirected to an m-dot "m.site.com" site (not ironman site) often on your mobile device? Apache rewrite rules allow access to HTTP headers:

RewriteCond  %{HTTP_USER_AGENT}  (iPhone|Blackberry|Android)
RewriteRule  ^/$                 /homepage.mobile.html  [L]
RewriteRule  ^/$                 /homepage.std.html  [L]

3rd Party Integration example

The complete package. Example will be given in my presentation

Thursday, July 24, 2014

My early times in Hungary, My Parents, and a hint of device physics....

Lately I have written a bit about Hungary, without hiding my obvious roots there. My parents seemed to talk about everything, but perhaps because of the scars, really neglected much about themselves, their history, or their countries history. Most of this is new to me,but tonite I went down an interesting path.  I of course knew about 1956 in Hungary from my father, he told me occasional funny stories about being in the military (every male was but he was never deployed), and joked about kayaking for speed inside the wake of a big boat to go faster on the Danube, but no social science for sure.

I can't remember a single one now, but I know that I once knew the name of all the bridges in Budapest across the Danube from my time there as a child. My mother was interesting, and prolific, starting as I did, as an artist making awesome stained glass windows (I could not do art, but music was my baby as well as my escape), moving to architecture, and later acupuncture, but never really being satisfied. She did not ever talk about Hungarian history, or much of her childhood either. I lived with her parents for a long time when young, but them being "middle class" and her an only child, they still had the same 1972 VW Bug they bought when they died, and their garage was actually an old bomb shelter under their house. 

I knew from a young age, especially when this my father would calmly eat even the apple core, he was raised in incredible poverty relative to what we conceive of as normality. I stayed with my grandparents for a large part of my childhood. When I was tiny tiny I bathed in an old school porcelain wash basin (yes in the early 80s, in Hungary, they did laundry by hand and hung it up to dry as well). The whole time you went to the store almost daily, because a "refrigerator" basically had room for milk and eggs. I don't know many people who had to share bath water, but there was never hot water for another bath (what's a shower?).

As usual I had to learn about my history from google again. But tonight, randomly, as I plan to finish filing my first patent tomorrow (you wouldn't believe the challenge getting the USPTO to accept a PDF), I looked up my father. Most of this will only make sense to my EE friends (circuit diagrams in all the electronics links below....), but other than my dad being able to do pullups with one arm when I was young, nothing even comes close to looking up his patents.

I distinctly remember talking with my dad about his failed attempts at "bubble memory" once upon a time. But the title of his first patent, actually cracks me up:


That makes me want to laugh. We can, because it was a complete failure. Back then as I remember it was IBM, Rockwell, or Burroughs for my father. That was one patent at Rockwell, but then the laughs stop. He joined Burroughs, where former treasury secretary Michael Blumenthal engineered a notorious hostile takeover of Sperry, creating Unisys, while my father created the future of electronics.


Interesting. I focused on circuits and communications, but when device physics came into play, that was where I could no longer go. But what I see there is an order of magnitude decrease in noise, and that's never a bad thing. So we've moved from bubbles to transistors, but that patent is raw device physics.


interesting. All BJTs. Old school! Starting to move up into more than one transistor.

So I'll list a few more


Three-state logic circuit for wire-ORing to a data bus (Once again, BJT logic circuits...... I thought they were only for amplifiers!)



I remember hearing BiCmos at a young age and here it comes.



Module for preventing instability in integrated circuit testers (I understand the title. I have no idea what's going on there)

Fast change standard cell digital logic chip (note here, in 1989 they are still talking about a standard chip having 15 THOUSAND gates)

Signal translator for interconnecting CMOS and BiCMOS logic gates. CMOS is great for logic, and BJTs are great for amplifiers. I think this last one might be a seminal work.

Device physics goes back a bit before my father, but not much. For my EE peeps, as well as myself, this might be an interesting trip through semiconductors in the 80s.

Not bad for a poor eastern european immigrant. I just need 10 more to catch up!

"Stay Hungry, Stay Foolish."

~Steve Jobs/The Whole Earth Catalog


Saturday, June 14, 2014

The Mighty Magyars and the Hungarian Revolution of 1956

"There is no more illustrious history than the history of the Magyar nation"
--Theodore Roosevelt

Yes, sometimes the Hungarian pride comes out. Hungary has existed in many forms over the years. For those of you who know me, I have long believed that a sustained diaspora from Hungary in the 20th century has affected the world broadly, and positively in many ways. However, a lot of cool things have come from within Hungary as well.

Watching Italy and England play today I'm inspired to share the story of The Magical Magyars of the 1950's. A team that once upon a time revolutionized soccer and dominated the world for years such that losing to West Germany in the 1954 world cup (beating Brazil in the quarters, and holders Uraguay in the semis) is referred to as "Das Wunder von Bern" ("The Miracle of Bern"). Just a year earlier they stunned England, and the entire world with the first foreign win at Wembley against England ever:

To quote directly from the FIFA website:
Sometimes referred to as the 'Match of the Century', Hungary's 6-3 demolition of England at Wembley Stadium in 1953 is seen by many to mark the birth of football's modern age. If so, then Gusztav Sebes, the manager of the 'Magical Magyars,' was the man most responsible for the game's shaping place in football history.
Though rightly remembered for the beauty of their play and the brilliance of the world-class players in their ranks, the feats of Hungary's Aranycsapat (Golden Team) also marked a turning point in tactics, group dynamics and on-field fluidity. Sebes's side have come to be regarded as a precursor for the most skilled and intelligent teams in the sport's subsequent history. As Hungary's inspirational captain Ferenc Puskas once said: "When we attacked, everyone attacked, and in defence it was the same. We were the prototype for Total Football."
And Johnathan Stevenson from the BBC Relates (quoting Jackie Sewell and of great England fame Sir Bobby Robson):

As if to prove their point, the rampant Hungarians demolished England 7-1 in a friendly in Budapest six months later. The old way of playing was over but a bond between the teams that would last several decades had begun.
In November 1993, the remaining survivors were invited to Budapest for a grand dinner to celebrate the 40th anniversary of Hungary's famous win. "I've never experienced the sort of camaraderie with anyone else that we had with that team," Sewell told me. "There was a terrific bond between the players and it never went away.
"We were shown around Budapest, taken to some vineyards and then plonked on a big stage with TV cameras around where they presented us with these gold cups. It was marvellous, they really looked after us - but that's the sort of people they were."
I

Some interesting records:
  • World Record: most consecutive games scoring at least one goal: 73 games (April 10, 1949 to June 16, 1957).
  • World Record: longest time undefeated in 20th and 21st centuries: 4 years 1 month (June 4, 1950 to July 4, 1954). 
  • World Cup Record: 27 goals scored in a single World Cup finals tournament.
  • World Cup Record: 5.4 goals-per-match in a single World Cup finals tournament.
  • World Cup Record: +17 goal differential in a single World Cup finals tournament.
  • World Cup Record: 2.2 goals-per-match average for individual goal scoring in a single World Cup finals tournament (Sándor Kocsis 11 goals in 5 games).
  • World Cup Record: highest margin of victory ever recorded in a World Cup finals tournament match ( Hungary 9, South Korea 0 – July 17, 1954).
Some interesting notables:
  • First national side from outside the British Isles to defeat England at home since the codification of association football in 1863, a span of 90 years
  • First non-South American national side to defeat Uruguay (July 30, 1954), breaking a 17 game Uruguayan unbeaten run against non-South American competition dating from May 26, 1924.
  • First national side to defeat the Soviet Union at home (Sept. 23 1956)

Unfortunately the story's end begins just one month later with the start of the hungarian revolution. The revolt began with a student protest marching on parliament. When state security forces fired on the demonstrators, killing one, the news spread and violence erupted in the capital. Within a week militias quickly formed, fighting with the state and soviet troops, and had disbanded the existing government.

The majority of the team played for Budapest Honvéd and was out of the country playing Athletic Bilbao and chose, not to return as the revolution had erupted. While some players eventually chose to return to Hungary, 3 notables moved to Spain to play for Real Madrid and Barcelona.

On October 30th, the Soviet politburo decided to withdraw from Hungary. For a short time it looked like the peace would continue. On October 31st, the committee reversed it's decision, and by November 3rd Russian tanks had encircled Budapest, and on the 4th they rolled in, and the rest is history.

Hungary was brought back into the fold, and the diaspora continued. One other interesting interesting side story is the Hungarian waterpolo team which was training in the mountains near Budapest in preparation for the Sydney Olympics. They left the country, avoiding the revolution, and by December when the olympics happened, the revolution had been fully suppressed. Hungary beat the Soviet Union 4-0, in a heated match. Photos of a bleeding Ervin Zádor spread, and before to long the contest had been termed "The blood in the water match."

~~~~~~~~~~~~
References:
http://en.wikipedia.org/wiki/Magical_Magyars
http://en.wikipedia.org/wiki/Hungarian_Revolution_of_1956
http://en.wikipedia.org/wiki/Austria-Hungary
http://en.wikipedia.org/wiki/Blood_in_the_Water_match

Awesome 30 minute video about Ferenc Puskás
https://www.youtube.com/watch?v=STBQTqMnd8o



Sunday, January 26, 2014

Intellectual Libertarians!

I read a great piece today entitled "Confessions of a former Libertarian: My personal, psychological and intellectual epiphany." And what an epiphany it gave me indeed. Alas if you are hoping for political talk, this one is not for you.

Some of the realizations expressed in this essay gave me some great self insight on the process I've been through the last decade. To me libertarianism was politics, not a lifestyle, or philosophy. My libertarian bent is more along the lines of "the more you let government do, the more wasteful they can be." I'll confess that many things like roads, schools, and police seem like obvious places for the government, and I think almost everyone agrees. But just bring up the environment, or even worse (in the US) HEALTHCARE and people are up in arms (I support the environment deeply, and think basic healthcare is just as obvious)!

I can see now that my 20s were, in retrospect, the time I resolved the conflicts between my head and my heart. My life philosophy when I was younger was heavily driven by my life experience which mostly related around being the best at reading, logic, math, science etc, and being terrible with people.

For me I fell back on what I will now call "Intellectual Libertarianism," but let's be honest, everyone has some skew in there life at a young age, and most people just don't self analyze that much. When the world came to things like sense, logic, or math.... I always won, and still do, so why not fall back on what works? This was probably what affected my ethos the most. Alas, to assume that really anyone thinks just like you, or even close, is a huge fallacy. I had such an amazing disconnect from the real world, and had no idea! You can never hope to comprehend their life experience in any meaningful way via pure logic. I see that a lot of my perspective was based on a truly ignorant notion the author spoke well:

"the truth an ideologue is at pains to accept is that no life can live up to ideology. We are a messy species living messy lives. And we are lucky for this. The intellectual libertarian wants the world to be the kind of ideal world it never can be. He (and it’s often he) is unable to live with ambiguity and compromise. The beautiful (it is a kind of beauty) logical edifice of Libertarianism is built on the faulty premise that this is the kind of world that is built on logical edifices."

Accepting that the world could be so complicated took me MANY years. I still have a world of flaws to conquer, but this one, at least for me has been the most profound process of my last epoch. I expect this realization to guide me in the future to continue to use my values of empathy and compassion to understand rather than judge people. I'll keep my early life skills at work changing the world with cool and innovative tech forever!