Linux.com

Community Blogs



How to Create Professional Stop-Motion Animations with Free and Open-Source Software

When my brother and I set out to create The Hello World Program, a series of videos and tutorials teaching computer science, programming, Linux, and web development, we gave ourselves the seemingly impossible challenge of producing the show with free and open-source software. Our goal is to help remove the economic barrier associated with digital media production by sharing the lessons we learn while making the show. For Daisy's Web Development Diary, our HTML-centric video series, we wanted to incorporate stop-motion papercraft animations, but there was a problem. There is no free, open-source, professional-grade, stop-motion animation software for Linux. Having grown up creating our own animations with nothing but a camcorder, we were no strangers to hacking together animation solutions. At the most basic level, we needed some way of connecting a camera to our computer for remote shooting, and a way to compile those images into a movie. Entangle and avconv were just the tools for the job.

Entangle uses the gPhoto library for remote shooting, so it is necessary to have a gPhoto compatible camera. If your camera is not compatible with gPhoto, don’t fret. You can still make animations by shooting blindly with you camera, copying the files to your computer, then compiling with avconv. That process isn’t as fancy, but that’s how this art form started, so you’d be animating just like the old pros! Depending on your operating system, you can probably install Entangle from the software repository, however I would advise against that. Entangle is constantly being updated, and I found that the version in the software repository had major problems that had been addressed in the newest release. This means you are probably going to have to build from source.

When you have Entangle installed, open the application and connect your camera. Right away, you will get hit with a couple of warnings. The first one asks if you want to unmount your camera, because your operating system most likely already mounted it, preventing Entangle from accessing it. The next one is a warning that claims your camera is still in use. It’s not. Entangle just got ahead of itself. Click the affirmative for both of these and you should be up and running.

The default settings for Entangle are not optimal for doing animation. The first thing you will need to change is the continuous preview handling. Open the application preferences and check the “Continue preview mode after capture” checkbox on the “Capture” tab. Now when you capture an image, the program will return to the live view. At least it should return to the live view. If you get an “Unable to capture preview” error, you will need to change the capture target to “Memory card” instead of “Internal RAM”. This setting is found in the camera settings menu on the left hand side of the program. If you don’t see this menu, click the “view full list of camera settings” button at the top of the program.

Entangle gives you access to most of your camera's settings. Because it is critical that our lighting stay consistent from frame to frame, you should look through your available camera settings and manually set everything (aperture, shutter speed, ISO). Also make sure any picture styles or in-camera enhancements are turned off.

Finally, you may begin animating. The animations in Daisy's Web Dev Diary are made entirely out of scraps of paper, but you could animate just about anything. A lump of clay, old toys, or some colored sand. The possibilities are endless!

I found that positioning the camera upside down was the ideal setup for shooting on a tabletop. This freed up a lot of space and helped minimize the possibility of bumping the tripod. It's a little confusing while shooting, but it’s trivial to rotate the video when we compile it.

Making small adjustments to your model, capture each frame of the video one after the other. Ideally you would be shooting your animations at 24 frames per second, because this is the standard for film, but I’ve found that stop motion still looks good at only 10 or 12 frames. Just keep in mind that your animation will look crisper and more fluid with higher frame rates. The trade off is that you will need to shoot many more frames. For slow movements, you will want to make tiny adjustments between frames. Quick movements would require bigger adjustments, of course. While you can shoot several of the same frame to create a pause, it looks much more natural if there is a bit of movement in the frame. Lightly touching the model in between every frame will bring a static shot to life.

If you make a mistake, you can right click on the thumbnail in Entangle and select delete. This will cause problems when we compile our video, because Entangle doesn’t adjust the names of your other files to accommodate the missing frame, but don’t worry about it for now. Continue on as though everything is perfectly okay.

stompo5

When you are satisfied with your animation (or tired of working on it), you may move on to compiling your animation with avconv. You should have a folder located at ~Pictures/capture that is chock full of images labeled “capturexxxxxx.jpg”. This is perfectly formatted for feeding an image sequence into avconv, but if you deleted any frames as you were animating, there will be gaps in your image sequence. A bulk rename utility such as pyRenamer can easily correct them.

