jefframnani + software   161

Living on the Plateau - Clean Coder Blog
File under: The end of Moore's Law and Exponential Hangover.

Uncle Bob explains it. There's even a slide from Intel talking about how 28mn is the most cost-effective for mid-range computers.
But the 8 core processors never came – at least in the laptop space. We’re still waiting. And it’s looking more and more as though Moore’s law for density has hit the wall.
I think it is quite realistic to expect that the speed and density of computers have reached their practical limits. It’s just possible that we have been living on the plateau for the last decade; and that we will remain on this plateau for the foreseeable future.

Then he looks down the road and asks what else might be affected? I think he's right that the Cambrian Explosion of programming languages are over. We're settling into a stable basis for the future. The only one he's missing is Kotlin.
If we aren’t going to see 1024 core processors in the near future, what need have we of functional programming languages? Oh, don’t get me wrong. I think functional programming is a good idea. Every programmer should learn it. But the crisis that we anticipated – the crisis that drove the current infatuation with functional languages – seems not to be occurring. And that may well mean that functional languages never achieve the ascendency that we had anticipated for them. It may just be that Java/C#, and Ruby/Python, and Swift/Dart/Go are, and will be, sufficient.

If Moore’s law was the driver of our language evolution, what will drive it now? Could it be that we are living at the beginning of a period in which language evolution will slow it’s frenetic pace? Will we see the number of languages cease it’s relentless rise, and begin to decline? Will our industry gradually abandon the exuberance of adolescence and settle down into a stable period of adulthood and middle age?
programming  language  evolution  MooresLaw  FunctionalProgramming  hardware  software 
14 hours ago by jefframnani
Introducing Nullable Reference Types in C#
A good story of evolving a language to add a useful feature in the face of a large install base. A thoughtful approach to adding this feature.
csharp  programming  software  evolution 
3 days ago by jefframnani
Entering the Quantum Era—How Firefox got fast again and where it’s going to get faster – Mozilla Hacks – the Web developer blog
Another great story about how to evolve a large existing code base with a large user base.

This is the opportunity that the Chrome engineers foresaw. We saw it too, but we had a bumpier path to get there. Since we had an existing code base we needed to plan for how to split up that code base to take advantage of multiple cores.

Electrolysis laid the groundwork for Project Quantum. It introduced a kind of multi-process architecture similar to the one that Chrome introduced. Because it was such a big change, we introduced it slowly, testing it with small groups of users starting in 2016 before rolling it out to all Firefox users in mid-2017.

File under: browsers are becoming operating systems. In this case Firefox is adding their own preemptive scheduler to prioritize tasks.

Even when you split up the content windows between cores and have a separate main thread for each one, there are still a lot of tasks that main thread needs to do. And some of them are more important than others. For example, responding to a keypress is more important than running garbage collection. Quantum DOM gives us a way to prioritize these tasks. This makes Firefox more responsive. Most of this work has landed, but we still plan to take this further with something called pre-emptive scheduling.
firefox  browser  refactoring  performance  software  evolution 
4 days ago by jefframnani
Amazon Revokes Delicious Library API Access
We are writing to tell you that effective as of today’s date, Amazon is terminating your Associates account. Under the terms of the Operating Agreement, we may terminate your account at any time, with or without cause. This decision is final and not subject to appeal.
business  monopoly  amazon  software 
24 days ago by jefframnani
The Software Apocalypse - Tools Are Not The Answer

And right there, ladies and gentlemen, you can see both the cause of the apocalypse, and the obvious solution.

The cause:

1. Too many programmer take sloppy short-cuts under schedule pressure.
2. Too many other programmers think it’s fine, and provide cover.

The obvious solution:

1. Raise the level of software discipline and professionalism.
2. Never make excuses for sloppy work.

This is the point that the author of the Atlantic article missed entirely. The one thing he failed to consider was that the reason we are facing bugs that kill people and lose fortunes, the reason that we are facing a software apocalypse, is that too many programmers think that schedule pressure makes it OK to do a half-assed job.
programming  craftsmanship  culture  testing  quality  software 
5 weeks ago by jefframnani
Daring Fireball: Bill Gates Now Using an Android Phone 'With a Lot of Microsoft Software'

