5
\$\begingroup\$

The objective of this question is to create a program that pushes your computer's internal fan speed to its maximum RPM. Upon exiting the program, your fan should return to the normal operating RPM.

Rules:

  1. You may not perform a CPU intensive task in order to modify the fan's speed.
  2. Exiting the program may be via user input, a timeout period, or a response to a SIGTERM or SIGEXIT signal.
  3. Avoid the standard loopholes.
\$\endgroup\$
14
  • \$\begingroup\$ How should the program exit? Timeout? User input? Signal? \$\endgroup\$ Jul 3, 2014 at 0:10
  • \$\begingroup\$ @GregHewgill No requirement is put in place on that, whatever takes the fewest number of characters would make an optimal solution however. \$\endgroup\$
    – syb0rg
    Jul 3, 2014 at 0:33
  • 3
    \$\begingroup\$ @user3334871, controlling the fan speed is possible. The bit I'm dubious about is resetting it to normal when the program is killed without any opportunity to react. \$\endgroup\$ Jul 3, 2014 at 9:10
  • 2
    \$\begingroup\$ I suspect very strongly that in order to meet this requirement, the program would need to be closed in a controlled manner. As far as I'm aware, this is no way to capture an unmanaged process termination. \$\endgroup\$
    – primo
    Jul 3, 2014 at 10:21
  • 1
    \$\begingroup\$ "computer's internal fan speed", which fan? \$\endgroup\$ Jul 4, 2014 at 7:02

3 Answers 3

5
\$\begingroup\$

OSX + Bash + smcFanControl, 91 bytes

This relies on the third-party smcFanControl suite to do the hard work and is therefore more of a proof-of-concept than a serious answer. Real answers could pick apart the smcFanControl source code and do this without third-party help.

smcFanControl.app is assumed to be installed in /Applications.

p=/Ap*/smcFan*/C*/R*/smc\ -k # Path to CLI utility
f()($p'FS! ' -w000$1)        # function to set fan mode
f 3                          # Set fan speeds to "forced" mode
eval $p\ F{0,1}"Tg -w5DC0;"  # Set fan 1 and 2 to 6000 RPM target speed
read                         # wait for keyboard input
f 0                          # Return fans to "auto" mode

Comments added for explanation, but not included in score.

\$\endgroup\$
4
  • 1
    \$\begingroup\$ depending on your entry the whole point of this contest is to find an utility that has the shortest name and then control the fan with it. how clever one must have to be... and this doesn't mean i don't like your answer. i belive it's already a winner. but the whole challenge is pointless. \$\endgroup\$
    – bebe
    Jul 3, 2014 at 17:08
  • 1
    \$\begingroup\$ DigitalTrauma found a program that can be controlled like that. What if i find (or make but okay, its a loophole) an utility that does the same if I type maxfan? \$\endgroup\$
    – bebe
    Jul 3, 2014 at 17:20
  • \$\begingroup\$ @bebe All good points. See my edit. \$\endgroup\$ Jul 3, 2014 at 17:31
  • \$\begingroup\$ basically Outsourcing the answer \$\endgroup\$ Jul 3, 2014 at 17:33
5
\$\begingroup\$

GLXGEARS - 8bytes

First thing I thought of was yes, or yes in parallel. As we are not allowed to use the CPU to control the speed, let's use the GPU:

glxgears
\$\endgroup\$
4
\$\begingroup\$

Reboot, 6 bytes

reboot

Just after a boot, the fans start spinning at max rpm because the power is turned on to the fan, before the BIOS loads any real time controllers that will base the speed of the fan on the temperature of the processor. This also keeps the processor from getting excessively hot if you were to try the alternative... which would be to keep the fan off until those controllers were loaded and basing the fan speed on processor temp. More of a safeguard than anything. The processor is starting to work the moment you turn the computer on, but the BIOS still needs time to load. https://superuser.com/a/427723/246895

(Does not work on every pc, but is confirm the OP)

\$\endgroup\$
2
  • 2
    \$\begingroup\$ The program exits before the reboot actually occurs, so the fan spin-up happens after program exit. This is not at all in line with the spec. \$\endgroup\$ Jul 4, 2014 at 15:21
  • \$\begingroup\$ @PeterTaylor Completely true. \$\endgroup\$ Jul 4, 2014 at 17:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.