<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Peter Zieske</title>
    <description>Content unrelated to reptiles.
</description>
    <link>https://peterzieske.com/</link>
    <atom:link href="https://peterzieske.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Tue, 02 Oct 2018 03:06:48 +0000</pubDate>
    <lastBuildDate>Tue, 02 Oct 2018 03:06:48 +0000</lastBuildDate>
    <generator>Jekyll v3.8.4</generator>
    
      <item>
        <title>Rejuvenating this site</title>
        <description>&lt;p&gt;I’m going to try giving this blog a bit more life.
It’s sat on the sidelines the past couple of years while I’ve been busy with life (mostly work).
I should build more things for myself, and this is one of those things.&lt;/p&gt;

&lt;p&gt;Posts will be different than they were years ago.
I’ll discuss whatever I feel like on here, not restricted by topic or thoroughness.
This means the following topics can be expected:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Rants&lt;/li&gt;
  &lt;li&gt;Video games&lt;/li&gt;
  &lt;li&gt;Politics&lt;/li&gt;
  &lt;li&gt;Technology&lt;/li&gt;
  &lt;li&gt;Rants&lt;/li&gt;
  &lt;li&gt;Reviews&lt;/li&gt;
  &lt;li&gt;Rambling complaints&lt;/li&gt;
  &lt;li&gt;Commentary with negative spins&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hopefully posts will flow out.&lt;/p&gt;
</description>
        <pubDate>Thu, 11 Jan 2018 00:00:00 +0000</pubDate>
        <link>https://peterzieske.com/2018/01/11/rejuvenating-this-site.html</link>
        <guid isPermaLink="true">https://peterzieske.com/2018/01/11/rejuvenating-this-site.html</guid>
        
        
      </item>
    
      <item>
        <title>The prequels were better</title>
        <description>&lt;p&gt;This shouldn’t be news to you: &lt;em&gt;Start Wars Episode XII: The Force Awakens&lt;/em&gt; is coming out Christmas day.
Like millions of fans around the world, I am delighted and can’t wait to see it.
Anticipation of the new movie is causing a lot of people to start talking about &lt;em&gt;Star Wars&lt;/em&gt; again.
Much to my annoyance however, this talk seems to inevitably lead to the repeated trashing of the &lt;em&gt;Star Wars&lt;/em&gt; prequels (Episodes I-III) in comparison to the sequels (Episodes IV-VI).&lt;/p&gt;

&lt;p&gt;I simply do not understand the hatred directed at the prequels.
Every single &lt;em&gt;Star Wars&lt;/em&gt; fan seems utterly certain that none of Episodes I-III deserve to call themselves &lt;em&gt;Star Wars&lt;/em&gt; films.
WHY??
I am not a professional film critic and have no authority to my claims, but I am going to try my best in this post to explain why I believe the prequels were vastly superior to the sequels.
Please challenge me and show me why I’m wrong. I want to know why I’m not seeing straight.&lt;/p&gt;

&lt;h3 id=&quot;acting&quot;&gt;Acting&lt;/h3&gt;

&lt;p&gt;The first thing always cited when thrashing the prequels was that their acting was atrocious.
This is when I start banging my head against the table.&lt;/p&gt;

&lt;p&gt;Someone please explain to me how a cast including Ian McDiarmid, Natalie Portman, Samuel L. Jackson, Christopher Lee, and Ewan McGregor gets beaten by Mark Hamill, Harrison Ford, and Carrie Fisher.
Who is Mark Hamill?
Somehow we let the performance of Hayden Christensen as Anakin undermine a star-studded cast to the point that they’re beneath Mark Hamill.&lt;/p&gt;

&lt;p&gt;Anakin Skywalker was the toughest role in the whole series.
Evolving from an innocent desert boy all the way to Darth Vader is something few actors can pull off.
Hayden Christensen was tasked with the most dynamic Walker White-like role and gets no credit for his efforts.
Luke, Han, and Leia have simple static characters (other than the cringy love story that serves absolutely no purpose).
They start off as good guys and they finish as good guys.
In the middle they might’ve gotten angry or had to let out a scream, but it wasn’t &lt;a href=&quot;https://www.youtube.com/watch?v=_lOT2p_FCvA&quot;&gt;convincing&lt;/a&gt;.
One could argue that Darth Vader was dynamic character, but no one can seriously believe that breathing heavily and saying “Nooooo” is good acting.&lt;/p&gt;