While I”m at it, it occurs to me that Apple is the only company left where all its employees are using only systems made by their own company. Microsoft employees need to use phones running iOS or Android. Google employees need to use MacOS or Windows (there might be some administrative jobs where they can use Chromebooks, but I doubt there are any engineers or designers getting by with Chrome). But at Apple, it’s MacOS on your PCs, iOS on your phone and tablet, WatchOS on your watch, and even tvOS on your set-top box. Microsoft use to have a slogan “Windows everywhere”. Apple doesn’t have one OS that runs everywhere (although it’s close with iOS — WatchOS and tvOS are really just offshoots of iOS with different UI layers), but there is a sort of cultural “Apple everywhere” mindset that I worry could lead to the sort of insularity that blinded Microsoft in the early ’00s.
apple  microsoft  business  monopoly  software  quality 
7 weeks ago by jefframnani
The 4-letter-word word that makes my blood boil

Gerald Weinberg calls “just” an example of Lullaby Language, which “lulls your mind into a false sense of security, yet remains ambiguous enough to allow for the opposite interpretation.”
software  programming  culture  communication  management 
12 weeks ago by jefframnani
Why we’re switching Ulysses to Subscription – Building Ulysses – Medium
The software business is changing. Paid upgrades are dead in a post App Store world. Subscriptions seem like the only / best option going forward.

Let’s map this onto Ulysses for a moment: If you bought Ulysses at its launch in April 2013, you will now have received nine major feature releases. For free, at no additional cost. At least 80% of that originally purchased app have since been scraped and replaced. Its functionality has quadrupled during the same time.

Each of these nine updates required a considerable amount of time on our part, which of course translates into a considerable amount of development cost. But with customers ever only paying for the development of the current version — how did we manage to finance new versions then?

The answer is simple: New users.
Or in economic terms: Expanding our market.

Now, as long as there was a strong-enough flow of new customers every month, development costs could be covered by those sales. But since ours is a growing product (updates!), it hence needs a growing team (more code), which means growing development costs (devs need food), which in turn means we need an ever-growing stream of new users.

Needless to say, solely relying on new customers to keep your business going, is a very unstable idea — at the very least, there will come a time of full market saturation, right? ...
software  business  saas  productivity  apple 
august 2017 by jefframnani
Why we’re switching Ulysses to Subscription – Building Ulysses – Medium
The software business is changing. Paid upgrades are dead in a post App Store world. Subscriptions seem like the only / best option going forward.

Let’s map this onto Ulysses for a moment: If you bought Ulysses at its launch in April 2013, you will now have received nine major feature releases. For free, at no additional cost. At least 80% of that originally purchased app have since been scraped and replaced. Its functionality has quadrupled during the same time.

Each of these nine updates required a considerable amount of time on our part, which of course translates into a considerable amount of development cost. But with customers ever only paying for the development of the current version — how did we manage to finance new versions then?

The answer is simple: New users.
Or in economic terms: Expanding our market.

Now, as long as there was a strong-enough flow of new customers every month, development costs could be covered by those sales. But since ours is a growing product (updates!), it hence needs a growing team (more code), which means growing development costs (devs need food), which in turn means we need an ever-growing stream of new users.

Needless to say, solely relying on new customers to keep your business going, is a very unstable idea — at the very least, there will come a time of full market saturation, right? ...
software  business  saas  productivity 
august 2017 by jefframnani
'THIS IS NOT A DRILL:' A Hacker Allegedly Stole $32 Million in Ethereum - Motherboard
Imagine your money is controlled by software. Software has bugs. Bugs that can cost you all your money.
ethereum  money  finance  software  quality  blockchain 
july 2017 by jefframnani
Apple, Google and other Nasdaq Stocks Swing Wildly in After-Hours Trading - Bloomberg

An error at Nasdaq Inc.’s computer systems caused confusion among traders Monday, as Wall Street closed early for the July 4 holiday.

