Coffee Space 
As a computer programmer, the only tool I find that I could not work without is a laptop. I used to use a desktop, but regular travel put an end to those golden days and modern laptop specifications are comparable to their desktop equivalents. Anything more than simply compiling or testing code would normally need to be run on some dedicated hardware anyway so that other projects can be worked on in the meantime.
Use of devices such as phones or tablets for programming has so far been a terrible experience, touch screens are not effective programming tools. The feedback from a keyboard allows for much higher rates of typing in my experience, although some younger generations could begin to challenge that notion. I distinctly remember that even with T9 keypads, some people were able to reach incredible speeds.
That said, a programming device I would be happy to use on a regular basis for programming would need (along with an indicator for how regularly they are used):
High Keyboard - For the purpose of typing
anything as the main source of input.High Battery - For ensuring that the device
runs separate from a need to be plugged in.High USB port - These are used regularly for
attaching various devices, in general three or more USB 2.0 ports are
needed.High WiFi - This is the single greatest use of
any kind of outbound connection the machine makes.High Display - Seeing what the hell is going
on.High Computer - The main features of being a
computer, i.e. CPU, RAM, GPU, etc. This is normally a single board
within the machine with all parts embedded.High Headphone port - Listening to music and
blocking outside distractions.Mid DC - Recharging the battery and keeping
the machine alive whilst the battery is removed.Mid Mouse - Organizing software on the
machine.Low Microphone - For online calls.Low Webcamera - For online calls.Low Ethernet - Connecting to hardware
directly.Low HDMI port - Giving presentations.Because of how regularly they are used, I would be happy for the
Low use devices to come in the form of attachments.
Mid use I wouldn’t mind them being embedded or
attached.
Our problem is not that laptops aren’t readily available and that they don’t come with most of the features we want, nor can they be considered too expensive for what they offer. The problem(s) I have with current laptops are:
Additionally, personally I would like to see:
We’ll run through some positives and negatives of existing platforms:
Positives:
Negatives:
Positives:
Negatives:
Positives:
Negatives:
Design one from scratch.
Of course this will be a lot of work, but the results should prove worth it. Essentially we want the result to be something similar to the PiTop, but that is less expensive, has longer battery life and has a more convenient form factor.
Addressing our requirements made above:
High Keyboard - Bluetooth keyboard (with
dongle occupying one USB port).High Battery - A USB battery bank.High USB port - Supplied via the board with
USB extensions.High WiFi - WiFi supported on the
mainboard.High Display - Via HDMI connection from the
mainboard (will require HDMI and one USB connection).High Computer - A low-end Linux board.High Headphone port - Supplied via the main
board.Mid DC - Charge the battery bank through
normal methods.Mid Mouse - Bluetooth mouse (shared with
keyboard).Low Microphone - Bundled with camera.Low Webcamera - USB add on camera (detached
for most purposes).Low Ethernet - USB add on Ethernet (detached
for most purposes).Low HDMI port - Unplug main output display for
HDMI.From this we have several requirements of the main board:
NOTE: To be continued…
[1] Link: https://www.google.com/chromebook/find-yours/
[2] Link: https://pi-top.com/products/pi-top