I know where they're coming from, but all this wolf crying is getting annoying. I wouldn't mind if they came clear and said "we can't open source f.lux because we want to pressure Apple into letting us monetize it someday."
You may not (and agree not to, and not authorize or enable others to), directly or indirectly:
(a) copy, distribute, redistribute, rent, lease, mirror, timeshare, operate a service bureau, or otherwise use for the benefit of a third party, the Software;
(b) disassemble, decompile, attempt to discover the source code or structure, sequence and organization of, or otherwise reverse engineer, the Software (except to the extent applicable law prohibits restrictions on reverse engineering);
(c) remove any proprietary notices from the Software; or
(d) bundle the Software with any third party software, product or service.
You understand that Company may modify or discontinue offering the Software at any time.
For the avoidance of doubt, the foregoing restrictions apply to any company or corporate entity (or its affiliates or agents acting on its behalf) (each, an “Entity”) and
no Entity shall download or install the Software for the purposes of mirroring or distributing it to its employees or otherwise.
They also write at the bottom of their homepage that "f.lux is patent pending." Next to an offer of collaboration with cell phone, display, and lighting system manufacturers. Which is code for "We want money for this."Why do people support this software? Especially on HN, which should know better. This is the kind of software that wants to be free, and could be made better through open source.
If you think this is ridiculous (as I do), Redshift[1] is a free, open-source alternative for at least Linux. On Android, ChainFire's CF.lumen[2] at least does not make a patent claim on filtering your display, and allows you to use "Pro Mode" without paying (you simply have to enable "Freeloading" from the main menu).
2: https://play.google.com/store/apps/details?id=eu.chainfire.l...
(I'm not sure if f.lux does any update checking, which some people might count as unacceptable)
Same reason we use Photoshop, Pro Tools, etc: because we like/want the functionality. Build an open source alternative as good, and we'll use that.
Having done so, though, anyone can then use that gamma API. If there's no special advantage to f.lux's patented implementation, then some other (maybe FOSS, maybe not) gamma-shifting app will win the market. If f.lux has especially clever secret sauce in how and when exactly they gamma-shift, then f.lux will win the market.
The real question: should someone be able to clone f.lux's (latitude, time, and option-dependent) gamma curve formula without paying f.lux? Is a gamma curve formula patentable? I don't really know. I do know that it's easy enough to create your own that probably works nearly as well without it being f.lux's formula.
You may not (and agree not to, and not authorize or enable others to), directly or indirectly:
(a) copy, distribute, redistribute, rent, lease, mirror, timeshare, operate a service bureau, or otherwise use for the benefit of a third party, the Software;
(b) disassemble, decompile, attempt to discover the source code or structure, sequence and organization of, or otherwise reverse engineer, the Software (except to the extent applicable law prohibits restrictions on reverse engineering);
(c) remove any proprietary notices from the Software; or
(d) bundle the Software with any third party software, product or service. You understand that Company may modify or discontinue offering the Software at any time. For the avoidance of doubt, the foregoing restrictions apply to any company or corporate entity (or its affiliates or agents acting on its behalf) (each, an “Entity”) and no Entity shall download or install the Software for the purposes of mirroring or distributing it to its employees or otherwise.
"Just download this repo & compile for your own device" really isn't a solution for most people. There's a lot of people who would love to use f.lux on their devices, but wouldn't have a clue how to compile something with Xcode. Even offering the binary to sideload is a poor solution - what about people who don't own a Mac to connect their phones to?
For the maximum number of people to benefit from this, whether it's f.lux or GoodNight or another solution, it needs to be built into the OS (like Samsung has with Reading Mode) or on the App Store behind a big easy button that says "Get". That's what f.lux is campaigning for.
Also, the monetization strategy suggests an ulterior motive that makes it hard for me to accept the idea that this is important for my health, or public health, at face value.
Should f.lux go FOSS? That's up to them and their business model. Is their patent crappy? Perhaps so. Although Ill say, if it is so simple to do what they do, why dont we have a bunch of similar apps, legal or not?
I'm OK with no apps being on the App Store that will affect the appearance of other apps. The app is, in a way, a partial rewrite of the operating system. Of course Apple doesn't want apps that alter the OS in the store.
Adjusting white point is a feature, a little one in a long bullet item list, not a business model.
␄
Appendix: If you are doing this yourself, you can get an approximation of the white point for a temperature kelvin much more easily than computing it accurately. You are probably not doing astrophysics. A 1% or two error is ok. See: http://www.zombieprototypes.com/?p=210
If you want to use it in your iOS app, you can get a UIColor.colorWithKelvin() function from this gist. https://gist.github.com/jimstudt/c5069349f305dd5bb6b2 Use the color multiply function, also in that gist and multiply all of your colors by your white point. Which of course is a lot of work compared to adjusting the display CLUT, but you can get in the Apple store and you don't get the ability to screw up the user's other apps. (Hint: Use the screen brightness to guess the ambient light. You aren't allowed to use the ambient light sensor.) ((Also, I'm relatively certain multiplying is not perceptually correct, but it seems close enough for things I've done so I haven't gone down that rat hole.))
On a related note, the linked BBC article talks about phones needing a "bed mode" to "protect sleep". If you are really struggling with eye strain / disturbed sleep, a better advice would be to turn away your gadgets well before bed time and avoid the compulsive behavior of reading on your phone all the time. I tried f.lux along with better ambient lighting, screen dimming etc. (suggestions found on HN). The benefits were marginal. I would still wake up with groggy eyes & felt sluggish until I experimented with the rule of "no gadgets after dinner". That helped way more.
Don't get me wrong, it may be an awesome piece of software for those who have to be in front of the screen for longer duration.
$ codesign -vvv -d iflux
Executable=f.lux-xcode-master/iflux
Identifier=com.justgetflux.iflux
Format=bundle with Mach-O universal (armv7 (16777228:0))
CodeDirectory v=20200 size=645 flags=0x0(none) hashes=23+5 location=embedded
Hash type=sha1 size=20
CDHash=a32a120fefd588adbc6a420d6fc5786d223cfa72
Signature size=4340
Authority=iPhone Distribution: Michael Herf
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=11 Nov 2015 01:41:42
Info.plist entries=35
TeamIdentifier=VZKSA7H9J9
Sealed Resources=none
Internal requirements count=1 size=176
They were distributing a binary signed with their enterprise certificate and suggesting that user re-signs it. Additionally, flux.beta contains some auto-generated iOS project code, which is totally irrelevant. So it seems like the author himself does not quite understand what he was doing. It also makes sense that Apple took it down: it is against EULA to (publicly) distribute binaries signed with enterprise certificate.I can see why apple might not want some app that messes with the display's color (controlled user experience and all that), and (please someone correct me if I'm wrong here) potentially access everything that's written on the screen.
The only way I see similar functionality happening on iOS land is through an accessibility feature 100% controlled by apple. No money for f.lux here, I guess...
From the article:
> f.lux has been ready to ship for iOS devices for four years, but we can't put our app in the app store without Apple's help.
I get a system where progress and adoption is faster, I get far less (close to statistical noise) malware compared to Android (none, actually, if I stick to top tier apps -- whereas there are Android phones that came with malware pre-installed by the carrier), I get most pro apps first and often (e.g. for music creation apps) exclusively, and a whole ecosystem that works admirably well, from laptop to watch, and, for my uses, better hardware.
Its not about not allowing users to install f.lux, it's about not allowing developers to use development practices that are not approved by Apple, common - authors of f.lux are clearly doing something that is not allowed under iOS development terms and they want to change this rules just for them and let other developers use unapproved techniques which might cause security concerns for non technical users who are majority of the user base on iOS?
Perhaps we could avoid making HN part of their ongoing social media awareness campaign? Happy to talk about technology features, happy to debate what I feel are highly-suspect medical claims being made on their site that defy common sense. But I'm not excited to debate open vs free vs app store twice in the same weekend over an app that so very obviously goes against Apple's core vision for their products.
If and when Apple chooses to offer such functionality, it certainly won't look and behave like f.lux does. And I'm equally certain Apple won't make such wild claims regarding alleged health benefits.
The gatekeeper model works for mobile devices.
With a warning, that says, clearly 'this can seriously f••• up your phone'?
Not that Apple has a particularly great security track record anyway. Remember jailbreakme.com?
So while root would be useful to some consumers, the majority would be better off without it.
In addition, I imagine other app developers might not be happy with a sanctioned means to mess with the running of their app: more interactions means more to test and less control over the user experience.
More likely is that this functionality will be incorporated into iOS itself in a future update. But it still runs the risk of Apple considering it aesthetically distastefuland thus never doing it.
What f.lux does is (ab)use the CLUT to change the color temperature of the video signal sent to your monitor, cheaply and without requiring any modification to existing software. This is great if you trust f.lux, however clearly Apple cannot trust random apps with persistent access to the CLUT, because people could use it to do things like, say, completely blacken the screen.
In general, this is not the sort of thing you want sandboxed applications to be doing. You can imagine the problems that a bad actor could create with this capability.
The same, I think, is true for closed proprietary cloud platforms like those offered by Amazon, Microsoft, and Google. They're the enterprise version of iOS, and the trade is very much the same: do things our way and get a clean experience, but give up the opportunity to ever leave or to ever do anything in any way other than ours.
My partner is switching back from Android to iPhone. Her latest software update embedded ads everywhere and borked the contacts. It's too much.
Some of us are older, tired of doing tech supp, and just want stuff to work.
Open platforms have crummy UX, especially for people who are not computer experts. This explains why people are willing to make the bargain I outlined above. If open systems advocates are ever to offer a compelling alternative, they need to find alternative non-dictatorial ways to respond to these rather severe security and usability problems.
The first step to fixing a problem isn't to pretend it doesn't exist.
Of course you can use a-la-carte VMs in EC2 and do it that way and avoid platform lock-in, but Amazon is increasingly steering users away from that toward managed systems. These managed systems do have short term benefits (just like iOS does), but the long term bargain is similar.
Meanwhile it could have been available on Android for 4 years and without asking for Google's help or permission.
My guess is that it's supposed say be four days in both places.
However, and to f.lux's point, people should expect their devices will keep their health in mind. I believe Apple is worried that opening up first class support for this sort of functionality is an admission that blue light is hazardous to one's sleep health, which could open them up to various liabilities.