The exchange operator was conducting a test of its pricing data feed that led to some third-party providers showing wild moves in shares including Google Inc. and Microsoft Corp. that never occurred, according to spokesman Joe Christinat. Nasdaq is working with the providers to resolve the issue, he said.
software  finance  exchange  testing  outage  Nasdaq  markets 
july 2017 by jefframnani
The Half-Life of Code — Sandi Metz

In my experience, most applications are a mess. Successful business rely on long-lived applications that endure a constant barrage of new requirements. Changes are commonly made under urgent time pressure, which drives applications towards disorder. As entropy increases, it becomes harder and harder to add features except by way of one more hack. The accumulated mess leads to hacks, hacks lead to more hacks, and then you're in a loop. Velocity gradually slows, and everyone comes to hate the application, their job, and their life.
programming  quality  software  design 
june 2017 by jefframnani
The Four Elements of Simple Design
By JB Rainsberger

I claim that developing strong skills of detecting duplication, removing duplication, identifying naming problems, and fixing naming problems equates to learning everything ever written about object-oriented design.
software  design  tdd  programming  oop 
may 2017 by jefframnani
The Clean Architecture | 8th Light
By Uncle Bob. A synthesis of the hexagonal and screaming architectures.
programming  design  architecture  software 
may 2017 by jefframnani
Damage - Matt Gemmell
Matt is calling out Apple here, but I put Google in the same camp. In fact, it was Google who did the research on how much more engagement you got when you priced at zero.

No company has done as much damage to the perceived value of software, and the sustainability of being an independent developer, as Apple.

Not that other companies wouldn’t have done the same thing — they would have. It’s just that Apple was the successful one.

It’s resolutely the fault of us as consumers, and it’s actively encouraged by the App Store.
programming  business  apple  google  software  economics 
may 2017 by jefframnani
Education of a Programmer – Hacker Noon

one of the hardest problem for a system designer is to determine how to divide responsibilities between components of a system. This ends up being a discussion that involves weighing the pros and cons as you divide up functionality, isolate complexity and try to design a reliable, performant system that will be flexible to evolving requirements. There is no simple set of rules to follow.

On architecture and software layers:

It is almost a truism that a component you adopt will have more functionality than you actually require. In some cases, the decision to use it is based on leveraging that functionality for future uses. You adopt specifically because you want to “get on the train” and leverage the ongoing work that will go into that component. There are a few consequences of building on this highly functional layer. 1) The component will often make trade-offs that are biased by functionality that you do not actually require. 2) The component will embed complexity and constraints because of functionality you do not require and those constraints will impede future evolution of that component. 3) There will be more surface area to leak into your application. Some of that leakage will be due to true “leaky abstractions” and some will be explicit (but generally poorly controlled) increased dependence on the full capabilities of the component.

As soon as you have defined a layer, it starts to accrete functionality. The layer is the natural throttle point to optimize for your usage patterns. The difficulty with a thick layer is that it tends to reduce your ability to leverage ongoing innovation in underlying layers. In some sense this is why OS companies hate thick layers built on top of their core evolving functionality — the pace at which innovation can be adopted is inherently slowed.

On performance:

A key thing to recognize about this exponential change is that while all components of the system are experiencing exponential change, these exponentials are divergent. So the rate of increase in capacity of a hard disk changes at a different rate from the capacity of memory or the speed of the CPU or the latency between memory and CPU. Even when trends are driven by the same underlying technology, exponentials diverge. Latency improvements fundamentally trail bandwidth improvements.

On complexity:

I have struggled with complexity my entire career. Why do systems and apps get complex? Why doesn’t development within an application domain get easier over time as the infrastructure gets more powerful rather than getting harder and more constrained? In fact, one of our key approaches for managing complexity is to “walk away” and start fresh. Often new tools or languages force us to start from scratch which means that developers end up conflating the benefits of the tool with the benefits of the clean start. The clean start is what is fundamental. This is not to say that some new tool, platform or language might not be a great thing, but I can guarantee it will not solve the problem of complexity growth. The simplest way of controlling complexity growth is to build a smaller system with fewer developers.
programming  career  management  software  design  architecture 
april 2017 by jefframnani
Complexity and Strategy
A retrospective from years of working on Microsoft's Office products.