&lt;p&gt;Finally, there’s Jar Jar Binks.
I personally am a great fan and love saying “Me sa hungry” just as much as doing Chewbacca roars.
I can why so many found him utterly annoying though.
Lucas Films saw the same thing too!
They almost completely redacted Jar Jar from the scripts of Episodes II and III to appease its fans.
However, amid all the protests biased against the prequels and its characters, the elephant in the room never got mention: C-3PO.
This stuttering linguist somehow worked his way into every movie in the series!
Nobody likes C-3PO. He has no memorable quotes and slows down every scene he’s in with his cowardliness and impeded speech.
The prequels are to blame for introducing C-3PO, but the biases fans kept him alive.&lt;/p&gt;

&lt;h3 id=&quot;plot&quot;&gt;Plot&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Star Wars Episode IV: A New Hope&lt;/em&gt; was initially just &lt;em&gt;Star Wars&lt;/em&gt; a standalone film.
This is understandable; a studio does not know whether a movie will be successful enough to warrant sequels.
However the plot must suffer from such a decision.
Here’s a one-sentence synopsis of the original film: An orphan boy finds out he has mystical powers and a destiny to overthrow an evil empire, which he accomplishes.
Now go to your local library, checkout a random pre-teen fantasy novel, flip to its back cover, and you will find the exact same words!
Maybe the 1970’s were different, but today &lt;em&gt;Star Wars&lt;/em&gt; has neither a refreshing nor a deep plot.
Things don’t get better with the next two films.
Episodes V and VI extend the original in the typical Hollywood style:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;It seemed like there was a victory at the end of the first movie. Wrong.
The Empire still rules the galaxy, Darth Vader is still alive, and even the Death Start is being rebuilt.
Nothing was accomplished and thus we need more movies.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;It turns out the main protagonist isn’t actually an orphan and his father has been playing a major role from the start.
Luke was told definitively his father was dead, but it makes for a much better mid-movie/life crisis if facts get conveniently reversed.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The main protagonist is actually even less of an orphan than we thought; his sister’s been with him all along.
But don’t worry, she falls in love with the only other prominent male character so we can have the obligatory useless romance.
It almost seems like that in the next film we should find out that Chewbacca is a sentinel secretly sent from Luke’s mom to keep him safe.
(Please don’t do this Disney.)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On the flip-side, the prequels set the exposition for all the cliche twists in the sequels.
This is accomplished with a plot actually meant from the start for three movies and is much more original and satisfying:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The “Chosen One” theme is used again, but &lt;a href=&quot;https://www.youtube.com/watch?v=v_YozYt8l-g&quot;&gt;this time&lt;/a&gt; he does the opposite of what destiny says.
Besides the point that Anakin does eventually destroy the Dark Side, this is unprecedented and very moving.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Romance is used for a purpose other than making you feel uncomfortable while watching with parents.
&lt;em&gt;Love&lt;/em&gt;, the most infallible good in the world, was what set off the chain of events to make Anakin evil.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;No war of “good vs evil” was responsible for the Empire rising to power.
The Emperor accumulated power by orchestrating a fight in which he lead the good side.
Instead of warring around like medieval tribes, politics won in a way reminiscent of many more modern events.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Maybe in 20 years the above points will no longer seem significant and every pre-teen book will tell the same story.
However in today’s world that is not the case. The prequels’ plot is far superior.&lt;/p&gt;

&lt;h3 id=&quot;believability&quot;&gt;Believability&lt;/h3&gt;

&lt;p&gt;I know &lt;em&gt;Star Wars&lt;/em&gt; is set in a fantasy galaxy very different from real-life on Earth.
However there are still expectations of believability that must be met.
The films must seem consistent with the rules of universe.
Both the prequels and sequels had flaws here, but the sequels are just atrocious.&lt;/p&gt;

&lt;p&gt;I might actually be in the majority with this point: Stormtroppers are the worst elite fighting force in the Galaxy.
In a world that surely had infrared goggles and seeking missiles, the Stormtroppers and Tie Fighters could never stop missing.
The only major target the Empire hit in all three movies was a planet!
Meanwhile, the Rebels and their couple dozen star-fighters are able to put up a fight.
Everyone loves rooting for the underdog, but nobody’s satisfied if the incumbent throws the match.&lt;/p&gt;

