+++ /dev/null
-=== 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
=== 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 ===
=== 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.
=== 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.
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
* [[WikiSandBox]] -- A place where you can practice wiki editing
* [[GeekiGeeki]] -- Learn more about this wiki engine
-<a href="http://sunjammer.sugarlabs.org/resultpermeable.php"><!-- this is for spammers --></a>
+<a href="http://sunjammer.sugarlabs.org/resultpermeable.php"></a>
=== 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.
-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/
--- /dev/null
+TODO
+
+* EducationalTechnologies
+
+TODO
\ No newline at end of file
- * '''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
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
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!**
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
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.
<form method="post" enctype="multipart/form-data" action="<<HttpGet|q>>" >
<input type="hidden" name="a" value="edit">
<input type="hidden" name="q" value="<<HttpGet|q>>">
-<input type="input" id="editor" name="changelog" value="Edit page <<HttpGet|q>>" accesskey="c" />
-\\
-<textarea wrap="off" spellcheck="true" id="editor" name="savetext" rows="17" cols="100" accesskey="e"><<EDIT_BODY>></textarea>
+<textarea wrap="off" autofocus="true" spellcheck="true" id="editor" name="savetext" rows="17" cols="100" accesskey="e"><<EDIT_BODY>></textarea>
<label for="file" accesskey="u">Or upload a file:</label> <input type="file" name="file" value="<<HttpPost|file>>" />
\\
+<input type="input" id="editor" name="changelog" value="Edit page <<HttpGet|q>>" accesskey="c" />
+\\
<input type="submit" name="save" value="Save" accesskey="s" />
<input type="submit" name="preview" value="Preview" accesskey="p" />
<input type="reset" value="Reset" />