From: bernie Date: Sat, 21 Nov 2009 13:33:13 +0000 (-0500) Subject: Edit page ProfessionalPortfolio X-Git-Url: https://codewiz.org/gitweb?p=wiki.git;a=commitdiff_plain;h=8ed993321741d4b2e072f3ab91826069366e38fc Edit page ProfessionalPortfolio --- diff --git a/BtrfsVsExt4 b/BtrfsVsExt4 deleted file mode 100644 index 5e4736c..0000000 --- a/BtrfsVsExt4 +++ /dev/null @@ -1,44 +0,0 @@ -=== ext4 on giskard === - -{{{ -/dev/sda7, ext4 + extents,mballoc,data=writeback -root@giskard:~/src# time cp -a oe oe2 ; time sync -real 0m33.981s -user 0m0.452s -sys 0m4.784s - -real 0m7.375s -user 0m0.004s -sys 0m0.188s -}}} - -371 / (33.98+7.37) = 8.97 MB/s - -=== btrfs on giskard === - -{{{ -giskard:/# time cp -a /home/bernie/src/oe / - -real 1m3.186s -user 0m0.519s -sys 0m29.894s - -giskard:/# mount -o remount,noatime,nodatasum,nobarrier / -giskard:/# time cp -a oe oe2 - -real 1m7.247s -user 0m0.391s -sys 0m26.580s - -giskard:/# time cp -a oe oe2; time sync - -real 0m26.838s -user 0m0.311s -sys 0m17.783s - -real 0m19.898s -user 0m0.001s -sys 0m1.977s -}}} - -371MB/(27+20) = 7.89MB/s diff --git a/CurriculumVitae b/CurriculumVitae index 4acfe2a..b6dcb20 100644 --- a/CurriculumVitae +++ b/CurriculumVitae @@ -9,36 +9,36 @@ this utterly outdated one is still available online: http://www.codewiz.org/resu === Boiler Plate === - * ContactInformation - How to reach me - * PersonalEducation - What I've learned so far - * CurrentOccupation - What I'm doing right now + * ContactInformation -- How to reach me + * PersonalEducation -- What I've learned so far + * CurrentOccupation -- What I'm doing right now - * CareerObjectives - What I want to do next + * CareerObjectives -- What I want to do next === Customer relationship === I worked in several different fashions, ranging from supervised to independent: - * EmployedWorker - Jobs I've done under contract - * ConsultingWork - Projects done as a self-employed software engineer - * InvestorWork - Funding startup companies - * FreelanceWork - Independent activities and pet projects + * EmployedWorker -- Jobs I've done under contract + * ConsultingWork -- Projects done as a self-employed software engineer + * InvestorWork -- Funding startup companies + * FreelanceWork -- Independent activities and pet projects === Roles covered === I also covered several different roles in my career: - * SoftwareDeveloperRole - High-level software development - * EmbeddedDeveloperRole - Firmware and low-level programming - * SystemArchitectRole - System-level programming and other OS-related projects - * SystemAdministratorRole - Setting up and maintaining servers and network infrastructure - * OpenSourceDeveloperRole - Small contributions to several prominent FLOSS projects - - * TeacherRole - Hands-on courses for the European Fund and for company employees - * ManagerRole - Team leadership and small enterprise management - * ExecutiveRole - Initial investor and chief executive officer of small startups - * JournalistRole - Writing articles for technical magazines - * SysOpRole - Running a public BBS in the pre-Internet era + * SoftwareDeveloperRole -- High-level software development + * EmbeddedDeveloperRole -- Firmware and low-level programming + * SystemArchitectRole -- System-level programming and other OS-related projects + * SystemAdministratorRole -- Setting up and maintaining servers and network infrastructure + * OpenSourceDeveloperRole -- Small contributions to several prominent FLOSS projects + + * TeacherRole -- Hands-on courses for the European Fund and for company employees + * ManagerRole -- Team leadership and small enterprise management + * ExecutiveRole -- Initial investor and chief executive officer of small startups + * JournalistRole -- Writing articles for technical magazines + * SysOpRole -- Running a public BBS in the pre-Internet era === Legal Abracadabra === diff --git a/EmbeddedDevices b/EmbeddedDevices index 65d28d7..45f35ff 100644 --- a/EmbeddedDevices +++ b/EmbeddedDevices @@ -2,42 +2,42 @@ I wrote drivers for the following devices: === Power devices === - * '''DC-motors''' - Both on/off cw/ccw and PWM drive. - * '''Stepper motors''' - With real-time stepping control, dynamic acceleration ramps, homing state-machine, etc. - * '''Peltier cells''' and '''PWM heaters''' + * **DC-motors** -- Both on/off cw/ccw and PWM drive. + * **Stepper motors** -- With real-time stepping control, dynamic acceleration ramps, homing state-machine, etc. + * **Peltier cells** and **PWM heaters** === Sensors === - * '''A/D converters''' - Interrupt-driven, high-speed sampling and data processing - * '''D/A converters''' - Employing PWMs, multiplexing of multiple channels and other advanced techniques - * '''GPIO lines''' - Direct or multiplexed, interrupt driven, polled, etc. + * **A/D converters** -- Interrupt-driven, high-speed sampling and data processing + * **D/A converters** -- Employing PWMs, multiplexing of multiple channels and other advanced techniques + * **GPIO lines** -- Direct or multiplexed, interrupt driven, polled, etc. - * '''NTCs''', '''Thermo-couples''' - Temperature control - * '''Photocells''' - Light intensity measurement + * **NTCs**, **Thermo-couples** -- Temperature control + * **Photocells** -- Light intensity measurement === User interface === - * '''7-segment BCD and british-flag alphanumerical displays''' - * '''Alphanumerical LCD displays''' - Like the popular Hitachi HD44xxx controller. - * '''B/W bitmap LCD displays''' - Using a homebrew library to draw text and graphics (see DevLib). - * '''Thermal Printers''' - Both serial and full printing head control. - * '''Keyboards''' - Simple and matrix scan, with debounce and complex input gestures. - * '''RTC Clocks''' - Like the Dallas DS1302 and compatibles. + * **7-segment BCD and british-flag alphanumerical displays** + * **Alphanumerical LCD displays** -- Like the popular Hitachi HD44xxx controller. + * **B/W bitmap LCD displays** -- Using a homebrew library to draw text and graphics (see DevLib). + * **Thermal Printers** -- Both serial and full printing head control. + * **Keyboards** -- Simple and matrix scan, with debounce and complex input gestures. + * **RTC Clocks** -- Like the Dallas DS1302 and compatibles. === Communication and Networking === - * '''Serial ports''' - RS232, RS485, SPI, I2C and many other custom serial lines, both interrupt-driven and software buffered. - * '''Ethernet''' - CS8900A and RTL8019 (NE2000 compatible). - * '''USB''' - With HCI drivers provided by manufacturer. + * **Serial ports** -- RS232, RS485, SPI, I2C and many other custom serial lines, both interrupt-driven and software buffered. + * **Ethernet** -- CS8900A and RTL8019 (NE2000 compatible). + * **USB** -- With HCI drivers provided by manufacturer. === Storage === - * '''NOR flash devices''' - Using several programming algorithms. - * '''Serial EEPROMs''' - Like the I2C 24Cxxx chips. + * **NOR flash devices** -- Using several programming algorithms. + * **Serial EEPROMs** -- Like the I2C 24Cxxx chips. A few sample drivers for the most generic devices are available in DevLib. diff --git a/EmbeddedMicroControllers b/EmbeddedMicroControllers index c063f94..d5a277e 100644 --- a/EmbeddedMicroControllers +++ b/EmbeddedMicroControllers @@ -1,40 +1,40 @@ === Atmel === - * '''AVR 8bit RISC''' - ATmega 103L, ATmega 128, ATmega 64, and many others + * **AVR 8bit RISC** - ATmega 103L, ATmega 128, ATmega 64, and many others === Motorola/Freescale === - * '''M68K family''' (including M68000, M68030, M68040 and M68060) + * **M68K family** (including M68000, M68030, M68040 and M68060) - * '''Coldfire 32bit CISC microcontroller''' - (including MCF5272 and MCF5282) + * **Coldfire 32bit CISC microcontroller** - (including MCF5272 and MCF5282) - * '''68HC705 8bit microcontroller family''' - several models + * **68HC705 8bit microcontroller family** - several models - * '''DSP56K''' (DSP56805 and DSP56807E) - Used extensively for stepper motor control, + * **DSP56K** (DSP56805 and DSP56807E) - Used extensively for stepper motor control, data acquisition and other mechanical devices. === Intel === - * '''80C196''' - 16bit microcontroller; + * **80C196** - 16bit microcontroller; - * '''80x86''' - Not properly a microcontroller, but used for some embedded Linux applications nevertheless. + * **80x86** - Not properly a microcontroller, but used for some embedded Linux applications nevertheless. === ARM === - * '''Motorola Dragonball MX-1/MX-L''' - Helped porting kernel 2.6 to it. + * **Motorola Dragonball MX-1/MX-L** - Helped porting kernel 2.6 to it. - * '''Intel PXA250/PXA255''' - Wrote Linux kernel drivers for this chip + * **Intel PXA250/PXA255** - Wrote Linux kernel drivers for this chip - * '''Atmel AT91SAM7C3''' - Small embedded application for the FreeRTOS real-time kernel. + * **Atmel AT91SAM7C3** - Small embedded application for the FreeRTOS real-time kernel. * (many others, evaluation only) === Texas Instruments === - * '''TI54 series''' DSPs, employed for high-speed signal processing such as an FSK modem. + * **TI54 series** DSPs, employed for high-speed signal processing such as an FSK modem. === Zilog === - * '''Z80''' - Mostly for experimental purposes. + * **Z80** - Mostly for experimental purposes. diff --git a/FrontPage b/FrontPage index 7ce3e9b..b479292 100644 --- a/FrontPage +++ b/FrontPage @@ -56,7 +56,7 @@ Tags: You're invited to edit these pages! Make practice in the WikiSandBox. You may want to read the EditingTips to get started. Editing requires authentication. If you don't have a real account, you can -login as '''Anonymous''''''Coward''' with empty password. +login as **Anonymous****Coward** with empty password. * [[FindPage]] -- Title search and full-text search * [[TitleIndex]] -- Index of this wiki by page title @@ -65,4 +65,4 @@ login as '''Anonymous''''''Coward''' with empty password. * [[WikiSandBox]] -- A place where you can practice wiki editing * [[GeekiGeeki]] -- Learn more about this wiki engine - + diff --git a/PersonalEducation b/PersonalEducation index 33528e6..6598b15 100644 --- a/PersonalEducation +++ b/PersonalEducation @@ -1,54 +1,55 @@ === Formal studies === - * Undergraduate diploma in '''Mathematics and Computer Science''' with - a rating of '''56 out of 60'''. Obtained in 1993 at the Istituto Tecnico - Commerciale "A.Volta", Firenze. This course included a good amount of - '''Electronic Engineering'''. + * Undergraduate courses of Mathematics and Educational Technologies at the + HarvardExtensionSchool (2009). * Attended one term of Software Engineering course at Unviersita' degli - Studi di Firenze in 1994. Computer Science exam '''30/30 cum laude'''. + Studi di Firenze in 1994. Computer Science exam **30/30 cum laude**. + In 1995 I dropped out of the university to accept a job as an + EmployedWorker for a small company, and a few months later for SeacCompany. -In 1994 I dropped out of the university to accept a job as an EmployedWorker -for a small company, and a few months later for SeacCompany. + * Undergraduate diploma in **Mathematics and Computer Science** with + a rating of **56 out of 60**. Obtained in 1993 at the Istituto Tecnico + Commerciale "A.Volta", Firenze. This course included a good amount of + **Electronic Engineering**. -=== Nonformal studies and self-teaching === +=== Non-formal studies and self-teaching === Over the years I tried to compensate for lack of proper university-grade education by making the local libraries much richer: - * '''Compilers''', reading several textbooks such as CompilersPrinciplesTechniquesAndTools, + * **Compilers**, reading several textbooks such as CompilersPrinciplesTechniquesAndTools, and many others. - * '''Algorithms''' - many, including classics such as DonaldKnuth's bible TheArtOfComputerProgramming, + * **Algorithms** -- many, including classics such as DonaldKnuth's bible TheArtOfComputerProgramming, CambridgeUniversityPress's NumericalRecipes and NicholasWirth's ancient, but still brillant, "Algorithms + Data Structures = Programs". - * '''Operating Systems''' - Too many to mention here, most of which quite + * **Operating Systems** -- Too many to mention here, most of which quite theoretical and boring. Of course, my favorite will always be AdvancedProgrammingInTheUnixEnvironment. - * '''Networking''' - Several books, including TcpIpIllustrated, several RFCs and + * **Networking** -- Several books, including TcpIpIllustrated, several RFCs and technical papers. - * '''Programming Languages''' - All the obvious textbooks such as BjarneStroustrup's + * **Programming Languages** -- All the obvious textbooks such as BjarneStroustrup's SeePlusPlusProgrammingLanguage, and many others like the old SeeProgrammingLanguage, ThinkingInJava, and dozens of C++ books. - * '''Programming Techniques''' - Countless. Such as SeePlusPlusTemplateMetaprogramming + * **Programming Techniques** -- Countless. Such as SeePlusPlusTemplateMetaprogramming and the controversial ModernSeePlusPlusDesign by AndreiAlexandrescu. My absolute favourite is BrianKernighan's and RobPike's ThePracticeOfProgramming. - * '''Software Architecture and Design''' - All the "must-read" classics such as + * **Software Architecture and Design** -- All the "must-read" classics such as GangOfFour's DesignPatterns, UmlDistilled and UmlDesignPatterns. - * '''Project Management''' - My favourite certainly is TheMythicalManMonth, but I've + * **Project Management** -- My favourite certainly is TheMythicalManMonth, but I've read a few others such as ExecutionPlainAndSimple. - * '''Technical Writing''' - TheElementsOfStyle and DonaldKnuth's TheTexBook are my + * **Technical Writing** -- TheElementsOfStyle and DonaldKnuth's TheTexBook are my favourites on the topics of stylish writing and typesetting. - * '''Numerical Methods''' - I'm sorry to have quite a thin mathematical background. + * **Numerical Methods** -- I'm sorry to have quite a thin mathematical background. Nevertheless, I enjoyed reading DonaldKnuth's ConcreteMathematics and CambridgeUniversityPress' NumericalRecipes. - * '''Databases''' - Basics of the relational database theory and relational algebra. - Know how to rewrite schemata into normal form. + * **Database** -- Relational algebra, principles of schema normalization, SQL. diff --git a/PikiWiki b/PikiWiki index 6be4ba9..a5c3a91 100644 --- a/PikiWiki +++ b/PikiWiki @@ -1,4 +1,4 @@ -Piki''''''Piki is a tiny wiki engine written in 1999 by MartinPool. +Piki****Piki is a tiny wiki engine written in 1999 by MartinPool. The original version was less than 600 lines of Python code and is still available here: http://sourcefrog.net/projects/piki/ diff --git a/ProfessionalPortfolio b/ProfessionalPortfolio new file mode 100644 index 0000000..6d3e862 --- /dev/null +++ b/ProfessionalPortfolio @@ -0,0 +1,5 @@ +TODO + +* EducationalTechnologies + +TODO \ No newline at end of file diff --git a/ProgrammingFrameworks b/ProgrammingFrameworks index 88ce482..a6c1e28 100644 --- a/ProgrammingFrameworks +++ b/ProgrammingFrameworks @@ -1,26 +1,25 @@ - * '''DevLib''' - Homebrew library of C/C++ utilities, + * **DevLib** -- Homebrew library of C/C++ utilities, drivers, and algorithms. I've contributed much of the code directly and supervised the development and integration of the rest of it. See http://www.develer.com/oss/DevLib . - * '''POSIX''' - I always write my programs with portability in mind, - and the POSIX API is usually my choice for UNIX, Linux, Mac OS X and even - Windows development. + * **POSIX** -- I always write my programs with portability in mind, + and the POSIX API is usually my API of choice for UNIX, Linux + Mac OS X and even some Windows development. - * '''WIN32''' - Most of the KERNEL32, USER32 and GDI32 APIs, including - I/O, threading, message passing, memory management, 2D drawing and window - management. + * **Win32** -- Most of the KERNEL32, USER32 and GDI32 APIs, including + overlapped I/O, threading, events, message passing, memory management, + 2D drawing and window management. - * '''Boost''' - A collection of high quality, general-purpose C++ + * **Boost** -- A collection of high quality, general-purpose C++ libraries. See: http://www.boost.org/ . - * '''Qt''' - Currently my favourite GUI framework. I expecially + * **Qt** -- Currently my favourite GUI framework. I expecially like the elegant signal/slot concept and its simple memory management solution. http://www.trolltech.com/ - * '''MFC''' - I've used Microsoft's... err... Fine Classes, - including DAO and ATL, for much longer than one would like - to admit. It's a miracle I've even managed to keep some - mental health. + * **MFC** -- I've been using these Microsoft ...err... Fine Classes, + including DAO and ATL, for much longer than one would like + to admit. It's a miracle I've even managed to retain some sanity. TODO: add the rest diff --git a/ProgrammingParadigms b/ProgrammingParadigms index be7428a..4892ac8 100644 --- a/ProgrammingParadigms +++ b/ProgrammingParadigms @@ -7,39 +7,36 @@ I frequently use the following paradigms and techniques: - * '''OOP''' - Who doesn't? I've taught object-oriented + * **OOP** - Well, who doesn't? I've been teaching object-oriented programming and object-oriented analysis and design (OOA&D) - as part of my InstructorRole. - I've never been a believer in the pure-OOP religion. - I think OOP has a very broad application in many areas - of CS and that's all. - - * '''Metaprogramming''' - I love template templates. - Oh, yes I do. I must admit this little perversion of - mine. In the past, you couldn't abuse genericity because - your buggy compiler would blow up. Now that compilers - have been fixed, your brain blows up first. + as part of my InstructorRole, although I've never been a true believer + in the pure-OOP dogma. OOP has very broad applicability in many areas + of CS, and that's all. + + * **Metaprogramming** -- I've been in love with templates of templates for a while. + Oh, yes... I must admit this little perversion of mine. In the past, you couldn't + abuse genericity because your buggy compiler would blow up. Now that compilers + have been fixed, your mind melts first. - This is a little useless thing that only Boost would ever - want to carry: + This is a little useless thing that not even Boost would ever want to + carry around: http://www.develer.com/devlib/devlib-current/cxxutil/viterator.h - * '''Functional Programming''' - I'm sorry to admit I - never tried a fully functional approach in a real world - project, but I frequently use "pills" of functional - programming all the time where appropriate. Expecially - in combination with the StandardTemplateLibrary and with - Perl. + * **Functional Programming** -- I'm ashamed to admit I + never tried a purely functional approach in a real-world + project, but I do frequently use "pills" of functional + programming, expecially in combination with the + StandardTemplateLibrary and with Perl. - * '''Design Patterns''' - Like many, I know, use and teach + * **Design Patterns** -- Like many, I know, use and teach the good old GangOfFour patterns and sometimes the more esoteric ones. Actually, I mentioned them only to say that I dislike both code that reinvents them as much as code that abuses them (the SingletonPattern and AbstractFactoryPattern are expecially popular with novices). - * '''Multithreading''' - I tend to use it as a last resort + * **Multithreading** -- I tend to use it as a last resort solution in my designs, because I consider truly concurrent programming extremely hard to understand, debug and extend. Most of my multithreading programming was on the AmigaComputer @@ -49,20 +46,17 @@ I frequently use the following paradigms and techniques: limitations and inefficiencies of the IPC primitives and the broken asynchronous I/O). - * '''Compiler design''' - I'm experienced in writing + * **Compiler design** -- I'm experienced in writing grammars and hand-writing the lexical analyzers and parsers as well as using the usuals automated tools. I understand problems related to AST representation, optimizers, and code generators. See OpenSourceDeveloperRole for GCC contributions. - * '''Kernel development''' - I'm very interested in OS - design problems and I wrote lots of system-level code - and utilities. I even wrote a minimalistic microkernel - for DevLib: - - http://www.develer.com/devlib/devlib-current/kern/ + * **Kernel development** -- I'm particularily interested in OS design. + I wrote lots of system-level code and utilities, including a + minimalistic microkernel which is now being called [[BeRTOS]]. -And of course... +And, of course... - * '''Spaghetti programming!''' + * **Spaghetti programming!** diff --git a/SiriusCompany b/SiriusCompany index 366e1c2..a312031 100644 --- a/SiriusCompany +++ b/SiriusCompany @@ -12,7 +12,7 @@ I coordinated a few external developers. An interesting part was doing real-time video capture on Windows with a Matrox G400, using a vey early release of -Microsoft's Direct''''''Media. +Microsoft's Direct****Media. Additional details are available in my old CV (Italian only): http://www.codewiz.org/resume_it.html diff --git a/SystemArchitectRole b/SystemArchitectRole index 64a6514..8f9e823 100644 --- a/SystemArchitectRole +++ b/SystemArchitectRole @@ -1,43 +1,37 @@ Operating systems always have been my favourite computer related topic, so I know and use many: - * '''Linux''' - I use or have used several LinuxDistros extensively - for a long time. I occasionally do minor contributions to some of - them. I've also put together and distributed a custom Linux - distribution targeted at the AmigaComputer as part of the AmigaUnixCompendium project. - (no, by Linux I don't mean GNU/Linux, I dislike this name even - though I agree with the FreeSoftwareFoundation in general). + * **Linux** -- I've been using several LinuxDistros extensively and + I occasionally do minor packaging work for Fedora and Ubuntu. I've also + put together and distributed a custom Linux distribution targeted + at the AmigaComputer as part of the AmigaUnixCompendium project. - * '''NetBsd''' - I've been using BSDs since 0.9. I even - made a NetBSD distribution for the AmigaComputer called - the AmigaUnixCompendium. See also OpenSourceDeveloperRole - for some contributions I made. + * **NetBsd** -- I've been a NetBSD user since 0.9 and bacame an official + developer with CVS commit access a little later. I made a custom NetBSD + distribution on CD for the AmigaComputer called the AmigaUnixCompendium. + See also OpenSourceDeveloperRole for some contributions I made. - * '''Sun Solaris''' - I've been using it since Solaris 7, but a + * **Sun Solaris** -- I've been using it since Solaris 7, but a few years ago I've lost interest in it because of lack of development. Besides building hundreds of GNU and other - packages to replace almost all of Sun's userland, I did port - the early versions of KDE 1.x and 2.x to Solaris with quite - some success. + packages to replace almost all of Sun's userland, I successfully + ported the early versions of KDE 1.x and 2.x to Solaris. - * '''MacOsX''' - I know this system quite well and have been + * **MacOsX** -- I know this system quite well and have been using as a user and developer until mid-2006, when Apple - started making some steps back from their previous OpenSource - policy, showing lack of cooperation and disrespect for the + started taking some steps back from their previous OpenSource + commitment, showing lack of cooperation and disrespect for the OpenDarwin developers. - * '''AmigaOs''' - I've been using and developing a lot on the - Amiga in earlier '90s, mostly as a freelance developer. I - expecially prised its system architecture and the OS architecture, - therefore I used many of its best ideas in several EmbeddedDeveloperRole - projects. - - * '''MicrosoftWindows''' - I've been using and developing for - Windows with little enthusiasm since Windows 3.1 upto Windows 2000. - I know most of the WIN32 APIs and concepts, including: GUI design - with common controls and MFC, threading, asynchronous I/O, COM, - database access, VisualBasic and VBA, DirectMedia and DirectDraw. - But as of today, I'd recommend doing any new Windows development - using portable tools such as Cygwin or MingW along with portability - layers such as Qt or Gtk. + * **AmigaOs** -- I've been programming a lot on the Amiga in early + '90s, mostly as a freelance developer. I expecially prised its + unique system and OS architecture, therefore I reused many of its + best ideas in my EmbeddedDeveloperRole projects. + * **MicrosoftWindows** -- I've been developing for Windows with + little enthusiasm since Windows 3.1 upto Windows 2000. I'm familiar + with most of the Win32 APIs and concepts, including GUI design + with common controls and MFC, threading, overlapped I/O, events, COM, + ODBC, DAO, VisualBasic, VBA, DirectMedia and DirectDraw. + For new Windows development, today I recommend using portability + layers and framwworks such as Cygwin, MingW and Qt. diff --git a/sys/EditPage b/sys/EditPage index bd84e30..b33b583 100644 --- a/sys/EditPage +++ b/sys/EditPage @@ -3,11 +3,11 @@
- -\\ - + \\ + +\\