January 12
http://www.inter-sections.net/2007/11/13/how-to-recognise-a-good-programmer/
I found this interesting post, and while I don't agree with every point, overall, it's a great profile...
Positive indicators:
- Passionate about technology
- Programs as a hobby
- Will talk your ear off on a technical subject if encouraged
- Significant (and often numerous) personal side-projects over the years
- Learns new technologies on his/her own
- Opinionated about which technologies are better for various usages
- Very uncomfortable about the idea of working with a technology he doesn’t believe to be “right”
- Clearly smart, can have great conversations on a variety of topics
- Started programming long before university/work
- Has some hidden “icebergs”, large personal projects under the CV radar
- Knowledge of a large variety of unrelated technologies (may not be on CV)
Negative indicators:
- Programming is a day job
- Don’t really want to “talk shop”, even when encouraged to
- Learns new technologies in company-sponsored courses
- Happy to work with whatever technology you’ve picked, “all technologies are good”
- Doesn’t seem too smart
- Started programming at university
- All programming experience is on the CV
- Focused mainly on one or two technology stacks (e.g. everything to do with developing a java application), with no experience outside of it
January 08
http://www.wpf-graphics.com/Reader3ds.aspx
One of the best Assemblies out there for reading 3DS objects and displaying them in WPF just got better - much, much better.
Before After
New in version 4.2:
- Support for smoothing groups - also automatically support flat and shaded models. This greatly improves rendering quality.
- Added Shading property to define None, Flat, Smooth or SmoothingGroups shading. Default value is SmoothingGroups that uses the Smoothing Groups values stored in 3ds file to define which edges are smooth and which are flat. This option produces the results as in the 3d model designer. However if you wish to force the flat or smooth looking objects choose either Flat or Smooth (before reading the 3ds file). Also if performance is much more important than rendering quality choose None.
- GetFrame can now get a frameNo as double to render the models between frames (for smoother animation)
- Fixed bug when reading from reasource and 3ds file contains texture files (exception was thrown).
- Also now it is possible to set TexturesPath property to url of the textures (http://...) or to the application resources ("pack://application:,,,/XAMLBrowserApplication1;component/models")
- Added GetCameraForFrame method that gets the camera for the desired frame number - this enables creating animated cameras
- Fixed reading material colors for some older 3ds files (in previous version reading crashed with "Non-negative number required." exception)
- The previous version has wrongly convert position from 3ds coordinate system to wpf coordinate system. The difference is that the x axis now points to the right instead of the left and the z axis points to the viewer and not away from it. This version by default uses new coordinate system, but if your application depends on the old one, you can simple set this property to true. But note that this can only be a temporary solution. Set UseOldCoordinateAxis property to true to use old coordinate axis.
- Added Materials property - Dictionary that can be used to access all the materials defined in 3ds by their name.
- Added support for animated lights (PointLight - positin, color; SpotLights - position, direction, color)
- Added GetExpirationDate method
- Added TargetViewport - gets the viewport that was used in ReadFile
- Added Animator3ds - helper class to simplify playing animations stored in 3ds file
Changes and fixes in Transformer3ds: - Fixed isAditive parameter for Scale and Translate transform
- ObjectName can be now also Model3DGroup and not only Model3DGeometry
- RotateObjects can now be called with RotateTransform3D - this enables setting custom center of rotation (instead of center of object)
- Added methods without object name - to translate, rotate and scale all the objects and lights (as using constant Ab3d.Reader3ds.RootModelGroupName for objectName).
- Added Transformer property to Reader3ds - this simplifies transforming the read objects
January 04
Got some neat things going with more ChemSpider calls.
I wired in a new WS called Search - given a trade name, a company, SMILES, hey, whatever...it will return the INCHI, INCHI Key, Smiles, and a URL Link back out to Chemspider. It can also return the chemical structure image, through another call, GetRecordImage, which takes the internal ChemSpider ID - think of it as a unique id.
Here's the visual of what it sprays on the screen...
And some code...for setting an image from a Stream...
// Get the image of the structure...
byte[] bigimg = search.GetRecordImage(id.ToString());
System.Windows.Controls.Image myImage =
new System.Windows.Controls.Image();
BitmapImage bitImg = new BitmapImage();
bitImg.BeginInit();
MemoryStream ms = new MemoryStream(bigimg);
bitImg.StreamSource = ms;
bitImg.EndInit();
myImage.Source = bitImg;
bitImg = null;
This kind of mechanism can save hours and hours of lookups by walking all the related WS calls and assembling the results visually.
January 03
http://www.guardian.co.uk/technology/2007/dec/20/research.it
In a laboratory in Switzerland, a group of neuroscientists is developing a mammalian brain - in silicon. The researchers at the Ecole Polytechnique Fédérale de Lausanne (EPFL), in collaboration with IBM, have just completed the first phase of an ambitious project to reproduce a fully functioning brain on a supercomputer. By strange coincidence, their lab happens to lie on the same shores of Lake Geneva where Mary Shelley dreamt up her creation, Dr Frankenstein.