In pyRenamer, navigate to the folder containing your captured images. Select all of the images, change the “renamed file name pattern” to “frame{num6}.jpg” (without the quotes), preview your changes, then commit them with the “Rename” button.

Before you can compile your video, you will need to decide how to crop your video. Unless you set your camera to shoot in a standard video frame size, you’ll need to adjust the crop manually. These next few steps require some command line magic, so it may look scary, but it’s pretty straightforward. The easiest way I’ve found to determine the crop parameters is with Gimp, so open any one of your frames in Gimp. With the crop tool selected, check the “Fixed” option and set it to “Aspect ratio”. For the sake of demonstration, I’m assuming we are going to output a 1080p video, so in the field just below the “Fixed” checkbox, enter “16:9″.

Drag out a selection on the image for the crop you intend to use for your video, but don’t execute the crop. Take a look at the juicy information in the crop tool options panel. You'll need the values of the position and size parameters in a moment, but for now you can put Gimp aside.

Now it's time to compile the video. Here's the command I used to create my animation:

avconv -f image2 -r 12 -i frame%06d.jpg -vf crop=4663:2623:289:448,scale=1920:1080,vflip,hflip -r:v 30000/1001 -c:v libx264 -qp 0 -preset medium -an "animation.mkv"

Generally when converting input with avconv, you would only need to specify the path to the video file with the -i parameter. With image sequences, we need to supply a little more information.

-f Indicates that the input is an image sequence.

-r is the input framerate. So if you were shooting for 24 frames per second, you would put 24 here. You may want to try compiling several times at different input frame rates to find the one that suits your animation best.

-i is the naming scheme for your image sequence. “frame%06d.jpg” tells avconv that your files all begin with the word “frame” followed by a sequential number that is six digits long, contains leading zeros, and ends with “.jpg”.

The -vf parameter is a comma separated list of video filters. This is where the real magic happens. First you need to crop the image using the data gathered with Gimp’s crop tool. The format of the crop filter is “crop=output width:output height:x:y”. The output width and height are the “size” parameters from Gimp’s crop tool, and the x and y are the “position” parameters.

Surely you noticed that the output width and height are rather large. Normally I would set the video size with the -s:v parameter, but it doesn’t play nice with the crop filter, so you'll need to use a scale filter to properly size the output. This one is pretty straightforward, it’s formated as “scale=output width:output height”. To output a 1080p video, the scale filter would be “scale=1920:1080″.

If your camera was oriented upside down, you’ll also need to tack on the “vflip” and “hflip” parameters. These flip your output video vertically and horizontally, essentially rotating it 180 degrees.

The remaining parameters are for your video codec. You could set these to anything you want, but in my example, I chose to export a lossless, x264 encoded mkv file at 30 frames per second.

Now for the best part… watching your animation!

 

Cautions for the HP_RDI Alarm on OptiX OSN9500

Identification method:
1. The source version  is V100R003 or V100R004.
2. The EXCL board is used and lower order services access to the 1+1 linear MS.
3. Run the: cfg-get-1j1lmsp-lxcoptmz command. "Unregistered command" is displayed or the result is "disable".
4. Lower order services access to the 1+1 MSP protection path earlier than the working path. Run the :cfg-get-lmsbdmap:pgi (pgid indicates the ID of the 1+1 linear MSP group) command. The timeslots for the protection and working paths are A and B respectively. Run the : dbms-query: " Cfgmapxc.dbf ", mdb command. It is found that A is earlier than B. The following example shows that timeslot 1 for port 2 of the board in slot 17 priors to timeslot 1 for port 1 of the board in slot 17.

:cfg-get-lmsbdmap:1
LMS-PU-MAP
PG-ID   PU-ID   BOARD-ID   PORT-ID   AU4-MAP
1                  0                17                  2               1&&8
1                  1                17                   1               1&&8
Total records :2
: dbms-query: " Cfgmapxc.dbf ", mdb (The following values are displayed in the hexadecimal format.)
CfgMapXc.dbf
record num         MAPIDX       MAPBID   MAPPID     MAPAUID     MAPRSV
1                              02000000       04                01                 0001               00
2                             02010000        04                01                 0001               00
3                             02000040        11                 02                0001               00
4                             02010040         11                 02                0001              00
5                             02000080         11                 01               0001               00
6                             02010080         11                 01                0001               00
Total records :6

If the preceding four conditions are all met, after the version is upgraded to V100R005 or V100R006 earlier than V100R006C05SPC203, the HP_RDI alarm is inserted in downstream devices (the corresponding inspector is available and preferred).

[Root Cause]
The optimization function for lower order service configuration on the 1+1 liner MS is not supported by earlier versions, while that is supported by V100R005 and V100R006 by default. In an earlier version, if lower order services access to the 1+1 protection path earlier than the working path, after the version is upgrade to V100R005 or V100R006 earlier than V100R006C05SPC203, the system control board first recovers the services that access to the 1+1 protection path by default and performs lower order optimization when recovering the services that access to the 1+1 working path. Therefore, the lower order services of both protection and working paths use the same higher order point on the EXCL board, while the higher order point of the working path is idle, so the EXCL board inserts the HP_RDI alarm in the downstream to the working path.
[Impact and Risk]
After the related version is upgraded to V100R005 or V100R006 earlier than V100R006C05SPC203, the downstream devices receive the HP-RDI alarm. Services are faulty when some switching devices receive the HP_RDI alarm, causing service interruption.

[Measures and Solutions]
Preventive measures:
Use either of the following methods:
1. Delete the MS before the upgrade, and configure the MS after the upgrade.
2. Deactivate and activate the faulty service before the upgrade.
Solution:
Upgrade the NE to V100R006C05SPC203 or a later version.
[Inspector Applicable or Not]
Update the test case package to the latest one.
Path: Upgrade pre-check/ Checks whether the HP_RDI will be triggered after lower order services are accessed into 1+1 LMS and V100R004 is graded to V100R006C03SPC200
[Rectification Scope and Time Requirements]

 

Pick of the Bunch: Console Internet Applications

There are so many great console based internet applications that it would be impossible for a single article to cover them all. Instead, I have compiled this roundup of 9 console applications that I am always using. Why? Because they are, in many situations, superior replacements for their GUI equivalents. Here is a roundup of the 9 console applications that I use frequently.


<A HREF="http://www.linuxlinks.com/article/2014071308032016/ConsoleInternetApps.html">Read article</A>

 

The Linux app store is your safest friend

One of the cool features that Android and IOS have developed are application stores. Application trust is vital. When you download a program from those apps stores, you are getting something trusted, stable and frequently upgraded.

Something also integrated this same concept. Linux is another system that delivers a system that allows you to download and install programs that are designed to work with that system. There is no guessing if the program is safe to install. If it is not available in Linux's app store, don't pay it too much attention it. Install only if vitally needed.

Ubuntu created a very user friendly app store for downloads, "Ubuntu Software Center". Before you Google, check the products in your local store first.

 

http://greplinux.com/blog/2014/02/23/whats-different-about-linux-programs/

 

My first Linux based robot

My Robot

I successfully connected my BeagleBone Black running Angstrom Linux to a Dagu Rover 5 Tracked Chassis using the Rover 5 motor driver board.  I then wrote Python client/server scripts that allowed me to control the robot over a Bluetooth RFComm connection.  The blog posts listed below document the steps I took to create the robot, from start to finish, with videos and images.

 

I just got my BeagleBoard Black, now what?

My first working robot, It’s Alive

My first working robot, It’s Alive – Part 2

My first working robot, It’s Alive – Part 3

 

 

5 Best Free Erlang Books

The focus of this article is to select the finest Erlang books which are available to read for free. Some of the books featured here are released under an open source license. All of the texts have a lot to offer for a budding Erlang programmer.

<A HREF="http://www.linuxlinks.com/article/20140510054337787/FreeErlangBooks.html">Read more</A>

 

Online Textbooks: An opportunity for open standards

 

I recently finished my first school year that I used online textbooks exclusively. In short I hated every moment of it; this experience was by far the most frustrating experience that I have ever had. Either the books wouldn't display properly on my Linux box or my browser of choice (Firefox) or they would operate at a crawling pace. I even had one textbook that wouldn't let me log in to it for most of the school year (calculus textbooks are optional anyways).

 

There is a desperate need for a good platform to publish online textbooks and I believe the open source community can provide just the answer we need. Not only would its freedom from corporate (publishers) influence be beneficial but it would free students from proprietary software later in life. Richard Stallman was correct on this topic:

What schools should refuse to do is teach dependence. Those corporations offer free samples to schools for the same reason tobacco companies distribute free cigarettes to minors: to get children addicted. They will not give discounts to these students once they've grown up and graduated.

Teaching independence from a particular piece of software, kind of software or software company enables students to form and to take their place in a competitive market.

 

That being said, this textbook platform must be of the highest quality to dominate the market. Here are a few guidelines I would like to suggest.

 

Completely opensource and implement open standards

This is obvious but nevertheless extremely important. Opensource frees students for their future but the use of open standards also frees students in the present. When a textbook uses open standards it allows the student to use the environment he or she deems best for his or her academic experience. Some examples of open standards include: HTML, an decent video encoder (perhaps one could finally be made!), and JavaScript.

 

All forms of DRM must also be absent from this platform. DRM further limits the students' choice of computing environment. DRM also gives complete control of the user experience to the textbook publisher rather than the user.

 

Completely free of Flash:

This falls in the same category as open standards but I want to emphasize it. Flash makes using non-Apple and non-Microsoft systems, difficult, to say the least. Flash is also very insecure and slow. I've waiting as long as two minutes to flip a page and often times the page would fail to load forcing me to start all over. I can't say this any more creatively: Flash is not a good idea. Period.

 

Allow copy and paste:

This also goes along with open standards, especially HTML. Why would a company want to stop me from doing this? My school already payed for the book. Am I really going to copy and past it and send it to a class mate? Additionally, if the book is delivered using a high end platform, paying for the book will be worth it. Furthermore copying and pasting are very useful for the student. Few things are more irritating than having to type a selection from my Literature book into a paper or report I am writing. It's rather ridiculous when the student is using an online textbook and still has the limitations of a paper textbook.

 

 

 

Influenced more by an operation system than a paper book:

It's time to ditch the page by page model. This isn't a paper book why do we think that model will still work? I believe an operating system is a more apt model for an online textbook. This would allow the textbook to be more than just text on a page; it would allow it to be interactive. Math lessons could be taught through interactive examples not just written examples which are hard to understand for the more math challenged among us. Video can be integrated into the text. Open third party APIs would allow apps to be made to organize and complete homework (both on the student and the teacher side). This would provide an all inclusive academic experience for a class.

 

Free from a single corporate influence:

A singular corporate influence will try to push DRM instead of a high quality platform because it is cheaper. Moreover, a single corporate influence will seek to lock the platform down for just that corporations' (most likely a publisher) books. This also disrupts the user experience. Not all teachers will want to use books from the same publisher. Different publishers have different strengths. The Math teacher may want to use one publisher while the Computer Science professor may want to use a different publisher. A better model would be for many publishers to publish on this single platform and sell their books inside that platform. This would allow freedom for the teachers and provide a succinct experience for students.

 

This may seem like some kind of unattainable utopia but I believe with the collective power of the opensource community along with power of the education community it can be done. It is time we take this opportunity to provide better educational solutions for both teachers and students and set the example for education in the digital age.

 

Sources:

Stallman, Richard M. "Why Schools Should Exclusively Use Free Software." . N.p., 1 Apr. 2013. Web. 5 Feb. 2014. <https://www.gnu.org/education/edu-schools.html>.

 

My Nerd Life: Too Loud, Too Funny, Too Smart, Too Fat

Carla Schroder is a self-taught Linux and Windows sysadmin and the author of the Linux Cookbook and writer of thousands of Linux tutorials.

If there is only one message you take away from reading this, let it be this: Linux and FOSS do not need more glamorous elite uber-rockstar coders. We need more ordinary, dedicated individuals from all walks of life contributing however they can. Just plain ordinary people with whatever they have to offer.

I am a born nerd, born to take things apart and put them back together, and to combine unlike things in imaginative ways. I am one of those people you never want to go shopping with, because I have to stand in front of any item I might ever under any circumstances consider purchasing, and work through in my head the nine zillion ways in which I might use it ... and then move on to the next item and repeat the trance. Because why not? Is it not all about possibilities?

Read more... Comment (18)
 

My Nerd Story: From Record Store Clerk, to Tech Journalist and Community Manager

Rikki Endsley is a technology journalist and the USENIX Association’s community manager. In the past, she worked as the associate publisher of Linux Pro Magazine, ADMIN, and Ubuntu User, and as the managing editor of Sys Admin magazine. Find her online at rikkiendsley.com and @rikkiends on Twitter.

I've been a writer for as long as I can remember, which is why I was thrilled to receive an electric typewriter as a high school graduation gift in 1988. Asking for a computer was never something I considered. I don't remember ever being exposed to computers while I was growing up. After high school, I didn't even use my new electric typewriter for a while. Instead, I took a year off, continued working my record store job, and saw dozens of great bands.

My nerd story starts at a record store, with a cash register and a Schwann catalog.

Read more... Comment (3)
 

My Nerd Story: What You Say to Young Girls Matters

Leslie Hawthorn is an internationally known community manager, speaker and author, who has spent the past decade creating, cultivating and enabling open source communities. She created the world’s first initiative to involve pre-university students in open source software development, launched Google’s #2 Developer Blog, received an O’Reilly Open Source Award in 2010 and gave a few great talks on many things open source. In August 2013, she joined Elasticsearch as Community Manager, where she looks forward to getting things done, facilitating user happiness and moving to Europe.

Tiny Geekdom

“Mom, the computer is talking to me.”

I was sitting at a VT100 in a cold office building, far from home and missing Saturday morning cartoons. My mother, a UNIX programmer at a large telco, brought me with her to the company’s San Francisco, California office that weekend since my father was out of town. It was an hour’s drive each way and 7 year old me was a bit out of sorts from the long ride and the early hour at which I’d awakened. Mom, though, knew the best way to soothe me was to park me in front of a terminal window and let me have at it with Adventure.

Read more... Comment (8)
 

My Nerd Story: Class, queerness and the transformative nature of technology and open source.

Beth 'pidge' Flanagan is a Senior Software Engineer for Intel and spends most of her time working on Open Embedded Core and the Yocto Project, mainly as the release engineer and maintainer of the yocto-autobuilder. She is also a geek, a queer trans woman, a motorcyclist, and a practitioner of random bits of general purpose geekery. She has been working in IT/software engineering now for the past 23 years.

I was born and raised right outside of Newark, NJ. My family was working class and I grew up in a working class neighborhood full of first and second generation immigrants from Ireland, Scotland, Brazil, Italy, Peurto Rico, etc. Basically, a neighborhood that most people wouldn't think of as a fertile bed for nerds. I tell people to basically imagine some of the more gritty scenes from The Sopranos and they'd get an accurate idea of where I grew up.

 

The Sopranos - Satriale's Pork Store

I realized at a very young age that I was a trans woman and that without a well thought out plan, I wouldn't be able survive the conservative confines of that world. This concept of needing to escape was further compounded by the fact that I was on the bottom of the social rung at school. I was bookish, had a serious lisp and a severe femoral torsion which caused to walk pigeon toed (hence the nickname I carry to this day) and a classroom full of boys and some of the girls who marked me as "different" from my first day at school and did not let up in their abuse for the entirety of my elementary school career.

When I was about 9 or so, I had a pretty good idea that all the praying in the world wouldn't make me not trans and that I should probably spend some time figuring out what to do about it. So, I petitioned my father for an adult library card (remember a time when 'looking stuff up' included a trip to an actual library?). I remember asking him if he would sign the papers for my library card and he handed me the largest book on the bookshelf he could fine,'The Crusades' by Zoe Oldenbourg. He told me "Read this and do a book report and I'll sign the permission slip". I read it in about a month or so and that signed permission slip opened up a world I could never have dreamt of.

That library was my salvation. In its stacks I learned, in carefully hidden books, that I could do something about being trans. For the first time I could remember, the serious depression I had been in since age 6 when I figured out that I wouldn't grow up to be a woman, not at least without a little bit of help, abated somewhat. The library became my second home. It was where I spent my  days, hiding from the world. I went into full on reading mode, devouring anything I could get my hands on, but always ending up back in the science row with it's miniscule amount of books on computer science. But, they did have an entire set of "The Art of Computer Programming". I flipped through it somewhere around age 10 and didn't understand one bit of it! Somehow though, I was strangely enamored with the idea that language could be turned into something that made machines do work.

I mentioned before that people generally don't think of working class people as a hotbed of nerdism. If anything, I think that the reality is the  exact opposite. When you grow up without a lot of money you end up learning how to make things last and fix things that need repair. My family was no different. My father was a fairly decent carpenter who tried, bless him, to teach me with absolutely no success. His mechanical skills were impressive, something I ended up being able to learn much later in life. My grandmother however taught me how to crochet. In crocheting I saw math and patterns and it taught me how patterns could create beauty.

When you're the kind of strange effeminite kid in a working class world that I was, you end up spending a lot of time alone and learn to quickly entertain yourself. One summer I spent a full week alone in my backyard with a roll of tin foil, a magnifying glass and a thermometer seeing what the highest temperature I could achieve was. That was also the year I built a boobytrapped for the backdoor to the house. (I was afraid of burglers). I forgot to unset it and it almost knocked my mother out when she opened it and a few of my brothers baseball bats came flying out, full speed, towards her face.

1982 came around and something happened that would change my life forever. It all started with two lines.

10 PRINT "I HATE SCHOOL!!!"
20 GOTO 10

I still remember those first two lines of code I ever wrote. It was a 10 year old kid's 'Hello World'. The Catholic school I attended had invited this computer education company in to do an optional computer class. I  begged my parents to let me take it. I remember the first day I stepped into that class. About a dozen or so Commodore PETs, with the ever so high tech audio cassette storage devices.

 

Pet4016

After the first few classes, you just stopped trying to load your prior work from tape at the start of class as it took forever to load. You got really good at remembering what you did the week before and learned to type quicker than the audio tape could load. I ended up
falling asleep at night listening to those tapes (SkreeeetchWoooooSkreeeeeeetch!); in love with the idea that you could store STUFF on tape other than music!

So, here I was, this kid who was absolutely on the bottom of the social ladder. I was despised by the kids at school and my ability to have control over my life was greatly impacted by overly protective parents, my age and obvious gendered behavour difference, but... for those 45 minutes a week in 1982, I had, for the first time in my life, actual agency. I could sit there and tell a machine to do whatever I wanted it to and the results were up to me. It wouldn't beat me up. It wouldn't make fun of me for the way I walked, or held my books. It wouldn't call me awful things. It would just do what I told it to do. (This generally entailed new and more complex ways of spitting out how much I hated school, to be perfectly honest.)

Those little two lines of code turned into a much larger program that year and my parents ended up trying to nurture the one thing I had shown an actual interest in. I'm still unsure of how my father afforded it, but one day he came home with a Timex Sinclair 1000, literally
the cheapest computer there was. I actually recall using it quite a bit, but, as the concept of needing to store things was a bit beyond my dad, who was a truck driver, he had neglected to buy the audio tape drive. I would have to leave it on for weeks with a note on it, telling people not to shut it off or I'd lose my program.

 

Zx81-timex-manipulated

But, no matter how much computers could act as an escape for me, there was still this huge thing I had to deal with and as I got older and the effects of puberty started to hit, my depression worstened. I stopped writing code in my Junior year of highschool and just focused on trying to make it through the day. By the time I hit university I was an absolute wreck from trying to deal with being trans. So, after the first year, I made the best decision ever. I quit and moved to Washington DC and was able to have space to figure out what my plan was.

I moved back home after about a year because I had gotten fairly sick. By this time, my mother had gone from being a secretary to getting a degree  in accounting to being a VP at a small software company. Behind my mothers back, I finagled a job there. I will always remember the engineering manager who risked her wrath to give her weird, green mohawk having kid a job. So, my lucky break came in 1991, at age 19, writing insurance software in MagicPC for 5 dollars an hour.

Eventually, I left to take a job at the local university. Here is where I encountered the second thing to change my life. Windows 95.

It was 1994 and we were previewing the beta of Windows 95 for a migration from Windows 3.11. I absolutely loathed it. There was no integrated TCP/IP stack. I was use to the Solaris command line by that point and it was still the clunky DOS shell. It was nothing I wanted and while it was an improvement, I wanted something more so I went searching for a better solution and found it in Slackware.

I don't remember the exact version of Slackware I finally got to install, but I know the kernel was around 0.99 (before loadable modules and ELF binaries!). It was like a dream and a nightmare rolled into one. When you got it working it went like clockwork, but it was an absolute TERROR to set up. Package management? Nope, tar.gz and make was your friends. I got really good at debugging makefiles.

But, I was hardly bored. I spent way too much time getting kernels recompiled, fighting with X11 settings on my Diamond video card, wondering why the NE2000 card in my box, when the box was the end node  of a token ring would blue screen all the Windows 95 boxes on the ring. Bored? I was too busy tearing apart this amazing thing that people had put together, in part, just for something cool to do.

It was magic. Here was this thing that didn't work out of the box! I had to actually sit there and figure it all out. That year and a half I spent learning the operating system inside and out gave me a sense of accomplishment, a sense of pride and a sense that if I could survive a Slackware install and make it out on the other end, a gender transition should be a piece of cake, right?

I had finally figured out the logistics of my transition and set a date. To put it mildly, the concept was sound, but the exectution went poorly. I lost my job, my family and the entire situation created a rift in my family that will probably never, unfortunately heal. So, here I was, age 24, with a brand new gender presentation, a high school diploma, a job history I couldn't use because it was under a different name. I had moved to Philadelphia and was living on a friends couch because I was kicked out of home. Things were not looking very positive.

But, there were a few things I did have.

I knew how to write code.

I knew Unix and Linux.

I was too damn subborn to take "No".

And I was left with no other choice.

I'm not sure how I got hired, I'm sure in part it was a bit of desperation on their part, but within the month, I ended up getting hired as a sysadmin, administering 250 AT&T BSD boxes that ran a computer based testing suite. I ended up working on porting the program over to Linux which got me hired into writing the next generation of that software.

From there it was on to trying my hand at UI design with stops in animation, power grid, control systems. And then, eventually, to my current home in the embedded world.

I look over the past 30 years since I first sat down at that old Commodore PET and am thankful. I had a mother who, despite our differences, firmly instilled in me the idea that women, even women like me, could do anything. I had a work ethic that instilled in me that as long as I could do the job, nothing else mattered. I had the stubborness to not believe the people who were telling me "NO!". I had the curiosity and the drive to figure it out for myself because I knew that no one was going to tell me how to do it.

My nerdcred doesn't come to me from a piece of paper, but by sheer force of will.  I know a lot of my collegues came to where they're at by the "traditional" route, university, internships, etc. I'm glad for them but I do not envy them a bit. While my route was the hard, tough slog, I would never trade it for the world.

I firmly believe that my past gives me a perspective in geekdom that is relatively unique. It has made me a better engineer than I think I would have been had I gone that traditional route. It has defined who I am and has made me a better person because of it. I can look at people from non-traditional nerd backgrounds and see their inner engineer. I've learned that sometimes, you find the most brilliant of people in the least likely of places. I approach new experiences, be they personal or technological without one iota of fear.

And lastly I always know that the first program I write whenever I learn a new language is going to be my own, special, personal version of the first two line program I ever wrote.

 
  • «
  •  Start 
  •  Prev 
  •  1 
  •  2 
  •  3 
  •  4 
  •  5 
  •  6 
  •  7 
  •  8 
  •  9 
  •  10 
  •  Next 
  •  End 
  • »
Page 1 of 15

Upcoming Linux Foundation Courses

  1. LFD320 Linux Kernel Internals and Debugging
    15 Sep » 19 Sep - Virtual
    Details
  2. LFS220 Linux System Administration
    22 Sep » 25 Sep - Virtual
    Details
  3. LFS520 OpenStack Cloud Architecture and Deployment
    29 Sep » 02 Oct - Costa Mesa
    Details

View All Upcoming Courses


Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board