Building the factory in an area already saturated with large factory operations probably helped out a bit. Building a factory in the middle of the desert, where the nearest, largest factory builds slot machines, probably is a hindrance.
The location of Tesla's factory actually makes a lot of sense. It's an area with relatively low cost of living, which means they can pay workers less. It is not too far from their manufacturing plant (in Fremont), so transportation is minimized. That manufacturing plant in Fremont, in turn, is where it is because most of the people who want EVs live in California.
The Brownstown plant location similarly makes sense for GM, because their manufacturing is in Michigan, and their products are mostly hybrids, not EVs, and hybrids have a lot more sales outside of California, which means a central location is beneficial.
Can you imagine if Netscape had won that battle, and all those web designers had to learn Scheme as their first programming language?
On the flip side, all the web scripting code would compress well, with all the pages of close parentheses at the end. Maybe they could compress it further by just dropping trailing close parentheses entirely. Imagine the kilobytes of savings!
I'm trying to wear more cotton and natural fibers and have put a better trap on my washing machine.
Nobody wants to drink plastics; it isn't just about the fish. But individual washing machines are really not the right place to solve the problem. Those fibers don't just end up in the washing machine. They end up on people, which means they go down tub and shower drains, sink drains, etc. So even if everybody added filters on their washing machines, it still wouldn't even come close to fixing the problem.
And switching to natural fabrics is probably just trading one set of ecological problems for another. Animal-based clothing is a popular home for the larvae of moths and other insects, and thus can be somewhat prone to unexpected holes when stored for long periods of time. Cotton clothing wears out faster than synthetic clothing. There's a significant environmental impact involved in manufacturing and transporting additional clothing. Also, cotton fades faster than synthetic materials, which means that more of the dye from those cotton fabrics ends up in the water. So which is worse, synthetic fibers or (frequently petroleum-based) synthetic clothing dyes?
Really, there's only one good solution: If our municipal water filtration systems aren't adequately filtering its waste water, we must demand that they be fixed. Anything short of that is like trying to solve world hunger by planting an onion.
I actually do think that overuse of plastic is a genuine problem, even if I don't have any answer for what to do about it.... Maybe significant refundable deposits and significant non-refundable recycling fees on every plastic product...
Blech. Plastic isn't overused. In fact, if there's anything that would become better (or remain as good, but become cheaper) if it were made out of plastic, then I would argue that plastic is still underused.
The problem is not that plastic is being used, but rather that some of the plastic isn't getting reclaimed (whether by recycling it or by burying it for future recycling). That problem can be largely solved by levying heavy fines against garbage haulers that leave litter behind. That garbage doesn't end up in the ocean by chance. It ends up there because the people handling municipal waste are often careless. If you make that carelessness expensive enough, those people will be more careful.
Ideally, we should also filter municipal runoff before it enters a major body of water. That small change would dramatically reduce the amount of plastics ending up in the oceans. Basically, I'm envisioning a giant holding pool with huge, high-volume inlets, huge, high-volume outlets, and a fine mesh across the middle of the pool, with scrapers that periodically pull the detritus to one side for collection. But I digress.
Blaming plastics for ending up in the oceans is like blaming oxygen for forest fires.
You can only downcycle plastic. Eventually you still end up with a mountain of plastic garbage.
There's always thermal depolymerization, which can turn all that plastic (and other organic materials, to some extent) into a rough approximation of crude oil. And that material in turn should be readily convertible into various kinds of plastics, unless I'm missing something.
Everything I've ever worked with involves lots of code from third-parties, and I not only don't think namespaces are useful, but actually find them to be harmful.
In the Objective-C world, we have sensible naming conventions, and everybody agrees to them, with the most important of those being that every project has a three-letter prefix, and your class names always start with that prefix. And the language goes on from there to encourage rich, long names that are unlikely to collide.
Namespaces, by contrast, seem primarily intended to encourage people to choose stupid, generic names, like "queue", rather than something sensible, like FQGHTTPOperationsQueue. And by encouraging people to choose stupid, overly generic names, it means that as soon as you actually have to search your code base to try to find one of those poorly named classes so that you can decide whether or not you really want to keep using that library, you can't easily do it, because there are eighty classes, all named "queue", that differ only by namespace. (Yes, I'm being hyperbolic, but not excessively so.)
By delaying the point where you start to notice these badly named classes and methods and functions and constants, every developer who uses that shared library ends up building up huge code bases around those poor naming choices, and when they later decide to change to a replacement library, they experience serious pain. If you don't hide the conflicts behind namespaces, those sorts of stupid naming decisions get quickly nipped in the bud (filing bugs against early beta versions) before they become a problem, and searching for places where you used those classes (or whatever) is trivial, as it rightfully should be.
No, my distaste for namespaces isn't because I lack experience. Rather, it's because I don't. I've had enough bad experiences caused by such foolishness that I can't imagine why anyone would willingly subject themselves to it unnecessarily. To me, namespaces are the antithesis of good programming practice, because they actively encourage bad programming practices. They're the programming equivalent of peril-sensitive sunglasses, hiding serious design deficits behind a thin veneer that only protects you from seeing the peril, thus preventing you from avoiding its eventual effects. And that is why I think namespaces are a fundamental mistake.
You're a bit off there. The Intel era itself only goes back about 12 years, so even 32-bit software isn't going to be older than that.
Almost 13, if you include the developer reference platform hardware. The first 64-bit 10.5 seeds were first available in June of 2007 at WWDC, IIRC, so anybody writing new apps in the past ~11 years should have been using 64-bit. So saying that 32-bit apps are 12 years old really isn't that far off.
Plenty of software was slow to move to 64-bit, most notably Microsoft Office, which got a 64-bit version in 2016, less than 2 years ago.
IMO, that's a strong indication that Microsoft has never taken the Mac platform particularly seriously. Even Adobe Photoshop has been 64-bit for almost a decade (late 2008). I can't remember the last time I encountered a 32-bit app on OS X. (I don't use MS Office.)
To put it another way:
OS X supported 64-bit apps six years earlier than iOS did, so developers have had 6 extra years to update their Mac apps.
Native 32-bit-only Intel Macs only existed for about 18 months, whereas 32-bit-only iPhones existed for over 6 years. So developers had only 1/4 as much time in which to write 32-bit-only Mac apps.
32-bit apps were dropped on iOS simultaneously with dropping support for the last hardware that wouldn't run 64-bit apps. The last 32-bit-only Mac hardware became unsupported way back in 10.7 (2011) and they're just dropping app support now.
I think they should have dropped 32-bit app support on OS X long ago, and I think they should have retained 32-bit iOS support a bit longer, because 32-bit-only iOS apps were still common when they dropped support, and 32-bit-only Intel Mac apps are almost nonexistent. In fact, Microsoft lagging behind the rest of the industry by nearly a decade is probably the only reason Apple didn't drop 32-bit support in 10.7 when they dropped support for the last 32-bit CPUs. In other words, all those extra gigabytes of libraries are basically a Microsoft tax.
Disabling animated GIFs is no harder than disabling video. Just don't start playback until the user clicks.
And then the abusers move on to a giant image with sprite animation, but to get a big enough size, the image is huge, so you detect ridiculously large resources and add a placeholder so that the user has to click on the image to make it load. With the image offscreen, the user can't click on it, so it never gets loaded.
And then the abusers move on, fetching each frame as a separate image, and you make changes to watch for updates to IMG tags and/or creation of new IMG tags, detecting an excessive rate of frequent updates or creations that does not stop within two seconds, and immediately throttling all further repaints on the nearest non-replaced ancestor container, allowing only one repaint per second until the page is reloaded, and discarding any intermediate changes that occur within that container during each one-second interval.
And then, they give up and start creating movies with thumbnails that are compelling enough to make people want to click them. Mission f**king accomplished.
Joe Public could never have figured out on his own how to keypunch an LGO card and precede it with Cyber 6500 assembly instructions to program the mainframe computer being used by Michigan State University's CS department in the mid 1970's, nor would he have had any interest in doing so. And yet, if you walked into the CS department and started claiming that the 6500 wasn't a computer because the "general public" didn't know how to program it, and because you needed an expensive keypunch to create the punched cards that were fed as input, and you had to buy the cards themselves, they'd have laughed you out of the building.
In my mind, the distinction between a general purpose computer (or, in common parlance, a computer) and an embedded system is whether it was designed and sold with the intent of letting the purchaser program it. Your microwave oven, despite theoretically being reprogrammable by people willing to crack it open and do horrible things to it, was not designed to be programmed, and comes with fixed programming from the factory, hence it is not a computer, though it contains a computer (which was probably not designed by the microwave oven manufacturer). Your desktop or laptop computer clearly was designed with that in mind, and thus is a computer.
Devices like smart TVs blur the lines. To the extent that they allow third parties to write apps for them, they could be seen as computers, but to the extent that they are designed to prevent anyone from doing so unless they obtain special permission from the manufacturer, they really aren't general-purpose computers. They're embedded systems.
An iPad is a computer, though not nearly as useful as a laptop or desktop, mainly for lack of a mouse cursor, a sufficiently large screen, and a sufficient corpus of high-end apps that aren't watered down to support only the limited features that are easily supported on a tiny screen operated with your finger without requiring a hardware keyboard. In other words, it is still very much a toy as computers go.
Depends on the issue and the position. Someone taking a position based on an emotional reaction, in ways that try to invoke an emotional reaction in others, is likely to be a manipulator. Someone taking a position on logic, and doing so in ways that are designed to get people to not react emotionally and to think before they pass laws, is likely to be a good legislator.
You could filter by album, artist, or genre independently, there was no hierarchical structure. Geeks said 'why would I need this, I already have my music in a music/{genre}/{artist}/{album}/ hierarchy, people too stupid to understand that shouldn't use computers'.
Those geeks were nuts. Manually creating a hierarchy where you can look things up by genre, artist, album, and title creating at *least* three symlinks for every single file you add, and if it involves more than one artist, potentially more than that. And it still provides you with no good way to search by a partial title/artist/album. Hierarchical organization is a good starting strategy, but when things need to have multiple designations, searchable tagging (like the card catalog in your library) is a much more practical approach.
The other problem with hierarchies (besides the challenge presented by multiple parallel hierarchies that share data) is the tendency to add more levels than needed under the assumption that you'll need them someday. For example, I never could understand why people would want to use namespaces. Name your classes something useful/non-generic, and you won't have collisions. It's an unnecessary level of hierarchy that does nothing but create frequent compile errors because you forgot to "use foo".
Either way, I agree with you that Swift (which IMO just looks like a bizarre blending of Objective-C and Pascal) doesn't make programming accessible to non-geeks in any meaningful way. I think the original idea was that if you could program in a scripting language, you could maybe handle Swift, but the thing is, people who can program in scripting languages are still solidly on the geek end of the spectrum. The only thing they usually lack for understanding Objective-C is a semester-long crash course in the language, if that. The whole "playgrounds" thing makes it slightly easier for those geeks who are just getting started and haven't worked with a C-based language, but on the whole, Swift mostly just takes off a few sharp edges and creates some new ones in the process, e.g. some amount of additional pain while calling into C code, having to cast even for trivial, guaranteed-safe promotions of integer types to larger-sized integer types (wat?), and so on. Most of what makes writing software hard is still hard.
The biggest problem with trying to create a new programming language for "non-geeks" is that anybody who already knows how to write software well enough to create one almost certainly intuitively finds the hard parts of programming easy, which means they are unlikely to ever be able to recognize them. The hard parts of programming are not minor hassles like declaring types ahead of time, or any of the other trivial syntactic sugar that Swift provides, but rather the very act of thinking algorithmically in the first place. If you can't think like a computer thinks (understanding boolean logic, being able to conceive of multiple paths through the code, understanding recursion, etc.), you'll never be able to write code that the computer understands. And all of those things are inherently geeky.
If somehow you could abstract programming enough that those things don't matter, you'd have a programming language for a non-geek, and it would basically be Hypercard minus the part where you dig in deeper and write actual code — a series of actions that happen when you do something. And if you get to that level of functionality, maybe you might then be able to get some subset of the people who understand the most basic visual programming to stretch their minds enough to write simple actions that do simple, linear things.
But no, Swift is not that language. Call me when I can click on a button in Interface Builder and, without writing a single line of code, make it add the contents of a group of text fields as a new record in a SQLite database. Call me when the view automatically populates itself with the contents of that database without writin
They gave us Belkin outlet strips at one of my previous employers. Given my experience with their other products, I kept expecting them to catch fire, but miraculously, none of them did.
Belkin. I plugged in one of their USB-to-serial adapters and my computer shut off instantly. Apparently, it was dead-shorted across the power pins. That earned them a 5-year ban and a fifteen-year probation.
About seven or eight years after that, my grandparents needed a Wi-Fi router, and that was the only one available locally, so I cringed and gave them another shot. It exhibited crashes under any significant amount of actual traffic—and by "crashes", I mean it stopped passing data and had to be power-cycled several times per day until we tossed it in the trash and replaced it with a ten-year-old, recapped graphite Apple Airport Base Station. That second disaster earned them a permanent spot on my "never again" list.
Other dishonorable mentions go to:
NETGEAR for their white gigabit switches (the one I got for my house died after a day, with something like 99% packet loss, and then another one at work had to be unplugged once a week because it stopped passing traffic). I'll probably never buy their consumer-grade switches again, but the rest of their gear has always been solid for me, and the failure wasn't dangerous, so they just made my "be cautious and always check Amazon reviews" list.
Samsung for firmware bugs in their Blu-Ray players that made them stop playing DVDs correctly (rolled back to previous firmware) and stutter on certain Blu-Rays (could not find a working firmware revision, and replaced one of them with an LG), and for still using low-quality electrolytic capacitors all the way up into 2007, which forced me to recap my bedroom TV a couple of weeks ago (and failed for a lot of people many years earlier). They are on my "be very afraid" list.
The Parallels virtualization software for OS X is moving in this direction, though you can buy a perpetual license, at least for now.
Meh. VirtualBox is open source and generally gets the job done. If Parallels wants to shoot themselves in the foot, hand them the gun and don't try to stop them. Nothing of value will be lost.
That said, knowing a number of people at Adobe I can safely tell you that this wasn't purely a "let's lock people" decision. I'm sure they're happy with that as a by-product, but a big part of the of the reason they went this way was their biggest customers requested it.
That's called "lying with the truth". Their biggest customers requested that subscriptions be an OPTION, because for companies that upgrade the entire suite every year, that model is cheaper, and they have no need to access content more than a few months old anyway, so if Adobe went out of business tomorrow, it wouldn't be a huge pain point. So for them, it is a win.
However, I guarantee that NONE of their biggest customers requested that the product be EXCLUSIVELY available with subscriptions for everyone else. If anybody believes otherwise, I have a bridge I'll sell him/her.
The problem with subscription-only software is the endgame. If you've never lost work because the software manufacturer went out of business or dropped a product, you haven't been using computers very long.
Eventually, Photoshop will become EOLed, because all software eventually is (and the subscription model suggests that perhaps they aren't bringing in enough money to keep the lights on, so that might happen sooner rather than later). When that happens, those of us who bought Photoshop CS6 will still be able to limp along and access our files by running it in a VM... essentially forever. Those folks who rent it by the month will basically lose everything, or at best will have to write new tools to nondestructively convert their files into somebody else's file format.
Rental models are for people who don't know any better and for agencies whose clients require them to deliver content in a specific format. Everyone else I know is fleeing Adobe for other companies as quickly as we can, and eventually that momentum will result in fewer and fewer of those agencies paying for subscriptions, until their revenue stream eventually dries up completely. It will take a few years, but it is pretty much inevitable. And when it does, the people who continued using Photoshop after CS6 won't get any sympathy from me, because, as they say, I told you so.
Not anymore. LR6 was the last perpetual license. They've announced that going forward, it's subscription-only. All the semi-pro photographers are having kittens.
The problem is that nobody wants a stripped-down "Lite" version, or at least nobody who has ever used the real product. There are too many things that don't work... like CMYK.
So if my choices are switching from Photoshop CS6 to Elements or switching to Pixelmator, the latter has more functionality, but not a lot more, so it mostly comes down to a choice between buying yet another product from a company that had now screwed me twice by taking away my ability to upgrade software that I've spent thousands of dollars on over the years or telling them to go f**k themselves and switching to another piece of software from a company that hasn't been abusive.
Needless to say, I own Pixelmator, and do not own any version of Elements. So I will continue to maintain CS6 for working on old projects, and will continue to do so until an OS upgrade breaks it beyond repair, at which point I'll stick it in an OS X v10.6 virtual machine right alongside AppleWorks.
The recent Lightroom announcement was particularly heinous, because they previously promised that they wouldn't be doing that, and I bought LR6 based on the promise that they were eventually going to add full support for the 5D Mark IV's dual-pixel RAW. Now, a year later, they still haven't added that support, and have dropped the standalone product entirely. Had they not deliberately lied to us a year ago, I would have spent time adding that support to DarkTable, and would have saved a lot of money instead of wasting it on a dead-end product that still doesn't fully meet my needs.
After the recent Lightroom announcement, Adobe is officially dead to me. They could literally create technology that would end world hunger, cure all diseases, and store a day worth of video in a single megabyte, and I still wouldn't give them a penny for any of it. They have made my permanent blacklist—one of only two companies ever to earn that honor. Nothing they could possibly do matters at this point. They're simply another technology company on life support. And I sure as h*** won't pay subscription fees to keep them on life support. The company failed in the marketplace. Let it die.
The city will never do that, as it will eventually lead to people realizing they don't NEED to have a presence in San Francisco, eventually moving somewhere else. San Francisco isn't magic, and that would kill the cachet of it all.
Not really. The allure of living in a city is being in a dense area with lots of things to do. I wouldn't live there in a million years, but the folks who like it... well, like it, and I don't think that being able to live and work in a smaller area—say Gilroy—would have the same appeal to them. What spreading out the offices would do is make it easier for the people who prefer not to live in a high-density urban area to do so, both by making it possible for some of them to not commute at all and by making the commute easier for others who don't have that option (by getting a bunch of cars off the roads).
Instead of overturning prop 13, why not modify it to only include homeowners and not businesses and renters?
Because that doesn't actually solve the problem. There are a decent number of people whose homes are now worth in the high six figures, but were passed down to them from their parents who bought the houses for low five figures fifty years ago. Those folks can't move closer to where they work, because they can't afford the thousands of extra dollars in additional property taxes that they would pay every year by selling one house and buying another house of equal value. And even for the people who can afford it, that tax hit is a real disincentive. As a result, the housing market behaves very strangely.
Also, if you removed the protection for rental property, it would make the traffic problem even worse, because people would no longer be able to rent out their homes to others after getting a job far away. So a lot of those folks would end up driving further instead, or else be forced to move and pay more than their fair share of property taxes.
No, what we need instead is to replace Prop 13 outright with a rebate (either via property tax or income tax) for some portion of the property taxes paid by people living below a certain wage threshold, with rules that automatically raise that rebate amount based on inflation to ensure that the poor don't get thrown out of their houses solely because the houses became more valuable. And that rebate needs to be phased out progressively as you make more money. And then we need to regularly assess the value of every home and tax property based on its actual, current value. IMO, that's the only approach to solving the problem that will adequately avoid the serious negative side effects that we're seeing in the housing market today.
It's not just London - they do that in every city in the UK. As you increase the radius of a city, you have to widen the arterial roads.
Wat?
No, you're making fundamentally wrong assumptions, starting with the assumption that everyone is going to live far from where they work. The problem with the Bay Area is that nobody can afford to live near the tech companies, so they all move farther away, but the tech companies continue to intransigently maintain only a small number of offices that all basically fall in SF, the South Bay, or the tiny, narrow peninsula between the two. And they don't even use all of that, thanks to a mountain chain that runs up the middle of the peninsula.
The way to solve all of these problems is very, very simple: Break up the tech companies. I don't mean like trust busting, but rather pass laws that any employer with more than 10,000 employees in the Bay Area must provide office space for at least 30% of its Bay Area employees outside of that SF/South Bay/Peninsula strip, and that any company breaking that rule will not be allowed to add a single office or desk within the strip, whether by building or by leasing, until that balanced is reached.
Imagine if Apple had a branch office in Gilroy, Facebook had a branch office in Salinas, and Google had a branch office in Watsonville. A decent chunk of the commute traffic would cease to exist, other traffic would reverse direction, etc., getting us much closer to full utilization of the roads that already exist.
Ideally, such a law would go even further than that, limiting how close any company's offices can be to one another, thus spreading each company's offices out across the entire area and making it easier to change jobs without moving.
An ideal law would also simultaneously overturn Prop 13 so that homeowners could afford to move closer to where they work, and so that rental property owners won't have an unfair tax advantage that effectively drives up the cost of housing by limiting people's ability to buy.
Yes and no. I'm of two minds on it. I actually rather like the Mac Pro I use at work (for writing iOS apps). The twelve-core monstrosity eats compiling jobs like a small child eats cotton candy.
On the flip side, I would never buy one for my own personal recording studio and video editing purposes, because the storage capacity doesn't cut it, and if I have to deal with something woefully inadequate, it might as well be the laptop that I already have. I seriously considered buying one when they first came out, but even if I looked past its inability to be rack mounted, by that time it came out, a terabyte was already absurdly tiny for me, and that's what saved me ten grand, which I left in AAPL, and is now 30 grand.
So it works really well for a very narrow definition of "Pro", which basically turns out to be Apple software engineers and third-party Mac and iOS developers. For everyone else, it started out with ludicrously insufficient storage, and then never improved. They designed for themselves instead of for their customers, and that's why the product failed. For what it does well, it is amazing. For what it doesn't do well, it is absolutely terrible.
If they brought back the cheese grater today, I'd probably buy one. I'll wait and see what their replacement looks like, but I'm not holding my breath. I don't think their hardware design team could stomach adding back SATA bays, and I don't think I'll ever buy a desktop computer that doesn't have several of them. (I mean, if they'll add a 60 TB SSD for under a grand, sure, but otherwise, no.)
The location of Tesla's factory actually makes a lot of sense. It's an area with relatively low cost of living, which means they can pay workers less. It is not too far from their manufacturing plant (in Fremont), so transportation is minimized. That manufacturing plant in Fremont, in turn, is where it is because most of the people who want EVs live in California.
The Brownstown plant location similarly makes sense for GM, because their manufacturing is in Michigan, and their products are mostly hybrids, not EVs, and hybrids have a lot more sales outside of California, which means a central location is beneficial.
Can you imagine if Netscape had won that battle, and all those web designers had to learn Scheme as their first programming language?
On the flip side, all the web scripting code would compress well, with all the pages of close parentheses at the end. Maybe they could compress it further by just dropping trailing close parentheses entirely. Imagine the kilobytes of savings!
Nobody wants to drink plastics; it isn't just about the fish. But individual washing machines are really not the right place to solve the problem. Those fibers don't just end up in the washing machine. They end up on people, which means they go down tub and shower drains, sink drains, etc. So even if everybody added filters on their washing machines, it still wouldn't even come close to fixing the problem.
And switching to natural fabrics is probably just trading one set of ecological problems for another. Animal-based clothing is a popular home for the larvae of moths and other insects, and thus can be somewhat prone to unexpected holes when stored for long periods of time. Cotton clothing wears out faster than synthetic clothing. There's a significant environmental impact involved in manufacturing and transporting additional clothing. Also, cotton fades faster than synthetic materials, which means that more of the dye from those cotton fabrics ends up in the water. So which is worse, synthetic fibers or (frequently petroleum-based) synthetic clothing dyes?
Really, there's only one good solution: If our municipal water filtration systems aren't adequately filtering its waste water, we must demand that they be fixed. Anything short of that is like trying to solve world hunger by planting an onion.
Blech. Plastic isn't overused. In fact, if there's anything that would become better (or remain as good, but become cheaper) if it were made out of plastic, then I would argue that plastic is still underused.
The problem is not that plastic is being used, but rather that some of the plastic isn't getting reclaimed (whether by recycling it or by burying it for future recycling). That problem can be largely solved by levying heavy fines against garbage haulers that leave litter behind. That garbage doesn't end up in the ocean by chance. It ends up there because the people handling municipal waste are often careless. If you make that carelessness expensive enough, those people will be more careful.
Ideally, we should also filter municipal runoff before it enters a major body of water. That small change would dramatically reduce the amount of plastics ending up in the oceans. Basically, I'm envisioning a giant holding pool with huge, high-volume inlets, huge, high-volume outlets, and a fine mesh across the middle of the pool, with scrapers that periodically pull the detritus to one side for collection. But I digress.
Blaming plastics for ending up in the oceans is like blaming oxygen for forest fires.
There's always thermal depolymerization, which can turn all that plastic (and other organic materials, to some extent) into a rough approximation of crude oil. And that material in turn should be readily convertible into various kinds of plastics, unless I'm missing something.
I'm thinking they'll be called
digital
anti-
low-income
electronic
killers
Everything I've ever worked with involves lots of code from third-parties, and I not only don't think namespaces are useful, but actually find them to be harmful.
In the Objective-C world, we have sensible naming conventions, and everybody agrees to them, with the most important of those being that every project has a three-letter prefix, and your class names always start with that prefix. And the language goes on from there to encourage rich, long names that are unlikely to collide.
Namespaces, by contrast, seem primarily intended to encourage people to choose stupid, generic names, like "queue", rather than something sensible, like FQGHTTPOperationsQueue. And by encouraging people to choose stupid, overly generic names, it means that as soon as you actually have to search your code base to try to find one of those poorly named classes so that you can decide whether or not you really want to keep using that library, you can't easily do it, because there are eighty classes, all named "queue", that differ only by namespace. (Yes, I'm being hyperbolic, but not excessively so.)
By delaying the point where you start to notice these badly named classes and methods and functions and constants, every developer who uses that shared library ends up building up huge code bases around those poor naming choices, and when they later decide to change to a replacement library, they experience serious pain. If you don't hide the conflicts behind namespaces, those sorts of stupid naming decisions get quickly nipped in the bud (filing bugs against early beta versions) before they become a problem, and searching for places where you used those classes (or whatever) is trivial, as it rightfully should be.
No, my distaste for namespaces isn't because I lack experience. Rather, it's because I don't. I've had enough bad experiences caused by such foolishness that I can't imagine why anyone would willingly subject themselves to it unnecessarily. To me, namespaces are the antithesis of good programming practice, because they actively encourage bad programming practices. They're the programming equivalent of peril-sensitive sunglasses, hiding serious design deficits behind a thin veneer that only protects you from seeing the peril, thus preventing you from avoiding its eventual effects. And that is why I think namespaces are a fundamental mistake.
Almost 13, if you include the developer reference platform hardware. The first 64-bit 10.5 seeds were first available in June of 2007 at WWDC, IIRC, so anybody writing new apps in the past ~11 years should have been using 64-bit. So saying that 32-bit apps are 12 years old really isn't that far off.
IMO, that's a strong indication that Microsoft has never taken the Mac platform particularly seriously. Even Adobe Photoshop has been 64-bit for almost a decade (late 2008). I can't remember the last time I encountered a 32-bit app on OS X. (I don't use MS Office.)
To put it another way:
I think they should have dropped 32-bit app support on OS X long ago, and I think they should have retained 32-bit iOS support a bit longer, because 32-bit-only iOS apps were still common when they dropped support, and 32-bit-only Intel Mac apps are almost nonexistent. In fact, Microsoft lagging behind the rest of the industry by nearly a decade is probably the only reason Apple didn't drop 32-bit support in 10.7 when they dropped support for the last 32-bit CPUs. In other words, all those extra gigabytes of libraries are basically a Microsoft tax.
Disabling animated GIFs is no harder than disabling video. Just don't start playback until the user clicks.
And then the abusers move on to a giant image with sprite animation, but to get a big enough size, the image is huge, so you detect ridiculously large resources and add a placeholder so that the user has to click on the image to make it load. With the image offscreen, the user can't click on it, so it never gets loaded.
And then the abusers move on, fetching each frame as a separate image, and you make changes to watch for updates to IMG tags and/or creation of new IMG tags, detecting an excessive rate of frequent updates or creations that does not stop within two seconds, and immediately throttling all further repaints on the nearest non-replaced ancestor container, allowing only one repaint per second until the page is reloaded, and discarding any intermediate changes that occur within that container during each one-second interval.
And then, they give up and start creating movies with thumbnails that are compelling enough to make people want to click them. Mission f**king accomplished.
In my mind, the distinction between a general purpose computer (or, in common parlance, a computer) and an embedded system is whether it was designed and sold with the intent of letting the purchaser program it. Your microwave oven, despite theoretically being reprogrammable by people willing to crack it open and do horrible things to it, was not designed to be programmed, and comes with fixed programming from the factory, hence it is not a computer, though it contains a computer (which was probably not designed by the microwave oven manufacturer). Your desktop or laptop computer clearly was designed with that in mind, and thus is a computer.
Devices like smart TVs blur the lines. To the extent that they allow third parties to write apps for them, they could be seen as computers, but to the extent that they are designed to prevent anyone from doing so unless they obtain special permission from the manufacturer, they really aren't general-purpose computers. They're embedded systems.
An iPad is a computer, though not nearly as useful as a laptop or desktop, mainly for lack of a mouse cursor, a sufficiently large screen, and a sufficient corpus of high-end apps that aren't watered down to support only the limited features that are easily supported on a tiny screen operated with your finger without requiring a hardware keyboard. In other words, it is still very much a toy as computers go.
Depends on the issue and the position. Someone taking a position based on an emotional reaction, in ways that try to invoke an emotional reaction in others, is likely to be a manipulator. Someone taking a position on logic, and doing so in ways that are designed to get people to not react emotionally and to think before they pass laws, is likely to be a good legislator.
As a Californian, any chance we could steal him as a replacement for Feinstein?
Those geeks were nuts. Manually creating a hierarchy where you can look things up by genre, artist, album, and title creating at *least* three symlinks for every single file you add, and if it involves more than one artist, potentially more than that. And it still provides you with no good way to search by a partial title/artist/album. Hierarchical organization is a good starting strategy, but when things need to have multiple designations, searchable tagging (like the card catalog in your library) is a much more practical approach.
The other problem with hierarchies (besides the challenge presented by multiple parallel hierarchies that share data) is the tendency to add more levels than needed under the assumption that you'll need them someday. For example, I never could understand why people would want to use namespaces. Name your classes something useful/non-generic, and you won't have collisions. It's an unnecessary level of hierarchy that does nothing but create frequent compile errors because you forgot to "use foo".
Either way, I agree with you that Swift (which IMO just looks like a bizarre blending of Objective-C and Pascal) doesn't make programming accessible to non-geeks in any meaningful way. I think the original idea was that if you could program in a scripting language, you could maybe handle Swift, but the thing is, people who can program in scripting languages are still solidly on the geek end of the spectrum. The only thing they usually lack for understanding Objective-C is a semester-long crash course in the language, if that. The whole "playgrounds" thing makes it slightly easier for those geeks who are just getting started and haven't worked with a C-based language, but on the whole, Swift mostly just takes off a few sharp edges and creates some new ones in the process, e.g. some amount of additional pain while calling into C code, having to cast even for trivial, guaranteed-safe promotions of integer types to larger-sized integer types (wat?), and so on. Most of what makes writing software hard is still hard.
The biggest problem with trying to create a new programming language for "non-geeks" is that anybody who already knows how to write software well enough to create one almost certainly intuitively finds the hard parts of programming easy, which means they are unlikely to ever be able to recognize them. The hard parts of programming are not minor hassles like declaring types ahead of time, or any of the other trivial syntactic sugar that Swift provides, but rather the very act of thinking algorithmically in the first place. If you can't think like a computer thinks (understanding boolean logic, being able to conceive of multiple paths through the code, understanding recursion, etc.), you'll never be able to write code that the computer understands. And all of those things are inherently geeky.
If somehow you could abstract programming enough that those things don't matter, you'd have a programming language for a non-geek, and it would basically be Hypercard minus the part where you dig in deeper and write actual code — a series of actions that happen when you do something. And if you get to that level of functionality, maybe you might then be able to get some subset of the people who understand the most basic visual programming to stretch their minds enough to write simple actions that do simple, linear things.
But no, Swift is not that language. Call me when I can click on a button in Interface Builder and, without writing a single line of code, make it add the contents of a group of text fields as a new record in a SQLite database. Call me when the view automatically populates itself with the contents of that database without writin
And the Madison family to have Dolly Madisons. Okay, so that's not the right right spelling. *sigh*
They gave us Belkin outlet strips at one of my previous employers. Given my experience with their other products, I kept expecting them to catch fire, but miraculously, none of them did.
VMWare has a conversion tool, and VirtualBox can work with their VMs. Of course, I'm not sure if there's a way to convert back to Parallels....
Belkin. I plugged in one of their USB-to-serial adapters and my computer shut off instantly. Apparently, it was dead-shorted across the power pins. That earned them a 5-year ban and a fifteen-year probation.
About seven or eight years after that, my grandparents needed a Wi-Fi router, and that was the only one available locally, so I cringed and gave them another shot. It exhibited crashes under any significant amount of actual traffic—and by "crashes", I mean it stopped passing data and had to be power-cycled several times per day until we tossed it in the trash and replaced it with a ten-year-old, recapped graphite Apple Airport Base Station. That second disaster earned them a permanent spot on my "never again" list.
Other dishonorable mentions go to:
The Parallels virtualization software for OS X is moving in this direction, though you can buy a perpetual license, at least for now.
Meh. VirtualBox is open source and generally gets the job done. If Parallels wants to shoot themselves in the foot, hand them the gun and don't try to stop them. Nothing of value will be lost.
That's called "lying with the truth". Their biggest customers requested that subscriptions be an OPTION, because for companies that upgrade the entire suite every year, that model is cheaper, and they have no need to access content more than a few months old anyway, so if Adobe went out of business tomorrow, it wouldn't be a huge pain point. So for them, it is a win.
However, I guarantee that NONE of their biggest customers requested that the product be EXCLUSIVELY available with subscriptions for everyone else. If anybody believes otherwise, I have a bridge I'll sell him/her.
The problem with subscription-only software is the endgame. If you've never lost work because the software manufacturer went out of business or dropped a product, you haven't been using computers very long.
Eventually, Photoshop will become EOLed, because all software eventually is (and the subscription model suggests that perhaps they aren't bringing in enough money to keep the lights on, so that might happen sooner rather than later). When that happens, those of us who bought Photoshop CS6 will still be able to limp along and access our files by running it in a VM... essentially forever. Those folks who rent it by the month will basically lose everything, or at best will have to write new tools to nondestructively convert their files into somebody else's file format.
Rental models are for people who don't know any better and for agencies whose clients require them to deliver content in a specific format. Everyone else I know is fleeing Adobe for other companies as quickly as we can, and eventually that momentum will result in fewer and fewer of those agencies paying for subscriptions, until their revenue stream eventually dries up completely. It will take a few years, but it is pretty much inevitable. And when it does, the people who continued using Photoshop after CS6 won't get any sympathy from me, because, as they say, I told you so.
Not anymore. LR6 was the last perpetual license. They've announced that going forward, it's subscription-only. All the semi-pro photographers are having kittens.
The problem is that nobody wants a stripped-down "Lite" version, or at least nobody who has ever used the real product. There are too many things that don't work... like CMYK.
So if my choices are switching from Photoshop CS6 to Elements or switching to Pixelmator, the latter has more functionality, but not a lot more, so it mostly comes down to a choice between buying yet another product from a company that had now screwed me twice by taking away my ability to upgrade software that I've spent thousands of dollars on over the years or telling them to go f**k themselves and switching to another piece of software from a company that hasn't been abusive.
Needless to say, I own Pixelmator, and do not own any version of Elements. So I will continue to maintain CS6 for working on old projects, and will continue to do so until an OS upgrade breaks it beyond repair, at which point I'll stick it in an OS X v10.6 virtual machine right alongside AppleWorks.
The recent Lightroom announcement was particularly heinous, because they previously promised that they wouldn't be doing that, and I bought LR6 based on the promise that they were eventually going to add full support for the 5D Mark IV's dual-pixel RAW. Now, a year later, they still haven't added that support, and have dropped the standalone product entirely. Had they not deliberately lied to us a year ago, I would have spent time adding that support to DarkTable, and would have saved a lot of money instead of wasting it on a dead-end product that still doesn't fully meet my needs.
After the recent Lightroom announcement, Adobe is officially dead to me. They could literally create technology that would end world hunger, cure all diseases, and store a day worth of video in a single megabyte, and I still wouldn't give them a penny for any of it. They have made my permanent blacklist—one of only two companies ever to earn that honor. Nothing they could possibly do matters at this point. They're simply another technology company on life support. And I sure as h*** won't pay subscription fees to keep them on life support. The company failed in the marketplace. Let it die.
Not really. The allure of living in a city is being in a dense area with lots of things to do. I wouldn't live there in a million years, but the folks who like it... well, like it, and I don't think that being able to live and work in a smaller area—say Gilroy—would have the same appeal to them. What spreading out the offices would do is make it easier for the people who prefer not to live in a high-density urban area to do so, both by making it possible for some of them to not commute at all and by making the commute easier for others who don't have that option (by getting a bunch of cars off the roads).
Because that doesn't actually solve the problem. There are a decent number of people whose homes are now worth in the high six figures, but were passed down to them from their parents who bought the houses for low five figures fifty years ago. Those folks can't move closer to where they work, because they can't afford the thousands of extra dollars in additional property taxes that they would pay every year by selling one house and buying another house of equal value. And even for the people who can afford it, that tax hit is a real disincentive. As a result, the housing market behaves very strangely.
Also, if you removed the protection for rental property, it would make the traffic problem even worse, because people would no longer be able to rent out their homes to others after getting a job far away. So a lot of those folks would end up driving further instead, or else be forced to move and pay more than their fair share of property taxes.
No, what we need instead is to replace Prop 13 outright with a rebate (either via property tax or income tax) for some portion of the property taxes paid by people living below a certain wage threshold, with rules that automatically raise that rebate amount based on inflation to ensure that the poor don't get thrown out of their houses solely because the houses became more valuable. And that rebate needs to be phased out progressively as you make more money. And then we need to regularly assess the value of every home and tax property based on its actual, current value. IMO, that's the only approach to solving the problem that will adequately avoid the serious negative side effects that we're seeing in the housing market today.
Wat?
No, you're making fundamentally wrong assumptions, starting with the assumption that everyone is going to live far from where they work. The problem with the Bay Area is that nobody can afford to live near the tech companies, so they all move farther away, but the tech companies continue to intransigently maintain only a small number of offices that all basically fall in SF, the South Bay, or the tiny, narrow peninsula between the two. And they don't even use all of that, thanks to a mountain chain that runs up the middle of the peninsula.
The way to solve all of these problems is very, very simple: Break up the tech companies. I don't mean like trust busting, but rather pass laws that any employer with more than 10,000 employees in the Bay Area must provide office space for at least 30% of its Bay Area employees outside of that SF/South Bay/Peninsula strip, and that any company breaking that rule will not be allowed to add a single office or desk within the strip, whether by building or by leasing, until that balanced is reached.
Imagine if Apple had a branch office in Gilroy, Facebook had a branch office in Salinas, and Google had a branch office in Watsonville. A decent chunk of the commute traffic would cease to exist, other traffic would reverse direction, etc., getting us much closer to full utilization of the roads that already exist.
Ideally, such a law would go even further than that, limiting how close any company's offices can be to one another, thus spreading each company's offices out across the entire area and making it easier to change jobs without moving.
An ideal law would also simultaneously overturn Prop 13 so that homeowners could afford to move closer to where they work, and so that rental property owners won't have an unfair tax advantage that effectively drives up the cost of housing by limiting people's ability to buy.
Yes and no. I'm of two minds on it. I actually rather like the Mac Pro I use at work (for writing iOS apps). The twelve-core monstrosity eats compiling jobs like a small child eats cotton candy.
On the flip side, I would never buy one for my own personal recording studio and video editing purposes, because the storage capacity doesn't cut it, and if I have to deal with something woefully inadequate, it might as well be the laptop that I already have. I seriously considered buying one when they first came out, but even if I looked past its inability to be rack mounted, by that time it came out, a terabyte was already absurdly tiny for me, and that's what saved me ten grand, which I left in AAPL, and is now 30 grand.
So it works really well for a very narrow definition of "Pro", which basically turns out to be Apple software engineers and third-party Mac and iOS developers. For everyone else, it started out with ludicrously insufficient storage, and then never improved. They designed for themselves instead of for their customers, and that's why the product failed. For what it does well, it is amazing. For what it doesn't do well, it is absolutely terrible.
If they brought back the cheese grater today, I'd probably buy one. I'll wait and see what their replacement looks like, but I'm not holding my breath. I don't think their hardware design team could stomach adding back SATA bays, and I don't think I'll ever buy a desktop computer that doesn't have several of them. (I mean, if they'll add a 60 TB SSD for under a grand, sure, but otherwise, no.)