User:Ian.rees

About me
My name is Ian, and I have a fair bit of free time to contribute to FreeCAD. I'm currently employed as a contract "experiment operator" (essentially a Linux systems administrator for a physics project), my last job was as an electrical engineer working with power electronics in New Zealand.

Motivation
I like making things, and have occasionally been in situations where a decent 3D CAD program would be nice to have for drawing up plans or ideally running finite-element simulations (mainly for thermal models, but pressure/tension/stress/strain would be good too). Especially with the proliferation of 3D printers, I imagine that an open source 3D CAD program could be quite useful, so I think the audience for a program like FreeCAD is rapidly growing.

Relevant experience
Non-computer experience is mainly with manual machine tools, but some homebrew and commercial CNC. I like bikes (mainly without motors) a lot, can TIG weld to a degree, and have some interest in renewable energy. I am interested in design; in the sense of making computer interfaces work well with people, and in presenting information as meaningfully as possible. Design of Everyday Things and The Visual Display of Quantitative Information are two great books that might explain my taste in design.

Computer experience is fairly wide-ranging, but not terribly deep in any particular area. I like Python and sometimes like C++, and have written a fair bit of code in both. For a while, I worked as a professional developer mainly in C for a big telecoms chipset company. Mainly using Linux lately for work reasons, but my personal machine is a Mac running OS X, and I've spent more time than I care to admit fixing Windows problems.

Tinkering space
This is just a scratch space - don't take anything here too seriously.

FreeCAD Design (in the sense of art) Guide
Anti-aliasing should be at least supported everywhere, and enabled by default.

Visible controls that toggle between two states should be indicated in a way that shows their current state. Eg, rather than a button "Toggle axis cross", a checkbox for "show axis cross" is much better.

Tools that are relevant to several workspaces (eg the measurement tool) should be pushed up into a set of general tools. This way, we'll have less work in implementing new workspaces and in updating tools, and we'll create more uniformity in the user interface across different workspaces.

FreeCAD Design (in the sense of source code) Guide
There needs to be more uniformity in which libraries get used for what. Eg: there seem to be at least 4 types of strings in common use. I'd propose sticking with QStrings, and Qt's signal-slot (rather than Boost's) as the default.

Personally, I don't think new code should be merged until it includes Doxygen-formatted comments!

We should come up with a FreeCAD style guide for each language in use, especially C++. google's might be a good starting point?