&lt;p&gt;Speaking of throwing fights, how did the Death Star get destroyed &lt;em&gt;twice&lt;/em&gt;?
I already mentioned how bringing back the Death Star was a cheap plot trick, but it’s almost insulting if the battle station is brought down in almost the exact same way:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Rebels spies steal plans exposing Death Star weaknesses.
(From a computer security perspective this shouldn’t even be an issue.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The Rebels send about a dozen star-fighters to take down a moon-sized warship.
There were additional larger cruisers sent in during Episode VI, but they never attacked anything and literally only served the role of getting trapped.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The teeny Rebel star-fighters find a way to shoot at the Death Star’s core with their teeny weapons.
Somehow this is sufficient, the Death Star blows up, and the fighters escape faster than the nuclear explosion.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If my trillion dollar planet was blown up, the last thing I’d do is spend another trillion to build it in the exact same way with the same weaknesses.
Why didn’t they weaponize an existing planet (with a non-nuclear core) or something different with similar scale?
It’s aggravating to watch a movie and have questions like those above pop up.&lt;/p&gt;

&lt;p&gt;If it wasn’t for the prequels, I would think Lucas didn’t care at all about maintaining his &lt;em&gt;Star Wars&lt;/em&gt; universe.
The prequels show us all the things that could exist in &lt;em&gt;Star Wars&lt;/em&gt; without giving the feeling of being &lt;em&gt;Force&lt;/em&gt;-fed.
There many fantastics planets, diverse alien species, and advanced technologies.
The Droid army again sucks, but it’s excusable this time because of their AI.
The Clone army actually has numbers that reasonably rival the Droids.
Sure, it’s probably the case that the prequels on achieved their better realism via modern CGI, but I’m not going to scale up the sequels’ just because their special effects were so groundbreaking for their time.
The same goes for casting and plot.
When I watch a movie the only thing that matters is the picture and sound, not the age.&lt;/p&gt;

</description>
        <pubDate>Fri, 04 Sep 2015 00:00:00 +0000</pubDate>
        <link>https://peterzieske.com/2015/09/04/the-prequels-were-better.html</link>
        <guid isPermaLink="true">https://peterzieske.com/2015/09/04/the-prequels-were-better.html</guid>
        
        
      </item>
    
      <item>
        <title>If everyone used adblock</title>
        <description>&lt;p&gt;Using adblock is almost a no-brain decision these days.
It does so much to improve the web-surfing experience of browsers:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;First and foremost: adblock blocks ads and uncovers content.
Many websites (almost all news sites) today are rendered unreadable due to ads.
They interrupt your navigation telling you to “Click to continue”, inflate across the whole browser when you accidentally hover over them, scream noise at you in a video player with a broken mute button, randomly collapse/expand, etc.
Their goal is to steal your focus and put it on their product.
Your goal is to read the headlines, so you install adblock.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Adblock gives you speed.
Not surprisingly, making 50 less HTTP calls does allow a page to load faster.
Not being forced to watch the same movie trailer for the 16th time means you don’t have to wait for it to buffer for the 16th time too.
There’s not a single ad in the world that speeds up a webpage.
Installing adblock is cheaper than getting more bandwidth from an ISP.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Security.
Suppose you want to watch a sports game, but you can’t find it in your cable subscription because none of the teams playing are local.
There are some (very illegal) sites which allow you to (illegally) stream such games.
These (deplorable) sites are supported by advertisers whose morals are often even lower.
You might be smart enough to dodge their phishing attempts, but your browser will left all alone to fight off whatever malicious code is present.
If you install adblock and navigate to one of these dirty corners of the web (for security research purposes), you’re likely to come out unscathed.
Since middle school I’ve been using adblock on regularly updated Windows (without the Norton virus).
During this time I’ve never gotten a virus from web-browsing.
(Of course, this is more due to the fact that I’ve &lt;em&gt;never&lt;/em&gt; done anything illegal on the Internet.)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Given how overwhelmingly beneficial adblock is to web-browsing, I’m stunned at how often I find people who don’t have it.
&lt;!-- I guess it's not being advertised enough. --&gt;
Somehow the same inexplicable forces keeping IE7 at a significant market share are suppressing adblock’s popularity too.
However, I don’t believe we’ll this is a permanent fate.
Adblock will eventually achieve prevalence.
One of the following things will happen:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Adblock continues to naturally grow in popularity.
Eventually it reaches some critical point where a media outlet decides to run the story: “Could this free program bring down Google?”
Boom! CNN, ABC, NBC, and CCTV find their pundits and scream it in everyone’s ears.
Maybe this is a bit too dramatic, but this is the media.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A major browser builds in adblock to an update.
Could this really happen? Definitely.
This is how we eradicated pop-ups.
Mozilla and Microsoft are already pushing Do Not Track into their browsers (with Google reluctantly following).
Going from DNT to a basic adblock is a tiny jump.
Firefox already &lt;a href=&quot;http://www.geek.com/apps/mozilla-just-built-an-ad-blocker-into-firefox-1631245/&quot;&gt;did it accidentally&lt;/a&gt; in their beta.
Additionally, almost all browsers now feature a Reading Mode which oblitherates all parts of a website except the exact content to be read.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After that lengthy introduction we can finally raise the question:
How does the Internet respond if everyone uses adblock?
Ask this to someone, and their first thoughts will seem dismal:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Google is doomed.
  The Internet relies on ads. Half of it can’t survive with adblock.
  The only things left would all cost money!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is quite reasonable to think.
Most sites are simply never going to be worth a $5/month subscription or a Wikipedia-like fund-raiser; ads are essential to survival.
A recent New York Times &lt;a href=&quot;http://www.nytimes.com/2015/08/20/technology/personaltech/ad-blockers-and-the-nuisance-at-the-heart-of-the-modern-web.html&quot;&gt;article&lt;/a&gt; offers a less alarmist point of view:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If blocking becomes widespread, the ad industry will be pushed to produce ads that are simpler, less invasive and far more transparent about the way they’re handling our data&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In order to agree with NYT, you must believe that the Internet will surrender to a less effective means of funding.
I do not see that happening.
The Internet doesn’t have its back against a wall; it’s standing in front of a bookshelf.
Adblock has weaknesses. It cannot call the shots.
In the rest of this post we’ll look at some ways for content providers to circumvent adblock without losing their funding or going to paid tiers.
Many of the methods may seem obvious and almost all are already in the wild today.&lt;/p&gt;

&lt;h3 id=&quot;adblock-detection&quot;&gt;Adblock detection&lt;/h3&gt;

&lt;p&gt;Adblock detection most immediate fix to the adblock problem today.
Simply detect the use of adblock and deny serving any content if it’s there.
Most users will cave in and allow the ads.
Hulu is a great example of this.&lt;/p&gt;

&lt;p&gt;Adblock detection is not a long-term solution however.
Most of the detectors work by using a &lt;a href=&quot;https://en.wikipedia.org/wiki/Animal_sentinel&quot;&gt;canary in a coal mine&lt;/a&gt; approach:
Attempt to load something disguised to look like an ad and then check to see if it actually loaded.
This is an easily beatable strategy though.
An adblocker can just load a full webpage with ads in the background and only display the filtered contents to the user.
The adblocker loses the speed advantage we praised earlier, but it makes this blog-post a more worthwhile read.&lt;/p&gt;

&lt;h3 id=&quot;apps&quot;&gt;Apps&lt;/h3&gt;

&lt;!-- This first method might be the most prevalent solution. --&gt;
&lt;p&gt;Simply stated: There are no extensions for mobile apps, and therefore there is no adblock to worry about.
Developers decide exactly what is displayed in their apps.
Need an ad for funding? Done. There’s nothing in the way.&lt;/p&gt;

&lt;p&gt;Desktops are on the decline.
People love their phones, tablets, and all the apps on them.
Given a choice between a mobile website and a native app, everyone goes to the app.
Any speed and security that can be gained by using adblock in a browser is just outclassed by switching to native.
(Most mobile browsers don’t even support extensions yet.)
Advertising from within apps is often enough to completely fund a company.
Some companies completely forgo having a web-app at all:
The average startup website is just a useless cookie-cutter jumbotron that links to its iOS and Android apps.&lt;/p&gt;

&lt;p&gt;In the case of Google, Android can be seen as one giant app.
The Google Play phones are a direct connection to Google without any filters or blockers.
They can serve ads in searches and suggest restaurants in Google Now with ease.
Additionally, they get a cut out of all the ads running through their services on apps in the phone.&lt;/p&gt;

&lt;p&gt;The app solution is far from perfect.
It is much cheaper to make a single web-app than to build/publish separate native apps on iOS, Android, Windows, OS X, Linux, etc.
For some business, it fundamentally doesn’t make sense to have only native apps.
News sites and blogs need URLs in order to be shared and spread.
There is no equivalent to a hyperlink for apps.
The web needs solutions too.&lt;/p&gt;

&lt;!--
### Subscriptions and donations

This is the least interesting of the proposals, so I don't feel too bad if you skip ahead.
We should start off by fixing the definition of donation: A donation is a gift of money with no intention to bias or own a product.
If we don't say this, it can be argued that advertising or subscribing are forms of donation.

Donations aren't for every site, but they're not as bad of an option as many think.
People do donate.
Before the advent of &quot;Acceptable Ads&quot;, Adblock Pro used to be wholly funded via PayPal.
(This is still true for the majority of other browser extensions.)
Wikipedia, a top 10 most visited site in the world, runs off of donations with zero advertisements.
People on Kickstarter provided $55,000 to fund a [potato salad][potato]!

The concept of *micropayments* is also starting to gain traction.
Micropayments aren't meant to fund large efforts, but instead can be seen as tipping the Internet.
Bloggers could add a PayPal button right next to the sharing icons for their posts.
Hosting a static website could easily be covered by small $0.50 payments here and there.
If you doubt that people would ever do such tipping on the Internet, watch a [Twitch](http://www.twitch.tv/) stream.
Bitcoin and other cryptocurrencies are also great candidates for micropayments (which is the real reason this whole section exists).
--&gt;

&lt;h3 id=&quot;native-advertising&quot;&gt;Native advertising&lt;/h3&gt;

&lt;p&gt;Watch this &lt;a href=&quot;https://www.youtube.com/watch?v=E_F5GxCwizc&quot;&gt;clip&lt;/a&gt;. It’s a good laugh, and you deserve it after all my wordiness so far.&lt;/p&gt;

&lt;p&gt;Nowadays it’s very common for news agencies to have sponsored articles (a.k.a. native advertising).
These are stories whose content is biased to the views of a paying sponsor.
Native advertising can be very effective. People read biased stories and then believe that they can make an informed decision afterwards.
This is so much the case that consumer protection laws require such articles to be labeled “sponsored.”&lt;/p&gt;

&lt;p&gt;Again assuming a perfectly law-abiding society, an adblocker can easily detect stories with “sponsored” tags.
What can it do with them?
The content is the ad! The whole webpage would have to be hidden.
To make matters worse remove the law-abiding assuming (to include most of the media).
Lacking labels, now we have to use non-existent advanced NLP to figure out if we’re in the same conundrum.
The adblocker is powerless.&lt;/p&gt;

&lt;p&gt;Google let’s a small fraction of its search results be sponsored and labels them as such.
One could expect that adblock could win in this type of situation by blocking the sponsored links and still leaving plenty of content behind.
That’s not the case.
Google has offshore account; it knows how to use loopholes.
Why not just do something to the effect of labeling everything as an ad?
Say their sorting is the function of relevance and amount paid.
All of a sudden adblock needs its NLP oracle again.&lt;/p&gt;

&lt;h3 id=&quot;captcha-ads&quot;&gt;CAPTCHA ads&lt;/h3&gt;

&lt;p&gt;I saved the greatest evil for last.&lt;/p&gt;

&lt;p&gt;CAPTCHA advertisements function exactly as you would expect them to.
Take an ordinary CAPTCHA, replace the obfuscated text with a banner ad, and set the challenge to be something of the sort: “How much money could you save by switching to Geico?”
Block access to a piece of content until the correct response to the challenge is given.&lt;/p&gt;

&lt;p&gt;Just like a regular CAPTCHA, unless there is a huge advancement in AI, only a human can complete the challenge.
The user must &lt;em&gt;study&lt;/em&gt; the ad, find the message the sponsor wants to get across, and &lt;em&gt;repeat&lt;/em&gt; the message back to the ad.
Instead of having the option to hide or look away from them, users are forced to pay attention to the ads they despise.
It’s the most effective form of advertising possible without knocking on someone’s door.
Adblock is powerless.&lt;/p&gt;

&lt;p&gt;The wickedness doesn’t stop there though.
Advertisers can set their challenges such that users must actually click on their ad and enter their site in order to find the answers.
This is a 100% click-through rate!
Advertisers and websites are going to win big while consumers get a middle finger on their computer screen.&lt;/p&gt;

&lt;p&gt;Don’t blame me if CAPTCHA ads become widespread.
I’m not the only one to have thought of them.
There &lt;a href=&quot;http://www.nlpcaptcha.in/en/index.html&quot;&gt;are&lt;/a&gt; &lt;a href=&quot;http://www.adaptcha.com/&quot;&gt;already&lt;/a&gt; &lt;a href=&quot;http://solvemedia.com/&quot;&gt;companies&lt;/a&gt; out there with CAPTCHA ad platforms.
None of them are as big-name as Google or Facebook yet, and they’re also not nearly as exploitive as what we’ve discussed above.
However they are waiting. The infrastructure is there.
If adblock pushes the Internet to these companies, we’re in trouble.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;I don’t feel guilty about using adblock.
In the short-term, it makes life wonderful.
In the long-term, the Internet will be content with it too.
Go out and download adblock. Join me in continuing the fun thought experiment on how to break it.&lt;/p&gt;

</description>
        <pubDate>Sat, 22 Aug 2015 00:00:00 +0000</pubDate>
        <link>https://peterzieske.com/2015/08/22/if-everyone-used-adblock.html</link>
        <guid isPermaLink="true">https://peterzieske.com/2015/08/22/if-everyone-used-adblock.html</guid>
        
        
      </item>
    
      <item>
        <title>Building this site</title>
        <description>&lt;p&gt;I spent a long time deciding between using GitHub/Jekyll or WordPress for my blog.
The former is fast, customizable, and gives hacker-cred, while the latter is easy to set up and offers non-static site features.
As you can see: I ended up going with the GitHub/Jekyll combo.
This first post will serve as a record of my experiences building this blog without WordPress magic.
Because I want the blog to be focused on less-front-end-type things, there will be no follow-ups to this post.
As I build the blog, the updates will appear here.&lt;/p&gt;

&lt;p&gt;I want to establish I’m not some elite hacker web developer.
The folks that make the amazing tools deserve all the credit.
I’m basically just figuring out how to use them and giving more praise.&lt;/p&gt;

&lt;h3 id=&quot;mathjax&quot;&gt;MathJax&lt;/h3&gt;

&lt;p&gt;&lt;script type=&quot;math/tex&quot;&gt;\LaTeX&lt;/script&gt; is beautiful.
It’s probably half the reason I got into math and CS theory.
I use LaTeX everywhere I can.
I even had a double-space document class for my undergraduate liberal arts classes.
There’s no way I could bear to have a blog (which I intend to be technical) without LaTeX.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.mathjax.org/&quot;&gt;MathJax&lt;/a&gt; is incredible.
It makes me almost amazed at the power of JavaScript.
Installing LaTeX normally takes a hefty amount of time due to all the packages, libraries, etc.
Somehow the MathJax team managed to condense a substantial portion into one script:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In my initial research online I saw a lot of warnings about difficulties with working MathJax into Markdown syntax.
Luckily (praise) the Kramdown engine in Jekyll makes everything easy.
In-line math is as simple as &lt;code class=&quot;highlighter-rouge&quot;&gt;$$x_1 \lt x_2 \leq x_3$$&lt;/code&gt;, which produces &lt;script type=&quot;math/tex&quot;&gt;x_1 \lt x_2 \leq x_3&lt;/script&gt;.
Display math involves simply putting the double dollar signs on their own line.
The following code&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$$
x_1 \lt x_2 \leq x_3
$$
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;results in:&lt;/p&gt;

&lt;script type=&quot;math/tex; mode=display&quot;&gt;x_1 \lt x_2 \leq x_3&lt;/script&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt;
MathJax fails to display properly on mobile IE for Windows Phone.
If you are one of the few, you can remedy this by telling IE to view the desktop versions of sites using MathJax.
IE does not let you apply this setting for on a per-site basis, so I recommend setting up desktop mode on a different WP browser such as &lt;em&gt;UC Browser&lt;/em&gt; and then using it when viewing MathJax sites.
Hopefully Edge will fix these woes.&lt;/p&gt;

&lt;h3 id=&quot;pure-css-hamburger-menu&quot;&gt;Pure CSS hamburger menu&lt;/h3&gt;

&lt;p&gt;What is a hamburger menu?
It’s that &lt;script type=&quot;math/tex&quot;&gt;\equiv&lt;/script&gt; sign in the top-corner of mobile sites that stows away all the links that cannot fit on a small screen.
If you’re reading this in a browser, resize it so you can see what I’m talking about.
Normally I’d be ranting about the terrible reachability/obscurity implications, but that post is saved for later.
My site includes a hamburger menu because it’s conformist and exploring other options is too difficult (especially for a non-native app).&lt;/p&gt;

&lt;p&gt;The default &lt;a href=&quot;https://github.com/jglovier/jekyll-new&quot;&gt;Jekyll-new&lt;/a&gt; theme provides a pure CSS hamburger menu that opens by &lt;em&gt;hovering&lt;/em&gt;.
So unless you’re using an ancient Blackberry click-ball or Microsoft’s canceled McLaren phone, there’s no way to navigate the site!
Changing the behavior to be click-based is not hard.
It’s basically the Hello World program of jQuery:&lt;/p&gt;

&lt;div class=&quot;language-javascript highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nx&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;ready&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(){&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;#hamburger&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;click&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(){&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;#ham-menu&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;toggle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Why go back to pure CSS?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Speed. One less HTTP call is one less millisecond.&lt;/li&gt;
  &lt;li&gt;Elegance. It’s called &lt;em&gt;Pure&lt;/em&gt; CSS for a reason.&lt;/li&gt;
  &lt;li&gt;Functionality. I actually had some trouble getting the jQuery to cooperate with the media-queries that were revealing/hiding the hamburger menu.
Toggling off the menu in the hamburger meant that the menu would no longer appear when viewing the site in wide-screen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key to the pure CSS hamburger is to use a checkbox input.
It will store the state of the menu, which can be referenced via CSS.
The checkbox is hidden (because it looks nothing like a hamburger) and instead activated via a label.&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;style&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.menu-toggle&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nl&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.menu-dropdown&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nl&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.menu-toggle&lt;/span&gt;&lt;span class=&quot;nd&quot;&gt;:checked&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;~&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;.menu-dropdown&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nl&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;label&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;menu-icon&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;for=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ham&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;input&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;checkbox&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ham&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;.menu-toggle&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;ul&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;menu-dropdown&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;li&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;li&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;li&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The approach is however limited.
There’s nothing show-stopping, but a few things arise from CSS’s limitations:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;VimFx cannot see the menu icon.
There are no links in the icon because they interfere with the checkbox, and the checkbox itself is hidden.
Thus the icon evades the scanning of VimFx (and Vimium).
This of course is not an issue if you only intend for your menu to be used on mobile.&lt;/li&gt;
  &lt;li&gt;The menu icon must be tapped again in order to collapse the menu.
Ideally tapping on the article should switch the focus back.
Mobile sites rarely have this feature but it is very common on native apps.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sun, 26 Jul 2015 00:00:00 +0000</pubDate>
        <link>https://peterzieske.com/2015/07/26/building-this-site.html</link>
        <guid isPermaLink="true">https://peterzieske.com/2015/07/26/building-this-site.html</guid>
        
        
      </item>
    
      <item>
        <title>Hello World!</title>
        <description>&lt;p&gt;Welcome to my blog!
This is its obligatory introductory post.
I want to give an idea of what type of content to expect from here.&lt;/p&gt;

&lt;p&gt;I studied Computer Science in school.
Thus it should not be a surprise that the focus of this blog will be on the same topic.
Specifically within CS, I enjoy cryptography and system security.
I still study both fields today and am planning my future career around them.
Expect many posts on the matter.&lt;/p&gt;

&lt;p&gt;In addition to CS, I actively follow tech news and tend to generate a lot of commentary from what I see.
Some rants may occasionally leak into here.
I also earned a math minor in college and continue to study it for interest and crypto purposes.
It too is fair game to appear in this blog.&lt;/p&gt;

&lt;p&gt;Of course, the direction of this blog could always change as I myself evolve.
I don’t expect any drastic differences to appear, but I’m not going to rule them out.
(My dad is a CS guy who now does farming on the side.)
Nevertheless I hope you enjoy whatever you find here in my blog.
I will do my best to keep it watered.&lt;/p&gt;
</description>
        <pubDate>Sat, 11 Jul 2015 00:00:00 +0000</pubDate>
        <link>https://peterzieske.com/2015/07/11/hello-world.html</link>
        <guid isPermaLink="true">https://peterzieske.com/2015/07/11/hello-world.html</guid>
        
        
      </item>
    
  </channel>
</rss>
