The limitations of integrating Pardot Forms into React or modern framework

    Here's a post that hopefully saves someone a few hours of googling. I have a client who has a React-based Kiosk application and they want to use Pardot Forms to capture leads. This seems like a relatively straightforward, even reasonable ask and I assume, you dear reader thought so too. So you've probably tried something like this, assuming that you can post to a form like some jackass who expects a modern framework that assumes that this is feasible and you envision and/or wrote something like the following in beautiful ES6/ESnext syntax:

    submitSignup(e) {
         const data = new FormData(document.getElementById('signupForm'));
         fetch('url-to-form-paradot-submission', {
           method: 'POST',
           dataType: 'jsonp',
           body: data,
         });
      }

    This seems like it should work but, of course, it does not. Instead, you'll be greeted with a wonderful CORS error but the Pardot forms do not have any CORS controls. There's little information, and the developer documentation is sparse but I was able to unearth from the salesforce docs the following:

    Submissions Using Ajax

    Pardot doesn't support submitting data to form handlers via Ajax requests. When attempting to submit data to a form handler using Ajax, you will likely see errors like:

    XMLHttpRequest cannot load {www.site.com/FormHandlerURL}. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '{page from which form handler should be getting submitted on client's website}' is therefore not allowed access.

    This is what's known as CORS (Cross-Origin Resource Sharing). Pardot doesn't currently support CORS or JSONP for form handlers. It is possible to simulate a JSONP response by setting the Success and Error URLs for the form handler to be JavaScript URLs that execute Success and Error callbacks, respectively.

    So the answer is that it doesn't support AJAX and the only way is to hack the form responses to trigger JS scrips. I managed to find a GitHub project where a user created a Pardot Form AJAX Handler which shows an example with callbacks. Oy.

    Bonus: As total newbie to Pardot, I found these videos helpful for navigating the Pardot interface. They're out of date, the UI has changed, but the core features can mostly be found in the same places.


    The Mac Pro should be the most boring Mac.

    At the event, Apple also plans to debut new software features for its devices, including a dark mode for easier nighttime viewing and new productivity tools for the iPad. The company has also internally weighed previewing a new version of the high-end Mac Pro, according to people familiar with the deliberations.
    - Apple Plans on Combining iPhone, iPad, Mac Apps by 2021, Mark Gurman, Bloomberg

    Buried in the bombshell is something of particular interest to me and this blog. I find this worrisome, Apple really doesn't seem to get it. The Mac Pro should be a boring box with the latest whatever internals with a few drive bays and PCIe slot with big numbers that people like myself only care about. What it shouldn't be is worthy of a press event or representing a paradigm shift or some other Jonny Ives goofball design. Want a beautiful shiny "wow-your-clients" pro computer? That's the iMac Pro, not the Mac Pro. What people want is user upgradable storage, ram, and PCIe: for NVMe storage, for GPUs, for esoteric I/O upgrades. How do I know this? There's certainly a demand as I've had well over 40,000 different users access my Mac Pro Upgrade Guide, and my blog isn't even a blip in the digital ocean.


    Testing accessiblity with the CERN WorldWideBrowser

    Here's a fun one for any web developers out there, you can play with a JS reconstruction fo the WorldWideWeb Browser (the first web browser) for the NeXT OS. Go to worldwideweb.cern.ch.

    Its fun in it's own right, but the CERN browser is a good measuring stick of how accessible a website truly is without CSS or Javascript or even a full HTML 1.0 spec. Without any support of POST methods, WorldWideWeb can't even interact with forms but information is often visible.

    Take, for example, my blog. It's easy to consume, meaning anything can traverse it and index it with minimal effort. Anyone with an out-of-date browser arguably can access it. Incredibly many news sites are usable albeit awkward, like CNN.com and NYTimes fair well. ABCNews does not, nor will anything requiring a form like Google.com.

    Information architects should take note; there's something to be said about resilient markup languages are.


    the iMac hasn't been updated for 602 days

    As noted in the MacRumors Buyer's Guide and discussed in the MacRumors forums, it has now been 602 days since Apple last updated its iMac lineup, a new record for the longest span between iMac refreshes ever. The previous record was 601 days between October 2015 and June 2017 refreshes. - Joe Rossignol, MacRumors

    Ouch. Just as I was spit-balling the future of the Mac Pro, Apple has let another computer rot in the supply chain. Apple's major press-opuses should be relegated to only large scope updates, and frequent refreshes with much less fanfare, assuming this is even a bottleneck. Really though, we should see nearly yearly updates with CPU and/or GPU refreshes to keep in step with PC manufacturers. This isn't even a particularly astute observation or even remotely original. I'm guessing this has more to do with maximizing profit vs. the hassle of changing the magical JIT manufacturing. It's not a hopeful sign if even Apple's signature desktop has been given the cold shoulder. There's a feeling among the Mac faithful that Apple doesn't care about the Macintosh. With numbers like these, it's easy to see why.


    Year of the Mac Pro?

    Today the Macintosh is 35 years old. Rather than a retrospective, I'm more interested today in the future of the Macintosh as my most trafficked blog post I've written is an upgrade guide the classic Mac Pro which are now 13-7 years of age depending on the model. In mid-2018, Apple announced that the Mac Pro would be revamped in 2019 and yet many Mac loyalists were irked that at the WWDC Apple didn't announce a Mac Pro. It was never going to be a one-more-thing, as it's very unlike Apple to announce a schedule for a future product.

    Apple's desktop line up is far more crowded than it's been in some time, with the revamped Mac Mini, iMac, iMac Pro, and Mac Pro (which is half decade without an update). The Apple mainstay has a been at two or three computer company per formfactor, squarely divided between desktop and laptop (and briefly servers and eMacs) since roughly 2005 for desktops (Mac Mini), and 2008 for laptops (MacBook Air). The formula has been (outside of the illfated G4 Cube):

    Classic Era (2000 - 2005)

    • Entry Level - (iMac/iBook)
    • Professional - (PowerBook / PowerMac)

    Intel Era Line Up (2006-2016ish)

    • Budget/Small form factor - (Mac Mini/MacBook Air)
    • Mid-level - (MacBook / iMac)
    • Profesional - (MacBook Pro / Mac Pro)

    Current Era (2017ish - Current?)

    • Budget - (Mac Mini, MacBook Air, iMac 21 Standard Definition, MacBook?)
    • Mid-level - (MacBook? MacBook Air? / MacBook Pro 13 / iMac 4k/5k)
    • Profesional - (MacBook Pro Touchbar / Mac Pro / iMac Pro)

    Any iteration of the Mac Pro is going to confuse the Mac line-up further. The MacBook Air, MacBook Pro, MacBook are all within $100 of each other at for base models and 1.4 pounds, 1 hour of battery life and 1 inch of screen size. The Pro is clear-cut as the performer and the MacBook as the traveler and the Air as the bridge... for some reason. It'd only really take adding a second port (perhaps Thunderbolt) to the MacBook to negate the under performing Air.

    The iMac Pro is undoubtedly a powerful machine but at a king's ransom, starting at $5,000. If a Mac Pro lands with anything resembling a dedicated PCIe slot, user serviceable RAM and CPUs, I can't imagine anyone opting for an iMac Pro and especially if starts at the still very expensive $3000 entry point as previous Mac Pros have. The iMac Pro is powerful but also, at it's price-point with non-upgradable GPU, and terrible user serviceability, hardly a compelling buy. Then there's the Mac Mini, if the Mac Pro keeps its current G4 Cube influenced hostile-to-power-users design, then anyone who can survive on more modest CPU and 64 GB of RAM is likely to eat the cost of a Thunderbolt PCIe case (or do the same with an iMac 5k). Based on my interactions with the Mac power users of this planet, we're all after the same thing: PCIe, User serviceable RAM, and upgradable CPUs and storage. This really should be Apple's most straightforward release year-over-year, the form factor of the classic Mac Pro is perfectly fine. Dust it off, update the ports from FireWire/USB2.0 to Thunderbolt and USB 3.x, slap in a modern motherboard with the latest specs and call it a day. Ideally, Apple would sunset the iMac Pro as a nice experiment in industrial design. As much as Apple dislikes user-control, the one segment where the users know better than Apple is professional work, see the fiascos of Final Cut Pro X and the Mac Pro 2013 which lead to the deep pockets of Hollywood abandoning Apple for the likes of PCs and AVID. The iMac's DNA never has been to be performance monster, although it evolved from entry level to a nice mid-level computer, sporting a beautiful integrated display. If the Mac Pro is modular, than the iMac Pro becomes the next G4 Cube.

    Recently though, with the reintroduction of the MacBook Air, Apple has shown a willingness to confuse the Mac line up with no clear price point. This should be a bad thing but it isn't for the Mac Pro. So where does that leave us? I'm mildly hopeful. Just mildly.

    Edit 01/29/19: NYTimes writes A Tiny Screw Shows Why iPhones Won’t Be ‘Assembled in U.S.A.’, which blames Mac Pro production yields on a lack of a certain screw. The idiocy here is the over-engineering and probably a healthy dose of hostility to user serviceablity, to echo myself Right To Repair Law Should Be The Rally Call Every Mac / iPhone User.


    Marco Rubio leads the charge to ban states rights from protecting consumer privacy

    "Any national privacy law must provide clear, consistent protections that both consumers and companies can understand, and the FTC can enforce. That is why my bill leans heavily on the Privacy Act framework," Rubio wrote.

    Rubio's bill would have the FTC establish a process in which individuals can contact companies to request access to their personal data. Companies would have to either provide the data to consumers or delete the data. If a company lets an individual view the data, the company would have to correct any mistakes if the person demonstrates that the records are "not accurate, relevant, timely, or complete." Companies would only have to delete the data if they choose not to provide it to consumers upon consumers' requests.

    -- Jon Brodkin, Sen. Marco Rubio wants to ban states from protecting consumer privacy, Ars Technica,

    This isn't even a "protection", as it's often unclear who even has your personal information and places all the onerous labor on the consumer. Deleting the data just means the company has to re-collect the information.

    This is on the heels of Tim Cook's call for comprehensive US privacy laws and Motherboard's bombshell, U.S. Carriers Are Selling Customers’ Real-Time Location Data . We've seen time and time again how callous and morally bankrupt companies can be when it comes to selling personal information time and time again. There shouldn't even be an argument, there's clearly a need for privacy protection... and yet here we are, in the midst of a Kakistocracy. For those keeping score, congress voted in 2017 for a rule to remove a FCC privacy rule, and The Verge compiled a list fo the 265 members of Congress and how much it cost to buy them off. All were Republicans.

    On the other side of the isle, Oregon's own Senator Ron Wyden has proposed a privacy law send company execs to prison for 20 years.

    Anyone who gives one royal damn about internet privacy should best review the sharp divide among party lines, such as the fight over municipal broadband. If there's one thing that's been apparent when it comes to digital rights advocacy, you can count on the Republicans to oppose it.


    Lab Rats: How Silicon Valley Made Work Miserable for the Rest of Us by Dan Lyons - A book review

    Dan Lyons is one of the more unlikely critics of Silicon Valley culture despite being a long time satirist, making his splash with his Fake Steve Jobs (FSJ) blog (and mediocre novelization). His irreverent portrayal of a smack-talking, faux new-age Steve, seems a bit short in retrospect. It was clever, candid and most of all funny, but never eclipsed the caricature of the on-the-spectrum, eccentric, once-hippie tech billionaire. In the end, in the cannon of Steve, Lyon helped lionize (yeah, you had to see that coming) Jobs, with the endless speculation of who FSJ real identity was. It was a simpler time.

    As a seasoned tech journalist, watching tech giants cannibalize his own industry, Lyons ended up regurgitating in the soliloquy, "if you cant' beat 'em, join 'em," and thus fully embraced the mantra when he took a tour of duty at Hubspot.

    What followed was his book, Disrupted, a highly cynical view of the lauded unicorn companies of the Silicon Valley, where ageism, sexism, and even old-fashioned systemic racism run amok. Lyons learned the brutal truth behind the smoke-and-mirrors act, where Hubspot succeeded behind banal new-age corpo-speak, armies of call-center drones, using the oldest sales techniques in the book. His experience struck a nerve, that perhaps our so-called unicorns weren't special, other than the ability fib that they were more than anything than a donkey with a paper cone, making an ass out everyone who for buying into such a shallow sham.

    This go around, Lyons drops entirely his satirical lens refocused to far serious with more precision, with a deeply skeptical view of tech companies of all stripes, and argues that they are accelerating the wealth-income gap (Spoiler: they are), sowing the seeds of worker discontentment, destabilizing the economy and dehumanizing people by treating them as actual cogs in a machine, or lab rats in an experiment.

    There are interviews from anonymous interviews, to people willing to go on the record about their personal stories in the churn of the new workplace. The cast is extensive and of many backgrounds, be it newly minted fresh college grads suffering depression from being fired for not being a culture fit, workers feeling the burn of masked-racism, to the truly dystopian, workers who have to camp in freezing weather in England to save money while working for Amazon warehouses.

    The most poignant chapter is the damning of Amazon, who's piddly $15 raise still is insufficient, ending on the eerie Nick Hanauer interview about Jeff Bezos.



    “Hanauer, the billionaire-turned-activist, was at one time close to Bezos. I asked him if he had ever talked to his old friend about paying workers better and treating them more humanely. “I took a crack at getting him to care about it,” Hanauer said. Apparently, Bezos wasn’t persuaded. In recent years, “I have lost touch with Jeff,” Hanauer said. He was reluctant to say more.
    For years Hanauer has been trying to convince legislators to raise the minimum wage to $15 an hour, more than double the current minimum wage of $7.25. Even that $15 wage would not be enough to make things square, but it would at least be a start.
    “If the minimum wage had tracked the growth of productivity since 1968, it would now be $22,” Hanauer says. “If it tracked the top 1 percent, it would be $29.”
    “The reason to give back the money, he says, would be so that the one percent can save their own skins. As Hanauer sees it, the election of Donald Trump might be only the first step toward something much worse. “People were hurting, and they lashed out—by voting for the guy who was lashing out, too.”
    If we don’t shift wealth back toward workers and just keep carrying on the way we are now, Hanauer predicts we will end up in a real-life Mad Max movie: “If you don’t give it back, things are not going to get better. Oh, dude, we are in for a bumpy ride. This is going to get way worse before it gets better. I think the country is in trouble. The West is in trouble. We have institutionalized a set of dynamics which benefit the few and immiserate the many.
    “People are not going to get less pissed. People’s lives are going to get worse. People are going to be even more angry and more polarized. The talk will get even crazier. Plan on violence. Plan on it. People do stupid shit when they’re angry. It’s not going to be good. I think we’re going to have a lot of civil unrest. Hopefully we will avoid a civil war. The last time the country was in crisis like this was 1968. Remember that? We had hundreds of bombings. We had riots. Well, it’s been fifty years. We’re right on cycle.”

    It might sound alarmist or even silly out-of-context, but listening to NPR's Morning Edition with person-on-the-street-interviews, the idea of civil-conflict is often echoed by both the right-wing and left-wing alike. This isn't some lame "horseshoe theory" armchair analysis. Both sides blame each other for the problems, being divided on wedge issues instead of class issues.

    After so many books on my reading list, from Chris Hedge's America the Farewell Tour, Charlie LeDuff's "Sh*tshow: The Country's Collapsing and the ratings are great", Anand Giridharadas' "Winners Take All: The Elite Charade of Changing the World" all in the past two months, there's one very loud reverberating echo: The rise of populism can clearly be laid at the feet of the fear or reality of being left behind. James Carville campaign strategist of Bill Clinton once said, "it's the economy, stupid." He's correct, and yet wildly-off-base, as our neoliberal economic platform ushered by Reaganomics was realized in the under the tech-happy hand of Clinton. The economy, stupid, is now the cross-to-bear with the Silicon Valley being the chief architect of its demise.

    The final chapters focus on companies bucking the trend and succeeding while doing so. There's also a fair amount of evidence cited that companies with actual diversity and well-compensated, fairly treated employees tend to perform better. There’s a bit too much faith in companies with social agendas, but his end thesis supports this view. Lyons’ in the end doesn’t suggest an end to capitalism, (as the saying goes, capitalism is the worst system until you consider all the others) but an end to Miltonite religious zeal for shareholder capitalism. It’s a mammoth ask, but it is a salient point: maximizing short term gains for the quick buck isn’t the way to build the future.

    Most of all, the book is easily digestible for a dreary topic and made me laugh out loud... which probably wasn’t intentional.




    I originally posted this on GoodReads. I like GoodReads, but the community features are of little interest to me beyond reviews. I've had very little interaction with the community. It's mostly a place for me to log the books I read and leave notes to myself.

    I noticed yesterday though, five months ago I had a comment on my review of Lab Rats. The comment in question was about a particular phrasing that I never recalled using. I didn't see it in my original review (maybe I edited it out? I have a habit of obsessively reediting things). So I replied, not expecting a reply after a 5 month old comment but what ensued was gold, better than I ever expected. I figured it was worth screen-capping this exchange.


    A quick blog update - coming soon book reviews

    Not that I have regular readers, but I have a habit of announcing format changes to my blog, such as when I decided to focus on long form posts, my transition to jekyll from Tumbr, and that time I added view by topics to my blog or HTTPS.

    On that note, I'll start porting the book reviews I wrote on GoodReads to my blog on tech related reads since I burn through a lot. From my experience, anything I do on this blog is bound to get far more exposure than anything I do on social media, and I'd rather contribute to the open-internet instead of mega-properties. It seems silly that I've dedicated the time to write several long-winded meaningful reviews on GoodReads only to get flak from a neckbeard for a pointing out a book series turned into a cringey harem fantasy.


    Mostly Complete list of HEIF / HEIV (heic) on macOS in Q1 2019

    HEIF (High efficiency image format) as known as H.265 and MPEG-H Part 2 was introduced to iOS 11, and to later macOS 10.13.4 on March 29, 2018. It's been less than a year and support has rolled out at a reasonable pace. I've elected not to list HEVC (High efficiency video codec) itself, as it is housed the .mov container format and most video applications using Mac OS's internal video engine will support it. Also, open source libraries like ffmpeg have added support for HEVC. The .heic (HEIF) file format is a much bigger grab bag from my experience. Many video applications now support HEIC such as Premiere / Final Cut Pro / Motion / DaVinci Resolve hence they are on this list.

    I've tried to compile a complete list of known applications that handle HEIC. Undoubtedly I'm missing a few so if anyone has any others I'm not listing, feel free to let me know. Moving forward, .heic support is likely to be assumed. Notably, Affinity Photo on the desktop doesn't support HEIC (yet). I'll try to maintain this list at least until the one year anniversary if not a bit longer.

    Openable

    • Preview (macOS 10.13+)
    • Lightroom CC 1.4+, LightRoom CC 7.4+ (macOS 10.13+)
    • ImageMagick (macOS 10.13+)
    • Graphics Converter 10.4.3+ (macOS 10.13+)
    • Pixelmator/Pixelmator Pro (macOS 10.13+)
    • Acorn 6+ (macOS 10.13+)
    • Omnigraffle (macOS 10.13+)
    • Sketch (macOS 10.13+)</
    • Adobe Photoshop Elements 2019
    • Adobe Photoshop CC 2018+
    • Adobe Premiere Elements 2019
    • Adobe Premiere CC 2018+
    • Apple Pages (macOS 10.13+ warns about possible iPad support)</
    • Apple Keynote (macOS 10.13+ warns about possible iPad support)</
    • Apple Final Cut Pro (macOS 10.13+)
    • Apple Motion (macOS 10.13+)
    • Apple Compressor 4.4 (macOS 10.13+)
    • DaVinci Resolve 15+ (macOS 10.13+)

    Exportable

    This list is incomplete

    • Preview (macOS 10.13+)
    • ImageMagick (macOS 10.13+)
    • Graphics Converter 10.4.3+ (macOS 10.13+)
    • Pixelmator/Pixelmator Pro (macOS 10.13+)

    Browser Support

    None!

    HEIC surprisingly is not supported by Safari. Seeing as the HEIV/HEIF family is part of the MPEG group, the patents likely will likely limit its adoption. H.264 wasn't widely supported by holdouts like Mozilla until Cisco bought the patent and made it open.

    HEIF still is mostly treated as an intermediate format. Transferring HEIF from iOS to macOS with a Mac running a compatible OS will transfer images as HEIF. HEIF has expanded quite a bit since landing on Mac OS. Windows users are left hanging with the Adobe suite outside of Lightroom. For avant-garde browser-supported formats, see Getting started with Webp, JPEG2000, and JPEG-XR.


    Welcome to the Enshittening: where everything is bullshit.

    Fake people with fake cookies and fake social-media accounts, fake-moving their fake cursors, fake-clicking on fake websites — the fraudsters had essentially created a simulacrum of the internet, where the only real things were the ads.

    How much of the internet is fake? Studies generally suggest that, year after year, less than 60 percent of web traffic is human; some years, according to some researchers, a healthy majority of it is bot. For a period of time in 2013, the Times reported this year, a full half of YouTube traffic was “bots masquerading as people,” a portion so high that employees feared an inflection point after which YouTube’s systems for detecting fraudulent traffic would begin to regard bot traffic as real and human traffic as fake. They called this hypothetical event “the Inversion.”

    Max Read, "How Much of the Internet Is Fake? Turns Out, a Lot of It, Actually.", NY Mag

    This is a brilliant must-read linking some of my favorite articles recently like Rising Instagram Stars Are Posting Fake Sponsored Content (if that makes your soul hurt, then you're not alone). The article doesn't even account for some of the many fraudsters like BuzzFeed's investigative report "Apps Installed On Millions Of Android Phones Tracked User Behavior To Execute A Multimillion-Dollar Ad Fraud Scheme" or Fake Retail apps in the iOS app store. But if NYmag were to attempt to report on all the online scams not listed in this article from 2018, the entire tenor of the publication would need to shift into a security blog.

    We're surfing on a river of bullshit while each of us contributes our own tiny tributary of turds. We are all to blame for what is happening. To borrow from Esquire's Magazine, it's the enshittening, the active participation in shittifying the web.

    Amazon is a terrible place to shop, filled with fake reviews, counterfeits, fake products, stealth Amazon owned brands which they try and trick you into buying and we still shop at it.

    FaceBook doesn't give two shits about it's effect on politics, be it hate-speech that lead to murders, enabling Russian meddling, anyone's well being, or the gazillion infractions against privacy and we still use it, continuing to enshitten ourselves. Then there's our Enshitter-In-Chief, a one-man colon catastrophe when it comes to bullshit. He's so full of bullshit that he managed to make 28 disprovable statements (lie) publically a day last month. Even his underlings are more than gitty to perpetuate bullshit.

    To lazy to make up your own bullshit? Want to build an empire of bullshit? There's an entire bullshit industry you're probably not even familiar with, even if you've heard of low-rent bullshit like Fiver. There are full-on bullshit mills to generate bullshit on your behalf!

    We don't need "Virtual Reality," we're already living in one. Everything is bullshit — Happy New Year.

    01/31/23: This article was cited by Castlebridge's blog for the term Enshittening pertaining to the rise of Chat GPT. I wholeheartedly approve as Chat GPT gives us whole new avenues to shittify the web with generative bullshit. Chat GPT's impressive nature is that it produces confidently correct and incorrect information with impunity. We're likely on the precipice of new levels of bullshit when AI models are trained on content generated by AI. To use a dated reference, it'll be the "copy of a copy" effect as illustrated in Multiplicity. In a truly dystopian timeline, this limitation could lock AI to forever a pre-2022 mindset when content can be assumed to be predominantly created by actual meat bags, forever knee-capping human expression from evolving.

    Let the enshittening of knowledge begin. We will make ourselves more delusional and stupid in the process.


    Edge and Internet Explorer are dead - retrospective

    I hate Internet Explorer. I say that present-tense as its zombie-corpse still haunts the internet, holding back front-end web development. It's not a surprise nor even controversial. It's quite banal, so much so that my contrarian tendency makes me want to point out that IE was better than Netscape, (which it was). Even then with it certainly was not better than the many browsers after it.

    I used anything I could in the early days of Mac OS X to get away from IE 5.5: Mozilla Suite, Omniweb, Phoenix (later to become FireBird and finally FireFox), Chimera (Later renamed to Camino, a wonderful Cocoa/Objective-C port of FireFox).

    My ire for IE grew as I progressed a developer, there were those painful moments when a simple console.log would stop IE from executing a javascript file dead in its tracks, or creating conditionals like [if lte IE 7]. Internet Explorer often would take a design I slaved over in Safari and FireFox only to see a :last-child pseudo selector not work, and wonder why selectivizr.js wasn't working. So many polyfills and hacks...

    Edge was a different beast. Trident was revamped and renamed as EdgeHTML. It was fitting, rendering engine was modern (at least from a MS perspective). Things... worked. My opinion was suddenly, a nice lukewarm "It doesn't suck". I never thought I'd be sad to see Microsoft go.

    So I ended up writing up a post fitting for Internet Explorer and Edge, titled: How Microsoft lost the Browser Wars, the long form article style I prefer. It covers the a brief history of the browser wars and my personal take on how IE faltered and Edge failed.


    Making the cite tag sane: Announcing WebCites

    I wrote about a codepen I wrote last week. I found that there are some great libraries for citations but most are wanton overkill for what I wanted, a wikipedia-like simple citation system.

    I've since created a much smarter, dependency-free version and you can find the project on Web<cite>.

    Project goals

    • Generate a list from all the citations found within the article.
    • Detect multiple instances of the same source.
    • Number each <cite> instance, if used before, use the previous instance's number.
    • Uses anchor tags to link to the source at the bottom of the page to a specified div
    • No jQuery
    • Very easy to use

    Planned Features

    • Code fixes and some basic error checking
    • MORE DOCUMENTATION!
    • Arguments passed in as object for better configuration
    • Demo files
    • ES5 & ES6 variants
    • Source Title (optional)
    • Date retrieved (optional)
    • Author (optional)
    • CSS attributes for each property so lists can easily customized
    • Date Retrieved vs Article Date published
    • Repository contains minified distribution ready code
    • Multiple citation lists on the same page (multi-article support)
    • Optional demo Scss/CSS stylings
    • Generate as an ordered list instead of spans

    Demo

    See the Pen Simple Auto-generated citations using <cite&rt; and javascript no jQuery by Greg Gant (@fuzzywalrus) on CodePen.


    Find this project at: https://github.com/fuzzywalrus/webcites


    How to use CSS media queries for dark mode!

    Dark mode is all the rage. Safari Technology Preview added support for Media Queries. Chrome has already announced it will soon support Dark mode. The requirements are (as of writing this):

    I'm personally not a fan of using dark mode and I'm no more correct than the person who prefers it. The point is that preference matters. Some users find it either more pleasing or perhaps reduces eye strain. The best part though is its a fun and easy hack:

    p { color: white;}
    @media (prefers-color-scheme: dark) {
      p { color: black;}
    }

    Notably you can also detect light mode:

    @media (prefers-color-scheme: light) {
      /* do stuff */
    }

    It's that easy. If you have a simple site, it's quick to retrofit. More complex sites (especially with image backgrounds or poorly written CSS) probably will require a lot more work. It took me about 10 minutes total to make a beta of dark mode. More info at developer.mozilla.org. One of the more promising features is eventually we will have media-queries for inverted-colors, prefers-reduced-motion, prefers-reduced-transparency and prefers-contrast which is a big win for both designers and accessibility. Apple OSes already have a bulk of these features (macOS has invert, reduce motion, dark mode and low contrast, whereas iOS has increase contrast, reduce motion and invert) You can see them all at drafts.csswg.org. Allowing web apps and sites to sport these features probably will become a small but important design trend as users can exert greater control for experience over their OS and content they consume for the best visual experience based on preference and requirements.

    If you visit this website now with dark mode enabled and the correct browser, you'll get to see dark mode in action! Now the real question: are we going to have a "dark mode first" movement? ;)


    Making the cite tag sane

    While writing a long-form retrospective on how Microsoft lost the browser wars, I realized managing a citation list is a royal pain the ass. With 50+ sources, I want a very simple light-weight way to manage a source list. The requirements were as follows for my auto-citation list generate:

    • Generate a list from all the citations found within the article.
    • Detect multiple instances of the same source.
    • Number each <cite> instance, if used before, use the correct number.
    • Use anchor tags to link to the source at the bottom of the page.

    I opted to use jQuery although I might kill the dependency as the biggest thing I used it for was queries, each, appending and writing HTML. All easier to write with jQuery but in the era of wide support for querySelectorAll() hardly necessary. If I go that far, I might just package it up into an ultra-lightweight javascript plugin with a few basic configuration options: a target for the list of citations, what information to collect, and maybe one or two citiation options. For now, it's a very simple citation script meant for non-academic purposes.

    The process was pretty easy, the script creates an array of objects based off of the jQuery object, iterates through the array each time a new item is added to make sure there isn't a duplicate URL, and if there isn't already a duplicate, it's that entry to the list. The assembled array is iterated through so its data can be written the DOM. Duplicates are detected using the source URL.

    I styled it after Wikipedia and may add in the link to the instance of the citation in the article like Wikipedia. It'd be easy to add additional information to the citation if needed such as "data retrieved", but in the case of my blog post, that'd be the date written.

    See the Pen Simple Auto-generated citations using <cite&rt; and javascript by Greg Gant (@fuzzywalrus) on CodePen.


    Edge comes to the Mac... sorta

    Today we’re announcing that we intend to adopt the Chromium open source project in the development of Microsoft Edge on the desktop to create better web compatibility for our customers and less fragmentation of the web for all web developers.
    -----
    Microsoft Edge will now be delivered and updated for all supported versions of Windows and on a more frequent cadence. We also expect this work to enable us to bring Microsoft Edge to other platforms like macOS. Improving the web-platform experience for both end users and developers requires that the web platform and the browser be consistently available to as many devices as possible. To accomplish this, we will evolve the browser code more broadly, so that our distribution model offers an updated Microsoft Edge experience + platform across all supported versions of Windows, while still maintaining the benefits of the browser’s close integration with Windows. - Joe Belfiore , Microsoft Blog

    In a two-in-one announcement, MS is finally abandoning Trident (forked to EdgeHTML), the once iron-fist scourge of the web. Edge was too little, too late, and still too broken. Browser engines though come and go, with names like KTHML (Konqueror) and Presto (Opera), to be replaced with WebKit, Blink (once fork of WebKit), and the obscure like Goanna (a fork of Gecko). Granddaddy, Gecko still stands tall and gets the last laugh as Netscape's ghost did the unthinkable: outlast both Internet Explorer and Edge.

    It's entirely unsurprising MS is bringing Edge to MacOS as its a pretty low-lift with Chromium but doubtfully will gain any market share, as it joins the hoards of Webkit/Chromium reskins: Opera, Vivaldi, Yandex, Brave, Comodo Dragon, Amazon Silk, Samsung Internet, Torch, Slimjet, Steam's internal browser and so on.

    It makes my life easier but makes Edge effectively uninteresting and forgettable.