Google's Chrome browser, being built from the open source Chromium project, is written almost entirely in C++. I, being a long time Object Pascal guy, have had to adjust to using C++ exclusively. This isn't too much of an issue since I've also had to use C/C++ while I worked on the RAD Studio development team. Most notably, the Object Pascal/Delphi compiler is written in mostly C with a smattering of C++, the editor kernel (sans display rendering) and debugger engine (process control/symbol table management) were written in C++. All of which I've worked on throughout my 24+ years on that team.
Tuesday, September 27, 2016
Saturday, July 2, 2016
Last time, I mentioned that the extruder filament drive assembly was itself 3D printed on the converted CNC machine. How is this done without purchasing an off-the-shelf extruder filament drive assembly? In short, I used the CNC machine in its pre-converted state to create the first version of the filament drive.
Sunday, June 26, 2016
Before I say anything about converting my gantry CNC milling machine to do 3D printing, I figured I'd cover the controller I designed and built for the extruder and heated bed. Unlike most purpose built 3D printers, like one built from user-sourced parts, a kit, or even a pre-built unit, a CNC milling machine doesn't provide for controlling the temperature of the extruder nozzle and the heated build bed. This project describe that part of the conversion process.
Saturday, May 7, 2016
Working with C++ hasn't really been a huge barrier; if you don't mind the painfully long build times. The Chromium developer builds are structured to be more incremental and allow for small, localized changes to build relatively fast. However, many times doing a rebase/update on the local git repository will almost always require a full rebuild. Even on my 24 core, 48 thread machine, builds can take about 1-2 hours. Building on a top-end Surface Book is easily 2.5x that.
Wednesday, May 4, 2016
When working a team environment with a large codebase, it quickly becomes apparent that the code itself is the primary manner in which the team communicates on a day-to-day basis. The code embodies the ideas and thoughts of the author. On the Google Chrome team, no change is ever committed until it is reviewed by the "owners" of the code. Owners are defined on a per directory basis such that any change to a file within that directory, must be approved by one of the owners.
Friday, April 15, 2016
While continuing on my quest of researching solutions to over-zealous track-pad scrolling in Chrome, I discovered a really disconcerting issue with the Direct Composition interface APIs. Let me frame this by pointing out this statement from the above linked page:
The DirectComposition API is intended for experienced and highly-capable graphics developers who know C/C++, have a solid understanding of the Component Object Model (COM), and are familiar with Windows programming concepts.
Monday, April 11, 2016
Do you like to live on the edge? Are you accustomed to being repeatedly abused and taken advantage of? Do you like being "that guy" at the party who always seems to be up on the latest new tech, product features, or bugs and fixes?
Wednesday, April 6, 2016
Friday, March 11, 2016
As I end my third week as a new Googler (a Noogler in Google parlance), I figured I would update those few folks that may still be interested even though I've left the RAD Studio/Delphi team.
Friday, February 19, 2016
It is with sadness and excitement that as of yesterday, February 19th, 2016, I'm no longer an employee at Embarcadero/Idera. I will be starting a new position at Google (Alphabet) on Monday, February 22nd. This caps off a run of 24 years, 1 month, and 13 days at Borland/CodeGear/Embarcadero/Idera. I remember arriving at 1700 Green Hills Dr. on the morning of January 6th, 1992, naive, nervous, excited, and just in awe that they picked me to join the Turbo Pascal team.