Paweł Grzybek, quoting at Stack Overflow:
Make sure they are in correct order (bottom to top).
Bottom to top. I would have never guessed, but he’s right. It’s LIFO. This is the reason Stack Overflow exists. What could we do without it?
If there’s one thing I don’t like about Google’s design, it’s the shadows behind the UI elements. Also, everything in this particular app is too big compared to other iOS apps. It feels like the company designed it to look right on an iPhone 5S and then just magnified everything to accomodate the larger device sizes.
Still, I see this new app being useful to share locations with friends on Android. Keeping it on my phone for now.
From the release notes of Slack for iOS, version 3.23.2:
Congratulations to the eagle-eyed winners of this week’s Spot the Difference competition, who noticed that we’d subtly updated the app icon, but had forgotten to mention it. You win our heartfelt admiration, and the pleasant, warm, tingling sensation of having been right all along.
The old icon was more playful with the lighter colors. I like the new one though.
Looking like Adobe Flash will be pushing daisies in 2020.
David Paul Morris, writing for Biz Journals:
“I have pretty strong opinions on this. I am optimistic,” Zuckerberg said. “And I think people who are naysayers and try to drum up these doomsday scenarios — I just, I don’t understand it. It’s really negative and in some ways I actually think it is pretty irresponsible.”
Elon Musk, in reply:
I’ve talked to Mark about this. His understanding of the subject is limited.
Zuckerberg sees a safe future of self-driving cars and thinks AI is great; Musk sees a future of bots that self-drive around killing people and thinks AI is incredibly dangerous.
Both viewpoints have their merit, though it’s interesting to see technologists of this caliber disagree in public like this. Who’s ultimately the more correct? AI has the potentiality for great evil but until that actually happens, I don’t have any way of calling it. I tend to lean towards Zuckerberg but if “his understanding on the subject is limited,” mine is limited a thousand times more so.
The other day I mentioned that flexbox was the solution to removing spaces from inline siblings. Turns out there’s another way. Take this:
If you set the
font-size: 0 and the
li’s to e.g.
font-size: 13px then you’ll achieve the effect of removing the whitespace from these items. It’s a hack though, and it comes at this very interesting side effect: if you have
font-size: 0 on a parent of an element that contains
contenteditable="true" and then set that element’s font size to the desired size, when you focus your cursor at the beginning of the HTML inside the
contenteditable="true", the caret won’t blink in Chrome. In other words, you’ll incorrectly think that you aren’t actually focused on it. This bug only occurs in Chrome. FireFox and Safari are fine.
It’s a small nuance, but it was a deal breaker on a recent project.
In the name of accessibility, Slack has rolled out an obnoxiously dark border on its chatbox. It’s so bad that people on Twitter think it’s a bug and there’s seemingly no way to disable it, without dipping into custom hacks. This chatbox is so ugly that it is inaccessible for me, so here’s a hack that restores it to how it was, more or less. The code for this hack is stolen shamelessly from reddit with the relevant parts changed.
On a Mac1, open this file:
And paste in this:
Then restart Slack, and you should be all good. If you don’t like my CSS, create your own Gist and update the
cssURI variable above to point to its raw URL.
If you’re on Windows, you’ll need to go to the reddit thread and try to find the proper directory src. It’s version-dependent on Windows so you’re on your own. ↩︎
We are making updates to the Dilbert blog (moving to the WordPress platform) that will result in an error message for many (example here).
Nothing quite like going from one mediocre blogging service to another. I’m at least hoping that this migration will result in this nonsensical banner from disappearing from the site:
Imagine if every site that used cookies showed that banner message.
Two thoughts on this:
QuickCast on Twitter:
You should be able to access, but the site will be going offline soon as the app hasn’t been available for some time now
I’ve been using QuickCast since October 2015. It was hands-down the best screen recording app I’d ever seen. Super clean and simple to use, super fast upload to the cloud. And now it’s gone.
If you have the Mac App installed on your computer, it still works, but that’ll change at any time. Sad! Time to look for a replacement, I’m afraid.
Here’s the thing: I want to believe that force quitting iOS apps doesn’t positively affect battery life, if for no other reason than because everyone I know force quits their apps; part of becoming a curmudgeon involves having well-informed reasons with which to disagree against mainstream, and this seems a perfect chance.
The Grube has this to say:
But don’t let one bad app spoil the whole barrel.
FB is the #1 most used app for a ton of people. If an app takes up half your apple barrel, maybe the worms get bored eventually and start exploring the other apples? At what point do the poorly written apps outweigh the well written ones? I’ve seen a lot of complaints lately about 100MB app bundle sizes for App Store app updates. You’re telling me that these same devs don’t care about bundle size but they do care about memory management? Not sure I’m buying that.
Oh, and if you’re a Genius at the Apple Store and you see a person who clearly uses Facebook a lot, you’re not going to tell them to force quit that sucker?
I want to, but I’m just not feeling The Grube on this one.
Speaking of updates, here’s an update to the world’s most robust IDE, PhpStorm. Here are three big improvements that I’ll be finding very useful:
- $this highlighting
- Support for enhanced webpack module resolution
- Import from ESLint
A few thoughts:
- Transmit is the only FTP client I touch. All the others are garbage in comparison. This update looks to be an incredible update to the world’s greatest FTP client.
- If you’re having to use an FTP client on a regular basis, that means you’re probably not using git, or at least, not the way it was intended to be used, and you have my sympathies. The less I use Transmit, the happier I am. Not because it’s a bad app, but because manual FTP is a lousy, archaic technology. Yes, I know Panic has auto-sync, but whatever. Your changes should be getting to the server via version control and an automated deploy system, not a find-something-do-something sync methodology.
- That said, a huge portion of the Internet is built on things like WordPress, and FTP is still the king for WordPress development. When I use FTP, that’s what I’m using it for.
- If you want a great example of Apple Pay on a website, this is it. I’ve not actually seen this anywhere before, and it’s truly incredible. You can spend $35 awfully fast just by visiting Panic’s landing page in Safari, both in iOS and macOS.
Let’s say you’re working on a big feature that you’re dark launching in little incremental Pull Requests. Every few days or so, you launch a new piece of this as you get it written. We’ll assume you have some sort of developer review process, and that it takes a few hours at minimum for this review process to get completed. We’ll also assume that you prefer to only merge code in the morning, so that you have all day to address any issues that might arise with its deployment.
Pretty soon you’ll find yourself in a situation where your current Pull Request is getting too large, but you’re in zen mode and you don’t want to stop development while you get your PR reviewed, merged, and a new one started. How can you fix this?
The easiest answer is to create a new branch based off your current branch. Let’s see what this would look like.
Now you can continue development on
MC/feature-x-part-2 to your heart’s content while
MC/feature-x-part-1 is in dev review. Once
MC/feature-x-part-1 gets approved and merged into
master, this is where the fun part begins.
First, if your sub branch (
MC/feature-x-part-2) has a ton of commits in it, consider squashing them to save you time later (I’ll explain why in a minute). Only leave as many commit SHAs as you’re comfortable copying and pasting. Next, change the base branch of your Pull Request for
MC/feature-x-part-2. Instead of having it set to merge into
MC/feature-x-part-1, change it to merge into
Once you do this, you’ll see that all the commits that were associated with
MC/feature-x-part-1 are now seemingly a part of
MC/feature-x-part-2. You don’t want this; not only because it’s untidy, but because you can introduce grave errors in your code without realizing it. You want to get rid of these commits, but you can’t just rebase against
master, in my experience (well, you can, but you’ll likely have a lot of needless conflicts that you’ll have to resolve). Instead, there’s a more elegant way to go about this: locally delete the sub branch (
MC/feature-x-part-2), re-recreate it based directly from
cherry-pick the commits from the sub PR. Here’s what this would look like:
This flow is swift, has no obvious downsides, and works well for me.
Yarin, writing at Stack Overflow:
All the space elimination techniques for
display:inline-blockare nasty hacks…
<li> elements in WordPress navigations). Flexbox completely removes the need for that.
Glycerine, commenting on Yarin’s post:
This should be googles first anwer [sic]
Every few weeks I continue to make more progress on the native Swift iPhone application for Quillify. Whilst working on it this weekend, I discovered FastImage. It’s is a Ruby gem that lets you retrieve the width and height of a remote image from a URL. It’s incredibly easy to use. Here’s how I’m doing it for Quillify’s API:
Storing image dimensions separately from the image itself is a borderline necessity in an iPhone application if the image dimensions are a determining factor in layout. With Quillify’s home feed, I have a
UITableView component with corresponding
UITableViewCell components for each movie. Part of that cell is a
UIImage component for the movie poster images. If you load images in the main thread, it’s UI-blocking, which leaves you in a predicament with two terrible choices; you can load all the images at once (which is bad because you don’t want to load images unless the user actually scrolls down far enough to need them) or you can load them on demand (which results in the UI locking up while the fetching is occurring; which is even worse than the former option). To get around this predicament, you want to load the images asynchronously, after the user is already (potentially) scrolling down the page. That sounds great, except this means that the
heightForRowAt method will execute before the images have arrived, and you need to give concrete numbers. If you give anything other than the correct values, you’ll end up with the UI jumping around as the images arrive and take their proper space.
With FastImage, I’m now grabbing the dimensions of the movie posters from their remote Amazon URLs and storing them directly in the database when the user posts a new movie. A simple Rails migration script allowed me to run through all the preexisting entries in the database and insert their proper dimensions too. Now the JSON payload for the home feed includes these poster dimensions, and the iPhone app’s home feed is butter smooth on initial load. It’s beautiful.
This is just a “weekends when I feel like it” kind of project but I really hope one day I’ll be able to tell you to go in the App Store and download Quillify. It’s an app like no other. Until then, you can always sign up on the website, though I’ll likely remove web-based login if and when the iPhone app premiers.
Meanwhile, if you’re tinkering with an app idea that involves images, plan on storing the dimensions. You’ll likely need them.
Matt Novak, writing for Gizmodo:
Elon Musk just announced the launch of a new website, x.com. The billionaire founder of Tesla and SpaceX made the announcement on Twitter at 1:21am Pacific time this morning. But so far there isn’t much to look at. The website is just a single letter X.
Looking forward to seeing what x.com turns into.
This is exactly the sort of new feature I love seeing added to GitHub.
Back in March, a very confused Nilay Patel had this to say at The Verge:
But very sad for the internet economy and startup culture: how can a new rival compete with a prioritized or zero-rated Netflix if its service is delivered more slowly or costs more in data charges?
Nobody actually thinks that ISPs would slow down a competitor to Netflix. That’s a straw man. But let’s say for the sake of argument that this did happen; is it the government’s job to protect this from happening? Absolutely not.
The Internet is great again, to correct the very crass headline today at The Verge. Ajit Pai had the courage to kick the government out of this whole affair, despite much of the populace being in opposition. Who in China or North Korea would look at a country whose Internet is unmolested by government and deny that such a country has made the right choice towards free speech, free enterprise, and the open web?
Josh Steimle, writing a refreshing piece at Forbes back in 2014:
Proponents of Net Neutrality say the telecoms have too much power. I agree. Everyone seems to agree that monopolies are bad and competition is good, and just like you, I would like to see more competition. But if monopolies are bad, why should we trust the U.S. government, the largest, most powerful monopoly in the world?
Many of us see the U.S. government as a benevolent and all-knowing parent with the best interests of you and me, its children, at heart. I see the U.S. government as a dangerous tyrant, influenced by large corporate interests, seeking to control everyone and everything.
See also the prayer of the net neutralist.
Rebecca Greenfield, writing at Bloomberg:
Last year, Richard Laermer decided to let his employees work from home on a regular basis. “We hire adults, they shouldn’t be tied to the office five days a week,” said Laermer, who owns a New York-based public relations firm. “I always assumed that you can get your work done anywhere, as long as you actually get it done.”
Turns out, he was wrong.
Working remote is becoming more and more of a thing. 53.3% of developers looking for a new job say that remote options are a top priority? That’s huge.
My entire company works remotely. Bloomberg cherry-picked a few anecdotes that make it sound like a bad idea, but the full picture is much different than that.
Nick Heer, writing at PixelEnvy, speculating about the new iPhones coming out this fall:
If past years are any guidance, the iPhone 7S should be a respectable update, even if it lacks a new hardware design.
If there are any — any — new iPhones this year that have the same hardware design as the past three years in a row, I’m going to be disappointed. I don’t consider the iPhone 7 design to be sufficiently different from the previous two iPhones (the 6 and 6S) to warrant another year of design change dearth.
Gruber and entourage are madly curious about this purported “pro” iPhone, but the vast majority of us would consider the upgrade decadent in the same way that we consider the Apple Watch decadent. You have to have a smartphone but you don’t have to have an exorbitantly fancy smartphone. That requires justification and mental persuasion; and many a person, including multimillionaire CEOs, will not even consider obtaining said “pro” iPhone. Stated another way, the only iPhone that matters in terms of the 80/20 rule is the 7S. But it better not be called that, because it better be a brand new form factor.
If you sense an edge in my tone it’s because I know I’m probably wrong. Apple will probably announce a 7S in September that has only minor outward differences and hype it like it is a new thing. The media will say Apple is off its rocker. The pundits who literally don’t have to worry about budgets will disagree as they gloat over their overpriced decadent “pro” iPhones, but they’ll be wrong, because they’re not living the lifestyle of the average American price-conscious consumer and they’re out of touch with reality.
It feels like how John Buford felt on July 1 in the movie Gettysburg. I can see it coming; it is as though it had already happened.
Khushbu Choudhary, writing at App Gyann:
With iOS 11, the Cupertino-based company has decided to ditch the ability to 3D Touch the edge of the display to launch the app switcher.
This nifty shortcut, which was first introduced with the launch of pressure-sensitive 3D Touch displays alongside iPhone 6S and 6S Plus, is no longer supported in iOS 11.
Here’s what I wrote about this feature back in December:
Usually when I trigger the feature, it’s an accident.
The universe of people who will miss this feature is going to be very small. As iOS actions go, it’s uncharacteristically hard to trigger, due to the fact that it’s so similar to the much more popular “swipe left to right” action for segueing back a view.
From the Mozilla Developer Network:
Historically, the CSS
:visitedselector has been a way for sites to query the user’s history, by using
getComputedStyle()or other techniques to walk through the user’s history to figure out what sites the user has visited. This can be done quickly, and makes it possible not only to determine where the user has been on the web, but can also be used to guess a lot of information about a user’s identity.
In the old days, this used to be a clever hack, but it’s no longer achievable in a modern browser.
Here’s some great advice on pull requests from GitHub. Some of my favorite parts:
Ask, don’t tell. (“What do you think about trying…?” rather than “Don’t do…”)
Questions are so much less confrontational. This stuff might sound foo-foo but when you put it into practice and experience it for yourself, it makes a huge difference. A teaspoon of sugar makes the medicine go down.
Try to respond to every comment.
This is a real pet peeve of mine. Ignoring comments is easily perceived as hostile behavior.