Great essay on the trade-offs between a product's functionality (the sum of its features), and it's essential complexity (how those features interact).

I enjoyed this take on the enthusiasm for new technologies by early adopters.
This perspective does cause one to turn a somewhat jaundiced eye towards claims of amazing breakthroughs with new technologies. Managed code was one that we argued about for a long time during this period. Leveraging open source also has some of the same dynamics. What I found is that advocates for these new technologies tended to confuse the productivity benefits of working on a small code base (small N essential complexity due to fewer feature interactions and small N cost for features that scale with size of codebase) with the benefits of the new technology itself — efforts using a new technology inherently start small so the benefits get conflated. Additionally, these new technologies (Java, C#, NodeJS is the latest one) start out with a much more functional initial set of base libraries and rich frameworks, certainly compared to what we saw in C and C++ and in the early days of either Mac or Windows application development.


This is about the framework code that Office is built upon, but it feels equally true about Rails and Django, et al.

The dynamic you see with especially long-lived code bases like Office is that the amount of framework code becomes dominated over time by the amount of application code and in fact frameworks over time get absorbed into the overall code base. The framework typically fails to evolve along the path required by the product — which leads to the general advice “you ship it, you own it”. This means that you eventually pay for all that code that lifted your initial productivity. So “free code” tends to be “free as in puppy” rather than “free as in beer”.


On competing with Google Docs.
Browser-based application delivery solved the deployment problem which was a huge issue for PC applications in the days before app stores. This enabled continuous delivery of new features as well as ensuring that everyone was up-to-date with the latest version.

One thing that was clear to us was that the cloud/browser development strategy did not offer a breakthrough in the constraints of essential complexity like I am discussing here. In fact, the performance challenges with running large amounts of code or large data models in the browser and managing the high relative latency between the front and back end of your application generally make it harder to build complex applications in a web-based environment.


Positive affirmation of how Microsoft enforces their monopoly intentionally. This comes right after a paragraph criticizing Google Apps for not being more compatible with Office.
The final decision to build the “Word Web App” rather than “a new web-based word processor from Microsoft that is not fully compatible with Word” (and similarly for Excel, PowerPoint and OneNote) was strongly driven by the belief that the file formats continued to serve as a critical competitive moat with immensely strong network effects. In fact, an argument can be made that the Office file formats represent one of the most significant network-based moats in business history (with Win32 and the iOS APIs as two others).
microsoft  programming  software  history  msoffice 
march 2017 by jefframnani
Gerald M. Weinberg: Writer - Consultant OFFICIAL WEBSITE
Author of The Secrets of Consulting. For some reason it was hard to Google his actual web site where I can buy his books somewhere other than Amazon.
programming  agile  consulting  business  book  author  quality  software 
march 2017 by jefframnani
How to Crash Systemd in One Tweet
The bug is remarkably banal. The above systemd-notify command sends a zero-length message to the world-accessible UNIX domain socket located at /run/systemd/notify. PID 1 receives the message and fails an assertion that the message length is greater than zero. Despite the banality, the bug is serious, as it allows any local user to trivially perform a denial-of-service attack against a critical system component.
linux  security  systemd  software  quality 
february 2017 by jefframnani
Why Every Element of SOLID is Wrong // Speaker Deck
SOLID has been a guide for Object Oriented Programmers for years. Challenging these principles is thought provoking.
programming  architecture  design  software  oop 
january 2017 by jefframnani
Bitter iCloud Truth | Bitsplitting.org
This is fucking awful. How does the company that gave us Time Machine screw up backup and restore so badly.

The overarching lesson here is that when it comes to iCloud-synced data, you cannot count on local data, and worse: you can’t count on local archives.
osx  apple  software  quality  backup  sync 
january 2017 by jefframnani
/dev/lawyer The MIT License, Line by Line
Great summary of and commentary on the MIT open source license.
license  software  legal  copyright  opensource 
october 2016 by jefframnani
A Declining Trajectory - Matt Gemmell

Courage is apparently what it takes to remove a headphone port, according to Phil Schiller. I can only imagine which laudable value might lead to slowing down, making the upgrade cycle biennial, and focusing once again on quality and dependability above all.

The practical impact of all this for me is small, but meaningful: I don’t trust this stuff anymore. It was the very reliability of it — in user-friendly design, as well as stability of functionality — that was the basis of my choice in the first place, and continued choices for decades since. I don’t care about the brand itself, and I have no intellectual investment in the platforms as a developer anymore. I just need things that work, and that I can rely on working.
apple  software  quality  osx  ios  iwatch 
october 2016 by jefframnani
Providing the best possible App Store experience - The Omni Group
Omni is making their pro Mac apps free to download with in-app purchase for the Standard and Pro features. The free version of the app acts as a read-only document viewer.

The evolution of the software business continues. I wonder how this will work for OmniFocus?
apple  software  business  ios 
october 2016 by jefframnani
Episode #54 Enterprise Software with Python - [Talk Python To Me Podcast]
Defining "enterprise software". I liked their discussion about customization and the lack of scale that it results in.
business  software  podcast  python  programming 
june 2016 by jefframnani
Separate, support, serve - bitquabit
I may need to update my thinking about Microsoft.

This leaves us with two conclusions. First, empirically, Embrace, Extend, Extinguish failed; if it hadn’t, Windows would still be a monopoly. For Microsoft to be continuing this strategy, you have to believe they were not merely evil, but also unrecoverably stupid.

Second, it can’t work in an environment where Microsoft is an underdog. For nearly all shops out there, leaving Windows is honestly pretty trivial at this point; it’s adopting it that’d be an uphill battle. If I pick “Linux”, I can trivially integrate OpenBSD, Illumos, OS X, and any other Unix-like environment into my workflow with few or no issues. I can pick amongst AWS, GCE, Digital Ocean, and others for my hosting. I can pick virtually any language and database I want, use virtually any deployment tool, and migrate amongst all of these options with relative ease.
software  microsoft  business  culture  windows  monopoly 
may 2016 by jefframnani
ITunes Library on a NAS | Apple Support Communities
It looks like I'm not the only one experiencing this problem with iTunes corruption when the files are hosted on a NAS.

@BemApo you are describing my issue exactly.... right down to The Talking Heads. My library is messed up, though I'd prefer to use stronger language when talking about it. I'll click one song and another will play. Some videos have turned into podcasts, music, etc. In many cases actual files have moved. The songs on an album will be contained in one folder and the rest in another random folder
apple  software  quality  itunes 
may 2016 by jefframnani
In Oracle v. Google, a Nerd Subculture Is on Trial

But ever since a bunch of normals at the Federal Circuit decided in 2014 that the structure, sequence, and organization of the Java APIs are copyrightable, copyrightable they are—and now Google witnesses are struggling to explain their actions as part of a long shared history in an insular community of nerds with their own language, their own mythology, their own intuitions about software and intellectual property.
software  copyright  api  legal  oracle  google 
may 2016 by jefframnani
An Apple Music plea
This is what it sounds like when you start losing your customers trust. In this case, customers are losing trust in Apple's software quality.
apple  software  quality  business  itunes 
may 2016 by jefframnani
Apple Music Deletes Personal Music Files
iTunes is a fucking garbage fire. After turning on iCloud Music Library, my entire local music library was corrupted including the music files themselves.

"My takeaway from all the people commenting is that no one seems to fully understand how it’s intended to work, or whether it works as intended, so it’s best to stay far away."
apple  software  quality  cloud  itunes 
may 2016 by jefframnani
Consultants Ate My Unit Tests
A concrete example of unprofessional behavior by programmers. A professional programmer completed a project. He had automated unit tests. The business owner then started using cheaper consultants, who deleted the unit tests and created a mess. This is predictable, but sometimes you need concrete examples to show people why testing is important.
business  testing  consulting  programming  quality  software 
march 2016 by jefframnani
What no indie developer wants to hear about the App Store
"We're in the app equivalent of the industrial age, where mass production and departments stores have changed the way the industry works. Where developers are fighting for shelf space like toothpaste tubes at Walmart and have as much an idea who's buying their products as Coke does a can at 7/11."
ios  software  business 
march 2016 by jefframnani
Typos in Disk Utility
"These kind of user interface issues don’t inspire confidence. And, unfortunately, the problems are not just skin deep. Lately I’ve been encountering a problem where SuperDuper cloning fails because the disk is full. It turns out that the underlying diskutil tool sometimes fails to erase the volume but tells SuperDuper that it succeeded. So not only does it not work but also it doesn’t know that it doesn’t work."
apple  software  quality  osx 
march 2016 by jefframnani
Making WhatsApp free and more useful - WhatsApp Blog
Charging for software is hard. Especially if you're a messaging app that needs network effects.

"That's why we're happy to announce that WhatsApp will no longer charge subscription fees. For many years, we've asked some people to pay a fee for using WhatsApp after their first year. As we've grown, we've found that this approach hasn't worked well. Many WhatsApp users don't have a debit or credit card number and they worried they'd lose access to their friends and family after their first year. So over the next several weeks, we'll remove fees from the different versions of our app and WhatsApp will no longer charge you for our service."
software  business  messaging  advertising 
january 2016 by jefframnani
Çingleton - Rich Seigel
The creator of BBEdit talks about leaving the Mac App Store.
business  software  apple  video 
december 2015 by jefframnani
★ Low Hanging Fruit
Gruber lost some email accounts after his upgrade to El Capitan.
osx  software  quality 
december 2015 by jefframnani
inessential: Low-Hanging Fruit
"So we have Apple Watch and Apple TV now. What I’m hoping for — what I’m nearly begging for, more as a user than as developer — is that Apple spend a year making things better. Nothing new. Just make things work better."
osx  quality  software 
december 2015 by jefframnani
Mobile, ecosystems and the death of PCs
Trying to define what we mean by "mobile".

"So, a simple answer to a complex question - when we say 'mobile' we don't mean mobile just as when we said 'PCs' we didn't mean personal. This isn't about the screen size or keyboard or location or use. Rather, the ecosystem of ARM, iOS and Android, with 10x the scale of Wintel, will become the new centre of gravity throughout computing. It will take over things like IoT and wearables in one direction and, in due course, the data centre in the other, and it will push onto the desktop. The smartphone is the new sun."
software  mobile  business 
november 2015 by jefframnani
Software and engineering
"I have a much simpler definition of engineering that has nothing to do with process or the reliability of results. To me, engineering is a struggle against nature using the laws of nature. The products of “real” engineering exist in the physical world; they are not abstractions."
programming  software  engineering 
november 2015 by jefframnani
Graham King » Facebook’s code quality problem
"Next time management or clients try to convince you to move faster and throw quality under the bus, you can say sure, that will work, as long as you can hire 429 engineers to work on our iOS app."
programming  software  facebook  quality 
november 2015 by jefframnani
Delibar, Delicious Mac client
Delibar is a full featured Delicious and Pinboard Mac client. Delibar focuses on giving Mac OS X users an easy and quick tool for searching, managing and sharing their bookmarks.
osx  pinboard  software 
november 2015 by jefframnani
Tags - Simply Organized
Tag items in the Finder, Mail, Photos and more. Can work with any application that supports Applescript. Provides a search interface light spotlight.
osx  software  productivity  search  tags  organization 
november 2015 by jefframnani
REWRITE — Medium
Good text summary of DHH's talk at the Business of Software 2015 conference, "REWRITE".
programming  software  design  business  saas 
october 2015 by jefframnani
Video: REWRITE: Why Basecamp 3 is a brand new code… – Signal v. Noise
DHH on abandoning the idea of an eternal version of web software. Creating new versions of your service for new users, and keeping your old version running to service existing customers. What he called, "Honoring your legacy". He called this concept, "competing with your best ideas", over the lifetime of your product.

On the decision of whether to force your customers to upgrade to a new, different version of your software, "Don't put your customers back into the market. There's no guarantee they'll pick your product again to solve their problem."

I like his points about being free to create new green field, versions of a service (usually targeted at new customers), as long as you keep your existing customers happy. It's liberating to not be stuck within an old code base, and with your old decisions forever.
programming  software  design  business  saas 
october 2015 by jefframnani
Volkswagen and Cheating Software
"Software will only make malfeasance like this easier to commit and harder to prove. Fewer people need to know about the conspiracy. It can be done in advance, nowhere near the testing time or site. And, if the software remains undetected for long enough, it could easily be the case that no one in the company remembers that it's there."
business  fraud  software 
october 2015 by jefframnani
Service sunsets aren’t the least bit pretty
"It’s really not rocket science. People like change on their own schedule, they detest it when forced according to someone else’s. That’s just human nature, and it’s rarely good business to fight it."
programming  software  business  saas 
september 2015 by jefframnani
Software: Immaculate, fetid and grimy
"In my experience, large software systems — be they proprietary or open source — have a complete range of software quality within their many subsystems."
programming  software  os  design  quality 
september 2015 by jefframnani
The Mac App Store, Paid Upgrades, and Trials
App Store policies are pretty hostile to sustainable development.
apple  mobile  software  business 
august 2015 by jefframnani
Apple Music is a nightmare and I’m done with it
"As if all of that wasn’t enough, Apple Music gave me one more kick in the head. Over the weekend, I turned off Apple Music and it took large chunks of my purchased music with it. Sadly, many of the songs were added from CDs years ago that I no longer have access to. Looking at my old iTunes Match library, before Apple Music, I’m missing about 4,700 songs. At this point, I just don’t care anymore, I just want Apple Music off my devices."
apple  itunes  music  quality  software 
july 2015 by jefframnani
Why I’m Saying Goodbye to Apple, Google and Microsoft
"Part of my conversion stems from an abiding distaste for corporate and government control-freakery. If we believe in liberty, we have to realize that we take risks to be more free. If we believe in competition, we sometimes have to intervene as a society to ensure that it’s fair."
opensource  culture  software  politics 
june 2015 by jefframnani
Clipstart
Clipstart complements your photo application to give you a place that is designed for home movies.
osx  video  software 
june 2015 by jefframnani
Microsoft to stop producing Windows versions - BBC News
"Instead of new stand-alone versions, Windows 10 would be improved in regular instalments, the firm said."
microsoft  software  os  business  windows 
may 2015 by jefframnani
Beyond Open Source
Docker versus CoreOS. GCC versus LLVM.
opensource  software  politics  business 
may 2015 by jefframnani
Policies - Cloak - Super-simple VPN
If you want to write a good privacy policy page, here's a good example.
vpn  software  policy  privacy  transparency 
april 2015 by jefframnani
« earlier      
per page:    204080120160

related tags

acm  advertising  agile  ai  amazon  api  apple  architecture  art  author  backup  blackberry  blockchain  blog  book  browser  budget  build  business  career  cloud  communication  compiler  computers  conference  consulting  continuousdeployment  continuousintegration  copyright  craftsmanship  creativity  crowdsourcing  csharp  culture  design  development  devops  distributed  documentation  economics  emulator  energy  engineering  entrepreneurship  estimation  ethereum  ethics  evolution  exchange  facebook  finance  firefox  fraud  FunctionalProgramming  funding  gnu  google  government  gpl  hardware  history  hosting  hp  humor  internet  ios  itunes  iwatch  java  language  law  legal  library  license  linux  mac  macbook  macos  malware  management  marketing  markets  meditation  mercurial  messaging  microsoft  mobile  money  monopoly  MooresLaw  msoffice  music  nasa  Nasdaq  nyse  oop  openbsd  opensource  oracle  organization  os  osx  outage  patents  payments  performance  philosophy  photoshop  pinboard  planning  podcast  policy  politics  privacy  productivity  programming  python  quality  rake  refactoring  reference  ReleaseManagement  research  ruby  saas  sales  scifi  scm  search  security  smartgrid  software  space  startups  surveillance  sync  sysadmin  systemd  tags  tdd  technology  testing  tools  TouchBar  transparency  unix  ux  video  vpn  web  windows  zfs 

Copy this bookmark:



description:


tags: